From 1beaa08a7f32b2b67622814c21680f69660d0242 Mon Sep 17 00:00:00 2001 From: Noah Meyerhans Date: Mon, 12 Dec 2022 08:14:19 -0800 Subject: [PATCH] New upstream version 1.29.27+repack --- MANIFEST.in | 1 + NOTICE | 44 +- PKG-INFO | 14 +- README.rst | 8 +- botocore/__init__.py | 42 +- botocore/args.py | 210 +- botocore/auth.py | 32 +- botocore/awsrequest.py | 8 +- botocore/client.py | 229 +- botocore/compat.py | 6 +- botocore/config.py | 25 +- botocore/configloader.py | 15 +- botocore/credentials.py | 163 +- botocore/crt/__init__.py | 27 + botocore/crt/auth.py | 13 + .../2019-11-01/endpoint-rule-set-1.json | 315 + .../2019-11-01}/examples-1.json | 0 .../accessanalyzer/2019-11-01/service-2.json | 1052 +- .../2021-02-01/endpoint-rule-set-1.json | 861 ++ .../data/account/2021-02-01/examples-1.json | 5 + .../data/account/2021-02-01/service-2.json | 198 +- .../2017-08-22/endpoint-rule-set-1.json | 340 + .../data/acm-pca/2017-08-22/examples-1.json | 4 +- .../data/acm-pca/2017-08-22/service-2.json | 29 +- .../acm/2015-12-08/endpoint-rule-set-1.json | 340 + botocore/data/acm/2015-12-08/service-2.json | 143 +- .../2017-11-09/endpoint-rule-set-1.json | 315 + .../amp/2020-08-01/endpoint-rule-set-1.json | 315 + botocore/data/amp/2020-08-01/examples-1.json | 5 + botocore/data/amp/2020-08-01/service-2.json | 252 + .../2017-07-25/endpoint-rule-set-1.json | 315 + .../data/amplify/2017-07-25/examples-1.json | 5 + .../data/amplify/2017-07-25/service-2.json | 13 +- .../2020-08-11/endpoint-rule-set-1.json | 315 + .../2021-08-11/endpoint-rule-set-1.json | 315 + .../2021-08-11/examples-1.json | 5 + .../2021-08-11/paginators-1.json | 11 + .../2021-08-11/service-2.json | 1030 +- .../2015-07-09/endpoint-rule-set-1.json | 315 + .../data/apigateway/2015-07-09/service-2.json | 2 +- .../2018-11-29/endpoint-rule-set-1.json | 309 + .../2018-11-29/endpoint-rule-set-1.json | 315 + .../2019-10-09/endpoint-rule-set-1.json | 353 + .../data/appconfig/2019-10-09/examples-1.json | 720 + .../data/appconfig/2019-10-09/service-2.json | 717 +- .../2021-11-11/endpoint-rule-set-1.json | 315 + .../appconfigdata/2021-11-11/examples-1.json | 5 + .../2020-08-23/endpoint-rule-set-1.json | 315 + .../data/appflow/2020-08-23/examples-1.json | 5 + .../data/appflow/2020-08-23/service-2.json | 310 +- .../2020-07-29/endpoint-rule-set-1.json | 315 + .../2020-07-29/examples-1.json | 5 + .../2016-02-06/endpoint-rule-set-1.json | 315 + .../2016-02-06/examples-1.json | 108 +- .../2018-11-25/endpoint-rule-set-1.json | 315 + .../2018-11-25/examples-1.json | 5 + .../2018-11-25/service-2.json | 63 +- .../2020-09-10/endpoint-rule-set-1.json | 309 + .../2020-09-10/examples-1.json | 5 + .../2018-10-01/endpoint-rule-set-1.json | 315 + .../data/appmesh/2018-10-01/examples-1.json | 4 + .../2019-01-25/endpoint-rule-set-1.json | 315 + .../data/appmesh/2019-01-25/examples-1.json | 5 + .../data/appmesh/2019-01-25/service-2.json | 110 +- .../2020-05-15/endpoint-rule-set-1.json | 315 + .../data/apprunner/2020-05-15/examples-1.json | 5 + .../data/apprunner/2020-05-15/service-2.json | 391 +- .../2016-12-01/endpoint-rule-set-1.json | 315 + .../data/appstream/2016-12-01/service-2.json | 77 +- .../2017-07-25/endpoint-rule-set-1.json | 315 + .../data/appsync/2017-07-25/service-2.json | 296 +- .../2022-10-30/endpoint-rule-set-1.json | 309 + .../2022-10-30/paginators-1.json | 16 + .../arc-zonal-shift/2022-10-30/service-2.json | 638 + .../2017-05-18/endpoint-rule-set-1.json | 315 + .../data/athena/2017-05-18/service-2.json | 1963 ++- .../2017-07-25/endpoint-rule-set-1.json | 315 + .../auditmanager/2017-07-25/examples-1.json | 5 + .../auditmanager/2017-07-25/service-2.json | 133 +- .../2018-01-06/endpoint-rule-set-1.json | 315 + .../2011-01-01/endpoint-rule-set-1.json | 331 + .../autoscaling/2011-01-01/examples-1.json | 79 +- .../autoscaling/2011-01-01/service-2.json | 544 +- .../2021-01-01/endpoint-rule-set-1.json | 315 + .../backup-gateway/2021-01-01/examples-1.json | 5 + .../backup-gateway/2021-01-01/service-2.json | 277 +- .../2018-11-15/endpoint-rule-set-1.json | 315 + .../data/backup/2018-11-15/examples-1.json | 5 + .../data/backup/2018-11-15/paginators-1.json | 12 + .../data/backup/2018-11-15/service-2.json | 624 +- .../2018-04-10/endpoint-rule-set-1.json | 309 + .../2018-04-10/paginators-1.json | 3 + .../backupstorage/2018-04-10/service-2.json | 924 ++ .../batch/2016-08-10/endpoint-rule-set-1.json | 365 + .../data/batch/2016-08-10/examples-1.json | 130 +- botocore/data/batch/2016-08-10/service-2.json | 907 +- .../2021-07-30/endpoint-rule-set-1.json | 591 + .../2021-07-30/examples-1.json | 5 + .../2021-07-30/paginators-1.json | 6 + .../2021-07-30/service-2.json | 419 +- .../2019-09-01/endpoint-rule-set-1.json | 315 + .../data/braket/2019-09-01/examples-1.json | 5 + .../2016-10-20/endpoint-rule-set-1.json | 861 ++ .../data/budgets/2016-10-20/service-2.json | 87 +- .../ce/2017-10-25/endpoint-rule-set-1.json | 852 ++ botocore/data/ce/2017-10-25/service-2.json | 588 +- .../2021-04-20/endpoint-rule-set-1.json | 315 + .../2021-04-20/examples-1.json | 5 + .../2021-07-15/endpoint-rule-set-1.json | 315 + .../2021-07-15/service-2.json | 851 +- .../2021-07-15/endpoint-rule-set-1.json | 315 + .../2021-07-15/examples-1.json | 5 + .../2021-07-15/service-2.json | 417 +- .../2021-05-15/endpoint-rule-set-1.json | 315 + .../2021-05-15/examples-1.json | 5 + .../2021-05-15/service-2.json | 425 +- .../2022-08-03/endpoint-rule-set-1.json | 309 + .../2022-08-03/paginators-1.json | 16 + .../chime-sdk-voice/2022-08-03/service-2.json | 3687 +++++ .../chime/2018-05-01/endpoint-rule-set-1.json | 591 + .../data/chime/2018-05-01/examples-1.json | 5 + botocore/data/chime/2018-05-01/service-2.json | 183 +- .../2017-09-23/endpoint-rule-set-1.json | 315 + .../data/cloud9/2017-09-23/examples-1.json | 15 +- .../data/cloud9/2017-09-23/service-2.json | 4 +- .../2021-09-30/endpoint-rule-set-1.json | 315 + .../cloudcontrol/2021-09-30/examples-1.json | 5 + .../2016-05-10/endpoint-rule-set-1.json | 315 + .../clouddirectory/2016-05-10/examples-1.json | 5 + .../2017-01-11/endpoint-rule-set-1.json | 315 + .../2010-05-15/endpoint-rule-set-1.json | 315 + .../cloudformation/2010-05-15/service-2.json | 96 +- .../2014-05-31/endpoint-rule-set-1.json | 861 ++ .../2014-10-21/endpoint-rule-set-1.json | 861 ++ .../2014-11-06/endpoint-rule-set-1.json | 861 ++ .../2015-04-17/endpoint-rule-set-1.json | 861 ++ .../2015-07-27/endpoint-rule-set-1.json | 861 ++ .../2015-09-17/endpoint-rule-set-1.json | 861 ++ .../2016-01-13/endpoint-rule-set-1.json | 861 ++ .../2016-01-28/endpoint-rule-set-1.json | 861 ++ .../cloudfront/2016-01-28/examples-1.json | 5 + .../2016-08-01/endpoint-rule-set-1.json | 861 ++ .../cloudfront/2016-08-01/examples-1.json | 5 + .../2016-08-20/endpoint-rule-set-1.json | 861 ++ .../2016-09-07/endpoint-rule-set-1.json | 861 ++ .../cloudfront/2016-09-07/examples-1.json | 5 + .../2016-09-29/endpoint-rule-set-1.json | 861 ++ .../cloudfront/2016-09-29/examples-1.json | 5 + .../2016-11-25/endpoint-rule-set-1.json | 861 ++ .../2017-03-25/endpoint-rule-set-1.json | 861 ++ .../2017-10-30/endpoint-rule-set-1.json | 861 ++ .../2018-06-18/endpoint-rule-set-1.json | 861 ++ .../2018-11-05/endpoint-rule-set-1.json | 861 ++ .../2019-03-26/endpoint-rule-set-1.json | 861 ++ .../2020-05-31/endpoint-rule-set-1.json | 852 ++ .../data/cloudfront/2020-05-31/service-2.json | 1417 +- .../2014-05-30/endpoint-rule-set-1.json | 315 + .../2017-04-28/endpoint-rule-set-1.json | 315 + .../2011-02-01/endpoint-rule-set-1.json | 315 + .../2013-01-01/endpoint-rule-set-1.json | 315 + .../cloudsearch/2013-01-01/examples-1.json | 5 + .../2013-01-01/endpoint-rule-set-1.json | 309 + .../2013-11-01/endpoint-rule-set-1.json | 353 + .../cloudtrail/2013-11-01/paginators-1.json | 12 + .../data/cloudtrail/2013-11-01/service-2.json | 1041 +- .../2010-08-01/endpoint-rule-set-1.json | 340 + .../cloudwatch/2010-08-01/paginators-1.json | 11 +- .../data/cloudwatch/2010-08-01/service-2.json | 292 +- .../2018-09-22/endpoint-rule-set-1.json | 315 + .../codeartifact/2018-09-22/examples-1.json | 5 + .../codeartifact/2018-09-22/service-2.json | 545 +- .../2016-10-06/endpoint-rule-set-1.json | 315 + .../2022-09-28/endpoint-rule-set-1.json | 213 + .../codecatalyst/2022-09-28/paginators-1.json | 45 + .../codecatalyst/2022-09-28/service-2.json | 2573 ++++ .../codecatalyst/2022-09-28/waiters-2.json | 5 + .../2015-04-13/endpoint-rule-set-1.json | 315 + .../2014-10-06/endpoint-rule-set-1.json | 315 + .../data/codedeploy/2014-10-06/service-2.json | 205 +- .../2019-09-19/endpoint-rule-set-1.json | 315 + .../2019-09-19/examples-1.json | 5 + .../2019-09-19/service-2.json | 294 +- .../2019-07-18/endpoint-rule-set-1.json | 309 + .../2019-07-18/examples-1.json | 5 + .../2015-07-09/endpoint-rule-set-1.json | 315 + .../2019-12-01/endpoint-rule-set-1.json | 315 + .../2019-12-01/examples-1.json | 5 + .../2019-10-15/endpoint-rule-set-1.json | 309 + .../2019-10-15/examples-1.json | 5 + .../2019-10-15/service-2.json | 92 +- .../2017-04-19/endpoint-rule-set-1.json | 315 + .../2014-06-30/endpoint-rule-set-1.json | 315 + .../2016-04-18/endpoint-rule-set-1.json | 315 + .../cognito-idp/2016-04-18/service-2.json | 294 +- .../2014-06-30/endpoint-rule-set-1.json | 315 + .../cognito-sync/2014-06-30/examples-1.json | 5 + .../2017-11-27/endpoint-rule-set-1.json | 315 + .../comprehend/2017-11-27/paginators-1.json | 12 + .../data/comprehend/2017-11-27/service-2.json | 652 +- .../2018-10-30/endpoint-rule-set-1.json | 315 + .../2018-10-30/examples-1.json | 5 + .../2018-10-30/service-2.json | 34 +- .../2019-11-01/endpoint-rule-set-1.json | 315 + .../2019-11-01/examples-1.json | 5 + .../2019-11-01/service-2.json | 47 +- .../2014-11-12/endpoint-rule-set-1.json | 340 + .../data/config/2014-11-12/paginators-1.json | 6 + .../data/config/2014-11-12/service-2.json | 662 +- .../2020-08-21/endpoint-rule-set-1.json | 315 + .../2020-08-21/examples-1.json | 5 + .../2017-08-08/endpoint-rule-set-1.json | 306 + .../data/connect/2017-08-08/paginators-1.json | 45 + .../data/connect/2017-08-08/service-2.json | 3194 ++++- .../2021-01-30/endpoint-rule-set-1.json | 315 + .../2021-01-30/paginators-1.json | 10 + .../2021-01-30/service-2.json | 1417 ++ .../2022-10-03/endpoint-rule-set-1.json | 309 + .../connectcases/2022-10-03/paginators-1.json | 16 + .../connectcases/2022-10-03/service-2.json | 2936 ++++ .../2018-09-07/endpoint-rule-set-1.json | 309 + .../2018-09-07/examples-1.json | 5 + .../2018-05-10/endpoint-rule-set-1.json | 315 + .../controltower/2018-05-10/paginators-1.json | 10 + .../controltower/2018-05-10/service-2.json | 394 + .../cur/2017-01-06/endpoint-rule-set-1.json | 315 + botocore/data/cur/2017-01-06/examples-1.json | 97 + botocore/data/cur/2017-01-06/service-2.json | 3 + .../2020-08-15/endpoint-rule-set-1.json | 315 + .../2020-08-15/examples-1.json | 5 + .../2020-08-15/service-2.json | 112 +- .../2017-07-25/endpoint-rule-set-1.json | 315 + .../data/databrew/2017-07-25/examples-1.json | 5 + .../2017-07-25/endpoint-rule-set-1.json | 315 + .../dataexchange/2017-07-25/service-2.json | 6490 +++++---- .../dataexchange/2017-07-25/waiters-2.json | 5 + .../2012-10-29/endpoint-rule-set-1.json | 315 + .../datapipeline/2012-10-29/examples-1.json | 5 + .../2018-11-09/endpoint-rule-set-1.json | 315 + .../data/datasync/2018-11-09/examples-1.json | 5 + .../data/datasync/2018-11-09/service-2.json | 371 +- .../dax/2017-04-19/endpoint-rule-set-1.json | 315 + .../2018-10-26/endpoint-rule-set-1.json | 315 + .../data/detective/2018-10-26/examples-1.json | 5 + .../data/detective/2018-10-26/service-2.json | 361 +- .../2015-06-23/endpoint-rule-set-1.json | 315 + .../devicefarm/2015-06-23/examples-1.json | 6 +- .../data/devicefarm/2015-06-23/service-2.json | 79 +- .../2020-12-01/endpoint-rule-set-1.json | 315 + .../devops-guru/2020-12-01/examples-1.json | 5 + .../devops-guru/2020-12-01/paginators-1.json | 17 + .../devops-guru/2020-12-01/service-2.json | 447 +- .../2012-10-25/endpoint-rule-set-1.json | 315 + .../2015-11-01/endpoint-rule-set-1.json | 315 + .../data/discovery/2015-11-01/service-2.json | 26 +- .../dlm/2018-01-12/endpoint-rule-set-1.json | 315 + botocore/data/dlm/2018-01-12/service-2.json | 163 +- .../dms/2016-01-01/endpoint-rule-set-1.json | 466 + botocore/data/dms/2016-01-01/examples-1.json | 21 + botocore/data/dms/2016-01-01/service-2.json | 867 +- .../2022-11-28/endpoint-rule-set-1.json | 309 + .../2022-11-28/paginators-1.json | 16 + .../docdb-elastic/2022-11-28/service-2.json | 1141 ++ .../docdb/2014-10-31/endpoint-rule-set-1.json | 435 + .../data/docdb/2014-10-31/examples-1.json | 5 + botocore/data/docdb/2014-10-31/service-2.json | 20 + .../drs/2020-02-26/endpoint-rule-set-1.json | 315 + botocore/data/drs/2020-02-26/examples-1.json | 5 + .../data/drs/2020-02-26/paginators-1.json | 12 + botocore/data/drs/2020-02-26/service-2.json | 541 +- .../ds/2015-04-16/endpoint-rule-set-1.json | 315 + botocore/data/ds/2015-04-16/paginators-1.json | 28 + botocore/data/ds/2015-04-16/service-2.json | 433 +- .../2011-12-05/endpoint-rule-set-1.json | 373 + .../data/dynamodb/2011-12-05/examples-1.json | 5 + .../2012-08-10/endpoint-rule-set-1.json | 364 + .../data/dynamodb/2012-08-10/service-2.json | 528 +- .../2012-08-10/endpoint-rule-set-1.json | 364 + .../dynamodbstreams/2012-08-10/service-2.json | 4 +- .../ebs/2019-11-02/endpoint-rule-set-1.json | 315 + botocore/data/ebs/2019-11-02/examples-1.json | 5 + .../2018-04-02/endpoint-rule-set-1.json | 309 + .../2018-04-02/examples-1.json | 34 + .../2018-04-02/service-2.json | 14 +- .../ec2/2014-09-01/endpoint-rule-set-1.json | 340 + .../ec2/2014-10-01/endpoint-rule-set-1.json | 340 + .../ec2/2015-03-01/endpoint-rule-set-1.json | 340 + .../ec2/2015-04-15/endpoint-rule-set-1.json | 340 + .../ec2/2015-10-01/endpoint-rule-set-1.json | 340 + botocore/data/ec2/2015-10-01/examples-1.json | 5 + .../ec2/2016-04-01/endpoint-rule-set-1.json | 340 + botocore/data/ec2/2016-04-01/examples-1.json | 3729 +++++ .../ec2/2016-09-15/endpoint-rule-set-1.json | 340 + .../ec2/2016-11-15/endpoint-rule-set-1.json | 340 + botocore/data/ec2/2016-11-15/examples-1.json | 4 +- .../data/ec2/2016-11-15/paginators-1.json | 66 + botocore/data/ec2/2016-11-15/service-2.json | 5168 ++++++- .../2020-10-30/endpoint-rule-set-1.json | 309 + .../ecr-public/2020-10-30/examples-1.json | 5 + .../ecr/2015-09-21/endpoint-rule-set-1.json | 479 + .../ecs/2014-11-13/endpoint-rule-set-1.json | 315 + botocore/data/ecs/2014-11-13/examples-1.json | 254 + .../data/ecs/2014-11-13/paginators-1.json | 6 + botocore/data/ecs/2014-11-13/service-2.json | 505 +- .../efs/2015-02-01/endpoint-rule-set-1.json | 315 + botocore/data/efs/2015-02-01/examples-1.json | 5 +- botocore/data/efs/2015-02-01/service-2.json | 12 +- .../eks/2017-11-01/endpoint-rule-set-1.json | 356 + botocore/data/eks/2017-11-01/examples-1.json | 21 + botocore/data/eks/2017-11-01/service-2.json | 308 +- .../2017-07-25/endpoint-rule-set-1.json | 315 + .../2017-07-25/examples-1.json | 5 + .../2014-09-30/endpoint-rule-set-1.json | 340 + .../2015-02-02/endpoint-rule-set-1.json | 340 + .../elasticache/2015-02-02/service-2.json | 126 +- .../2010-12-01/endpoint-rule-set-1.json | 315 + .../2012-09-25/endpoint-rule-set-1.json | 315 + .../elb/2012-06-01/endpoint-rule-set-1.json | 340 + .../elbv2/2015-12-01/endpoint-rule-set-1.json | 340 + botocore/data/elbv2/2015-12-01/service-2.json | 48 +- .../2020-10-01/endpoint-rule-set-1.json | 315 + .../emr-containers/2020-10-01/examples-1.json | 5 + .../2020-10-01/paginators-1.json | 6 + .../emr-containers/2020-10-01/service-2.json | 452 +- .../2021-07-13/endpoint-rule-set-1.json | 315 + .../2021-07-13/paginators-1.json | 16 + .../emr-serverless/2021-07-13/service-2.json | 1721 +++ .../emr/2009-03-31/endpoint-rule-set-1.json | 340 + botocore/data/emr/2009-03-31/service-2.json | 26 +- botocore/data/endpoints.json | 3117 ++++- .../es/2015-01-01/endpoint-rule-set-1.json | 315 + botocore/data/es/2015-01-01/service-2.json | 599 +- .../2014-02-03/endpoint-rule-set-1.json | 538 + .../2015-10-07/endpoint-rule-set-1.json | 538 + .../data/events/2015-10-07/service-2.json | 3 +- .../2021-02-01/endpoint-rule-set-1.json | 315 + .../data/evidently/2021-02-01/examples-1.json | 5 + .../evidently/2021-02-01/paginators-1.json | 12 + .../data/evidently/2021-02-01/service-2.json | 544 +- .../2020-07-13/endpoint-rule-set-1.json | 315 + .../finspace-data/2020-07-13/examples-1.json | 5 + .../finspace-data/2020-07-13/service-2.json | 490 +- .../2021-03-12/endpoint-rule-set-1.json | 315 + .../data/finspace/2021-03-12/examples-1.json | 5 + .../2015-08-04/endpoint-rule-set-1.json | 315 + .../data/firehose/2015-08-04/service-2.json | 447 +- .../fis/2020-12-01/endpoint-rule-set-1.json | 309 + botocore/data/fis/2020-12-01/examples-1.json | 5 + .../fms/2018-01-01/endpoint-rule-set-1.json | 306 + botocore/data/fms/2018-01-01/service-2.json | 610 +- .../2018-06-26/endpoint-rule-set-1.json | 315 + .../data/forecast/2018-06-26/examples-1.json | 5 + .../forecast/2018-06-26/paginators-1.json | 18 + .../data/forecast/2018-06-26/service-2.json | 984 +- .../2018-06-26/endpoint-rule-set-1.json | 315 + .../forecastquery/2018-06-26/examples-1.json | 5 + .../forecastquery/2018-06-26/service-2.json | 59 +- .../2019-11-15/endpoint-rule-set-1.json | 315 + .../frauddetector/2019-11-15/examples-1.json | 5 + .../frauddetector/2019-11-15/service-2.json | 279 +- .../fsx/2018-03-01/endpoint-rule-set-1.json | 448 + botocore/data/fsx/2018-03-01/examples-1.json | 438 + botocore/data/fsx/2018-03-01/service-2.json | 801 +- .../2015-10-01/endpoint-rule-set-1.json | 315 + .../gamelift/2015-10-01/paginators-1.json | 12 + .../data/gamelift/2015-10-01/service-2.json | 1703 ++- .../2021-08-17/endpoint-rule-set-1.json | 315 + .../gamesparks/2021-08-17/examples-1.json | 5 + .../data/gamesparks/2021-08-17/service-2.json | 2 +- .../2012-06-01/endpoint-rule-set-1.json | 315 + .../2018-08-08/endpoint-rule-set-1.json | 309 + .../2018-08-08/examples-1.json | 5 + .../2018-08-08/service-2.json | 313 +- .../glue/2017-03-31/endpoint-rule-set-1.json | 315 + botocore/data/glue/2017-03-31/service-2.json | 2054 ++- .../2020-08-18/endpoint-rule-set-1.json | 315 + .../data/grafana/2020-08-18/examples-1.json | 5 + .../data/grafana/2020-08-18/service-2.json | 203 +- .../2017-06-07/endpoint-rule-set-1.json | 359 + .../data/greengrass/2017-06-07/service-2.json | 4 + .../2020-11-30/endpoint-rule-set-1.json | 359 + .../greengrassv2/2020-11-30/examples-1.json | 5 + .../greengrassv2/2020-11-30/service-2.json | 124 +- .../2019-05-23/endpoint-rule-set-1.json | 315 + .../groundstation/2019-05-23/examples-1.json | 5 + .../2019-05-23/paginators-1.json | 6 + .../groundstation/2019-05-23/service-2.json | 767 +- .../2017-11-28/endpoint-rule-set-1.json | 340 + .../data/guardduty/2017-11-28/examples-1.json | 5 + .../guardduty/2017-11-28/paginators-1.json | 6 + .../data/guardduty/2017-11-28/service-2.json | 1364 +- .../2016-08-04/endpoint-rule-set-1.json | 861 ++ .../2017-07-01/endpoint-rule-set-1.json | 315 + .../healthlake/2017-07-01/examples-1.json | 5 + .../2020-03-01/endpoint-rule-set-1.json | 315 + .../data/honeycode/2020-03-01/examples-1.json | 5 + .../iam/2010-05-08/endpoint-rule-set-1.json | 1491 ++ botocore/data/iam/2010-05-08/examples-1.json | 392 +- botocore/data/iam/2010-05-08/service-2.json | 38 +- .../2020-06-15/endpoint-rule-set-1.json | 340 + .../identitystore/2020-06-15/examples-1.json | 5 + .../2020-06-15/paginators-1.json | 27 +- .../identitystore/2020-06-15/service-2.json | 1418 +- .../2019-12-02/endpoint-rule-set-1.json | 309 + .../imagebuilder/2019-12-02/examples-1.json | 5 + .../2010-06-01/endpoint-rule-set-1.json | 591 + .../2015-08-18/endpoint-rule-set-1.json | 315 + .../2016-02-16/endpoint-rule-set-1.json | 315 + .../2020-06-08/endpoint-rule-set-1.json | 315 + .../inspector2/2020-06-08/examples-1.json | 5 + .../data/inspector2/2020-06-08/service-2.json | 650 +- .../2015-05-28/endpoint-rule-set-1.json | 448 + .../data/iot-data/2015-05-28/examples-1.json | 5 + .../data/iot-data/2015-05-28/service-2.json | 54 +- .../2017-09-29/endpoint-rule-set-1.json | 315 + .../2018-05-10/endpoint-rule-set-1.json | 309 + .../2018-05-10/paginators-1.json | 28 + .../iot-roborunner/2018-05-10/service-2.json | 1407 ++ .../iot/2015-05-28/endpoint-rule-set-1.json | 315 + botocore/data/iot/2015-05-28/service-2.json | 507 +- .../2018-05-14/endpoint-rule-set-1.json | 309 + .../2018-05-14/endpoint-rule-set-1.json | 315 + .../2017-11-27/endpoint-rule-set-1.json | 315 + .../2020-09-18/endpoint-rule-set-1.json | 315 + .../2020-09-18/examples-1.json | 5 + .../2020-09-18/service-2.json | 81 + .../2018-10-23/endpoint-rule-set-1.json | 309 + .../iotevents-data/2018-10-23/examples-1.json | 5 + .../2018-07-27/endpoint-rule-set-1.json | 315 + .../data/iotevents/2018-07-27/examples-1.json | 5 + .../2020-11-03/endpoint-rule-set-1.json | 315 + .../iotfleethub/2020-11-03/examples-1.json | 5 + .../2021-06-17/endpoint-rule-set-1.json | 315 + .../iotfleetwise/2021-06-17/paginators-1.json | 82 + .../iotfleetwise/2021-06-17/service-2.json | 4451 ++++++ .../iotfleetwise/2021-06-17/waiters-2.json | 5 + .../2018-10-05/endpoint-rule-set-1.json | 365 + .../2018-10-05/examples-1.json | 5 + .../2019-12-02/endpoint-rule-set-1.json | 315 + .../iotsitewise/2019-12-02/examples-1.json | 5 + .../iotsitewise/2019-12-02/paginators-1.json | 18 + .../iotsitewise/2019-12-02/service-2.json | 661 +- .../2018-09-06/endpoint-rule-set-1.json | 315 + .../iotthingsgraph/2018-09-06/examples-1.json | 5 + .../iotthingsgraph/2018-09-06/service-2.json | 142 +- .../2021-11-29/endpoint-rule-set-1.json | 306 + .../iottwinmaker/2021-11-29/examples-1.json | 5 + .../iottwinmaker/2021-11-29/service-2.json | 2176 ++- .../2020-11-22/endpoint-rule-set-1.json | 315 + .../iotwireless/2020-11-22/examples-1.json | 5 + .../iotwireless/2020-11-22/service-2.json | 1728 ++- .../ivs/2020-07-14/endpoint-rule-set-1.json | 315 + botocore/data/ivs/2020-07-14/examples-1.json | 5 + botocore/data/ivs/2020-07-14/service-2.json | 95 +- .../2020-07-14/endpoint-rule-set-1.json | 315 + .../data/ivschat/2020-07-14/examples-1.json | 5 + .../data/ivschat/2020-07-14/service-2.json | 504 +- .../kafka/2018-11-14/endpoint-rule-set-1.json | 315 + botocore/data/kafka/2018-11-14/service-2.json | 128 +- .../2021-09-14/endpoint-rule-set-1.json | 315 + .../kafkaconnect/2021-09-14/examples-1.json | 5 + .../2019-02-03/endpoint-rule-set-1.json | 315 + .../data/kendra/2019-02-03/examples-1.json | 5 + .../data/kendra/2019-02-03/service-2.json | 1308 +- .../2022-02-10/endpoint-rule-set-1.json | 309 + .../data/keyspaces/2022-02-10/examples-1.json | 5 + .../2017-09-30/endpoint-rule-set-1.json | 315 + .../2017-09-30/endpoint-rule-set-1.json | 315 + .../2019-12-04/endpoint-rule-set-1.json | 315 + .../2019-12-04/examples-1.json | 5 + .../2013-12-02/endpoint-rule-set-1.json | 315 + .../2015-08-14/endpoint-rule-set-1.json | 315 + .../2018-05-23/endpoint-rule-set-1.json | 315 + .../2018-05-23/examples-1.json | 5 + .../2018-05-23/service-2.json | 14 +- .../2017-09-30/endpoint-rule-set-1.json | 315 + .../kms/2014-11-01/endpoint-rule-set-1.json | 306 + botocore/data/kms/2014-11-01/examples-1.json | 1046 +- .../data/kms/2014-11-01/paginators-1.json | 21 + botocore/data/kms/2014-11-01/service-2.json | 491 +- .../2017-03-31/endpoint-rule-set-1.json | 315 + .../lakeformation/2017-03-31/examples-1.json | 5 + .../lakeformation/2017-03-31/service-2.json | 110 +- .../2014-11-11/endpoint-rule-set-1.json | 315 + .../2015-03-31/endpoint-rule-set-1.json | 315 + .../data/lambda/2015-03-31/service-2.json | 427 +- .../data/lambda/2015-03-31/waiters-2.json | 26 + .../2017-04-19/endpoint-rule-set-1.json | 365 + .../lex-models/2017-04-19/examples-1.json | 2 +- .../2016-11-28/endpoint-rule-set-1.json | 365 + .../2020-08-07/endpoint-rule-set-1.json | 315 + .../lexv2-models/2020-08-07/examples-1.json | 5 + .../lexv2-models/2020-08-07/service-2.json | 1249 +- .../2020-08-07/endpoint-rule-set-1.json | 315 + .../lexv2-runtime/2020-08-07/examples-1.json | 5 + .../lexv2-runtime/2020-08-07/service-2.json | 39 +- .../2018-05-10/endpoint-rule-set-1.json | 309 + .../2018-05-10/paginators-1.json | 28 + .../2018-05-10/service-2.json | 950 ++ .../2018-08-01/endpoint-rule-set-1.json | 315 + .../2018-08-01/examples-1.json | 5 + .../license-manager/2018-08-01/service-2.json | 111 +- .../2016-11-28/endpoint-rule-set-1.json | 315 + .../data/lightsail/2016-11-28/service-2.json | 330 +- .../2020-11-19/endpoint-rule-set-1.json | 309 + .../data/location/2020-11-19/examples-1.json | 5 + .../data/location/2020-11-19/service-2.json | 152 +- .../logs/2014-03-28/endpoint-rule-set-1.json | 344 + botocore/data/logs/2014-03-28/service-2.json | 510 +- .../2020-12-15/endpoint-rule-set-1.json | 315 + .../2020-12-15/examples-1.json | 5 + .../2020-12-15/service-2.json | 717 +- .../2017-07-25/endpoint-rule-set-1.json | 315 + .../lookoutmetrics/2017-07-25/examples-1.json | 5 + .../lookoutmetrics/2017-07-25/service-2.json | 304 +- .../2020-11-20/endpoint-rule-set-1.json | 315 + .../lookoutvision/2020-11-20/examples-1.json | 5 + .../lookoutvision/2020-11-20/service-2.json | 86 +- .../m2/2021-04-28/endpoint-rule-set-1.json | 315 + botocore/data/m2/2021-04-28/paginators-1.json | 58 + botocore/data/m2/2021-04-28/service-2.json | 3320 +++++ .../2014-12-12/endpoint-rule-set-1.json | 315 + .../2014-12-12/examples-1.json | 4 +- .../macie/2017-12-19/endpoint-rule-set-1.json | 315 + .../data/macie/2017-12-19/examples-1.json | 4 +- .../2020-01-01/endpoint-rule-set-1.json | 315 + .../data/macie2/2020-01-01/paginators-1.json | 33 + .../data/macie2/2020-01-01/service-2.json | 2600 +++- .../data/macie2/2020-01-01/waiters-2.json | 25 + .../2018-09-24/endpoint-rule-set-1.json | 315 + .../2018-09-24/examples-1.json | 5 + .../2018-09-24/paginators-1.json | 9 +- .../2018-09-24/service-2.json | 354 +- .../2018-09-17/endpoint-rule-set-1.json | 315 + .../2018-09-17/examples-1.json | 5 + .../2018-09-17/service-2.json | 185 +- .../2017-01-11/endpoint-rule-set-1.json | 315 + .../2015-07-01/endpoint-rule-set-1.json | 315 + .../2018-11-14/endpoint-rule-set-1.json | 315 + .../mediaconnect/2018-11-14/service-2.json | 31 + .../2017-08-29/endpoint-rule-set-1.json | 340 + .../mediaconvert/2017-08-29/service-2.json | 225 +- .../2017-10-14/endpoint-rule-set-1.json | 306 + .../data/medialive/2017-10-14/service-2.json | 438 +- .../2018-11-07/endpoint-rule-set-1.json | 315 + .../2018-11-07/service-2.json | 71 +- .../2017-10-12/endpoint-rule-set-1.json | 315 + .../mediapackage/2017-10-12/service-2.json | 44 +- .../2017-09-01/endpoint-rule-set-1.json | 315 + .../2017-09-01/endpoint-rule-set-1.json | 315 + .../2018-04-23/endpoint-rule-set-1.json | 315 + .../mediatailor/2018-04-23/service-2.json | 6597 +++++---- .../2021-01-01/endpoint-rule-set-1.json | 340 + .../data/memorydb/2021-01-01/examples-1.json | 5 + .../data/memorydb/2021-01-01/service-2.json | 25 +- .../2016-01-14/endpoint-rule-set-1.json | 315 + .../mgh/2017-05-31/endpoint-rule-set-1.json | 315 + .../mgn/2020-02-26/endpoint-rule-set-1.json | 315 + botocore/data/mgn/2020-02-26/examples-1.json | 5 + .../data/mgn/2020-02-26/paginators-1.json | 30 + botocore/data/mgn/2020-02-26/service-2.json | 1936 ++- .../2021-10-26/endpoint-rule-set-1.json | 309 + .../2021-10-26/examples-1.json | 5 + .../2021-10-26/service-2.json | 111 +- .../2019-06-30/endpoint-rule-set-1.json | 309 + .../2019-06-30/examples-1.json | 5 + .../2021-08-28/endpoint-rule-set-1.json | 309 + .../2021-08-28/paginators-1.json | 46 + .../2021-08-28/service-2.json | 2910 ++++ .../2021-08-28/waiters-2.json | 5 + .../2020-02-19/endpoint-rule-set-1.json | 306 + .../2020-02-19/examples-1.json | 5 + .../2020-02-19/service-2.json | 424 +- .../2017-07-01/endpoint-rule-set-1.json | 309 + .../mq/2017-11-27/endpoint-rule-set-1.json | 315 + .../mturk/2017-01-17/endpoint-rule-set-1.json | 340 + .../mwaa/2020-07-01/endpoint-rule-set-1.json | 315 + botocore/data/mwaa/2020-07-01/examples-1.json | 5 + botocore/data/mwaa/2020-07-01/service-2.json | 48 +- .../2014-10-31/endpoint-rule-set-1.json | 435 + .../data/neptune/2014-10-31/examples-1.json | 4 +- .../data/neptune/2014-10-31/paginators-1.json | 6 + .../data/neptune/2014-10-31/service-2.json | 463 +- .../2020-11-12/endpoint-rule-set-1.json | 315 + .../2020-11-12/examples-1.json | 5 + .../2020-11-12/service-2.json | 111 +- .../2019-07-05/endpoint-rule-set-1.json | 861 ++ .../networkmanager/2019-07-05/examples-1.json | 5 + .../2019-07-05/paginators-1.json | 12 + .../networkmanager/2019-07-05/service-2.json | 618 +- .../2020-08-01/endpoint-rule-set-1.json | 315 + .../data/nimble/2020-08-01/examples-1.json | 5 + .../data/nimble/2020-08-01/service-2.json | 218 +- .../data/nimble/2020-08-01/waiters-2.json | 2 +- .../oam/2022-06-10/endpoint-rule-set-1.json | 309 + .../data/oam/2022-06-10/paginators-1.json | 22 + botocore/data/oam/2022-06-10/service-2.json | 1022 ++ .../omics/2022-11-28/endpoint-rule-set-1.json | 309 + .../data/omics/2022-11-28/paginators-1.json | 100 + botocore/data/omics/2022-11-28/service-2.json | 7338 ++++++++++ botocore/data/omics/2022-11-28/waiters-2.json | 498 + .../2021-01-01/endpoint-rule-set-1.json | 315 + .../opensearch/2021-01-01/examples-1.json | 5 + .../data/opensearch/2021-01-01/service-2.json | 1936 ++- .../2021-11-01/endpoint-rule-set-1.json | 309 + .../2021-11-01/paginators-1.json | 3 + .../2021-11-01/service-2.json | 2399 ++++ .../2013-02-18/endpoint-rule-set-1.json | 315 + .../2016-11-01/endpoint-rule-set-1.json | 315 + .../2016-11-28/endpoint-rule-set-1.json | 1169 ++ .../organizations/2016-11-28/service-2.json | 158 +- .../2019-12-03/endpoint-rule-set-1.json | 315 + .../data/outposts/2019-12-03/examples-1.json | 5 + .../data/outposts/2019-12-03/service-2.json | 407 +- .../2019-07-24/endpoint-rule-set-1.json | 309 + .../data/panorama/2019-07-24/examples-1.json | 5 + .../data/panorama/2019-07-24/service-2.json | 273 +- botocore/data/partitions.json | 178 + .../2018-03-22/endpoint-rule-set-1.json | 309 + .../2018-03-22/examples-1.json | 5 + .../2018-03-22/service-2.json | 42 +- .../2018-05-22/endpoint-rule-set-1.json | 309 + .../2018-05-22/examples-1.json | 5 + .../2018-05-22/service-2.json | 48 +- .../2018-05-22/endpoint-rule-set-1.json | 315 + .../personalize/2018-05-22/examples-1.json | 5 + .../personalize/2018-05-22/paginators-1.json | 12 + .../personalize/2018-05-22/service-2.json | 413 +- .../pi/2018-02-27/endpoint-rule-set-1.json | 315 + botocore/data/pi/2018-02-27/service-2.json | 4 +- .../2018-07-26/endpoint-rule-set-1.json | 315 + .../pinpoint-email/2018-07-26/examples-1.json | 5 + .../2022-03-31/endpoint-rule-set-1.json | 315 + .../2022-03-31/examples-1.json | 5 + .../2018-09-05/endpoint-rule-set-1.json | 309 + .../2016-12-01/endpoint-rule-set-1.json | 315 + .../data/pinpoint/2016-12-01/service-2.json | 145 + .../pipes/2015-10-07/endpoint-rule-set-1.json | 309 + .../data/pipes/2015-10-07/paginators-1.json | 10 + botocore/data/pipes/2015-10-07/service-2.json | 2807 ++++ .../polly/2016-06-10/endpoint-rule-set-1.json | 315 + botocore/data/polly/2016-06-10/service-2.json | 19 +- .../2017-10-15/endpoint-rule-set-1.json | 315 + .../data/pricing/2017-10-15/examples-1.json | 1 + .../data/pricing/2017-10-15/service-2.json | 14 +- .../2021-12-03/endpoint-rule-set-1.json | 309 + .../2021-12-03/paginators-1.json | 34 + .../privatenetworks/2021-12-03/service-2.json | 1994 +++ .../2020-07-20/endpoint-rule-set-1.json | 315 + .../data/proton/2020-07-20/examples-1.json | 5 + .../data/proton/2020-07-20/paginators-1.json | 16 + .../data/proton/2020-07-20/service-2.json | 1044 +- .../data/proton/2020-07-20/waiters-2.json | 33 + .../2019-07-11/endpoint-rule-set-1.json | 315 + .../qldb-session/2019-07-11/examples-1.json | 5 + .../qldb/2019-01-02/endpoint-rule-set-1.json | 315 + botocore/data/qldb/2019-01-02/examples-1.json | 5 + .../2018-04-01/endpoint-rule-set-1.json | 315 + .../quicksight/2018-04-01/examples-1.json | 5 + .../quicksight/2018-04-01/paginators-1.json | 12 + .../2018-04-01/paginators-1.sdk-extras.json | 12 + .../data/quicksight/2018-04-01/service-2.json | 11610 +++++++++++++++- .../ram/2018-01-04/endpoint-rule-set-1.json | 315 + botocore/data/ram/2018-01-04/examples-1.json | 5 + .../rbin/2021-06-15/endpoint-rule-set-1.json | 315 + botocore/data/rbin/2021-06-15/examples-1.json | 5 + botocore/data/rbin/2021-06-15/service-2.json | 251 +- .../2018-08-01/endpoint-rule-set-1.json | 309 + .../data/rds-data/2018-08-01/examples-1.json | 5 + .../data/rds-data/2018-08-01/service-2.json | 384 +- .../rds/2014-09-01/endpoint-rule-set-1.json | 435 + .../rds/2014-10-31/endpoint-rule-set-1.json | 426 + .../data/rds/2014-10-31/paginators-1.json | 6 + botocore/data/rds/2014-10-31/service-2.json | 917 +- botocore/data/rds/2014-10-31/waiters-2.json | 85 + .../2019-12-20/endpoint-rule-set-1.json | 309 + .../redshift-data/2019-12-20/examples-1.json | 5 + .../redshift-data/2019-12-20/service-2.json | 60 +- .../2021-04-21/endpoint-rule-set-1.json | 315 + .../2021-04-21/paginators-1.json | 46 + .../2021-04-21/service-2.json | 2735 ++++ .../2012-12-01/endpoint-rule-set-1.json | 315 + .../data/redshift/2012-12-01/service-2.json | 137 +- .../2016-06-27/endpoint-rule-set-1.json | 429 + .../rekognition/2016-06-27/paginators-1.json | 6 + .../rekognition/2016-06-27/service-2.json | 580 +- .../2020-04-30/endpoint-rule-set-1.json | 315 + .../resiliencehub/2020-04-30/examples-1.json | 5 + .../resiliencehub/2020-04-30/service-2.json | 13 +- .../2022-07-28/endpoint-rule-set-1.json | 248 + .../2022-07-28/paginators-1.json | 28 + .../2022-07-28/paginators-1.sdk-extras.json | 13 + .../2022-07-28/service-2.json | 1346 ++ .../2017-11-27/endpoint-rule-set-1.json | 340 + .../2017-01-26/endpoint-rule-set-1.json | 315 + .../2018-06-29/endpoint-rule-set-1.json | 315 + .../data/robomaker/2018-06-29/examples-1.json | 5 + .../2018-05-10/endpoint-rule-set-1.json | 315 + .../2018-05-10/paginators-1.json | 24 + .../rolesanywhere/2018-05-10/service-2.json | 1327 ++ .../2019-12-02/endpoint-rule-set-1.json | 309 + .../2019-12-02/examples-1.json | 5 + .../2020-11-02/endpoint-rule-set-1.json | 348 + .../2019-12-02/endpoint-rule-set-1.json | 309 + .../2013-04-01/endpoint-rule-set-1.json | 1437 ++ .../data/route53/2013-04-01/paginators-1.json | 18 + .../data/route53/2013-04-01/service-2.json | 579 +- .../2014-05-15/endpoint-rule-set-1.json | 315 + .../2018-04-01/endpoint-rule-set-1.json | 315 + .../2018-04-01/examples-1.json | 5 + .../rum/2018-05-10/endpoint-rule-set-1.json | 315 + botocore/data/rum/2018-05-10/examples-1.json | 5 + .../data/rum/2018-05-10/paginators-1.json | 12 + botocore/data/rum/2018-05-10/service-2.json | 679 +- .../s3/2006-03-01/endpoint-rule-set-1.json | 10285 ++++++++++++++ botocore/data/s3/2006-03-01/service-2.json | 123 +- .../2018-08-20/endpoint-rule-set-1.json | 2351 ++++ .../data/s3control/2018-08-20/examples-1.json | 5 + .../data/s3control/2018-08-20/service-2.json | 765 +- .../2017-07-25/endpoint-rule-set-1.json | 315 + .../s3outposts/2017-07-25/examples-1.json | 5 + .../2019-11-07/endpoint-rule-set-1.json | 309 + .../2019-11-07/examples-1.json | 5 + .../2019-11-07/service-2.json | 6 +- .../2020-09-23/endpoint-rule-set-1.json | 315 + .../sagemaker-edge/2020-09-23/examples-1.json | 5 + .../sagemaker-edge/2020-09-23/service-2.json | 230 +- .../2020-07-01/endpoint-rule-set-1.json | 309 + .../2020-07-01/examples-1.json | 5 + .../2020-07-01/service-2.json | 37 +- .../2020-05-27/endpoint-rule-set-1.json | 309 + .../2020-05-27/paginators-1.json | 22 + .../2020-05-27/service-2.json | 2872 ++++ .../2017-05-13/endpoint-rule-set-1.json | 365 + .../2017-05-13/service-2.json | 14 +- .../2017-07-24/endpoint-rule-set-1.json | 384 + .../sagemaker/2017-07-24/paginators-1.json | 60 + .../data/sagemaker/2017-07-24/service-2.json | 6115 +++++++- .../2019-06-28/endpoint-rule-set-1.json | 591 + .../savingsplans/2019-06-28/examples-1.json | 5 + .../2021-06-30/endpoint-rule-set-1.json | 309 + .../scheduler/2021-06-30/paginators-1.json | 16 + .../data/scheduler/2021-06-30/service-2.json | 1555 +++ .../2019-12-02/endpoint-rule-set-1.json | 315 + .../sdb/2009-04-15/endpoint-rule-set-1.json | 340 + .../2017-10-17/endpoint-rule-set-1.json | 315 + .../secretsmanager/2017-10-17/examples-1.json | 64 +- .../secretsmanager/2017-10-17/service-2.json | 70 +- .../2018-10-26/endpoint-rule-set-1.json | 315 + .../securityhub/2018-10-26/examples-1.json | 5 + .../securityhub/2018-10-26/service-2.json | 1842 ++- .../2018-05-10/endpoint-rule-set-1.json | 309 + .../securitylake/2018-05-10/paginators-1.json | 28 + .../securitylake/2018-05-10/service-2.json | 2224 +++ .../2017-09-08/endpoint-rule-set-1.json | 315 + .../2019-06-24/endpoint-rule-set-1.json | 340 + .../service-quotas/2019-06-24/examples-1.json | 5 + .../2020-06-24/endpoint-rule-set-1.json | 340 + .../2020-06-24/examples-1.json | 5 + .../2020-06-24/paginators-1.json | 6 + .../2020-06-24/service-2.json | 205 +- .../2015-12-10/endpoint-rule-set-1.json | 315 + .../servicecatalog/2015-12-10/service-2.json | 312 +- .../2017-03-14/endpoint-rule-set-1.json | 353 + .../2017-03-14/examples-1.json | 667 + .../2017-03-14/service-2.json | 97 +- .../ses/2010-12-01/endpoint-rule-set-1.json | 315 + .../sesv2/2019-09-27/endpoint-rule-set-1.json | 315 + .../data/sesv2/2019-09-27/examples-1.json | 5 + botocore/data/sesv2/2019-09-27/service-2.json | 623 +- .../2016-06-02/endpoint-rule-set-1.json | 610 + .../data/shield/2016-06-02/service-2.json | 132 +- .../2017-08-25/endpoint-rule-set-1.json | 309 + .../2022-10-28/endpoint-rule-set-1.json | 309 + .../2022-10-28/paginators-1.json | 3 + .../simspaceweaver/2022-10-28/service-2.json | 1232 ++ .../2018-09-05/endpoint-rule-set-1.json | 309 + .../sms/2016-10-24/endpoint-rule-set-1.json | 315 + .../2021-08-04/endpoint-rule-set-1.json | 309 + .../2021-08-04/examples-1.json | 5 + .../2016-06-30/endpoint-rule-set-1.json | 315 + .../data/snowball/2016-06-30/examples-1.json | 4 +- .../snowball/2016-06-30/paginators-1.json | 6 + .../data/snowball/2016-06-30/service-2.json | 22 +- .../sns/2010-03-31/endpoint-rule-set-1.json | 353 + botocore/data/sns/2010-03-31/service-2.json | 102 +- .../sqs/2012-11-05/endpoint-rule-set-1.json | 340 + .../2021-05-03/endpoint-rule-set-1.json | 309 + .../ssm-contacts/2021-05-03/examples-1.json | 714 + .../2018-05-10/endpoint-rule-set-1.json | 315 + .../ssm-incidents/2018-05-10/examples-1.json | 5 + .../ssm-incidents/2018-05-10/service-2.json | 208 +- .../2018-05-10/endpoint-rule-set-1.json | 309 + .../data/ssm-sap/2018-05-10/paginators-1.json | 22 + .../data/ssm-sap/2018-05-10/service-2.json | 1268 ++ .../ssm/2014-11-06/endpoint-rule-set-1.json | 340 + .../data/ssm/2014-11-06/paginators-1.json | 6 + botocore/data/ssm/2014-11-06/service-2.json | 504 +- .../2020-07-20/endpoint-rule-set-1.json | 315 + .../data/sso-admin/2020-07-20/examples-1.json | 5 + .../sso-admin/2020-07-20/paginators-1.json | 6 + .../data/sso-admin/2020-07-20/service-2.json | 550 +- .../2019-06-10/endpoint-rule-set-1.json | 315 + .../data/sso-oidc/2019-06-10/examples-1.json | 5 + .../data/sso-oidc/2019-06-10/service-2.json | 21 +- .../sso/2019-06-10/endpoint-rule-set-1.json | 315 + botocore/data/sso/2019-06-10/examples-1.json | 5 + botocore/data/sso/2019-06-10/service-2.json | 14 +- .../2016-11-23/endpoint-rule-set-1.json | 334 + .../2016-11-23/paginators-1.json | 6 + .../stepfunctions/2016-11-23/service-2.json | 600 +- .../2013-06-30/endpoint-rule-set-1.json | 315 + .../sts/2011-06-15/endpoint-rule-set-1.json | 876 ++ botocore/data/sts/2011-06-15/examples-1.json | 79 +- botocore/data/sts/2011-06-15/service-2.json | 28 +- .../2021-08-20/endpoint-rule-set-1.json | 309 + .../support-app/2021-08-20/paginators-1.json | 3 + .../support-app/2021-08-20/service-2.json | 661 + .../2013-04-15/endpoint-rule-set-1.json | 475 + .../swf/2012-01-25/endpoint-rule-set-1.json | 315 + .../2017-10-11/endpoint-rule-set-1.json | 315 + .../synthetics/2017-10-11/examples-1.json | 5 + .../data/synthetics/2017-10-11/service-2.json | 533 +- .../2018-06-27/endpoint-rule-set-1.json | 315 + .../data/textract/2018-06-27/examples-1.json | 5 + .../data/textract/2018-06-27/service-2.json | 499 +- .../2018-11-01/endpoint-rule-set-1.json | 309 + .../2018-11-01/examples-1.json | 5 + .../2018-11-01/endpoint-rule-set-1.json | 309 + .../2018-11-01/examples-1.json | 5 + .../2017-10-26/endpoint-rule-set-1.json | 409 + .../data/transcribe/2017-10-26/service-2.json | 974 +- .../2018-11-05/endpoint-rule-set-1.json | 315 + .../data/transfer/2018-11-05/examples-1.json | 5 + .../transfer/2018-11-05/paginators-1.json | 24 + .../data/transfer/2018-11-05/service-2.json | 2041 ++- .../2017-07-01/endpoint-rule-set-1.json | 315 + .../data/translate/2017-07-01/service-2.json | 351 +- .../2021-09-27/endpoint-rule-set-1.json | 315 + .../data/voice-id/2021-09-27/examples-1.json | 5 + .../data/voice-id/2021-09-27/service-2.json | 130 +- .../2016-11-28/endpoint-rule-set-1.json | 315 + .../waf/2015-08-24/endpoint-rule-set-1.json | 645 + .../wafv2/2019-07-29/endpoint-rule-set-1.json | 315 + .../data/wafv2/2019-07-29/examples-1.json | 5 + botocore/data/wafv2/2019-07-29/service-2.json | 396 +- .../2020-03-31/endpoint-rule-set-1.json | 315 + .../2020-03-31/examples-1.json | 5 + .../wellarchitected/2020-03-31/service-2.json | 419 +- .../2020-10-19/endpoint-rule-set-1.json | 315 + .../data/wisdom/2020-10-19/examples-1.json | 5 + .../2016-05-01/endpoint-rule-set-1.json | 315 + .../data/workdocs/2016-05-01/service-2.json | 148 +- .../2018-09-25/endpoint-rule-set-1.json | 309 + .../data/worklink/2018-09-25/examples-1.json | 5 + .../2017-10-01/endpoint-rule-set-1.json | 315 + .../workmail/2017-10-01/paginators-1.json | 6 + .../data/workmail/2017-10-01/service-2.json | 1050 +- .../2019-05-01/endpoint-rule-set-1.json | 309 + .../2019-05-01/examples-1.json | 5 + .../2020-07-08/endpoint-rule-set-1.json | 315 + .../workspaces-web/2020-07-08/examples-1.json | 5 + .../workspaces-web/2020-07-08/service-2.json | 367 +- .../2015-04-08/endpoint-rule-set-1.json | 315 + .../data/workspaces/2015-04-08/service-2.json | 528 +- .../xray/2016-04-12/endpoint-rule-set-1.json | 315 + .../data/xray/2016-04-12/paginators-1.json | 10 + botocore/data/xray/2016-04-12/service-2.json | 224 +- botocore/docs/bcdoc/docstringparser.py | 62 +- botocore/docs/bcdoc/restdoc.py | 2 +- botocore/docs/bcdoc/style.py | 46 +- botocore/docs/method.py | 21 +- botocore/endpoint.py | 3 + botocore/endpoint_provider.py | 728 + botocore/exceptions.py | 45 +- botocore/handlers.py | 160 +- botocore/httpsession.py | 18 +- botocore/loaders.py | 47 +- botocore/model.py | 56 +- botocore/paginate.py | 5 + botocore/parsers.py | 18 +- botocore/regions.py | 435 +- botocore/serialize.py | 11 +- botocore/session.py | 33 +- botocore/signers.py | 80 +- botocore/tokens.py | 326 + botocore/utils.py | 467 +- docs/source/conf.py | 4 +- docs/source/index.rst | 2 +- requirements-dev.txt | 2 +- setup.cfg | 5 +- setup.py | 15 +- tests/functional/conftest.py | 27 + .../accessanalyzer/endpoint-tests-1.json | 1707 +++ .../account/endpoint-tests-1.json | 87 + .../acm-pca/endpoint-tests-1.json | 1543 ++ .../endpoint-rules/acm/endpoint-tests-1.json | 1799 +++ .../alexaforbusiness/endpoint-tests-1.json | 95 + .../endpoint-rules/amp/endpoint-tests-1.json | 563 + .../amplify/endpoint-tests-1.json | 1031 ++ .../amplifybackend/endpoint-tests-1.json | 927 ++ .../amplifyuibuilder/endpoint-tests-1.json | 927 ++ .../apigateway/endpoint-tests-1.json | 1751 +++ .../endpoint-tests-1.json | 1591 +++ .../apigatewayv2/endpoint-tests-1.json | 1751 +++ .../appconfig/endpoint-tests-1.json | 1799 +++ .../appconfigdata/endpoint-tests-1.json | 1799 +++ .../appflow/endpoint-tests-1.json | 875 ++ .../appintegrations/endpoint-tests-1.json | 615 + .../endpoint-tests-1.json | 2003 +++ .../endpoint-tests-1.json | 1343 ++ .../endpoint-tests-1.json | 43 + .../appmesh/endpoint-tests-1.json | 1291 ++ .../apprunner/endpoint-tests-1.json | 303 + .../appstream/endpoint-tests-1.json | 927 ++ .../appsync/endpoint-tests-1.json | 1291 ++ .../arc-zonal-shift/endpoint-tests-1.json | 295 + .../athena/endpoint-tests-1.json | 1491 ++ .../auditmanager/endpoint-tests-1.json | 667 + .../autoscaling-plans/endpoint-tests-1.json | 1395 ++ .../autoscaling/endpoint-tests-1.json | 1799 +++ .../backup-gateway/endpoint-tests-1.json | 1239 ++ .../backup/endpoint-tests-1.json | 1543 ++ .../backupstorage/endpoint-tests-1.json | 251 + .../batch/endpoint-tests-1.json | 1447 ++ .../billingconductor/endpoint-tests-1.json | 65 + .../braket/endpoint-tests-1.json | 251 + .../budgets/endpoint-tests-1.json | 87 + .../endpoint-rules/ce/endpoint-tests-1.json | 87 + .../chime-sdk-identity/endpoint-tests-1.json | 147 + .../endpoint-tests-1.json | 251 + .../chime-sdk-meetings/endpoint-tests-1.json | 355 + .../chime-sdk-messaging/endpoint-tests-1.json | 147 + .../chime-sdk-voice/endpoint-tests-1.json | 295 + .../chime/endpoint-tests-1.json | 65 + .../cloud9/endpoint-tests-1.json | 1135 ++ .../cloudcontrol/endpoint-tests-1.json | 1499 ++ .../clouddirectory/endpoint-tests-1.json | 1135 ++ .../cloudformation/endpoint-tests-1.json | 1799 +++ .../cloudfront/endpoint-tests-1.json | 87 + .../cloudhsm/endpoint-tests-1.json | 147 + .../cloudhsmv2/endpoint-tests-1.json | 1343 ++ .../cloudsearch/endpoint-tests-1.json | 563 + .../cloudsearchdomain/endpoint-tests-1.json | 43 + .../cloudtrail/endpoint-tests-1.json | 1799 +++ .../cloudwatch/endpoint-tests-1.json | 1851 +++ .../codeartifact/endpoint-tests-1.json | 719 + .../codebuild/endpoint-tests-1.json | 1591 +++ .../codecatalyst/endpoint-tests-1.json | 104 + .../codecommit/endpoint-tests-1.json | 1499 ++ .../codedeploy/endpoint-tests-1.json | 1799 +++ .../codeguru-reviewer/endpoint-tests-1.json | 563 + .../codeguruprofiler/endpoint-tests-1.json | 563 + .../codepipeline/endpoint-tests-1.json | 1291 ++ .../endpoint-tests-1.json | 875 ++ .../endpoint-tests-1.json | 979 ++ .../codestar/endpoint-tests-1.json | 719 + .../cognito-identity/endpoint-tests-1.json | 1083 ++ .../cognito-idp/endpoint-tests-1.json | 1083 ++ .../cognito-sync/endpoint-tests-1.json | 615 + .../comprehend/endpoint-tests-1.json | 1235 ++ .../comprehendmedical/endpoint-tests-1.json | 459 + .../compute-optimizer/endpoint-tests-1.json | 1395 ++ .../config/endpoint-tests-1.json | 1799 +++ .../endpoint-tests-1.json | 563 + .../connect/endpoint-tests-1.json | 667 + .../connectcampaigns/endpoint-tests-1.json | 251 + .../connectcases/endpoint-tests-1.json | 295 + .../connectparticipant/endpoint-tests-1.json | 667 + .../controltower/endpoint-tests-1.json | 927 ++ .../endpoint-rules/cur/endpoint-tests-1.json | 147 + .../customer-profiles/endpoint-tests-1.json | 563 + .../databrew/endpoint-tests-1.json | 1187 ++ .../dataexchange/endpoint-tests-1.json | 615 + .../datapipeline/endpoint-tests-1.json | 455 + .../datasync/endpoint-tests-1.json | 1543 ++ .../endpoint-rules/dax/endpoint-tests-1.json | 1083 ++ .../detective/endpoint-tests-1.json | 1187 ++ .../devicefarm/endpoint-tests-1.json | 95 + .../devops-guru/endpoint-tests-1.json | 875 ++ .../directconnect/endpoint-tests-1.json | 1799 +++ .../discovery/endpoint-tests-1.json | 407 + .../endpoint-rules/dlm/endpoint-tests-1.json | 1395 ++ .../endpoint-rules/dms/endpoint-tests-1.json | 1727 +++ .../docdb-elastic/endpoint-tests-1.json | 295 + .../docdb/endpoint-tests-1.json | 1799 +++ .../endpoint-rules/drs/endpoint-tests-1.json | 1187 ++ .../endpoint-rules/ds/endpoint-tests-1.json | 1539 ++ .../dynamodb/endpoint-tests-1.json | 1799 +++ .../dynamodbstreams/endpoint-tests-1.json | 1799 +++ .../endpoint-rules/ebs/endpoint-tests-1.json | 43 + .../endpoint-tests-1.json | 43 + .../endpoint-rules/ec2/endpoint-tests-1.json | 1899 +++ .../ecr-public/endpoint-tests-1.json | 147 + .../endpoint-rules/ecr/endpoint-tests-1.json | 1799 +++ .../endpoint-rules/ecs/endpoint-tests-1.json | 1799 +++ .../endpoint-rules/efs/endpoint-tests-1.json | 1695 +++ .../endpoint-rules/eks/endpoint-tests-1.json | 1751 +++ .../elastic-inference/endpoint-tests-1.json | 407 + .../elasticache/endpoint-tests-1.json | 1799 +++ .../elasticbeanstalk/endpoint-tests-1.json | 1395 ++ .../elastictranscoder/endpoint-tests-1.json | 459 + .../endpoint-rules/elb/endpoint-tests-1.json | 1799 +++ .../elbv2/endpoint-tests-1.json | 1799 +++ .../emr-containers/endpoint-tests-1.json | 1031 ++ .../emr-serverless/endpoint-tests-1.json | 927 ++ .../endpoint-rules/emr/endpoint-tests-1.json | 1799 +++ .../endpoint-rules/es/endpoint-tests-1.json | 1799 +++ .../events/endpoint-tests-1.json | 1799 +++ .../evidently/endpoint-tests-1.json | 511 + .../finspace-data/endpoint-tests-1.json | 303 + .../finspace/endpoint-tests-1.json | 303 + .../firehose/endpoint-tests-1.json | 1643 +++ .../endpoint-rules/fis/endpoint-tests-1.json | 43 + .../endpoint-rules/fms/endpoint-tests-1.json | 1447 ++ .../forecast/endpoint-tests-1.json | 563 + .../forecastquery/endpoint-tests-1.json | 563 + .../frauddetector/endpoint-tests-1.json | 355 + .../endpoint-rules/fsx/endpoint-tests-1.json | 1491 ++ .../gamelift/endpoint-tests-1.json | 1239 ++ .../gamesparks/endpoint-tests-1.json | 147 + .../glacier/endpoint-tests-1.json | 1799 +++ .../globalaccelerator/endpoint-tests-1.json | 43 + .../endpoint-rules/glue/endpoint-tests-1.json | 1595 +++ .../grafana/endpoint-tests-1.json | 563 + .../greengrass/endpoint-tests-1.json | 971 ++ .../greengrassv2/endpoint-tests-1.json | 971 ++ .../groundstation/endpoint-tests-1.json | 719 + .../guardduty/endpoint-tests-1.json | 1543 ++ .../health/endpoint-tests-1.json | 117 + .../healthlake/endpoint-tests-1.json | 199 + .../honeycode/endpoint-tests-1.json | 95 + .../endpoint-rules/iam/endpoint-tests-1.json | 153 + .../identitystore/endpoint-tests-1.json | 823 ++ .../imagebuilder/endpoint-tests-1.json | 43 + .../importexport/endpoint-tests-1.json | 65 + .../inspector/endpoint-tests-1.json | 771 + .../inspector2/endpoint-tests-1.json | 1239 ++ .../iot-data/endpoint-tests-1.json | 1335 ++ .../iot-jobs-data/endpoint-tests-1.json | 1283 ++ .../iot-roborunner/endpoint-tests-1.json | 295 + .../endpoint-rules/iot/endpoint-tests-1.json | 1335 ++ .../iot1click-devices/endpoint-tests-1.json | 95 + .../iot1click-projects/endpoint-tests-1.json | 407 + .../iotanalytics/endpoint-tests-1.json | 511 + .../iotdeviceadvisor/endpoint-tests-1.json | 251 + .../iotevents-data/endpoint-tests-1.json | 43 + .../iotevents/endpoint-tests-1.json | 823 ++ .../iotfleethub/endpoint-tests-1.json | 719 + .../iotfleetwise/endpoint-tests-1.json | 147 + .../iotsecuretunneling/endpoint-tests-1.json | 1283 ++ .../iotsitewise/endpoint-tests-1.json | 771 + .../iotthingsgraph/endpoint-tests-1.json | 407 + .../iottwinmaker/endpoint-tests-1.json | 355 + .../iotwireless/endpoint-tests-1.json | 563 + .../endpoint-rules/ivs/endpoint-tests-1.json | 407 + .../ivschat/endpoint-tests-1.json | 407 + .../kafka/endpoint-tests-1.json | 1395 ++ .../kafkaconnect/endpoint-tests-1.json | 979 ++ .../kendra/endpoint-tests-1.json | 43 + .../keyspaces/endpoint-tests-1.json | 1187 ++ .../endpoint-tests-1.json | 1279 ++ .../kinesis-video-media/endpoint-tests-1.json | 1279 ++ .../endpoint-tests-1.json | 1279 ++ .../kinesis/endpoint-tests-1.json | 1903 +++ .../kinesisanalytics/endpoint-tests-1.json | 1421 ++ .../kinesisanalyticsv2/endpoint-tests-1.json | 1421 ++ .../kinesisvideo/endpoint-tests-1.json | 1279 ++ .../endpoint-rules/kms/endpoint-tests-1.json | 1799 +++ .../lakeformation/endpoint-tests-1.json | 1343 ++ .../lambda/endpoint-tests-1.json | 1799 +++ .../lex-models/endpoint-tests-1.json | 511 + .../lex-runtime/endpoint-tests-1.json | 511 + .../lexv2-models/endpoint-tests-1.json | 615 + .../lexv2-runtime/endpoint-tests-1.json | 615 + .../endpoint-tests-1.json | 1135 ++ .../license-manager/endpoint-tests-1.json | 1491 ++ .../lightsail/endpoint-tests-1.json | 771 + .../location/endpoint-tests-1.json | 511 + .../endpoint-rules/logs/endpoint-tests-1.json | 1799 +++ .../lookoutequipment/endpoint-tests-1.json | 199 + .../lookoutmetrics/endpoint-tests-1.json | 511 + .../lookoutvision/endpoint-tests-1.json | 407 + .../endpoint-rules/m2/endpoint-tests-1.json | 407 + .../machinelearning/endpoint-tests-1.json | 147 + .../macie/endpoint-tests-1.json | 43 + .../macie2/endpoint-tests-1.json | 1135 ++ .../managedblockchain/endpoint-tests-1.json | 407 + .../marketplace-catalog/endpoint-tests-1.json | 147 + .../endpoint-tests-1.json | 95 + .../endpoint-tests-1.json | 95 + .../mediaconnect/endpoint-tests-1.json | 875 ++ .../mediaconvert/endpoint-tests-1.json | 1127 ++ .../medialive/endpoint-tests-1.json | 139 + .../mediapackage-vod/endpoint-tests-1.json | 919 ++ .../mediapackage/endpoint-tests-1.json | 919 ++ .../mediastore-data/endpoint-tests-1.json | 511 + .../mediastore/endpoint-tests-1.json | 511 + .../mediatailor/endpoint-tests-1.json | 563 + .../memorydb/endpoint-tests-1.json | 979 ++ .../meteringmarketplace/endpoint-tests-1.json | 1651 +++ .../endpoint-rules/mgh/endpoint-tests-1.json | 407 + .../endpoint-rules/mgn/endpoint-tests-1.json | 1187 ++ .../endpoint-tests-1.json | 43 + .../migrationhub-config/endpoint-tests-1.json | 511 + .../endpoint-tests-1.json | 295 + .../endpoint-tests-1.json | 407 + .../mobile/endpoint-tests-1.json | 43 + .../endpoint-rules/mq/endpoint-tests-1.json | 1543 ++ .../mturk/endpoint-tests-1.json | 95 + .../endpoint-rules/mwaa/endpoint-tests-1.json | 1135 ++ .../neptune/endpoint-tests-1.json | 1799 +++ .../network-firewall/endpoint-tests-1.json | 1339 ++ .../networkmanager/endpoint-tests-1.json | 87 + .../nimble/endpoint-tests-1.json | 355 + .../endpoint-rules/oam/endpoint-tests-1.json | 295 + .../omics/endpoint-tests-1.json | 295 + .../opensearch/endpoint-tests-1.json | 1799 +++ .../endpoint-tests-1.json | 295 + .../opsworks/endpoint-tests-1.json | 823 ++ .../opsworkscm/endpoint-tests-1.json | 511 + .../organizations/endpoint-tests-1.json | 109 + .../outposts/endpoint-tests-1.json | 1387 ++ .../panorama/endpoint-tests-1.json | 43 + .../personalize-events/endpoint-tests-1.json | 43 + .../personalize-runtime/endpoint-tests-1.json | 43 + .../personalize/endpoint-tests-1.json | 667 + .../endpoint-rules/pi/endpoint-tests-1.json | 1499 ++ .../pinpoint-email/endpoint-tests-1.json | 1239 ++ .../endpoint-tests-1.json | 1135 ++ .../pinpoint-sms-voice/endpoint-tests-1.json | 295 + .../pinpoint/endpoint-tests-1.json | 719 + .../pipes/endpoint-tests-1.json | 295 + .../polly/endpoint-tests-1.json | 1135 ++ .../pricing/endpoint-tests-1.json | 147 + .../privatenetworks/endpoint-tests-1.json | 199 + .../proton/endpoint-tests-1.json | 615 + .../qldb-session/endpoint-tests-1.json | 615 + .../endpoint-rules/qldb/endpoint-tests-1.json | 615 + .../quicksight/endpoint-tests-1.json | 1031 ++ .../endpoint-rules/ram/endpoint-tests-1.json | 1591 +++ .../endpoint-rules/rbin/endpoint-tests-1.json | 1603 +++ .../rds-data/endpoint-tests-1.json | 771 + .../endpoint-rules/rds/endpoint-tests-1.json | 1799 +++ .../redshift-data/endpoint-tests-1.json | 43 + .../redshift-serverless/endpoint-tests-1.json | 615 + .../redshift/endpoint-tests-1.json | 1799 +++ .../rekognition/endpoint-tests-1.json | 771 + .../resiliencehub/endpoint-tests-1.json | 1083 ++ .../resource-explorer-2/endpoint-tests-1.json | 1175 ++ .../resource-groups/endpoint-tests-1.json | 1495 ++ .../endpoint-tests-1.json | 1751 +++ .../robomaker/endpoint-tests-1.json | 459 + .../rolesanywhere/endpoint-tests-1.json | 1187 ++ .../endpoint-tests-1.json | 43 + .../endpoint-tests-1.json | 65 + .../endpoint-tests-1.json | 43 + .../route53/endpoint-tests-1.json | 153 + .../route53domains/endpoint-tests-1.json | 95 + .../route53resolver/endpoint-tests-1.json | 1591 +++ .../endpoint-rules/rum/endpoint-tests-1.json | 563 + .../endpoint-rules/s3/endpoint-tests-1.json | 6457 +++++++++ .../s3control/endpoint-tests-1.json | 3393 +++++ .../s3outposts/endpoint-tests-1.json | 1387 ++ .../endpoint-tests-1.json | 43 + .../sagemaker-edge/endpoint-tests-1.json | 355 + .../endpoint-tests-1.json | 43 + .../endpoint-tests-1.json | 295 + .../sagemaker-runtime/endpoint-tests-1.json | 1439 ++ .../sagemaker/endpoint-tests-1.json | 1543 ++ .../savingsplans/endpoint-tests-1.json | 65 + .../scheduler/endpoint-tests-1.json | 295 + .../schemas/endpoint-tests-1.json | 927 ++ .../endpoint-rules/sdb/endpoint-tests-1.json | 459 + .../secretsmanager/endpoint-tests-1.json | 1799 +++ .../securityhub/endpoint-tests-1.json | 1447 ++ .../securitylake/endpoint-tests-1.json | 295 + .../serverlessrepo/endpoint-tests-1.json | 1187 ++ .../service-quotas/endpoint-tests-1.json | 1447 ++ .../endpoint-tests-1.json | 1291 ++ .../servicecatalog/endpoint-tests-1.json | 1395 ++ .../servicediscovery/endpoint-tests-1.json | 338 + .../endpoint-rules/ses/endpoint-tests-1.json | 1239 ++ .../sesv2/endpoint-tests-1.json | 1239 ++ .../shield/endpoint-tests-1.json | 65 + .../signer/endpoint-tests-1.json | 1291 ++ .../simspaceweaver/endpoint-tests-1.json | 295 + .../sms-voice/endpoint-tests-1.json | 295 + .../endpoint-rules/sms/endpoint-tests-1.json | 1291 ++ .../endpoint-tests-1.json | 1291 ++ .../snowball/endpoint-tests-1.json | 1539 ++ .../endpoint-rules/sns/endpoint-tests-1.json | 1799 +++ .../endpoint-rules/sqs/endpoint-tests-1.json | 1799 +++ .../ssm-contacts/endpoint-tests-1.json | 43 + .../ssm-incidents/endpoint-tests-1.json | 875 ++ .../ssm-sap/endpoint-tests-1.json | 295 + .../endpoint-rules/ssm/endpoint-tests-1.json | 1799 +++ .../sso-admin/endpoint-tests-1.json | 1291 ++ .../sso-oidc/endpoint-tests-1.json | 1291 ++ .../endpoint-rules/sso/endpoint-tests-1.json | 1135 ++ .../stepfunctions/endpoint-tests-1.json | 1799 +++ .../storagegateway/endpoint-tests-1.json | 1495 ++ .../endpoint-rules/sts/endpoint-tests-1.json | 2546 ++++ .../support-app/endpoint-tests-1.json | 199 + .../support/endpoint-tests-1.json | 205 + .../endpoint-rules/swf/endpoint-tests-1.json | 1799 +++ .../synthetics/endpoint-tests-1.json | 1751 +++ .../textract/endpoint-tests-1.json | 871 ++ .../timestream-query/endpoint-tests-1.json | 43 + .../timestream-write/endpoint-tests-1.json | 43 + .../transcribe/endpoint-tests-1.json | 1287 ++ .../transfer/endpoint-tests-1.json | 1395 ++ .../translate/endpoint-tests-1.json | 975 ++ .../voice-id/endpoint-tests-1.json | 459 + .../waf-regional/endpoint-tests-1.json | 1447 ++ .../endpoint-rules/waf/endpoint-tests-1.json | 65 + .../wafv2/endpoint-tests-1.json | 1395 ++ .../wellarchitected/endpoint-tests-1.json | 1083 ++ .../wisdom/endpoint-tests-1.json | 355 + .../workdocs/endpoint-tests-1.json | 355 + .../worklink/endpoint-tests-1.json | 43 + .../workmail/endpoint-tests-1.json | 199 + .../workmailmessageflow/endpoint-tests-1.json | 43 + .../workspaces-web/endpoint-tests-1.json | 615 + .../workspaces/endpoint-tests-1.json | 967 ++ .../endpoint-rules/xray/endpoint-tests-1.json | 1603 +++ .../2015-12-08/endpoint-rule-set-1.json | 340 + tests/functional/test_context_params.py | 490 + tests/functional/test_credentials.py | 151 + tests/functional/test_endpoint_rulesets.py | 307 + tests/functional/test_eventbridge.py | 20 +- tests/functional/test_importexport.py | 51 + tests/functional/test_model_backcompat.py | 6 +- tests/functional/test_model_completeness.py | 43 +- tests/functional/test_mturk.py | 2 +- tests/functional/test_paginator_config.py | 6 - tests/functional/test_regions.py | 85 +- tests/functional/test_s3.py | 360 +- tests/functional/test_s3_control_redirects.py | 16 +- tests/functional/test_sagemaker.py | 1 + tests/functional/test_sts.py | 26 + tests/integration/test_client_http.py | 9 +- tests/integration/test_glacier.py | 5 +- tests/integration/test_s3.py | 4 +- tests/unit/auth/test_signers.py | 13 +- tests/unit/auth/test_sigv4.py | 14 +- tests/unit/cfg/aws_sso_session_config | 6 + tests/unit/crt/auth/test_crt_signers.py | 10 + .../data/endpoints/test-cases/aws-region.json | 32 + .../endpoints/test-cases/default-values.json | 45 + .../endpoints/test-cases/eventbridge.json | 48 + tests/unit/data/endpoints/test-cases/fns.json | 50 + .../data/endpoints/test-cases/headers.json | 25 + .../is-virtual-hostable-s3-bucket.json | 148 + .../test-cases/local-region-override.json | 27 + .../data/endpoints/test-cases/parse-arn.json | 152 + .../data/endpoints/test-cases/parse-url.json | 153 + .../endpoints/test-cases/partition-fn.json | 125 + .../data/endpoints/test-cases/substring.json | 185 + .../data/endpoints/test-cases/uri-encode.json | 75 + .../endpoints/test-cases/valid-hostlabel.json | 56 + .../endpoints/valid-rules/aws-region.json | 44 + .../endpoints/valid-rules/default-values.json | 44 + .../valid-rules/deprecated-param.json | 41 + .../endpoints/valid-rules/eventbridge.json | 323 + .../unit/data/endpoints/valid-rules/fns.json | 128 + .../valid-rules/get-attr-type-inference.json | 46 + .../data/endpoints/valid-rules/headers.json | 44 + .../is-virtual-hostable-s3-bucket.json | 48 + .../valid-rules/local-region-override.json | 36 + .../valid-rules/minimal-ruleset.json | 29 + .../data/endpoints/valid-rules/parse-arn.json | 251 + .../data/endpoints/valid-rules/parse-url.json | 102 + .../endpoints/valid-rules/partition-fn.json | 101 + .../data/endpoints/valid-rules/substring.json | 95 + .../endpoints/valid-rules/uri-encode.json | 44 + .../valid-rules/valid-hostlabel.json | 55 + tests/unit/docs/__init__.py | 26 + tests/unit/docs/bcdoc/test_docstringparser.py | 50 + tests/unit/docs/bcdoc/test_style.py | 17 +- tests/unit/test_args.py | 294 +- tests/unit/test_auth_bearer.py | 72 + tests/unit/test_awsrequest.py | 9 +- tests/unit/test_client.py | 129 +- tests/unit/test_configloader.py | 20 +- tests/unit/test_credentials.py | 12 +- tests/unit/test_endpoint.py | 12 +- tests/unit/test_endpoint_provider.py | 453 + tests/unit/test_handlers.py | 191 +- tests/unit/test_http_session.py | 20 + tests/unit/test_loaders.py | 33 + tests/unit/test_model.py | 99 + tests/unit/test_parsers.py | 87 + tests/unit/test_response.py | 3 +- tests/unit/test_serialize.py | 4 +- tests/unit/test_session.py | 38 +- tests/unit/test_session_legacy.py | 2 + tests/unit/test_signers.py | 28 +- tests/unit/test_tokens.py | 338 + tests/unit/test_utils.py | 286 +- tests/unit/test_validate.py | 4 +- tests/unit/test_waiters.py | 4 +- 1301 files changed, 632231 insertions(+), 17289 deletions(-) create mode 100644 botocore/data/accessanalyzer/2019-11-01/endpoint-rule-set-1.json rename botocore/data/{cloudfront/2017-03-25 => accessanalyzer/2019-11-01}/examples-1.json (100%) create mode 100644 botocore/data/account/2021-02-01/endpoint-rule-set-1.json create mode 100644 botocore/data/account/2021-02-01/examples-1.json create mode 100644 botocore/data/acm-pca/2017-08-22/endpoint-rule-set-1.json create mode 100644 botocore/data/acm/2015-12-08/endpoint-rule-set-1.json create mode 100644 botocore/data/alexaforbusiness/2017-11-09/endpoint-rule-set-1.json create mode 100644 botocore/data/amp/2020-08-01/endpoint-rule-set-1.json create mode 100644 botocore/data/amp/2020-08-01/examples-1.json create mode 100644 botocore/data/amplify/2017-07-25/endpoint-rule-set-1.json create mode 100644 botocore/data/amplify/2017-07-25/examples-1.json create mode 100644 botocore/data/amplifybackend/2020-08-11/endpoint-rule-set-1.json create mode 100644 botocore/data/amplifyuibuilder/2021-08-11/endpoint-rule-set-1.json create mode 100644 botocore/data/amplifyuibuilder/2021-08-11/examples-1.json create mode 100644 botocore/data/apigateway/2015-07-09/endpoint-rule-set-1.json create mode 100644 botocore/data/apigatewaymanagementapi/2018-11-29/endpoint-rule-set-1.json create mode 100644 botocore/data/apigatewayv2/2018-11-29/endpoint-rule-set-1.json create mode 100644 botocore/data/appconfig/2019-10-09/endpoint-rule-set-1.json create mode 100644 botocore/data/appconfig/2019-10-09/examples-1.json create mode 100644 botocore/data/appconfigdata/2021-11-11/endpoint-rule-set-1.json create mode 100644 botocore/data/appconfigdata/2021-11-11/examples-1.json create mode 100644 botocore/data/appflow/2020-08-23/endpoint-rule-set-1.json create mode 100644 botocore/data/appflow/2020-08-23/examples-1.json create mode 100644 botocore/data/appintegrations/2020-07-29/endpoint-rule-set-1.json create mode 100644 botocore/data/appintegrations/2020-07-29/examples-1.json create mode 100644 botocore/data/application-autoscaling/2016-02-06/endpoint-rule-set-1.json create mode 100644 botocore/data/application-insights/2018-11-25/endpoint-rule-set-1.json create mode 100644 botocore/data/application-insights/2018-11-25/examples-1.json create mode 100644 botocore/data/applicationcostprofiler/2020-09-10/endpoint-rule-set-1.json create mode 100644 botocore/data/applicationcostprofiler/2020-09-10/examples-1.json create mode 100644 botocore/data/appmesh/2018-10-01/endpoint-rule-set-1.json create mode 100644 botocore/data/appmesh/2018-10-01/examples-1.json create mode 100644 botocore/data/appmesh/2019-01-25/endpoint-rule-set-1.json create mode 100644 botocore/data/appmesh/2019-01-25/examples-1.json create mode 100644 botocore/data/apprunner/2020-05-15/endpoint-rule-set-1.json create mode 100644 botocore/data/apprunner/2020-05-15/examples-1.json create mode 100644 botocore/data/appstream/2016-12-01/endpoint-rule-set-1.json create mode 100644 botocore/data/appsync/2017-07-25/endpoint-rule-set-1.json create mode 100644 botocore/data/arc-zonal-shift/2022-10-30/endpoint-rule-set-1.json create mode 100644 botocore/data/arc-zonal-shift/2022-10-30/paginators-1.json create mode 100644 botocore/data/arc-zonal-shift/2022-10-30/service-2.json create mode 100644 botocore/data/athena/2017-05-18/endpoint-rule-set-1.json create mode 100644 botocore/data/auditmanager/2017-07-25/endpoint-rule-set-1.json create mode 100644 botocore/data/auditmanager/2017-07-25/examples-1.json create mode 100644 botocore/data/autoscaling-plans/2018-01-06/endpoint-rule-set-1.json create mode 100644 botocore/data/autoscaling/2011-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/backup-gateway/2021-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/backup-gateway/2021-01-01/examples-1.json create mode 100644 botocore/data/backup/2018-11-15/endpoint-rule-set-1.json create mode 100644 botocore/data/backup/2018-11-15/examples-1.json create mode 100644 botocore/data/backupstorage/2018-04-10/endpoint-rule-set-1.json create mode 100644 botocore/data/backupstorage/2018-04-10/paginators-1.json create mode 100644 botocore/data/backupstorage/2018-04-10/service-2.json create mode 100644 botocore/data/batch/2016-08-10/endpoint-rule-set-1.json create mode 100644 botocore/data/billingconductor/2021-07-30/endpoint-rule-set-1.json create mode 100644 botocore/data/billingconductor/2021-07-30/examples-1.json create mode 100644 botocore/data/braket/2019-09-01/endpoint-rule-set-1.json create mode 100644 botocore/data/braket/2019-09-01/examples-1.json create mode 100644 botocore/data/budgets/2016-10-20/endpoint-rule-set-1.json create mode 100644 botocore/data/ce/2017-10-25/endpoint-rule-set-1.json create mode 100644 botocore/data/chime-sdk-identity/2021-04-20/endpoint-rule-set-1.json create mode 100644 botocore/data/chime-sdk-identity/2021-04-20/examples-1.json create mode 100644 botocore/data/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json create mode 100644 botocore/data/chime-sdk-meetings/2021-07-15/endpoint-rule-set-1.json create mode 100644 botocore/data/chime-sdk-meetings/2021-07-15/examples-1.json create mode 100644 botocore/data/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json create mode 100644 botocore/data/chime-sdk-messaging/2021-05-15/examples-1.json create mode 100644 botocore/data/chime-sdk-voice/2022-08-03/endpoint-rule-set-1.json create mode 100644 botocore/data/chime-sdk-voice/2022-08-03/paginators-1.json create mode 100644 botocore/data/chime-sdk-voice/2022-08-03/service-2.json create mode 100644 botocore/data/chime/2018-05-01/endpoint-rule-set-1.json create mode 100644 botocore/data/chime/2018-05-01/examples-1.json create mode 100644 botocore/data/cloud9/2017-09-23/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudcontrol/2021-09-30/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudcontrol/2021-09-30/examples-1.json create mode 100644 botocore/data/clouddirectory/2016-05-10/endpoint-rule-set-1.json create mode 100644 botocore/data/clouddirectory/2016-05-10/examples-1.json create mode 100644 botocore/data/clouddirectory/2017-01-11/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudformation/2010-05-15/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2014-05-31/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2014-10-21/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2014-11-06/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2015-04-17/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2015-07-27/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2015-09-17/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2016-01-13/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2016-01-28/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2016-01-28/examples-1.json create mode 100644 botocore/data/cloudfront/2016-08-01/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2016-08-01/examples-1.json create mode 100644 botocore/data/cloudfront/2016-08-20/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2016-09-07/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2016-09-07/examples-1.json create mode 100644 botocore/data/cloudfront/2016-09-29/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2016-09-29/examples-1.json create mode 100644 botocore/data/cloudfront/2016-11-25/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2017-03-25/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2017-10-30/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2018-06-18/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2018-11-05/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2019-03-26/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudfront/2020-05-31/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudhsm/2014-05-30/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudsearch/2011-02-01/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudsearch/2013-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudsearch/2013-01-01/examples-1.json create mode 100644 botocore/data/cloudsearchdomain/2013-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudtrail/2013-11-01/endpoint-rule-set-1.json create mode 100644 botocore/data/cloudwatch/2010-08-01/endpoint-rule-set-1.json create mode 100644 botocore/data/codeartifact/2018-09-22/endpoint-rule-set-1.json create mode 100644 botocore/data/codeartifact/2018-09-22/examples-1.json create mode 100644 botocore/data/codebuild/2016-10-06/endpoint-rule-set-1.json create mode 100644 botocore/data/codecatalyst/2022-09-28/endpoint-rule-set-1.json create mode 100644 botocore/data/codecatalyst/2022-09-28/paginators-1.json create mode 100644 botocore/data/codecatalyst/2022-09-28/service-2.json create mode 100644 botocore/data/codecatalyst/2022-09-28/waiters-2.json create mode 100644 botocore/data/codecommit/2015-04-13/endpoint-rule-set-1.json create mode 100644 botocore/data/codedeploy/2014-10-06/endpoint-rule-set-1.json create mode 100644 botocore/data/codeguru-reviewer/2019-09-19/endpoint-rule-set-1.json create mode 100644 botocore/data/codeguru-reviewer/2019-09-19/examples-1.json create mode 100644 botocore/data/codeguruprofiler/2019-07-18/endpoint-rule-set-1.json create mode 100644 botocore/data/codeguruprofiler/2019-07-18/examples-1.json create mode 100644 botocore/data/codepipeline/2015-07-09/endpoint-rule-set-1.json create mode 100644 botocore/data/codestar-connections/2019-12-01/endpoint-rule-set-1.json create mode 100644 botocore/data/codestar-connections/2019-12-01/examples-1.json create mode 100644 botocore/data/codestar-notifications/2019-10-15/endpoint-rule-set-1.json create mode 100644 botocore/data/codestar-notifications/2019-10-15/examples-1.json create mode 100644 botocore/data/codestar/2017-04-19/endpoint-rule-set-1.json create mode 100644 botocore/data/cognito-identity/2014-06-30/endpoint-rule-set-1.json create mode 100644 botocore/data/cognito-idp/2016-04-18/endpoint-rule-set-1.json create mode 100644 botocore/data/cognito-sync/2014-06-30/endpoint-rule-set-1.json create mode 100644 botocore/data/cognito-sync/2014-06-30/examples-1.json create mode 100644 botocore/data/comprehend/2017-11-27/endpoint-rule-set-1.json create mode 100644 botocore/data/comprehendmedical/2018-10-30/endpoint-rule-set-1.json create mode 100644 botocore/data/comprehendmedical/2018-10-30/examples-1.json create mode 100644 botocore/data/compute-optimizer/2019-11-01/endpoint-rule-set-1.json create mode 100644 botocore/data/compute-optimizer/2019-11-01/examples-1.json create mode 100644 botocore/data/config/2014-11-12/endpoint-rule-set-1.json create mode 100644 botocore/data/connect-contact-lens/2020-08-21/endpoint-rule-set-1.json create mode 100644 botocore/data/connect-contact-lens/2020-08-21/examples-1.json create mode 100644 botocore/data/connect/2017-08-08/endpoint-rule-set-1.json create mode 100644 botocore/data/connectcampaigns/2021-01-30/endpoint-rule-set-1.json create mode 100644 botocore/data/connectcampaigns/2021-01-30/paginators-1.json create mode 100644 botocore/data/connectcampaigns/2021-01-30/service-2.json create mode 100644 botocore/data/connectcases/2022-10-03/endpoint-rule-set-1.json create mode 100644 botocore/data/connectcases/2022-10-03/paginators-1.json create mode 100644 botocore/data/connectcases/2022-10-03/service-2.json create mode 100644 botocore/data/connectparticipant/2018-09-07/endpoint-rule-set-1.json create mode 100644 botocore/data/connectparticipant/2018-09-07/examples-1.json create mode 100644 botocore/data/controltower/2018-05-10/endpoint-rule-set-1.json create mode 100644 botocore/data/controltower/2018-05-10/paginators-1.json create mode 100644 botocore/data/controltower/2018-05-10/service-2.json create mode 100644 botocore/data/cur/2017-01-06/endpoint-rule-set-1.json create mode 100644 botocore/data/customer-profiles/2020-08-15/endpoint-rule-set-1.json create mode 100644 botocore/data/customer-profiles/2020-08-15/examples-1.json create mode 100644 botocore/data/databrew/2017-07-25/endpoint-rule-set-1.json create mode 100644 botocore/data/databrew/2017-07-25/examples-1.json create mode 100644 botocore/data/dataexchange/2017-07-25/endpoint-rule-set-1.json create mode 100644 botocore/data/dataexchange/2017-07-25/waiters-2.json create mode 100644 botocore/data/datapipeline/2012-10-29/endpoint-rule-set-1.json create mode 100644 botocore/data/datapipeline/2012-10-29/examples-1.json create mode 100644 botocore/data/datasync/2018-11-09/endpoint-rule-set-1.json create mode 100644 botocore/data/datasync/2018-11-09/examples-1.json create mode 100644 botocore/data/dax/2017-04-19/endpoint-rule-set-1.json create mode 100644 botocore/data/detective/2018-10-26/endpoint-rule-set-1.json create mode 100644 botocore/data/detective/2018-10-26/examples-1.json create mode 100644 botocore/data/devicefarm/2015-06-23/endpoint-rule-set-1.json create mode 100644 botocore/data/devops-guru/2020-12-01/endpoint-rule-set-1.json create mode 100644 botocore/data/devops-guru/2020-12-01/examples-1.json create mode 100644 botocore/data/directconnect/2012-10-25/endpoint-rule-set-1.json create mode 100644 botocore/data/discovery/2015-11-01/endpoint-rule-set-1.json create mode 100644 botocore/data/dlm/2018-01-12/endpoint-rule-set-1.json create mode 100644 botocore/data/dms/2016-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/docdb-elastic/2022-11-28/endpoint-rule-set-1.json create mode 100644 botocore/data/docdb-elastic/2022-11-28/paginators-1.json create mode 100644 botocore/data/docdb-elastic/2022-11-28/service-2.json create mode 100644 botocore/data/docdb/2014-10-31/endpoint-rule-set-1.json create mode 100644 botocore/data/docdb/2014-10-31/examples-1.json create mode 100644 botocore/data/drs/2020-02-26/endpoint-rule-set-1.json create mode 100644 botocore/data/drs/2020-02-26/examples-1.json create mode 100644 botocore/data/ds/2015-04-16/endpoint-rule-set-1.json create mode 100644 botocore/data/dynamodb/2011-12-05/endpoint-rule-set-1.json create mode 100644 botocore/data/dynamodb/2011-12-05/examples-1.json create mode 100644 botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json create mode 100644 botocore/data/dynamodbstreams/2012-08-10/endpoint-rule-set-1.json create mode 100644 botocore/data/ebs/2019-11-02/endpoint-rule-set-1.json create mode 100644 botocore/data/ebs/2019-11-02/examples-1.json create mode 100644 botocore/data/ec2-instance-connect/2018-04-02/endpoint-rule-set-1.json create mode 100644 botocore/data/ec2-instance-connect/2018-04-02/examples-1.json create mode 100644 botocore/data/ec2/2014-09-01/endpoint-rule-set-1.json create mode 100644 botocore/data/ec2/2014-10-01/endpoint-rule-set-1.json create mode 100644 botocore/data/ec2/2015-03-01/endpoint-rule-set-1.json create mode 100644 botocore/data/ec2/2015-04-15/endpoint-rule-set-1.json create mode 100644 botocore/data/ec2/2015-10-01/endpoint-rule-set-1.json create mode 100644 botocore/data/ec2/2015-10-01/examples-1.json create mode 100644 botocore/data/ec2/2016-04-01/endpoint-rule-set-1.json create mode 100644 botocore/data/ec2/2016-04-01/examples-1.json create mode 100644 botocore/data/ec2/2016-09-15/endpoint-rule-set-1.json create mode 100644 botocore/data/ec2/2016-11-15/endpoint-rule-set-1.json create mode 100644 botocore/data/ecr-public/2020-10-30/endpoint-rule-set-1.json create mode 100644 botocore/data/ecr-public/2020-10-30/examples-1.json create mode 100644 botocore/data/ecr/2015-09-21/endpoint-rule-set-1.json create mode 100644 botocore/data/ecs/2014-11-13/endpoint-rule-set-1.json create mode 100644 botocore/data/efs/2015-02-01/endpoint-rule-set-1.json create mode 100644 botocore/data/eks/2017-11-01/endpoint-rule-set-1.json create mode 100644 botocore/data/elastic-inference/2017-07-25/endpoint-rule-set-1.json create mode 100644 botocore/data/elastic-inference/2017-07-25/examples-1.json create mode 100644 botocore/data/elasticache/2014-09-30/endpoint-rule-set-1.json create mode 100644 botocore/data/elasticache/2015-02-02/endpoint-rule-set-1.json create mode 100644 botocore/data/elasticbeanstalk/2010-12-01/endpoint-rule-set-1.json create mode 100644 botocore/data/elastictranscoder/2012-09-25/endpoint-rule-set-1.json create mode 100644 botocore/data/elb/2012-06-01/endpoint-rule-set-1.json create mode 100644 botocore/data/elbv2/2015-12-01/endpoint-rule-set-1.json create mode 100644 botocore/data/emr-containers/2020-10-01/endpoint-rule-set-1.json create mode 100644 botocore/data/emr-containers/2020-10-01/examples-1.json create mode 100644 botocore/data/emr-serverless/2021-07-13/endpoint-rule-set-1.json create mode 100644 botocore/data/emr-serverless/2021-07-13/paginators-1.json create mode 100644 botocore/data/emr-serverless/2021-07-13/service-2.json create mode 100644 botocore/data/emr/2009-03-31/endpoint-rule-set-1.json create mode 100644 botocore/data/es/2015-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/events/2014-02-03/endpoint-rule-set-1.json create mode 100644 botocore/data/events/2015-10-07/endpoint-rule-set-1.json create mode 100644 botocore/data/evidently/2021-02-01/endpoint-rule-set-1.json create mode 100644 botocore/data/evidently/2021-02-01/examples-1.json create mode 100644 botocore/data/finspace-data/2020-07-13/endpoint-rule-set-1.json create mode 100644 botocore/data/finspace-data/2020-07-13/examples-1.json create mode 100644 botocore/data/finspace/2021-03-12/endpoint-rule-set-1.json create mode 100644 botocore/data/finspace/2021-03-12/examples-1.json create mode 100644 botocore/data/firehose/2015-08-04/endpoint-rule-set-1.json create mode 100644 botocore/data/fis/2020-12-01/endpoint-rule-set-1.json create mode 100644 botocore/data/fis/2020-12-01/examples-1.json create mode 100644 botocore/data/fms/2018-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/forecast/2018-06-26/endpoint-rule-set-1.json create mode 100644 botocore/data/forecast/2018-06-26/examples-1.json create mode 100644 botocore/data/forecastquery/2018-06-26/endpoint-rule-set-1.json create mode 100644 botocore/data/forecastquery/2018-06-26/examples-1.json create mode 100644 botocore/data/frauddetector/2019-11-15/endpoint-rule-set-1.json create mode 100644 botocore/data/frauddetector/2019-11-15/examples-1.json create mode 100644 botocore/data/fsx/2018-03-01/endpoint-rule-set-1.json create mode 100644 botocore/data/fsx/2018-03-01/examples-1.json create mode 100644 botocore/data/gamelift/2015-10-01/endpoint-rule-set-1.json create mode 100644 botocore/data/gamesparks/2021-08-17/endpoint-rule-set-1.json create mode 100644 botocore/data/gamesparks/2021-08-17/examples-1.json create mode 100644 botocore/data/glacier/2012-06-01/endpoint-rule-set-1.json create mode 100644 botocore/data/globalaccelerator/2018-08-08/endpoint-rule-set-1.json create mode 100644 botocore/data/globalaccelerator/2018-08-08/examples-1.json create mode 100644 botocore/data/glue/2017-03-31/endpoint-rule-set-1.json create mode 100644 botocore/data/grafana/2020-08-18/endpoint-rule-set-1.json create mode 100644 botocore/data/grafana/2020-08-18/examples-1.json create mode 100644 botocore/data/greengrass/2017-06-07/endpoint-rule-set-1.json create mode 100644 botocore/data/greengrassv2/2020-11-30/endpoint-rule-set-1.json create mode 100644 botocore/data/greengrassv2/2020-11-30/examples-1.json create mode 100644 botocore/data/groundstation/2019-05-23/endpoint-rule-set-1.json create mode 100644 botocore/data/groundstation/2019-05-23/examples-1.json create mode 100644 botocore/data/guardduty/2017-11-28/endpoint-rule-set-1.json create mode 100644 botocore/data/guardduty/2017-11-28/examples-1.json create mode 100644 botocore/data/health/2016-08-04/endpoint-rule-set-1.json create mode 100644 botocore/data/healthlake/2017-07-01/endpoint-rule-set-1.json create mode 100644 botocore/data/healthlake/2017-07-01/examples-1.json create mode 100644 botocore/data/honeycode/2020-03-01/endpoint-rule-set-1.json create mode 100644 botocore/data/honeycode/2020-03-01/examples-1.json create mode 100644 botocore/data/iam/2010-05-08/endpoint-rule-set-1.json create mode 100644 botocore/data/identitystore/2020-06-15/endpoint-rule-set-1.json create mode 100644 botocore/data/identitystore/2020-06-15/examples-1.json create mode 100644 botocore/data/imagebuilder/2019-12-02/endpoint-rule-set-1.json create mode 100644 botocore/data/imagebuilder/2019-12-02/examples-1.json create mode 100644 botocore/data/importexport/2010-06-01/endpoint-rule-set-1.json create mode 100644 botocore/data/inspector/2015-08-18/endpoint-rule-set-1.json create mode 100644 botocore/data/inspector/2016-02-16/endpoint-rule-set-1.json create mode 100644 botocore/data/inspector2/2020-06-08/endpoint-rule-set-1.json create mode 100644 botocore/data/inspector2/2020-06-08/examples-1.json create mode 100644 botocore/data/iot-data/2015-05-28/endpoint-rule-set-1.json create mode 100644 botocore/data/iot-data/2015-05-28/examples-1.json create mode 100644 botocore/data/iot-jobs-data/2017-09-29/endpoint-rule-set-1.json create mode 100644 botocore/data/iot-roborunner/2018-05-10/endpoint-rule-set-1.json create mode 100644 botocore/data/iot-roborunner/2018-05-10/paginators-1.json create mode 100644 botocore/data/iot-roborunner/2018-05-10/service-2.json create mode 100644 botocore/data/iot/2015-05-28/endpoint-rule-set-1.json create mode 100644 botocore/data/iot1click-devices/2018-05-14/endpoint-rule-set-1.json create mode 100644 botocore/data/iot1click-projects/2018-05-14/endpoint-rule-set-1.json create mode 100644 botocore/data/iotanalytics/2017-11-27/endpoint-rule-set-1.json create mode 100644 botocore/data/iotdeviceadvisor/2020-09-18/endpoint-rule-set-1.json create mode 100644 botocore/data/iotdeviceadvisor/2020-09-18/examples-1.json create mode 100644 botocore/data/iotevents-data/2018-10-23/endpoint-rule-set-1.json create mode 100644 botocore/data/iotevents-data/2018-10-23/examples-1.json create mode 100644 botocore/data/iotevents/2018-07-27/endpoint-rule-set-1.json create mode 100644 botocore/data/iotevents/2018-07-27/examples-1.json create mode 100644 botocore/data/iotfleethub/2020-11-03/endpoint-rule-set-1.json create mode 100644 botocore/data/iotfleethub/2020-11-03/examples-1.json create mode 100644 botocore/data/iotfleetwise/2021-06-17/endpoint-rule-set-1.json create mode 100644 botocore/data/iotfleetwise/2021-06-17/paginators-1.json create mode 100644 botocore/data/iotfleetwise/2021-06-17/service-2.json create mode 100644 botocore/data/iotfleetwise/2021-06-17/waiters-2.json create mode 100644 botocore/data/iotsecuretunneling/2018-10-05/endpoint-rule-set-1.json create mode 100644 botocore/data/iotsecuretunneling/2018-10-05/examples-1.json create mode 100644 botocore/data/iotsitewise/2019-12-02/endpoint-rule-set-1.json create mode 100644 botocore/data/iotsitewise/2019-12-02/examples-1.json create mode 100644 botocore/data/iotthingsgraph/2018-09-06/endpoint-rule-set-1.json create mode 100644 botocore/data/iotthingsgraph/2018-09-06/examples-1.json create mode 100644 botocore/data/iottwinmaker/2021-11-29/endpoint-rule-set-1.json create mode 100644 botocore/data/iottwinmaker/2021-11-29/examples-1.json create mode 100644 botocore/data/iotwireless/2020-11-22/endpoint-rule-set-1.json create mode 100644 botocore/data/iotwireless/2020-11-22/examples-1.json create mode 100644 botocore/data/ivs/2020-07-14/endpoint-rule-set-1.json create mode 100644 botocore/data/ivs/2020-07-14/examples-1.json create mode 100644 botocore/data/ivschat/2020-07-14/endpoint-rule-set-1.json create mode 100644 botocore/data/ivschat/2020-07-14/examples-1.json create mode 100644 botocore/data/kafka/2018-11-14/endpoint-rule-set-1.json create mode 100644 botocore/data/kafkaconnect/2021-09-14/endpoint-rule-set-1.json create mode 100644 botocore/data/kafkaconnect/2021-09-14/examples-1.json create mode 100644 botocore/data/kendra/2019-02-03/endpoint-rule-set-1.json create mode 100644 botocore/data/kendra/2019-02-03/examples-1.json create mode 100644 botocore/data/keyspaces/2022-02-10/endpoint-rule-set-1.json create mode 100644 botocore/data/keyspaces/2022-02-10/examples-1.json create mode 100644 botocore/data/kinesis-video-archived-media/2017-09-30/endpoint-rule-set-1.json create mode 100644 botocore/data/kinesis-video-media/2017-09-30/endpoint-rule-set-1.json create mode 100644 botocore/data/kinesis-video-signaling/2019-12-04/endpoint-rule-set-1.json create mode 100644 botocore/data/kinesis-video-signaling/2019-12-04/examples-1.json create mode 100644 botocore/data/kinesis/2013-12-02/endpoint-rule-set-1.json create mode 100644 botocore/data/kinesisanalytics/2015-08-14/endpoint-rule-set-1.json create mode 100644 botocore/data/kinesisanalyticsv2/2018-05-23/endpoint-rule-set-1.json create mode 100644 botocore/data/kinesisanalyticsv2/2018-05-23/examples-1.json create mode 100644 botocore/data/kinesisvideo/2017-09-30/endpoint-rule-set-1.json create mode 100644 botocore/data/kms/2014-11-01/endpoint-rule-set-1.json create mode 100644 botocore/data/lakeformation/2017-03-31/endpoint-rule-set-1.json create mode 100644 botocore/data/lakeformation/2017-03-31/examples-1.json create mode 100644 botocore/data/lambda/2014-11-11/endpoint-rule-set-1.json create mode 100644 botocore/data/lambda/2015-03-31/endpoint-rule-set-1.json create mode 100644 botocore/data/lex-models/2017-04-19/endpoint-rule-set-1.json create mode 100644 botocore/data/lex-runtime/2016-11-28/endpoint-rule-set-1.json create mode 100644 botocore/data/lexv2-models/2020-08-07/endpoint-rule-set-1.json create mode 100644 botocore/data/lexv2-models/2020-08-07/examples-1.json create mode 100644 botocore/data/lexv2-runtime/2020-08-07/endpoint-rule-set-1.json create mode 100644 botocore/data/lexv2-runtime/2020-08-07/examples-1.json create mode 100644 botocore/data/license-manager-user-subscriptions/2018-05-10/endpoint-rule-set-1.json create mode 100644 botocore/data/license-manager-user-subscriptions/2018-05-10/paginators-1.json create mode 100644 botocore/data/license-manager-user-subscriptions/2018-05-10/service-2.json create mode 100644 botocore/data/license-manager/2018-08-01/endpoint-rule-set-1.json create mode 100644 botocore/data/license-manager/2018-08-01/examples-1.json create mode 100644 botocore/data/lightsail/2016-11-28/endpoint-rule-set-1.json create mode 100644 botocore/data/location/2020-11-19/endpoint-rule-set-1.json create mode 100644 botocore/data/location/2020-11-19/examples-1.json create mode 100644 botocore/data/logs/2014-03-28/endpoint-rule-set-1.json create mode 100644 botocore/data/lookoutequipment/2020-12-15/endpoint-rule-set-1.json create mode 100644 botocore/data/lookoutequipment/2020-12-15/examples-1.json create mode 100644 botocore/data/lookoutmetrics/2017-07-25/endpoint-rule-set-1.json create mode 100644 botocore/data/lookoutmetrics/2017-07-25/examples-1.json create mode 100644 botocore/data/lookoutvision/2020-11-20/endpoint-rule-set-1.json create mode 100644 botocore/data/lookoutvision/2020-11-20/examples-1.json create mode 100644 botocore/data/m2/2021-04-28/endpoint-rule-set-1.json create mode 100644 botocore/data/m2/2021-04-28/paginators-1.json create mode 100644 botocore/data/m2/2021-04-28/service-2.json create mode 100644 botocore/data/machinelearning/2014-12-12/endpoint-rule-set-1.json create mode 100644 botocore/data/macie/2017-12-19/endpoint-rule-set-1.json create mode 100644 botocore/data/macie2/2020-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/macie2/2020-01-01/waiters-2.json create mode 100644 botocore/data/managedblockchain/2018-09-24/endpoint-rule-set-1.json create mode 100644 botocore/data/managedblockchain/2018-09-24/examples-1.json create mode 100644 botocore/data/marketplace-catalog/2018-09-17/endpoint-rule-set-1.json create mode 100644 botocore/data/marketplace-catalog/2018-09-17/examples-1.json create mode 100644 botocore/data/marketplace-entitlement/2017-01-11/endpoint-rule-set-1.json create mode 100644 botocore/data/marketplacecommerceanalytics/2015-07-01/endpoint-rule-set-1.json create mode 100644 botocore/data/mediaconnect/2018-11-14/endpoint-rule-set-1.json create mode 100644 botocore/data/mediaconvert/2017-08-29/endpoint-rule-set-1.json create mode 100644 botocore/data/medialive/2017-10-14/endpoint-rule-set-1.json create mode 100644 botocore/data/mediapackage-vod/2018-11-07/endpoint-rule-set-1.json create mode 100644 botocore/data/mediapackage/2017-10-12/endpoint-rule-set-1.json create mode 100644 botocore/data/mediastore-data/2017-09-01/endpoint-rule-set-1.json create mode 100644 botocore/data/mediastore/2017-09-01/endpoint-rule-set-1.json create mode 100644 botocore/data/mediatailor/2018-04-23/endpoint-rule-set-1.json create mode 100644 botocore/data/memorydb/2021-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/memorydb/2021-01-01/examples-1.json create mode 100644 botocore/data/meteringmarketplace/2016-01-14/endpoint-rule-set-1.json create mode 100644 botocore/data/mgh/2017-05-31/endpoint-rule-set-1.json create mode 100644 botocore/data/mgn/2020-02-26/endpoint-rule-set-1.json create mode 100644 botocore/data/mgn/2020-02-26/examples-1.json create mode 100644 botocore/data/migration-hub-refactor-spaces/2021-10-26/endpoint-rule-set-1.json create mode 100644 botocore/data/migration-hub-refactor-spaces/2021-10-26/examples-1.json create mode 100644 botocore/data/migrationhub-config/2019-06-30/endpoint-rule-set-1.json create mode 100644 botocore/data/migrationhub-config/2019-06-30/examples-1.json create mode 100644 botocore/data/migrationhuborchestrator/2021-08-28/endpoint-rule-set-1.json create mode 100644 botocore/data/migrationhuborchestrator/2021-08-28/paginators-1.json create mode 100644 botocore/data/migrationhuborchestrator/2021-08-28/service-2.json create mode 100644 botocore/data/migrationhuborchestrator/2021-08-28/waiters-2.json create mode 100644 botocore/data/migrationhubstrategy/2020-02-19/endpoint-rule-set-1.json create mode 100644 botocore/data/migrationhubstrategy/2020-02-19/examples-1.json create mode 100644 botocore/data/mobile/2017-07-01/endpoint-rule-set-1.json create mode 100644 botocore/data/mq/2017-11-27/endpoint-rule-set-1.json create mode 100644 botocore/data/mturk/2017-01-17/endpoint-rule-set-1.json create mode 100644 botocore/data/mwaa/2020-07-01/endpoint-rule-set-1.json create mode 100644 botocore/data/mwaa/2020-07-01/examples-1.json create mode 100644 botocore/data/neptune/2014-10-31/endpoint-rule-set-1.json create mode 100644 botocore/data/network-firewall/2020-11-12/endpoint-rule-set-1.json create mode 100644 botocore/data/network-firewall/2020-11-12/examples-1.json create mode 100644 botocore/data/networkmanager/2019-07-05/endpoint-rule-set-1.json create mode 100644 botocore/data/networkmanager/2019-07-05/examples-1.json create mode 100644 botocore/data/nimble/2020-08-01/endpoint-rule-set-1.json create mode 100644 botocore/data/nimble/2020-08-01/examples-1.json create mode 100644 botocore/data/oam/2022-06-10/endpoint-rule-set-1.json create mode 100644 botocore/data/oam/2022-06-10/paginators-1.json create mode 100644 botocore/data/oam/2022-06-10/service-2.json create mode 100644 botocore/data/omics/2022-11-28/endpoint-rule-set-1.json create mode 100644 botocore/data/omics/2022-11-28/paginators-1.json create mode 100644 botocore/data/omics/2022-11-28/service-2.json create mode 100644 botocore/data/omics/2022-11-28/waiters-2.json create mode 100644 botocore/data/opensearch/2021-01-01/endpoint-rule-set-1.json create mode 100644 botocore/data/opensearch/2021-01-01/examples-1.json create mode 100644 botocore/data/opensearchserverless/2021-11-01/endpoint-rule-set-1.json create mode 100644 botocore/data/opensearchserverless/2021-11-01/paginators-1.json create mode 100644 botocore/data/opensearchserverless/2021-11-01/service-2.json create mode 100644 botocore/data/opsworks/2013-02-18/endpoint-rule-set-1.json create mode 100644 botocore/data/opsworkscm/2016-11-01/endpoint-rule-set-1.json create mode 100644 botocore/data/organizations/2016-11-28/endpoint-rule-set-1.json create mode 100644 botocore/data/outposts/2019-12-03/endpoint-rule-set-1.json create mode 100644 botocore/data/outposts/2019-12-03/examples-1.json create mode 100644 botocore/data/panorama/2019-07-24/endpoint-rule-set-1.json create mode 100644 botocore/data/panorama/2019-07-24/examples-1.json create mode 100644 botocore/data/partitions.json create mode 100644 botocore/data/personalize-events/2018-03-22/endpoint-rule-set-1.json create mode 100644 botocore/data/personalize-events/2018-03-22/examples-1.json create mode 100644 botocore/data/personalize-runtime/2018-05-22/endpoint-rule-set-1.json create mode 100644 botocore/data/personalize-runtime/2018-05-22/examples-1.json create mode 100644 botocore/data/personalize/2018-05-22/endpoint-rule-set-1.json create mode 100644 botocore/data/personalize/2018-05-22/examples-1.json create mode 100644 botocore/data/pi/2018-02-27/endpoint-rule-set-1.json create mode 100644 botocore/data/pinpoint-email/2018-07-26/endpoint-rule-set-1.json create mode 100644 botocore/data/pinpoint-email/2018-07-26/examples-1.json create mode 100644 botocore/data/pinpoint-sms-voice-v2/2022-03-31/endpoint-rule-set-1.json create mode 100644 botocore/data/pinpoint-sms-voice-v2/2022-03-31/examples-1.json create mode 100644 botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json create mode 100644 botocore/data/pinpoint/2016-12-01/endpoint-rule-set-1.json create mode 100644 botocore/data/pipes/2015-10-07/endpoint-rule-set-1.json create mode 100644 botocore/data/pipes/2015-10-07/paginators-1.json create mode 100644 botocore/data/pipes/2015-10-07/service-2.json create mode 100644 botocore/data/polly/2016-06-10/endpoint-rule-set-1.json create mode 100644 botocore/data/pricing/2017-10-15/endpoint-rule-set-1.json create mode 100644 botocore/data/privatenetworks/2021-12-03/endpoint-rule-set-1.json create mode 100644 botocore/data/privatenetworks/2021-12-03/paginators-1.json create mode 100644 botocore/data/privatenetworks/2021-12-03/service-2.json create mode 100644 botocore/data/proton/2020-07-20/endpoint-rule-set-1.json create mode 100644 botocore/data/proton/2020-07-20/examples-1.json create mode 100644 botocore/data/qldb-session/2019-07-11/endpoint-rule-set-1.json create mode 100644 botocore/data/qldb-session/2019-07-11/examples-1.json create mode 100644 botocore/data/qldb/2019-01-02/endpoint-rule-set-1.json create mode 100644 botocore/data/qldb/2019-01-02/examples-1.json create mode 100644 botocore/data/quicksight/2018-04-01/endpoint-rule-set-1.json create mode 100644 botocore/data/quicksight/2018-04-01/examples-1.json create mode 100644 botocore/data/ram/2018-01-04/endpoint-rule-set-1.json create mode 100644 botocore/data/ram/2018-01-04/examples-1.json create mode 100644 botocore/data/rbin/2021-06-15/endpoint-rule-set-1.json create mode 100644 botocore/data/rbin/2021-06-15/examples-1.json create mode 100644 botocore/data/rds-data/2018-08-01/endpoint-rule-set-1.json create mode 100644 botocore/data/rds-data/2018-08-01/examples-1.json create mode 100644 botocore/data/rds/2014-09-01/endpoint-rule-set-1.json create mode 100644 botocore/data/rds/2014-10-31/endpoint-rule-set-1.json create mode 100644 botocore/data/redshift-data/2019-12-20/endpoint-rule-set-1.json create mode 100644 botocore/data/redshift-data/2019-12-20/examples-1.json create mode 100644 botocore/data/redshift-serverless/2021-04-21/endpoint-rule-set-1.json create mode 100644 botocore/data/redshift-serverless/2021-04-21/paginators-1.json create mode 100644 botocore/data/redshift-serverless/2021-04-21/service-2.json create mode 100644 botocore/data/redshift/2012-12-01/endpoint-rule-set-1.json create mode 100644 botocore/data/rekognition/2016-06-27/endpoint-rule-set-1.json create mode 100644 botocore/data/resiliencehub/2020-04-30/endpoint-rule-set-1.json create mode 100644 botocore/data/resiliencehub/2020-04-30/examples-1.json create mode 100644 botocore/data/resource-explorer-2/2022-07-28/endpoint-rule-set-1.json create mode 100644 botocore/data/resource-explorer-2/2022-07-28/paginators-1.json create mode 100644 botocore/data/resource-explorer-2/2022-07-28/paginators-1.sdk-extras.json create mode 100644 botocore/data/resource-explorer-2/2022-07-28/service-2.json create mode 100644 botocore/data/resource-groups/2017-11-27/endpoint-rule-set-1.json create mode 100644 botocore/data/resourcegroupstaggingapi/2017-01-26/endpoint-rule-set-1.json create mode 100644 botocore/data/robomaker/2018-06-29/endpoint-rule-set-1.json create mode 100644 botocore/data/robomaker/2018-06-29/examples-1.json create mode 100644 botocore/data/rolesanywhere/2018-05-10/endpoint-rule-set-1.json create mode 100644 botocore/data/rolesanywhere/2018-05-10/paginators-1.json create mode 100644 botocore/data/rolesanywhere/2018-05-10/service-2.json create mode 100644 botocore/data/route53-recovery-cluster/2019-12-02/endpoint-rule-set-1.json create mode 100644 botocore/data/route53-recovery-cluster/2019-12-02/examples-1.json create mode 100644 botocore/data/route53-recovery-control-config/2020-11-02/endpoint-rule-set-1.json create mode 100644 botocore/data/route53-recovery-readiness/2019-12-02/endpoint-rule-set-1.json create mode 100644 botocore/data/route53/2013-04-01/endpoint-rule-set-1.json create mode 100644 botocore/data/route53domains/2014-05-15/endpoint-rule-set-1.json create mode 100644 botocore/data/route53resolver/2018-04-01/endpoint-rule-set-1.json create mode 100644 botocore/data/route53resolver/2018-04-01/examples-1.json create mode 100644 botocore/data/rum/2018-05-10/endpoint-rule-set-1.json create mode 100644 botocore/data/rum/2018-05-10/examples-1.json create mode 100644 botocore/data/s3/2006-03-01/endpoint-rule-set-1.json create mode 100644 botocore/data/s3control/2018-08-20/endpoint-rule-set-1.json create mode 100644 botocore/data/s3control/2018-08-20/examples-1.json create mode 100644 botocore/data/s3outposts/2017-07-25/endpoint-rule-set-1.json create mode 100644 botocore/data/s3outposts/2017-07-25/examples-1.json create mode 100644 botocore/data/sagemaker-a2i-runtime/2019-11-07/endpoint-rule-set-1.json create mode 100644 botocore/data/sagemaker-a2i-runtime/2019-11-07/examples-1.json create mode 100644 botocore/data/sagemaker-edge/2020-09-23/endpoint-rule-set-1.json create mode 100644 botocore/data/sagemaker-edge/2020-09-23/examples-1.json create mode 100644 botocore/data/sagemaker-featurestore-runtime/2020-07-01/endpoint-rule-set-1.json create mode 100644 botocore/data/sagemaker-featurestore-runtime/2020-07-01/examples-1.json create mode 100644 botocore/data/sagemaker-geospatial/2020-05-27/endpoint-rule-set-1.json create mode 100644 botocore/data/sagemaker-geospatial/2020-05-27/paginators-1.json create mode 100644 botocore/data/sagemaker-geospatial/2020-05-27/service-2.json create mode 100644 botocore/data/sagemaker-runtime/2017-05-13/endpoint-rule-set-1.json create mode 100644 botocore/data/sagemaker/2017-07-24/endpoint-rule-set-1.json create mode 100644 botocore/data/savingsplans/2019-06-28/endpoint-rule-set-1.json create mode 100644 botocore/data/savingsplans/2019-06-28/examples-1.json create mode 100644 botocore/data/scheduler/2021-06-30/endpoint-rule-set-1.json create mode 100644 botocore/data/scheduler/2021-06-30/paginators-1.json create mode 100644 botocore/data/scheduler/2021-06-30/service-2.json create mode 100644 botocore/data/schemas/2019-12-02/endpoint-rule-set-1.json create mode 100644 botocore/data/sdb/2009-04-15/endpoint-rule-set-1.json create mode 100644 botocore/data/secretsmanager/2017-10-17/endpoint-rule-set-1.json create mode 100644 botocore/data/securityhub/2018-10-26/endpoint-rule-set-1.json create mode 100644 botocore/data/securityhub/2018-10-26/examples-1.json create mode 100644 botocore/data/securitylake/2018-05-10/endpoint-rule-set-1.json create mode 100644 botocore/data/securitylake/2018-05-10/paginators-1.json create mode 100644 botocore/data/securitylake/2018-05-10/service-2.json create mode 100644 botocore/data/serverlessrepo/2017-09-08/endpoint-rule-set-1.json create mode 100644 botocore/data/service-quotas/2019-06-24/endpoint-rule-set-1.json create mode 100644 botocore/data/service-quotas/2019-06-24/examples-1.json create mode 100644 botocore/data/servicecatalog-appregistry/2020-06-24/endpoint-rule-set-1.json create mode 100644 botocore/data/servicecatalog-appregistry/2020-06-24/examples-1.json create mode 100644 botocore/data/servicecatalog/2015-12-10/endpoint-rule-set-1.json create mode 100644 botocore/data/servicediscovery/2017-03-14/endpoint-rule-set-1.json create mode 100644 botocore/data/ses/2010-12-01/endpoint-rule-set-1.json create mode 100644 botocore/data/sesv2/2019-09-27/endpoint-rule-set-1.json create mode 100644 botocore/data/sesv2/2019-09-27/examples-1.json create mode 100644 botocore/data/shield/2016-06-02/endpoint-rule-set-1.json create mode 100644 botocore/data/signer/2017-08-25/endpoint-rule-set-1.json create mode 100644 botocore/data/simspaceweaver/2022-10-28/endpoint-rule-set-1.json create mode 100644 botocore/data/simspaceweaver/2022-10-28/paginators-1.json create mode 100644 botocore/data/simspaceweaver/2022-10-28/service-2.json create mode 100644 botocore/data/sms-voice/2018-09-05/endpoint-rule-set-1.json create mode 100644 botocore/data/sms/2016-10-24/endpoint-rule-set-1.json create mode 100644 botocore/data/snow-device-management/2021-08-04/endpoint-rule-set-1.json create mode 100644 botocore/data/snow-device-management/2021-08-04/examples-1.json create mode 100644 botocore/data/snowball/2016-06-30/endpoint-rule-set-1.json create mode 100644 botocore/data/sns/2010-03-31/endpoint-rule-set-1.json create mode 100644 botocore/data/sqs/2012-11-05/endpoint-rule-set-1.json create mode 100644 botocore/data/ssm-contacts/2021-05-03/endpoint-rule-set-1.json create mode 100644 botocore/data/ssm-contacts/2021-05-03/examples-1.json create mode 100644 botocore/data/ssm-incidents/2018-05-10/endpoint-rule-set-1.json create mode 100644 botocore/data/ssm-incidents/2018-05-10/examples-1.json create mode 100644 botocore/data/ssm-sap/2018-05-10/endpoint-rule-set-1.json create mode 100644 botocore/data/ssm-sap/2018-05-10/paginators-1.json create mode 100644 botocore/data/ssm-sap/2018-05-10/service-2.json create mode 100644 botocore/data/ssm/2014-11-06/endpoint-rule-set-1.json create mode 100644 botocore/data/sso-admin/2020-07-20/endpoint-rule-set-1.json create mode 100644 botocore/data/sso-admin/2020-07-20/examples-1.json create mode 100644 botocore/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json create mode 100644 botocore/data/sso-oidc/2019-06-10/examples-1.json create mode 100644 botocore/data/sso/2019-06-10/endpoint-rule-set-1.json create mode 100644 botocore/data/sso/2019-06-10/examples-1.json create mode 100644 botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json create mode 100644 botocore/data/storagegateway/2013-06-30/endpoint-rule-set-1.json create mode 100644 botocore/data/sts/2011-06-15/endpoint-rule-set-1.json create mode 100644 botocore/data/support-app/2021-08-20/endpoint-rule-set-1.json create mode 100644 botocore/data/support-app/2021-08-20/paginators-1.json create mode 100644 botocore/data/support-app/2021-08-20/service-2.json create mode 100644 botocore/data/support/2013-04-15/endpoint-rule-set-1.json create mode 100644 botocore/data/swf/2012-01-25/endpoint-rule-set-1.json create mode 100644 botocore/data/synthetics/2017-10-11/endpoint-rule-set-1.json create mode 100644 botocore/data/synthetics/2017-10-11/examples-1.json create mode 100644 botocore/data/textract/2018-06-27/endpoint-rule-set-1.json create mode 100644 botocore/data/textract/2018-06-27/examples-1.json create mode 100644 botocore/data/timestream-query/2018-11-01/endpoint-rule-set-1.json create mode 100644 botocore/data/timestream-query/2018-11-01/examples-1.json create mode 100644 botocore/data/timestream-write/2018-11-01/endpoint-rule-set-1.json create mode 100644 botocore/data/timestream-write/2018-11-01/examples-1.json create mode 100644 botocore/data/transcribe/2017-10-26/endpoint-rule-set-1.json create mode 100644 botocore/data/transfer/2018-11-05/endpoint-rule-set-1.json create mode 100644 botocore/data/transfer/2018-11-05/examples-1.json create mode 100644 botocore/data/translate/2017-07-01/endpoint-rule-set-1.json create mode 100644 botocore/data/voice-id/2021-09-27/endpoint-rule-set-1.json create mode 100644 botocore/data/voice-id/2021-09-27/examples-1.json create mode 100644 botocore/data/waf-regional/2016-11-28/endpoint-rule-set-1.json create mode 100644 botocore/data/waf/2015-08-24/endpoint-rule-set-1.json create mode 100644 botocore/data/wafv2/2019-07-29/endpoint-rule-set-1.json create mode 100644 botocore/data/wafv2/2019-07-29/examples-1.json create mode 100644 botocore/data/wellarchitected/2020-03-31/endpoint-rule-set-1.json create mode 100644 botocore/data/wellarchitected/2020-03-31/examples-1.json create mode 100644 botocore/data/wisdom/2020-10-19/endpoint-rule-set-1.json create mode 100644 botocore/data/wisdom/2020-10-19/examples-1.json create mode 100644 botocore/data/workdocs/2016-05-01/endpoint-rule-set-1.json create mode 100644 botocore/data/worklink/2018-09-25/endpoint-rule-set-1.json create mode 100644 botocore/data/worklink/2018-09-25/examples-1.json create mode 100644 botocore/data/workmail/2017-10-01/endpoint-rule-set-1.json create mode 100644 botocore/data/workmailmessageflow/2019-05-01/endpoint-rule-set-1.json create mode 100644 botocore/data/workmailmessageflow/2019-05-01/examples-1.json create mode 100644 botocore/data/workspaces-web/2020-07-08/endpoint-rule-set-1.json create mode 100644 botocore/data/workspaces-web/2020-07-08/examples-1.json create mode 100644 botocore/data/workspaces/2015-04-08/endpoint-rule-set-1.json create mode 100644 botocore/data/xray/2016-04-12/endpoint-rule-set-1.json create mode 100644 botocore/endpoint_provider.py create mode 100644 botocore/tokens.py create mode 100644 tests/functional/conftest.py create mode 100644 tests/functional/endpoint-rules/accessanalyzer/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/account/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/acm-pca/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/acm/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/alexaforbusiness/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/amp/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/amplify/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/amplifybackend/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/amplifyuibuilder/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/apigateway/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/apigatewaymanagementapi/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/apigatewayv2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/appconfig/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/appconfigdata/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/appflow/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/appintegrations/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/application-autoscaling/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/application-insights/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/applicationcostprofiler/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/appmesh/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/apprunner/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/appstream/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/appsync/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/arc-zonal-shift/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/athena/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/auditmanager/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/autoscaling-plans/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/autoscaling/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/backup-gateway/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/backup/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/backupstorage/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/batch/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/billingconductor/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/braket/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/budgets/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ce/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/chime-sdk-identity/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/chime-sdk-media-pipelines/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/chime-sdk-meetings/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/chime-sdk-messaging/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/chime-sdk-voice/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/chime/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloud9/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloudcontrol/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/clouddirectory/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloudformation/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloudfront/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloudhsm/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloudhsmv2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloudsearch/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloudsearchdomain/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloudtrail/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cloudwatch/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codeartifact/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codebuild/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codecatalyst/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codecommit/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codedeploy/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codeguru-reviewer/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codeguruprofiler/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codepipeline/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codestar-connections/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codestar-notifications/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/codestar/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cognito-identity/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cognito-idp/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cognito-sync/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/comprehend/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/comprehendmedical/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/compute-optimizer/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/config/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/connect-contact-lens/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/connect/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/connectcampaigns/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/connectcases/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/connectparticipant/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/controltower/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/cur/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/customer-profiles/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/databrew/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/dataexchange/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/datapipeline/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/datasync/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/dax/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/detective/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/devicefarm/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/devops-guru/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/directconnect/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/discovery/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/dlm/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/dms/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/docdb-elastic/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/docdb/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/drs/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ds/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/dynamodb/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/dynamodbstreams/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ebs/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ec2-instance-connect/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ec2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ecr-public/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ecr/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ecs/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/efs/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/eks/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/elastic-inference/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/elasticache/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/elasticbeanstalk/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/elastictranscoder/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/elb/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/elbv2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/emr-containers/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/emr-serverless/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/emr/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/es/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/events/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/evidently/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/finspace-data/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/finspace/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/firehose/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/fis/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/fms/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/forecast/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/forecastquery/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/frauddetector/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/fsx/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/gamelift/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/gamesparks/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/glacier/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/globalaccelerator/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/glue/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/grafana/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/greengrass/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/greengrassv2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/groundstation/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/guardduty/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/health/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/healthlake/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/honeycode/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iam/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/identitystore/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/imagebuilder/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/importexport/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/inspector/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/inspector2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iot-data/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iot-jobs-data/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iot-roborunner/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iot/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iot1click-devices/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iot1click-projects/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotanalytics/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotdeviceadvisor/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotevents-data/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotevents/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotfleethub/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotfleetwise/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotsecuretunneling/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotsitewise/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotthingsgraph/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iottwinmaker/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/iotwireless/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ivs/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ivschat/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kafka/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kafkaconnect/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kendra/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/keyspaces/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kinesis-video-archived-media/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kinesis-video-media/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kinesis-video-signaling/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kinesis/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kinesisanalytics/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kinesisanalyticsv2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kinesisvideo/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/kms/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lakeformation/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lambda/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lex-models/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lex-runtime/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lexv2-models/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lexv2-runtime/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/license-manager-user-subscriptions/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/license-manager/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lightsail/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/location/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/logs/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lookoutequipment/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lookoutmetrics/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/lookoutvision/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/m2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/machinelearning/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/macie/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/macie2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/managedblockchain/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/marketplace-catalog/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/marketplace-entitlement/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/marketplacecommerceanalytics/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mediaconnect/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mediaconvert/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/medialive/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mediapackage-vod/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mediapackage/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mediastore-data/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mediastore/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mediatailor/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/memorydb/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/meteringmarketplace/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mgh/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mgn/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/migration-hub-refactor-spaces/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/migrationhub-config/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/migrationhuborchestrator/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/migrationhubstrategy/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mobile/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mq/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mturk/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/mwaa/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/neptune/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/network-firewall/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/networkmanager/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/nimble/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/oam/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/omics/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/opensearch/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/opensearchserverless/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/opsworks/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/opsworkscm/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/organizations/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/outposts/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/panorama/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/personalize-events/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/personalize-runtime/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/personalize/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/pi/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/pinpoint-email/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/pinpoint-sms-voice-v2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/pinpoint-sms-voice/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/pinpoint/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/pipes/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/polly/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/pricing/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/privatenetworks/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/proton/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/qldb-session/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/qldb/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/quicksight/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ram/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/rbin/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/rds-data/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/rds/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/redshift-data/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/redshift-serverless/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/redshift/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/rekognition/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/resiliencehub/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/resource-explorer-2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/resource-groups/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/resourcegroupstaggingapi/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/robomaker/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/rolesanywhere/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/route53-recovery-cluster/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/route53-recovery-control-config/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/route53-recovery-readiness/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/route53/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/route53domains/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/route53resolver/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/rum/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/s3/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/s3control/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/s3outposts/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sagemaker-a2i-runtime/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sagemaker-edge/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sagemaker-featurestore-runtime/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sagemaker-geospatial/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sagemaker-runtime/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sagemaker/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/savingsplans/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/scheduler/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/schemas/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sdb/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/secretsmanager/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/securityhub/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/securitylake/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/serverlessrepo/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/service-quotas/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/servicecatalog-appregistry/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/servicecatalog/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/servicediscovery/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ses/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sesv2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/shield/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/signer/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/simspaceweaver/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sms-voice/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sms/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/snow-device-management/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/snowball/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sns/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sqs/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ssm-contacts/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ssm-incidents/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ssm-sap/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/ssm/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sso-admin/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sso-oidc/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sso/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/stepfunctions/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/storagegateway/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/sts/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/support-app/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/support/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/swf/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/synthetics/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/textract/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/timestream-query/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/timestream-write/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/transcribe/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/transfer/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/translate/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/voice-id/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/waf-regional/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/waf/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/wafv2/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/wellarchitected/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/wisdom/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/workdocs/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/worklink/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/workmail/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/workmailmessageflow/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/workspaces-web/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/workspaces/endpoint-tests-1.json create mode 100644 tests/functional/endpoint-rules/xray/endpoint-tests-1.json create mode 100644 tests/functional/models/custom-acm/2015-12-08/endpoint-rule-set-1.json create mode 100644 tests/functional/test_context_params.py create mode 100644 tests/functional/test_endpoint_rulesets.py create mode 100644 tests/functional/test_importexport.py create mode 100644 tests/unit/cfg/aws_sso_session_config create mode 100644 tests/unit/data/endpoints/test-cases/aws-region.json create mode 100644 tests/unit/data/endpoints/test-cases/default-values.json create mode 100644 tests/unit/data/endpoints/test-cases/eventbridge.json create mode 100644 tests/unit/data/endpoints/test-cases/fns.json create mode 100644 tests/unit/data/endpoints/test-cases/headers.json create mode 100644 tests/unit/data/endpoints/test-cases/is-virtual-hostable-s3-bucket.json create mode 100644 tests/unit/data/endpoints/test-cases/local-region-override.json create mode 100644 tests/unit/data/endpoints/test-cases/parse-arn.json create mode 100644 tests/unit/data/endpoints/test-cases/parse-url.json create mode 100644 tests/unit/data/endpoints/test-cases/partition-fn.json create mode 100644 tests/unit/data/endpoints/test-cases/substring.json create mode 100644 tests/unit/data/endpoints/test-cases/uri-encode.json create mode 100644 tests/unit/data/endpoints/test-cases/valid-hostlabel.json create mode 100644 tests/unit/data/endpoints/valid-rules/aws-region.json create mode 100644 tests/unit/data/endpoints/valid-rules/default-values.json create mode 100644 tests/unit/data/endpoints/valid-rules/deprecated-param.json create mode 100644 tests/unit/data/endpoints/valid-rules/eventbridge.json create mode 100644 tests/unit/data/endpoints/valid-rules/fns.json create mode 100644 tests/unit/data/endpoints/valid-rules/get-attr-type-inference.json create mode 100644 tests/unit/data/endpoints/valid-rules/headers.json create mode 100644 tests/unit/data/endpoints/valid-rules/is-virtual-hostable-s3-bucket.json create mode 100644 tests/unit/data/endpoints/valid-rules/local-region-override.json create mode 100644 tests/unit/data/endpoints/valid-rules/minimal-ruleset.json create mode 100644 tests/unit/data/endpoints/valid-rules/parse-arn.json create mode 100644 tests/unit/data/endpoints/valid-rules/parse-url.json create mode 100644 tests/unit/data/endpoints/valid-rules/partition-fn.json create mode 100644 tests/unit/data/endpoints/valid-rules/substring.json create mode 100644 tests/unit/data/endpoints/valid-rules/uri-encode.json create mode 100644 tests/unit/data/endpoints/valid-rules/valid-hostlabel.json create mode 100644 tests/unit/test_auth_bearer.py create mode 100644 tests/unit/test_endpoint_provider.py create mode 100644 tests/unit/test_tokens.py diff --git a/MANIFEST.in b/MANIFEST.in index 7ad59012..c5d2e1ea 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -5,6 +5,7 @@ include requirements-dev.txt include botocore/cacert.pem include botocore/vendored/requests/cacert.pem recursive-include botocore/data *.json +recursive-include botocore/data *.json.gz graft docs prune docs/build graft tests diff --git a/NOTICE b/NOTICE index b86fb93e..edcc3cd7 100644 --- a/NOTICE +++ b/NOTICE @@ -1,9 +1,9 @@ Botocore -Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. +Copyright 2012-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. ---- -Botocore includes a vendorized copy of the requests python library to ease installation. +Botocore includes vendorized parts of the requests python library for backwards compatibility. Requests License ================ @@ -22,8 +22,7 @@ Copyright 2013 Kenneth Reitz See the License for the specific language governing permissions and limitations under the License. - -The requests library also includes some vendorized python libraries to ease installation. +Botocore includes vendorized parts of the urllib3 library for backwards compatibility. Urllib3 License =============== @@ -49,38 +48,13 @@ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TOR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Chardet License -=============== - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -02110-1301 USA - Bundle of CA Root Certificates ============================== -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. +***** BEGIN LICENSE BLOCK ***** +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL +was not distributed with this file, You can obtain +one at http://mozilla.org/MPL/2.0/. -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -02110-1301 +***** END LICENSE BLOCK ***** diff --git a/PKG-INFO b/PKG-INFO index 80474e07..e5daa794 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: botocore -Version: 1.26.8 +Version: 1.29.27 Summary: Low-level, data-driven core of boto 3. Home-page: https://github.com/boto/botocore Author: Amazon Web Services @@ -13,12 +13,12 @@ Classifier: Natural Language :: English Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 -Requires-Python: >= 3.6 +Classifier: Programming Language :: Python :: 3.11 +Requires-Python: >= 3.7 Provides-Extra: crt License-File: LICENSE.txt License-File: NOTICE @@ -43,7 +43,7 @@ on 2021-07-15. To avoid disruption, customers using Botocore on Python 2.7 may need to upgrade their version of Python or pin the version of Botocore. For more information, see this `blog post `__. -On 2022-05-30, we will be dropping support for Python 3.6. This follows the +On 2022-05-30, support was dropped for Python 3.6. This follows the Python Software Foundation `end of support `__ for the runtime which occurred on 2021-12-23. For more information, see this `blog post `__. @@ -132,10 +132,10 @@ Maintenance and Support for SDK Major Versions Botocore was made generally available on 06/22/2015 and is currently in the full support phase of the availability life cycle. -For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Shared Configuration and Credentials Reference Guide: +For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Reference Guide: -* `AWS SDKs and Tools Maintenance Policy `__ -* `AWS SDKs and Tools Version Support Matrix `__ +* `AWS SDKs and Tools Maintenance Policy `__ +* `AWS SDKs and Tools Version Support Matrix `__ More Resources diff --git a/README.rst b/README.rst index c823a9f2..beb262fd 100644 --- a/README.rst +++ b/README.rst @@ -18,7 +18,7 @@ on 2021-07-15. To avoid disruption, customers using Botocore on Python 2.7 may need to upgrade their version of Python or pin the version of Botocore. For more information, see this `blog post `__. -On 2022-05-30, we will be dropping support for Python 3.6. This follows the +On 2022-05-30, support was dropped for Python 3.6. This follows the Python Software Foundation `end of support `__ for the runtime which occurred on 2021-12-23. For more information, see this `blog post `__. @@ -107,10 +107,10 @@ Maintenance and Support for SDK Major Versions Botocore was made generally available on 06/22/2015 and is currently in the full support phase of the availability life cycle. -For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Shared Configuration and Credentials Reference Guide: +For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the AWS SDKs and Tools Reference Guide: -* `AWS SDKs and Tools Maintenance Policy `__ -* `AWS SDKs and Tools Version Support Matrix `__ +* `AWS SDKs and Tools Maintenance Policy `__ +* `AWS SDKs and Tools Version Support Matrix `__ More Resources diff --git a/botocore/__init__.py b/botocore/__init__.py index 6a7be9bf..730e7015 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import logging import os import re -__version__ = '1.26.8' +__version__ = '1.29.27' class NullHandler(logging.Handler): @@ -28,6 +28,7 @@ class NullHandler(logging.Handler): log = logging.getLogger('botocore') log.addHandler(NullHandler()) +_INITIALIZERS = [] _first_cap_regex = re.compile('(.)([A-Z][a-z]+)') _end_cap_regex = re.compile('([a-z0-9])([A-Z])') @@ -97,3 +98,42 @@ def xform_name(name, sep='_', _xform_cache=_xform_cache): transformed = _end_cap_regex.sub(r'\1' + sep + r'\2', s1).lower() _xform_cache[key] = transformed return _xform_cache[key] + + +def register_initializer(callback): + """Register an initializer function for session creation. + + This initializer function will be invoked whenever a new + `botocore.session.Session` is instantiated. + + :type callback: callable + :param callback: A callable that accepts a single argument + of type `botocore.session.Session`. + + """ + _INITIALIZERS.append(callback) + + +def unregister_initializer(callback): + """Unregister an initializer function. + + :type callback: callable + :param callback: A callable that was previously registered + with `botocore.register_initializer`. + + :raises ValueError: If a callback is provided that is not currently + registered as an initializer. + + """ + _INITIALIZERS.remove(callback) + + +def invoke_initializers(session): + """Invoke all initializers for a session. + + :type session: botocore.session.Session + :param session: The session to initialize. + + """ + for initializer in _INITIALIZERS: + initializer(session) diff --git a/botocore/args.py b/botocore/args.py index 1deebfc9..b844fce1 100644 --- a/botocore/args.py +++ b/botocore/args.py @@ -23,10 +23,12 @@ import socket import botocore.exceptions import botocore.parsers import botocore.serialize -import botocore.utils from botocore.config import Config from botocore.endpoint import EndpointCreator +from botocore.regions import EndpointResolverBuiltins as EPRBuiltins +from botocore.regions import EndpointRulesetResolver from botocore.signers import RequestSigner +from botocore.utils import ensure_boolean, is_s3_accelerate_url logger = logging.getLogger(__name__) @@ -83,6 +85,9 @@ class ClientArgsCreator: scoped_config, client_config, endpoint_bridge, + auth_token=None, + endpoints_ruleset_data=None, + partition_data=None, ): final_args = self.compute_client_args( service_model, @@ -114,6 +119,7 @@ class ClientArgsCreator: endpoint_config['signature_version'], credentials, event_emitter, + auth_token, ) config_kwargs['s3'] = s3_config @@ -138,6 +144,21 @@ class ClientArgsCreator: protocol, parameter_validation ) response_parser = botocore.parsers.create_parser(protocol) + + ruleset_resolver = self._build_endpoint_resolver( + endpoints_ruleset_data, + partition_data, + client_config, + service_model, + endpoint_region_name, + region_name, + endpoint_url, + endpoint, + is_secure, + endpoint_bridge, + event_emitter, + ) + return { 'serializer': serializer, 'endpoint': endpoint, @@ -149,6 +170,7 @@ class ClientArgsCreator: 'client_config': new_config, 'partition': partition, 'exceptions_factory': self._exceptions_factory, + 'endpoint_ruleset_resolver': ruleset_resolver, } def compute_client_args( @@ -169,7 +191,7 @@ class ClientArgsCreator: elif scoped_config: raw_value = scoped_config.get('parameter_validation') if raw_value is not None: - parameter_validation = botocore.utils.ensure_boolean(raw_value) + parameter_validation = ensure_boolean(raw_value) # Override the user agent if specified in the client config. user_agent = self._user_agent @@ -211,12 +233,13 @@ class ClientArgsCreator: retries=client_config.retries, client_cert=client_config.client_cert, inject_host_prefix=client_config.inject_host_prefix, + tcp_keepalive=client_config.tcp_keepalive, ) self._compute_retry_config(config_kwargs) self._compute_connect_timeout(config_kwargs) s3_config = self.compute_s3_config(client_config) - is_s3_service = service_name in ['s3', 's3-control'] + is_s3_service = self._is_s3_service(service_name) if is_s3_service and 'dualstack' in endpoint_variant_tags: if s3_config is None: @@ -231,7 +254,9 @@ class ClientArgsCreator: 'protocol': protocol, 'config_kwargs': config_kwargs, 's3_config': s3_config, - 'socket_options': self._compute_socket_options(scoped_config), + 'socket_options': self._compute_socket_options( + scoped_config, client_config + ), } def compute_s3_config(self, client_config): @@ -253,6 +278,16 @@ class ClientArgsCreator: return s3_configuration + def _is_s3_service(self, service_name): + """Whether the service is S3 or S3 Control. + + Note that throughout this class, service_name refers to the endpoint + prefix, not the folder name of the service in botocore/data. For + S3 Control, the folder name is 's3control' but the endpoint prefix is + 's3-control'. + """ + return service_name in ['s3', 's3-control'] + def _compute_endpoint_config( self, service_name, @@ -342,8 +377,10 @@ class ClientArgsCreator: def _should_set_global_sts_endpoint( self, region_name, endpoint_url, endpoint_config ): - endpoint_variant_tags = endpoint_config['metadata'].get('tags') - if endpoint_url or endpoint_variant_tags: + has_variant_tags = endpoint_config and endpoint_config.get( + 'metadata', {} + ).get('tags') + if endpoint_url or has_variant_tags: return False return ( self._get_sts_regional_endpoints_config() == 'legacy' @@ -382,16 +419,17 @@ class ClientArgsCreator: service_name, region_name, endpoint_url, is_secure ) - def _compute_socket_options(self, scoped_config): + def _compute_socket_options(self, scoped_config, client_config=None): # This disables Nagle's algorithm and is the default socket options # in urllib3. socket_options = [(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)] - if scoped_config: - # Enables TCP Keepalive if specified in shared config file. - if self._ensure_boolean(scoped_config.get('tcp_keepalive', False)): - socket_options.append( - (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) - ) + client_keepalive = client_config and client_config.tcp_keepalive + scoped_keepalive = scoped_config and self._ensure_boolean( + scoped_config.get("tcp_keepalive", False) + ) + # Enables TCP Keepalive if specified in client config object or shared config file. + if client_keepalive or scoped_keepalive: + socket_options.append((socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)) return socket_options def _compute_retry_config(self, config_kwargs): @@ -462,3 +500,149 @@ class ClientArgsCreator: return val else: return val.lower() == 'true' + + def _build_endpoint_resolver( + self, + endpoints_ruleset_data, + partition_data, + client_config, + service_model, + endpoint_region_name, + region_name, + endpoint_url, + endpoint, + is_secure, + endpoint_bridge, + event_emitter, + ): + if endpoints_ruleset_data is None: + return None + + # The legacy EndpointResolver is global to the session, but + # EndpointRulesetResolver is service-specific. Builtins for + # EndpointRulesetResolver must not be derived from the legacy + # endpoint resolver's output, including final_args, s3_config, + # etc. + s3_config_raw = self.compute_s3_config(client_config) or {} + service_name_raw = service_model.endpoint_prefix + # Maintain complex logic for s3 and sts endpoints for backwards + # compatibility. + if service_name_raw in ['s3', 'sts'] or region_name is None: + eprv2_region_name = endpoint_region_name + else: + eprv2_region_name = region_name + resolver_builtins = self.compute_endpoint_resolver_builtin_defaults( + region_name=eprv2_region_name, + service_name=service_name_raw, + s3_config=s3_config_raw, + endpoint_bridge=endpoint_bridge, + client_endpoint_url=endpoint_url, + legacy_endpoint_url=endpoint.host, + ) + # botocore does not support client context parameters generically + # for every service. Instead, the s3 config section entries are + # available as client context parameters. In the future, endpoint + # rulesets of services other than s3/s3control may require client + # context parameters. + client_context = ( + s3_config_raw if self._is_s3_service(service_name_raw) else {} + ) + sig_version = ( + client_config.signature_version + if client_config is not None + else None + ) + return EndpointRulesetResolver( + endpoint_ruleset_data=endpoints_ruleset_data, + partition_data=partition_data, + service_model=service_model, + builtins=resolver_builtins, + client_context=client_context, + event_emitter=event_emitter, + use_ssl=is_secure, + requested_auth_scheme=sig_version, + ) + + def compute_endpoint_resolver_builtin_defaults( + self, + region_name, + service_name, + s3_config, + endpoint_bridge, + client_endpoint_url, + legacy_endpoint_url, + ): + # EndpointRulesetResolver rulesets may accept an "SDK::Endpoint" as + # input. If the endpoint_url argument of create_client() is set, it + # always takes priority. + if client_endpoint_url: + given_endpoint = client_endpoint_url + # If an endpoints.json data file other than the one bundled within + # the botocore/data directory is used, the output of legacy + # endpoint resolution is provided to EndpointRulesetResolver. + elif not endpoint_bridge.resolver_uses_builtin_data(): + given_endpoint = legacy_endpoint_url + else: + given_endpoint = None + + # The endpoint rulesets differ from legacy botocore behavior in whether + # forcing path style addressing in incompatible situations raises an + # exception or silently ignores the config setting. The + # AWS_S3_FORCE_PATH_STYLE parameter is adjusted both here and for each + # operation so that the ruleset behavior is backwards compatible. + if s3_config.get('use_accelerate_endpoint', False): + force_path_style = False + elif client_endpoint_url is not None and not is_s3_accelerate_url( + client_endpoint_url + ): + force_path_style = s3_config.get('addressing_style') != 'virtual' + else: + force_path_style = s3_config.get('addressing_style') == 'path' + + return { + EPRBuiltins.AWS_REGION: region_name, + EPRBuiltins.AWS_USE_FIPS: ( + # SDK_ENDPOINT cannot be combined with AWS_USE_FIPS + given_endpoint is None + # use legacy resolver's _resolve_endpoint_variant_config_var() + # or default to False if it returns None + and endpoint_bridge._resolve_endpoint_variant_config_var( + 'use_fips_endpoint' + ) + or False + ), + EPRBuiltins.AWS_USE_DUALSTACK: ( + # SDK_ENDPOINT cannot be combined with AWS_USE_DUALSTACK + given_endpoint is None + # use legacy resolver's _resolve_use_dualstack_endpoint() and + # or default to False if it returns None + and endpoint_bridge._resolve_use_dualstack_endpoint( + service_name + ) + or False + ), + EPRBuiltins.AWS_STS_USE_GLOBAL_ENDPOINT: ( + self._should_set_global_sts_endpoint( + region_name=region_name, + endpoint_url=None, + endpoint_config=None, + ) + ), + EPRBuiltins.AWS_S3_USE_GLOBAL_ENDPOINT: ( + self._should_force_s3_global(region_name, s3_config) + ), + EPRBuiltins.AWS_S3_ACCELERATE: s3_config.get( + 'use_accelerate_endpoint', False + ), + EPRBuiltins.AWS_S3_FORCE_PATH_STYLE: force_path_style, + EPRBuiltins.AWS_S3_USE_ARN_REGION: s3_config.get( + 'use_arn_region', True + ), + EPRBuiltins.AWS_S3CONTROL_USE_ARN_REGION: s3_config.get( + 'use_arn_region', False + ), + EPRBuiltins.AWS_S3_DISABLE_MRAP: s3_config.get( + 's3_disable_multiregion_access_points', False + ), + EPRBuiltins.SDK_ENDPOINT: given_endpoint, + } diff --git a/botocore/auth.py b/botocore/auth.py index f38713e3..da9b838e 100644 --- a/botocore/auth.py +++ b/botocore/auth.py @@ -35,7 +35,7 @@ from botocore.compat import ( urlsplit, urlunsplit, ) -from botocore.exceptions import NoCredentialsError +from botocore.exceptions import NoAuthTokenError, NoCredentialsError from botocore.utils import ( is_valid_ipv6_endpoint_url, normalize_url_path, @@ -101,11 +101,22 @@ def _get_body_as_dict(request): class BaseSigner: REQUIRES_REGION = False + REQUIRES_TOKEN = False def add_auth(self, request): raise NotImplementedError("add_auth") +class TokenSigner(BaseSigner): + REQUIRES_TOKEN = True + """ + Signers that expect an authorization token to perform the authorization + """ + + def __init__(self, auth_token): + self.auth_token = auth_token + + class SigV2Auth(BaseSigner): """ Sign a request with Signature V2. @@ -934,6 +945,24 @@ class HmacV1PostAuth(HmacV1Auth): request.context['s3-presign-post-policy'] = policy +class BearerAuth(TokenSigner): + """ + Performs bearer token authorization by placing the bearer token in the + Authorization header as specified by Section 2.1 of RFC 6750. + + https://datatracker.ietf.org/doc/html/rfc6750#section-2.1 + """ + + def add_auth(self, request): + if self.auth_token is None: + raise NoAuthTokenError() + + auth_header = f'Bearer {self.auth_token.token}' + if 'Authorization' in request.headers: + del request.headers['Authorization'] + request.headers['Authorization'] = auth_header + + AUTH_TYPE_MAPS = { 'v2': SigV2Auth, 'v3': SigV3Auth, @@ -942,6 +971,7 @@ AUTH_TYPE_MAPS = { 's3-query': HmacV1QueryAuth, 's3-presign-post': HmacV1PostAuth, 's3v4-presign-post': S3SigV4PostAuth, + 'bearer': BearerAuth, } # Define v4 signers depending on if CRT is present diff --git a/botocore/awsrequest.py b/botocore/awsrequest.py index 8cbd8399..80e45006 100644 --- a/botocore/awsrequest.py +++ b/botocore/awsrequest.py @@ -100,7 +100,7 @@ class AWSConnection: def _convert_to_bytes(self, mixed_buffer): # Take a list of mixed str/bytes and convert it # all into a single bytestring. - # Any six.text_types will be encoded as utf-8. + # Any str will be encoded as utf-8. bytes_buffer = [] for chunk in mixed_buffer: if isinstance(chunk, str): @@ -299,7 +299,11 @@ def create_request_object(request_dict): """ r = request_dict request_object = AWSRequest( - method=r['method'], url=r['url'], data=r['body'], headers=r['headers'] + method=r['method'], + url=r['url'], + data=r['body'], + headers=r['headers'], + auth_path=r.get('auth_path'), ) request_object.context = r['context'] return request_object diff --git a/botocore/client.py b/botocore/client.py index bbcb35a8..da92f399 100644 --- a/botocore/client.py +++ b/botocore/client.py @@ -16,6 +16,7 @@ from botocore import waiter, xform_name from botocore.args import ClientArgsCreator from botocore.auth import AUTH_TYPE_MAPS from botocore.awsrequest import prepare_request_dict +from botocore.config import Config from botocore.discovery import ( EndpointDiscoveryHandler, EndpointDiscoveryManager, @@ -26,6 +27,7 @@ from botocore.exceptions import ( DataNotFoundError, InvalidEndpointDiscoveryConfigurationError, OperationNotPageableError, + UnknownServiceError, UnknownSignatureVersionError, ) from botocore.history import get_global_history_recorder @@ -40,25 +42,37 @@ from botocore.retries import adaptive, standard from botocore.utils import ( CachedProperty, EventbridgeSignerSetter, - S3ArnParamHandler, - S3ControlArnParamHandler, - S3ControlEndpointSetter, - S3EndpointSetter, - S3RegionRedirector, + S3ControlArnParamHandlerv2, + S3RegionRedirectorv2, ensure_boolean, get_service_module_name, ) # Keep these imported. There's pre-existing code that uses: -# "from botocore.client import Config" +# "from botocore.client import UNSIGNED" # "from botocore.client import ClientError" # etc. -from botocore.config import Config # noqa from botocore.exceptions import ClientError # noqa -from botocore.args import ClientArgsCreator # noqa +from botocore.utils import S3ArnParamHandler # noqa +from botocore.utils import S3ControlArnParamHandler # noqa +from botocore.utils import S3ControlEndpointSetter # noqa +from botocore.utils import S3EndpointSetter # noqa +from botocore.utils import S3RegionRedirector # noqa from botocore import UNSIGNED # noqa +_LEGACY_SIGNATURE_VERSIONS = frozenset( + ( + 'v2', + 'v3', + 'v3https', + 'v4', + 's3', + 's3v4', + ) +) + + logger = logging.getLogger(__name__) history_recorder = get_global_history_recorder() @@ -103,12 +117,27 @@ class ClientCreator: scoped_config=None, api_version=None, client_config=None, + auth_token=None, ): responses = self._event_emitter.emit( 'choose-service-name', service_name=service_name ) service_name = first_non_none_response(responses, default=service_name) service_model = self._load_service_model(service_name, api_version) + try: + endpoints_ruleset_data = self._load_service_endpoints_ruleset( + service_name, api_version + ) + partition_data = self._loader.load_data('partitions') + except UnknownServiceError: + endpoints_ruleset_data = None + partition_data = None + logger.info( + 'No endpoints ruleset found for service %s, falling back to ' + 'legacy endpoint routing.', + service_name, + ) + cls = self._create_client_class(service_name, service_model) region_name, client_config = self._normalize_fips_region( region_name, client_config @@ -119,6 +148,9 @@ class ClientCreator: client_config, service_signing_name=service_model.metadata.get('signingName'), config_store=self._config_store, + service_signature_version=service_model.metadata.get( + 'signatureVersion' + ), ) client_args = self._get_client_args( service_model, @@ -130,26 +162,20 @@ class ClientCreator: scoped_config, client_config, endpoint_bridge, + auth_token, + endpoints_ruleset_data, + partition_data, ) service_client = cls(**client_args) self._register_retries(service_client) - self._register_eventbridge_events( - service_client, endpoint_bridge, endpoint_url - ) self._register_s3_events( - service_client, - endpoint_bridge, - endpoint_url, - client_config, - scoped_config, - ) - self._register_s3_control_events( - service_client, - endpoint_bridge, - endpoint_url, - client_config, - scoped_config, + client=service_client, + endpoint_bridge=None, + endpoint_url=None, + client_config=client_config, + scoped_config=scoped_config, ) + self._register_s3_control_events(client=service_client) self._register_endpoint_discovery( service_client, endpoint_url, client_config ) @@ -205,6 +231,11 @@ class ClientCreator: service_model = ServiceModel(json_model, service_name=service_name) return service_model + def _load_service_endpoints_ruleset(self, service_name, api_version=None): + return self._loader.load_service_model( + service_name, 'endpoint-rule-set-1', api_version=api_version + ) + def _register_retries(self, client): retry_mode = client.meta.config.retries['mode'] if retry_mode == 'standard': @@ -346,17 +377,7 @@ class ClientCreator: ): if client.meta.service_model.service_name != 's3': return - S3RegionRedirector(endpoint_bridge, client).register() - S3ArnParamHandler().register(client.meta.events) - use_fips_endpoint = client.meta.config.use_fips_endpoint - S3EndpointSetter( - endpoint_resolver=self._endpoint_resolver, - region=client.meta.region_name, - s3_config=client.meta.config.s3, - endpoint_url=endpoint_url, - partition=client.meta.partition, - use_fips_endpoint=use_fips_endpoint, - ).register(client.meta.events) + S3RegionRedirectorv2(None, client).register() self._set_s3_presign_signature_version( client.meta, client_config, scoped_config ) @@ -364,23 +385,14 @@ class ClientCreator: def _register_s3_control_events( self, client, - endpoint_bridge, - endpoint_url, - client_config, - scoped_config, + endpoint_bridge=None, + endpoint_url=None, + client_config=None, + scoped_config=None, ): if client.meta.service_model.service_name != 's3control': return - use_fips_endpoint = client.meta.config.use_fips_endpoint - S3ControlArnParamHandler().register(client.meta.events) - S3ControlEndpointSetter( - endpoint_resolver=self._endpoint_resolver, - region=client.meta.region_name, - s3_config=client.meta.config.s3, - endpoint_url=endpoint_url, - partition=client.meta.partition, - use_fips_endpoint=use_fips_endpoint, - ).register(client.meta.events) + S3ControlArnParamHandlerv2().register(client.meta.events) def _set_s3_presign_signature_version( self, client_meta, client_config, scoped_config @@ -429,7 +441,8 @@ class ClientCreator: """ Returns the 's3' (sigv2) signer if presigning an s3 request. This is intended to be used to set the default signature version for the signer - to sigv2. + to sigv2. Situations where an asymmetric signature is required are the + exception, for example MRAP needs v4a. :type signature_version: str :param signature_version: The current client signature version. @@ -439,9 +452,12 @@ class ClientCreator: :return: 's3' if the request is an s3 presign request, None otherwise """ + if signature_version.startswith('v4a'): + return + for suffix in ['-query', '-presign-post']: if signature_version.endswith(suffix): - return 's3' + suffix + return f's3{suffix}' def _get_client_args( self, @@ -454,6 +470,9 @@ class ClientCreator: scoped_config, client_config, endpoint_bridge, + auth_token, + endpoints_ruleset_data, + partition_data, ): args_creator = ClientArgsCreator( self._event_emitter, @@ -473,6 +492,9 @@ class ClientCreator: scoped_config, client_config, endpoint_bridge, + auth_token, + endpoints_ruleset_data, + partition_data, ) def _create_methods(self, service_model): @@ -545,6 +567,7 @@ class ClientEndpointBridge: default_endpoint=None, service_signing_name=None, config_store=None, + service_signature_version=None, ): self.service_signing_name = service_signing_name self.endpoint_resolver = endpoint_resolver @@ -552,6 +575,7 @@ class ClientEndpointBridge: self.client_config = client_config self.default_endpoint = default_endpoint or self.DEFAULT_ENDPOINT self.config_store = config_store + self.service_signature_version = service_signature_version def resolve( self, service_name, region_name=None, endpoint_url=None, is_secure=True @@ -592,6 +616,9 @@ class ClientEndpointBridge: service_name, region_name, endpoint_url, is_secure ) + def resolver_uses_builtin_data(self): + return self.endpoint_resolver.uses_builtin_data + def _check_default_region(self, service_name, region_name): if region_name is not None: return region_name @@ -606,10 +633,10 @@ class ClientEndpointBridge: resolved, region_name, endpoint_url ) if endpoint_url is None: - # Use the sslCommonName over the hostname for Python 2.6 compat. - hostname = resolved.get('sslCommonName', resolved.get('hostname')) endpoint_url = self._make_url( - hostname, is_secure, resolved.get('protocols', []) + resolved.get('hostname'), + is_secure, + resolved.get('protocols', []), ) signature_version = self._resolve_signature_version( service_name, resolved @@ -765,9 +792,18 @@ class ClientEndpointBridge: if configured_version is not None: return configured_version + potential_versions = resolved.get('signatureVersions', []) + if ( + self.service_signature_version is not None + and self.service_signature_version + not in _LEGACY_SIGNATURE_VERSIONS + ): + # Prefer the service model as most specific + # source of truth for new signature versions. + potential_versions = [self.service_signature_version] + # Pick a signature version from the endpoint metadata if present. if 'signatureVersions' in resolved: - potential_versions = resolved['signatureVersions'] if service_name == 's3': return 's3v4' if 'v4' in potential_versions: @@ -778,7 +814,7 @@ class ClientEndpointBridge: if known in AUTH_TYPE_MAPS: return known raise UnknownSignatureVersionError( - signature_version=resolved.get('signatureVersions') + signature_version=potential_versions ) @@ -804,9 +840,11 @@ class BaseClient: client_config, partition, exceptions_factory, + endpoint_ruleset_resolver=None, ): self._serializer = serializer self._endpoint = endpoint + self._ruleset_resolver = endpoint_ruleset_resolver self._response_parser = response_parser self._request_signer = request_signer self._cache = {} @@ -839,6 +877,10 @@ class BaseClient: f"'{self.__class__.__name__}' object has no attribute '{item}'" ) + def close(self): + """Closes underlying endpoint connections.""" + self._endpoint.close() + def _register_handlers(self): # Register the handler required to sign requests. service_id = self.meta.service_model.service_id.hyphenize() @@ -871,8 +913,15 @@ class BaseClient: 'has_streaming_input': operation_model.has_streaming_input, 'auth_type': operation_model.auth_type, } + endpoint_url, additional_headers = self._resolve_endpoint_ruleset( + operation_model, api_params, request_context + ) request_dict = self._convert_to_request_dict( - api_params, operation_model, context=request_context + api_params=api_params, + operation_model=operation_model, + endpoint_url=endpoint_url, + context=request_context, + headers=additional_headers, ) resolve_checksum_context(request_dict, operation_model, api_params) @@ -927,7 +976,13 @@ class BaseClient: raise def _convert_to_request_dict( - self, api_params, operation_model, context=None + self, + api_params, + operation_model, + endpoint_url, + context=None, + headers=None, + set_user_agent_header=True, ): api_params = self._emit_api_params( api_params, operation_model, context @@ -937,10 +992,16 @@ class BaseClient: ) if not self._client_config.inject_host_prefix: request_dict.pop('host_prefix', None) + if headers is not None: + request_dict['headers'].update(headers) + if set_user_agent_header: + user_agent = self._client_config.user_agent + else: + user_agent = None prepare_request_dict( request_dict, - endpoint_url=self._endpoint.host, - user_agent=self._client_config.user_agent, + endpoint_url=endpoint_url, + user_agent=user_agent, context=context, ) return request_dict @@ -970,6 +1031,56 @@ class BaseClient: ) return api_params + def _resolve_endpoint_ruleset( + self, + operation_model, + params, + request_context, + ignore_signing_region=False, + ): + """Returns endpoint URL and list of additional headers returned from + EndpointRulesetResolver for the given operation and params. If the + ruleset resolver is not available, for example because the service has + no endpoints ruleset file, the legacy endpoint resolver's value is + returned. + + Use ignore_signing_region for generating presigned URLs or any other + situtation where the signing region information from the ruleset + resolver should be ignored. + + Returns tuple of URL and headers dictionary. Additionally, the + request_context dict is modified in place with any signing information + returned from the ruleset resolver. + """ + if self._ruleset_resolver is None: + endpoint_url = self.meta.endpoint_url + additional_headers = {} + else: + endpoint_info = self._ruleset_resolver.construct_endpoint( + operation_model=operation_model, + call_args=params, + request_context=request_context, + ) + endpoint_url = endpoint_info.url + additional_headers = endpoint_info.headers + # If authSchemes is present, overwrite default auth type and + # signing context derived from service model. + auth_schemes = endpoint_info.properties.get('authSchemes') + if auth_schemes is not None: + auth_info = self._ruleset_resolver.auth_schemes_to_signing_ctx( + auth_schemes + ) + auth_type, signing_context = auth_info + request_context['auth_type'] = auth_type + if 'region' in signing_context and ignore_signing_region: + del signing_context['region'] + if 'signing' in request_context: + request_context['signing'].update(signing_context) + else: + request_context['signing'] = signing_context + + return endpoint_url, additional_headers + def get_paginator(self, operation_name): """Create a paginator for an operation. diff --git a/botocore/compat.py b/botocore/compat.py index bfb5df33..c9d5821c 100644 --- a/botocore/compat.py +++ b/botocore/compat.py @@ -17,6 +17,7 @@ import sys import inspect import warnings import hashlib +from http.client import HTTPMessage import logging import shlex import re @@ -33,9 +34,7 @@ from urllib3 import exceptions logger = logging.getLogger(__name__) -from botocore.vendored.six.moves import http_client - -class HTTPHeaders(http_client.HTTPMessage): +class HTTPHeaders(HTTPMessage): pass from urllib.parse import ( @@ -307,6 +306,7 @@ except ImportError: # Vendoring IPv6 validation regex patterns from urllib3 # https://github.com/urllib3/urllib3/blob/7e856c0/src/urllib3/util/url.py IPV4_PAT = r"(?:[0-9]{1,3}\.){3}[0-9]{1,3}" +IPV4_RE = re.compile("^" + IPV4_PAT + "$") HEX_PAT = "[0-9A-Fa-f]{1,4}" LS32_PAT = "(?:{hex}:{hex}|{ipv4})".format(hex=HEX_PAT, ipv4=IPV4_PAT) _subs = {"hex": HEX_PAT, "ls32": LS32_PAT} diff --git a/botocore/config.py b/botocore/config.py index 0187fca7..58d56395 100644 --- a/botocore/config.py +++ b/botocore/config.py @@ -183,6 +183,12 @@ class Config: endpoint resolution. Defaults to None. + + :type tcp_keepalive: bool + :param tcp_keepalive: Enables the TCP Keep-Alive socket option used when + creating new connections if set to True. + + Defaults to False. """ OPTION_DEFAULTS = OrderedDict( @@ -205,6 +211,7 @@ class Config: ('use_dualstack_endpoint', None), ('use_fips_endpoint', None), ('defaults_mode', None), + ('tcp_keepalive', None), ] ) @@ -276,11 +283,14 @@ class Config: ) def _validate_retry_configuration(self, retries): + valid_options = ('max_attempts', 'mode', 'total_max_attempts') + valid_modes = ('legacy', 'standard', 'adaptive') if retries is not None: for key, value in retries.items(): - if key not in ['max_attempts', 'mode', 'total_max_attempts']: + if key not in valid_options: raise InvalidRetryConfigurationError( - retry_config_option=key + retry_config_option=key, + valid_options=valid_options, ) if key == 'max_attempts' and value < 0: raise InvalidMaxRetryAttemptsError( @@ -292,12 +302,11 @@ class Config: provided_max_attempts=value, min_value=1, ) - if key == 'mode' and value not in ( - 'legacy', - 'standard', - 'adaptive', - ): - raise InvalidRetryModeError(provided_retry_mode=value) + if key == 'mode' and value not in valid_modes: + raise InvalidRetryModeError( + provided_retry_mode=value, + valid_modes=valid_modes, + ) def merge(self, other_config): """Merges the config object with another config object diff --git a/botocore/configloader.py b/botocore/configloader.py index 870ca4c1..245d9d8e 100644 --- a/botocore/configloader.py +++ b/botocore/configloader.py @@ -11,13 +11,13 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. +import configparser import copy import os import shlex import sys import botocore.exceptions -from botocore.compat import six def multi_file_load_config(*filenames): @@ -143,10 +143,10 @@ def raw_config_parse(config_filename, parse_subsections=True): path = os.path.expanduser(path) if not os.path.isfile(path): raise botocore.exceptions.ConfigNotFound(path=_unicode_path(path)) - cp = six.moves.configparser.RawConfigParser() + cp = configparser.RawConfigParser() try: cp.read([path]) - except (six.moves.configparser.Error, UnicodeDecodeError) as e: + except (configparser.Error, UnicodeDecodeError) as e: raise botocore.exceptions.ConfigParseError( path=_unicode_path(path), error=e ) from None @@ -253,6 +253,7 @@ def build_profile_map(parsed_ini_config): """ parsed_config = copy.deepcopy(parsed_ini_config) profiles = {} + sso_sessions = {} final_config = {} for key, values in parsed_config.items(): if key.startswith("profile"): @@ -262,6 +263,13 @@ def build_profile_map(parsed_ini_config): continue if len(parts) == 2: profiles[parts[1]] = values + elif key.startswith("sso-session"): + try: + parts = shlex.split(key) + except ValueError: + continue + if len(parts) == 2: + sso_sessions[parts[1]] = values elif key == 'default': # default section is special and is considered a profile # name but we don't require you use 'profile "default"' @@ -270,4 +278,5 @@ def build_profile_map(parsed_ini_config): else: final_config[key] = values final_config['profiles'] = profiles + final_config['sso_sessions'] = sso_sessions return final_config diff --git a/botocore/credentials.py b/botocore/credentials.py index 79a58103..107ea2de 100644 --- a/botocore/credentials.py +++ b/botocore/credentials.py @@ -22,7 +22,6 @@ import time from collections import namedtuple from copy import deepcopy from hashlib import sha1 -from pathlib import Path from dateutil.parser import parse from dateutil.tz import tzlocal, tzutc @@ -43,10 +42,12 @@ from botocore.exceptions import ( UnauthorizedSSOTokenError, UnknownCredentialError, ) +from botocore.tokens import SSOTokenProvider from botocore.utils import ( ContainerMetadataFetcher, FileWebIdentityTokenLoader, InstanceMetadataFetcher, + JSONFileCache, SSOTokenLoader, parse_key_val_file, resolve_imds_endpoint_mode, @@ -223,6 +224,7 @@ class ProfileProviderBuilder: profile_name=profile_name, cache=self._cache, token_cache=self._sso_token_cache, + token_provider=SSOTokenProvider(self._session), ) @@ -292,68 +294,6 @@ def create_mfa_serial_refresher(actual_refresh): return _Refresher(actual_refresh) -class JSONFileCache: - """JSON file cache. - This provides a dict like interface that stores JSON serializable - objects. - The objects are serialized to JSON and stored in a file. These - values can be retrieved at a later time. - """ - - CACHE_DIR = os.path.expanduser(os.path.join('~', '.aws', 'boto', 'cache')) - - def __init__(self, working_dir=CACHE_DIR, dumps_func=None): - self._working_dir = working_dir - if dumps_func is None: - dumps_func = self._default_dumps - self._dumps = dumps_func - - def _default_dumps(self, obj): - return json.dumps(obj, default=_serialize_if_needed) - - def __contains__(self, cache_key): - actual_key = self._convert_cache_key(cache_key) - return os.path.isfile(actual_key) - - def __getitem__(self, cache_key): - """Retrieve value from a cache key.""" - actual_key = self._convert_cache_key(cache_key) - try: - with open(actual_key) as f: - return json.load(f) - except (OSError, ValueError): - raise KeyError(cache_key) - - def __delitem__(self, cache_key): - actual_key = self._convert_cache_key(cache_key) - try: - key_path = Path(actual_key) - key_path.unlink() - except FileNotFoundError: - raise KeyError(cache_key) - - def __setitem__(self, cache_key, value): - full_key = self._convert_cache_key(cache_key) - try: - file_content = self._dumps(value) - except (TypeError, ValueError): - raise ValueError( - f"Value cannot be cached, must be " - f"JSON serializable: {value}" - ) - if not os.path.isdir(self._working_dir): - os.makedirs(self._working_dir) - with os.fdopen( - os.open(full_key, os.O_WRONLY | os.O_CREAT, 0o600), 'w' - ) as f: - f.truncate() - f.write(file_content) - - def _convert_cache_key(self, cache_key): - full_path = os.path.join(self._working_dir, cache_key + '.json') - return full_path - - class Credentials: """ Holds the credentials needed to authenticate requests. @@ -1105,7 +1045,7 @@ class InstanceMetadataProvider(CredentialProvider): metadata = fetcher.retrieve_iam_role_credentials() if not metadata: return None - logger.debug( + logger.info( 'Found credentials from IAM Role: %s', metadata['role_name'] ) # We manually set the data here, since we already made the request & @@ -2118,6 +2058,8 @@ class SSOCredentialFetcher(CachedCredentialFetcher): token_loader=None, cache=None, expiry_window_seconds=None, + token_provider=None, + sso_session_name=None, ): self._client_creator = client_creator self._sso_region = sso_region @@ -2125,6 +2067,8 @@ class SSOCredentialFetcher(CachedCredentialFetcher): self._account_id = account_id self._start_url = start_url self._token_loader = token_loader + self._token_provider = token_provider + self._sso_session_name = sso_session_name super().__init__(cache, expiry_window_seconds) def _create_cache_key(self): @@ -2133,10 +2077,13 @@ class SSOCredentialFetcher(CachedCredentialFetcher): The cache key is intended to be compatible with file names. """ args = { - 'startUrl': self._start_url, 'roleName': self._role_name, 'accountId': self._account_id, } + if self._sso_session_name: + args['sessionName'] = self._sso_session_name + else: + args['startUrl'] = self._start_url # NOTE: It would be good to hoist this cache key construction logic # into the CachedCredentialFetcher class as we should be consistent. # Unfortunately, the current assume role fetchers that sub class don't @@ -2159,11 +2106,16 @@ class SSOCredentialFetcher(CachedCredentialFetcher): region_name=self._sso_region, ) client = self._client_creator('sso', config=config) + if self._token_provider: + initial_token_data = self._token_provider.load_token() + token = initial_token_data.get_frozen_token().token + else: + token = self._token_loader(self._start_url)['accessToken'] kwargs = { 'roleName': self._role_name, 'accountId': self._account_id, - 'accessToken': self._token_loader(self._start_url), + 'accessToken': token, } try: response = client.get_role_credentials(**kwargs) @@ -2189,12 +2141,17 @@ class SSOProvider(CredentialProvider): _SSO_TOKEN_CACHE_DIR = os.path.expanduser( os.path.join('~', '.aws', 'sso', 'cache') ) - _SSO_CONFIG_VARS = [ - 'sso_start_url', - 'sso_region', + _PROFILE_REQUIRED_CONFIG_VARS = ( 'sso_role_name', 'sso_account_id', - ] + ) + _SSO_REQUIRED_CONFIG_VARS = ( + 'sso_start_url', + 'sso_region', + ) + _ALL_REQUIRED_CONFIG_VARS = ( + _PROFILE_REQUIRED_CONFIG_VARS + _SSO_REQUIRED_CONFIG_VARS + ) def __init__( self, @@ -2203,10 +2160,12 @@ class SSOProvider(CredentialProvider): profile_name, cache=None, token_cache=None, + token_provider=None, ): if token_cache is None: token_cache = JSONFileCache(self._SSO_TOKEN_CACHE_DIR) self._token_cache = token_cache + self._token_provider = token_provider if cache is None: cache = {} self.cache = cache @@ -2219,15 +2178,24 @@ class SSOProvider(CredentialProvider): profiles = loaded_config.get('profiles', {}) profile_name = self._profile_name profile_config = profiles.get(self._profile_name, {}) + sso_sessions = loaded_config.get('sso_sessions', {}) - if all(c not in profile_config for c in self._SSO_CONFIG_VARS): + # Role name & Account ID indicate the cred provider should be used + if all( + c not in profile_config for c in self._PROFILE_REQUIRED_CONFIG_VARS + ): return None + resolved_config, extra_reqs = self._resolve_sso_session_reference( + profile_config, sso_sessions + ) + config = {} missing_config_vars = [] - for config_var in self._SSO_CONFIG_VARS: - if config_var in profile_config: - config[config_var] = profile_config[config_var] + all_required_configs = self._ALL_REQUIRED_CONFIG_VARS + extra_reqs + for config_var in all_required_configs: + if config_var in resolved_config: + config[config_var] = resolved_config[config_var] else: missing_config_vars.append(config_var) @@ -2239,23 +2207,50 @@ class SSOProvider(CredentialProvider): 'required configuration: %s' % (profile_name, missing) ) ) - return config + def _resolve_sso_session_reference(self, profile_config, sso_sessions): + sso_session_name = profile_config.get('sso_session') + if sso_session_name is None: + # No reference to resolve, proceed with legacy flow + return profile_config, () + + if sso_session_name not in sso_sessions: + error_msg = f'The specified sso-session does not exist: "{sso_session_name}"' + raise InvalidConfigError(error_msg=error_msg) + + config = profile_config.copy() + session = sso_sessions[sso_session_name] + for config_var, val in session.items(): + # Validate any keys referenced in both profile and sso_session match + if config.get(config_var, val) != val: + error_msg = ( + f"The value for {config_var} is inconsistent between " + f"profile ({config[config_var]}) and sso-session ({val})." + ) + raise InvalidConfigError(error_msg=error_msg) + config[config_var] = val + return config, ('sso_session',) + def load(self): sso_config = self._load_sso_config() if not sso_config: return None - sso_fetcher = SSOCredentialFetcher( - sso_config['sso_start_url'], - sso_config['sso_region'], - sso_config['sso_role_name'], - sso_config['sso_account_id'], - self._client_creator, - token_loader=SSOTokenLoader(cache=self._token_cache), - cache=self.cache, - ) + fetcher_kwargs = { + 'start_url': sso_config['sso_start_url'], + 'sso_region': sso_config['sso_region'], + 'role_name': sso_config['sso_role_name'], + 'account_id': sso_config['sso_account_id'], + 'client_creator': self._client_creator, + 'token_loader': SSOTokenLoader(cache=self._token_cache), + 'cache': self.cache, + } + if 'sso_session' in sso_config: + fetcher_kwargs['sso_session_name'] = sso_config['sso_session'] + fetcher_kwargs['token_provider'] = self._token_provider + + sso_fetcher = SSOCredentialFetcher(**fetcher_kwargs) return DeferredRefreshableCredentials( method=self.METHOD, diff --git a/botocore/crt/__init__.py b/botocore/crt/__init__.py index e69de29b..952ebf34 100644 --- a/botocore/crt/__init__.py +++ b/botocore/crt/__init__.py @@ -0,0 +1,27 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +# A list of auth types supported by the signers in botocore/crt/auth.py. This +# should always match the keys of botocore.crt.auth.CRT_AUTH_TYPE_MAPS. The +# information is duplicated here so that it can be accessed in environments +# where `awscrt` is not present and any import from botocore.crt.auth would +# fail. +CRT_SUPPORTED_AUTH_TYPES = ( + 'v4', + 'v4-query', + 'v4a', + 's3v4', + 's3v4-query', + 's3v4a', + 's3v4a-query', +) diff --git a/botocore/crt/auth.py b/botocore/crt/auth.py index 1fd55675..43b18196 100644 --- a/botocore/crt/auth.py +++ b/botocore/crt/auth.py @@ -1,3 +1,16 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + import datetime from io import BytesIO diff --git a/botocore/data/accessanalyzer/2019-11-01/endpoint-rule-set-1.json b/botocore/data/accessanalyzer/2019-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..9dc09f7b --- /dev/null +++ b/botocore/data/accessanalyzer/2019-11-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://access-analyzer-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://access-analyzer-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://access-analyzer.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://access-analyzer.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2017-03-25/examples-1.json b/botocore/data/accessanalyzer/2019-11-01/examples-1.json similarity index 100% rename from botocore/data/cloudfront/2017-03-25/examples-1.json rename to botocore/data/accessanalyzer/2019-11-01/examples-1.json diff --git a/botocore/data/accessanalyzer/2019-11-01/service-2.json b/botocore/data/accessanalyzer/2019-11-01/service-2.json index 9524f612..43b610ea 100644 --- a/botocore/data/accessanalyzer/2019-11-01/service-2.json +++ b/botocore/data/accessanalyzer/2019-11-01/service-2.json @@ -545,13 +545,17 @@ "AccessPreview":{ "type":"structure", "required":[ + "id", "analyzerArn", "configurations", "createdAt", - "id", "status" ], "members":{ + "id":{ + "shape":"AccessPreviewId", + "documentation":"

The unique ID for the access preview.

" + }, "analyzerArn":{ "shape":"AnalyzerArn", "documentation":"

The ARN of the analyzer used to generate the access preview.

" @@ -564,10 +568,6 @@ "shape":"Timestamp", "documentation":"

The time at which the access preview was created.

" }, - "id":{ - "shape":"AccessPreviewId", - "documentation":"

The unique ID for the access preview.

" - }, "status":{ "shape":"AccessPreviewStatus", "documentation":"

The status of the access preview.

  • Creating - The access preview creation is in progress.

  • Completed - The access preview is complete. You can preview findings for external access to the resource.

  • Failed - The access preview creation has failed.

" @@ -582,33 +582,17 @@ "AccessPreviewFinding":{ "type":"structure", "required":[ - "changeType", - "createdAt", "id", - "resourceOwnerAccount", "resourceType", - "status" + "createdAt", + "changeType", + "status", + "resourceOwnerAccount" ], "members":{ - "action":{ - "shape":"ActionList", - "documentation":"

The action in the analyzed policy statement that an external principal has permission to perform.

" - }, - "changeType":{ - "shape":"FindingChangeType", - "documentation":"

Provides context on how the access preview finding compares to existing access identified in IAM Access Analyzer.

  • New - The finding is for newly-introduced access.

  • Unchanged - The preview finding is an existing finding that would remain unchanged.

  • Changed - The preview finding is an existing finding with a change in status.

For example, a Changed finding with preview status Resolved and existing status Active indicates the existing Active finding would become Resolved as a result of the proposed permissions change.

" - }, - "condition":{ - "shape":"ConditionKeyMap", - "documentation":"

The condition in the analyzed policy statement that resulted in a finding.

" - }, - "createdAt":{ - "shape":"Timestamp", - "documentation":"

The time at which the access preview finding was created.

" - }, - "error":{ - "shape":"String", - "documentation":"

An error.

" + "id":{ + "shape":"AccessPreviewFindingId", + "documentation":"

The ID of the access preview finding. This ID uniquely identifies the element in the list of access preview findings and is not related to the finding ID in Access Analyzer.

" }, "existingFindingId":{ "shape":"FindingId", @@ -618,37 +602,53 @@ "shape":"FindingStatus", "documentation":"

The existing status of the finding, provided only for existing findings.

" }, - "id":{ - "shape":"AccessPreviewFindingId", - "documentation":"

The ID of the access preview finding. This ID uniquely identifies the element in the list of access preview findings and is not related to the finding ID in Access Analyzer.

" - }, - "isPublic":{ - "shape":"Boolean", - "documentation":"

Indicates whether the policy that generated the finding allows public access to the resource.

" - }, "principal":{ "shape":"PrincipalMap", "documentation":"

The external principal that has access to a resource within the zone of trust.

" }, + "action":{ + "shape":"ActionList", + "documentation":"

The action in the analyzed policy statement that an external principal has permission to perform.

" + }, + "condition":{ + "shape":"ConditionKeyMap", + "documentation":"

The condition in the analyzed policy statement that resulted in a finding.

" + }, "resource":{ "shape":"String", "documentation":"

The resource that an external principal has access to. This is the resource associated with the access preview.

" }, - "resourceOwnerAccount":{ - "shape":"String", - "documentation":"

The Amazon Web Services account ID that owns the resource. For most Amazon Web Services resources, the owning account is the account in which the resource was created.

" + "isPublic":{ + "shape":"Boolean", + "documentation":"

Indicates whether the policy that generated the finding allows public access to the resource.

" }, "resourceType":{ "shape":"ResourceType", "documentation":"

The type of the resource that can be accessed in the finding.

" }, - "sources":{ - "shape":"FindingSourceList", - "documentation":"

The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

" + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the access preview finding was created.

" + }, + "changeType":{ + "shape":"FindingChangeType", + "documentation":"

Provides context on how the access preview finding compares to existing access identified in IAM Access Analyzer.

  • New - The finding is for newly-introduced access.

  • Unchanged - The preview finding is an existing finding that would remain unchanged.

  • Changed - The preview finding is an existing finding with a change in status.

For example, a Changed finding with preview status Resolved and existing status Active indicates the existing Active finding would become Resolved as a result of the proposed permissions change.

" }, "status":{ "shape":"FindingStatus", "documentation":"

The preview status of the finding. This is what the status of the finding would be after permissions deployment. For example, a Changed finding with preview status Resolved and existing status Active indicates the existing Active finding would become Resolved as a result of the proposed permissions change.

" + }, + "resourceOwnerAccount":{ + "shape":"String", + "documentation":"

The Amazon Web Services account ID that owns the resource. For most Amazon Web Services resources, the owning account is the account in which the resource was created.

" + }, + "error":{ + "shape":"String", + "documentation":"

An error.

" + }, + "sources":{ + "shape":"FindingSourceList", + "documentation":"

The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

" } }, "documentation":"

An access preview finding generated by the access preview.

" @@ -691,12 +691,16 @@ "AccessPreviewSummary":{ "type":"structure", "required":[ + "id", "analyzerArn", "createdAt", - "id", "status" ], "members":{ + "id":{ + "shape":"AccessPreviewId", + "documentation":"

The unique ID for the access preview.

" + }, "analyzerArn":{ "shape":"AnalyzerArn", "documentation":"

The ARN of the analyzer used to generate the access preview.

" @@ -705,10 +709,6 @@ "shape":"Timestamp", "documentation":"

The time at which the access preview was created.

" }, - "id":{ - "shape":"AccessPreviewId", - "documentation":"

The unique ID for the access preview.

" - }, "status":{ "shape":"AccessPreviewStatus", "documentation":"

The status of the access preview.

  • Creating - The access preview creation is in progress.

  • Completed - The access preview is complete and previews the findings for external access to the resource.

  • Failed - The access preview creation has failed.

" @@ -755,46 +755,42 @@ "AnalyzedResource":{ "type":"structure", "required":[ - "analyzedAt", - "createdAt", - "isPublic", "resourceArn", - "resourceOwnerAccount", "resourceType", - "updatedAt" + "createdAt", + "analyzedAt", + "updatedAt", + "isPublic", + "resourceOwnerAccount" ], "members":{ - "actions":{ - "shape":"ActionList", - "documentation":"

The actions that an external principal is granted permission to use by the policy that generated the finding.

" + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The ARN of the resource that was analyzed.

" }, - "analyzedAt":{ - "shape":"Timestamp", - "documentation":"

The time at which the resource was analyzed.

" + "resourceType":{ + "shape":"ResourceType", + "documentation":"

The type of the resource that was analyzed.

" }, "createdAt":{ "shape":"Timestamp", "documentation":"

The time at which the finding was created.

" }, - "error":{ - "shape":"String", - "documentation":"

An error message.

" + "analyzedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the resource was analyzed.

" + }, + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the finding was updated.

" }, "isPublic":{ "shape":"Boolean", "documentation":"

Indicates whether the policy that generated the finding grants public access to the resource.

" }, - "resourceArn":{ - "shape":"ResourceArn", - "documentation":"

The ARN of the resource that was analyzed.

" - }, - "resourceOwnerAccount":{ - "shape":"String", - "documentation":"

The Amazon Web Services account ID that owns the resource.

" - }, - "resourceType":{ - "shape":"ResourceType", - "documentation":"

The type of the resource that was analyzed.

" + "actions":{ + "shape":"ActionList", + "documentation":"

The actions that an external principal is granted permission to use by the policy that generated the finding.

" }, "sharedVia":{ "shape":"SharedViaList", @@ -804,9 +800,13 @@ "shape":"FindingStatus", "documentation":"

The current status of the finding generated from the analyzed resource.

" }, - "updatedAt":{ - "shape":"Timestamp", - "documentation":"

The time at which the finding was updated.

" + "resourceOwnerAccount":{ + "shape":"String", + "documentation":"

The Amazon Web Services account ID that owns the resource.

" + }, + "error":{ + "shape":"String", + "documentation":"

An error message.

" } }, "documentation":"

Contains details about the analyzed resource.

" @@ -855,16 +855,24 @@ "type":"structure", "required":[ "arn", - "createdAt", "name", - "status", - "type" + "type", + "createdAt", + "status" ], "members":{ "arn":{ "shape":"AnalyzerArn", "documentation":"

The ARN of the analyzer.

" }, + "name":{ + "shape":"Name", + "documentation":"

The name of the analyzer.

" + }, + "type":{ + "shape":"Type", + "documentation":"

The type of analyzer, which corresponds to the zone of trust chosen for the analyzer.

" + }, "createdAt":{ "shape":"Timestamp", "documentation":"

A timestamp for the time at which the analyzer was created.

" @@ -877,9 +885,9 @@ "shape":"Timestamp", "documentation":"

The time at which the most recently analyzed resource was analyzed.

" }, - "name":{ - "shape":"Name", - "documentation":"

The name of the analyzer.

" + "tags":{ + "shape":"TagsMap", + "documentation":"

The tags added to the analyzer.

" }, "status":{ "shape":"AnalyzerStatus", @@ -888,14 +896,6 @@ "statusReason":{ "shape":"StatusReason", "documentation":"

The statusReason provides more details about the current status of the analyzer. For example, if the creation for the analyzer fails, a Failed status is returned. For an analyzer with organization as the type, this failure can be due to an issue with creating the service-linked roles required in the member accounts of the Amazon Web Services organization.

" - }, - "tags":{ - "shape":"TagsMap", - "documentation":"

The tags added to the analyzer.

" - }, - "type":{ - "shape":"Type", - "documentation":"

The type of analyzer, which corresponds to the zone of trust chosen for the analyzer.

" } }, "documentation":"

Contains information about the analyzer.

" @@ -915,14 +915,14 @@ "shape":"AnalyzerArn", "documentation":"

The Amazon resource name (ARN) of the analyzer.

" }, + "ruleName":{ + "shape":"Name", + "documentation":"

The name of the rule to apply.

" + }, "clientToken":{ "shape":"String", "documentation":"

A client token.

", "idempotencyToken":true - }, - "ruleName":{ - "shape":"Name", - "documentation":"

The name of the rule to apply.

" } }, "documentation":"

Retroactively applies an archive rule.

" @@ -930,23 +930,23 @@ "ArchiveRuleSummary":{ "type":"structure", "required":[ - "createdAt", - "filter", "ruleName", + "filter", + "createdAt", "updatedAt" ], "members":{ - "createdAt":{ - "shape":"Timestamp", - "documentation":"

The time at which the archive rule was created.

" + "ruleName":{ + "shape":"Name", + "documentation":"

The name of the archive rule.

" }, "filter":{ "shape":"FilterCriteriaMap", "documentation":"

A filter used to define the archive rule.

" }, - "ruleName":{ - "shape":"Name", - "documentation":"

The name of the archive rule.

" + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the archive rule was created.

" }, "updatedAt":{ "shape":"Timestamp", @@ -987,26 +987,26 @@ "CloudTrailDetails":{ "type":"structure", "required":[ + "trails", "accessRole", - "startTime", - "trails" + "startTime" ], "members":{ + "trails":{ + "shape":"TrailList", + "documentation":"

A Trail object that contains settings for a trail.

" + }, "accessRole":{ "shape":"RoleArn", "documentation":"

The ARN of the service role that IAM Access Analyzer uses to access your CloudTrail trail and service last accessed information.

" }, - "endTime":{ - "shape":"Timestamp", - "documentation":"

The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time.

" - }, "startTime":{ "shape":"Timestamp", "documentation":"

The start of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp before this time are not considered to generate a policy.

" }, - "trails":{ - "shape":"TrailList", - "documentation":"

A Trail object that contains settings for a trail.

" + "endTime":{ + "shape":"Timestamp", + "documentation":"

The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time.

" } }, "documentation":"

Contains information about CloudTrail access.

" @@ -1014,22 +1014,22 @@ "CloudTrailProperties":{ "type":"structure", "required":[ - "endTime", + "trailProperties", "startTime", - "trailProperties" + "endTime" ], "members":{ - "endTime":{ - "shape":"Timestamp", - "documentation":"

The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time.

" + "trailProperties":{ + "shape":"TrailPropertiesList", + "documentation":"

A TrailProperties object that contains settings for trail properties.

" }, "startTime":{ "shape":"Timestamp", "documentation":"

The start of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp before this time are not considered to generate a policy.

" }, - "trailProperties":{ - "shape":"TrailPropertiesList", - "documentation":"

A TrailProperties object that contains settings for trail properties.

" + "endTime":{ + "shape":"Timestamp", + "documentation":"

The end of the time range for which IAM Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time.

" } }, "documentation":"

Contains information about CloudTrail access.

" @@ -1042,22 +1042,46 @@ "Configuration":{ "type":"structure", "members":{ + "ebsSnapshot":{ + "shape":"EbsSnapshotConfiguration", + "documentation":"

The access control configuration is for an Amazon EBS volume snapshot.

" + }, + "ecrRepository":{ + "shape":"EcrRepositoryConfiguration", + "documentation":"

The access control configuration is for an Amazon ECR repository.

" + }, "iamRole":{ "shape":"IamRoleConfiguration", "documentation":"

The access control configuration is for an IAM role.

" }, + "efsFileSystem":{ + "shape":"EfsFileSystemConfiguration", + "documentation":"

The access control configuration is for an Amazon EFS file system.

" + }, "kmsKey":{ "shape":"KmsKeyConfiguration", "documentation":"

The access control configuration is for a KMS key.

" }, - "s3Bucket":{ - "shape":"S3BucketConfiguration", - "documentation":"

The access control configuration is for an Amazon S3 Bucket.

" + "rdsDbClusterSnapshot":{ + "shape":"RdsDbClusterSnapshotConfiguration", + "documentation":"

The access control configuration is for an Amazon RDS DB cluster snapshot.

" + }, + "rdsDbSnapshot":{ + "shape":"RdsDbSnapshotConfiguration", + "documentation":"

The access control configuration is for an Amazon RDS DB snapshot.

" }, "secretsManagerSecret":{ "shape":"SecretsManagerSecretConfiguration", "documentation":"

The access control configuration is for a Secrets Manager secret.

" }, + "s3Bucket":{ + "shape":"S3BucketConfiguration", + "documentation":"

The access control configuration is for an Amazon S3 Bucket.

" + }, + "snsTopic":{ + "shape":"SnsTopicConfiguration", + "documentation":"

The access control configuration is for an Amazon SNS topic

" + }, "sqsQueue":{ "shape":"SqsQueueConfiguration", "documentation":"

The access control configuration is for an Amazon SQS queue.

" @@ -1108,14 +1132,14 @@ "shape":"AnalyzerArn", "documentation":"

The ARN of the account analyzer used to generate the access preview. You can only create an access preview for analyzers with an Account type and Active status.

" }, + "configurations":{ + "shape":"ConfigurationsMap", + "documentation":"

Access control configuration for your resource that is used to generate the access preview. The access preview includes findings for external access allowed to the resource with the proposed access control configuration. The configuration must contain exactly one element.

" + }, "clientToken":{ "shape":"String", "documentation":"

A client token.

", "idempotencyToken":true - }, - "configurations":{ - "shape":"ConfigurationsMap", - "documentation":"

Access control configuration for your resource that is used to generate the access preview. The access preview includes findings for external access allowed to the resource with the proposed access control configuration. The configuration must contain exactly one element.

" } } }, @@ -1140,22 +1164,22 @@ "shape":"Name", "documentation":"

The name of the analyzer to create.

" }, + "type":{ + "shape":"Type", + "documentation":"

The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.

" + }, "archiveRules":{ "shape":"InlineArchiveRulesList", "documentation":"

Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule.

" }, - "clientToken":{ - "shape":"String", - "documentation":"

A client token.

", - "idempotencyToken":true - }, "tags":{ "shape":"TagsMap", "documentation":"

The tags to apply to the analyzer.

" }, - "type":{ - "shape":"Type", - "documentation":"

The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.

" + "clientToken":{ + "shape":"String", + "documentation":"

A client token.

", + "idempotencyToken":true } }, "documentation":"

Creates an analyzer.

" @@ -1174,8 +1198,8 @@ "type":"structure", "required":[ "analyzerName", - "filter", - "ruleName" + "ruleName", + "filter" ], "members":{ "analyzerName":{ @@ -1184,18 +1208,18 @@ "location":"uri", "locationName":"analyzerName" }, - "clientToken":{ - "shape":"String", - "documentation":"

A client token.

", - "idempotencyToken":true + "ruleName":{ + "shape":"Name", + "documentation":"

The name of the rule to create.

" }, "filter":{ "shape":"FilterCriteriaMap", "documentation":"

The criteria for the rule.

" }, - "ruleName":{ - "shape":"Name", - "documentation":"

The name of the rule to create.

" + "clientToken":{ + "shape":"String", + "documentation":"

A client token.

", + "idempotencyToken":true } }, "documentation":"

Creates an archive rule.

" @@ -1203,24 +1227,24 @@ "Criterion":{ "type":"structure", "members":{ - "contains":{ - "shape":"ValueList", - "documentation":"

A \"contains\" operator to match for the filter used to create the rule.

" - }, "eq":{ "shape":"ValueList", "documentation":"

An \"equals\" operator to match for the filter used to create the rule.

" }, - "exists":{ - "shape":"Boolean", - "documentation":"

An \"exists\" operator to match for the filter used to create the rule.

" - }, "neq":{ "shape":"ValueList", "documentation":"

A \"not equals\" operator to match for the filter used to create the rule.

" + }, + "contains":{ + "shape":"ValueList", + "documentation":"

A \"contains\" operator to match for the filter used to create the rule.

" + }, + "exists":{ + "shape":"Boolean", + "documentation":"

An \"exists\" operator to match for the filter used to create the rule.

" } }, - "documentation":"

The criteria to use in the filter that defines the archive rule.

" + "documentation":"

The criteria to use in the filter that defines the archive rule. For more information on available filter keys, see IAM Access Analyzer filter keys.

" }, "DeleteAnalyzerRequest":{ "type":"structure", @@ -1255,22 +1279,73 @@ "location":"uri", "locationName":"analyzerName" }, + "ruleName":{ + "shape":"Name", + "documentation":"

The name of the rule to delete.

", + "location":"uri", + "locationName":"ruleName" + }, "clientToken":{ "shape":"String", "documentation":"

A client token.

", "idempotencyToken":true, "location":"querystring", "locationName":"clientToken" - }, - "ruleName":{ - "shape":"Name", - "documentation":"

The name of the rule to delete.

", - "location":"uri", - "locationName":"ruleName" } }, "documentation":"

Deletes an archive rule.

" }, + "EbsGroup":{"type":"string"}, + "EbsGroupList":{ + "type":"list", + "member":{"shape":"EbsGroup"} + }, + "EbsSnapshotConfiguration":{ + "type":"structure", + "members":{ + "userIds":{ + "shape":"EbsUserIdList", + "documentation":"

The IDs of the Amazon Web Services accounts that have access to the Amazon EBS volume snapshot.

  • If the configuration is for an existing Amazon EBS volume snapshot and you do not specify the userIds, then the access preview uses the existing shared userIds for the snapshot.

  • If the access preview is for a new resource and you do not specify the userIds, then the access preview considers the snapshot without any userIds.

  • To propose deletion of existing shared accountIds, you can specify an empty list for userIds.

" + }, + "groups":{ + "shape":"EbsGroupList", + "documentation":"

The groups that have access to the Amazon EBS volume snapshot. If the value all is specified, then the Amazon EBS volume snapshot is public.

  • If the configuration is for an existing Amazon EBS volume snapshot and you do not specify the groups, then the access preview uses the existing shared groups for the snapshot.

  • If the access preview is for a new resource and you do not specify the groups, then the access preview considers the snapshot without any groups.

  • To propose deletion of existing shared groups, you can specify an empty list for groups.

" + }, + "kmsKeyId":{ + "shape":"EbsSnapshotDataEncryptionKeyId", + "documentation":"

The KMS key identifier for an encrypted Amazon EBS volume snapshot. The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

  • If the configuration is for an existing Amazon EBS volume snapshot and you do not specify the kmsKeyId, or you specify an empty string, then the access preview uses the existing kmsKeyId of the snapshot.

  • If the access preview is for a new resource and you do not specify the kmsKeyId, the access preview considers the snapshot as unencrypted.

" + } + }, + "documentation":"

The proposed access control configuration for an Amazon EBS volume snapshot. You can propose a configuration for a new Amazon EBS volume snapshot or an Amazon EBS volume snapshot that you own by specifying the user IDs, groups, and optional KMS encryption key. For more information, see ModifySnapshotAttribute.

" + }, + "EbsSnapshotDataEncryptionKeyId":{"type":"string"}, + "EbsUserId":{"type":"string"}, + "EbsUserIdList":{ + "type":"list", + "member":{"shape":"EbsUserId"} + }, + "EcrRepositoryConfiguration":{ + "type":"structure", + "members":{ + "repositoryPolicy":{ + "shape":"EcrRepositoryPolicy", + "documentation":"

The JSON repository policy text to apply to the Amazon ECR repository. For more information, see Private repository policy examples in the Amazon ECR User Guide.

" + } + }, + "documentation":"

The proposed access control configuration for an Amazon ECR repository. You can propose a configuration for a new Amazon ECR repository or an existing Amazon ECR repository that you own by specifying the Amazon ECR policy. For more information, see Repository.

  • If the configuration is for an existing Amazon ECR repository and you do not specify the Amazon ECR policy, then the access preview uses the existing Amazon ECR policy for the repository.

  • If the access preview is for a new resource and you do not specify the policy, then the access preview assumes an Amazon ECR repository without a policy.

  • To propose deletion of an existing Amazon ECR repository policy, you can specify an empty string for the Amazon ECR policy.

" + }, + "EcrRepositoryPolicy":{"type":"string"}, + "EfsFileSystemConfiguration":{ + "type":"structure", + "members":{ + "fileSystemPolicy":{ + "shape":"EfsFileSystemPolicy", + "documentation":"

The JSON policy definition to apply to the Amazon EFS file system. For more information on the elements that make up a file system policy, see Amazon EFS Resource-based policies.

" + } + }, + "documentation":"

The proposed access control configuration for an Amazon EFS file system. You can propose a configuration for a new Amazon EFS file system or an existing Amazon EFS file system that you own by specifying the Amazon EFS policy. For more information, see Using file systems in Amazon EFS.

  • If the configuration is for an existing Amazon EFS file system and you do not specify the Amazon EFS policy, then the access preview uses the existing Amazon EFS policy for the file system.

  • If the access preview is for a new resource and you do not specify the policy, then the access preview assumes an Amazon EFS file system without a policy.

  • To propose deletion of an existing Amazon EFS file system policy, you can specify an empty string for the Amazon EFS policy.

" + }, + "EfsFileSystemPolicy":{"type":"string"}, "FilterCriteriaMap":{ "type":"map", "key":{"shape":"String"}, @@ -1279,23 +1354,39 @@ "Finding":{ "type":"structure", "required":[ - "analyzedAt", + "id", + "resourceType", "condition", "createdAt", - "id", - "resourceOwnerAccount", - "resourceType", + "analyzedAt", + "updatedAt", "status", - "updatedAt" + "resourceOwnerAccount" ], "members":{ + "id":{ + "shape":"FindingId", + "documentation":"

The ID of the finding.

" + }, + "principal":{ + "shape":"PrincipalMap", + "documentation":"

The external principal that access to a resource within the zone of trust.

" + }, "action":{ "shape":"ActionList", "documentation":"

The action in the analyzed policy statement that an external principal has permission to use.

" }, - "analyzedAt":{ - "shape":"Timestamp", - "documentation":"

The time at which the resource was analyzed.

" + "resource":{ + "shape":"String", + "documentation":"

The resource that an external principal has access to.

" + }, + "isPublic":{ + "shape":"Boolean", + "documentation":"

Indicates whether the policy that generated the finding allows public access to the resource.

" + }, + "resourceType":{ + "shape":"ResourceType", + "documentation":"

The type of the resource identified in the finding.

" }, "condition":{ "shape":"ConditionKeyMap", @@ -1305,45 +1396,29 @@ "shape":"Timestamp", "documentation":"

The time at which the finding was generated.

" }, - "error":{ - "shape":"String", - "documentation":"

An error.

" + "analyzedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the resource was analyzed.

" }, - "id":{ - "shape":"FindingId", - "documentation":"

The ID of the finding.

" - }, - "isPublic":{ - "shape":"Boolean", - "documentation":"

Indicates whether the policy that generated the finding allows public access to the resource.

" - }, - "principal":{ - "shape":"PrincipalMap", - "documentation":"

The external principal that access to a resource within the zone of trust.

" - }, - "resource":{ - "shape":"String", - "documentation":"

The resource that an external principal has access to.

" - }, - "resourceOwnerAccount":{ - "shape":"String", - "documentation":"

The Amazon Web Services account ID that owns the resource.

" - }, - "resourceType":{ - "shape":"ResourceType", - "documentation":"

The type of the resource identified in the finding.

" - }, - "sources":{ - "shape":"FindingSourceList", - "documentation":"

The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

" + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the finding was updated.

" }, "status":{ "shape":"FindingStatus", "documentation":"

The current status of the finding.

" }, - "updatedAt":{ - "shape":"Timestamp", - "documentation":"

The time at which the finding was updated.

" + "resourceOwnerAccount":{ + "shape":"String", + "documentation":"

The Amazon Web Services account ID that owns the resource.

" + }, + "error":{ + "shape":"String", + "documentation":"

An error.

" + }, + "sources":{ + "shape":"FindingSourceList", + "documentation":"

The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

" } }, "documentation":"

Contains information about a finding.

" @@ -1365,13 +1440,13 @@ "type":"structure", "required":["type"], "members":{ - "detail":{ - "shape":"FindingSourceDetail", - "documentation":"

Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.

" - }, "type":{ "shape":"FindingSourceType", "documentation":"

Indicates the type of access that generated the finding.

" + }, + "detail":{ + "shape":"FindingSourceDetail", + "documentation":"

Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.

" } }, "documentation":"

The source of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

" @@ -1382,6 +1457,10 @@ "accessPointArn":{ "shape":"String", "documentation":"

The ARN of the access point that generated the finding. The ARN format depends on whether the ARN represents an access point or a multi-region access point.

" + }, + "accessPointAccount":{ + "shape":"String", + "documentation":"

The account of the cross-account access point that generated the finding.

" } }, "documentation":"

Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings.

" @@ -1395,7 +1474,8 @@ "enum":[ "POLICY", "BUCKET_ACL", - "S3_ACCESS_POINT" + "S3_ACCESS_POINT", + "S3_ACCESS_POINT_ACCOUNT" ] }, "FindingStatus":{ @@ -1416,23 +1496,39 @@ "FindingSummary":{ "type":"structure", "required":[ - "analyzedAt", + "id", + "resourceType", "condition", "createdAt", - "id", - "resourceOwnerAccount", - "resourceType", + "analyzedAt", + "updatedAt", "status", - "updatedAt" + "resourceOwnerAccount" ], "members":{ + "id":{ + "shape":"FindingId", + "documentation":"

The ID of the finding.

" + }, + "principal":{ + "shape":"PrincipalMap", + "documentation":"

The external principal that has access to a resource within the zone of trust.

" + }, "action":{ "shape":"ActionList", "documentation":"

The action in the analyzed policy statement that an external principal has permission to use.

" }, - "analyzedAt":{ - "shape":"Timestamp", - "documentation":"

The time at which the resource-based policy that generated the finding was analyzed.

" + "resource":{ + "shape":"String", + "documentation":"

The resource that the external principal has access to.

" + }, + "isPublic":{ + "shape":"Boolean", + "documentation":"

Indicates whether the finding reports a resource that has a policy that allows public access.

" + }, + "resourceType":{ + "shape":"ResourceType", + "documentation":"

The type of the resource that the external principal has access to.

" }, "condition":{ "shape":"ConditionKeyMap", @@ -1442,45 +1538,29 @@ "shape":"Timestamp", "documentation":"

The time at which the finding was created.

" }, - "error":{ - "shape":"String", - "documentation":"

The error that resulted in an Error finding.

" + "analyzedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the resource-based policy that generated the finding was analyzed.

" }, - "id":{ - "shape":"FindingId", - "documentation":"

The ID of the finding.

" - }, - "isPublic":{ - "shape":"Boolean", - "documentation":"

Indicates whether the finding reports a resource that has a policy that allows public access.

" - }, - "principal":{ - "shape":"PrincipalMap", - "documentation":"

The external principal that has access to a resource within the zone of trust.

" - }, - "resource":{ - "shape":"String", - "documentation":"

The resource that the external principal has access to.

" - }, - "resourceOwnerAccount":{ - "shape":"String", - "documentation":"

The Amazon Web Services account ID that owns the resource.

" - }, - "resourceType":{ - "shape":"ResourceType", - "documentation":"

The type of the resource that the external principal has access to.

" - }, - "sources":{ - "shape":"FindingSourceList", - "documentation":"

The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

" + "updatedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the finding was most recently updated.

" }, "status":{ "shape":"FindingStatus", "documentation":"

The status of the finding.

" }, - "updatedAt":{ - "shape":"Timestamp", - "documentation":"

The time at which the finding was most recently updated.

" + "resourceOwnerAccount":{ + "shape":"String", + "documentation":"

The Amazon Web Services account ID that owns the resource.

" + }, + "error":{ + "shape":"String", + "documentation":"

The error that resulted in an Error finding.

" + }, + "sources":{ + "shape":"FindingSourceList", + "documentation":"

The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings.

" } }, "documentation":"

Contains information about a finding.

" @@ -1508,10 +1588,6 @@ "type":"structure", "required":["principalArn"], "members":{ - "cloudTrailProperties":{ - "shape":"CloudTrailProperties", - "documentation":"

Lists details about the Trail used to generated policy.

" - }, "isComplete":{ "shape":"Boolean", "documentation":"

This value is set to true if the generated policy contains all possible actions for a service that IAM Access Analyzer identified from the CloudTrail trail that you specified, and false otherwise.

" @@ -1519,6 +1595,10 @@ "principalArn":{ "shape":"PrincipalArn", "documentation":"

The ARN of the IAM entity (user or role) for which you are generating a policy.

" + }, + "cloudTrailProperties":{ + "shape":"CloudTrailProperties", + "documentation":"

Lists details about the Trail used to generated policy.

" } }, "documentation":"

Contains the generated policy details.

" @@ -1527,13 +1607,13 @@ "type":"structure", "required":["properties"], "members":{ - "generatedPolicies":{ - "shape":"GeneratedPolicyList", - "documentation":"

The text to use as the content for the new policy. The policy is created using the CreatePolicy action.

" - }, "properties":{ "shape":"GeneratedPolicyProperties", "documentation":"

A GeneratedPolicyProperties object that contains properties of the generated policy.

" + }, + "generatedPolicies":{ + "shape":"GeneratedPolicyList", + "documentation":"

The text to use as the content for the new policy. The policy is created using the CreatePolicy action.

" } }, "documentation":"

Contains the text for the generated policy and its details.

" @@ -1691,6 +1771,12 @@ "type":"structure", "required":["jobId"], "members":{ + "jobId":{ + "shape":"JobId", + "documentation":"

The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request.

", + "location":"uri", + "locationName":"jobId" + }, "includeResourcePlaceholders":{ "shape":"Boolean", "documentation":"

The level of detail that you want to generate. You can specify whether to generate policies with placeholders for resource ARNs for actions that support resource level granularity in policies.

For example, in the resource section of a policy, you can receive a placeholder such as \"Resource\":\"arn:aws:s3:::${BucketName}\" instead of \"*\".

", @@ -1702,29 +1788,23 @@ "documentation":"

The level of detail that you want to generate. You can specify whether to generate service-level policies.

IAM Access Analyzer uses iam:servicelastaccessed to identify services that have been used recently to create this service-level template.

", "location":"querystring", "locationName":"includeServiceLevelTemplate" - }, - "jobId":{ - "shape":"JobId", - "documentation":"

The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request.

", - "location":"uri", - "locationName":"jobId" } } }, "GetGeneratedPolicyResponse":{ "type":"structure", "required":[ - "generatedPolicyResult", - "jobDetails" + "jobDetails", + "generatedPolicyResult" ], "members":{ - "generatedPolicyResult":{ - "shape":"GeneratedPolicyResult", - "documentation":"

A GeneratedPolicyResult object that contains the generated policies and associated details.

" - }, "jobDetails":{ "shape":"JobDetails", "documentation":"

A GeneratedPolicyDetails object that contains details about the generated policy.

" + }, + "generatedPolicyResult":{ + "shape":"GeneratedPolicyResult", + "documentation":"

A GeneratedPolicyResult object that contains the generated policies and associated details.

" } } }, @@ -1743,17 +1823,17 @@ "InlineArchiveRule":{ "type":"structure", "required":[ - "filter", - "ruleName" + "ruleName", + "filter" ], "members":{ - "filter":{ - "shape":"FilterCriteriaMap", - "documentation":"

The condition and values for a criterion.

" - }, "ruleName":{ "shape":"Name", "documentation":"

The name of the rule.

" + }, + "filter":{ + "shape":"FilterCriteriaMap", + "documentation":"

The condition and values for a criterion.

" } }, "documentation":"

An criterion statement in an archive rule. Each archive rule may have multiple criteria.

" @@ -1796,10 +1876,22 @@ "type":"structure", "required":[ "jobId", - "startedOn", - "status" + "status", + "startedOn" ], "members":{ + "jobId":{ + "shape":"JobId", + "documentation":"

The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request.

" + }, + "status":{ + "shape":"JobStatus", + "documentation":"

The status of the job request.

" + }, + "startedOn":{ + "shape":"Timestamp", + "documentation":"

A timestamp of when the job was started.

" + }, "completedOn":{ "shape":"Timestamp", "documentation":"

A timestamp of when the job was completed.

" @@ -1807,18 +1899,6 @@ "jobError":{ "shape":"JobError", "documentation":"

The job error for the policy generation request.

" - }, - "jobId":{ - "shape":"JobId", - "documentation":"

The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request.

" - }, - "startedOn":{ - "shape":"Timestamp", - "documentation":"

A timestamp of when the job was started.

" - }, - "status":{ - "shape":"JobStatus", - "documentation":"

The status of the job request.

" } }, "documentation":"

Contains details about the policy generation request.

" @@ -1870,30 +1950,30 @@ "KmsGrantConfiguration":{ "type":"structure", "required":[ + "operations", "granteePrincipal", - "issuingAccount", - "operations" + "issuingAccount" ], "members":{ - "constraints":{ - "shape":"KmsGrantConstraints", - "documentation":"

Use this structure to propose allowing cryptographic operations in the grant only when the operation request includes the specified encryption context.

" + "operations":{ + "shape":"KmsGrantOperationsList", + "documentation":"

A list of operations that the grant permits.

" }, "granteePrincipal":{ "shape":"GranteePrincipal", "documentation":"

The principal that is given permission to perform the operations that the grant permits.

" }, - "issuingAccount":{ - "shape":"IssuingAccount", - "documentation":"

The Amazon Web Services account under which the grant was issued. The account is used to propose KMS grants issued by accounts other than the owner of the key.

" - }, - "operations":{ - "shape":"KmsGrantOperationsList", - "documentation":"

A list of operations that the grant permits.

" - }, "retiringPrincipal":{ "shape":"RetiringPrincipal", "documentation":"

The principal that is given permission to retire the grant by using RetireGrant operation.

" + }, + "constraints":{ + "shape":"KmsGrantConstraints", + "documentation":"

Use this structure to propose allowing cryptographic operations in the grant only when the operation request includes the specified encryption context.

" + }, + "issuingAccount":{ + "shape":"IssuingAccount", + "documentation":"

The Amazon Web Services account under which the grant was issued. The account is used to propose KMS grants issued by accounts other than the owner of the key.

" } }, "documentation":"

A proposed grant configuration for a KMS key. For more information, see CreateGrant.

" @@ -1942,13 +2022,13 @@ "KmsKeyConfiguration":{ "type":"structure", "members":{ - "grants":{ - "shape":"KmsGrantConfigurationsList", - "documentation":"

A list of proposed grant configurations for the KMS key. If the proposed grant configuration is for an existing key, the access preview uses the proposed list of grant configurations in place of the existing grants. Otherwise, the access preview uses the existing grants for the key.

" - }, "keyPolicies":{ "shape":"KmsKeyPoliciesMap", "documentation":"

Resource policy configuration for the KMS key. The only valid value for the name of the key policy is default. For more information, see Default key policy.

" + }, + "grants":{ + "shape":"KmsGrantConfigurationsList", + "documentation":"

A list of proposed grant configurations for the KMS key. If the proposed grant configuration is for an existing key, the access preview uses the proposed list of grant configurations in place of the existing grants. Otherwise, the access preview uses the existing grants for the key.

" } }, "documentation":"

Proposed access control configuration for a KMS key. You can propose a configuration for a new KMS key or an existing KMS key that you own by specifying the key policy and KMS grant configuration. If the configuration is for an existing key and you do not specify the key policy, the access preview uses the existing policy for the key. If the access preview is for a new resource and you do not specify the key policy, then the access preview uses the default key policy. The proposed key policy cannot be an empty string. For more information, see Default key policy. For more information about key policy limits, see Resource quotas.

" @@ -1981,13 +2061,13 @@ "shape":"FilterCriteriaMap", "documentation":"

Criteria to filter the returned findings.

" }, - "maxResults":{ - "shape":"Integer", - "documentation":"

The maximum number of results to return in the response.

" - }, "nextToken":{ "shape":"Token", "documentation":"

A token used for pagination of results returned.

" + }, + "maxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of results to return in the response.

" } } }, @@ -2015,17 +2095,17 @@ "location":"querystring", "locationName":"analyzerArn" }, - "maxResults":{ - "shape":"Integer", - "documentation":"

The maximum number of results to return in the response.

", - "location":"querystring", - "locationName":"maxResults" - }, "nextToken":{ "shape":"Token", "documentation":"

A token used for pagination of results returned.

", "location":"querystring", "locationName":"nextToken" + }, + "maxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of results to return in the response.

", + "location":"querystring", + "locationName":"maxResults" } } }, @@ -2051,17 +2131,17 @@ "shape":"AnalyzerArn", "documentation":"

The ARN of the analyzer to retrieve a list of analyzed resources from.

" }, - "maxResults":{ - "shape":"Integer", - "documentation":"

The maximum number of results to return in the response.

" + "resourceType":{ + "shape":"ResourceType", + "documentation":"

The type of resource.

" }, "nextToken":{ "shape":"Token", "documentation":"

A token used for pagination of results returned.

" }, - "resourceType":{ - "shape":"ResourceType", - "documentation":"

The type of resource.

" + "maxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of results to return in the response.

" } }, "documentation":"

Retrieves a list of resources that have been analyzed.

" @@ -2084,18 +2164,18 @@ "ListAnalyzersRequest":{ "type":"structure", "members":{ - "maxResults":{ - "shape":"Integer", - "documentation":"

The maximum number of results to return in the response.

", - "location":"querystring", - "locationName":"maxResults" - }, "nextToken":{ "shape":"Token", "documentation":"

A token used for pagination of results returned.

", "location":"querystring", "locationName":"nextToken" }, + "maxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of results to return in the response.

", + "location":"querystring", + "locationName":"maxResults" + }, "type":{ "shape":"Type", "documentation":"

The type of analyzer.

", @@ -2130,17 +2210,17 @@ "location":"uri", "locationName":"analyzerName" }, - "maxResults":{ - "shape":"Integer", - "documentation":"

The maximum number of results to return in the request.

", - "location":"querystring", - "locationName":"maxResults" - }, "nextToken":{ "shape":"Token", "documentation":"

A token used for pagination of results returned.

", "location":"querystring", "locationName":"nextToken" + }, + "maxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of results to return in the request.

", + "location":"querystring", + "locationName":"maxResults" } }, "documentation":"

Retrieves a list of archive rules created for the specified analyzer.

" @@ -2172,17 +2252,17 @@ "shape":"FilterCriteriaMap", "documentation":"

A filter to match for the findings to return.

" }, - "maxResults":{ - "shape":"Integer", - "documentation":"

The maximum number of results to return in the response.

" + "sort":{ + "shape":"SortCriteria", + "documentation":"

The sort order for the findings returned.

" }, "nextToken":{ "shape":"Token", "documentation":"

A token used for pagination of results returned.

" }, - "sort":{ - "shape":"SortCriteria", - "documentation":"

The sort order for the findings returned.

" + "maxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of results to return in the response.

" } }, "documentation":"

Retrieves a list of findings generated by the specified analyzer.

" @@ -2205,6 +2285,12 @@ "ListPolicyGenerationsRequest":{ "type":"structure", "members":{ + "principalArn":{ + "shape":"PrincipalArn", + "documentation":"

The ARN of the IAM entity (user or role) for which you are generating a policy. Use this with ListGeneratedPolicies to filter the results to only include results for a specific principal.

", + "location":"querystring", + "locationName":"principalArn" + }, "maxResults":{ "shape":"ListPolicyGenerationsRequestMaxResultsInteger", "documentation":"

The maximum number of results to return in the response.

", @@ -2216,12 +2302,6 @@ "documentation":"

A token used for pagination of results returned.

", "location":"querystring", "locationName":"nextToken" - }, - "principalArn":{ - "shape":"PrincipalArn", - "documentation":"

The ARN of the IAM entity (user or role) for which you are generating a policy. Use this with ListGeneratedPolicies to filter the results to only include results for a specific principal.

", - "location":"querystring", - "locationName":"principalArn" } } }, @@ -2234,13 +2314,13 @@ "type":"structure", "required":["policyGenerations"], "members":{ - "nextToken":{ - "shape":"Token", - "documentation":"

A token used for pagination of results returned.

" - }, "policyGenerations":{ "shape":"PolicyGenerationList", "documentation":"

A PolicyGeneration object that contains details about the generated policy.

" + }, + "nextToken":{ + "shape":"Token", + "documentation":"

A token used for pagination of results returned.

" } } }, @@ -2313,11 +2393,11 @@ "NetworkOriginConfiguration":{ "type":"structure", "members":{ + "vpcConfiguration":{"shape":"VpcConfiguration"}, "internetConfiguration":{ "shape":"InternetConfiguration", "documentation":"

The configuration for the Amazon S3 access point or multi-region access point with an Internet origin.

" - }, - "vpcConfiguration":{"shape":"VpcConfiguration"} + } }, "documentation":"

The proposed InternetConfiguration or VpcConfiguration to apply to the Amazon S3 access point. VpcConfiguration does not apply to multi-region access points. You can make the access point accessible from the internet, or you can specify that all requests made through that access point must originate from a specific virtual private cloud (VPC). You can specify only one type of network configuration. For more information, see Creating access points.

", "union":true @@ -2362,14 +2442,10 @@ "required":[ "jobId", "principalArn", - "startedOn", - "status" + "status", + "startedOn" ], "members":{ - "completedOn":{ - "shape":"Timestamp", - "documentation":"

A timestamp of when the policy generation was completed.

" - }, "jobId":{ "shape":"JobId", "documentation":"

The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request.

" @@ -2378,13 +2454,17 @@ "shape":"PrincipalArn", "documentation":"

The ARN of the IAM entity (user or role) for which you are generating a policy.

" }, + "status":{ + "shape":"JobStatus", + "documentation":"

The status of the policy generation request.

" + }, "startedOn":{ "shape":"Timestamp", "documentation":"

A timestamp of when the policy generation started.

" }, - "status":{ - "shape":"JobStatus", - "documentation":"

The status of the policy generation request.

" + "completedOn":{ + "shape":"Timestamp", + "documentation":"

A timestamp of when the policy generation was completed.

" } }, "documentation":"

Contains details about the policy generation status and properties.

" @@ -2416,19 +2496,19 @@ "Position":{ "type":"structure", "required":[ - "column", "line", + "column", "offset" ], "members":{ - "column":{ - "shape":"Integer", - "documentation":"

The column of the position, starting from 0.

" - }, "line":{ "shape":"Integer", "documentation":"

The line of the position, starting from 1.

" }, + "column":{ + "shape":"Integer", + "documentation":"

The column of the position, starting from 0.

" + }, "offset":{ "shape":"Integer", "documentation":"

The offset within the policy that corresponds to the position, starting from 0.

" @@ -2445,6 +2525,80 @@ "key":{"shape":"String"}, "value":{"shape":"String"} }, + "RdsDbClusterSnapshotAccountId":{"type":"string"}, + "RdsDbClusterSnapshotAccountIdsList":{ + "type":"list", + "member":{"shape":"RdsDbClusterSnapshotAccountId"} + }, + "RdsDbClusterSnapshotAttributeName":{"type":"string"}, + "RdsDbClusterSnapshotAttributeValue":{ + "type":"structure", + "members":{ + "accountIds":{ + "shape":"RdsDbClusterSnapshotAccountIdsList", + "documentation":"

The Amazon Web Services account IDs that have access to the manual Amazon RDS DB cluster snapshot. If the value all is specified, then the Amazon RDS DB cluster snapshot is public and can be copied or restored by all Amazon Web Services accounts.

  • If the configuration is for an existing Amazon RDS DB cluster snapshot and you do not specify the accountIds in RdsDbClusterSnapshotAttributeValue, then the access preview uses the existing shared accountIds for the snapshot.

  • If the access preview is for a new resource and you do not specify the specify the accountIds in RdsDbClusterSnapshotAttributeValue, then the access preview considers the snapshot without any attributes.

  • To propose deletion of existing shared accountIds, you can specify an empty list for accountIds in the RdsDbClusterSnapshotAttributeValue.

" + } + }, + "documentation":"

The values for a manual Amazon RDS DB cluster snapshot attribute.

", + "union":true + }, + "RdsDbClusterSnapshotAttributesMap":{ + "type":"map", + "key":{"shape":"RdsDbClusterSnapshotAttributeName"}, + "value":{"shape":"RdsDbClusterSnapshotAttributeValue"} + }, + "RdsDbClusterSnapshotConfiguration":{ + "type":"structure", + "members":{ + "attributes":{ + "shape":"RdsDbClusterSnapshotAttributesMap", + "documentation":"

The names and values of manual DB cluster snapshot attributes. Manual DB cluster snapshot attributes are used to authorize other Amazon Web Services accounts to restore a manual DB cluster snapshot. The only valid value for AttributeName for the attribute map is restore

" + }, + "kmsKeyId":{ + "shape":"RdsDbClusterSnapshotKmsKeyId", + "documentation":"

The KMS key identifier for an encrypted Amazon RDS DB cluster snapshot. The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

  • If the configuration is for an existing Amazon RDS DB cluster snapshot and you do not specify the kmsKeyId, or you specify an empty string, then the access preview uses the existing kmsKeyId of the snapshot.

  • If the access preview is for a new resource and you do not specify the specify the kmsKeyId, then the access preview considers the snapshot as unencrypted.

" + } + }, + "documentation":"

The proposed access control configuration for an Amazon RDS DB cluster snapshot. You can propose a configuration for a new Amazon RDS DB cluster snapshot or an Amazon RDS DB cluster snapshot that you own by specifying the RdsDbClusterSnapshotAttributeValue and optional KMS encryption key. For more information, see ModifyDBClusterSnapshotAttribute.

" + }, + "RdsDbClusterSnapshotKmsKeyId":{"type":"string"}, + "RdsDbSnapshotAccountId":{"type":"string"}, + "RdsDbSnapshotAccountIdsList":{ + "type":"list", + "member":{"shape":"RdsDbSnapshotAccountId"} + }, + "RdsDbSnapshotAttributeName":{"type":"string"}, + "RdsDbSnapshotAttributeValue":{ + "type":"structure", + "members":{ + "accountIds":{ + "shape":"RdsDbSnapshotAccountIdsList", + "documentation":"

The Amazon Web Services account IDs that have access to the manual Amazon RDS DB snapshot. If the value all is specified, then the Amazon RDS DB snapshot is public and can be copied or restored by all Amazon Web Services accounts.

  • If the configuration is for an existing Amazon RDS DB snapshot and you do not specify the accountIds in RdsDbSnapshotAttributeValue, then the access preview uses the existing shared accountIds for the snapshot.

  • If the access preview is for a new resource and you do not specify the specify the accountIds in RdsDbSnapshotAttributeValue, then the access preview considers the snapshot without any attributes.

  • To propose deletion of an existing shared accountIds, you can specify an empty list for accountIds in the RdsDbSnapshotAttributeValue.

" + } + }, + "documentation":"

The name and values of a manual Amazon RDS DB snapshot attribute. Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts to restore a manual DB snapshot.

", + "union":true + }, + "RdsDbSnapshotAttributesMap":{ + "type":"map", + "key":{"shape":"RdsDbSnapshotAttributeName"}, + "value":{"shape":"RdsDbSnapshotAttributeValue"} + }, + "RdsDbSnapshotConfiguration":{ + "type":"structure", + "members":{ + "attributes":{ + "shape":"RdsDbSnapshotAttributesMap", + "documentation":"

The names and values of manual DB snapshot attributes. Manual DB snapshot attributes are used to authorize other Amazon Web Services accounts to restore a manual DB snapshot. The only valid value for attributeName for the attribute map is restore.

" + }, + "kmsKeyId":{ + "shape":"RdsDbSnapshotKmsKeyId", + "documentation":"

The KMS key identifier for an encrypted Amazon RDS DB snapshot. The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.

  • If the configuration is for an existing Amazon RDS DB snapshot and you do not specify the kmsKeyId, or you specify an empty string, then the access preview uses the existing kmsKeyId of the snapshot.

  • If the access preview is for a new resource and you do not specify the specify the kmsKeyId, then the access preview considers the snapshot as unencrypted.

" + } + }, + "documentation":"

The proposed access control configuration for an Amazon RDS DB snapshot. You can propose a configuration for a new Amazon RDS DB snapshot or an Amazon RDS DB snapshot that you own by specifying the RdsDbSnapshotAttributeValue and optional KMS encryption key. For more information, see ModifyDBSnapshotAttribute.

" + }, + "RdsDbSnapshotKmsKeyId":{"type":"string"}, "ReasonCode":{ "type":"string", "enum":[ @@ -2496,7 +2650,13 @@ "AWS::Lambda::Function", "AWS::Lambda::LayerVersion", "AWS::KMS::Key", - "AWS::SecretsManager::Secret" + "AWS::SecretsManager::Secret", + "AWS::EFS::FileSystem", + "AWS::EC2::Snapshot", + "AWS::ECR::Repository", + "AWS::RDS::DBSnapshot", + "AWS::RDS::DBClusterSnapshot", + "AWS::SNS::Topic" ] }, "RetiringPrincipal":{"type":"string"}, @@ -2511,16 +2671,16 @@ "shape":"AccessPointPolicy", "documentation":"

The access point or multi-region access point policy.

" }, - "networkOrigin":{ - "shape":"NetworkOriginConfiguration", - "documentation":"

The proposed Internet and VpcConfiguration to apply to this Amazon S3 access point. VpcConfiguration does not apply to multi-region access points. If the access preview is for a new resource and neither is specified, the access preview uses Internet for the network origin. If the access preview is for an existing resource and neither is specified, the access preview uses the exiting network origin.

" - }, "publicAccessBlock":{ "shape":"S3PublicAccessBlockConfiguration", "documentation":"

The proposed S3PublicAccessBlock configuration to apply to this Amazon S3 access point or multi-region access point.

" + }, + "networkOrigin":{ + "shape":"NetworkOriginConfiguration", + "documentation":"

The proposed Internet and VpcConfiguration to apply to this Amazon S3 access point. VpcConfiguration does not apply to multi-region access points. If the access preview is for a new resource and neither is specified, the access preview uses Internet for the network origin. If the access preview is for an existing resource and neither is specified, the access preview uses the exiting network origin.

" } }, - "documentation":"

The configuration for an Amazon S3 access point or multi-region access point for the bucket. You can propose up to 10 access points or multi-region access points per bucket. If the proposed Amazon S3 access point configuration is for an existing bucket, the access preview uses the proposed access point configuration in place of the existing access points. To propose an access point without a policy, you can provide an empty string as the access point policy. For more information, see Creating access points. For more information about access point policy limits, see Access points restrictions and limitations.

" + "documentation":"

The configuration for an Amazon S3 access point or multi-region access point for the bucket. You can propose up to 10 access points or multi-region access points per bucket. If the proposed Amazon S3 access point configuration is for an existing bucket, the access preview uses the proposed access point configuration in place of the existing access points. To propose an access point without a policy, you can provide an empty string as the access point policy. For more information, see Creating access points. For more information about access point policy limits, see Access points restrictions and limitations.

" }, "S3AccessPointConfigurationsMap":{ "type":"map", @@ -2530,17 +2690,17 @@ "S3BucketAclGrantConfiguration":{ "type":"structure", "required":[ - "grantee", - "permission" + "permission", + "grantee" ], "members":{ - "grantee":{ - "shape":"AclGrantee", - "documentation":"

The grantee to whom you’re assigning access rights.

" - }, "permission":{ "shape":"AclPermission", "documentation":"

The permissions being granted.

" + }, + "grantee":{ + "shape":"AclGrantee", + "documentation":"

The grantee to whom you’re assigning access rights.

" } }, "documentation":"

A proposed access control list grant configuration for an Amazon S3 bucket. For more information, see How to Specify an ACL.

" @@ -2552,21 +2712,21 @@ "S3BucketConfiguration":{ "type":"structure", "members":{ - "accessPoints":{ - "shape":"S3AccessPointConfigurationsMap", - "documentation":"

The configuration of Amazon S3 access points or multi-region access points for the bucket. You can propose up to 10 new access points per bucket.

" + "bucketPolicy":{ + "shape":"S3BucketPolicy", + "documentation":"

The proposed bucket policy for the Amazon S3 bucket.

" }, "bucketAclGrants":{ "shape":"S3BucketAclGrantConfigurationsList", "documentation":"

The proposed list of ACL grants for the Amazon S3 bucket. You can propose up to 100 ACL grants per bucket. If the proposed grant configuration is for an existing bucket, the access preview uses the proposed list of grant configurations in place of the existing grants. Otherwise, the access preview uses the existing grants for the bucket.

" }, - "bucketPolicy":{ - "shape":"S3BucketPolicy", - "documentation":"

The proposed bucket policy for the Amazon S3 bucket.

" - }, "bucketPublicAccessBlock":{ "shape":"S3PublicAccessBlockConfiguration", "documentation":"

The proposed block public access configuration for the Amazon S3 bucket.

" + }, + "accessPoints":{ + "shape":"S3AccessPointConfigurationsMap", + "documentation":"

The configuration of Amazon S3 access points or multi-region access points for the bucket. You can propose up to 10 new access points per bucket.

" } }, "documentation":"

Proposed access control configuration for an Amazon S3 bucket. You can propose a configuration for a new Amazon S3 bucket or an existing Amazon S3 bucket that you own by specifying the Amazon S3 bucket policy, bucket ACLs, bucket BPA settings, Amazon S3 access points, and multi-region access points attached to the bucket. If the configuration is for an existing Amazon S3 bucket and you do not specify the Amazon S3 bucket policy, the access preview uses the existing policy attached to the bucket. If the access preview is for a new resource and you do not specify the Amazon S3 bucket policy, the access preview assumes a bucket without a policy. To propose deletion of an existing bucket policy, you can specify an empty string. For more information about bucket policy limits, see Bucket Policy Examples.

" @@ -2635,6 +2795,21 @@ "type":"list", "member":{"shape":"String"} }, + "SnsTopicConfiguration":{ + "type":"structure", + "members":{ + "topicPolicy":{ + "shape":"SnsTopicPolicy", + "documentation":"

The JSON policy text that defines who can access an Amazon SNS topic. For more information, see Example cases for Amazon SNS access control in the Amazon SNS Developer Guide.

" + } + }, + "documentation":"

The proposed access control configuration for an Amazon SNS topic. You can propose a configuration for a new Amazon SNS topic or an existing Amazon SNS topic that you own by specifying the policy. If the configuration is for an existing Amazon SNS topic and you do not specify the Amazon SNS policy, then the access preview uses the existing Amazon SNS policy for the topic. If the access preview is for a new resource and you do not specify the policy, then the access preview assumes an Amazon SNS topic without a policy. To propose deletion of an existing Amazon SNS topic policy, you can specify an empty string for the Amazon SNS policy. For more information, see Topic.

" + }, + "SnsTopicPolicy":{ + "type":"string", + "max":30720, + "min":0 + }, "SortCriteria":{ "type":"structure", "members":{ @@ -2652,17 +2827,17 @@ "Span":{ "type":"structure", "required":[ - "end", - "start" + "start", + "end" ], "members":{ - "end":{ - "shape":"Position", - "documentation":"

The end position of the span (exclusive).

" - }, "start":{ "shape":"Position", "documentation":"

The start position of the span (inclusive).

" + }, + "end":{ + "shape":"Position", + "documentation":"

The end position of the span (exclusive).

" } }, "documentation":"

A span in a policy. The span consists of a start position (inclusive) and end position (exclusive).

" @@ -2682,18 +2857,18 @@ "type":"structure", "required":["policyGenerationDetails"], "members":{ - "clientToken":{ - "shape":"String", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect.

If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.

", - "idempotencyToken":true + "policyGenerationDetails":{ + "shape":"PolicyGenerationDetails", + "documentation":"

Contains the ARN of the IAM entity (user or role) for which you are generating a policy.

" }, "cloudTrailDetails":{ "shape":"CloudTrailDetails", "documentation":"

A CloudTrailDetails object that contains details about a Trail that you want to analyze to generate policies.

" }, - "policyGenerationDetails":{ - "shape":"PolicyGenerationDetails", - "documentation":"

Contains the ARN of the IAM entity (user or role) for which you are generating a policy.

" + "clientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect.

If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.

", + "idempotencyToken":true } } }, @@ -2721,6 +2896,10 @@ "resourceArn":{ "shape":"ResourceArn", "documentation":"

The ARN of the resource to scan.

" + }, + "resourceOwnerAccount":{ + "shape":"String", + "documentation":"

The Amazon Web Services account ID that owns the resource. For most Amazon Web Services resources, the owning account is the account in which the resource was created.

" } }, "documentation":"

Starts a scan of the policies applied to the specified resource.

" @@ -2740,17 +2919,17 @@ "Substring":{ "type":"structure", "required":[ - "length", - "start" + "start", + "length" ], "members":{ - "length":{ - "shape":"Integer", - "documentation":"

The length of the substring.

" - }, "start":{ "shape":"Integer", "documentation":"

The start index of the substring, starting from 0.

" + }, + "length":{ + "shape":"Integer", + "documentation":"

The length of the substring.

" } }, "documentation":"

A reference to a substring of a literal string in a JSON document.

" @@ -2819,10 +2998,6 @@ "type":"structure", "required":["cloudTrailArn"], "members":{ - "allRegions":{ - "shape":"Boolean", - "documentation":"

Possible values are true or false. If set to true, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy.

" - }, "cloudTrailArn":{ "shape":"CloudTrailArn", "documentation":"

Specifies the ARN of the trail. The format of a trail ARN is arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail.

" @@ -2830,6 +3005,10 @@ "regions":{ "shape":"RegionList", "documentation":"

A list of regions to get CloudTrail data from and analyze to generate a policy.

" + }, + "allRegions":{ + "shape":"Boolean", + "documentation":"

Possible values are true or false. If set to true, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy.

" } }, "documentation":"

Contains details about the CloudTrail trail being analyzed to generate a policy.

" @@ -2842,10 +3021,6 @@ "type":"structure", "required":["cloudTrailArn"], "members":{ - "allRegions":{ - "shape":"Boolean", - "documentation":"

Possible values are true or false. If set to true, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy.

" - }, "cloudTrailArn":{ "shape":"CloudTrailArn", "documentation":"

Specifies the ARN of the trail. The format of a trail ARN is arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail.

" @@ -2853,6 +3028,10 @@ "regions":{ "shape":"RegionList", "documentation":"

A list of regions to get CloudTrail data from and analyze to generate a policy.

" + }, + "allRegions":{ + "shape":"Boolean", + "documentation":"

Possible values are true or false. If set to true, IAM Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy.

" } }, "documentation":"

Contains details about the CloudTrail trail being analyzed to generate a policy.

" @@ -2900,8 +3079,8 @@ "type":"structure", "required":[ "analyzerName", - "filter", - "ruleName" + "ruleName", + "filter" ], "members":{ "analyzerName":{ @@ -2910,20 +3089,20 @@ "location":"uri", "locationName":"analyzerName" }, - "clientToken":{ - "shape":"String", - "documentation":"

A client token.

", - "idempotencyToken":true - }, - "filter":{ - "shape":"FilterCriteriaMap", - "documentation":"

A filter to match for the rules to update. Only rules that match the filter are updated.

" - }, "ruleName":{ "shape":"Name", "documentation":"

The name of the rule to update.

", "location":"uri", "locationName":"ruleName" + }, + "filter":{ + "shape":"FilterCriteriaMap", + "documentation":"

A filter to match for the rules to update. Only rules that match the filter are updated.

" + }, + "clientToken":{ + "shape":"String", + "documentation":"

A client token.

", + "idempotencyToken":true } }, "documentation":"

Updates the specified archive rule.

" @@ -2939,10 +3118,9 @@ "shape":"AnalyzerArn", "documentation":"

The ARN of the analyzer that generated the findings to update.

" }, - "clientToken":{ - "shape":"String", - "documentation":"

A client token.

", - "idempotencyToken":true + "status":{ + "shape":"FindingStatusUpdate", + "documentation":"

The state represents the action to take to update the finding Status. Use ARCHIVE to change an Active finding to an Archived finding. Use ACTIVE to change an Archived finding to an Active finding.

" }, "ids":{ "shape":"FindingIdList", @@ -2952,9 +3130,10 @@ "shape":"ResourceArn", "documentation":"

The ARN of the resource identified in the finding.

" }, - "status":{ - "shape":"FindingStatusUpdate", - "documentation":"

The state represents the action to take to update the finding Status. Use ARCHIVE to change an Active finding to an Archived finding. Use ACTIVE to change an Archived finding to an Active finding.

" + "clientToken":{ + "shape":"String", + "documentation":"

A client token.

", + "idempotencyToken":true } }, "documentation":"

Updates findings with the new values provided in the request.

" @@ -3048,7 +3227,8 @@ "AWS::S3::Bucket", "AWS::S3::AccessPoint", "AWS::S3::MultiRegionAccessPoint", - "AWS::S3ObjectLambda::AccessPoint" + "AWS::S3ObjectLambda::AccessPoint", + "AWS::IAM::AssumeRolePolicyDocument" ] }, "ValidatePolicyResponse":{ @@ -3072,14 +3252,14 @@ "reason" ], "members":{ - "fieldList":{ - "shape":"ValidationExceptionFieldList", - "documentation":"

A list of fields that didn't validate.

" - }, "message":{"shape":"String"}, "reason":{ "shape":"ValidationExceptionReason", "documentation":"

The reason for the exception.

" + }, + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

A list of fields that didn't validate.

" } }, "documentation":"

Validation exception error.

", @@ -3092,17 +3272,17 @@ "ValidationExceptionField":{ "type":"structure", "required":[ - "message", - "name" + "name", + "message" ], "members":{ - "message":{ - "shape":"String", - "documentation":"

A message about the validation exception.

" - }, "name":{ "shape":"String", "documentation":"

The name of the validation exception.

" + }, + "message":{ + "shape":"String", + "documentation":"

A message about the validation exception.

" } }, "documentation":"

Contains information about a validation exception.

" diff --git a/botocore/data/account/2021-02-01/endpoint-rule-set-1.json b/botocore/data/account/2021-02-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..37d988a0 --- /dev/null +++ b/botocore/data/account/2021-02-01/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://account.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://account.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://account.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://account.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://account.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://account.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/account/2021-02-01/examples-1.json b/botocore/data/account/2021-02-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/account/2021-02-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/account/2021-02-01/service-2.json b/botocore/data/account/2021-02-01/service-2.json index a0555882..ebef9a04 100644 --- a/botocore/data/account/2021-02-01/service-2.json +++ b/botocore/data/account/2021-02-01/service-2.json @@ -27,7 +27,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"InternalServerException"} ], - "documentation":"

Deletes the specified alternate contact from an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

", + "documentation":"

Deletes the specified alternate contact from an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

Before you can update the alternate contact information for an Amazon Web Services account that is managed by Organizations, you must first enable integration between Amazon Web Services Account Management and Organizations. For more information, see Enabling trusted access for Amazon Web Services Account Management.

", "idempotent":true }, "GetAlternateContact":{ @@ -46,7 +46,25 @@ {"shape":"TooManyRequestsException"}, {"shape":"InternalServerException"} ], - "documentation":"

Retrieves the specified alternate contact attached to an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

" + "documentation":"

Retrieves the specified alternate contact attached to an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

Before you can update the alternate contact information for an Amazon Web Services account that is managed by Organizations, you must first enable integration between Amazon Web Services Account Management and Organizations. For more information, see Enabling trusted access for Amazon Web Services Account Management.

" + }, + "GetContactInformation":{ + "name":"GetContactInformation", + "http":{ + "method":"POST", + "requestUri":"/getContactInformation", + "responseCode":200 + }, + "input":{"shape":"GetContactInformationRequest"}, + "output":{"shape":"GetContactInformationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves the primary contact information of an Amazon Web Services account.

For complete details about how to use the primary contact operations, see Update the primary and alternate contact information.

" }, "PutAlternateContact":{ "name":"PutAlternateContact", @@ -62,7 +80,24 @@ {"shape":"TooManyRequestsException"}, {"shape":"InternalServerException"} ], - "documentation":"

Modifies the specified alternate contact attached to an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

", + "documentation":"

Modifies the specified alternate contact attached to an Amazon Web Services account.

For complete details about how to use the alternate contact operations, see Access or updating the alternate contacts.

Before you can update the alternate contact information for an Amazon Web Services account that is managed by Organizations, you must first enable integration between Amazon Web Services Account Management and Organizations. For more information, see Enabling trusted access for Amazon Web Services Account Management.

", + "idempotent":true + }, + "PutContactInformation":{ + "name":"PutContactInformation", + "http":{ + "method":"POST", + "requestUri":"/putContactInformation", + "responseCode":200 + }, + "input":{"shape":"PutContactInformationRequest"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates the primary contact information of an Amazon Web Services account.

For complete details about how to use the primary contact operations, see Update the primary and alternate contact information.

", "idempotent":true } }, @@ -84,6 +119,12 @@ "type":"string", "pattern":"^\\d{12}$" }, + "AddressLine":{ + "type":"string", + "max":60, + "min":1, + "sensitive":true + }, "AlternateContact":{ "type":"structure", "members":{ @@ -118,6 +159,93 @@ "SECURITY" ] }, + "City":{ + "type":"string", + "max":50, + "min":1, + "sensitive":true + }, + "CompanyName":{ + "type":"string", + "max":50, + "min":1, + "sensitive":true + }, + "ContactInformation":{ + "type":"structure", + "required":[ + "AddressLine1", + "City", + "CountryCode", + "FullName", + "PhoneNumber", + "PostalCode" + ], + "members":{ + "AddressLine1":{ + "shape":"AddressLine", + "documentation":"

The first line of the primary contact address.

" + }, + "AddressLine2":{ + "shape":"AddressLine", + "documentation":"

The second line of the primary contact address, if any.

" + }, + "AddressLine3":{ + "shape":"AddressLine", + "documentation":"

The third line of the primary contact address, if any.

" + }, + "City":{ + "shape":"City", + "documentation":"

The city of the primary contact address.

" + }, + "CompanyName":{ + "shape":"CompanyName", + "documentation":"

The name of the company associated with the primary contact information, if any.

" + }, + "CountryCode":{ + "shape":"CountryCode", + "documentation":"

The ISO-3166 two-letter country code for the primary contact address.

" + }, + "DistrictOrCounty":{ + "shape":"DistrictOrCounty", + "documentation":"

The district or county of the primary contact address, if any.

" + }, + "FullName":{ + "shape":"FullName", + "documentation":"

The full name of the primary contact address.

" + }, + "PhoneNumber":{ + "shape":"ContactInformationPhoneNumber", + "documentation":"

The phone number of the primary contact information. The number will be validated and, in some countries, checked for activation.

" + }, + "PostalCode":{ + "shape":"PostalCode", + "documentation":"

The postal code of the primary contact address.

" + }, + "StateOrRegion":{ + "shape":"StateOrRegion", + "documentation":"

The state or region of the primary contact address. This field is required in selected countries.

" + }, + "WebsiteUrl":{ + "shape":"WebsiteUrl", + "documentation":"

The URL of the website associated with the primary contact information, if any.

" + } + }, + "documentation":"

Contains the details of the primary contact information associated with an Amazon Web Services account.

" + }, + "ContactInformationPhoneNumber":{ + "type":"string", + "max":20, + "min":1, + "pattern":"^[+][\\s0-9()-]+$", + "sensitive":true + }, + "CountryCode":{ + "type":"string", + "max":2, + "min":2, + "sensitive":true + }, "DeleteAlternateContactRequest":{ "type":"structure", "required":["AlternateContactType"], @@ -132,11 +260,23 @@ } } }, + "DistrictOrCounty":{ + "type":"string", + "max":50, + "min":1, + "sensitive":true + }, "EmailAddress":{ "type":"string", "max":64, "min":1, - "pattern":"[\\w+=,.-]+@[\\w.-]+\\.[\\w]+", + "pattern":"^[\\s]*[\\w+=.#!&-]+@[\\w.-]+\\.[\\w]+[\\s]*$", + "sensitive":true + }, + "FullName":{ + "type":"string", + "max":50, + "min":1, "sensitive":true }, "GetAlternateContactRequest":{ @@ -162,6 +302,24 @@ } } }, + "GetContactInformationRequest":{ + "type":"structure", + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

Specifies the 12-digit account ID number of the Amazon Web Services account that you want to access or modify with this operation. If you don't specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation. To use this parameter, the caller must be an identity in the organization's management account or a delegated administrator account. The specified account ID must also be a member account in the same organization. The organization must have all features enabled, and the organization must have trusted access enabled for the Account Management service, and optionally a delegated admin account assigned.

The management account can't specify its own AccountId. It must call the operation in standalone context by not including the AccountId parameter.

To call this operation on an account that is not a member of an organization, don't specify this parameter. Instead, call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.

" + } + } + }, + "GetContactInformationResponse":{ + "type":"structure", + "members":{ + "ContactInformation":{ + "shape":"ContactInformation", + "documentation":"

Contains the details of the primary contact information associated with an Amazon Web Services account.

" + } + } + }, "InternalServerException":{ "type":"structure", "required":["message"], @@ -187,6 +345,12 @@ "pattern":"^[\\s0-9()+-]+$", "sensitive":true }, + "PostalCode":{ + "type":"string", + "max":20, + "min":1, + "sensitive":true + }, "PutAlternateContactRequest":{ "type":"structure", "required":[ @@ -223,6 +387,20 @@ } } }, + "PutContactInformationRequest":{ + "type":"structure", + "required":["ContactInformation"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

Specifies the 12-digit account ID number of the Amazon Web Services account that you want to access or modify with this operation. If you don't specify this parameter, it defaults to the Amazon Web Services account of the identity used to call the operation. To use this parameter, the caller must be an identity in the organization's management account or a delegated administrator account. The specified account ID must also be a member account in the same organization. The organization must have all features enabled, and the organization must have trusted access enabled for the Account Management service, and optionally a delegated admin account assigned.

The management account can't specify its own AccountId. It must call the operation in standalone context by not including the AccountId parameter.

To call this operation on an account that is not a member of an organization, don't specify this parameter. Instead, call the operation using an identity belonging to the account whose contacts you wish to retrieve or modify.

" + }, + "ContactInformation":{ + "shape":"ContactInformation", + "documentation":"

Contains the details of the primary contact information associated with an Amazon Web Services account.

" + } + } + }, "ResourceNotFoundException":{ "type":"structure", "required":["message"], @@ -236,6 +414,12 @@ }, "exception":true }, + "StateOrRegion":{ + "type":"string", + "max":50, + "min":1, + "sensitive":true + }, "String":{"type":"string"}, "Title":{ "type":"string", @@ -269,6 +453,12 @@ "senderFault":true }, "exception":true + }, + "WebsiteUrl":{ + "type":"string", + "max":256, + "min":1, + "sensitive":true } }, "documentation":"

Operations for Amazon Web Services Account Management

" diff --git a/botocore/data/acm-pca/2017-08-22/endpoint-rule-set-1.json b/botocore/data/acm-pca/2017-08-22/endpoint-rule-set-1.json new file mode 100644 index 00000000..5ab3c3da --- /dev/null +++ b/botocore/data/acm-pca/2017-08-22/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://acm-pca-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://acm-pca.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://acm-pca-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://acm-pca.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://acm-pca.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/acm-pca/2017-08-22/examples-1.json b/botocore/data/acm-pca/2017-08-22/examples-1.json index faff7689..0ea7e3b0 100644 --- a/botocore/data/acm-pca/2017-08-22/examples-1.json +++ b/botocore/data/acm-pca/2017-08-22/examples-1.json @@ -1,5 +1,5 @@ { - "version":"1.0", - "examples":{ + "version": "1.0", + "examples": { } } diff --git a/botocore/data/acm-pca/2017-08-22/service-2.json b/botocore/data/acm-pca/2017-08-22/service-2.json index 7099e26a..e410f05d 100644 --- a/botocore/data/acm-pca/2017-08-22/service-2.json +++ b/botocore/data/acm-pca/2017-08-22/service-2.json @@ -643,6 +643,10 @@ "KeyStorageSecurityStandard":{ "shape":"KeyStorageSecurityStandard", "documentation":"

Defines a cryptographic key management compliance standard used for handling CA keys.

Default: FIPS_140_2_LEVEL_3_OR_HIGHER

Note: Amazon Web Services Region ap-northeast-3 supports only FIPS_140_2_LEVEL_2_OR_HIGHER. You must explicitly specify this parameter and value when creating a CA in that Region. Specifying a different value (or no value) results in an InvalidArgsException with the message \"A certificate authority cannot be created in this region with the specified security standard.\"

" + }, + "UsageMode":{ + "shape":"CertificateAuthorityUsageMode", + "documentation":"

Specifies whether the CA issues general-purpose certificates that typically require a revocation mechanism, or short-lived certificates that may optionally omit revocation because they expire quickly. Short-lived certificate validity is limited to seven days.

The default value is GENERAL_PURPOSE.

" } }, "documentation":"

Contains information about your private certificate authority (CA). Your private CA can issue and revoke X.509 digital certificates. Digital certificates verify that the entity named in the certificate Subject field owns or controls the public key contained in the Subject Public Key Info field. Call the CreateCertificateAuthority action to create your private CA. You must then call the GetCertificateAuthorityCertificate action to retrieve a private CA certificate signing request (CSR). Sign the CSR with your ACM Private CA-hosted or on-premises root or subordinate CA certificate. Call the ImportCertificateAuthorityCertificate action to import the signed certificate into Certificate Manager (ACM).

" @@ -693,6 +697,13 @@ "SUBORDINATE" ] }, + "CertificateAuthorityUsageMode":{ + "type":"string", + "enum":[ + "GENERAL_PURPOSE", + "SHORT_LIVED_CERTIFICATE" + ] + }, "CertificateBody":{"type":"string"}, "CertificateBodyBlob":{ "type":"blob", @@ -793,11 +804,15 @@ }, "KeyStorageSecurityStandard":{ "shape":"KeyStorageSecurityStandard", - "documentation":"

Specifies a cryptographic key management compliance standard used for handling CA keys.

Default: FIPS_140_2_LEVEL_3_OR_HIGHER

Note: FIPS_140_2_LEVEL_3_OR_HIGHER is not supported in Region ap-northeast-3. When creating a CA in the ap-northeast-3, you must provide FIPS_140_2_LEVEL_2_OR_HIGHER as the argument for KeyStorageSecurityStandard. Failure to do this results in an InvalidArgsException with the message, \"A certificate authority cannot be created in this region with the specified security standard.\"

" + "documentation":"

Specifies a cryptographic key management compliance standard used for handling CA keys.

Default: FIPS_140_2_LEVEL_3_OR_HIGHER

Note: FIPS_140_2_LEVEL_3_OR_HIGHER is not supported in the following Regions:

  • ap-northeast-3

  • ap-southeast-3

When creating a CA in these Regions, you must provide FIPS_140_2_LEVEL_2_OR_HIGHER as the argument for KeyStorageSecurityStandard. Failure to do this results in an InvalidArgsException with the message, \"A certificate authority cannot be created in this region with the specified security standard.\"

" }, "Tags":{ "shape":"TagList", "documentation":"

Key-value pairs that will be attached to the new private CA. You can associate up to 50 tags with a private CA. For information using tags with IAM to manage permissions, see Controlling Access Using IAM Tags.

" + }, + "UsageMode":{ + "shape":"CertificateAuthorityUsageMode", + "documentation":"

Specifies whether the CA issues general-purpose certificates that typically require a revocation mechanism, or short-lived certificates that may optionally omit revocation because they expire quickly. Short-lived certificate validity is limited to seven days.

The default value is GENERAL_PURPOSE.

" } } }, @@ -863,7 +878,7 @@ "documentation":"

Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access.

If no value is specified, the default is PUBLIC_READ.

Note: This default can cause CA creation to fail in some circumstances. If you have have enabled the Block Public Access (BPA) feature in your S3 account, then you must specify the value of this parameter as BUCKET_OWNER_FULL_CONTROL, and not doing so results in an error. If you have disabled BPA in S3, then you can specify either BUCKET_OWNER_FULL_CONTROL or PUBLIC_READ as the value.

For more information, see Blocking public access to the S3 bucket.

" } }, - "documentation":"

Contains configuration information for a certificate revocation list (CRL). Your private certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You can enable CRLs for your new or an existing private CA by setting the Enabled parameter to true. Your private CA writes CRLs to an S3 bucket that you specify in the S3BucketName parameter. You can hide the name of your bucket by specifying a value for the CustomCname parameter. Your private CA copies the CNAME or the S3 bucket name to the CRL Distribution Points extension of each certificate it issues. Your S3 bucket policy must give write permission to ACM Private CA.

ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see Encrypting Your CRLs.

Your private CA uses the value in the ExpirationInDays parameter to calculate the nextUpdate field in the CRL. The CRL is refreshed prior to a certificate's expiration date or when a certificate is revoked. When a certificate is revoked, it appears in the CRL until the certificate expires, and then in one additional CRL after expiration, and it always appears in the audit report.

A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, ACM Private CA makes further attempts every 15 minutes.

CRLs contain the following fields:

  • Version: The current version number defined in RFC 5280 is V2. The integer value is 0x1.

  • Signature Algorithm: The name of the algorithm used to sign the CRL.

  • Issuer: The X.500 distinguished name of your private CA that issued the CRL.

  • Last Update: The issue date and time of this CRL.

  • Next Update: The day and time by which the next CRL will be issued.

  • Revoked Certificates: List of revoked certificates. Each list item contains the following information.

    • Serial Number: The serial number, in hexadecimal format, of the revoked certificate.

    • Revocation Date: Date and time the certificate was revoked.

    • CRL Entry Extensions: Optional extensions for the CRL entry.

      • X509v3 CRL Reason Code: Reason the certificate was revoked.

  • CRL Extensions: Optional extensions for the CRL.

    • X509v3 Authority Key Identifier: Identifies the public key associated with the private key used to sign the certificate.

    • X509v3 CRL Number:: Decimal sequence number for the CRL.

  • Signature Algorithm: Algorithm used by your private CA to sign the CRL.

  • Signature Value: Signature computed over the CRL.

Certificate revocation lists created by ACM Private CA are DER-encoded. You can use the following OpenSSL command to list a CRL.

openssl crl -inform DER -text -in crl_path -noout

For more information, see Planning a certificate revocation list (CRL) in the Certificate Manager Private Certificate Authority (PCA) User Guide

" + "documentation":"

Contains configuration information for a certificate revocation list (CRL). Your private certificate authority (CA) creates base CRLs. Delta CRLs are not supported. You can enable CRLs for your new or an existing private CA by setting the Enabled parameter to true. Your private CA writes CRLs to an S3 bucket that you specify in the S3BucketName parameter. You can hide the name of your bucket by specifying a value for the CustomCname parameter. Your private CA copies the CNAME or the S3 bucket name to the CRL Distribution Points extension of each certificate it issues. Your S3 bucket policy must give write permission to ACM Private CA.

ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see Encrypting Your CRLs.

Your private CA uses the value in the ExpirationInDays parameter to calculate the nextUpdate field in the CRL. The CRL is refreshed prior to a certificate's expiration date or when a certificate is revoked. When a certificate is revoked, it appears in the CRL until the certificate expires, and then in one additional CRL after expiration, and it always appears in the audit report.

A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason a CRL update fails, ACM Private CA makes further attempts every 15 minutes.

CRLs contain the following fields:

  • Version: The current version number defined in RFC 5280 is V2. The integer value is 0x1.

  • Signature Algorithm: The name of the algorithm used to sign the CRL.

  • Issuer: The X.500 distinguished name of your private CA that issued the CRL.

  • Last Update: The issue date and time of this CRL.

  • Next Update: The day and time by which the next CRL will be issued.

  • Revoked Certificates: List of revoked certificates. Each list item contains the following information.

    • Serial Number: The serial number, in hexadecimal format, of the revoked certificate.

    • Revocation Date: Date and time the certificate was revoked.

    • CRL Entry Extensions: Optional extensions for the CRL entry.

      • X509v3 CRL Reason Code: Reason the certificate was revoked.

  • CRL Extensions: Optional extensions for the CRL.

    • X509v3 Authority Key Identifier: Identifies the public key associated with the private key used to sign the certificate.

    • X509v3 CRL Number:: Decimal sequence number for the CRL.

  • Signature Algorithm: Algorithm used by your private CA to sign the CRL.

  • Signature Value: Signature computed over the CRL.

Certificate revocation lists created by ACM Private CA are DER-encoded. You can use the following OpenSSL command to list a CRL.

openssl crl -inform DER -text -in crl_path -noout

For more information, see Planning a certificate revocation list (CRL) in the Private Certificate Authority (PCA) User Guide

" }, "CsrBlob":{ "type":"blob", @@ -1113,7 +1128,7 @@ }, "CustomExtensions":{ "shape":"CustomExtensionList", - "documentation":"

Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the Global OID reference database.

The OID value of a CustomExtension must not match the OID of a predefined extension.

" + "documentation":"

Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the Global OID reference database.

" } }, "documentation":"

Contains X.509 extension information for a certificate.

" @@ -1601,7 +1616,7 @@ }, "OcspCustomCname":{ "shape":"String253", - "documentation":"

By default, ACM Private CA injects an Amazon Web Services domain into certificates being validated by the Online Certificate Status Protocol (OCSP). A customer can alternatively use this object to define a CNAME specifying a customized OCSP domain.

Note: The value of the CNAME must not include a protocol prefix such as \"http://\" or \"https://\".

For more information, see Customizing Online Certificate Status Protocol (OCSP) in the Certificate Manager Private Certificate Authority (PCA) User Guide.

" + "documentation":"

By default, ACM Private CA injects an Amazon Web Services domain into certificates being validated by the Online Certificate Status Protocol (OCSP). A customer can alternatively use this object to define a CNAME specifying a customized OCSP domain.

Note: The value of the CNAME must not include a protocol prefix such as \"http://\" or \"https://\".

For more information, see Customizing Online Certificate Status Protocol (OCSP) in the Private Certificate Authority (PCA) User Guide.

" } }, "documentation":"

Contains information to enable and configure Online Certificate Status Protocol (OCSP) for validating certificate revocation status.

When you revoke a certificate, OCSP responses may take up to 60 minutes to reflect the new status.

" @@ -1814,7 +1829,7 @@ "documentation":"

Configuration of Online Certificate Status Protocol (OCSP) support, if any, maintained by your private CA. When you revoke a certificate, OCSP responses may take up to 60 minutes to reflect the new status.

" } }, - "documentation":"

Certificate revocation information used by the CreateCertificateAuthority and UpdateCertificateAuthority actions. Your private certificate authority (CA) can configure Online Certificate Status Protocol (OCSP) support and/or maintain a certificate revocation list (CRL). OCSP returns validation information about certificates as requested by clients, and a CRL contains an updated list of certificates revoked by your CA. For more information, see RevokeCertificate and Setting up a certificate revocation method in the Certificate Manager Private Certificate Authority (PCA) User Guide.

" + "documentation":"

Certificate revocation information used by the CreateCertificateAuthority and UpdateCertificateAuthority actions. Your private certificate authority (CA) can configure Online Certificate Status Protocol (OCSP) support and/or maintain a certificate revocation list (CRL). OCSP returns validation information about certificates as requested by clients, and a CRL contains an updated list of certificates revoked by your CA. For more information, see RevokeCertificate and Setting up a certificate revocation method in the Private Certificate Authority (PCA) User Guide.

" }, "RevocationReason":{ "type":"string", @@ -2045,7 +2060,7 @@ "documentation":"

Determines how ACM Private CA interprets the Value parameter, an integer. Supported validity types include those listed below. Type definitions with values include a sample input value and the resulting output.

END_DATE: The specific date and time when the certificate will expire, expressed using UTCTime (YYMMDDHHMMSS) or GeneralizedTime (YYYYMMDDHHMMSS) format. When UTCTime is used, if the year field (YY) is greater than or equal to 50, the year is interpreted as 19YY. If the year field is less than 50, the year is interpreted as 20YY.

  • Sample input value: 491231235959 (UTCTime format)

  • Output expiration date/time: 12/31/2049 23:59:59

ABSOLUTE: The specific date and time when the validity of a certificate will start or expire, expressed in seconds since the Unix Epoch.

  • Sample input value: 2524608000

  • Output expiration date/time: 01/01/2050 00:00:00

DAYS, MONTHS, YEARS: The relative time from the moment of issuance until the certificate will expire, expressed in days, months, or years.

Example if DAYS, issued on 10/12/2020 at 12:34:54 UTC:

  • Sample input value: 90

  • Output expiration date: 01/10/2020 12:34:54 UTC

The minimum validity duration for a certificate using relative time (DAYS) is one day. The minimum validity for a certificate using absolute time (ABSOLUTE or END_DATE) is one second.

" } }, - "documentation":"

Validity specifies the period of time during which a certificate is valid. Validity can be expressed as an explicit date and time when the validity of a certificate starts or expires, or as a span of time after issuance, stated in days, months, or years. For more information, see Validity in RFC 5280.

ACM Private CA API consumes the Validity data type differently in two distinct parameters of the IssueCertificate action. The required parameter IssueCertificate:Validity specifies the end of a certificate's validity period. The optional parameter IssueCertificate:ValidityNotBefore specifies a customized starting time for the validity period.

" + "documentation":"

Validity specifies the period of time during which a certificate is valid. Validity can be expressed as an explicit date and time when the validity of a certificate starts or expires, or as a span of time after issuance, stated in days, months, or years. For more information, see Validity in RFC 5280.

ACM Private CA API consumes the Validity data type differently in two distinct parameters of the IssueCertificate action. The required parameter IssueCertificate:Validity specifies the end of a certificate's validity period. The optional parameter IssueCertificate:ValidityNotBefore specifies a customized starting time for the validity period.

" }, "ValidityPeriodType":{ "type":"string", @@ -2058,5 +2073,5 @@ ] } }, - "documentation":"

This is the Certificate Manager Private Certificate Authority (PCA) API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types involved in creating and managing a private certificate authority (CA) for your organization.

The documentation for each action shows the API request parameters and the JSON response. Alternatively, you can use one of the Amazon Web Services SDKs to access an API that is tailored to the programming language or platform that you prefer. For more information, see Amazon Web Services SDKs.

Each ACM Private CA API operation has a quota that determines the number of times the operation can be called per second. ACM Private CA throttles API requests at different rates depending on the operation. Throttling means that ACM Private CA rejects an otherwise valid request because the request exceeds the operation's quota for the number of requests per second. When a request is throttled, ACM Private CA returns a ThrottlingException error. ACM Private CA does not guarantee a minimum request rate for APIs.

To see an up-to-date list of your ACM Private CA quotas, or to request a quota increase, log into your Amazon Web Services account and visit the Service Quotas console.

" + "documentation":"

This is the Private Certificate Authority (PCA) API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types involved in creating and managing a private certificate authority (CA) for your organization.

The documentation for each action shows the API request parameters and the JSON response. Alternatively, you can use one of the Amazon Web Services SDKs to access an API that is tailored to the programming language or platform that you prefer. For more information, see Amazon Web Services SDKs.

Each ACM Private CA API operation has a quota that determines the number of times the operation can be called per second. ACM Private CA throttles API requests at different rates depending on the operation. Throttling means that ACM Private CA rejects an otherwise valid request because the request exceeds the operation's quota for the number of requests per second. When a request is throttled, ACM Private CA returns a ThrottlingException error. ACM Private CA does not guarantee a minimum request rate for APIs.

To see an up-to-date list of your ACM Private CA quotas, or to request a quota increase, log into your Amazon Web Services account and visit the Service Quotas console.

" } diff --git a/botocore/data/acm/2015-12-08/endpoint-rule-set-1.json b/botocore/data/acm/2015-12-08/endpoint-rule-set-1.json new file mode 100644 index 00000000..b176674f --- /dev/null +++ b/botocore/data/acm/2015-12-08/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://acm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://acm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/acm/2015-12-08/service-2.json b/botocore/data/acm/2015-12-08/service-2.json index 5d964fe9..c3fac7b0 100644 --- a/botocore/data/acm/2015-12-08/service-2.json +++ b/botocore/data/acm/2015-12-08/service-2.json @@ -41,6 +41,9 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"ResourceInUseException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, {"shape":"InvalidArnException"} ], "documentation":"

Deletes a certificate and its associated private key. If this action succeeds, the certificate no longer appears in the list that can be displayed by calling the ListCertificates action or be retrieved by calling the GetCertificate action. The certificate will not be available for use by Amazon Web Services services integrated with ACM.

You cannot delete an ACM certificate that is being used by another Amazon Web Services service. To delete a certificate that is in use, the certificate association must first be removed.

" @@ -57,7 +60,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidArnException"} ], - "documentation":"

Returns detailed metadata about the specified ACM certificate.

" + "documentation":"

Returns detailed metadata about the specified ACM certificate.

If you have just created a certificate using the RequestCertificate action, there is a delay of several seconds before you can retrieve information about it.

" }, "ExportCertificate":{ "name":"ExportCertificate", @@ -119,7 +122,7 @@ {"shape":"InvalidParameterException"}, {"shape":"InvalidArnException"} ], - "documentation":"

Imports a certificate into Amazon Web Services Certificate Manager (ACM) to use with services that are integrated with ACM. Note that integrated services allow only certificate types and keys they support to be associated with their resources. Further, their support differs depending on whether the certificate is imported into IAM or into ACM. For more information, see the documentation for each service. For more information about importing certificates into ACM, see Importing Certificates in the Amazon Web Services Certificate Manager User Guide.

ACM does not provide managed renewal for certificates that you import.

Note the following guidelines when importing third party certificates:

  • You must enter the private key that matches the certificate you are importing.

  • The private key must be unencrypted. You cannot import a private key that is protected by a password or a passphrase.

  • The private key must be no larger than 5 KB (5,120 bytes).

  • If the certificate you are importing is not self-signed, you must enter its certificate chain.

  • If a certificate chain is included, the issuer must be the subject of one of the certificates in the chain.

  • The certificate, private key, and certificate chain must be PEM-encoded.

  • The current time must be between the Not Before and Not After certificate fields.

  • The Issuer field must not be empty.

  • The OCSP authority URL, if present, must not exceed 1000 characters.

  • To import a new certificate, omit the CertificateArn argument. Include this argument only when you want to replace a previously imported certificate.

  • When you import a certificate by using the CLI, you must specify the certificate, the certificate chain, and the private key by their file names preceded by fileb://. For example, you can specify a certificate saved in the C:\\temp folder as fileb://C:\\temp\\certificate_to_import.pem. If you are making an HTTP or HTTPS Query request, include these arguments as BLOBs.

  • When you import a certificate by using an SDK, you must specify the certificate, the certificate chain, and the private key files in the manner required by the programming language you're using.

  • The cryptographic algorithm of an imported certificate must match the algorithm of the signing CA. For example, if the signing CA key type is RSA, then the certificate key type must also be RSA.

This operation returns the Amazon Resource Name (ARN) of the imported certificate.

" + "documentation":"

Imports a certificate into Certificate Manager (ACM) to use with services that are integrated with ACM. Note that integrated services allow only certificate types and keys they support to be associated with their resources. Further, their support differs depending on whether the certificate is imported into IAM or into ACM. For more information, see the documentation for each service. For more information about importing certificates into ACM, see Importing Certificates in the Certificate Manager User Guide.

ACM does not provide managed renewal for certificates that you import.

Note the following guidelines when importing third party certificates:

  • You must enter the private key that matches the certificate you are importing.

  • The private key must be unencrypted. You cannot import a private key that is protected by a password or a passphrase.

  • The private key must be no larger than 5 KB (5,120 bytes).

  • If the certificate you are importing is not self-signed, you must enter its certificate chain.

  • If a certificate chain is included, the issuer must be the subject of one of the certificates in the chain.

  • The certificate, private key, and certificate chain must be PEM-encoded.

  • The current time must be between the Not Before and Not After certificate fields.

  • The Issuer field must not be empty.

  • The OCSP authority URL, if present, must not exceed 1000 characters.

  • To import a new certificate, omit the CertificateArn argument. Include this argument only when you want to replace a previously imported certificate.

  • When you import a certificate by using the CLI, you must specify the certificate, the certificate chain, and the private key by their file names preceded by fileb://. For example, you can specify a certificate saved in the C:\\temp folder as fileb://C:\\temp\\certificate_to_import.pem. If you are making an HTTP or HTTPS Query request, include these arguments as BLOBs.

  • When you import a certificate by using an SDK, you must specify the certificate, the certificate chain, and the private key files in the manner required by the programming language you're using.

  • The cryptographic algorithm of an imported certificate must match the algorithm of the signing CA. For example, if the signing CA key type is RSA, then the certificate key type must also be RSA.

This operation returns the Amazon Resource Name (ARN) of the imported certificate.

" }, "ListCertificates":{ "name":"ListCertificates", @@ -130,7 +133,8 @@ "input":{"shape":"ListCertificatesRequest"}, "output":{"shape":"ListCertificatesResponse"}, "errors":[ - {"shape":"InvalidArgsException"} + {"shape":"InvalidArgsException"}, + {"shape":"ValidationException"} ], "documentation":"

Retrieves a list of certificate ARNs and domain names. You can request that only certificates that match a specific status be listed. You can also filter by specific attributes of the certificate. Default filtering returns only RSA_2048 certificates. For more information, see Filters.

" }, @@ -191,7 +195,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidArnException"} ], - "documentation":"

Renews an eligible ACM certificate. At this time, only exported private certificates can be renewed with this operation. In order to renew your ACM PCA certificates with ACM, you must first grant the ACM service principal permission to do so. For more information, see Testing Managed Renewal in the ACM User Guide.

" + "documentation":"

Renews an eligible ACM certificate. At this time, only exported private certificates can be renewed with this operation. In order to renew your Amazon Web Services Private CA certificates with ACM, you must first grant the ACM service principal permission to do so. For more information, see Testing Managed Renewal in the ACM User Guide.

" }, "RequestCertificate":{ "name":"RequestCertificate", @@ -210,7 +214,7 @@ {"shape":"TagPolicyException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Requests an ACM certificate for use with other Amazon Web Services services. To request an ACM certificate, you must specify a fully qualified domain name (FQDN) in the DomainName parameter. You can also specify additional FQDNs in the SubjectAlternativeNames parameter.

If you are requesting a private certificate, domain validation is not required. If you are requesting a public certificate, each domain name that you specify must be validated to verify that you own or control the domain. You can use DNS validation or email validation. We recommend that you use DNS validation. ACM issues public certificates after receiving approval from the domain owner.

ACM behavior differs from the https://tools.ietf.org/html/rfc6125#appendix-B.2RFC 6125 specification of the certificate validation process. first checks for a subject alternative name, and, if it finds one, ignores the common name (CN)

" + "documentation":"

Requests an ACM certificate for use with other Amazon Web Services services. To request an ACM certificate, you must specify a fully qualified domain name (FQDN) in the DomainName parameter. You can also specify additional FQDNs in the SubjectAlternativeNames parameter.

If you are requesting a private certificate, domain validation is not required. If you are requesting a public certificate, each domain name that you specify must be validated to verify that you own or control the domain. You can use DNS validation or email validation. We recommend that you use DNS validation. ACM issues public certificates after receiving approval from the domain owner.

ACM behavior differs from the RFC 6125 specification of the certificate validation process. ACM first checks for a Subject Alternative Name, and, if it finds one, ignores the common name (CN).

After successful completion of the RequestCertificate action, there is a delay of several seconds before you can retrieve information about the new certificate.

" }, "ResendValidationEmail":{ "name":"ResendValidationEmail", @@ -274,7 +278,7 @@ "type":"string", "max":2048, "min":20, - "pattern":"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" + "pattern":"arn:[\\w+=/,.@-]+:acm:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" }, "AvailabilityErrorMessage":{"type":"string"}, "CertificateBody":{ @@ -340,11 +344,11 @@ }, "ImportedAt":{ "shape":"TStamp", - "documentation":"

The date and time at which the certificate was imported. This value exists only when the certificate type is IMPORTED.

" + "documentation":"

The date and time when the certificate was imported. This value exists only when the certificate type is IMPORTED.

" }, "Status":{ "shape":"CertificateStatus", - "documentation":"

The status of the certificate.

" + "documentation":"

The status of the certificate.

A certificate enters status PENDING_VALIDATION upon being requested, unless it fails for any of the reasons given in the troubleshooting topic Certificate request fails. ACM makes repeated attempts to validate a certificate for 72 hours and then times out. If a certificate shows status FAILED or VALIDATION_TIMED_OUT, delete the request, correct the issue with DNS validation or Email validation, and try again. If validation succeeds, the certificate enters status ISSUED.

" }, "RevokedAt":{ "shape":"TStamp", @@ -376,11 +380,11 @@ }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

The reason the certificate request failed. This value exists only when the certificate status is FAILED. For more information, see Certificate Request Failed in the Amazon Web Services Certificate Manager User Guide.

" + "documentation":"

The reason the certificate request failed. This value exists only when the certificate status is FAILED. For more information, see Certificate Request Failed in the Certificate Manager User Guide.

" }, "Type":{ "shape":"CertificateType", - "documentation":"

The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the Amazon Web Services Certificate Manager User Guide.

" + "documentation":"

The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the Certificate Manager User Guide.

" }, "RenewalSummary":{ "shape":"RenewalSummary", @@ -396,7 +400,7 @@ }, "CertificateAuthorityArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the ACM PCA private certificate authority (CA) that issued the certificate. This has the following format:

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012

" + "documentation":"

The Amazon Resource Name (ARN) of the private certificate authority (CA) that issued the certificate. This has the following format:

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012

" }, "RenewalEligibility":{ "shape":"RenewalEligibility", @@ -445,6 +449,73 @@ "DomainName":{ "shape":"DomainNameString", "documentation":"

Fully qualified domain name (FQDN), such as www.example.com or example.com, for the certificate.

" + }, + "SubjectAlternativeNameSummaries":{ + "shape":"DomainList", + "documentation":"

One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website.

When called by ListCertificates, this parameter will only return the first 100 subject alternative names included in the certificate. To display the full list of subject alternative names, use DescribeCertificate.

" + }, + "HasAdditionalSubjectAlternativeNames":{ + "shape":"NullableBoolean", + "documentation":"

When called by ListCertificates, indicates whether the full list of subject alternative names has been included in the response. If false, the response includes all of the subject alternative names included in the certificate. If true, the response only includes the first 100 subject alternative names included in the certificate. To display the full list of subject alternative names, use DescribeCertificate.

", + "box":true + }, + "Status":{ + "shape":"CertificateStatus", + "documentation":"

The status of the certificate.

A certificate enters status PENDING_VALIDATION upon being requested, unless it fails for any of the reasons given in the troubleshooting topic Certificate request fails. ACM makes repeated attempts to validate a certificate for 72 hours and then times out. If a certificate shows status FAILED or VALIDATION_TIMED_OUT, delete the request, correct the issue with DNS validation or Email validation, and try again. If validation succeeds, the certificate enters status ISSUED.

" + }, + "Type":{ + "shape":"CertificateType", + "documentation":"

The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the Certificate Manager User Guide.

" + }, + "KeyAlgorithm":{ + "shape":"KeyAlgorithm", + "documentation":"

The algorithm that was used to generate the public-private key pair.

" + }, + "KeyUsages":{ + "shape":"KeyUsageNames", + "documentation":"

A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more.

" + }, + "ExtendedKeyUsages":{ + "shape":"ExtendedKeyUsageNames", + "documentation":"

Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID).

" + }, + "InUse":{ + "shape":"NullableBoolean", + "documentation":"

Indicates whether the certificate is currently in use by any Amazon Web Services resources.

", + "box":true + }, + "Exported":{ + "shape":"NullableBoolean", + "documentation":"

Indicates whether the certificate has been exported. This value exists only when the certificate type is PRIVATE.

", + "box":true + }, + "RenewalEligibility":{ + "shape":"RenewalEligibility", + "documentation":"

Specifies whether the certificate is eligible for renewal. At this time, only exported private certificates can be renewed with the RenewCertificate command.

" + }, + "NotBefore":{ + "shape":"TStamp", + "documentation":"

The time before which the certificate is not valid.

" + }, + "NotAfter":{ + "shape":"TStamp", + "documentation":"

The time after which the certificate is not valid.

" + }, + "CreatedAt":{ + "shape":"TStamp", + "documentation":"

The time at which the certificate was requested.

" + }, + "IssuedAt":{ + "shape":"TStamp", + "documentation":"

The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED.

" + }, + "ImportedAt":{ + "shape":"TStamp", + "documentation":"

The date and time when the certificate was imported. This value exists only when the certificate type is IMPORTED.

" + }, + "RevokedAt":{ + "shape":"TStamp", + "documentation":"

The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED.

" } }, "documentation":"

This structure is returned in the response object of ListCertificates action.

" @@ -609,7 +680,7 @@ }, "Passphrase":{ "shape":"PassphraseBlob", - "documentation":"

Passphrase to associate with the encrypted exported private key. If you want to later decrypt the private key, you must have the passphrase. You can use the following OpenSSL command to decrypt a private key:

openssl rsa -in encrypted_key.pem -out decrypted_key.pem

" + "documentation":"

Passphrase to associate with the encrypted exported private key.

When creating your passphrase, you can use any ASCII character except #, $, or %.

If you want to later decrypt the private key, you must have the passphrase. You can use the following OpenSSL command to decrypt a private key. After entering the command, you are prompted for the passphrase.

openssl rsa -in encrypted_key.pem -out decrypted_key.pem

" } } }, @@ -669,6 +740,10 @@ "CUSTOM" ] }, + "ExtendedKeyUsageNames":{ + "type":"list", + "member":{"shape":"ExtendedKeyUsageName"} + }, "FailureReason":{ "type":"string", "enum":[ @@ -704,7 +779,7 @@ }, "keyTypes":{ "shape":"KeyAlgorithmList", - "documentation":"

Specify one or more algorithms that can be used to generate key pairs.

Default filtering returns only RSA_1024 and RSA_2048 certificates that have at least one domain. To return other certificate types, provide the desired type signatures in a comma-separated list. For example, \"keyTypes\": [\"RSA_2048,RSA_4096\"] returns both RSA_2048 and RSA_4096 certificates.

" + "documentation":"

Specify one or more algorithms that can be used to generate key pairs.

Default filtering returns only RSA_1024 and RSA_2048 certificates that have at least one domain. To return other certificate types, provide the desired type signatures in a comma-separated list. For example, \"keyTypes\": [\"RSA_2048\",\"RSA_4096\"] returns both RSA_2048 and RSA_4096 certificates.

" } }, "documentation":"

This structure can be used in the ListCertificates action to filter the output of the certificate list.

" @@ -887,6 +962,10 @@ "CUSTOM" ] }, + "KeyUsageNames":{ + "type":"list", + "member":{"shape":"KeyUsageName"} + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -913,6 +992,14 @@ "MaxItems":{ "shape":"MaxItems", "documentation":"

Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items.

" + }, + "SortBy":{ + "shape":"SortBy", + "documentation":"

Specifies the field to sort results by. If you specify SortBy, you must also specify SortOrder.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

Specifies the order of sorted results. If you specify SortOrder, you must also specify SortBy.

" } } }, @@ -959,12 +1046,19 @@ "min":1, "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*" }, + "NullableBoolean":{"type":"boolean"}, "PassphraseBlob":{ "type":"blob", "max":128, "min":4, "sensitive":true }, + "PcaArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:[\\w+=/,.@-]+:acm-pca:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" + }, "PositiveInteger":{ "type":"integer", "min":1 @@ -1076,7 +1170,7 @@ "members":{ "DomainName":{ "shape":"DomainNameString", - "documentation":"

Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.

The first domain name you enter cannot exceed 64 octets, including periods. Each subsequent Subject Alternative Name (SAN), however, can be up to 253 octets in length.

" + "documentation":"

Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.

In compliance with RFC 5280, the length of the domain name (technically, the Common Name) that you provide cannot exceed 64 octets (characters), including periods. To add a longer domain name, specify it in the Subject Alternative Name field, which supports names up to 253 octets in length.

" }, "ValidationMethod":{ "shape":"ValidationMethod", @@ -1099,12 +1193,16 @@ "documentation":"

Currently, you can use this parameter to specify whether to add the certificate to a certificate transparency log. Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. For more information, see Opting Out of Certificate Transparency Logging.

" }, "CertificateAuthorityArn":{ - "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the Amazon Web Services Certificate Manager Private Certificate Authority (PCA) user guide. The ARN must have the following form:

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012

" + "shape":"PcaArn", + "documentation":"

The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the Amazon Web Services Private Certificate Authority user guide. The ARN must have the following form:

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012

" }, "Tags":{ "shape":"TagList", "documentation":"

One or more resource tags to associate with the certificate.

" + }, + "KeyAlgorithm":{ + "shape":"KeyAlgorithm", + "documentation":"

Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. RSA is the default key algorithm for ACM certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are smaller, offering security comparable to RSA keys but with greater computing efficiency. However, ECDSA is not supported by all network clients. Some AWS services may require RSA keys, or only support ECDSA keys of a particular size, while others allow the use of either RSA and ECDSA keys to ensure that compatibility is not broken. Check the requirements for the AWS service where you plan to deploy your certificate.

Default: RSA_2048

" } } }, @@ -1202,6 +1300,17 @@ ] }, "ServiceErrorMessage":{"type":"string"}, + "SortBy":{ + "type":"string", + "enum":["CREATED_AT"] + }, + "SortOrder":{ + "type":"string", + "enum":[ + "ASCENDING", + "DESCENDING" + ] + }, "String":{"type":"string"}, "TStamp":{"type":"timestamp"}, "Tag":{ @@ -1301,5 +1410,5 @@ ] } }, - "documentation":"Amazon Web Services Certificate Manager

You can use Amazon Web Services Certificate Manager (ACM) to manage SSL/TLS certificates for your Amazon Web Services-based websites and applications. For more information about using ACM, see the Amazon Web Services Certificate Manager User Guide.

" + "documentation":"Certificate Manager

You can use Certificate Manager (ACM) to manage SSL/TLS certificates for your Amazon Web Services-based websites and applications. For more information about using ACM, see the Certificate Manager User Guide.

" } diff --git a/botocore/data/alexaforbusiness/2017-11-09/endpoint-rule-set-1.json b/botocore/data/alexaforbusiness/2017-11-09/endpoint-rule-set-1.json new file mode 100644 index 00000000..3ebbb8c4 --- /dev/null +++ b/botocore/data/alexaforbusiness/2017-11-09/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://a4b-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://a4b-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://a4b.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://a4b.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/amp/2020-08-01/endpoint-rule-set-1.json b/botocore/data/amp/2020-08-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..f1cac345 --- /dev/null +++ b/botocore/data/amp/2020-08-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aps-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aps-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aps.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://aps.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/amp/2020-08-01/examples-1.json b/botocore/data/amp/2020-08-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/amp/2020-08-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/amp/2020-08-01/service-2.json b/botocore/data/amp/2020-08-01/service-2.json index 019f21cc..a27f1006 100644 --- a/botocore/data/amp/2020-08-01/service-2.json +++ b/botocore/data/amp/2020-08-01/service-2.json @@ -33,6 +33,24 @@ "documentation":"

Create an alert manager definition.

", "idempotent":true }, + "CreateLoggingConfiguration":{ + "name":"CreateLoggingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/workspaces/{workspaceId}/logging", + "responseCode":202 + }, + "input":{"shape":"CreateLoggingConfigurationRequest"}, + "output":{"shape":"CreateLoggingConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Create logging configuration.

", + "idempotent":true + }, "CreateRuleGroupsNamespace":{ "name":"CreateRuleGroupsNamespace", "http":{ @@ -93,6 +111,24 @@ "documentation":"

Deletes an alert manager definition.

", "idempotent":true }, + "DeleteLoggingConfiguration":{ + "name":"DeleteLoggingConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/workspaces/{workspaceId}/logging", + "responseCode":202 + }, + "input":{"shape":"DeleteLoggingConfigurationRequest"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Delete logging configuration.

", + "idempotent":true + }, "DeleteRuleGroupsNamespace":{ "name":"DeleteRuleGroupsNamespace", "http":{ @@ -149,6 +185,23 @@ ], "documentation":"

Describes an alert manager definition.

" }, + "DescribeLoggingConfiguration":{ + "name":"DescribeLoggingConfiguration", + "http":{ + "method":"GET", + "requestUri":"/workspaces/{workspaceId}/logging", + "responseCode":200 + }, + "input":{"shape":"DescribeLoggingConfigurationRequest"}, + "output":{"shape":"DescribeLoggingConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Describes logging configuration.

" + }, "DescribeRuleGroupsNamespace":{ "name":"DescribeRuleGroupsNamespace", "http":{ @@ -317,6 +370,25 @@ "documentation":"

Deletes tags from the specified resource.

", "idempotent":true }, + "UpdateLoggingConfiguration":{ + "name":"UpdateLoggingConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/workspaces/{workspaceId}/logging", + "responseCode":202 + }, + "input":{"shape":"UpdateLoggingConfigurationRequest"}, + "output":{"shape":"UpdateLoggingConfigurationResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Update logging configuration.

", + "idempotent":true + }, "UpdateWorkspaceAlias":{ "name":"UpdateWorkspaceAlias", "http":{ @@ -478,6 +550,42 @@ }, "documentation":"

Represents the output of a CreateAlertManagerDefinition operation.

" }, + "CreateLoggingConfigurationRequest":{ + "type":"structure", + "required":[ + "logGroupArn", + "workspaceId" + ], + "members":{ + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", + "idempotencyToken":true + }, + "logGroupArn":{ + "shape":"LogGroupArn", + "documentation":"

The ARN of the CW log group to which the vended log data will be published.

" + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The ID of the workspace to vend logs to.

", + "location":"uri", + "locationName":"workspaceId" + } + }, + "documentation":"

Represents the input of a CreateLoggingConfiguration operation.

" + }, + "CreateLoggingConfigurationResponse":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{ + "shape":"LoggingConfigurationStatus", + "documentation":"

The status of the logging configuration.

" + } + }, + "documentation":"

Represents the output of a CreateLoggingConfiguration operation.

" + }, "CreateRuleGroupsNamespaceRequest":{ "type":"structure", "required":[ @@ -605,6 +713,26 @@ }, "documentation":"

Represents the input of a DeleteAlertManagerDefinition operation.

" }, + "DeleteLoggingConfigurationRequest":{ + "type":"structure", + "required":["workspaceId"], + "members":{ + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The ID of the workspace to vend logs to.

", + "location":"uri", + "locationName":"workspaceId" + } + }, + "documentation":"

Represents the input of a DeleteLoggingConfiguration operation.

" + }, "DeleteRuleGroupsNamespaceRequest":{ "type":"structure", "required":[ @@ -678,6 +806,30 @@ }, "documentation":"

Represents the output of a DescribeAlertManagerDefinition operation.

" }, + "DescribeLoggingConfigurationRequest":{ + "type":"structure", + "required":["workspaceId"], + "members":{ + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The ID of the workspace to vend logs to.

", + "location":"uri", + "locationName":"workspaceId" + } + }, + "documentation":"

Represents the input of a DescribeLoggingConfiguration operation.

" + }, + "DescribeLoggingConfigurationResponse":{ + "type":"structure", + "required":["loggingConfiguration"], + "members":{ + "loggingConfiguration":{ + "shape":"LoggingConfigurationMetadata", + "documentation":"

Metadata object containing information about the logging configuration of a workspace.

" + } + }, + "documentation":"

Represents the output of a DescribeLoggingConfiguration operation.

" + }, "DescribeRuleGroupsNamespaceRequest":{ "type":"structure", "required":[ @@ -882,6 +1034,70 @@ }, "documentation":"

Represents the output of a ListWorkspaces operation.

" }, + "LogGroupArn":{ + "type":"string", + "pattern":"^arn:aws[a-z0-9-]*:logs:[a-z0-9-]+:\\d{12}:log-group:[A-Za-z0-9\\.\\-\\_\\#/]{1,512}\\:\\*$" + }, + "LoggingConfigurationMetadata":{ + "type":"structure", + "required":[ + "createdAt", + "logGroupArn", + "modifiedAt", + "status", + "workspace" + ], + "members":{ + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The time when the logging configuration was created.

" + }, + "logGroupArn":{ + "shape":"LogGroupArn", + "documentation":"

The ARN of the CW log group to which the vended log data will be published.

" + }, + "modifiedAt":{ + "shape":"Timestamp", + "documentation":"

The time when the logging configuration was modified.

" + }, + "status":{ + "shape":"LoggingConfigurationStatus", + "documentation":"

The status of the logging configuration.

" + }, + "workspace":{ + "shape":"WorkspaceId", + "documentation":"

The workspace where the logging configuration exists.

" + } + }, + "documentation":"

Represents the properties of a logging configuration metadata.

" + }, + "LoggingConfigurationStatus":{ + "type":"structure", + "required":["statusCode"], + "members":{ + "statusCode":{ + "shape":"LoggingConfigurationStatusCode", + "documentation":"

Status code of the logging configuration.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for failure if any.

" + } + }, + "documentation":"

Represents the status of a logging configuration.

" + }, + "LoggingConfigurationStatusCode":{ + "type":"string", + "documentation":"

State of a logging configuration.

", + "enum":[ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "CREATION_FAILED", + "UPDATE_FAILED" + ] + }, "PaginationToken":{ "type":"string", "documentation":"

A token used to access the next page in a paginated result set.

" @@ -1283,6 +1499,42 @@ "members":{ } }, + "UpdateLoggingConfigurationRequest":{ + "type":"structure", + "required":[ + "logGroupArn", + "workspaceId" + ], + "members":{ + "clientToken":{ + "shape":"IdempotencyToken", + "documentation":"

Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", + "idempotencyToken":true + }, + "logGroupArn":{ + "shape":"LogGroupArn", + "documentation":"

The ARN of the CW log group to which the vended log data will be published.

" + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The ID of the workspace to vend logs to.

", + "location":"uri", + "locationName":"workspaceId" + } + }, + "documentation":"

Represents the input of an UpdateLoggingConfiguration operation.

" + }, + "UpdateLoggingConfigurationResponse":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{ + "shape":"LoggingConfigurationStatus", + "documentation":"

The status of the logging configuration.

" + } + }, + "documentation":"

Represents the output of an UpdateLoggingConfiguration operation.

" + }, "UpdateWorkspaceAliasRequest":{ "type":"structure", "required":["workspaceId"], diff --git a/botocore/data/amplify/2017-07-25/endpoint-rule-set-1.json b/botocore/data/amplify/2017-07-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..e682b46c --- /dev/null +++ b/botocore/data/amplify/2017-07-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplify-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplify-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplify.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://amplify.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/amplify/2017-07-25/examples-1.json b/botocore/data/amplify/2017-07-25/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/amplify/2017-07-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/amplify/2017-07-25/service-2.json b/botocore/data/amplify/2017-07-25/service-2.json index 5157ed6b..e8b0c3ce 100644 --- a/botocore/data/amplify/2017-07-25/service-2.json +++ b/botocore/data/amplify/2017-07-25/service-2.json @@ -677,7 +677,7 @@ }, "platform":{ "shape":"Platform", - "documentation":"

The platform for the Amplify app.

" + "documentation":"

The platform for the Amplify app. For a static app, set the platform type to WEB. For a dynamic server-side rendered (SSR) app, set the platform type to WEB_COMPUTE. For an app requiring Amplify Hosting's original SSR support only, set the platform type to WEB_DYNAMIC.

" }, "createTime":{ "shape":"CreateTime", @@ -1142,7 +1142,7 @@ }, "platform":{ "shape":"Platform", - "documentation":"

The platform or framework for an Amplify app.

" + "documentation":"

The platform for the Amplify app. For a static app, set the platform type to WEB. For a dynamic server-side rendered (SSR) app, set the platform type to WEB_COMPUTE. For an app requiring Amplify Hosting's original SSR support only, set the platform type to WEB_DYNAMIC.

" }, "iamServiceRoleArn":{ "shape":"ServiceRoleArn", @@ -2618,7 +2618,8 @@ "type":"string", "enum":[ "WEB", - "WEB_DYNAMIC" + "WEB_DYNAMIC", + "WEB_COMPUTE" ] }, "ProductionBranch":{ @@ -2977,12 +2978,12 @@ "SubDomainSettings":{ "type":"list", "member":{"shape":"SubDomainSetting"}, - "max":255 + "max":500 }, "SubDomains":{ "type":"list", "member":{"shape":"SubDomain"}, - "max":255 + "max":500 }, "TTL":{ "type":"string", @@ -3125,7 +3126,7 @@ }, "platform":{ "shape":"Platform", - "documentation":"

The platform for an Amplify app.

" + "documentation":"

The platform for the Amplify app. For a static app, set the platform type to WEB. For a dynamic server-side rendered (SSR) app, set the platform type to WEB_COMPUTE. For an app requiring Amplify Hosting's original SSR support only, set the platform type to WEB_DYNAMIC.

" }, "iamServiceRoleArn":{ "shape":"ServiceRoleArn", diff --git a/botocore/data/amplifybackend/2020-08-11/endpoint-rule-set-1.json b/botocore/data/amplifybackend/2020-08-11/endpoint-rule-set-1.json new file mode 100644 index 00000000..a18aa0b7 --- /dev/null +++ b/botocore/data/amplifybackend/2020-08-11/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplifybackend-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplifybackend-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplifybackend.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://amplifybackend.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/amplifyuibuilder/2021-08-11/endpoint-rule-set-1.json b/botocore/data/amplifyuibuilder/2021-08-11/endpoint-rule-set-1.json new file mode 100644 index 00000000..7a0e7042 --- /dev/null +++ b/botocore/data/amplifyuibuilder/2021-08-11/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplifyuibuilder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplifyuibuilder-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://amplifyuibuilder.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://amplifyuibuilder.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/amplifyuibuilder/2021-08-11/examples-1.json b/botocore/data/amplifyuibuilder/2021-08-11/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/amplifyuibuilder/2021-08-11/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/amplifyuibuilder/2021-08-11/paginators-1.json b/botocore/data/amplifyuibuilder/2021-08-11/paginators-1.json index a9624048..f00c8dab 100644 --- a/botocore/data/amplifyuibuilder/2021-08-11/paginators-1.json +++ b/botocore/data/amplifyuibuilder/2021-08-11/paginators-1.json @@ -21,6 +21,17 @@ "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" } } } diff --git a/botocore/data/amplifyuibuilder/2021-08-11/service-2.json b/botocore/data/amplifyuibuilder/2021-08-11/service-2.json index f75532c5..8789efbd 100644 --- a/botocore/data/amplifyuibuilder/2021-08-11/service-2.json +++ b/botocore/data/amplifyuibuilder/2021-08-11/service-2.json @@ -30,6 +30,24 @@ "documentation":"

Creates a new component for an Amplify app.

", "idempotent":true }, + "CreateForm":{ + "name":"CreateForm", + "http":{ + "method":"POST", + "requestUri":"/app/{appId}/environment/{environmentName}/forms", + "responseCode":200 + }, + "input":{"shape":"CreateFormRequest"}, + "output":{"shape":"CreateFormResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Creates a new form for an Amplify app.

", + "idempotent":true + }, "CreateTheme":{ "name":"CreateTheme", "http":{ @@ -64,6 +82,22 @@ "documentation":"

Deletes a component from an Amplify app.

", "idempotent":true }, + "DeleteForm":{ + "name":"DeleteForm", + "http":{ + "method":"DELETE", + "requestUri":"/app/{appId}/environment/{environmentName}/forms/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteFormRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes a form from an Amplify app.

", + "idempotent":true + }, "DeleteTheme":{ "name":"DeleteTheme", "http":{ @@ -109,6 +143,21 @@ ], "documentation":"

Exports component configurations to code that is ready to integrate into an Amplify app.

" }, + "ExportForms":{ + "name":"ExportForms", + "http":{ + "method":"GET", + "requestUri":"/export/app/{appId}/environment/{environmentName}/forms", + "responseCode":200 + }, + "input":{"shape":"ExportFormsRequest"}, + "output":{"shape":"ExportFormsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Exports form configurations to code that is ready to integrate into an Amplify app.

" + }, "ExportThemes":{ "name":"ExportThemes", "http":{ @@ -140,6 +189,37 @@ ], "documentation":"

Returns an existing component for an Amplify app.

" }, + "GetForm":{ + "name":"GetForm", + "http":{ + "method":"GET", + "requestUri":"/app/{appId}/environment/{environmentName}/forms/{id}", + "responseCode":200 + }, + "input":{"shape":"GetFormRequest"}, + "output":{"shape":"GetFormResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns an existing form for an Amplify app.

" + }, + "GetMetadata":{ + "name":"GetMetadata", + "http":{ + "method":"GET", + "requestUri":"/app/{appId}/environment/{environmentName}/metadata", + "responseCode":200 + }, + "input":{"shape":"GetMetadataRequest"}, + "output":{"shape":"GetMetadataResponse"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Returns existing metadata for an Amplify app.

" + }, "GetTheme":{ "name":"GetTheme", "http":{ @@ -171,6 +251,21 @@ ], "documentation":"

Retrieves a list of components for a specified Amplify app and backend environment.

" }, + "ListForms":{ + "name":"ListForms", + "http":{ + "method":"GET", + "requestUri":"/app/{appId}/environment/{environmentName}/forms", + "responseCode":200 + }, + "input":{"shape":"ListFormsRequest"}, + "output":{"shape":"ListFormsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Retrieves a list of forms for a specified Amplify app and backend environment.

" + }, "ListThemes":{ "name":"ListThemes", "http":{ @@ -186,6 +281,20 @@ ], "documentation":"

Retrieves a list of themes for a specified Amplify app and backend environment.

" }, + "PutMetadataFlag":{ + "name":"PutMetadataFlag", + "http":{ + "method":"PUT", + "requestUri":"/app/{appId}/environment/{environmentName}/metadata/features/{featureName}", + "responseCode":200 + }, + "input":{"shape":"PutMetadataFlagRequest"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Stores the metadata information about a feature on a form or view.

" + }, "RefreshToken":{ "name":"RefreshToken", "http":{ @@ -217,6 +326,23 @@ "documentation":"

Updates an existing component.

", "idempotent":true }, + "UpdateForm":{ + "name":"UpdateForm", + "http":{ + "method":"PATCH", + "requestUri":"/app/{appId}/environment/{environmentName}/forms/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateFormRequest"}, + "output":{"shape":"UpdateFormResponse"}, + "errors":[ + {"shape":"ResourceConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Updates an existing form.

", + "idempotent":true + }, "UpdateTheme":{ "name":"UpdateTheme", "http":{ @@ -418,6 +544,10 @@ "shape":"PredicateList", "documentation":"

A list of predicates for binding a component's properties to data.

" }, + "slotName":{ + "shape":"String", + "documentation":"

The name of a component slot.

" + }, "userAttribute":{ "shape":"String", "documentation":"

An authenticated user attribute.

" @@ -829,6 +959,101 @@ }, "payload":"entity" }, + "CreateFormData":{ + "type":"structure", + "required":[ + "dataType", + "fields", + "formActionType", + "name", + "schemaVersion", + "sectionalElements", + "style" + ], + "members":{ + "cta":{ + "shape":"FormCTA", + "documentation":"

The FormCTA object that stores the call to action configuration for the form.

" + }, + "dataType":{ + "shape":"FormDataTypeConfig", + "documentation":"

The type of data source to use to create the form.

" + }, + "fields":{ + "shape":"FieldsMap", + "documentation":"

The configuration information for the form's fields.

" + }, + "formActionType":{ + "shape":"FormActionType", + "documentation":"

Specifies whether to perform a create or update action on the form.

" + }, + "name":{ + "shape":"FormName", + "documentation":"

The name of the form.

" + }, + "schemaVersion":{ + "shape":"String", + "documentation":"

The schema version of the form.

" + }, + "sectionalElements":{ + "shape":"SectionalElementMap", + "documentation":"

The configuration information for the visual helper elements for the form. These elements are not associated with any data.

" + }, + "style":{ + "shape":"FormStyle", + "documentation":"

The configuration for the form's style.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

One or more key-value pairs to use when tagging the form data.

" + } + }, + "documentation":"

Represents all of the information that is required to create a form.

" + }, + "CreateFormRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName", + "formToCreate" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID of the Amplify app to associate with the form.

", + "location":"uri", + "locationName":"appId" + }, + "clientToken":{ + "shape":"String", + "documentation":"

The unique client token.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is a part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, + "formToCreate":{ + "shape":"CreateFormData", + "documentation":"

Represents the configuration of the form to create.

" + } + }, + "payload":"formToCreate" + }, + "CreateFormResponse":{ + "type":"structure", + "members":{ + "entity":{ + "shape":"Form", + "documentation":"

Describes the configuration of the new form.

" + } + }, + "payload":"entity" + }, "CreateThemeData":{ "type":"structure", "required":[ @@ -927,6 +1152,34 @@ } } }, + "DeleteFormRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName", + "id" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID of the Amplify app associated with the form to delete.

", + "location":"uri", + "locationName":"appId" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is a part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The unique ID of the form to delete.

", + "location":"uri", + "locationName":"id" + } + } + }, "DeleteThemeRequest":{ "type":"structure", "required":[ @@ -1056,6 +1309,47 @@ } } }, + "ExportFormsRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID of the Amplify app to export forms to.

", + "location":"uri", + "locationName":"appId" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is a part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The token to request the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ExportFormsResponse":{ + "type":"structure", + "required":["entities"], + "members":{ + "entities":{ + "shape":"FormList", + "documentation":"

Represents the configuration of the exported forms.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The pagination token that's included if more results are available.

" + } + } + }, "ExportThemesRequest":{ "type":"structure", "required":[ @@ -1097,6 +1391,232 @@ } } }, + "FeaturesMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "FieldConfig":{ + "type":"structure", + "members":{ + "excluded":{ + "shape":"Boolean", + "documentation":"

Specifies whether to hide a field.

" + }, + "inputType":{ + "shape":"FieldInputConfig", + "documentation":"

Describes the configuration for the default input value to display for a field.

" + }, + "label":{ + "shape":"String", + "documentation":"

The label for the field.

" + }, + "position":{ + "shape":"FieldPosition", + "documentation":"

Specifies the field position.

" + }, + "validations":{ + "shape":"ValidationsList", + "documentation":"

The validations to perform on the value in the field.

" + } + }, + "documentation":"

Describes the configuration information for a field in a table.

" + }, + "FieldInputConfig":{ + "type":"structure", + "required":["type"], + "members":{ + "defaultChecked":{ + "shape":"Boolean", + "documentation":"

Specifies whether a field has a default value.

" + }, + "defaultCountryCode":{ + "shape":"String", + "documentation":"

The default country code for a phone number.

" + }, + "defaultValue":{ + "shape":"String", + "documentation":"

The default value for the field.

" + }, + "descriptiveText":{ + "shape":"String", + "documentation":"

The text to display to describe the field.

" + }, + "isArray":{ + "shape":"Boolean", + "documentation":"

Specifies whether to render the field as an array. This property is ignored if the dataSourceType for the form is a Data Store.

" + }, + "maxValue":{ + "shape":"Float", + "documentation":"

The maximum value to display for the field.

" + }, + "minValue":{ + "shape":"Float", + "documentation":"

The minimum value to display for the field.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the field.

" + }, + "placeholder":{ + "shape":"String", + "documentation":"

The text to display as a placeholder for the field.

" + }, + "readOnly":{ + "shape":"Boolean", + "documentation":"

Specifies a read only field.

" + }, + "required":{ + "shape":"Boolean", + "documentation":"

Specifies a field that requires input.

" + }, + "step":{ + "shape":"Float", + "documentation":"

The stepping increment for a numeric value in a field.

" + }, + "type":{ + "shape":"String", + "documentation":"

The input type for the field.

" + }, + "value":{ + "shape":"String", + "documentation":"

The value for the field.

" + }, + "valueMappings":{ + "shape":"ValueMappings", + "documentation":"

The information to use to customize the input fields with data at runtime.

" + } + }, + "documentation":"

Describes the configuration for the default input values to display for a field.

" + }, + "FieldPosition":{ + "type":"structure", + "members":{ + "below":{ + "shape":"String", + "documentation":"

The field position is below the field specified by the string.

" + }, + "fixed":{ + "shape":"FixedPosition", + "documentation":"

The field position is fixed and doesn't change in relation to other fields.

" + }, + "rightOf":{ + "shape":"String", + "documentation":"

The field position is to the right of the field specified by the string.

" + } + }, + "documentation":"

Describes the field position.

", + "union":true + }, + "FieldValidationConfiguration":{ + "type":"structure", + "required":["type"], + "members":{ + "numValues":{ + "shape":"NumValues", + "documentation":"

The validation to perform on a number value.

" + }, + "strValues":{ + "shape":"StrValues", + "documentation":"

The validation to perform on a string value.

" + }, + "type":{ + "shape":"String", + "documentation":"

The validation to perform on an object type.

" + }, + "validationMessage":{ + "shape":"String", + "documentation":"

The validation message to display.

" + } + }, + "documentation":"

Describes the validation configuration for a field.

" + }, + "FieldsMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"FieldConfig"} + }, + "FixedPosition":{ + "type":"string", + "enum":["first"] + }, + "Float":{ + "type":"float", + "box":true + }, + "Form":{ + "type":"structure", + "required":[ + "appId", + "dataType", + "environmentName", + "fields", + "formActionType", + "id", + "name", + "schemaVersion", + "sectionalElements", + "style" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID of the Amplify app associated with the form.

" + }, + "cta":{ + "shape":"FormCTA", + "documentation":"

Stores the call to action configuration for the form.

" + }, + "dataType":{ + "shape":"FormDataTypeConfig", + "documentation":"

The type of data source to use to create the form.

" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is a part of the Amplify app.

" + }, + "fields":{ + "shape":"FieldsMap", + "documentation":"

Stores the information about the form's fields.

" + }, + "formActionType":{ + "shape":"FormActionType", + "documentation":"

The operation to perform on the specified form.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The unique ID of the form.

" + }, + "name":{ + "shape":"FormName", + "documentation":"

The name of the form.

" + }, + "schemaVersion":{ + "shape":"String", + "documentation":"

The schema version of the form when it was imported.

" + }, + "sectionalElements":{ + "shape":"SectionalElementMap", + "documentation":"

Stores the visual helper elements for the form that are not associated with any data.

" + }, + "style":{ + "shape":"FormStyle", + "documentation":"

Stores the configuration for the form's style.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

One or more key-value pairs to use when tagging the form.

" + } + }, + "documentation":"

Contains the configuration settings for a Form user interface (UI) element for an Amplify app. A form is a component you can add to your project by specifying a data source as the default configuration for the form.

" + }, + "FormActionType":{ + "type":"string", + "enum":[ + "create", + "update" + ] + }, "FormBindingElement":{ "type":"structure", "required":[ @@ -1120,6 +1640,173 @@ "key":{"shape":"String"}, "value":{"shape":"FormBindingElement"} }, + "FormButton":{ + "type":"structure", + "members":{ + "children":{ + "shape":"String", + "documentation":"

Describes the button's properties.

" + }, + "excluded":{ + "shape":"Boolean", + "documentation":"

Specifies whether the button is visible on the form.

" + }, + "position":{ + "shape":"FieldPosition", + "documentation":"

The position of the button.

" + } + }, + "documentation":"

Describes the configuration for a button UI element that is a part of a form.

" + }, + "FormButtonsPosition":{ + "type":"string", + "enum":[ + "top", + "bottom", + "top_and_bottom" + ] + }, + "FormCTA":{ + "type":"structure", + "members":{ + "cancel":{ + "shape":"FormButton", + "documentation":"

Displays a cancel button.

" + }, + "clear":{ + "shape":"FormButton", + "documentation":"

Displays a clear button.

" + }, + "position":{ + "shape":"FormButtonsPosition", + "documentation":"

The position of the button.

" + }, + "submit":{ + "shape":"FormButton", + "documentation":"

Displays a submit button.

" + } + }, + "documentation":"

Describes the call to action button configuration for the form.

" + }, + "FormDataSourceType":{ + "type":"string", + "enum":[ + "DataStore", + "Custom" + ] + }, + "FormDataTypeConfig":{ + "type":"structure", + "required":[ + "dataSourceType", + "dataTypeName" + ], + "members":{ + "dataSourceType":{ + "shape":"FormDataSourceType", + "documentation":"

The data source type, either an Amplify DataStore model or a custom data type.

" + }, + "dataTypeName":{ + "shape":"String", + "documentation":"

The unique name of the data type you are using as the data source for the form.

" + } + }, + "documentation":"

Describes the data type configuration for the data source associated with a form.

" + }, + "FormInputValueProperty":{ + "type":"structure", + "members":{ + "value":{ + "shape":"String", + "documentation":"

The value to assign to the input field.

" + } + }, + "documentation":"

Describes the configuration for an input field on a form. Use FormInputValueProperty to specify the values to render or bind by default.

" + }, + "FormList":{ + "type":"list", + "member":{"shape":"Form"} + }, + "FormName":{ + "type":"string", + "max":255, + "min":1 + }, + "FormStyle":{ + "type":"structure", + "members":{ + "horizontalGap":{ + "shape":"FormStyleConfig", + "documentation":"

The spacing for the horizontal gap.

" + }, + "outerPadding":{ + "shape":"FormStyleConfig", + "documentation":"

The size of the outer padding for the form.

" + }, + "verticalGap":{ + "shape":"FormStyleConfig", + "documentation":"

The spacing for the vertical gap.

" + } + }, + "documentation":"

Describes the configuration for the form's style.

" + }, + "FormStyleConfig":{ + "type":"structure", + "members":{ + "tokenReference":{ + "shape":"String", + "documentation":"

A reference to a design token to use to bind the form's style properties to an existing theme.

" + }, + "value":{ + "shape":"String", + "documentation":"

The value of the style setting.

" + } + }, + "documentation":"

Describes the configuration settings for the form's style properties.

", + "union":true + }, + "FormSummary":{ + "type":"structure", + "required":[ + "appId", + "dataType", + "environmentName", + "formActionType", + "id", + "name" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID for the app associated with the form summary.

" + }, + "dataType":{ + "shape":"FormDataTypeConfig", + "documentation":"

The form's data source type.

" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is part of the Amplify app.

" + }, + "formActionType":{ + "shape":"FormActionType", + "documentation":"

The type of operation to perform on the form.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The ID of the form.

" + }, + "name":{ + "shape":"FormName", + "documentation":"

The name of the form.

" + } + }, + "documentation":"

Describes the basic information about a form.

" + }, + "FormSummaryList":{ + "type":"list", + "member":{"shape":"FormSummary"} + }, "GetComponentRequest":{ "type":"structure", "required":[ @@ -1158,6 +1845,75 @@ }, "payload":"component" }, + "GetFormRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName", + "id" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID of the Amplify app.

", + "location":"uri", + "locationName":"appId" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The unique ID of the form.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetFormResponse":{ + "type":"structure", + "members":{ + "form":{ + "shape":"Form", + "documentation":"

Represents the configuration settings for the form.

" + } + }, + "payload":"form" + }, + "GetMetadataRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID of the Amplify app.

", + "location":"uri", + "locationName":"appId" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + } + } + }, + "GetMetadataResponse":{ + "type":"structure", + "required":["features"], + "members":{ + "features":{ + "shape":"FeaturesMap", + "documentation":"

Represents the configuration settings for the features metadata.

" + } + } + }, "GetThemeRequest":{ "type":"structure", "required":[ @@ -1278,6 +2034,58 @@ } } }, + "ListFormsLimit":{ + "type":"integer", + "max":100, + "min":1 + }, + "ListFormsRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID for the Amplify app.

", + "location":"uri", + "locationName":"appId" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is a part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, + "maxResults":{ + "shape":"ListFormsLimit", + "documentation":"

The maximum number of forms to retrieve.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The token to request the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListFormsResponse":{ + "type":"structure", + "required":["entities"], + "members":{ + "entities":{ + "shape":"FormSummaryList", + "documentation":"

The list of forms for the Amplify app.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The pagination token that's included if more results are available.

" + } + } + }, "ListThemesLimit":{ "type":"integer", "max":100, @@ -1353,6 +2161,10 @@ }, "documentation":"

Represents the state configuration when an action modifies a property of another element within the same component.

" }, + "NumValues":{ + "type":"list", + "member":{"shape":"Integer"} + }, "Predicate":{ "type":"structure", "members":{ @@ -1383,6 +2195,51 @@ "type":"list", "member":{"shape":"Predicate"} }, + "PutMetadataFlagBody":{ + "type":"structure", + "required":["newValue"], + "members":{ + "newValue":{ + "shape":"String", + "documentation":"

The new information to store.

" + } + }, + "documentation":"

Stores the metadata information about a feature on a form or view.

" + }, + "PutMetadataFlagRequest":{ + "type":"structure", + "required":[ + "appId", + "body", + "environmentName", + "featureName" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID for the Amplify app.

", + "location":"uri", + "locationName":"appId" + }, + "body":{ + "shape":"PutMetadataFlagBody", + "documentation":"

The metadata information to store.

" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, + "featureName":{ + "shape":"String", + "documentation":"

The name of the feature associated with the metadata.

", + "location":"uri", + "locationName":"featureName" + } + }, + "payload":"body" + }, "RefreshTokenRequest":{ "type":"structure", "required":[ @@ -1455,6 +2312,38 @@ }, "exception":true }, + "SectionalElement":{ + "type":"structure", + "required":["type"], + "members":{ + "level":{ + "shape":"Integer", + "documentation":"

Specifies the size of the font for a Heading sectional element. Valid values are 1 | 2 | 3 | 4 | 5 | 6.

" + }, + "orientation":{ + "shape":"String", + "documentation":"

Specifies the orientation for a Divider sectional element. Valid values are horizontal or vertical.

" + }, + "position":{ + "shape":"FieldPosition", + "documentation":"

Specifies the position of the text in a field for a Text sectional element.

" + }, + "text":{ + "shape":"String", + "documentation":"

The text for a Text sectional element.

" + }, + "type":{ + "shape":"String", + "documentation":"

The type of sectional element. Valid values are Heading, Text, and Divider.

" + } + }, + "documentation":"

Stores the configuration information for a visual helper element for a form. A sectional element can be a header, a text block, or a divider. These elements are static and not associated with any data.

" + }, + "SectionalElementMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"SectionalElement"} + }, "SensitiveString":{ "type":"string", "sensitive":true @@ -1500,6 +2389,10 @@ "type":"list", "member":{"shape":"SortProperty"} }, + "StrValues":{ + "type":"list", + "member":{"shape":"String"} + }, "String":{"type":"string"}, "SyntheticTimestamp_date_time":{ "type":"timestamp", @@ -1648,6 +2541,18 @@ "type":"string", "enum":["figma"] }, + "UnauthorizedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You don't have permission to perform this operation.

", + "error":{ + "httpStatusCode":401, + "senderFault":true + }, + "exception":true + }, "UpdateComponentData":{ "type":"structure", "members":{ @@ -1753,6 +2658,95 @@ }, "payload":"entity" }, + "UpdateFormData":{ + "type":"structure", + "members":{ + "cta":{ + "shape":"FormCTA", + "documentation":"

The FormCTA object that stores the call to action configuration for the form.

" + }, + "dataType":{ + "shape":"FormDataTypeConfig", + "documentation":"

The type of data source to use to create the form.

" + }, + "fields":{ + "shape":"FieldsMap", + "documentation":"

The configuration information for the form's fields.

" + }, + "formActionType":{ + "shape":"FormActionType", + "documentation":"

Specifies whether to perform a create or update action on the form.

" + }, + "name":{ + "shape":"FormName", + "documentation":"

The name of the form.

" + }, + "schemaVersion":{ + "shape":"String", + "documentation":"

The schema version of the form.

" + }, + "sectionalElements":{ + "shape":"SectionalElementMap", + "documentation":"

The configuration information for the visual helper elements for the form. These elements are not associated with any data.

" + }, + "style":{ + "shape":"FormStyle", + "documentation":"

The configuration for the form's style.

" + } + }, + "documentation":"

Updates and saves all of the information about a form, based on form ID.

" + }, + "UpdateFormRequest":{ + "type":"structure", + "required":[ + "appId", + "environmentName", + "id", + "updatedForm" + ], + "members":{ + "appId":{ + "shape":"String", + "documentation":"

The unique ID for the Amplify app.

", + "location":"uri", + "locationName":"appId" + }, + "clientToken":{ + "shape":"String", + "documentation":"

The unique client token.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, + "environmentName":{ + "shape":"String", + "documentation":"

The name of the backend environment that is part of the Amplify app.

", + "location":"uri", + "locationName":"environmentName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The unique ID for the form.

", + "location":"uri", + "locationName":"id" + }, + "updatedForm":{ + "shape":"UpdateFormData", + "documentation":"

The request accepts the following data in JSON format.

" + } + }, + "payload":"updatedForm" + }, + "UpdateFormResponse":{ + "type":"structure", + "members":{ + "entity":{ + "shape":"Form", + "documentation":"

Describes the configuration of the updated form.

" + } + }, + "payload":"entity" + }, "UpdateThemeData":{ "type":"structure", "required":["values"], @@ -1827,7 +2821,41 @@ }, "payload":"entity" }, - "Uuid":{"type":"string"} + "Uuid":{"type":"string"}, + "ValidationsList":{ + "type":"list", + "member":{"shape":"FieldValidationConfiguration"} + }, + "ValueMapping":{ + "type":"structure", + "required":["value"], + "members":{ + "displayValue":{ + "shape":"FormInputValueProperty", + "documentation":"

The value to display for the complex object.

" + }, + "value":{ + "shape":"FormInputValueProperty", + "documentation":"

The complex object.

" + } + }, + "documentation":"

Associates a complex object with a display value. Use ValueMapping to store how to represent complex objects when they are displayed.

" + }, + "ValueMappingList":{ + "type":"list", + "member":{"shape":"ValueMapping"} + }, + "ValueMappings":{ + "type":"structure", + "required":["values"], + "members":{ + "values":{ + "shape":"ValueMappingList", + "documentation":"

The value and display value pairs.

" + } + }, + "documentation":"

Represents the data binding configuration for a value map.

" + } }, "documentation":"

The Amplify UI Builder API provides a programmatic interface for creating and configuring user interface (UI) component libraries and themes for use in your Amplify applications. You can then connect these UI components to an application's backend Amazon Web Services resources.

You can also use the Amplify Studio visual designer to create UI components and model data for an app. For more information, see Introduction in the Amplify Docs.

The Amplify Framework is a comprehensive set of SDKs, libraries, tools, and documentation for client app development. For more information, see the Amplify Framework. For more information about deploying an Amplify application to Amazon Web Services, see the Amplify User Guide.

" } diff --git a/botocore/data/apigateway/2015-07-09/endpoint-rule-set-1.json b/botocore/data/apigateway/2015-07-09/endpoint-rule-set-1.json new file mode 100644 index 00000000..943cb9b5 --- /dev/null +++ b/botocore/data/apigateway/2015-07-09/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apigateway-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apigateway-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apigateway.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://apigateway.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/apigateway/2015-07-09/service-2.json b/botocore/data/apigateway/2015-07-09/service-2.json index f7f98162..bb06a09a 100644 --- a/botocore/data/apigateway/2015-07-09/service-2.json +++ b/botocore/data/apigateway/2015-07-09/service-2.json @@ -6536,7 +6536,7 @@ "members":{ "insecureSkipVerification":{ "shape":"Boolean", - "documentation":"

Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a supported certificate authority. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for HTTP and HTTP_PROXY integrations.

" + "documentation":"

Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a supported certificate authority. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for HTTP and HTTP_PROXY integrations.

Enabling insecureSkipVerification isn't recommended, especially for integrations with public HTTPS endpoints. If you enable insecureSkipVerification, you increase the risk of man-in-the-middle attacks.

" } }, "documentation":"

Specifies the TLS configuration for an integration.

" diff --git a/botocore/data/apigatewaymanagementapi/2018-11-29/endpoint-rule-set-1.json b/botocore/data/apigatewaymanagementapi/2018-11-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..86b1601d --- /dev/null +++ b/botocore/data/apigatewaymanagementapi/2018-11-29/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://execute-api-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://execute-api-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://execute-api.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://execute-api.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/apigatewayv2/2018-11-29/endpoint-rule-set-1.json b/botocore/data/apigatewayv2/2018-11-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..943cb9b5 --- /dev/null +++ b/botocore/data/apigatewayv2/2018-11-29/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apigateway-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apigateway-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apigateway.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://apigateway.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/appconfig/2019-10-09/endpoint-rule-set-1.json b/botocore/data/appconfig/2019-10-09/endpoint-rule-set-1.json new file mode 100644 index 00000000..603c1740 --- /dev/null +++ b/botocore/data/appconfig/2019-10-09/endpoint-rule-set-1.json @@ -0,0 +1,353 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfig-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://appconfig.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://appconfig.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://appconfig-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfig.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://appconfig.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/appconfig/2019-10-09/examples-1.json b/botocore/data/appconfig/2019-10-09/examples-1.json new file mode 100644 index 00000000..664e05ef --- /dev/null +++ b/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/botocore/data/appconfig/2019-10-09/service-2.json b/botocore/data/appconfig/2019-10-09/service-2.json index 29941af0..8f05947b 100644 --- a/botocore/data/appconfig/2019-10-09/service-2.json +++ b/botocore/data/appconfig/2019-10-09/service-2.json @@ -26,7 +26,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates an application. An application in AppConfig is a logical unit of code that provides capabilities for your customers. For example, an application can be a microservice that runs on Amazon EC2 instances, a mobile application installed by your users, a serverless application using Amazon API Gateway and Lambda, or any system you run on behalf of others.

" + "documentation":"

Creates an application. In AppConfig, an application is simply an organizational construct like a folder. This organizational construct has a relationship with some unit of executable code. For example, you could create an application called MyMobileApp to organize and manage configuration data for a mobile application installed by your users.

" }, "CreateConfigurationProfile":{ "name":"CreateConfigurationProfile", @@ -73,7 +73,41 @@ {"shape":"ResourceNotFoundException"}, {"shape":"BadRequestException"} ], - "documentation":"

Creates an environment. For each application, you define one or more environments. An environment is a logical deployment group of AppConfig targets, such as applications in a Beta or Production environment. You can also define environments for application subcomponents such as the Web, Mobile and Back-end components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration.

" + "documentation":"

Creates an environment. For each application, you define one or more environments. An environment is a deployment group of AppConfig targets, such as applications in a Beta or Production environment. You can also define environments for application subcomponents such as the Web, Mobile and Back-end components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration.

" + }, + "CreateExtension":{ + "name":"CreateExtension", + "http":{ + "method":"POST", + "requestUri":"/extensions", + "responseCode":201 + }, + "input":{"shape":"CreateExtensionRequest"}, + "output":{"shape":"Extension"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates an AppConfig extension. An extension augments your ability to inject logic or behavior at different points during the AppConfig workflow of creating or deploying a configuration.

You can create your own extensions or use the Amazon Web Services-authored extensions provided by AppConfig. For most use-cases, to create your own extension, you must create an Lambda function to perform any computation and processing defined in the extension. For more information about extensions, see Working with AppConfig extensions in the AppConfig User Guide.

" + }, + "CreateExtensionAssociation":{ + "name":"CreateExtensionAssociation", + "http":{ + "method":"POST", + "requestUri":"/extensionassociations", + "responseCode":201 + }, + "input":{"shape":"CreateExtensionAssociationRequest"}, + "output":{"shape":"ExtensionAssociation"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

When you create an extension or configure an Amazon Web Services-authored extension, you associate the extension with an AppConfig application, environment, or configuration profile. For example, you can choose to run the AppConfig deployment events to Amazon SNS Amazon Web Services-authored extension and receive notifications on an Amazon SNS topic anytime a configuration deployment is started for a specific application. Defining which extension to associate with an AppConfig resource is called an extension association. An extension association is a specified relationship between an extension and an AppConfig resource, such as an application or a configuration profile. For more information about extensions and associations, see Working with AppConfig extensions in the AppConfig User Guide.

" }, "CreateHostedConfigurationVersion":{ "name":"CreateHostedConfigurationVersion", @@ -156,6 +190,36 @@ ], "documentation":"

Deletes an environment. Deleting an environment does not delete a configuration from a host.

" }, + "DeleteExtension":{ + "name":"DeleteExtension", + "http":{ + "method":"DELETE", + "requestUri":"/extensions/{ExtensionIdentifier}", + "responseCode":204 + }, + "input":{"shape":"DeleteExtensionRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Deletes an AppConfig extension. You must delete all associations to an extension before you delete the extension.

" + }, + "DeleteExtensionAssociation":{ + "name":"DeleteExtensionAssociation", + "http":{ + "method":"DELETE", + "requestUri":"/extensionassociations/{ExtensionAssociationId}", + "responseCode":204 + }, + "input":{"shape":"DeleteExtensionAssociationRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes an extension association. This action doesn't delete extensions defined in the association.

" + }, "DeleteHostedConfigurationVersion":{ "name":"DeleteHostedConfigurationVersion", "http":{ @@ -267,7 +331,39 @@ {"shape":"InternalServerException"}, {"shape":"BadRequestException"} ], - "documentation":"

Retrieves information about an environment. An environment is a logical deployment group of AppConfig applications, such as applications in a Production environment or in an EU_Region environment. Each configuration deployment targets an environment. You can enable one or more Amazon CloudWatch alarms for an environment. If an alarm is triggered during a deployment, AppConfig roles back the configuration.

" + "documentation":"

Retrieves information about an environment. An environment is a deployment group of AppConfig applications, such as applications in a Production environment or in an EU_Region environment. Each configuration deployment targets an environment. You can enable one or more Amazon CloudWatch alarms for an environment. If an alarm is triggered during a deployment, AppConfig roles back the configuration.

" + }, + "GetExtension":{ + "name":"GetExtension", + "http":{ + "method":"GET", + "requestUri":"/extensions/{ExtensionIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetExtensionRequest"}, + "output":{"shape":"Extension"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Returns information about an AppConfig extension.

" + }, + "GetExtensionAssociation":{ + "name":"GetExtensionAssociation", + "http":{ + "method":"GET", + "requestUri":"/extensionassociations/{ExtensionAssociationId}", + "responseCode":200 + }, + "input":{"shape":"GetExtensionAssociationRequest"}, + "output":{"shape":"ExtensionAssociation"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about an AppConfig extension association. For more information about extensions and associations, see Working with AppConfig extensions in the AppConfig User Guide.

" }, "GetHostedConfigurationVersion":{ "name":"GetHostedConfigurationVersion", @@ -363,6 +459,36 @@ ], "documentation":"

Lists the environments for an application.

" }, + "ListExtensionAssociations":{ + "name":"ListExtensionAssociations", + "http":{ + "method":"GET", + "requestUri":"/extensionassociations", + "responseCode":200 + }, + "input":{"shape":"ListExtensionAssociationsRequest"}, + "output":{"shape":"ExtensionAssociations"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Lists all AppConfig extension associations in the account. For more information about extensions and associations, see Working with AppConfig extensions in the AppConfig User Guide.

" + }, + "ListExtensions":{ + "name":"ListExtensions", + "http":{ + "method":"GET", + "requestUri":"/extensions", + "responseCode":200 + }, + "input":{"shape":"ListExtensionsRequest"}, + "output":{"shape":"Extensions"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Lists all custom and Amazon Web Services-authored AppConfig extensions in the account. For more information about extensions, see Working with AppConfig extensions in the AppConfig User Guide.

" + }, "ListHostedConfigurationVersions":{ "name":"ListHostedConfigurationVersions", "http":{ @@ -522,6 +648,39 @@ ], "documentation":"

Updates an environment.

" }, + "UpdateExtension":{ + "name":"UpdateExtension", + "http":{ + "method":"PATCH", + "requestUri":"/extensions/{ExtensionIdentifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateExtensionRequest"}, + "output":{"shape":"Extension"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates an AppConfig extension. For more information about extensions, see Working with AppConfig extensions in the AppConfig User Guide.

" + }, + "UpdateExtensionAssociation":{ + "name":"UpdateExtensionAssociation", + "http":{ + "method":"PATCH", + "requestUri":"/extensionassociations/{ExtensionAssociationId}", + "responseCode":200 + }, + "input":{"shape":"UpdateExtensionAssociationRequest"}, + "output":{"shape":"ExtensionAssociation"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates an association. For more information about extensions and associations, see Working with AppConfig extensions in the AppConfig User Guide.

" + }, "ValidateConfiguration":{ "name":"ValidateConfiguration", "http":{ @@ -539,6 +698,91 @@ } }, "shapes":{ + "Action":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"Name", + "documentation":"

The action name.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

Information about the action.

" + }, + "Uri":{ + "shape":"Uri", + "documentation":"

The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.

" + }, + "RoleArn":{ + "shape":"Arn", + "documentation":"

An Amazon Resource Name (ARN) for an Identity and Access Management assume role.

" + } + }, + "documentation":"

An action defines the tasks the extension performs during the AppConfig workflow. Each action includes an action point such as ON_CREATE_HOSTED_CONFIGURATION, PRE_DEPLOYMENT, or ON_DEPLOYMENT. Each action also includes a name, a URI to an Lambda function, and an Amazon Resource Name (ARN) for an Identity and Access Management assume role. You specify the name, URI, and ARN for each action point defined in the extension. You can specify the following actions for an extension:

  • PRE_CREATE_HOSTED_CONFIGURATION_VERSION

  • PRE_START_DEPLOYMENT

  • ON_DEPLOYMENT_START

  • ON_DEPLOYMENT_STEP

  • ON_DEPLOYMENT_BAKING

  • ON_DEPLOYMENT_COMPLETE

  • ON_DEPLOYMENT_ROLLED_BACK

" + }, + "ActionInvocation":{ + "type":"structure", + "members":{ + "ExtensionIdentifier":{ + "shape":"Identifier", + "documentation":"

The name, the ID, or the Amazon Resource Name (ARN) of the extension.

" + }, + "ActionName":{ + "shape":"Name", + "documentation":"

The name of the action.

" + }, + "Uri":{ + "shape":"Uri", + "documentation":"

The extension URI associated to the action point in the extension definition. The URI can be an Amazon Resource Name (ARN) for one of the following: an Lambda function, an Amazon Simple Queue Service queue, an Amazon Simple Notification Service topic, or the Amazon EventBridge default event bus.

" + }, + "RoleArn":{ + "shape":"Arn", + "documentation":"

An Amazon Resource Name (ARN) for an Identity and Access Management assume role.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

The error message when an extension invocation fails.

" + }, + "ErrorCode":{ + "shape":"String", + "documentation":"

The error code when an extension invocation fails.

" + }, + "InvocationId":{ + "shape":"Id", + "documentation":"

A system-generated ID for this invocation.

" + } + }, + "documentation":"

An extension that was invoked as part of a deployment event.

" + }, + "ActionInvocations":{ + "type":"list", + "member":{"shape":"ActionInvocation"} + }, + "ActionList":{ + "type":"list", + "member":{"shape":"Action"}, + "max":1, + "min":1 + }, + "ActionPoint":{ + "type":"string", + "enum":[ + "PRE_CREATE_HOSTED_CONFIGURATION_VERSION", + "PRE_START_DEPLOYMENT", + "ON_DEPLOYMENT_START", + "ON_DEPLOYMENT_STEP", + "ON_DEPLOYMENT_BAKING", + "ON_DEPLOYMENT_COMPLETE", + "ON_DEPLOYMENT_ROLLED_BACK" + ] + }, + "ActionsMap":{ + "type":"map", + "key":{"shape":"ActionPoint"}, + "value":{"shape":"ActionList"}, + "max":5, + "min":1 + }, "Application":{ "type":"structure", "members":{ @@ -573,6 +817,32 @@ } } }, + "AppliedExtension":{ + "type":"structure", + "members":{ + "ExtensionId":{ + "shape":"Id", + "documentation":"

The system-generated ID of the extension.

" + }, + "ExtensionAssociationId":{ + "shape":"Id", + "documentation":"

The system-generated ID for the association.

" + }, + "VersionNumber":{ + "shape":"Integer", + "documentation":"

The extension version number.

" + }, + "Parameters":{ + "shape":"ParameterValueMap", + "documentation":"

One or more parameters for the actions called by the extension.

" + } + }, + "documentation":"

An extension that was invoked during a deployment.

" + }, + "AppliedExtensions":{ + "type":"list", + "member":{"shape":"AppliedExtension"} + }, "Arn":{ "type":"string", "max":2048, @@ -609,6 +879,7 @@ "type":"blob", "sensitive":true }, + "Boolean":{"type":"boolean"}, "BytesMeasure":{ "type":"string", "enum":["KILOBYTES"] @@ -647,7 +918,7 @@ "documentation":"

The configuration profile ID.

" }, "Name":{ - "shape":"Name", + "shape":"LongName", "documentation":"

The name of the configuration profile.

" }, "Description":{ @@ -684,7 +955,7 @@ "documentation":"

The ID of the configuration profile.

" }, "Name":{ - "shape":"Name", + "shape":"LongName", "documentation":"

The name of the configuration profile.

" }, "LocationUri":{ @@ -765,7 +1036,7 @@ "locationName":"ApplicationId" }, "Name":{ - "shape":"Name", + "shape":"LongName", "documentation":"

A name for the configuration profile.

" }, "Description":{ @@ -799,8 +1070,7 @@ "required":[ "Name", "DeploymentDurationInMinutes", - "GrowthFactor", - "ReplicateTo" + "GrowthFactor" ], "members":{ "Name":{ @@ -818,7 +1088,7 @@ }, "FinalBakeTimeInMinutes":{ "shape":"MinutesBetween0And24Hours", - "documentation":"

The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back.

" + "documentation":"

Specifies the amount of time AppConfig monitors for Amazon CloudWatch alarms after the configuration has been deployed to 100% of its targets, before considering the deployment to be complete. If an alarm is triggered during this time, AppConfig rolls back the deployment. You must configure permissions for AppConfig to roll back based on CloudWatch alarms. For more information, see Configuring permissions for rollback based on Amazon CloudWatch alarms in the AppConfig User Guide.

" }, "GrowthFactor":{ "shape":"GrowthFactor", @@ -870,6 +1140,72 @@ } } }, + "CreateExtensionAssociationRequest":{ + "type":"structure", + "required":[ + "ExtensionIdentifier", + "ResourceIdentifier" + ], + "members":{ + "ExtensionIdentifier":{ + "shape":"Identifier", + "documentation":"

The name, the ID, or the Amazon Resource Name (ARN) of the extension.

" + }, + "ExtensionVersionNumber":{ + "shape":"Integer", + "documentation":"

The version number of the extension. If not specified, AppConfig uses the maximum version of the extension.

", + "box":true + }, + "ResourceIdentifier":{ + "shape":"Identifier", + "documentation":"

The ARN of an application, configuration profile, or environment.

" + }, + "Parameters":{ + "shape":"ParameterValueMap", + "documentation":"

The parameter names and values defined in the extensions. Extension parameters marked Required must be entered for this field.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

Adds one or more tags for the specified extension association. Tags are metadata that help you categorize resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define.

" + } + } + }, + "CreateExtensionRequest":{ + "type":"structure", + "required":[ + "Name", + "Actions" + ], + "members":{ + "Name":{ + "shape":"Name", + "documentation":"

A name for the extension. Each extension name in your account must be unique. Extension versions use the same name.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

Information about the extension.

" + }, + "Actions":{ + "shape":"ActionsMap", + "documentation":"

The actions defined in the extension.

" + }, + "Parameters":{ + "shape":"ParameterMap", + "documentation":"

The parameters accepted by the extension. You specify parameter values when you associate the extension to an AppConfig resource by using the CreateExtensionAssociation API action. For Lambda extension actions, these parameters are included in the Lambda request object.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

Adds one or more tags for the specified extension. Tags are metadata that help you categorize resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define.

" + }, + "LatestVersionNumber":{ + "shape":"Integer", + "documentation":"

You can omit this field when you create an extension. When you create a new version, specify the most recent current version number. For example, you create version 3, enter 2 for this field.

", + "box":true, + "location":"header", + "locationName":"Latest-Version-Number" + } + } + }, "CreateHostedConfigurationVersionRequest":{ "type":"structure", "required":[ @@ -983,6 +1319,37 @@ } } }, + "DeleteExtensionAssociationRequest":{ + "type":"structure", + "required":["ExtensionAssociationId"], + "members":{ + "ExtensionAssociationId":{ + "shape":"Id", + "documentation":"

The ID of the extension association to delete.

", + "location":"uri", + "locationName":"ExtensionAssociationId" + } + } + }, + "DeleteExtensionRequest":{ + "type":"structure", + "required":["ExtensionIdentifier"], + "members":{ + "ExtensionIdentifier":{ + "shape":"Identifier", + "documentation":"

The name, ID, or Amazon Resource Name (ARN) of the extension you want to delete.

", + "location":"uri", + "locationName":"ExtensionIdentifier" + }, + "VersionNumber":{ + "shape":"Integer", + "documentation":"

A specific version of an extension to delete. If omitted, the highest version is deleted.

", + "box":true, + "location":"querystring", + "locationName":"version" + } + } + }, "DeleteHostedConfigurationVersionRequest":{ "type":"structure", "required":[ @@ -1085,6 +1452,10 @@ "CompletedAt":{ "shape":"Iso8601DateTime", "documentation":"

The time the deployment completed.

" + }, + "AppliedExtensions":{ + "shape":"AppliedExtensions", + "documentation":"

A list of extensions that were processed as part of the deployment. The extensions that were previously associated to the configuration profile, environment, or the application when StartDeployment was called.

" } } }, @@ -1103,6 +1474,10 @@ "shape":"Description", "documentation":"

A description of the deployment event. Descriptions include, but are not limited to, the user account or the Amazon CloudWatch alarm ARN that initiated a rollback, the percentage of hosts that received the deployment, or in the case of an internal error, a recommendation to attempt a new deployment.

" }, + "ActionInvocations":{ + "shape":"ActionInvocations", + "documentation":"

The list of extensions that were invoked as part of the deployment.

" + }, "OccurredAt":{ "shape":"Iso8601DateTime", "documentation":"

The date and time the event occurred.

" @@ -1321,6 +1696,146 @@ } } }, + "Extension":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"Id", + "documentation":"

The system-generated ID of the extension.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The extension name.

" + }, + "VersionNumber":{ + "shape":"Integer", + "documentation":"

The extension version number.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The system-generated Amazon Resource Name (ARN) for the extension.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

Information about the extension.

" + }, + "Actions":{ + "shape":"ActionsMap", + "documentation":"

The actions defined in the extension.

" + }, + "Parameters":{ + "shape":"ParameterMap", + "documentation":"

The parameters accepted by the extension. You specify parameter values when you associate the extension to an AppConfig resource by using the CreateExtensionAssociation API action. For Lambda extension actions, these parameters are included in the Lambda request object.

" + } + } + }, + "ExtensionAssociation":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"Identifier", + "documentation":"

The system-generated ID for the association.

" + }, + "ExtensionArn":{ + "shape":"Arn", + "documentation":"

The ARN of the extension defined in the association.

" + }, + "ResourceArn":{ + "shape":"Arn", + "documentation":"

The ARNs of applications, configuration profiles, or environments defined in the association.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The system-generated Amazon Resource Name (ARN) for the extension.

" + }, + "Parameters":{ + "shape":"ParameterValueMap", + "documentation":"

The parameter names and values defined in the association.

" + }, + "ExtensionVersionNumber":{ + "shape":"Integer", + "documentation":"

The version number for the extension defined in the association.

" + } + } + }, + "ExtensionAssociationSummaries":{ + "type":"list", + "member":{"shape":"ExtensionAssociationSummary"} + }, + "ExtensionAssociationSummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"Identifier", + "documentation":"

The extension association ID. This ID is used to call other ExtensionAssociation API actions such as GetExtensionAssociation or DeleteExtensionAssociation.

" + }, + "ExtensionArn":{ + "shape":"Arn", + "documentation":"

The system-generated Amazon Resource Name (ARN) for the extension.

" + }, + "ResourceArn":{ + "shape":"Arn", + "documentation":"

The ARNs of applications, configuration profiles, or environments defined in the association.

" + } + }, + "documentation":"

Information about an association between an extension and an AppConfig resource such as an application, environment, or configuration profile. Call GetExtensionAssociation to get more information about an association.

" + }, + "ExtensionAssociations":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"ExtensionAssociationSummaries", + "documentation":"

The list of extension associations. Each item represents an extension association to an application, environment, or configuration profile.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of items to return. Use this token to get the next set of results.

" + } + } + }, + "ExtensionSummaries":{ + "type":"list", + "member":{"shape":"ExtensionSummary"} + }, + "ExtensionSummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"Id", + "documentation":"

The system-generated ID of the extension.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The extension name.

" + }, + "VersionNumber":{ + "shape":"Integer", + "documentation":"

The extension version number.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The system-generated Amazon Resource Name (ARN) for the extension.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

Information about the extension.

" + } + }, + "documentation":"

Information about an extension. Call GetExtension to get more information about an extension.

" + }, + "Extensions":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"ExtensionSummaries", + "documentation":"

The list of available extensions. The list includes Amazon Web Services-authored and user-created extensions.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of items to return. Use this token to get the next set of results.

" + } + } + }, "Float":{"type":"float"}, "GetApplicationRequest":{ "type":"structure", @@ -1458,6 +1973,37 @@ } } }, + "GetExtensionAssociationRequest":{ + "type":"structure", + "required":["ExtensionAssociationId"], + "members":{ + "ExtensionAssociationId":{ + "shape":"Id", + "documentation":"

The extension association ID to get.

", + "location":"uri", + "locationName":"ExtensionAssociationId" + } + } + }, + "GetExtensionRequest":{ + "type":"structure", + "required":["ExtensionIdentifier"], + "members":{ + "ExtensionIdentifier":{ + "shape":"Identifier", + "documentation":"

The name, the ID, or the Amazon Resource Name (ARN) of the extension.

", + "location":"uri", + "locationName":"ExtensionIdentifier" + }, + "VersionNumber":{ + "shape":"Integer", + "documentation":"

The extension version number. If no version number was defined, AppConfig uses the highest version.

", + "box":true, + "location":"querystring", + "locationName":"version_number" + } + } + }, "GetHostedConfigurationVersionRequest":{ "type":"structure", "required":[ @@ -1585,6 +2131,11 @@ "type":"string", "pattern":"[a-z0-9]{4,7}" }, + "Identifier":{ + "type":"string", + "max":2048, + "min":1 + }, "Integer":{"type":"integer"}, "InternalServerException":{ "type":"structure", @@ -1614,6 +2165,10 @@ "Type":{ "shape":"String", "documentation":"

The type of error for an invalid configuration.

" + }, + "Value":{ + "shape":"String", + "documentation":"

Details about an error with Lambda when a synchronous extension experiences an error during an invocation.

" } }, "documentation":"

Detailed information about the bad request exception error when creating a hosted configuration version.

" @@ -1752,6 +2307,67 @@ } } }, + "ListExtensionAssociationsRequest":{ + "type":"structure", + "members":{ + "ResourceIdentifier":{ + "shape":"Arn", + "documentation":"

The ARN of an application, configuration profile, or environment.

", + "location":"querystring", + "locationName":"resource_identifier" + }, + "ExtensionIdentifier":{ + "shape":"Identifier", + "documentation":"

The name, the ID, or the Amazon Resource Name (ARN) of the extension.

", + "location":"querystring", + "locationName":"extension_identifier" + }, + "ExtensionVersionNumber":{ + "shape":"Integer", + "documentation":"

The version number for the extension defined in the association.

", + "box":true, + "location":"querystring", + "locationName":"extension_version_number" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", + "box":true, + "location":"querystring", + "locationName":"max_results" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A token to start the list. Use this token to get the next set of results or pass null to get the first set of results.

", + "location":"querystring", + "locationName":"next_token" + } + } + }, + "ListExtensionsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

", + "box":true, + "location":"querystring", + "locationName":"max_results" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A token to start the list. Use this token to get the next set of results.

", + "location":"querystring", + "locationName":"next_token" + }, + "Name":{ + "shape":"QueryName", + "documentation":"

The extension name.

", + "location":"querystring", + "locationName":"name" + } + } + }, "ListHostedConfigurationVersionsRequest":{ "type":"structure", "required":[ @@ -1798,6 +2414,11 @@ } } }, + "LongName":{ + "type":"string", + "max":128, + "min":1 + }, "MaxResults":{ "type":"integer", "max":50, @@ -1839,6 +2460,34 @@ "max":2048, "min":1 }, + "Parameter":{ + "type":"structure", + "members":{ + "Description":{ + "shape":"Description", + "documentation":"

Information about the parameter.

" + }, + "Required":{ + "shape":"Boolean", + "documentation":"

A parameter value must be specified in the extension association.

" + } + }, + "documentation":"

A value such as an Amazon Resource Name (ARN) or an Amazon Simple Notification Service topic entered in an extension when invoked. Parameter values are specified in an extension association. For more information about extensions, see Working with AppConfig extensions in the AppConfig User Guide.

" + }, + "ParameterMap":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"Parameter"}, + "max":5, + "min":1 + }, + "ParameterValueMap":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"StringWithLengthBetween1And2048"}, + "max":5, + "min":0 + }, "PayloadTooLargeException":{ "type":"structure", "members":{ @@ -1856,6 +2505,11 @@ "max":100.0, "min":1.0 }, + "QueryName":{ + "type":"string", + "max":64, + "min":1 + }, "ReplicateTo":{ "type":"string", "enum":[ @@ -2188,6 +2842,51 @@ } } }, + "UpdateExtensionAssociationRequest":{ + "type":"structure", + "required":["ExtensionAssociationId"], + "members":{ + "ExtensionAssociationId":{ + "shape":"Id", + "documentation":"

The system-generated ID for the association.

", + "location":"uri", + "locationName":"ExtensionAssociationId" + }, + "Parameters":{ + "shape":"ParameterValueMap", + "documentation":"

The parameter names and values defined in the extension.

" + } + } + }, + "UpdateExtensionRequest":{ + "type":"structure", + "required":["ExtensionIdentifier"], + "members":{ + "ExtensionIdentifier":{ + "shape":"Identifier", + "documentation":"

The name, the ID, or the Amazon Resource Name (ARN) of the extension.

", + "location":"uri", + "locationName":"ExtensionIdentifier" + }, + "Description":{ + "shape":"Description", + "documentation":"

Information about the extension.

" + }, + "Actions":{ + "shape":"ActionsMap", + "documentation":"

The actions defined in the extension.

" + }, + "Parameters":{ + "shape":"ParameterMap", + "documentation":"

One or more parameters for the actions called by the extension.

" + }, + "VersionNumber":{ + "shape":"Integer", + "documentation":"

The extension version number.

", + "box":true + } + } + }, "Uri":{ "type":"string", "max":2048, diff --git a/botocore/data/appconfigdata/2021-11-11/endpoint-rule-set-1.json b/botocore/data/appconfigdata/2021-11-11/endpoint-rule-set-1.json new file mode 100644 index 00000000..27bede53 --- /dev/null +++ b/botocore/data/appconfigdata/2021-11-11/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://appconfigdata.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/appconfigdata/2021-11-11/examples-1.json b/botocore/data/appconfigdata/2021-11-11/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/appconfigdata/2021-11-11/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/appflow/2020-08-23/endpoint-rule-set-1.json b/botocore/data/appflow/2020-08-23/endpoint-rule-set-1.json new file mode 100644 index 00000000..c06cbd9a --- /dev/null +++ b/botocore/data/appflow/2020-08-23/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appflow-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appflow.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://appflow.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/appflow/2020-08-23/examples-1.json b/botocore/data/appflow/2020-08-23/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/appflow/2020-08-23/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/appflow/2020-08-23/service-2.json b/botocore/data/appflow/2020-08-23/service-2.json index ab002df1..d17b96da 100644 --- a/botocore/data/appflow/2020-08-23/service-2.json +++ b/botocore/data/appflow/2020-08-23/service-2.json @@ -27,7 +27,7 @@ {"shape":"ConnectorAuthenticationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a new connector profile associated with your Amazon Web Services account. There is a soft quota of 100 connector profiles per Amazon Web Services account. If you need more connector profiles than this quota allows, you can submit a request to the Amazon AppFlow team through the Amazon AppFlow support channel.

" + "documentation":"

Creates a new connector profile associated with your Amazon Web Services account. There is a soft quota of 100 connector profiles per Amazon Web Services account. If you need more connector profiles than this quota allows, you can submit a request to the Amazon AppFlow team through the Amazon AppFlow support channel. In each connector profile that you create, you can provide the credentials and properties for only one connector.

" }, "CreateFlow":{ "name":"CreateFlow", @@ -108,7 +108,7 @@ {"shape":"ConnectorServerException"}, {"shape":"InternalServerException"} ], - "documentation":"

Provides details regarding the entity used with the connector, with a description of the data model for each entity.

" + "documentation":"

Provides details regarding the entity used with the connector, with a description of the data model for each field in that entity.

" }, "DescribeConnectorProfiles":{ "name":"DescribeConnectorProfiles", @@ -246,7 +246,7 @@ {"shape":"ConnectorServerException"}, {"shape":"ConnectorAuthenticationException"} ], - "documentation":"

Registers a new connector with your Amazon Web Services account. Before you can register the connector, you must deploy lambda in your account.

" + "documentation":"

Registers a new custom connector with your Amazon Web Services account. Before you can register the connector, you must deploy the associated AWS lambda function in your account.

" }, "StartFlow":{ "name":"StartFlow", @@ -308,7 +308,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Unregisters the custom connector registered in your account that matches the connectorLabel provided in the request.

" + "documentation":"

Unregisters the custom connector registered in your account that matches the connector label provided in the request.

" }, "UntagResource":{ "name":"UntagResource", @@ -342,6 +342,27 @@ ], "documentation":"

Updates a given connector profile associated with your account.

" }, + "UpdateConnectorRegistration":{ + "name":"UpdateConnectorRegistration", + "http":{ + "method":"POST", + "requestUri":"/update-connector-registration" + }, + "input":{"shape":"UpdateConnectorRegistrationRequest"}, + "output":{"shape":"UpdateConnectorRegistrationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ConnectorServerException"}, + {"shape":"ConnectorAuthenticationException"} + ], + "documentation":"

Updates a custom connector that you've previously registered. This operation updates the connector with one of the following:

  • The latest version of the AWS Lambda function that's assigned to the connector

  • A new AWS Lambda function that you specify

" + }, "UpdateFlow":{ "name":"UpdateFlow", "http":{ @@ -385,7 +406,7 @@ }, "AccessToken":{ "type":"string", - "max":2048, + "max":4096, "pattern":"\\S+", "sensitive":true }, @@ -400,6 +421,10 @@ "aggregationType":{ "shape":"AggregationType", "documentation":"

Specifies whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated.

" + }, + "targetFileSize":{ + "shape":"Long", + "documentation":"

The desired file size, in MB, for each output file that Amazon AppFlow writes to the flow destination. For each file, Amazon AppFlow attempts to achieve the size that you specify. The actual file sizes might differ from this target based on the number and size of the records that each file contains.

" } }, "documentation":"

The aggregation settings that you can use to customize the output format of your flow data.

" @@ -630,6 +655,10 @@ "max":512, "pattern":".*" }, + "CatalogType":{ + "type":"string", + "enum":["GLUE"] + }, "ClientCredentialsArn":{ "type":"string", "max":2048, @@ -654,6 +683,11 @@ "pattern":"\\S+", "sensitive":true }, + "ClusterIdentifier":{ + "type":"string", + "max":512, + "pattern":"\\S+" + }, "ConflictException":{ "type":"structure", "members":{ @@ -1184,10 +1218,7 @@ }, "ConnectorProfileConfig":{ "type":"structure", - "required":[ - "connectorProfileProperties", - "connectorProfileCredentials" - ], + "required":["connectorProfileProperties"], "members":{ "connectorProfileProperties":{ "shape":"ConnectorProfileProperties", @@ -1571,6 +1602,10 @@ "tags":{ "shape":"TagMap", "documentation":"

The tags used to organize, track, or control access for your flow.

" + }, + "metadataCatalogConfig":{ + "shape":"MetadataCatalogConfig", + "documentation":"

Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.

" } } }, @@ -1769,6 +1804,11 @@ }, "documentation":"

The connector metadata specific to Amazon Connect Customer Profiles.

" }, + "DataApiRoleArn":{ + "type":"string", + "max":512, + "pattern":"arn:aws:iam:.*:[0-9]+:.*" + }, "DataPullMode":{ "type":"string", "enum":[ @@ -1776,6 +1816,11 @@ "Complete" ] }, + "DatabaseName":{ + "type":"string", + "max":512, + "pattern":"\\S+" + }, "DatabaseUrl":{ "type":"string", "max":512, @@ -2125,6 +2170,18 @@ "tags":{ "shape":"TagMap", "documentation":"

The tags used to organize, track, or control access for your flow.

" + }, + "metadataCatalogConfig":{ + "shape":"MetadataCatalogConfig", + "documentation":"

Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.

" + }, + "lastRunMetadataCatalogDetails":{ + "shape":"MetadataCatalogDetails", + "documentation":"

Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.

" + }, + "schemaVersion":{ + "shape":"Long", + "documentation":"

The version number of your data schema. Amazon AppFlow assigns this version number. The version number increases by one when you change any of the following settings in your flow configuration:

  • Source-to-destination field mappings

  • Field data types

  • Partition keys

" } } }, @@ -2449,6 +2506,10 @@ "dataPullEndTime":{ "shape":"Date", "documentation":"

The timestamp that indicates the last new or updated record to be transferred in the flow run.

" + }, + "metadataCatalogDetails":{ + "shape":"MetadataCatalogDetails", + "documentation":"

Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.

" } }, "documentation":"

Specifies information about the past flow run instances for a given flow.

" @@ -2610,6 +2671,11 @@ "max":2048, "pattern":"[\\w!@#\\-.?,\\s]*" }, + "FlowErrorDeactivationThreshold":{ + "type":"integer", + "max":100, + "min":1 + }, "FlowExecutionList":{ "type":"list", "member":{"shape":"ExecutionRecord"} @@ -2639,6 +2705,44 @@ "max":2048, "pattern":"[\\s\\w/!@#+=.-]*" }, + "GlueDataCatalogConfig":{ + "type":"structure", + "required":[ + "roleArn", + "databaseName", + "tablePrefix" + ], + "members":{ + "roleArn":{ + "shape":"GlueDataCatalogIAMRole", + "documentation":"

The Amazon Resource Name (ARN) of an IAM role that grants Amazon AppFlow the permissions it needs to create Data Catalog tables, databases, and partitions.

For an example IAM policy that has the required permissions, see Identity-based policy examples for Amazon AppFlow.

" + }, + "databaseName":{ + "shape":"GlueDataCatalogDatabaseName", + "documentation":"

The name of the Data Catalog database that stores the metadata tables that Amazon AppFlow creates in your Amazon Web Services account. These tables contain metadata for the data that's transferred by the flow that you configure with this parameter.

When you configure a new flow with this parameter, you must specify an existing database.

" + }, + "tablePrefix":{ + "shape":"GlueDataCatalogTablePrefix", + "documentation":"

A naming prefix for each Data Catalog table that Amazon AppFlow creates for the flow that you configure with this setting. Amazon AppFlow adds the prefix to the beginning of the each table name.

" + } + }, + "documentation":"

Specifies the configuration that Amazon AppFlow uses when it catalogs your data with the Glue Data Catalog. When Amazon AppFlow catalogs your data, it stores metadata in Data Catalog tables. This metadata represents the data that's transferred by the flow that you configure with these settings.

You can configure a flow with these settings only when the flow destination is Amazon S3.

" + }, + "GlueDataCatalogDatabaseName":{ + "type":"string", + "max":255, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, + "GlueDataCatalogIAMRole":{ + "type":"string", + "max":512, + "pattern":"arn:aws:iam:.*:[0-9]+:.*" + }, + "GlueDataCatalogTablePrefix":{ + "type":"string", + "max":128, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, "GoogleAnalyticsConnectorOperator":{ "type":"string", "enum":[ @@ -2862,6 +2966,7 @@ "error":{"httpStatusCode":500}, "exception":true }, + "JavaBoolean":{"type":"boolean"}, "KMSArn":{ "type":"string", "max":2048, @@ -3102,6 +3207,42 @@ "max":100, "min":1 }, + "MetadataCatalogConfig":{ + "type":"structure", + "members":{ + "glueDataCatalog":{ + "shape":"GlueDataCatalogConfig", + "documentation":"

Specifies the configuration that Amazon AppFlow uses when it catalogs your data with the Glue Data Catalog.

" + } + }, + "documentation":"

Specifies the configuration that Amazon AppFlow uses when it catalogs your data. When Amazon AppFlow catalogs your data, it stores metadata in a data catalog.

" + }, + "MetadataCatalogDetail":{ + "type":"structure", + "members":{ + "catalogType":{ + "shape":"CatalogType", + "documentation":"

The type of metadata catalog that Amazon AppFlow used for the associated flow run. This parameter returns the following value:

GLUE

The metadata catalog is provided by the Glue Data Catalog. Glue includes the Glue Data Catalog as a component.

" + }, + "tableName":{ + "shape":"String", + "documentation":"

The name of the table that stores the metadata for the associated flow run. The table stores metadata that represents the data that the flow transferred. Amazon AppFlow stores the table in the metadata catalog.

" + }, + "tableRegistrationOutput":{ + "shape":"RegistrationOutput", + "documentation":"

Describes the status of the attempt from Amazon AppFlow to register the metadata table with the metadata catalog. Amazon AppFlow creates or updates this table for the associated flow run.

" + }, + "partitionRegistrationOutput":{ + "shape":"RegistrationOutput", + "documentation":"

Describes the status of the attempt from Amazon AppFlow to register the data partitions with the metadata catalog. The data partitions organize the flow output into a hierarchical path, such as a folder path in an S3 bucket. Amazon AppFlow creates the partitions (if they don't already exist) based on your flow configuration.

" + } + }, + "documentation":"

Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.

" + }, + "MetadataCatalogDetails":{ + "type":"list", + "member":{"shape":"MetadataCatalogDetail"} + }, "MostRecentExecutionMessage":{ "type":"string", "max":2048, @@ -3359,7 +3500,9 @@ "MATH_OPERATION_FIELDS_ORDER", "CONCAT_FORMAT", "SUBFIELD_CATEGORY_MAP", - "EXCLUDE_SOURCE_FIELDS_LIST" + "EXCLUDE_SOURCE_FIELDS_LIST", + "INCLUDE_NEW_FIELDS", + "ORDERED_PARTITION_KEYS_LIST" ] }, "Operators":{ @@ -3394,6 +3537,17 @@ "pattern":".*", "sensitive":true }, + "PathPrefix":{ + "type":"string", + "enum":[ + "EXECUTION_ID", + "SCHEMA_VERSION" + ] + }, + "PathPrefixHierarchy":{ + "type":"list", + "member":{"shape":"PathPrefix"} + }, "PortNumber":{ "type":"integer", "max":65535, @@ -3404,14 +3558,18 @@ "members":{ "prefixType":{ "shape":"PrefixType", - "documentation":"

Determines the format of the prefix, and whether it applies to the file name, file path, or both.

" + "documentation":"

Determines the format of the prefix, and whether it applies to the file name, file path, or both.

" }, "prefixFormat":{ "shape":"PrefixFormat", - "documentation":"

Determines the level of granularity that's included in the prefix.

" + "documentation":"

Determines the level of granularity for the date and time that's included in the prefix.

" + }, + "pathPrefixHierarchy":{ + "shape":"PathPrefixHierarchy", + "documentation":"

Specifies whether the destination file path includes either or both of the following elements:

EXECUTION_ID

The ID that Amazon AppFlow assigns to the flow run.

SCHEMA_VERSION

The version number of your data schema. Amazon AppFlow assigns this version number. The version number increases by one when you change any of the following settings in your flow configuration:

  • Source-to-destination field mappings

  • Field data types

  • Partition keys

" } }, - "documentation":"

Determines the prefix that Amazon AppFlow applies to the destination folder name. You can name your destination folders according to the flow frequency and date.

" + "documentation":"

Specifies elements that Amazon AppFlow includes in the file and folder names in the flow destination.

" }, "PrefixFormat":{ "type":"string", @@ -3521,13 +3679,9 @@ }, "RedshiftConnectorProfileCredentials":{ "type":"structure", - "required":[ - "username", - "password" - ], "members":{ "username":{ - "shape":"Username", + "shape":"String", "documentation":"

The name of the user.

" }, "password":{ @@ -3540,7 +3694,6 @@ "RedshiftConnectorProfileProperties":{ "type":"structure", "required":[ - "databaseUrl", "bucketName", "roleArn" ], @@ -3559,7 +3712,27 @@ }, "roleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the IAM role.

" + "documentation":"

The Amazon Resource Name (ARN) of IAM role that grants Amazon Redshift read-only access to Amazon S3. For more information, and for the polices that you attach to this role, see Allow Amazon Redshift to access your Amazon AppFlow data in Amazon S3.

" + }, + "dataApiRoleArn":{ + "shape":"DataApiRoleArn", + "documentation":"

The Amazon Resource Name (ARN) of an IAM role that permits Amazon AppFlow to access your Amazon Redshift database through the Data API. For more information, and for the polices that you attach to this role, see Allow Amazon AppFlow to access Amazon Redshift databases with the Data API.

" + }, + "isRedshiftServerless":{ + "shape":"Boolean", + "documentation":"

Indicates whether the connector profile defines a connection to an Amazon Redshift Serverless data warehouse.

" + }, + "clusterIdentifier":{ + "shape":"ClusterIdentifier", + "documentation":"

The unique ID that's assigned to an Amazon Redshift cluster.

" + }, + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of an Amazon Redshift workgroup.

" + }, + "databaseName":{ + "shape":"DatabaseName", + "documentation":"

The name of an Amazon Redshift database.

" } }, "documentation":"

The connector-specific profile properties when using Amazon Redshift.

" @@ -3598,7 +3771,7 @@ }, "RefreshToken":{ "type":"string", - "max":1024, + "max":2048, "pattern":"\\S+" }, "Region":{ @@ -3645,6 +3818,24 @@ "max":512, "pattern":"\\S+" }, + "RegistrationOutput":{ + "type":"structure", + "members":{ + "message":{ + "shape":"String", + "documentation":"

Explains the status of the registration attempt from Amazon AppFlow. If the attempt fails, the message explains why.

" + }, + "result":{ + "shape":"String", + "documentation":"

Indicates the number of resources that Amazon AppFlow created or updated. Possible resources include metadata tables and data partitions.

" + }, + "status":{ + "shape":"ExecutionStatus", + "documentation":"

Indicates the status of the registration attempt from Amazon AppFlow.

" + } + }, + "documentation":"

Describes the status of an attempt from Amazon AppFlow to register a resource.

When you run a flow that you've configured to use a metadata catalog, Amazon AppFlow registers a metadata table and data partitions with that catalog. This operation provides the status of that registration attempt. The operation also indicates how many related resources Amazon AppFlow created or updated.

" + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -3734,7 +3925,11 @@ "shape":"PrefixConfig", "documentation":"

Determines the prefix that Amazon AppFlow applies to the folder name in the Amazon S3 bucket. You can name folders according to the flow frequency and date.

" }, - "aggregationConfig":{"shape":"AggregationConfig"} + "aggregationConfig":{"shape":"AggregationConfig"}, + "preserveSourceDataTyping":{ + "shape":"JavaBoolean", + "documentation":"

If your file output format is Parquet, use this parameter to set whether Amazon AppFlow preserves the data types in your source data when it writes the output to Amazon S3.

  • true: Amazon AppFlow preserves the data types when it writes to Amazon S3. For example, an integer or 1 in your source data is still an integer in your output.

  • false: Amazon AppFlow converts all of the source data into strings when it writes to Amazon S3. For example, an integer of 1 in your source data becomes the string \"1\" in the output.

" + } }, "documentation":"

The configuration that determines how Amazon AppFlow should format the flow output data when Amazon S3 is used as the destination.

" }, @@ -3931,6 +4126,18 @@ }, "documentation":"

The connector-specific profile properties required when using Salesforce.

" }, + "SalesforceDataTransferApi":{ + "type":"string", + "enum":[ + "AUTOMATIC", + "BULKV2", + "REST_SYNC" + ] + }, + "SalesforceDataTransferApiList":{ + "type":"list", + "member":{"shape":"SalesforceDataTransferApi"} + }, "SalesforceDestinationProperties":{ "type":"structure", "required":["object"], @@ -3950,6 +4157,10 @@ "writeOperationType":{ "shape":"WriteOperationType", "documentation":"

This specifies the type of write operation to be performed in Salesforce. When the value is UPSERT, then idFieldNames is required.

" + }, + "dataTransferApi":{ + "shape":"SalesforceDataTransferApi", + "documentation":"

Specifies which Salesforce API is used by Amazon AppFlow when your flow transfers data to Salesforce.

AUTOMATIC

The default. Amazon AppFlow selects which API to use based on the number of records that your flow transfers to Salesforce. If your flow transfers fewer than 1,000 records, Amazon AppFlow uses Salesforce REST API. If your flow transfers 1,000 records or more, Amazon AppFlow uses Salesforce Bulk API 2.0.

Each of these Salesforce APIs structures data differently. If Amazon AppFlow selects the API automatically, be aware that, for recurring flows, the data output might vary from one flow run to the next. For example, if a flow runs daily, it might use REST API on one day to transfer 900 records, and it might use Bulk API 2.0 on the next day to transfer 1,100 records. For each of these flow runs, the respective Salesforce API formats the data differently. Some of the differences include how dates are formatted and null values are represented. Also, Bulk API 2.0 doesn't transfer Salesforce compound fields.

By choosing this option, you optimize flow performance for both small and large data transfers, but the tradeoff is inconsistent formatting in the output.

BULKV2

Amazon AppFlow uses only Salesforce Bulk API 2.0. This API runs asynchronous data transfers, and it's optimal for large sets of data. By choosing this option, you ensure that your flow writes consistent output, but you optimize performance only for large data transfers.

Note that Bulk API 2.0 does not transfer Salesforce compound fields.

REST_SYNC

Amazon AppFlow uses only Salesforce REST API. By choosing this option, you ensure that your flow writes consistent output, but you decrease performance for large data transfers that are better suited for Bulk API 2.0. In some cases, if your flow attempts to transfer a vary large set of data, it might fail with a timed out error.

" } }, "documentation":"

The properties that are applied when Salesforce is being used as a destination.

" @@ -3960,6 +4171,10 @@ "oAuthScopes":{ "shape":"OAuthScopeList", "documentation":"

The desired authorization scope for the Salesforce account.

" + }, + "dataTransferApis":{ + "shape":"SalesforceDataTransferApiList", + "documentation":"

The Salesforce APIs that you can have Amazon AppFlow use when your flows transfers data to or from Salesforce.

" } }, "documentation":"

The connector metadata specific to Salesforce.

" @@ -3979,6 +4194,10 @@ "includeDeletedRecords":{ "shape":"Boolean", "documentation":"

Indicates whether Amazon AppFlow includes deleted files in the flow run.

" + }, + "dataTransferApi":{ + "shape":"SalesforceDataTransferApi", + "documentation":"

Specifies which Salesforce API is used by Amazon AppFlow when your flow transfers data from Salesforce.

AUTOMATIC

The default. Amazon AppFlow selects which API to use based on the number of records that your flow transfers from Salesforce. If your flow transfers fewer than 1,000,000 records, Amazon AppFlow uses Salesforce REST API. If your flow transfers 1,000,000 records or more, Amazon AppFlow uses Salesforce Bulk API 2.0.

Each of these Salesforce APIs structures data differently. If Amazon AppFlow selects the API automatically, be aware that, for recurring flows, the data output might vary from one flow run to the next. For example, if a flow runs daily, it might use REST API on one day to transfer 900,000 records, and it might use Bulk API 2.0 on the next day to transfer 1,100,000 records. For each of these flow runs, the respective Salesforce API formats the data differently. Some of the differences include how dates are formatted and null values are represented. Also, Bulk API 2.0 doesn't transfer Salesforce compound fields.

By choosing this option, you optimize flow performance for both small and large data transfers, but the tradeoff is inconsistent formatting in the output.

BULKV2

Amazon AppFlow uses only Salesforce Bulk API 2.0. This API runs asynchronous data transfers, and it's optimal for large sets of data. By choosing this option, you ensure that your flow writes consistent output, but you optimize performance only for large data transfers.

Note that Bulk API 2.0 does not transfer Salesforce compound fields.

REST_SYNC

Amazon AppFlow uses only Salesforce REST API. By choosing this option, you ensure that your flow writes consistent output, but you decrease performance for large data transfers that are better suited for Bulk API 2.0. In some cases, if your flow attempts to transfer a vary large set of data, it might fail wituh a timed out error.

" } }, "documentation":"

The properties that are applied when Salesforce is being used as a source.

" @@ -4018,15 +4237,15 @@ }, "scheduleStartTime":{ "shape":"Date", - "documentation":"

Specifies the scheduled start time for a schedule-triggered flow.

" + "documentation":"

The time at which the scheduled flow starts. The time is formatted as a timestamp that follows the ISO 8601 standard, such as 2022-04-26T13:00:00-07:00.

" }, "scheduleEndTime":{ "shape":"Date", - "documentation":"

Specifies the scheduled end time for a schedule-triggered flow.

" + "documentation":"

The time at which the scheduled flow ends. The time is formatted as a timestamp that follows the ISO 8601 standard, such as 2022-04-27T13:00:00-07:00.

" }, "timezone":{ "shape":"Timezone", - "documentation":"

Specifies the time zone used when referring to the date and time of a scheduled-triggered flow, such as America/New_York.

" + "documentation":"

Specifies the time zone used when referring to the dates and times of a scheduled flow, such as America/New_York. This time zone is only a descriptive label. It doesn't affect how Amazon AppFlow interprets the timestamps that you specify to schedule the flow.

If you want to schedule a flow by using times in a particular time zone, indicate the time zone as a UTC offset in your timestamps. For example, the UTC offsets for the America/New_York timezone are -04:00 EDT and -05:00 EST.

" }, "scheduleOffset":{ "shape":"ScheduleOffset", @@ -4036,6 +4255,11 @@ "firstExecutionFrom":{ "shape":"Date", "documentation":"

Specifies the date range for the records to import from the connector in the first flow run.

" + }, + "flowErrorDeactivationThreshold":{ + "shape":"FlowErrorDeactivationThreshold", + "documentation":"

Defines how many times a scheduled flow fails consecutively before Amazon AppFlow deactivates it.

", + "box":true } }, "documentation":"

Specifies the configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the Scheduled trigger type.

" @@ -4675,7 +4899,8 @@ "Merge", "Passthrough", "Truncate", - "Validate" + "Validate", + "Partition" ] }, "Tasks":{ @@ -4887,6 +5112,30 @@ } } }, + "UpdateConnectorRegistrationRequest":{ + "type":"structure", + "required":["connectorLabel"], + "members":{ + "connectorLabel":{ + "shape":"ConnectorLabel", + "documentation":"

The name of the connector. The name is unique for each connector registration in your AWS account.

" + }, + "description":{ + "shape":"Description", + "documentation":"

A description about the update that you're applying to the connector.

" + }, + "connectorProvisioningConfig":{"shape":"ConnectorProvisioningConfig"} + } + }, + "UpdateConnectorRegistrationResponse":{ + "type":"structure", + "members":{ + "connectorArn":{ + "shape":"ARN", + "documentation":"

The ARN of the connector being updated.

" + } + } + }, "UpdateFlowRequest":{ "type":"structure", "required":[ @@ -4917,6 +5166,10 @@ "tasks":{ "shape":"Tasks", "documentation":"

A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.

" + }, + "metadataCatalogConfig":{ + "shape":"MetadataCatalogConfig", + "documentation":"

Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.

" } } }, @@ -5093,6 +5346,11 @@ "max":512, "pattern":"[\\s\\w/!@#+=.-]*" }, + "WorkgroupName":{ + "type":"string", + "max":512, + "pattern":"\\S+" + }, "WriteOperationType":{ "type":"string", "documentation":"

The possible write operations in the destination connector. When this value is not provided, this defaults to the INSERT operation.

", diff --git a/botocore/data/appintegrations/2020-07-29/endpoint-rule-set-1.json b/botocore/data/appintegrations/2020-07-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..6a244f0a --- /dev/null +++ b/botocore/data/appintegrations/2020-07-29/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://app-integrations-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://app-integrations-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://app-integrations.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://app-integrations.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/appintegrations/2020-07-29/examples-1.json b/botocore/data/appintegrations/2020-07-29/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/appintegrations/2020-07-29/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/application-autoscaling/2016-02-06/endpoint-rule-set-1.json b/botocore/data/application-autoscaling/2016-02-06/endpoint-rule-set-1.json new file mode 100644 index 00000000..df2909df --- /dev/null +++ b/botocore/data/application-autoscaling/2016-02-06/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://application-autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://application-autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://application-autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://application-autoscaling.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/application-autoscaling/2016-02-06/examples-1.json b/botocore/data/application-autoscaling/2016-02-06/examples-1.json index 53415ece..5abcd554 100644 --- a/botocore/data/application-autoscaling/2016-02-06/examples-1.json +++ b/botocore/data/application-autoscaling/2016-02-06/examples-1.json @@ -50,13 +50,18 @@ "output": { "ScalableTargets": [ { - "CreationTime": "2016-05-06T11:21:46.199Z", + "CreationTime": "2019-05-06T11:21:46.199Z", "MaxCapacity": 10, "MinCapacity": 1, "ResourceId": "service/default/web-app", - "RoleARN": "arn:aws:iam::012345678910:role/ApplicationAutoscalingECSRole", + "RoleARN": "arn:aws:iam::012345678910:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService", "ScalableDimension": "ecs:service:DesiredCount", - "ServiceNamespace": "ecs" + "ServiceNamespace": "ecs", + "SuspendedState": { + "DynamicScalingInSuspended": false, + "DynamicScalingOutSuspended": false, + "ScheduledScalingSuspended": false + } } ] }, @@ -66,7 +71,7 @@ "output": { } }, - "description": "This example describes the scalable targets for the ecs service namespace.", + "description": "This example describes the scalable targets for the ECS service namespace.", "id": "to-describe-scalable-targets-1470864286961", "title": "To describe scalable targets" } @@ -84,11 +89,11 @@ "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": "2016-05-06T16:04:32.111Z", + "EndTime": "2019-05-06T16:04:32.111Z", "ResourceId": "service/default/web-app", "ScalableDimension": "ecs:service:DesiredCount", "ServiceNamespace": "ecs", - "StartTime": "2016-05-06T16:03:58.171Z", + "StartTime": "2019-05-06T16:03:58.171Z", "StatusCode": "Successful", "StatusMessage": "Successfully set desired count to 1. Change successfully fulfilled by ecs." } @@ -120,7 +125,7 @@ "AlarmName": "web-app-cpu-gt-75" } ], - "CreationTime": "2016-05-06T12:11:39.230Z", + "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", @@ -146,7 +151,7 @@ "output": { } }, - "description": "This example describes the scaling policies for the ecs service namespace.", + "description": "This example describes the scaling policies for the ECS service namespace.", "id": "to-describe-scaling-policies-1470864609734", "title": "To describe scaling policies" } @@ -154,24 +159,32 @@ "PutScalingPolicy": [ { "input": { - "PolicyName": "web-app-cpu-gt-75", - "PolicyType": "StepScaling", + "PolicyName": "cpu75-target-tracking-scaling-policy", + "PolicyType": "TargetTrackingScaling", "ResourceId": "service/default/web-app", "ScalableDimension": "ecs:service:DesiredCount", "ServiceNamespace": "ecs", - "StepScalingPolicyConfiguration": { - "AdjustmentType": "PercentChangeInCapacity", - "Cooldown": 60, - "StepAdjustments": [ - { - "MetricIntervalLowerBound": 0, - "ScalingAdjustment": 200 - } - ] + "TargetTrackingScalingPolicyConfiguration": { + "PredefinedMetricSpecification": { + "PredefinedMetricType": "ECSServiceAverageCPUUtilization" + }, + "ScaleInCooldown": 60, + "ScaleOutCooldown": 60, + "TargetValue": 75 } }, "output": { - "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" + "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": { @@ -179,40 +192,9 @@ "output": { } }, - "description": "This example applies a scaling policy to an Amazon ECS service called web-app in the default cluster. The policy increases the desired count of the service by 200%, with a cool down period of 60 seconds.", - "id": "to-apply-a-scaling-policy-to-an-amazon-ecs-service-1470864779862", - "title": "To apply a scaling policy to an Amazon ECS service" - }, - { - "input": { - "PolicyName": "fleet-cpu-gt-75", - "PolicyType": "StepScaling", - "ResourceId": "spot-fleet-request/sfr-45e69d8a-be48-4539-bbf3-3464e99c50c3", - "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity", - "ServiceNamespace": "ec2", - "StepScalingPolicyConfiguration": { - "AdjustmentType": "PercentChangeInCapacity", - "Cooldown": 180, - "StepAdjustments": [ - { - "MetricIntervalLowerBound": 0, - "ScalingAdjustment": 200 - } - ] - } - }, - "output": { - "PolicyARN": "arn:aws:autoscaling:us-east-1:012345678910:scalingPolicy:89406401-0cb7-4130-b770-d97cca0e446b:resource/ec2/spot-fleet-request/sfr-45e69d8a-be48-4539-bbf3-3464e99c50c3:policyName/fleet-cpu-gt-75" - }, - "comments": { - "input": { - }, - "output": { - } - }, - "description": "This example applies a scaling policy to an Amazon EC2 Spot fleet. The policy increases the target capacity of the spot fleet by 200%, with a cool down period of 180 seconds.\",\n ", - "id": "to-apply-a-scaling-policy-to-an-amazon-ec2-spot-fleet-1472073278469", - "title": "To apply a scaling policy to an Amazon EC2 Spot fleet" + "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": [ @@ -221,7 +203,6 @@ "MaxCapacity": 10, "MinCapacity": 1, "ResourceId": "service/default/web-app", - "RoleARN": "arn:aws:iam::012345678910:role/ApplicationAutoscalingECSRole", "ScalableDimension": "ecs:service:DesiredCount", "ServiceNamespace": "ecs" }, @@ -234,23 +215,6 @@ "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" - }, - { - "input": { - "MaxCapacity": 10, - "MinCapacity": 1, - "ResourceId": "spot-fleet-request/sfr-45e69d8a-be48-4539-bbf3-3464e99c50c3", - "RoleARN": "arn:aws:iam::012345678910:role/ApplicationAutoscalingSpotRole", - "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity", - "ServiceNamespace": "ec2" - }, - "output": { - }, - "comments": { - }, - "description": "This example registers a scalable target from an Amazon EC2 Spot fleet with a minimum target capacity of 1 and a maximum of 10.", - "id": "to-register-an-ec2-spot-fleet-as-a-scalable-target-1472072899649", - "title": "To register an EC2 Spot fleet as a scalable target" } ] } diff --git a/botocore/data/application-insights/2018-11-25/endpoint-rule-set-1.json b/botocore/data/application-insights/2018-11-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..75e13ac5 --- /dev/null +++ b/botocore/data/application-insights/2018-11-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://applicationinsights-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://applicationinsights-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://applicationinsights.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://applicationinsights.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/application-insights/2018-11-25/examples-1.json b/botocore/data/application-insights/2018-11-25/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/application-insights/2018-11-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/application-insights/2018-11-25/service-2.json b/botocore/data/application-insights/2018-11-25/service-2.json index 0fbc10b8..00880d07 100644 --- a/botocore/data/application-insights/2018-11-25/service-2.json +++ b/botocore/data/application-insights/2018-11-25/service-2.json @@ -507,8 +507,14 @@ "shape":"Remarks", "documentation":"

The issues on the user side that block Application Insights from successfully monitoring an application. Example remarks include:

  • “Configuring application, detected 1 Errors, 3 Warnings”

  • “Configuring application, detected 1 Unconfigured Components”

" }, - "AutoConfigEnabled":{"shape":"AutoConfigEnabled"}, - "DiscoveryType":{"shape":"DiscoveryType"} + "AutoConfigEnabled":{ + "shape":"AutoConfigEnabled", + "documentation":"

Indicates whether auto-configuration is turned on for this application.

" + }, + "DiscoveryType":{ + "shape":"DiscoveryType", + "documentation":"

The method used by Application Insights to onboard your resources.

" + } }, "documentation":"

Describes the status of the application.

" }, @@ -633,8 +639,18 @@ "shape":"TagList", "documentation":"

List of tags to add to the application. tag key (Key) and an associated tag value (Value). The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.

" }, - "AutoConfigEnabled":{"shape":"AutoConfigEnabled"}, - "AutoCreate":{"shape":"AutoCreate"} + "AutoConfigEnabled":{ + "shape":"AutoConfigEnabled", + "documentation":"

Indicates whether Application Insights automatically configures unmonitored resources in the resource group.

" + }, + "AutoCreate":{ + "shape":"AutoCreate", + "documentation":"

Configures all of the resources in the resource group by applying the recommended configurations.

" + }, + "GroupingType":{ + "shape":"GroupingType", + "documentation":"

Application Insights can create applications based on a resource group or on an account. To create an account-based application using all of the resources in the account, set this parameter to ACCOUNT_BASED.

" + } } }, "CreateApplicationResponse":{ @@ -825,7 +841,7 @@ }, "Tier":{ "shape":"Tier", - "documentation":"

The tier of the application component. Supported tiers include DOT_NET_CORE, DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT.

" + "documentation":"

The tier of the application component.

" } } }, @@ -1029,6 +1045,10 @@ "NOT_USEFUL" ] }, + "GroupingType":{ + "type":"string", + "enum":["ACCOUNT_BASED"] + }, "HealthEventArn":{"type":"string"}, "HealthEventDescription":{"type":"string"}, "HealthEventTypeCategory":{"type":"string"}, @@ -1242,7 +1262,10 @@ "shape":"PaginationToken", "documentation":"

The token to request the next page of results.

" }, - "ComponentName":{"shape":"ComponentName"} + "ComponentName":{ + "shape":"ComponentName", + "documentation":"

The name of the component.

" + } } }, "ListProblemsResponse":{ @@ -1256,7 +1279,10 @@ "shape":"PaginationToken", "documentation":"

The token used to retrieve the next page of results. This value is null when there are no more results to return.

" }, - "ResourceGroupName":{"shape":"ResourceGroupName"} + "ResourceGroupName":{ + "shape":"ResourceGroupName", + "documentation":"

The name of the resource group.

" + } } }, "ListTagsForResourceRequest":{ @@ -1606,8 +1632,14 @@ "shape":"Feedback", "documentation":"

Feedback provided by the user about the problem.

" }, - "RecurringCount":{"shape":"RecurringCount"}, - "LastRecurrenceTime":{"shape":"LastRecurrenceTime"} + "RecurringCount":{ + "shape":"RecurringCount", + "documentation":"

The number of times that the same problem reoccurred after the first time it was resolved.

" + }, + "LastRecurrenceTime":{ + "shape":"LastRecurrenceTime", + "documentation":"

The last time that the problem reoccurred after its last resolution.

" + } }, "documentation":"

Describes a problem that is detected by correlating observations.

" }, @@ -1678,6 +1710,7 @@ "SeverityLevel":{ "type":"string", "enum":[ + "Informative", "Low", "Medium", "High" @@ -1856,7 +1889,10 @@ "shape":"RemoveSNSTopic", "documentation":"

Disassociates the SNS topic from the opsItem created for detected problems.

" }, - "AutoConfigEnabled":{"shape":"AutoConfigEnabled"} + "AutoConfigEnabled":{ + "shape":"AutoConfigEnabled", + "documentation":"

Turns auto-configuration on or off.

" + } } }, "UpdateApplicationResponse":{ @@ -1889,13 +1925,16 @@ }, "Tier":{ "shape":"Tier", - "documentation":"

The tier of the application component. Supported tiers include DOT_NET_WORKER, DOT_NET_WEB, DOT_NET_CORE, SQL_SERVER, and DEFAULT.

" + "documentation":"

The tier of the application component.

" }, "ComponentConfiguration":{ "shape":"ComponentConfiguration", "documentation":"

The configuration settings of the component. The value is the escaped JSON of the configuration. For more information about the JSON format, see Working with JSON. You can send a request to DescribeComponentConfigurationRecommendation to see the recommended configuration for a component. For the complete format of the component configuration file, see Component Configuration.

" }, - "AutoConfigEnabled":{"shape":"AutoConfigEnabled"} + "AutoConfigEnabled":{ + "shape":"AutoConfigEnabled", + "documentation":"

Automatically configures the component by applying the recommended configurations.

" + } } }, "UpdateComponentConfigurationResponse":{ diff --git a/botocore/data/applicationcostprofiler/2020-09-10/endpoint-rule-set-1.json b/botocore/data/applicationcostprofiler/2020-09-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..3875e6d3 --- /dev/null +++ b/botocore/data/applicationcostprofiler/2020-09-10/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://application-cost-profiler-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://application-cost-profiler-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://application-cost-profiler.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://application-cost-profiler.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/applicationcostprofiler/2020-09-10/examples-1.json b/botocore/data/applicationcostprofiler/2020-09-10/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/applicationcostprofiler/2020-09-10/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/appmesh/2018-10-01/endpoint-rule-set-1.json b/botocore/data/appmesh/2018-10-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..8f7d9078 --- /dev/null +++ b/botocore/data/appmesh/2018-10-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appmesh-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appmesh-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appmesh.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://appmesh.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/appmesh/2018-10-01/examples-1.json b/botocore/data/appmesh/2018-10-01/examples-1.json new file mode 100644 index 00000000..752e89e0 --- /dev/null +++ b/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/botocore/data/appmesh/2019-01-25/endpoint-rule-set-1.json b/botocore/data/appmesh/2019-01-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..8f7d9078 --- /dev/null +++ b/botocore/data/appmesh/2019-01-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appmesh-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appmesh-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appmesh.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://appmesh.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/appmesh/2019-01-25/examples-1.json b/botocore/data/appmesh/2019-01-25/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/appmesh/2019-01-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/appmesh/2019-01-25/service-2.json b/botocore/data/appmesh/2019-01-25/service-2.json index d39aacb4..5e756972 100644 --- a/botocore/data/appmesh/2019-01-25/service-2.json +++ b/botocore/data/appmesh/2019-01-25/service-2.json @@ -863,7 +863,7 @@ }, "ipPreference":{ "shape":"IpPreference", - "documentation":"

The IP version to use to control traffic within the mesh.

" + "documentation":"

The preferred IP version that this virtual node uses. Setting the IP preference on the virtual node only overrides the IP preference set for the mesh on this specific node.

" }, "namespaceName":{ "shape":"AwsCloudMapName", @@ -1922,7 +1922,7 @@ }, "ipPreference":{ "shape":"IpPreference", - "documentation":"

The IP version to use to control traffic within the mesh.

" + "documentation":"

The preferred IP version that this virtual node uses. Setting the IP preference on the virtual node only overrides the IP preference set for the mesh on this specific node.

" }, "responseType":{ "shape":"DnsResponseType", @@ -1984,6 +1984,10 @@ "type":"structure", "required":["path"], "members":{ + "format":{ + "shape":"LoggingFormat", + "documentation":"

The specified format for the logs. The format is either json_format or text_format.

" + }, "path":{ "shape":"FilePath", "documentation":"

The file path to write access logs to. You can use /dev/stdout to send access logs to standard out and configure your Envoy container to use a log driver, such as awslogs, to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk.

 <note> <p>The Envoy process must have write permissions to the path that you specify here. Otherwise, Envoy fails to bootstrap properly.</p> </note> 
" @@ -2175,6 +2179,10 @@ "type":"structure", "required":["virtualService"], "members":{ + "port":{ + "shape":"ListenerPort", + "documentation":"

The port number of the gateway route target.

" + }, "virtualService":{ "shape":"GatewayRouteVirtualService", "documentation":"

An object that represents a virtual service gateway route target.

" @@ -2237,6 +2245,10 @@ "shape":"GrpcGatewayRouteMetadataList", "documentation":"

The gateway route metadata to be matched on.

" }, + "port":{ + "shape":"ListenerPort", + "documentation":"

The port number to match from the request.

" + }, "serviceName":{ "shape":"ServiceName", "documentation":"

The fully qualified domain name for the service to match from the request.

" @@ -2397,6 +2409,10 @@ "shape":"MethodName", "documentation":"

The method name to match from the request. If you specify a name, you must also specify a serviceName.

" }, + "port":{ + "shape":"ListenerPort", + "documentation":"

The port number to match on.

" + }, "serviceName":{ "shape":"ServiceName", "documentation":"

The fully qualified domain name for the service to match from the request.

" @@ -2643,6 +2659,10 @@ "shape":"HttpPathMatch", "documentation":"

The path to match on.

" }, + "port":{ + "shape":"ListenerPort", + "documentation":"

The port number to match on.

" + }, "prefix":{ "shape":"String", "documentation":"

Specifies the path to match requests with. This parameter must always start with /, which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is my-service.local and you want the route to match requests to my-service.local/metrics, your prefix should be /metrics.

" @@ -2874,6 +2894,10 @@ "shape":"HttpPathMatch", "documentation":"

The client request path to match on.

" }, + "port":{ + "shape":"ListenerPort", + "documentation":"

The port number to match on.

" + }, "prefix":{ "shape":"String", "documentation":"

Specifies the path to match requests with. This parameter must always start with /, which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is my-service.local and you want the route to match requests to my-service.local/metrics, your prefix should be /metrics.

" @@ -2930,6 +2954,38 @@ "IPv6_ONLY" ] }, + "JsonFormat":{ + "type":"list", + "member":{"shape":"JsonFormatRef"} + }, + "JsonFormatRef":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"JsonKey", + "documentation":"

The specified key for the JSON.

" + }, + "value":{ + "shape":"JsonValue", + "documentation":"

The specified value for the JSON.

" + } + }, + "documentation":"

An object that represents the key value pairs for the JSON.

" + }, + "JsonKey":{ + "type":"string", + "max":100, + "min":1 + }, + "JsonValue":{ + "type":"string", + "max":100, + "min":1 + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -3378,6 +3434,12 @@ }, "documentation":"

An object that represents a listener for a virtual node.

" }, + "ListenerPort":{ + "type":"integer", + "box":true, + "max":65535, + "min":1 + }, "ListenerTimeout":{ "type":"structure", "members":{ @@ -3534,6 +3596,21 @@ }, "documentation":"

An object that represents the logging information for a virtual node.

" }, + "LoggingFormat":{ + "type":"structure", + "members":{ + "json":{ + "shape":"JsonFormat", + "documentation":"

" + }, + "text":{ + "shape":"TextFormat", + "documentation":"

" + } + }, + "documentation":"

An object that represents the format for the logs.

", + "union":true + }, "Long":{ "type":"long", "box":true @@ -4156,6 +4233,10 @@ "shape":"TcpRouteAction", "documentation":"

The action to take if a match is determined.

" }, + "match":{ + "shape":"TcpRouteMatch", + "documentation":"

An object that represents the criteria for determining a request match.

" + }, "timeout":{ "shape":"TcpTimeout", "documentation":"

An object that represents types of timeouts.

" @@ -4174,6 +4255,16 @@ }, "documentation":"

An object that represents the action to take if a match is determined.

" }, + "TcpRouteMatch":{ + "type":"structure", + "members":{ + "port":{ + "shape":"ListenerPort", + "documentation":"

The port number to match on.

" + } + }, + "documentation":"

An object representing the TCP route to match.

" + }, "TcpTimeout":{ "type":"structure", "members":{ @@ -4184,6 +4275,11 @@ }, "documentation":"

An object that represents types of timeouts.

" }, + "TextFormat":{ + "type":"string", + "max":1000, + "min":1 + }, "Timestamp":{"type":"timestamp"}, "TlsValidationContext":{ "type":"structure", @@ -4191,7 +4287,7 @@ "members":{ "subjectAlternativeNames":{ "shape":"SubjectAlternativeNames", - "documentation":"

A reference to an object that represents the SANs for a Transport Layer Security (TLS) validation context.

" + "documentation":"

A reference to an object that represents the SANs for a Transport Layer Security (TLS) validation context. If you don't specify SANs on the terminating mesh endpoint, the Envoy proxy for that node doesn't verify the SAN on a peer client certificate. If you don't specify SANs on the originating mesh endpoint, the SAN on the certificate provided by the terminating endpoint must match the mesh endpoint service discovery configuration. Since SPIRE vended certificates have a SPIFFE ID as a name, you must set the SAN since the name doesn't match the service discovery name.

" }, "trust":{ "shape":"TlsValidationContextTrust", @@ -4773,6 +4869,10 @@ "type":"structure", "required":["path"], "members":{ + "format":{ + "shape":"LoggingFormat", + "documentation":"

The specified format for the virtual gateway access logs. It can be either json_format or text_format.

" + }, "path":{ "shape":"FilePath", "documentation":"

The file path to write access logs to. You can use /dev/stdout to send access logs to standard out and configure your Envoy container to use a log driver, such as awslogs, to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk.

" @@ -5711,6 +5811,10 @@ "weight" ], "members":{ + "port":{ + "shape":"ListenerPort", + "documentation":"

The targeted port of the weighted object.

" + }, "virtualNode":{ "shape":"ResourceName", "documentation":"

The virtual node to associate with the weighted target.

" diff --git a/botocore/data/apprunner/2020-05-15/endpoint-rule-set-1.json b/botocore/data/apprunner/2020-05-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..62c602eb --- /dev/null +++ b/botocore/data/apprunner/2020-05-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apprunner-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apprunner-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://apprunner.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://apprunner.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/apprunner/2020-05-15/examples-1.json b/botocore/data/apprunner/2020-05-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/apprunner/2020-05-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/apprunner/2020-05-15/service-2.json b/botocore/data/apprunner/2020-05-15/service-2.json index 80694df1..75f58ab6 100644 --- a/botocore/data/apprunner/2020-05-15/service-2.json +++ b/botocore/data/apprunner/2020-05-15/service-2.json @@ -103,6 +103,22 @@ ], "documentation":"

Create an App Runner VPC connector resource. App Runner requires this resource when you want to associate your App Runner service to a custom Amazon Virtual Private Cloud (Amazon VPC).

" }, + "CreateVpcIngressConnection":{ + "name":"CreateVpcIngressConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcIngressConnectionRequest"}, + "output":{"shape":"CreateVpcIngressConnectionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidStateException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Create an App Runner VPC Ingress Connection resource. App Runner requires this resource when you want to associate your App Runner service with an Amazon VPC endpoint.

" + }, "DeleteAutoScalingConfiguration":{ "name":"DeleteAutoScalingConfiguration", "http":{ @@ -162,7 +178,7 @@ {"shape":"InvalidStateException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

Delete an App Runner service.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

" + "documentation":"

Delete an App Runner service.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

Make sure that you don't have any active VPCIngressConnections associated with the service you want to delete.

" }, "DeleteVpcConnector":{ "name":"DeleteVpcConnector", @@ -179,6 +195,22 @@ ], "documentation":"

Delete an App Runner VPC connector resource. You can't delete a connector that's used by one or more App Runner services.

" }, + "DeleteVpcIngressConnection":{ + "name":"DeleteVpcIngressConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcIngressConnectionRequest"}, + "output":{"shape":"DeleteVpcIngressConnectionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidStateException"} + ], + "documentation":"

Delete an App Runner VPC Ingress Connection resource that's associated with an App Runner service. The VPC Ingress Connection must be in one of the following states to be deleted:

  • AVAILABLE

  • FAILED_CREATION

  • FAILED_UPDATE

  • FAILED_DELETION

" + }, "DescribeAutoScalingConfiguration":{ "name":"DescribeAutoScalingConfiguration", "http":{ @@ -254,6 +286,21 @@ ], "documentation":"

Return a description of an App Runner VPC connector resource.

" }, + "DescribeVpcIngressConnection":{ + "name":"DescribeVpcIngressConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVpcIngressConnectionRequest"}, + "output":{"shape":"DescribeVpcIngressConnectionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Return a full description of an App Runner VPC Ingress Connection resource.

" + }, "DisassociateCustomDomain":{ "name":"DisassociateCustomDomain", "http":{ @@ -371,6 +418,20 @@ ], "documentation":"

Returns a list of App Runner VPC connectors in your Amazon Web Services account.

" }, + "ListVpcIngressConnections":{ + "name":"ListVpcIngressConnections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListVpcIngressConnectionsRequest"}, + "output":{"shape":"ListVpcIngressConnectionsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceErrorException"} + ], + "documentation":"

Return a list of App Runner VPC Ingress Connections in your Amazon Web Services account.

" + }, "PauseService":{ "name":"PauseService", "http":{ @@ -465,6 +526,22 @@ {"shape":"InternalServiceErrorException"} ], "documentation":"

Update an App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service. These can be set only when you create the service.

To update the tags applied to your service, use the separate actions TagResource and UntagResource.

This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress.

" + }, + "UpdateVpcIngressConnection":{ + "name":"UpdateVpcIngressConnection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateVpcIngressConnectionRequest"}, + "output":{"shape":"UpdateVpcIngressConnectionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidStateException"}, + {"shape":"InternalServiceErrorException"} + ], + "documentation":"

Update an existing App Runner VPC Ingress Connection resource. The VPC Ingress Connection must be in one of the following states to be updated:

  • AVAILABLE

  • FAILED_CREATION

  • FAILED_UPDATE

" } }, "shapes":{ @@ -515,7 +592,8 @@ "required":[ "DNSTarget", "ServiceArn", - "CustomDomain" + "CustomDomain", + "VpcDNSTargets" ], "members":{ "DNSTarget":{ @@ -529,6 +607,10 @@ "CustomDomain":{ "shape":"CustomDomain", "documentation":"

A description of the domain name that's being associated.

" + }, + "VpcDNSTargets":{ + "shape":"VpcDNSTargetList", + "documentation":"

DNS Target records for the custom domains of this Amazon VPC.

" } } }, @@ -1007,6 +1089,42 @@ } } }, + "CreateVpcIngressConnectionRequest":{ + "type":"structure", + "required":[ + "ServiceArn", + "VpcIngressConnectionName", + "IngressVpcConfiguration" + ], + "members":{ + "ServiceArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (ARN) for this App Runner service that is used to create the VPC Ingress Connection resource.

" + }, + "VpcIngressConnectionName":{ + "shape":"VpcIngressConnectionName", + "documentation":"

A name for the VPC Ingress Connection resource. It must be unique across all the active VPC Ingress Connections in your Amazon Web Services account in the Amazon Web Services Region.

" + }, + "IngressVpcConfiguration":{ + "shape":"IngressVpcConfiguration", + "documentation":"

Specifications for the customer’s Amazon VPC and the related Amazon Web Services PrivateLink VPC endpoint that are used to create the VPC Ingress Connection resource.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

An optional list of metadata items that you can associate with the VPC Ingress Connection resource. A tag is a key-value pair.

" + } + } + }, + "CreateVpcIngressConnectionResponse":{ + "type":"structure", + "required":["VpcIngressConnection"], + "members":{ + "VpcIngressConnection":{ + "shape":"VpcIngressConnection", + "documentation":"

A description of the App Runner VPC Ingress Connection resource that's created by this request.

" + } + } + }, "CustomDomain":{ "type":"structure", "required":[ @@ -1050,6 +1168,12 @@ "type":"list", "member":{"shape":"CustomDomain"} }, + "CustomerAccountId":{ + "type":"string", + "max":12, + "min":12, + "pattern":"[0-9]{12}" + }, "DeleteAutoScalingConfigurationRequest":{ "type":"structure", "required":["AutoScalingConfigurationArn"], @@ -1156,6 +1280,26 @@ } } }, + "DeleteVpcIngressConnectionRequest":{ + "type":"structure", + "required":["VpcIngressConnectionArn"], + "members":{ + "VpcIngressConnectionArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the App Runner VPC Ingress Connection that you want to delete.

" + } + } + }, + "DeleteVpcIngressConnectionResponse":{ + "type":"structure", + "required":["VpcIngressConnection"], + "members":{ + "VpcIngressConnection":{ + "shape":"VpcIngressConnection", + "documentation":"

A description of the App Runner VPC Ingress Connection that this request just deleted.

" + } + } + }, "DescribeAutoScalingConfigurationRequest":{ "type":"structure", "required":["AutoScalingConfigurationArn"], @@ -1204,7 +1348,8 @@ "required":[ "DNSTarget", "ServiceArn", - "CustomDomains" + "CustomDomains", + "VpcDNSTargets" ], "members":{ "DNSTarget":{ @@ -1219,6 +1364,10 @@ "shape":"CustomDomainList", "documentation":"

A list of descriptions of custom domain names that are associated with the service. In a paginated request, the request returns up to MaxResults records per call.

" }, + "VpcDNSTargets":{ + "shape":"VpcDNSTargetList", + "documentation":"

DNS Target records for the custom domains of this Amazon VPC.

" + }, "NextToken":{ "shape":"String", "documentation":"

The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.

" @@ -1285,6 +1434,26 @@ } } }, + "DescribeVpcIngressConnectionRequest":{ + "type":"structure", + "required":["VpcIngressConnectionArn"], + "members":{ + "VpcIngressConnectionArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the App Runner VPC Ingress Connection that you want a description for.

" + } + } + }, + "DescribeVpcIngressConnectionResponse":{ + "type":"structure", + "required":["VpcIngressConnection"], + "members":{ + "VpcIngressConnection":{ + "shape":"VpcIngressConnection", + "documentation":"

A description of the App Runner VPC Ingress Connection that you specified in this request.

" + } + } + }, "DisassociateCustomDomainRequest":{ "type":"structure", "required":[ @@ -1307,7 +1476,8 @@ "required":[ "DNSTarget", "ServiceArn", - "CustomDomain" + "CustomDomain", + "VpcDNSTargets" ], "members":{ "DNSTarget":{ @@ -1321,6 +1491,10 @@ "CustomDomain":{ "shape":"CustomDomain", "documentation":"

A description of the domain name that's being disassociated.

" + }, + "VpcDNSTargets":{ + "shape":"VpcDNSTargetList", + "documentation":"

DNS Target records for the custom domains of this Amazon VPC.

" } } }, @@ -1480,6 +1654,30 @@ "ECR_PUBLIC" ] }, + "IngressConfiguration":{ + "type":"structure", + "members":{ + "IsPubliclyAccessible":{ + "shape":"Boolean", + "documentation":"

Specifies whether your App Runner service is publicly accessible. To make the service publicly accessible set it to True. To make the service privately accessible, from only within an Amazon VPC set it to False.

" + } + }, + "documentation":"

Network configuration settings for inbound network traffic.

" + }, + "IngressVpcConfiguration":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"String", + "documentation":"

The ID of the VPC that is used for the VPC endpoint.

" + }, + "VpcEndpointId":{ + "shape":"String", + "documentation":"

The ID of the VPC endpoint that your App Runner service connects to.

" + } + }, + "documentation":"

The configuration of your VPC and the associated VPC endpoint. The VPC endpoint is an Amazon Web Services PrivateLink resource that allows access to your App Runner services from within an Amazon VPC.

" + }, "InstanceConfiguration":{ "type":"structure", "members":{ @@ -1740,6 +1938,51 @@ } } }, + "ListVpcIngressConnectionsFilter":{ + "type":"structure", + "members":{ + "ServiceArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of a service to filter by.

" + }, + "VpcEndpointId":{ + "shape":"String", + "documentation":"

The ID of a VPC Endpoint to filter by.

" + } + }, + "documentation":"

Returns a list of VPC Ingress Connections based on the filter provided. It can return either ServiceArn or VpcEndpointId, or both.

" + }, + "ListVpcIngressConnectionsRequest":{ + "type":"structure", + "members":{ + "Filter":{ + "shape":"ListVpcIngressConnectionsFilter", + "documentation":"

The VPC Ingress Connections to be listed based on either the Service Arn or Vpc Endpoint Id, or both.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to include in each response (result page). It's used for a paginated request.

If you don't specify MaxResults, the request retrieves all available results in a single response.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones that are specified in the initial request.

If you don't specify NextToken, the request retrieves the first result page.

" + } + } + }, + "ListVpcIngressConnectionsResponse":{ + "type":"structure", + "required":["VpcIngressConnectionSummaryList"], + "members":{ + "VpcIngressConnectionSummaryList":{ + "shape":"VpcIngressConnectionSummaryList", + "documentation":"

A list of summary information records for VPC Ingress Connections. In a paginated request, the request returns up to MaxResults records for each call.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request.

" + } + } + }, "MaxResults":{ "type":"integer", "max":100, @@ -1757,6 +2000,10 @@ "EgressConfiguration":{ "shape":"EgressConfiguration", "documentation":"

Network configuration settings for outbound message traffic.

" + }, + "IngressConfiguration":{ + "shape":"IngressConfiguration", + "documentation":"

Network configuration settings for inbound message traffic.

" } }, "documentation":"

Describes configuration settings related to network traffic of an App Runner service. Consists of embedded objects for each configurable network feature.

" @@ -1974,7 +2221,12 @@ "NODEJS_12", "NODEJS_14", "CORRETTO_8", - "CORRETTO_11" + "CORRETTO_11", + "NODEJS_16", + "GO_1", + "DOTNET_6", + "PHP_81", + "RUBY_31" ] }, "RuntimeEnvironmentVariables":{ @@ -2002,7 +2254,6 @@ "ServiceName", "ServiceId", "ServiceArn", - "ServiceUrl", "CreatedAt", "UpdatedAt", "Status", @@ -2394,6 +2645,33 @@ } } }, + "UpdateVpcIngressConnectionRequest":{ + "type":"structure", + "required":[ + "VpcIngressConnectionArn", + "IngressVpcConfiguration" + ], + "members":{ + "VpcIngressConnectionArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (Arn) for the App Runner VPC Ingress Connection resource that you want to update.

" + }, + "IngressVpcConfiguration":{ + "shape":"IngressVpcConfiguration", + "documentation":"

Specifications for the customer’s Amazon VPC and the related Amazon Web Services PrivateLink VPC endpoint that are used to update the VPC Ingress Connection resource.

" + } + } + }, + "UpdateVpcIngressConnectionResponse":{ + "type":"structure", + "required":["VpcIngressConnection"], + "members":{ + "VpcIngressConnection":{ + "shape":"VpcIngressConnection", + "documentation":"

A description of the App Runner VPC Ingress Connection resource that's updated by this request.

" + } + } + }, "VpcConnector":{ "type":"structure", "members":{ @@ -2448,6 +2726,107 @@ "VpcConnectors":{ "type":"list", "member":{"shape":"VpcConnector"} + }, + "VpcDNSTarget":{ + "type":"structure", + "members":{ + "VpcIngressConnectionArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the VPC Ingress Connection that is associated with your service.

" + }, + "VpcId":{ + "shape":"String", + "documentation":"

The ID of the Amazon VPC that is associated with the custom domain name of the target DNS.

" + }, + "DomainName":{ + "shape":"DomainName", + "documentation":"

The domain name of your target DNS that is associated with the Amazon VPC.

" + } + }, + "documentation":"

DNS Target record for a custom domain of this Amazon VPC.

" + }, + "VpcDNSTargetList":{ + "type":"list", + "member":{"shape":"VpcDNSTarget"} + }, + "VpcIngressConnection":{ + "type":"structure", + "members":{ + "VpcIngressConnectionArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the VPC Ingress Connection.

" + }, + "VpcIngressConnectionName":{ + "shape":"VpcIngressConnectionName", + "documentation":"

The customer-provided VPC Ingress Connection name.

" + }, + "ServiceArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the service associated with the VPC Ingress Connection.

" + }, + "Status":{ + "shape":"VpcIngressConnectionStatus", + "documentation":"

The current status of the VPC Ingress Connection. The VPC Ingress Connection displays one of the following statuses: AVAILABLE, PENDING_CREATION, PENDING_UPDATE, PENDING_DELETION,FAILED_CREATION, FAILED_UPDATE, FAILED_DELETION, and DELETED..

" + }, + "AccountId":{ + "shape":"CustomerAccountId", + "documentation":"

The Account Id you use to create the VPC Ingress Connection resource.

" + }, + "DomainName":{ + "shape":"DomainName", + "documentation":"

The domain name associated with the VPC Ingress Connection resource.

" + }, + "IngressVpcConfiguration":{ + "shape":"IngressVpcConfiguration", + "documentation":"

Specifications for the customer’s VPC and related PrivateLink VPC endpoint that are used to associate with the VPC Ingress Connection resource.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The time when the VPC Ingress Connection was created. It's in the Unix time stamp format.

  • Type: Timestamp

  • Required: Yes

" + }, + "DeletedAt":{ + "shape":"Timestamp", + "documentation":"

The time when the App Runner service was deleted. It's in the Unix time stamp format.

  • Type: Timestamp

  • Required: No

" + } + }, + "documentation":"

The App Runner resource that specifies an App Runner endpoint for incoming traffic. It establishes a connection between a VPC interface endpoint and a App Runner service, to make your App Runner service accessible from only within an Amazon VPC.

" + }, + "VpcIngressConnectionName":{ + "type":"string", + "max":40, + "min":4, + "pattern":"[A-Za-z0-9][A-Za-z0-9\\-_]{3,39}" + }, + "VpcIngressConnectionStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "PENDING_CREATION", + "PENDING_UPDATE", + "PENDING_DELETION", + "FAILED_CREATION", + "FAILED_UPDATE", + "FAILED_DELETION", + "DELETED" + ] + }, + "VpcIngressConnectionSummary":{ + "type":"structure", + "members":{ + "VpcIngressConnectionArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the VPC Ingress Connection.

" + }, + "ServiceArn":{ + "shape":"AppRunnerResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the service associated with the VPC Ingress Connection.

" + } + }, + "documentation":"

Provides summary information about an VPC Ingress Connection, which includes its VPC Ingress Connection ARN and its associated Service ARN.

" + }, + "VpcIngressConnectionSummaryList":{ + "type":"list", + "member":{"shape":"VpcIngressConnectionSummary"} } }, "documentation":"App Runner

App Runner is an application service that provides a fast, simple, and cost-effective way to go directly from an existing container image or source code to a running service in the Amazon Web Services Cloud in seconds. You don't need to learn new technologies, decide which compute service to use, or understand how to provision and configure Amazon Web Services resources.

App Runner connects directly to your container registry or source code repository. It provides an automatic delivery pipeline with fully managed operations, high performance, scalability, and security.

For more information about App Runner, see the App Runner Developer Guide. For release information, see the App Runner Release Notes.

To install the Software Development Kits (SDKs), Integrated Development Environment (IDE) Toolkits, and command line tools that you can use to access the API, see Tools for Amazon Web Services.

Endpoints

For a list of Region-specific endpoints that App Runner supports, see App Runner endpoints and quotas in the Amazon Web Services General Reference.

" diff --git a/botocore/data/appstream/2016-12-01/endpoint-rule-set-1.json b/botocore/data/appstream/2016-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..a8beeb01 --- /dev/null +++ b/botocore/data/appstream/2016-12-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appstream2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appstream2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appstream2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://appstream2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/appstream/2016-12-01/service-2.json b/botocore/data/appstream/2016-12-01/service-2.json index 170dd56e..b8d06d6c 100644 --- a/botocore/data/appstream/2016-12-01/service-2.json +++ b/botocore/data/appstream/2016-12-01/service-2.json @@ -199,7 +199,7 @@ {"shape":"IncompatibleImageException"}, {"shape":"OperationNotPermittedException"} ], - "documentation":"

Creates a fleet. A fleet consists of streaming instances that run a specified image when using Always-On or On-Demand.

" + "documentation":"

Creates a fleet. A fleet consists of streaming instances that your users access for their applications and desktops.

" }, "CreateImageBuilder":{ "name":"CreateImageBuilder", @@ -976,7 +976,7 @@ {"shape":"IncompatibleImageException"}, {"shape":"OperationNotPermittedException"} ], - "documentation":"

Updates the specified fleet.

If the fleet is in the STOPPED state, you can update any attribute except the fleet name.

If the fleet is in the RUNNING state, you can update the following based on the fleet type:

  • Always-On and On-Demand fleet types

    You can update the DisplayName, ComputeCapacity, ImageARN, ImageName, IdleDisconnectTimeoutInSeconds, and DisconnectTimeoutInSeconds attributes.

  • Elastic fleet type

    You can update the DisplayName, IdleDisconnectTimeoutInSeconds, DisconnectTimeoutInSeconds, MaxConcurrentSessions, and UsbDeviceFilterStrings attributes.

If the fleet is in the STARTING or STOPPED state, you can't update it.

" + "documentation":"

Updates the specified fleet.

If the fleet is in the STOPPED state, you can update any attribute except the fleet name.

If the fleet is in the RUNNING state, you can update the following based on the fleet type:

  • Always-On and On-Demand fleet types

    You can update the DisplayName, ComputeCapacity, ImageARN, ImageName, IdleDisconnectTimeoutInSeconds, and DisconnectTimeoutInSeconds attributes.

  • Elastic fleet type

    You can update the DisplayName, IdleDisconnectTimeoutInSeconds, DisconnectTimeoutInSeconds, MaxConcurrentSessions, SessionScriptS3Location and UsbDeviceFilterStrings attributes.

If the fleet is in the STARTING or STOPPED state, you can't update it.

" }, "UpdateImagePermissions":{ "name":"UpdateImagePermissions", @@ -1346,7 +1346,8 @@ "enum":[ "API", "SAML", - "USERPOOL" + "USERPOOL", + "AWS_AD" ] }, "AwsAccountId":{ @@ -1399,6 +1400,28 @@ }, "Boolean":{"type":"boolean"}, "BooleanObject":{"type":"boolean"}, + "CertificateBasedAuthProperties":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"CertificateBasedAuthStatus", + "documentation":"

The status of the certificate-based authentication properties.

" + }, + "CertificateAuthorityArn":{ + "shape":"Arn", + "documentation":"

The ARN of the AWS Certificate Manager Private CA resource.

" + } + }, + "documentation":"

The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is Enabled . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. Enabled_no_directory_login_fallback enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.

" + }, + "CertificateBasedAuthStatus":{ + "type":"string", + "enum":[ + "DISABLED", + "ENABLED", + "ENABLED_NO_DIRECTORY_LOGIN_FALLBACK" + ] + }, "ComputeCapacity":{ "type":"structure", "required":["DesiredInstances"], @@ -1600,6 +1623,10 @@ "ServiceAccountCredentials":{ "shape":"ServiceAccountCredentials", "documentation":"

The credentials for the service account used by the fleet or image builder to connect to the directory.

" + }, + "CertificateBasedAuthProperties":{ + "shape":"CertificateBasedAuthProperties", + "documentation":"

The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is Enabled . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. Enabled_no_directory_login_fallback enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.

" } } }, @@ -1673,7 +1700,7 @@ }, "InstanceType":{ "shape":"String", - "documentation":"

The instance type to use when launching fleet instances. The following instance types are available:

  • stream.standard.small

  • stream.standard.medium

  • stream.standard.large

  • stream.compute.large

  • stream.compute.xlarge

  • stream.compute.2xlarge

  • stream.compute.4xlarge

  • stream.compute.8xlarge

  • stream.memory.large

  • stream.memory.xlarge

  • stream.memory.2xlarge

  • stream.memory.4xlarge

  • stream.memory.8xlarge

  • stream.memory.z1d.large

  • stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

  • stream.memory.z1d.3xlarge

  • stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

  • stream.graphics-design.large

  • stream.graphics-design.xlarge

  • stream.graphics-design.2xlarge

  • stream.graphics-design.4xlarge

  • stream.graphics-desktop.2xlarge

  • stream.graphics.g4dn.xlarge

  • stream.graphics.g4dn.2xlarge

  • stream.graphics.g4dn.4xlarge

  • stream.graphics.g4dn.8xlarge

  • stream.graphics.g4dn.12xlarge

  • stream.graphics.g4dn.16xlarge

  • stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

  • stream.graphics-pro.16xlarge

The following instance types are available for Elastic fleets:

  • stream.standard.small

  • stream.standard.medium

" + "documentation":"

The instance type to use when launching fleet instances. The following instance types are available:

  • stream.standard.small

  • stream.standard.medium

  • stream.standard.large

  • stream.standard.xlarge

  • stream.standard.2xlarge

  • stream.compute.large

  • stream.compute.xlarge

  • stream.compute.2xlarge

  • stream.compute.4xlarge

  • stream.compute.8xlarge

  • stream.memory.large

  • stream.memory.xlarge

  • stream.memory.2xlarge

  • stream.memory.4xlarge

  • stream.memory.8xlarge

  • stream.memory.z1d.large

  • stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

  • stream.memory.z1d.3xlarge

  • stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

  • stream.graphics-design.large

  • stream.graphics-design.xlarge

  • stream.graphics-design.2xlarge

  • stream.graphics-design.4xlarge

  • stream.graphics-desktop.2xlarge

  • stream.graphics.g4dn.xlarge

  • stream.graphics.g4dn.2xlarge

  • stream.graphics.g4dn.4xlarge

  • stream.graphics.g4dn.8xlarge

  • stream.graphics.g4dn.12xlarge

  • stream.graphics.g4dn.16xlarge

  • stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

  • stream.graphics-pro.16xlarge

The following instance types are available for Elastic fleets:

  • stream.standard.small

  • stream.standard.medium

  • stream.standard.large

  • stream.standard.xlarge

  • stream.standard.2xlarge

" }, "FleetType":{ "shape":"FleetType", @@ -1898,6 +1925,10 @@ "EmbedHostDomains":{ "shape":"EmbedHostDomains", "documentation":"

The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.

" + }, + "StreamingExperienceSettings":{ + "shape":"StreamingExperienceSettings", + "documentation":"

The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.

" } } }, @@ -2729,6 +2760,10 @@ "CreatedTime":{ "shape":"Timestamp", "documentation":"

The time the directory configuration was created.

" + }, + "CertificateBasedAuthProperties":{ + "shape":"CertificateBasedAuthProperties", + "documentation":"

The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is Enabled . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. Enabled_no_directory_login_fallback enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.

" } }, "documentation":"

Describes the configuration information required to join fleets and image builders to Microsoft Active Directory domains.

" @@ -3708,6 +3743,13 @@ "member":{"shape":"PlatformType"}, "max":4 }, + "PreferredProtocol":{ + "type":"string", + "enum":[ + "TCP", + "UDP" + ] + }, "RedirectURL":{ "type":"string", "max":1000 @@ -4020,6 +4062,10 @@ "EmbedHostDomains":{ "shape":"EmbedHostDomains", "documentation":"

The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.

" + }, + "StreamingExperienceSettings":{ + "shape":"StreamingExperienceSettings", + "documentation":"

The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.

" } }, "documentation":"

Describes a stack.

" @@ -4037,7 +4083,8 @@ "USER_SETTINGS", "EMBED_HOST_DOMAINS", "IAM_ROLE_ARN", - "ACCESS_ENDPOINTS" + "ACCESS_ENDPOINTS", + "STREAMING_EXPERIENCE_SETTINGS" ] }, "StackAttributes":{ @@ -4187,6 +4234,16 @@ "DESKTOP" ] }, + "StreamingExperienceSettings":{ + "type":"structure", + "members":{ + "PreferredProtocol":{ + "shape":"PreferredProtocol", + "documentation":"

The preferred protocol that you want to use while streaming your application.

" + } + }, + "documentation":"

The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.

" + }, "StreamingUrlUserId":{ "type":"string", "max":32, @@ -4339,6 +4396,10 @@ "ServiceAccountCredentials":{ "shape":"ServiceAccountCredentials", "documentation":"

The credentials for the service account used by the fleet or image builder to connect to the directory.

" + }, + "CertificateBasedAuthProperties":{ + "shape":"CertificateBasedAuthProperties", + "documentation":"

The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is Enabled . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. Enabled_no_directory_login_fallback enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.

" } } }, @@ -4406,7 +4467,7 @@ }, "InstanceType":{ "shape":"String", - "documentation":"

The instance type to use when launching fleet instances. The following instance types are available:

  • stream.standard.small

  • stream.standard.medium

  • stream.standard.large

  • stream.compute.large

  • stream.compute.xlarge

  • stream.compute.2xlarge

  • stream.compute.4xlarge

  • stream.compute.8xlarge

  • stream.memory.large

  • stream.memory.xlarge

  • stream.memory.2xlarge

  • stream.memory.4xlarge

  • stream.memory.8xlarge

  • stream.memory.z1d.large

  • stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

  • stream.memory.z1d.3xlarge

  • stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

  • stream.graphics-design.large

  • stream.graphics-design.xlarge

  • stream.graphics-design.2xlarge

  • stream.graphics-design.4xlarge

  • stream.graphics-desktop.2xlarge

  • stream.graphics.g4dn.xlarge

  • stream.graphics.g4dn.2xlarge

  • stream.graphics.g4dn.4xlarge

  • stream.graphics.g4dn.8xlarge

  • stream.graphics.g4dn.12xlarge

  • stream.graphics.g4dn.16xlarge

  • stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

  • stream.graphics-pro.16xlarge

The following instance types are available for Elastic fleets:

  • stream.standard.small

  • stream.standard.medium

" + "documentation":"

The instance type to use when launching fleet instances. The following instance types are available:

  • stream.standard.small

  • stream.standard.medium

  • stream.standard.large

  • stream.standard.xlarge

  • stream.standard.2xlarge

  • stream.compute.large

  • stream.compute.xlarge

  • stream.compute.2xlarge

  • stream.compute.4xlarge

  • stream.compute.8xlarge

  • stream.memory.large

  • stream.memory.xlarge

  • stream.memory.2xlarge

  • stream.memory.4xlarge

  • stream.memory.8xlarge

  • stream.memory.z1d.large

  • stream.memory.z1d.xlarge

  • stream.memory.z1d.2xlarge

  • stream.memory.z1d.3xlarge

  • stream.memory.z1d.6xlarge

  • stream.memory.z1d.12xlarge

  • stream.graphics-design.large

  • stream.graphics-design.xlarge

  • stream.graphics-design.2xlarge

  • stream.graphics-design.4xlarge

  • stream.graphics-desktop.2xlarge

  • stream.graphics.g4dn.xlarge

  • stream.graphics.g4dn.2xlarge

  • stream.graphics.g4dn.4xlarge

  • stream.graphics.g4dn.8xlarge

  • stream.graphics.g4dn.12xlarge

  • stream.graphics.g4dn.16xlarge

  • stream.graphics-pro.4xlarge

  • stream.graphics-pro.8xlarge

  • stream.graphics-pro.16xlarge

The following instance types are available for Elastic fleets:

  • stream.standard.small

  • stream.standard.medium

  • stream.standard.large

  • stream.standard.xlarge

  • stream.standard.2xlarge

" }, "ComputeCapacity":{ "shape":"ComputeCapacity", @@ -4567,6 +4628,10 @@ "EmbedHostDomains":{ "shape":"EmbedHostDomains", "documentation":"

The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.

" + }, + "StreamingExperienceSettings":{ + "shape":"StreamingExperienceSettings", + "documentation":"

The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.

" } } }, diff --git a/botocore/data/appsync/2017-07-25/endpoint-rule-set-1.json b/botocore/data/appsync/2017-07-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..6919bc2e --- /dev/null +++ b/botocore/data/appsync/2017-07-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appsync-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appsync-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://appsync.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://appsync.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/appsync/2017-07-25/service-2.json b/botocore/data/appsync/2017-07-25/service-2.json index d0bfdf74..fe521403 100644 --- a/botocore/data/appsync/2017-07-25/service-2.json +++ b/botocore/data/appsync/2017-07-25/service-2.json @@ -144,7 +144,8 @@ {"shape":"ConcurrentModificationException"}, {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"BadRequestException"} ], "documentation":"

Creates a Resolver object.

A resolver converts incoming requests into a format that a data source can understand, and converts the data source's responses into GraphQL.

" }, @@ -278,7 +279,8 @@ {"shape":"ConcurrentModificationException"}, {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"BadRequestException"} ], "documentation":"

Deletes a Resolver object.

" }, @@ -316,6 +318,36 @@ ], "documentation":"

Removes an ApiAssociation object from a custom domain.

" }, + "EvaluateCode":{ + "name":"EvaluateCode", + "http":{ + "method":"POST", + "requestUri":"/v1/dataplane-evaluatecode" + }, + "input":{"shape":"EvaluateCodeRequest"}, + "output":{"shape":"EvaluateCodeResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalFailureException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Evaluates the given code and returns the response. The code definition requirements depend on the specified runtime. For APPSYNC_JS runtimes, the code defines the request and response functions. The request function takes the incoming request after a GraphQL operation is parsed and converts it into a request configuration for the selected data source operation. The response function interprets responses from the data source and maps it to the shape of the GraphQL field output type.

" + }, + "EvaluateMappingTemplate":{ + "name":"EvaluateMappingTemplate", + "http":{ + "method":"POST", + "requestUri":"/v1/dataplane-evaluatetemplate" + }, + "input":{"shape":"EvaluateMappingTemplateRequest"}, + "output":{"shape":"EvaluateMappingTemplateResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalFailureException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Evaluates a given template and returns the response. The mapping template can be a request or response template.

Request templates take the incoming request after a GraphQL operation is parsed and convert it into a request configuration for the selected data source operation. Response templates interpret responses from the data source and map it to the shape of the GraphQL field output type.

Mapping templates are written in the Apache Velocity Template Language (VTL).

" + }, "FlushApiCache":{ "name":"FlushApiCache", "http":{ @@ -808,7 +840,8 @@ {"shape":"ConcurrentModificationException"}, {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"}, - {"shape":"InternalFailureException"} + {"shape":"InternalFailureException"}, + {"shape":"BadRequestException"} ], "documentation":"

Updates a Resolver object.

" }, @@ -1008,6 +1041,24 @@ "error":{"httpStatusCode":400}, "exception":true }, + "AppSyncRuntime":{ + "type":"structure", + "required":[ + "name", + "runtimeVersion" + ], + "members":{ + "name":{ + "shape":"RuntimeName", + "documentation":"

The name of the runtime to use. Currently, the only allowed value is APPSYNC_JS.

" + }, + "runtimeVersion":{ + "shape":"String", + "documentation":"

The version of the runtime to use. Currently, the only allowed version is 1.0.0.

" + } + }, + "documentation":"

Describes a runtime used by an Amazon Web Services AppSync pipeline resolver or Amazon Web Services AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified.

" + }, "AssociateApiRequest":{ "type":"structure", "required":[ @@ -1087,20 +1138,38 @@ }, "documentation":"

The Identity and Access Management (IAM) configuration.

" }, + "BadRequestDetail":{ + "type":"structure", + "members":{ + "codeErrors":{ + "shape":"CodeErrors", + "documentation":"

Contains the list of errors in the request.

" + } + }, + "documentation":"

Provides further details for the reason behind the bad request. For reason type CODE_ERROR, the detail will contain a list of code errors.

" + }, "BadRequestException":{ "type":"structure", "members":{ - "message":{"shape":"ErrorMessage"} + "message":{"shape":"ErrorMessage"}, + "reason":{"shape":"BadRequestReason"}, + "detail":{"shape":"BadRequestDetail"} }, "documentation":"

The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and then try again.

", "error":{"httpStatusCode":400}, "exception":true }, + "BadRequestReason":{ + "type":"string", + "documentation":"

Provides context for the cause of the bad request. The only supported value is CODE_ERROR.

", + "enum":["CODE_ERROR"] + }, "Blob":{"type":"blob"}, "Boolean":{"type":"boolean"}, "BooleanValue":{"type":"boolean"}, "CachingConfig":{ "type":"structure", + "required":["ttl"], "members":{ "ttl":{ "shape":"Long", @@ -1123,6 +1192,54 @@ "min":20, "pattern":"^arn:[a-z-]*:(acm|iam):[a-z0-9-]*:\\d{12}:(certificate|server-certificate)/[0-9A-Za-z_/-]*$" }, + "Code":{ + "type":"string", + "max":32768, + "min":1 + }, + "CodeError":{ + "type":"structure", + "members":{ + "errorType":{ + "shape":"String", + "documentation":"

The type of code error.

Examples include, but aren't limited to: LINT_ERROR, PARSER_ERROR.

" + }, + "value":{ + "shape":"String", + "documentation":"

A user presentable error.

Examples include, but aren't limited to: Parsing error: Unterminated string literal.

" + }, + "location":{ + "shape":"CodeErrorLocation", + "documentation":"

The line, column, and span location of the error in the code.

" + } + }, + "documentation":"

Describes an AppSync error.

" + }, + "CodeErrorColumn":{"type":"integer"}, + "CodeErrorLine":{"type":"integer"}, + "CodeErrorLocation":{ + "type":"structure", + "members":{ + "line":{ + "shape":"CodeErrorLine", + "documentation":"

The line number in the code. Defaults to 0 if unknown.

" + }, + "column":{ + "shape":"CodeErrorColumn", + "documentation":"

The column number in the code. Defaults to 0 if unknown.

" + }, + "span":{ + "shape":"CodeErrorSpan", + "documentation":"

The span/length of the error. Defaults to -1 if unknown.

" + } + }, + "documentation":"

Describes the location of the error in a code sample.

" + }, + "CodeErrorSpan":{"type":"integer"}, + "CodeErrors":{ + "type":"list", + "member":{"shape":"CodeError"} + }, "CognitoUserPoolConfig":{ "type":"structure", "required":[ @@ -1140,7 +1257,7 @@ }, "appIdClientRegex":{ "shape":"String", - "documentation":"

A regular expression for validating the incoming Amazon Cognito user pool app client ID.

" + "documentation":"

A regular expression for validating the incoming Amazon Cognito user pool app client ID. If this value isn't set, no filtering is applied.

" } }, "documentation":"

Describes an Amazon Cognito user pool configuration.

" @@ -1170,6 +1287,12 @@ "NONE" ] }, + "Context":{ + "type":"string", + "max":28000, + "min":2, + "pattern":"^[\\s\\S]*$" + }, "CreateApiCacheRequest":{ "type":"structure", "required":[ @@ -1347,8 +1470,7 @@ "required":[ "apiId", "name", - "dataSourceName", - "functionVersion" + "dataSourceName" ], "members":{ "apiId":{ @@ -1379,12 +1501,17 @@ }, "functionVersion":{ "shape":"String", - "documentation":"

The version of the request mapping template. Currently, the supported value is 2018-05-29.

" + "documentation":"

The version of the request mapping template. Currently, the supported value is 2018-05-29. Note that when using VTL and mapping templates, the functionVersion is required.

" }, "syncConfig":{"shape":"SyncConfig"}, "maxBatchSize":{ "shape":"MaxBatchSize", "documentation":"

The maximum batching size for a resolver.

" + }, + "runtime":{"shape":"AppSyncRuntime"}, + "code":{ + "shape":"Code", + "documentation":"

The function code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

" } } }, @@ -1506,6 +1633,11 @@ "maxBatchSize":{ "shape":"MaxBatchSize", "documentation":"

The maximum batching size for a resolver.

" + }, + "runtime":{"shape":"AppSyncRuntime"}, + "code":{ + "shape":"Code", + "documentation":"

The resolver code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

" } } }, @@ -1939,7 +2071,114 @@ }, "documentation":"

Describes an OpenSearch data source configuration.

As of September 2021, Amazon Elasticsearch service is Amazon OpenSearch Service. This configuration is deprecated. For new data sources, use OpenSearchServiceDataSourceConfig to specify an OpenSearch data source.

" }, + "ErrorDetail":{ + "type":"structure", + "members":{ + "message":{ + "shape":"ErrorMessage", + "documentation":"

The error payload.

" + } + }, + "documentation":"

Contains the list of errors generated. When using JavaScript, this will apply to the request or response function evaluation.

" + }, "ErrorMessage":{"type":"string"}, + "EvaluateCodeErrorDetail":{ + "type":"structure", + "members":{ + "message":{ + "shape":"ErrorMessage", + "documentation":"

The error payload.

" + }, + "codeErrors":{ + "shape":"CodeErrors", + "documentation":"

Contains the list of CodeError objects.

" + } + }, + "documentation":"

Contains the list of errors from a code evaluation response.

" + }, + "EvaluateCodeRequest":{ + "type":"structure", + "required":[ + "runtime", + "code", + "context" + ], + "members":{ + "runtime":{ + "shape":"AppSyncRuntime", + "documentation":"

The runtime to be used when evaluating the code. Currently, only the APPSYNC_JS runtime is supported.

" + }, + "code":{ + "shape":"Code", + "documentation":"

The code definition to be evaluated. Note that code and runtime are both required for this action. The runtime value must be APPSYNC_JS.

" + }, + "context":{ + "shape":"Context", + "documentation":"

The map that holds all of the contextual information for your resolver invocation. A context is required for this action.

" + }, + "function":{ + "shape":"String", + "documentation":"

The function within the code to be evaluated. If provided, the valid values are request and response.

" + } + } + }, + "EvaluateCodeResponse":{ + "type":"structure", + "members":{ + "evaluationResult":{ + "shape":"EvaluationResult", + "documentation":"

The result of the evaluation operation.

" + }, + "error":{ + "shape":"EvaluateCodeErrorDetail", + "documentation":"

Contains the payload of the response error.

" + }, + "logs":{ + "shape":"Logs", + "documentation":"

A list of logs that were generated by calls to util.log.info and util.log.error in the evaluated code.

" + } + } + }, + "EvaluateMappingTemplateRequest":{ + "type":"structure", + "required":[ + "template", + "context" + ], + "members":{ + "template":{ + "shape":"Template", + "documentation":"

The mapping template; this can be a request or response template. A template is required for this action.

" + }, + "context":{ + "shape":"Context", + "documentation":"

The map that holds all of the contextual information for your resolver invocation. A context is required for this action.

" + } + } + }, + "EvaluateMappingTemplateResponse":{ + "type":"structure", + "members":{ + "evaluationResult":{ + "shape":"EvaluationResult", + "documentation":"

The mapping template; this can be a request or response template.

" + }, + "error":{ + "shape":"ErrorDetail", + "documentation":"

The ErrorDetail object.

" + }, + "logs":{ + "shape":"Logs", + "documentation":"

A list of logs that were generated by calls to util.log.info and util.log.error in the evaluated code.

" + } + } + }, + "EvaluationResult":{ + "type":"string", + "max":65536, + "min":0, + "pattern":"^[\\s\\S]*$" + }, "FieldLogLevel":{ "type":"string", "enum":[ @@ -2006,6 +2245,11 @@ "maxBatchSize":{ "shape":"MaxBatchSize", "documentation":"

The maximum batching size for a resolver.

" + }, + "runtime":{"shape":"AppSyncRuntime"}, + "code":{ + "shape":"Code", + "documentation":"

The function code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

" } }, "documentation":"

A function is a reusable entity. You can use multiple functions to compose the resolver logic.

" @@ -2796,6 +3040,10 @@ }, "documentation":"

The Amazon CloudWatch Logs configuration.

" }, + "Logs":{ + "type":"list", + "member":{"shape":"String"} + }, "Long":{"type":"long"}, "MapOfStringToString":{ "type":"map", @@ -2981,6 +3229,11 @@ "maxBatchSize":{ "shape":"MaxBatchSize", "documentation":"

The maximum batching size for a resolver.

" + }, + "runtime":{"shape":"AppSyncRuntime"}, + "code":{ + "shape":"Code", + "documentation":"

The resolver code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

" } }, "documentation":"

Describes a resolver.

" @@ -3008,6 +3261,10 @@ "min":1, "pattern":"[_A-Za-z][_0-9A-Za-z]*" }, + "RuntimeName":{ + "type":"string", + "enum":["APPSYNC_JS"] + }, "SchemaStatus":{ "type":"string", "enum":[ @@ -3122,6 +3379,12 @@ "max":256, "pattern":"^[\\s\\w+-=\\.:/@]*$" }, + "Template":{ + "type":"string", + "max":65536, + "min":2, + "pattern":"^[\\s\\S]*$" + }, "Type":{ "type":"structure", "members":{ @@ -3370,8 +3633,7 @@ "apiId", "name", "functionId", - "dataSourceName", - "functionVersion" + "dataSourceName" ], "members":{ "apiId":{ @@ -3408,12 +3670,17 @@ }, "functionVersion":{ "shape":"String", - "documentation":"

The version of the request mapping template. Currently, the supported value is 2018-05-29.

" + "documentation":"

The version of the request mapping template. Currently, the supported value is 2018-05-29. Note that when using VTL and mapping templates, the functionVersion is required.

" }, "syncConfig":{"shape":"SyncConfig"}, "maxBatchSize":{ "shape":"MaxBatchSize", "documentation":"

The maximum batching size for a resolver.

" + }, + "runtime":{"shape":"AppSyncRuntime"}, + "code":{ + "shape":"Code", + "documentation":"

The function code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

" } } }, @@ -3539,6 +3806,11 @@ "maxBatchSize":{ "shape":"MaxBatchSize", "documentation":"

The maximum batching size for a resolver.

" + }, + "runtime":{"shape":"AppSyncRuntime"}, + "code":{ + "shape":"Code", + "documentation":"

The resolver code that contains the request and response functions. When code is used, the runtime is required. The runtime value must be APPSYNC_JS.

" } } }, @@ -3612,7 +3884,7 @@ }, "appIdClientRegex":{ "shape":"String", - "documentation":"

A regular expression for validating the incoming Amazon Cognito user pool app client ID.

" + "documentation":"

A regular expression for validating the incoming Amazon Cognito user pool app client ID. If this value isn't set, no filtering is applied.

" } }, "documentation":"

Describes an Amazon Cognito user pool configuration.

" diff --git a/botocore/data/arc-zonal-shift/2022-10-30/endpoint-rule-set-1.json b/botocore/data/arc-zonal-shift/2022-10-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..bc46f960 --- /dev/null +++ b/botocore/data/arc-zonal-shift/2022-10-30/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://arc-zonal-shift-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://arc-zonal-shift-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://arc-zonal-shift.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://arc-zonal-shift.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/arc-zonal-shift/2022-10-30/paginators-1.json b/botocore/data/arc-zonal-shift/2022-10-30/paginators-1.json new file mode 100644 index 00000000..881e618b --- /dev/null +++ b/botocore/data/arc-zonal-shift/2022-10-30/paginators-1.json @@ -0,0 +1,16 @@ +{ + "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" + } + } +} diff --git a/botocore/data/arc-zonal-shift/2022-10-30/service-2.json b/botocore/data/arc-zonal-shift/2022-10-30/service-2.json new file mode 100644 index 00000000..33984bfb --- /dev/null +++ b/botocore/data/arc-zonal-shift/2022-10-30/service-2.json @@ -0,0 +1,638 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-10-30", + "endpointPrefix":"arc-zonal-shift", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS ARC - Zonal Shift", + "serviceId":"ARC Zonal Shift", + "signatureVersion":"v4", + "signingName":"arc-zonal-shift", + "uid":"arc-zonal-shift-2022-10-30" + }, + "operations":{ + "CancelZonalShift":{ + "name":"CancelZonalShift", + "http":{ + "method":"DELETE", + "requestUri":"/zonalshifts/{zonalShiftId}", + "responseCode":200 + }, + "input":{"shape":"CancelZonalShiftRequest"}, + "output":{"shape":"ZonalShift"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Cancel a zonal shift in Amazon Route 53 Application Recovery Controller that you've started for a resource in your AWS account in an AWS Region.

" + }, + "GetManagedResource":{ + "name":"GetManagedResource", + "http":{ + "method":"GET", + "requestUri":"/managedresources/{resourceIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetManagedResourceRequest"}, + "output":{"shape":"GetManagedResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Get information about a resource that's been registered for zonal shifts with Amazon Route 53 Application Recovery Controller in this AWS Region. Resources that are registered for zonal shifts are managed resources in Route 53 ARC.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" + }, + "ListManagedResources":{ + "name":"ListManagedResources", + "http":{ + "method":"GET", + "requestUri":"/managedresources", + "responseCode":200 + }, + "input":{"shape":"ListManagedResourcesRequest"}, + "output":{"shape":"ListManagedResourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all the resources in your AWS account in this AWS Region that are managed for zonal shifts in Amazon Route 53 Application Recovery Controller, and information about them. The information includes their Amazon Resource Names (ARNs), the Availability Zones the resources are deployed in, and the resource name.

" + }, + "ListZonalShifts":{ + "name":"ListZonalShifts", + "http":{ + "method":"GET", + "requestUri":"/zonalshifts", + "responseCode":200 + }, + "input":{"shape":"ListZonalShiftsRequest"}, + "output":{"shape":"ListZonalShiftsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all the active zonal shifts in Amazon Route 53 Application Recovery Controller in your AWS account in this AWS Region.

" + }, + "StartZonalShift":{ + "name":"StartZonalShift", + "http":{ + "method":"POST", + "requestUri":"/zonalshifts", + "responseCode":201 + }, + "input":{"shape":"StartZonalShiftRequest"}, + "output":{"shape":"ZonalShift"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

You start a zonal shift to temporarily move load balancer traffic away from an Availability Zone in a AWS Region, to help your application recover immediately, for example, from a developer's bad code deployment or from an AWS infrastructure failure in a single Availability Zone. You can start a zonal shift in Route 53 ARC only for managed resources in your account in an AWS Region. Resources are automatically registered with Route 53 ARC by AWS services.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

When you start a zonal shift, traffic for the resource is no longer routed to the Availability Zone. The zonal shift is created immediately in Route 53 ARC. However, it can take a short time, typically up to a few minutes, for existing, in-progress connections in the Availability Zone to complete.

For more information, see Zonal shift in the Amazon Route 53 Application Recovery Controller Developer Guide.

" + }, + "UpdateZonalShift":{ + "name":"UpdateZonalShift", + "http":{ + "method":"PATCH", + "requestUri":"/zonalshifts/{zonalShiftId}", + "responseCode":200 + }, + "input":{"shape":"UpdateZonalShiftRequest"}, + "output":{"shape":"ZonalShift"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Update an active zonal shift in Amazon Route 53 Application Recovery Controller in your AWS account. You can update a zonal shift to set a new expiration, or edit or replace the comment for the zonal shift.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You do not have sufficient access to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AppliedStatus":{ + "type":"string", + "enum":[ + "APPLIED", + "NOT_APPLIED" + ] + }, + "AppliedWeights":{ + "type":"map", + "key":{"shape":"AvailabilityZone"}, + "value":{"shape":"Weight"} + }, + "AvailabilityZone":{ + "type":"string", + "max":20, + "min":0 + }, + "AvailabilityZones":{ + "type":"list", + "member":{"shape":"AvailabilityZone"} + }, + "CancelZonalShiftRequest":{ + "type":"structure", + "required":["zonalShiftId"], + "members":{ + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The internally-generated identifier of a zonal shift.

", + "location":"uri", + "locationName":"zonalShiftId" + } + } + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "message":{"shape":"String"}, + "reason":{ + "shape":"ConflictExceptionReason", + "documentation":"

The reason for the conflict exception.

" + }, + "zonalShiftId":{ + "shape":"String", + "documentation":"

The zonal shift ID associated with the conflict exception.

" + } + }, + "documentation":"

The request could not be processed because of conflict in the current state of the resource.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ConflictExceptionReason":{ + "type":"string", + "enum":[ + "ZonalShiftAlreadyExists", + "ZonalShiftStatusNotActive", + "SimultaneousZonalShiftsConflict" + ] + }, + "ExpiresIn":{ + "type":"string", + "max":5, + "min":2, + "pattern":"^([1-9][0-9]*)(m|h)$" + }, + "ExpiryTime":{"type":"timestamp"}, + "GetManagedResourceRequest":{ + "type":"structure", + "required":["resourceIdentifier"], + "members":{ + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

", + "location":"uri", + "locationName":"resourceIdentifier" + } + } + }, + "GetManagedResourceResponse":{ + "type":"structure", + "required":[ + "appliedWeights", + "zonalShifts" + ], + "members":{ + "appliedWeights":{ + "shape":"AppliedWeights", + "documentation":"

A collection of key-value pairs that indicate whether resources are active in Availability Zones or not. The key name is the Availability Zone where the resource is deployed. The value is 1 or 0.

" + }, + "arn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) for the resource.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the resource.

" + }, + "zonalShifts":{ + "shape":"ZonalShiftsInResource", + "documentation":"

The zonal shifts that are currently active for a resource.

" + } + } + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

There was an internal server error.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListManagedResourcesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The number of objects that you want to return with this call.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"String", + "documentation":"

Specifies that you want to receive the next page of results. Valid only if you received a NextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's NextToken response to request the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListManagedResourcesResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"ManagedResourceSummaries", + "documentation":"

The items in the response list.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

Specifies that you want to receive the next page of results. Valid only if you received a NextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's NextToken response to request the next page of results.

" + } + } + }, + "ListZonalShiftsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The number of objects that you want to return with this call.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"String", + "documentation":"

Specifies that you want to receive the next page of results. Valid only if you received a NextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's NextToken response to request the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "status":{ + "shape":"ZonalShiftStatus", + "documentation":"

A status for a zonal shift.

The Status for a zonal shift can have one of the following values:

  • ACTIVE: The zonal shift is started and active.

  • EXPIRED: The zonal shift has expired (the expiry time was exceeded).

  • CANCELED: The zonal shift was canceled.

", + "location":"querystring", + "locationName":"status" + } + } + }, + "ListZonalShiftsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"ZonalShiftSummaries", + "documentation":"

The items in the response list.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

Specifies that you want to receive the next page of results. Valid only if you received a NextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's NextToken response to request the next page of results.

" + } + } + }, + "ManagedResourceSummaries":{ + "type":"list", + "member":{"shape":"ManagedResourceSummary"} + }, + "ManagedResourceSummary":{ + "type":"structure", + "required":["availabilityZones"], + "members":{ + "arn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) for the managed resource.

" + }, + "availabilityZones":{ + "shape":"AvailabilityZones", + "documentation":"

The Availability Zones that a resource is deployed in.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the managed resource.

" + } + }, + "documentation":"

A complex structure for a managed resource in an account.

A managed resource is a Network Load Balancer or Application Load Balancer that has been registered with Route 53 ARC by Elastic Load Balancing. You can start a zonal shift in Route 53 ARC for a managed resource to temporarily move traffic for the resource away from an Availability Zone in an AWS Region.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ResourceArn":{ + "type":"string", + "max":1024, + "min":8, + "pattern":"^arn:.*$" + }, + "ResourceIdentifier":{ + "type":"string", + "max":1024, + "min":8 + }, + "ResourceName":{ + "type":"string", + "max":256, + "min":1 + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The input requested a resource that was not found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "StartTime":{"type":"timestamp"}, + "StartZonalShiftRequest":{ + "type":"structure", + "required":[ + "awayFrom", + "comment", + "expiresIn", + "resourceIdentifier" + ], + "members":{ + "awayFrom":{ + "shape":"AvailabilityZone", + "documentation":"

The Availability Zone that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the AWS Region.

" + }, + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.

" + }, + "expiresIn":{ + "shape":"ExpiresIn", + "documentation":"

The length of time that you want a zonal shift to be active, which Route 53 ARC converts to an expiry time (expiration time). Zonal shifts are temporary. You can set a zonal shift to be active initially for up to three days (72 hours).

If you want to still keep traffic away from an Availability Zone, you can update the zonal shift and set a new expiration. You can also cancel a zonal shift, before it expires, for example, if you're ready to restore traffic to the Availability Zone.

To set a length of time for a zonal shift to be active, specify a whole number, and then one of the following, with no space:

 <ul> <li> <p> <b>A lowercase letter m:</b> To specify that the value is in minutes.</p> </li> <li> <p> <b>A lowercase letter h:</b> To specify that the value is in hours.</p> </li> </ul> <p>For example: <code>20h</code> means the zonal shift expires in 20 hours. <code>120m</code> means the zonal shift expires in 120 minutes (2 hours).</p> 
" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" + } + } + }, + "String":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "UpdateZonalShiftRequest":{ + "type":"structure", + "required":["zonalShiftId"], + "members":{ + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.

" + }, + "expiresIn":{ + "shape":"ExpiresIn", + "documentation":"

The length of time that you want a zonal shift to be active, which Route 53 ARC converts to an expiry time (expiration time). Zonal shifts are temporary. You can set a zonal shift to be active initially for up to three days (72 hours).

If you want to still keep traffic away from an Availability Zone, you can update the zonal shift and set a new expiration. You can also cancel a zonal shift, before it expires, for example, if you're ready to restore traffic to the Availability Zone.

To set a length of time for a zonal shift to be active, specify a whole number, and then one of the following, with no space:

  • A lowercase letter m: To specify that the value is in minutes.

  • A lowercase letter h: To specify that the value is in hours.

For example: 20h means the zonal shift expires in 20 hours. 120m means the zonal shift expires in 120 minutes (2 hours).

" + }, + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a zonal shift.

", + "location":"uri", + "locationName":"zonalShiftId" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "message":{"shape":"String"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

The reason for the validation exception.

" + } + }, + "documentation":"

The input fails to satisfy the constraints specified by an AWS service.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "InvalidExpiresIn", + "InvalidStatus", + "MissingValue", + "InvalidToken", + "InvalidResourceIdentifier", + "InvalidAz", + "UnsupportedAz" + ] + }, + "Weight":{ + "type":"float", + "box":true, + "max":1.0, + "min":0.0 + }, + "ZonalShift":{ + "type":"structure", + "required":[ + "awayFrom", + "comment", + "expiryTime", + "resourceIdentifier", + "startTime", + "status", + "zonalShiftId" + ], + "members":{ + "awayFrom":{ + "shape":"AvailabilityZone", + "documentation":"

The Availability Zone that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the AWS Region.

" + }, + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. A new comment overwrites any existing comment string.

" + }, + "expiryTime":{ + "shape":"ExpiryTime", + "documentation":"

The expiry time (expiration time) for the zonal shift. A zonal shift is temporary and must be set to expire when you start the zonal shift. You can initially set a zonal shift to expire in a maximum of three days (72 hours). However, you can update a zonal shift to set a new expiration at any time.

When you start a zonal shift, you specify how long you want it to be active, which Route 53 ARC converts to an expiry time (expiration time). You can cancel a zonal shift, for example, if you're ready to restore traffic to the Availability Zone. Or you can update the zonal shift to specify another length of time to expire in.

" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" + }, + "startTime":{ + "shape":"StartTime", + "documentation":"

The time (UTC) when the zonal shift is started.

" + }, + "status":{ + "shape":"ZonalShiftStatus", + "documentation":"

A status for a zonal shift.

The Status for a zonal shift can have one of the following values:

  • ACTIVE: The zonal shift is started and active.

  • EXPIRED: The zonal shift has expired (the expiry time was exceeded).

  • CANCELED: The zonal shift was canceled.

" + }, + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a zonal shift.

" + } + } + }, + "ZonalShiftComment":{ + "type":"string", + "max":128, + "min":0 + }, + "ZonalShiftId":{ + "type":"string", + "max":36, + "min":6, + "pattern":"^[A-Za-z0-9-]+$" + }, + "ZonalShiftInResource":{ + "type":"structure", + "required":[ + "appliedStatus", + "awayFrom", + "comment", + "expiryTime", + "resourceIdentifier", + "startTime", + "zonalShiftId" + ], + "members":{ + "appliedStatus":{ + "shape":"AppliedStatus", + "documentation":"

An appliedStatus for a zonal shift for a resource can have one of two values: APPLIED or NOT_APPLIED.

" + }, + "awayFrom":{ + "shape":"AvailabilityZone", + "documentation":"

The Availability Zone that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the AWS Region.

" + }, + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. That is, a new comment overwrites any existing comment string.

" + }, + "expiryTime":{ + "shape":"ExpiryTime", + "documentation":"

The expiry time (expiration time) for the zonal shift. A zonal shift is temporary and must be set to expire when you start the zonal shift. You can initially set a zonal shift to expire in a maximum of three days (72 hours). However, you can update a zonal shift to set a new expiration at any time.

When you start a zonal shift, you specify how long you want it to be active, which Route 53 ARC converts to an expiry time (expiration time). You can cancel a zonal shift, for example, if you're ready to restore traffic to the Availability Zone. Or you can update the zonal shift to specify another length of time to expire in.

" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" + }, + "startTime":{ + "shape":"StartTime", + "documentation":"

The time (UTC) when the zonal shift is started.

" + }, + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a zonal shift.

" + } + }, + "documentation":"

A complex structure that lists the zonal shifts for a managed resource and their statuses for the resource.

" + }, + "ZonalShiftStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "EXPIRED", + "CANCELED" + ] + }, + "ZonalShiftSummaries":{ + "type":"list", + "member":{"shape":"ZonalShiftSummary"} + }, + "ZonalShiftSummary":{ + "type":"structure", + "required":[ + "awayFrom", + "comment", + "expiryTime", + "resourceIdentifier", + "startTime", + "status", + "zonalShiftId" + ], + "members":{ + "awayFrom":{ + "shape":"AvailabilityZone", + "documentation":"

The Availability Zone that traffic is moved away from for a resource when you start a zonal shift. Until the zonal shift expires or you cancel it, traffic for the resource is instead moved to other Availability Zones in the AWS Region.

" + }, + "comment":{ + "shape":"ZonalShiftComment", + "documentation":"

A comment that you enter about the zonal shift. Only the latest comment is retained; no comment history is maintained. That is, a new comment overwrites any existing comment string.

" + }, + "expiryTime":{ + "shape":"ExpiryTime", + "documentation":"

The expiry time (expiration time) for the zonal shift. A zonal shift is temporary and must be set to expire when you start the zonal shift. You can initially set a zonal shift to expire in a maximum of three days (72 hours). However, you can update a zonal shift to set a new expiration at any time.

When you start a zonal shift, you specify how long you want it to be active, which Route 53 ARC converts to an expiry time (expiration time). You can cancel a zonal shift, for example, if you're ready to restore traffic to the Availability Zone. Or you can update the zonal shift to specify another length of time to expire in.

" + }, + "resourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The identifier for the resource to include in a zonal shift. The identifier is the Amazon Resource Name (ARN) for the resource.

At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

" + }, + "startTime":{ + "shape":"StartTime", + "documentation":"

The time (UTC) when the zonal shift is started.

" + }, + "status":{ + "shape":"ZonalShiftStatus", + "documentation":"

A status for a zonal shift.

The Status for a zonal shift can have one of the following values:

  • ACTIVE: The zonal shift is started and active.

  • EXPIRED: The zonal shift has expired (the expiry time was exceeded).

  • CANCELED: The zonal shift was canceled.

" + }, + "zonalShiftId":{ + "shape":"ZonalShiftId", + "documentation":"

The identifier of a zonal shift.

" + } + }, + "documentation":"

You start a zonal shift to temporarily move load balancer traffic away from an Availability Zone in a AWS Region. A zonal shift helps your application recover immediately, for example, from a developer's bad code deployment or from an AWS infrastructure failure in a single Availability Zone. You can start a zonal shift in Route 53 ARC only for managed resources in your account in an AWS Region. Supported AWS resources are automatically registered with Route 53 ARC.

Zonal shifts are temporary. A zonal shift can be active for up to three days (72 hours).

When you start a zonal shift, you specify how long you want it to be active, which Amazon Route 53 Application Recovery Controller converts to an expiry time (expiration time). You can cancel a zonal shift, for example, if you're ready to restore traffic to the Availability Zone. Or you can extend the zonal shift by updating the expiration so the zonal shift is active longer.

" + }, + "ZonalShiftsInResource":{ + "type":"list", + "member":{"shape":"ZonalShiftInResource"} + } + }, + "documentation":"

This is the API Reference Guide for the zonal shift feature of Amazon Route 53 Application Recovery Controller. This guide is for developers who need detailed information about zonal shift API actions, data types, and errors.

Zonal shift is in preview release for Amazon Route 53 Application Recovery Controller and is subject to change.

Zonal shift in Route 53 ARC enables you to move traffic for a load balancer resource away from an Availability Zone. Starting a zonal shift helps your application recover immediately, for example, from a developer's bad code deployment or from an AWS infrastructure failure in a single Availability Zone, reducing the impact and time lost from an issue in one zone.

Supported AWS resources are automatically registered with Route 53 ARC. Resources that are registered for zonal shifts in Route 53 ARC are managed resources in Route 53 ARC. You can start a zonal shift for any managed resource in your account in a Region. At this time, you can only start a zonal shift for Network Load Balancers and Application Load Balancers with cross-zone load balancing turned off.

Zonal shifts are temporary. You must specify an expiration when you start a zonal shift, of up to three days initially. If you want to still keep traffic away from an Availability Zone, you can update the zonal shift and set a new expiration. You can also cancel a zonal shift, before it expires, for example, if you're ready to restore traffic to the Availability Zone.

For more information about using zonal shift, see the Amazon Route 53 Application Recovery Controller Developer Guide.

" +} diff --git a/botocore/data/athena/2017-05-18/endpoint-rule-set-1.json b/botocore/data/athena/2017-05-18/endpoint-rule-set-1.json new file mode 100644 index 00000000..688cf5df --- /dev/null +++ b/botocore/data/athena/2017-05-18/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://athena-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://athena-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://athena.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://athena.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/athena/2017-05-18/service-2.json b/botocore/data/athena/2017-05-18/service-2.json index 2cedb10a..578275d4 100644 --- a/botocore/data/athena/2017-05-18/service-2.json +++ b/botocore/data/athena/2017-05-18/service-2.json @@ -26,6 +26,20 @@ ], "documentation":"

Returns the details of a single named query or a list of up to 50 queries, which you provide as an array of query ID strings. Requires you to have access to the workgroup in which the queries were saved. Use ListNamedQueriesInput to get the list of named query IDs in the specified workgroup. If information could not be retrieved for a submitted query ID, information about the query ID submitted is listed under UnprocessedNamedQueryId. Named queries differ from executed queries. Use BatchGetQueryExecutionInput to get details about each unique query execution, and ListQueryExecutionsInput to get a list of query execution IDs.

" }, + "BatchGetPreparedStatement":{ + "name":"BatchGetPreparedStatement", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetPreparedStatementInput"}, + "output":{"shape":"BatchGetPreparedStatementOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"

Returns the details of a single prepared statement or a list of up to 256 prepared statements for the array of prepared statement names that you provide. Requires you to have access to the workgroup to which the prepared statements belong. If a prepared statement cannot be retrieved for the name specified, the statement is listed in UnprocessedPreparedStatementNames.

" + }, "BatchGetQueryExecution":{ "name":"BatchGetQueryExecution", "http":{ @@ -69,6 +83,21 @@ "documentation":"

Creates a named query in the specified workgroup. Requires that you have access to the workgroup.

For code samples using the Amazon Web Services SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.

", "idempotent":true }, + "CreateNotebook":{ + "name":"CreateNotebook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNotebookInput"}, + "output":{"shape":"CreateNotebookOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Creates an empty ipynb file in the specified Apache Spark enabled workgroup. Throws an error if a file in the workgroup with the same name already exists.

" + }, "CreatePreparedStatement":{ "name":"CreatePreparedStatement", "http":{ @@ -83,6 +112,21 @@ ], "documentation":"

Creates a prepared statement for use with SQL queries in Athena.

" }, + "CreatePresignedNotebookUrl":{ + "name":"CreatePresignedNotebookUrl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreatePresignedNotebookUrlRequest"}, + "output":{"shape":"CreatePresignedNotebookUrlResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets an authentication token and the URL at which the notebook can be accessed. During programmatic access, CreatePresignedNotebookUrl must be called every 10 minutes to refresh the authentication token.

" + }, "CreateWorkGroup":{ "name":"CreateWorkGroup", "http":{ @@ -95,7 +139,7 @@ {"shape":"InternalServerException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Creates a workgroup with the specified name.

" + "documentation":"

Creates a workgroup with the specified name. Only one of Configurations or Configuration can be specified; Configurations for a workgroup with multi engine support (for example, an Apache Spark enabled workgroup) or Configuration for an Athena SQL workgroup.

" }, "DeleteDataCatalog":{ "name":"DeleteDataCatalog", @@ -126,6 +170,21 @@ "documentation":"

Deletes the named query if you have access to the workgroup in which the query was saved.

For code samples using the Amazon Web Services SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.

", "idempotent":true }, + "DeleteNotebook":{ + "name":"DeleteNotebook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNotebookInput"}, + "output":{"shape":"DeleteNotebookOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Deletes the specified notebook.

" + }, "DeletePreparedStatement":{ "name":"DeletePreparedStatement", "http":{ @@ -156,6 +215,65 @@ "documentation":"

Deletes the workgroup with the specified name. The primary workgroup cannot be deleted.

", "idempotent":true }, + "ExportNotebook":{ + "name":"ExportNotebook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ExportNotebookInput"}, + "output":{"shape":"ExportNotebookOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Exports the specified notebook and its metadata.

" + }, + "GetCalculationExecution":{ + "name":"GetCalculationExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCalculationExecutionRequest"}, + "output":{"shape":"GetCalculationExecutionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes a previously submitted calculation execution.

" + }, + "GetCalculationExecutionCode":{ + "name":"GetCalculationExecutionCode", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCalculationExecutionCodeRequest"}, + "output":{"shape":"GetCalculationExecutionCodeResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retrieves a pre-signed URL to a copy of the code that was executed for the calculation.

" + }, + "GetCalculationExecutionStatus":{ + "name":"GetCalculationExecutionStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCalculationExecutionStatusRequest"}, + "output":{"shape":"GetCalculationExecutionStatusResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets the status of a current calculation.

" + }, "GetDataCatalog":{ "name":"GetDataCatalog", "http":{ @@ -199,6 +317,21 @@ ], "documentation":"

Returns information about a single query. Requires that you have access to the workgroup in which the query was saved.

" }, + "GetNotebookMetadata":{ + "name":"GetNotebookMetadata", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetNotebookMetadataInput"}, + "output":{"shape":"GetNotebookMetadataOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Retrieves notebook metadata for the specified notebook ID.

" + }, "GetPreparedStatement":{ "name":"GetPreparedStatement", "http":{ @@ -238,10 +371,55 @@ "output":{"shape":"GetQueryResultsOutput"}, "errors":[ {"shape":"InternalServerException"}, - {"shape":"InvalidRequestException"} + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} ], "documentation":"

Streams the results of a single query execution specified by QueryExecutionId from the Athena query results location in Amazon S3. For more information, see Query Results in the Amazon Athena User Guide. This request does not execute the query but returns results. Use StartQueryExecution to run a query.

To stream query results successfully, the IAM principal with permission to call GetQueryResults also must have permissions to the Amazon S3 GetObject action for the Athena query results location.

IAM principals with permission to the Amazon S3 GetObject action for the query results location are able to retrieve query results from Amazon S3 even if permission to the GetQueryResults action is denied. To restrict user or role access, ensure that Amazon S3 permissions to the Athena query location are denied.

" }, + "GetQueryRuntimeStatistics":{ + "name":"GetQueryRuntimeStatistics", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetQueryRuntimeStatisticsInput"}, + "output":{"shape":"GetQueryRuntimeStatisticsOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"

Returns query execution runtime statistics related to a single execution of a query if you have access to the workgroup in which the query ran. The query execution runtime statistics is returned only when QueryExecutionStatus$State is in a SUCCEEDED or FAILED state.

" + }, + "GetSession":{ + "name":"GetSession", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSessionRequest"}, + "output":{"shape":"GetSessionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets the full details of a previously created session, including the session status and configuration.

" + }, + "GetSessionStatus":{ + "name":"GetSessionStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSessionStatusRequest"}, + "output":{"shape":"GetSessionStatusResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets the current status of a session.

" + }, "GetTableMetadata":{ "name":"GetTableMetadata", "http":{ @@ -271,6 +449,51 @@ ], "documentation":"

Returns information about the workgroup with the specified name.

" }, + "ImportNotebook":{ + "name":"ImportNotebook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportNotebookInput"}, + "output":{"shape":"ImportNotebookOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Imports a single ipynb file to a Spark enabled workgroup. The maximum file size that can be imported is 10 megabytes. If an ipynb file with the same name already exists in the workgroup, throws an error.

" + }, + "ListApplicationDPUSizes":{ + "name":"ListApplicationDPUSizes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListApplicationDPUSizesInput"}, + "output":{"shape":"ListApplicationDPUSizesOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Returns the supported DPU sizes for the supported application runtimes (for example, Jupyter 1.0).

" + }, + "ListCalculationExecutions":{ + "name":"ListCalculationExecutions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCalculationExecutionsRequest"}, + "output":{"shape":"ListCalculationExecutionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists the calculations that have been submitted to a session in descending order. Newer calculations are listed first; older calculations are listed later.

" + }, "ListDataCatalogs":{ "name":"ListDataCatalogs", "http":{ @@ -314,6 +537,21 @@ ], "documentation":"

Returns a list of engine versions that are available to choose from, including the Auto option.

" }, + "ListExecutors":{ + "name":"ListExecutors", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListExecutorsRequest"}, + "output":{"shape":"ListExecutorsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists, in descending order, the executors that have been submitted to a session. Newer executors are listed first; older executors are listed later. The result can be optionally filtered by state.

" + }, "ListNamedQueries":{ "name":"ListNamedQueries", "http":{ @@ -328,6 +566,36 @@ ], "documentation":"

Provides a list of available query IDs only for queries saved in the specified workgroup. Requires that you have access to the specified workgroup. If a workgroup is not specified, lists the saved queries for the primary workgroup.

For code samples using the Amazon Web Services SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.

" }, + "ListNotebookMetadata":{ + "name":"ListNotebookMetadata", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListNotebookMetadataInput"}, + "output":{"shape":"ListNotebookMetadataOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Displays the notebook files for the specified workgroup in paginated format.

" + }, + "ListNotebookSessions":{ + "name":"ListNotebookSessions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListNotebookSessionsRequest"}, + "output":{"shape":"ListNotebookSessionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists, in descending order, the sessions that have been created in a notebook that are in an active state like CREATING, CREATED, IDLE or BUSY. Newer sessions are listed first; older sessions are listed later.

" + }, "ListPreparedStatements":{ "name":"ListPreparedStatements", "http":{ @@ -340,7 +608,7 @@ {"shape":"InternalServerException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Lists the prepared statements in the specfied workgroup.

" + "documentation":"

Lists the prepared statements in the specified workgroup.

" }, "ListQueryExecutions":{ "name":"ListQueryExecutions", @@ -356,6 +624,21 @@ ], "documentation":"

Provides a list of available query execution IDs for the queries in the specified workgroup. If a workgroup is not specified, returns a list of query execution IDs for the primary workgroup. Requires you to have access to the workgroup in which the queries ran.

For code samples using the Amazon Web Services SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.

" }, + "ListSessions":{ + "name":"ListSessions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSessionsRequest"}, + "output":{"shape":"ListSessionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists the sessions in a workgroup that are in an active state like CREATING, CREATED, IDLE, or BUSY. Newer sessions are listed first; older sessions are listed later.

" + }, "ListTableMetadata":{ "name":"ListTableMetadata", "http":{ @@ -400,6 +683,21 @@ ], "documentation":"

Lists available workgroups for the account.

" }, + "StartCalculationExecution":{ + "name":"StartCalculationExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartCalculationExecutionRequest"}, + "output":{"shape":"StartCalculationExecutionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Submits calculations for execution within a session. You can supply the code to run as an inline code block within the request or as an Amazon S3 URL.

" + }, "StartQueryExecution":{ "name":"StartQueryExecution", "http":{ @@ -416,6 +714,37 @@ "documentation":"

Runs the SQL query statements contained in the Query. Requires you to have access to the workgroup in which the query ran. Running queries against an external catalog requires GetDataCatalog permission to the catalog. For code samples using the Amazon Web Services SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide.

", "idempotent":true }, + "StartSession":{ + "name":"StartSession", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartSessionRequest"}, + "output":{"shape":"StartSessionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"SessionAlreadyExistsException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Creates a session for running calculations within a workgroup. The session is ready when it reaches an IDLE state.

" + }, + "StopCalculationExecution":{ + "name":"StopCalculationExecution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopCalculationExecutionRequest"}, + "output":{"shape":"StopCalculationExecutionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Requests the cancellation of a calculation. A StopCalculationExecution call on a calculation that is already in a terminal state (for example, STOPPED, FAILED, or COMPLETED) succeeds but has no effect.

Cancelling a calculation is done on a best effort basis. If a calculation cannot be cancelled, you can be charged for its completion. If you are concerned about being charged for a calculation that cannot be cancelled, consider terminating the session in which the calculation is running.

" + }, "StopQueryExecution":{ "name":"StopQueryExecution", "http":{ @@ -446,6 +775,21 @@ ], "documentation":"

Adds one or more tags to an Athena resource. A tag is a label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.

" }, + "TerminateSession":{ + "name":"TerminateSession", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TerminateSessionRequest"}, + "output":{"shape":"TerminateSessionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Terminates an active session. A TerminateSession call on a session that is already inactive (for example, in a FAILED, TERMINATED or TERMINATING state) succeeds but has no effect. Calculations running in the session when TerminateSession is called are forcefully stopped, but may display as FAILED instead of STOPPED.

" + }, "UntagResource":{ "name":"UntagResource", "http":{ @@ -490,6 +834,36 @@ "documentation":"

Updates a NamedQuery object. The database or workgroup cannot be updated.

", "idempotent":true }, + "UpdateNotebook":{ + "name":"UpdateNotebook", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateNotebookInput"}, + "output":{"shape":"UpdateNotebookOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Updates the contents of a Spark notebook.

" + }, + "UpdateNotebookMetadata":{ + "name":"UpdateNotebookMetadata", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateNotebookMetadataInput"}, + "output":{"shape":"UpdateNotebookMetadataOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Updates the metadata for a notebook.

" + }, "UpdatePreparedStatement":{ "name":"UpdatePreparedStatement", "http":{ @@ -517,7 +891,7 @@ {"shape":"InternalServerException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Updates the workgroup with the specified name. The workgroup's name cannot be changed.

" + "documentation":"

Updates the workgroup with the specified name. The workgroup's name cannot be changed. Only one of ConfigurationsUpdates or ConfigurationUpdates can be specified; ConfigurationsUpdates for a workgroup with multi engine support (for example, an Apache Spark enabled workgroup) or ConfigurationUpdates for an Athena SQL workgroup.

" } }, "shapes":{ @@ -532,11 +906,34 @@ }, "documentation":"

Indicates that an Amazon S3 canned ACL should be set to control ownership of stored query results. When Athena stores query results in Amazon S3, the canned ACL is set with the x-amz-acl request header. For more information about S3 Object Ownership, see Object Ownership settings in the Amazon S3 User Guide.

" }, + "Age":{ + "type":"integer", + "max":10080, + "min":0 + }, "AmazonResourceName":{ "type":"string", "max":1011, "min":1 }, + "ApplicationDPUSizes":{ + "type":"structure", + "members":{ + "ApplicationRuntimeId":{ + "shape":"NameString", + "documentation":"

The name of the supported application runtime (for example, Jupyter 1.0).

" + }, + "SupportedDPUSizes":{ + "shape":"SupportedDPUSizeList", + "documentation":"

A list of the supported DPU sizes that the application runtime supports.

" + } + }, + "documentation":"

Contains the application runtime IDs and their supported DPU sizes.

" + }, + "ApplicationDPUSizesList":{ + "type":"list", + "member":{"shape":"ApplicationDPUSizes"} + }, "AthenaError":{ "type":"structure", "members":{ @@ -559,6 +956,16 @@ }, "documentation":"

Provides information about an Athena query error. The AthenaError feature provides standardized error information to help you understand failed queries and take steps after a query failure occurs. AthenaError includes an ErrorCategory field that specifies whether the cause of the failed query is due to system error, user error, or other error.

" }, + "AuthToken":{ + "type":"string", + "max":2048 + }, + "AwsAccountId":{ + "type":"string", + "max":12, + "min":12, + "pattern":"^[0-9]+$" + }, "BatchGetNamedQueryInput":{ "type":"structure", "required":["NamedQueryIds"], @@ -567,7 +974,8 @@ "shape":"NamedQueryIdList", "documentation":"

An array of query IDs.

" } - } + }, + "documentation":"

Contains an array of named query IDs.

" }, "BatchGetNamedQueryOutput":{ "type":"structure", @@ -582,6 +990,36 @@ } } }, + "BatchGetPreparedStatementInput":{ + "type":"structure", + "required":[ + "PreparedStatementNames", + "WorkGroup" + ], + "members":{ + "PreparedStatementNames":{ + "shape":"PreparedStatementNameList", + "documentation":"

A list of prepared statement names to return.

" + }, + "WorkGroup":{ + "shape":"WorkGroupName", + "documentation":"

The name of the workgroup to which the prepared statements belong.

" + } + } + }, + "BatchGetPreparedStatementOutput":{ + "type":"structure", + "members":{ + "PreparedStatements":{ + "shape":"PreparedStatementDetailsList", + "documentation":"

The list of prepared statements returned.

" + }, + "UnprocessedPreparedStatementNames":{ + "shape":"UnprocessedPreparedStatementNameList", + "documentation":"

A list of one or more prepared statements that were requested but could not be returned.

" + } + } + }, "BatchGetQueryExecutionInput":{ "type":"structure", "required":["QueryExecutionIds"], @@ -590,7 +1028,8 @@ "shape":"QueryExecutionIdList", "documentation":"

An array of query execution IDs.

" } - } + }, + "documentation":"

Contains an array of query execution IDs.

" }, "BatchGetQueryExecutionOutput":{ "type":"structure", @@ -611,12 +1050,138 @@ "type":"long", "min":10000000 }, + "CalculationConfiguration":{ + "type":"structure", + "members":{ + "CodeBlock":{ + "shape":"CodeBlock", + "documentation":"

A string that contains the code for the calculation.

" + } + }, + "documentation":"

Contains configuration information for the calculation.

" + }, + "CalculationExecutionId":{ + "type":"string", + "max":36, + "min":1 + }, + "CalculationExecutionState":{ + "type":"string", + "enum":[ + "CREATING", + "CREATED", + "QUEUED", + "RUNNING", + "CANCELING", + "CANCELED", + "COMPLETED", + "FAILED" + ] + }, + "CalculationResult":{ + "type":"structure", + "members":{ + "StdOutS3Uri":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 location of the stdout file for the calculation.

" + }, + "StdErrorS3Uri":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 location of the stderr error messages file for the calculation.

" + }, + "ResultS3Uri":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 location of the folder for the calculation results.

" + }, + "ResultType":{ + "shape":"CalculationResultType", + "documentation":"

The data format of the calculation result.

" + } + }, + "documentation":"

Contains information about an application-specific calculation result.

" + }, + "CalculationResultType":{ + "type":"string", + "max":256, + "min":1, + "pattern":"\\w+\\/[-+.\\w]+" + }, + "CalculationStatistics":{ + "type":"structure", + "members":{ + "DpuExecutionInMillis":{ + "shape":"Long", + "documentation":"

The data processing unit execution time in milliseconds for the calculation.

" + }, + "Progress":{ + "shape":"DescriptionString", + "documentation":"

The progress of the calculation.

" + } + }, + "documentation":"

Contains statistics for a notebook calculation.

" + }, + "CalculationStatus":{ + "type":"structure", + "members":{ + "SubmissionDateTime":{ + "shape":"Date", + "documentation":"

The date and time the calculation was submitted for processing.

" + }, + "CompletionDateTime":{ + "shape":"Date", + "documentation":"

The date and time the calculation completed processing.

" + }, + "State":{ + "shape":"CalculationExecutionState", + "documentation":"

The state of the calculation execution. A description of each state follows.

CREATING - The calculation is in the process of being created.

CREATED - The calculation has been created and is ready to run.

QUEUED - The calculation has been queued for processing.

RUNNING - The calculation is running.

CANCELING - A request to cancel the calculation has been received and the system is working to stop it.

CANCELED - The calculation is no longer running as the result of a cancel request.

COMPLETED - The calculation has completed without error.

FAILED - The calculation failed and is no longer running.

" + }, + "StateChangeReason":{ + "shape":"DescriptionString", + "documentation":"

The reason for the calculation state change (for example, the calculation was canceled because the session was terminated).

" + } + }, + "documentation":"

Contains information about the status of a notebook calculation.

" + }, + "CalculationSummary":{ + "type":"structure", + "members":{ + "CalculationExecutionId":{ + "shape":"CalculationExecutionId", + "documentation":"

The calculation execution UUID.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

A description of the calculation.

" + }, + "Status":{ + "shape":"CalculationStatus", + "documentation":"

Contains information about the status of the calculation.

" + } + }, + "documentation":"

Summary information for a notebook calculation.

" + }, + "CalculationsList":{ + "type":"list", + "member":{"shape":"CalculationSummary"}, + "max":100, + "min":0 + }, "CatalogNameString":{ "type":"string", "max":256, "min":1, "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" }, + "ClientRequestToken":{ + "type":"string", + "max":36, + "min":1, + "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "CodeBlock":{ + "type":"string", + "max":68000 + }, "Column":{ "type":"structure", "required":["Name"], @@ -708,6 +1273,11 @@ "min":0, "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" }, + "CoordinatorDpuSize":{ + "type":"integer", + "max":5000, + "min":1 + }, "CreateDataCatalogInput":{ "type":"structure", "required":[ @@ -786,6 +1356,36 @@ } } }, + "CreateNotebookInput":{ + "type":"structure", + "required":[ + "WorkGroup", + "Name" + ], + "members":{ + "WorkGroup":{ + "shape":"WorkGroupName", + "documentation":"

The name of the Spark enabled workgroup in which the notebook will be created.

" + }, + "Name":{ + "shape":"NotebookName", + "documentation":"

The name of the ipynb file to be created in the Spark workgroup, without the .ipynb extension.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

A unique case-sensitive string used to ensure the request to create the notebook is idempotent (executes only once).

This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for you. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.

" + } + } + }, + "CreateNotebookOutput":{ + "type":"structure", + "members":{ + "NotebookId":{ + "shape":"NotebookId", + "documentation":"

A unique identifier for the notebook.

" + } + } + }, "CreatePreparedStatementInput":{ "type":"structure", "required":[ @@ -817,6 +1417,38 @@ "members":{ } }, + "CreatePresignedNotebookUrlRequest":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + } + } + }, + "CreatePresignedNotebookUrlResponse":{ + "type":"structure", + "required":[ + "NotebookUrl", + "AuthToken", + "AuthTokenExpirationTime" + ], + "members":{ + "NotebookUrl":{ + "shape":"String", + "documentation":"

The URL of the notebook. The URL includes the authentication token and notebook file name and points directly to the opened notebook.

" + }, + "AuthToken":{ + "shape":"AuthToken", + "documentation":"

The authentication token for the notebook.

" + }, + "AuthTokenExpirationTime":{ + "shape":"Long", + "documentation":"

The UTC epoch time when the authentication token expires.

" + } + } + }, "CreateWorkGroupInput":{ "type":"structure", "required":["Name"], @@ -827,7 +1459,7 @@ }, "Configuration":{ "shape":"WorkGroupConfiguration", - "documentation":"

The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with EnforceWorkGroupConfiguration) in the WorkGroupConfiguration override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" + "documentation":"

Contains configuration information for creating an Athena SQL workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with EnforceWorkGroupConfiguration) in the WorkGroupConfiguration override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" }, "Description":{ "shape":"WorkGroupDescriptionString", @@ -844,6 +1476,17 @@ "members":{ } }, + "CustomerContentEncryptionConfiguration":{ + "type":"structure", + "required":["KmsKey"], + "members":{ + "KmsKey":{ + "shape":"KmsKey", + "documentation":"

The KMS key that is used to encrypt the user's data stores in Athena.

" + } + }, + "documentation":"

Specifies the KMS key that is used to encrypt the user's data stores in Athena.

" + }, "DataCatalog":{ "type":"structure", "required":[ @@ -935,6 +1578,11 @@ }, "documentation":"

A piece of data (a field in the table).

" }, + "DefaultExecutorDpuSize":{ + "type":"integer", + "max":5000, + "min":1 + }, "DeleteDataCatalogInput":{ "type":"structure", "required":["Name"], @@ -966,6 +1614,21 @@ "members":{ } }, + "DeleteNotebookInput":{ + "type":"structure", + "required":["NotebookId"], + "members":{ + "NotebookId":{ + "shape":"NotebookId", + "documentation":"

The ID of the notebook to delete.

" + } + } + }, + "DeleteNotebookOutput":{ + "type":"structure", + "members":{ + } + }, "DeletePreparedStatementInput":{ "type":"structure", "required":[ @@ -1035,6 +1698,29 @@ "CSE_KMS" ] }, + "EngineConfiguration":{ + "type":"structure", + "required":["MaxConcurrentDpus"], + "members":{ + "CoordinatorDpuSize":{ + "shape":"CoordinatorDpuSize", + "documentation":"

The number of DPUs to use for the coordinator. A coordinator is a special executor that orchestrates processing work and manages other executors in a notebook session.

" + }, + "MaxConcurrentDpus":{ + "shape":"MaxConcurrentDpus", + "documentation":"

The maximum number of DPUs that can run concurrently.

" + }, + "DefaultExecutorDpuSize":{ + "shape":"DefaultExecutorDpuSize", + "documentation":"

The default number of DPUs to use for executors. An executor is the smallest unit of compute that a notebook session can request from Athena.

" + }, + "AdditionalConfigs":{ + "shape":"ParametersMap", + "documentation":"

Contains additional notebook engine MAP<string, string> parameter mappings in the form of key-value pairs. To specify an Amazon S3 URI that the Jupyter server will download and serve, specify a value for the StartSessionRequest$NotebookVersion field, and then add a key named NotebookFileURI to AdditionalConfigs that has value of the Amazon S3 URI.

" + } + }, + "documentation":"

Contains data processing unit (DPU) configuration settings and parameter mappings for a notebook engine.

" + }, "EngineVersion":{ "type":"structure", "members":{ @@ -1047,7 +1733,7 @@ "documentation":"

Read only. The engine version on which the query runs. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested. If the user requests Auto, the effective engine version is chosen by Athena. When a request to update the engine version is made by a CreateWorkGroup or UpdateWorkGroup operation, the EffectiveEngineVersion field is ignored.

" } }, - "documentation":"

The Athena engine version for running queries.

" + "documentation":"

The Athena engine version for running queries, or the PySpark engine version for running sessions.

" }, "EngineVersionsList":{ "type":"list", @@ -1074,11 +1760,198 @@ "max":9999, "min":0 }, + "ExecutionParameter":{ + "type":"string", + "max":1024, + "min":1 + }, + "ExecutionParameters":{ + "type":"list", + "member":{"shape":"ExecutionParameter"}, + "min":1 + }, + "ExecutorId":{ + "type":"string", + "max":100000, + "pattern":".*" + }, + "ExecutorState":{ + "type":"string", + "enum":[ + "CREATING", + "CREATED", + "REGISTERED", + "TERMINATING", + "TERMINATED", + "FAILED" + ] + }, + "ExecutorType":{ + "type":"string", + "enum":[ + "COORDINATOR", + "GATEWAY", + "WORKER" + ] + }, + "ExecutorsSummary":{ + "type":"structure", + "required":["ExecutorId"], + "members":{ + "ExecutorId":{ + "shape":"ExecutorId", + "documentation":"

The UUID of the executor.

" + }, + "ExecutorType":{ + "shape":"ExecutorType", + "documentation":"

The type of executor used for the application (COORDINATOR, GATEWAY, or WORKER).

" + }, + "StartDateTime":{ + "shape":"Long", + "documentation":"

The date and time that the executor started.

" + }, + "TerminationDateTime":{ + "shape":"Long", + "documentation":"

The date and time that the executor was terminated.

" + }, + "ExecutorState":{ + "shape":"ExecutorState", + "documentation":"

The processing state of the executor. A description of each state follows.

CREATING - The executor is being started, including acquiring resources.

CREATED - The executor has been started.

REGISTERED - The executor has been registered.

TERMINATING - The executor is in the process of shutting down.

TERMINATED - The executor is no longer running.

FAILED - Due to a failure, the executor is no longer running.

" + }, + "ExecutorSize":{ + "shape":"Long", + "documentation":"

The smallest unit of compute that a session can request from Athena. Size is measured in data processing unit (DPU) values, a relative measure of processing power.

" + } + }, + "documentation":"

Contains summary information about an executor.

" + }, + "ExecutorsSummaryList":{ + "type":"list", + "member":{"shape":"ExecutorsSummary"} + }, + "ExportNotebookInput":{ + "type":"structure", + "required":["NotebookId"], + "members":{ + "NotebookId":{ + "shape":"NotebookId", + "documentation":"

The ID of the notebook to export.

" + } + } + }, + "ExportNotebookOutput":{ + "type":"structure", + "members":{ + "NotebookMetadata":{ + "shape":"NotebookMetadata", + "documentation":"

The notebook metadata, including notebook ID, notebook name, and workgroup name.

" + }, + "Payload":{ + "shape":"Payload", + "documentation":"

The content of the exported notebook.

" + } + } + }, "ExpressionString":{ "type":"string", "max":256, "min":0 }, + "FilterDefinition":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NotebookName", + "documentation":"

The name of the notebook to search for.

" + } + }, + "documentation":"

A string for searching notebook names.

" + }, + "GetCalculationExecutionCodeRequest":{ + "type":"structure", + "required":["CalculationExecutionId"], + "members":{ + "CalculationExecutionId":{ + "shape":"CalculationExecutionId", + "documentation":"

The calculation execution UUID.

" + } + } + }, + "GetCalculationExecutionCodeResponse":{ + "type":"structure", + "members":{ + "CodeBlock":{ + "shape":"CodeBlock", + "documentation":"

A pre-signed URL to the code that executed the calculation.

" + } + } + }, + "GetCalculationExecutionRequest":{ + "type":"structure", + "required":["CalculationExecutionId"], + "members":{ + "CalculationExecutionId":{ + "shape":"CalculationExecutionId", + "documentation":"

The calculation execution UUID.

" + } + } + }, + "GetCalculationExecutionResponse":{ + "type":"structure", + "members":{ + "CalculationExecutionId":{ + "shape":"CalculationExecutionId", + "documentation":"

The calculation execution UUID.

" + }, + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID that the calculation ran in.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

The description of the calculation execution.

" + }, + "WorkingDirectory":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 location in which calculation results are stored.

" + }, + "Status":{ + "shape":"CalculationStatus", + "documentation":"

Contains information about the status of the calculation.

" + }, + "Statistics":{ + "shape":"CalculationStatistics", + "documentation":"

Contains information about the data processing unit (DPU) execution time and progress. This field is populated only when statistics are available.

" + }, + "Result":{ + "shape":"CalculationResult", + "documentation":"

Contains result information. This field is populated only if the calculation is completed.

" + } + } + }, + "GetCalculationExecutionStatusRequest":{ + "type":"structure", + "required":["CalculationExecutionId"], + "members":{ + "CalculationExecutionId":{ + "shape":"CalculationExecutionId", + "documentation":"

The calculation execution UUID.

" + } + } + }, + "GetCalculationExecutionStatusResponse":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"CalculationStatus", + "documentation":"

Contains information about the calculation execution status.

" + }, + "Statistics":{ + "shape":"CalculationStatistics", + "documentation":"

Contains information about the DPU execution time and progress.

" + } + } + }, "GetDataCatalogInput":{ "type":"structure", "required":["Name"], @@ -1143,6 +2016,25 @@ } } }, + "GetNotebookMetadataInput":{ + "type":"structure", + "required":["NotebookId"], + "members":{ + "NotebookId":{ + "shape":"NotebookId", + "documentation":"

The ID of the notebook whose metadata is to be retrieved.

" + } + } + }, + "GetNotebookMetadataOutput":{ + "type":"structure", + "members":{ + "NotebookMetadata":{ + "shape":"NotebookMetadata", + "documentation":"

The metadata that is returned for the specified notebook ID.

" + } + } + }, "GetPreparedStatementInput":{ "type":"structure", "required":[ @@ -1223,6 +2115,99 @@ } } }, + "GetQueryRuntimeStatisticsInput":{ + "type":"structure", + "required":["QueryExecutionId"], + "members":{ + "QueryExecutionId":{ + "shape":"QueryExecutionId", + "documentation":"

The unique ID of the query execution.

" + } + } + }, + "GetQueryRuntimeStatisticsOutput":{ + "type":"structure", + "members":{ + "QueryRuntimeStatistics":{ + "shape":"QueryRuntimeStatistics", + "documentation":"

Runtime statistics about the query execution.

" + } + } + }, + "GetSessionRequest":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + } + } + }, + "GetSessionResponse":{ + "type":"structure", + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

The session description.

" + }, + "WorkGroup":{ + "shape":"WorkGroupName", + "documentation":"

The workgroup to which the session belongs.

" + }, + "EngineVersion":{ + "shape":"NameString", + "documentation":"

The engine version used by the session (for example, PySpark engine version 3). You can get a list of engine versions by calling ListEngineVersions.

" + }, + "EngineConfiguration":{ + "shape":"EngineConfiguration", + "documentation":"

Contains engine configuration information like DPU usage.

" + }, + "NotebookVersion":{ + "shape":"NameString", + "documentation":"

The notebook version.

" + }, + "SessionConfiguration":{ + "shape":"SessionConfiguration", + "documentation":"

Contains the workgroup configuration information used by the session.

" + }, + "Status":{ + "shape":"SessionStatus", + "documentation":"

Contains information about the status of the session.

" + }, + "Statistics":{ + "shape":"SessionStatistics", + "documentation":"

Contains the DPU execution time.

" + } + } + }, + "GetSessionStatusRequest":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + } + } + }, + "GetSessionStatusResponse":{ + "type":"structure", + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + }, + "Status":{ + "shape":"SessionStatus", + "documentation":"

Contains information about the status of the session.

" + } + } + }, "GetTableMetadataInput":{ "type":"structure", "required":[ @@ -1278,6 +2263,46 @@ "max":128, "min":32 }, + "ImportNotebookInput":{ + "type":"structure", + "required":[ + "WorkGroup", + "Name", + "Payload", + "Type" + ], + "members":{ + "WorkGroup":{ + "shape":"WorkGroupName", + "documentation":"

The name of the Spark enabled workgroup to import the notebook to.

" + }, + "Name":{ + "shape":"NotebookName", + "documentation":"

The name of the notebook to import.

" + }, + "Payload":{ + "shape":"Payload", + "documentation":"

The notebook content to be imported.

" + }, + "Type":{ + "shape":"NotebookType", + "documentation":"

The notebook content type. Currently, the only valid type is IPYNB.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

A unique case-sensitive string used to ensure the request to import the notebook is idempotent (executes only once).

This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for you. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.

" + } + } + }, + "ImportNotebookOutput":{ + "type":"structure", + "members":{ + "NotebookId":{ + "shape":"NotebookId", + "documentation":"

The ID of the notebook to import.

" + } + } + }, "Integer":{"type":"integer"}, "InternalServerException":{ "type":"structure", @@ -1303,6 +2328,73 @@ "min":1, "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" }, + "KmsKey":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^arn:aws[a-z\\-]*:kms:([a-z0-9\\-]+):\\d{12}:key/?[a-zA-Z_0-9+=,.@\\-_/]+$|^arn:aws[a-z\\-]*:kms:([a-z0-9\\-]+):\\d{12}:alias/?[a-zA-Z_0-9+=,.@\\-_/]+$|^alias/[a-zA-Z0-9/_-]+$|[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "ListApplicationDPUSizesInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxApplicationDPUSizesCount", + "documentation":"

Specifies the maximum number of results to return.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated.

" + } + } + }, + "ListApplicationDPUSizesOutput":{ + "type":"structure", + "members":{ + "ApplicationDPUSizes":{ + "shape":"ApplicationDPUSizesList", + "documentation":"

A list of the supported DPU sizes that the application runtime supports.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + } + } + }, + "ListCalculationExecutionsRequest":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + }, + "StateFilter":{ + "shape":"CalculationExecutionState", + "documentation":"

A filter for a specific calculation execution state. A description of each state follows.

CREATING - The calculation is in the process of being created.

CREATED - The calculation has been created and is ready to run.

QUEUED - The calculation has been queued for processing.

RUNNING - The calculation is running.

CANCELING - A request to cancel the calculation has been received and the system is working to stop it.

CANCELED - The calculation is no longer running as the result of a cancel request.

COMPLETED - The calculation has completed without error.

FAILED - The calculation failed and is no longer running.

" + }, + "MaxResults":{ + "shape":"MaxCalculationsCount", + "documentation":"

The maximum number of calculation executions to return.

" + }, + "NextToken":{ + "shape":"SessionManagerToken", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + } + } + }, + "ListCalculationExecutionsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"SessionManagerToken", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + }, + "Calculations":{ + "shape":"CalculationsList", + "documentation":"

A list of CalculationSummary objects.

" + } + } + }, "ListDataCatalogsInput":{ "type":"structure", "members":{ @@ -1386,6 +2478,46 @@ } } }, + "ListExecutorsRequest":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + }, + "ExecutorStateFilter":{ + "shape":"ExecutorState", + "documentation":"

A filter for a specific executor state. A description of each state follows.

CREATING - The executor is being started, including acquiring resources.

CREATED - The executor has been started.

REGISTERED - The executor has been registered.

TERMINATING - The executor is in the process of shutting down.

TERMINATED - The executor is no longer running.

FAILED - Due to a failure, the executor is no longer running.

" + }, + "MaxResults":{ + "shape":"MaxListExecutorsCount", + "documentation":"

The maximum number of executors to return.

" + }, + "NextToken":{ + "shape":"SessionManagerToken", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + } + } + }, + "ListExecutorsResponse":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + }, + "NextToken":{ + "shape":"SessionManagerToken", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + }, + "ExecutorsSummary":{ + "shape":"ExecutorsSummaryList", + "documentation":"

Contains summary information about the executor.

" + } + } + }, "ListNamedQueriesInput":{ "type":"structure", "members":{ @@ -1416,6 +2548,73 @@ } } }, + "ListNotebookMetadataInput":{ + "type":"structure", + "required":["WorkGroup"], + "members":{ + "Filters":{ + "shape":"FilterDefinition", + "documentation":"

Search filter string.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated.

" + }, + "MaxResults":{ + "shape":"MaxNotebooksCount", + "documentation":"

Specifies the maximum number of results to return.

" + }, + "WorkGroup":{ + "shape":"WorkGroupName", + "documentation":"

The name of the Spark enabled workgroup to retrieve notebook metadata for.

" + } + } + }, + "ListNotebookMetadataOutput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"Token", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + }, + "NotebookMetadataList":{ + "shape":"NotebookMetadataArray", + "documentation":"

The list of notebook metadata for the specified workgroup.

" + } + } + }, + "ListNotebookSessionsRequest":{ + "type":"structure", + "required":["NotebookId"], + "members":{ + "NotebookId":{ + "shape":"NotebookId", + "documentation":"

The ID of the notebook to list sessions for.

" + }, + "MaxResults":{ + "shape":"MaxSessionsCount", + "documentation":"

The maximum number of notebook sessions to return.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + } + } + }, + "ListNotebookSessionsResponse":{ + "type":"structure", + "required":["NotebookSessionsList"], + "members":{ + "NotebookSessionsList":{ + "shape":"NotebookSessionsList", + "documentation":"

A list of the sessions belonging to the notebook.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + } + } + }, "ListPreparedStatementsInput":{ "type":"structure", "required":["WorkGroup"], @@ -1477,6 +2676,41 @@ } } }, + "ListSessionsRequest":{ + "type":"structure", + "required":["WorkGroup"], + "members":{ + "WorkGroup":{ + "shape":"WorkGroupName", + "documentation":"

The workgroup to which the session belongs.

" + }, + "StateFilter":{ + "shape":"SessionState", + "documentation":"

A filter for a specific session state. A description of each state follows.

CREATING - The session is being started, including acquiring resources.

CREATED - The session has been started.

IDLE - The session is able to accept a calculation.

BUSY - The session is processing another task and is unable to accept a calculation.

TERMINATING - The session is in the process of shutting down.

TERMINATED - The session and its resources are no longer running.

DEGRADED - The session has no healthy coordinators.

FAILED - Due to a failure, the session and its resources are no longer running.

" + }, + "MaxResults":{ + "shape":"MaxSessionsCount", + "documentation":"

The maximum number of sessions to return.

" + }, + "NextToken":{ + "shape":"SessionManagerToken", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + } + } + }, + "ListSessionsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"SessionManagerToken", + "documentation":"

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

" + }, + "Sessions":{ + "shape":"SessionsList", + "documentation":"

A list of sessions.

" + } + } + }, "ListTableMetadataInput":{ "type":"structure", "required":[ @@ -1577,6 +2811,22 @@ } }, "Long":{"type":"long"}, + "MaxApplicationDPUSizesCount":{ + "type":"integer", + "max":100, + "min":1 + }, + "MaxCalculationsCount":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "MaxConcurrentDpus":{ + "type":"integer", + "max":5000, + "min":2 + }, "MaxDataCatalogsCount":{ "type":"integer", "box":true, @@ -1595,12 +2845,24 @@ "max":10, "min":1 }, + "MaxListExecutorsCount":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "MaxNamedQueriesCount":{ "type":"integer", "box":true, "max":50, "min":0 }, + "MaxNotebooksCount":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, "MaxPreparedStatementsCount":{ "type":"integer", "box":true, @@ -1619,6 +2881,12 @@ "max":1000, "min":1 }, + "MaxSessionsCount":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "MaxTableMetadataCount":{ "type":"integer", "box":true, @@ -1689,7 +2957,12 @@ "max":1024, "min":0 }, - "NamedQueryId":{"type":"string"}, + "NamedQueryId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"\\S+" + }, "NamedQueryIdList":{ "type":"list", "member":{"shape":"NamedQueryId"}, @@ -1700,6 +2973,77 @@ "type":"list", "member":{"shape":"NamedQuery"} }, + "NotebookId":{ + "type":"string", + "max":36, + "min":1, + "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "NotebookMetadata":{ + "type":"structure", + "members":{ + "NotebookId":{ + "shape":"NotebookId", + "documentation":"

The notebook ID.

" + }, + "Name":{ + "shape":"NotebookName", + "documentation":"

The name of the notebook.

" + }, + "WorkGroup":{ + "shape":"WorkGroupName", + "documentation":"

The name of the Spark enabled workgroup to which the notebook belongs.

" + }, + "CreationTime":{ + "shape":"Date", + "documentation":"

The time when the notebook was created.

" + }, + "Type":{ + "shape":"NotebookType", + "documentation":"

The type of notebook. Currently, the only valid type is IPYNB.

" + }, + "LastModifiedTime":{ + "shape":"Date", + "documentation":"

The time when the notebook was last modified.

" + } + }, + "documentation":"

Contains metadata for notebook, including the notebook name, ID, workgroup, and time created.

" + }, + "NotebookMetadataArray":{ + "type":"list", + "member":{"shape":"NotebookMetadata"} + }, + "NotebookName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]+" + }, + "NotebookSessionSummary":{ + "type":"structure", + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The notebook session ID.

" + }, + "CreationTime":{ + "shape":"Date", + "documentation":"

The time when the notebook session was created.

" + } + }, + "documentation":"

Contains the notebook session ID and notebook session creation time.

" + }, + "NotebookSessionsList":{ + "type":"list", + "member":{"shape":"NotebookSessionSummary"}, + "documentation":"

A list of notebook sessions.

", + "max":10, + "min":0 + }, + "NotebookType":{ + "type":"string", + "enum":["IPYNB"] + }, "ParametersMap":{ "type":"map", "key":{"shape":"KeyString"}, @@ -1709,6 +3053,11 @@ "type":"string", "max":51200 }, + "Payload":{ + "type":"string", + "max":15728640, + "min":1 + }, "PreparedStatement":{ "type":"structure", "members":{ @@ -1735,6 +3084,14 @@ }, "documentation":"

A prepared SQL statement for use with Athena.

" }, + "PreparedStatementDetailsList":{ + "type":"list", + "member":{"shape":"PreparedStatement"} + }, + "PreparedStatementNameList":{ + "type":"list", + "member":{"shape":"StatementName"} + }, "PreparedStatementSummary":{ "type":"structure", "members":{ @@ -1774,6 +3131,10 @@ "shape":"ResultConfiguration", "documentation":"

The location in Amazon S3 where query results were stored and the encryption option, if any, used for query results. These are known as \"client-side settings\". If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup.

" }, + "ResultReuseConfiguration":{ + "shape":"ResultReuseConfiguration", + "documentation":"

Specifies the query result reuse behavior that was used for the query.

" + }, "QueryExecutionContext":{ "shape":"QueryExecutionContext", "documentation":"

The database in which the query execution occurred.

" @@ -1793,6 +3154,10 @@ "EngineVersion":{ "shape":"EngineVersion", "documentation":"

The engine version that executed the query.

" + }, + "ExecutionParameters":{ + "shape":"ExecutionParameters", + "documentation":"

A list of values for the parameters in a query. The values are applied sequentially to the parameters in the query in the order in which the parameters occur.

" } }, "documentation":"

Information about a single instance of a query execution.

" @@ -1811,7 +3176,12 @@ }, "documentation":"

The database and data catalog context in which the query execution occurs.

" }, - "QueryExecutionId":{"type":"string"}, + "QueryExecutionId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"\\S+" + }, "QueryExecutionIdList":{ "type":"list", "member":{"shape":"QueryExecutionId"}, @@ -1862,6 +3232,10 @@ "ServiceProcessingTimeInMillis":{ "shape":"Long", "documentation":"

The number of milliseconds that Athena took to finalize and publish the query results after the query engine finished running the query.

" + }, + "ResultReuseInformation":{ + "shape":"ResultReuseInformation", + "documentation":"

Contains information about whether previous query results were reused for the query.

" } }, "documentation":"

The amount of data scanned during the query execution and the amount of time that it took to execute, and the type of statement that was run.

" @@ -1892,6 +3266,138 @@ }, "documentation":"

The completion date, current state, submission time, and state change reason (if applicable) for the query execution.

" }, + "QueryRuntimeStatistics":{ + "type":"structure", + "members":{ + "Timeline":{"shape":"QueryRuntimeStatisticsTimeline"}, + "Rows":{"shape":"QueryRuntimeStatisticsRows"}, + "OutputStage":{ + "shape":"QueryStage", + "documentation":"

Stage statistics such as input and output rows and bytes, execution time, and stage state. This information also includes substages and the query stage plan.

" + } + }, + "documentation":"

The query execution timeline, statistics on input and output rows and bytes, and the different query stages that form the query execution plan.

" + }, + "QueryRuntimeStatisticsRows":{ + "type":"structure", + "members":{ + "InputRows":{ + "shape":"Long", + "documentation":"

The number of rows read to execute the query.

" + }, + "InputBytes":{ + "shape":"Long", + "documentation":"

The number of bytes read to execute the query.

" + }, + "OutputBytes":{ + "shape":"Long", + "documentation":"

The number of bytes returned by the query.

" + }, + "OutputRows":{ + "shape":"Long", + "documentation":"

The number of rows returned by the query.

" + } + }, + "documentation":"

Statistics such as input rows and bytes read by the query, rows and bytes output by the query, and the number of rows written by the query.

" + }, + "QueryRuntimeStatisticsTimeline":{ + "type":"structure", + "members":{ + "QueryQueueTimeInMillis":{ + "shape":"Long", + "documentation":"

The number of milliseconds that the query was in your query queue waiting for resources. Note that if transient errors occur, Athena might automatically add the query back to the queue.

" + }, + "QueryPlanningTimeInMillis":{ + "shape":"Long", + "documentation":"

The number of milliseconds that Athena took to plan the query processing flow. This includes the time spent retrieving table partitions from the data source. Note that because the query engine performs the query planning, query planning time is a subset of engine processing time.

" + }, + "EngineExecutionTimeInMillis":{ + "shape":"Long", + "documentation":"

The number of milliseconds that the query took to execute.

" + }, + "ServiceProcessingTimeInMillis":{ + "shape":"Long", + "documentation":"

The number of milliseconds that Athena took to finalize and publish the query results after the query engine finished running the query.

" + }, + "TotalExecutionTimeInMillis":{ + "shape":"Long", + "documentation":"

The number of milliseconds that Athena took to run the query.

" + } + }, + "documentation":"

Timeline statistics such as query queue time, planning time, execution time, service processing time, and total execution time.

" + }, + "QueryStage":{ + "type":"structure", + "members":{ + "StageId":{ + "shape":"Long", + "documentation":"

The identifier for a stage.

" + }, + "State":{ + "shape":"String", + "documentation":"

State of the stage after query execution.

" + }, + "OutputBytes":{ + "shape":"Long", + "documentation":"

The number of bytes output from the stage after execution.

" + }, + "OutputRows":{ + "shape":"Long", + "documentation":"

The number of rows output from the stage after execution.

" + }, + "InputBytes":{ + "shape":"Long", + "documentation":"

The number of bytes input into the stage for execution.

" + }, + "InputRows":{ + "shape":"Long", + "documentation":"

The number of rows input into the stage for execution.

" + }, + "ExecutionTime":{ + "shape":"Long", + "documentation":"

Time taken to execute this stage.

" + }, + "QueryStagePlan":{ + "shape":"QueryStagePlanNode", + "documentation":"

Stage plan information such as name, identifier, sub plans, and source stages.

" + }, + "SubStages":{ + "shape":"QueryStages", + "documentation":"

List of sub query stages that form this stage execution plan.

" + } + }, + "documentation":"

Stage statistics such as input and output rows and bytes, execution time and stage state. This information also includes substages and the query stage plan.

" + }, + "QueryStagePlanNode":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"String", + "documentation":"

Name of the query stage plan that describes the operation this stage is performing as part of query execution.

" + }, + "Identifier":{ + "shape":"String", + "documentation":"

Information about the operation this query stage plan node is performing.

" + }, + "Children":{ + "shape":"QueryStagePlanNodes", + "documentation":"

Stage plan information such as name, identifier, sub plans, and remote sources of child plan nodes/

" + }, + "RemoteSources":{ + "shape":"StringList", + "documentation":"

Source plan node IDs.

" + } + }, + "documentation":"

Stage plan information such as name, identifier, sub plans, and remote sources.

" + }, + "QueryStagePlanNodes":{ + "type":"list", + "member":{"shape":"QueryStagePlanNode"} + }, + "QueryStages":{ + "type":"list", + "member":{"shape":"QueryStage"} + }, "QueryString":{ "type":"string", "max":262144, @@ -1901,7 +3407,10 @@ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"}, - "ResourceName":{"shape":"AmazonResourceName"} + "ResourceName":{ + "shape":"AmazonResourceName", + "documentation":"

The name of the Amazon resource.

" + } }, "documentation":"

A resource, such as a workgroup, was not found.

", "exception":true @@ -1910,7 +3419,7 @@ "type":"structure", "members":{ "OutputLocation":{ - "shape":"String", + "shape":"ResultOutputLocation", "documentation":"

The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using WorkGroupConfiguration. If none of them is set, Athena issues an error that no output location is provided. For more information, see Query Results. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" }, "EncryptionConfiguration":{ @@ -1918,7 +3427,7 @@ "documentation":"

If query results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE_KMS or CSE_KMS) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

" }, "ExpectedBucketOwner":{ - "shape":"String", + "shape":"AwsAccountId", "documentation":"

The Amazon Web Services account ID that you expect to be the owner of the Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, Athena uses the value for ExpectedBucketOwner when it makes Amazon S3 calls to your specified output location. If the ExpectedBucketOwner Amazon Web Services account ID does not match the actual owner of the Amazon S3 bucket, the call fails with a permissions error.

This is a client-side setting. If workgroup settings override client-side settings, then the query uses the ExpectedBucketOwner setting that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

" }, "AclConfiguration":{ @@ -1932,7 +3441,7 @@ "type":"structure", "members":{ "OutputLocation":{ - "shape":"String", + "shape":"ResultOutputLocation", "documentation":"

The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/. For more information, see Query Results If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup. The \"workgroup settings override\" is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" }, "RemoveOutputLocation":{ @@ -1948,7 +3457,7 @@ "documentation":"

If set to \"true\", indicates that the previously-specified encryption configuration (also known as the client-side setting) for queries in this workgroup should be ignored and set to null. If set to \"false\" or not set, and a value is present in the EncryptionConfiguration in ResultConfigurationUpdates (the client-side setting), the EncryptionConfiguration in the workgroup's ResultConfiguration will be updated with the new value. For more information, see Workgroup Settings Override Client-Side Settings.

" }, "ExpectedBucketOwner":{ - "shape":"String", + "shape":"AwsAccountId", "documentation":"

The Amazon Web Services account ID that you expect to be the owner of the Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, Athena uses the value for ExpectedBucketOwner when it makes Amazon S3 calls to your specified output location. If the ExpectedBucketOwner Amazon Web Services account ID does not match the actual owner of the Amazon S3 bucket, the call fails with a permissions error.

If workgroup settings override client-side settings, then the query uses the ExpectedBucketOwner setting that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

" }, "RemoveExpectedBucketOwner":{ @@ -1966,6 +3475,43 @@ }, "documentation":"

The information about the updates in the query results, such as output location and encryption configuration for the query results.

" }, + "ResultOutputLocation":{"type":"string"}, + "ResultReuseByAgeConfiguration":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

True if previous query results can be reused when the query is run; otherwise, false. The default is false.

" + }, + "MaxAgeInMinutes":{ + "shape":"Age", + "documentation":"

Specifies, in minutes, the maximum age of a previous query result that Athena should consider for reuse. The default is 60.

" + } + }, + "documentation":"

Specifies whether previous query results are reused, and if so, their maximum age.

" + }, + "ResultReuseConfiguration":{ + "type":"structure", + "members":{ + "ResultReuseByAgeConfiguration":{ + "shape":"ResultReuseByAgeConfiguration", + "documentation":"

Specifies whether previous query results are reused, and if so, their maximum age.

" + } + }, + "documentation":"

Specifies the query result reuse behavior for the query.

" + }, + "ResultReuseInformation":{ + "type":"structure", + "required":["ReusedPreviousResult"], + "members":{ + "ReusedPreviousResult":{ + "shape":"Boolean", + "documentation":"

True if a previous query result was reused; false if the result was generated from a new run of the query.

" + } + }, + "documentation":"

Contains information about whether the result of a previous query was reused.

" + }, "ResultSet":{ "type":"structure", "members":{ @@ -1990,6 +3536,12 @@ }, "documentation":"

The metadata that describes the column structure and data types of a table of query results. To return a ResultSetMetadata object, use GetQueryResults.

" }, + "RoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$" + }, "Row":{ "type":"structure", "members":{ @@ -2008,6 +3560,179 @@ "type":"string", "enum":["BUCKET_OWNER_FULL_CONTROL"] }, + "S3Uri":{ + "type":"string", + "max":1024, + "pattern":"^(https|s3|S3)://([^/]+)/?(.*)$" + }, + "SessionAlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The specified session already exists.

", + "exception":true + }, + "SessionConfiguration":{ + "type":"structure", + "members":{ + "ExecutionRole":{ + "shape":"RoleArn", + "documentation":"

The ARN of the execution role used for the session.

" + }, + "WorkingDirectory":{ + "shape":"ResultOutputLocation", + "documentation":"

The Amazon S3 location that stores information for the notebook.

" + }, + "IdleTimeoutSeconds":{ + "shape":"Long", + "documentation":"

The idle timeout in seconds for the session.

" + }, + "EncryptionConfiguration":{"shape":"EncryptionConfiguration"} + }, + "documentation":"

Contains session configuration information.

" + }, + "SessionId":{ + "type":"string", + "max":256, + "min":1 + }, + "SessionIdleTimeoutInMinutes":{ + "type":"integer", + "box":true, + "max":480, + "min":1 + }, + "SessionManagerToken":{ + "type":"string", + "max":2048 + }, + "SessionState":{ + "type":"string", + "enum":[ + "CREATING", + "CREATED", + "IDLE", + "BUSY", + "TERMINATING", + "TERMINATED", + "DEGRADED", + "FAILED" + ] + }, + "SessionStatistics":{ + "type":"structure", + "members":{ + "DpuExecutionInMillis":{ + "shape":"Long", + "documentation":"

The data processing unit execution time for a session in milliseconds.

" + } + }, + "documentation":"

Contains statistics for a notebook session.

" + }, + "SessionStatus":{ + "type":"structure", + "members":{ + "StartDateTime":{ + "shape":"Date", + "documentation":"

The date and time that the session started.

" + }, + "LastModifiedDateTime":{ + "shape":"Date", + "documentation":"

The most recent date and time that the session was modified.

" + }, + "EndDateTime":{ + "shape":"Date", + "documentation":"

The date and time that the session ended.

" + }, + "IdleSinceDateTime":{ + "shape":"Date", + "documentation":"

The date and time starting at which the session became idle. Can be empty if the session is not currently idle.

" + }, + "State":{ + "shape":"SessionState", + "documentation":"

The state of the session. A description of each state follows.

CREATING - The session is being started, including acquiring resources.

CREATED - The session has been started.

IDLE - The session is able to accept a calculation.

BUSY - The session is processing another task and is unable to accept a calculation.

TERMINATING - The session is in the process of shutting down.

TERMINATED - The session and its resources are no longer running.

DEGRADED - The session has no healthy coordinators.

FAILED - Due to a failure, the session and its resources are no longer running.

" + }, + "StateChangeReason":{ + "shape":"DescriptionString", + "documentation":"

The reason for the session state change (for example, canceled because the session was terminated).

" + } + }, + "documentation":"

Contains information about the status of a notebook session.

" + }, + "SessionSummary":{ + "type":"structure", + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

The session description.

" + }, + "EngineVersion":{ + "shape":"EngineVersion", + "documentation":"

The engine version used by the session (for example, PySpark engine version 3).

" + }, + "NotebookVersion":{ + "shape":"NameString", + "documentation":"

The notebook version.

" + }, + "Status":{ + "shape":"SessionStatus", + "documentation":"

Contains information about the session status.

" + } + }, + "documentation":"

Contains summary information about a notebook session.

" + }, + "SessionsList":{ + "type":"list", + "member":{"shape":"SessionSummary"}, + "max":100, + "min":0 + }, + "StartCalculationExecutionRequest":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

A description of the calculation.

" + }, + "CalculationConfiguration":{ + "shape":"CalculationConfiguration", + "documentation":"

Contains configuration information for the calculation.

", + "deprecated":true, + "deprecatedMessage":"Kepler Post GA Tasks : https://sim.amazon.com/issues/ATHENA-39828" + }, + "CodeBlock":{ + "shape":"CodeBlock", + "documentation":"

A string that contains the code of the calculation.

" + }, + "ClientRequestToken":{ + "shape":"IdempotencyToken", + "documentation":"

A unique case-sensitive string used to ensure the request to create the calculation is idempotent (executes only once). If another StartCalculationExecutionRequest is received, the same response is returned and another calculation is not created. If a parameter has changed, an error is returned.

This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for users. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.

" + } + } + }, + "StartCalculationExecutionResponse":{ + "type":"structure", + "members":{ + "CalculationExecutionId":{ + "shape":"CalculationExecutionId", + "documentation":"

The calculation execution UUID.

" + }, + "State":{ + "shape":"CalculationExecutionState", + "documentation":"

CREATING - The calculation is in the process of being created.

CREATED - The calculation has been created and is ready to run.

QUEUED - The calculation has been queued for processing.

RUNNING - The calculation is running.

CANCELING - A request to cancel the calculation has been received and the system is working to stop it.

CANCELED - The calculation is no longer running as the result of a cancel request.

COMPLETED - The calculation has completed without error.

FAILED - The calculation failed and is no longer running.

" + } + } + }, "StartQueryExecutionInput":{ "type":"structure", "required":["QueryString"], @@ -2032,6 +3757,14 @@ "WorkGroup":{ "shape":"WorkGroupName", "documentation":"

The name of the workgroup in which the query is being started.

" + }, + "ExecutionParameters":{ + "shape":"ExecutionParameters", + "documentation":"

A list of values for the parameters in a query. The values are applied sequentially to the parameters in the query in the order in which the parameters occur.

" + }, + "ResultReuseConfiguration":{ + "shape":"ResultReuseConfiguration", + "documentation":"

Specifies the query result reuse behavior for the query.

" } } }, @@ -2044,6 +3777,52 @@ } } }, + "StartSessionRequest":{ + "type":"structure", + "required":[ + "WorkGroup", + "EngineConfiguration" + ], + "members":{ + "Description":{ + "shape":"DescriptionString", + "documentation":"

The session description.

" + }, + "WorkGroup":{ + "shape":"WorkGroupName", + "documentation":"

The workgroup to which the session belongs.

" + }, + "EngineConfiguration":{ + "shape":"EngineConfiguration", + "documentation":"

Contains engine data processing unit (DPU) configuration settings and parameter mappings.

" + }, + "NotebookVersion":{ + "shape":"NameString", + "documentation":"

The notebook version. This value is required only when requesting that a notebook server be started for the session. The only valid notebook version is Jupyter1.0.

" + }, + "SessionIdleTimeoutInMinutes":{ + "shape":"SessionIdleTimeoutInMinutes", + "documentation":"

The idle timeout in minutes for the session.

" + }, + "ClientRequestToken":{ + "shape":"IdempotencyToken", + "documentation":"

A unique case-sensitive string used to ensure the request to create the session is idempotent (executes only once). If another StartSessionRequest is received, the same response is returned and another session is not created. If a parameter has changed, an error is returned.

This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for users. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.

" + } + } + }, + "StartSessionResponse":{ + "type":"structure", + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + }, + "State":{ + "shape":"SessionState", + "documentation":"

The state of the session. A description of each state follows.

CREATING - The session is being started, including acquiring resources.

CREATED - The session has been started.

IDLE - The session is able to accept a calculation.

BUSY - The session is processing another task and is unable to accept a calculation.

TERMINATING - The session is in the process of shutting down.

TERMINATED - The session and its resources are no longer running.

DEGRADED - The session has no healthy coordinators.

FAILED - Due to a failure, the session and its resources are no longer running.

" + } + } + }, "StatementName":{ "type":"string", "max":256, @@ -2058,6 +3837,25 @@ "UTILITY" ] }, + "StopCalculationExecutionRequest":{ + "type":"structure", + "required":["CalculationExecutionId"], + "members":{ + "CalculationExecutionId":{ + "shape":"CalculationExecutionId", + "documentation":"

The calculation execution UUID.

" + } + } + }, + "StopCalculationExecutionResponse":{ + "type":"structure", + "members":{ + "State":{ + "shape":"CalculationExecutionState", + "documentation":"

CREATING - The calculation is in the process of being created.

CREATED - The calculation has been created and is ready to run.

QUEUED - The calculation has been queued for processing.

RUNNING - The calculation is running.

CANCELING - A request to cancel the calculation has been received and the system is working to stop it.

CANCELED - The calculation is no longer running as the result of a cancel request.

COMPLETED - The calculation has completed without error.

FAILED - The calculation failed and is no longer running.

" + } + } + }, "StopQueryExecutionInput":{ "type":"structure", "required":["QueryExecutionId"], @@ -2075,6 +3873,14 @@ } }, "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "SupportedDPUSizeList":{ + "type":"list", + "member":{"shape":"Integer"} + }, "TableMetadata":{ "type":"structure", "required":["Name"], @@ -2172,6 +3978,25 @@ "max":256, "min":0 }, + "TerminateSessionRequest":{ + "type":"structure", + "required":["SessionId"], + "members":{ + "SessionId":{ + "shape":"SessionId", + "documentation":"

The session ID.

" + } + } + }, + "TerminateSessionResponse":{ + "type":"structure", + "members":{ + "State":{ + "shape":"SessionState", + "documentation":"

The state of the session. A description of each state follows.

CREATING - The session is being started, including acquiring resources.

CREATED - The session has been started.

IDLE - The session is able to accept a calculation.

BUSY - The session is processing another task and is unable to accept a calculation.

TERMINATING - The session is in the process of shutting down.

TERMINATED - The session and its resources are no longer running.

DEGRADED - The session has no healthy coordinators.

FAILED - Due to a failure, the session and its resources are no longer running.

" + } + } + }, "ThrottleReason":{ "type":"string", "documentation":"

The reason for the query throttling, for example, when it exceeds the concurrent query limit.

", @@ -2220,6 +4045,28 @@ "type":"list", "member":{"shape":"UnprocessedNamedQueryId"} }, + "UnprocessedPreparedStatementName":{ + "type":"structure", + "members":{ + "StatementName":{ + "shape":"StatementName", + "documentation":"

The name of a prepared statement that could not be returned due to an error.

" + }, + "ErrorCode":{ + "shape":"ErrorCode", + "documentation":"

The error code returned when the request for the prepared statement failed.

" + }, + "ErrorMessage":{ + "shape":"ErrorMessage", + "documentation":"

The error message containing the reason why the prepared statement could not be returned. The following error messages are possible:

  • INVALID_INPUT - The name of the prepared statement that was provided is not valid (for example, the name is too long).

  • STATEMENT_NOT_FOUND - A prepared statement with the name provided could not be found.

  • UNAUTHORIZED - The requester does not have permission to access the workgroup that contains the prepared statement.

" + } + }, + "documentation":"

The name of a prepared statement that could not be returned.

" + }, + "UnprocessedPreparedStatementNameList":{ + "type":"list", + "member":{"shape":"UnprocessedPreparedStatementName"} + }, "UnprocessedQueryExecutionId":{ "type":"structure", "members":{ @@ -2325,6 +4172,63 @@ "members":{ } }, + "UpdateNotebookInput":{ + "type":"structure", + "required":["NotebookId"], + "members":{ + "NotebookId":{ + "shape":"NotebookId", + "documentation":"

The ID of the notebook to update.

" + }, + "Payload":{ + "shape":"Payload", + "documentation":"

The updated content for the notebook.

" + }, + "Type":{ + "shape":"NotebookType", + "documentation":"

The notebook content type. Currently, the only valid type is IPYNB.

" + }, + "SessionId":{ + "shape":"SessionId", + "documentation":"

The ID of the session in which the notebook will be updated.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

A unique case-sensitive string used to ensure the request to create the notebook is idempotent (executes only once).

This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for you. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.

" + } + } + }, + "UpdateNotebookMetadataInput":{ + "type":"structure", + "required":[ + "NotebookId", + "Name" + ], + "members":{ + "NotebookId":{ + "shape":"NotebookId", + "documentation":"

The ID of the notebook to update the metadata for.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

A unique case-sensitive string used to ensure the request to create the notebook is idempotent (executes only once).

This token is listed as not required because Amazon Web Services SDKs (for example the Amazon Web Services SDK for Java) auto-generate the token for you. If you are not using the Amazon Web Services SDK or the Amazon Web Services CLI, you must provide this token or the action will fail.

" + }, + "Name":{ + "shape":"NotebookName", + "documentation":"

The name to update the notebook to.

" + } + } + }, + "UpdateNotebookMetadataOutput":{ + "type":"structure", + "members":{ + } + }, + "UpdateNotebookOutput":{ + "type":"structure", + "members":{ + } + }, "UpdatePreparedStatementInput":{ "type":"structure", "required":[ @@ -2370,7 +4274,7 @@ }, "ConfigurationUpdates":{ "shape":"WorkGroupConfigurationUpdates", - "documentation":"

The workgroup configuration that will be updated for the given workgroup.

" + "documentation":"

Contains configuration updates for an Athena SQL workgroup.

" }, "State":{ "shape":"WorkGroupState", @@ -2436,6 +4340,18 @@ "EngineVersion":{ "shape":"EngineVersion", "documentation":"

The engine version that all queries running on the workgroup use. Queries on the AmazonAthenaPreviewFunctionality workgroup run on the preview engine regardless of this setting.

" + }, + "AdditionalConfiguration":{ + "shape":"NameString", + "documentation":"

Specifies a user defined JSON string that is passed to the notebook engine.

" + }, + "ExecutionRole":{ + "shape":"RoleArn", + "documentation":"

Role used in a notebook session for accessing the user's resources.

" + }, + "CustomerContentEncryptionConfiguration":{ + "shape":"CustomerContentEncryptionConfiguration", + "documentation":"

Specifies the KMS key that is used to encrypt the user's data stores in Athena.

" } }, "documentation":"

The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup and whether workgroup settings override query settings, and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

" @@ -2470,7 +4386,20 @@ "EngineVersion":{ "shape":"EngineVersion", "documentation":"

The engine version requested when a workgroup is updated. After the update, all queries on the workgroup run on the requested engine version. If no value was previously set, the default is Auto. Queries on the AmazonAthenaPreviewFunctionality workgroup run on the preview engine regardless of this setting.

" - } + }, + "RemoveCustomerContentEncryptionConfiguration":{ + "shape":"BoxedBoolean", + "documentation":"

Removes content encryption configuration for a workgroup.

" + }, + "AdditionalConfiguration":{ + "shape":"NameString", + "documentation":"

Contains a user defined string in JSON format for a Spark-enabled workgroup.

" + }, + "ExecutionRole":{ + "shape":"RoleArn", + "documentation":"

Contains the ARN of the execution role for the workgroup

" + }, + "CustomerContentEncryptionConfiguration":{"shape":"CustomerContentEncryptionConfiguration"} }, "documentation":"

The configuration information that will be updated for this workgroup, which includes the location in Amazon S3 where query results are stored, the encryption option, if any, used for query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, whether the workgroup settings override the client-side settings, and the data usage limit for the amount of bytes scanned per query, if it is specified.

" }, diff --git a/botocore/data/auditmanager/2017-07-25/endpoint-rule-set-1.json b/botocore/data/auditmanager/2017-07-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..5dc46d82 --- /dev/null +++ b/botocore/data/auditmanager/2017-07-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://auditmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://auditmanager-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://auditmanager.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://auditmanager.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/auditmanager/2017-07-25/examples-1.json b/botocore/data/auditmanager/2017-07-25/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/auditmanager/2017-07-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/auditmanager/2017-07-25/service-2.json b/botocore/data/auditmanager/2017-07-25/service-2.json index d3137537..a4a56c3d 100644 --- a/botocore/data/auditmanager/2017-07-25/service-2.json +++ b/botocore/data/auditmanager/2017-07-25/service-2.json @@ -106,7 +106,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Uploads one or more pieces of evidence to a control in an Audit Manager assessment.

" + "documentation":"

Uploads one or more pieces of evidence to a control in an Audit Manager assessment. You can upload manual evidence from any Amazon Simple Storage Service (Amazon S3) bucket by specifying the S3 URI of the evidence.

You must upload manual evidence to your S3 bucket before you can upload it to your assessment. For instructions, see CreateBucket and PutObject in the Amazon Simple Storage Service API Reference.

The following restrictions apply to this action:

  • Maximum size of an individual evidence file: 100 MB

  • Number of daily manual evidence uploads per control: 100

  • Supported file formats: See Supported file types for manual evidence in the Audit Manager User Guide

For more information about Audit Manager service restrictions, see Quotas and restrictions for Audit Manager.

" }, "CreateAssessment":{ "name":"CreateAssessment", @@ -120,7 +120,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Creates an assessment in Audit Manager.

" }, @@ -136,7 +137,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Creates a custom framework in Audit Manager.

" }, @@ -168,7 +170,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Creates a new custom control in Audit Manager.

" }, @@ -282,7 +285,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Removes the specified Amazon Web Services account as a delegated administrator for Audit Manager.

When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Organizations. However, Audit Manager will stop collecting and attaching evidence to that delegated administrator account moving forward.

When you deregister a delegated administrator account for Audit Manager, the data for that account isn’t deleted. If you want to delete resource data for a delegated administrator account, you must perform that task separately before you deregister the account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager.

To delete your Audit Manager resource data, see the following instructions:

At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above.

" + "documentation":"

Removes the specified Amazon Web Services account as a delegated administrator for Audit Manager.

When you remove a delegated administrator from your Audit Manager settings, you continue to have access to the evidence that you previously collected under that account. This is also the case when you deregister a delegated administrator from Organizations. However, Audit Manager will stop collecting and attaching evidence to that delegated administrator account moving forward.

Keep in mind the following cleanup task if you use evidence finder:

Before you use your management account to remove a delegated administrator, make sure that the current delegated administrator account signs in to Audit Manager and disables evidence finder first. Disabling evidence finder automatically deletes the event data store that was created in their account when they enabled evidence finder. If this task isn’t completed, the event data store remains in their account. In this case, we recommend that the original delegated administrator goes to CloudTrail Lake and manually deletes the event data store.

This cleanup task is necessary to ensure that you don't end up with multiple event data stores. Audit Manager will ignore an unused event data store after you remove or change a delegated administrator account. However, the unused event data store continues to incur storage costs from CloudTrail Lake if you don't delete it.

When you deregister a delegated administrator account for Audit Manager, the data for that account isn’t deleted. If you want to delete resource data for a delegated administrator account, you must perform that task separately before you deregister the account. Either, you can do this in the Audit Manager console. Or, you can use one of the delete API operations that are provided by Audit Manager.

To delete your Audit Manager resource data, see the following instructions:

At this time, Audit Manager doesn't provide an option to delete evidence. All available delete operations are listed above.

" }, "DisassociateAssessmentReportEvidenceFolder":{ "name":"DisassociateAssessmentReportEvidenceFolder", @@ -547,7 +550,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Returns a list of the in-scope Amazon Web Services services for the specified assessment.

" + "documentation":"

Returns a list of all of the Amazon Web Services that you can choose to include in your assessment. When you create an assessment, specify which of these services you want to include to narrow the assessment's scope.

" }, "GetSettings":{ "name":"GetSettings", @@ -759,7 +762,8 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Enables Audit Manager for the specified Amazon Web Services account.

" }, @@ -793,7 +797,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Creates a share request for a custom framework in Audit Manager.

The share request specifies a recipient and notifies them that a custom framework is available. Recipients have 120 days to accept or decline the request. If no action is taken, the share request expires.

When you invoke the StartAssessmentFrameworkShare API, you are about to share a custom framework with another Amazon Web Services account. You may not share a custom framework that is derived from a standard framework if the standard framework is designated as not eligible for sharing by Amazon Web Services, unless you have obtained permission to do so from the owner of the standard framework. To learn more about which standard frameworks are eligible for sharing, see Framework sharing eligibility in the Audit Manager User Guide.

" + "documentation":"

Creates a share request for a custom framework in Audit Manager.

The share request specifies a recipient and notifies them that a custom framework is available. Recipients have 120 days to accept or decline the request. If no action is taken, the share request expires.

When you create a share request, Audit Manager stores a snapshot of your custom framework in the US East (N. Virginia) Amazon Web Services Region. Audit Manager also stores a backup of the same snapshot in the US West (Oregon) Amazon Web Services Region.

Audit Manager deletes the snapshot and the backup snapshot when one of the following events occurs:

  • The sender revokes the share request.

  • The recipient declines the share request.

  • The recipient encounters an error and doesn't successfully accept the share request.

  • The share request expires before the recipient responds to the request.

When a sender resends a share request, the snapshot is replaced with an updated version that corresponds with the latest version of the custom framework.

When a recipient accepts a share request, the snapshot is replicated into their Amazon Web Services account under the Amazon Web Services Region that was specified in the share request.

When you invoke the StartAssessmentFrameworkShare API, you are about to share a custom framework with another Amazon Web Services account. You may not share a custom framework that is derived from a standard framework if the standard framework is designated as not eligible for sharing by Amazon Web Services, unless you have obtained permission to do so from the owner of the standard framework. To learn more about which standard frameworks are eligible for sharing, see Framework sharing eligibility in the Audit Manager User Guide.

" }, "TagResource":{ "name":"TagResource", @@ -917,7 +921,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} ], "documentation":"

Updates the status of an assessment in Audit Manager.

" }, @@ -1237,7 +1242,7 @@ }, "evidenceByTypeConfigurationDataCount":{ "shape":"Integer", - "documentation":"

The number of evidence that falls under the configuration data category. This evidence is collected from configuration snapshots of other Amazon Web Services services such as Amazon EC2, Amazon S3, or IAM.

" + "documentation":"

The number of evidence that falls under the configuration data category. This evidence is collected from configuration snapshots of other Amazon Web Services such as Amazon EC2, Amazon S3, or IAM.

" }, "evidenceByTypeManualCount":{ "shape":"Integer", @@ -1571,14 +1576,14 @@ }, "errorCode":{ "shape":"ErrorCode", - "documentation":"

The error code that the AssessmentReportEvidence API returned.

" + "documentation":"

The error code that was returned.

" }, "errorMessage":{ "shape":"ErrorMessage", - "documentation":"

The error message that the AssessmentReportEvidence API returned.

" + "documentation":"

The error message that was returned.

" } }, - "documentation":"

An error entity for the AssessmentReportEvidence API. This is used to provide more meaningful errors than a simple string message.

" + "documentation":"

An error entity for assessment report evidence errors. This is used to provide more meaningful errors than a simple string message.

" }, "AssessmentReportEvidenceErrors":{ "type":"list", @@ -1964,6 +1969,12 @@ "type":"list", "member":{"shape":"ChangeLog"} }, + "CloudTrailArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:.*:cloudtrail:.*" + }, "ComplianceType":{ "type":"string", "max":100, @@ -2006,7 +2017,7 @@ }, "controlSources":{ "shape":"ControlSources", - "documentation":"

The data source that determines where Audit Manager collects evidence from for the control.

" + "documentation":"

The data source types that determine where Audit Manager collects evidence from for the control.

" }, "controlMappingSources":{ "shape":"ControlMappingSources", @@ -2411,6 +2422,10 @@ "documentation":"

The identifier for the assessment.

", "location":"uri", "locationName":"assessmentId" + }, + "queryStatement":{ + "shape":"QueryStatement", + "documentation":"

A SQL statement that represents an evidence finder query.

Provide this parameter when you want to generate an assessment report from the results of an evidence finder search query. When you use this parameter, Audit Manager generates a one-time report using only the evidence from the query output. This report does not include any assessment evidence that was manually added to a report using the console, or associated with a report using the API.

To use this parameter, the enablementStatus of evidence finder must be ENABLED.

For examples and help resolving queryStatement validation exceptions, see Troubleshooting evidence finder issues in the AWS Audit Manager User Guide.

" } } }, @@ -2911,7 +2926,7 @@ }, "complianceCheck":{ "shape":"String", - "documentation":"

The evaluation status for evidence that falls under the compliance check category. For evidence collected from Security Hub, a Pass or Fail result is shown. For evidence collected from Config, a Compliant or Noncompliant result is shown.

" + "documentation":"

The evaluation status for automated evidence that falls under the compliance check category.

  • Audit Manager classes evidence as non-compliant if Security Hub reports a Fail result, or if Config reports a Non-compliant result.

  • Audit Manager classes evidence as compliant if Security Hub reports a Pass result, or if Config reports a Compliant result.

  • If a compliance check isn't available or applicable, then no compliance evaluation can be made for that evidence. This is the case if the evidence uses Config or Security Hub as the underlying data source type, but those services aren't enabled. This is also the case if the evidence uses an underlying data source type that doesn't support compliance checks (such as manual evidence, Amazon Web Services API calls, or CloudTrail).

" }, "awsOrganization":{ "shape":"String", @@ -2951,6 +2966,45 @@ "key":{"shape":"EvidenceAttributeKey"}, "value":{"shape":"EvidenceAttributeValue"} }, + "EvidenceFinderBackfillStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "COMPLETED" + ] + }, + "EvidenceFinderEnablement":{ + "type":"structure", + "members":{ + "eventDataStoreArn":{ + "shape":"CloudTrailArn", + "documentation":"

The Amazon Resource Name (ARN) of the CloudTrail Lake event data store that’s used by evidence finder. The event data store is the lake of evidence data that evidence finder runs queries against.

" + }, + "enablementStatus":{ + "shape":"EvidenceFinderEnablementStatus", + "documentation":"

The current status of the evidence finder feature and the related event data store.

  • ENABLE_IN_PROGRESS means that you requested to enable evidence finder. An event data store is currently being created to support evidence finder queries.

  • ENABLED means that an event data store was successfully created and evidence finder is enabled. We recommend that you wait 24 hours until the event data store is backfilled with your past evidence data. You can use evidence finder in the meantime, but not all data might be available until the backfill is complete.

  • DISABLE_IN_PROGRESS means that you requested to disable evidence finder, and your request is pending the deletion of the event data store.

  • DISABLED means that you have permanently disabled evidence finder and the event data store has been deleted. You can't re-enable evidence finder after this point.

" + }, + "backfillStatus":{ + "shape":"EvidenceFinderBackfillStatus", + "documentation":"

The current status of the evidence data backfill process.

The backfill starts after you enable evidence finder. During this task, Audit Manager populates an event data store with your past evidence data so that your evidence can be queried.

  • NOT_STARTED means that the backfill hasn’t started yet.

  • IN_PROGRESS means that the backfill is in progress. This can take up to 24 hours to complete, depending on the amount of evidence data.

  • COMPLETED means that the backfill is complete. All of your past evidence is now queryable.

" + }, + "error":{ + "shape":"ErrorMessage", + "documentation":"

Represents any errors that occurred when enabling or disabling evidence finder.

" + } + }, + "documentation":"

The settings object that specifies whether evidence finder is enabled. This object also describes the related event data store, and the backfill status for populating the event data store with evidence data.

" + }, + "EvidenceFinderEnablementStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED", + "ENABLE_IN_PROGRESS", + "DISABLE_IN_PROGRESS" + ] + }, "EvidenceIds":{ "type":"list", "member":{"shape":"UUID"}, @@ -4209,6 +4263,12 @@ "ASSESSMENT_REPORT" ] }, + "QueryStatement":{ + "type":"string", + "max":10000, + "min":1, + "pattern":"(?s).*" + }, "Region":{ "type":"string", "pattern":"^[a-z]{2}-[a-z]+-[0-9]{1}$" @@ -4268,6 +4328,10 @@ "value":{ "shape":"String", "documentation":"

The value of the resource.

" + }, + "complianceCheck":{ + "shape":"String", + "documentation":"

The evaluation status for a resource that was assessed when collecting compliance check evidence.

  • Audit Manager classes the resource as non-compliant if Security Hub reports a Fail result, or if Config reports a Non-compliant result.

  • Audit Manager classes the resource as compliant if Security Hub reports a Pass result, or if Config reports a Compliant result.

  • If a compliance check isn't available or applicable, then no compliance evaluation can be made for that resource. This is the case if a resource assessment uses Config or Security Hub as the underlying data source type, but those services aren't enabled. This is also the case if the resource assessment uses an underlying data source type that doesn't support compliance checks (such as manual evidence, Amazon Web Services API calls, or CloudTrail).

" } }, "documentation":"

A system asset that's evaluated in an Audit Manager assessment.

" @@ -4300,6 +4364,10 @@ }, "Role":{ "type":"structure", + "required":[ + "roleType", + "roleArn" + ], "members":{ "roleType":{ "shape":"RoleType", @@ -4375,6 +4443,16 @@ "type":"list", "member":{"shape":"ServiceMetadata"} }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You've reached your account quota for this resource type. To perform the requested action, delete some existing resources or request a quota increase from the Service Quotas console. For a list of Audit Manager service quotas, see Quotas and restrictions for Audit Manager.

", + "error":{"httpStatusCode":402}, + "exception":true + }, "SettingAttribute":{ "type":"string", "enum":[ @@ -4382,7 +4460,8 @@ "IS_AWS_ORG_ENABLED", "SNS_TOPIC", "DEFAULT_ASSESSMENT_REPORTS_DESTINATION", - "DEFAULT_PROCESS_OWNERS" + "DEFAULT_PROCESS_OWNERS", + "EVIDENCE_FINDER_ENABLEMENT" ] }, "Settings":{ @@ -4407,6 +4486,10 @@ "kmsKey":{ "shape":"KmsKey", "documentation":"

The KMS key details.

" + }, + "evidenceFinderEnablement":{ + "shape":"EvidenceFinderEnablement", + "documentation":"

The current evidence finder status and event data store details.

" } }, "documentation":"

The settings object that holds all supported Audit Manager settings.

" @@ -4472,10 +4555,10 @@ }, "keywordValue":{ "shape":"KeywordValue", - "documentation":"

The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call.

If you’re mapping a data source to a rule in Config, the keywordValue that you specify depends on the type of rule:

  • For managed rules, you can use the rule identifier as the keywordValue. You can find the rule identifier from the list of Config managed rules.

  • For custom rules, you form the keywordValue by adding the Custom_ prefix to the rule name. This prefix distinguishes the rule from a managed rule.

    • Custom rule name: my-custom-config-rule

      keywordValue: Custom_my-custom-config-rule

  • For service-linked rules, you form the keywordValue by adding the Custom_ prefix to the rule name. In addition, you remove the suffix ID that appears at the end of the rule name.

    • Service-linked rule name: CustomRuleForAccount-conformance-pack-szsm1uv0w

      keywordValue: Custom_CustomRuleForAccount-conformance-pack

    • Service-linked rule name: securityhub-api-gw-cache-encrypted-101104e1

      keywordValue: Custom_securityhub-api-gw-cache-encrypted

    • Service-linked rule name: OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba

      keywordValue: Custom_OrgConfigRule-s3-bucket-versioning-enabled

" + "documentation":"

The value of the keyword that's used when mapping a control data source. For example, this can be a CloudTrail event name, a rule name for Config, a Security Hub control, or the name of an Amazon Web Services API call.

If you’re mapping a data source to a rule in Config, the keywordValue that you specify depends on the type of rule:

  • For managed rules, you can use the rule identifier as the keywordValue. You can find the rule identifier from the list of Config managed rules.

  • For custom rules, you form the keywordValue by adding the Custom_ prefix to the rule name. This prefix distinguishes the rule from a managed rule.

    • Custom rule name: my-custom-config-rule

      keywordValue: Custom_my-custom-config-rule

  • For service-linked rules, you form the keywordValue by adding the Custom_ prefix to the rule name. In addition, you remove the suffix ID that appears at the end of the rule name.

    • Service-linked rule name: CustomRuleForAccount-conformance-pack-szsm1uv0w

      keywordValue: Custom_CustomRuleForAccount-conformance-pack

    • Service-linked rule name: OrgConfigRule-s3-bucket-versioning-enabled-dbgzf8ba

      keywordValue: Custom_OrgConfigRule-s3-bucket-versioning-enabled

" } }, - "documentation":"

The keyword to search for in CloudTrail logs, Config rules, Security Hub checks, and Amazon Web Services API names.

" + "documentation":"

The keyword to search for in CloudTrail logs, Config rules, Security Hub checks, and Amazon Web Services API names.

To learn more about the supported keywords that you can use when mapping a control data source, see the following pages in the Audit Manager User Guide:

" }, "SourceName":{ "type":"string", @@ -4596,6 +4679,16 @@ "max":1000, "pattern":"^[\\w\\W\\s\\S]*$" }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "Timestamp":{"type":"timestamp"}, "TimestampUUID":{ "type":"string", @@ -4985,6 +5078,10 @@ "kmsKey":{ "shape":"KmsKey", "documentation":"

The KMS key details.

" + }, + "evidenceFinderEnabled":{ + "shape":"Boolean", + "documentation":"

Specifies whether the evidence finder feature is enabled. Change this attribute to enable or disable evidence finder.

When you use this attribute to disable evidence finder, Audit Manager deletes the event data store that’s used to query your evidence data. As a result, you can’t re-enable evidence finder and use the feature again. Your only alternative is to deregister and then re-register Audit Manager.

Disabling evidence finder is permanent, so consider this decision carefully before you proceed. If you’re using Audit Manager as a delegated administrator, keep in mind that this action applies to all member accounts in your organization.

" } } }, diff --git a/botocore/data/autoscaling-plans/2018-01-06/endpoint-rule-set-1.json b/botocore/data/autoscaling-plans/2018-01-06/endpoint-rule-set-1.json new file mode 100644 index 00000000..313fa8ab --- /dev/null +++ b/botocore/data/autoscaling-plans/2018-01-06/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling-plans-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling-plans-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling-plans.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling-plans.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/autoscaling/2011-01-01/endpoint-rule-set-1.json b/botocore/data/autoscaling/2011-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..2b28ede2 --- /dev/null +++ b/botocore/data/autoscaling/2011-01-01/endpoint-rule-set-1.json @@ -0,0 +1,331 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://autoscaling.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://autoscaling.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/autoscaling/2011-01-01/examples-1.json b/botocore/data/autoscaling/2011-01-01/examples-1.json index 5720b490..d6b944fe 100644 --- a/botocore/data/autoscaling/2011-01-01/examples-1.json +++ b/botocore/data/autoscaling/2011-01-01/examples-1.json @@ -101,7 +101,7 @@ "input": { "AutoScalingGroupName": "my-auto-scaling-group", "LaunchTemplate": { - "LaunchTemplateId": "lt-0a20c965061f64abc", + "LaunchTemplateName": "my-template-for-auto-scaling", "Version": "$Latest" }, "MaxInstanceLifetime": 2592000, @@ -125,8 +125,8 @@ "HealthCheckGracePeriod": 300, "HealthCheckType": "ELB", "LaunchTemplate": { - "LaunchTemplateId": "lt-0a20c965061f64abc", - "Version": "$Default" + "LaunchTemplateName": "my-template-for-auto-scaling", + "Version": "$Latest" }, "MaxSize": 3, "MinSize": 1, @@ -397,7 +397,7 @@ "output": { } }, - "description": "This example describes the Auto Scaling limits for your AWS account.", + "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" } @@ -1203,10 +1203,10 @@ { "input": { "AutoScalingGroupName": "my-auto-scaling-group", - "LifecycleHookName": "my-lifecycle-hook", - "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", - "NotificationTargetARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic --role-arn", - "RoleARN": "arn:aws:iam::123456789012:role/my-auto-scaling-role" + "DefaultResult": "CONTINUE", + "HeartbeatTimeout": 300, + "LifecycleHookName": "my-launch-lifecycle-hook", + "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING" }, "comments": { "input": { @@ -1214,9 +1214,9 @@ "output": { } }, - "description": "This example creates a lifecycle hook.", + "description": "This example creates a lifecycle hook for instance launch.", "id": "autoscaling-put-lifecycle-hook-1", - "title": "To create a lifecycle hook" + "title": "To create a launch lifecycle hook" } ], "PutNotificationConfiguration": [ @@ -1303,8 +1303,11 @@ { "input": { "AutoScalingGroupName": "my-auto-scaling-group", + "InstanceReusePolicy": { + "ReuseOnScaleIn": true + }, "MinSize": 30, - "PoolState": "Stopped" + "PoolState": "Hibernated" }, "comments": { "input": { @@ -1312,9 +1315,9 @@ "output": { } }, - "description": "This example adds a warm pool to the specified Auto Scaling group.", + "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 add a warm pool to an Auto Scaling group" + "title": "To create a warm pool for an Auto Scaling group" } ], "RecordLifecycleActionHeartbeat": [ @@ -1431,9 +1434,16 @@ { "input": { "AutoScalingGroupName": "my-auto-scaling-group", + "DesiredConfiguration": { + "LaunchTemplate": { + "LaunchTemplateName": "my-template-for-auto-scaling", + "Version": "$Latest" + } + }, "Preferences": { "InstanceWarmup": 400, - "MinHealthyPercentage": 50 + "MinHealthyPercentage": 90, + "SkipMatching": true } }, "output": { @@ -1490,37 +1500,12 @@ { "input": { "AutoScalingGroupName": "my-auto-scaling-group", - "LaunchConfigurationName": "new-launch-config" - }, - "comments": { - "input": { + "LaunchTemplate": { + "LaunchTemplateName": "my-template-for-auto-scaling", + "Version": "2" }, - "output": { - } - }, - "description": "This example updates the launch configuration of the specified Auto Scaling group.", - "id": "autoscaling-update-auto-scaling-group-1", - "title": "To update the launch configuration" - }, - { - "input": { - "AutoScalingGroupName": "my-auto-scaling-group", - "MaxSize": 3, - "MinSize": 1 - }, - "comments": { - "input": { - }, - "output": { - } - }, - "description": "This example updates the minimum size and maximum size of the specified Auto Scaling group.", - "id": "autoscaling-update-auto-scaling-group-2", - "title": "To update the minimum and maximum size" - }, - { - "input": { - "AutoScalingGroupName": "my-auto-scaling-group", + "MaxSize": 5, + "MinSize": 1, "NewInstancesProtectedFromScaleIn": true }, "comments": { @@ -1529,9 +1514,9 @@ "output": { } }, - "description": "This example enables instance protection for the specified Auto Scaling group.", - "id": "autoscaling-update-auto-scaling-group-3", - "title": "To enable instance protection" + "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/botocore/data/autoscaling/2011-01-01/service-2.json b/botocore/data/autoscaling/2011-01-01/service-2.json index 050cd4d0..dab45823 100644 --- a/botocore/data/autoscaling/2011-01-01/service-2.json +++ b/botocore/data/autoscaling/2011-01-01/service-2.json @@ -39,7 +39,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ServiceLinkedRoleFailure"} ], - "documentation":"

Attaches one or more target groups to the specified Auto Scaling group.

This operation is used with the following load balancer types:

  • Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS.

  • Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP.

  • Gateway Load Balancer - Operates at the network layer (layer 3).

To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups API. To detach the target group from the Auto Scaling group, call the DetachLoadBalancerTargetGroups API.

This operation is additive and does not detach existing target groups or Classic Load Balancers from the Auto Scaling group.

For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Attaches one or more target groups to the specified Auto Scaling group.

This operation is used with the following load balancer types:

  • Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS.

  • Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP.

  • Gateway Load Balancer - Operates at the network layer (layer 3).

To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups API. To detach the target group from the Auto Scaling group, call the DetachLoadBalancerTargetGroups API.

This operation is additive and does not detach existing target groups or Classic Load Balancers from the Auto Scaling group.

For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" }, "AttachLoadBalancers":{ "name":"AttachLoadBalancers", @@ -56,7 +56,24 @@ {"shape":"ResourceContentionFault"}, {"shape":"ServiceLinkedRoleFailure"} ], - "documentation":"

To attach an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer, use the AttachLoadBalancerTargetGroups API operation instead.

Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers.

To describe the load balancers for an Auto Scaling group, call the DescribeLoadBalancers API. To detach the load balancer from the Auto Scaling group, call the DetachLoadBalancers API.

This operation is additive and does not detach existing Classic Load Balancers or target groups from the Auto Scaling group.

For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

To attach an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer, use the AttachLoadBalancerTargetGroups API operation instead.

Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers.

To describe the load balancers for an Auto Scaling group, call the DescribeLoadBalancers API. To detach a load balancer from the Auto Scaling group, call the DetachLoadBalancers API.

This operation is additive and does not detach existing Classic Load Balancers or target groups from the Auto Scaling group.

For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" + }, + "AttachTrafficSources":{ + "name":"AttachTrafficSources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachTrafficSourcesType"}, + "output":{ + "shape":"AttachTrafficSourcesResultType", + "resultWrapper":"AttachTrafficSourcesResult" + }, + "errors":[ + {"shape":"ResourceContentionFault"}, + {"shape":"ServiceLinkedRoleFailure"} + ], + "documentation":"

Reserved for use with Amazon VPC Lattice, which is in preview and subject to change. Do not use this API for production workloads. This API is also subject to change.

Attaches one or more traffic sources to the specified Auto Scaling group.

To describe the traffic sources for an Auto Scaling group, call the DescribeTrafficSources API. To detach a traffic source from the Auto Scaling group, call the DetachTrafficSources API.

This operation is additive and does not detach existing traffic sources from the Auto Scaling group.

" }, "BatchDeleteScheduledAction":{ "name":"BatchDeleteScheduledAction", @@ -139,7 +156,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ServiceLinkedRoleFailure"} ], - "documentation":"

We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.

Creates an Auto Scaling group with the specified name and attributes.

If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide.

For introductory exercises for creating an Auto Scaling group, see Getting started with Amazon EC2 Auto Scaling and Tutorial: Set up a scaled and load-balanced application in the Amazon EC2 Auto Scaling User Guide. For more information, see Auto Scaling groups in the Amazon EC2 Auto Scaling User Guide.

Every Auto Scaling group has three size parameters (DesiredCapacity, MaxSize, and MinSize). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.

" + "documentation":"

We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.

Creates an Auto Scaling group with the specified name and attributes.

If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Quotas for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

For introductory exercises for creating an Auto Scaling group, see Getting started with Amazon EC2 Auto Scaling and Tutorial: Set up a scaled and load-balanced application in the Amazon EC2 Auto Scaling User Guide. For more information, see Auto Scaling groups in the Amazon EC2 Auto Scaling User Guide.

Every Auto Scaling group has three size properties (DesiredCapacity, MaxSize, and MinSize). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.

" }, "CreateLaunchConfiguration":{ "name":"CreateLaunchConfiguration", @@ -153,7 +170,7 @@ {"shape":"LimitExceededFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Creates a launch configuration.

If you exceed your maximum limit of launch configurations, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide.

For more information, see Launch configurations in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Creates a launch configuration.

If you exceed your maximum limit of launch configurations, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Quotas for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

For more information, see Launch configurations in the Amazon EC2 Auto Scaling User Guide.

Amazon EC2 Auto Scaling configures instances launched as part of an Auto Scaling group using either a launch template or a launch configuration. We strongly recommend that you do not use launch configurations. They do not provide full functionality for Amazon EC2 Auto Scaling or Amazon EC2. For information about using launch templates, see Launch templates in the Amazon EC2 Auto Scaling User Guide.

" }, "CreateOrUpdateTags":{ "name":"CreateOrUpdateTags", @@ -168,7 +185,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ResourceInUseFault"} ], - "documentation":"

Creates or updates tags for the specified Auto Scaling group.

When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message.

For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Creates or updates tags for the specified Auto Scaling group.

When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message.

For more information, see Tag Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" }, "DeleteAutoScalingGroup":{ "name":"DeleteAutoScalingGroup", @@ -182,7 +199,7 @@ {"shape":"ResourceInUseFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Deletes the specified Auto Scaling group.

If the group has instances or scaling activities in progress, you must specify the option to force the deletion in order for it to succeed.

If the group has policies, deleting the group deletes the policies, the underlying alarm actions, and any alarm that no longer has an associated action.

To remove instances from the Auto Scaling group before deleting it, call the DetachInstances API with the list of instances and the option to decrement the desired capacity. This ensures that Amazon EC2 Auto Scaling does not launch replacement instances.

To terminate all instances before deleting the Auto Scaling group, call the UpdateAutoScalingGroup API and set the minimum size and desired capacity of the Auto Scaling group to zero.

" + "documentation":"

Deletes the specified Auto Scaling group.

If the group has instances or scaling activities in progress, you must specify the option to force the deletion in order for it to succeed. The force delete operation will also terminate the EC2 instances. If the group has a warm pool, the force delete option also deletes the warm pool.

To remove instances from the Auto Scaling group before deleting it, call the DetachInstances API with the list of instances and the option to decrement the desired capacity. This ensures that Amazon EC2 Auto Scaling does not launch replacement instances.

To terminate all instances before deleting the Auto Scaling group, call the UpdateAutoScalingGroup API and set the minimum size and desired capacity of the Auto Scaling group to zero.

If the group has scaling policies, deleting the group deletes the policies, the underlying alarm actions, and any alarm that no longer has an associated action.

For more information, see Delete your Auto Scaling infrastructure in the Amazon EC2 Auto Scaling User Guide.

" }, "DeleteLaunchConfiguration":{ "name":"DeleteLaunchConfiguration", @@ -295,7 +312,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Describes the current Amazon EC2 Auto Scaling resource quotas for your account.

When you establish an Amazon Web Services account, the account has initial quotas on the maximum number of Auto Scaling groups and launch configurations that you can create in a given Region. For more information, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Describes the current Amazon EC2 Auto Scaling resource quotas for your account.

When you establish an Amazon Web Services account, the account has initial quotas on the maximum number of Auto Scaling groups and launch configurations that you can create in a given Region. For more information, see Quotas for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

" }, "DescribeAdjustmentTypes":{ "name":"DescribeAdjustmentTypes", @@ -441,7 +458,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"InvalidNextToken"} ], - "documentation":"

Gets information about the load balancer target groups for the specified Auto Scaling group.

To determine the availability of registered instances, use the State element in the response. When you attach a target group to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the target group. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the target group is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the target group doesn't enter the InService state.

Target groups also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your target group state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary.

For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Gets information about the Elastic Load Balancing target groups for the specified Auto Scaling group.

To determine the attachment status of the target group, use the State element in the response. When you attach a target group to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the target group. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the target group is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the target group doesn't enter the InService state.

Target groups also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your target group state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary.

For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

You can use this operation to describe target groups that were attached by using AttachLoadBalancerTargetGroups, but not for target groups that were attached by using AttachTrafficSources.

" }, "DescribeLoadBalancers":{ "name":"DescribeLoadBalancers", @@ -458,7 +475,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"InvalidNextToken"} ], - "documentation":"

Gets information about the load balancers for the specified Auto Scaling group.

This operation describes only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the DescribeLoadBalancerTargetGroups API instead.

To determine the availability of registered instances, use the State element in the response. When you attach a load balancer to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the load balancer. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the load balancer is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the load balancer doesn't enter the InService state.

Load balancers also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your load balancer state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary.

For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Gets information about the load balancers for the specified Auto Scaling group.

This operation describes only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancer, use the DescribeLoadBalancerTargetGroups API instead.

To determine the attachment status of the load balancer, use the State element in the response. When you attach a load balancer to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the load balancer. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the load balancer is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the load balancer doesn't enter the InService state.

Load balancers also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your load balancer state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary.

For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" }, "DescribeMetricCollectionTypes":{ "name":"DescribeMetricCollectionTypes", @@ -473,7 +490,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.

The GroupStandbyInstances metric is not returned by default. You must explicitly request this metric when calling the EnableMetricsCollection API.

" + "documentation":"

Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.

" }, "DescribeNotificationConfigurations":{ "name":"DescribeNotificationConfigurations", @@ -574,7 +591,7 @@ {"shape":"InvalidNextToken"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Describes the specified tags.

You can use filters to limit the results. For example, you can query for the tags for a specific Auto Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for it to be included in the results.

You can also specify multiple filters. The result includes information for a particular tag only if it matches all the filters. If there's no match, no special message is returned.

For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Describes the specified tags.

You can use filters to limit the results. For example, you can query for the tags for a specific Auto Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for it to be included in the results.

You can also specify multiple filters. The result includes information for a particular tag only if it matches all the filters. If there's no match, no special message is returned.

For more information, see Tag Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" }, "DescribeTerminationPolicyTypes":{ "name":"DescribeTerminationPolicyTypes", @@ -589,7 +606,24 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Describes the termination policies supported by Amazon EC2 Auto Scaling.

For more information, see Controlling which Auto Scaling instances terminate during scale in in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Describes the termination policies supported by Amazon EC2 Auto Scaling.

For more information, see Work with Amazon EC2 Auto Scaling termination policies in the Amazon EC2 Auto Scaling User Guide.

" + }, + "DescribeTrafficSources":{ + "name":"DescribeTrafficSources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTrafficSourcesRequest"}, + "output":{ + "shape":"DescribeTrafficSourcesResponse", + "resultWrapper":"DescribeTrafficSourcesResult" + }, + "errors":[ + {"shape":"ResourceContentionFault"}, + {"shape":"InvalidNextToken"} + ], + "documentation":"

Reserved for use with Amazon VPC Lattice, which is in preview and subject to change. Do not use this API for production workloads. This API is also subject to change.

Gets information about the traffic sources for the specified Auto Scaling group.

" }, "DescribeWarmPool":{ "name":"DescribeWarmPool", @@ -639,7 +673,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Detaches one or more target groups from the specified Auto Scaling group.

" + "documentation":"

Detaches one or more target groups from the specified Auto Scaling group.

When you detach a target group, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the target group using the DescribeLoadBalancerTargetGroups API call. The instances remain running.

You can use this operation to detach target groups that were attached by using AttachLoadBalancerTargetGroups, but not for target groups that were attached by using AttachTrafficSources.

" }, "DetachLoadBalancers":{ "name":"DetachLoadBalancers", @@ -655,7 +689,23 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Detaches one or more Classic Load Balancers from the specified Auto Scaling group.

This operation detaches only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the DetachLoadBalancerTargetGroups API instead.

When you detach a load balancer, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the DescribeLoadBalancers API call. The instances remain running.

" + "documentation":"

Detaches one or more Classic Load Balancers from the specified Auto Scaling group.

This operation detaches only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancer, use the DetachLoadBalancerTargetGroups API instead.

When you detach a load balancer, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the DescribeLoadBalancers API call. The instances remain running.

" + }, + "DetachTrafficSources":{ + "name":"DetachTrafficSources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachTrafficSourcesType"}, + "output":{ + "shape":"DetachTrafficSourcesResultType", + "resultWrapper":"DetachTrafficSourcesResult" + }, + "errors":[ + {"shape":"ResourceContentionFault"} + ], + "documentation":"

Reserved for use with Amazon VPC Lattice, which is in preview and subject to change. Do not use this API for production workloads. This API is also subject to change.

Detaches one or more traffic sources from the specified Auto Scaling group.

" }, "DisableMetricsCollection":{ "name":"DisableMetricsCollection", @@ -667,7 +717,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Disables group metrics for the specified Auto Scaling group.

" + "documentation":"

Disables group metrics collection for the specified Auto Scaling group.

" }, "EnableMetricsCollection":{ "name":"EnableMetricsCollection", @@ -679,7 +729,7 @@ "errors":[ {"shape":"ResourceContentionFault"} ], - "documentation":"

Enables group metrics for the specified Auto Scaling group. For more information, see Monitoring CloudWatch metrics for your Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Enables group metrics collection for the specified Auto Scaling group.

You can use these metrics to track changes in an Auto Scaling group and to set alarms on threshold values. You can view group metrics using the Amazon EC2 Auto Scaling console or the CloudWatch console. For more information, see Monitor CloudWatch metrics for your Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" }, "EnterStandby":{ "name":"EnterStandby", @@ -803,7 +853,7 @@ {"shape":"LimitExceededFault"}, {"shape":"ResourceContentionFault"} ], - "documentation":"

Creates or updates a scheduled scaling action for an Auto Scaling group.

For more information, see Scheduled scaling in the Amazon EC2 Auto Scaling User Guide.

You can view the scheduled actions for an Auto Scaling group using the DescribeScheduledActions API call. If you are no longer using a scheduled action, you can delete it by calling the DeleteScheduledAction API.

" + "documentation":"

Creates or updates a scheduled scaling action for an Auto Scaling group.

For more information, see Scheduled scaling in the Amazon EC2 Auto Scaling User Guide.

You can view the scheduled actions for an Auto Scaling group using the DescribeScheduledActions API call. If you are no longer using a scheduled action, you can delete it by calling the DeleteScheduledAction API.

If you try to schedule your action in the past, Amazon EC2 Auto Scaling returns an error message.

" }, "PutWarmPool":{ "name":"PutWarmPool", @@ -953,7 +1003,7 @@ {"shape":"ResourceContentionFault"}, {"shape":"ServiceLinkedRoleFailure"} ], - "documentation":"

We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.

Updates the configuration for the specified Auto Scaling group.

To update an Auto Scaling group, specify the name of the group and the parameter that you want to change. Any parameters that you don't specify are not changed by this update request. The new settings take effect on any scaling activities after this call returns.

If you associate a new launch configuration or template with an Auto Scaling group, all new instances will get the updated configuration. Existing instances continue to run with the configuration that they were originally launched with. When you update a group to specify a mixed instances policy instead of a launch configuration or template, existing instances may be replaced to match the new purchasing options that you specified in the policy. For example, if the group currently has 100% On-Demand capacity and the policy specifies 50% Spot capacity, this means that half of your instances will be gradually terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so that updating your group does not compromise the performance or availability of your application.

Note the following about changing DesiredCapacity, MaxSize, or MinSize:

  • If a scale-in activity occurs as a result of a new DesiredCapacity value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate.

  • If you specify a new value for MinSize without specifying a value for DesiredCapacity, and the new MinSize is larger than the current size of the group, this sets the group's DesiredCapacity to the new MinSize value.

  • If you specify a new value for MaxSize without specifying a value for DesiredCapacity, and the new MaxSize is smaller than the current size of the group, this sets the group's DesiredCapacity to the new MaxSize value.

To see which parameters have been set, call the DescribeAutoScalingGroups API. To view the scaling policies for an Auto Scaling group, call the DescribePolicies API. If the group has scaling policies, you can update them by calling the PutScalingPolicy API.

" + "documentation":"

We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2.

Updates the configuration for the specified Auto Scaling group.

To update an Auto Scaling group, specify the name of the group and the property that you want to change. Any properties that you don't specify are not changed by this update request. The new settings take effect on any scaling activities after this call returns.

If you associate a new launch configuration or template with an Auto Scaling group, all new instances will get the updated configuration. Existing instances continue to run with the configuration that they were originally launched with. When you update a group to specify a mixed instances policy instead of a launch configuration or template, existing instances may be replaced to match the new purchasing options that you specified in the policy. For example, if the group currently has 100% On-Demand capacity and the policy specifies 50% Spot capacity, this means that half of your instances will be gradually terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so that updating your group does not compromise the performance or availability of your application.

Note the following about changing DesiredCapacity, MaxSize, or MinSize:

  • If a scale-in activity occurs as a result of a new DesiredCapacity value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate.

  • If you specify a new value for MinSize without specifying a value for DesiredCapacity, and the new MinSize is larger than the current size of the group, this sets the group's DesiredCapacity to the new MinSize value.

  • If you specify a new value for MaxSize without specifying a value for DesiredCapacity, and the new MaxSize is smaller than the current size of the group, this sets the group's DesiredCapacity to the new MaxSize value.

To see which properties have been set, call the DescribeAutoScalingGroups API. To view the scaling policies for an Auto Scaling group, call the DescribePolicies API. If the group has scaling policies, you can update them by calling the PutScalingPolicy API.

" } }, "shapes":{ @@ -1163,6 +1213,17 @@ "type":"list", "member":{"shape":"Alarm"} }, + "AllowedInstanceType":{ + "type":"string", + "max":30, + "min":1, + "pattern":"[a-zA-Z0-9\\.\\*]+" + }, + "AllowedInstanceTypes":{ + "type":"list", + "member":{"shape":"AllowedInstanceType"}, + "max":400 + }, "AlreadyExistsFault":{ "type":"structure", "members":{ @@ -1218,7 +1279,7 @@ }, "TargetGroupARNs":{ "shape":"TargetGroupARNs", - "documentation":"

The Amazon Resource Names (ARN) of the target groups. You can specify up to 10 target groups. To get the ARN of a target group, use the Elastic Load Balancing DescribeTargetGroups API operation.

" + "documentation":"

The Amazon Resource Names (ARNs) of the target groups. You can specify up to 10 target groups. To get the ARN of a target group, use the Elastic Load Balancing DescribeTargetGroups API operation.

" } } }, @@ -1244,6 +1305,28 @@ } } }, + "AttachTrafficSourcesResultType":{ + "type":"structure", + "members":{ + } + }, + "AttachTrafficSourcesType":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "TrafficSources" + ], + "members":{ + "AutoScalingGroupName":{ + "shape":"XmlStringMaxLen255", + "documentation":"

The name of the Auto Scaling group.

" + }, + "TrafficSources":{ + "shape":"TrafficSources", + "documentation":"

The unique identifiers of one or more traffic sources. You can specify up to 10 traffic sources.

Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group. Amazon EC2 Auto Scaling registers the running instances with the attached target groups. The target groups receive incoming traffic and route requests to one or more registered targets.

" + } + } + }, "AutoScalingGroup":{ "type":"structure", "required":[ @@ -1311,7 +1394,7 @@ }, "HealthCheckType":{ "shape":"XmlStringMaxLen32", - "documentation":"

The service to use for the health checks. The valid values are EC2 and ELB. If you configure an Auto Scaling group to use ELB health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks.

" + "documentation":"

Determines whether any additional health checks are performed on the instances in this group. Amazon EC2 health checks are always on.

The valid values are EC2 (default), ELB, and VPC_LATTICE. The VPC_LATTICE health check type is reserved for use with VPC Lattice, which is in preview release and is subject to change.

" }, "HealthCheckGracePeriod":{ "shape":"HealthCheckGracePeriod", @@ -1388,6 +1471,10 @@ "DefaultInstanceWarmup":{ "shape":"DefaultInstanceWarmup", "documentation":"

The duration of the default instance warmup, in seconds.

" + }, + "TrafficSources":{ + "shape":"TrafficSources", + "documentation":"

The unique identifiers of the traffic sources.

" } }, "documentation":"

Describes an Auto Scaling group.

" @@ -1404,7 +1491,7 @@ "members":{ "AutoScalingGroupNames":{ "shape":"AutoScalingGroupNames", - "documentation":"

The names of the Auto Scaling groups. By default, you can only specify up to 50 names. You can optionally increase this limit using the MaxRecords parameter.

If you omit this parameter, all Auto Scaling groups are described.

" + "documentation":"

The names of the Auto Scaling groups. By default, you can only specify up to 50 names. You can optionally increase this limit using the MaxRecords property.

If you omit this property, all Auto Scaling groups are described.

" }, "NextToken":{ "shape":"XmlString", @@ -1473,7 +1560,7 @@ }, "LifecycleState":{ "shape":"XmlStringMaxLen32", - "documentation":"

The lifecycle state for the instance. The Quarantined state is not used. For information about lifecycle states, see Instance lifecycle in the Amazon EC2 Auto Scaling User Guide.

Valid Values: Pending | Pending:Wait | Pending:Proceed | Quarantined | InService | Terminating | Terminating:Wait | Terminating:Proceed | Terminated | Detaching | Detached | EnteringStandby | Standby | Warmed:Pending | Warmed:Pending:Wait | Warmed:Pending:Proceed | Warmed:Terminating | Warmed:Terminating:Wait | Warmed:Terminating:Proceed | Warmed:Terminated | Warmed:Stopped | Warmed:Running

" + "documentation":"

The lifecycle state for the instance. The Quarantined state is not used. For information about lifecycle states, see Instance lifecycle in the Amazon EC2 Auto Scaling User Guide.

Valid values: Pending | Pending:Wait | Pending:Proceed | Quarantined | InService | Terminating | Terminating:Wait | Terminating:Proceed | Terminated | Detaching | Detached | EnteringStandby | Standby | Warmed:Pending | Warmed:Pending:Wait | Warmed:Pending:Proceed | Warmed:Terminating | Warmed:Terminating:Wait | Warmed:Terminating:Proceed | Warmed:Terminated | Warmed:Stopped | Warmed:Running

" }, "HealthStatus":{ "shape":"XmlStringMaxLen32", @@ -1625,19 +1712,19 @@ "members":{ "VirtualName":{ "shape":"XmlStringMaxLen255", - "documentation":"

The name of the virtual device (for example, ephemeral0).

You can specify either VirtualName or Ebs, but not both.

" + "documentation":"

The name of the instance store volume (virtual device) to attach to an instance at launch. The name must be in the form ephemeralX where X is a number starting from zero (0), for example, ephemeral0.

" }, "DeviceName":{ "shape":"XmlStringMaxLen255", - "documentation":"

The device name exposed to the EC2 instance (for example, /dev/sdh or xvdh). For more information, see Device Naming on Linux Instances in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

The device name assigned to the volume (for example, /dev/sdh or xvdh). For more information, see Device naming on Linux instances in the Amazon EC2 User Guide for Linux Instances.

To define a block device mapping, set the device name and exactly one of the following properties: Ebs, NoDevice, or VirtualName.

" }, "Ebs":{ "shape":"Ebs", - "documentation":"

Parameters used to automatically set up EBS volumes when an instance is launched.

You can specify either VirtualName or Ebs, but not both.

" + "documentation":"

Information to attach an EBS volume to an instance at launch.

" }, "NoDevice":{ "shape":"NoDevice", - "documentation":"

Setting this value to true suppresses the specified device included in the block device mapping of the AMI.

If NoDevice is true for the root device, instances might fail the EC2 health check. In that case, Amazon EC2 Auto Scaling launches replacement instances.

If you specify NoDevice, you cannot specify Ebs.

" + "documentation":"

Setting this value to true prevents a volume that is included in the block device mapping of the AMI from being mapped to the specified device name at launch.

If NoDevice is true for the root device, instances might fail the EC2 health check. In that case, Amazon EC2 Auto Scaling launches replacement instances.

" } }, "documentation":"

Describes a block device mapping.

" @@ -1732,7 +1819,7 @@ }, "LifecycleActionResult":{ "shape":"LifecycleActionResult", - "documentation":"

The action for the group to take. This parameter can be either CONTINUE or ABANDON.

" + "documentation":"

The action for the group to take. You can specify either CONTINUE or ABANDON.

" }, "InstanceId":{ "shape":"XmlStringMaxLen19", @@ -1764,7 +1851,7 @@ "members":{ "AutoScalingGroupName":{ "shape":"XmlStringMaxLen255", - "documentation":"

The name of the Auto Scaling group. This name must be unique per Region per account.

" + "documentation":"

The name of the Auto Scaling group. This name must be unique per Region per account.

The name can contain any ASCII character 33 to 126 including most punctuation characters, digits, and upper and lowercased letters.

You cannot use a colon (:) in the name.

" }, "LaunchConfigurationName":{ "shape":"XmlStringMaxLen255", @@ -1772,11 +1859,11 @@ }, "LaunchTemplate":{ "shape":"LaunchTemplateSpecification", - "documentation":"

Parameters used to specify the launch template and version to use to launch instances.

Conditional: You must specify either a launch template (LaunchTemplate or MixedInstancesPolicy) or a launch configuration (LaunchConfigurationName or InstanceId).

The launch template that is specified must be configured for use with an Auto Scaling group. For more information, see Creating a launch template for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Information used to specify the launch template and version to use to launch instances.

Conditional: You must specify either a launch template (LaunchTemplate or MixedInstancesPolicy) or a launch configuration (LaunchConfigurationName or InstanceId).

The launch template that is specified must be configured for use with an Auto Scaling group. For more information, see Creating a launch template for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" }, "MixedInstancesPolicy":{ "shape":"MixedInstancesPolicy", - "documentation":"

An embedded object that specifies a mixed instances policy.

For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

The mixed instances policy. For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide.

" }, "InstanceId":{ "shape":"XmlStringMaxLen19", @@ -1800,35 +1887,35 @@ }, "AvailabilityZones":{ "shape":"AvailabilityZones", - "documentation":"

A list of Availability Zones where instances in the Auto Scaling group can be created. This parameter is optional if you specify one or more subnets for VPCZoneIdentifier.

Conditional: If your account supports EC2-Classic and VPC, this parameter is required to launch instances into EC2-Classic.

" + "documentation":"

A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the VPCZoneIdentifier property, or for attaching a network interface when an existing network interface ID is specified in a launch template.

" }, "LoadBalancerNames":{ "shape":"LoadBalancerNames", - "documentation":"

A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancers, specify the TargetGroupARNs property instead.

" + "documentation":"

A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancer, specify the TargetGroupARNs property instead.

" }, "TargetGroupARNs":{ "shape":"TargetGroupARNs", - "documentation":"

The Amazon Resource Names (ARN) of the target groups to associate with the Auto Scaling group. Instances are registered as targets in a target group, and traffic is routed to the target group. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" }, "HealthCheckType":{ "shape":"XmlStringMaxLen32", - "documentation":"

The service to use for the health checks. The valid values are EC2 (default) and ELB. If you configure an Auto Scaling group to use load balancer (ELB) health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks. For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Determines whether any additional health checks are performed on the instances in this group. Amazon EC2 health checks are always on. For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide.

The valid values are EC2 (default), ELB, and VPC_LATTICE. The VPC_LATTICE health check type is reserved for use with VPC Lattice, which is in preview release and is subject to change.

" }, "HealthCheckGracePeriod":{ "shape":"HealthCheckGracePeriod", - "documentation":"

The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed Elastic Load Balancing or custom health check. This is useful if your instances do not immediately pass these health checks after they enter the InService state. For more information, see Health check grace period in the Amazon EC2 Auto Scaling User Guide.

Default: 0 seconds

" + "documentation":"

The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check. This is useful if your instances do not immediately pass their health checks after they enter the InService state. For more information, see Set the health check grace period for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

Default: 0 seconds

" }, "PlacementGroup":{ "shape":"XmlStringMaxLen255", - "documentation":"

The name of an existing placement group into which to launch your instances. For more information, see Placement groups in the Amazon EC2 User Guide for Linux Instances.

A cluster placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group.

" + "documentation":"

The name of the placement group into which to launch your instances. For more information, see Placement groups in the Amazon EC2 User Guide for Linux Instances.

A cluster placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group.

" }, "VPCZoneIdentifier":{ "shape":"XmlStringMaxLen2047", - "documentation":"

A comma-separated list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If you specify VPCZoneIdentifier with AvailabilityZones, the subnets that you specify for this parameter must reside in those Availability Zones.

Conditional: If your account supports EC2-Classic and VPC, this parameter is required to launch instances into a VPC.

" + "documentation":"

A comma-separated list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If you specify VPCZoneIdentifier with AvailabilityZones, the subnets that you specify must reside in those Availability Zones.

" }, "TerminationPolicies":{ "shape":"TerminationPolicies", - "documentation":"

A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see Controlling which Auto Scaling instances terminate during scale in in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see Work with Amazon EC2 Auto Scaling termination policies in the Amazon EC2 Auto Scaling User Guide.

Valid values: Default | AllocationStrategy | ClosestToNextInstanceHour | NewestInstance | OldestInstance | OldestLaunchConfiguration | OldestLaunchTemplate | arn:aws:lambda:region:account-id:function:my-function:my-alias

" }, "NewInstancesProtectedFromScaleIn":{ "shape":"InstanceProtected", @@ -1836,19 +1923,19 @@ }, "CapacityRebalance":{ "shape":"CapacityRebalanceEnabled", - "documentation":"

Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see Amazon EC2 Auto Scaling Capacity Rebalancing in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions in the in the Amazon EC2 Auto Scaling User Guide.

" }, "LifecycleHookSpecificationList":{ "shape":"LifecycleHookSpecifications", - "documentation":"

One or more lifecycle hooks for the group, which specify actions to perform when Amazon EC2 Auto Scaling launches or terminates instances.

" + "documentation":"

One or more lifecycle hooks to add to the Auto Scaling group before instances are launched.

" }, "Tags":{ "shape":"Tags", - "documentation":"

One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see Tag Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" }, "ServiceLinkedRoleARN":{ "shape":"ResourceName", - "documentation":"

The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named AWSServiceRoleForAutoScaling, which it creates if it does not exist. For more information, see Service-linked roles in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named AWSServiceRoleForAutoScaling, which it creates if it does not exist. For more information, see Service-linked roles in the Amazon EC2 Auto Scaling User Guide.

" }, "MaxInstanceLifetime":{ "shape":"MaxInstanceLifetime", @@ -1865,6 +1952,10 @@ "DefaultInstanceWarmup":{ "shape":"DefaultInstanceWarmup", "documentation":"

The amount of time, in seconds, until a newly launched instance can contribute to the Amazon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scaling aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the amount of time that it takes for resource consumption to become stable after an instance reaches the InService state. For more information, see Set the default instance warmup for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

To manage your warm-up settings at the group level, we recommend that you set the default instance warmup, even if its value is set to 0 seconds. This also optimizes the performance of scaling policies that scale continuously, such as target tracking and step scaling policies.

If you need to remove a value that you previously set, include the property but specify -1 for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a minimum value of 0.

Default: None

" + }, + "TrafficSources":{ + "shape":"TrafficSources", + "documentation":"

Reserved for use with Amazon VPC Lattice, which is in preview release and is subject to change. Do not use this parameter for production workloads. It is also subject to change.

The unique identifiers of one or more traffic sources.

Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group. Amazon EC2 Auto Scaling registers the running instances with the attached target groups. The target groups receive incoming traffic and route requests to one or more registered targets.

" } } }, @@ -1878,23 +1969,23 @@ }, "ImageId":{ "shape":"XmlStringMaxLen255", - "documentation":"

The ID of the Amazon Machine Image (AMI) that was assigned during registration. For more information, see Finding an AMI in the Amazon EC2 User Guide for Linux Instances.

If you do not specify InstanceId, you must specify ImageId.

" + "documentation":"

The ID of the Amazon Machine Image (AMI) that was assigned during registration. For more information, see Finding a Linux AMI in the Amazon EC2 User Guide for Linux Instances.

If you specify InstanceId, an ImageId is not required.

" }, "KeyName":{ "shape":"XmlStringMaxLen255", - "documentation":"

The name of the key pair. For more information, see Amazon EC2 Key Pairs in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

The name of the key pair. For more information, see Amazon EC2 key pairs and Linux instances in the Amazon EC2 User Guide for Linux Instances.

" }, "SecurityGroups":{ "shape":"SecurityGroups", - "documentation":"

A list that contains the security groups to assign to the instances in the Auto Scaling group.

[EC2-VPC] Specify the security group IDs. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

[EC2-Classic] Specify either the security group names or the security group IDs. For more information, see Amazon EC2 Security Groups in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

A list that contains the security group IDs to assign to the instances in the Auto Scaling group. For more information, see Control traffic to resources using security groups in the Amazon Virtual Private Cloud User Guide.

" }, "ClassicLinkVPCId":{ "shape":"XmlStringMaxLen255", - "documentation":"

EC2-Classic retires on August 15, 2022. This parameter is not supported after that date.

The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. For more information, see ClassicLink in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

Available for backward compatibility.

" }, "ClassicLinkVPCSecurityGroups":{ "shape":"ClassicLinkVPCSecurityGroups", - "documentation":"

EC2-Classic retires on August 15, 2022. This parameter is not supported after that date.

The IDs of one or more security groups for the specified ClassicLink-enabled VPC. For more information, see ClassicLink in the Amazon EC2 User Guide for Linux Instances.

If you specify the ClassicLinkVPCId parameter, you must specify this parameter.

" + "documentation":"

Available for backward compatibility.

" }, "UserData":{ "shape":"XmlStringUserData", @@ -1902,23 +1993,23 @@ }, "InstanceId":{ "shape":"XmlStringMaxLen19", - "documentation":"

The ID of the instance to use to create the launch configuration. The new launch configuration derives attributes from the instance, except for the block device mapping.

To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request.

For more information, see Creating a launch configuration using an EC2 instance in the Amazon EC2 Auto Scaling User Guide.

If you do not specify InstanceId, you must specify both ImageId and InstanceType.

" + "documentation":"

The ID of the instance to use to create the launch configuration. The new launch configuration derives attributes from the instance, except for the block device mapping.

To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request.

For more information, see Creating a launch configuration using an EC2 instance in the Amazon EC2 Auto Scaling User Guide.

" }, "InstanceType":{ "shape":"XmlStringMaxLen255", - "documentation":"

Specifies the instance type of the EC2 instance.

For information about available instance types, see Available Instance Types in the Amazon EC2 User Guide for Linux Instances.

If you do not specify InstanceId, you must specify InstanceType.

" + "documentation":"

Specifies the instance type of the EC2 instance. For information about available instance types, see Available instance types in the Amazon EC2 User Guide for Linux Instances.

If you specify InstanceId, an InstanceType is not required.

" }, "KernelId":{ "shape":"XmlStringMaxLen255", - "documentation":"

The ID of the kernel associated with the AMI.

" + "documentation":"

The ID of the kernel associated with the AMI.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User provided kernels in the Amazon EC2 User Guide for Linux Instances.

" }, "RamdiskId":{ "shape":"XmlStringMaxLen255", - "documentation":"

The ID of the RAM disk to select.

" + "documentation":"

The ID of the RAM disk to select.

We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see User provided kernels in the Amazon EC2 User Guide for Linux Instances.

" }, "BlockDeviceMappings":{ "shape":"BlockDeviceMappings", - "documentation":"

A block device mapping, which specifies the block devices for the instance. You can specify virtual devices and EBS volumes. For more information, see Block Device Mapping in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

The block device mapping entries that define the block devices to attach to the instances at launch. By default, the block devices specified in the block device mapping for the AMI are used. For more information, see Block device mappings in the Amazon EC2 User Guide for Linux Instances.

" }, "InstanceMonitoring":{ "shape":"InstanceMonitoring", @@ -1926,11 +2017,11 @@ }, "SpotPrice":{ "shape":"SpotPrice", - "documentation":"

The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see Requesting Spot Instances in the Amazon EC2 Auto Scaling User Guide.

When you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price.

" + "documentation":"

The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see Request Spot Instances for fault-tolerant and flexible applications in the Amazon EC2 Auto Scaling User Guide.

Valid Range: Minimum value of 0.001

When you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price.

" }, "IamInstanceProfile":{ "shape":"XmlStringMaxLen1600", - "documentation":"

The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance. The instance profile contains the IAM role.

For more information, see IAM role for applications that run on Amazon EC2 instances in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance. The instance profile contains the IAM role. For more information, see IAM role for applications that run on Amazon EC2 instances in the Amazon EC2 Auto Scaling User Guide.

" }, "EbsOptimized":{ "shape":"EbsOptimized", @@ -1938,11 +2029,11 @@ }, "AssociatePublicIpAddress":{ "shape":"AssociatePublicIpAddress", - "documentation":"

For Auto Scaling groups that are running in a virtual private cloud (VPC), specifies whether to assign a public IP address to the group's instances. If you specify true, each instance in the Auto Scaling group receives a unique public IP address. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide.

If you specify this parameter, you must specify at least one subnet for VPCZoneIdentifier when you create your group.

If the instance is launched into a default subnet, the default is to assign a public IP address, unless you disabled the option to assign a public IP address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IP address, unless you enabled the option to assign a public IP address on the subnet.

" + "documentation":"

Specifies whether to assign a public IPv4 address to the group's instances. If the instance is launched into a default subnet, the default is to assign a public IPv4 address, unless you disabled the option to assign a public IPv4 address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IPv4 address, unless you enabled the option to assign a public IPv4 address on the subnet.

If you specify true, each instance in the Auto Scaling group receives a unique public IPv4 address. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide.

If you specify this property, you must specify at least one subnet for VPCZoneIdentifier when you create your group.

" }, "PlacementTenancy":{ "shape":"XmlStringMaxLen64", - "documentation":"

The tenancy of the instance. An instance with dedicated tenancy runs on isolated, single-tenant hardware and can only be launched into a VPC.

To launch dedicated instances into a shared tenancy VPC (a VPC with the instance placement tenancy attribute set to default), you must set the value of this parameter to dedicated.

If you specify PlacementTenancy, you must specify at least one subnet for VPCZoneIdentifier when you create your group.

For more information, see Configuring instance tenancy with Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

Valid Values: default | dedicated

" + "documentation":"

The tenancy of the instance, either default or dedicated. An instance with dedicated tenancy runs on isolated, single-tenant hardware and can only be launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the instance placement tenancy attribute set to default), you must set the value of this property to dedicated. For more information, see Configuring instance tenancy with Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

If you specify PlacementTenancy, you must specify at least one subnet for VPCZoneIdentifier when you create your group.

Valid values: default | dedicated

" }, "MetadataOptions":{ "shape":"InstanceMetadataOptions", @@ -1962,11 +2053,6 @@ }, "CustomizedMetricSpecification":{ "type":"structure", - "required":[ - "MetricName", - "Namespace", - "Statistic" - ], "members":{ "MetricName":{ "shape":"MetricName", @@ -1987,9 +2073,13 @@ "Unit":{ "shape":"MetricUnit", "documentation":"

The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.

" + }, + "Metrics":{ + "shape":"TargetTrackingMetricDataQueries", + "documentation":"

The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions.

" } }, - "documentation":"

Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Amazon EC2 Auto Scaling.

To create your customized metric specification:

  • Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see Publish custom metrics in the Amazon CloudWatch User Guide.

  • Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases.

For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts.

Each individual service provides information about the metrics, namespace, and dimensions they use. For more information, see Amazon Web Services services that publish CloudWatch metrics in the Amazon CloudWatch User Guide.

" + "documentation":"

Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Amazon EC2 Auto Scaling.

To create your customized metric specification:

  • Add values for each required property from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see Publish custom metrics in the Amazon CloudWatch User Guide.

  • Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases.

For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts.

Each individual service provides information about the metrics, namespace, and dimensions they use. For more information, see Amazon Web Services services that publish CloudWatch metrics in the Amazon CloudWatch User Guide.

" }, "DefaultInstanceWarmup":{"type":"integer"}, "DeleteAutoScalingGroupType":{ @@ -2002,7 +2092,7 @@ }, "ForceDelete":{ "shape":"ForceDelete", - "documentation":"

Specifies that the group is to be deleted along with all instances associated with the group, without waiting for all instances to be terminated. This parameter also deletes any outstanding lifecycle actions associated with the group.

" + "documentation":"

Specifies that the group is to be deleted along with all instances associated with the group, without waiting for all instances to be terminated. This action also deletes any outstanding lifecycle actions associated with the group.

" } } }, @@ -2140,7 +2230,7 @@ "members":{ "InstanceIds":{ "shape":"InstanceIds", - "documentation":"

The IDs of the instances. If you omit this parameter, all Auto Scaling instances are described. If you specify an ID that does not exist, it is ignored with no error.

Array Members: Maximum number of 50 items.

" + "documentation":"

The IDs of the instances. If you omit this property, all Auto Scaling instances are described. If you specify an ID that does not exist, it is ignored with no error.

Array Members: Maximum number of 50 items.

" }, "MaxRecords":{ "shape":"MaxRecords", @@ -2166,7 +2256,7 @@ "members":{ "InstanceRefreshes":{ "shape":"InstanceRefreshes", - "documentation":"

The instance refreshes for the specified group.

" + "documentation":"

The instance refreshes for the specified group, sorted by creation timestamp in descending order.

" }, "NextToken":{ "shape":"XmlString", @@ -2224,7 +2314,7 @@ }, "LifecycleHookNames":{ "shape":"LifecycleHookNames", - "documentation":"

The names of one or more lifecycle hooks. If you omit this parameter, all lifecycle hooks are described.

" + "documentation":"

The names of one or more lifecycle hooks. If you omit this property, all lifecycle hooks are described.

" } } }, @@ -2295,7 +2385,7 @@ "members":{ "Metrics":{ "shape":"MetricCollectionTypes", - "documentation":"

One or more metrics.

" + "documentation":"

The metrics.

" }, "Granularities":{ "shape":"MetricGranularityTypes", @@ -2343,7 +2433,7 @@ }, "PolicyNames":{ "shape":"PolicyNames", - "documentation":"

The names of one or more policies. If you omit this parameter, all policies are described. If a group name is provided, the results are limited to that group. If you specify an unknown policy name, it is ignored with no error.

Array Members: Maximum number of 50 items.

" + "documentation":"

The names of one or more policies. If you omit this property, all policies are described. If a group name is provided, the results are limited to that group. If you specify an unknown policy name, it is ignored with no error.

Array Members: Maximum number of 50 items.

" }, "PolicyTypes":{ "shape":"PolicyTypes", @@ -2364,7 +2454,7 @@ "members":{ "ActivityIds":{ "shape":"ActivityIds", - "documentation":"

The activity IDs of the desired scaling activities. If you omit this parameter, all activities for the past six weeks are described. If unknown activities are requested, they are ignored with no error. If you specify an Auto Scaling group, the results are limited to that group.

Array Members: Maximum number of 50 IDs.

" + "documentation":"

The activity IDs of the desired scaling activities. If you omit this property, all activities for the past six weeks are described. If unknown activities are requested, they are ignored with no error. If you specify an Auto Scaling group, the results are limited to that group.

Array Members: Maximum number of 50 IDs.

" }, "AutoScalingGroupName":{ "shape":"XmlStringMaxLen255", @@ -2393,15 +2483,15 @@ }, "ScheduledActionNames":{ "shape":"ScheduledActionNames", - "documentation":"

The names of one or more scheduled actions. If you omit this parameter, all scheduled actions are described. If you specify an unknown scheduled action, it is ignored with no error.

Array Members: Maximum number of 50 actions.

" + "documentation":"

The names of one or more scheduled actions. If you omit this property, all scheduled actions are described. If you specify an unknown scheduled action, it is ignored with no error.

Array Members: Maximum number of 50 actions.

" }, "StartTime":{ "shape":"TimestampType", - "documentation":"

The earliest scheduled start time to return. If scheduled action names are provided, this parameter is ignored.

" + "documentation":"

The earliest scheduled start time to return. If scheduled action names are provided, this property is ignored.

" }, "EndTime":{ "shape":"TimestampType", - "documentation":"

The latest scheduled start time to return. If scheduled action names are provided, this parameter is ignored.

" + "documentation":"

The latest scheduled start time to return. If scheduled action names are provided, this property is ignored.

" }, "NextToken":{ "shape":"XmlString", @@ -2439,6 +2529,44 @@ } } }, + "DescribeTrafficSourcesRequest":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "TrafficSourceType" + ], + "members":{ + "AutoScalingGroupName":{ + "shape":"XmlStringMaxLen255", + "documentation":"

The name of the Auto Scaling group.

" + }, + "TrafficSourceType":{ + "shape":"XmlStringMaxLen255", + "documentation":"

The type of traffic source you are describing. Currently, the only valid value is vpc-lattice.

" + }, + "NextToken":{ + "shape":"XmlString", + "documentation":"

The token for the next set of items to return. (You received this token from a previous call.)

" + }, + "MaxRecords":{ + "shape":"MaxRecords", + "documentation":"

The maximum number of items to return with this call. The maximum value is 50.

" + } + } + }, + "DescribeTrafficSourcesResponse":{ + "type":"structure", + "members":{ + "TrafficSources":{ + "shape":"TrafficSourceStates", + "documentation":"

Information about the traffic sources.

" + }, + "NextToken":{ + "shape":"XmlString", + "documentation":"

This string indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return.

" + } + } + }, "DescribeWarmPoolAnswer":{ "type":"structure", "members":{ @@ -2452,7 +2580,7 @@ }, "NextToken":{ "shape":"XmlString", - "documentation":"

The token for the next set of items to return. (You received this token from a previous call.)

" + "documentation":"

This string indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return.

" } } }, @@ -2556,6 +2684,28 @@ } } }, + "DetachTrafficSourcesResultType":{ + "type":"structure", + "members":{ + } + }, + "DetachTrafficSourcesType":{ + "type":"structure", + "required":[ + "AutoScalingGroupName", + "TrafficSources" + ], + "members":{ + "AutoScalingGroupName":{ + "shape":"XmlStringMaxLen255", + "documentation":"

The name of the Auto Scaling group.

" + }, + "TrafficSources":{ + "shape":"TrafficSources", + "documentation":"

The unique identifiers of one or more traffic sources you are detaching. You can specify up to 10 traffic sources.

Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group. When you detach a target group, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the target group using the DescribeTrafficSources API call. The instances continue to run.

" + } + } + }, "DisableMetricsCollectionQuery":{ "type":"structure", "required":["AutoScalingGroupName"], @@ -2566,7 +2716,7 @@ }, "Metrics":{ "shape":"Metrics", - "documentation":"

Specifies one or more of the following metrics:

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

  • GroupInServiceCapacity

  • GroupPendingCapacity

  • GroupStandbyCapacity

  • GroupTerminatingCapacity

  • GroupTotalCapacity

  • WarmPoolDesiredCapacity

  • WarmPoolWarmedCapacity

  • WarmPoolPendingCapacity

  • WarmPoolTerminatingCapacity

  • WarmPoolTotalCapacity

  • GroupAndWarmPoolDesiredCapacity

  • GroupAndWarmPoolTotalCapacity

If you omit this parameter, all metrics are disabled.

" + "documentation":"

Identifies the metrics to disable.

You can specify one or more of the following metrics:

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

  • GroupInServiceCapacity

  • GroupPendingCapacity

  • GroupStandbyCapacity

  • GroupTerminatingCapacity

  • GroupTotalCapacity

  • WarmPoolDesiredCapacity

  • WarmPoolWarmedCapacity

  • WarmPoolPendingCapacity

  • WarmPoolTerminatingCapacity

  • WarmPoolTotalCapacity

  • GroupAndWarmPoolDesiredCapacity

  • GroupAndWarmPoolTotalCapacity

If you omit this property, all metrics are disabled.

For more information, see Auto Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

" } } }, @@ -2584,7 +2734,7 @@ }, "VolumeType":{ "shape":"BlockDeviceEbsVolumeType", - "documentation":"

The volume type. For more information, see Amazon EBS volume types in the Amazon EC2 User Guide for Linux Instances.

Valid Values: standard | io1 | gp2 | st1 | sc1 | gp3

" + "documentation":"

The volume type. For more information, see Amazon EBS volume types in the Amazon EC2 User Guide for Linux Instances.

Valid values: standard | io1 | gp2 | st1 | sc1 | gp3

" }, "DeleteOnTermination":{ "shape":"BlockDeviceEbsDeleteOnTermination", @@ -2596,7 +2746,7 @@ }, "Encrypted":{ "shape":"BlockDeviceEbsEncrypted", - "documentation":"

Specifies whether the volume should be encrypted. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported instance types. If your AMI uses encrypted volumes, you can also only launch it on supported instance types.

If you are creating a volume from a snapshot, you cannot create an unencrypted volume from an encrypted snapshot. Also, you cannot specify a KMS key ID when using a launch configuration.

If you enable encryption by default, the EBS volumes that you create are always encrypted, either using the Amazon Web Services managed KMS key or a customer-managed KMS key, regardless of whether the snapshot was encrypted.

For more information, see Using Amazon Web Services KMS keys to encrypt Amazon EBS volumes in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Specifies whether the volume should be encrypted. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported instance types. If your AMI uses encrypted volumes, you can also only launch it on supported instance types.

If you are creating a volume from a snapshot, you cannot create an unencrypted volume from an encrypted snapshot. Also, you cannot specify a KMS key ID when using a launch configuration.

If you enable encryption by default, the EBS volumes that you create are always encrypted, either using the Amazon Web Services managed KMS key or a customer-managed KMS key, regardless of whether the snapshot was encrypted.

For more information, see Use Amazon Web Services KMS keys to encrypt Amazon EBS volumes in the Amazon EC2 Auto Scaling User Guide.

" }, "Throughput":{ "shape":"BlockDeviceEbsThroughput", @@ -2619,11 +2769,11 @@ }, "Metrics":{ "shape":"Metrics", - "documentation":"

Specifies which group-level metrics to start collecting. You can specify one or more of the following metrics:

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

The instance weighting feature supports the following additional metrics:

  • GroupInServiceCapacity

  • GroupPendingCapacity

  • GroupStandbyCapacity

  • GroupTerminatingCapacity

  • GroupTotalCapacity

The warm pools feature supports the following additional metrics:

  • WarmPoolDesiredCapacity

  • WarmPoolWarmedCapacity

  • WarmPoolPendingCapacity

  • WarmPoolTerminatingCapacity

  • WarmPoolTotalCapacity

  • GroupAndWarmPoolDesiredCapacity

  • GroupAndWarmPoolTotalCapacity

If you omit this parameter, all metrics are enabled.

" + "documentation":"

Identifies the metrics to enable.

You can specify one or more of the following metrics:

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

  • GroupInServiceCapacity

  • GroupPendingCapacity

  • GroupStandbyCapacity

  • GroupTerminatingCapacity

  • GroupTotalCapacity

  • WarmPoolDesiredCapacity

  • WarmPoolWarmedCapacity

  • WarmPoolPendingCapacity

  • WarmPoolTerminatingCapacity

  • WarmPoolTotalCapacity

  • GroupAndWarmPoolDesiredCapacity

  • GroupAndWarmPoolTotalCapacity

If you specify Granularity and don't specify any metrics, all metrics are enabled.

For more information, see Auto Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

" }, "Granularity":{ "shape":"XmlStringMaxLen255", - "documentation":"

The granularity to associate with the metrics to collect. The only valid value is 1Minute.

" + "documentation":"

The frequency at which Amazon EC2 Auto Scaling sends aggregated data to CloudWatch. The only valid value is 1Minute.

" } } }, @@ -2632,14 +2782,14 @@ "members":{ "Metric":{ "shape":"XmlStringMaxLen255", - "documentation":"

One of the following metrics:

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

  • GroupInServiceCapacity

  • GroupPendingCapacity

  • GroupStandbyCapacity

  • GroupTerminatingCapacity

  • GroupTotalCapacity

  • WarmPoolDesiredCapacity

  • WarmPoolWarmedCapacity

  • WarmPoolPendingCapacity

  • WarmPoolTerminatingCapacity

  • WarmPoolTotalCapacity

  • GroupAndWarmPoolDesiredCapacity

  • GroupAndWarmPoolTotalCapacity

" + "documentation":"

One of the following metrics:

  • GroupMinSize

  • GroupMaxSize

  • GroupDesiredCapacity

  • GroupInServiceInstances

  • GroupPendingInstances

  • GroupStandbyInstances

  • GroupTerminatingInstances

  • GroupTotalInstances

  • GroupInServiceCapacity

  • GroupPendingCapacity

  • GroupStandbyCapacity

  • GroupTerminatingCapacity

  • GroupTotalCapacity

  • WarmPoolDesiredCapacity

  • WarmPoolWarmedCapacity

  • WarmPoolPendingCapacity

  • WarmPoolTerminatingCapacity

  • WarmPoolTotalCapacity

  • GroupAndWarmPoolDesiredCapacity

  • GroupAndWarmPoolTotalCapacity

For more information, see Auto Scaling group metrics in the Amazon EC2 Auto Scaling User Guide.

" }, "Granularity":{ "shape":"XmlStringMaxLen255", "documentation":"

The granularity of the metric. The only valid value is 1Minute.

" } }, - "documentation":"

Describes an enabled metric.

" + "documentation":"

Describes an enabled Auto Scaling group metric.

" }, "EnabledMetrics":{ "type":"list", @@ -2771,7 +2921,7 @@ "documentation":"

One or more filter values. Filter values are case-sensitive.

If you specify multiple values for a filter, the values are automatically logically joined with an OR, and the request returns all results that match any of the specified values. For example, specify \"tag:environment\" for the filter name and \"production,development\" for the filter values to find Auto Scaling groups with the tag \"environment=production\" or \"environment=development\".

" } }, - "documentation":"

Describes a filter that is used to return a more specific list of results from a describe operation.

If you specify multiple filters, the filters are automatically logically joined with an AND, and the request returns only the results that match all of the specified filters.

For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Describes a filter that is used to return a more specific list of results from a describe operation.

If you specify multiple filters, the filters are automatically logically joined with an AND, and the request returns only the results that match all of the specified filters.

For more information, see Tag Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide.

" }, "Filters":{ "type":"list", @@ -3086,11 +3236,11 @@ }, "MemoryGiBPerVCpu":{ "shape":"MemoryGiBPerVCpuRequest", - "documentation":"

The minimum and maximum amount of memory per vCPU for an instance type, in GiB.

Default: No minimum or maximum

" + "documentation":"

The minimum and maximum amount of memory per vCPU for an instance type, in GiB.

Default: No minimum or maximum limits

" }, "ExcludedInstanceTypes":{ "shape":"ExcludedInstanceTypes", - "documentation":"

Lists which instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*). The following are examples: c5*, m5a.*, r*, *3*.

For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, you are excluding all the M5a instance types, but not the M5n instance types.

Default: No excluded instance types

" + "documentation":"

The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance family, type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

For example, if you specify c5*, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 Auto Scaling will exclude all the M5a instance types, but not the M5n instance types.

If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes.

Default: No excluded instance types

" }, "InstanceGenerations":{ "shape":"InstanceGenerations", @@ -3098,11 +3248,11 @@ }, "SpotMaxPricePercentageOverLowestPrice":{ "shape":"NullablePositiveInteger", - "documentation":"

The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999.

If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

Default: 100

" + "documentation":"

The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage higher than the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999.

If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

Default: 100

" }, "OnDemandMaxPricePercentageOverLowestPrice":{ "shape":"NullablePositiveInteger", - "documentation":"

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999.

If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

Default: 20

" + "documentation":"

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage higher than the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price is higher than your threshold. The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage. To turn off price protection, specify a high value, such as 999999.

If you set DesiredCapacityType to vcpu or memory-mib, the price protection threshold is applied based on the per vCPU or per memory price instead of the per instance price.

Default: 20

" }, "BareMetal":{ "shape":"BareMetal", @@ -3118,7 +3268,7 @@ }, "NetworkInterfaceCount":{ "shape":"NetworkInterfaceCountRequest", - "documentation":"

The minimum and maximum number of network interfaces for an instance type.

Default: No minimum or maximum

" + "documentation":"

The minimum and maximum number of network interfaces for an instance type.

Default: No minimum or maximum limits

" }, "LocalStorage":{ "shape":"LocalStorage", @@ -3126,15 +3276,15 @@ }, "LocalStorageTypes":{ "shape":"LocalStorageTypes", - "documentation":"

Indicates the type of local storage that is required.

  • For instance types with hard disk drive (HDD) storage, specify hdd.

  • For instance types with solid state drive (SSD) storage, specify sdd.

Default: Any local storage type

" + "documentation":"

Indicates the type of local storage that is required.

  • For instance types with hard disk drive (HDD) storage, specify hdd.

  • For instance types with solid state drive (SSD) storage, specify ssd.

Default: Any local storage type

" }, "TotalLocalStorageGB":{ "shape":"TotalLocalStorageGBRequest", - "documentation":"

The minimum and maximum total local storage size for an instance type, in GB.

Default: No minimum or maximum

" + "documentation":"

The minimum and maximum total local storage size for an instance type, in GB.

Default: No minimum or maximum limits

" }, "BaselineEbsBandwidthMbps":{ "shape":"BaselineEbsBandwidthMbpsRequest", - "documentation":"

The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see Amazon EBS–optimized instances in the Amazon EC2 User Guide for Linux Instances.

Default: No minimum or maximum

" + "documentation":"

The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see Amazon EBS–optimized instances in the Amazon EC2 User Guide for Linux Instances.

Default: No minimum or maximum limits

" }, "AcceleratorTypes":{ "shape":"AcceleratorTypes", @@ -3142,7 +3292,7 @@ }, "AcceleratorCount":{ "shape":"AcceleratorCountRequest", - "documentation":"

The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) for an instance type.

To exclude accelerator-enabled instance types, set Max to 0.

Default: No minimum or maximum

" + "documentation":"

The minimum and maximum number of accelerators (GPUs, FPGAs, or Amazon Web Services Inferentia chips) for an instance type.

To exclude accelerator-enabled instance types, set Max to 0.

Default: No minimum or maximum limits

" }, "AcceleratorManufacturers":{ "shape":"AcceleratorManufacturers", @@ -3154,10 +3304,18 @@ }, "AcceleratorTotalMemoryMiB":{ "shape":"AcceleratorTotalMemoryMiBRequest", - "documentation":"

The minimum and maximum total memory size for the accelerators on an instance type, in MiB.

Default: No minimum or maximum

" + "documentation":"

The minimum and maximum total memory size for the accelerators on an instance type, in MiB.

Default: No minimum or maximum limits

" + }, + "NetworkBandwidthGbps":{ + "shape":"NetworkBandwidthGbpsRequest", + "documentation":"

The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).

Default: No minimum or maximum limits

" + }, + "AllowedInstanceTypes":{ + "shape":"AllowedInstanceTypes", + "documentation":"

The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.

You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

For example, if you specify c5*, Amazon EC2 Auto Scaling will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 Auto Scaling will allow all the M5a instance types, but not the M5n instance types.

If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.

Default: All instance types

" } }, - "documentation":"

When you specify multiple parameters, you get instance types that satisfy all of the specified parameters. If you specify multiple values for a parameter, you get instance types that satisfy any of the specified values.

Represents requirements for the types of instances that can be launched. You must specify VCpuCount and MemoryMiB, but all other parameters are optional. For more information, see Creating an Auto Scaling group using attribute-based instance type selection in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

The attributes for the instance types for a mixed instances policy. Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.

When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.

To limit the list of instance types from which Amazon EC2 Auto Scaling can identify matching instance types, you can use one of the following parameters, but not both in the same request:

  • AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.

  • ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes.

You must specify VCpuCount and MemoryMiB. All other attributes are optional. Any unspecified optional attribute is set to its default.

For more information, see Creating an Auto Scaling group using attribute-based instance type selection in the Amazon EC2 Auto Scaling User Guide. For help determining which instance types match your attributes before you apply them to your Auto Scaling group, see Preview instance types with specified attributes in the Amazon EC2 User Guide for Linux Instances.

" }, "InstanceReusePolicy":{ "type":"structure", @@ -3178,30 +3336,30 @@ "members":{ "OnDemandAllocationStrategy":{ "shape":"XmlString", - "documentation":"

The order of the launch template overrides to use in fulfilling On-Demand capacity.

If you specify lowest-price, Amazon EC2 Auto Scaling uses price to determine the order, launching the lowest price first.

If you specify prioritized, Amazon EC2 Auto Scaling uses the priority that you assigned to each launch template override, launching the highest priority first. If all your On-Demand capacity cannot be fulfilled using your highest priority instance, then Amazon EC2 Auto Scaling launches the remaining capacity using the second priority instance type, and so on.

Default: lowest-price for Auto Scaling groups that specify InstanceRequirements in the overrides and prioritized for Auto Scaling groups that don't.

" + "documentation":"

The allocation strategy to apply to your On-Demand Instances when they are launched. Possible instance types are determined by the launch template overrides that you specify.

The following lists the valid values:

lowest-price

Uses price to determine which instance types are the highest priority, launching the lowest priced instance types within an Availability Zone first. This is the default value for Auto Scaling groups that specify InstanceRequirements.

prioritized

You set the order of instance types for the launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling launches your highest priority instance types first. If all your On-Demand capacity cannot be fulfilled using your highest priority instance type, then Amazon EC2 Auto Scaling launches the remaining capacity using the second priority instance type, and so on. This is the default value for Auto Scaling groups that don't specify InstanceRequirements and cannot be used for groups that do.

" }, "OnDemandBaseCapacity":{ "shape":"OnDemandBaseCapacity", - "documentation":"

The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is launched first as your group scales.

If you specify weights for the instance types in the overrides, the base capacity is measured in the same unit of measurement as the instance types. If you specify InstanceRequirements in the overrides, the base capacity is measured in the same unit of measurement as your group's desired capacity.

Default: 0

" + "documentation":"

The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is launched first as your group scales.

This number has the same unit of measurement as the group's desired capacity. If you change the default unit of measurement (number of instances) by specifying weighted capacity values in your launch template overrides list, or by changing the default desired capacity type setting of the group, you must specify this number using the same unit of measurement.

Default: 0

" }, "OnDemandPercentageAboveBaseCapacity":{ "shape":"OnDemandPercentageAboveBaseCapacity", - "documentation":"

Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond OnDemandBaseCapacity. Expressed as a number (for example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). If set to 100, only On-Demand Instances are used.

Default: 100

" + "documentation":"

Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond OnDemandBaseCapacity. Expressed as a number (for example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). If set to 100, only On-Demand Instances are used.

Default: 100

" }, "SpotAllocationStrategy":{ "shape":"XmlString", - "documentation":"

Indicates how to allocate instances across Spot Instance pools.

If the allocation strategy is lowest-price, the Auto Scaling group launches instances using the Spot pools with the lowest price, and evenly allocates your instances across the number of Spot pools that you specify.

If the allocation strategy is capacity-optimized (recommended), the Auto Scaling group launches instances using Spot pools that are optimally chosen based on the available Spot capacity. Alternatively, you can use capacity-optimized-prioritized and set the order of instance types in the list of launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling honors the instance type priorities on a best-effort basis but optimizes for capacity first.

Default: lowest-price

" + "documentation":"

The allocation strategy to apply to your Spot Instances when they are launched. Possible instance types are determined by the launch template overrides that you specify.

The following lists the valid values:

capacity-optimized

Requests Spot Instances using pools that are optimally chosen based on the available Spot capacity. This strategy has the lowest risk of interruption. To give certain instance types a higher chance of launching first, use capacity-optimized-prioritized.

capacity-optimized-prioritized

You set the order of instance types for the launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling honors the instance type priorities on a best effort basis but optimizes for capacity first. Note that if the On-Demand allocation strategy is set to prioritized, the same priority is applied when fulfilling On-Demand capacity. This is not a valid value for Auto Scaling groups that specify InstanceRequirements.

lowest-price

Requests Spot Instances using the lowest priced pools within an Availability Zone, across the number of Spot pools that you specify for the SpotInstancePools property. To ensure that your desired capacity is met, you might receive Spot Instances from several pools. This is the default value, but it might lead to high interruption rates because this strategy only considers instance price and not available capacity.

price-capacity-optimized (recommended)

The price and capacity optimized allocation strategy looks at both price and capacity to select the Spot Instance pools that are the least likely to be interrupted and have the lowest possible price.

" }, "SpotInstancePools":{ "shape":"SpotInstancePools", - "documentation":"

The number of Spot Instance pools across which to allocate your Spot Instances. The Spot pools are determined from the different instance types in the overrides. Valid only when the Spot allocation strategy is lowest-price. Value must be in the range of 1–20.

Default: 2

" + "documentation":"

The number of Spot Instance pools across which to allocate your Spot Instances. The Spot pools are determined from the different instance types in the overrides. Valid only when the SpotAllocationStrategy is lowest-price. Value must be in the range of 1–20.

Default: 2

" }, "SpotMaxPrice":{ "shape":"MixedInstanceSpotPrice", - "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. If you keep the value at its default (unspecified), Amazon EC2 Auto Scaling uses the On-Demand price as the maximum Spot price. To remove a value that you previously set, include the property but specify an empty string (\"\") for the value.

" + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. If your maximum price is lower than the Spot price for the instance types that you selected, your Spot Instances are not launched. We do not recommend specifying a maximum price because it can lead to increased interruptions. When Spot Instances launch, you pay the current Spot price. To remove a maximum price that you previously set, include the property but specify an empty string (\"\") for the value.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify one.

Valid Range: Minimum value of 0.001

" } }, - "documentation":"

Describes an instances distribution for an Auto Scaling group.

" + "documentation":"

Use this structure to specify the distribution of On-Demand Instances and Spot Instances and the allocation strategies used to fulfill On-Demand and Spot capacities for a mixed instances policy.

" }, "InstancesToUpdate":{ "type":"integer", @@ -3247,7 +3405,7 @@ }, "ImageId":{ "shape":"XmlStringMaxLen255", - "documentation":"

The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances. For more information, see Finding an AMI in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances. For more information, see Find a Linux AMI in the Amazon EC2 User Guide for Linux Instances.

" }, "KeyName":{ "shape":"XmlStringMaxLen255", @@ -3259,11 +3417,11 @@ }, "ClassicLinkVPCId":{ "shape":"XmlStringMaxLen255", - "documentation":"

EC2-Classic retires on August 15, 2022. This parameter is not supported after that date.

The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to.

" + "documentation":"

Available for backward compatibility.

" }, "ClassicLinkVPCSecurityGroups":{ "shape":"ClassicLinkVPCSecurityGroups", - "documentation":"

EC2-Classic retires on August 15, 2022. This parameter is not supported after that date.

The IDs of one or more security groups for the VPC specified in ClassicLinkVPCId.

" + "documentation":"

Available for backward compatibility.

" }, "UserData":{ "shape":"XmlStringUserData", @@ -3271,7 +3429,7 @@ }, "InstanceType":{ "shape":"XmlStringMaxLen255", - "documentation":"

The instance type for the instances.

For information about available instance types, see Available Instance Types in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

The instance type for the instances. For information about available instance types, see Available instance types in the Amazon EC2 User Guide for Linux Instances.

" }, "KernelId":{ "shape":"XmlStringMaxLen255", @@ -3283,7 +3441,7 @@ }, "BlockDeviceMappings":{ "shape":"BlockDeviceMappings", - "documentation":"

A block device mapping, which specifies the block devices for the instance. For more information, see Block Device Mapping in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

The block device mapping entries that define the block devices to attach to the instances at launch. By default, the block devices specified in the block device mapping for the AMI are used. For more information, see Block Device Mapping in the Amazon EC2 User Guide for Linux Instances.

" }, "InstanceMonitoring":{ "shape":"InstanceMonitoring", @@ -3307,7 +3465,7 @@ }, "AssociatePublicIpAddress":{ "shape":"AssociatePublicIpAddress", - "documentation":"

For Auto Scaling groups that are running in a VPC, specifies whether to assign a public IP address to the group's instances. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Specifies whether to assign a public IPv4 address to the group's instances. If the instance is launched into a default subnet, the default is to assign a public IPv4 address, unless you disabled the option to assign a public IPv4 address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IPv4 address, unless you enabled the option to assign a public IPv4 address on the subnet. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide.

" }, "PlacementTenancy":{ "shape":"XmlStringMaxLen64", @@ -3339,7 +3497,7 @@ "members":{ "LaunchConfigurationNames":{ "shape":"LaunchConfigurationNames", - "documentation":"

The launch configuration names. If you omit this parameter, all launch configurations are described.

Array Members: Maximum number of 50 items.

" + "documentation":"

The launch configuration names. If you omit this property, all launch configurations are described.

Array Members: Maximum number of 50 items.

" }, "NextToken":{ "shape":"XmlString", @@ -3374,14 +3532,14 @@ "members":{ "LaunchTemplateSpecification":{ "shape":"LaunchTemplateSpecification", - "documentation":"

The launch template to use.

" + "documentation":"

The launch template.

" }, "Overrides":{ "shape":"Overrides", - "documentation":"

Any properties that you specify override the same properties in the launch template. If not provided, Amazon EC2 Auto Scaling uses the instance type or instance type requirements specified in the launch template when it launches an instance.

The overrides can include either one or more instance types or a set of instance requirements, but not both.

" + "documentation":"

Any properties that you specify override the same properties in the launch template.

" } }, - "documentation":"

Describes a launch template and overrides. You specify these properties as part of a mixed instances policy.

" + "documentation":"

Use this structure to specify the launch templates and instance types (overrides) for a mixed instances policy.

" }, "LaunchTemplateName":{ "type":"string", @@ -3394,22 +3552,22 @@ "members":{ "InstanceType":{ "shape":"XmlStringMaxLen255", - "documentation":"

The instance type, such as m3.xlarge. You must use an instance type that is supported in your requested Region and Availability Zones. For more information, see Instance types in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

The instance type, such as m3.xlarge. You must specify an instance type that is supported in your requested Region and Availability Zones. For more information, see Instance types in the Amazon Elastic Compute Cloud User Guide.

You can specify up to 40 instance types per Auto Scaling group.

" }, "WeightedCapacity":{ "shape":"XmlStringMaxLen32", - "documentation":"

The number of capacity units provided by the instance type specified in InstanceType in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic. When a Spot or On-Demand Instance is launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches instances until the desired capacity is totally fulfilled, even if this results in an overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only launch an instance with a WeightedCapacity of five units, the instance is launched, and the desired capacity is exceeded by three units. For more information, see Configuring instance weighting for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. Value must be in the range of 1–999.

" + "documentation":"

If you provide a list of instance types to use, you can specify the number of capacity units provided by each instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic. When a Spot or On-Demand Instance is launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches instances until the desired capacity is totally fulfilled, even if this results in an overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only launch an instance with a WeightedCapacity of five units, the instance is launched, and the desired capacity is exceeded by three units. For more information, see Configuring instance weighting for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. Value must be in the range of 1–999.

If you specify a value for WeightedCapacity for one instance type, you must specify a value for WeightedCapacity for all of them.

Every Auto Scaling group has three size parameters (DesiredCapacity, MaxSize, and MinSize). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.

" }, "LaunchTemplateSpecification":{ "shape":"LaunchTemplateSpecification", - "documentation":"

Provides a launch template for the specified instance type or instance requirements. For example, some instance types might require a launch template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's defined for your mixed instances policy. For more information, see Specifying a different launch template for an instance type in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Provides a launch template for the specified instance type or set of instance requirements. For example, some instance types might require a launch template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's specified in the LaunchTemplate definition. For more information, see Specifying a different launch template for an instance type in the Amazon EC2 Auto Scaling User Guide.

You can specify up to 20 launch templates per Auto Scaling group. The launch templates specified in the overrides and in the LaunchTemplate definition count towards this limit.

" }, "InstanceRequirements":{ "shape":"InstanceRequirements", - "documentation":"

The instance requirements. When you specify instance requirements, Amazon EC2 Auto Scaling finds instance types that satisfy your requirements, and then uses your On-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of specific instance types.

" + "documentation":"

The instance requirements. Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.

You can specify up to four separate sets of instance requirements per Auto Scaling group. This is useful for provisioning instances from different Amazon Machine Images (AMIs) in the same Auto Scaling group. To do this, create the AMIs and create a new launch template for each AMI. Then, create a compatible set of instance requirements for each launch template.

If you specify InstanceRequirements, you can't specify InstanceType.

" } }, - "documentation":"

Describes an override for a launch template. For more information, see Configuring overrides in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Use this structure to let Amazon EC2 Auto Scaling do the following when the Auto Scaling group has a mixed instances policy:

  • Override the instance type that is specified in the launch template.

  • Use multiple instance types.

Specify the instance types that you want, or define your instance requirements instead and let Amazon EC2 Auto Scaling provision the available instance types that meet your requirements. This can provide Amazon EC2 Auto Scaling with a larger selection of instance types to choose from when fulfilling Spot and On-Demand capacities. You can view which instance types are matched before you apply the instance requirements to your Auto Scaling group.

After you define your instance requirements, you don't have to keep updating these settings to get new EC2 instance types automatically. Amazon EC2 Auto Scaling uses the instance requirements of the Auto Scaling group to determine whether a new EC2 instance type can be used.

" }, "LaunchTemplateSpecification":{ "type":"structure", @@ -3448,11 +3606,11 @@ }, "LifecycleTransition":{ "shape":"LifecycleTransition", - "documentation":"

The state of the EC2 instance to which to attach the lifecycle hook. The following are possible values:

  • autoscaling:EC2_INSTANCE_LAUNCHING

  • autoscaling:EC2_INSTANCE_TERMINATING

" + "documentation":"

The lifecycle transition.

Valid values: autoscaling:EC2_INSTANCE_LAUNCHING | autoscaling:EC2_INSTANCE_TERMINATING

" }, "NotificationTargetARN":{ "shape":"NotificationTargetResourceName", - "documentation":"

The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.

" + "documentation":"

The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in a wait state for the lifecycle hook.

" }, "RoleARN":{ "shape":"XmlStringMaxLen255", @@ -3464,7 +3622,7 @@ }, "HeartbeatTimeout":{ "shape":"HeartbeatTimeout", - "documentation":"

The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the DefaultResult parameter.

" + "documentation":"

The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the DefaultResult property.

" }, "GlobalTimeout":{ "shape":"GlobalTimeout", @@ -3472,7 +3630,7 @@ }, "DefaultResult":{ "shape":"LifecycleActionResult", - "documentation":"

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The possible values are CONTINUE and ABANDON.

" + "documentation":"

The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs.

Valid values: CONTINUE | ABANDON

" } }, "documentation":"

Describes a lifecycle hook. A lifecycle hook lets you create solutions that are aware of events in the Auto Scaling instance lifecycle, and then perform a custom action on instances when the corresponding lifecycle event occurs.

" @@ -3495,7 +3653,7 @@ }, "LifecycleTransition":{ "shape":"LifecycleTransition", - "documentation":"

The state of the EC2 instance to which you want to attach the lifecycle hook. The valid values are:

  • autoscaling:EC2_INSTANCE_LAUNCHING

  • autoscaling:EC2_INSTANCE_TERMINATING

" + "documentation":"

The lifecycle transition. For Auto Scaling groups, there are two major lifecycle transitions.

  • To create a lifecycle hook for scale-out events, specify autoscaling:EC2_INSTANCE_LAUNCHING.

  • To create a lifecycle hook for scale-in events, specify autoscaling:EC2_INSTANCE_TERMINATING.

" }, "NotificationMetadata":{ "shape":"XmlStringMaxLen1023", @@ -3503,19 +3661,19 @@ }, "HeartbeatTimeout":{ "shape":"HeartbeatTimeout", - "documentation":"

The maximum time, in seconds, that can elapse before the lifecycle hook times out.

If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the DefaultResult parameter. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat.

" + "documentation":"

The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from 30 to 7200 seconds. The default value is 3600 seconds (1 hour).

" }, "DefaultResult":{ "shape":"LifecycleActionResult", - "documentation":"

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The valid values are CONTINUE and ABANDON. The default value is ABANDON.

" + "documentation":"

The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs. The default value is ABANDON.

Valid values: CONTINUE | ABANDON

" }, "NotificationTargetARN":{ "shape":"NotificationTargetResourceName", - "documentation":"

The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic.

" + "documentation":"

The Amazon Resource Name (ARN) of the notification target that Amazon EC2 Auto Scaling sends notifications to when an instance is in a wait state for the lifecycle hook. You can specify an Amazon SNS topic or an Amazon SQS queue.

" }, "RoleARN":{ "shape":"XmlStringMaxLen255", - "documentation":"

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target.

Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue. Required for new lifecycle hooks, but optional when updating existing hooks.

" + "documentation":"

The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. For information about creating this role, see Configure a notification target for a lifecycle hook in the Amazon EC2 Auto Scaling User Guide.

Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue.

" } }, "documentation":"

Describes information used to specify a lifecycle hook for an Auto Scaling group.

For more information, see Amazon EC2 Auto Scaling lifecycle hooks in the Amazon EC2 Auto Scaling User Guide.

" @@ -3865,16 +4023,30 @@ "members":{ "LaunchTemplate":{ "shape":"LaunchTemplate", - "documentation":"

Specifies the launch template to use and the instance types (overrides) that are used to launch EC2 instances to fulfill On-Demand and Spot capacities. Required when creating a mixed instances policy.

" + "documentation":"

One or more launch templates and the instance types (overrides) that are used to launch EC2 instances to fulfill On-Demand and Spot capacities.

" }, "InstancesDistribution":{ "shape":"InstancesDistribution", - "documentation":"

Specifies the instances distribution.

" + "documentation":"

The instances distribution.

" } }, - "documentation":"

Describes a mixed instances policy. A mixed instances policy contains the instance types that Amazon EC2 Auto Scaling can launch and other information that Amazon EC2 Auto Scaling can use to launch instances and help optimize your costs. For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Use this structure to launch multiple instance types and On-Demand Instances and Spot Instances within a single Auto Scaling group.

A mixed instances policy contains information that Amazon EC2 Auto Scaling can use to launch instances and help optimize your costs. For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide.

" }, "MonitoringEnabled":{"type":"boolean"}, + "NetworkBandwidthGbpsRequest":{ + "type":"structure", + "members":{ + "Min":{ + "shape":"NullablePositiveDouble", + "documentation":"

The minimum amount of network bandwidth, in gigabits per second (Gbps).

" + }, + "Max":{ + "shape":"NullablePositiveDouble", + "documentation":"

The maximum amount of network bandwidth, in gigabits per second (Gbps).

" + } + }, + "documentation":"

Specifies the minimum and maximum for the NetworkBandwidthGbps object when you specify InstanceRequirements for an Auto Scaling group.

Setting the minimum bandwidth does not guarantee that your instance will achieve the minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum bandwidth, but the actual bandwidth of your instance might go below the specified minimum at times. For more information, see Available instance bandwidth in the Amazon EC2 User Guide for Linux Instances.

" + }, "NetworkInterfaceCountRequest":{ "type":"structure", "members":{ @@ -4246,7 +4418,7 @@ }, "LifecycleTransition":{ "shape":"LifecycleTransition", - "documentation":"

The instance state to which you want to attach the lifecycle hook. The valid values are:

  • autoscaling:EC2_INSTANCE_LAUNCHING

  • autoscaling:EC2_INSTANCE_TERMINATING

Required for new lifecycle hooks, but optional when updating existing hooks.

" + "documentation":"

The lifecycle transition. For Auto Scaling groups, there are two major lifecycle transitions.

  • To create a lifecycle hook for scale-out events, specify autoscaling:EC2_INSTANCE_LAUNCHING.

  • To create a lifecycle hook for scale-in events, specify autoscaling:EC2_INSTANCE_TERMINATING.

Required for new lifecycle hooks, but optional when updating existing hooks.

" }, "RoleARN":{ "shape":"XmlStringMaxLen255", @@ -4254,7 +4426,7 @@ }, "NotificationTargetARN":{ "shape":"NotificationTargetResourceName", - "documentation":"

The ARN of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook. This target can be either an SQS queue or an SNS topic.

If you specify an empty string, this overrides the current ARN.

This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key-value pair format when sending notifications to an Amazon SNS topic.

When you specify a notification target, Amazon EC2 Auto Scaling sends it a test message. Test messages contain the following additional key-value pair: \"Event\": \"autoscaling:TEST_NOTIFICATION\".

" + "documentation":"

The Amazon Resource Name (ARN) of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in a wait state for the lifecycle hook. You can specify either an Amazon SNS topic or an Amazon SQS queue.

If you specify an empty string, this overrides the current ARN.

This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key-value pair format when sending notifications to an Amazon SNS topic.

When you specify a notification target, Amazon EC2 Auto Scaling sends it a test message. Test messages contain the following additional key-value pair: \"Event\": \"autoscaling:TEST_NOTIFICATION\".

" }, "NotificationMetadata":{ "shape":"XmlStringMaxLen1023", @@ -4262,11 +4434,11 @@ }, "HeartbeatTimeout":{ "shape":"HeartbeatTimeout", - "documentation":"

The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from 30 to 7200 seconds. The default value is 3600 seconds (1 hour).

If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the DefaultResult parameter. You can prevent the lifecycle hook from timing out by calling the RecordLifecycleActionHeartbeat API.

" + "documentation":"

The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from 30 to 7200 seconds. The default value is 3600 seconds (1 hour).

" }, "DefaultResult":{ "shape":"LifecycleActionResult", - "documentation":"

Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. This parameter can be either CONTINUE or ABANDON. The default value is ABANDON.

" + "documentation":"

The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs. The default value is ABANDON.

Valid values: CONTINUE | ABANDON

" } } }, @@ -4345,7 +4517,7 @@ }, "TargetTrackingConfiguration":{ "shape":"TargetTrackingConfiguration", - "documentation":"

A target tracking scaling policy. Provides support for predefined or custom metrics.

The following predefined metrics are available:

  • ASGAverageCPUUtilization

  • ASGAverageNetworkIn

  • ASGAverageNetworkOut

  • ALBRequestCountPerTarget

If you specify ALBRequestCountPerTarget for the metric, you must specify the ResourceLabel parameter with the PredefinedMetricSpecification.

For more information, see TargetTrackingConfiguration in the Amazon EC2 Auto Scaling API Reference.

Required if the policy type is TargetTrackingScaling.

" + "documentation":"

A target tracking scaling policy. Provides support for predefined or custom metrics.

The following predefined metrics are available:

  • ASGAverageCPUUtilization

  • ASGAverageNetworkIn

  • ASGAverageNetworkOut

  • ALBRequestCountPerTarget

If you specify ALBRequestCountPerTarget for the metric, you must specify the ResourceLabel property with the PredefinedMetricSpecification.

For more information, see TargetTrackingConfiguration in the Amazon EC2 Auto Scaling API Reference.

Required if the policy type is TargetTrackingScaling.

" }, "Enabled":{ "shape":"ScalingPolicyEnabled", @@ -4374,15 +4546,15 @@ }, "Time":{ "shape":"TimestampType", - "documentation":"

This parameter is no longer used.

" + "documentation":"

This property is no longer used.

" }, "StartTime":{ "shape":"TimestampType", - "documentation":"

The date and time for this action to start, in YYYY-MM-DDThh:mm:ssZ format in UTC/GMT only and in quotes (for example, \"2019-06-01T00:00:00Z\").

If you specify Recurrence and StartTime, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence.

If you try to schedule your action in the past, Amazon EC2 Auto Scaling returns an error message.

" + "documentation":"

The date and time for this action to start, in YYYY-MM-DDThh:mm:ssZ format in UTC/GMT only and in quotes (for example, \"2021-06-01T00:00:00Z\").

If you specify Recurrence and StartTime, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence.

" }, "EndTime":{ "shape":"TimestampType", - "documentation":"

The date and time for the recurring schedule to end, in UTC.

" + "documentation":"

The date and time for the recurring schedule to end, in UTC. For example, \"2021-06-01T00:00:00Z\".

" }, "Recurrence":{ "shape":"XmlStringMaxLen255", @@ -4398,7 +4570,7 @@ }, "DesiredCapacity":{ "shape":"AutoScalingGroupDesiredCapacity", - "documentation":"

The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain. It can scale beyond this capacity if you add more scaling conditions.

" + "documentation":"

The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain. It can scale beyond this capacity if you add more scaling conditions.

You must specify at least one of the following properties: MaxSize, MinSize, or DesiredCapacity.

" }, "TimeZone":{ "shape":"XmlStringMaxLen255", @@ -4659,7 +4831,7 @@ }, "ScalingProcesses":{ "shape":"ProcessNames", - "documentation":"

One or more of the following processes:

  • Launch

  • Terminate

  • AddToLoadBalancer

  • AlarmNotification

  • AZRebalance

  • HealthCheck

  • InstanceRefresh

  • ReplaceUnhealthy

  • ScheduledActions

If you omit this parameter, all processes are specified.

" + "documentation":"

One or more of the following processes:

  • Launch

  • Terminate

  • AddToLoadBalancer

  • AlarmNotification

  • AZRebalance

  • HealthCheck

  • InstanceRefresh

  • ReplaceUnhealthy

  • ScheduledActions

If you omit this property, all processes are specified.

" } } }, @@ -4697,7 +4869,7 @@ }, "Time":{ "shape":"TimestampType", - "documentation":"

This parameter is no longer used.

" + "documentation":"

This property is no longer used.

" }, "StartTime":{ "shape":"TimestampType", @@ -4917,7 +5089,7 @@ }, "ScalingAdjustment":{ "shape":"PolicyIncrement", - "documentation":"

The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity.

" + "documentation":"

The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity.

The amount by which to scale. The adjustment is based on the value that you specified in the AdjustmentType property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.

" } }, "documentation":"

Describes information used to create a step adjustment for a step scaling policy.

For the following examples, suppose that you have an alarm with a breach threshold of 50:

  • To trigger the adjustment when the metric is greater than or equal to 50 and less than 60, specify a lower bound of 0 and an upper bound of 10.

  • To trigger the adjustment when the metric is greater than 40 and less than or equal to 50, specify a lower bound of -10 and an upper bound of 0.

There are a few rules for the step adjustments for your step policy:

  • The ranges of your step adjustments can't overlap or have a gap.

  • At most, one step adjustment can have a null lower bound. If one step adjustment has a negative lower bound, then there must be a step adjustment with a null lower bound.

  • At most, one step adjustment can have a null upper bound. If one step adjustment has a positive upper bound, then there must be a step adjustment with a null upper bound.

  • The upper and lower bound can't be null in the same step adjustment.

For more information, see Step adjustments in the Amazon EC2 Auto Scaling User Guide.

" @@ -5057,6 +5229,56 @@ }, "documentation":"

Represents a target tracking scaling policy configuration to use with Amazon EC2 Auto Scaling.

" }, + "TargetTrackingMetricDataQueries":{ + "type":"list", + "member":{"shape":"TargetTrackingMetricDataQuery"} + }, + "TargetTrackingMetricDataQuery":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"XmlStringMaxLen255", + "documentation":"

A short name that identifies the object's results in the response. This name must be unique among all TargetTrackingMetricDataQuery objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.

" + }, + "Expression":{ + "shape":"XmlStringMaxLen2047", + "documentation":"

The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the Id of the other metrics to refer to those metrics, and can also use the Id of other expressions to use the result of those expressions.

Conditional: Within each TargetTrackingMetricDataQuery object, you must specify either Expression or MetricStat, but not both.

" + }, + "MetricStat":{ + "shape":"TargetTrackingMetricStat", + "documentation":"

Information about the metric data to return.

Conditional: Within each TargetTrackingMetricDataQuery object, you must specify either Expression or MetricStat, but not both.

" + }, + "Label":{ + "shape":"XmlStringMetricLabel", + "documentation":"

A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents.

" + }, + "ReturnData":{ + "shape":"ReturnData", + "documentation":"

Indicates whether to return the timestamps and raw data values of this metric.

If you use any math expressions, specify true for this value for only the final math expression that the metric specification is based on. You must specify false for ReturnData for all the other metrics and expressions used in the metric specification.

If you are only retrieving metrics and not performing any math expressions, do not specify anything for ReturnData. This sets it to its default (true).

" + } + }, + "documentation":"

The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.

" + }, + "TargetTrackingMetricStat":{ + "type":"structure", + "required":[ + "Metric", + "Stat" + ], + "members":{ + "Metric":{"shape":"Metric"}, + "Stat":{ + "shape":"XmlStringMetricStat", + "documentation":"

The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in Statistics in the Amazon CloudWatch User Guide.

The most commonly used metrics for scaling is Average

" + }, + "Unit":{ + "shape":"MetricUnit", + "documentation":"

The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.

" + } + }, + "documentation":"

This structure defines the CloudWatch metric to return, along with the statistic, period, and unit.

For more information about the CloudWatch terminology below, see Amazon CloudWatch concepts in the Amazon CloudWatch User Guide.

" + }, "TerminateInstanceInAutoScalingGroupType":{ "type":"structure", "required":[ @@ -5093,6 +5315,38 @@ }, "documentation":"

Specifies the minimum and maximum for the TotalLocalStorageGB object when you specify InstanceRequirements for an Auto Scaling group.

" }, + "TrafficSourceIdentifier":{ + "type":"structure", + "members":{ + "Identifier":{ + "shape":"XmlStringMaxLen511", + "documentation":"

The unique identifier of the traffic source.

" + } + }, + "documentation":"

Describes the identifier of a traffic source.

Currently, you must specify an Amazon Resource Name (ARN) for an existing VPC Lattice target group.

" + }, + "TrafficSourceState":{ + "type":"structure", + "members":{ + "TrafficSource":{ + "shape":"XmlStringMaxLen511", + "documentation":"

The unique identifier of the traffic source. Currently, this is the Amazon Resource Name (ARN) for a VPC Lattice target group.

" + }, + "State":{ + "shape":"XmlStringMaxLen255", + "documentation":"

The following are the possible states for a VPC Lattice target group:

  • Adding - The Auto Scaling instances are being registered with the target group.

  • Added - All Auto Scaling instances are registered with the target group.

  • InService - At least one Auto Scaling instance passed the VPC_LATTICE health check.

  • Removing - The Auto Scaling instances are being deregistered from the target group. If connection draining is enabled, VPC Lattice waits for in-flight requests to complete before deregistering the instances.

  • Removed - All Auto Scaling instances are deregistered from the target group.

" + } + }, + "documentation":"

Describes the state of a traffic source.

" + }, + "TrafficSourceStates":{ + "type":"list", + "member":{"shape":"TrafficSourceState"} + }, + "TrafficSources":{ + "type":"list", + "member":{"shape":"TrafficSourceIdentifier"} + }, "UpdateAutoScalingGroupType":{ "type":"structure", "required":["AutoScalingGroupName"], @@ -5111,7 +5365,7 @@ }, "MixedInstancesPolicy":{ "shape":"MixedInstancesPolicy", - "documentation":"

An embedded object that specifies a mixed instances policy. For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

The mixed instances policy. For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide.

" }, "MinSize":{ "shape":"AutoScalingGroupMinSize", @@ -5135,11 +5389,11 @@ }, "HealthCheckType":{ "shape":"XmlStringMaxLen32", - "documentation":"

The service to use for the health checks. The valid values are EC2 and ELB. If you configure an Auto Scaling group to use ELB health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks.

" + "documentation":"

Determines whether any additional health checks are performed on the instances in this group. Amazon EC2 health checks are always on.

The valid values are EC2 (default), ELB, and VPC_LATTICE. The VPC_LATTICE health check type is reserved for use with VPC Lattice, which is in preview release and is subject to change.

" }, "HealthCheckGracePeriod":{ "shape":"HealthCheckGracePeriod", - "documentation":"

The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed Elastic Load Balancing or custom health check. This is useful if your instances do not immediately pass these health checks after they enter the InService state. For more information, see Health check grace period in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service and marking it unhealthy due to a failed health check. This is useful if your instances do not immediately pass their health checks after they enter the InService state. For more information, see Set the health check grace period for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

" }, "PlacementGroup":{ "shape":"XmlStringMaxLen255", @@ -5147,11 +5401,11 @@ }, "VPCZoneIdentifier":{ "shape":"XmlStringMaxLen2047", - "documentation":"

A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify VPCZoneIdentifier with AvailabilityZones, the subnets that you specify for this parameter must reside in those Availability Zones.

" + "documentation":"

A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify VPCZoneIdentifier with AvailabilityZones, the subnets that you specify must reside in those Availability Zones.

" }, "TerminationPolicies":{ "shape":"TerminationPolicies", - "documentation":"

A policy or a list of policies that are used to select the instances to terminate. The policies are executed in the order that you list them. For more information, see Controlling which Auto Scaling instances terminate during scale in in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

A policy or a list of policies that are used to select the instances to terminate. The policies are executed in the order that you list them. For more information, see Work with Amazon EC2 Auto Scaling termination policies in the Amazon EC2 Auto Scaling User Guide.

Valid values: Default | AllocationStrategy | ClosestToNextInstanceHour | NewestInstance | OldestInstance | OldestLaunchConfiguration | OldestLaunchTemplate | arn:aws:lambda:region:account-id:function:my-function:my-alias

" }, "NewInstancesProtectedFromScaleIn":{ "shape":"InstanceProtected", @@ -5167,7 +5421,7 @@ }, "CapacityRebalance":{ "shape":"CapacityRebalanceEnabled", - "documentation":"

Enables or disables Capacity Rebalancing. For more information, see Amazon EC2 Auto Scaling Capacity Rebalancing in the Amazon EC2 Auto Scaling User Guide.

" + "documentation":"

Enables or disables Capacity Rebalancing. For more information, see Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions in the Amazon EC2 Auto Scaling User Guide.

" }, "Context":{ "shape":"Context", @@ -5314,5 +5568,5 @@ "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" } }, - "documentation":"Amazon EC2 Auto Scaling

Amazon EC2 Auto Scaling is designed to automatically launch or terminate EC2 instances based on user-defined scaling policies, scheduled actions, and health checks.

For more information about Amazon EC2 Auto Scaling, see the Amazon EC2 Auto Scaling User Guide. For information about granting IAM users required permissions for calls to Amazon EC2 Auto Scaling, see Granting IAM users required permissions for Amazon EC2 Auto Scaling resources in the Amazon EC2 Auto Scaling API Reference.

" + "documentation":"Amazon EC2 Auto Scaling

Amazon EC2 Auto Scaling is designed to automatically launch and terminate EC2 instances based on user-defined scaling policies, scheduled actions, and health checks.

For more information, see the Amazon EC2 Auto Scaling User Guide and the Amazon EC2 Auto Scaling API Reference.

" } diff --git a/botocore/data/backup-gateway/2021-01-01/endpoint-rule-set-1.json b/botocore/data/backup-gateway/2021-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..ae714161 --- /dev/null +++ b/botocore/data/backup-gateway/2021-01-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://backup-gateway-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://backup-gateway-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://backup-gateway.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://backup-gateway.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/backup-gateway/2021-01-01/examples-1.json b/botocore/data/backup-gateway/2021-01-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/backup-gateway/2021-01-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/backup-gateway/2021-01-01/service-2.json b/botocore/data/backup-gateway/2021-01-01/service-2.json index f67c9233..5170acd9 100644 --- a/botocore/data/backup-gateway/2021-01-01/service-2.json +++ b/botocore/data/backup-gateway/2021-01-01/service-2.json @@ -24,7 +24,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"ConflictException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Associates a backup gateway with your server. After you complete the association process, you can back up and restore your VMs through the gateway.

" }, @@ -38,7 +39,8 @@ "output":{"shape":"CreateGatewayOutput"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Creates a backup gateway. After you create a gateway, you can associate it with a server using the AssociateGatewayToServer operation.

" }, @@ -53,7 +55,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Deletes a backup gateway.

", "idempotent":true @@ -70,7 +73,8 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Deletes a hypervisor.

", "idempotent":true @@ -87,10 +91,43 @@ {"shape":"ValidationException"}, {"shape":"ConflictException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Disassociates a backup gateway from the specified server. After the disassociation process finishes, the gateway can no longer access the virtual machines on the server.

" }, + "GetGateway":{ + "name":"GetGateway", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetGatewayInput"}, + "output":{"shape":"GetGatewayOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

By providing the ARN (Amazon Resource Name), this API returns the gateway.

" + }, + "GetVirtualMachine":{ + "name":"GetVirtualMachine", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetVirtualMachineInput"}, + "output":{"shape":"GetVirtualMachineOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

By providing the ARN (Amazon Resource Name), this API returns the virtual machine.

" + }, "ImportHypervisorConfiguration":{ "name":"ImportHypervisorConfiguration", "http":{ @@ -102,7 +139,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"InternalServerException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Connect to a hypervisor by importing its configuration.

" }, @@ -116,7 +154,8 @@ "output":{"shape":"ListGatewaysOutput"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Lists backup gateways owned by an Amazon Web Services account in an Amazon Web Services Region. The returned list is ordered by gateway Amazon Resource Name (ARN).

" }, @@ -130,7 +169,8 @@ "output":{"shape":"ListHypervisorsOutput"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Lists your hypervisors.

" }, @@ -145,7 +185,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Lists the tags applied to the resource identified by its Amazon Resource Name (ARN).

" }, @@ -159,7 +200,8 @@ "output":{"shape":"ListVirtualMachinesOutput"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Lists your virtual machines.

" }, @@ -175,7 +217,8 @@ {"shape":"ValidationException"}, {"shape":"ConflictException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Set the maintenance start time for a gateway.

" }, @@ -190,7 +233,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Tag the resource.

" }, @@ -206,7 +250,8 @@ {"shape":"ValidationException"}, {"shape":"ConflictException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Tests your hypervisor configuration to validate that backup gateway can connect with the hypervisor and its resources.

" }, @@ -221,7 +266,8 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Removes tags from the resource.

" }, @@ -237,10 +283,27 @@ {"shape":"ValidationException"}, {"shape":"ConflictException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Updates a gateway's name. Specify which gateway to update using the Amazon Resource Name (ARN) of the gateway in your request.

" }, + "UpdateGatewaySoftwareNow":{ + "name":"UpdateGatewaySoftwareNow", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGatewaySoftwareNowInput"}, + "output":{"shape":"UpdateGatewaySoftwareNowOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates the gateway virtual machine (VM) software. The request immediately triggers the software update.

When you make this request, you get a 200 OK success response immediately. However, it might take some time for the update to complete.

" + }, "UpdateHypervisor":{ "name":"UpdateHypervisor", "http":{ @@ -253,7 +316,8 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Updates a hypervisor metadata, including its host, username, and password. Specify which hypervisor to update using the Amazon Resource Name (ARN) of the hypervisor in your request.

" } @@ -453,6 +517,44 @@ "min":50, "pattern":"^arn:(aws|aws-cn|aws-us-gov):backup-gateway(:[a-zA-Z-0-9]+){3}\\/[a-zA-Z-0-9]+$" }, + "GatewayDetails":{ + "type":"structure", + "members":{ + "GatewayArn":{ + "shape":"GatewayArn", + "documentation":"

The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to return a list of gateways for your account and Amazon Web Services Region.

" + }, + "GatewayDisplayName":{ + "shape":"Name", + "documentation":"

The display name of the gateway.

" + }, + "GatewayType":{ + "shape":"GatewayType", + "documentation":"

The type of the gateway type.

" + }, + "HypervisorId":{ + "shape":"HypervisorId", + "documentation":"

The hypervisor ID of the gateway.

" + }, + "LastSeenTime":{ + "shape":"Time", + "documentation":"

Details showing the last time Backup gateway communicated with the cloud, in Unix format and UTC time.

" + }, + "MaintenanceStartTime":{ + "shape":"MaintenanceStartTime", + "documentation":"

Returns your gateway's weekly maintenance start time including the day and time of the week. Note that values are in terms of the gateway's time zone. Can be weekly or monthly.

" + }, + "NextUpdateAvailabilityTime":{ + "shape":"Time", + "documentation":"

Details showing the next update availability time of the gateway.

" + }, + "VpcEndpoint":{ + "shape":"VpcEndpoint", + "documentation":"

The DNS name for the virtual private cloud (VPC) endpoint the gateway uses to connect to the cloud for backup gateway.

" + } + }, + "documentation":"

The details of gateway.

" + }, "GatewayType":{ "type":"string", "enum":["BACKUP_VM"] @@ -461,6 +563,44 @@ "type":"list", "member":{"shape":"Gateway"} }, + "GetGatewayInput":{ + "type":"structure", + "required":["GatewayArn"], + "members":{ + "GatewayArn":{ + "shape":"GatewayArn", + "documentation":"

The Amazon Resource Name (ARN) of the gateway.

" + } + } + }, + "GetGatewayOutput":{ + "type":"structure", + "members":{ + "Gateway":{ + "shape":"GatewayDetails", + "documentation":"

By providing the ARN (Amazon Resource Name), this API returns the gateway.

" + } + } + }, + "GetVirtualMachineInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the virtual machine.

" + } + } + }, + "GetVirtualMachineOutput":{ + "type":"structure", + "members":{ + "VirtualMachine":{ + "shape":"VirtualMachineDetails", + "documentation":"

This object contains the basic attributes of VirtualMachine contained by the output of GetVirtualMachine

" + } + } + }, "Host":{ "type":"string", "max":128, @@ -656,6 +796,10 @@ "ListVirtualMachinesInput":{ "type":"structure", "members":{ + "HypervisorArn":{ + "shape":"ServerArn", + "documentation":"

The Amazon Resource Name (ARN) of the hypervisor connected to your virtual machine.

" + }, "MaxResults":{ "shape":"MaxResults", "documentation":"

The maximum number of virtual machines to list.

" @@ -679,6 +823,32 @@ } } }, + "MaintenanceStartTime":{ + "type":"structure", + "required":[ + "HourOfDay", + "MinuteOfHour" + ], + "members":{ + "DayOfMonth":{ + "shape":"DayOfMonth", + "documentation":"

The day of the month component of the maintenance start time represented as an ordinal number from 1 to 28, where 1 represents the first day of the month and 28 represents the last day of the month.

" + }, + "DayOfWeek":{ + "shape":"DayOfWeek", + "documentation":"

An ordinal number between 0 and 6 that represents the day of the week, where 0 represents Sunday and 6 represents Saturday. The day of week is in the time zone of the gateway.

" + }, + "HourOfDay":{ + "shape":"HourOfDay", + "documentation":"

The hour component of the maintenance start time represented as hh, where hh is the hour (0 to 23). The hour of the day is in the time zone of the gateway.

" + }, + "MinuteOfHour":{ + "shape":"MinuteOfHour", + "documentation":"

The minute component of the maintenance start time represented as mm, where mm is the minute (0 to 59). The minute of the hour is in the time zone of the gateway.

" + } + }, + "documentation":"

This is your gateway's weekly maintenance start time including the day and time of the week. Note that values are in terms of the gateway's time zone. Can be weekly or monthly.

" + }, "MaxResults":{ "type":"integer", "box":true, @@ -791,7 +961,7 @@ }, "Value":{ "shape":"TagValue", - "documentation":"

The key part of a value's key-value pair.

" + "documentation":"

The value part of a tag's key-value pair.

" } }, "documentation":"

A key-value pair you can use to manage, filter, and search for your resources. Allowed characters include UTF-8 letters, numbers, spaces, and the following characters: + - = . _ : /.

" @@ -872,6 +1042,19 @@ "members":{ } }, + "ThrottlingException":{ + "type":"structure", + "required":["ErrorCode"], + "members":{ + "ErrorCode":{ + "shape":"string", + "documentation":"

Error: TPS has been limited to protect against intentional or unintentional high request volumes.

" + }, + "Message":{"shape":"string"} + }, + "documentation":"

TPS has been limited to protect against intentional or unintentional high request volumes.

", + "exception":true + }, "Time":{"type":"timestamp"}, "UntagResourceInput":{ "type":"structure", @@ -922,6 +1105,25 @@ } } }, + "UpdateGatewaySoftwareNowInput":{ + "type":"structure", + "required":["GatewayArn"], + "members":{ + "GatewayArn":{ + "shape":"GatewayArn", + "documentation":"

The Amazon Resource Name (ARN) of the gateway to be updated.

" + } + } + }, + "UpdateGatewaySoftwareNowOutput":{ + "type":"structure", + "members":{ + "GatewayArn":{ + "shape":"GatewayArn", + "documentation":"

The Amazon Resource Name (ARN) of the gateway you updated.

" + } + } + }, "UpdateHypervisorInput":{ "type":"structure", "required":["HypervisorArn"], @@ -934,6 +1136,10 @@ "shape":"ServerArn", "documentation":"

The Amazon Resource Name (ARN) of the hypervisor to update.

" }, + "Name":{ + "shape":"Name", + "documentation":"

The updated name for the hypervisor

" + }, "Password":{ "shape":"Password", "documentation":"

The updated password for the hypervisor.

" @@ -997,15 +1203,50 @@ }, "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The Amazon Resource Name (ARN) of the virtual machine.

" + "documentation":"

The Amazon Resource Name (ARN) of the virtual machine. For example, arn:aws:backup-gateway:us-west-1:0000000000000:vm/vm-0000ABCDEFGIJKL.

" } }, "documentation":"

A virtual machine that is on a hypervisor.

" }, + "VirtualMachineDetails":{ + "type":"structure", + "members":{ + "HostName":{ + "shape":"Name", + "documentation":"

The host name of the virtual machine.

" + }, + "HypervisorId":{ + "shape":"string", + "documentation":"

The ID of the virtual machine's hypervisor.

" + }, + "LastBackupDate":{ + "shape":"Time", + "documentation":"

The most recent date a virtual machine was backed up, in Unix format and UTC time.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the virtual machine.

" + }, + "Path":{ + "shape":"Path", + "documentation":"

The path of the virtual machine.

" + }, + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the virtual machine. For example, arn:aws:backup-gateway:us-west-1:0000000000000:vm/vm-0000ABCDEFGIJKL.

" + } + }, + "documentation":"

Your VirtualMachine objects, ordered by their Amazon Resource Names (ARNs).

" + }, "VirtualMachines":{ "type":"list", "member":{"shape":"VirtualMachine"} }, + "VpcEndpoint":{ + "type":"string", + "max":255, + "min":1 + }, "string":{"type":"string"} }, "documentation":"

Backup gateway

Backup gateway connects Backup to your hypervisor, so you can create, store, and restore backups of your virtual machines (VMs) anywhere, whether on-premises or in the VMware Cloud (VMC) on Amazon Web Services.

Add on-premises resources by connecting to a hypervisor through a gateway. Backup will automatically discover the resources in your hypervisor.

Use Backup to assign virtual or on-premises resources to a backup plan, or run on-demand backups. Once you have backed up your resources, you can view them and restore them like any resource supported by Backup.

To download the Amazon Web Services software to get started, navigate to the Backup console, choose Gateways, then choose Create gateway.

" diff --git a/botocore/data/backup/2018-11-15/endpoint-rule-set-1.json b/botocore/data/backup/2018-11-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..66fe7c6a --- /dev/null +++ b/botocore/data/backup/2018-11-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://backup-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://backup-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://backup.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://backup.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/backup/2018-11-15/examples-1.json b/botocore/data/backup/2018-11-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/backup/2018-11-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/backup/2018-11-15/paginators-1.json b/botocore/data/backup/2018-11-15/paginators-1.json index e9a5d58d..f719e446 100644 --- a/botocore/data/backup/2018-11-15/paginators-1.json +++ b/botocore/data/backup/2018-11-15/paginators-1.json @@ -65,6 +65,18 @@ "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" } } } diff --git a/botocore/data/backup/2018-11-15/service-2.json b/botocore/data/backup/2018-11-15/service-2.json index 1fdca02c..515f441e 100644 --- a/botocore/data/backup/2018-11-15/service-2.json +++ b/botocore/data/backup/2018-11-15/service-2.json @@ -11,6 +11,25 @@ "uid":"backup-2018-11-15" }, "operations":{ + "CancelLegalHold":{ + "name":"CancelLegalHold", + "http":{ + "method":"DELETE", + "requestUri":"/legal-holds/{legalHoldId}", + "responseCode":201 + }, + "input":{"shape":"CancelLegalHoldInput"}, + "output":{"shape":"CancelLegalHoldOutput"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidResourceStateException"}, + {"shape":"MissingParameterValueException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

This action removes the specified legal hold on a recovery point. This action can only be performed by a user with sufficient permissions.

", + "idempotent":true + }, "CreateBackupPlan":{ "name":"CreateBackupPlan", "http":{ @@ -83,6 +102,23 @@ "documentation":"

Creates a framework with one or more controls. A framework is a collection of controls that you can use to evaluate your backup practices. By using pre-built customizable controls to define your policies, you can evaluate whether your backup practices comply with your policies and which resources are not yet in compliance.

", "idempotent":true }, + "CreateLegalHold":{ + "name":"CreateLegalHold", + "http":{ + "method":"POST", + "requestUri":"/legal-holds/" + }, + "input":{"shape":"CreateLegalHoldInput"}, + "output":{"shape":"CreateLegalHoldOutput"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingParameterValueException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

This action creates a legal hold on a recovery point (backup). A legal hold is a restraint on altering or deleting a backup until an authorized user cancels the legal hold. Any actions to delete or disassociate a recovery point will fail with an error if one or more active legal holds are on the recovery point.

", + "idempotent":true + }, "CreateReportPlan":{ "name":"CreateReportPlan", "http":{ @@ -229,7 +265,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Deletes the recovery point specified by a recovery point ID.

If the recovery point ID belongs to a continuous backup, calling this endpoint deletes the existing continuous backup and stops future continuous backup.

", + "documentation":"

Deletes the recovery point specified by a recovery point ID.

If the recovery point ID belongs to a continuous backup, calling this endpoint deletes the existing continuous backup and stops future continuous backup.

When an IAM role's permissions are insufficient to call this API, the service sends back an HTTP 200 response with an empty HTTP body, but the recovery point is not deleted. Instead, it enters an EXPIRED state.

EXPIRED recovery points can be deleted with this API once the IAM role has the iam:CreateServiceLinkedRole action. To learn more about adding this role, see Troubleshooting manual deletions.

If the user or role is deleted or the permission within the role is removed, the deletion will not be successful and will enter an EXPIRED state.

", "idempotent":true }, "DeleteReportPlan":{ @@ -444,6 +480,23 @@ ], "documentation":"

Deletes the specified continuous backup recovery point from Backup and releases control of that continuous backup to the source service, such as Amazon RDS. The source service will continue to create and retain continuous backups using the lifecycle that you specified in your original backup plan.

Does not support snapshot backup recovery points.

" }, + "DisassociateRecoveryPointFromParent":{ + "name":"DisassociateRecoveryPointFromParent", + "http":{ + "method":"DELETE", + "requestUri":"/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}/parentAssociation", + "responseCode":204 + }, + "input":{"shape":"DisassociateRecoveryPointFromParentInput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingParameterValueException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidRequestException"} + ], + "documentation":"

This action to a specific child (nested) recovery point removes the relationship between the specified recovery point and its parent (composite) recovery point.

" + }, "ExportBackupPlanTemplate":{ "name":"ExportBackupPlanTemplate", "http":{ @@ -561,6 +614,23 @@ "documentation":"

Returns event notifications for the specified backup vault.

", "idempotent":true }, + "GetLegalHold":{ + "name":"GetLegalHold", + "http":{ + "method":"GET", + "requestUri":"/legal-holds/{legalHoldId}/" + }, + "input":{"shape":"GetLegalHoldInput"}, + "output":{"shape":"GetLegalHoldOutput"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingParameterValueException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

This action returns details for a specified legal hold. The details are the body of a legal hold in JSON format, in addition to metadata.

", + "idempotent":true + }, "GetRecoveryPointRestoreMetadata":{ "name":"GetRecoveryPointRestoreMetadata", "http":{ @@ -717,6 +787,21 @@ ], "documentation":"

Returns a list of all frameworks for an Amazon Web Services account and Amazon Web Services Region.

" }, + "ListLegalHolds":{ + "name":"ListLegalHolds", + "http":{ + "method":"GET", + "requestUri":"/legal-holds/" + }, + "input":{"shape":"ListLegalHoldsInput"}, + "output":{"shape":"ListLegalHoldsOutput"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

This action returns metadata about active and previous legal holds.

", + "idempotent":true + }, "ListProtectedResources":{ "name":"ListProtectedResources", "http":{ @@ -749,6 +834,22 @@ "documentation":"

Returns detailed information about the recovery points stored in a backup vault.

", "idempotent":true }, + "ListRecoveryPointsByLegalHold":{ + "name":"ListRecoveryPointsByLegalHold", + "http":{ + "method":"GET", + "requestUri":"/legal-holds/{legalHoldId}/recovery-points" + }, + "input":{"shape":"ListRecoveryPointsByLegalHoldInput"}, + "output":{"shape":"ListRecoveryPointsByLegalHoldOutput"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingParameterValueException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

This action returns recovery point ARNs (Amazon Resource Names) of the specified legal hold.

", + "idempotent":true + }, "ListRecoveryPointsByResource":{ "name":"ListRecoveryPointsByResource", "http":{ @@ -776,7 +877,8 @@ "output":{"shape":"ListReportJobsOutput"}, "errors":[ {"shape":"InvalidParameterValueException"}, - {"shape":"ServiceUnavailableException"} + {"shape":"ServiceUnavailableException"}, + {"shape":"ResourceNotFoundException"} ], "documentation":"

Returns details about your report jobs.

" }, @@ -963,7 +1065,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Attempts to cancel a job to create a one-time backup of a resource.

" + "documentation":"

Attempts to cancel a job to create a one-time backup of a resource.

This action is not supported for the following services: Amazon FSx for Windows File Server, Amazon FSx for Lustre, FSx for ONTAP , Amazon FSx for OpenZFS, Amazon DocumentDB (with MongoDB compatibility), Amazon RDS, Amazon Aurora, and Amazon Neptune.

" }, "TagResource":{ "name":"TagResource", @@ -1065,7 +1167,7 @@ {"shape":"MissingParameterValueException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Sets the transition lifecycle of a recovery point.

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

This operation does not support continuous backups.

", + "documentation":"

Sets the transition lifecycle of a recovery point.

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

This operation does not support continuous backups.

", "idempotent":true }, "UpdateRegionSettings":{ @@ -1232,10 +1334,23 @@ "BackupType":{ "shape":"string", "documentation":"

Represents the type of backup for a backup job.

" + }, + "ParentJobId":{ + "shape":"string", + "documentation":"

This uniquely identifies a request to Backup to back up a resource. The return will be the parent (composite) job ID.

" + }, + "IsParent":{ + "shape":"boolean", + "documentation":"

This is a boolean value indicating this is a parent (composite) backup job.

" } }, "documentation":"

Contains detailed information about a backup job.

" }, + "BackupJobChildJobsInState":{ + "type":"map", + "key":{"shape":"BackupJobState"}, + "value":{"shape":"Long"} + }, "BackupJobState":{ "type":"string", "enum":[ @@ -1246,7 +1361,8 @@ "ABORTED", "COMPLETED", "FAILED", - "EXPIRED" + "EXPIRED", + "PARTIAL" ] }, "BackupJobsList":{ @@ -1400,7 +1516,7 @@ }, "StartWindowMinutes":{ "shape":"WindowMinutes", - "documentation":"

A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional.

" + "documentation":"

A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional. If this value is included, it must be at least 60 minutes to avoid errors.

" }, "CompletionWindowMinutes":{ "shape":"WindowMinutes", @@ -1408,7 +1524,7 @@ }, "Lifecycle":{ "shape":"Lifecycle", - "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" + "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" }, "RecoveryPointTags":{ "shape":"Tags", @@ -1450,7 +1566,7 @@ }, "StartWindowMinutes":{ "shape":"WindowMinutes", - "documentation":"

A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional.

" + "documentation":"

A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional. If this value is included, it must be at least 60 minutes to avoid errors.

" }, "CompletionWindowMinutes":{ "shape":"WindowMinutes", @@ -1458,7 +1574,7 @@ }, "Lifecycle":{ "shape":"Lifecycle", - "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup will transition and expire backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" + "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup will transition and expire backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" }, "RecoveryPointTags":{ "shape":"Tags", @@ -1508,7 +1624,7 @@ }, "ListOfTags":{ "shape":"ListOfTags", - "documentation":"

A list of conditions that you define to assign resources to your backup plans using tags. For example, \"StringEquals\": {\"Department\": \"accounting\". Condition operators are case sensitive.

ListOfTags differs from Conditions as follows:

  • When you specify more than one condition, you assign all resources that match AT LEAST ONE condition (using OR logic).

  • ListOfTags only supports StringEquals. Conditions supports StringEquals, StringLike, StringNotEquals, and StringNotLike.

" + "documentation":"

A list of conditions that you define to assign resources to your backup plans using tags. For example, \"StringEquals\": { \"ConditionKey\": \"aws:ResourceTag/CreatedByCryo\", \"ConditionValue\": \"true\" },. Condition operators are case sensitive.

ListOfTags differs from Conditions as follows:

  • When you specify more than one condition, you assign all resources that match AT LEAST ONE condition (using OR logic).

  • ListOfTags only supports StringEquals. Conditions supports StringEquals, StringLike, StringNotEquals, and StringNotLike.

" }, "NotResources":{ "shape":"ResourceArns", @@ -1516,10 +1632,10 @@ }, "Conditions":{ "shape":"Conditions", - "documentation":"

A list of conditions that you define to assign resources to your backup plans using tags. For example, \"StringEquals\": {\"Department\": \"accounting\". Condition operators are case sensitive.

Conditions differs from ListOfTags as follows:

  • When you specify more than one condition, you only assign the resources that match ALL conditions (using AND logic).

  • Conditions supports StringEquals, StringLike, StringNotEquals, and StringNotLike. ListOfTags only supports StringEquals.

" + "documentation":"

A list of conditions that you define to assign resources to your backup plans using tags. For example, \"StringEquals\": { \"ConditionKey\": \"aws:ResourceTag/CreatedByCryo\", \"ConditionValue\": \"true\" },. Condition operators are case sensitive.

Conditions differs from ListOfTags as follows:

  • When you specify more than one condition, you only assign the resources that match ALL conditions (using AND logic).

  • Conditions supports StringEquals, StringLike, StringNotEquals, and StringNotLike. ListOfTags only supports StringEquals.

" } }, - "documentation":"

Used to specify a set of resources to a backup plan.

" + "documentation":"

Used to specify a set of resources to a backup plan.

Specifying your desired Conditions, ListOfTags, NotResources, and/or Resources is recommended. If none of these are specified, Backup will attempt to select all supported and opted-in storage resources, which could have unintended cost implications.

" }, "BackupSelectionName":{ "type":"string", @@ -1652,7 +1768,39 @@ "documentation":"

A timestamp that specifies when to delete a recovery point.

" } }, - "documentation":"

Contains DeleteAt and MoveToColdStorageAt timestamps, which are used to specify a lifecycle for a recovery point.

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" + "documentation":"

Contains DeleteAt and MoveToColdStorageAt timestamps, which are used to specify a lifecycle for a recovery point.

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" + }, + "CancelLegalHoldInput":{ + "type":"structure", + "required":[ + "LegalHoldId", + "CancelDescription" + ], + "members":{ + "LegalHoldId":{ + "shape":"string", + "documentation":"

Legal hold ID required to remove the specified legal hold on a recovery point.

", + "location":"uri", + "locationName":"legalHoldId" + }, + "CancelDescription":{ + "shape":"string", + "documentation":"

String describing the reason for removing the legal hold.

", + "location":"querystring", + "locationName":"cancelDescription" + }, + "RetainRecordInDays":{ + "shape":"Long", + "documentation":"

The integer amount in days specifying amount of days after this API operation to remove legal hold.

", + "location":"querystring", + "locationName":"retainRecordInDays" + } + } + }, + "CancelLegalHoldOutput":{ + "type":"structure", + "members":{ + } }, "ComplianceResourceIdList":{ "type":"list", @@ -1858,17 +2006,43 @@ "ResourceType":{ "shape":"ResourceType", "documentation":"

The type of Amazon Web Services resource to be copied; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database.

" + }, + "ParentJobId":{ + "shape":"string", + "documentation":"

This uniquely identifies a request to Backup to copy a resource. The return will be the parent (composite) job ID.

" + }, + "IsParent":{ + "shape":"boolean", + "documentation":"

This is a boolean value indicating this is a parent (composite) copy job.

" + }, + "CompositeMemberIdentifier":{ + "shape":"string", + "documentation":"

This is the identifier of a resource within a composite group, such as nested (child) recovery point belonging to a composite (parent) stack. The ID is transferred from the logical ID within a stack.

" + }, + "NumberOfChildJobs":{ + "shape":"Long", + "documentation":"

This is the number of child (nested) copy jobs.

" + }, + "ChildJobsInState":{ + "shape":"CopyJobChildJobsInState", + "documentation":"

This returns the statistics of the included child (nested) copy jobs.

" } }, "documentation":"

Contains detailed information about a copy job.

" }, + "CopyJobChildJobsInState":{ + "type":"map", + "key":{"shape":"CopyJobState"}, + "value":{"shape":"Long"} + }, "CopyJobState":{ "type":"string", "enum":[ "CREATED", "RUNNING", "COMPLETED", - "FAILED" + "FAILED", + "PARTIAL" ] }, "CopyJobsList":{ @@ -2042,6 +2216,68 @@ } } }, + "CreateLegalHoldInput":{ + "type":"structure", + "required":[ + "Title", + "Description" + ], + "members":{ + "Title":{ + "shape":"string", + "documentation":"

This is the string title of the legal hold.

" + }, + "Description":{ + "shape":"string", + "documentation":"

This is the string description of the legal hold.

" + }, + "IdempotencyToken":{ + "shape":"string", + "documentation":"

This is a user-chosen string used to distinguish between otherwise identical calls. Retrying a successful request with the same idempotency token results in a success message with no action taken.

" + }, + "RecoveryPointSelection":{ + "shape":"RecoveryPointSelection", + "documentation":"

This specifies criteria to assign a set of resources, such as resource types or backup vaults.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Optional tags to include. A tag is a key-value pair you can use to manage, filter, and search for your resources. Allowed characters include UTF-8 letters, numbers, spaces, and the following characters: + - = . _ : /.

" + } + } + }, + "CreateLegalHoldOutput":{ + "type":"structure", + "members":{ + "Title":{ + "shape":"string", + "documentation":"

This is the string title of the legal hold returned after creating the legal hold.

" + }, + "Status":{ + "shape":"LegalHoldStatus", + "documentation":"

This displays the status of the legal hold returned after creating the legal hold. Statuses can be ACTIVE, PENDING, CANCELED, CANCELING, or FAILED.

" + }, + "Description":{ + "shape":"string", + "documentation":"

This is the returned string description of the legal hold.

" + }, + "LegalHoldId":{ + "shape":"string", + "documentation":"

Legal hold ID returned for the specified legal hold on a recovery point.

" + }, + "LegalHoldArn":{ + "shape":"ARN", + "documentation":"

This is the ARN (Amazon Resource Number) of the created legal hold.

" + }, + "CreationDate":{ + "shape":"timestamp", + "documentation":"

Time in number format when legal hold was created.

" + }, + "RecoveryPointSelection":{ + "shape":"RecoveryPointSelection", + "documentation":"

This specifies criteria to assign a set of resources, such as resource types or backup vaults.

" + } + } + }, "CreateReportPlanInput":{ "type":"structure", "required":[ @@ -2095,6 +2331,24 @@ } }, "CronExpression":{"type":"string"}, + "DateRange":{ + "type":"structure", + "required":[ + "FromDate", + "ToDate" + ], + "members":{ + "FromDate":{ + "shape":"timestamp", + "documentation":"

This value is the beginning date, inclusive.

The date and time are in Unix format and Coordinated Universal Time (UTC), and it is accurate to milliseconds (milliseconds are optional).

" + }, + "ToDate":{ + "shape":"timestamp", + "documentation":"

This value is the end date, inclusive.

The date and time are in Unix format and Coordinated Universal Time (UTC), and it is accurate to milliseconds (milliseconds are optional).

" + } + }, + "documentation":"

This is a resource filter containing FromDate: DateTime and ToDate: DateTime. Both values are required. Future DateTime values are not permitted.

The date and time are in Unix format and Coordinated Universal Time (UTC), and it is accurate to milliseconds ((milliseconds are optional). For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + }, "DeleteBackupPlanInput":{ "type":"structure", "required":["BackupPlanId"], @@ -2354,6 +2608,22 @@ "BackupType":{ "shape":"string", "documentation":"

Represents the actual backup type selected for a backup job. For example, if a successful Windows Volume Shadow Copy Service (VSS) backup was taken, BackupType returns \"WindowsVSS\". If BackupType is empty, then the backup type was a regular backup.

" + }, + "ParentJobId":{ + "shape":"string", + "documentation":"

This returns the parent (composite) resource backup job ID.

" + }, + "IsParent":{ + "shape":"boolean", + "documentation":"

This returns the boolean value that a backup job is a parent (composite) job.

" + }, + "NumberOfChildJobs":{ + "shape":"Long", + "documentation":"

This returns the number of child (nested) backup jobs.

" + }, + "ChildJobsInState":{ + "shape":"BackupJobChildJobsInState", + "documentation":"

This returns the statistics of the included child (nested) backup jobs.

" } } }, @@ -2468,7 +2738,7 @@ }, "CreationTime":{ "shape":"timestamp", - "documentation":"

The date and time that a framework is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + "documentation":"

The date and time that a framework is created, in ISO 8601 representation. The value of CreationTime is accurate to milliseconds. For example, 2020-07-10T15:00:00.000-08:00 represents the 10th of July 2020 at 3:00 PM 8 hours behind UTC.

" }, "DeploymentStatus":{ "shape":"string", @@ -2589,7 +2859,7 @@ }, "Status":{ "shape":"RecoveryPointStatus", - "documentation":"

A status code specifying the state of the recovery point.

PARTIAL status indicates Backup could not create the recovery point before the backup window closed. To increase your backup plan window using the API, see UpdateBackupPlan. You can also increase your backup plan window using the Console by choosing and editing your backup plan.

EXPIRED status indicates that the recovery point has exceeded its retention period, but Backup lacks permission or is otherwise unable to delete it. To manually delete these recovery points, see Step 3: Delete the recovery points in the Clean up resources section of Getting started.

" + "documentation":"

A status code specifying the state of the recovery point.

PARTIAL status indicates Backup could not create the recovery point before the backup window closed. To increase your backup plan window using the API, see UpdateBackupPlan. You can also increase your backup plan window using the Console by choosing and editing your backup plan.

EXPIRED status indicates that the recovery point has exceeded its retention period, but Backup lacks permission or is otherwise unable to delete it. To manually delete these recovery points, see Step 3: Delete the recovery points in the Clean up resources section of Getting started.

STOPPED status occurs on a continuous backup where a user has taken some action that causes the continuous backup to be disabled. This can be caused by the removal of permissions, turning off versioning, turning off events being sent to EventBridge, or disabling the EventBridge rules that are put in place by Backup.

To resolve STOPPED status, ensure that all requested permissions are in place and that versioning is enabled on the S3 bucket. Once these conditions are met, the next instance of a backup rule running will result in a new continuous recovery point being created. The recovery points with STOPPED status do not need to be deleted.

" }, "StatusMessage":{ "shape":"string", @@ -2613,7 +2883,7 @@ }, "Lifecycle":{ "shape":"Lifecycle", - "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups that are transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" + "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups that are transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" }, "EncryptionKeyArn":{ "shape":"ARN", @@ -2630,6 +2900,18 @@ "LastRestoreTime":{ "shape":"timestamp", "documentation":"

The date and time that a recovery point was last restored, in Unix format and Coordinated Universal Time (UTC). The value of LastRestoreTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + }, + "ParentRecoveryPointArn":{ + "shape":"ARN", + "documentation":"

This is an ARN that uniquely identifies a parent (composite) recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.

" + }, + "CompositeMemberIdentifier":{ + "shape":"string", + "documentation":"

This is the identifier of a resource within a composite group, such as nested (child) recovery point belonging to a composite (parent) stack. The ID is transferred from the logical ID within a stack.

" + }, + "IsParent":{ + "shape":"boolean", + "documentation":"

This returns the boolean value that a recovery point is a parent (composite) job.

" } } }, @@ -2762,6 +3044,27 @@ } } }, + "DisassociateRecoveryPointFromParentInput":{ + "type":"structure", + "required":[ + "BackupVaultName", + "RecoveryPointArn" + ], + "members":{ + "BackupVaultName":{ + "shape":"BackupVaultName", + "documentation":"

This is the name of a logical container where the child (nested) recovery point is stored. Backup vaults are identified by names that are unique to the account used to create them and the Amazon Web Services Region where they are created. They consist of lowercase letters, numbers, and hyphens.

", + "location":"uri", + "locationName":"backupVaultName" + }, + "RecoveryPointArn":{ + "shape":"ARN", + "documentation":"

This is the Amazon Resource Name (ARN) that uniquely identifies the child (nested) recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.

", + "location":"uri", + "locationName":"recoveryPointArn" + } + } + }, "DisassociateRecoveryPointInput":{ "type":"structure", "required":[ @@ -2829,7 +3132,7 @@ }, "CreationTime":{ "shape":"timestamp", - "documentation":"

The date and time that a framework is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + "documentation":"

The date and time that a framework is created, in ISO 8601 representation. The value of CreationTime is accurate to milliseconds. For example, 2020-07-10T15:00:00.000-08:00 represents the 10th of July 2020 at 3:00 PM 8 hours behind UTC.

" }, "DeploymentStatus":{ "shape":"string", @@ -3084,6 +3387,63 @@ } } }, + "GetLegalHoldInput":{ + "type":"structure", + "required":["LegalHoldId"], + "members":{ + "LegalHoldId":{ + "shape":"string", + "documentation":"

This is the ID required to use GetLegalHold. This unique ID is associated with a specific legal hold.

", + "location":"uri", + "locationName":"legalHoldId" + } + } + }, + "GetLegalHoldOutput":{ + "type":"structure", + "members":{ + "Title":{ + "shape":"string", + "documentation":"

This is the string title of the legal hold.

" + }, + "Status":{ + "shape":"LegalHoldStatus", + "documentation":"

This is the status of the legal hold. Statuses can be ACTIVE, CREATING, CANCELED, and CANCELING.

" + }, + "Description":{ + "shape":"string", + "documentation":"

This is the returned string description of the legal hold.

" + }, + "CancelDescription":{ + "shape":"string", + "documentation":"

String describing the reason for removing the legal hold.

" + }, + "LegalHoldId":{ + "shape":"string", + "documentation":"

This is the returned ID associated with a specified legal hold.

" + }, + "LegalHoldArn":{ + "shape":"ARN", + "documentation":"

This is the returned framework ARN for the specified legal hold. An Amazon Resource Name (ARN) uniquely identifies a resource. The format of the ARN depends on the resource type.

" + }, + "CreationDate":{ + "shape":"timestamp", + "documentation":"

Time in number format when legal hold was created.

" + }, + "CancellationDate":{ + "shape":"timestamp", + "documentation":"

Time in number when legal hold was cancelled.

" + }, + "RetainRecordUntil":{ + "shape":"timestamp", + "documentation":"

This is the date and time until which the legal hold record will be retained.

" + }, + "RecoveryPointSelection":{ + "shape":"RecoveryPointSelection", + "documentation":"

This specifies criteria to assign a set of resources, such as resource types or backup vaults.

" + } + } + }, "GetRecoveryPointRestoreMetadataInput":{ "type":"structure", "required":[ @@ -3192,6 +3552,53 @@ "exception":true }, "IsEnabled":{"type":"boolean"}, + "LegalHold":{ + "type":"structure", + "members":{ + "Title":{ + "shape":"string", + "documentation":"

This is the title of a legal hold.

" + }, + "Status":{ + "shape":"LegalHoldStatus", + "documentation":"

This is the status of the legal hold. Statuses can be ACTIVE, CREATING, CANCELED, and CANCELING.

" + }, + "Description":{ + "shape":"string", + "documentation":"

This is the description of a legal hold.

" + }, + "LegalHoldId":{ + "shape":"string", + "documentation":"

ID of specific legal hold on one or more recovery points.

" + }, + "LegalHoldArn":{ + "shape":"ARN", + "documentation":"

This is an Amazon Resource Number (ARN) that uniquely identifies the legal hold; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.

" + }, + "CreationDate":{ + "shape":"timestamp", + "documentation":"

This is the time in number format when legal hold was created.

" + }, + "CancellationDate":{ + "shape":"timestamp", + "documentation":"

This is the time in number format when legal hold was cancelled.

" + } + }, + "documentation":"

A legal hold is an administrative tool that helps prevent backups from being deleted while under a hold. While the hold is in place, backups under a hold cannot be deleted and lifecycle policies that would alter the backup status (such as transition to cold storage) are delayed until the legal hold is removed. A backup can have more than one legal hold. Legal holds are applied to one or more backups (also known as recovery points). These backups can be filtered by resource types and by resource IDs.

" + }, + "LegalHoldStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "CANCELING", + "CANCELED" + ] + }, + "LegalHoldsList":{ + "type":"list", + "member":{"shape":"LegalHold"} + }, "Lifecycle":{ "type":"structure", "members":{ @@ -3204,7 +3611,7 @@ "documentation":"

Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus MoveToColdStorageAfterDays.

" } }, - "documentation":"

Contains an array of Transition objects specifying how long in days before a recovery point transitions to cold storage or is deleted.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, on the console, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" + "documentation":"

Contains an array of Transition objects specifying how long in days before a recovery point transitions to cold storage or is deleted.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, on the console, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" }, "LimitExceededException":{ "type":"structure", @@ -3291,6 +3698,12 @@ "documentation":"

Returns only backup jobs completed before a date expressed in Unix format and Coordinated Universal Time (UTC).

", "location":"querystring", "locationName":"completeBefore" + }, + "ByParentJobId":{ + "shape":"string", + "documentation":"

This is a filter to list child (nested) jobs based on parent job ID.

", + "location":"querystring", + "locationName":"parentJobId" } } }, @@ -3545,6 +3958,12 @@ "documentation":"

Returns only copy jobs completed after a date expressed in Unix format and Coordinated Universal Time (UTC).

", "location":"querystring", "locationName":"completeAfter" + }, + "ByParentJobId":{ + "shape":"string", + "documentation":"

This is a filter to list child (nested) jobs based on parent job ID.

", + "location":"querystring", + "locationName":"parentJobId" } } }, @@ -3591,6 +4010,36 @@ } } }, + "ListLegalHoldsInput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"string", + "documentation":"

The next item following a partial list of returned resources. For example, if a request is made to return maxResults number of resources, NextToken allows you to return more items in your list starting at the location pointed to by the next token.

", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of resource list items to be returned.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListLegalHoldsOutput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"string", + "documentation":"

The next item following a partial list of returned resources. For example, if a request is made to return maxResults number of resources, NextToken allows you to return more items in your list starting at the location pointed to by the next token.

" + }, + "LegalHolds":{ + "shape":"LegalHoldsList", + "documentation":"

This is an array of returned legal holds, both active and previous.

" + } + } + }, "ListOfTags":{ "type":"list", "member":{"shape":"Condition"} @@ -3676,6 +4125,12 @@ "documentation":"

Returns only recovery points that were created after the specified timestamp.

", "location":"querystring", "locationName":"createdAfter" + }, + "ByParentRecoveryPointArn":{ + "shape":"ARN", + "documentation":"

This returns only recovery points that match the specified parent (composite) recovery point Amazon Resource Name (ARN).

", + "location":"querystring", + "locationName":"parentRecoveryPointArn" } } }, @@ -3692,6 +4147,43 @@ } } }, + "ListRecoveryPointsByLegalHoldInput":{ + "type":"structure", + "required":["LegalHoldId"], + "members":{ + "LegalHoldId":{ + "shape":"string", + "documentation":"

This is the ID of the legal hold.

", + "location":"uri", + "locationName":"legalHoldId" + }, + "NextToken":{ + "shape":"string", + "documentation":"

This is the next item following a partial list of returned resources. For example, if a request is made to return maxResults number of resources, NextToken allows you to return more items in your list starting at the location pointed to by the next token.

", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

This is the maximum number of resource list items to be returned.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListRecoveryPointsByLegalHoldOutput":{ + "type":"structure", + "members":{ + "RecoveryPoints":{ + "shape":"RecoveryPointsList", + "documentation":"

This is a list of the recovery points returned by ListRecoveryPointsByLegalHold.

" + }, + "NextToken":{ + "shape":"string", + "documentation":"

This return is the next item following a partial list of returned resources.

" + } + } + }, "ListRecoveryPointsByResourceInput":{ "type":"structure", "required":["ResourceArn"], @@ -4036,7 +4528,7 @@ }, "BackupVaultEvents":{ "shape":"BackupVaultEvents", - "documentation":"

An array of events that indicate the status of jobs to back up resources to the backup vault.

For common use cases and code samples, see Using Amazon SNS to track Backup events.

The following events are supported:

  • BACKUP_JOB_STARTED | BACKUP_JOB_COMPLETED

  • COPY_JOB_STARTED | COPY_JOB_SUCCESSFUL | COPY_JOB_FAILED

  • RESTORE_JOB_STARTED | RESTORE_JOB_COMPLETED | RECOVERY_POINT_MODIFIED

  • S3_BACKUP_OBJECT_FAILED | S3_RESTORE_OBJECT_FAILED

Ignore the list below because it includes deprecated events. Refer to the list above.

" + "documentation":"

An array of events that indicate the status of jobs to back up resources to the backup vault.

For common use cases and code samples, see Using Amazon SNS to track Backup events.

The following events are supported:

  • BACKUP_JOB_STARTED | BACKUP_JOB_COMPLETED

  • COPY_JOB_STARTED | COPY_JOB_SUCCESSFUL | COPY_JOB_FAILED

  • RESTORE_JOB_STARTED | RESTORE_JOB_COMPLETED | RECOVERY_POINT_MODIFIED

  • S3_BACKUP_OBJECT_FAILED | S3_RESTORE_OBJECT_FAILED

The list below shows items that are deprecated events (for reference) and are no longer in use. They are no longer supported and will not return statuses or notifications. Refer to the list above for current supported events.

" } } }, @@ -4101,7 +4593,7 @@ }, "Lifecycle":{ "shape":"Lifecycle", - "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" + "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" }, "EncryptionKeyArn":{ "shape":"ARN", @@ -4114,6 +4606,18 @@ "LastRestoreTime":{ "shape":"timestamp", "documentation":"

The date and time a recovery point was last restored, in Unix format and Coordinated Universal Time (UTC). The value of LastRestoreTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + }, + "ParentRecoveryPointArn":{ + "shape":"ARN", + "documentation":"

This is the Amazon Resource Name (ARN) of the parent (composite) recovery point.

" + }, + "CompositeMemberIdentifier":{ + "shape":"string", + "documentation":"

This is the identifier of a resource within a composite group, such as nested (child) recovery point belonging to a composite (parent) stack. The ID is transferred from the logical ID within a stack.

" + }, + "IsParent":{ + "shape":"boolean", + "documentation":"

This is a boolean value indicating this is a parent (composite) recovery point.

" } }, "documentation":"

Contains detailed information about the recovery points stored in a backup vault.

" @@ -4152,6 +4656,14 @@ "BackupVaultName":{ "shape":"BackupVaultName", "documentation":"

The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Amazon Web Services Region where they are created. They consist of lowercase letters, numbers, and hyphens.

" + }, + "IsParent":{ + "shape":"boolean", + "documentation":"

This is a boolean value indicating this is a parent (composite) recovery point.

" + }, + "ParentRecoveryPointArn":{ + "shape":"ARN", + "documentation":"

This is the Amazon Resource Name (ARN) of the parent (composite) recovery point.

" } }, "documentation":"

Contains detailed information about a saved recovery point.

" @@ -4182,6 +4694,31 @@ }, "documentation":"

Contains information about the backup plan and rule that Backup used to initiate the recovery point backup.

" }, + "RecoveryPointMember":{ + "type":"structure", + "members":{ + "RecoveryPointArn":{ + "shape":"ARN", + "documentation":"

This is the Amazon Resource Name (ARN) of the parent (composite) recovery point.

" + } + }, + "documentation":"

This is a recovery point which is a child (nested) recovery point of a parent (composite) recovery point. These recovery points can be disassociated from their parent (composite) recovery point, in which case they will no longer be a member.

" + }, + "RecoveryPointSelection":{ + "type":"structure", + "members":{ + "VaultNames":{ + "shape":"VaultNames", + "documentation":"

These are the names of the vaults in which the selected recovery points are contained.

" + }, + "ResourceIdentifiers":{ + "shape":"ResourceIdentifiers", + "documentation":"

These are the resources included in the resource selection (including type of resources and vaults).

" + }, + "DateRange":{"shape":"DateRange"} + }, + "documentation":"

This specifies criteria to assign a set of resources, such as resource types or backup vaults.

" + }, "RecoveryPointStatus":{ "type":"string", "enum":[ @@ -4191,6 +4728,10 @@ "EXPIRED" ] }, + "RecoveryPointsList":{ + "type":"list", + "member":{"shape":"RecoveryPointMember"} + }, "ReportDeliveryChannel":{ "type":"structure", "required":["S3BucketName"], @@ -4340,6 +4881,18 @@ "NumberOfFrameworks":{ "shape":"integer", "documentation":"

The number of frameworks a report covers.

" + }, + "Accounts":{ + "shape":"stringList", + "documentation":"

These are the accounts to be included in the report.

" + }, + "OrganizationUnits":{ + "shape":"stringList", + "documentation":"

These are the Organizational Units to be included in the report.

" + }, + "Regions":{ + "shape":"stringList", + "documentation":"

These are the Regions to be included in the report.

" } }, "documentation":"

Contains detailed information about a report setting.

" @@ -4348,6 +4901,10 @@ "type":"list", "member":{"shape":"ARN"} }, + "ResourceIdentifiers":{ + "type":"list", + "member":{"shape":"string"} + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -4504,7 +5061,7 @@ }, "StartWindowMinutes":{ "shape":"WindowMinutes", - "documentation":"

A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional, and the default is 8 hours.

" + "documentation":"

A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional, and the default is 8 hours. If this value is included, it must be at least 60 minutes to avoid errors.

" }, "CompleteWindowMinutes":{ "shape":"WindowMinutes", @@ -4512,7 +5069,7 @@ }, "Lifecycle":{ "shape":"Lifecycle", - "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup will transition and expire backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" + "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup will transition and expire backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" }, "RecoveryPointTags":{ "shape":"Tags", @@ -4538,6 +5095,10 @@ "CreationDate":{ "shape":"timestamp", "documentation":"

The date and time that a backup job is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + }, + "IsParent":{ + "shape":"boolean", + "documentation":"

This is a returned boolean value indicating this is a parent (composite) backup job.

" } } }, @@ -4583,6 +5144,10 @@ "CreationDate":{ "shape":"timestamp", "documentation":"

The date and time that a copy job is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + }, + "IsParent":{ + "shape":"boolean", + "documentation":"

This is a returned boolean value indicating this is a parent (composite) copy job.

" } } }, @@ -4616,8 +5181,7 @@ "type":"structure", "required":[ "RecoveryPointArn", - "Metadata", - "IamRoleArn" + "Metadata" ], "members":{ "RecoveryPointArn":{ @@ -4630,7 +5194,7 @@ }, "IamRoleArn":{ "shape":"IAMRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the IAM role that Backup uses to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that Backup uses to create the target resource; for example: arn:aws:iam::123456789012:role/S3Access.

" }, "IdempotencyToken":{ "shape":"string", @@ -4804,7 +5368,7 @@ }, "CreationTime":{ "shape":"timestamp", - "documentation":"

The date and time that a framework is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + "documentation":"

The date and time that a framework is created, in ISO 8601 representation. The value of CreationTime is accurate to milliseconds. For example, 2020-07-10T15:00:00.000-08:00 represents the 10th of July 2020 at 3:00 PM 8 hours behind UTC.

" } } }, @@ -4855,7 +5419,7 @@ }, "Lifecycle":{ "shape":"Lifecycle", - "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Only resource types that support full Backup management can transition their backups to cold storage. Those resource types are listed in the \"Full Backup management\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" + "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold.

Resource types that are able to be transitioned to cold storage are listed in the \"Lifecycle to cold storage\" section of the Feature availability by resource table. Backup ignores this expression for other resource types.

" }, "CalculatedLifecycle":{ "shape":"CalculatedLifecycle", @@ -4922,6 +5486,10 @@ } } }, + "VaultNames":{ + "type":"list", + "member":{"shape":"string"} + }, "WindowMinutes":{"type":"long"}, "boolean":{"type":"boolean"}, "integer":{"type":"integer"}, diff --git a/botocore/data/backupstorage/2018-04-10/endpoint-rule-set-1.json b/botocore/data/backupstorage/2018-04-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..f1119e35 --- /dev/null +++ b/botocore/data/backupstorage/2018-04-10/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://backupstorage-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://backupstorage-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://backupstorage.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://backupstorage.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/backupstorage/2018-04-10/paginators-1.json b/botocore/data/backupstorage/2018-04-10/paginators-1.json new file mode 100644 index 00000000..ea142457 --- /dev/null +++ b/botocore/data/backupstorage/2018-04-10/paginators-1.json @@ -0,0 +1,3 @@ +{ + "pagination": {} +} diff --git a/botocore/data/backupstorage/2018-04-10/service-2.json b/botocore/data/backupstorage/2018-04-10/service-2.json new file mode 100644 index 00000000..57a99fa9 --- /dev/null +++ b/botocore/data/backupstorage/2018-04-10/service-2.json @@ -0,0 +1,924 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-04-10", + "endpointPrefix":"backupstorage", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Backup Storage", + "serviceId":"BackupStorage", + "signatureVersion":"v4", + "signingName":"backup-storage", + "uid":"backupstorage-2018-04-10" + }, + "operations":{ + "DeleteObject":{ + "name":"DeleteObject", + "http":{ + "method":"DELETE", + "requestUri":"/backup-jobs/{jobId}/object/{objectName}" + }, + "input":{"shape":"DeleteObjectInput"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceInternalException"}, + {"shape":"RetryableException"}, + {"shape":"IllegalArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"Delete Object from the incremental base Backup." + }, + "GetChunk":{ + "name":"GetChunk", + "http":{ + "method":"GET", + "requestUri":"/restore-jobs/{jobId}/chunk/{chunkToken}" + }, + "input":{"shape":"GetChunkInput"}, + "output":{"shape":"GetChunkOutput"}, + "errors":[ + {"shape":"IllegalArgumentException"}, + {"shape":"RetryableException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceInternalException"}, + {"shape":"ThrottlingException"}, + {"shape":"KMSInvalidKeyUsageException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"Gets the specified object's chunk." + }, + "GetObjectMetadata":{ + "name":"GetObjectMetadata", + "http":{ + "method":"GET", + "requestUri":"/restore-jobs/{jobId}/object/{objectToken}/metadata" + }, + "input":{"shape":"GetObjectMetadataInput"}, + "output":{"shape":"GetObjectMetadataOutput"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceInternalException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"RetryableException"}, + {"shape":"IllegalArgumentException"}, + {"shape":"ThrottlingException"}, + {"shape":"KMSInvalidKeyUsageException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"Get metadata associated with an Object." + }, + "ListChunks":{ + "name":"ListChunks", + "http":{ + "method":"GET", + "requestUri":"/restore-jobs/{jobId}/chunks/{objectToken}/list" + }, + "input":{"shape":"ListChunksInput"}, + "output":{"shape":"ListChunksOutput"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceInternalException"}, + {"shape":"RetryableException"}, + {"shape":"IllegalArgumentException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"List chunks in a given Object" + }, + "ListObjects":{ + "name":"ListObjects", + "http":{ + "method":"GET", + "requestUri":"/restore-jobs/{jobId}/objects/list" + }, + "input":{"shape":"ListObjectsInput"}, + "output":{"shape":"ListObjectsOutput"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceInternalException"}, + {"shape":"RetryableException"}, + {"shape":"IllegalArgumentException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"KMSInvalidKeyUsageException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"List all Objects in a given Backup." + }, + "NotifyObjectComplete":{ + "name":"NotifyObjectComplete", + "http":{ + "method":"PUT", + "requestUri":"/backup-jobs/{jobId}/object/{uploadId}/complete" + }, + "input":{"shape":"NotifyObjectCompleteInput"}, + "output":{"shape":"NotifyObjectCompleteOutput"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceInternalException"}, + {"shape":"NotReadableInputStreamException"}, + {"shape":"RetryableException"}, + {"shape":"IllegalArgumentException"}, + {"shape":"ThrottlingException"}, + {"shape":"KMSInvalidKeyUsageException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"Complete upload", + "authtype":"v4-unsigned-body" + }, + "PutChunk":{ + "name":"PutChunk", + "http":{ + "method":"PUT", + "requestUri":"/backup-jobs/{jobId}/chunk/{uploadId}/{chunkIndex}" + }, + "input":{"shape":"PutChunkInput"}, + "output":{"shape":"PutChunkOutput"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceInternalException"}, + {"shape":"NotReadableInputStreamException"}, + {"shape":"RetryableException"}, + {"shape":"IllegalArgumentException"}, + {"shape":"ThrottlingException"}, + {"shape":"KMSInvalidKeyUsageException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"Upload chunk.", + "authtype":"v4-unsigned-body" + }, + "PutObject":{ + "name":"PutObject", + "http":{ + "method":"PUT", + "requestUri":"/backup-jobs/{jobId}/object/{objectName}/put-object" + }, + "input":{"shape":"PutObjectInput"}, + "output":{"shape":"PutObjectOutput"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceInternalException"}, + {"shape":"NotReadableInputStreamException"}, + {"shape":"RetryableException"}, + {"shape":"IllegalArgumentException"}, + {"shape":"ThrottlingException"}, + {"shape":"KMSInvalidKeyUsageException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"Upload object that can store object metadata String and data blob in single API call using inline chunk field.", + "authtype":"v4-unsigned-body" + }, + "StartObject":{ + "name":"StartObject", + "http":{ + "method":"PUT", + "requestUri":"/backup-jobs/{jobId}/object/{objectName}" + }, + "input":{"shape":"StartObjectInput"}, + "output":{"shape":"StartObjectOutput"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceInternalException"}, + {"shape":"RetryableException"}, + {"shape":"IllegalArgumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"DataAlreadyExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"Start upload containing one or many chunks." + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ServiceErrorMessage"} + }, + "error":{"httpStatusCode":403}, + "exception":true, + "synthetic":true + }, + "BackupObject":{ + "type":"structure", + "required":[ + "Name", + "ObjectChecksum", + "ObjectChecksumAlgorithm", + "ObjectToken" + ], + "members":{ + "Name":{ + "shape":"string", + "documentation":"Object name" + }, + "ChunksCount":{ + "shape":"OptionalLong", + "documentation":"Number of chunks in object" + }, + "MetadataString":{ + "shape":"string", + "documentation":"Metadata string associated with the Object" + }, + "ObjectChecksum":{ + "shape":"string", + "documentation":"Object checksum" + }, + "ObjectChecksumAlgorithm":{ + "shape":"SummaryChecksumAlgorithm", + "documentation":"Checksum algorithm" + }, + "ObjectToken":{ + "shape":"string", + "documentation":"Object token" + } + }, + "documentation":"Object" + }, + "Chunk":{ + "type":"structure", + "required":[ + "Index", + "Length", + "Checksum", + "ChecksumAlgorithm", + "ChunkToken" + ], + "members":{ + "Index":{ + "shape":"long", + "documentation":"Chunk index" + }, + "Length":{ + "shape":"long", + "documentation":"Chunk length" + }, + "Checksum":{ + "shape":"string", + "documentation":"Chunk checksum" + }, + "ChecksumAlgorithm":{ + "shape":"DataChecksumAlgorithm", + "documentation":"Checksum algorithm" + }, + "ChunkToken":{ + "shape":"string", + "documentation":"Chunk token" + } + }, + "documentation":"Chunk" + }, + "ChunkList":{ + "type":"list", + "member":{"shape":"Chunk"} + }, + "DataAlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"}, + "Checksum":{ + "shape":"string", + "documentation":"Data checksum used" + }, + "ChecksumAlgorithm":{ + "shape":"string", + "documentation":"Checksum algorithm used" + } + }, + "documentation":"Non-retryable exception. Attempted to create already existing object or chunk. This message contains a checksum of already presented data.", + "error":{"httpStatusCode":400}, + "exception":true + }, + "DataChecksumAlgorithm":{ + "type":"string", + "enum":["SHA256"] + }, + "DeleteObjectInput":{ + "type":"structure", + "required":[ + "BackupJobId", + "ObjectName" + ], + "members":{ + "BackupJobId":{ + "shape":"string", + "documentation":"Backup job Id for the in-progress backup.", + "location":"uri", + "locationName":"jobId" + }, + "ObjectName":{ + "shape":"string", + "documentation":"The name of the Object.", + "location":"uri", + "locationName":"objectName" + } + } + }, + "GetChunkInput":{ + "type":"structure", + "required":[ + "StorageJobId", + "ChunkToken" + ], + "members":{ + "StorageJobId":{ + "shape":"string", + "documentation":"Storage job id", + "location":"uri", + "locationName":"jobId" + }, + "ChunkToken":{ + "shape":"string", + "documentation":"Chunk token", + "location":"uri", + "locationName":"chunkToken" + } + } + }, + "GetChunkOutput":{ + "type":"structure", + "required":[ + "Data", + "Length", + "Checksum", + "ChecksumAlgorithm" + ], + "members":{ + "Data":{ + "shape":"PayloadBlob", + "documentation":"Chunk data" + }, + "Length":{ + "shape":"long", + "documentation":"Data length", + "location":"header", + "locationName":"x-amz-data-length" + }, + "Checksum":{ + "shape":"string", + "documentation":"Data checksum", + "location":"header", + "locationName":"x-amz-checksum" + }, + "ChecksumAlgorithm":{ + "shape":"DataChecksumAlgorithm", + "documentation":"Checksum algorithm", + "location":"header", + "locationName":"x-amz-checksum-algorithm" + } + }, + "payload":"Data" + }, + "GetObjectMetadataInput":{ + "type":"structure", + "required":[ + "StorageJobId", + "ObjectToken" + ], + "members":{ + "StorageJobId":{ + "shape":"string", + "documentation":"Backup job id for the in-progress backup.", + "location":"uri", + "locationName":"jobId" + }, + "ObjectToken":{ + "shape":"string", + "documentation":"Object token.", + "location":"uri", + "locationName":"objectToken" + } + } + }, + "GetObjectMetadataOutput":{ + "type":"structure", + "members":{ + "MetadataString":{ + "shape":"string", + "documentation":"Metadata string.", + "location":"header", + "locationName":"x-amz-metadata-string" + }, + "MetadataBlob":{ + "shape":"PayloadBlob", + "documentation":"Metadata blob." + }, + "MetadataBlobLength":{ + "shape":"long", + "documentation":"The size of MetadataBlob.", + "location":"header", + "locationName":"x-amz-data-length" + }, + "MetadataBlobChecksum":{ + "shape":"string", + "documentation":"MetadataBlob checksum.", + "location":"header", + "locationName":"x-amz-checksum" + }, + "MetadataBlobChecksumAlgorithm":{ + "shape":"DataChecksumAlgorithm", + "documentation":"Checksum algorithm.", + "location":"header", + "locationName":"x-amz-checksum-algorithm" + } + }, + "payload":"MetadataBlob" + }, + "IllegalArgumentException":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"Non-retryable exception, indicates client error (wrong argument passed to API). See exception message for details.", + "error":{"httpStatusCode":400}, + "exception":true + }, + "KMSInvalidKeyUsageException":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"Non-retryable exception. Indicates the KMS key usage is incorrect. See exception message for details.", + "error":{"httpStatusCode":400}, + "exception":true + }, + "ListChunksInput":{ + "type":"structure", + "required":[ + "StorageJobId", + "ObjectToken" + ], + "members":{ + "StorageJobId":{ + "shape":"string", + "documentation":"Storage job id", + "location":"uri", + "locationName":"jobId" + }, + "ObjectToken":{ + "shape":"string", + "documentation":"Object token", + "location":"uri", + "locationName":"objectToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"Maximum number of chunks", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"string", + "documentation":"Pagination token", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "ListChunksOutput":{ + "type":"structure", + "required":["ChunkList"], + "members":{ + "ChunkList":{ + "shape":"ChunkList", + "documentation":"List of chunks" + }, + "NextToken":{ + "shape":"string", + "documentation":"Pagination token" + } + } + }, + "ListObjectsInput":{ + "type":"structure", + "required":["StorageJobId"], + "members":{ + "StorageJobId":{ + "shape":"string", + "documentation":"Storage job id", + "location":"uri", + "locationName":"jobId" + }, + "StartingObjectName":{ + "shape":"string", + "documentation":"Optional, specifies the starting Object name to list from. Ignored if NextToken is not NULL", + "location":"querystring", + "locationName":"starting-object-name" + }, + "StartingObjectPrefix":{ + "shape":"string", + "documentation":"Optional, specifies the starting Object prefix to list from. Ignored if NextToken is not NULL", + "location":"querystring", + "locationName":"starting-object-prefix" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"Maximum objects count", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"string", + "documentation":"Pagination token", + "location":"querystring", + "locationName":"next-token" + }, + "CreatedBefore":{ + "shape":"timestamp", + "documentation":"(Optional) Created before filter", + "location":"querystring", + "locationName":"created-before" + }, + "CreatedAfter":{ + "shape":"timestamp", + "documentation":"(Optional) Created after filter", + "location":"querystring", + "locationName":"created-after" + } + } + }, + "ListObjectsOutput":{ + "type":"structure", + "required":["ObjectList"], + "members":{ + "ObjectList":{ + "shape":"ObjectList", + "documentation":"Object list" + }, + "NextToken":{ + "shape":"string", + "documentation":"Pagination token" + } + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "MetadataString":{ + "type":"string", + "pattern":"^.{1,256}$" + }, + "NotReadableInputStreamException":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"Retryalble exception. Indicated issues while reading an input stream due to the networking issues or connection drop on the client side.", + "error":{"httpStatusCode":400}, + "exception":true + }, + "NotifyObjectCompleteInput":{ + "type":"structure", + "required":[ + "BackupJobId", + "UploadId", + "ObjectChecksum", + "ObjectChecksumAlgorithm" + ], + "members":{ + "BackupJobId":{ + "shape":"string", + "documentation":"Backup job Id for the in-progress backup", + "location":"uri", + "locationName":"jobId" + }, + "UploadId":{ + "shape":"string", + "documentation":"Upload Id for the in-progress upload", + "location":"uri", + "locationName":"uploadId" + }, + "ObjectChecksum":{ + "shape":"string", + "documentation":"Object checksum", + "location":"querystring", + "locationName":"checksum" + }, + "ObjectChecksumAlgorithm":{ + "shape":"SummaryChecksumAlgorithm", + "documentation":"Checksum algorithm", + "location":"querystring", + "locationName":"checksum-algorithm" + }, + "MetadataString":{ + "shape":"MetadataString", + "documentation":"Optional metadata associated with an Object. Maximum string length is 256 bytes.", + "location":"querystring", + "locationName":"metadata-string" + }, + "MetadataBlob":{ + "shape":"PayloadBlob", + "documentation":"Optional metadata associated with an Object. Maximum length is 4MB." + }, + "MetadataBlobLength":{ + "shape":"long", + "documentation":"The size of MetadataBlob.", + "location":"querystring", + "locationName":"metadata-blob-length" + }, + "MetadataBlobChecksum":{ + "shape":"string", + "documentation":"Checksum of MetadataBlob.", + "location":"querystring", + "locationName":"metadata-checksum" + }, + "MetadataBlobChecksumAlgorithm":{ + "shape":"DataChecksumAlgorithm", + "documentation":"Checksum algorithm.", + "location":"querystring", + "locationName":"metadata-checksum-algorithm" + } + }, + "payload":"MetadataBlob" + }, + "NotifyObjectCompleteOutput":{ + "type":"structure", + "required":[ + "ObjectChecksum", + "ObjectChecksumAlgorithm" + ], + "members":{ + "ObjectChecksum":{ + "shape":"string", + "documentation":"Object checksum" + }, + "ObjectChecksumAlgorithm":{ + "shape":"SummaryChecksumAlgorithm", + "documentation":"Checksum algorithm" + } + } + }, + "ObjectList":{ + "type":"list", + "member":{"shape":"BackupObject"} + }, + "OptionalLong":{"type":"long"}, + "PayloadBlob":{ + "type":"blob", + "streaming":true + }, + "PutChunkInput":{ + "type":"structure", + "required":[ + "BackupJobId", + "UploadId", + "ChunkIndex", + "Data", + "Length", + "Checksum", + "ChecksumAlgorithm" + ], + "members":{ + "BackupJobId":{ + "shape":"string", + "documentation":"Backup job Id for the in-progress backup.", + "location":"uri", + "locationName":"jobId" + }, + "UploadId":{ + "shape":"string", + "documentation":"Upload Id for the in-progress upload.", + "location":"uri", + "locationName":"uploadId" + }, + "ChunkIndex":{ + "shape":"long", + "documentation":"Describes this chunk's position relative to the other chunks", + "location":"uri", + "locationName":"chunkIndex" + }, + "Data":{ + "shape":"PayloadBlob", + "documentation":"Data to be uploaded" + }, + "Length":{ + "shape":"long", + "documentation":"Data length", + "location":"querystring", + "locationName":"length" + }, + "Checksum":{ + "shape":"string", + "documentation":"Data checksum", + "location":"querystring", + "locationName":"checksum" + }, + "ChecksumAlgorithm":{ + "shape":"DataChecksumAlgorithm", + "documentation":"Checksum algorithm", + "location":"querystring", + "locationName":"checksum-algorithm" + } + }, + "payload":"Data" + }, + "PutChunkOutput":{ + "type":"structure", + "required":[ + "ChunkChecksum", + "ChunkChecksumAlgorithm" + ], + "members":{ + "ChunkChecksum":{ + "shape":"string", + "documentation":"Chunk checksum" + }, + "ChunkChecksumAlgorithm":{ + "shape":"DataChecksumAlgorithm", + "documentation":"Checksum algorithm" + } + } + }, + "PutObjectInput":{ + "type":"structure", + "required":[ + "BackupJobId", + "ObjectName" + ], + "members":{ + "BackupJobId":{ + "shape":"string", + "documentation":"Backup job Id for the in-progress backup.", + "location":"uri", + "locationName":"jobId" + }, + "ObjectName":{ + "shape":"string", + "documentation":"The name of the Object to be uploaded.", + "location":"uri", + "locationName":"objectName" + }, + "MetadataString":{ + "shape":"string", + "documentation":"Store user defined metadata like backup checksum, disk ids, restore metadata etc.", + "location":"querystring", + "locationName":"metadata-string" + }, + "InlineChunk":{ + "shape":"PayloadBlob", + "documentation":"Inline chunk data to be uploaded." + }, + "InlineChunkLength":{ + "shape":"long", + "documentation":"Length of the inline chunk data.", + "location":"querystring", + "locationName":"length" + }, + "InlineChunkChecksum":{ + "shape":"string", + "documentation":"Inline chunk checksum", + "location":"querystring", + "locationName":"checksum" + }, + "InlineChunkChecksumAlgorithm":{ + "shape":"string", + "documentation":"Inline chunk checksum algorithm", + "location":"querystring", + "locationName":"checksum-algorithm" + }, + "ObjectChecksum":{ + "shape":"string", + "documentation":"object checksum", + "location":"querystring", + "locationName":"object-checksum" + }, + "ObjectChecksumAlgorithm":{ + "shape":"SummaryChecksumAlgorithm", + "documentation":"object checksum algorithm", + "location":"querystring", + "locationName":"object-checksum-algorithm" + }, + "ThrowOnDuplicate":{ + "shape":"boolean", + "documentation":"Throw an exception if Object name is already exist.", + "location":"querystring", + "locationName":"throwOnDuplicate" + } + }, + "payload":"InlineChunk" + }, + "PutObjectOutput":{ + "type":"structure", + "required":[ + "InlineChunkChecksum", + "InlineChunkChecksumAlgorithm", + "ObjectChecksum", + "ObjectChecksumAlgorithm" + ], + "members":{ + "InlineChunkChecksum":{ + "shape":"string", + "documentation":"Inline chunk checksum" + }, + "InlineChunkChecksumAlgorithm":{ + "shape":"DataChecksumAlgorithm", + "documentation":"Inline chunk checksum algorithm" + }, + "ObjectChecksum":{ + "shape":"string", + "documentation":"object checksum" + }, + "ObjectChecksumAlgorithm":{ + "shape":"SummaryChecksumAlgorithm", + "documentation":"object checksum algorithm" + } + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"Non-retryable exception. Attempted to make an operation on non-existing or expired resource.", + "error":{"httpStatusCode":404}, + "exception":true + }, + "RetryableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"Retryable exception. In general indicates internal failure that can be fixed by retry.", + "error":{"httpStatusCode":500}, + "exception":true + }, + "ServiceErrorMessage":{"type":"string"}, + "ServiceInternalException":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"Deprecated. To be removed from the model.", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"Retryable exception, indicates internal server error.", + "error":{"httpStatusCode":503}, + "exception":true, + "fault":true + }, + "StartObjectInput":{ + "type":"structure", + "required":[ + "BackupJobId", + "ObjectName" + ], + "members":{ + "BackupJobId":{ + "shape":"string", + "documentation":"Backup job Id for the in-progress backup", + "location":"uri", + "locationName":"jobId" + }, + "ObjectName":{ + "shape":"string", + "documentation":"Name for the object.", + "location":"uri", + "locationName":"objectName" + }, + "ThrowOnDuplicate":{ + "shape":"boolean", + "documentation":"Throw an exception if Object name is already exist." + } + } + }, + "StartObjectOutput":{ + "type":"structure", + "required":["UploadId"], + "members":{ + "UploadId":{ + "shape":"string", + "documentation":"Upload Id for a given upload." + } + } + }, + "SummaryChecksumAlgorithm":{ + "type":"string", + "enum":["SUMMARY"] + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"Increased rate over throttling limits. Can be retried with exponential backoff.", + "error":{"httpStatusCode":429}, + "exception":true + }, + "boolean":{"type":"boolean"}, + "long":{"type":"long"}, + "string":{"type":"string"}, + "timestamp":{"type":"timestamp"} + }, + "documentation":"The frontend service for Cryo Storage." +} diff --git a/botocore/data/batch/2016-08-10/endpoint-rule-set-1.json b/botocore/data/batch/2016-08-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..cbc19ea8 --- /dev/null +++ b/botocore/data/batch/2016-08-10/endpoint-rule-set-1.json @@ -0,0 +1,365 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://batch-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://fips.batch.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://batch.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://batch-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://batch.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://batch.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/batch/2016-08-10/examples-1.json b/botocore/data/batch/2016-08-10/examples-1.json index 68001e3c..18203dc8 100644 --- a/botocore/data/batch/2016-08-10/examples-1.json +++ b/botocore/data/batch/2016-08-10/examples-1.json @@ -298,14 +298,22 @@ ], "image": "busybox", - "memory": 128, "mountPoints": [ + ], + "resourceRequirements": [ + { + "type": "MEMORY", + "value": "128" + }, + { + "type": "VCPU", + "value": "1" + } ], "ulimits": [ ], - "vcpus": 1, "volumes": [ ] @@ -471,6 +479,29 @@ "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": { @@ -481,8 +512,16 @@ "10" ], "image": "busybox", - "memory": 128, - "vcpus": 1 + "resourceRequirements": [ + { + "type": "MEMORY", + "value": "128" + }, + { + "type": "VCPU", + "value": "1" + } + ] }, "jobDefinitionName": "sleep10" }, @@ -500,6 +539,47 @@ "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": [ @@ -524,6 +604,27 @@ "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": { @@ -543,6 +644,27 @@ "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": { diff --git a/botocore/data/batch/2016-08-10/service-2.json b/botocore/data/batch/2016-08-10/service-2.json index d8ca9607..970ba033 100644 --- a/botocore/data/batch/2016-08-10/service-2.json +++ b/botocore/data/batch/2016-08-10/service-2.json @@ -24,7 +24,7 @@ {"shape":"ClientException"}, {"shape":"ServerException"} ], - "documentation":"

Cancels a job in an Batch job queue. Jobs that are in the SUBMITTED, PENDING, or RUNNABLE state are canceled. Jobs that have progressed to STARTING or RUNNING aren't canceled, but the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the TerminateJob operation.

" + "documentation":"

Cancels a job in an Batch job queue. Jobs that are in the SUBMITTED, PENDING, or RUNNABLE state are canceled. Jobs that progressed to the STARTING or RUNNING state aren't canceled. However, the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the TerminateJob operation.

" }, "CreateComputeEnvironment":{ "name":"CreateComputeEnvironment", @@ -38,7 +38,7 @@ {"shape":"ClientException"}, {"shape":"ServerException"} ], - "documentation":"

Creates an Batch compute environment. You can create MANAGED or UNMANAGED compute environments. MANAGED compute environments can use Amazon EC2 or Fargate resources. UNMANAGED compute environments can only use EC2 resources.

In a managed compute environment, Batch manages the capacity and instance types of the compute resources within the environment. This is based on the compute resource specification that you define or the launch template that you specify when you create the compute environment. Either, you can choose to use EC2 On-Demand Instances and EC2 Spot Instances. Or, you can use Fargate and Fargate Spot capacity in your managed compute environment. You can optionally set a maximum price so that Spot Instances only launch when the Spot Instance price is less than a specified percentage of the On-Demand price.

Multi-node parallel jobs aren't supported on Spot Instances.

In an unmanaged compute environment, you can manage your own EC2 compute resources and have a lot of flexibility with how you configure your compute resources. For example, you can use custom AMIs. However, you must verify that each of your AMIs meet the Amazon ECS container instance AMI specification. For more information, see container instance AMIs in the Amazon Elastic Container Service Developer Guide. After you created your unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon ECS cluster that's associated with it. Then, launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS container instance in the Amazon Elastic Container Service Developer Guide.

Batch doesn't automatically upgrade the AMIs in a compute environment after it's created. For example, it also doesn't update the AMIs in your compute environment when a newer version of the Amazon ECS optimized AMI is available. You're responsible for the management of the guest operating system. This includes any updates and security patches. You're also responsible for any additional application software or utilities that you install on the compute resources. There are two ways to use a new AMI for your Batch jobs. The original method is to complete these steps:

  1. Create a new compute environment with the new AMI.

  2. Add the compute environment to an existing job queue.

  3. Remove the earlier compute environment from your job queue.

  4. Delete the earlier compute environment.

In April 2022, Batch added enhanced support for updating compute environments. For more information, see Updating compute environments. To use the enhanced updating of compute environments to update AMIs, follow these rules:

  • Either do not set the service role (serviceRole) parameter or set it to the AWSBatchServiceRole service-linked role.

  • Set the allocation strategy (allocationStrategy) parameter to BEST_FIT_PROGRESSIVE or SPOT_CAPACITY_OPTIMIZED.

  • Set the update to latest image version (updateToLatestImageVersion) parameter to true.

  • Do not specify an AMI ID in imageId, imageIdOverride (in ec2Configuration ), or in the launch template (launchTemplate). In that case Batch will select the latest Amazon ECS optimized AMI supported by Batch at the time the infrastructure update is initiated. Alternatively you can specify the AMI ID in the imageId or imageIdOverride parameters, or the launch template identified by the LaunchTemplate properties. Changing any of these properties will trigger an infrastructure update. If the AMI ID is specified in the launch template, it can not be replaced by specifying an AMI ID in either the imageId or imageIdOverride parameters. It can only be replaced by specifying a different launch template, or if the launch template version is set to $Default or $Latest, by setting either a new default version for the launch template (if $Default)or by adding a new version to the launch template (if $Latest).

If these rules are followed, any update that triggers an infrastructure update will cause the AMI ID to be re-selected. If the version setting in the launch template (launchTemplate) is set to $Latest or $Default, the latest or default version of the launch template will be evaluated up at the time of the infrastructure update, even if the launchTemplate was not updated.

" + "documentation":"

Creates an Batch compute environment. You can create MANAGED or UNMANAGED compute environments. MANAGED compute environments can use Amazon EC2 or Fargate resources. UNMANAGED compute environments can only use EC2 resources.

In a managed compute environment, Batch manages the capacity and instance types of the compute resources within the environment. This is based on the compute resource specification that you define or the launch template that you specify when you create the compute environment. Either, you can choose to use EC2 On-Demand Instances and EC2 Spot Instances. Or, you can use Fargate and Fargate Spot capacity in your managed compute environment. You can optionally set a maximum price so that Spot Instances only launch when the Spot Instance price is less than a specified percentage of the On-Demand price.

Multi-node parallel jobs aren't supported on Spot Instances.

In an unmanaged compute environment, you can manage your own EC2 compute resources and have flexibility with how you configure your compute resources. For example, you can use custom AMIs. However, you must verify that each of your AMIs meet the Amazon ECS container instance AMI specification. For more information, see container instance AMIs in the Amazon Elastic Container Service Developer Guide. After you created your unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon ECS cluster that's associated with it. Then, launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS container instance in the Amazon Elastic Container Service Developer Guide.

To create a compute environment that uses EKS resources, the caller must have permissions to call eks:DescribeCluster.

Batch doesn't automatically upgrade the AMIs in a compute environment after it's created. For example, it also doesn't update the AMIs in your compute environment when a newer version of the Amazon ECS optimized AMI is available. You're responsible for the management of the guest operating system. This includes any updates and security patches. You're also responsible for any additional application software or utilities that you install on the compute resources. There are two ways to use a new AMI for your Batch jobs. The original method is to complete these steps:

  1. Create a new compute environment with the new AMI.

  2. Add the compute environment to an existing job queue.

  3. Remove the earlier compute environment from your job queue.

  4. Delete the earlier compute environment.

In April 2022, Batch added enhanced support for updating compute environments. For more information, see Updating compute environments. To use the enhanced updating of compute environments to update AMIs, follow these rules:

  • Either don't set the service role (serviceRole) parameter or set it to the AWSBatchServiceRole service-linked role.

  • Set the allocation strategy (allocationStrategy) parameter to BEST_FIT_PROGRESSIVE or SPOT_CAPACITY_OPTIMIZED.

  • Set the update to latest image version (updateToLatestImageVersion) parameter to true.

  • Don't specify an AMI ID in imageId, imageIdOverride (in ec2Configuration ), or in the launch template (launchTemplate). In that case, Batch selects the latest Amazon ECS optimized AMI that's supported by Batch at the time the infrastructure update is initiated. Alternatively, you can specify the AMI ID in the imageId or imageIdOverride parameters, or the launch template identified by the LaunchTemplate properties. Changing any of these properties starts an infrastructure update. If the AMI ID is specified in the launch template, it can't be replaced by specifying an AMI ID in either the imageId or imageIdOverride parameters. It can only be replaced by specifying a different launch template, or if the launch template version is set to $Default or $Latest, by setting either a new default version for the launch template (if $Default) or by adding a new version to the launch template (if $Latest).

If these rules are followed, any update that starts an infrastructure update causes the AMI ID to be re-selected. If the version setting in the launch template (launchTemplate) is set to $Latest or $Default, the latest or default version of the launch template is evaluated up at the time of the infrastructure update, even if the launchTemplate wasn't updated.

" }, "CreateJobQueue":{ "name":"CreateJobQueue", @@ -234,7 +234,7 @@ {"shape":"ClientException"}, {"shape":"ServerException"} ], - "documentation":"

Lists the tags for an Batch resource. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

" + "documentation":"

Lists the tags for an Batch resource. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs aren't supported.

" }, "RegisterJobDefinition":{ "name":"RegisterJobDefinition", @@ -276,7 +276,7 @@ {"shape":"ClientException"}, {"shape":"ServerException"} ], - "documentation":"

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags that are associated with that resource are deleted as well. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

" + "documentation":"

Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags that are associated with that resource are deleted as well. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs aren't supported.

" }, "TerminateJob":{ "name":"TerminateJob", @@ -370,7 +370,7 @@ "documentation":"

The size of the array job.

" } }, - "documentation":"

An object representing an Batch array job.

" + "documentation":"

An object that represents an Batch array job.

" }, "ArrayPropertiesDetail":{ "type":"structure", @@ -388,7 +388,7 @@ "documentation":"

The job index within the array that's associated with this job. This parameter is returned for array job children.

" } }, - "documentation":"

An object representing the array properties of a job.

" + "documentation":"

An object that represents the array properties of a job.

" }, "ArrayPropertiesSummary":{ "type":"structure", @@ -402,7 +402,7 @@ "documentation":"

The job index within the array that's associated with this job. This parameter is returned for children of array jobs.

" } }, - "documentation":"

An object representing the array properties of a job.

" + "documentation":"

An object that represents the array properties of a job.

" }, "AssignPublicIp":{ "type":"string", @@ -424,29 +424,29 @@ }, "exitCode":{ "shape":"Integer", - "documentation":"

The exit code for the job attempt. A non-zero exit code is considered a failure.

" + "documentation":"

The exit code for the job attempt. A non-zero exit code is considered failed.

" }, "reason":{ "shape":"String", - "documentation":"

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

" + "documentation":"

A short (255 max characters) human-readable string to provide additional details for a running or stopped container.

" }, "logStreamName":{ "shape":"String", - "documentation":"

The name of the CloudWatch Logs log stream associated with the container. The log group for Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status.

" + "documentation":"

The name of the CloudWatch Logs log stream that's associated with the container. The log group for Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status.

" }, "networkInterfaces":{ "shape":"NetworkInterfaceList", - "documentation":"

The network interfaces associated with the job attempt.

" + "documentation":"

The network interfaces that are associated with the job attempt.

" } }, - "documentation":"

An object representing the details of a container that's part of a job attempt.

" + "documentation":"

An object that represents the details of a container that's part of a job attempt.

" }, "AttemptDetail":{ "type":"structure", "members":{ "container":{ "shape":"AttemptContainerDetail", - "documentation":"

Details about the container in this job attempt.

" + "documentation":"

The details for the container in this job attempt.

" }, "startedAt":{ "shape":"Long", @@ -458,10 +458,10 @@ }, "statusReason":{ "shape":"String", - "documentation":"

A short, human-readable string to provide additional details about the current status of the job attempt.

" + "documentation":"

A short, human-readable string to provide additional details for the current status of the job attempt.

" } }, - "documentation":"

An object representing a job attempt.

" + "documentation":"

An object that represents a job attempt.

" }, "AttemptDetails":{ "type":"list", @@ -545,7 +545,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

These errors are usually caused by a client action, such as using an action or resource on behalf of a user that doesn't have permissions to use the action or resource, or specifying an identifier that's not valid.

", + "documentation":"

These errors are usually caused by a client action. One example cause is using an action or resource on behalf of a user that doesn't have permissions to use the action or resource. Another cause is specifying an identifier that's not valid.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -558,7 +558,7 @@ "members":{ "computeEnvironmentName":{ "shape":"String", - "documentation":"

The name of the compute environment. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

" + "documentation":"

The name of the compute environment. It can be up to 128 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

" }, "computeEnvironmentArn":{ "shape":"String", @@ -570,7 +570,7 @@ }, "ecsClusterArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the underlying Amazon ECS cluster used by the compute environment.

" + "documentation":"

The Amazon Resource Name (ARN) of the underlying Amazon ECS cluster that the compute environment uses.

" }, "tags":{ "shape":"TagrisTagsMap", @@ -582,7 +582,7 @@ }, "state":{ "shape":"CEState", - "documentation":"

The state of the compute environment. The valid values are ENABLED or DISABLED.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out. However, they scale in to minvCpus value after instances become idle.

" + "documentation":"

The state of the compute environment. The valid values are ENABLED or DISABLED.

If the state is ENABLED, then the Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically based on the job queue demand.

If the state is DISABLED, then the Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out. However, they scale in to minvCpus value after instances become idle.

" }, "status":{ "shape":"CEStatus", @@ -590,7 +590,7 @@ }, "statusReason":{ "shape":"String", - "documentation":"

A short, human-readable string to provide additional details about the current status of the compute environment.

" + "documentation":"

A short, human-readable string to provide additional details for the current status of the compute environment.

" }, "computeResources":{ "shape":"ComputeResource", @@ -598,14 +598,26 @@ }, "serviceRole":{ "shape":"String", - "documentation":"

The service role associated with the compute environment that allows Batch to make calls to Amazon Web Services API operations on your behalf. For more information, see Batch service IAM role in the Batch User Guide.

" + "documentation":"

The service role that's associated with the compute environment that allows Batch to make calls to Amazon Web Services API operations on your behalf. For more information, see Batch service IAM role in the Batch User Guide.

" }, "updatePolicy":{ "shape":"UpdatePolicy", "documentation":"

Specifies the infrastructure update policy for the compute environment. For more information about infrastructure updates, see Updating compute environments in the Batch User Guide.

" + }, + "eksConfiguration":{ + "shape":"EksConfiguration", + "documentation":"

The configuration for the Amazon EKS cluster that supports the Batch compute environment. Only specify this parameter if the containerOrchestrationType is EKS.

" + }, + "containerOrchestrationType":{ + "shape":"OrchestrationType", + "documentation":"

The orchestration type of the compute environment. The valid values are ECS (default) or EKS.

" + }, + "uuid":{ + "shape":"String", + "documentation":"

Unique identifier for the compute environment.

" } }, - "documentation":"

An object representing an Batch compute environment.

" + "documentation":"

An object that represents an Batch compute environment.

" }, "ComputeEnvironmentDetailList":{ "type":"list", @@ -627,7 +639,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the compute environment.

" } }, - "documentation":"

The order in which compute environments are tried for job placement within a queue. Compute environments are tried in ascending order. For example, if two compute environments are associated with a job queue, the compute environment with a lower order integer value is tried for job placement first. Compute environments must be in the VALID state before you can associate them with a job queue. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

All compute environments that are associated with a job queue must share the same architecture. Batch doesn't support mixing compute environment architecture types in a single job queue.

" + "documentation":"

The order that compute environments are tried in for job placement within a queue. Compute environments are tried in ascending order. For example, if two compute environments are associated with a job queue, the compute environment with a lower order integer value is tried for job placement first. Compute environments must be in the VALID state before you can associate them with a job queue. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

All compute environments that are associated with a job queue must share the same architecture. Batch doesn't support mixing compute environment architecture types in a single job queue.

" }, "ComputeEnvironmentOrders":{ "type":"list", @@ -647,27 +659,27 @@ }, "allocationStrategy":{ "shape":"CRAllocationStrategy", - "documentation":"

The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

BEST_FIT (default)

Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost instance type. If additional instances of the selected instance type aren't available, Batch waits for the additional instances to be available. If there aren't enough instances available, or if the user is reaching Amazon EC2 service limits then additional jobs aren't run until the currently running jobs have completed. This allocation strategy keeps costs lower but can limit scaling. If you are using Spot Fleets with BEST_FIT then the Spot Fleet IAM Role must be specified. Compute resources that use a BEST_FIT allocation strategy don't support infrastructure updates and can't update some parameters. For more information, see Updating compute environments in the Batch User Guide.

BEST_FIT_PROGRESSIVE

Batch will select additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types with a lower cost per unit vCPU. If additional instances of the previously selected instance types aren't available, Batch will select new instance types.

SPOT_CAPACITY_OPTIMIZED

Batch will select one or more instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED strategies, Batch might need to go above maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

" + "documentation":"

The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

BEST_FIT (default)

Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost instance type. If additional instances of the selected instance type aren't available, Batch waits for the additional instances to be available. If there aren't enough instances available or the user is reaching Amazon EC2 service limits, additional jobs aren't run until the currently running jobs are completed. This allocation strategy keeps costs lower but can limit scaling. If you're using Spot Fleets with BEST_FIT, the Spot Fleet IAM Role must be specified. Compute resources that use a BEST_FIT allocation strategy don't support infrastructure updates and can't update some parameters. For more information, see Updating compute environments in the Batch User Guide.

BEST_FIT_PROGRESSIVE

Batch selects additional instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If additional instances of the previously selected instance types aren't available, Batch selects new instance types.

SPOT_CAPACITY_OPTIMIZED

Batch selects one or more instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

" }, "minvCpus":{ "shape":"Integer", - "documentation":"

The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is DISABLED).

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is DISABLED).

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "maxvCpus":{ "shape":"Integer", - "documentation":"

The maximum number of Amazon EC2 vCPUs that a compute environment can reach.

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance. For example, no more than a single instance from among those specified in your compute environment is allocated.

" + "documentation":"

The maximum number of Amazon EC2 vCPUs that a compute environment can reach.

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance. For example, no more than a single instance from among those specified in your compute environment is allocated.

" }, "desiredvCpus":{ "shape":"Integer", - "documentation":"

The desired number of Amazon EC2 vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values, based on job queue demand.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The desired number of Amazon EC2 vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "instanceTypes":{ "shape":"StringList", - "documentation":"

The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3), or you can specify specific sizes within a family (such as c5.8xlarge). You can also choose optimal to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.

Currently, optimal uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5. and R5 instance families are used.

" + "documentation":"

The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3), or you can specify specific sizes within a family (such as c5.8xlarge). You can also choose optimal to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.

Currently, optimal uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5, and R5 instance families are used.

" }, "imageId":{ "shape":"String", - "documentation":"

The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is overridden by the imageIdOverride member of the Ec2Configuration structure.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service Developer Guide.

", + "documentation":"

The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is overridden by the imageIdOverride member of the Ec2Configuration structure.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service Developer Guide.

", "deprecated":true, "deprecatedMessage":"This field is deprecated, use ec2Configuration[].imageIdOverride instead." }, @@ -677,57 +689,57 @@ }, "securityGroupIds":{ "shape":"StringList", - "documentation":"

The Amazon EC2 security groups associated with instances launched in the compute environment. One or more security groups must be specified, either in securityGroupIds or using a launch template referenced in launchTemplate. This parameter is required for jobs that are running on Fargate resources and must contain at least one security group. Fargate doesn't support launch templates. If security groups are specified using both securityGroupIds and launchTemplate, the values in securityGroupIds are used.

" + "documentation":"

The Amazon EC2 security groups that are associated with instances launched in the compute environment. One or more security groups must be specified, either in securityGroupIds or using a launch template referenced in launchTemplate. This parameter is required for jobs that are running on Fargate resources and must contain at least one security group. Fargate doesn't support launch templates. If security groups are specified using both securityGroupIds and launchTemplate, the values in securityGroupIds are used.

" }, "ec2KeyPair":{ "shape":"String", - "documentation":"

The Amazon EC2 key pair that's used for instances launched in the compute environment. You can use this key pair to log in to your instances with SSH.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The Amazon EC2 key pair that's used for instances launched in the compute environment. You can use this key pair to log in to your instances with SSH.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "instanceRole":{ "shape":"String", - "documentation":"

The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "tags":{ "shape":"TagsMap", - "documentation":"

Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value−for example, { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your Batch instances in the Amazon EC2 console. Updating these tags requires an infrastructure update to the compute environment. For more information, see Updating compute environments in the Batch User Guide. These tags aren't seen when using the Batch ListTagsForResource API operation.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value-for example, { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your Batch instances in the Amazon EC2 console. Updating these tags requires an infrastructure update to the compute environment. For more information, see Updating compute environments in the Batch User Guide. These tags aren't seen when using the Batch ListTagsForResource API operation.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "placementGroup":{ "shape":"String", - "documentation":"

The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see Placement groups in the Amazon EC2 User Guide for Linux Instances.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see Placement groups in the Amazon EC2 User Guide for Linux Instances.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "bidPercentage":{ "shape":"Integer", - "documentation":"

The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, then the Spot price must be less than 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and never more than your maximum percentage. If you leave this field empty, the default value is 100% of the On-Demand price.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, then the Spot price must be less than 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and never more than your maximum percentage. If you leave this field empty, the default value is 100% of the On-Demand price.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "spotIamFleetRole":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This role is required if the allocation strategy set to BEST_FIT or if the allocation strategy isn't specified. For more information, see Amazon EC2 spot fleet role in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

To tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer AmazonEC2SpotFleetTaggingRole managed policy. The previously recommended AmazonEC2SpotFleetRole managed policy doesn't have the required permissions to tag Spot Instances. For more information, see Spot instances not tagged on creation in the Batch User Guide.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This role is required if the allocation strategy set to BEST_FIT or if the allocation strategy isn't specified. For more information, see Amazon EC2 spot fleet role in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

To tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer AmazonEC2SpotFleetTaggingRole managed policy. The previously recommended AmazonEC2SpotFleetRole managed policy doesn't have the required permissions to tag Spot Instances. For more information, see Spot instances not tagged on creation in the Batch User Guide.

" }, "launchTemplate":{ "shape":"LaunchTemplateSpecification", - "documentation":"

The launch template to use for your compute resources. Any other compute resource parameters that you specify in a CreateComputeEnvironment API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see Launch template support in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The launch template to use for your compute resources. Any other compute resource parameters that you specify in a CreateComputeEnvironment API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see Launch template support in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "ec2Configuration":{ "shape":"Ec2ConfigurationList", - "documentation":"

Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2.

One or two values can be provided.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

Provides information that's used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2.

One or two values can be provided.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" } }, - "documentation":"

An object representing an Batch compute resource. For more information, see Compute environments in the Batch User Guide.

" + "documentation":"

An object that represents an Batch compute resource. For more information, see Compute environments in the Batch User Guide.

" }, "ComputeResourceUpdate":{ "type":"structure", "members":{ "minvCpus":{ "shape":"Integer", - "documentation":"

The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is DISABLED).

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is DISABLED).

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "maxvCpus":{ "shape":"Integer", - "documentation":"

The maximum number of Amazon EC2 vCPUs that an environment can reach.

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance. That is, no more than a single instance from among those specified in your compute environment.

" + "documentation":"

The maximum number of Amazon EC2 vCPUs that an environment can reach.

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance. That is, no more than a single instance from among those specified in your compute environment.

" }, "desiredvCpus":{ "shape":"Integer", - "documentation":"

The desired number of Amazon EC2 vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The desired number of Amazon EC2 vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

Batch doesn't support changing the desired number of vCPUs of an existing compute environment. Don't specify this parameter for compute environments using Amazon EKS clusters.

" }, "subnets":{ "shape":"StringList", @@ -735,47 +747,47 @@ }, "securityGroupIds":{ "shape":"StringList", - "documentation":"

The Amazon EC2 security groups associated with instances launched in the compute environment. This parameter is required for Fargate compute resources, where it can contain up to 5 security groups. For Fargate compute resources, providing an empty list is handled as if this parameter wasn't specified and no change is made. For EC2 compute resources, providing an empty list removes the security groups from the compute resource.

When updating a compute environment, changing the EC2 security groups requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

" + "documentation":"

The Amazon EC2 security groups that are associated with instances launched in the compute environment. This parameter is required for Fargate compute resources, where it can contain up to 5 security groups. For Fargate compute resources, providing an empty list is handled as if this parameter wasn't specified and no change is made. For EC2 compute resources, providing an empty list removes the security groups from the compute resource.

When updating a compute environment, changing the EC2 security groups requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

" }, "allocationStrategy":{ "shape":"CRUpdateAllocationStrategy", - "documentation":"

The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

When updating a compute environment, changing the allocation strategy requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide. BEST_FIT isn't supported when updating a compute environment.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

BEST_FIT_PROGRESSIVE

Batch will select additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types with a lower cost per unit vCPU. If additional instances of the previously selected instance types aren't available, Batch will select new instance types.

SPOT_CAPACITY_OPTIMIZED

Batch will select one or more instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED strategies, Batch might need to go above maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

" + "documentation":"

The allocation strategy to use for the compute resource if there's not enough instances of the best fitting instance type that can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation strategies in the Batch User Guide.

When updating a compute environment, changing the allocation strategy requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide. BEST_FIT isn't supported when updating a compute environment.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

BEST_FIT_PROGRESSIVE

Batch selects additional instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types with lower cost vCPUs. If additional instances of the previously selected instance types aren't available, Batch selects new instance types.

SPOT_CAPACITY_OPTIMIZED

Batch selects one or more instance types that are large enough to meet the requirements of the jobs in the queue. Its preference is for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources.

With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

" }, "instanceTypes":{ "shape":"StringList", - "documentation":"

The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3), or you can specify specific sizes within a family (such as c5.8xlarge). You can also choose optimal to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.

Currently, optimal uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5. and R5 instance families are used.

" + "documentation":"

The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3), or you can specify specific sizes within a family (such as c5.8xlarge). You can also choose optimal to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.

Currently, optimal uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5, and R5 instance families are used.

" }, "ec2KeyPair":{ "shape":"String", - "documentation":"

The Amazon EC2 key pair that's used for instances launched in the compute environment. You can use this key pair to log in to your instances with SSH. To remove the Amazon EC2 key pair, set this value to an empty string.

When updating a compute environment, changing the EC2 key pair requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The Amazon EC2 key pair that's used for instances launched in the compute environment. You can use this key pair to log in to your instances with SSH. To remove the Amazon EC2 key pair, set this value to an empty string.

When updating a compute environment, changing the EC2 key pair requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "instanceRole":{ "shape":"String", - "documentation":"

The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "tags":{ "shape":"TagsMap", - "documentation":"

Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value−for example, { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your Batch instances in the Amazon EC2 console. These tags aren't seen when using the Batch ListTagsForResource API operation.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value-for example, { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your Batch instances in the Amazon EC2 console. These tags aren't seen when using the Batch ListTagsForResource API operation.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "placementGroup":{ "shape":"String", - "documentation":"

The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see Placement groups in the Amazon EC2 User Guide for Linux Instances.

When updating a compute environment, changing the placement group requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see Placement groups in the Amazon EC2 User Guide for Linux Instances.

When updating a compute environment, changing the placement group requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "bidPercentage":{ "shape":"Integer", - "documentation":"

The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, then the Spot price must be less than 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and never more than your maximum percentage.

When updating a compute environment, changing the bid percentage requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and never more than your maximum percentage.

When updating a compute environment, changing the bid percentage requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "launchTemplate":{ "shape":"LaunchTemplateSpecification", - "documentation":"

The updated launch template to use for your compute resources. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see Launch template support in the Batch User Guide. To remove the custom launch template and use the default launch template, set launchTemplateId or launchTemplateName member of the launch template specification to an empty string. Removing the launch template from a compute environment will not remove the AMI specified in the launch template. In order to update the AMI specified in a launch template, the updateToLatestImageVersion parameter must be set to true.

When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

The updated launch template to use for your compute resources. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see Launch template support in the Batch User Guide. To remove the custom launch template and use the default launch template, set launchTemplateId or launchTemplateName member of the launch template specification to an empty string. Removing the launch template from a compute environment will not remove the AMI specified in the launch template. In order to update the AMI specified in a launch template, the updateToLatestImageVersion parameter must be set to true.

When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "ec2Configuration":{ "shape":"Ec2ConfigurationList", - "documentation":"

Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide. To remove the EC2 configuration and any custom AMI ID specified in imageIdOverride, set this value to an empty string.

One or two values can be provided.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

" + "documentation":"

Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide. To remove the EC2 configuration and any custom AMI ID specified in imageIdOverride, set this value to an empty string.

One or two values can be provided.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" }, "updateToLatestImageVersion":{ "shape":"Boolean", - "documentation":"

Specifies whether the AMI ID is updated to the latest one that's supported by Batch when the compute environment has an infrastructure update. The default value is false.

If an AMI ID is specified in the imageId or imageIdOverride parameters or by the launch template specified in the launchTemplate parameter, this parameter is ignored. For more information on updating AMI IDs during an infrastructure update, see Updating the AMI ID in the Batch User Guide.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

" + "documentation":"

Specifies whether the AMI ID is updated to the latest one that's supported by Batch when the compute environment has an infrastructure update. The default value is false.

An AMI ID can either be specified in the imageId or imageIdOverride parameters or be determined by the launch template that's specified in the launchTemplate parameter. If an AMI ID is specified any of these ways, this parameter is ignored. For more information about to update AMI IDs during an infrastructure update, see Updating the AMI ID in the Batch User Guide.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

" }, "type":{ "shape":"CRType", @@ -783,10 +795,10 @@ }, "imageId":{ "shape":"String", - "documentation":"

The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is overridden by the imageIdOverride member of the Ec2Configuration structure. To remove the custom AMI ID and use the default AMI ID, set this value to an empty string.

When updating a compute environment, changing the AMI ID requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources, and shouldn't be specified.

The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is overridden by the imageIdOverride member of the Ec2Configuration structure. To remove the custom AMI ID and use the default AMI ID, set this value to an empty string.

When updating a compute environment, changing the AMI ID requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service Developer Guide.

" } }, - "documentation":"

An object representing the attributes of a compute environment that can be updated. For more information, see Updating compute environments in the Batch User Guide.

" + "documentation":"

An object that represents the attributes of a compute environment that can be updated. For more information, see Updating compute environments in the Batch User Guide.

" }, "ContainerDetail":{ "type":"structure", @@ -809,7 +821,7 @@ }, "jobRoleArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) associated with the job upon execution.

" + "documentation":"

The Amazon Resource Name (ARN) that's associated with the job when run.

" }, "executionRoleArn":{ "shape":"String", @@ -817,11 +829,11 @@ }, "volumes":{ "shape":"Volumes", - "documentation":"

A list of volumes associated with the job.

" + "documentation":"

A list of volumes that are associated with the job.

" }, "environment":{ "shape":"EnvironmentVariables", - "documentation":"

The environment variables to pass to a container.

Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the Batch service.

" + "documentation":"

The environment variables to pass to a container.

Environment variables cannot start with \"AWS_BATCH\". This naming convention is reserved for variables that Batch sets.

" }, "mountPoints":{ "shape":"MountPoints", @@ -837,7 +849,7 @@ }, "privileged":{ "shape":"Boolean", - "documentation":"

When this parameter is true, the container is given elevated permissions on the host container instance (similar to the root user). The default value is false.

This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided, or specified as false.

" + "documentation":"

When this parameter is true, the container is given elevated permissions on the host container instance (similar to the root user). The default value is false.

This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided, or specified as false.

" }, "user":{ "shape":"String", @@ -849,7 +861,7 @@ }, "reason":{ "shape":"String", - "documentation":"

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

" + "documentation":"

A short (255 max characters) human-readable string to provide additional details for a running or stopped container.

" }, "containerInstanceArn":{ "shape":"String", @@ -861,7 +873,7 @@ }, "logStreamName":{ "shape":"String", - "documentation":"

The name of the CloudWatch Logs log stream associated with the container. The log group for Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status.

" + "documentation":"

The name of the Amazon CloudWatch Logs log stream that's associated with the container. The log group for Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status.

" }, "instanceType":{ "shape":"String", @@ -869,7 +881,7 @@ }, "networkInterfaces":{ "shape":"NetworkInterfaceList", - "documentation":"

The network interfaces associated with the job.

" + "documentation":"

The network interfaces that are associated with the job.

" }, "resourceRequirements":{ "shape":"ResourceRequirements", @@ -881,7 +893,7 @@ }, "logConfiguration":{ "shape":"LogConfiguration", - "documentation":"

The log configuration specification for the container.

This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses. However, the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance. Or, alternatively, it must be configured on a different log server for remote logging options. For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers might be available in future releases of the Amazon ECS container agent.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS container agent configuration in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The log configuration specification for the container.

This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses. However, the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance. Or, alternatively, it must be configured on a different log server for remote logging options. For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers might be available in future releases of the Amazon ECS container agent.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS container agent configuration in the Amazon Elastic Container Service Developer Guide.

" }, "secrets":{ "shape":"SecretList", @@ -896,20 +908,20 @@ "documentation":"

The platform configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

" } }, - "documentation":"

An object representing the details of a container that's part of a job.

" + "documentation":"

An object that represents the details of a container that's part of a job.

" }, "ContainerOverrides":{ "type":"structure", "members":{ "vcpus":{ "shape":"Integer", - "documentation":"

This parameter is deprecated, use resourceRequirements to override the vcpus parameter that's set in the job definition. It's not supported for jobs running on Fargate resources. For jobs running on EC2 resources, it overrides the vcpus parameter set in the job definition, but doesn't override any vCPU requirement specified in the resourceRequirements structure in the job definition. To override vCPU requirements that are specified in the resourceRequirements structure in the job definition, resourceRequirements must be specified in the SubmitJob request, with type set to VCPU and value set to the new value. For more information, see Can't override job definition resource requirements in the Batch User Guide.

", + "documentation":"

This parameter is deprecated, use resourceRequirements to override the vcpus parameter that's set in the job definition. It's not supported for jobs running on Fargate resources. For jobs that run on EC2 resources, it overrides the vcpus parameter set in the job definition, but doesn't override any vCPU requirement specified in the resourceRequirements structure in the job definition. To override vCPU requirements that are specified in the resourceRequirements structure in the job definition, resourceRequirements must be specified in the SubmitJob request, with type set to VCPU and value set to the new value. For more information, see Can't override job definition resource requirements in the Batch User Guide.

", "deprecated":true, "deprecatedMessage":"This field is deprecated, use resourceRequirements instead." }, "memory":{ "shape":"Integer", - "documentation":"

This parameter is deprecated, use resourceRequirements to override the memory requirements specified in the job definition. It's not supported for jobs running on Fargate resources. For jobs running on EC2 resources, it overrides the memory parameter set in the job definition, but doesn't override any memory requirement specified in the resourceRequirements structure in the job definition. To override memory requirements that are specified in the resourceRequirements structure in the job definition, resourceRequirements must be specified in the SubmitJob request, with type set to MEMORY and value set to the new value. For more information, see Can't override job definition resource requirements in the Batch User Guide.

", + "documentation":"

This parameter is deprecated, use resourceRequirements to override the memory requirements specified in the job definition. It's not supported for jobs running on Fargate resources. For jobs that run on EC2 resources, it overrides the memory parameter set in the job definition, but doesn't override any memory requirement that's specified in the resourceRequirements structure in the job definition. To override memory requirements that are specified in the resourceRequirements structure in the job definition, resourceRequirements must be specified in the SubmitJob request, with type set to MEMORY and value set to the new value. For more information, see Can't override job definition resource requirements in the Batch User Guide.

", "deprecated":true, "deprecatedMessage":"This field is deprecated, use resourceRequirements instead." }, @@ -923,7 +935,7 @@ }, "environment":{ "shape":"EnvironmentVariables", - "documentation":"

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the job definition.

Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the Batch service.

" + "documentation":"

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the job definition.

Environment variables cannot start with \"AWS_BATCH\". This naming convention is reserved for variables that Batch sets.

" }, "resourceRequirements":{ "shape":"ResourceRequirements", @@ -937,7 +949,7 @@ "members":{ "image":{ "shape":"String", - "documentation":"

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

Docker image architecture must match the processor architecture of the compute resources that they're scheduled on. For example, ARM-based Docker images can only run on ARM-based compute resources.

  • Images in Amazon ECR Public repositories use the full registry/repository[:tag] or registry/repository[@digest] naming conventions. For example, public.ecr.aws/registry_alias/my-web-app:latest .

  • Images in Amazon ECR repositories use the full registry and repository URI (for example, 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

  • Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo).

  • Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent).

  • Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu).

" + "documentation":"

The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . It can be 255 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), underscores (_), colons (:), periods (.), forward slashes (/), and number signs (#). This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run.

Docker image architecture must match the processor architecture of the compute resources that they're scheduled on. For example, ARM-based Docker images can only run on ARM-based compute resources.

  • Images in Amazon ECR Public repositories use the full registry/repository[:tag] or registry/repository[@digest] naming conventions. For example, public.ecr.aws/registry_alias/my-web-app:latest .

  • Images in Amazon ECR repositories use the full registry and repository URI (for example, 123456789012.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).

  • Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo).

  • Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent).

  • Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu).

" }, "vcpus":{ "shape":"Integer", @@ -947,7 +959,7 @@ }, "memory":{ "shape":"Integer", - "documentation":"

This parameter is deprecated, use resourceRequirements to specify the memory requirements for the job definition. It's not supported for jobs running on Fargate resources. For jobs running on EC2 resources, it specifies the memory hard limit (in MiB) for a container. If your container attempts to exceed the specified number, it's terminated. You must specify at least 4 MiB of memory for a job using this parameter. The memory hard limit can be specified in several places. It must be specified for each node at least once.

", + "documentation":"

This parameter is deprecated, use resourceRequirements to specify the memory requirements for the job definition. It's not supported for jobs running on Fargate resources. For jobs that run on EC2 resources, it specifies the memory hard limit (in MiB) for a container. If your container attempts to exceed the specified number, it's terminated. You must specify at least 4 MiB of memory for a job using this parameter. The memory hard limit can be specified in several places. It must be specified for each node at least once.

", "deprecated":true, "deprecatedMessage":"This field is deprecated, use resourceRequirements instead." }, @@ -969,7 +981,7 @@ }, "environment":{ "shape":"EnvironmentVariables", - "documentation":"

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We don't recommend using plaintext environment variables for sensitive information, such as credential data.

Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the Batch service.

" + "documentation":"

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We don't recommend using plaintext environment variables for sensitive information, such as credential data.

Environment variables cannot start with \"AWS_BATCH\". This naming convention is reserved for variables that Batch sets.

" }, "mountPoints":{ "shape":"MountPoints", @@ -1005,7 +1017,7 @@ }, "logConfiguration":{ "shape":"LogConfiguration", - "documentation":"

The log configuration specification for the container.

This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses. However the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type).

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS container agent configuration in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The log configuration specification for the container.

This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses. However the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type).

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS container agent configuration in the Amazon Elastic Container Service Developer Guide.

" }, "secrets":{ "shape":"SecretList", @@ -1020,7 +1032,7 @@ "documentation":"

The platform configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

" } }, - "documentation":"

Container properties are used in job definitions to describe the container that's launched as part of a job.

" + "documentation":"

Container properties are used for Amazon ECS based job definitions. These properties to describe the container that's launched as part of a job.

" }, "ContainerSummary":{ "type":"structure", @@ -1031,10 +1043,10 @@ }, "reason":{ "shape":"String", - "documentation":"

A short (255 max characters) human-readable string to provide additional details about a running or stopped container.

" + "documentation":"

A short (255 max characters) human-readable string to provide additional details for a running or stopped container.

" } }, - "documentation":"

An object representing summary details of a container within a job.

" + "documentation":"

An object that represents summary details of a container within a job.

" }, "CreateComputeEnvironmentRequest":{ "type":"structure", @@ -1045,7 +1057,7 @@ "members":{ "computeEnvironmentName":{ "shape":"String", - "documentation":"

The name for your compute environment. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

" + "documentation":"

The name for your compute environment. It can be up to 128 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

" }, "type":{ "shape":"CEType", @@ -1065,11 +1077,15 @@ }, "serviceRole":{ "shape":"String", - "documentation":"

The full Amazon Resource Name (ARN) of the IAM role that allows Batch to make calls to other Amazon Web Services services on your behalf. For more information, see Batch service IAM role in the Batch User Guide.

If your account already created the Batch service-linked role, that role is used by default for your compute environment unless you specify a different role here. If the Batch service-linked role doesn't exist in your account, and no role is specified here, the service attempts to create the Batch service-linked role in your account.

If your specified role has a path other than /, then you must specify either the full role ARN (recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/ then you would specify /foo/bar as the role name. For more information, see Friendly names and paths in the IAM User Guide.

Depending on how you created your Batch service role, its ARN might contain the service-role path prefix. When you only specify the name of the service role, Batch assumes that your ARN doesn't use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments.

" + "documentation":"

The full Amazon Resource Name (ARN) of the IAM role that allows Batch to make calls to other Amazon Web Services services on your behalf. For more information, see Batch service IAM role in the Batch User Guide.

If your account already created the Batch service-linked role, that role is used by default for your compute environment unless you specify a different role here. If the Batch service-linked role doesn't exist in your account, and no role is specified here, the service attempts to create the Batch service-linked role in your account.

If your specified role has a path other than /, then you must specify either the full role ARN (recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/, specify /foo/bar as the role name. For more information, see Friendly names and paths in the IAM User Guide.

Depending on how you created your Batch service role, its ARN might contain the service-role path prefix. When you only specify the name of the service role, Batch assumes that your ARN doesn't use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments.

" }, "tags":{ "shape":"TagrisTagsMap", "documentation":"

The tags that you apply to the compute environment to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging Amazon Web Services Resources in Amazon Web Services General Reference.

These tags can be updated or removed using the TagResource and UntagResource API operations. These tags don't propagate to the underlying compute resources.

" + }, + "eksConfiguration":{ + "shape":"EksConfiguration", + "documentation":"

The details for the Amazon EKS cluster that supports the compute environment.

" } }, "documentation":"

Contains the parameters for CreateComputeEnvironment.

" @@ -1079,7 +1095,7 @@ "members":{ "computeEnvironmentName":{ "shape":"String", - "documentation":"

The name of the compute environment. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

" + "documentation":"

The name of the compute environment. It can be up to 128 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

" }, "computeEnvironmentArn":{ "shape":"String", @@ -1105,7 +1121,7 @@ }, "schedulingPolicyArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the fair share scheduling policy. If this parameter is specified, the job queue uses a fair share scheduling policy. If this parameter isn't specified, the job queue uses a first in, first out (FIFO) scheduling policy. After a job queue is created, you can replace but can't remove the fair share scheduling policy. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name . An example is aws:aws:batch:us-west-2:012345678910:scheduling-policy/MySchedulingPolicy.

" + "documentation":"

The Amazon Resource Name (ARN) of the fair share scheduling policy. If this parameter is specified, the job queue uses a fair share scheduling policy. If this parameter isn't specified, the job queue uses a first in, first out (FIFO) scheduling policy. After a job queue is created, you can replace but can't remove the fair share scheduling policy. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name . An example is aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

" }, "priority":{ "shape":"Integer", @@ -1171,7 +1187,7 @@ }, "arn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the scheduling policy. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name . For example, aws:aws:batch:us-west-2:012345678910:scheduling-policy/MySchedulingPolicy.

" + "documentation":"

The Amazon Resource Name (ARN) of the scheduling policy. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name . For example, aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

" } } }, @@ -1251,7 +1267,7 @@ }, "nextToken":{ "shape":"String", - "documentation":"

The nextToken value returned from a previous paginated DescribeComputeEnvironments request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" + "documentation":"

The nextToken value returned from a previous paginated DescribeComputeEnvironments request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

Treat this token as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" } }, "documentation":"

Contains the parameters for DescribeComputeEnvironments.

" @@ -1290,7 +1306,7 @@ }, "nextToken":{ "shape":"String", - "documentation":"

The nextToken value returned from a previous paginated DescribeJobDefinitions request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" + "documentation":"

The nextToken value returned from a previous paginated DescribeJobDefinitions request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

Treat this token as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" } }, "documentation":"

Contains the parameters for DescribeJobDefinitions.

" @@ -1321,7 +1337,7 @@ }, "nextToken":{ "shape":"String", - "documentation":"

The nextToken value returned from a previous paginated DescribeJobQueues request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" + "documentation":"

The nextToken value returned from a previous paginated DescribeJobQueues request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

Treat this token as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" } }, "documentation":"

Contains the parameters for DescribeJobQueues.

" @@ -1396,7 +1412,7 @@ "documentation":"

The explicit permissions to provide to the container for the device. By default, the container has permissions for read, write, and mknod for the device.

" } }, - "documentation":"

An object representing a container instance host device.

This object isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.

" + "documentation":"

An object that represents a container instance host device.

This object isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.

" }, "DeviceCgroupPermission":{ "type":"string", @@ -1419,7 +1435,7 @@ "members":{ "accessPointId":{ "shape":"String", - "documentation":"

The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the EFSVolumeConfiguration must either be omitted or set to / which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the EFSVolumeConfiguration. For more information, see Working with Amazon EFS access points in the Amazon Elastic File System User Guide.

" + "documentation":"

The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the EFSVolumeConfiguration must either be omitted or set to / which enforces the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the EFSVolumeConfiguration. For more information, see Working with Amazon EFS access points in the Amazon Elastic File System User Guide.

" }, "iam":{ "shape":"EFSAuthorizationConfigIAM", @@ -1475,11 +1491,15 @@ "members":{ "imageType":{ "shape":"ImageType", - "documentation":"

The image type to match with the instance type to select an AMI. If the imageIdOverride parameter isn't specified, then a recent Amazon ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new image type is specified in an update, but neither an imageId nor a imageIdOverride parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by Batch is used.

ECS_AL2

Amazon Linux 2− Default for all non-GPU instance families.

ECS_AL2_NVIDIA

Amazon Linux 2 (GPU)−Default for all GPU instance families (for example P4 and G4) and can be used for all non Amazon Web Services Graviton-based instance types.

ECS_AL1

Amazon Linux. Amazon Linux is reaching the end-of-life of standard support. For more information, see Amazon Linux AMI.

" + "documentation":"

The image type to match with the instance type to select an AMI. The supported values are different for ECS and EKS resources.

ECS

If the imageIdOverride parameter isn't specified, then a recent Amazon ECS-optimized Amazon Linux 2 AMI (ECS_AL2) is used. If a new image type is specified in an update, but neither an imageId nor a imageIdOverride parameter is specified, then the latest Amazon ECS optimized AMI for that image type that's supported by Batch is used.

ECS_AL2

Amazon Linux 2: Default for all non-GPU instance families.

ECS_AL2_NVIDIA

Amazon Linux 2 (GPU): Default for all GPU instance families (for example P4 and G4) and can be used for all non Amazon Web Services Graviton-based instance types.

ECS_AL1

Amazon Linux. Amazon Linux has reached the end-of-life of standard support. For more information, see Amazon Linux AMI.

EKS

If the imageIdOverride parameter isn't specified, then a recent Amazon EKS-optimized Amazon Linux AMI (EKS_AL2) is used. If a new image type is specified in an update, but neither an imageId nor a imageIdOverride parameter is specified, then the latest Amazon EKS optimized AMI for that image type that Batch supports is used.

EKS_AL2

Amazon Linux 2: Default for all non-GPU instance families.

EKS_AL2_NVIDIA

Amazon Linux 2 (accelerated): Default for all GPU instance families (for example, P4 and G4) and can be used for all non Amazon Web Services Graviton-based instance types.

" }, "imageIdOverride":{ "shape":"ImageIdOverride", "documentation":"

The AMI ID used for instances launched in the compute environment that match the image type. This setting overrides the imageId set in the computeResource object.

The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service Developer Guide.

" + }, + "imageKubernetesVersion":{ + "shape":"KubernetesVersion", + "documentation":"

The Kubernetes version for the compute environment. If you don't specify a value, the latest version that Batch supports is used.

" } }, "documentation":"

Provides information used to select Amazon Machine Images (AMIs) for instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2 (Amazon Linux 2).

This object isn't applicable to jobs that are running on Fargate resources.

" @@ -1488,6 +1508,464 @@ "type":"list", "member":{"shape":"Ec2Configuration"} }, + "EksAttemptContainerDetail":{ + "type":"structure", + "members":{ + "exitCode":{ + "shape":"Integer", + "documentation":"

The exit code for the job attempt. A non-zero exit code is considered failed.

" + }, + "reason":{ + "shape":"String", + "documentation":"

A short (255 max characters) human-readable string to provide additional details for a running or stopped container.

" + } + }, + "documentation":"

An object that represents the details for an attempt for a job attempt that an Amazon EKS container runs.

" + }, + "EksAttemptContainerDetails":{ + "type":"list", + "member":{"shape":"EksAttemptContainerDetail"} + }, + "EksAttemptDetail":{ + "type":"structure", + "members":{ + "containers":{ + "shape":"EksAttemptContainerDetails", + "documentation":"

The details for the final status of the containers for this job attempt.

" + }, + "podName":{ + "shape":"String", + "documentation":"

The name of the pod for this job attempt.

" + }, + "nodeName":{ + "shape":"String", + "documentation":"

The name of the node for this job attempt.

" + }, + "startedAt":{ + "shape":"Long", + "documentation":"

The Unix timestamp (in milliseconds) for when the attempt was started (when the attempt transitioned from the STARTING state to the RUNNING state).

" + }, + "stoppedAt":{ + "shape":"Long", + "documentation":"

The Unix timestamp (in milliseconds) for when the attempt was stopped. This happens when the attempt transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

A short, human-readable string to provide additional details for the current status of the job attempt.

" + } + }, + "documentation":"

An object that represents the details of a job attempt for a job attempt by an Amazon EKS container.

" + }, + "EksAttemptDetails":{ + "type":"list", + "member":{"shape":"EksAttemptDetail"} + }, + "EksConfiguration":{ + "type":"structure", + "required":[ + "eksClusterArn", + "kubernetesNamespace" + ], + "members":{ + "eksClusterArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon EKS cluster. An example is arn:aws:eks:us-east-1:123456789012:cluster/ClusterForBatch .

" + }, + "kubernetesNamespace":{ + "shape":"String", + "documentation":"

The namespace of the Amazon EKS cluster. Batch manages pods in this namespace. The value can't left empty or null. It must be fewer than 64 characters long, can't be set to default, can't start with \"kube-,\" and must match this regular expression: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$. For more information, see Namespaces in the Kubernetes documentation.

" + } + }, + "documentation":"

Configuration for the Amazon EKS cluster that supports the Batch compute environment. The cluster must exist before the compute environment can be created.

" + }, + "EksContainer":{ + "type":"structure", + "required":["image"], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the container. If the name isn't specified, the default name \"Default\" is used. Each container in a pod must have a unique name.

" + }, + "image":{ + "shape":"String", + "documentation":"

The Docker image used to start the container.

" + }, + "imagePullPolicy":{ + "shape":"String", + "documentation":"

The image pull policy for the container. Supported values are Always, IfNotPresent, and Never. This parameter defaults to IfNotPresent. However, if the :latest tag is specified, it defaults to Always. For more information, see Updating images in the Kubernetes documentation.

" + }, + "command":{ + "shape":"StringList", + "documentation":"

The entrypoint for the container. This isn't run within a shell. If this isn't specified, the ENTRYPOINT of the container image is used. Environment variable references are expanded using the container's environment.

If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to \"$(NAME1)\" and the NAME1 environment variable doesn't exist, the command string will remain \"$(NAME1).\" $$ is replaced with $ and the resulting string isn't expanded. For example, $$(VAR_NAME) will be passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists. The entrypoint can't be updated. For more information, see ENTRYPOINT in the Dockerfile reference and Define a command and arguments for a container and Entrypoint in the Kubernetes documentation.

" + }, + "args":{ + "shape":"StringList", + "documentation":"

An array of arguments to the entrypoint. If this isn't specified, the CMD of the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod in Kubernetes. Environment variable references are expanded using the container's environment.

If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to \"$(NAME1)\" and the NAME1 environment variable doesn't exist, the command string will remain \"$(NAME1).\" $$ is replaced with $, and the resulting string isn't expanded. For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists. For more information, see CMD in the Dockerfile reference and Define a command and arguments for a pod in the Kubernetes documentation.

" + }, + "env":{ + "shape":"EksContainerEnvironmentVariables", + "documentation":"

The environment variables to pass to a container.

Environment variables cannot start with \"AWS_BATCH\". This naming convention is reserved for variables that Batch sets.

" + }, + "resources":{ + "shape":"EksContainerResourceRequirements", + "documentation":"

The type and amount of resources to assign to a container. The supported resources include memory, cpu, and nvidia.com/gpu. For more information, see Resource management for pods and containers in the Kubernetes documentation.

" + }, + "volumeMounts":{ + "shape":"EksContainerVolumeMounts", + "documentation":"

The volume mounts for the container. Batch supports emptyDir, hostPath, and secret volume types. For more information about volumes and volume mounts in Kubernetes, see Volumes in the Kubernetes documentation.

" + }, + "securityContext":{ + "shape":"EksContainerSecurityContext", + "documentation":"

The security context for a job. For more information, see Configure a security context for a pod or container in the Kubernetes documentation.

" + } + }, + "documentation":"

EKS container properties are used in job definitions for Amazon EKS based job definitions to describe the properties for a container node in the pod that's launched as part of a job. This can't be specified for Amazon ECS based job definitions.

" + }, + "EksContainerDetail":{ + "type":"structure", + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the container. If the name isn't specified, the default name \"Default\" is used. Each container in a pod must have a unique name.

" + }, + "image":{ + "shape":"String", + "documentation":"

The Docker image used to start the container.

" + }, + "imagePullPolicy":{ + "shape":"String", + "documentation":"

The image pull policy for the container. Supported values are Always, IfNotPresent, and Never. This parameter defaults to Always if the :latest tag is specified, IfNotPresent otherwise. For more information, see Updating images in the Kubernetes documentation.

" + }, + "command":{ + "shape":"StringList", + "documentation":"

The entrypoint for the container. For more information, see Entrypoint in the Kubernetes documentation.

" + }, + "args":{ + "shape":"StringList", + "documentation":"

An array of arguments to the entrypoint. If this isn't specified, the CMD of the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod in Kubernetes. Environment variable references are expanded using the container's environment.

If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to \"$(NAME1)\" and the NAME1 environment variable doesn't exist, the command string will remain \"$(NAME1)\". $$ is replaced with $ and the resulting string isn't expanded. For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists. For more information, see CMD in the Dockerfile reference and Define a command and arguments for a pod in the Kubernetes documentation.

" + }, + "env":{ + "shape":"EksContainerEnvironmentVariables", + "documentation":"

The environment variables to pass to a container.

Environment variables cannot start with \"AWS_BATCH\". This naming convention is reserved for variables that Batch sets.

" + }, + "resources":{ + "shape":"EksContainerResourceRequirements", + "documentation":"

The type and amount of resources to assign to a container. The supported resources include memory, cpu, and nvidia.com/gpu. For more information, see Resource management for pods and containers in the Kubernetes documentation.

" + }, + "exitCode":{ + "shape":"Integer", + "documentation":"

The exit code for the job attempt. A non-zero exit code is considered failed.

" + }, + "reason":{ + "shape":"String", + "documentation":"

A short human-readable string to provide additional details for a running or stopped container. It can be up to 255 characters long.

" + }, + "volumeMounts":{ + "shape":"EksContainerVolumeMounts", + "documentation":"

The volume mounts for the container. Batch supports emptyDir, hostPath, and secret volume types. For more information about volumes and volume mounts in Kubernetes, see Volumes in the Kubernetes documentation.

" + }, + "securityContext":{ + "shape":"EksContainerSecurityContext", + "documentation":"

The security context for a job. For more information, see Configure a security context for a pod or container in the Kubernetes documentation.

" + } + }, + "documentation":"

The details for container properties that are returned by DescribeJobs for jobs that use Amazon EKS.

" + }, + "EksContainerDetails":{ + "type":"list", + "member":{"shape":"EksContainerDetail"} + }, + "EksContainerEnvironmentVariable":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the environment variable.

" + }, + "value":{ + "shape":"String", + "documentation":"

The value of the environment variable.

" + } + }, + "documentation":"

An environment variable.

" + }, + "EksContainerEnvironmentVariables":{ + "type":"list", + "member":{"shape":"EksContainerEnvironmentVariable"} + }, + "EksContainerOverride":{ + "type":"structure", + "members":{ + "image":{ + "shape":"String", + "documentation":"

The override of the Docker image that's used to start the container.

" + }, + "command":{ + "shape":"StringList", + "documentation":"

The command to send to the container that overrides the default command from the Docker image or the job definition.

" + }, + "args":{ + "shape":"StringList", + "documentation":"

The arguments to the entrypoint to send to the container that overrides the default arguments from the Docker image or the job definition. For more information, see CMD in the Dockerfile reference and Define a command an arguments for a pod in the Kubernetes documentation.

" + }, + "env":{ + "shape":"EksContainerEnvironmentVariables", + "documentation":"

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch. Or, you can override the existing environment variables from the Docker image or the job definition.

Environment variables cannot start with \"AWS_BATCH\". This naming convention is reserved for variables that Batch sets.

" + }, + "resources":{ + "shape":"EksContainerResourceRequirements", + "documentation":"

The type and amount of resources to assign to a container. These override the settings in the job definition. The supported resources include memory, cpu, and nvidia.com/gpu. For more information, see Resource management for pods and containers in the Kubernetes documentation.

" + } + }, + "documentation":"

Object representing any Kubernetes overrides to a job definition that's used in a SubmitJob API operation.

" + }, + "EksContainerOverrideList":{ + "type":"list", + "member":{"shape":"EksContainerOverride"} + }, + "EksContainerResourceRequirements":{ + "type":"structure", + "members":{ + "limits":{ + "shape":"EksLimits", + "documentation":"

The type and quantity of the resources to reserve for the container. The values vary based on the name that's specified. Resources can be requested using either the limits or the requests objects.

memory

The memory hard limit (in MiB) for the container, using whole integers, with a \"Mi\" suffix. If your container attempts to exceed the memory specified, the container is terminated. You must specify at least 4 MiB of memory for a job. memory can be specified in limits, requests, or both. If memory is specified in both places, then the value that's specified in limits must be equal to the value that's specified in requests.

To maximize your resource utilization, provide your jobs with as much memory as possible for the specific instance type that you are using. To learn how, see Memory management in the Batch User Guide.

cpu

The number of CPUs that's reserved for the container. Values must be an even multiple of 0.25. cpu can be specified in limits, requests, or both. If cpu is specified in both places, then the value that's specified in limits must be at least as large as the value that's specified in requests.

nvidia.com/gpu

The number of GPUs that's reserved for the container. Values must be a whole integer. memory can be specified in limits, requests, or both. If memory is specified in both places, then the value that's specified in limits must be equal to the value that's specified in requests.

" + }, + "requests":{ + "shape":"EksRequests", + "documentation":"

The type and quantity of the resources to request for the container. The values vary based on the name that's specified. Resources can be requested by using either the limits or the requests objects.

memory

The memory hard limit (in MiB) for the container, using whole integers, with a \"Mi\" suffix. If your container attempts to exceed the memory specified, the container is terminated. You must specify at least 4 MiB of memory for a job. memory can be specified in limits, requests, or both. If memory is specified in both, then the value that's specified in limits must be equal to the value that's specified in requests.

If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory management in the Batch User Guide.

cpu

The number of CPUs that are reserved for the container. Values must be an even multiple of 0.25. cpu can be specified in limits, requests, or both. If cpu is specified in both, then the value that's specified in limits must be at least as large as the value that's specified in requests.

nvidia.com/gpu

The number of GPUs that are reserved for the container. Values must be a whole integer. nvidia.com/gpu can be specified in limits, requests, or both. If nvidia.com/gpu is specified in both, then the value that's specified in limits must be equal to the value that's specified in requests.

" + } + }, + "documentation":"

The type and amount of resources to assign to a container. The supported resources include memory, cpu, and nvidia.com/gpu. For more information, see Resource management for pods and containers in the Kubernetes documentation.

" + }, + "EksContainerSecurityContext":{ + "type":"structure", + "members":{ + "runAsUser":{ + "shape":"Long", + "documentation":"

When this parameter is specified, the container is run as the specified user ID (uid). If this parameter isn't specified, the default is the user that's specified in the image metadata. This parameter maps to RunAsUser and MustRanAs policy in the Users and groups pod security policies in the Kubernetes documentation.

" + }, + "runAsGroup":{ + "shape":"Long", + "documentation":"

When this parameter is specified, the container is run as the specified group ID (gid). If this parameter isn't specified, the default is the group that's specified in the image metadata. This parameter maps to RunAsGroup and MustRunAs policy in the Users and groups pod security policies in the Kubernetes documentation.

" + }, + "privileged":{ + "shape":"Boolean", + "documentation":"

When this parameter is true, the container is given elevated permissions on the host container instance. The level of permissions are similar to the root user permissions. The default value is false. This parameter maps to privileged policy in the Privileged pod security policies in the Kubernetes documentation.

" + }, + "readOnlyRootFilesystem":{ + "shape":"Boolean", + "documentation":"

When this parameter is true, the container is given read-only access to its root file system. The default value is false. This parameter maps to ReadOnlyRootFilesystem policy in the Volumes and file systems pod security policies in the Kubernetes documentation.

" + }, + "runAsNonRoot":{ + "shape":"Boolean", + "documentation":"

When this parameter is specified, the container is run as a user with a uid other than 0. If this parameter isn't specified, so such rule is enforced. This parameter maps to RunAsUser and MustRunAsNonRoot policy in the Users and groups pod security policies in the Kubernetes documentation.

" + } + }, + "documentation":"

The security context for a job. For more information, see Configure a security context for a pod or container in the Kubernetes documentation.

" + }, + "EksContainerVolumeMount":{ + "type":"structure", + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name the volume mount. This must match the name of one of the volumes in the pod.

" + }, + "mountPath":{ + "shape":"String", + "documentation":"

The path on the container where the volume is mounted.

" + }, + "readOnly":{ + "shape":"Boolean", + "documentation":"

If this value is true, the container has read-only access to the volume. Otherwise, the container can write to the volume. The default value is false.

" + } + }, + "documentation":"

The volume mounts for a container for an Amazon EKS job. For more information about volumes and volume mounts in Kubernetes, see Volumes in the Kubernetes documentation.

" + }, + "EksContainerVolumeMounts":{ + "type":"list", + "member":{"shape":"EksContainerVolumeMount"} + }, + "EksContainers":{ + "type":"list", + "member":{"shape":"EksContainer"} + }, + "EksEmptyDir":{ + "type":"structure", + "members":{ + "medium":{ + "shape":"String", + "documentation":"

The medium to store the volume. The default value is an empty string, which uses the storage of the node.

\"\"

(Default) Use the disk storage of the node.

\"Memory\"

Use the tmpfs volume that's backed by the RAM of the node. Contents of the volume are lost when the node reboots, and any storage on the volume counts against the container's memory limit.

" + }, + "sizeLimit":{ + "shape":"Quantity", + "documentation":"

The maximum size of the volume. By default, there's no maximum size defined.

" + } + }, + "documentation":"

Specifies the configuration of a Kubernetes emptyDir volume. An emptyDir volume is first created when a pod is assigned to a node. It exists as long as that pod is running on that node. The emptyDir volume is initially empty. All containers in the pod can read and write the files in the emptyDir volume. However, the emptyDir volume can be mounted at the same or different paths in each container. When a pod is removed from a node for any reason, the data in the emptyDir is deleted permanently. For more information, see emptyDir in the Kubernetes documentation.

" + }, + "EksHostPath":{ + "type":"structure", + "members":{ + "path":{ + "shape":"String", + "documentation":"

The path of the file or directory on the host to mount into containers on the pod.

" + } + }, + "documentation":"

Specifies the configuration of a Kubernetes hostPath volume. A hostPath volume mounts an existing file or directory from the host node's filesystem into your pod. For more information, see hostPath in the Kubernetes documentation.

" + }, + "EksLimits":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"Quantity"} + }, + "EksPodProperties":{ + "type":"structure", + "members":{ + "serviceAccountName":{ + "shape":"String", + "documentation":"

The name of the service account that's used to run the pod. For more information, see Kubernetes service accounts and Configure a Kubernetes service account to assume an IAM role in the Amazon EKS User Guide and Configure service accounts for pods in the Kubernetes documentation.

" + }, + "hostNetwork":{ + "shape":"Boolean", + "documentation":"

Indicates if the pod uses the hosts' network IP address. The default value is true. Setting this to false enables the Kubernetes pod networking model. Most Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see Host namespaces and Pod networking in the Kubernetes documentation.

" + }, + "dnsPolicy":{ + "shape":"String", + "documentation":"

The DNS policy for the pod. The default value is ClusterFirst. If the hostNetwork parameter is not specified, the default is ClusterFirstWithHostNet. ClusterFirst indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node. For more information, see Pod's DNS policy in the Kubernetes documentation.

Valid values: Default | ClusterFirst | ClusterFirstWithHostNet

" + }, + "containers":{ + "shape":"EksContainers", + "documentation":"

The properties of the container that's used on the Amazon EKS pod.

" + }, + "volumes":{ + "shape":"EksVolumes", + "documentation":"

Specifies the volumes for a job definition that uses Amazon EKS resources.

" + } + }, + "documentation":"

The properties for the pod.

" + }, + "EksPodPropertiesDetail":{ + "type":"structure", + "members":{ + "serviceAccountName":{ + "shape":"String", + "documentation":"

The name of the service account that's used to run the pod. For more information, see Kubernetes service accounts and Configure a Kubernetes service account to assume an IAM role in the Amazon EKS User Guide and Configure service accounts for pods in the Kubernetes documentation.

" + }, + "hostNetwork":{ + "shape":"Boolean", + "documentation":"

Indicates if the pod uses the hosts' network IP address. The default value is true. Setting this to false enables the Kubernetes pod networking model. Most Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see Host namespaces and Pod networking in the Kubernetes documentation.

" + }, + "dnsPolicy":{ + "shape":"String", + "documentation":"

The DNS policy for the pod. The default value is ClusterFirst. If the hostNetwork parameter is not specified, the default is ClusterFirstWithHostNet. ClusterFirst indicates that any DNS query that does not match the configured cluster domain suffix is forwarded to the upstream nameserver inherited from the node. If no value was specified for dnsPolicy in the RegisterJobDefinition API operation, then no value will be returned for dnsPolicy by either of DescribeJobDefinitions or DescribeJobs API operations. The pod spec setting will contain either ClusterFirst or ClusterFirstWithHostNet, depending on the value of the hostNetwork parameter. For more information, see Pod's DNS policy in the Kubernetes documentation.

Valid values: Default | ClusterFirst | ClusterFirstWithHostNet

" + }, + "containers":{ + "shape":"EksContainerDetails", + "documentation":"

The properties of the container that's used on the Amazon EKS pod.

" + }, + "volumes":{ + "shape":"EksVolumes", + "documentation":"

Specifies the volumes for a job definition using Amazon EKS resources.

" + }, + "podName":{ + "shape":"String", + "documentation":"

The name of the pod for this job.

" + }, + "nodeName":{ + "shape":"String", + "documentation":"

The name of the node for this job.

" + } + }, + "documentation":"

The details for the pod.

" + }, + "EksPodPropertiesOverride":{ + "type":"structure", + "members":{ + "containers":{ + "shape":"EksContainerOverrideList", + "documentation":"

The overrides for the container that's used on the Amazon EKS pod.

" + } + }, + "documentation":"

An object that contains overrides for the Kubernetes pod properties of a job.

" + }, + "EksProperties":{ + "type":"structure", + "members":{ + "podProperties":{ + "shape":"EksPodProperties", + "documentation":"

The properties for the Kubernetes pod resources of a job.

" + } + }, + "documentation":"

An object that contains the properties for the Kubernetes resources of a job.

" + }, + "EksPropertiesDetail":{ + "type":"structure", + "members":{ + "podProperties":{ + "shape":"EksPodPropertiesDetail", + "documentation":"

The properties for the Kubernetes pod resources of a job.

" + } + }, + "documentation":"

An object that contains the details for the Kubernetes resources of a job.

" + }, + "EksPropertiesOverride":{ + "type":"structure", + "members":{ + "podProperties":{ + "shape":"EksPodPropertiesOverride", + "documentation":"

The overrides for the Kubernetes pod resources of a job.

" + } + }, + "documentation":"

An object that contains overrides for the Kubernetes resources of a job.

" + }, + "EksRequests":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"Quantity"} + }, + "EksSecret":{ + "type":"structure", + "required":["secretName"], + "members":{ + "secretName":{ + "shape":"String", + "documentation":"

The name of the secret. The name must be allowed as a DNS subdomain name. For more information, see DNS subdomain names in the Kubernetes documentation.

" + }, + "optional":{ + "shape":"Boolean", + "documentation":"

Specifies whether the secret or the secret's keys must be defined.

" + } + }, + "documentation":"

Specifies the configuration of a Kubernetes secret volume. For more information, see secret in the Kubernetes documentation.

" + }, + "EksVolume":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the volume. The name must be allowed as a DNS subdomain name. For more information, see DNS subdomain names in the Kubernetes documentation.

" + }, + "hostPath":{ + "shape":"EksHostPath", + "documentation":"

Specifies the configuration of a Kubernetes hostPath volume. For more information, see hostPath in the Kubernetes documentation.

" + }, + "emptyDir":{ + "shape":"EksEmptyDir", + "documentation":"

Specifies the configuration of a Kubernetes emptyDir volume. For more information, see emptyDir in the Kubernetes documentation.

" + }, + "secret":{ + "shape":"EksSecret", + "documentation":"

Specifies the configuration of a Kubernetes secret volume. For more information, see secret in the Kubernetes documentation.

" + } + }, + "documentation":"

Specifies an Amazon EKS volume for a job definition.

" + }, + "EksVolumes":{ + "type":"list", + "member":{"shape":"EksVolume"} + }, "EnvironmentVariables":{ "type":"list", "member":{"shape":"KeyValuePair"} @@ -1498,22 +1976,22 @@ "members":{ "onStatusReason":{ "shape":"String", - "documentation":"

Contains a glob pattern to match against the StatusReason returned for a job. The pattern can be up to 512 characters in length. It can contain letters, numbers, periods (.), colons (:), and white space (including spaces or tabs). It can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

The string can be between 1 and 512 characters in length.

" + "documentation":"

Contains a glob pattern to match against the StatusReason returned for a job. The pattern can contain up to 512 characters. It can contain letters, numbers, periods (.), colons (:), and white spaces (including spaces or tabs). It can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

" }, "onReason":{ "shape":"String", - "documentation":"

Contains a glob pattern to match against the Reason returned for a job. The pattern can be up to 512 characters in length. It can contain letters, numbers, periods (.), colons (:), and white space (including spaces and tabs). It can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

The string can be between 1 and 512 characters in length.

" + "documentation":"

Contains a glob pattern to match against the Reason returned for a job. The pattern can contain up to 512 characters. It can contain letters, numbers, periods (.), colons (:), and white space (including spaces and tabs). It can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

" }, "onExitCode":{ "shape":"String", - "documentation":"

Contains a glob pattern to match against the decimal representation of the ExitCode returned for a job. The pattern can be up to 512 characters in length. It can contain only numbers, and can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match.

The string can be between 1 and 512 characters in length.

" + "documentation":"

Contains a glob pattern to match against the decimal representation of the ExitCode returned for a job. The pattern can be up to 512 characters long. It can contain only numbers, and can end with an asterisk (*) so that only the start of the string needs to be an exact match.

The string can contain up to 512 characters.

" }, "action":{ "shape":"RetryAction", "documentation":"

Specifies the action to take if all of the specified conditions (onStatusReason, onReason, and onExitCode) are met. The values aren't case sensitive.

" } }, - "documentation":"

Specifies a set of conditions to be met, and an action to take (RETRY or EXIT) if all conditions are met.

" + "documentation":"

Specifies an array of up to 5 conditions to be met, and an action to take (RETRY or EXIT) if all conditions are met. If none of the EvaluateOnExit conditions in a RetryStrategy match, then the job is retried.

" }, "EvaluateOnExitList":{ "type":"list", @@ -1524,11 +2002,11 @@ "members":{ "shareDecaySeconds":{ "shape":"Integer", - "documentation":"

The time period to use to calculate a fair share percentage for each fair share identifier in use, in seconds. A value of zero (0) indicates that only current usage should be measured. The decay allows for more recently run jobs to have more weight than jobs that ran earlier. The maximum supported value is 604800 (1 week).

" + "documentation":"

The amount of time (in seconds) to use to calculate a fair share percentage for each fair share identifier in use. A value of zero (0) indicates that only current usage is measured. The decay allows for more recently run jobs to have more weight than jobs that ran earlier. The maximum supported value is 604800 (1 week).

" }, "computeReservation":{ "shape":"Integer", - "documentation":"

A value used to reserve some of the available maximum vCPU for fair share identifiers that have not yet been used.

The reserved ratio is (computeReservation/100)^ActiveFairShares where ActiveFairShares is the number of active fair share identifiers.

For example, a computeReservation value of 50 indicates that Batch should reserve 50% of the maximum available vCPU if there is only one fair share identifier, 25% if there are two fair share identifiers, and 12.5% if there are three fair share identifiers. A computeReservation value of 25 indicates that Batch should reserve 25% of the maximum available vCPU if there is only one fair share identifier, 6.25% if there are two fair share identifiers, and 1.56% if there are three fair share identifiers.

The minimum value is 0 and the maximum value is 99.

" + "documentation":"

A value used to reserve some of the available maximum vCPU for fair share identifiers that aren't already used.

The reserved ratio is (computeReservation/100)^ActiveFairShares where ActiveFairShares is the number of active fair share identifiers.

For example, a computeReservation value of 50 indicates that Batchreserves 50% of the maximum available vCPU if there's only one fair share identifier. It reserves 25% if there are two fair share identifiers. It reserves 12.5% if there are three fair share identifiers. A computeReservation value of 25 indicates that Batch should reserve 25% of the maximum available vCPU if there's only one fair share identifier, 6.25% if there are two fair share identifiers, and 1.56% if there are three fair share identifiers.

The minimum value is 0 and the maximum value is 99.

" }, "shareDistribution":{ "shape":"ShareAttributesList", @@ -1553,10 +2031,10 @@ "members":{ "sourcePath":{ "shape":"String", - "documentation":"

The path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the source path location doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.

This parameter isn't applicable to jobs that run on Fargate resources and shouldn't be provided.

" + "documentation":"

The path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the source path location doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported.

This parameter isn't applicable to jobs that run on Fargate resources. Don't provide this for these jobs.

" } }, - "documentation":"

Determine whether your data volume persists on the host container instance and where it is stored. If this parameter is empty, then the Docker daemon assigns a host path for your data volume, but the data isn't guaranteed to persist after the containers associated with it stop running.

" + "documentation":"

Determine whether your data volume persists on the host container instance and where it's stored. If this parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.

" }, "ImageIdOverride":{ "type":"string", @@ -1614,7 +2092,7 @@ }, "type":{ "shape":"String", - "documentation":"

The type of job definition, either container or multinode. If the job is run on Fargate resources, then multinode isn't supported. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the Batch User Guide.

" + "documentation":"

The type of job definition. It's either container or multinode. If the job is run on Fargate resources, then multinode isn't supported. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the Batch User Guide.

" }, "schedulingPriority":{ "shape":"Integer", @@ -1630,30 +2108,38 @@ }, "containerProperties":{ "shape":"ContainerProperties", - "documentation":"

An object with various properties specific to container-based jobs.

" + "documentation":"

An object with various properties specific to Amazon ECS based jobs. Valid values are containerProperties, eksProperties, and nodeProperties. Only one can be specified.

" }, "timeout":{ "shape":"JobTimeout", - "documentation":"

The timeout configuration for jobs that are submitted with this job definition. You can specify a timeout duration after which Batch terminates your jobs if they haven't finished.

" + "documentation":"

The timeout time for jobs that are submitted with this job definition. After the amount of time you specify passes, Batch terminates your jobs if they aren't finished.

" }, "nodeProperties":{ "shape":"NodeProperties", - "documentation":"

An object with various properties specific to multi-node parallel jobs.

If the job runs on Fargate resources, then you must not specify nodeProperties; use containerProperties instead.

" + "documentation":"

An object with various properties that are specific to multi-node parallel jobs. Valid values are containerProperties, eksProperties, and nodeProperties. Only one can be specified.

If the job runs on Fargate resources, don't specify nodeProperties. Use containerProperties instead.

" }, "tags":{ "shape":"TagrisTagsMap", - "documentation":"

The tags applied to the job definition.

" + "documentation":"

The tags that are applied to the job definition.

" }, "propagateTags":{ "shape":"Boolean", - "documentation":"

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

" + "documentation":"

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks when the tasks are created. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

" }, "platformCapabilities":{ "shape":"PlatformCapabilityList", "documentation":"

The platform capabilities required by the job definition. If no value is specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE.

" + }, + "eksProperties":{ + "shape":"EksProperties", + "documentation":"

An object with various properties that are specific to Amazon EKS based jobs. Valid values are containerProperties, eksProperties, and nodeProperties. Only one can be specified.

" + }, + "containerOrchestrationType":{ + "shape":"OrchestrationType", + "documentation":"

The orchestration type of the compute environment. The valid values are ECS (default) or EKS.

" } }, - "documentation":"

An object representing an Batch job definition.

" + "documentation":"

An object that represents an Batch job definition.

" }, "JobDefinitionList":{ "type":"list", @@ -1671,14 +2157,14 @@ "members":{ "jobId":{ "shape":"String", - "documentation":"

The job ID of the Batch job associated with this dependency.

" + "documentation":"

The job ID of the Batch job that's associated with this dependency.

" }, "type":{ "shape":"ArrayJobDependency", "documentation":"

The type of the job dependency.

" } }, - "documentation":"

An object representing an Batch job dependency.

" + "documentation":"

An object that represents an Batch job dependency.

" }, "JobDependencyList":{ "type":"list", @@ -1701,11 +2187,11 @@ }, "jobName":{ "shape":"String", - "documentation":"

The name of the job.

" + "documentation":"

The job name.

" }, "jobId":{ "shape":"String", - "documentation":"

The ID for the job.

" + "documentation":"

The job ID.

" }, "jobQueue":{ "shape":"String", @@ -1725,15 +2211,15 @@ }, "attempts":{ "shape":"AttemptDetails", - "documentation":"

A list of job attempts associated with this job.

" + "documentation":"

A list of job attempts that are associated with this job.

" }, "statusReason":{ "shape":"String", - "documentation":"

A short, human-readable string to provide additional details about the current status of the job.

" + "documentation":"

A short, human-readable string to provide more details for the current status of the job.

" }, "createdAt":{ "shape":"Long", - "documentation":"

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state (at the time SubmitJob was called). For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state.

" + "documentation":"

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state. This is specifically at the time SubmitJob was called. For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state.

" }, "retryStrategy":{ "shape":"RetryStrategy", @@ -1741,11 +2227,11 @@ }, "startedAt":{ "shape":"Long", - "documentation":"

The Unix timestamp (in milliseconds) for when the job was started (when the job transitioned from the STARTING state to the RUNNING state). This parameter isn't provided for child jobs of array jobs or multi-node parallel jobs.

" + "documentation":"

The Unix timestamp (in milliseconds) for when the job was started. More specifically, it's when the job transitioned from the STARTING state to the RUNNING state. This parameter isn't provided for child jobs of array jobs or multi-node parallel jobs.

" }, "stoppedAt":{ "shape":"Long", - "documentation":"

The Unix timestamp (in milliseconds) for when the job was stopped (when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED).

" + "documentation":"

The Unix timestamp (in milliseconds) for when the job was stopped. More specifically, it's when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED.

" }, "dependsOn":{ "shape":"JobDependencyList", @@ -1753,27 +2239,27 @@ }, "jobDefinition":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the job definition that's used by this job.

" + "documentation":"

The Amazon Resource Name (ARN) of the job definition that this job uses.

" }, "parameters":{ "shape":"ParametersMap", - "documentation":"

Additional parameters passed to the job that replace parameter substitution placeholders or override any corresponding parameter defaults from the job definition.

" + "documentation":"

Additional parameters that are passed to the job that replace parameter substitution placeholders or override any corresponding parameter defaults from the job definition.

" }, "container":{ "shape":"ContainerDetail", - "documentation":"

An object representing the details of the container that's associated with the job.

" + "documentation":"

An object that represents the details for the container that's associated with the job.

" }, "nodeDetails":{ "shape":"NodeDetails", - "documentation":"

An object representing the details of a node that's associated with a multi-node parallel job.

" + "documentation":"

An object that represents the details of a node that's associated with a multi-node parallel job.

" }, "nodeProperties":{ "shape":"NodeProperties", - "documentation":"

An object representing the node properties of a multi-node parallel job.

This isn't applicable to jobs that are running on Fargate resources.

" + "documentation":"

An object that represents the node properties of a multi-node parallel job.

This isn't applicable to jobs that are running on Fargate resources.

" }, "arrayProperties":{ "shape":"ArrayPropertiesDetail", - "documentation":"

The array properties of the job, if it is an array job.

" + "documentation":"

The array properties of the job, if it's an array job.

" }, "timeout":{ "shape":"JobTimeout", @@ -1781,18 +2267,26 @@ }, "tags":{ "shape":"TagrisTagsMap", - "documentation":"

The tags applied to the job.

" + "documentation":"

The tags that are applied to the job.

" }, "propagateTags":{ "shape":"Boolean", - "documentation":"

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

" + "documentation":"

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks when the tasks are created. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

" }, "platformCapabilities":{ "shape":"PlatformCapabilityList", "documentation":"

The platform capabilities required by the job definition. If no value is specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE.

" + }, + "eksProperties":{ + "shape":"EksPropertiesDetail", + "documentation":"

An object with various properties that are specific to Amazon EKS based jobs. Only one of container, eksProperties, or nodeDetails is specified.

" + }, + "eksAttempts":{ + "shape":"EksAttemptDetails", + "documentation":"

A list of job attempts that are associated with this job.

" } }, - "documentation":"

An object representing an Batch job.

" + "documentation":"

An object that represents an Batch job.

" }, "JobDetailList":{ "type":"list", @@ -1815,7 +2309,7 @@ "members":{ "jobQueueName":{ "shape":"String", - "documentation":"

The name of the job queue.

" + "documentation":"

The job queue name.

" }, "jobQueueArn":{ "shape":"String", @@ -1823,11 +2317,11 @@ }, "state":{ "shape":"JQState", - "documentation":"

Describes the ability of the queue to accept new jobs. If the job queue state is ENABLED, it's able to accept jobs. If the job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the queue can finish.

" + "documentation":"

Describes the ability of the queue to accept new jobs. If the job queue state is ENABLED, it can accept jobs. If the job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the queue can finish.

" }, "schedulingPolicyArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the scheduling policy. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name . For example, aws:aws:batch:us-west-2:012345678910:scheduling-policy/MySchedulingPolicy.

" + "documentation":"

The Amazon Resource Name (ARN) of the scheduling policy. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name . For example, aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

" }, "status":{ "shape":"JQStatus", @@ -1835,11 +2329,11 @@ }, "statusReason":{ "shape":"String", - "documentation":"

A short, human-readable string to provide additional details about the current status of the job queue.

" + "documentation":"

A short, human-readable string to provide additional details for the current status of the job queue.

" }, "priority":{ "shape":"Integer", - "documentation":"

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order, for example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

" + "documentation":"

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT). EC2 and Fargate compute environments can't be mixed.

" }, "computeEnvironmentOrder":{ "shape":"ComputeEnvironmentOrders", @@ -1847,10 +2341,10 @@ }, "tags":{ "shape":"TagrisTagsMap", - "documentation":"

The tags applied to the job queue. For more information, see Tagging your Batch resources in Batch User Guide.

" + "documentation":"

The tags that are applied to the job queue. For more information, see Tagging your Batch resources in Batch User Guide.

" } }, - "documentation":"

An object representing the details of an Batch job queue.

" + "documentation":"

An object that represents the details for an Batch job queue.

" }, "JobQueueDetailList":{ "type":"list", @@ -1881,11 +2375,11 @@ }, "jobId":{ "shape":"String", - "documentation":"

The ID of the job.

" + "documentation":"

The job ID.

" }, "jobName":{ "shape":"String", - "documentation":"

The name of the job.

" + "documentation":"

The job name.

" }, "createdAt":{ "shape":"Long", @@ -1897,23 +2391,23 @@ }, "statusReason":{ "shape":"String", - "documentation":"

A short, human-readable string to provide additional details about the current status of the job.

" + "documentation":"

A short, human-readable string to provide more details for the current status of the job.

" }, "startedAt":{ "shape":"Long", - "documentation":"

The Unix timestamp for when the job was started (when the job transitioned from the STARTING state to the RUNNING state).

" + "documentation":"

The Unix timestamp for when the job was started. More specifically, it's when the job transitioned from the STARTING state to the RUNNING state.

" }, "stoppedAt":{ "shape":"Long", - "documentation":"

The Unix timestamp for when the job was stopped (when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED).

" + "documentation":"

The Unix timestamp for when the job was stopped. More specifically, it's when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED.

" }, "container":{ "shape":"ContainerSummary", - "documentation":"

An object representing the details of the container that's associated with the job.

" + "documentation":"

An object that represents the details of the container that's associated with the job.

" }, "arrayProperties":{ "shape":"ArrayPropertiesSummary", - "documentation":"

The array properties of the job, if it is an array job.

" + "documentation":"

The array properties of the job, if it's an array job.

" }, "nodeProperties":{ "shape":"NodePropertiesSummary", @@ -1924,7 +2418,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the job definition.

" } }, - "documentation":"

An object representing summary details of a job.

" + "documentation":"

An object that represents summary details of a job.

" }, "JobSummaryList":{ "type":"list", @@ -1935,10 +2429,10 @@ "members":{ "attemptDurationSeconds":{ "shape":"Integer", - "documentation":"

The time duration in seconds (measured from the job attempt's startedAt timestamp) after which Batch terminates your jobs if they have not finished. The minimum value for the timeout is 60 seconds.

" + "documentation":"

The job timeout time (in seconds) that's measured from the job attempt's startedAt timestamp. After this time passes, Batch terminates your jobs if they aren't finished. The minimum value for the timeout is 60 seconds.

" } }, - "documentation":"

An object representing a job timeout configuration.

" + "documentation":"

An object that represents a job timeout configuration.

" }, "KeyValuePair":{ "type":"structure", @@ -1968,6 +2462,11 @@ }, "documentation":"

A filter name and value pair that's used to return a more specific list of results from a ListJobs API operation.

" }, + "KubernetesVersion":{ + "type":"string", + "max":256, + "min":1 + }, "LaunchTemplateSpecification":{ "type":"structure", "members":{ @@ -1984,34 +2483,34 @@ "documentation":"

The version number of the launch template, $Latest, or $Default.

If the value is $Latest, the latest version of the launch template is used. If the value is $Default, the default version of the launch template is used.

If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the updateToLatestImageVersion parameter for the compute environment is set to true. During an infrastructure update, if either $Latest or $Default is specified, Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

Default: $Default.

" } }, - "documentation":"

An object representing a launch template associated with a compute resource. You must specify either the launch template ID or launch template name in the request, but not both.

If security groups are specified using both the securityGroupIds parameter of CreateComputeEnvironment and the launch template, the values in the securityGroupIds parameter of CreateComputeEnvironment will be used.

This object isn't applicable to jobs that are running on Fargate resources.

" + "documentation":"

An object that represents a launch template that's associated with a compute resource. You must specify either the launch template ID or launch template name in the request, but not both.

If security groups are specified using both the securityGroupIds parameter of CreateComputeEnvironment and the launch template, the values in the securityGroupIds parameter of CreateComputeEnvironment will be used.

This object isn't applicable to jobs that are running on Fargate resources.

" }, "LinuxParameters":{ "type":"structure", "members":{ "devices":{ "shape":"DevicesList", - "documentation":"

Any host devices to expose to the container. This parameter maps to Devices in the Create a container section of the Docker Remote API and the --device option to docker run.

This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.

" + "documentation":"

Any of the host devices to expose to the container. This parameter maps to Devices in the Create a container section of the Docker Remote API and the --device option to docker run.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs.

" }, "initProcessEnabled":{ "shape":"Boolean", - "documentation":"

If true, run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "documentation":"

If true, run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

" }, "sharedMemorySize":{ "shape":"Integer", - "documentation":"

The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the --shm-size option to docker run.

This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.

" + "documentation":"

The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the --shm-size option to docker run.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs.

" }, "tmpfs":{ "shape":"TmpfsList", - "documentation":"

The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the --tmpfs option to docker run.

This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.

" + "documentation":"

The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the --tmpfs option to docker run.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide this parameter for this resource type.

" }, "maxSwap":{ "shape":"Integer", - "documentation":"

The total amount of swap memory (in MiB) a container can use. This parameter is translated to the --memory-swap option to docker run where the value is the sum of the container memory plus the maxSwap value. For more information, see --memory-swap details in the Docker documentation.

If a maxSwap value of 0 is specified, the container doesn't use swap. Accepted values are 0 or any positive integer. If the maxSwap parameter is omitted, the container doesn't use the swap configuration for the container instance it is running on. A maxSwap value must be set for the swappiness parameter to be used.

This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.

" + "documentation":"

The total amount of swap memory (in MiB) a container can use. This parameter is translated to the --memory-swap option to docker run where the value is the sum of the container memory plus the maxSwap value. For more information, see --memory-swap details in the Docker documentation.

If a maxSwap value of 0 is specified, the container doesn't use swap. Accepted values are 0 or any positive integer. If the maxSwap parameter is omitted, the container doesn't use the swap configuration for the container instance that it's running on. A maxSwap value must be set for the swappiness parameter to be used.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs.

" }, "swappiness":{ "shape":"Integer", - "documentation":"

This allows you to tune a container's memory swappiness behavior. A swappiness value of 0 causes swapping not to happen unless absolutely necessary. A swappiness value of 100 causes pages to be swapped very aggressively. Accepted values are whole numbers between 0 and 100. If the swappiness parameter isn't specified, a default value of 60 is used. If a value isn't specified for maxSwap, then this parameter is ignored. If maxSwap is set to 0, the container doesn't use swap. This parameter maps to the --memory-swappiness option to docker run.

Consider the following when you use a per-container swap configuration.

  • Swap space must be enabled and allocated on the container instance for the containers to use.

    The Amazon ECS optimized AMIs don't have swap enabled by default. You must enable swap on the instance to use this feature. For more information, see Instance store swap volumes in the Amazon EC2 User Guide for Linux Instances or How do I allocate memory to work as swap space in an Amazon EC2 instance by using a swap file?

  • The swap space parameters are only supported for job definitions using EC2 resources.

  • If the maxSwap and swappiness parameters are omitted from a job definition, each container will have a default swappiness value of 60, and the total swap usage will be limited to two times the memory reservation of the container.

This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.

" + "documentation":"

You can use this parameter to tune a container's memory swappiness behavior. A swappiness value of 0 causes swapping to not occur unless absolutely necessary. A swappiness value of 100 causes pages to be swapped aggressively. Valid values are whole numbers between 0 and 100. If the swappiness parameter isn't specified, a default value of 60 is used. If a value isn't specified for maxSwap, then this parameter is ignored. If maxSwap is set to 0, the container doesn't use swap. This parameter maps to the --memory-swappiness option to docker run.

Consider the following when you use a per-container swap configuration.

  • Swap space must be enabled and allocated on the container instance for the containers to use.

    By default, the Amazon ECS optimized AMIs don't have swap enabled. You must enable swap on the instance to use this feature. For more information, see Instance store swap volumes in the Amazon EC2 User Guide for Linux Instances or How do I allocate memory to work as swap space in an Amazon EC2 instance by using a swap file?

  • The swap space parameters are only supported for job definitions using EC2 resources.

  • If the maxSwap and swappiness parameters are omitted from a job definition, each container has a default swappiness value of 60. Moreover, the total swap usage is limited to two times the memory reservation of the container.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs.

" } }, "documentation":"

Linux-specific modifications that are applied to the container, such as details for device mappings.

" @@ -2045,11 +2544,11 @@ }, "nextToken":{ "shape":"String", - "documentation":"

The nextToken value returned from a previous paginated ListJobs request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" + "documentation":"

The nextToken value returned from a previous paginated ListJobs request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

Treat this token as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" }, "filters":{ "shape":"ListJobsFilterList", - "documentation":"

The filter to apply to the query. Only one filter can be used at a time. When the filter is used, jobStatus is ignored. The filter doesn't apply to child jobs in an array or multi-node parallel (MNP) jobs. The results are sorted by the createdAt field, with the most recent jobs being first.

JOB_NAME

The value of the filter is a case-insensitive match for the job name. If the value ends with an asterisk (*), the filter will match any job name that begins with the string before the '*'. This corresponds to the jobName value. For example, test1 matches both Test1 and test1, and test1* matches both test1 and Test10. When the JOB_NAME filter is used, the results are grouped by the job name and version.

JOB_DEFINITION

The value for the filter is the name or Amazon Resource Name (ARN) of the job definition. This corresponds to the jobDefinition value. The value is case sensitive. When the value for the filter is the job definition name, the results include all the jobs that used any revision of that job definition name. If the value ends with an asterisk (*), the filter will match any job definition name that begins with the string before the '*'. For example, jd1 matches only jd1, and jd1* matches both jd1 and jd1A. The version of the job definition that's used doesn't affect the sort order. When the JOB_DEFINITION filter is used and the ARN is used (which is in the form arn:${Partition}:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}), the results include jobs that used the specified revision of the job definition. Asterisk (*) is not supported when the ARN is used.

BEFORE_CREATED_AT

The value for the filter is the time that's before the job was created. This corresponds to the createdAt value. The value is a string representation of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, 1970.

AFTER_CREATED_AT

The value for the filter is the time that's after the job was created. This corresponds to the createdAt value. The value is a string representation of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, 1970.

" + "documentation":"

The filter to apply to the query. Only one filter can be used at a time. When the filter is used, jobStatus is ignored. The filter doesn't apply to child jobs in an array or multi-node parallel (MNP) jobs. The results are sorted by the createdAt field, with the most recent jobs being first.

JOB_NAME

The value of the filter is a case-insensitive match for the job name. If the value ends with an asterisk (*), the filter matches any job name that begins with the string before the '*'. This corresponds to the jobName value. For example, test1 matches both Test1 and test1, and test1* matches both test1 and Test10. When the JOB_NAME filter is used, the results are grouped by the job name and version.

JOB_DEFINITION

The value for the filter is the name or Amazon Resource Name (ARN) of the job definition. This corresponds to the jobDefinition value. The value is case sensitive. When the value for the filter is the job definition name, the results include all the jobs that used any revision of that job definition name. If the value ends with an asterisk (*), the filter matches any job definition name that begins with the string before the '*'. For example, jd1 matches only jd1, and jd1* matches both jd1 and jd1A. The version of the job definition that's used doesn't affect the sort order. When the JOB_DEFINITION filter is used and the ARN is used (which is in the form arn:${Partition}:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}), the results include jobs that used the specified revision of the job definition. Asterisk (*) isn't supported when the ARN is used.

BEFORE_CREATED_AT

The value for the filter is the time that's before the job was created. This corresponds to the createdAt value. The value is a string representation of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, 1970.

AFTER_CREATED_AT

The value for the filter is the time that's after the job was created. This corresponds to the createdAt value. The value is a string representation of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, 1970.

" } }, "documentation":"

Contains the parameters for ListJobs.

" @@ -2077,7 +2576,7 @@ }, "nextToken":{ "shape":"String", - "documentation":"

The nextToken value that's returned from a previous paginated ListSchedulingPolicies request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" + "documentation":"

The nextToken value that's returned from a previous paginated ListSchedulingPolicies request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return.

Treat this token as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes.

" } }, "documentation":"

Contains the parameters for ListSchedulingPolicies.

" @@ -2101,7 +2600,7 @@ "members":{ "resourceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) that identifies the resource that tags are listed for. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

", + "documentation":"

The Amazon Resource Name (ARN) that identifies the resource that tags are listed for. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs aren't supported.

", "location":"uri", "locationName":"resourceArn" } @@ -2123,11 +2622,11 @@ "members":{ "logDriver":{ "shape":"LogDriver", - "documentation":"

The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default.

The supported log drivers are awslogs, fluentd, gelf, json-file, journald, logentries, syslog, and splunk.

Jobs that are running on Fargate resources are restricted to the awslogs and splunk log drivers.

awslogs

Specifies the Amazon CloudWatch Logs logging driver. For more information, see Using the awslogs log driver in the Batch User Guide and Amazon CloudWatch Logs logging driver in the Docker documentation.

fluentd

Specifies the Fluentd logging driver. For more information, including usage and options, see Fluentd logging driver in the Docker documentation.

gelf

Specifies the Graylog Extended Format (GELF) logging driver. For more information, including usage and options, see Graylog Extended Format logging driver in the Docker documentation.

journald

Specifies the journald logging driver. For more information, including usage and options, see Journald logging driver in the Docker documentation.

json-file

Specifies the JSON file logging driver. For more information, including usage and options, see JSON File logging driver in the Docker documentation.

splunk

Specifies the Splunk logging driver. For more information, including usage and options, see Splunk logging driver in the Docker documentation.

syslog

Specifies the syslog logging driver. For more information, including usage and options, see Syslog logging driver in the Docker documentation.

If you have a custom driver that's not listed earlier that you want to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that's available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you want to have included. However, Amazon Web Services doesn't currently support running modified copies of this software.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "documentation":"

The log driver to use for the container. The valid values that are listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default.

The supported log drivers are awslogs, fluentd, gelf, json-file, journald, logentries, syslog, and splunk.

Jobs that are running on Fargate resources are restricted to the awslogs and splunk log drivers.

awslogs

Specifies the Amazon CloudWatch Logs logging driver. For more information, see Using the awslogs log driver in the Batch User Guide and Amazon CloudWatch Logs logging driver in the Docker documentation.

fluentd

Specifies the Fluentd logging driver. For more information including usage and options, see Fluentd logging driver in the Docker documentation.

gelf

Specifies the Graylog Extended Format (GELF) logging driver. For more information including usage and options, see Graylog Extended Format logging driver in the Docker documentation.

journald

Specifies the journald logging driver. For more information including usage and options, see Journald logging driver in the Docker documentation.

json-file

Specifies the JSON file logging driver. For more information including usage and options, see JSON File logging driver in the Docker documentation.

splunk

Specifies the Splunk logging driver. For more information including usage and options, see Splunk logging driver in the Docker documentation.

syslog

Specifies the syslog logging driver. For more information including usage and options, see Syslog logging driver in the Docker documentation.

If you have a custom driver that's not listed earlier that you want to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that's available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you want to have included. However, Amazon Web Services doesn't currently support running modified copies of this software.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

" }, "options":{ "shape":"LogConfigurationOptionsMap", - "documentation":"

The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep \"Server API version\"

" + "documentation":"

The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version | grep \"Server API version\"

" }, "secretOptions":{ "shape":"SecretList", @@ -2170,7 +2669,7 @@ "documentation":"

The name of the volume to mount.

" } }, - "documentation":"

Details on a Docker volume mount point that's used in a job's container properties. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

" + "documentation":"

Details for a Docker volume mount point that's used in a job's container properties. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

" }, "MountPoints":{ "type":"list", @@ -2181,7 +2680,7 @@ "members":{ "assignPublicIp":{ "shape":"AssignPublicIp", - "documentation":"

Indicates whether the job should have a public IP address. For a job that is running on Fargate resources in a private subnet to send outbound traffic to the internet (for example, to pull container images), the private subnet requires a NAT gateway be attached to route requests to the internet. For more information, see Amazon ECS task networking. The default value is \"DISABLED\".

" + "documentation":"

Indicates whether the job has a public IP address. For a job that's running on Fargate resources in a private subnet to send outbound traffic to the internet (for example, to pull container images), the private subnet requires a NAT gateway be attached to route requests to the internet. For more information, see Amazon ECS task networking in the Amazon Elastic Container Service Developer Guide. The default value is \"DISABLED\".

" } }, "documentation":"

The network configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

" @@ -2202,7 +2701,7 @@ "documentation":"

The private IPv4 address for the network interface.

" } }, - "documentation":"

An object representing the elastic network interface for a multi-node parallel job node.

" + "documentation":"

An object that represents the elastic network interface for a multi-node parallel job node.

" }, "NetworkInterfaceList":{ "type":"list", @@ -2213,28 +2712,28 @@ "members":{ "nodeIndex":{ "shape":"Integer", - "documentation":"

The node index for the node. Node index numbering begins at zero. This index is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment variable.

" + "documentation":"

The node index for the node. Node index numbering starts at zero. This index is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment variable.

" }, "isMainNode":{ "shape":"Boolean", "documentation":"

Specifies whether the current node is the main node for a multi-node parallel job.

" } }, - "documentation":"

An object representing the details of a multi-node parallel job node.

" + "documentation":"

An object that represents the details of a multi-node parallel job node.

" }, "NodeOverrides":{ "type":"structure", "members":{ "numNodes":{ "shape":"Integer", - "documentation":"

The number of nodes to use with a multi-node parallel job. This value overrides the number of nodes that are specified in the job definition. To use this override:

  • There must be at least one node range in your job definition that has an open upper boundary (such as : or n:).

  • The lower boundary of the node range specified in the job definition must be fewer than the number of nodes specified in the override.

  • The main node index specified in the job definition must be fewer than the number of nodes specified in the override.

" + "documentation":"

The number of nodes to use with a multi-node parallel job. This value overrides the number of nodes that are specified in the job definition. To use this override, you must meet the following conditions:

  • There must be at least one node range in your job definition that has an open upper boundary, such as : or n:.

  • The lower boundary of the node range that's specified in the job definition must be fewer than the number of nodes specified in the override.

  • The main node index that's specified in the job definition must be fewer than the number of nodes specified in the override.

" }, "nodePropertyOverrides":{ "shape":"NodePropertyOverrides", "documentation":"

The node property overrides for the job.

" } }, - "documentation":"

Object representing any node overrides to a job definition that's used in a SubmitJob API operation.

This isn't applicable to jobs that are running on Fargate resources and shouldn't be provided; use containerOverrides instead.

" + "documentation":"

An object that represents any node overrides to a job definition that's used in a SubmitJob API operation.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs. Rather, use containerOverrides instead.

" }, "NodeProperties":{ "type":"structure", @@ -2246,7 +2745,7 @@ "members":{ "numNodes":{ "shape":"Integer", - "documentation":"

The number of nodes associated with a multi-node parallel job.

" + "documentation":"

The number of nodes that are associated with a multi-node parallel job.

" }, "mainNode":{ "shape":"Integer", @@ -2254,10 +2753,10 @@ }, "nodeRangeProperties":{ "shape":"NodeRangeProperties", - "documentation":"

A list of node ranges and their properties associated with a multi-node parallel job.

" + "documentation":"

A list of node ranges and their properties that are associated with a multi-node parallel job.

" } }, - "documentation":"

An object representing the node properties of a multi-node parallel job.

" + "documentation":"

An object that represents the node properties of a multi-node parallel job.

Node properties can't be specified for Amazon EKS based job definitions.

" }, "NodePropertiesSummary":{ "type":"structure", @@ -2268,14 +2767,14 @@ }, "numNodes":{ "shape":"Integer", - "documentation":"

The number of nodes associated with a multi-node parallel job.

" + "documentation":"

The number of nodes that are associated with a multi-node parallel job.

" }, "nodeIndex":{ "shape":"Integer", "documentation":"

The node index for the node. Node index numbering begins at zero. This index is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment variable.

" } }, - "documentation":"

An object representing the properties of a node that's associated with a multi-node parallel job.

" + "documentation":"

An object that represents the properties of a node that's associated with a multi-node parallel job.

" }, "NodePropertyOverride":{ "type":"structure", @@ -2287,10 +2786,10 @@ }, "containerOverrides":{ "shape":"ContainerOverrides", - "documentation":"

The overrides that should be sent to a node range.

" + "documentation":"

The overrides that are sent to a node range.

" } }, - "documentation":"

Object representing any node overrides to a job definition that's used in a SubmitJob API operation.

" + "documentation":"

The object that represents any node overrides to a job definition that's used in a SubmitJob API operation.

" }, "NodePropertyOverrides":{ "type":"list", @@ -2306,14 +2805,21 @@ "members":{ "targetNodes":{ "shape":"String", - "documentation":"

The range of nodes, using node index values. A range of 0:3 indicates nodes with index values of 0 through 3. If the starting range value is omitted (:n), then 0 is used to start the range. If the ending range value is omitted (n:), then the highest possible node index is used to end the range. Your accumulative node ranges must account for all nodes (0:n). You can nest node ranges, for example 0:10 and 4:5, in which case the 4:5 range properties override the 0:10 properties.

" + "documentation":"

The range of nodes, using node index values. A range of 0:3 indicates nodes with index values of 0 through 3. If the starting range value is omitted (:n), then 0 is used to start the range. If the ending range value is omitted (n:), then the highest possible node index is used to end the range. Your accumulative node ranges must account for all nodes (0:n). You can nest node ranges (for example, 0:10 and 4:5). In this case, the 4:5 range properties override the 0:10 properties.

" }, "container":{ "shape":"ContainerProperties", "documentation":"

The container details for the node range.

" } }, - "documentation":"

An object representing the properties of the node range for a multi-node parallel job.

" + "documentation":"

An object that represents the properties of the node range for a multi-node parallel job.

" + }, + "OrchestrationType":{ + "type":"string", + "enum":[ + "ECS", + "EKS" + ] }, "ParametersMap":{ "type":"map", @@ -2331,6 +2837,11 @@ "type":"list", "member":{"shape":"PlatformCapability"} }, + "Quantity":{ + "type":"string", + "max":256, + "min":1 + }, "RegisterJobDefinitionRequest":{ "type":"structure", "required":[ @@ -2352,15 +2863,15 @@ }, "schedulingPriority":{ "shape":"Integer", - "documentation":"

The scheduling priority for jobs that are submitted with this job definition. This will only affect jobs in job queues with a fair share policy. Jobs with a higher scheduling priority will be scheduled before jobs with a lower scheduling priority.

The minimum supported value is 0 and the maximum supported value is 9999.

" + "documentation":"

The scheduling priority for jobs that are submitted with this job definition. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority.

The minimum supported value is 0 and the maximum supported value is 9999.

" }, "containerProperties":{ "shape":"ContainerProperties", - "documentation":"

An object with various properties specific to single-node container-based jobs. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties.

If the job runs on Fargate resources, then you must not specify nodeProperties; use only containerProperties.

" + "documentation":"

An object with various properties specific to Amazon ECS based single-node container-based jobs. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties. This must not be specified for Amazon EKS based job definitions.

If the job runs on Fargate resources, then you must not specify nodeProperties; use only containerProperties.

" }, "nodeProperties":{ "shape":"NodeProperties", - "documentation":"

An object with various properties specific to multi-node parallel jobs. If you specify node properties for a job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel Jobs in the Batch User Guide. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties.

If the job runs on Fargate resources, then you must not specify nodeProperties; use containerProperties instead.

" + "documentation":"

An object with various properties specific to multi-node parallel jobs. If you specify node properties for a job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel Jobs in the Batch User Guide. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties.

If the job runs on Fargate resources, then you must not specify nodeProperties; use containerProperties instead.

If the job runs on Amazon EKS resources, then you must not specify nodeProperties.

" }, "retryStrategy":{ "shape":"RetryStrategy", @@ -2368,7 +2879,7 @@ }, "propagateTags":{ "shape":"Boolean", - "documentation":"

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

" + "documentation":"

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

If the job runs on Amazon EKS resources, then you must not specify propagateTags.

" }, "timeout":{ "shape":"JobTimeout", @@ -2380,7 +2891,11 @@ }, "platformCapabilities":{ "shape":"PlatformCapabilityList", - "documentation":"

The platform capabilities required by the job definition. If no value is specified, it defaults to EC2. To run the job on Fargate resources, specify FARGATE.

" + "documentation":"

The platform capabilities required by the job definition. If no value is specified, it defaults to EC2. To run the job on Fargate resources, specify FARGATE.

If the job runs on Amazon EKS resources, then you must not specify platformCapabilities.

" + }, + "eksProperties":{ + "shape":"EksProperties", + "documentation":"

An object with various properties that are specific to Amazon EKS based jobs. This must not be specified for Amazon ECS based job definitions.

" } }, "documentation":"

Contains the parameters for RegisterJobDefinition.

" @@ -2416,7 +2931,7 @@ "members":{ "value":{ "shape":"String", - "documentation":"

The quantity of the specified resource to reserve for the container. The values vary based on the type specified.

type=\"GPU\"

The number of physical GPUs to reserve for the container. The number of GPUs reserved for all containers in a job shouldn't exceed the number of available GPUs on the compute resource that the job is launched on.

GPUs are not available for jobs that are running on Fargate resources.

type=\"MEMORY\"

The memory hard limit (in MiB) present to the container. This parameter is supported for jobs that are running on EC2 resources. If your container attempts to exceed the memory specified, the container is terminated. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP) jobs. It must be specified for each node at least once. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory management in the Batch User Guide.

For jobs that are running on Fargate resources, then value is the hard limit (in MiB), and must match one of the supported values and the VCPU values must be one of the values supported for that memory value.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 or 0.5

value = 2048

VCPU = 0.25, 0.5, or 1

value = 3072

VCPU = 0.5, or 1

value = 4096

VCPU = 0.5, 1, or 2

value = 5120, 6144, or 7168

VCPU = 1 or 2

value = 8192

VCPU = 1, 2, or 4

value = 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

VCPU = 2 or 4

value = 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

VCPU = 4

type=\"VCPU\"

The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must specify at least one vCPU. This is required but can be specified in several places; it must be specified for each node at least once.

For jobs that are running on Fargate resources, then value must match one of the supported values and the MEMORY values must be one of the values supported for that VCPU value. The supported values are 0.25, 0.5, 1, 2, and 4

value = 0.25

MEMORY = 512, 1024, or 2048

value = 0.5

MEMORY = 1024, 2048, 3072, or 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

" + "documentation":"

The quantity of the specified resource to reserve for the container. The values vary based on the type specified.

type=\"GPU\"

The number of physical GPUs to reserve for the container. Make sure that the number of GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the compute resource that the job is launched on.

GPUs aren't available for jobs that are running on Fargate resources.

type=\"MEMORY\"

The memory hard limit (in MiB) present to the container. This parameter is supported for jobs that are running on EC2 resources. If your container attempts to exceed the memory specified, the container is terminated. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP) jobs. It must be specified for each node at least once. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory management in the Batch User Guide.

For jobs that are running on Fargate resources, then value is the hard limit (in MiB), and must match one of the supported values and the VCPU values must be one of the values supported for that memory value.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 or 0.5

value = 2048

VCPU = 0.25, 0.5, or 1

value = 3072

VCPU = 0.5, or 1

value = 4096

VCPU = 0.5, 1, or 2

value = 5120, 6144, or 7168

VCPU = 1 or 2

value = 8192

VCPU = 1, 2, 4, or 8

value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or 4

value = 16384

VCPU = 2, 4, or 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720

VCPU = 4

value = 20480, 24576, or 28672

VCPU = 4 or 8

value = 36864, 45056, 53248, or 61440

VCPU = 8

value = 32768, 40960, 49152, or 57344

VCPU = 8 or 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

VCPU = 16

type=\"VCPU\"

The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must specify at least one vCPU. This is required but can be specified in several places; it must be specified for each node at least once.

The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. For more information about Fargate quotas, see Fargate quotas in the Amazon Web Services General Reference.

For jobs that are running on Fargate resources, then value must match one of the supported values and the MEMORY values must be one of the values supported for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

MEMORY = 512, 1024, or 2048

value = 0.5

MEMORY = 1024, 2048, 3072, or 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440

value = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

" }, "type":{ "shape":"ResourceType", @@ -2453,10 +2968,10 @@ }, "evaluateOnExit":{ "shape":"EvaluateOnExitList", - "documentation":"

Array of up to 5 objects that specify conditions under which the job should be retried or failed. If this parameter is specified, then the attempts parameter must also be specified.

" + "documentation":"

Array of up to 5 objects that specify the conditions where jobs are retried or failed. If this parameter is specified, then the attempts parameter must also be specified. If none of the listed conditions match, then the job is retried.

" } }, - "documentation":"

The retry strategy associated with a job. For more information, see Automated job retries in the Batch User Guide.

" + "documentation":"

The retry strategy that's associated with a job. For more information, see Automated job retries in the Batch User Guide.

" }, "SchedulingPolicyDetail":{ "type":"structure", @@ -2516,10 +3031,10 @@ }, "valueFrom":{ "shape":"String", - "documentation":"

The secret to expose to the container. The supported values are either the full ARN of the Secrets Manager secret or the full ARN of the parameter in the Amazon Web Services Systems Manager Parameter Store.

If the Amazon Web Services Systems Manager Parameter Store parameter exists in the same Region as the job you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified.

" + "documentation":"

The secret to expose to the container. The supported values are either the full Amazon Resource Name (ARN) of the Secrets Manager secret or the full ARN of the parameter in the Amazon Web Services Systems Manager Parameter Store.

If the Amazon Web Services Systems Manager Parameter Store parameter exists in the same Region as the job you're launching, then you can use either the full Amazon Resource Name (ARN) or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified.

" } }, - "documentation":"

An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:

  • To inject sensitive data into your containers as environment variables, use the secrets container definition parameter.

  • To reference sensitive information in the log configuration of a container, use the secretOptions container definition parameter.

For more information, see Specifying sensitive data in the Batch User Guide.

" + "documentation":"

An object that represents the secret to expose to your container. Secrets can be exposed to a container in the following ways:

  • To inject sensitive data into your containers as environment variables, use the secrets container definition parameter.

  • To reference sensitive information in the log configuration of a container, use the secretOptions container definition parameter.

For more information, see Specifying sensitive data in the Batch User Guide.

" }, "SecretList":{ "type":"list", @@ -2541,7 +3056,7 @@ "members":{ "shareIdentifier":{ "shape":"String", - "documentation":"

A fair share identifier or fair share identifier prefix. If the string ends with an asterisk (*), this entry specifies the weight factor to use for fair share identifiers that start with that prefix. The list of fair share identifiers in a fair share policy cannot overlap. For example, you can't have one that specifies a shareIdentifier of UserA* and another that specifies a shareIdentifier of UserA-1.

There can be no more than 500 fair share identifiers active in a job queue.

The string is limited to 255 alphanumeric characters, optionally followed by an asterisk (*).

" + "documentation":"

A fair share identifier or fair share identifier prefix. If the string ends with an asterisk (*), this entry specifies the weight factor to use for fair share identifiers that start with that prefix. The list of fair share identifiers in a fair share policy can't overlap. For example, you can't have one that specifies a shareIdentifier of UserA* and another that specifies a shareIdentifier of UserA-1.

There can be no more than 500 fair share identifiers active in a job queue.

The string is limited to 255 alphanumeric characters, and can be followed by an asterisk (*).

" }, "weightFactor":{ "shape":"Float", @@ -2577,11 +3092,11 @@ }, "shareIdentifier":{ "shape":"String", - "documentation":"

The share identifier for the job. If the job queue does not have a scheduling policy, then this parameter must not be specified. If the job queue has a scheduling policy, then this parameter must be specified.

" + "documentation":"

The share identifier for the job. If the job queue doesn't have a scheduling policy, then this parameter must not be specified. If the job queue has a scheduling policy, then this parameter must be specified.

" }, "schedulingPriorityOverride":{ "shape":"Integer", - "documentation":"

The scheduling priority for the job. This will only affect jobs in job queues with a fair share policy. Jobs with a higher scheduling priority will be scheduled before jobs with a lower scheduling priority. This will override any scheduling priority in the job definition.

The minimum supported value is 0 and the maximum supported value is 9999.

" + "documentation":"

The scheduling priority for the job. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority. This overrides any scheduling priority in the job definition.

The minimum supported value is 0 and the maximum supported value is 9999.

" }, "arrayProperties":{ "shape":"ArrayProperties", @@ -2601,7 +3116,7 @@ }, "containerOverrides":{ "shape":"ContainerOverrides", - "documentation":"

A list of container overrides in the JSON format that specify the name of a container in the specified job definition and the overrides it receives. You can override the default command for a container, which is specified in the job definition or the Docker image, with a command override. You can also override existing environment variables on a container or add new environment variables to it with an environment override.

" + "documentation":"

An object with various properties that override the defaults for the job definition that specify the name of a container in the specified job definition and the overrides it should receive. You can override the default command for a container, which is specified in the job definition or the Docker image, with a command override. You can also override existing environment variables on a container or add new environment variables to it with an environment override.

" }, "nodeOverrides":{ "shape":"NodeOverrides", @@ -2622,6 +3137,10 @@ "tags":{ "shape":"TagrisTagsMap", "documentation":"

The tags that you apply to the job request to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging Amazon Web Services Resources in Amazon Web Services General Reference.

" + }, + "eksPropertiesOverride":{ + "shape":"EksPropertiesOverride", + "documentation":"

An object that can only be specified for jobs that are run on Amazon EKS resources with various properties that override defaults for the job definition.

" } }, "documentation":"

Contains the parameters for SubmitJob.

" @@ -2667,7 +3186,7 @@ "members":{ "resourceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the resource that tags are added to. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

", + "documentation":"

The Amazon Resource Name (ARN) of the resource that tags are added to. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs aren't supported.

", "location":"uri", "locationName":"resourceArn" }, @@ -2731,18 +3250,18 @@ "members":{ "containerPath":{ "shape":"String", - "documentation":"

The absolute file path in the container where the tmpfs volume is mounted.

" + "documentation":"

The absolute file path in the container where the tmpfs volume is mounted.

" }, "size":{ "shape":"Integer", - "documentation":"

The size (in MiB) of the tmpfs volume.

" + "documentation":"

The size (in MiB) of the tmpfs volume.

" }, "mountOptions":{ "shape":"StringList", - "documentation":"

The list of tmpfs volume mount options.

Valid values: \"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"

" + "documentation":"

The list of tmpfs volume mount options.

Valid values: \"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"

" } }, - "documentation":"

The container path, mount options, and size of the tmpfs mount.

This object isn't applicable to jobs that are running on Fargate resources.

" + "documentation":"

The container path, mount options, and size of the tmpfs mount.

This object isn't applicable to jobs that are running on Fargate resources.

" }, "TmpfsList":{ "type":"list", @@ -2784,7 +3303,7 @@ "members":{ "resourceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the resource from which to delete tags. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported.

", + "documentation":"

The Amazon Resource Name (ARN) of the resource from which to delete tags. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs aren't supported.

", "location":"uri", "locationName":"resourceArn" }, @@ -2816,7 +3335,7 @@ }, "unmanagedvCpus":{ "shape":"Integer", - "documentation":"

The maximum number of vCPUs expected to be used for an unmanaged compute environment. Do not specify this parameter for a managed compute environment. This parameter is only used for fair share scheduling to reserve vCPU capacity for new share identifiers. If this parameter is not provided for a fair share job queue, no vCPU capacity will be reserved.

" + "documentation":"

The maximum number of vCPUs expected to be used for an unmanaged compute environment. Don't specify this parameter for a managed compute environment. This parameter is only used for fair share scheduling to reserve vCPU capacity for new share identifiers. If this parameter isn't provided for a fair share job queue, no vCPU capacity is reserved.

" }, "computeResources":{ "shape":"ComputeResourceUpdate", @@ -2838,7 +3357,7 @@ "members":{ "computeEnvironmentName":{ "shape":"String", - "documentation":"

The name of the compute environment. It can be up to 128 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

" + "documentation":"

The name of the compute environment. It can be up to 128 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

" }, "computeEnvironmentArn":{ "shape":"String", @@ -2860,7 +3379,7 @@ }, "schedulingPolicyArn":{ "shape":"String", - "documentation":"

Amazon Resource Name (ARN) of the fair share scheduling policy. Once a job queue is created, the fair share scheduling policy can be replaced but not removed. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name . For example, aws:aws:batch:us-west-2:012345678910:scheduling-policy/MySchedulingPolicy.

" + "documentation":"

Amazon Resource Name (ARN) of the fair share scheduling policy. Once a job queue is created, the fair share scheduling policy can be replaced but not removed. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name . For example, aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy.

" }, "priority":{ "shape":"Integer", @@ -2895,10 +3414,10 @@ }, "jobExecutionTimeoutMinutes":{ "shape":"JobExecutionTimeoutMinutes", - "documentation":"

Specifies the job timeout, in minutes, when the compute environment infrastructure is updated. The default value is 30.

" + "documentation":"

Specifies the job timeout (in minutes) when the compute environment infrastructure is updated. The default value is 30.

" } }, - "documentation":"

Specifies the infrastructure update policy for the compute environment. For more information about infrastructure updates, see Infrastructure updates in the Batch User Guide.

" + "documentation":"

Specifies the infrastructure update policy for the compute environment. For more information about infrastructure updates, see Updating compute environments in the Batch User Guide.

" }, "UpdateSchedulingPolicyRequest":{ "type":"structure", @@ -2925,23 +3444,23 @@ "members":{ "host":{ "shape":"Host", - "documentation":"

The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers associated with it stop running.

This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.

" + "documentation":"

The contents of the host parameter determine whether your data volume persists on the host container instance and where it's stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running.

This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided.

" }, "name":{ "shape":"String", - "documentation":"

The name of the volume. It can be up to 255 letters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This name is referenced in the sourceVolume parameter of container definition mountPoints.

" + "documentation":"

The name of the volume. It can be up to 255 characters long. It can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_). This name is referenced in the sourceVolume parameter of container definition mountPoints.

" }, "efsVolumeConfiguration":{ "shape":"EFSVolumeConfiguration", - "documentation":"

This parameter is specified when you are using an Amazon Elastic File System file system for job storage. Jobs that are running on Fargate resources must specify a platformVersion of at least 1.4.0.

" + "documentation":"

This parameter is specified when you're using an Amazon Elastic File System file system for job storage. Jobs that are running on Fargate resources must specify a platformVersion of at least 1.4.0.

" } }, - "documentation":"

A data volume used in a job's container properties.

" + "documentation":"

A data volume that's used in a job's container properties.

" }, "Volumes":{ "type":"list", "member":{"shape":"Volume"} } }, - "documentation":"Batch

Using Batch, you can run batch computing workloads on the Amazon Web Services Cloud. Batch computing is a common means for developers, scientists, and engineers to access large amounts of compute resources. Batch uses the advantages of this computing workload to remove the undifferentiated heavy lifting of configuring and managing required infrastructure. At the same time, it also adopts a familiar batch computing software approach. Given these advantages, Batch can help you to efficiently provision resources in response to jobs submitted, thus effectively helping you to eliminate capacity constraints, reduce compute costs, and deliver your results more quickly.

As a fully managed service, Batch can run batch computing workloads of any scale. Batch automatically provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific workloads. With Batch, there's no need to install or manage batch computing software. This means that you can focus your time and energy on analyzing results and solving your specific problems.

" + "documentation":"Batch

Using Batch, you can run batch computing workloads on the Amazon Web Services Cloud. Batch computing is a common means for developers, scientists, and engineers to access large amounts of compute resources. Batch uses the advantages of the batch computing to remove the undifferentiated heavy lifting of configuring and managing required infrastructure. At the same time, it also adopts a familiar batch computing software approach. You can use Batch to efficiently provision resources d, and work toward eliminating capacity constraints, reducing your overall compute costs, and delivering results more quickly.

As a fully managed service, Batch can run batch computing workloads of any scale. Batch automatically provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific workloads. With Batch, there's no need to install or manage batch computing software. This means that you can focus on analyzing results and solving your specific problems instead.

" } diff --git a/botocore/data/billingconductor/2021-07-30/endpoint-rule-set-1.json b/botocore/data/billingconductor/2021-07-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..c5e6c899 --- /dev/null +++ b/botocore/data/billingconductor/2021-07-30/endpoint-rule-set-1.json @@ -0,0 +1,591 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "billingconductor" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "billingconductor" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "billingconductor" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "billingconductor" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://billingconductor.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "billingconductor" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://billingconductor.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/billingconductor/2021-07-30/examples-1.json b/botocore/data/billingconductor/2021-07-30/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/billingconductor/2021-07-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/billingconductor/2021-07-30/paginators-1.json b/botocore/data/billingconductor/2021-07-30/paginators-1.json index ec00d52f..2ca4d75f 100644 --- a/botocore/data/billingconductor/2021-07-30/paginators-1.json +++ b/botocore/data/billingconductor/2021-07-30/paginators-1.json @@ -69,6 +69,12 @@ ], "output_token": "NextToken", "result_key": "AssociatedResources" + }, + "ListCustomLineItemVersions": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "CustomLineItemVersions" } } } diff --git a/botocore/data/billingconductor/2021-07-30/service-2.json b/botocore/data/billingconductor/2021-07-30/service-2.json index 7341b585..ecdacc3a 100644 --- a/botocore/data/billingconductor/2021-07-30/service-2.json +++ b/botocore/data/billingconductor/2021-07-30/service-2.json @@ -247,7 +247,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Deletes the pricing rule identified by the input Amazon Resource Name (ARN).

", + "documentation":"

Deletes the pricing rule that's identified by the input Amazon Resource Name (ARN).

", "idempotent":true }, "DisassociateAccounts":{ @@ -306,7 +306,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Amazon Web Services Billing Conductor is in beta release and is subject to change. Your use of Amazon Web Services Billing Conductor is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

This is a paginated call to list linked accounts that are linked to the payer account for the specified time period. If no information is provided, the current billing period is used. The response will optionally include the billing group associated with the linked account.

" + "documentation":"

This is a paginated call to list linked accounts that are linked to the payer account for the specified time period. If no information is provided, the current billing period is used. The response will optionally include the billing group that's associated with the linked account.

" }, "ListBillingGroupCostReports":{ "name":"ListBillingGroupCostReports", @@ -344,6 +344,23 @@ ], "documentation":"

A paginated call to retrieve a list of billing groups for the given billing period. If you don't provide a billing group, the current billing period is used.

" }, + "ListCustomLineItemVersions":{ + "name":"ListCustomLineItemVersions", + "http":{ + "method":"POST", + "requestUri":"/list-custom-line-item-versions", + "responseCode":200 + }, + "input":{"shape":"ListCustomLineItemVersionsInput"}, + "output":{"shape":"ListCustomLineItemVersionsOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

A paginated call to get a list of all custom line item versions.

" + }, "ListCustomLineItems":{ "name":"ListCustomLineItems", "http":{ @@ -395,7 +412,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

A list of the pricing plans associated with a pricing rule.

" + "documentation":"

A list of the pricing plans that are associated with a pricing rule.

" }, "ListPricingRules":{ "name":"ListPricingRules", @@ -430,7 +447,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists the pricing rules associated with a pricing plan.

" + "documentation":"

Lists the pricing rules that are associated with a pricing plan.

" }, "ListResourcesAssociatedToCustomLineItem":{ "name":"ListResourcesAssociatedToCustomLineItem", @@ -448,7 +465,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

List the resources associated to a custom line item.

" + "documentation":"

List the resources that are associated to a custom line item.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -623,7 +640,7 @@ "documentation":"

The Amazon Web Services account email.

" } }, - "documentation":"

Amazon Web Services Billing Conductor is in beta release and is subject to change. Your use of Amazon Web Services Billing Conductor is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

A representation of a linked account.

" + "documentation":"

A representation of a linked account.

" }, "AccountEmail":{ "type":"string", @@ -717,11 +734,11 @@ "members":{ "Message":{ "shape":"String", - "documentation":"

The reason the resource association failed.

" + "documentation":"

The reason why the resource association failed.

" }, "Reason":{ "shape":"AssociateResourceErrorReason", - "documentation":"

A static error code that used to classify the type of failure.

" + "documentation":"

A static error code that's used to classify the type of failure.

" } }, "documentation":"

A representation of a resource association error.

" @@ -732,14 +749,15 @@ "INVALID_ARN", "SERVICE_LIMIT_EXCEEDED", "ILLEGAL_CUSTOMLINEITEM", - "INTERNAL_SERVER_EXCEPTION" + "INTERNAL_SERVER_EXCEPTION", + "INVALID_BILLING_PERIOD_RANGE" ] }, "AssociateResourceResponseElement":{ "type":"structure", "members":{ "Arn":{ - "shape":"CustomLineItemArn", + "shape":"CustomLineItemAssociationElement", "documentation":"

The resource ARN that was associated to the custom line item.

" }, "Error":{ @@ -755,7 +773,7 @@ }, "Association":{ "type":"string", - "pattern":"((arn:aws:billingconductor::[0-9]{12}:billinggroup/)?[0-9]{12}|MONITORED|UNMONITORED)" + "pattern":"((arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/)?[0-9]{12}|MONITORED|UNMONITORED)" }, "BatchAssociateResourcesToCustomLineItemInput":{ "type":"structure", @@ -819,9 +837,13 @@ } } }, + "BillingEntity":{ + "type":"string", + "pattern":"[a-zA-Z0-9 ]+" + }, "BillingGroupArn":{ "type":"string", - "pattern":"(arn:aws:billingconductor::[0-9]{12}:billinggroup/)?[0-9]{12}" + "pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/)?[0-9]{12}" }, "BillingGroupArnList":{ "type":"list", @@ -871,7 +893,7 @@ }, "BillingGroupFullArn":{ "type":"string", - "pattern":"arn:aws:billingconductor::[0-9]{12}:billinggroup/[0-9]{12}" + "pattern":"arn:aws(-cn)?:billingconductor::[0-9]{12}:billinggroup/[0-9]{12}" }, "BillingGroupList":{ "type":"list", @@ -882,7 +904,7 @@ "members":{ "Name":{ "shape":"BillingGroupName", - "documentation":"

The billing group's name.

" + "documentation":"

The name of the billing group.

" }, "Arn":{ "shape":"BillingGroupArn", @@ -890,7 +912,7 @@ }, "Description":{ "shape":"BillingGroupDescription", - "documentation":"

The billing group description.

" + "documentation":"

The description of the billing group.

" }, "PrimaryAccountId":{ "shape":"AccountId", @@ -903,11 +925,11 @@ }, "CreationTime":{ "shape":"Instant", - "documentation":"

The time the billing group was created.

" + "documentation":"

The time when the billing group was created.

" }, "LastModifiedTime":{ "shape":"Instant", - "documentation":"

The most recent time the billing group was modified.

" + "documentation":"

The most recent time when the billing group was modified.

" }, "Status":{ "shape":"BillingGroupStatus", @@ -951,7 +973,7 @@ "members":{ "PricingPlanArn":{ "shape":"PricingPlanFullArn", - "documentation":"

The Amazon Resource Name (ARN) of the pricing plan used to compute the Amazon Web Services charges for a billing group.

" + "documentation":"

The Amazon Resource Name (ARN) of the pricing plan that's used to compute the Amazon Web Services charges for a billing group.

" } }, "documentation":"

The preferences and settings that will be used to compute the Amazon Web Services charges for a billing group.

" @@ -972,6 +994,10 @@ "ResourceType":{ "shape":"String", "documentation":"

Type of the resource in use.

" + }, + "Reason":{ + "shape":"ConflictExceptionReason", + "documentation":"

Reason for the inconsistent state.

" } }, "documentation":"

You can cause an inconsistent state by updating or deleting a resource.

", @@ -981,6 +1007,16 @@ }, "exception":true }, + "ConflictExceptionReason":{ + "type":"string", + "enum":[ + "RESOURCE_NAME_CONFLICT", + "PRICING_RULE_IN_PRICING_PLAN_CONFLICT", + "PRICING_PLAN_ATTACHED_TO_BILLING_GROUP_DELETE_CONFLICT", + "PRICING_RULE_ATTACHED_TO_PRICING_PLAN_DELETE_CONFLICT", + "WRITE_CONFLICT_RETRY" + ] + }, "CreateBillingGroupInput":{ "type":"structure", "required":[ @@ -1014,7 +1050,7 @@ }, "Description":{ "shape":"BillingGroupDescription", - "documentation":"

The billing group description.

" + "documentation":"

The description of the billing group.

" }, "Tags":{ "shape":"TagMap", @@ -1082,6 +1118,17 @@ } } }, + "CreateFreeTierConfig":{ + "type":"structure", + "required":["Activated"], + "members":{ + "Activated":{ + "shape":"TieringActivated", + "documentation":"

Activate or deactivate Amazon Web Services Free Tier.

" + } + }, + "documentation":"

The possible Amazon Web Services Free Tier configurations.

" + }, "CreatePricingPlanInput":{ "type":"structure", "required":["Name"], @@ -1095,11 +1142,11 @@ }, "Name":{ "shape":"PricingPlanName", - "documentation":"

The pricing plan name. The names must be unique to each pricing plan.

" + "documentation":"

The name of the pricing plan. The names must be unique to each pricing plan.

" }, "Description":{ "shape":"PricingPlanDescription", - "documentation":"

The pricing plan description.

" + "documentation":"

The description of the pricing plan.

" }, "PricingRuleArns":{ "shape":"PricingRuleArnsInput", @@ -1125,13 +1172,12 @@ "required":[ "Name", "Scope", - "Type", - "ModifierPercentage" + "Type" ], "members":{ "ClientToken":{ "shape":"ClientToken", - "documentation":"

The token that is needed to support idempotency. Idempotency isn't currently supported, but will be implemented in a future update.

", + "documentation":"

The token that's needed to support idempotency. Idempotency isn't currently supported, but will be implemented in a future update.

", "idempotencyToken":true, "location":"header", "locationName":"X-Amzn-Client-Token" @@ -1146,7 +1192,7 @@ }, "Scope":{ "shape":"PricingRuleScope", - "documentation":"

The scope of pricing rule that indicates if it is globally applicable, or is service-specific.

" + "documentation":"

The scope of pricing rule that indicates if it's globally applicable, or it's service-specific.

" }, "Type":{ "shape":"PricingRuleType", @@ -1154,7 +1200,7 @@ }, "ModifierPercentage":{ "shape":"ModifierPercentage", - "documentation":"

A percentage modifier applied on the public pricing rates.

" + "documentation":"

A percentage modifier that's applied on the public pricing rates.

" }, "Service":{ "shape":"Service", @@ -1163,6 +1209,14 @@ "Tags":{ "shape":"TagMap", "documentation":"

A map that contains tag keys and tag values that are attached to a pricing rule.

" + }, + "BillingEntity":{ + "shape":"BillingEntity", + "documentation":"

The seller of services provided by Amazon Web Services, their affiliates, or third-party providers selling services via Amazon Web Services Marketplace.

" + }, + "Tiering":{ + "shape":"CreateTieringInput", + "documentation":"

The set of tiering configurations for the pricing rule.

" } } }, @@ -1175,6 +1229,17 @@ } } }, + "CreateTieringInput":{ + "type":"structure", + "required":["FreeTier"], + "members":{ + "FreeTier":{ + "shape":"CreateFreeTierConfig", + "documentation":"

The possible Amazon Web Services Free Tier configurations.

" + } + }, + "documentation":"

The set of tiering configurations for the pricing rule.

" + }, "Currency":{"type":"string"}, "CurrencyCode":{ "type":"string", @@ -1185,7 +1250,7 @@ }, "CustomLineItemArn":{ "type":"string", - "pattern":"(arn:aws:billingconductor::[0-9]{12}:customlineitem/)?[a-zA-Z0-9]{10}" + "pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:customlineitem/)?[a-zA-Z0-9]{10}" }, "CustomLineItemArns":{ "type":"list", @@ -1195,7 +1260,7 @@ }, "CustomLineItemAssociationElement":{ "type":"string", - "pattern":"(arn:aws:billingconductor::[0-9]{12}:(customlineitem|billinggroup)/)?[a-zA-Z0-9]{10,12}" + "pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:(customlineitem|billinggroup)/)?[a-zA-Z0-9]{10,12}" }, "CustomLineItemAssociationsList":{ "type":"list", @@ -1217,10 +1282,7 @@ }, "CustomLineItemBillingPeriodRange":{ "type":"structure", - "required":[ - "InclusiveStartBillingPeriod", - "ExclusiveEndBillingPeriod" - ], + "required":["InclusiveStartBillingPeriod"], "members":{ "InclusiveStartBillingPeriod":{ "shape":"BillingPeriod", @@ -1273,7 +1335,7 @@ "documentation":"

The custom line item's fixed charge value in USD.

" } }, - "documentation":"

A representation of the charge details associated with a flat custom line item.

" + "documentation":"

A representation of the charge details that are associated with a flat custom line item.

" }, "CustomLineItemList":{ "type":"list", @@ -1304,7 +1366,7 @@ }, "ProductCode":{ "shape":"CustomLineItemProductCode", - "documentation":"

The product code associated with the custom line item.

" + "documentation":"

The product code that's associated with the custom line item.

" }, "BillingGroupArn":{ "shape":"BillingGroupArn", @@ -1316,7 +1378,7 @@ }, "LastModifiedTime":{ "shape":"Instant", - "documentation":"

The most recent time the custom line item was modified.

" + "documentation":"

The most recent time when the custom line item was modified.

" }, "AssociationSize":{ "shape":"NumberOfAssociations", @@ -1351,7 +1413,7 @@ "documentation":"

A list of resource ARNs to associate to the percentage custom line item.

" } }, - "documentation":"

A representation of the charge details associated with a percentage custom line item.

" + "documentation":"

A representation of the charge details that are associated with a percentage custom line item.

" }, "CustomLineItemPercentageChargeValue":{ "type":"double", @@ -1378,13 +1440,64 @@ "FEE" ] }, + "CustomLineItemVersionList":{ + "type":"list", + "member":{"shape":"CustomLineItemVersionListElement"} + }, + "CustomLineItemVersionListElement":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"CustomLineItemName", + "documentation":"

The name of the custom line item.

" + }, + "ChargeDetails":{"shape":"ListCustomLineItemChargeDetails"}, + "CurrencyCode":{ + "shape":"CurrencyCode", + "documentation":"

The charge value currency of the custom line item.

" + }, + "Description":{ + "shape":"CustomLineItemDescription", + "documentation":"

The description of the custom line item.

" + }, + "ProductCode":{ + "shape":"CustomLineItemProductCode", + "documentation":"

The product code that’s associated with the custom line item.

" + }, + "BillingGroupArn":{ + "shape":"BillingGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the billing group that the custom line item applies to.

" + }, + "CreationTime":{ + "shape":"Instant", + "documentation":"

The time when the custom line item version was created.

" + }, + "LastModifiedTime":{ + "shape":"Instant", + "documentation":"

The most recent time that the custom line item version was modified.

" + }, + "AssociationSize":{ + "shape":"NumberOfAssociations", + "documentation":"

The number of resources that are associated with the custom line item.

" + }, + "StartBillingPeriod":{ + "shape":"BillingPeriod", + "documentation":"

The start billing period of the custom line item version.

" + }, + "EndBillingPeriod":{ + "shape":"BillingPeriod", + "documentation":"

The end billing period of the custom line item version.

" + } + }, + "documentation":"

A representation of a custom line item version.

" + }, "DeleteBillingGroupInput":{ "type":"structure", "required":["Arn"], "members":{ "Arn":{ "shape":"BillingGroupArn", - "documentation":"

The Amazon Resource Name (ARN) of the billing group you're deleting.

" + "documentation":"

The Amazon Resource Name (ARN) of the billing group that you're deleting.

" } } }, @@ -1423,7 +1536,7 @@ "members":{ "Arn":{ "shape":"PricingPlanArn", - "documentation":"

The Amazon Resource Name (ARN) of the pricing plan you're deleting.

" + "documentation":"

The Amazon Resource Name (ARN) of the pricing plan that you're deleting.

" } } }, @@ -1442,7 +1555,7 @@ "members":{ "Arn":{ "shape":"PricingRuleArn", - "documentation":"

The Amazon Resource Name (ARN) of the pricing rule you are deleting.

" + "documentation":"

The Amazon Resource Name (ARN) of the pricing rule that you are deleting.

" } } }, @@ -1511,12 +1624,12 @@ "type":"structure", "members":{ "Arn":{ - "shape":"CustomLineItemArn", + "shape":"CustomLineItemAssociationElement", "documentation":"

The resource ARN that was disassociated from the custom line item.

" }, "Error":{ "shape":"AssociateResourceError", - "documentation":"

An AssociateResourceError shown if the resource disassociation fails.

" + "documentation":"

An AssociateResourceError that's shown if the resource disassociation fails.

" } }, "documentation":"

A resource disassociation result for a percentage custom line item.

" @@ -1525,6 +1638,17 @@ "type":"list", "member":{"shape":"DisassociateResourceResponseElement"} }, + "FreeTierConfig":{ + "type":"structure", + "required":["Activated"], + "members":{ + "Activated":{ + "shape":"TieringActivated", + "documentation":"

Activate or deactivate Amazon Web Services Free Tier application.

" + } + }, + "documentation":"

The possible Amazon Web Services Free Tier configurations.

" + }, "Instant":{"type":"long"}, "InternalServerException":{ "type":"structure", @@ -1566,11 +1690,11 @@ }, "Filters":{ "shape":"ListAccountAssociationsFilter", - "documentation":"

The filter on the account ID of the linked account, or any of the following:

MONITORED: linked accounts that are associated to billing groups.

UNMONITORED: linked accounts that are not associated to billing groups.

Billing Group Arn: linked accounts that are associated to the provided billing group Arn.

" + "documentation":"

The filter on the account ID of the linked account, or any of the following:

MONITORED: linked accounts that are associated to billing groups.

UNMONITORED: linked accounts that aren't associated to billing groups.

Billing Group Arn: linked accounts that are associated to the provided billing group Arn.

" }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to retrieve accounts.

" + "documentation":"

The pagination token that's used on subsequent calls to retrieve accounts.

" } } }, @@ -1583,7 +1707,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to get accounts.

" + "documentation":"

The pagination token that's used on subsequent calls to get accounts.

" } } }, @@ -1610,7 +1734,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to get reports.

" + "documentation":"

The pagination token that's used on subsequent calls to get reports.

" }, "Filters":{ "shape":"ListBillingGroupCostReportsFilter", @@ -1627,7 +1751,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to get reports.

" + "documentation":"

The pagination token that's used on subsequent calls to get reports.

" } } }, @@ -1658,7 +1782,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to get billing groups.

" + "documentation":"

The pagination token that's used on subsequent calls to get billing groups.

" }, "Filters":{ "shape":"ListBillingGroupsFilter", @@ -1675,7 +1799,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to get billing groups.

" + "documentation":"

The pagination token that's used on subsequent calls to get billing groups.

" } } }, @@ -1707,7 +1831,7 @@ "documentation":"

The custom line item's fixed charge value in USD.

" } }, - "documentation":"

A representation of the charge details associated with a flat custom line item.

" + "documentation":"

A representation of the charge details that are associated with a flat custom line item.

" }, "ListCustomLineItemPercentageChargeDetails":{ "type":"structure", @@ -1718,7 +1842,66 @@ "documentation":"

The custom line item's percentage value. This will be multiplied against the combined value of its associated resources to determine its charge value.

" } }, - "documentation":"

A representation of the charge details associated with a percentage custom line item.

" + "documentation":"

A representation of the charge details that are associated with a percentage custom line item.

" + }, + "ListCustomLineItemVersionsBillingPeriodRangeFilter":{ + "type":"structure", + "members":{ + "StartBillingPeriod":{ + "shape":"BillingPeriod", + "documentation":"

The inclusive start billing period that defines a billing period range where a custom line item version is applied.

" + }, + "EndBillingPeriod":{ + "shape":"BillingPeriod", + "documentation":"

The exclusive end billing period that defines a billing period range where a custom line item version is applied.

" + } + }, + "documentation":"

A billing period filter that specifies the custom line item versions to retrieve.

" + }, + "ListCustomLineItemVersionsFilter":{ + "type":"structure", + "members":{ + "BillingPeriodRange":{ + "shape":"ListCustomLineItemVersionsBillingPeriodRangeFilter", + "documentation":"

The billing period range in which the custom line item version is applied.

" + } + }, + "documentation":"

A filter that specifies the billing period range where the custom line item versions reside.

" + }, + "ListCustomLineItemVersionsInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"CustomLineItemArn", + "documentation":"

The Amazon Resource Name (ARN) for the custom line item.

" + }, + "MaxResults":{ + "shape":"MaxCustomLineItemResults", + "documentation":"

The maximum number of custom line item versions to retrieve.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

The pagination token that's used on subsequent calls to retrieve custom line item versions.

" + }, + "Filters":{ + "shape":"ListCustomLineItemVersionsFilter", + "documentation":"

A ListCustomLineItemVersionsFilter that specifies the billing period range in which the custom line item versions are applied.

" + } + } + }, + "ListCustomLineItemVersionsOutput":{ + "type":"structure", + "members":{ + "CustomLineItemVersions":{ + "shape":"CustomLineItemVersionList", + "documentation":"

A list of CustomLineItemVersionListElements that are received.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

The pagination token that's used on subsequent calls to retrieve custom line item versions.

" + } + } }, "ListCustomLineItemsFilter":{ "type":"structure", @@ -1746,12 +1929,12 @@ "documentation":"

The preferred billing period to get custom line items (FFLIs).

" }, "MaxResults":{ - "shape":"MaxBillingGroupResults", + "shape":"MaxCustomLineItemResults", "documentation":"

The maximum number of billing groups to retrieve.

" }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to get custom line items (FFLIs).

" + "documentation":"

The pagination token that's used on subsequent calls to get custom line items (FFLIs).

" }, "Filters":{ "shape":"ListCustomLineItemsFilter", @@ -1768,7 +1951,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to get custom line items (FFLIs).

" + "documentation":"

The pagination token that's used on subsequent calls to get custom line items (FFLIs).

" } } }, @@ -1807,7 +1990,7 @@ }, "PricingPlanArns":{ "shape":"PricingPlanArns", - "documentation":"

The list containing pricing plans associated with the requested pricing rule.

" + "documentation":"

The list containing pricing plans that are associated with the requested pricing rule.

" }, "NextToken":{ "shape":"Token", @@ -1842,7 +2025,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent call to get pricing plans.

" + "documentation":"

The pagination token that's used on subsequent call to get pricing plans.

" } } }, @@ -1859,7 +2042,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to get pricing plans.

" + "documentation":"

The pagination token that's used on subsequent calls to get pricing plans.

" } } }, @@ -1898,7 +2081,7 @@ }, "PricingRuleArns":{ "shape":"PricingRuleArns", - "documentation":"

A list containing pricing rules associated with the requested pricing plan.

" + "documentation":"

A list containing pricing rules that are associated with the requested pricing plan.

" }, "NextToken":{ "shape":"Token", @@ -1933,7 +2116,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent call to get pricing rules.

" + "documentation":"

The pagination token that's used on subsequent call to get pricing rules.

" } } }, @@ -1950,7 +2133,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

The pagination token used on subsequent calls to get pricing rules.

" + "documentation":"

The pagination token that's used on subsequent calls to get pricing rules.

" } } }, @@ -1982,7 +2165,7 @@ }, "NextToken":{ "shape":"Token", - "documentation":"

(Optional) The pagination token returned by a previous request.

" + "documentation":"

(Optional) The pagination token that's returned by a previous request.

" }, "Filters":{ "shape":"ListResourcesAssociatedToCustomLineItemFilter", @@ -2017,6 +2200,10 @@ "Relationship":{ "shape":"CustomLineItemRelationship", "documentation":"

The type of relationship between the custom line item and the associated resource.

" + }, + "EndBillingPeriod":{ + "shape":"BillingPeriod", + "documentation":"

The end billing period of the associated resource.

" } }, "documentation":"

A representation of a resource association for a custom line item.

" @@ -2095,7 +2282,7 @@ }, "PricingPlanArn":{ "type":"string", - "pattern":"(arn:aws:billingconductor::[0-9]{12}:pricingplan/)?[a-zA-Z0-9]{10}" + "pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/)?[a-zA-Z0-9]{10}" }, "PricingPlanArns":{ "type":"list", @@ -2111,7 +2298,7 @@ }, "PricingPlanFullArn":{ "type":"string", - "pattern":"arn:aws:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10}" + "pattern":"arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingplan/[a-zA-Z0-9]{10}" }, "PricingPlanList":{ "type":"list", @@ -2134,15 +2321,15 @@ }, "Size":{ "shape":"NumberOfAssociatedPricingRules", - "documentation":"

The pricing rules count currently associated with this pricing plan list element.

" + "documentation":"

The pricing rules count that's currently associated with this pricing plan list element.

" }, "CreationTime":{ "shape":"Instant", - "documentation":"

The time the pricing plan was created.

" + "documentation":"

The time when the pricing plan was created.

" }, "LastModifiedTime":{ "shape":"Instant", - "documentation":"

The most recent time the pricing plan was modified.

" + "documentation":"

The most recent time when the pricing plan was modified.

" } }, "documentation":"

A representation of a pricing plan.

" @@ -2156,7 +2343,7 @@ }, "PricingRuleArn":{ "type":"string", - "pattern":"(arn:aws:billingconductor::[0-9]{12}:pricingrule/)?[a-zA-Z0-9]{10}" + "pattern":"(arn:aws(-cn)?:billingconductor::[0-9]{12}:pricingrule/)?[a-zA-Z0-9]{10}" }, "PricingRuleArns":{ "type":"list", @@ -2223,11 +2410,19 @@ }, "CreationTime":{ "shape":"Instant", - "documentation":"

The time the pricing rule was created.

" + "documentation":"

The time when the pricing rule was created.

" }, "LastModifiedTime":{ "shape":"Instant", - "documentation":"

The most recent time the pricing rule was modified.

" + "documentation":"

The most recent time when the pricing rule was modified.

" + }, + "BillingEntity":{ + "shape":"BillingEntity", + "documentation":"

The seller of services provided by Amazon Web Services, their affiliates, or third-party providers selling services via Amazon Web Services Marketplace.

" + }, + "Tiering":{ + "shape":"Tiering", + "documentation":"

The set of tiering configurations for the pricing rule.

" } }, "documentation":"

A representation of a pricing rule.

" @@ -2243,14 +2438,16 @@ "type":"string", "enum":[ "GLOBAL", - "SERVICE" + "SERVICE", + "BILLING_ENTITY" ] }, "PricingRuleType":{ "type":"string", "enum":[ "MARKUP", - "DISCOUNT" + "DISCOUNT", + "TIERING" ] }, "ProformaCost":{"type":"string"}, @@ -2386,6 +2583,21 @@ }, "exception":true }, + "Tiering":{ + "type":"structure", + "required":["FreeTier"], + "members":{ + "FreeTier":{ + "shape":"FreeTierConfig", + "documentation":"

The possible Amazon Web Services Free Tier configurations.

" + } + }, + "documentation":"

The set of tiering configurations for the pricing rule.

" + }, + "TieringActivated":{ + "type":"boolean", + "box":true + }, "Token":{"type":"string"}, "UntagResourceRequest":{ "type":"structure", @@ -2468,7 +2680,7 @@ }, "LastModifiedTime":{ "shape":"Instant", - "documentation":"

The most recent time the billing group was modified.

" + "documentation":"

The most recent time when the billing group was modified.

" }, "Status":{ "shape":"BillingGroupStatus", @@ -2503,7 +2715,7 @@ "documentation":"

The custom line item's new fixed charge value in USD.

" } }, - "documentation":"

A representation of the new charge details associated with a flat custom line item.

" + "documentation":"

A representation of the new charge details that are associated with a flat custom line item.

" }, "UpdateCustomLineItemInput":{ "type":"structure", @@ -2514,7 +2726,7 @@ "documentation":"

The ARN of the custom line item to be updated.

" }, "Name":{ - "shape":"BillingGroupName", + "shape":"CustomLineItemName", "documentation":"

The new name for the custom line item.

" }, "Description":{ @@ -2553,7 +2765,7 @@ }, "LastModifiedTime":{ "shape":"Instant", - "documentation":"

The most recent time the custom line item was modified.

" + "documentation":"

The most recent time when the custom line item was modified.

" }, "AssociationSize":{ "shape":"NumberOfAssociations", @@ -2570,7 +2782,18 @@ "documentation":"

The custom line item's new percentage value. This will be multiplied against the combined value of its associated resources to determine its charge value.

" } }, - "documentation":"

A representation of the new charge details associated with a percentage custom line item.

" + "documentation":"

A representation of the new charge details that are associated with a percentage custom line item.

" + }, + "UpdateFreeTierConfig":{ + "type":"structure", + "required":["Activated"], + "members":{ + "Activated":{ + "shape":"TieringActivated", + "documentation":"

Activate or deactivate application of Amazon Web Services Free Tier.

" + } + }, + "documentation":"

The possible Amazon Web Services Free Tier configurations.

" }, "UpdatePricingPlanInput":{ "type":"structure", @@ -2578,7 +2801,7 @@ "members":{ "Arn":{ "shape":"PricingPlanArn", - "documentation":"

The Amazon Resource Name (ARN) of the pricing plan you're updating.

" + "documentation":"

The Amazon Resource Name (ARN) of the pricing plan that you're updating.

" }, "Name":{ "shape":"PricingPlanName", @@ -2586,7 +2809,7 @@ }, "Description":{ "shape":"PricingPlanDescription", - "documentation":"

The pricing plan description.

" + "documentation":"

The description of the pricing plan.

" } } }, @@ -2607,11 +2830,11 @@ }, "Size":{ "shape":"NumberOfAssociatedPricingRules", - "documentation":"

The pricing rules count currently associated with this pricing plan list.

" + "documentation":"

The pricing rules count that's currently associated with this pricing plan list.

" }, "LastModifiedTime":{ "shape":"Instant", - "documentation":"

The most recent time the pricing plan was modified.

" + "documentation":"

The most recent time when the pricing plan was modified.

" } } }, @@ -2638,6 +2861,10 @@ "ModifierPercentage":{ "shape":"ModifierPercentage", "documentation":"

The new modifier to show pricing plan rates as a percentage.

" + }, + "Tiering":{ + "shape":"UpdateTieringInput", + "documentation":"

The set of tiering configurations for the pricing rule.

" } } }, @@ -2658,7 +2885,7 @@ }, "Scope":{ "shape":"PricingRuleScope", - "documentation":"

The scope of pricing rule that indicates if it is globally applicable, or is service-specific.

" + "documentation":"

The scope of pricing rule that indicates if it's globally applicable, or it's service-specific.

" }, "Type":{ "shape":"PricingRuleType", @@ -2679,9 +2906,28 @@ "LastModifiedTime":{ "shape":"Instant", "documentation":"

The most recent time the pricing rule was modified.

" + }, + "BillingEntity":{ + "shape":"BillingEntity", + "documentation":"

The seller of services provided by Amazon Web Services, their affiliates, or third-party providers selling services via Amazon Web Services Marketplace.

" + }, + "Tiering":{ + "shape":"UpdateTieringInput", + "documentation":"

The set of tiering configurations for the pricing rule.

" } } }, + "UpdateTieringInput":{ + "type":"structure", + "required":["FreeTier"], + "members":{ + "FreeTier":{ + "shape":"UpdateFreeTierConfig", + "documentation":"

The possible Amazon Web Services Free Tier configurations.

" + } + }, + "documentation":"

The set of tiering configurations for the pricing rule.

" + }, "ValidationException":{ "type":"structure", "required":["Message"], @@ -2771,9 +3017,18 @@ "MISSING_LINKED_ACCOUNT_IDS", "MULTIPLE_LINKED_ACCOUNT_IDS", "MISSING_PRICING_PLAN_ARN", - "MULTIPLE_PRICING_PLAN_ARN" + "MULTIPLE_PRICING_PLAN_ARN", + "ILLEGAL_CHILD_ASSOCIATE_RESOURCE", + "CUSTOM_LINE_ITEM_ASSOCIATION_EXISTS", + "INVALID_BILLING_GROUP", + "INVALID_BILLING_PERIOD_FOR_OPERATION", + "ILLEGAL_BILLING_ENTITY", + "ILLEGAL_MODIFIER_PERCENTAGE", + "ILLEGAL_TYPE", + "ILLEGAL_ENDED_BILLINGGROUP", + "ILLEGAL_TIERING_INPUT" ] } }, - "documentation":"

Amazon Web Services Billing Conductor is a fully managed service that you can use to customize a pro forma version of your billing data each month, to accurately show or chargeback your end customers. Amazon Web Services Billing Conductor doesn't change the way you're billed by Amazon Web Services each month by design. Instead, it provides you with a mechanism to configure, generate, and display rates to certain customers over a given billing period. You can also analyze the difference between the rates you apply to your accounting groupings relative to your actual rates from Amazon Web Services. As a result of your Amazon Web Services Billing Conductor configuration, the payer account can also see the custom rate applied on the billing details page of the Amazon Web Services Billing console, or configure a cost and usage report per billing group.

This documentation shows how you can configure Amazon Web Services Billing Conductor using its API. For more information about using the Amazon Web Services Billing Conductor user interface, see the Amazon Web Services Enterprise Billing Console User Guide.

" + "documentation":"

Amazon Web Services Billing Conductor is a fully managed service that you can use to customize a pro forma version of your billing data each month, to accurately show or chargeback your end customers. Amazon Web Services Billing Conductor doesn't change the way you're billed by Amazon Web Services each month by design. Instead, it provides you with a mechanism to configure, generate, and display rates to certain customers over a given billing period. You can also analyze the difference between the rates you apply to your accounting groupings relative to your actual rates from Amazon Web Services. As a result of your Amazon Web Services Billing Conductor configuration, the payer account can also see the custom rate applied on the billing details page of the Amazon Web Services Billing console, or configure a cost and usage report per billing group.

This documentation shows how you can configure Amazon Web Services Billing Conductor using its API. For more information about using the Amazon Web Services Billing Conductor user interface, see the Amazon Web Services Billing Conductor User Guide.

" } diff --git a/botocore/data/braket/2019-09-01/endpoint-rule-set-1.json b/botocore/data/braket/2019-09-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..58d6e797 --- /dev/null +++ b/botocore/data/braket/2019-09-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://braket-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://braket-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://braket.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://braket.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/braket/2019-09-01/examples-1.json b/botocore/data/braket/2019-09-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/braket/2019-09-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/budgets/2016-10-20/endpoint-rule-set-1.json b/botocore/data/budgets/2016-10-20/endpoint-rule-set-1.json new file mode 100644 index 00000000..9d1e4af5 --- /dev/null +++ b/botocore/data/budgets/2016-10-20/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://budgets-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://budgets-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://budgets.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://budgets.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://budgets-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://budgets-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://budgets.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://budgets.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://budgets-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://budgets-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://budgets.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://budgets.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://budgets.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://budgets.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/budgets/2016-10-20/service-2.json b/botocore/data/budgets/2016-10-20/service-2.json index 4fe71ec0..ca7cbd03 100644 --- a/botocore/data/budgets/2016-10-20/service-2.json +++ b/botocore/data/budgets/2016-10-20/service-2.json @@ -26,7 +26,8 @@ {"shape":"InternalErrorException"}, {"shape":"CreationLimitExceededException"}, {"shape":"DuplicateRecordException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Creates a budget and, if included, notifications and subscribers.

Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.

" }, @@ -44,7 +45,8 @@ {"shape":"CreationLimitExceededException"}, {"shape":"DuplicateRecordException"}, {"shape":"NotFoundException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Creates a budget action.

" }, @@ -62,7 +64,8 @@ {"shape":"NotFoundException"}, {"shape":"CreationLimitExceededException"}, {"shape":"DuplicateRecordException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Creates a notification. You must create the budget before you create the associated notification.

" }, @@ -80,7 +83,8 @@ {"shape":"CreationLimitExceededException"}, {"shape":"DuplicateRecordException"}, {"shape":"NotFoundException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Creates a subscriber. You must create the associated budget and notification before you create the subscriber.

" }, @@ -96,7 +100,8 @@ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Deletes a budget. You can delete your budget at any time.

Deleting a budget also deletes the notifications and subscribers that are associated with that budget.

" }, @@ -113,7 +118,8 @@ {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceLockedException"} + {"shape":"ResourceLockedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Deletes a budget action.

" }, @@ -129,7 +135,8 @@ {"shape":"InvalidParameterException"}, {"shape":"InternalErrorException"}, {"shape":"NotFoundException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Deletes a notification.

Deleting a notification also deletes the subscribers that are associated with the notification.

" }, @@ -145,7 +152,8 @@ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Deletes a subscriber.

Deleting the last subscriber to a notification also deletes the notification.

" }, @@ -161,7 +169,8 @@ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Describes a budget.

The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.

" }, @@ -177,7 +186,8 @@ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Describes a budget action detail.

" }, @@ -194,7 +204,8 @@ {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"InvalidNextTokenException"} + {"shape":"InvalidNextTokenException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Describes a budget action history detail.

" }, @@ -210,7 +221,8 @@ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, {"shape":"AccessDeniedException"}, - {"shape":"InvalidNextTokenException"} + {"shape":"InvalidNextTokenException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Describes all of the budget actions for an account.

" }, @@ -227,7 +239,8 @@ {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"InvalidNextTokenException"} + {"shape":"InvalidNextTokenException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Describes all of the budget actions for a budget.

" }, @@ -245,7 +258,8 @@ {"shape":"NotFoundException"}, {"shape":"InvalidNextTokenException"}, {"shape":"ExpiredNextTokenException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Lists the budget names and notifications that are associated with an account.

" }, @@ -263,7 +277,8 @@ {"shape":"NotFoundException"}, {"shape":"InvalidNextTokenException"}, {"shape":"ExpiredNextTokenException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Describes the history for DAILY, MONTHLY, and QUARTERLY budgets. Budget history isn't available for ANNUAL budgets.

" }, @@ -281,7 +296,8 @@ {"shape":"NotFoundException"}, {"shape":"InvalidNextTokenException"}, {"shape":"ExpiredNextTokenException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Lists the budgets that are associated with an account.

The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.

" }, @@ -299,7 +315,8 @@ {"shape":"NotFoundException"}, {"shape":"InvalidNextTokenException"}, {"shape":"ExpiredNextTokenException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Lists the notifications that are associated with a budget.

" }, @@ -317,7 +334,8 @@ {"shape":"InvalidParameterException"}, {"shape":"InvalidNextTokenException"}, {"shape":"ExpiredNextTokenException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Lists the subscribers that are associated with a notification.

" }, @@ -334,7 +352,8 @@ {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceLockedException"} + {"shape":"ResourceLockedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Executes a budget action.

" }, @@ -350,7 +369,8 @@ {"shape":"InternalErrorException"}, {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Updates a budget. You can change every part of a budget except for the budgetName and the calculatedSpend. When you modify a budget, the calculatedSpend drops to zero until Amazon Web Services has new usage data to use for forecasting.

Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section.

" }, @@ -367,7 +387,8 @@ {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"ResourceLockedException"} + {"shape":"ResourceLockedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Updates a budget action.

" }, @@ -384,7 +405,8 @@ {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, {"shape":"DuplicateRecordException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Updates a notification.

" }, @@ -401,7 +423,8 @@ {"shape":"InvalidParameterException"}, {"shape":"NotFoundException"}, {"shape":"DuplicateRecordException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Updates a subscriber.

" } @@ -1414,9 +1437,15 @@ }, "documentation":"

Response of DescribeSubscribersForNotification

" }, + "DimensionValue":{ + "type":"string", + "max":2147483647, + "min":0, + "pattern":"[\\S\\s]*" + }, "DimensionValues":{ "type":"list", - "member":{"shape":"GenericString"} + "member":{"shape":"DimensionValue"} }, "DuplicateRecordException":{ "type":"structure", @@ -1874,6 +1903,14 @@ "ABSOLUTE_VALUE" ] }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "documentation":"

The number of API requests has exceeded the maximum allowed API request throttling limit for the account.

", + "exception":true + }, "TimePeriod":{ "type":"structure", "members":{ @@ -2068,5 +2105,5 @@ "documentation":"

The error message the exception carries.

" } }, - "documentation":"

The Amazon Web Services Budgets API enables you to use Amazon Web Services Budgets to plan your service usage, service costs, and instance reservations. The API reference provides descriptions, syntax, and usage examples for each of the actions and data types for Amazon Web Services Budgets.

Budgets provide you with a way to see the following information:

  • How close your plan is to your budgeted amount or to the free tier limits

  • Your usage-to-date, including how much you've used of your Reserved Instances (RIs)

  • Your current estimated charges from Amazon Web Services, and how much your predicted usage will accrue in charges by the end of the month

  • How much of your budget has been used

Amazon Web Services updates your budget status several times a day. Budgets track your unblended costs, subscriptions, refunds, and RIs. You can create the following types of budgets:

  • Cost budgets - Plan how much you want to spend on a service.

  • Usage budgets - Plan how much you want to use one or more services.

  • RI utilization budgets - Define a utilization threshold, and receive alerts when your RI usage falls below that threshold. This lets you see if your RIs are unused or under-utilized.

  • RI coverage budgets - Define a coverage threshold, and receive alerts when the number of your instance hours that are covered by RIs fall below that threshold. This lets you see how much of your instance usage is covered by a reservation.

Service Endpoint

The Amazon Web Services Budgets API provides the following endpoint:

  • https://budgets.amazonaws.com

For information about costs that are associated with the Amazon Web Services Budgets API, see Amazon Web Services Cost Management Pricing.

" + "documentation":"

Use the Amazon Web Services Budgets API to plan your service usage, service costs, and instance reservations. This API reference provides descriptions, syntax, and usage examples for each of the actions and data types for the Amazon Web Services Budgets feature.

Budgets provide you with a way to see the following information:

  • How close your plan is to your budgeted amount or to the free tier limits

  • Your usage-to-date, including how much you've used of your Reserved Instances (RIs)

  • Your current estimated charges from Amazon Web Services, and how much your predicted usage will accrue in charges by the end of the month

  • How much of your budget has been used

Amazon Web Services updates your budget status several times a day. Budgets track your unblended costs, subscriptions, refunds, and RIs. You can create the following types of budgets:

  • Cost budgets - Plan how much you want to spend on a service.

  • Usage budgets - Plan how much you want to use one or more services.

  • RI utilization budgets - Define a utilization threshold, and receive alerts when your RI usage falls below that threshold. This lets you see if your RIs are unused or under-utilized.

  • RI coverage budgets - Define a coverage threshold, and receive alerts when the number of your instance hours that are covered by RIs fall below that threshold. This lets you see how much of your instance usage is covered by a reservation.

Service Endpoint

The Amazon Web Services Budgets API provides the following endpoint:

  • https://budgets.amazonaws.com

For information about costs that are associated with the Amazon Web Services Budgets API, see Amazon Web Services Cost Management Pricing.

" } diff --git a/botocore/data/ce/2017-10-25/endpoint-rule-set-1.json b/botocore/data/ce/2017-10-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..09cea2bc --- /dev/null +++ b/botocore/data/ce/2017-10-25/endpoint-rule-set-1.json @@ -0,0 +1,852 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-explorer-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-explorer-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-explorer.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ce.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-explorer-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-explorer-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cost-explorer.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ce.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ce-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ce-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ce.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://ce.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://ce.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "ce" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ce.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ce/2017-10-25/service-2.json b/botocore/data/ce/2017-10-25/service-2.json index adea1d88..6bd751fd 100644 --- a/botocore/data/ce/2017-10-25/service-2.json +++ b/botocore/data/ce/2017-10-25/service-2.json @@ -109,7 +109,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Returns the name, ARN, rules, definition, and effective dates of a Cost Category that's defined in the account.

You have the option to use EffectiveOn to return a Cost Category that is active on a specific date. If there is no EffectiveOn specified, you’ll see a Cost Category that is effective on the current date. If Cost Category is still effective, EffectiveEnd is omitted in the response.

" + "documentation":"

Returns the name, Amazon Resource Name (ARN), rules, definition, and effective dates of a Cost Category that's defined in the account.

You have the option to use EffectiveOn to return a Cost Category that's active on a specific date. If there's no EffectiveOn specified, you see a Cost Category that's effective on the current date. If Cost Category is still effective, EffectiveEnd is omitted in the response.

" }, "GetAnomalies":{ "name":"GetAnomalies", @@ -187,7 +187,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"RequestChangedException"} ], - "documentation":"

Retrieves cost and usage metrics with resources for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts. This API is currently available for the Amazon Elastic Compute Cloud – Compute service only.

This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information on how to access the Settings page, see Controlling Access for Cost Explorer in the Billing and Cost Management User Guide.

" + "documentation":"

Retrieves cost and usage metrics with resources for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts. This API is currently available for the Amazon Elastic Compute Cloud – Compute service only.

This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information about how to access the Settings page, see Controlling Access for Cost Explorer in the Billing and Cost Management User Guide.

" }, "GetCostCategories":{ "name":"GetCostCategories", @@ -250,7 +250,7 @@ {"shape":"DataUnavailableException"}, {"shape":"InvalidNextTokenException"} ], - "documentation":"

Retrieves the reservation coverage for your account. This enables you to see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon Relational Database Service, or Amazon Redshift usage is covered by a reservation. An organization's management account can see the coverage of the associated member accounts. This supports dimensions, Cost Categories, and nested expressions. For any time period, you can filter data about reservation usage by the following dimensions:

  • AZ

  • CACHE_ENGINE

  • DATABASE_ENGINE

  • DEPLOYMENT_OPTION

  • INSTANCE_TYPE

  • LINKED_ACCOUNT

  • OPERATING_SYSTEM

  • PLATFORM

  • REGION

  • SERVICE

  • TAG

  • TENANCY

To determine valid values for a dimension, use the GetDimensionValues operation.

" + "documentation":"

Retrieves the reservation coverage for your account, which you can use to see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon Relational Database Service, or Amazon Redshift usage is covered by a reservation. An organization's management account can see the coverage of the associated member accounts. This supports dimensions, Cost Categories, and nested expressions. For any time period, you can filter data about reservation usage by the following dimensions:

  • AZ

  • CACHE_ENGINE

  • DATABASE_ENGINE

  • DEPLOYMENT_OPTION

  • INSTANCE_TYPE

  • LINKED_ACCOUNT

  • OPERATING_SYSTEM

  • PLATFORM

  • REGION

  • SERVICE

  • TAG

  • TENANCY

To determine valid values for a dimension, use the GetDimensionValues operation.

" }, "GetReservationPurchaseRecommendation":{ "name":"GetReservationPurchaseRecommendation", @@ -265,7 +265,7 @@ {"shape":"DataUnavailableException"}, {"shape":"InvalidNextTokenException"} ], - "documentation":"

Gets recommendations for which reservations to purchase. These recommendations could help you reduce your costs. Reservations provide a discounted hourly rate (up to 75%) compared to On-Demand pricing.

Amazon Web Services generates your recommendations by identifying your On-Demand usage during a specific time period and collecting your usage into categories that are eligible for a reservation. After Amazon Web Services has these categories, it simulates every combination of reservations in each category of usage to identify the best number of each type of RI to purchase to maximize your estimated savings.

For example, Amazon Web Services automatically aggregates your Amazon EC2 Linux, shared tenancy, and c4 family usage in the US West (Oregon) Region and recommends that you buy size-flexible regional reservations to apply to the c4 family usage. Amazon Web Services recommends the smallest size instance in an instance family. This makes it easier to purchase a size-flexible RI. Amazon Web Services also shows the equal number of normalized units so that you can purchase any instance size that you want. For this example, your RI recommendation would be for c4.large because that is the smallest size instance in the c4 instance family.

" + "documentation":"

Gets recommendations for reservation purchases. These recommendations might help you to reduce your costs. Reservations provide a discounted hourly rate (up to 75%) compared to On-Demand pricing.

Amazon Web Services generates your recommendations by identifying your On-Demand usage during a specific time period and collecting your usage into categories that are eligible for a reservation. After Amazon Web Services has these categories, it simulates every combination of reservations in each category of usage to identify the best number of each type of Reserved Instance (RI) to purchase to maximize your estimated savings.

For example, Amazon Web Services automatically aggregates your Amazon EC2 Linux, shared tenancy, and c4 family usage in the US West (Oregon) Region and recommends that you buy size-flexible regional reservations to apply to the c4 family usage. Amazon Web Services recommends the smallest size instance in an instance family. This makes it easier to purchase a size-flexible Reserved Instance (RI). Amazon Web Services also shows the equal number of normalized units. This way, you can purchase any instance size that you want. For this example, your RI recommendation is for c4.large because that is the smallest size instance in the c4 instance family.

" }, "GetReservationUtilization":{ "name":"GetReservationUtilization", @@ -294,7 +294,7 @@ {"shape":"LimitExceededException"}, {"shape":"InvalidNextTokenException"} ], - "documentation":"

Creates recommendations that help you save cost by identifying idle and underutilized Amazon EC2 instances.

Recommendations are generated to either downsize or terminate instances, along with providing savings detail and metrics. For details on calculation and function, see Optimizing Your Cost with Rightsizing Recommendations in the Billing and Cost Management User Guide.

" + "documentation":"

Creates recommendations that help you save cost by identifying idle and underutilized Amazon EC2 instances.

Recommendations are generated to either downsize or terminate instances, along with providing savings detail and metrics. For more information about calculation and function, see Optimizing Your Cost with Rightsizing Recommendations in the Billing and Cost Management User Guide.

" }, "GetSavingsPlansCoverage":{ "name":"GetSavingsPlansCoverage", @@ -323,7 +323,7 @@ {"shape":"LimitExceededException"}, {"shape":"InvalidNextTokenException"} ], - "documentation":"

Retrieves your request parameters, Savings Plan Recommendations Summary and Details.

" + "documentation":"

Retrieves the Savings Plans recommendations for your account. First use StartSavingsPlansPurchaseRecommendationGeneration to generate a new set of recommendations, and then use GetSavingsPlansPurchaseRecommendation to retrieve them.

" }, "GetSavingsPlansUtilization":{ "name":"GetSavingsPlansUtilization", @@ -337,7 +337,7 @@ {"shape":"LimitExceededException"}, {"shape":"DataUnavailableException"} ], - "documentation":"

Retrieves the Savings Plans utilization for your account across date ranges with daily or monthly granularity. Management account in an organization have access to member accounts. You can use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension values.

You cannot group by any dimension values for GetSavingsPlansUtilization.

" + "documentation":"

Retrieves the Savings Plans utilization for your account across date ranges with daily or monthly granularity. Management account in an organization have access to member accounts. You can use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension values.

You can't group by any dimension values for GetSavingsPlansUtilization.

" }, "GetSavingsPlansUtilizationDetails":{ "name":"GetSavingsPlansUtilizationDetails", @@ -386,6 +386,20 @@ ], "documentation":"

Retrieves a forecast for how much Amazon Web Services predicts that you will use over the forecast time period that you select, based on your past usage.

" }, + "ListCostAllocationTags":{ + "name":"ListCostAllocationTags", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCostAllocationTagsRequest"}, + "output":{"shape":"ListCostAllocationTagsResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"InvalidNextTokenException"} + ], + "documentation":"

Get a list of cost allocation tags. All inputs in the API are optional and serve as filters. By default, all cost allocation tags are returned.

" + }, "ListCostCategoryDefinitions":{ "name":"ListCostCategoryDefinitions", "http":{ @@ -397,7 +411,21 @@ "errors":[ {"shape":"LimitExceededException"} ], - "documentation":"

Returns the name, ARN, NumberOfRules and effective dates of all Cost Categories defined in the account. You have the option to use EffectiveOn to return a list of Cost Categories that were active on a specific date. If there is no EffectiveOn specified, you’ll see Cost Categories that are effective on the current date. If Cost Category is still effective, EffectiveEnd is omitted in the response. ListCostCategoryDefinitions supports pagination. The request can have a MaxResults range up to 100.

" + "documentation":"

Returns the name, Amazon Resource Name (ARN), NumberOfRules and effective dates of all Cost Categories defined in the account. You have the option to use EffectiveOn to return a list of Cost Categories that were active on a specific date. If there is no EffectiveOn specified, you’ll see Cost Categories that are effective on the current date. If Cost Category is still effective, EffectiveEnd is omitted in the response. ListCostCategoryDefinitions supports pagination. The request can have a MaxResults range up to 100.

" + }, + "ListSavingsPlansPurchaseRecommendationGeneration":{ + "name":"ListSavingsPlansPurchaseRecommendationGeneration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSavingsPlansPurchaseRecommendationGenerationRequest"}, + "output":{"shape":"ListSavingsPlansPurchaseRecommendationGenerationResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"InvalidNextTokenException"} + ], + "documentation":"

Retrieves a list of your historical recommendation generations within the past 30 days.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -426,6 +454,21 @@ ], "documentation":"

Modifies the feedback property of a given cost anomaly.

" }, + "StartSavingsPlansPurchaseRecommendationGeneration":{ + "name":"StartSavingsPlansPurchaseRecommendationGeneration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartSavingsPlansPurchaseRecommendationGenerationRequest"}, + "output":{"shape":"StartSavingsPlansPurchaseRecommendationGenerationResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"GenerationExistsException"} + ], + "documentation":"

Requests a Savings Plans recommendation generation. This enables you to calculate a fresh set of Savings Plans recommendations that takes your latest usage data and current Savings Plans inventory into account. You can refresh Savings Plans recommendations up to three times daily for a consolidated billing family.

StartSavingsPlansPurchaseRecommendationGeneration has no request syntax because no input parameters are needed to support this operation.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -439,7 +482,7 @@ {"shape":"TooManyTagsException"}, {"shape":"LimitExceededException"} ], - "documentation":"

An API operation for adding one or more tags (key-value pairs) to a resource.

You can use the TagResource operation with a resource that already has tags. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value you specify replaces the previous value for that tag.

Although the maximum number of array members is 200, user-tag maximum is 50. The remaining are reserved for Amazon Web Services use.

" + "documentation":"

An API operation for adding one or more tags (key-value pairs) to a resource.

You can use the TagResource operation with a resource that already has tags. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value you specify replaces the previous value for that tag.

Although the maximum number of array members is 200, user-tag maximum is 50. The remaining are reserved for Amazon Web Services use.

" }, "UntagResource":{ "name":"UntagResource", @@ -453,7 +496,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Removes one or more tags from a resource. Specify only tag key(s) in your request. Do not specify the value.

" + "documentation":"

Removes one or more tags from a resource. Specify only tag keys in your request. Don't specify the value.

" }, "UpdateAnomalyMonitor":{ "name":"UpdateAnomalyMonitor", @@ -484,6 +527,19 @@ ], "documentation":"

Updates an existing cost anomaly monitor subscription.

" }, + "UpdateCostAllocationTagsStatus":{ + "name":"UpdateCostAllocationTagsStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateCostAllocationTagsStatusRequest"}, + "output":{"shape":"UpdateCostAllocationTagsStatusResponse"}, + "errors":[ + {"shape":"LimitExceededException"} + ], + "documentation":"

Updates status for cost allocation tags in bulk, with maximum batch size of 20. If the tag status that's updated is the same as the existing tag status, the request doesn't fail. Instead, it doesn't have any effect on the tag status (for example, activating the active tag).

" + }, "UpdateCostCategoryDefinition":{ "name":"UpdateCostCategoryDefinition", "http":{ @@ -537,7 +593,7 @@ }, "DimensionValue":{ "shape":"GenericString", - "documentation":"

The dimension for the anomaly (for example, an Amazon Web Services service in a service monitor).

" + "documentation":"

The dimension for the anomaly (for example, an Amazon Web Service in a service monitor).

" }, "RootCauses":{ "shape":"RootCauses", @@ -732,6 +788,84 @@ "SAVINGS_PLANS" ] }, + "CostAllocationTag":{ + "type":"structure", + "required":[ + "TagKey", + "Type", + "Status" + ], + "members":{ + "TagKey":{ + "shape":"TagKey", + "documentation":"

The key for the cost allocation tag.

" + }, + "Type":{ + "shape":"CostAllocationTagType", + "documentation":"

The type of cost allocation tag. You can use AWSGenerated or UserDefined type tags. AWSGenerated type tags are tags that Amazon Web Services defines and applies to support Amazon Web Services resources for cost allocation purposes. UserDefined type tags are tags that you define, create, and apply to resources.

" + }, + "Status":{ + "shape":"CostAllocationTagStatus", + "documentation":"

The status of a cost allocation tag.

" + } + }, + "documentation":"

The cost allocation tag structure. This includes detailed metadata for the CostAllocationTag object.

" + }, + "CostAllocationTagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":100, + "min":1 + }, + "CostAllocationTagList":{ + "type":"list", + "member":{"shape":"CostAllocationTag"}, + "max":100, + "min":0 + }, + "CostAllocationTagStatus":{ + "type":"string", + "enum":[ + "Active", + "Inactive" + ] + }, + "CostAllocationTagStatusEntry":{ + "type":"structure", + "required":[ + "TagKey", + "Status" + ], + "members":{ + "TagKey":{ + "shape":"TagKey", + "documentation":"

The key for the cost allocation tag.

" + }, + "Status":{ + "shape":"CostAllocationTagStatus", + "documentation":"

The status of a cost allocation tag.

" + } + }, + "documentation":"

The cost allocation tag status. The status of a key can either be active or inactive.

" + }, + "CostAllocationTagStatusList":{ + "type":"list", + "member":{"shape":"CostAllocationTagStatusEntry"}, + "max":20, + "min":1 + }, + "CostAllocationTagType":{ + "type":"string", + "enum":[ + "AWSGenerated", + "UserDefined" + ] + }, + "CostAllocationTagsMaxResults":{ + "type":"integer", + "max":1000, + "min":1 + }, "CostCategory":{ "type":"structure", "required":[ @@ -748,11 +882,11 @@ }, "EffectiveStart":{ "shape":"ZonedDateTime", - "documentation":"

The effective state data of your Cost Category.

" + "documentation":"

The effective start date of your Cost Category.

" }, "EffectiveEnd":{ "shape":"ZonedDateTime", - "documentation":"

The effective end data of your Cost Category.

" + "documentation":"

The effective end date of your Cost Category.

" }, "Name":{"shape":"CostCategoryName"}, "RuleVersion":{"shape":"CostCategoryRuleVersion"}, @@ -777,14 +911,14 @@ "members":{ "DimensionName":{ "shape":"CostCategoryInheritedValueDimensionName", - "documentation":"

The name of the dimension that's used to group costs.

If you specify LINKED_ACCOUNT_NAME, the cost category value is based on account name. If you specify TAG, the cost category value will be based on the value of the specified tag key.

" + "documentation":"

The name of the dimension that's used to group costs.

If you specify LINKED_ACCOUNT_NAME, the cost category value is based on account name. If you specify TAG, the cost category value is based on the value of the specified tag key.

" }, "DimensionKey":{ "shape":"GenericString", "documentation":"

The key to extract cost category values.

" } }, - "documentation":"

When creating or updating a cost category, you can define the CostCategoryRule rule type as INHERITED_VALUE. This rule type adds the flexibility of defining a rule that dynamically inherits the cost category value from the dimension value defined by CostCategoryInheritedValueDimension. For example, if you want to dynamically group costs that are based on the value of a specific tag key, first choose an inherited value rule type, then choose the tag dimension and specify the tag key to use.

" + "documentation":"

When you create or update a cost category, you can define the CostCategoryRule rule type as INHERITED_VALUE. This rule type adds the flexibility to define a rule that dynamically inherits the cost category value from the dimension value that's defined by CostCategoryInheritedValueDimension. For example, suppose that you want to dynamically group costs that are based on the value of a specific tag key. First, choose an inherited value rule type, and then choose the tag dimension and specify the tag key to use.

" }, "CostCategoryInheritedValueDimensionName":{ "type":"string", @@ -877,7 +1011,7 @@ }, "Type":{ "shape":"CostCategoryRuleType", - "documentation":"

You can define the CostCategoryRule rule type as either REGULAR or INHERITED_VALUE. The INHERITED_VALUE rule type adds the flexibility of defining a rule that dynamically inherits the cost category value from the dimension value defined by CostCategoryInheritedValueDimension. For example, if you want to dynamically group costs based on the value of a specific tag key, first choose an inherited value rule type, then choose the tag dimension and specify the tag key to use.

" + "documentation":"

You can define the CostCategoryRule rule type as either REGULAR or INHERITED_VALUE. The INHERITED_VALUE rule type adds the flexibility to define a rule that dynamically inherits the cost category value. This value is from the dimension value that's defined by CostCategoryInheritedValueDimension. For example, suppose that you want to costs to be dynamically grouped based on the value of a specific tag key. First, choose an inherited value rule type, and then choose the tag dimension and specify the tag key to use.

" } }, "documentation":"

Rules are processed in order. If there are multiple rules that match the line item, then the first rule to match is used to determine that Cost Category value.

" @@ -1124,7 +1258,7 @@ }, "ResourceTags":{ "shape":"ResourceTagList", - "documentation":"

An optional list of tags to associate with the specified AnomalyMonitor . You can use resource tags to control access to your monitor using IAM policies.

Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services use

  • The maximum length of a key is 128 characters

  • The maximum length of a value is 256 characters

  • Valid characters for keys and values are: A-Z, a-z, spaces, _.:/=+-

  • Keys and values are case sensitive

  • Keys and values are trimmed for any leading or trailing whitespaces

  • Don’t use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services use

" + "documentation":"

An optional list of tags to associate with the specified AnomalyMonitor . You can use resource tags to control access to your monitor using IAM policies.

Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services use

  • The maximum length of a key is 128 characters

  • The maximum length of a value is 256 characters

  • Keys and values can only contain alphanumeric characters, spaces, and any of the following: _.:/=+@-

  • Keys and values are case sensitive

  • Keys and values are trimmed for any leading or trailing whitespaces

  • Don’t use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services use

" } } }, @@ -1148,7 +1282,7 @@ }, "ResourceTags":{ "shape":"ResourceTagList", - "documentation":"

An optional list of tags to associate with the specified AnomalySubscription . You can use resource tags to control access to your subscription using IAM policies.

Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services use

  • The maximum length of a key is 128 characters

  • The maximum length of a value is 256 characters

  • Valid characters for keys and values are: A-Z, a-z, spaces, _.:/=+-

  • Keys and values are case sensitive

  • Keys and values are trimmed for any leading or trailing whitespaces

  • Don’t use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services use

" + "documentation":"

An optional list of tags to associate with the specified AnomalySubscription . You can use resource tags to control access to your subscription using IAM policies.

Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services use

  • The maximum length of a key is 128 characters

  • The maximum length of a value is 256 characters

  • Keys and values can only contain alphanumeric characters, spaces, and any of the following: _.:/=+@-

  • Keys and values are case sensitive

  • Keys and values are trimmed for any leading or trailing whitespaces

  • Don’t use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services use

" } } }, @@ -1171,6 +1305,10 @@ ], "members":{ "Name":{"shape":"CostCategoryName"}, + "EffectiveStart":{ + "shape":"ZonedDateTime", + "documentation":"

The Cost Category's effective start date. It can only be a billing start date (first day of the month). If the date isn't provided, it's the first day of the current month. Dates can't be before the previous twelve months, or in the future.

" + }, "RuleVersion":{"shape":"CostCategoryRuleVersion"}, "Rules":{ "shape":"CostCategoryRulesList", @@ -1183,7 +1321,7 @@ }, "ResourceTags":{ "shape":"ResourceTagList", - "documentation":"

An optional list of tags to associate with the specified CostCategory . You can use resource tags to control access to your cost category using IAM policies.

Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services use

  • The maximum length of a key is 128 characters

  • The maximum length of a value is 256 characters

  • Valid characters for keys and values are: A-Z, a-z, spaces, _.:/=+-

  • Keys and values are case sensitive

  • Keys and values are trimmed for any leading or trailing whitespaces

  • Don’t use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services use

" + "documentation":"

An optional list of tags to associate with the specified CostCategory . You can use resource tags to control access to your cost category using IAM policies.

Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services use

  • The maximum length of a key is 128 characters

  • The maximum length of a value is 256 characters

  • Keys and values can only contain alphanumeric characters, spaces, and any of the following: _.:/=+@-

  • Keys and values are case sensitive

  • Keys and values are trimmed for any leading or trailing whitespaces

  • Don’t use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services use

" } } }, @@ -1192,11 +1330,11 @@ "members":{ "CostCategoryArn":{ "shape":"Arn", - "documentation":"

The unique identifier for your newly created Cost Category.

" + "documentation":"

The unique identifier for your newly created Cost Category.

" }, "EffectiveStart":{ "shape":"ZonedDateTime", - "documentation":"

The Cost Category's effective start date.

" + "documentation":"

The Cost Category's effective start date. It can only be a billing start date (first day of the month).

" } } }, @@ -1225,7 +1363,7 @@ }, "ReservationCoveredHoursInLookbackPeriod":{ "shape":"GenericString", - "documentation":"

The number of hours during the lookback period that's covered by reservations.

" + "documentation":"

The number of hours during the lookback period that's covered by reservations.

" }, "SavingsPlansCoveredHoursInLookbackPeriod":{ "shape":"GenericString", @@ -1233,7 +1371,7 @@ }, "OnDemandHoursInLookbackPeriod":{ "shape":"GenericString", - "documentation":"

The number of hours during the lookback period that's billed at On-Demand rates.

" + "documentation":"

The number of hours during the lookback period that's billed at On-Demand rates.

" }, "TotalRunningHoursInLookbackPeriod":{ "shape":"GenericString", @@ -1245,7 +1383,7 @@ }, "CurrencyCode":{ "shape":"GenericString", - "documentation":"

The currency code that Amazon Web Services used to calculate the costs for this instance.

" + "documentation":"

The currency code that Amazon Web Services used to calculate the costs for this instance.

" } }, "documentation":"

Context about the current instance.

" @@ -1312,7 +1450,7 @@ "members":{ "CostCategoryArn":{ "shape":"Arn", - "documentation":"

The unique identifier for your Cost Category.

" + "documentation":"

The unique identifier for your Cost Category.

" } } }, @@ -1321,11 +1459,11 @@ "members":{ "CostCategoryArn":{ "shape":"Arn", - "documentation":"

The unique identifier for your Cost Category.

" + "documentation":"

The unique identifier for your Cost Category.

" }, "EffectiveEnd":{ "shape":"ZonedDateTime", - "documentation":"

The effective end date of the Cost Category as a result of deleting it. No costs after this date will be categorized by the deleted Cost Category.

" + "documentation":"

The effective end date of the Cost Category as a result of deleting it. No costs after this date is categorized by the deleted Cost Category.

" } } }, @@ -1335,11 +1473,11 @@ "members":{ "CostCategoryArn":{ "shape":"Arn", - "documentation":"

The unique identifier for your Cost Category.

" + "documentation":"

The unique identifier for your Cost Category.

" }, "EffectiveOn":{ "shape":"ZonedDateTime", - "documentation":"

The date when the Cost Category was effective.

" + "documentation":"

The date when the Cost Category was effective.

" } } }, @@ -1391,7 +1529,7 @@ "members":{ "Key":{ "shape":"Dimension", - "documentation":"

The names of the metadata types that you can use to filter and group your results. For example, AZ returns a list of Availability Zones.

" + "documentation":"

The names of the metadata types that you can use to filter and group your results. For example, AZ returns a list of Availability Zones. LINK_ACCOUNT_NAME and SERVICE_CODE can only be used in CostCategoryRule.

" }, "Values":{ "shape":"Values", @@ -1427,22 +1565,22 @@ "members":{ "DiskReadOpsPerSecond":{ "shape":"GenericString", - "documentation":"

The maximum number of read operations per second.

" + "documentation":"

The maximum number of read operations per second.

" }, "DiskWriteOpsPerSecond":{ "shape":"GenericString", - "documentation":"

The maximum number of write operations per second.

" + "documentation":"

The maximum number of write operations per second.

" }, "DiskReadBytesPerSecond":{ "shape":"GenericString", - "documentation":"

The maximum read throughput operations per second.

" + "documentation":"

The maximum read throughput operations per second.

" }, "DiskWriteBytesPerSecond":{ "shape":"GenericString", - "documentation":"

The maximum write throughput operations per second.

" + "documentation":"

The maximum write throughput operations per second.

" } }, - "documentation":"

The field that contains a list of disk (local storage) metrics that are associated with the current instance.

" + "documentation":"

The field that contains a list of disk (local storage) metrics that are associated with the current instance.

" }, "EBSResourceUtilization":{ "type":"structure", @@ -1541,7 +1679,7 @@ }, "Vcpu":{ "shape":"GenericString", - "documentation":"

The number of VCPU cores in the Amazon Web Services instance type.

" + "documentation":"

The number of VCPU cores in the Amazon Web Services instance type.

" } }, "documentation":"

Details on the Amazon EC2 Resource.

" @@ -1551,15 +1689,15 @@ "members":{ "MaxCpuUtilizationPercentage":{ "shape":"GenericString", - "documentation":"

The maximum observed or expected CPU utilization of the instance.

" + "documentation":"

The maximum observed or expected CPU utilization of the instance.

" }, "MaxMemoryUtilizationPercentage":{ "shape":"GenericString", - "documentation":"

The maximum observed or expected memory utilization of the instance.

" + "documentation":"

The maximum observed or expected memory utilization of the instance.

" }, "MaxStorageUtilizationPercentage":{ "shape":"GenericString", - "documentation":"

The maximum observed or expected storage utilization of the instance. This doesn't include EBS storage.

" + "documentation":"

The maximum observed or expected storage utilization of the instance. This doesn't include EBS storage.

" }, "EBSResourceUtilization":{ "shape":"EBSResourceUtilization", @@ -1567,14 +1705,14 @@ }, "DiskResourceUtilization":{ "shape":"DiskResourceUtilization", - "documentation":"

The field that contains a list of disk (local storage) metrics that are associated with the current instance.

" + "documentation":"

The field that contains a list of disk (local storage) metrics that are associated with the current instance.

" }, "NetworkResourceUtilization":{ "shape":"NetworkResourceUtilization", - "documentation":"

The network field that contains a list of network metrics that are associated with the current instance.

" + "documentation":"

The network field that contains a list of network metrics that are associated with the current instance.

" } }, - "documentation":"

Utilization metrics of the instance.

" + "documentation":"

Utilization metrics for the instance.

" }, "EC2Specification":{ "type":"structure", @@ -1730,6 +1868,52 @@ "type":"list", "member":{"shape":"ForecastResult"} }, + "GenerationExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

A request to generate a recommendation is already in progress.

", + "exception":true + }, + "GenerationStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "PROCESSING", + "FAILED" + ] + }, + "GenerationSummary":{ + "type":"structure", + "members":{ + "RecommendationId":{ + "shape":"RecommendationId", + "documentation":"

Indicates the ID for this specific recommendation.

" + }, + "GenerationStatus":{ + "shape":"GenerationStatus", + "documentation":"

Indicates whether the recommendation generation succeeded, is processing, or failed.

" + }, + "GenerationStartedTime":{ + "shape":"ZonedDateTime", + "documentation":"

Indicates the start time of the recommendation generation.

" + }, + "GenerationCompletionTime":{ + "shape":"ZonedDateTime", + "documentation":"

Indicates the completion time of the recommendation generation.

" + }, + "EstimatedCompletionTime":{ + "shape":"ZonedDateTime", + "documentation":"

Indicates the estimated time for when the recommendation generation will complete.

" + } + }, + "documentation":"

The summary of the Savings Plans recommendation generation.

" + }, + "GenerationSummaryList":{ + "type":"list", + "member":{"shape":"GenerationSummary"} + }, "GenericBoolean":{"type":"boolean"}, "GenericDouble":{"type":"double"}, "GenericString":{ @@ -1925,7 +2109,7 @@ }, "Metrics":{ "shape":"MetricNames", - "documentation":"

Which metrics are returned in the query. For more information about blended and unblended rates, see Why does the \"blended\" annotation appear on some line items in my bill?.

Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, and UsageQuantity.

If you return the UsageQuantity metric, the service aggregates all usage numbers without taking the units into account. For example, if you aggregate usageQuantity across all of Amazon EC2, the results aren't meaningful because Amazon EC2 compute hours and data transfer are measured in different units (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, filter by UsageType or UsageTypeGroups.

Metrics is required for GetCostAndUsageWithResources requests.

" + "documentation":"

Which metrics are returned in the query. For more information about blended and unblended rates, see Why does the \"blended\" annotation appear on some line items in my bill?.

Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, NormalizedUsageAmount, UnblendedCost, and UsageQuantity.

If you return the UsageQuantity metric, the service aggregates all usage numbers without taking the units into account. For example, if you aggregate usageQuantity across all of Amazon EC2, the results aren't meaningful because Amazon EC2 compute hours and data transfer are measured in different units (for example, hour or GB). To get more meaningful UsageQuantity metrics, filter by UsageType or UsageTypeGroups.

Metrics is required for GetCostAndUsageWithResources requests.

" }, "GroupBy":{ "shape":"GroupDefinitions", @@ -1950,7 +2134,7 @@ }, "ResultsByTime":{ "shape":"ResultsByTime", - "documentation":"

The time period that is covered by the results in the response.

" + "documentation":"

The time period that's covered by the results in the response.

" }, "DimensionValueAttributes":{ "shape":"DimensionValuesWithAttributesList", @@ -1964,22 +2148,22 @@ "members":{ "SearchString":{ "shape":"SearchString", - "documentation":"

The value that you want to search the filter values for.

If you do not specify a CostCategoryName, SearchString will be used to filter Cost Category names that match the SearchString pattern. If you do specifiy a CostCategoryName, SearchString will be used to filter Cost Category values that match the SearchString pattern.

" + "documentation":"

The value that you want to search the filter values for.

If you don't specify a CostCategoryName, SearchString is used to filter Cost Category names that match the SearchString pattern. If you specify a CostCategoryName, SearchString is used to filter Cost Category values that match the SearchString pattern.

" }, "TimePeriod":{"shape":"DateInterval"}, "CostCategoryName":{"shape":"CostCategoryName"}, "Filter":{"shape":"Expression"}, "SortBy":{ "shape":"SortDefinitions", - "documentation":"

The value by which you want to sort the data.

The key represents cost and usage metrics. The following values are supported:

  • BlendedCost

  • UnblendedCost

  • AmortizedCost

  • NetAmortizedCost

  • NetUnblendedCost

  • UsageQuantity

  • NormalizedUsageAmount

Supported values for SortOrder are ASCENDING or DESCENDING.

When using SortBy, NextPageToken and SearchString are not supported.

" + "documentation":"

The value that you sort the data by.

The key represents the cost and usage metrics. The following values are supported:

  • BlendedCost

  • UnblendedCost

  • AmortizedCost

  • NetAmortizedCost

  • NetUnblendedCost

  • UsageQuantity

  • NormalizedUsageAmount

The supported key values for the SortOrder value are ASCENDING and DESCENDING.

When you use the SortBy value, the NextPageToken and SearchString key values aren't supported.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

This field is only used when SortBy is provided in the request.

The maximum number of objects that to be returned for this request. If MaxResults is not specified with SortBy, the request will return 1000 results as the default value for this parameter.

For GetCostCategories, MaxResults has an upper limit of 1000.

" + "documentation":"

This field is only used when the SortBy value is provided in the request.

The maximum number of objects that are returned for this request. If MaxResults isn't specified with the SortBy value, the request returns 1000 results as the default value for this parameter.

For GetCostCategories, MaxResults has an upper quota of 1000.

" }, "NextPageToken":{ "shape":"NextPageToken", - "documentation":"

If the number of objects that are still available for retrieval exceeds the limit, Amazon Web Services returns a NextPageToken value in the response. To retrieve the next batch of objects, provide the NextPageToken from the prior call in your next request.

" + "documentation":"

If the number of objects that are still available for retrieval exceeds the quota, Amazon Web Services returns a NextPageToken value in the response. To retrieve the next batch of objects, provide the NextPageToken from the previous call in your next request.

" } } }, @@ -1992,7 +2176,7 @@ "members":{ "NextPageToken":{ "shape":"NextPageToken", - "documentation":"

If the number of objects that are still available for retrieval exceeds the limit, Amazon Web Services returns a NextPageToken value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

" + "documentation":"

If the number of objects that are still available for retrieval exceeds the quota, Amazon Web Services returns a NextPageToken value in the response. To retrieve the next batch of objects, provide the marker from the prior call in your next request.

" }, "CostCategoryNames":{ "shape":"CostCategoryNamesList", @@ -2000,11 +2184,11 @@ }, "CostCategoryValues":{ "shape":"CostCategoryValuesList", - "documentation":"

The Cost Category values.

CostCategoryValues are not returned if CostCategoryName is not specified in the request.

" + "documentation":"

The Cost Category values.

If the CostCategoryName key isn't specified in the request, the CostCategoryValues fields aren't returned.

" }, "ReturnSize":{ "shape":"PageSize", - "documentation":"

The number of objects returned.

" + "documentation":"

The number of objects that are returned.

" }, "TotalSize":{ "shape":"PageSize", @@ -2072,20 +2256,20 @@ }, "Dimension":{ "shape":"Dimension", - "documentation":"

The name of the dimension. Each Dimension is available for a different Context. For more information, see Context.

" + "documentation":"

The name of the dimension. Each Dimension is available for a different Context. For more information, see Context. LINK_ACCOUNT_NAME and SERVICE_CODE can only be used in CostCategoryRule.

" }, "Context":{ "shape":"Context", - "documentation":"

The context for the call to GetDimensionValues. This can be RESERVATIONS or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is set to RESERVATIONS, the resulting dimension values can be used in the GetReservationUtilization operation. If the context is set to COST_AND_USAGE, the resulting dimension values can be used in the GetCostAndUsage operation.

If you set the context to COST_AND_USAGE, you can use the following dimensions for searching:

  • AZ - The Availability Zone. An example is us-east-1a.

  • BILLING_ENTITY - The Amazon Web Services seller that your account is with. Possible values are the following:

    - Amazon Web Services(Amazon Web Services): The entity that sells Amazon Web Services services.

    - AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian entity that is an acting reseller for Amazon Web Services services in India.

    - Amazon Web Services Marketplace: The entity that supports the sale of solutions built on Amazon Web Services by third-party software providers.

  • CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.

  • DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are SingleAZ and MultiAZ.

  • DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL.

  • INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge.

  • INSTANCE_TYPE_FAMILY - A family of instance types optimized to fit different use cases. Examples are Compute Optimized (C4, C5, C6g, C7g etc.), Memory Optimization (R4, R5n, R5b, R6g etc).

  • INVOICING_ENTITY - The name of the entity issuing the Amazon Web Services invoice.

  • LEGAL_ENTITY_NAME - The name of the organization that sells you Amazon Web Services services, such as Amazon Web Services.

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • OPERATING_SYSTEM - The operating system. Examples are Windows or Linux.

  • OPERATION - The action performed. Examples include RunInstance and CreateBucket.

  • PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux.

  • PURCHASE_TYPE - The reservation type of the purchase to which this usage is related. Examples include On-Demand Instances and Standard Reserved Instances.

  • RESERVATION_ID - The unique identifier for an Amazon Web Services Reservation Instance.

  • SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.

  • SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute).

  • SERVICE - The Amazon Web Services service such as Amazon DynamoDB.

  • TENANCY - The tenancy of a resource. Examples are shared or dedicated.

  • USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the GetDimensionValues operation includes a unit attribute. Examples include GB and Hrs.

  • USAGE_TYPE_GROUP - The grouping of common usage types. An example is Amazon EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute.

  • REGION - The Amazon Web Services Region.

  • RECORD_TYPE - The different types of charges such as RI fees, usage costs, tax refunds, and credits.

  • RESOURCE_ID - The unique identifier of the resource. ResourceId is an opt-in feature only available for last 14 days for EC2-Compute Service.

If you set the context to RESERVATIONS, you can use the following dimensions for searching:

  • AZ - The Availability Zone. An example is us-east-1a.

  • CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.

  • DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are SingleAZ and MultiAZ.

  • INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge.

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux.

  • REGION - The Amazon Web Services Region.

  • SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone.

  • TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI).

  • TENANCY - The tenancy of a resource. Examples are shared or dedicated.

If you set the context to SAVINGS_PLANS, you can use the following dimensions for searching:

  • SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)

  • PAYMENT_OPTION - Payment option for the given Savings Plans (for example, All Upfront)

  • REGION - The Amazon Web Services Region.

  • INSTANCE_TYPE_FAMILY - The family of instances (For example, m5)

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.

" + "documentation":"

The context for the call to GetDimensionValues. This can be RESERVATIONS or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is set to RESERVATIONS, the resulting dimension values can be used in the GetReservationUtilization operation. If the context is set to COST_AND_USAGE, the resulting dimension values can be used in the GetCostAndUsage operation.

If you set the context to COST_AND_USAGE, you can use the following dimensions for searching:

  • AZ - The Availability Zone. An example is us-east-1a.

  • BILLING_ENTITY - The Amazon Web Services seller that your account is with. Possible values are the following:

    - Amazon Web Services(Amazon Web Services): The entity that sells Amazon Web Services.

    - AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian entity that's an acting reseller for Amazon Web Services in India.

    - Amazon Web Services Marketplace: The entity that supports the sale of solutions that are built on Amazon Web Services by third-party software providers.

  • CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.

  • DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are SingleAZ and MultiAZ.

  • DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL.

  • INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge.

  • INSTANCE_TYPE_FAMILY - A family of instance types optimized to fit different use cases. Examples are Compute Optimized (for example, C4, C5, C6g, and C7g), Memory Optimization (for example, R4, R5n, R5b, and R6g).

  • INVOICING_ENTITY - The name of the entity that issues the Amazon Web Services invoice.

  • LEGAL_ENTITY_NAME - The name of the organization that sells you Amazon Web Services services, such as Amazon Web Services.

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • OPERATING_SYSTEM - The operating system. Examples are Windows or Linux.

  • OPERATION - The action performed. Examples include RunInstance and CreateBucket.

  • PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux.

  • PURCHASE_TYPE - The reservation type of the purchase that this usage is related to. Examples include On-Demand Instances and Standard Reserved Instances.

  • RESERVATION_ID - The unique identifier for an Amazon Web Services Reservation Instance.

  • SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.

  • SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute).

  • SERVICE - The Amazon Web Services service such as Amazon DynamoDB.

  • TENANCY - The tenancy of a resource. Examples are shared or dedicated.

  • USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the GetDimensionValues operation includes a unit attribute. Examples include GB and Hrs.

  • USAGE_TYPE_GROUP - The grouping of common usage types. An example is Amazon EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute.

  • REGION - The Amazon Web Services Region.

  • RECORD_TYPE - The different types of charges such as Reserved Instance (RI) fees, usage costs, tax refunds, and credits.

  • RESOURCE_ID - The unique identifier of the resource. ResourceId is an opt-in feature only available for last 14 days for EC2-Compute Service.

If you set the context to RESERVATIONS, you can use the following dimensions for searching:

  • AZ - The Availability Zone. An example is us-east-1a.

  • CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.

  • DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are SingleAZ and MultiAZ.

  • INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge.

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux.

  • REGION - The Amazon Web Services Region.

  • SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone.

  • TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI).

  • TENANCY - The tenancy of a resource. Examples are shared or dedicated.

If you set the context to SAVINGS_PLANS, you can use the following dimensions for searching:

  • SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)

  • PAYMENT_OPTION - The payment option for the given Savings Plans (for example, All Upfront)

  • REGION - The Amazon Web Services Region.

  • INSTANCE_TYPE_FAMILY - The family of instances (For example, m5)

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.

" }, "Filter":{"shape":"Expression"}, "SortBy":{ "shape":"SortDefinitions", - "documentation":"

The value by which you want to sort the data.

The key represents cost and usage metrics. The following values are supported:

  • BlendedCost

  • UnblendedCost

  • AmortizedCost

  • NetAmortizedCost

  • NetUnblendedCost

  • UsageQuantity

  • NormalizedUsageAmount

Supported values for SortOrder are ASCENDING or DESCENDING.

When you specify a SortBy paramater, the context must be COST_AND_USAGE. Further, when using SortBy, NextPageToken and SearchString are not supported.

" + "documentation":"

The value that you want to sort the data by.

The key represents cost and usage metrics. The following values are supported:

  • BlendedCost

  • UnblendedCost

  • AmortizedCost

  • NetAmortizedCost

  • NetUnblendedCost

  • UsageQuantity

  • NormalizedUsageAmount

The supported values for the SortOrder key are ASCENDING or DESCENDING.

When you specify a SortBy paramater, the context must be COST_AND_USAGE. Further, when using SortBy, NextPageToken and SearchString aren't supported.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

This field is only used when SortBy is provided in the request. The maximum number of objects that to be returned for this request. If MaxResults is not specified with SortBy, the request will return 1000 results as the default value for this parameter.

For GetDimensionValues, MaxResults has an upper limit of 1000.

" + "documentation":"

This field is only used when SortBy is provided in the request. The maximum number of objects that are returned for this request. If MaxResults isn't specified with SortBy, the request returns 1000 results as the default value for this parameter.

For GetDimensionValues, MaxResults has an upper limit of 1000.

" }, "NextPageToken":{ "shape":"NextPageToken", @@ -2103,7 +2287,7 @@ "members":{ "DimensionValues":{ "shape":"DimensionValuesWithAttributesList", - "documentation":"

The filters that you used to filter your request. Some dimensions are available only for a specific context.

If you set the context to COST_AND_USAGE, you can use the following dimensions for searching:

  • AZ - The Availability Zone. An example is us-east-1a.

  • DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL.

  • INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge.

  • LEGAL_ENTITY_NAME - The name of the organization that sells you Amazon Web Services services, such as Amazon Web Services.

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • OPERATING_SYSTEM - The operating system. Examples are Windows or Linux.

  • OPERATION - The action performed. Examples include RunInstance and CreateBucket.

  • PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux.

  • PURCHASE_TYPE - The reservation type of the purchase to which this usage is related. Examples include On-Demand Instances and Standard Reserved Instances.

  • SERVICE - The Amazon Web Services service such as Amazon DynamoDB.

  • USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the GetDimensionValues operation includes a unit attribute. Examples include GB and Hrs.

  • USAGE_TYPE_GROUP - The grouping of common usage types. An example is Amazon EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute.

  • RECORD_TYPE - The different types of charges such as RI fees, usage costs, tax refunds, and credits.

  • RESOURCE_ID - The unique identifier of the resource. ResourceId is an opt-in feature only available for last 14 days for EC2-Compute Service.

If you set the context to RESERVATIONS, you can use the following dimensions for searching:

  • AZ - The Availability Zone. An example is us-east-1a.

  • CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.

  • DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are SingleAZ and MultiAZ.

  • INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge.

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux.

  • REGION - The Amazon Web Services Region.

  • SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone.

  • TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI).

  • TENANCY - The tenancy of a resource. Examples are shared or dedicated.

If you set the context to SAVINGS_PLANS, you can use the following dimensions for searching:

  • SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)

  • PAYMENT_OPTION - Payment option for the given Savings Plans (for example, All Upfront)

  • REGION - The Amazon Web Services Region.

  • INSTANCE_TYPE_FAMILY - The family of instances (For example, m5)

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan

" + "documentation":"

The filters that you used to filter your request. Some dimensions are available only for a specific context.

If you set the context to COST_AND_USAGE, you can use the following dimensions for searching:

  • AZ - The Availability Zone. An example is us-east-1a.

  • DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL.

  • INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge.

  • LEGAL_ENTITY_NAME - The name of the organization that sells you Amazon Web Services services, such as Amazon Web Services.

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • OPERATING_SYSTEM - The operating system. Examples are Windows or Linux.

  • OPERATION - The action performed. Examples include RunInstance and CreateBucket.

  • PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux.

  • PURCHASE_TYPE - The reservation type of the purchase to which this usage is related. Examples include On-Demand Instances and Standard Reserved Instances.

  • SERVICE - The Amazon Web Services service such as Amazon DynamoDB.

  • USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the GetDimensionValues operation includes a unit attribute. Examples include GB and Hrs.

  • USAGE_TYPE_GROUP - The grouping of common usage types. An example is Amazon EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute.

  • RECORD_TYPE - The different types of charges such as RI fees, usage costs, tax refunds, and credits.

  • RESOURCE_ID - The unique identifier of the resource. ResourceId is an opt-in feature only available for last 14 days for EC2-Compute Service. You can opt-in by enabling Hourly and Resource Level Data in Cost Management Console preferences.

If you set the context to RESERVATIONS, you can use the following dimensions for searching:

  • AZ - The Availability Zone. An example is us-east-1a.

  • CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.

  • DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are SingleAZ and MultiAZ.

  • INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge.

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • PLATFORM - The Amazon EC2 operating system. Examples are Windows or Linux.

  • REGION - The Amazon Web Services Region.

  • SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone.

  • TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI).

  • TENANCY - The tenancy of a resource. Examples are shared or dedicated.

If you set the context to SAVINGS_PLANS, you can use the following dimensions for searching:

  • SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)

  • PAYMENT_OPTION - Payment option for the given Savings Plans (for example, All Upfront)

  • REGION - The Amazon Web Services Region.

  • INSTANCE_TYPE_FAMILY - The family of instances (For example, m5)

  • LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the Amazon Web Services ID of the member account.

  • SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan

" }, "ReturnSize":{ "shape":"PageSize", @@ -2183,7 +2367,7 @@ "members":{ "AccountId":{ "shape":"GenericString", - "documentation":"

The account ID that is associated with the recommendation.

" + "documentation":"

The account ID that's associated with the recommendation.

" }, "Service":{ "shape":"GenericString", @@ -2243,7 +2427,7 @@ "members":{ "TimePeriod":{ "shape":"DateInterval", - "documentation":"

Sets the start and end dates for retrieving RI utilization. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

" + "documentation":"

Sets the start and end dates for retrieving Reserved Instance (RI) utilization. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

" }, "GroupBy":{ "shape":"GroupDefinitions", @@ -2259,7 +2443,7 @@ }, "SortBy":{ "shape":"SortDefinition", - "documentation":"

The value by which you want to sort the data.

The following values are supported for Key:

  • UtilizationPercentage

  • UtilizationPercentageInUnits

  • PurchasedHours

  • PurchasedUnits

  • TotalActualHours

  • TotalActualUnits

  • UnusedHours

  • UnusedUnits

  • OnDemandCostOfRIHoursUsed

  • NetRISavings

  • TotalPotentialRISavings

  • AmortizedUpfrontFee

  • AmortizedRecurringFee

  • TotalAmortizedFee

  • RICostForUnusedHours

  • RealizedSavings

  • UnrealizedSavings

Supported values for SortOrder are ASCENDING or DESCENDING.

" + "documentation":"

The value that you want to sort the data by.

The following values are supported for Key:

  • UtilizationPercentage

  • UtilizationPercentageInUnits

  • PurchasedHours

  • PurchasedUnits

  • TotalActualHours

  • TotalActualUnits

  • UnusedHours

  • UnusedUnits

  • OnDemandCostOfRIHoursUsed

  • NetRISavings

  • TotalPotentialRISavings

  • AmortizedUpfrontFee

  • AmortizedRecurringFee

  • TotalAmortizedFee

  • RICostForUnusedHours

  • RealizedSavings

  • UnrealizedSavings

The supported values for SortOrder are ASCENDING and DESCENDING.

" }, "NextPageToken":{ "shape":"NextPageToken", @@ -2278,11 +2462,11 @@ "members":{ "UtilizationsByTime":{ "shape":"UtilizationsByTime", - "documentation":"

The amount of time that you used your RIs.

" + "documentation":"

The amount of time that you used your Reserved Instances (RIs).

" }, "Total":{ "shape":"ReservationAggregates", - "documentation":"

The total amount of time that you used your RIs.

" + "documentation":"

The total amount of time that you used your Reserved Instances (RIs).

" }, "NextPageToken":{ "shape":"NextPageToken", @@ -2297,7 +2481,7 @@ "Filter":{"shape":"Expression"}, "Configuration":{ "shape":"RightsizingRecommendationConfiguration", - "documentation":"

Enables you to customize recommendations across two attributes. You can choose to view recommendations for instances within the same instance families or across different instance families. You can also choose to view your estimated savings associated with recommendations with consideration of existing Savings Plans or RI benefits, or neither.

" + "documentation":"

You can use Configuration to customize recommendations across two attributes. You can choose to view recommendations for instances within the same instance families or across different instance families. You can also choose to view your estimated savings that are associated with recommendations with consideration of existing Savings Plans or RI benefits, or neither.

" }, "Service":{ "shape":"GenericString", @@ -2334,7 +2518,7 @@ }, "Configuration":{ "shape":"RightsizingRecommendationConfiguration", - "documentation":"

Enables you to customize recommendations across two attributes. You can choose to view recommendations for instances within the same instance families or across different instance families. You can also choose to view your estimated savings associated with recommendations with consideration of existing Savings Plans or RI benefits, or neither.

" + "documentation":"

You can use Configuration to customize recommendations across two attributes. You can choose to view recommendations for instances within the same instance families or across different instance families. You can also choose to view your estimated savings that are associated with recommendations with consideration of existing Savings Plans or RI benefits, or neither.

" } } }, @@ -2373,7 +2557,7 @@ }, "SortBy":{ "shape":"SortDefinition", - "documentation":"

The value by which you want to sort the data.

The following values are supported for Key:

  • SpendCoveredBySavingsPlan

  • OnDemandCost

  • CoveragePercentage

  • TotalCost

  • InstanceFamily

  • Region

  • Service

Supported values for SortOrder are ASCENDING or DESCENDING.

" + "documentation":"

The value that you want to sort the data by.

The following values are supported for Key:

  • SpendCoveredBySavingsPlan

  • OnDemandCost

  • CoveragePercentage

  • TotalCost

  • InstanceFamily

  • Region

  • Service

The supported values for SortOrder are ASCENDING and DESCENDING.

" } } }, @@ -2402,15 +2586,15 @@ "members":{ "SavingsPlansType":{ "shape":"SupportedSavingsPlansType", - "documentation":"

The Savings Plans recommendation type requested.

" + "documentation":"

The Savings Plans recommendation type that's requested.

" }, "TermInYears":{ "shape":"TermInYears", - "documentation":"

The savings plan recommendation term used to generate these recommendations.

" + "documentation":"

The savings plan recommendation term that's used to generate these recommendations.

" }, "PaymentOption":{ "shape":"PaymentOption", - "documentation":"

The payment option used to generate these recommendations.

" + "documentation":"

The payment option that's used to generate these recommendations.

" }, "AccountScope":{ "shape":"AccountScope", @@ -2426,11 +2610,11 @@ }, "LookbackPeriodInDays":{ "shape":"LookbackPeriodInDays", - "documentation":"

The lookback period used to generate the recommendation.

" + "documentation":"

The lookback period that's used to generate the recommendation.

" }, "Filter":{ "shape":"Expression", - "documentation":"

You can filter your recommendations by Account ID with the LINKED_ACCOUNT dimension. To filter your recommendations by Account ID, specify Key as LINKED_ACCOUNT and Value as the comma-separated Acount ID(s) for which you want to see Savings Plans purchase recommendations.

For GetSavingsPlansPurchaseRecommendation, the Filter does not include CostCategories or Tags. It only includes Dimensions. With Dimensions, Key must be LINKED_ACCOUNT and Value can be a single Account ID or multiple comma-separated Account IDs for which you want to see Savings Plans Purchase Recommendations. AND and OR operators are not supported.

" + "documentation":"

You can filter your recommendations by Account ID with the LINKED_ACCOUNT dimension. To filter your recommendations by Account ID, specify Key as LINKED_ACCOUNT and Value as the comma-separated Acount ID(s) that you want to see Savings Plans purchase recommendations for.

For GetSavingsPlansPurchaseRecommendation, the Filter doesn't include CostCategories or Tags. It only includes Dimensions. With Dimensions, Key must be LINKED_ACCOUNT and Value can be a single Account ID or multiple comma-separated Account IDs that you want to see Savings Plans Purchase Recommendations for. AND and OR operators are not supported.

" } } }, @@ -2439,7 +2623,7 @@ "members":{ "Metadata":{ "shape":"SavingsPlansPurchaseRecommendationMetadata", - "documentation":"

Information regarding this specific recommendation set.

" + "documentation":"

Information that regards this specific recommendation set.

" }, "SavingsPlansPurchaseRecommendation":{ "shape":"SavingsPlansPurchaseRecommendation", @@ -2478,7 +2662,7 @@ }, "SortBy":{ "shape":"SortDefinition", - "documentation":"

The value by which you want to sort the data.

The following values are supported for Key:

  • UtilizationPercentage

  • TotalCommitment

  • UsedCommitment

  • UnusedCommitment

  • NetSavings

  • AmortizedRecurringCommitment

  • AmortizedUpfrontCommitment

Supported values for SortOrder are ASCENDING or DESCENDING.

" + "documentation":"

The value that you want to sort the data by.

The following values are supported for Key:

  • UtilizationPercentage

  • TotalCommitment

  • UsedCommitment

  • UnusedCommitment

  • NetSavings

  • AmortizedRecurringCommitment

  • AmortizedUpfrontCommitment

The supported values for SortOrder are ASCENDING and DESCENDING.

" } } }, @@ -2522,7 +2706,7 @@ }, "SortBy":{ "shape":"SortDefinition", - "documentation":"

The value by which you want to sort the data.

The following values are supported for Key:

  • UtilizationPercentage

  • TotalCommitment

  • UsedCommitment

  • UnusedCommitment

  • NetSavings

Supported values for SortOrder are ASCENDING or DESCENDING.

" + "documentation":"

The value that you want to sort the data by.

The following values are supported for Key:

  • UtilizationPercentage

  • TotalCommitment

  • UsedCommitment

  • UnusedCommitment

  • NetSavings

The supported values for SortOrder are ASCENDING and DESCENDING.

" } } }, @@ -2532,7 +2716,7 @@ "members":{ "SavingsPlansUtilizationsByTime":{ "shape":"SavingsPlansUtilizationsByTime", - "documentation":"

The amount of cost/commitment you used your Savings Plans. This allows you to specify date ranges.

" + "documentation":"

The amount of cost/commitment that you used your Savings Plans. You can use it to specify date ranges.

" }, "Total":{ "shape":"SavingsPlansUtilizationAggregates", @@ -2559,11 +2743,11 @@ "Filter":{"shape":"Expression"}, "SortBy":{ "shape":"SortDefinitions", - "documentation":"

The value by which you want to sort the data.

The key represents cost and usage metrics. The following values are supported:

  • BlendedCost

  • UnblendedCost

  • AmortizedCost

  • NetAmortizedCost

  • NetUnblendedCost

  • UsageQuantity

  • NormalizedUsageAmount

Supported values for SortOrder are ASCENDING or DESCENDING.

When using SortBy, NextPageToken and SearchString are not supported.

" + "documentation":"

The value that you want to sort the data by.

The key represents cost and usage metrics. The following values are supported:

  • BlendedCost

  • UnblendedCost

  • AmortizedCost

  • NetAmortizedCost

  • NetUnblendedCost

  • UsageQuantity

  • NormalizedUsageAmount

The supported values for SortOrder are ASCENDING and DESCENDING.

When you use SortBy, NextPageToken and SearchString aren't supported.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

This field is only used when SortBy is provided in the request. The maximum number of objects that to be returned for this request. If MaxResults is not specified with SortBy, the request will return 1000 results as the default value for this parameter.

For GetTags, MaxResults has an upper limit of 1000.

" + "documentation":"

This field is only used when SortBy is provided in the request. The maximum number of objects that are returned for this request. If MaxResults isn't specified with SortBy, the request returns 1000 results as the default value for this parameter.

For GetTags, MaxResults has an upper quota of 1000.

" }, "NextPageToken":{ "shape":"NextPageToken", @@ -2607,7 +2791,7 @@ "members":{ "TimePeriod":{ "shape":"DateInterval", - "documentation":"

The start and end dates of the period that you want to retrieve usage forecast for. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01. The start date must be equal to or later than the current date to avoid a validation error.

" + "documentation":"

The start and end dates of the period that you want to retrieve usage forecast for. The start date is included in the period, but the end date isn't included in the period. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01. The start date must be equal to or later than the current date to avoid a validation error.

" }, "Metric":{ "shape":"Metric", @@ -2623,7 +2807,7 @@ }, "PredictionIntervalLevel":{ "shape":"PredictionIntervalLevel", - "documentation":"

Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction intervals.

" + "documentation":"

Amazon Web Services Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction intervals.

" } } }, @@ -2760,20 +2944,59 @@ "documentation":"

You made too many calls in a short period of time. Try again later.

", "exception":true }, + "ListCostAllocationTagsRequest":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"CostAllocationTagStatus", + "documentation":"

The status of cost allocation tag keys that are returned for this request.

" + }, + "TagKeys":{ + "shape":"CostAllocationTagKeyList", + "documentation":"

The list of cost allocation tag keys that are returned for this request.

" + }, + "Type":{ + "shape":"CostAllocationTagType", + "documentation":"

The type of CostAllocationTag object that are returned for this request. The AWSGenerated type tags are tags that Amazon Web Services defines and applies to support Amazon Web Services resources for cost allocation purposes. The UserDefined type tags are tags that you define, create, and apply to resources.

" + }, + "NextToken":{ + "shape":"NextPageToken", + "documentation":"

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

" + }, + "MaxResults":{ + "shape":"CostAllocationTagsMaxResults", + "documentation":"

The maximum number of objects that are returned for this request. By default, the request returns 100 results.

", + "box":true + } + } + }, + "ListCostAllocationTagsResponse":{ + "type":"structure", + "members":{ + "CostAllocationTags":{ + "shape":"CostAllocationTagList", + "documentation":"

A list of cost allocation tags that includes the detailed metadata for each one.

" + }, + "NextToken":{ + "shape":"NextPageToken", + "documentation":"

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

" + } + } + }, "ListCostCategoryDefinitionsRequest":{ "type":"structure", "members":{ "EffectiveOn":{ "shape":"ZonedDateTime", - "documentation":"

The date when the Cost Category was effective.

" + "documentation":"

The date when the Cost Category was effective.

" }, "NextToken":{ "shape":"NextPageToken", - "documentation":"

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

" + "documentation":"

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

" }, "MaxResults":{ "shape":"CostCategoryMaxResults", - "documentation":"

The number of entries a paginated response contains.

", + "documentation":"

The number of entries a paginated response contains.

", "box":true } } @@ -2783,11 +3006,45 @@ "members":{ "CostCategoryReferences":{ "shape":"CostCategoryReferencesList", - "documentation":"

A reference to a Cost Category containing enough information to identify the Cost Category.

" + "documentation":"

A reference to a Cost Category that contains enough information to identify the Cost Category.

" }, "NextToken":{ "shape":"NextPageToken", - "documentation":"

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

" + "documentation":"

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

" + } + } + }, + "ListSavingsPlansPurchaseRecommendationGenerationRequest":{ + "type":"structure", + "members":{ + "GenerationStatus":{ + "shape":"GenerationStatus", + "documentation":"

The status of the recommendation generation.

" + }, + "RecommendationIds":{ + "shape":"RecommendationIdList", + "documentation":"

The IDs for each specific recommendation.

" + }, + "PageSize":{ + "shape":"NonNegativeInteger", + "documentation":"

The number of recommendations that you want returned in a single response object.

" + }, + "NextPageToken":{ + "shape":"NextPageToken", + "documentation":"

The token to retrieve the next set of results.

" + } + } + }, + "ListSavingsPlansPurchaseRecommendationGenerationResponse":{ + "type":"structure", + "members":{ + "GenerationSummaryList":{ + "shape":"GenerationSummaryList", + "documentation":"

The list of historical recommendation generations.

" + }, + "NextPageToken":{ + "shape":"NextPageToken", + "documentation":"

The token to retrieve the next set of results.

" } } }, @@ -2806,7 +3063,7 @@ "members":{ "ResourceTags":{ "shape":"ResourceTagList", - "documentation":"

A list of tag key value pairs that are associated with the response.

" + "documentation":"

A list of tag key value pairs that are associated with the resource.

" } } }, @@ -2889,7 +3146,7 @@ "documentation":"

Determines whether this instance type is the Amazon Web Services default recommendation.

" } }, - "documentation":"

Details on the modification recommendation.

" + "documentation":"

Details for the modification recommendation.

" }, "MonitorArnList":{ "type":"list", @@ -2912,22 +3169,22 @@ "members":{ "NetworkInBytesPerSecond":{ "shape":"GenericString", - "documentation":"

The network inbound throughput utilization measured in Bytes per second.

" + "documentation":"

The network inbound throughput utilization measured in Bytes per second (Bps).

" }, "NetworkOutBytesPerSecond":{ "shape":"GenericString", - "documentation":"

The network outbound throughput utilization measured in Bytes per second.

" + "documentation":"

The network outbound throughput utilization measured in Bytes per second (Bps).

" }, "NetworkPacketsInPerSecond":{ "shape":"GenericString", - "documentation":"

The network ingress packets that are measured in packets per second.

" + "documentation":"

The network inbound packets that are measured in packets per second.

" }, "NetworkPacketsOutPerSecond":{ "shape":"GenericString", - "documentation":"

The network outgress packets that are measured in packets per second.

" + "documentation":"

The network outbound packets that are measured in packets per second.

" } }, - "documentation":"

The network field that contains a list of network metrics that are associated with the current instance.

" + "documentation":"

The network field that contains a list of network metrics that are associated with the current instance.

" }, "NextPageToken":{ "type":"string", @@ -3069,6 +3326,16 @@ }, "RICostForUnusedHours":{"type":"string"}, "RealizedSavings":{"type":"string"}, + "RecommendationId":{ + "type":"string", + "max":36, + "min":36, + "pattern":"^[\\S\\s]{8}-[\\S\\s]{4}-[\\S\\s]{4}-[\\S\\s]{4}-[\\S\\s]{12}$" + }, + "RecommendationIdList":{ + "type":"list", + "member":{"shape":"RecommendationId"} + }, "RecommendationTarget":{ "type":"string", "enum":[ @@ -3243,7 +3510,7 @@ "members":{ "AccountId":{ "shape":"GenericString", - "documentation":"

The account that this RI recommendation is for.

" + "documentation":"

The account that this Reserved Instance (RI) recommendation is for.

" }, "InstanceDetails":{ "shape":"InstanceDetails", @@ -3295,11 +3562,11 @@ }, "EstimatedMonthlySavingsAmount":{ "shape":"GenericString", - "documentation":"

How much Amazon Web Services estimates that this specific recommendation could save you in a month.

" + "documentation":"

How much Amazon Web Services estimates that this specific recommendation might save you in a month.

" }, "EstimatedMonthlySavingsPercentage":{ "shape":"GenericString", - "documentation":"

How much Amazon Web Services estimates that this specific recommendation could save you in a month, as a percentage of your overall costs.

" + "documentation":"

How much Amazon Web Services estimates that this specific recommendation might save you in a month, as a percentage of your overall costs.

" }, "EstimatedMonthlyOnDemandCost":{ "shape":"GenericString", @@ -3307,7 +3574,7 @@ }, "EstimatedReservationCostForLookbackPeriod":{ "shape":"GenericString", - "documentation":"

How much Amazon Web Services estimates that you would have spent for all usage during the specified historical period if you had a reservation.

" + "documentation":"

How much Amazon Web Services estimates that you might spend for all usage during the specified historical period if you had a reservation.

" }, "UpfrontCost":{ "shape":"GenericString", @@ -3393,10 +3660,10 @@ "members":{ "EC2ResourceDetails":{ "shape":"EC2ResourceDetails", - "documentation":"

Details on the Amazon EC2 resource.

" + "documentation":"

Details for the Amazon EC2 resource.

" } }, - "documentation":"

Details on the resource.

" + "documentation":"

Details for the resource.

" }, "ResourceNotFoundException":{ "type":"structure", @@ -3416,14 +3683,14 @@ "members":{ "Key":{ "shape":"ResourceTagKey", - "documentation":"

The key that is associated with the tag.

" + "documentation":"

The key that's associated with the tag.

" }, "Value":{ "shape":"ResourceTagValue", - "documentation":"

The value that is associated with the tag.

" + "documentation":"

The value that's associated with the tag.

" } }, - "documentation":"

The tag structure that contains a tag key and value.

Tagging is supported only for the following Cost Explorer resource types: AnomalyMonitor , AnomalySubscription , CostCategory .

" + "documentation":"

The tag structure that contains a tag key and value.

Tagging is supported only for the following Cost Explorer resource types: AnomalyMonitor , AnomalySubscription , CostCategory .

" }, "ResourceTagKey":{ "type":"string", @@ -3510,7 +3777,7 @@ }, "FindingReasonCodes":{ "shape":"FindingReasonCodes", - "documentation":"

The list of possible reasons why the recommendation is generated such as under or over utilization of specific metrics (for example, CPU, Memory, Network).

" + "documentation":"

The list of possible reasons why the recommendation is generated, such as under- or over-utilization of specific metrics (for example, CPU, Memory, Network).

" } }, "documentation":"

Recommendations to rightsize resources.

" @@ -3531,7 +3798,7 @@ "documentation":"

The option to consider RI or Savings Plans discount benefits in your savings calculation. The default value is TRUE.

" } }, - "documentation":"

You can use RightsizingRecommendationConfiguration to customize recommendations across two attributes. You can choose to view recommendations for instances within the same instance families or across different instance families. You can also choose to view your estimated savings that are associated with recommendations with consideration of existing Savings Plans or RI benefits, or neither.

" + "documentation":"

You can use RightsizingRecommendationConfiguration to customize recommendations across two attributes. You can choose to view recommendations for instances within the same instance families or across different instance families. You can also choose to view your estimated savings that are associated with recommendations with consideration of existing Savings Plans or Reserved Instance (RI) benefits, or neither.

" }, "RightsizingRecommendationList":{ "type":"list", @@ -3593,7 +3860,7 @@ "members":{ "Service":{ "shape":"GenericString", - "documentation":"

The Amazon Web Services service name that's associated with the cost anomaly.

" + "documentation":"

The Amazon Web Service name that's associated with the cost anomaly.

" }, "Region":{ "shape":"GenericString", @@ -3606,9 +3873,13 @@ "UsageType":{ "shape":"GenericString", "documentation":"

The UsageType value that's associated with the cost anomaly.

" + }, + "LinkedAccountName":{ + "shape":"GenericString", + "documentation":"

The member account name value that's associated with the cost anomaly.

" } }, - "documentation":"

The combination of Amazon Web Services service, linked account, Region, and usage type where a cost anomaly is observed.

" + "documentation":"

The combination of Amazon Web Service, linked account, linked account name, Region, and usage type where a cost anomaly is observed. The linked account name will only be available when the account name can be identified.

" }, "RootCauses":{ "type":"list", @@ -3646,14 +3917,14 @@ }, "TimePeriod":{"shape":"DateInterval"} }, - "documentation":"

The amount of Savings Plans eligible usage that is covered by Savings Plans. All calculations consider the On-Demand equivalent of your Savings Plans usage.

" + "documentation":"

The amount of Savings Plans eligible usage that's covered by Savings Plans. All calculations consider the On-Demand equivalent of your Savings Plans usage.

" }, "SavingsPlansCoverageData":{ "type":"structure", "members":{ "SpendCoveredBySavingsPlans":{ "shape":"GenericString", - "documentation":"

The amount of your Amazon Web Services usage that is covered by a Savings Plans.

" + "documentation":"

The amount of your Amazon Web Services usage that's covered by a Savings Plans.

" }, "OnDemandCost":{ "shape":"GenericString", @@ -3722,15 +3993,15 @@ }, "PaymentOption":{ "shape":"PaymentOption", - "documentation":"

The payment option used to generate the recommendation.

" + "documentation":"

The payment option that's used to generate the recommendation.

" }, "LookbackPeriodInDays":{ "shape":"LookbackPeriodInDays", - "documentation":"

The lookback period in days, used to generate the recommendation.

" + "documentation":"

The lookback period in days that's used to generate the recommendation.

" }, "SavingsPlansPurchaseRecommendationDetails":{ "shape":"SavingsPlansPurchaseRecommendationDetailList", - "documentation":"

Details for the Savings Plans we recommend that you purchase to cover existing Savings Plans eligible workloads.

" + "documentation":"

Details for the Savings Plans that we recommend that you purchase to cover existing Savings Plans eligible workloads.

" }, "SavingsPlansPurchaseRecommendationSummary":{ "shape":"SavingsPlansPurchaseRecommendationSummary", @@ -3772,7 +4043,7 @@ }, "EstimatedOnDemandCostWithCurrentCommitment":{ "shape":"GenericString", - "documentation":"

The estimated On-Demand costs you would expect with no additional commitment, based on your usage of the selected time period and the Savings Plans you own.

" + "documentation":"

The estimated On-Demand costs you expect with no additional commitment, based on your usage of the selected time period and the Savings Plans you own.

" }, "EstimatedSavingsAmount":{ "shape":"GenericString", @@ -3822,7 +4093,7 @@ }, "GenerationTimestamp":{ "shape":"GenericString", - "documentation":"

The timestamp showing when the recommendations were generated.

" + "documentation":"

The timestamp that shows when the recommendations were generated.

" }, "AdditionalMetadata":{ "shape":"GenericString", @@ -3876,7 +4147,7 @@ }, "EstimatedOnDemandCostWithCurrentCommitment":{ "shape":"GenericString", - "documentation":"

The estimated On-Demand costs you would expect with no additional commitment. It's based on your usage of the selected time period and the Savings Plans you own.

" + "documentation":"

The estimated On-Demand costs you expect with no additional commitment. It's based on your usage of the selected time period and the Savings Plans you own.

" } }, "documentation":"

Summary metrics for your Savings Plans Purchase Recommendations.

" @@ -3927,7 +4198,7 @@ }, "Savings":{ "shape":"SavingsPlansSavings", - "documentation":"

The amount saved by using existing Savings Plans. Savings returns both net savings from Savings Plans, as well as the onDemandCostEquivalent of the Savings Plans when considering the utilization rate.

" + "documentation":"

The amount that's saved by using existing Savings Plans. Savings returns both net savings from Savings Plans and also the onDemandCostEquivalent of the Savings Plans when considering the utilization rate.

" }, "AmortizedCommitment":{ "shape":"SavingsPlansAmortizedCommitment", @@ -3950,14 +4221,14 @@ }, "Savings":{ "shape":"SavingsPlansSavings", - "documentation":"

The amount saved by using existing Savings Plans. Savings returns both net savings from Savings Plans as well as the onDemandCostEquivalent of the Savings Plans when considering the utilization rate.

" + "documentation":"

The amount that's saved by using existing Savings Plans. Savings returns both net savings from Savings Plans and also the onDemandCostEquivalent of the Savings Plans when considering the utilization rate.

" }, "AmortizedCommitment":{ "shape":"SavingsPlansAmortizedCommitment", "documentation":"

The total amortized commitment for a Savings Plans. This includes the sum of the upfront and recurring Savings Plans fees.

" } }, - "documentation":"

The amount of Savings Plans utilization, in hours.

" + "documentation":"

The amount of Savings Plans utilization (in hours).

" }, "SavingsPlansUtilizationDetail":{ "type":"structure", @@ -3976,14 +4247,14 @@ }, "Savings":{ "shape":"SavingsPlansSavings", - "documentation":"

The amount saved by using existing Savings Plans. Savings returns both net savings from savings plans as well as the onDemandCostEquivalent of the Savings Plans when considering the utilization rate.

" + "documentation":"

The amount saved by using existing Savings Plans. Savings returns both net savings from savings plans and also the onDemandCostEquivalent of the Savings Plans when considering the utilization rate.

" }, "AmortizedCommitment":{ "shape":"SavingsPlansAmortizedCommitment", "documentation":"

The total amortized commitment for a Savings Plans. Includes the sum of the upfront and recurring Savings Plans fees.

" } }, - "documentation":"

A single daily or monthly Savings Plans utilization rate, and details for your account. A management account in an organization have access to member accounts. You can use GetDimensionValues to determine the possible dimension values.

" + "documentation":"

A single daily or monthly Savings Plans utilization rate and details for your account. A management account in an organization have access to member accounts. You can use GetDimensionValues to determine the possible dimension values.

" }, "SavingsPlansUtilizationDetails":{ "type":"list", @@ -4030,7 +4301,7 @@ "documentation":"

The order that's used to sort the data.

" } }, - "documentation":"

The details of how to sort the data.

" + "documentation":"

The details for how to sort the data.

" }, "SortDefinitionKey":{ "type":"string", @@ -4049,6 +4320,28 @@ "DESCENDING" ] }, + "StartSavingsPlansPurchaseRecommendationGenerationRequest":{ + "type":"structure", + "members":{ + } + }, + "StartSavingsPlansPurchaseRecommendationGenerationResponse":{ + "type":"structure", + "members":{ + "RecommendationId":{ + "shape":"RecommendationId", + "documentation":"

The ID for this specific recommendation.

" + }, + "GenerationStartedTime":{ + "shape":"ZonedDateTime", + "documentation":"

The start time of the recommendation generation.

" + }, + "EstimatedCompletionTime":{ + "shape":"ZonedDateTime", + "documentation":"

The estimated time for when the recommendation generation will complete.

" + } + } + }, "Subscriber":{ "type":"structure", "members":{ @@ -4122,7 +4415,7 @@ }, "ResourceTags":{ "shape":"ResourceTagList", - "documentation":"

A list of tag key-value pairs to be added to the resource.

Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services use

  • The maximum length of a key is 128 characters

  • The maximum length of a value is 256 characters

  • Valid characters for keys and values are: A-Z, a-z, spaces, _.:/=+-

  • Keys and values are case sensitive

  • Keys and values are trimmed for any leading or trailing whitespaces

  • Don’t use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services use

" + "documentation":"

A list of tag key-value pairs to be added to the resource.

Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services use

  • The maximum length of a key is 128 characters

  • The maximum length of a value is 256 characters

  • Keys and values can only contain alphanumeric characters, spaces, and any of the following: _.:/=+@-

  • Keys and values are case sensitive

  • Keys and values are trimmed for any leading or trailing whitespaces

  • Don’t use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services use

" } } }, @@ -4147,7 +4440,7 @@ "documentation":"

The match options that you can use to filter your results. MatchOptions is only applicable for actions related to Cost Category. The default values for MatchOptions are EQUALS and CASE_SENSITIVE.

" } }, - "documentation":"

The values that are available for a tag.

If Values and Key aren't specified, the ABSENT MatchOption is applied to all tags. That is, it's filtered on resources with no tags.

If Values is provided and Key isn't specified, the ABSENT MatchOption is applied to the tag Key only. That is, it's filtered on resources without the given tag key.

" + "documentation":"

The values that are available for a tag.

If Values and Key aren't specified, the ABSENT MatchOption is applied to all tags. That is, it's filtered on resources with no tags.

If Key is provided and Values isn't specified, the ABSENT MatchOption is applied to the tag Key only. That is, it's filtered on resources without the given tag key.

" }, "TagValuesList":{ "type":"list", @@ -4182,7 +4475,7 @@ }, "PlatformDifferences":{ "shape":"PlatformDifferences", - "documentation":"

Explains the actions you might need to take in order to successfully migrate your workloads from the current instance type to the recommended instance type.

" + "documentation":"

Explains the actions that you might need to take to successfully migrate your workloads from the current instance type to the recommended instance type.

" } }, "documentation":"

Details on recommended instance.

" @@ -4283,11 +4576,11 @@ "members":{ "ResourceArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the resource. For a list of supported resources, see ResourceTag.

" + "documentation":"

The Amazon Resource Name (ARN) of the resource. For a list of supported resources, see ResourceTag.

" }, "ResourceTagKeys":{ "shape":"ResourceTagKeyList", - "documentation":"

A list of tag keys associated with tags that need to be removed from the resource. If you specify a tag key that does not exist, it is ignored. Although the maximum number of array members is 200, user-tag maximum is 50. The remaining are reserved for Amazon Web Services use.

" + "documentation":"

A list of tag keys associated with tags that need to be removed from the resource. If you specify a tag key that doesn't exist, it's ignored. Although the maximum number of array members is 200, user-tag maximum is 50. The remaining are reserved for Amazon Web Services use.

" } } }, @@ -4362,6 +4655,49 @@ } } }, + "UpdateCostAllocationTagsStatusError":{ + "type":"structure", + "members":{ + "TagKey":{ + "shape":"TagKey", + "documentation":"

The key for the cost allocation tag.

" + }, + "Code":{ + "shape":"GenericString", + "documentation":"

An error code representing why the action failed on this entry.

" + }, + "Message":{ + "shape":"ErrorMessage", + "documentation":"

A message explaining why the action failed on this entry.

" + } + }, + "documentation":"

Gives a detailed description of the result of an action. It's on each cost allocation tag entry in the request.

" + }, + "UpdateCostAllocationTagsStatusErrors":{ + "type":"list", + "member":{"shape":"UpdateCostAllocationTagsStatusError"}, + "max":20, + "min":0 + }, + "UpdateCostAllocationTagsStatusRequest":{ + "type":"structure", + "required":["CostAllocationTagsStatus"], + "members":{ + "CostAllocationTagsStatus":{ + "shape":"CostAllocationTagStatusList", + "documentation":"

The list of CostAllocationTagStatusEntry objects that are used to update cost allocation tags status for this request.

" + } + } + }, + "UpdateCostAllocationTagsStatusResponse":{ + "type":"structure", + "members":{ + "Errors":{ + "shape":"UpdateCostAllocationTagsStatusErrors", + "documentation":"

A list of UpdateCostAllocationTagsStatusError objects with error details about each cost allocation tag that can't be updated. If there's no failure, an empty array returns.

" + } + } + }, "UpdateCostCategoryDefinitionRequest":{ "type":"structure", "required":[ @@ -4374,6 +4710,10 @@ "shape":"Arn", "documentation":"

The unique identifier for your Cost Category.

" }, + "EffectiveStart":{ + "shape":"ZonedDateTime", + "documentation":"

The Cost Category's effective start date. It can only be a billing start date (first day of the month). If the date isn't provided, it's the first day of the current month. Dates can't be before the previous twelve months, or in the future.

" + }, "RuleVersion":{"shape":"CostCategoryRuleVersion"}, "Rules":{ "shape":"CostCategoryRulesList", @@ -4391,11 +4731,11 @@ "members":{ "CostCategoryArn":{ "shape":"Arn", - "documentation":"

The unique identifier for your Cost Category.

" + "documentation":"

The unique identifier for your Cost Category.

" }, "EffectiveStart":{ "shape":"ZonedDateTime", - "documentation":"

The Cost Category's effective start date.

" + "documentation":"

The Cost Category's effective start date. It can only be a billing start date (first day of the month).

" } } }, @@ -4441,7 +4781,7 @@ }, "ZonedDateTime":{ "type":"string", - "documentation":"

The time period that you want the usage and costs for.

", + "documentation":"

The period of time that you want the usage and costs for.

", "max":25, "min":20, "pattern":"^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(([+-]\\d\\d:\\d\\d)|Z)$" diff --git a/botocore/data/chime-sdk-identity/2021-04-20/endpoint-rule-set-1.json b/botocore/data/chime-sdk-identity/2021-04-20/endpoint-rule-set-1.json new file mode 100644 index 00000000..4d3e2809 --- /dev/null +++ b/botocore/data/chime-sdk-identity/2021-04-20/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identity-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identity-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identity-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://identity-chime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/chime-sdk-identity/2021-04-20/examples-1.json b/botocore/data/chime-sdk-identity/2021-04-20/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/chime-sdk-identity/2021-04-20/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json b/botocore/data/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..17f01006 --- /dev/null +++ b/botocore/data/chime-sdk-media-pipelines/2021-07-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://media-pipelines-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://media-pipelines-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://media-pipelines-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://media-pipelines-chime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/chime-sdk-media-pipelines/2021-07-15/service-2.json b/botocore/data/chime-sdk-media-pipelines/2021-07-15/service-2.json index 234bf080..bb8baef4 100644 --- a/botocore/data/chime-sdk-media-pipelines/2021-07-15/service-2.json +++ b/botocore/data/chime-sdk-media-pipelines/2021-07-15/service-2.json @@ -29,7 +29,47 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Creates a media capture pipeline.

" + "documentation":"

Creates a media pipeline.

" + }, + "CreateMediaConcatenationPipeline":{ + "name":"CreateMediaConcatenationPipeline", + "http":{ + "method":"POST", + "requestUri":"/sdk-media-concatenation-pipelines", + "responseCode":201 + }, + "input":{"shape":"CreateMediaConcatenationPipelineRequest"}, + "output":{"shape":"CreateMediaConcatenationPipelineResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Creates a media concatenation pipeline.

" + }, + "CreateMediaLiveConnectorPipeline":{ + "name":"CreateMediaLiveConnectorPipeline", + "http":{ + "method":"POST", + "requestUri":"/sdk-media-live-connector-pipelines", + "responseCode":201 + }, + "input":{"shape":"CreateMediaLiveConnectorPipelineRequest"}, + "output":{"shape":"CreateMediaLiveConnectorPipelineResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Creates a streaming media pipeline in an Amazon Chime SDK meeting.

" }, "DeleteMediaCapturePipeline":{ "name":"DeleteMediaCapturePipeline", @@ -48,7 +88,26 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the media capture pipeline.

" + "documentation":"

Deletes the media pipeline.

" + }, + "DeleteMediaPipeline":{ + "name":"DeleteMediaPipeline", + "http":{ + "method":"DELETE", + "requestUri":"/sdk-media-pipelines/{mediaPipelineId}", + "responseCode":204 + }, + "input":{"shape":"DeleteMediaPipelineRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ThrottledClientException"}, + {"shape":"NotFoundException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Deletes the media pipeline.

" }, "GetMediaCapturePipeline":{ "name":"GetMediaCapturePipeline", @@ -68,7 +127,27 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Gets an existing media capture pipeline.

" + "documentation":"

Gets an existing media pipeline.

" + }, + "GetMediaPipeline":{ + "name":"GetMediaPipeline", + "http":{ + "method":"GET", + "requestUri":"/sdk-media-pipelines/{mediaPipelineId}", + "responseCode":200 + }, + "input":{"shape":"GetMediaPipelineRequest"}, + "output":{"shape":"GetMediaPipelineResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Gets an existing media pipeline.

" }, "ListMediaCapturePipelines":{ "name":"ListMediaCapturePipelines", @@ -88,7 +167,27 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Returns a list of media capture pipelines.

" + "documentation":"

Returns a list of media pipelines.

" + }, + "ListMediaPipelines":{ + "name":"ListMediaPipelines", + "http":{ + "method":"GET", + "requestUri":"/sdk-media-pipelines", + "responseCode":200 + }, + "input":{"shape":"ListMediaPipelinesRequest"}, + "output":{"shape":"ListMediaPipelinesResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Returns a list of media pipelines.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -108,7 +207,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Lists the tags applied to an Amazon Chime SDK media capture pipeline.

" + "documentation":"

Lists the tags available for a media pipeline.

" }, "TagResource":{ "name":"TagResource", @@ -128,7 +227,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Applies the specified tags to the specified Amazon Chime SDK media capture pipeline.

" + "documentation":"

The ARN of the media pipeline that you want to tag. Consists of he pipeline's endpoint region, resource ID, and pipeline ID.

" }, "UntagResource":{ "name":"UntagResource", @@ -148,7 +247,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Removes the specified tags from the specified Amazon Chime SDK media capture pipeline.

" + "documentation":"

Removes any tags from a media pipeline.

" } }, "shapes":{ @@ -165,6 +264,56 @@ "pattern":"^arn[\\/\\:\\-\\_\\.a-zA-Z0-9]+$", "sensitive":true }, + "ArtifactsConcatenationConfiguration":{ + "type":"structure", + "required":[ + "Audio", + "Video", + "Content", + "DataChannel", + "TranscriptionMessages", + "MeetingEvents", + "CompositedVideo" + ], + "members":{ + "Audio":{ + "shape":"AudioConcatenationConfiguration", + "documentation":"

The configuration for the audio artifacts concatenation.

" + }, + "Video":{ + "shape":"VideoConcatenationConfiguration", + "documentation":"

The configuration for the video artifacts concatenation.

" + }, + "Content":{ + "shape":"ContentConcatenationConfiguration", + "documentation":"

The configuration for the content artifacts concatenation.

" + }, + "DataChannel":{ + "shape":"DataChannelConcatenationConfiguration", + "documentation":"

The configuration for the data channel artifacts concatenation.

" + }, + "TranscriptionMessages":{ + "shape":"TranscriptionMessagesConcatenationConfiguration", + "documentation":"

The configuration for the transcription messages artifacts concatenation.

" + }, + "MeetingEvents":{ + "shape":"MeetingEventsConcatenationConfiguration", + "documentation":"

The configuration for the meeting events artifacts concatenation.

" + }, + "CompositedVideo":{ + "shape":"CompositedVideoConcatenationConfiguration", + "documentation":"

The configuration for the composited video artifacts concatenation.

" + } + }, + "documentation":"

The configuration for the artifacts concatenation.

" + }, + "ArtifactsConcatenationState":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, "ArtifactsConfiguration":{ "type":"structure", "required":[ @@ -184,6 +333,10 @@ "Content":{ "shape":"ContentArtifactsConfiguration", "documentation":"

The configuration for the content artifacts.

" + }, + "CompositedVideo":{ + "shape":"CompositedVideoArtifactsConfiguration", + "documentation":"

Enables video compositing.

" } }, "documentation":"

The configuration for the artifacts.

" @@ -200,6 +353,10 @@ "member":{"shape":"GuidString"}, "min":1 }, + "AudioArtifactsConcatenationState":{ + "type":"string", + "enum":["Enabled"] + }, "AudioArtifactsConfiguration":{ "type":"structure", "required":["MuxType"], @@ -211,13 +368,36 @@ }, "documentation":"

The audio artifact configuration object.

" }, + "AudioChannelsOption":{ + "type":"string", + "enum":[ + "Stereo", + "Mono" + ] + }, + "AudioConcatenationConfiguration":{ + "type":"structure", + "required":["State"], + "members":{ + "State":{ + "shape":"AudioArtifactsConcatenationState", + "documentation":"

Enables the name object, where name is the name of the configuration object, such as AudioConcatenation.

" + } + }, + "documentation":"

The audio artifact concatenation configuration object.

" + }, "AudioMuxType":{ "type":"string", "enum":[ "AudioOnly", - "AudioWithActiveSpeakerVideo" + "AudioWithActiveSpeakerVideo", + "AudioWithCompositedVideo" ] }, + "AudioSampleRateOption":{ + "type":"string", + "pattern":"44100|48000" + }, "BadRequestException":{ "type":"structure", "members":{ @@ -232,19 +412,56 @@ "error":{"httpStatusCode":400}, "exception":true }, + "ChimeSdkMeetingConcatenationConfiguration":{ + "type":"structure", + "required":["ArtifactsConfiguration"], + "members":{ + "ArtifactsConfiguration":{ + "shape":"ArtifactsConcatenationConfiguration", + "documentation":"

The configuration for the artifacts in an Amazon Chime SDK meeting concatenation.

" + } + }, + "documentation":"

The configuration object of the Amazon Chime SDK meeting concatenation for a specified media pipeline.

" + }, "ChimeSdkMeetingConfiguration":{ "type":"structure", "members":{ "SourceConfiguration":{ "shape":"SourceConfiguration", - "documentation":"

The source configuration for a specified media capture pipline.

" + "documentation":"

The source configuration for a specified media pipline.

" }, "ArtifactsConfiguration":{ "shape":"ArtifactsConfiguration", "documentation":"

The configuration for the artifacts in an Amazon Chime SDK meeting.

" } }, - "documentation":"

The configuration object of the Amazon Chime SDK meeting for a specified media capture pipeline. SourceType must be ChimeSdkMeeting.

" + "documentation":"

The configuration object of the Amazon Chime SDK meeting for a specified media pipeline. SourceType must be ChimeSdkMeeting.

" + }, + "ChimeSdkMeetingLiveConnectorConfiguration":{ + "type":"structure", + "required":[ + "Arn", + "MuxType" + ], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The configuration object's Chime SDK meeting ARN.

" + }, + "MuxType":{ + "shape":"LiveConnectorMuxType", + "documentation":"

The configuration object's multiplex type.

" + }, + "CompositedVideo":{ + "shape":"CompositedVideoArtifactsConfiguration", + "documentation":"

The media pipeline's composited video.

" + }, + "SourceConfiguration":{ + "shape":"SourceConfiguration", + "documentation":"

The source configuration settings of the media pipeline's configuration object.

" + } + }, + "documentation":"

The media pipeline's configuration object.

" }, "ClientRequestToken":{ "type":"string", @@ -253,6 +470,92 @@ "pattern":"[-_a-zA-Z0-9]*", "sensitive":true }, + "CompositedVideoArtifactsConfiguration":{ + "type":"structure", + "required":["GridViewConfiguration"], + "members":{ + "Layout":{ + "shape":"LayoutOption", + "documentation":"

The layout setting, such as GridView in the configuration object.

" + }, + "Resolution":{ + "shape":"ResolutionOption", + "documentation":"

The video resolution setting in the configuration object. Default: HD at 1280 x 720. FHD resolution: 1920 x 1080.

" + }, + "GridViewConfiguration":{ + "shape":"GridViewConfiguration", + "documentation":"

The GridView configuration setting.

" + } + }, + "documentation":"

Describes the configuration for the composited video artifacts.

" + }, + "CompositedVideoConcatenationConfiguration":{ + "type":"structure", + "required":["State"], + "members":{ + "State":{ + "shape":"ArtifactsConcatenationState", + "documentation":"

Enables or disables the configuration object.

" + } + }, + "documentation":"

The composited video configuration object for a specified media pipeline. SourceType must be ChimeSdkMeeting.

" + }, + "ConcatenationSink":{ + "type":"structure", + "required":[ + "Type", + "S3BucketSinkConfiguration" + ], + "members":{ + "Type":{ + "shape":"ConcatenationSinkType", + "documentation":"

The type of data sink in the configuration object.

" + }, + "S3BucketSinkConfiguration":{ + "shape":"S3BucketSinkConfiguration", + "documentation":"

The configuration settings for an Amazon S3 bucket sink.

" + } + }, + "documentation":"

The data sink of the configuration object.

" + }, + "ConcatenationSinkList":{ + "type":"list", + "member":{"shape":"ConcatenationSink"}, + "max":1, + "min":1 + }, + "ConcatenationSinkType":{ + "type":"string", + "enum":["S3Bucket"] + }, + "ConcatenationSource":{ + "type":"structure", + "required":[ + "Type", + "MediaCapturePipelineSourceConfiguration" + ], + "members":{ + "Type":{ + "shape":"ConcatenationSourceType", + "documentation":"

The type of concatenation source in a configuration object.

" + }, + "MediaCapturePipelineSourceConfiguration":{ + "shape":"MediaCapturePipelineSourceConfiguration", + "documentation":"

The concatenation settings for the media pipeline in a configuration object.

" + } + }, + "documentation":"

The source type and media pipeline configuration settings in a configuration object.

" + }, + "ConcatenationSourceList":{ + "type":"list", + "member":{"shape":"ConcatenationSource"}, + "max":1, + "min":1 + }, + "ConcatenationSourceType":{ + "type":"string", + "enum":["MediaCapturePipeline"] + }, "ContentArtifactsConfiguration":{ "type":"structure", "required":["State"], @@ -268,10 +571,29 @@ }, "documentation":"

The content artifact object.

" }, + "ContentConcatenationConfiguration":{ + "type":"structure", + "required":["State"], + "members":{ + "State":{ + "shape":"ArtifactsConcatenationState", + "documentation":"

Enables or disables the configuration object.

" + } + }, + "documentation":"

The composited content configuration object for a specified media pipeline.

" + }, "ContentMuxType":{ "type":"string", "enum":["ContentOnly"] }, + "ContentShareLayoutOption":{ + "type":"string", + "enum":[ + "PresenterOnly", + "Horizontal", + "Vertical" + ] + }, "CreateMediaCapturePipelineRequest":{ "type":"structure", "required":[ @@ -291,7 +613,7 @@ }, "SinkType":{ "shape":"MediaPipelineSinkType", - "documentation":"

Destination type to which the media artifacts are saved. You must use an S3 bucket.

" + "documentation":"

Destination type to which the media artifacts are saved. You must use an S3 bucket.

" }, "SinkArn":{ "shape":"Arn", @@ -299,16 +621,16 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

The token assigned to the client making the pipeline request.

", + "documentation":"

The unique identifier for the client request. The token makes the API request idempotent. Use a unique token for each media pipeline request.

", "idempotencyToken":true }, "ChimeSdkMeetingConfiguration":{ "shape":"ChimeSdkMeetingConfiguration", - "documentation":"

The configuration for a specified media capture pipeline. SourceType must be ChimeSdkMeeting.

" + "documentation":"

The configuration for a specified media pipeline. SourceType must be ChimeSdkMeeting.

" }, "Tags":{ "shape":"TagList", - "documentation":"

The list of tags.

" + "documentation":"

The tag key-value pairs.

" } } }, @@ -317,17 +639,110 @@ "members":{ "MediaCapturePipeline":{ "shape":"MediaCapturePipeline", - "documentation":"

A media capture pipeline object, the ID, source type, source ARN, sink type, and sink ARN of a media capture pipeline object.

" + "documentation":"

A media pipeline object, the ID, source type, source ARN, sink type, and sink ARN of a media pipeline object.

" } } }, + "CreateMediaConcatenationPipelineRequest":{ + "type":"structure", + "required":[ + "Sources", + "Sinks" + ], + "members":{ + "Sources":{ + "shape":"ConcatenationSourceList", + "documentation":"

An object that specifies the sources for the media concatenation pipeline.

" + }, + "Sinks":{ + "shape":"ConcatenationSinkList", + "documentation":"

An object that specifies the data sinks for the media concatenation pipeline.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

The unique identifier for the client request. The token makes the API request idempotent. Use a unique token for each media concatenation pipeline request.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags associated with the media concatenation pipeline.

" + } + } + }, + "CreateMediaConcatenationPipelineResponse":{ + "type":"structure", + "members":{ + "MediaConcatenationPipeline":{ + "shape":"MediaConcatenationPipeline", + "documentation":"

A media concatenation pipeline object, the ID, source type, MediaPipelineARN, and sink of a media concatenation pipeline object.

" + } + } + }, + "CreateMediaLiveConnectorPipelineRequest":{ + "type":"structure", + "required":[ + "Sources", + "Sinks" + ], + "members":{ + "Sources":{ + "shape":"LiveConnectorSourceList", + "documentation":"

The media pipeline's data sources.

" + }, + "Sinks":{ + "shape":"LiveConnectorSinkList", + "documentation":"

The media pipeline's data sinks.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

The token assigned to the client making the request.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags associated with the media pipeline.

" + } + } + }, + "CreateMediaLiveConnectorPipelineResponse":{ + "type":"structure", + "members":{ + "MediaLiveConnectorPipeline":{ + "shape":"MediaLiveConnectorPipeline", + "documentation":"

The new media pipeline.

" + } + } + }, + "DataChannelConcatenationConfiguration":{ + "type":"structure", + "required":["State"], + "members":{ + "State":{ + "shape":"ArtifactsConcatenationState", + "documentation":"

Enables or disables the configuration object.

" + } + }, + "documentation":"

The content configuration object's data channel.

" + }, "DeleteMediaCapturePipelineRequest":{ "type":"structure", "required":["MediaPipelineId"], "members":{ "MediaPipelineId":{ "shape":"GuidString", - "documentation":"

The ID of the media capture pipeline being deleted.

", + "documentation":"

The ID of the media pipeline being deleted.

", + "location":"uri", + "locationName":"mediaPipelineId" + } + } + }, + "DeleteMediaPipelineRequest":{ + "type":"structure", + "required":["MediaPipelineId"], + "members":{ + "MediaPipelineId":{ + "shape":"GuidString", + "documentation":"

The ID of the media pipeline to delete.

", "location":"uri", "locationName":"mediaPipelineId" } @@ -387,10 +802,46 @@ "members":{ "MediaCapturePipeline":{ "shape":"MediaCapturePipeline", - "documentation":"

The media capture pipeline object.

" + "documentation":"

The media pipeline object.

" } } }, + "GetMediaPipelineRequest":{ + "type":"structure", + "required":["MediaPipelineId"], + "members":{ + "MediaPipelineId":{ + "shape":"GuidString", + "documentation":"

The ID of the pipeline that you want to get.

", + "location":"uri", + "locationName":"mediaPipelineId" + } + } + }, + "GetMediaPipelineResponse":{ + "type":"structure", + "members":{ + "MediaPipeline":{ + "shape":"MediaPipeline", + "documentation":"

The media pipeline object.

" + } + } + }, + "GridViewConfiguration":{ + "type":"structure", + "required":["ContentShareLayout"], + "members":{ + "ContentShareLayout":{ + "shape":"ContentShareLayoutOption", + "documentation":"

Defines the layout of the video tiles when content sharing is enabled.

" + }, + "PresenterOnlyConfiguration":{ + "shape":"PresenterOnlyConfiguration", + "documentation":"

Defines the configuration options for a presenter only video tile.

" + } + }, + "documentation":"

Specifies the type of grid layout.

" + }, "GuidString":{ "type":"string", "max":36, @@ -401,6 +852,10 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "LayoutOption":{ + "type":"string", + "enum":["GridView"] + }, "ListMediaCapturePipelinesRequest":{ "type":"structure", "members":{ @@ -423,7 +878,37 @@ "members":{ "MediaCapturePipelines":{ "shape":"MediaCapturePipelineSummaryList", - "documentation":"

The media capture pipeline objects in the list.

" + "documentation":"

The media pipeline objects in the list.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token used to retrieve the next page of results.

" + } + } + }, + "ListMediaPipelinesRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

The token used to retrieve the next page of results.

", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"ResultMax", + "documentation":"

The maximum number of results to return in a single call. Valid Range: 1 - 99.

", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListMediaPipelinesResponse":{ + "type":"structure", + "members":{ + "MediaPipelines":{ + "shape":"MediaPipelineList", + "documentation":"

The media pipeline objects in the list.

" }, "NextToken":{ "shape":"String", @@ -437,7 +922,7 @@ "members":{ "ResourceARN":{ "shape":"AmazonResourceName", - "documentation":"

The resource ARN.

", + "documentation":"

The ARN of the media pipeline associated with any tags. The ARN consists of the pipeline's region, resource ID, and pipeline ID.

", "location":"querystring", "locationName":"arn" } @@ -448,20 +933,102 @@ "members":{ "Tags":{ "shape":"TagList", - "documentation":"

The tag key-value pairs.

" + "documentation":"

The tags associated with the specified media pipeline.

" } } }, + "LiveConnectorMuxType":{ + "type":"string", + "enum":[ + "AudioWithCompositedVideo", + "AudioWithActiveSpeakerVideo" + ] + }, + "LiveConnectorRTMPConfiguration":{ + "type":"structure", + "required":["Url"], + "members":{ + "Url":{ + "shape":"SensitiveString", + "documentation":"

The URL of the RTMP configuration.

" + }, + "AudioChannels":{ + "shape":"AudioChannelsOption", + "documentation":"

The audio channels set for the RTMP configuration

" + }, + "AudioSampleRate":{ + "shape":"AudioSampleRateOption", + "documentation":"

The audio sample rate set for the RTMP configuration. Default: 48000.

" + } + }, + "documentation":"

The media pipeline's RTMP configuration object.

" + }, + "LiveConnectorSinkConfiguration":{ + "type":"structure", + "required":[ + "SinkType", + "RTMPConfiguration" + ], + "members":{ + "SinkType":{ + "shape":"LiveConnectorSinkType", + "documentation":"

The sink configuration's sink type.

" + }, + "RTMPConfiguration":{ + "shape":"LiveConnectorRTMPConfiguration", + "documentation":"

The sink configuration's RTMP configuration setttings.

" + } + }, + "documentation":"

The media pipeline's sink configuration settings.

" + }, + "LiveConnectorSinkList":{ + "type":"list", + "member":{"shape":"LiveConnectorSinkConfiguration"}, + "max":1, + "min":1 + }, + "LiveConnectorSinkType":{ + "type":"string", + "enum":["RTMP"] + }, + "LiveConnectorSourceConfiguration":{ + "type":"structure", + "required":[ + "SourceType", + "ChimeSdkMeetingLiveConnectorConfiguration" + ], + "members":{ + "SourceType":{ + "shape":"LiveConnectorSourceType", + "documentation":"

The source configuration's media source type.

" + }, + "ChimeSdkMeetingLiveConnectorConfiguration":{ + "shape":"ChimeSdkMeetingLiveConnectorConfiguration", + "documentation":"

The configuration settings of the connector pipeline.

" + } + }, + "documentation":"

The data source configuration object of a streaming media pipeline.

" + }, + "LiveConnectorSourceList":{ + "type":"list", + "member":{"shape":"LiveConnectorSourceConfiguration"}, + "max":1, + "min":1 + }, + "LiveConnectorSourceType":{ + "type":"string", + "enum":["ChimeSdkMeeting"] + }, "MediaCapturePipeline":{ "type":"structure", "members":{ "MediaPipelineId":{ "shape":"GuidString", - "documentation":"

The ID of a media capture pipeline.

" + "documentation":"

The ID of a media pipeline.

" }, "MediaPipelineArn":{ "shape":"AmazonResourceName", - "documentation":"

The ARN of a media capture pipeline.

" + "documentation":"

The ARN of the media capture pipeline

" }, "SourceType":{ "shape":"MediaPipelineSourceType", @@ -473,7 +1040,7 @@ }, "Status":{ "shape":"MediaPipelineStatus", - "documentation":"

The status of the media capture pipeline.

" + "documentation":"

The status of the media pipeline.

" }, "SinkType":{ "shape":"MediaPipelineSinkType", @@ -485,37 +1052,145 @@ }, "CreatedTimestamp":{ "shape":"Iso8601Timestamp", - "documentation":"

The time at which the capture pipeline was created, in ISO 8601 format.

" + "documentation":"

The time at which the pipeline was created, in ISO 8601 format.

" }, "UpdatedTimestamp":{ "shape":"Iso8601Timestamp", - "documentation":"

The time at which the capture pipeline was updated, in ISO 8601 format.

" + "documentation":"

The time at which the pipeline was updated, in ISO 8601 format.

" }, "ChimeSdkMeetingConfiguration":{ "shape":"ChimeSdkMeetingConfiguration", - "documentation":"

The configuration for a specified media capture pipeline. SourceType must be ChimeSdkMeeting.

" + "documentation":"

The configuration for a specified media pipeline. SourceType must be ChimeSdkMeeting.

" } }, - "documentation":"

A media capture pipeline object consisting of an ID, source type, source ARN, a sink type, a sink ARN, and a configuration object.

" + "documentation":"

A media pipeline object consisting of an ID, source type, source ARN, a sink type, a sink ARN, and a configuration object.

" + }, + "MediaCapturePipelineSourceConfiguration":{ + "type":"structure", + "required":[ + "MediaPipelineArn", + "ChimeSdkMeetingConfiguration" + ], + "members":{ + "MediaPipelineArn":{ + "shape":"Arn", + "documentation":"

The media pipeline ARN in the configuration object of a media capture pipeline.

" + }, + "ChimeSdkMeetingConfiguration":{ + "shape":"ChimeSdkMeetingConcatenationConfiguration", + "documentation":"

The meeting configuration settings in a media capture pipeline configuration object.

" + } + }, + "documentation":"

The source configuration object of a media capture pipeline.

" }, "MediaCapturePipelineSummary":{ "type":"structure", "members":{ "MediaPipelineId":{ "shape":"GuidString", - "documentation":"

The ID of a media capture pipeline.

" + "documentation":"

The ID of the media pipeline in the summary.

" }, "MediaPipelineArn":{ "shape":"AmazonResourceName", - "documentation":"

The ARN of a media capture pipeline.

" + "documentation":"

The ARN of the media pipeline in the summary.

" } }, - "documentation":"

A summary of a media capture pipeline.

" + "documentation":"

The summary data of a media capture pipeline.

" }, "MediaCapturePipelineSummaryList":{ "type":"list", "member":{"shape":"MediaCapturePipelineSummary"} }, + "MediaConcatenationPipeline":{ + "type":"structure", + "members":{ + "MediaPipelineId":{ + "shape":"GuidString", + "documentation":"

The ID of the media pipeline being concatenated.

" + }, + "MediaPipelineArn":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the media pipeline that you specify in the SourceConfiguration object.

" + }, + "Sources":{ + "shape":"ConcatenationSourceList", + "documentation":"

The data sources being concatnated.

" + }, + "Sinks":{ + "shape":"ConcatenationSinkList", + "documentation":"

The data sinks of the concatenation pipeline.

" + }, + "Status":{ + "shape":"MediaPipelineStatus", + "documentation":"

The status of the concatenation pipeline.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the concatenation pipeline was created.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the concatenation pipeline was last updated.

" + } + }, + "documentation":"

Concatenates audio and video data from one or more data streams.

" + }, + "MediaLiveConnectorPipeline":{ + "type":"structure", + "members":{ + "Sources":{ + "shape":"LiveConnectorSourceList", + "documentation":"

The connector pipeline's data sources.

" + }, + "Sinks":{ + "shape":"LiveConnectorSinkList", + "documentation":"

The connector pipeline's data sinks.

" + }, + "MediaPipelineId":{ + "shape":"GuidString", + "documentation":"

The connector pipeline's ID.

" + }, + "MediaPipelineArn":{ + "shape":"AmazonResourceName", + "documentation":"

The connector pipeline's ARN.

" + }, + "Status":{ + "shape":"MediaPipelineStatus", + "documentation":"

The connector pipeline's status.

" + }, + "CreatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

Thetime at which the connector pipeline was created.

" + }, + "UpdatedTimestamp":{ + "shape":"Iso8601Timestamp", + "documentation":"

The time at which the connector pipeline was last updated.

" + } + }, + "documentation":"

The connector pipeline.

" + }, + "MediaPipeline":{ + "type":"structure", + "members":{ + "MediaCapturePipeline":{ + "shape":"MediaCapturePipeline", + "documentation":"

A pipeline that enables users to capture audio and video.

" + }, + "MediaLiveConnectorPipeline":{ + "shape":"MediaLiveConnectorPipeline", + "documentation":"

The connector pipeline of the media pipeline.

" + }, + "MediaConcatenationPipeline":{ + "shape":"MediaConcatenationPipeline", + "documentation":"

The media concatenation pipeline in a media pipeline.

" + } + }, + "documentation":"

A pipeline consisting of a media capture, media concatenation, or live-streaming pipeline.

" + }, + "MediaPipelineList":{ + "type":"list", + "member":{"shape":"MediaPipelineSummary"} + }, "MediaPipelineSinkType":{ "type":"string", "enum":["S3Bucket"] @@ -534,6 +1209,31 @@ "Stopped" ] }, + "MediaPipelineSummary":{ + "type":"structure", + "members":{ + "MediaPipelineId":{ + "shape":"GuidString", + "documentation":"

The ID of the media pipeline in the summary.

" + }, + "MediaPipelineArn":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the media pipeline in the summary.

" + } + }, + "documentation":"

The summary of the media pipeline.

" + }, + "MeetingEventsConcatenationConfiguration":{ + "type":"structure", + "required":["State"], + "members":{ + "State":{ + "shape":"ArtifactsConcatenationState", + "documentation":"

Enables or disables the configuration object.

" + } + }, + "documentation":"

The configuration object for an event concatenation pipeline.

" + }, "NotFoundException":{ "type":"structure", "members":{ @@ -548,6 +1248,32 @@ "error":{"httpStatusCode":404}, "exception":true }, + "PresenterOnlyConfiguration":{ + "type":"structure", + "members":{ + "PresenterPosition":{ + "shape":"PresenterPosition", + "documentation":"

Defines the position of the presenter video tile. Default: TopRight.

" + } + }, + "documentation":"

Defines the configuration for a presenter only video tile.

" + }, + "PresenterPosition":{ + "type":"string", + "enum":[ + "TopLeft", + "TopRight", + "BottomLeft", + "BottomRight" + ] + }, + "ResolutionOption":{ + "type":"string", + "enum":[ + "HD", + "FHD" + ] + }, "ResourceLimitExceededException":{ "type":"structure", "members":{ @@ -567,19 +1293,36 @@ "max":100, "min":1 }, + "S3BucketSinkConfiguration":{ + "type":"structure", + "required":["Destination"], + "members":{ + "Destination":{ + "shape":"Arn", + "documentation":"

The destination URL of the S3 bucket.

" + } + }, + "documentation":"

The configuration settings for the S3 bucket.

" + }, "SelectedVideoStreams":{ "type":"structure", "members":{ "AttendeeIds":{ "shape":"AttendeeIdList", - "documentation":"

The attendee IDs of the streams selected for a media capture pipeline.

" + "documentation":"

The attendee IDs of the streams selected for a media pipeline.

" }, "ExternalUserIds":{ "shape":"ExternalUserIdList", - "documentation":"

The external user IDs of the streams selected for a media capture pipeline.

" + "documentation":"

The external user IDs of the streams selected for a media pipeline.

" } }, - "documentation":"

The video streams to capture for a specified media capture pipeline. The total number of video streams can't exceed 25.

" + "documentation":"

The video streams for a specified media pipeline. The total number of video streams can't exceed 25.

" + }, + "SensitiveString":{ + "type":"string", + "max":1024, + "min":1, + "sensitive":true }, "ServiceFailureException":{ "type":"structure", @@ -616,10 +1359,10 @@ "members":{ "SelectedVideoStreams":{ "shape":"SelectedVideoStreams", - "documentation":"

The selected video streams to capture for a specified media capture pipeline. The number of video streams can't exceed 25.

" + "documentation":"

The selected video streams for a specified media pipeline. The number of video streams can't exceed 25.

" } }, - "documentation":"

Source configuration for a specified media capture pipeline.

" + "documentation":"

Source configuration for a specified media pipeline.

" }, "String":{ "type":"string", @@ -635,14 +1378,14 @@ "members":{ "Key":{ "shape":"TagKey", - "documentation":"

The key of the tag.

" + "documentation":"

The key half of a tag.

" }, "Value":{ "shape":"TagValue", - "documentation":"

The value of the tag.

" + "documentation":"

The value half of a tag.

" } }, - "documentation":"

Describes a tag applied to a resource.

" + "documentation":"

A key/value pair that grants users access to meeting resources.

" }, "TagKey":{ "type":"string", @@ -670,11 +1413,11 @@ "members":{ "ResourceARN":{ "shape":"AmazonResourceName", - "documentation":"

The resource ARN.

" + "documentation":"

The ARN of the media pipeline associated with any tags. The ARN consists of the pipeline's endpoint region, resource ID, and pipeline ID.

" }, "Tags":{ "shape":"TagList", - "documentation":"

The tag key-value pairs.

" + "documentation":"

The tags associated with the specified media pipeline.

" } } }, @@ -702,6 +1445,17 @@ "error":{"httpStatusCode":429}, "exception":true }, + "TranscriptionMessagesConcatenationConfiguration":{ + "type":"structure", + "required":["State"], + "members":{ + "State":{ + "shape":"ArtifactsConcatenationState", + "documentation":"

Enables or disables the configuration object.

" + } + }, + "documentation":"

The configuration object for concatenating transcription messages.

" + }, "UnauthorizedClientException":{ "type":"structure", "members":{ @@ -725,11 +1479,11 @@ "members":{ "ResourceARN":{ "shape":"AmazonResourceName", - "documentation":"

The resource ARN.

" + "documentation":"

The ARN of the pipeline that you want to untag.

" }, "TagKeys":{ "shape":"TagKeyList", - "documentation":"

The tag keys.

" + "documentation":"

The key/value pairs in the tag that you want to remove.

" } } }, @@ -753,10 +1507,21 @@ }, "documentation":"

The video artifact configuration object.

" }, + "VideoConcatenationConfiguration":{ + "type":"structure", + "required":["State"], + "members":{ + "State":{ + "shape":"ArtifactsConcatenationState", + "documentation":"

Enables or disables the configuration object.

" + } + }, + "documentation":"

The configuration object of a video contacatentation pipeline.

" + }, "VideoMuxType":{ "type":"string", "enum":["VideoOnly"] } }, - "documentation":"

The Amazon Chime SDK media pipeline APIs in this section allow software developers to create Amazon Chime SDK media pipelines and capture audio, video, events, and data messages from Amazon Chime SDK meetings. For more information about media pipleines, see Amzon Chime SDK media pipelines.

" + "documentation":"

The Amazon Chime SDK media pipeline APIs in this section allow software developers to create Amazon Chime SDK media pipelines that capture, concatenate, or stream your Amazon Chime SDK meetings. For more information about media pipleines, see Amazon Chime SDK media pipelines.

" } diff --git a/botocore/data/chime-sdk-meetings/2021-07-15/endpoint-rule-set-1.json b/botocore/data/chime-sdk-meetings/2021-07-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..7cb16abf --- /dev/null +++ b/botocore/data/chime-sdk-meetings/2021-07-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://meetings-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://meetings-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://meetings-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://meetings-chime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/chime-sdk-meetings/2021-07-15/examples-1.json b/botocore/data/chime-sdk-meetings/2021-07-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/chime-sdk-meetings/2021-07-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/chime-sdk-meetings/2021-07-15/service-2.json b/botocore/data/chime-sdk-meetings/2021-07-15/service-2.json index cfa79357..cb9546c4 100644 --- a/botocore/data/chime-sdk-meetings/2021-07-15/service-2.json +++ b/botocore/data/chime-sdk-meetings/2021-07-15/service-2.json @@ -32,6 +32,24 @@ ], "documentation":"

Creates up to 100 attendees for an active Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide.

" }, + "BatchUpdateAttendeeCapabilitiesExcept":{ + "name":"BatchUpdateAttendeeCapabilitiesExcept", + "http":{ + "method":"PUT", + "requestUri":"/meetings/{MeetingId}/attendees/capabilities?operation=batch-update-except", + "responseCode":200 + }, + "input":{"shape":"BatchUpdateAttendeeCapabilitiesExceptRequest"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

Updates AttendeeCapabilities except the capabilities listed in an ExcludedAttendeeIds table.

You use the capabilities with a set of values that control what the capabilities can do, such as SendReceive data. For more information about those values, see .

When using capabilities, be aware of these corner cases:

  • You can't set content capabilities to SendReceive or Receive unless you also set video capabilities to SendReceive or Receive. If you don't set the video capability to receive, the response will contain an HTTP 400 Bad Request status code. However, you can set your video capability to receive and you set your content capability to not receive.

  • When you change an audio capability from None or Receive to Send or SendReceive , and if the attendee left their microphone unmuted, audio will flow from the attendee to the other meeting participants.

  • When you change a video or content capability from None or Receive to Send or SendReceive , and if the attendee turned on their video or content streams, remote attendess can receive those streams, but only after media renegotiation between the client and the Amazon Chime back-end server.

" + }, "CreateAttendee":{ "name":"CreateAttendee", "http":{ @@ -187,6 +205,20 @@ ], "documentation":"

Lists the attendees for the specified Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide.

" }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a list of the tags available for the specified resource.

" + }, "StartMeetingTranscription":{ "name":"StartMeetingTranscription", "http":{ @@ -227,9 +259,64 @@ {"shape":"ServiceFailureException"} ], "documentation":"

Stops transcription for the specified meetingId.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags?operation=tag-resource", + "responseCode":204 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyTagsException"} + ], + "documentation":"

The resource that supports tags.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/tags?operation=untag-resource", + "responseCode":204 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Removes the specified tags from the specified resources. When you specify a tag key, the action removes both that key and its associated value. The operation succeeds even if you attempt to remove tags from a resource that were already removed. Note the following:

  • To remove tags from a resource, you need the necessary permissions for the service that the resource belongs to as well as permissions for removing tags. For more information, see the documentation for the service whose resource you want to untag.

  • You can only tag resources that are located in the specified AWS Region for the calling AWS account.

Minimum permissions

In addition to the tag:UntagResources permission required by this operation, you must also have the remove tags permission defined by the service that created the resource. For example, to remove the tags from an Amazon EC2 instance using the UntagResources operation, you must have both of the following permissions:

tag:UntagResource

ChimeSDKMeetings:DeleteTags

" + }, + "UpdateAttendeeCapabilities":{ + "name":"UpdateAttendeeCapabilities", + "http":{ + "method":"PUT", + "requestUri":"/meetings/{MeetingId}/attendees/{AttendeeId}/capabilities" + }, + "input":{"shape":"UpdateAttendeeCapabilitiesRequest"}, + "output":{"shape":"UpdateAttendeeCapabilitiesResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"UnauthorizedException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

The capabilties that you want to update.

You use the capabilities with a set of values that control what the capabilities can do, such as SendReceive data. For more information about those values, see .

When using capabilities, be aware of these corner cases:

  • You can't set content capabilities to SendReceive or Receive unless you also set video capabilities to SendReceive or Receive. If you don't set the video capability to receive, the response will contain an HTTP 400 Bad Request status code. However, you can set your video capability to receive and you set your content capability to not receive.

  • When you change an audio capability from None or Receive to Send or SendReceive , and if the attendee left their microphone unmuted, audio will flow from the attendee to the other meeting participants.

  • When you change a video or content capability from None or Receive to Send or SendReceive , and if the attendee turned on their video or content streams, remote attendess can receive those streams, but only after media renegotiation between the client and the Amazon Chime back-end server.

" } }, "shapes":{ + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"^arn:.*" + }, "Arn":{ "type":"string", "max":1024, @@ -251,10 +338,54 @@ "JoinToken":{ "shape":"JoinTokenString", "documentation":"

The join token used by the Amazon Chime SDK attendee.

" + }, + "Capabilities":{ + "shape":"AttendeeCapabilities", + "documentation":"

The capabilities assigned to an attendee: audio, video, or content.

You use the capabilities with a set of values that control what the capabilities can do, such as SendReceive data. For more information about those values, see .

When using capabilities, be aware of these corner cases:

  • You can't set content capabilities to SendReceive or Receive unless you also set video capabilities to SendReceive or Receive. If you don't set the video capability to receive, the response will contain an HTTP 400 Bad Request status code. However, you can set your video capability to receive and you set your content capability to not receive.

  • When you change an audio capability from None or Receive to Send or SendReceive , and if the attendee left their microphone unmuted, audio will flow from the attendee to the other meeting participants.

  • When you change a video or content capability from None or Receive to Send or SendReceive , and if the attendee turned on their video or content streams, remote attendess can receive those streams, but only after media renegotiation between the client and the Amazon Chime back-end server.

" } }, "documentation":"

An Amazon Chime SDK meeting attendee. Includes a unique AttendeeId and JoinToken. The JoinToken allows a client to authenticate and join as the specified attendee. The JoinToken expires when the meeting ends, or when DeleteAttendee is called. After that, the attendee is unable to join the meeting.

We recommend securely transferring each JoinToken from your server application to the client so that no other client has access to the token except for the one authorized to represent the attendee.

" }, + "AttendeeCapabilities":{ + "type":"structure", + "required":[ + "Audio", + "Video", + "Content" + ], + "members":{ + "Audio":{ + "shape":"MediaCapabilities", + "documentation":"

The audio capability assigned to an attendee.

" + }, + "Video":{ + "shape":"MediaCapabilities", + "documentation":"

The video capability assigned to an attendee.

" + }, + "Content":{ + "shape":"MediaCapabilities", + "documentation":"

The content capability assigned to an attendee.

" + } + }, + "documentation":"

The media capabilities of an attendee: audio, video, or content.

You use the capabilities with a set of values that control what the capabilities can do, such as SendReceive data. For more information about those values, see .

When using capabilities, be aware of these corner cases:

  • You can't set content capabilities to SendReceive or Receive unless you also set video capabilities to SendReceive or Receive. If you don't set the video capability to receive, the response will contain an HTTP 400 Bad Request status code. However, you can set your video capability to receive and you set your content capability to not receive.

  • When you change an audio capability from None or Receive to Send or SendReceive , and if the attendee left their microphone unmuted, audio will flow from the attendee to the other meeting participants.

  • When you change a video or content capability from None or Receive to Send or SendReceive , and if the attendee turned on their video or content streams, remote attendess can receive those streams, but only after media renegotiation between the client and the Amazon Chime back-end server.

" + }, + "AttendeeIdItem":{ + "type":"structure", + "required":["AttendeeId"], + "members":{ + "AttendeeId":{ + "shape":"GuidString", + "documentation":"

A list of one or more attendee IDs.

" + } + }, + "documentation":"

A structure that contains one or more attendee IDs.

" + }, + "AttendeeIdsList":{ + "type":"list", + "member":{"shape":"AttendeeIdItem"}, + "max":250, + "min":1 + }, "AttendeeList":{ "type":"list", "member":{"shape":"Attendee"} @@ -319,6 +450,30 @@ } } }, + "BatchUpdateAttendeeCapabilitiesExceptRequest":{ + "type":"structure", + "required":[ + "MeetingId", + "ExcludedAttendeeIds", + "Capabilities" + ], + "members":{ + "MeetingId":{ + "shape":"GuidString", + "documentation":"

The ID of the meeting associated with the update request.

", + "location":"uri", + "locationName":"MeetingId" + }, + "ExcludedAttendeeIds":{ + "shape":"AttendeeIdsList", + "documentation":"

The AttendeeIDs that you want to exclude from one or more capabilities.

" + }, + "Capabilities":{ + "shape":"AttendeeCapabilities", + "documentation":"

The capabilities (audio, video, or content) that you want to update.

" + } + } + }, "Boolean":{"type":"boolean"}, "ClientRequestToken":{ "type":"string", @@ -327,6 +482,20 @@ "pattern":"[-_a-zA-Z0-9]*", "sensitive":true }, + "ConflictException":{ + "type":"structure", + "members":{ + "Code":{"shape":"String"}, + "Message":{"shape":"String"}, + "RequestId":{ + "shape":"String", + "documentation":"

The ID of the request involved in the conflict.

" + } + }, + "documentation":"

Multiple instances of the same request have been made simultaneously.

", + "error":{"httpStatusCode":409}, + "exception":true + }, "CreateAttendeeError":{ "type":"structure", "members":{ @@ -361,6 +530,10 @@ "ExternalUserId":{ "shape":"ExternalUserId", "documentation":"

The Amazon Chime SDK external user ID. An idempotency token. Links the attendee to an identity managed by a builder application.

" + }, + "Capabilities":{ + "shape":"AttendeeCapabilities", + "documentation":"

The capabilities (audio, video, or content) that you want to grant an attendee. If you don't specify capabilities, all users have send and receive capabilities on all media channels by default.

You use the capabilities with a set of values that control what the capabilities can do, such as SendReceive data. For more information about those values, see .

When using capabilities, be aware of these corner cases:

  • You can't set content capabilities to SendReceive or Receive unless you also set video capabilities to SendReceive or Receive. If you don't set the video capability to receive, the response will contain an HTTP 400 Bad Request status code. However, you can set your video capability to receive and you set your content capability to not receive.

  • When you change an audio capability from None or Receive to Send or SendReceive , and if the attendee left their microphone unmuted, audio will flow from the attendee to the other meeting participants.

  • When you change a video or content capability from None or Receive to Send or SendReceive , and if the attendee turned on their video or content streams, remote attendess can receive those streams, but only after media renegotiation between the client and the Amazon Chime back-end server.

" } } }, @@ -371,6 +544,10 @@ "ExternalUserId":{ "shape":"ExternalUserId", "documentation":"

The Amazon Chime SDK external user ID. An idempotency token. Links the attendee to an identity managed by a builder application.

" + }, + "Capabilities":{ + "shape":"AttendeeCapabilities", + "documentation":"

A list of one or more capabilities.

" } }, "documentation":"

The Amazon Chime SDK attendee fields to create, used with the BatchCreateAttendee action.

" @@ -426,6 +603,14 @@ "PrimaryMeetingId":{ "shape":"PrimaryMeetingId", "documentation":"

When specified, replicates the media from the primary meeting to the new meeting.

" + }, + "TenantIds":{ + "shape":"TenantIdList", + "documentation":"

A consistent and opaque identifier, created and maintained by the builder to represent a segment of their users.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Applies one or more tags to an Amazon Chime SDK meeting. Note the following:

  • Not all resources have tags. For a list of services with resources that support tagging using this operation, see Services that support the Resource Groups Tagging API. If the resource doesn't yet support this operation, the resource's service might support tagging using its own API operations. For more information, refer to the documentation for that service.

  • Each resource can have up to 50 tags. For other limits, see Tag Naming and Usage Conventions in the AWS General Reference.

  • You can only tag resources that are located in the specified AWS Region for the AWS account.

  • To add tags to a resource, you need the necessary permissions for the service that the resource belongs to as well as permissions for adding tags. For more information, see the documentation for each service.

Do not store personally identifiable information (PII) or other confidential or sensitive information in tags. We use tags to provide you with billing and administration services. Tags are not intended to be used for private or sensitive data.

Minimum permissions

In addition to the tag:TagResources permission required by this operation, you must also have the tagging permission defined by the service that created the resource. For example, to tag a ChimeSDKMeetings instance using the TagResources operation, you must have both of the following permissions:

tag:TagResources

ChimeSDKMeetings:CreateTags

Some services might have specific requirements for tagging some resources. For example, to tag an Amazon S3 bucket, you must also have the s3:GetBucketTagging permission. If the expected minimum permissions don't work, check the documentation for that service's tagging APIs for more information.

" } } }, @@ -479,6 +664,14 @@ "PrimaryMeetingId":{ "shape":"PrimaryMeetingId", "documentation":"

When specified, replicates the media from the primary meeting to the new meeting.

" + }, + "TenantIds":{ + "shape":"TenantIdList", + "documentation":"

A consistent and opaque identifier, created and maintained by the builder to represent a segment of their users.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags in the request.

" } } }, @@ -564,7 +757,7 @@ }, "Region":{ "shape":"TranscribeMedicalRegion", - "documentation":"

The AWS Region passed to Amazon Transcribe Medical. If you don't specify a Region, Amazon Chime uses the meeting's Region.

" + "documentation":"

The AWS Region passed to Amazon Transcribe Medical. If you don't specify a Region, Amazon Chime uses the meeting's Region.

" }, "ContentIdentificationType":{ "shape":"TranscribeMedicalContentIdentificationType", @@ -773,6 +966,36 @@ } } }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceARN"], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource.

", + "location":"querystring", + "locationName":"arn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagList", + "documentation":"

The tags requested for the specified resource.

" + } + } + }, + "MediaCapabilities":{ + "type":"string", + "enum":[ + "SendReceive", + "Send", + "Receive", + "None" + ] + }, "MediaPlacement":{ "type":"structure", "members":{ @@ -846,6 +1069,14 @@ "PrimaryMeetingId":{ "shape":"PrimaryMeetingId", "documentation":"

When specified, replicates the media from the primary meeting to this meeting.

" + }, + "TenantIds":{ + "shape":"TenantIdList", + "documentation":"

Array of strings.

" + }, + "MeetingArn":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the meeting.

" } }, "documentation":"

A meeting created using the Amazon Chime SDK.

" @@ -874,7 +1105,7 @@ "Message":{"shape":"String"}, "RequestId":{ "shape":"String", - "documentation":"

The request id associated with the call responsible for the exception.

" + "documentation":"

The request ID associated with the call responsible for the exception.

" } }, "documentation":"

One or more of the resources in the request does not exist in the system.

", @@ -904,6 +1135,24 @@ "max":64, "min":2 }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Code":{"shape":"String"}, + "Message":{"shape":"String"}, + "RequestId":{ + "shape":"String", + "documentation":"

The ID of the resource that couldn't be found.

" + }, + "ResourceName":{ + "shape":"AmazonResourceName", + "documentation":"

The name of the resource that couldn't be found.

" + } + }, + "documentation":"

The resource that you want to tag couldn't be found.

", + "error":{"httpStatusCode":404}, + "exception":true + }, "ResultMax":{ "type":"integer", "max":100, @@ -915,7 +1164,10 @@ "members":{ "Code":{"shape":"String"}, "Message":{"shape":"String"}, - "RequestId":{"shape":"String"} + "RequestId":{ + "shape":"String", + "documentation":"

The ID of the failed request.

" + } }, "documentation":"

The service encountered an unexpected error.

", "error":{"httpStatusCode":500}, @@ -978,17 +1230,114 @@ "type":"string", "max":4096 }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

The tag's key.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

The tag's value.

" + } + }, + "documentation":"

A key-value pair that you define.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[a-zA-Z+-=._:/]+$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "Tags" + ], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Lists the requested tags.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"[\\s\\w+-=\\.:/@]*" + }, + "TenantId":{ + "type":"string", + "max":256, + "min":2, + "pattern":"^(?!.*?(.)\\1{3})[-_!@#$a-zA-Z0-9]*$" + }, + "TenantIdList":{ + "type":"list", + "member":{"shape":"TenantId"}, + "max":5, + "min":1 + }, "ThrottlingException":{ "type":"structure", "members":{ "Code":{"shape":"String"}, "Message":{"shape":"String"}, - "RequestId":{"shape":"String"} + "RequestId":{ + "shape":"String", + "documentation":"

The ID of the request that exceeded the throttling limit.

" + } }, "documentation":"

The number of customer requests exceeds the request rate limit.

", "error":{"httpStatusCode":429}, "exception":true }, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "Code":{"shape":"String"}, + "Message":{"shape":"String"}, + "RequestId":{ + "shape":"String", + "documentation":"

The ID of the request that contains too many tags.

" + }, + "ResourceName":{ + "shape":"AmazonResourceName", + "documentation":"

The name of the resource that received too many tags.

" + } + }, + "documentation":"

Too many tags were added to the specified resource.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "TranscribeContentIdentificationType":{ "type":"string", "enum":["PII"] @@ -1092,7 +1441,8 @@ "eu-west-1", "eu-west-2", "sa-east-1", - "auto" + "auto", + "us-gov-west-1" ] }, "TranscribeVocabularyFilterMethod":{ @@ -1144,6 +1494,63 @@ "documentation":"

The request was well-formed but was unable to be followed due to semantic errors.

", "error":{"httpStatusCode":422}, "exception":true + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "TagKeys" + ], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource that you're removing tags from.

" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

The tag keys being removed from the resources.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateAttendeeCapabilitiesRequest":{ + "type":"structure", + "required":[ + "MeetingId", + "AttendeeId", + "Capabilities" + ], + "members":{ + "MeetingId":{ + "shape":"GuidString", + "documentation":"

The ID of the meeting associated with the update request.

", + "location":"uri", + "locationName":"MeetingId" + }, + "AttendeeId":{ + "shape":"GuidString", + "documentation":"

The ID of the attendee associated with the update request.

", + "location":"uri", + "locationName":"AttendeeId" + }, + "Capabilities":{ + "shape":"AttendeeCapabilities", + "documentation":"

The capabilties that you want to update.

" + } + } + }, + "UpdateAttendeeCapabilitiesResponse":{ + "type":"structure", + "members":{ + "Attendee":{ + "shape":"Attendee", + "documentation":"

The updated attendee data.

" + } + } } }, "documentation":"

The Amazon Chime SDK meetings APIs in this section allow software developers to create Amazon Chime SDK meetings, set the AWS Regions for meetings, create and manage users, and send and receive meeting notifications. For more information about the meeting APIs, see Amazon Chime SDK meetings.

" diff --git a/botocore/data/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json b/botocore/data/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..26a18b06 --- /dev/null +++ b/botocore/data/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/chime-sdk-messaging/2021-05-15/examples-1.json b/botocore/data/chime-sdk-messaging/2021-05-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/chime-sdk-messaging/2021-05-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/chime-sdk-messaging/2021-05-15/service-2.json b/botocore/data/chime-sdk-messaging/2021-05-15/service-2.json index a38dabe5..016f8eb4 100644 --- a/botocore/data/chime-sdk-messaging/2021-05-15/service-2.json +++ b/botocore/data/chime-sdk-messaging/2021-05-15/service-2.json @@ -45,8 +45,10 @@ {"shape":"ServiceUnavailableException"}, {"shape":"UnauthorizedClientException"}, {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, {"shape":"ForbiddenException"}, - {"shape":"ThrottledClientException"} + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"} ], "documentation":"

Adds a specified number of users to a channel.

" }, @@ -144,6 +146,7 @@ "output":{"shape":"CreateChannelMembershipResponse"}, "errors":[ {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, {"shape":"ForbiddenException"}, {"shape":"UnauthorizedClientException"}, {"shape":"ConflictException"}, @@ -688,6 +691,25 @@ ], "documentation":"

A list of the channels moderated by an AppInstanceUser.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" }, + "ListSubChannels":{ + "name":"ListSubChannels", + "http":{ + "method":"GET", + "requestUri":"/channels/{channelArn}/subchannels", + "responseCode":200 + }, + "input":{"shape":"ListSubChannelsRequest"}, + "output":{"shape":"ListSubChannelsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Lists all the SubChannels in an elastic channel when given a channel ID. Available only to the app instance admins and channel moderators of elastic channels.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -739,6 +761,7 @@ "errors":[ {"shape":"BadRequestException"}, {"shape":"ForbiddenException"}, + {"shape":"ConflictException"}, {"shape":"UnauthorizedClientException"}, {"shape":"ThrottledClientException"}, {"shape":"ServiceUnavailableException"}, @@ -746,6 +769,25 @@ ], "documentation":"

Redacts message content, but not metadata. The message exists in the back end, but the action returns null content, and the state shows as redacted.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

" }, + "SearchChannels":{ + "name":"SearchChannels", + "http":{ + "method":"POST", + "requestUri":"/channels?operation=search", + "responseCode":200 + }, + "input":{"shape":"SearchChannelsRequest"}, + "output":{"shape":"SearchChannelsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Allows ChimeBearer to search channels by channel members. AppInstanceUsers can search across the channels that they belong to. AppInstanceAdmins can search across all channels.

" + }, "SendChannelMessage":{ "name":"SendChannelMessage", "http":{ @@ -902,7 +944,11 @@ }, "ReadMarkerTimestamp":{ "shape":"Timestamp", - "documentation":"

The time at which a message was last read.

" + "documentation":"

The time at which an AppInstanceUser last marked a channel as read.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel that the AppInstanceUser is a member of.

" } }, "documentation":"

Summary of the membership details of an AppInstanceUser.

" @@ -961,6 +1007,10 @@ "ChannelArn":{ "shape":"ChimeArn", "documentation":"

The ARN of the channel to which you're adding users.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel.

" } }, "documentation":"

The membership information, including member ARNs, the channel ARN, and membership types.

" @@ -1014,6 +1064,10 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

Only required when creating membership in a SubChannel for a moderator in an elastic channel.

" } } }, @@ -1077,6 +1131,10 @@ "ChannelFlowArn":{ "shape":"ChimeArn", "documentation":"

The ARN of the channel flow.

" + }, + "ElasticChannelConfiguration":{ + "shape":"ElasticChannelConfiguration", + "documentation":"

The attributes required to configure and create an elastic channel. An elastic channel can support a maximum of 1-million members.

" } }, "documentation":"

The details of a channel.

" @@ -1242,6 +1300,19 @@ "type":"list", "member":{"shape":"ChannelFlowSummary"} }, + "ChannelId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[A-Za-z0-9]([A-Za-z0-9\\:\\-\\_\\.\\@]{0,62}[A-Za-z0-9])?", + "sensitive":true + }, + "ChannelMemberArns":{ + "type":"list", + "member":{"shape":"ChimeArn"}, + "max":10, + "min":1 + }, "ChannelMembership":{ "type":"structure", "members":{ @@ -1268,6 +1339,10 @@ "LastUpdatedTimestamp":{ "shape":"Timestamp", "documentation":"

The time at which a channel membership was last updated.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel that a user belongs to.

" } }, "documentation":"

The details of a channel member.

" @@ -1375,6 +1450,10 @@ "MessageAttributes":{ "shape":"MessageAttributeMap", "documentation":"

The attributes for the message, used for message filtering along with a FilterRule defined in the PushNotificationPreferences.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel.

" } }, "documentation":"

The details of a message in a channel.

" @@ -1402,6 +1481,10 @@ "MessageAttributes":{ "shape":"MessageAttributeMap", "documentation":"

The attributes for the message, used for message filtering along with a FilterRule defined in the PushNotificationPreferences.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel.

" } }, "documentation":"

Stores information about a callback.

" @@ -1540,6 +1623,12 @@ }, "documentation":"

The details of a channel moderator.

" }, + "ChannelModeratorArns":{ + "type":"list", + "member":{"shape":"ChimeArn"}, + "max":10, + "min":1 + }, "ChannelModeratorSummary":{ "type":"structure", "members":{ @@ -1586,7 +1675,7 @@ }, "LastMessageTimestamp":{ "shape":"Timestamp", - "documentation":"

The time at which the last message in a channel was sent.

" + "documentation":"

The time at which the last persistent message in a channel was sent.

" } }, "documentation":"

Summary of the details of a Channel.

" @@ -1732,6 +1821,10 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

Only required when creating membership in a SubChannel for a moderator in an elastic channel.

" } } }, @@ -1745,6 +1838,10 @@ "Member":{ "shape":"Identity", "documentation":"

The ARN and metadata of the member being added.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the response.

" } } }, @@ -1830,6 +1927,22 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "ChannelId":{ + "shape":"ChannelId", + "documentation":"

The ID of the channel in the request.

" + }, + "MemberArns":{ + "shape":"ChannelMemberArns", + "documentation":"

The ARNs of the channel members in the request.

" + }, + "ModeratorArns":{ + "shape":"ChannelModeratorArns", + "documentation":"

The ARNs of the channel moderators in the request.

" + }, + "ElasticChannelConfiguration":{ + "shape":"ElasticChannelConfiguration", + "documentation":"

The attributes required to configure and create an elastic channel. An elastic channel can support a maximum of 1-million users, excluding moderators.

" } } }, @@ -1907,6 +2020,12 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

Only for use by moderators.

", + "location":"querystring", + "locationName":"sub-channel-id" } } }, @@ -1935,6 +2054,12 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

Only required when deleting messages in a SubChannel that the user belongs to.

", + "location":"querystring", + "locationName":"sub-channel-id" } } }, @@ -1984,6 +2109,12 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

", + "location":"querystring", + "locationName":"sub-channel-id" } } }, @@ -2107,6 +2238,12 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request. The response contains an ElasticChannelConfiguration object.

Only required to get a user’s SubChannel membership details.

", + "location":"querystring", + "locationName":"sub-channel-id" } } }, @@ -2251,6 +2388,29 @@ } } }, + "ElasticChannelConfiguration":{ + "type":"structure", + "required":[ + "MaximumSubChannels", + "TargetMembershipsPerSubChannel", + "MinimumMembershipPercentage" + ], + "members":{ + "MaximumSubChannels":{ + "shape":"MaximumSubChannels", + "documentation":"

The maximum number of SubChannels that you want to allow in the elastic channel.

" + }, + "TargetMembershipsPerSubChannel":{ + "shape":"TargetMembershipsPerSubChannel", + "documentation":"

The maximum number of members allowed in a SubChannel.

" + }, + "MinimumMembershipPercentage":{ + "shape":"MinimumMembershipPercentage", + "documentation":"

The minimum allowed percentage of TargetMembershipsPerSubChannel users. Ceil of the calculated value is used in balancing members among SubChannels of the elastic channel.

" + } + }, + "documentation":"

The attributes required to configure and create an elastic channel. An elastic channel can support a maximum of 1-million members.

" + }, "ErrorCode":{ "type":"string", "enum":[ @@ -2329,7 +2489,10 @@ "shape":"ChimeArn", "documentation":"

The ARN of the channel.

" }, - "Member":{"shape":"Identity"}, + "Member":{ + "shape":"Identity", + "documentation":"

The details of a user.

" + }, "Preferences":{ "shape":"ChannelMembershipPreferences", "documentation":"

The channel membership preferences for an AppInstanceUser .

" @@ -2361,6 +2524,12 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

Only required when getting messages in a SubChannel that the user belongs to.

", + "location":"querystring", + "locationName":"sub-channel-id" } } }, @@ -2398,6 +2567,12 @@ "documentation":"

The AppInstanceUserArn of the user making the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

Only required when getting message status in a SubChannel that the user belongs to.

", + "location":"querystring", + "locationName":"sub-channel-id" } } }, @@ -2588,7 +2763,7 @@ "members":{ "ChannelMemberships":{ "shape":"ChannelMembershipForAppInstanceUserSummaryList", - "documentation":"

The token passed by previous API calls until all requested users are returned.

" + "documentation":"

The information for the requested channel memberships.

" }, "NextToken":{ "shape":"NextToken", @@ -2632,6 +2807,12 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

Only required when listing a user's memberships in a particular sub-channel of an elastic channel.

", + "location":"querystring", + "locationName":"sub-channel-id" } } }, @@ -2700,6 +2881,12 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

Only required when listing the messages in a SubChannel that the user belongs to.

", + "location":"querystring", + "locationName":"sub-channel-id" } } }, @@ -2717,6 +2904,10 @@ "ChannelMessages":{ "shape":"ChannelMessageSummaryList", "documentation":"

The information about, and content of, each requested message.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the response.

" } } }, @@ -2902,6 +3093,56 @@ } } }, + "ListSubChannelsRequest":{ + "type":"structure", + "required":[ + "ChannelArn", + "ChimeBearer" + ], + "members":{ + "ChannelArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of elastic channel.

", + "location":"uri", + "locationName":"channelArn" + }, + "ChimeBearer":{ + "shape":"ChimeArn", + "documentation":"

The AppInstanceUserArn of the user making the API call.

", + "location":"header", + "locationName":"x-amz-chime-bearer" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of sub-channels that you want to return.

", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token passed by previous API calls until all requested sub-channels are returned.

", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "ListSubChannelsResponse":{ + "type":"structure", + "members":{ + "ChannelArn":{ + "shape":"ChimeArn", + "documentation":"

The ARN of elastic channel.

" + }, + "SubChannels":{ + "shape":"SubChannelSummaryList", + "documentation":"

The information about each sub-channel.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token passed by previous API calls until all requested sub-channels are returned.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceARN"], @@ -2928,6 +3169,10 @@ "max":50, "min":1 }, + "MaximumSubChannels":{ + "type":"integer", + "min":2 + }, "MemberArns":{ "type":"list", "member":{"shape":"ChimeArn"}, @@ -2938,6 +3183,7 @@ "type":"list", "member":{"shape":"Identity"} }, + "MembershipCount":{"type":"integer"}, "MessageAttributeMap":{ "type":"map", "key":{"shape":"MessageAttributeName"}, @@ -2994,6 +3240,11 @@ "pattern":".*", "sensitive":true }, + "MinimumMembershipPercentage":{ + "type":"integer", + "max":40, + "min":1 + }, "NextToken":{ "type":"string", "max":2048, @@ -3105,7 +3356,7 @@ }, "FilterRule":{ "shape":"FilterRule", - "documentation":"

The simple JSON object used to send a subset of a push notification to the requsted member.

" + "documentation":"

The simple JSON object used to send a subset of a push notification to the requested member.

" } }, "documentation":"

The channel membership preferences for push notification.

" @@ -3164,7 +3415,10 @@ "shape":"ChimeArn", "documentation":"

The ARN of the channel.

" }, - "Member":{"shape":"Identity"}, + "Member":{ + "shape":"Identity", + "documentation":"

The details of a user.

" + }, "Preferences":{ "shape":"ChannelMembershipPreferences", "documentation":"

The ARN and metadata of the member being added.

" @@ -3196,6 +3450,10 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

" } } }, @@ -3209,6 +3467,10 @@ "MessageId":{ "shape":"MessageId", "documentation":"

The ID of the message being redacted.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the response.

Only required when redacting messages in a SubChannel that the user belongs to.

" } } }, @@ -3229,6 +3491,99 @@ "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u0085\\u00A0-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]*", "sensitive":true }, + "SearchChannelsRequest":{ + "type":"structure", + "required":["Fields"], + "members":{ + "ChimeBearer":{ + "shape":"ChimeArn", + "documentation":"

The AppInstanceUserArn of the user making the API call.

", + "location":"header", + "locationName":"x-amz-chime-bearer" + }, + "Fields":{ + "shape":"SearchFields", + "documentation":"

A list of the Field objects in the channel being searched.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of channels that you want returned.

", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token returned from previous API requests until the number of channels is reached.

", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "SearchChannelsResponse":{ + "type":"structure", + "members":{ + "Channels":{ + "shape":"ChannelSummaryList", + "documentation":"

A list of the channels in the request.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token returned from previous API responses until the number of channels is reached.

" + } + } + }, + "SearchField":{ + "type":"structure", + "required":[ + "Key", + "Values", + "Operator" + ], + "members":{ + "Key":{ + "shape":"SearchFieldKey", + "documentation":"

An enum value that indicates the key to search the channel on. MEMBERS allows you to search channels based on memberships. You can use it with the EQUALS operator to get channels whose memberships are equal to the specified values, and with the INCLUDES operator to get channels whose memberships include the specified values.

" + }, + "Values":{ + "shape":"SearchFieldValues", + "documentation":"

The values that you want to search for, a list of strings. The values must be AppInstanceUserArns specified as a list of strings.

This operation isn't supported for AppInstanceUsers with large number of memberships.

" + }, + "Operator":{ + "shape":"SearchFieldOperator", + "documentation":"

The operator used to compare field values, currently EQUALS or INCLUDES. Use the EQUALS operator to find channels whose memberships equal the specified values. Use the INCLUDES operator to find channels whose memberships include the specified values.

" + } + }, + "documentation":"

A Field of the channel that you want to search.

" + }, + "SearchFieldKey":{ + "type":"string", + "enum":["MEMBERS"] + }, + "SearchFieldOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "INCLUDES" + ] + }, + "SearchFieldValue":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\s\\S]*" + }, + "SearchFieldValues":{ + "type":"list", + "member":{"shape":"SearchFieldValue"}, + "max":20, + "min":1 + }, + "SearchFields":{ + "type":"list", + "member":{"shape":"SearchField"}, + "max":20, + "min":1 + }, "SendChannelMessageRequest":{ "type":"structure", "required":[ @@ -3280,6 +3635,10 @@ "MessageAttributes":{ "shape":"MessageAttributeMap", "documentation":"

The attributes for the message, used for message filtering along with a FilterRule defined in the PushNotificationPreferences.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

" } } }, @@ -3297,6 +3656,10 @@ "Status":{ "shape":"ChannelMessageStatusStructure", "documentation":"

The status of the channel message.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the response.

" } } }, @@ -3336,6 +3699,30 @@ "pattern":"[\\s\\S]*" }, "String":{"type":"string"}, + "SubChannelId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[-_a-zA-Z0-9]*" + }, + "SubChannelSummary":{ + "type":"structure", + "members":{ + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The unique ID of a SubChannel.

" + }, + "MembershipCount":{ + "shape":"MembershipCount", + "documentation":"

The number of members in a SubChannel.

" + } + }, + "documentation":"

Summary of the sub-channels associated with the elastic channel.

" + }, + "SubChannelSummaryList":{ + "type":"list", + "member":{"shape":"SubChannelSummary"} + }, "Tag":{ "type":"structure", "required":[ @@ -3395,6 +3782,10 @@ "min":1, "sensitive":true }, + "TargetMembershipsPerSubChannel":{ + "type":"integer", + "min":2 + }, "ThrottledClientException":{ "type":"structure", "members":{ @@ -3499,6 +3890,10 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

Only required when updating messages in a SubChannel that the user belongs to.

" } } }, @@ -3516,6 +3911,10 @@ "Status":{ "shape":"ChannelMessageStatusStructure", "documentation":"

The status of the message update.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the response.

" } } }, @@ -3537,6 +3936,10 @@ "documentation":"

The AppInstanceUserArn of the user that makes the API call.

", "location":"header", "locationName":"x-amz-chime-bearer" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the request.

" } } }, @@ -3546,6 +3949,10 @@ "ChannelArn":{ "shape":"ChimeArn", "documentation":"

The ARN of the channel.

" + }, + "SubChannelId":{ + "shape":"SubChannelId", + "documentation":"

The ID of the SubChannel in the response.

" } } }, @@ -3553,8 +3960,6 @@ "type":"structure", "required":[ "ChannelArn", - "Name", - "Mode", "ChimeBearer" ], "members":{ @@ -3598,5 +4003,5 @@ "max":4096 } }, - "documentation":"

The Amazon Chime SDK Messaging APIs in this section allow software developers to send and receive messages in custom messaging applications. These APIs depend on the frameworks provided by the Amazon Chime SDK Identity APIs. For more information about the messaging APIs, see Amazon Chime SDK messaging

" + "documentation":"

The Amazon Chime SDK Messaging APIs in this section allow software developers to send and receive messages in custom messaging applications. These APIs depend on the frameworks provided by the Amazon Chime SDK Identity APIs. For more information about the messaging APIs, see Amazon Chime SDK messaging.

" } diff --git a/botocore/data/chime-sdk-voice/2022-08-03/endpoint-rule-set-1.json b/botocore/data/chime-sdk-voice/2022-08-03/endpoint-rule-set-1.json new file mode 100644 index 00000000..a3e2b59a --- /dev/null +++ b/botocore/data/chime-sdk-voice/2022-08-03/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voice-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voice-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voice-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://voice-chime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/chime-sdk-voice/2022-08-03/paginators-1.json b/botocore/data/chime-sdk-voice/2022-08-03/paginators-1.json new file mode 100644 index 00000000..648f71ee --- /dev/null +++ b/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/botocore/data/chime-sdk-voice/2022-08-03/service-2.json b/botocore/data/chime-sdk-voice/2022-08-03/service-2.json new file mode 100644 index 00000000..28a44751 --- /dev/null +++ b/botocore/data/chime-sdk-voice/2022-08-03/service-2.json @@ -0,0 +1,3687 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-08-03", + "endpointPrefix":"voice-chime", + "protocol":"rest-json", + "serviceFullName":"Amazon Chime SDK Voice", + "serviceId":"Chime SDK Voice", + "signatureVersion":"v4", + "signingName":"chime", + "uid":"chime-sdk-voice-2022-08-03" + }, + "operations":{ + "AssociatePhoneNumbersWithVoiceConnector":{ + "name":"AssociatePhoneNumbersWithVoiceConnector", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{voiceConnectorId}?operation=associate-phone-numbers", + "responseCode":200 + }, + "input":{"shape":"AssociatePhoneNumbersWithVoiceConnectorRequest"}, + "output":{"shape":"AssociatePhoneNumbersWithVoiceConnectorResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "AssociatePhoneNumbersWithVoiceConnectorGroup":{ + "name":"AssociatePhoneNumbersWithVoiceConnectorGroup", + "http":{ + "method":"POST", + "requestUri":"/voice-connector-groups/{voiceConnectorGroupId}?operation=associate-phone-numbers", + "responseCode":200 + }, + "input":{"shape":"AssociatePhoneNumbersWithVoiceConnectorGroupRequest"}, + "output":{"shape":"AssociatePhoneNumbersWithVoiceConnectorGroupResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "BatchDeletePhoneNumber":{ + "name":"BatchDeletePhoneNumber", + "http":{ + "method":"POST", + "requestUri":"/phone-numbers?operation=batch-delete", + "responseCode":200 + }, + "input":{"shape":"BatchDeletePhoneNumberRequest"}, + "output":{"shape":"BatchDeletePhoneNumberResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "BatchUpdatePhoneNumber":{ + "name":"BatchUpdatePhoneNumber", + "http":{ + "method":"POST", + "requestUri":"/phone-numbers?operation=batch-update", + "responseCode":200 + }, + "input":{"shape":"BatchUpdatePhoneNumberRequest"}, + "output":{"shape":"BatchUpdatePhoneNumberResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "CreatePhoneNumberOrder":{ + "name":"CreatePhoneNumberOrder", + "http":{ + "method":"POST", + "requestUri":"/phone-number-orders", + "responseCode":201 + }, + "input":{"shape":"CreatePhoneNumberOrderRequest"}, + "output":{"shape":"CreatePhoneNumberOrderResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "CreateProxySession":{ + "name":"CreateProxySession", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{voiceConnectorId}/proxy-sessions", + "responseCode":201 + }, + "input":{"shape":"CreateProxySessionRequest"}, + "output":{"shape":"CreateProxySessionResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "CreateSipMediaApplication":{ + "name":"CreateSipMediaApplication", + "http":{ + "method":"POST", + "requestUri":"/sip-media-applications", + "responseCode":201 + }, + "input":{"shape":"CreateSipMediaApplicationRequest"}, + "output":{"shape":"CreateSipMediaApplicationResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "CreateSipMediaApplicationCall":{ + "name":"CreateSipMediaApplicationCall", + "http":{ + "method":"POST", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}/calls", + "responseCode":201 + }, + "input":{"shape":"CreateSipMediaApplicationCallRequest"}, + "output":{"shape":"CreateSipMediaApplicationCallResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ThrottledClientException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "CreateSipRule":{ + "name":"CreateSipRule", + "http":{ + "method":"POST", + "requestUri":"/sip-rules", + "responseCode":201 + }, + "input":{"shape":"CreateSipRuleRequest"}, + "output":{"shape":"CreateSipRuleResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "CreateVoiceConnector":{ + "name":"CreateVoiceConnector", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors", + "responseCode":201 + }, + "input":{"shape":"CreateVoiceConnectorRequest"}, + "output":{"shape":"CreateVoiceConnectorResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "CreateVoiceConnectorGroup":{ + "name":"CreateVoiceConnectorGroup", + "http":{ + "method":"POST", + "requestUri":"/voice-connector-groups", + "responseCode":201 + }, + "input":{"shape":"CreateVoiceConnectorGroupRequest"}, + "output":{"shape":"CreateVoiceConnectorGroupResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeletePhoneNumber":{ + "name":"DeletePhoneNumber", + "http":{ + "method":"DELETE", + "requestUri":"/phone-numbers/{phoneNumberId}", + "responseCode":204 + }, + "input":{"shape":"DeletePhoneNumberRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteProxySession":{ + "name":"DeleteProxySession", + "http":{ + "method":"DELETE", + "requestUri":"/voice-connectors/{voiceConnectorId}/proxy-sessions/{proxySessionId}", + "responseCode":204 + }, + "input":{"shape":"DeleteProxySessionRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteSipMediaApplication":{ + "name":"DeleteSipMediaApplication", + "http":{ + "method":"DELETE", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}", + "responseCode":204 + }, + "input":{"shape":"DeleteSipMediaApplicationRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteSipRule":{ + "name":"DeleteSipRule", + "http":{ + "method":"DELETE", + "requestUri":"/sip-rules/{sipRuleId}", + "responseCode":204 + }, + "input":{"shape":"DeleteSipRuleRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteVoiceConnector":{ + "name":"DeleteVoiceConnector", + "http":{ + "method":"DELETE", + "requestUri":"/voice-connectors/{voiceConnectorId}", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceConnectorRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteVoiceConnectorEmergencyCallingConfiguration":{ + "name":"DeleteVoiceConnectorEmergencyCallingConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/voice-connectors/{voiceConnectorId}/emergency-calling-configuration", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceConnectorEmergencyCallingConfigurationRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteVoiceConnectorGroup":{ + "name":"DeleteVoiceConnectorGroup", + "http":{ + "method":"DELETE", + "requestUri":"/voice-connector-groups/{voiceConnectorGroupId}", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceConnectorGroupRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteVoiceConnectorOrigination":{ + "name":"DeleteVoiceConnectorOrigination", + "http":{ + "method":"DELETE", + "requestUri":"/voice-connectors/{voiceConnectorId}/origination", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceConnectorOriginationRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteVoiceConnectorProxy":{ + "name":"DeleteVoiceConnectorProxy", + "http":{ + "method":"DELETE", + "requestUri":"/voice-connectors/{voiceConnectorId}/programmable-numbers/proxy", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceConnectorProxyRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteVoiceConnectorStreamingConfiguration":{ + "name":"DeleteVoiceConnectorStreamingConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/voice-connectors/{voiceConnectorId}/streaming-configuration", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceConnectorStreamingConfigurationRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteVoiceConnectorTermination":{ + "name":"DeleteVoiceConnectorTermination", + "http":{ + "method":"DELETE", + "requestUri":"/voice-connectors/{voiceConnectorId}/termination", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceConnectorTerminationRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DeleteVoiceConnectorTerminationCredentials":{ + "name":"DeleteVoiceConnectorTerminationCredentials", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{voiceConnectorId}/termination/credentials?operation=delete", + "responseCode":204 + }, + "input":{"shape":"DeleteVoiceConnectorTerminationCredentialsRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DisassociatePhoneNumbersFromVoiceConnector":{ + "name":"DisassociatePhoneNumbersFromVoiceConnector", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{voiceConnectorId}?operation=disassociate-phone-numbers", + "responseCode":200 + }, + "input":{"shape":"DisassociatePhoneNumbersFromVoiceConnectorRequest"}, + "output":{"shape":"DisassociatePhoneNumbersFromVoiceConnectorResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "DisassociatePhoneNumbersFromVoiceConnectorGroup":{ + "name":"DisassociatePhoneNumbersFromVoiceConnectorGroup", + "http":{ + "method":"POST", + "requestUri":"/voice-connector-groups/{voiceConnectorGroupId}?operation=disassociate-phone-numbers", + "responseCode":200 + }, + "input":{"shape":"DisassociatePhoneNumbersFromVoiceConnectorGroupRequest"}, + "output":{"shape":"DisassociatePhoneNumbersFromVoiceConnectorGroupResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetGlobalSettings":{ + "name":"GetGlobalSettings", + "http":{ + "method":"GET", + "requestUri":"/settings", + "responseCode":200 + }, + "output":{"shape":"GetGlobalSettingsResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetPhoneNumber":{ + "name":"GetPhoneNumber", + "http":{ + "method":"GET", + "requestUri":"/phone-numbers/{phoneNumberId}" + }, + "input":{"shape":"GetPhoneNumberRequest"}, + "output":{"shape":"GetPhoneNumberResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetPhoneNumberOrder":{ + "name":"GetPhoneNumberOrder", + "http":{ + "method":"GET", + "requestUri":"/phone-number-orders/{phoneNumberOrderId}", + "responseCode":200 + }, + "input":{"shape":"GetPhoneNumberOrderRequest"}, + "output":{"shape":"GetPhoneNumberOrderResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetPhoneNumberSettings":{ + "name":"GetPhoneNumberSettings", + "http":{ + "method":"GET", + "requestUri":"/settings/phone-number", + "responseCode":200 + }, + "output":{"shape":"GetPhoneNumberSettingsResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetProxySession":{ + "name":"GetProxySession", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/proxy-sessions/{proxySessionId}", + "responseCode":200 + }, + "input":{"shape":"GetProxySessionRequest"}, + "output":{"shape":"GetProxySessionResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetSipMediaApplication":{ + "name":"GetSipMediaApplication", + "http":{ + "method":"GET", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}", + "responseCode":200 + }, + "input":{"shape":"GetSipMediaApplicationRequest"}, + "output":{"shape":"GetSipMediaApplicationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetSipMediaApplicationAlexaSkillConfiguration":{ + "name":"GetSipMediaApplicationAlexaSkillConfiguration", + "http":{ + "method":"GET", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}/alexa-skill-configuration", + "responseCode":200 + }, + "input":{"shape":"GetSipMediaApplicationAlexaSkillConfigurationRequest"}, + "output":{"shape":"GetSipMediaApplicationAlexaSkillConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetSipMediaApplicationLoggingConfiguration":{ + "name":"GetSipMediaApplicationLoggingConfiguration", + "http":{ + "method":"GET", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}/logging-configuration", + "responseCode":200 + }, + "input":{"shape":"GetSipMediaApplicationLoggingConfigurationRequest"}, + "output":{"shape":"GetSipMediaApplicationLoggingConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetSipRule":{ + "name":"GetSipRule", + "http":{ + "method":"GET", + "requestUri":"/sip-rules/{sipRuleId}", + "responseCode":200 + }, + "input":{"shape":"GetSipRuleRequest"}, + "output":{"shape":"GetSipRuleResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetVoiceConnector":{ + "name":"GetVoiceConnector", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}", + "responseCode":200 + }, + "input":{"shape":"GetVoiceConnectorRequest"}, + "output":{"shape":"GetVoiceConnectorResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetVoiceConnectorEmergencyCallingConfiguration":{ + "name":"GetVoiceConnectorEmergencyCallingConfiguration", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/emergency-calling-configuration", + "responseCode":200 + }, + "input":{"shape":"GetVoiceConnectorEmergencyCallingConfigurationRequest"}, + "output":{"shape":"GetVoiceConnectorEmergencyCallingConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetVoiceConnectorGroup":{ + "name":"GetVoiceConnectorGroup", + "http":{ + "method":"GET", + "requestUri":"/voice-connector-groups/{voiceConnectorGroupId}", + "responseCode":200 + }, + "input":{"shape":"GetVoiceConnectorGroupRequest"}, + "output":{"shape":"GetVoiceConnectorGroupResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetVoiceConnectorLoggingConfiguration":{ + "name":"GetVoiceConnectorLoggingConfiguration", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/logging-configuration", + "responseCode":200 + }, + "input":{"shape":"GetVoiceConnectorLoggingConfigurationRequest"}, + "output":{"shape":"GetVoiceConnectorLoggingConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetVoiceConnectorOrigination":{ + "name":"GetVoiceConnectorOrigination", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/origination", + "responseCode":200 + }, + "input":{"shape":"GetVoiceConnectorOriginationRequest"}, + "output":{"shape":"GetVoiceConnectorOriginationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetVoiceConnectorProxy":{ + "name":"GetVoiceConnectorProxy", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/programmable-numbers/proxy", + "responseCode":200 + }, + "input":{"shape":"GetVoiceConnectorProxyRequest"}, + "output":{"shape":"GetVoiceConnectorProxyResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetVoiceConnectorStreamingConfiguration":{ + "name":"GetVoiceConnectorStreamingConfiguration", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/streaming-configuration", + "responseCode":200 + }, + "input":{"shape":"GetVoiceConnectorStreamingConfigurationRequest"}, + "output":{"shape":"GetVoiceConnectorStreamingConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetVoiceConnectorTermination":{ + "name":"GetVoiceConnectorTermination", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/termination", + "responseCode":200 + }, + "input":{"shape":"GetVoiceConnectorTerminationRequest"}, + "output":{"shape":"GetVoiceConnectorTerminationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "GetVoiceConnectorTerminationHealth":{ + "name":"GetVoiceConnectorTerminationHealth", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/termination/health", + "responseCode":200 + }, + "input":{"shape":"GetVoiceConnectorTerminationHealthRequest"}, + "output":{"shape":"GetVoiceConnectorTerminationHealthResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListAvailableVoiceConnectorRegions":{ + "name":"ListAvailableVoiceConnectorRegions", + "http":{ + "method":"GET", + "requestUri":"/voice-connector-regions", + "responseCode":200 + }, + "output":{"shape":"ListAvailableVoiceConnectorRegionsResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListPhoneNumberOrders":{ + "name":"ListPhoneNumberOrders", + "http":{ + "method":"GET", + "requestUri":"/phone-number-orders", + "responseCode":200 + }, + "input":{"shape":"ListPhoneNumberOrdersRequest"}, + "output":{"shape":"ListPhoneNumberOrdersResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListPhoneNumbers":{ + "name":"ListPhoneNumbers", + "http":{ + "method":"GET", + "requestUri":"/phone-numbers" + }, + "input":{"shape":"ListPhoneNumbersRequest"}, + "output":{"shape":"ListPhoneNumbersResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListProxySessions":{ + "name":"ListProxySessions", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/proxy-sessions", + "responseCode":200 + }, + "input":{"shape":"ListProxySessionsRequest"}, + "output":{"shape":"ListProxySessionsResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListSipMediaApplications":{ + "name":"ListSipMediaApplications", + "http":{ + "method":"GET", + "requestUri":"/sip-media-applications", + "responseCode":200 + }, + "input":{"shape":"ListSipMediaApplicationsRequest"}, + "output":{"shape":"ListSipMediaApplicationsResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListSipRules":{ + "name":"ListSipRules", + "http":{ + "method":"GET", + "requestUri":"/sip-rules", + "responseCode":200 + }, + "input":{"shape":"ListSipRulesRequest"}, + "output":{"shape":"ListSipRulesResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListSupportedPhoneNumberCountries":{ + "name":"ListSupportedPhoneNumberCountries", + "http":{ + "method":"GET", + "requestUri":"/phone-number-countries", + "responseCode":200 + }, + "input":{"shape":"ListSupportedPhoneNumberCountriesRequest"}, + "output":{"shape":"ListSupportedPhoneNumberCountriesResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListVoiceConnectorGroups":{ + "name":"ListVoiceConnectorGroups", + "http":{ + "method":"GET", + "requestUri":"/voice-connector-groups", + "responseCode":200 + }, + "input":{"shape":"ListVoiceConnectorGroupsRequest"}, + "output":{"shape":"ListVoiceConnectorGroupsResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListVoiceConnectorTerminationCredentials":{ + "name":"ListVoiceConnectorTerminationCredentials", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors/{voiceConnectorId}/termination/credentials", + "responseCode":200 + }, + "input":{"shape":"ListVoiceConnectorTerminationCredentialsRequest"}, + "output":{"shape":"ListVoiceConnectorTerminationCredentialsResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ListVoiceConnectors":{ + "name":"ListVoiceConnectors", + "http":{ + "method":"GET", + "requestUri":"/voice-connectors", + "responseCode":200 + }, + "input":{"shape":"ListVoiceConnectorsRequest"}, + "output":{"shape":"ListVoiceConnectorsResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "PutSipMediaApplicationAlexaSkillConfiguration":{ + "name":"PutSipMediaApplicationAlexaSkillConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}/alexa-skill-configuration", + "responseCode":200 + }, + "input":{"shape":"PutSipMediaApplicationAlexaSkillConfigurationRequest"}, + "output":{"shape":"PutSipMediaApplicationAlexaSkillConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "PutSipMediaApplicationLoggingConfiguration":{ + "name":"PutSipMediaApplicationLoggingConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}/logging-configuration", + "responseCode":200 + }, + "input":{"shape":"PutSipMediaApplicationLoggingConfigurationRequest"}, + "output":{"shape":"PutSipMediaApplicationLoggingConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "PutVoiceConnectorEmergencyCallingConfiguration":{ + "name":"PutVoiceConnectorEmergencyCallingConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/voice-connectors/{voiceConnectorId}/emergency-calling-configuration", + "responseCode":200 + }, + "input":{"shape":"PutVoiceConnectorEmergencyCallingConfigurationRequest"}, + "output":{"shape":"PutVoiceConnectorEmergencyCallingConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "PutVoiceConnectorLoggingConfiguration":{ + "name":"PutVoiceConnectorLoggingConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/voice-connectors/{voiceConnectorId}/logging-configuration", + "responseCode":200 + }, + "input":{"shape":"PutVoiceConnectorLoggingConfigurationRequest"}, + "output":{"shape":"PutVoiceConnectorLoggingConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "PutVoiceConnectorOrigination":{ + "name":"PutVoiceConnectorOrigination", + "http":{ + "method":"PUT", + "requestUri":"/voice-connectors/{voiceConnectorId}/origination", + "responseCode":200 + }, + "input":{"shape":"PutVoiceConnectorOriginationRequest"}, + "output":{"shape":"PutVoiceConnectorOriginationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "PutVoiceConnectorProxy":{ + "name":"PutVoiceConnectorProxy", + "http":{ + "method":"PUT", + "requestUri":"/voice-connectors/{voiceConnectorId}/programmable-numbers/proxy" + }, + "input":{"shape":"PutVoiceConnectorProxyRequest"}, + "output":{"shape":"PutVoiceConnectorProxyResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"AccessDeniedException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "PutVoiceConnectorStreamingConfiguration":{ + "name":"PutVoiceConnectorStreamingConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/voice-connectors/{voiceConnectorId}/streaming-configuration", + "responseCode":200 + }, + "input":{"shape":"PutVoiceConnectorStreamingConfigurationRequest"}, + "output":{"shape":"PutVoiceConnectorStreamingConfigurationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "PutVoiceConnectorTermination":{ + "name":"PutVoiceConnectorTermination", + "http":{ + "method":"PUT", + "requestUri":"/voice-connectors/{voiceConnectorId}/termination", + "responseCode":200 + }, + "input":{"shape":"PutVoiceConnectorTerminationRequest"}, + "output":{"shape":"PutVoiceConnectorTerminationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "PutVoiceConnectorTerminationCredentials":{ + "name":"PutVoiceConnectorTerminationCredentials", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{voiceConnectorId}/termination/credentials?operation=put", + "responseCode":204 + }, + "input":{"shape":"PutVoiceConnectorTerminationCredentialsRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "RestorePhoneNumber":{ + "name":"RestorePhoneNumber", + "http":{ + "method":"POST", + "requestUri":"/phone-numbers/{phoneNumberId}?operation=restore", + "responseCode":200 + }, + "input":{"shape":"RestorePhoneNumberRequest"}, + "output":{"shape":"RestorePhoneNumberResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "SearchAvailablePhoneNumbers":{ + "name":"SearchAvailablePhoneNumbers", + "http":{ + "method":"GET", + "requestUri":"/search?type=phone-numbers" + }, + "input":{"shape":"SearchAvailablePhoneNumbersRequest"}, + "output":{"shape":"SearchAvailablePhoneNumbersResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"ForbiddenException"}, + {"shape":"AccessDeniedException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "UpdateGlobalSettings":{ + "name":"UpdateGlobalSettings", + "http":{ + "method":"PUT", + "requestUri":"/settings", + "responseCode":204 + }, + "input":{"shape":"UpdateGlobalSettingsRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "UpdatePhoneNumber":{ + "name":"UpdatePhoneNumber", + "http":{ + "method":"POST", + "requestUri":"/phone-numbers/{phoneNumberId}", + "responseCode":200 + }, + "input":{"shape":"UpdatePhoneNumberRequest"}, + "output":{"shape":"UpdatePhoneNumberResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "UpdatePhoneNumberSettings":{ + "name":"UpdatePhoneNumberSettings", + "http":{ + "method":"PUT", + "requestUri":"/settings/phone-number", + "responseCode":204 + }, + "input":{"shape":"UpdatePhoneNumberSettingsRequest"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "UpdateProxySession":{ + "name":"UpdateProxySession", + "http":{ + "method":"POST", + "requestUri":"/voice-connectors/{voiceConnectorId}/proxy-sessions/{proxySessionId}", + "responseCode":201 + }, + "input":{"shape":"UpdateProxySessionRequest"}, + "output":{"shape":"UpdateProxySessionResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "UpdateSipMediaApplication":{ + "name":"UpdateSipMediaApplication", + "http":{ + "method":"PUT", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}", + "responseCode":200 + }, + "input":{"shape":"UpdateSipMediaApplicationRequest"}, + "output":{"shape":"UpdateSipMediaApplicationResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "UpdateSipMediaApplicationCall":{ + "name":"UpdateSipMediaApplicationCall", + "http":{ + "method":"POST", + "requestUri":"/sip-media-applications/{sipMediaApplicationId}/calls/{transactionId}", + "responseCode":202 + }, + "input":{"shape":"UpdateSipMediaApplicationCallRequest"}, + "output":{"shape":"UpdateSipMediaApplicationCallResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ThrottledClientException"}, + {"shape":"UnauthorizedClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "UpdateSipRule":{ + "name":"UpdateSipRule", + "http":{ + "method":"PUT", + "requestUri":"/sip-rules/{sipRuleId}", + "responseCode":202 + }, + "input":{"shape":"UpdateSipRuleRequest"}, + "output":{"shape":"UpdateSipRuleResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "UpdateVoiceConnector":{ + "name":"UpdateVoiceConnector", + "http":{ + "method":"PUT", + "requestUri":"/voice-connectors/{voiceConnectorId}", + "responseCode":200 + }, + "input":{"shape":"UpdateVoiceConnectorRequest"}, + "output":{"shape":"UpdateVoiceConnectorResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "UpdateVoiceConnectorGroup":{ + "name":"UpdateVoiceConnectorGroup", + "http":{ + "method":"PUT", + "requestUri":"/voice-connector-groups/{voiceConnectorGroupId}", + "responseCode":202 + }, + "input":{"shape":"UpdateVoiceConnectorGroupRequest"}, + "output":{"shape":"UpdateVoiceConnectorGroupResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + }, + "ValidateE911Address":{ + "name":"ValidateE911Address", + "http":{ + "method":"POST", + "requestUri":"/emergency-calling/address", + "responseCode":202 + }, + "input":{"shape":"ValidateE911AddressRequest"}, + "output":{"shape":"ValidateE911AddressResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "Address":{ + "type":"structure", + "members":{ + "streetName":{"shape":"SensitiveNonEmptyString"}, + "streetSuffix":{"shape":"SensitiveNonEmptyString"}, + "postDirectional":{"shape":"SensitiveNonEmptyString"}, + "preDirectional":{"shape":"SensitiveNonEmptyString"}, + "streetNumber":{"shape":"SensitiveNonEmptyString"}, + "city":{"shape":"SensitiveNonEmptyString"}, + "state":{"shape":"SensitiveNonEmptyString"}, + "postalCode":{"shape":"SensitiveNonEmptyString"}, + "postalCodePlus4":{"shape":"SensitiveNonEmptyString"}, + "country":{"shape":"SensitiveNonEmptyString"} + } + }, + "AlexaSkillId":{ + "type":"string", + "max":64, + "pattern":"amzn1\\.application-oa2-client\\.[0-9a-fA-F]{32}", + "sensitive":true + }, + "AlexaSkillIdList":{ + "type":"list", + "member":{"shape":"AlexaSkillId"}, + "max":1, + "min":1 + }, + "AlexaSkillStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "INACTIVE" + ] + }, + "Alpha2CountryCode":{ + "type":"string", + "pattern":"[A-Z]{2}" + }, + "AreaCode":{ + "type":"string", + "pattern":"^$|^[0-9]{3,3}$" + }, + "AssociatePhoneNumbersWithVoiceConnectorGroupRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorGroupId", + "E164PhoneNumbers" + ], + "members":{ + "VoiceConnectorGroupId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorGroupId" + }, + "E164PhoneNumbers":{"shape":"E164PhoneNumberList"}, + "ForceAssociate":{"shape":"NullableBoolean"} + } + }, + "AssociatePhoneNumbersWithVoiceConnectorGroupResponse":{ + "type":"structure", + "members":{ + "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + } + }, + "AssociatePhoneNumbersWithVoiceConnectorRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "E164PhoneNumbers" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "E164PhoneNumbers":{"shape":"E164PhoneNumberList"}, + "ForceAssociate":{"shape":"NullableBoolean"} + } + }, + "AssociatePhoneNumbersWithVoiceConnectorResponse":{ + "type":"structure", + "members":{ + "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + } + }, + "BadRequestException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "BatchDeletePhoneNumberRequest":{ + "type":"structure", + "required":["PhoneNumberIds"], + "members":{ + "PhoneNumberIds":{"shape":"NonEmptyStringList"} + } + }, + "BatchDeletePhoneNumberResponse":{ + "type":"structure", + "members":{ + "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + } + }, + "BatchUpdatePhoneNumberRequest":{ + "type":"structure", + "required":["UpdatePhoneNumberRequestItems"], + "members":{ + "UpdatePhoneNumberRequestItems":{"shape":"UpdatePhoneNumberRequestItemList"} + } + }, + "BatchUpdatePhoneNumberResponse":{ + "type":"structure", + "members":{ + "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + } + }, + "Boolean":{"type":"boolean"}, + "CallingName":{ + "type":"string", + "pattern":"^$|^[a-zA-Z0-9 ]{2,15}$", + "sensitive":true + }, + "CallingNameStatus":{ + "type":"string", + "enum":[ + "Unassigned", + "UpdateInProgress", + "UpdateSucceeded", + "UpdateFailed" + ] + }, + "CallingRegion":{"type":"string"}, + "CallingRegionList":{ + "type":"list", + "member":{"shape":"CallingRegion"} + }, + "CandidateAddress":{ + "type":"structure", + "members":{ + "streetInfo":{"shape":"SensitiveNonEmptyString"}, + "streetNumber":{"shape":"SensitiveNonEmptyString"}, + "city":{"shape":"SensitiveNonEmptyString"}, + "state":{"shape":"SensitiveNonEmptyString"}, + "postalCode":{"shape":"SensitiveNonEmptyString"}, + "postalCodePlus4":{"shape":"SensitiveNonEmptyString"}, + "country":{"shape":"SensitiveNonEmptyString"} + } + }, + "CandidateAddressList":{ + "type":"list", + "member":{"shape":"CandidateAddress"} + }, + "Capability":{ + "type":"string", + "enum":[ + "Voice", + "SMS" + ] + }, + "CapabilityList":{ + "type":"list", + "member":{"shape":"Capability"} + }, + "ConflictException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "Country":{ + "type":"string", + "pattern":"^$|^[A-Z]{2,2}$" + }, + "CountryList":{ + "type":"list", + "member":{"shape":"Country"}, + "max":100, + "min":1 + }, + "CpsLimit":{ + "type":"integer", + "min":1 + }, + "CreatePhoneNumberOrderRequest":{ + "type":"structure", + "required":[ + "ProductType", + "E164PhoneNumbers" + ], + "members":{ + "ProductType":{"shape":"PhoneNumberProductType"}, + "E164PhoneNumbers":{"shape":"E164PhoneNumberList"} + } + }, + "CreatePhoneNumberOrderResponse":{ + "type":"structure", + "members":{ + "PhoneNumberOrder":{"shape":"PhoneNumberOrder"} + } + }, + "CreateProxySessionRequest":{ + "type":"structure", + "required":[ + "ParticipantPhoneNumbers", + "Capabilities", + "VoiceConnectorId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "ParticipantPhoneNumbers":{"shape":"ParticipantPhoneNumberList"}, + "Name":{"shape":"ProxySessionNameString"}, + "ExpiryMinutes":{"shape":"PositiveInteger"}, + "Capabilities":{"shape":"CapabilityList"}, + "NumberSelectionBehavior":{"shape":"NumberSelectionBehavior"}, + "GeoMatchLevel":{"shape":"GeoMatchLevel"}, + "GeoMatchParams":{"shape":"GeoMatchParams"} + } + }, + "CreateProxySessionResponse":{ + "type":"structure", + "members":{ + "ProxySession":{"shape":"ProxySession"} + } + }, + "CreateSipMediaApplicationCallRequest":{ + "type":"structure", + "required":[ + "FromPhoneNumber", + "ToPhoneNumber", + "SipMediaApplicationId" + ], + "members":{ + "FromPhoneNumber":{"shape":"E164PhoneNumber"}, + "ToPhoneNumber":{"shape":"E164PhoneNumber"}, + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipMediaApplicationId" + }, + "SipHeaders":{"shape":"SipHeadersMap"}, + "ArgumentsMap":{"shape":"SMACreateCallArgumentsMap"} + } + }, + "CreateSipMediaApplicationCallResponse":{ + "type":"structure", + "members":{ + "SipMediaApplicationCall":{"shape":"SipMediaApplicationCall"} + } + }, + "CreateSipMediaApplicationRequest":{ + "type":"structure", + "required":[ + "AwsRegion", + "Name", + "Endpoints" + ], + "members":{ + "AwsRegion":{"shape":"String"}, + "Name":{"shape":"SipMediaApplicationName"}, + "Endpoints":{"shape":"SipMediaApplicationEndpointList"} + } + }, + "CreateSipMediaApplicationResponse":{ + "type":"structure", + "members":{ + "SipMediaApplication":{"shape":"SipMediaApplication"} + } + }, + "CreateSipRuleRequest":{ + "type":"structure", + "required":[ + "Name", + "TriggerType", + "TriggerValue" + ], + "members":{ + "Name":{"shape":"SipRuleName"}, + "TriggerType":{"shape":"SipRuleTriggerType"}, + "TriggerValue":{"shape":"NonEmptyString"}, + "Disabled":{"shape":"NullableBoolean"}, + "TargetApplications":{"shape":"SipRuleTargetApplicationList"} + } + }, + "CreateSipRuleResponse":{ + "type":"structure", + "members":{ + "SipRule":{"shape":"SipRule"} + } + }, + "CreateVoiceConnectorGroupRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"VoiceConnectorGroupName"}, + "VoiceConnectorItems":{"shape":"VoiceConnectorItemList"} + } + }, + "CreateVoiceConnectorGroupResponse":{ + "type":"structure", + "members":{ + "VoiceConnectorGroup":{"shape":"VoiceConnectorGroup"} + } + }, + "CreateVoiceConnectorRequest":{ + "type":"structure", + "required":[ + "Name", + "RequireEncryption" + ], + "members":{ + "Name":{"shape":"VoiceConnectorName"}, + "AwsRegion":{"shape":"VoiceConnectorAwsRegion"}, + "RequireEncryption":{"shape":"Boolean"} + } + }, + "CreateVoiceConnectorResponse":{ + "type":"structure", + "members":{ + "VoiceConnector":{"shape":"VoiceConnector"} + } + }, + "Credential":{ + "type":"structure", + "members":{ + "Username":{"shape":"SensitiveString"}, + "Password":{"shape":"SensitiveString"} + } + }, + "CredentialList":{ + "type":"list", + "member":{"shape":"Credential"} + }, + "DNISEmergencyCallingConfiguration":{ + "type":"structure", + "required":[ + "EmergencyPhoneNumber", + "CallingCountry" + ], + "members":{ + "EmergencyPhoneNumber":{"shape":"E164PhoneNumber"}, + "TestPhoneNumber":{"shape":"E164PhoneNumber"}, + "CallingCountry":{"shape":"Alpha2CountryCode"} + } + }, + "DNISEmergencyCallingConfigurationList":{ + "type":"list", + "member":{"shape":"DNISEmergencyCallingConfiguration"} + }, + "DataRetentionInHours":{ + "type":"integer", + "min":0 + }, + "DeletePhoneNumberRequest":{ + "type":"structure", + "required":["PhoneNumberId"], + "members":{ + "PhoneNumberId":{ + "shape":"SensitiveNonEmptyString", + "location":"uri", + "locationName":"phoneNumberId" + } + } + }, + "DeleteProxySessionRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "ProxySessionId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "ProxySessionId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"proxySessionId" + } + } + }, + "DeleteSipMediaApplicationRequest":{ + "type":"structure", + "required":["SipMediaApplicationId"], + "members":{ + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipMediaApplicationId" + } + } + }, + "DeleteSipRuleRequest":{ + "type":"structure", + "required":["SipRuleId"], + "members":{ + "SipRuleId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipRuleId" + } + } + }, + "DeleteVoiceConnectorEmergencyCallingConfigurationRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "DeleteVoiceConnectorGroupRequest":{ + "type":"structure", + "required":["VoiceConnectorGroupId"], + "members":{ + "VoiceConnectorGroupId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorGroupId" + } + } + }, + "DeleteVoiceConnectorOriginationRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "DeleteVoiceConnectorProxyRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "DeleteVoiceConnectorRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "DeleteVoiceConnectorStreamingConfigurationRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "DeleteVoiceConnectorTerminationCredentialsRequest":{ + "type":"structure", + "required":[ + "Usernames", + "VoiceConnectorId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "Usernames":{"shape":"SensitiveStringList"} + } + }, + "DeleteVoiceConnectorTerminationRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "DisassociatePhoneNumbersFromVoiceConnectorGroupRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorGroupId", + "E164PhoneNumbers" + ], + "members":{ + "VoiceConnectorGroupId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorGroupId" + }, + "E164PhoneNumbers":{"shape":"E164PhoneNumberList"} + } + }, + "DisassociatePhoneNumbersFromVoiceConnectorGroupResponse":{ + "type":"structure", + "members":{ + "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + } + }, + "DisassociatePhoneNumbersFromVoiceConnectorRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "E164PhoneNumbers" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "E164PhoneNumbers":{"shape":"E164PhoneNumberList"} + } + }, + "DisassociatePhoneNumbersFromVoiceConnectorResponse":{ + "type":"structure", + "members":{ + "PhoneNumberErrors":{"shape":"PhoneNumberErrorList"} + } + }, + "E164PhoneNumber":{ + "type":"string", + "pattern":"^\\+?[1-9]\\d{1,14}$", + "sensitive":true + }, + "E164PhoneNumberList":{ + "type":"list", + "member":{"shape":"E164PhoneNumber"} + }, + "EmergencyCallingConfiguration":{ + "type":"structure", + "members":{ + "DNIS":{"shape":"DNISEmergencyCallingConfigurationList"} + } + }, + "ErrorCode":{ + "type":"string", + "enum":[ + "BadRequest", + "Conflict", + "Forbidden", + "NotFound", + "PreconditionFailed", + "ResourceLimitExceeded", + "ServiceFailure", + "AccessDenied", + "ServiceUnavailable", + "Throttled", + "Throttling", + "Unauthorized", + "Unprocessable", + "VoiceConnectorGroupAssociationsExist", + "PhoneNumberAssociationsExist", + "Gone" + ] + }, + "ForbiddenException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "FunctionArn":{ + "type":"string", + "max":10000, + "pattern":"arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?", + "sensitive":true + }, + "GeoMatchLevel":{ + "type":"string", + "enum":[ + "Country", + "AreaCode" + ] + }, + "GeoMatchParams":{ + "type":"structure", + "required":[ + "Country", + "AreaCode" + ], + "members":{ + "Country":{"shape":"Country"}, + "AreaCode":{"shape":"AreaCode"} + } + }, + "GetGlobalSettingsResponse":{ + "type":"structure", + "members":{ + "VoiceConnector":{"shape":"VoiceConnectorSettings"} + } + }, + "GetPhoneNumberOrderRequest":{ + "type":"structure", + "required":["PhoneNumberOrderId"], + "members":{ + "PhoneNumberOrderId":{ + "shape":"GuidString", + "location":"uri", + "locationName":"phoneNumberOrderId" + } + } + }, + "GetPhoneNumberOrderResponse":{ + "type":"structure", + "members":{ + "PhoneNumberOrder":{"shape":"PhoneNumberOrder"} + } + }, + "GetPhoneNumberRequest":{ + "type":"structure", + "required":["PhoneNumberId"], + "members":{ + "PhoneNumberId":{ + "shape":"SensitiveNonEmptyString", + "location":"uri", + "locationName":"phoneNumberId" + } + } + }, + "GetPhoneNumberResponse":{ + "type":"structure", + "members":{ + "PhoneNumber":{"shape":"PhoneNumber"} + } + }, + "GetPhoneNumberSettingsResponse":{ + "type":"structure", + "members":{ + "CallingName":{"shape":"CallingName"}, + "CallingNameUpdatedTimestamp":{"shape":"Iso8601Timestamp"} + } + }, + "GetProxySessionRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "ProxySessionId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "ProxySessionId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"proxySessionId" + } + } + }, + "GetProxySessionResponse":{ + "type":"structure", + "members":{ + "ProxySession":{"shape":"ProxySession"} + } + }, + "GetSipMediaApplicationAlexaSkillConfigurationRequest":{ + "type":"structure", + "required":["SipMediaApplicationId"], + "members":{ + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipMediaApplicationId" + } + } + }, + "GetSipMediaApplicationAlexaSkillConfigurationResponse":{ + "type":"structure", + "members":{ + "SipMediaApplicationAlexaSkillConfiguration":{"shape":"SipMediaApplicationAlexaSkillConfiguration"} + } + }, + "GetSipMediaApplicationLoggingConfigurationRequest":{ + "type":"structure", + "required":["SipMediaApplicationId"], + "members":{ + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipMediaApplicationId" + } + } + }, + "GetSipMediaApplicationLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + "SipMediaApplicationLoggingConfiguration":{"shape":"SipMediaApplicationLoggingConfiguration"} + } + }, + "GetSipMediaApplicationRequest":{ + "type":"structure", + "required":["SipMediaApplicationId"], + "members":{ + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipMediaApplicationId" + } + } + }, + "GetSipMediaApplicationResponse":{ + "type":"structure", + "members":{ + "SipMediaApplication":{"shape":"SipMediaApplication"} + } + }, + "GetSipRuleRequest":{ + "type":"structure", + "required":["SipRuleId"], + "members":{ + "SipRuleId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipRuleId" + } + } + }, + "GetSipRuleResponse":{ + "type":"structure", + "members":{ + "SipRule":{"shape":"SipRule"} + } + }, + "GetVoiceConnectorEmergencyCallingConfigurationRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "GetVoiceConnectorEmergencyCallingConfigurationResponse":{ + "type":"structure", + "members":{ + "EmergencyCallingConfiguration":{"shape":"EmergencyCallingConfiguration"} + } + }, + "GetVoiceConnectorGroupRequest":{ + "type":"structure", + "required":["VoiceConnectorGroupId"], + "members":{ + "VoiceConnectorGroupId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorGroupId" + } + } + }, + "GetVoiceConnectorGroupResponse":{ + "type":"structure", + "members":{ + "VoiceConnectorGroup":{"shape":"VoiceConnectorGroup"} + } + }, + "GetVoiceConnectorLoggingConfigurationRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "GetVoiceConnectorLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + "LoggingConfiguration":{"shape":"LoggingConfiguration"} + } + }, + "GetVoiceConnectorOriginationRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "GetVoiceConnectorOriginationResponse":{ + "type":"structure", + "members":{ + "Origination":{"shape":"Origination"} + } + }, + "GetVoiceConnectorProxyRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "GetVoiceConnectorProxyResponse":{ + "type":"structure", + "members":{ + "Proxy":{"shape":"Proxy"} + } + }, + "GetVoiceConnectorRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "GetVoiceConnectorResponse":{ + "type":"structure", + "members":{ + "VoiceConnector":{"shape":"VoiceConnector"} + } + }, + "GetVoiceConnectorStreamingConfigurationRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "GetVoiceConnectorStreamingConfigurationResponse":{ + "type":"structure", + "members":{ + "StreamingConfiguration":{"shape":"StreamingConfiguration"} + } + }, + "GetVoiceConnectorTerminationHealthRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "GetVoiceConnectorTerminationHealthResponse":{ + "type":"structure", + "members":{ + "TerminationHealth":{"shape":"TerminationHealth"} + } + }, + "GetVoiceConnectorTerminationRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "GetVoiceConnectorTerminationResponse":{ + "type":"structure", + "members":{ + "Termination":{"shape":"Termination"} + } + }, + "GuidString":{ + "type":"string", + "pattern":"[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}" + }, + "Integer":{"type":"integer"}, + "Iso8601Timestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "ListAvailableVoiceConnectorRegionsResponse":{ + "type":"structure", + "members":{ + "VoiceConnectorRegions":{"shape":"VoiceConnectorAwsRegionList"} + } + }, + "ListPhoneNumberOrdersRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"ResultMax", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListPhoneNumberOrdersResponse":{ + "type":"structure", + "members":{ + "PhoneNumberOrders":{"shape":"PhoneNumberOrderList"}, + "NextToken":{"shape":"String"} + } + }, + "ListPhoneNumbersRequest":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"String", + "location":"querystring", + "locationName":"status" + }, + "ProductType":{ + "shape":"PhoneNumberProductType", + "location":"querystring", + "locationName":"product-type" + }, + "FilterName":{ + "shape":"PhoneNumberAssociationName", + "location":"querystring", + "locationName":"filter-name" + }, + "FilterValue":{ + "shape":"String", + "location":"querystring", + "locationName":"filter-value" + }, + "MaxResults":{ + "shape":"ResultMax", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "ListPhoneNumbersResponse":{ + "type":"structure", + "members":{ + "PhoneNumbers":{"shape":"PhoneNumberList"}, + "NextToken":{"shape":"String"} + } + }, + "ListProxySessionsRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "Status":{ + "shape":"ProxySessionStatus", + "location":"querystring", + "locationName":"status" + }, + "NextToken":{ + "shape":"NextTokenString", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"ResultMax", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListProxySessionsResponse":{ + "type":"structure", + "members":{ + "ProxySessions":{"shape":"ProxySessions"}, + "NextToken":{"shape":"NextTokenString"} + } + }, + "ListSipMediaApplicationsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ResultMax", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"NextTokenString", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "ListSipMediaApplicationsResponse":{ + "type":"structure", + "members":{ + "SipMediaApplications":{"shape":"SipMediaApplicationList"}, + "NextToken":{"shape":"NextTokenString"} + } + }, + "ListSipRulesRequest":{ + "type":"structure", + "members":{ + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"querystring", + "locationName":"sip-media-application" + }, + "MaxResults":{ + "shape":"ResultMax", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"NextTokenString", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "ListSipRulesResponse":{ + "type":"structure", + "members":{ + "SipRules":{"shape":"SipRuleList"}, + "NextToken":{"shape":"NextTokenString"} + } + }, + "ListSupportedPhoneNumberCountriesRequest":{ + "type":"structure", + "required":["ProductType"], + "members":{ + "ProductType":{ + "shape":"PhoneNumberProductType", + "location":"querystring", + "locationName":"product-type" + } + } + }, + "ListSupportedPhoneNumberCountriesResponse":{ + "type":"structure", + "members":{ + "PhoneNumberCountries":{"shape":"PhoneNumberCountriesList"} + } + }, + "ListVoiceConnectorGroupsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"ResultMax", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListVoiceConnectorGroupsResponse":{ + "type":"structure", + "members":{ + "VoiceConnectorGroups":{"shape":"VoiceConnectorGroupList"}, + "NextToken":{"shape":"String"} + } + }, + "ListVoiceConnectorTerminationCredentialsRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + } + } + }, + "ListVoiceConnectorTerminationCredentialsResponse":{ + "type":"structure", + "members":{ + "Usernames":{"shape":"SensitiveStringList"} + } + }, + "ListVoiceConnectorsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"next-token" + }, + "MaxResults":{ + "shape":"ResultMax", + "location":"querystring", + "locationName":"max-results" + } + } + }, + "ListVoiceConnectorsResponse":{ + "type":"structure", + "members":{ + "VoiceConnectors":{"shape":"VoiceConnectorList"}, + "NextToken":{"shape":"String"} + } + }, + "LoggingConfiguration":{ + "type":"structure", + "members":{ + "EnableSIPLogs":{"shape":"Boolean"} + } + }, + "NextTokenString":{ + "type":"string", + "max":65535 + }, + "NonEmptyString":{ + "type":"string", + "pattern":".*\\S.*" + }, + "NonEmptyString128":{ + "type":"string", + "max":128, + "min":1, + "pattern":".*\\S.*" + }, + "NonEmptyStringList":{ + "type":"list", + "member":{"shape":"String"}, + "min":1 + }, + "NotFoundException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "NotificationTarget":{ + "type":"string", + "enum":[ + "EventBridge", + "SNS", + "SQS" + ] + }, + "NullableBoolean":{"type":"boolean"}, + "NumberSelectionBehavior":{ + "type":"string", + "enum":[ + "PreferSticky", + "AvoidSticky" + ] + }, + "OrderedPhoneNumber":{ + "type":"structure", + "members":{ + "E164PhoneNumber":{"shape":"E164PhoneNumber"}, + "Status":{"shape":"OrderedPhoneNumberStatus"} + } + }, + "OrderedPhoneNumberList":{ + "type":"list", + "member":{"shape":"OrderedPhoneNumber"} + }, + "OrderedPhoneNumberStatus":{ + "type":"string", + "enum":[ + "Processing", + "Acquired", + "Failed" + ] + }, + "Origination":{ + "type":"structure", + "members":{ + "Routes":{"shape":"OriginationRouteList"}, + "Disabled":{"shape":"Boolean"} + } + }, + "OriginationRoute":{ + "type":"structure", + "members":{ + "Host":{"shape":"String"}, + "Port":{"shape":"Port"}, + "Protocol":{"shape":"OriginationRouteProtocol"}, + "Priority":{"shape":"OriginationRoutePriority"}, + "Weight":{"shape":"OriginationRouteWeight"} + } + }, + "OriginationRouteList":{ + "type":"list", + "member":{"shape":"OriginationRoute"} + }, + "OriginationRoutePriority":{ + "type":"integer", + "max":100, + "min":1 + }, + "OriginationRouteProtocol":{ + "type":"string", + "enum":[ + "TCP", + "UDP" + ] + }, + "OriginationRouteWeight":{ + "type":"integer", + "max":100, + "min":1 + }, + "Participant":{ + "type":"structure", + "members":{ + "PhoneNumber":{"shape":"E164PhoneNumber"}, + "ProxyPhoneNumber":{"shape":"E164PhoneNumber"} + } + }, + "ParticipantPhoneNumberList":{ + "type":"list", + "member":{"shape":"E164PhoneNumber"}, + "max":2, + "min":2 + }, + "Participants":{ + "type":"list", + "member":{"shape":"Participant"} + }, + "PhoneNumber":{ + "type":"structure", + "members":{ + "PhoneNumberId":{"shape":"SensitiveNonEmptyString"}, + "E164PhoneNumber":{"shape":"E164PhoneNumber"}, + "Country":{"shape":"Alpha2CountryCode"}, + "Type":{"shape":"PhoneNumberType"}, + "ProductType":{"shape":"PhoneNumberProductType"}, + "Status":{"shape":"PhoneNumberStatus"}, + "Capabilities":{"shape":"PhoneNumberCapabilities"}, + "Associations":{"shape":"PhoneNumberAssociationList"}, + "CallingName":{"shape":"CallingName"}, + "CallingNameStatus":{"shape":"CallingNameStatus"}, + "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, + "UpdatedTimestamp":{"shape":"Iso8601Timestamp"}, + "DeletionTimestamp":{"shape":"Iso8601Timestamp"}, + "OrderId":{"shape":"GuidString"} + } + }, + "PhoneNumberAssociation":{ + "type":"structure", + "members":{ + "Value":{"shape":"String"}, + "Name":{"shape":"PhoneNumberAssociationName"}, + "AssociatedTimestamp":{"shape":"Iso8601Timestamp"} + } + }, + "PhoneNumberAssociationList":{ + "type":"list", + "member":{"shape":"PhoneNumberAssociation"} + }, + "PhoneNumberAssociationName":{ + "type":"string", + "enum":[ + "VoiceConnectorId", + "VoiceConnectorGroupId", + "SipRuleId" + ] + }, + "PhoneNumberCapabilities":{ + "type":"structure", + "members":{ + "InboundCall":{"shape":"NullableBoolean"}, + "OutboundCall":{"shape":"NullableBoolean"}, + "InboundSMS":{"shape":"NullableBoolean"}, + "OutboundSMS":{"shape":"NullableBoolean"}, + "InboundMMS":{"shape":"NullableBoolean"}, + "OutboundMMS":{"shape":"NullableBoolean"} + } + }, + "PhoneNumberCountriesList":{ + "type":"list", + "member":{"shape":"PhoneNumberCountry"} + }, + "PhoneNumberCountry":{ + "type":"structure", + "members":{ + "CountryCode":{"shape":"Alpha2CountryCode"}, + "SupportedPhoneNumberTypes":{"shape":"PhoneNumberTypeList"} + } + }, + "PhoneNumberError":{ + "type":"structure", + "members":{ + "PhoneNumberId":{"shape":"SensitiveNonEmptyString"}, + "ErrorCode":{"shape":"ErrorCode"}, + "ErrorMessage":{"shape":"String"} + } + }, + "PhoneNumberErrorList":{ + "type":"list", + "member":{"shape":"PhoneNumberError"} + }, + "PhoneNumberList":{ + "type":"list", + "member":{"shape":"PhoneNumber"} + }, + "PhoneNumberMaxResults":{ + "type":"integer", + "max":500, + "min":1 + }, + "PhoneNumberOrder":{ + "type":"structure", + "members":{ + "PhoneNumberOrderId":{"shape":"GuidString"}, + "ProductType":{"shape":"PhoneNumberProductType"}, + "Status":{"shape":"PhoneNumberOrderStatus"}, + "OrderType":{"shape":"PhoneNumberOrderType"}, + "OrderedPhoneNumbers":{"shape":"OrderedPhoneNumberList"}, + "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, + "UpdatedTimestamp":{"shape":"Iso8601Timestamp"} + } + }, + "PhoneNumberOrderList":{ + "type":"list", + "member":{"shape":"PhoneNumberOrder"} + }, + "PhoneNumberOrderStatus":{ + "type":"string", + "enum":[ + "Processing", + "Successful", + "Failed", + "Partial", + "PendingDocuments", + "Submitted", + "FOC", + "ChangeRequested", + "Exception", + "CancelRequested", + "Cancelled" + ] + }, + "PhoneNumberOrderType":{ + "type":"string", + "enum":[ + "New", + "Porting" + ] + }, + "PhoneNumberProductType":{ + "type":"string", + "enum":[ + "VoiceConnector", + "SipMediaApplicationDialIn" + ] + }, + "PhoneNumberStatus":{ + "type":"string", + "enum":[ + "Cancelled", + "PortinCancelRequested", + "PortinInProgress", + "AcquireInProgress", + "AcquireFailed", + "Unassigned", + "Assigned", + "ReleaseInProgress", + "DeleteInProgress", + "ReleaseFailed", + "DeleteFailed" + ] + }, + "PhoneNumberType":{ + "type":"string", + "enum":[ + "Local", + "TollFree" + ] + }, + "PhoneNumberTypeList":{ + "type":"list", + "member":{"shape":"PhoneNumberType"} + }, + "Port":{ + "type":"integer", + "max":65535, + "min":0 + }, + "PositiveInteger":{ + "type":"integer", + "min":1 + }, + "Proxy":{ + "type":"structure", + "members":{ + "DefaultSessionExpiryMinutes":{"shape":"Integer"}, + "Disabled":{"shape":"Boolean"}, + "FallBackPhoneNumber":{"shape":"E164PhoneNumber"}, + "PhoneNumberCountries":{"shape":"StringList"} + } + }, + "ProxySession":{ + "type":"structure", + "members":{ + "VoiceConnectorId":{"shape":"NonEmptyString128"}, + "ProxySessionId":{"shape":"NonEmptyString128"}, + "Name":{"shape":"String128"}, + "Status":{"shape":"ProxySessionStatus"}, + "ExpiryMinutes":{"shape":"PositiveInteger"}, + "Capabilities":{"shape":"CapabilityList"}, + "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, + "UpdatedTimestamp":{"shape":"Iso8601Timestamp"}, + "EndedTimestamp":{"shape":"Iso8601Timestamp"}, + "Participants":{"shape":"Participants"}, + "NumberSelectionBehavior":{"shape":"NumberSelectionBehavior"}, + "GeoMatchLevel":{"shape":"GeoMatchLevel"}, + "GeoMatchParams":{"shape":"GeoMatchParams"} + } + }, + "ProxySessionNameString":{ + "type":"string", + "pattern":"^$|^[a-zA-Z0-9 ]{0,30}$", + "sensitive":true + }, + "ProxySessionStatus":{ + "type":"string", + "enum":[ + "Open", + "InProgress", + "Closed" + ] + }, + "ProxySessions":{ + "type":"list", + "member":{"shape":"ProxySession"} + }, + "PutSipMediaApplicationAlexaSkillConfigurationRequest":{ + "type":"structure", + "required":["SipMediaApplicationId"], + "members":{ + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipMediaApplicationId" + }, + "SipMediaApplicationAlexaSkillConfiguration":{"shape":"SipMediaApplicationAlexaSkillConfiguration"} + } + }, + "PutSipMediaApplicationAlexaSkillConfigurationResponse":{ + "type":"structure", + "members":{ + "SipMediaApplicationAlexaSkillConfiguration":{"shape":"SipMediaApplicationAlexaSkillConfiguration"} + } + }, + "PutSipMediaApplicationLoggingConfigurationRequest":{ + "type":"structure", + "required":["SipMediaApplicationId"], + "members":{ + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipMediaApplicationId" + }, + "SipMediaApplicationLoggingConfiguration":{"shape":"SipMediaApplicationLoggingConfiguration"} + } + }, + "PutSipMediaApplicationLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + "SipMediaApplicationLoggingConfiguration":{"shape":"SipMediaApplicationLoggingConfiguration"} + } + }, + "PutVoiceConnectorEmergencyCallingConfigurationRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "EmergencyCallingConfiguration" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "EmergencyCallingConfiguration":{"shape":"EmergencyCallingConfiguration"} + } + }, + "PutVoiceConnectorEmergencyCallingConfigurationResponse":{ + "type":"structure", + "members":{ + "EmergencyCallingConfiguration":{"shape":"EmergencyCallingConfiguration"} + } + }, + "PutVoiceConnectorLoggingConfigurationRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "LoggingConfiguration" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "LoggingConfiguration":{"shape":"LoggingConfiguration"} + } + }, + "PutVoiceConnectorLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + "LoggingConfiguration":{"shape":"LoggingConfiguration"} + } + }, + "PutVoiceConnectorOriginationRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "Origination" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "Origination":{"shape":"Origination"} + } + }, + "PutVoiceConnectorOriginationResponse":{ + "type":"structure", + "members":{ + "Origination":{"shape":"Origination"} + } + }, + "PutVoiceConnectorProxyRequest":{ + "type":"structure", + "required":[ + "DefaultSessionExpiryMinutes", + "PhoneNumberPoolCountries", + "VoiceConnectorId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "DefaultSessionExpiryMinutes":{"shape":"Integer"}, + "PhoneNumberPoolCountries":{"shape":"CountryList"}, + "FallBackPhoneNumber":{"shape":"E164PhoneNumber"}, + "Disabled":{"shape":"Boolean"} + } + }, + "PutVoiceConnectorProxyResponse":{ + "type":"structure", + "members":{ + "Proxy":{"shape":"Proxy"} + } + }, + "PutVoiceConnectorStreamingConfigurationRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "StreamingConfiguration" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "StreamingConfiguration":{"shape":"StreamingConfiguration"} + } + }, + "PutVoiceConnectorStreamingConfigurationResponse":{ + "type":"structure", + "members":{ + "StreamingConfiguration":{"shape":"StreamingConfiguration"} + } + }, + "PutVoiceConnectorTerminationCredentialsRequest":{ + "type":"structure", + "required":["VoiceConnectorId"], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "Credentials":{"shape":"CredentialList"} + } + }, + "PutVoiceConnectorTerminationRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "Termination" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "Termination":{"shape":"Termination"} + } + }, + "PutVoiceConnectorTerminationResponse":{ + "type":"structure", + "members":{ + "Termination":{"shape":"Termination"} + } + }, + "ResourceLimitExceededException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":400}, + "exception":true + }, + "RestorePhoneNumberRequest":{ + "type":"structure", + "required":["PhoneNumberId"], + "members":{ + "PhoneNumberId":{ + "shape":"SensitiveNonEmptyString", + "location":"uri", + "locationName":"phoneNumberId" + } + } + }, + "RestorePhoneNumberResponse":{ + "type":"structure", + "members":{ + "PhoneNumber":{"shape":"PhoneNumber"} + } + }, + "ResultMax":{ + "type":"integer", + "max":100, + "min":1 + }, + "SMACreateCallArgumentsMap":{ + "type":"map", + "key":{"shape":"SensitiveString"}, + "value":{"shape":"SensitiveString"}, + "max":20, + "min":0 + }, + "SMAUpdateCallArgumentsMap":{ + "type":"map", + "key":{"shape":"SensitiveString"}, + "value":{"shape":"SensitiveString"}, + "max":20, + "min":0 + }, + "SearchAvailablePhoneNumbersRequest":{ + "type":"structure", + "members":{ + "AreaCode":{ + "shape":"String", + "location":"querystring", + "locationName":"area-code" + }, + "City":{ + "shape":"String", + "location":"querystring", + "locationName":"city" + }, + "Country":{ + "shape":"Alpha2CountryCode", + "location":"querystring", + "locationName":"country" + }, + "State":{ + "shape":"String", + "location":"querystring", + "locationName":"state" + }, + "TollFreePrefix":{ + "shape":"TollFreePrefix", + "location":"querystring", + "locationName":"toll-free-prefix" + }, + "PhoneNumberType":{ + "shape":"PhoneNumberType", + "location":"querystring", + "locationName":"phone-number-type" + }, + "MaxResults":{ + "shape":"PhoneNumberMaxResults", + "location":"querystring", + "locationName":"max-results" + }, + "NextToken":{ + "shape":"String", + "location":"querystring", + "locationName":"next-token" + } + } + }, + "SearchAvailablePhoneNumbersResponse":{ + "type":"structure", + "members":{ + "E164PhoneNumbers":{"shape":"E164PhoneNumberList"}, + "NextToken":{"shape":"String"} + } + }, + "SensitiveNonEmptyString":{ + "type":"string", + "pattern":".*\\S.*", + "sensitive":true + }, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, + "SensitiveStringList":{ + "type":"list", + "member":{"shape":"SensitiveString"} + }, + "ServiceFailureException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ServiceUnavailableException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":503}, + "exception":true, + "fault":true + }, + "SipApplicationPriority":{ + "type":"integer", + "min":1 + }, + "SipHeadersMap":{ + "type":"map", + "key":{"shape":"SensitiveString"}, + "value":{"shape":"SensitiveString"}, + "max":20, + "min":0 + }, + "SipMediaApplication":{ + "type":"structure", + "members":{ + "SipMediaApplicationId":{"shape":"NonEmptyString"}, + "AwsRegion":{"shape":"String"}, + "Name":{"shape":"SipMediaApplicationName"}, + "Endpoints":{"shape":"SipMediaApplicationEndpointList"}, + "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, + "UpdatedTimestamp":{"shape":"Iso8601Timestamp"} + } + }, + "SipMediaApplicationAlexaSkillConfiguration":{ + "type":"structure", + "required":[ + "AlexaSkillStatus", + "AlexaSkillIds" + ], + "members":{ + "AlexaSkillStatus":{"shape":"AlexaSkillStatus"}, + "AlexaSkillIds":{"shape":"AlexaSkillIdList"} + } + }, + "SipMediaApplicationCall":{ + "type":"structure", + "members":{ + "TransactionId":{"shape":"GuidString"} + } + }, + "SipMediaApplicationEndpoint":{ + "type":"structure", + "members":{ + "LambdaArn":{"shape":"FunctionArn"} + } + }, + "SipMediaApplicationEndpointList":{ + "type":"list", + "member":{"shape":"SipMediaApplicationEndpoint"}, + "max":1, + "min":1 + }, + "SipMediaApplicationList":{ + "type":"list", + "member":{"shape":"SipMediaApplication"} + }, + "SipMediaApplicationLoggingConfiguration":{ + "type":"structure", + "members":{ + "EnableSipMediaApplicationMessageLogs":{"shape":"Boolean"} + } + }, + "SipMediaApplicationName":{ + "type":"string", + "max":256, + "min":1 + }, + "SipRule":{ + "type":"structure", + "members":{ + "SipRuleId":{"shape":"NonEmptyString"}, + "Name":{"shape":"SipRuleName"}, + "Disabled":{"shape":"Boolean"}, + "TriggerType":{"shape":"SipRuleTriggerType"}, + "TriggerValue":{"shape":"NonEmptyString"}, + "TargetApplications":{"shape":"SipRuleTargetApplicationList"}, + "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, + "UpdatedTimestamp":{"shape":"Iso8601Timestamp"} + } + }, + "SipRuleList":{ + "type":"list", + "member":{"shape":"SipRule"} + }, + "SipRuleName":{ + "type":"string", + "max":256, + "min":1 + }, + "SipRuleTargetApplication":{ + "type":"structure", + "members":{ + "SipMediaApplicationId":{"shape":"NonEmptyString"}, + "Priority":{"shape":"SipApplicationPriority"}, + "AwsRegion":{"shape":"String"} + } + }, + "SipRuleTargetApplicationList":{ + "type":"list", + "member":{"shape":"SipRuleTargetApplication"}, + "max":25, + "min":1 + }, + "SipRuleTriggerType":{ + "type":"string", + "enum":[ + "ToPhoneNumber", + "RequestUriHostname" + ] + }, + "StreamingConfiguration":{ + "type":"structure", + "required":[ + "DataRetentionInHours", + "Disabled" + ], + "members":{ + "DataRetentionInHours":{"shape":"DataRetentionInHours"}, + "Disabled":{"shape":"Boolean"}, + "StreamingNotificationTargets":{"shape":"StreamingNotificationTargetList"} + } + }, + "StreamingNotificationTarget":{ + "type":"structure", + "members":{ + "NotificationTarget":{"shape":"NotificationTarget"} + } + }, + "StreamingNotificationTargetList":{ + "type":"list", + "member":{"shape":"StreamingNotificationTarget"}, + "max":3, + "min":1 + }, + "String":{"type":"string"}, + "String128":{ + "type":"string", + "max":128 + }, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "Termination":{ + "type":"structure", + "members":{ + "CpsLimit":{"shape":"CpsLimit"}, + "DefaultPhoneNumber":{"shape":"E164PhoneNumber"}, + "CallingRegions":{"shape":"CallingRegionList"}, + "CidrAllowedList":{"shape":"StringList"}, + "Disabled":{"shape":"Boolean"} + } + }, + "TerminationHealth":{ + "type":"structure", + "members":{ + "Timestamp":{"shape":"Iso8601Timestamp"}, + "Source":{"shape":"String"} + } + }, + "ThrottledClientException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":429}, + "exception":true + }, + "TollFreePrefix":{ + "type":"string", + "max":3, + "min":3, + "pattern":"^8(00|33|44|55|66|77|88)$" + }, + "UnauthorizedClientException":{ + "type":"structure", + "members":{ + }, + "error":{"httpStatusCode":401}, + "exception":true + }, + "UpdateGlobalSettingsRequest":{ + "type":"structure", + "members":{ + "VoiceConnector":{"shape":"VoiceConnectorSettings"} + } + }, + "UpdatePhoneNumberRequest":{ + "type":"structure", + "required":["PhoneNumberId"], + "members":{ + "PhoneNumberId":{ + "shape":"SensitiveNonEmptyString", + "location":"uri", + "locationName":"phoneNumberId" + }, + "ProductType":{"shape":"PhoneNumberProductType"}, + "CallingName":{"shape":"CallingName"} + } + }, + "UpdatePhoneNumberRequestItem":{ + "type":"structure", + "required":["PhoneNumberId"], + "members":{ + "PhoneNumberId":{"shape":"SensitiveNonEmptyString"}, + "ProductType":{"shape":"PhoneNumberProductType"}, + "CallingName":{"shape":"CallingName"} + } + }, + "UpdatePhoneNumberRequestItemList":{ + "type":"list", + "member":{"shape":"UpdatePhoneNumberRequestItem"} + }, + "UpdatePhoneNumberResponse":{ + "type":"structure", + "members":{ + "PhoneNumber":{"shape":"PhoneNumber"} + } + }, + "UpdatePhoneNumberSettingsRequest":{ + "type":"structure", + "required":["CallingName"], + "members":{ + "CallingName":{"shape":"CallingName"} + } + }, + "UpdateProxySessionRequest":{ + "type":"structure", + "required":[ + "Capabilities", + "VoiceConnectorId", + "ProxySessionId" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "ProxySessionId":{ + "shape":"NonEmptyString128", + "location":"uri", + "locationName":"proxySessionId" + }, + "Capabilities":{"shape":"CapabilityList"}, + "ExpiryMinutes":{"shape":"PositiveInteger"} + } + }, + "UpdateProxySessionResponse":{ + "type":"structure", + "members":{ + "ProxySession":{"shape":"ProxySession"} + } + }, + "UpdateSipMediaApplicationCallRequest":{ + "type":"structure", + "required":[ + "SipMediaApplicationId", + "TransactionId", + "Arguments" + ], + "members":{ + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipMediaApplicationId" + }, + "TransactionId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"transactionId" + }, + "Arguments":{"shape":"SMAUpdateCallArgumentsMap"} + } + }, + "UpdateSipMediaApplicationCallResponse":{ + "type":"structure", + "members":{ + "SipMediaApplicationCall":{"shape":"SipMediaApplicationCall"} + } + }, + "UpdateSipMediaApplicationRequest":{ + "type":"structure", + "required":["SipMediaApplicationId"], + "members":{ + "SipMediaApplicationId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipMediaApplicationId" + }, + "Name":{"shape":"SipMediaApplicationName"}, + "Endpoints":{"shape":"SipMediaApplicationEndpointList"} + } + }, + "UpdateSipMediaApplicationResponse":{ + "type":"structure", + "members":{ + "SipMediaApplication":{"shape":"SipMediaApplication"} + } + }, + "UpdateSipRuleRequest":{ + "type":"structure", + "required":[ + "SipRuleId", + "Name" + ], + "members":{ + "SipRuleId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"sipRuleId" + }, + "Name":{"shape":"SipRuleName"}, + "Disabled":{"shape":"NullableBoolean"}, + "TargetApplications":{"shape":"SipRuleTargetApplicationList"} + } + }, + "UpdateSipRuleResponse":{ + "type":"structure", + "members":{ + "SipRule":{"shape":"SipRule"} + } + }, + "UpdateVoiceConnectorGroupRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorGroupId", + "Name", + "VoiceConnectorItems" + ], + "members":{ + "VoiceConnectorGroupId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorGroupId" + }, + "Name":{"shape":"VoiceConnectorGroupName"}, + "VoiceConnectorItems":{"shape":"VoiceConnectorItemList"} + } + }, + "UpdateVoiceConnectorGroupResponse":{ + "type":"structure", + "members":{ + "VoiceConnectorGroup":{"shape":"VoiceConnectorGroup"} + } + }, + "UpdateVoiceConnectorRequest":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "Name", + "RequireEncryption" + ], + "members":{ + "VoiceConnectorId":{ + "shape":"NonEmptyString", + "location":"uri", + "locationName":"voiceConnectorId" + }, + "Name":{"shape":"VoiceConnectorName"}, + "RequireEncryption":{"shape":"Boolean"} + } + }, + "UpdateVoiceConnectorResponse":{ + "type":"structure", + "members":{ + "VoiceConnector":{"shape":"VoiceConnector"} + } + }, + "ValidateE911AddressRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "StreetNumber", + "StreetInfo", + "City", + "State", + "Country", + "PostalCode" + ], + "members":{ + "AwsAccountId":{"shape":"NonEmptyString"}, + "StreetNumber":{"shape":"SensitiveNonEmptyString"}, + "StreetInfo":{"shape":"SensitiveNonEmptyString"}, + "City":{"shape":"SensitiveNonEmptyString"}, + "State":{"shape":"SensitiveNonEmptyString"}, + "Country":{"shape":"SensitiveNonEmptyString"}, + "PostalCode":{"shape":"SensitiveNonEmptyString"} + } + }, + "ValidateE911AddressResponse":{ + "type":"structure", + "members":{ + "ValidationResult":{"shape":"ValidationResult"}, + "AddressExternalId":{"shape":"String"}, + "Address":{"shape":"Address"}, + "CandidateAddressList":{"shape":"CandidateAddressList"} + } + }, + "ValidationResult":{ + "type":"integer", + "max":2, + "min":0 + }, + "VoiceConnector":{ + "type":"structure", + "members":{ + "VoiceConnectorId":{"shape":"NonEmptyString"}, + "AwsRegion":{"shape":"VoiceConnectorAwsRegion"}, + "Name":{"shape":"VoiceConnectorName"}, + "OutboundHostName":{"shape":"String"}, + "RequireEncryption":{"shape":"Boolean"}, + "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, + "UpdatedTimestamp":{"shape":"Iso8601Timestamp"}, + "VoiceConnectorArn":{"shape":"NonEmptyString"} + } + }, + "VoiceConnectorAwsRegion":{ + "type":"string", + "enum":[ + "us-east-1", + "us-west-2", + "ca-central-1", + "eu-central-1", + "eu-west-1", + "eu-west-2", + "ap-northeast-2", + "ap-northeast-1", + "ap-southeast-1", + "ap-southeast-2" + ] + }, + "VoiceConnectorAwsRegionList":{ + "type":"list", + "member":{"shape":"VoiceConnectorAwsRegion"} + }, + "VoiceConnectorGroup":{ + "type":"structure", + "members":{ + "VoiceConnectorGroupId":{"shape":"NonEmptyString"}, + "Name":{"shape":"VoiceConnectorGroupName"}, + "VoiceConnectorItems":{"shape":"VoiceConnectorItemList"}, + "CreatedTimestamp":{"shape":"Iso8601Timestamp"}, + "UpdatedTimestamp":{"shape":"Iso8601Timestamp"}, + "VoiceConnectorGroupArn":{"shape":"NonEmptyString"} + } + }, + "VoiceConnectorGroupList":{ + "type":"list", + "member":{"shape":"VoiceConnectorGroup"} + }, + "VoiceConnectorGroupName":{ + "type":"string", + "max":256, + "min":1 + }, + "VoiceConnectorItem":{ + "type":"structure", + "required":[ + "VoiceConnectorId", + "Priority" + ], + "members":{ + "VoiceConnectorId":{"shape":"NonEmptyString"}, + "Priority":{"shape":"VoiceConnectorItemPriority"} + } + }, + "VoiceConnectorItemList":{ + "type":"list", + "member":{"shape":"VoiceConnectorItem"} + }, + "VoiceConnectorItemPriority":{ + "type":"integer", + "max":99, + "min":1 + }, + "VoiceConnectorList":{ + "type":"list", + "member":{"shape":"VoiceConnector"} + }, + "VoiceConnectorName":{ + "type":"string", + "max":256, + "min":1 + }, + "VoiceConnectorSettings":{ + "type":"structure", + "members":{ + "CdrBucket":{"shape":"String"} + } + } + } +} diff --git a/botocore/data/chime/2018-05-01/endpoint-rule-set-1.json b/botocore/data/chime/2018-05-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..205b99f7 --- /dev/null +++ b/botocore/data/chime/2018-05-01/endpoint-rule-set-1.json @@ -0,0 +1,591 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chime-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "chime", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chime-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "chime", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chime.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "chime", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://chime.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "chime", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://chime.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "chime", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://chime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/chime/2018-05-01/examples-1.json b/botocore/data/chime/2018-05-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/chime/2018-05-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/chime/2018-05-01/service-2.json b/botocore/data/chime/2018-05-01/service-2.json index e8562cfd..4c9711fd 100644 --- a/botocore/data/chime/2018-05-01/service-2.json +++ b/botocore/data/chime/2018-05-01/service-2.json @@ -3028,7 +3028,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Adds a streaming configuration for the specified Amazon Chime Voice Connector. The streaming configuration specifies whether media streaming is enabled for sending to Indonesians. It also sets the retention period, in hours, for the Amazon Kinesis data.

" + "documentation":"

Adds a streaming configuration for the specified Amazon Chime Voice Connector. The streaming configuration specifies whether media streaming is enabled for sending to Kinesis. It also sets the retention period, in hours, for the Amazon Kinesis data.

" }, "PutVoiceConnectorTermination":{ "name":"PutVoiceConnectorTermination", @@ -3814,6 +3814,26 @@ {"shape":"ServiceFailureException"} ], "documentation":"

Updates details of the specified Amazon Chime Voice Connector group, such as the name and Amazon Chime Voice Connector priority ranking.

" + }, + "ValidateE911Address":{ + "name":"ValidateE911Address", + "http":{ + "method":"POST", + "requestUri":"/emergency-calling/address", + "responseCode":202 + }, + "input":{"shape":"ValidateE911AddressRequest"}, + "output":{"shape":"ValidateE911AddressResponse"}, + "errors":[ + {"shape":"UnauthorizedClientException"}, + {"shape":"NotFoundException"}, + {"shape":"ForbiddenException"}, + {"shape":"BadRequestException"}, + {"shape":"ThrottledClientException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"ServiceFailureException"} + ], + "documentation":"

Validates an address to be used for 911 calls made with Amazon Chime Voice Connectors. You can use validated addresses in a Presence Information Data Format Location Object file that you include in SIP requests. That helps ensure that addresses are routed to the appropriate Public Safety Answering Point.

" } }, "shapes":{ @@ -3914,6 +3934,52 @@ "EnterpriseOIDC" ] }, + "Address":{ + "type":"structure", + "members":{ + "streetName":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address street, such as 8th Avenue.

" + }, + "streetSuffix":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address suffix, such as the N in 8th Avenue N.

" + }, + "postDirectional":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

An address suffix location, such as the S. Unit A in Central Park S. Unit A.

" + }, + "preDirectional":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

An address prefix location, such as the N in N. Third St..

" + }, + "streetNumber":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The numeric portion of an address.

" + }, + "city":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The city of an address.

" + }, + "state":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The state of an address.

" + }, + "postalCode":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The postal code of an address.

" + }, + "postalCodePlus4":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The Zip + 4 or postal code + 4 of an address.

" + }, + "country":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The country of an address.

" + } + }, + "documentation":"

A validated address.

" + }, "AlexaForBusinessMetadata":{ "type":"structure", "members":{ @@ -4702,6 +4768,44 @@ "type":"list", "member":{"shape":"CallingRegion"} }, + "CandidateAddress":{ + "type":"structure", + "members":{ + "streetInfo":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The street information of a candidate address

" + }, + "streetNumber":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The numeric portion of a candidate address.

" + }, + "city":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The city of a candidate address.

" + }, + "state":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The state of a candidate address.

" + }, + "postalCode":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The postal code of a candidate address.

" + }, + "postalCodePlus4":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The Zip + 4 or postal code + 4 of a candidate address.

" + }, + "country":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The country of a candidate address.

" + } + }, + "documentation":"

A suggested address.

" + }, + "CandidateAddressList":{ + "type":"list", + "member":{"shape":"CandidateAddress"} + }, "Capability":{ "type":"string", "enum":[ @@ -9190,11 +9294,11 @@ "members":{ "EnableSIPLogs":{ "shape":"Boolean", - "documentation":"

Boolean that enables SIP message logs to CloudWatch logs.

" + "documentation":"

When true, enables SIP message logs for sending to Amazon CloudWatch Logs.

" }, "EnableMediaMetricLogs":{ "shape":"Boolean", - "documentation":"

Boolean that enables logging of detailed media metrics for Voice Connectors to CloudWatch logs.

" + "documentation":"

Boolean that enables the logging of Voice Connector metrics to Cloudwatch.

" } }, "documentation":"

The logging configuration associated with an Amazon Chime Voice Connector. Specifies whether SIP message logs are enabled for sending to Amazon CloudWatch Logs.

" @@ -10826,6 +10930,11 @@ } } }, + "SensitiveNonEmptyString":{ + "type":"string", + "pattern":".*\\S.*", + "sensitive":true + }, "SensitiveString":{ "type":"string", "sensitive":true @@ -12377,6 +12486,74 @@ "SharedDevice" ] }, + "ValidateE911AddressRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "StreetNumber", + "StreetInfo", + "City", + "State", + "Country", + "PostalCode" + ], + "members":{ + "AwsAccountId":{ + "shape":"NonEmptyString", + "documentation":"

The AWS account ID.

" + }, + "StreetNumber":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address street number, such as 200 or 2121.

" + }, + "StreetInfo":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address street information, such as 8th Avenue.

" + }, + "City":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address city, such as Portland.

" + }, + "State":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address state, such as ME.

" + }, + "Country":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address country, such as US.

" + }, + "PostalCode":{ + "shape":"SensitiveNonEmptyString", + "documentation":"

The address postal code, such as 04352.

" + } + } + }, + "ValidateE911AddressResponse":{ + "type":"structure", + "members":{ + "ValidationResult":{ + "shape":"ValidationResult", + "documentation":"

Number indicating the result of address validation. 0 means the address was perfect as is and successfully validated. 1 means the address was corrected. 2 means the address sent was not close enough and was not validated.

" + }, + "AddressExternalId":{ + "shape":"String", + "documentation":"

The ID that represents the address.

" + }, + "Address":{ + "shape":"Address", + "documentation":"

The validated address.

" + }, + "CandidateAddressList":{ + "shape":"CandidateAddressList", + "documentation":"

The list of address suggestions.

" + } + } + }, + "ValidationResult":{ + "type":"integer", + "max":2, + "min":0 + }, "VideoArtifactsConfiguration":{ "type":"structure", "required":["State"], diff --git a/botocore/data/cloud9/2017-09-23/endpoint-rule-set-1.json b/botocore/data/cloud9/2017-09-23/endpoint-rule-set-1.json new file mode 100644 index 00000000..5666c414 --- /dev/null +++ b/botocore/data/cloud9/2017-09-23/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloud9-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloud9-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloud9.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloud9.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloud9/2017-09-23/examples-1.json b/botocore/data/cloud9/2017-09-23/examples-1.json index 0074f498..fdef2700 100644 --- a/botocore/data/cloud9/2017-09-23/examples-1.json +++ b/botocore/data/cloud9/2017-09-23/examples-1.json @@ -9,7 +9,7 @@ "description": "This is my demonstration environment.", "instanceType": "t2.micro", "ownerArn": "arn:aws:iam::123456789012:user/MyDemoUser", - "subnetId": "subnet-1fab8aEX" + "subnetId": "subnet-6300cd1b" }, "output": { "environmentId": "8d9967e2f0624182b74e7690ad69ebEX" @@ -115,7 +115,7 @@ "output": { } }, - "description": "The following example gets information about all of the environment members for the specified AWS Cloud9 development environment.", + "description": "The following example gets information about all of the environment members for the specified development environment.", "id": "describeenvironmentmemberships1-1516823070453", "title": "DescribeEnvironmentMemberships1" }, @@ -142,7 +142,7 @@ "output": { } }, - "description": "The following example gets information about the owner of the specified AWS Cloud9 development environment.", + "description": "The following example gets information about the owner of the specified development environment.", "id": "describeenvironmentmemberships2-1516823191355", "title": "DescribeEnvironmentMemberships2" }, @@ -174,7 +174,7 @@ "output": { } }, - "description": "The following example gets AWS Cloud9 development environment membership information for the specified user.", + "description": "The following example gets development environment membership information for the specified user.", "id": "describeenvironmentmemberships3-1516823268793", "title": "DescribeEnvironmentMemberships3" } @@ -215,13 +215,20 @@ "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" } ] diff --git a/botocore/data/cloud9/2017-09-23/service-2.json b/botocore/data/cloud9/2017-09-23/service-2.json index 17dfde8b..efb76c80 100644 --- a/botocore/data/cloud9/2017-09-23/service-2.json +++ b/botocore/data/cloud9/2017-09-23/service-2.json @@ -89,7 +89,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Deletes an environment member from an Cloud9 development environment.

", + "documentation":"

Deletes an environment member from a development environment.

", "idempotent":true }, "DescribeEnvironmentMemberships":{ @@ -329,7 +329,7 @@ }, "imageId":{ "shape":"ImageId", - "documentation":"

The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid Amazon EC2 Systems Manager (SSM) path.

The default AMI is used if the parameter isn't explicitly assigned a value in the request. Because Amazon Linux AMI has ended standard support as of December 31, 2020, we recommend you choose Amazon Linux 2, which includes long term support through 2023.

AMI aliases

  • Amazon Linux (default): amazonlinux-1-x86_64

  • Amazon Linux 2: amazonlinux-2-x86_64

  • Ubuntu 18.04: ubuntu-18.04-x86_64

SSM paths

  • Amazon Linux (default): resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64

  • Amazon Linux 2: resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64

  • Ubuntu 18.04: resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64

" + "documentation":"

The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid Amazon EC2 Systems Manager (SSM) path.

The default Amazon Linux AMI is currently used if the parameter isn't explicitly assigned a value in the request.

In the future the parameter for Amazon Linux will no longer be available when you specify an AMI for your instance. Amazon Linux 2 will then become the default AMI, which is used to launch your instance if no parameter is explicitly defined.

AMI aliases

  • Amazon Linux (default): amazonlinux-1-x86_64

  • Amazon Linux 2: amazonlinux-2-x86_64

  • Ubuntu 18.04: ubuntu-18.04-x86_64

SSM paths

  • Amazon Linux (default): resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64

  • Amazon Linux 2: resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64

  • Ubuntu 18.04: resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64

" }, "automaticStopTimeMinutes":{ "shape":"AutomaticStopTimeMinutes", diff --git a/botocore/data/cloudcontrol/2021-09-30/endpoint-rule-set-1.json b/botocore/data/cloudcontrol/2021-09-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..e2159568 --- /dev/null +++ b/botocore/data/cloudcontrol/2021-09-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudcontrolapi-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudcontrolapi-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudcontrolapi.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudcontrolapi.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudcontrol/2021-09-30/examples-1.json b/botocore/data/cloudcontrol/2021-09-30/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/cloudcontrol/2021-09-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/clouddirectory/2016-05-10/endpoint-rule-set-1.json b/botocore/data/clouddirectory/2016-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..1cee4c8c --- /dev/null +++ b/botocore/data/clouddirectory/2016-05-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://clouddirectory-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://clouddirectory-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://clouddirectory.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://clouddirectory.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/clouddirectory/2016-05-10/examples-1.json b/botocore/data/clouddirectory/2016-05-10/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/clouddirectory/2016-05-10/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/clouddirectory/2017-01-11/endpoint-rule-set-1.json b/botocore/data/clouddirectory/2017-01-11/endpoint-rule-set-1.json new file mode 100644 index 00000000..1cee4c8c --- /dev/null +++ b/botocore/data/clouddirectory/2017-01-11/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://clouddirectory-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://clouddirectory-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://clouddirectory.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://clouddirectory.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudformation/2010-05-15/endpoint-rule-set-1.json b/botocore/data/cloudformation/2010-05-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..2e75b9c6 --- /dev/null +++ b/botocore/data/cloudformation/2010-05-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudformation.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudformation/2010-05-15/service-2.json b/botocore/data/cloudformation/2010-05-15/service-2.json index 85b470b8..97b14083 100644 --- a/botocore/data/cloudformation/2010-05-15/service-2.json +++ b/botocore/data/cloudformation/2010-05-15/service-2.json @@ -969,7 +969,7 @@ {"shape":"CFNRegistryException"}, {"shape":"TypeNotFoundException"} ], - "documentation":"

Tests a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry.

  • For resource types, this includes passing all contracts tests defined for the type.

  • For modules, this includes determining if the module's model meets all necessary requirements.

For more information, see Testing your public extension prior to publishing in the CloudFormation CLI User Guide.

If you don't specify a version, CloudFormation uses the default version of the extension in your account and region for testing.

To perform testing, CloudFormation assumes the execution role specified when the type was registered. For more information, see RegisterType.

Once you've initiated testing on an extension using TestType, you can use DescribeType to monitor the current test status and test status description for the extension.

An extension must have a test status of PASSED before it can be published. For more information, see Publishing extensions to make them available for public use in the CloudFormation CLI User Guide.

", + "documentation":"

Tests a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry.

  • For resource types, this includes passing all contracts tests defined for the type.

  • For modules, this includes determining if the module's model meets all necessary requirements.

For more information, see Testing your public extension prior to publishing in the CloudFormation CLI User Guide.

If you don't specify a version, CloudFormation uses the default version of the extension in your account and region for testing.

To perform testing, CloudFormation assumes the execution role specified when the type was registered. For more information, see RegisterType.

Once you've initiated testing on an extension using TestType, you can pass the returned TypeVersionArn into DescribeType to monitor the current test status and test status description for the extension.

An extension must have a test status of PASSED before it can be published. For more information, see Publishing extensions to make them available for public use in the CloudFormation CLI User Guide.

", "idempotent":true }, "UpdateStack":{ @@ -1064,6 +1064,15 @@ "type":"string", "pattern":"^[0-9]{12}$" }, + "AccountFilterType":{ + "type":"string", + "enum":[ + "NONE", + "INTERSECTION", + "DIFFERENCE", + "UNION" + ] + }, "AccountGateResult":{ "type":"structure", "members":{ @@ -2064,6 +2073,10 @@ "OrganizationalUnitIds":{ "shape":"OrganizationalUnitIdList", "documentation":"

The organization root ID or organizational unit (OU) IDs to which StackSets deploys.

" + }, + "AccountFilterType":{ + "shape":"AccountFilterType", + "documentation":"

Limit deployment targets to individual accounts or include additional accounts with provided OUs.

The following is a list of possible values for the AccountFilterType operation.

  • INTERSECTION: StackSets deploys to the accounts specified in Accounts parameter.

  • DIFFERENCE: StackSets excludes the accounts specified in Accounts parameter. This enables user to avoid certain accounts within an OU such as suspended accounts.

  • UNION: StackSets includes additional accounts deployment targets.

    This is the default value if AccountFilterType is not provided. This enables user to update an entire OU and individual accounts from a different OU in one request, which used to be two separate requests.

  • NONE: Deploys to all the accounts in specified organizational units (OU).

" } }, "documentation":"

[Service-managed permissions] The Organizations accounts to which StackSets deploys. StackSets doesn't deploy stack instances to the organization management account, even if the organization management account is in your organization or in an OU in your organization.

For update operations, you can specify either Accounts or OrganizationalUnitIds. For create and delete operations, specify OrganizationalUnitIds.

" @@ -3138,7 +3151,8 @@ "InvalidTypeConfiguration", "HandlerInternalFailure", "NonCompliant", - "Unknown" + "Unknown", + "UnsupportedTarget" ] }, "HookFailureMode":{ @@ -3428,7 +3442,7 @@ }, "Filters":{ "shape":"StackInstanceFilters", - "documentation":"

The status that stack instances are filtered by.

" + "documentation":"

The filter to apply to stack instances

" }, "StackInstanceAccount":{ "shape":"Account", @@ -3512,6 +3526,10 @@ "CallAs":{ "shape":"CallAs", "documentation":"

[Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.

By default, SELF is specified. Use SELF for stack sets with self-managed permissions.

  • If you are signed in to the management account, specify SELF.

  • If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.

    Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the CloudFormation User Guide.

" + }, + "Filters":{ + "shape":"OperationResultFilters", + "documentation":"

The filter to apply to operation results.

" } } }, @@ -3909,6 +3927,35 @@ }, "exception":true }, + "OperationResultFilter":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"OperationResultFilterName", + "documentation":"

The type of filter to apply.

" + }, + "Values":{ + "shape":"OperationResultFilterValues", + "documentation":"

The value to filter by.

" + } + }, + "documentation":"

The status that operation results are filtered by.

" + }, + "OperationResultFilterName":{ + "type":"string", + "enum":["OPERATION_RESULT_STATUS"] + }, + "OperationResultFilterValues":{ + "type":"string", + "max":9, + "min":6, + "pattern":"^\\S{6,9}$" + }, + "OperationResultFilters":{ + "type":"list", + "member":{"shape":"OperationResultFilter"}, + "max":1 + }, "OperationStatus":{ "type":"string", "enum":[ @@ -5103,6 +5150,10 @@ "LastDriftCheckTimestamp":{ "shape":"Timestamp", "documentation":"

Most recent time when CloudFormation performed a drift detection operation on the stack instance. This value will be NULL for any stack instance on which drift detection hasn't yet been performed.

" + }, + "LastOperationId":{ + "shape":"ClientRequestToken", + "documentation":"

The last unique ID of a StackSet operation performed on a stack instance.

" } }, "documentation":"

An CloudFormation stack, in a specific account and Region, that's part of a stack set operation. A stack instance is a reference to an attempted or actual stack in a given account within a given Region. A stack instance can exist without a stack—for example, if the stack couldn't be created for some reason. A stack instance is associated with only one stack set. Each stack instance contains the ID of its associated stack set, in addition to the ID of the actual stack and the stack status.

" @@ -5140,21 +5191,25 @@ "documentation":"

The status to filter by.

" } }, - "documentation":"

The status that stack instances are filtered by.

" + "documentation":"

The filter to apply to stack instances

" }, "StackInstanceFilterName":{ "type":"string", - "enum":["DETAILED_STATUS"] + "enum":[ + "DETAILED_STATUS", + "LAST_OPERATION_ID" + ] }, "StackInstanceFilterValues":{ "type":"string", - "max":10, - "min":6 + "max":128, + "min":1, + "pattern":"^\\S{1,128}$" }, "StackInstanceFilters":{ "type":"list", "member":{"shape":"StackInstanceFilter"}, - "max":1 + "max":2 }, "StackInstanceNotFoundException":{ "type":"structure", @@ -5222,6 +5277,10 @@ "LastDriftCheckTimestamp":{ "shape":"Timestamp", "documentation":"

Most recent time when CloudFormation performed a drift detection operation on the stack instance. This value will be NULL for any stack instance on which drift detection hasn't yet been performed.

" + }, + "LastOperationId":{ + "shape":"ClientRequestToken", + "documentation":"

The last unique ID of a StackSet operation performed on a stack instance.

" } }, "documentation":"

The structure that contains summary information about a stack instance.

" @@ -5749,6 +5808,10 @@ "StatusReason":{ "shape":"StackSetOperationStatusReason", "documentation":"

The status of the operation in details.

" + }, + "StatusDetails":{ + "shape":"StackSetOperationStatusDetails", + "documentation":"

Detailed information about the StackSet operation.

" } }, "documentation":"

The structure that contains information about a stack set operation.

" @@ -5847,6 +5910,16 @@ "QUEUED" ] }, + "StackSetOperationStatusDetails":{ + "type":"structure", + "members":{ + "FailedStackInstancesCount":{ + "shape":"FailedStackInstancesCount", + "documentation":"

The number of stack instances for which the StackSet operation failed.

" + } + }, + "documentation":"

Detailed information about the StackSet operation.

" + }, "StackSetOperationStatusReason":{"type":"string"}, "StackSetOperationSummaries":{ "type":"list", @@ -5878,7 +5951,12 @@ "StatusReason":{ "shape":"StackSetOperationStatusReason", "documentation":"

The status of the operation in details.

" - } + }, + "StatusDetails":{ + "shape":"StackSetOperationStatusDetails", + "documentation":"

Detailed information about the stack set operation.

" + }, + "OperationPreferences":{"shape":"StackSetOperationPreferences"} }, "documentation":"

The structures that contain summary information about the specified operation.

" }, diff --git a/botocore/data/cloudfront/2014-05-31/endpoint-rule-set-1.json b/botocore/data/cloudfront/2014-05-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2014-05-31/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2014-10-21/endpoint-rule-set-1.json b/botocore/data/cloudfront/2014-10-21/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2014-10-21/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2014-11-06/endpoint-rule-set-1.json b/botocore/data/cloudfront/2014-11-06/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2014-11-06/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2015-04-17/endpoint-rule-set-1.json b/botocore/data/cloudfront/2015-04-17/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2015-04-17/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2015-07-27/endpoint-rule-set-1.json b/botocore/data/cloudfront/2015-07-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2015-07-27/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2015-09-17/endpoint-rule-set-1.json b/botocore/data/cloudfront/2015-09-17/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2015-09-17/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2016-01-13/endpoint-rule-set-1.json b/botocore/data/cloudfront/2016-01-13/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2016-01-13/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2016-01-28/endpoint-rule-set-1.json b/botocore/data/cloudfront/2016-01-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2016-01-28/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2016-01-28/examples-1.json b/botocore/data/cloudfront/2016-01-28/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/cloudfront/2016-01-28/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/cloudfront/2016-08-01/endpoint-rule-set-1.json b/botocore/data/cloudfront/2016-08-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2016-08-01/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2016-08-01/examples-1.json b/botocore/data/cloudfront/2016-08-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/cloudfront/2016-08-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/cloudfront/2016-08-20/endpoint-rule-set-1.json b/botocore/data/cloudfront/2016-08-20/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2016-08-20/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2016-09-07/endpoint-rule-set-1.json b/botocore/data/cloudfront/2016-09-07/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2016-09-07/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2016-09-07/examples-1.json b/botocore/data/cloudfront/2016-09-07/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/cloudfront/2016-09-07/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/cloudfront/2016-09-29/endpoint-rule-set-1.json b/botocore/data/cloudfront/2016-09-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2016-09-29/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2016-09-29/examples-1.json b/botocore/data/cloudfront/2016-09-29/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/cloudfront/2016-09-29/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/cloudfront/2016-11-25/endpoint-rule-set-1.json b/botocore/data/cloudfront/2016-11-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2016-11-25/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2017-03-25/endpoint-rule-set-1.json b/botocore/data/cloudfront/2017-03-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2017-03-25/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2017-10-30/endpoint-rule-set-1.json b/botocore/data/cloudfront/2017-10-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2017-10-30/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2018-06-18/endpoint-rule-set-1.json b/botocore/data/cloudfront/2018-06-18/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2018-06-18/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2018-11-05/endpoint-rule-set-1.json b/botocore/data/cloudfront/2018-11-05/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2018-11-05/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2019-03-26/endpoint-rule-set-1.json b/botocore/data/cloudfront/2019-03-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..a577f38e --- /dev/null +++ b/botocore/data/cloudfront/2019-03-26/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2020-05-31/endpoint-rule-set-1.json b/botocore/data/cloudfront/2020-05-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..b13d359b --- /dev/null +++ b/botocore/data/cloudfront/2020-05-31/endpoint-rule-set-1.json @@ -0,0 +1,852 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "cloudfront" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudfront.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudfront/2020-05-31/service-2.json b/botocore/data/cloudfront/2020-05-31/service-2.json index 93e81f73..7be5c8d4 100644 --- a/botocore/data/cloudfront/2020-05-31/service-2.json +++ b/botocore/data/cloudfront/2020-05-31/service-2.json @@ -29,59 +29,28 @@ ], "documentation":"

Associates an alias (also known as a CNAME or an alternate domain name) with a CloudFront distribution.

With this operation you can move an alias that’s already in use on a CloudFront distribution to a different distribution in one step. This prevents the downtime that could occur if you first remove the alias from one distribution and then separately add the alias to another distribution.

To use this operation to associate an alias with a distribution, you provide the alias and the ID of the target distribution for the alias. For more information, including how to set up the target distribution, prerequisites that you must complete, and other restrictions, see Moving an alternate domain name to a different distribution in the Amazon CloudFront Developer Guide.

" }, - "CreateCachePolicy":{ - "name":"CreateCachePolicy2020_05_31", + "CopyDistribution":{ + "name":"CopyDistribution2020_05_31", "http":{ "method":"POST", - "requestUri":"/2020-05-31/cache-policy", + "requestUri":"/2020-05-31/distribution/{PrimaryDistributionId}/copy", "responseCode":201 }, - "input":{"shape":"CreateCachePolicyRequest"}, - "output":{"shape":"CreateCachePolicyResult"}, - "errors":[ - {"shape":"AccessDenied"}, - {"shape":"InconsistentQuantities"}, - {"shape":"InvalidArgument"}, - {"shape":"CachePolicyAlreadyExists"}, - {"shape":"TooManyCachePolicies"}, - {"shape":"TooManyHeadersInCachePolicy"}, - {"shape":"TooManyCookiesInCachePolicy"}, - {"shape":"TooManyQueryStringsInCachePolicy"} - ], - "documentation":"

Creates a cache policy.

After you create a cache policy, you can attach it to one or more cache behaviors. When it’s attached to a cache behavior, the cache policy determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

The headers, cookies, and query strings that are included in the cache key are automatically included in requests that CloudFront sends to the origin. CloudFront sends a request when it can’t find an object in its cache that matches the request’s cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

For more information about cache policies, see Controlling the cache key in the Amazon CloudFront Developer Guide.

" - }, - "CreateCloudFrontOriginAccessIdentity":{ - "name":"CreateCloudFrontOriginAccessIdentity2020_05_31", - "http":{ - "method":"POST", - "requestUri":"/2020-05-31/origin-access-identity/cloudfront", - "responseCode":201 + "input":{ + "shape":"CopyDistributionRequest", + "locationName":"CopyDistributionRequest", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2020-05-31/"} }, - "input":{"shape":"CreateCloudFrontOriginAccessIdentityRequest"}, - "output":{"shape":"CreateCloudFrontOriginAccessIdentityResult"}, - "errors":[ - {"shape":"CloudFrontOriginAccessIdentityAlreadyExists"}, - {"shape":"MissingBody"}, - {"shape":"TooManyCloudFrontOriginAccessIdentities"}, - {"shape":"InvalidArgument"}, - {"shape":"InconsistentQuantities"} - ], - "documentation":"

Creates a new origin access identity. If you're using Amazon S3 for your origin, you can use an origin access identity to require users to access your content using a CloudFront URL instead of the Amazon S3 URL. For more information about how to use origin access identities, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide.

" - }, - "CreateDistribution":{ - "name":"CreateDistribution2020_05_31", - "http":{ - "method":"POST", - "requestUri":"/2020-05-31/distribution", - "responseCode":201 - }, - "input":{"shape":"CreateDistributionRequest"}, - "output":{"shape":"CreateDistributionResult"}, + "output":{"shape":"CopyDistributionResult"}, "errors":[ {"shape":"CNAMEAlreadyExists"}, {"shape":"DistributionAlreadyExists"}, {"shape":"InvalidOrigin"}, {"shape":"InvalidOriginAccessIdentity"}, + {"shape":"InvalidOriginAccessControl"}, + {"shape":"InvalidIfMatchVersion"}, + {"shape":"NoSuchDistribution"}, + {"shape":"PreconditionFailed"}, {"shape":"AccessDenied"}, {"shape":"TooManyTrustedSigners"}, {"shape":"TrustedSignerDoesNotExist"}, @@ -138,7 +107,143 @@ {"shape":"NoSuchRealtimeLogConfig"}, {"shape":"RealtimeLogConfigOwnerMismatch"} ], - "documentation":"

Creates a new web distribution. You create a CloudFront distribution to tell CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. Send a POST request to the /CloudFront API version/distribution/distribution ID resource.

When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using UpdateDistribution, follow the steps included in the documentation to get the current configuration and then make your updates. This helps to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution in the Amazon CloudFront Developer Guide.

" + "documentation":"

Creates a staging distribution using the configuration of the provided primary distribution. A staging distribution is a copy of an existing distribution (called the primary distribution) that you can use in a continuous deployment workflow.

After you create a staging distribution, you can use UpdateDistribution to modify the staging distribution’s configuration. Then you can use CreateContinuousDeploymentPolicy to incrementally move traffic to the staging distribution.

" + }, + "CreateCachePolicy":{ + "name":"CreateCachePolicy2020_05_31", + "http":{ + "method":"POST", + "requestUri":"/2020-05-31/cache-policy", + "responseCode":201 + }, + "input":{"shape":"CreateCachePolicyRequest"}, + "output":{"shape":"CreateCachePolicyResult"}, + "errors":[ + {"shape":"AccessDenied"}, + {"shape":"InconsistentQuantities"}, + {"shape":"InvalidArgument"}, + {"shape":"CachePolicyAlreadyExists"}, + {"shape":"TooManyCachePolicies"}, + {"shape":"TooManyHeadersInCachePolicy"}, + {"shape":"TooManyCookiesInCachePolicy"}, + {"shape":"TooManyQueryStringsInCachePolicy"} + ], + "documentation":"

Creates a cache policy.

After you create a cache policy, you can attach it to one or more cache behaviors. When it’s attached to a cache behavior, the cache policy determines the following:

  • The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.

  • The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.

The headers, cookies, and query strings that are included in the cache key are automatically included in requests that CloudFront sends to the origin. CloudFront sends a request when it can’t find an object in its cache that matches the request’s cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy.

For more information about cache policies, see Controlling the cache key in the Amazon CloudFront Developer Guide.

" + }, + "CreateCloudFrontOriginAccessIdentity":{ + "name":"CreateCloudFrontOriginAccessIdentity2020_05_31", + "http":{ + "method":"POST", + "requestUri":"/2020-05-31/origin-access-identity/cloudfront", + "responseCode":201 + }, + "input":{"shape":"CreateCloudFrontOriginAccessIdentityRequest"}, + "output":{"shape":"CreateCloudFrontOriginAccessIdentityResult"}, + "errors":[ + {"shape":"CloudFrontOriginAccessIdentityAlreadyExists"}, + {"shape":"MissingBody"}, + {"shape":"TooManyCloudFrontOriginAccessIdentities"}, + {"shape":"InvalidArgument"}, + {"shape":"InconsistentQuantities"} + ], + "documentation":"

Creates a new origin access identity. If you're using Amazon S3 for your origin, you can use an origin access identity to require users to access your content using a CloudFront URL instead of the Amazon S3 URL. For more information about how to use origin access identities, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide.

" + }, + "CreateContinuousDeploymentPolicy":{ + "name":"CreateContinuousDeploymentPolicy2020_05_31", + "http":{ + "method":"POST", + "requestUri":"/2020-05-31/continuous-deployment-policy", + "responseCode":201 + }, + "input":{"shape":"CreateContinuousDeploymentPolicyRequest"}, + "output":{"shape":"CreateContinuousDeploymentPolicyResult"}, + "errors":[ + {"shape":"AccessDenied"}, + {"shape":"InvalidArgument"}, + {"shape":"InconsistentQuantities"}, + {"shape":"ContinuousDeploymentPolicyAlreadyExists"}, + {"shape":"TooManyContinuousDeploymentPolicies"}, + {"shape":"StagingDistributionInUse"} + ], + "documentation":"

Creates a continuous deployment policy that distributes traffic for a custom domain name to two different CloudFront distributions.

To use a continuous deployment policy, first use CopyDistribution to create a staging distribution, then use UpdateDistribution to modify the staging distribution’s configuration.

After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This workflow enables you to test changes to a distribution’s configuration before moving all of your domain’s production traffic to the new configuration.

" + }, + "CreateDistribution":{ + "name":"CreateDistribution2020_05_31", + "http":{ + "method":"POST", + "requestUri":"/2020-05-31/distribution", + "responseCode":201 + }, + "input":{"shape":"CreateDistributionRequest"}, + "output":{"shape":"CreateDistributionResult"}, + "errors":[ + {"shape":"CNAMEAlreadyExists"}, + {"shape":"DistributionAlreadyExists"}, + {"shape":"InvalidOrigin"}, + {"shape":"InvalidOriginAccessIdentity"}, + {"shape":"InvalidOriginAccessControl"}, + {"shape":"IllegalOriginAccessConfiguration"}, + {"shape":"TooManyDistributionsAssociatedToOriginAccessControl"}, + {"shape":"AccessDenied"}, + {"shape":"TooManyTrustedSigners"}, + {"shape":"TrustedSignerDoesNotExist"}, + {"shape":"InvalidViewerCertificate"}, + {"shape":"InvalidMinimumProtocolVersion"}, + {"shape":"MissingBody"}, + {"shape":"TooManyDistributionCNAMEs"}, + {"shape":"TooManyDistributions"}, + {"shape":"InvalidDefaultRootObject"}, + {"shape":"InvalidRelativePath"}, + {"shape":"InvalidErrorCode"}, + {"shape":"InvalidResponseCode"}, + {"shape":"InvalidArgument"}, + {"shape":"InvalidRequiredProtocol"}, + {"shape":"NoSuchOrigin"}, + {"shape":"TooManyOrigins"}, + {"shape":"TooManyOriginGroupsPerDistribution"}, + {"shape":"TooManyCacheBehaviors"}, + {"shape":"TooManyCookieNamesInWhiteList"}, + {"shape":"InvalidForwardCookies"}, + {"shape":"TooManyHeadersInForwardedValues"}, + {"shape":"InvalidHeadersForS3Origin"}, + {"shape":"InconsistentQuantities"}, + {"shape":"TooManyCertificates"}, + {"shape":"InvalidLocationCode"}, + {"shape":"InvalidGeoRestrictionParameter"}, + {"shape":"InvalidProtocolSettings"}, + {"shape":"InvalidTTLOrder"}, + {"shape":"InvalidWebACLId"}, + {"shape":"TooManyOriginCustomHeaders"}, + {"shape":"TooManyQueryStringParameters"}, + {"shape":"InvalidQueryStringParameters"}, + {"shape":"TooManyDistributionsWithLambdaAssociations"}, + {"shape":"TooManyDistributionsWithSingleFunctionARN"}, + {"shape":"TooManyLambdaFunctionAssociations"}, + {"shape":"InvalidLambdaFunctionAssociation"}, + {"shape":"TooManyDistributionsWithFunctionAssociations"}, + {"shape":"TooManyFunctionAssociations"}, + {"shape":"InvalidFunctionAssociation"}, + {"shape":"InvalidOriginReadTimeout"}, + {"shape":"InvalidOriginKeepaliveTimeout"}, + {"shape":"NoSuchFieldLevelEncryptionConfig"}, + {"shape":"IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior"}, + {"shape":"TooManyDistributionsAssociatedToFieldLevelEncryptionConfig"}, + {"shape":"NoSuchCachePolicy"}, + {"shape":"TooManyDistributionsAssociatedToCachePolicy"}, + {"shape":"NoSuchResponseHeadersPolicy"}, + {"shape":"TooManyDistributionsAssociatedToResponseHeadersPolicy"}, + {"shape":"NoSuchOriginRequestPolicy"}, + {"shape":"TooManyDistributionsAssociatedToOriginRequestPolicy"}, + {"shape":"TooManyDistributionsAssociatedToKeyGroup"}, + {"shape":"TooManyKeyGroupsAssociatedToDistribution"}, + {"shape":"TrustedKeyGroupDoesNotExist"}, + {"shape":"NoSuchRealtimeLogConfig"}, + {"shape":"RealtimeLogConfigOwnerMismatch"}, + {"shape":"ContinuousDeploymentPolicyInUse"}, + {"shape":"NoSuchContinuousDeploymentPolicy"}, + {"shape":"InvalidDomainNameForOriginAccessControl"} + ], + "documentation":"

Creates a CloudFront distribution.

" }, "CreateDistributionWithTags":{ "name":"CreateDistributionWithTags2020_05_31", @@ -154,6 +259,7 @@ {"shape":"DistributionAlreadyExists"}, {"shape":"InvalidOrigin"}, {"shape":"InvalidOriginAccessIdentity"}, + {"shape":"InvalidOriginAccessControl"}, {"shape":"AccessDenied"}, {"shape":"TooManyTrustedSigners"}, {"shape":"TrustedSignerDoesNotExist"}, @@ -209,7 +315,10 @@ {"shape":"TooManyKeyGroupsAssociatedToDistribution"}, {"shape":"TrustedKeyGroupDoesNotExist"}, {"shape":"NoSuchRealtimeLogConfig"}, - {"shape":"RealtimeLogConfigOwnerMismatch"} + {"shape":"RealtimeLogConfigOwnerMismatch"}, + {"shape":"ContinuousDeploymentPolicyInUse"}, + {"shape":"NoSuchContinuousDeploymentPolicy"}, + {"shape":"InvalidDomainNameForOriginAccessControl"} ], "documentation":"

Create a new distribution with tags.

" }, @@ -318,17 +427,34 @@ "name":"CreateMonitoringSubscription2020_05_31", "http":{ "method":"POST", - "requestUri":"/2020-05-31/distributions/{DistributionId}/monitoring-subscription" + "requestUri":"/2020-05-31/distributions/{DistributionId}/monitoring-subscription/" }, "input":{"shape":"CreateMonitoringSubscriptionRequest"}, "output":{"shape":"CreateMonitoringSubscriptionResult"}, "errors":[ {"shape":"AccessDenied"}, {"shape":"NoSuchDistribution"}, + {"shape":"MonitoringSubscriptionAlreadyExists"}, {"shape":"UnsupportedOperation"} ], "documentation":"

Enables additional CloudWatch metrics for the specified CloudFront distribution. The additional metrics incur an additional cost.

For more information, see Viewing additional CloudFront distribution metrics in the Amazon CloudFront Developer Guide.

" }, + "CreateOriginAccessControl":{ + "name":"CreateOriginAccessControl2020_05_31", + "http":{ + "method":"POST", + "requestUri":"/2020-05-31/origin-access-control", + "responseCode":201 + }, + "input":{"shape":"CreateOriginAccessControlRequest"}, + "output":{"shape":"CreateOriginAccessControlResult"}, + "errors":[ + {"shape":"OriginAccessControlAlreadyExists"}, + {"shape":"TooManyOriginAccessControls"}, + {"shape":"InvalidArgument"} + ], + "documentation":"

Creates a new origin access control in CloudFront. After you create an origin access control, you can add it to an origin in a CloudFront distribution so that CloudFront sends authenticated (signed) requests to the origin.

For an Amazon S3 origin, this makes it possible to block public access to the Amazon S3 bucket so that viewers (users) can access the content in the bucket only through CloudFront.

For more information about using a CloudFront origin access control, see Restricting access to an Amazon S3 origin in the Amazon CloudFront Developer Guide.

" + }, "CreateOriginRequestPolicy":{ "name":"CreateOriginRequestPolicy2020_05_31", "http":{ @@ -421,6 +547,7 @@ {"shape":"StreamingDistributionAlreadyExists"}, {"shape":"InvalidOrigin"}, {"shape":"InvalidOriginAccessIdentity"}, + {"shape":"InvalidOriginAccessControl"}, {"shape":"AccessDenied"}, {"shape":"TooManyTrustedSigners"}, {"shape":"TrustedSignerDoesNotExist"}, @@ -446,6 +573,7 @@ {"shape":"StreamingDistributionAlreadyExists"}, {"shape":"InvalidOrigin"}, {"shape":"InvalidOriginAccessIdentity"}, + {"shape":"InvalidOriginAccessControl"}, {"shape":"AccessDenied"}, {"shape":"TooManyTrustedSigners"}, {"shape":"TrustedSignerDoesNotExist"}, @@ -493,6 +621,24 @@ ], "documentation":"

Delete an origin access identity.

" }, + "DeleteContinuousDeploymentPolicy":{ + "name":"DeleteContinuousDeploymentPolicy2020_05_31", + "http":{ + "method":"DELETE", + "requestUri":"/2020-05-31/continuous-deployment-policy/{Id}", + "responseCode":204 + }, + "input":{"shape":"DeleteContinuousDeploymentPolicyRequest"}, + "errors":[ + {"shape":"InvalidIfMatchVersion"}, + {"shape":"InvalidArgument"}, + {"shape":"AccessDenied"}, + {"shape":"PreconditionFailed"}, + {"shape":"ContinuousDeploymentPolicyInUse"}, + {"shape":"NoSuchContinuousDeploymentPolicy"} + ], + "documentation":"

Deletes a continuous deployment policy.

You cannot delete a continuous deployment policy that’s attached to a primary distribution. First update your distribution to remove the continuous deployment policy, then you can delete the policy.

" + }, "DeleteDistribution":{ "name":"DeleteDistribution2020_05_31", "http":{ @@ -581,17 +727,35 @@ "name":"DeleteMonitoringSubscription2020_05_31", "http":{ "method":"DELETE", - "requestUri":"/2020-05-31/distributions/{DistributionId}/monitoring-subscription" + "requestUri":"/2020-05-31/distributions/{DistributionId}/monitoring-subscription/" }, "input":{"shape":"DeleteMonitoringSubscriptionRequest"}, "output":{"shape":"DeleteMonitoringSubscriptionResult"}, "errors":[ {"shape":"AccessDenied"}, {"shape":"NoSuchDistribution"}, + {"shape":"NoSuchMonitoringSubscription"}, {"shape":"UnsupportedOperation"} ], "documentation":"

Disables additional CloudWatch metrics for the specified CloudFront distribution.

" }, + "DeleteOriginAccessControl":{ + "name":"DeleteOriginAccessControl2020_05_31", + "http":{ + "method":"DELETE", + "requestUri":"/2020-05-31/origin-access-control/{Id}", + "responseCode":204 + }, + "input":{"shape":"DeleteOriginAccessControlRequest"}, + "errors":[ + {"shape":"AccessDenied"}, + {"shape":"InvalidIfMatchVersion"}, + {"shape":"NoSuchOriginAccessControl"}, + {"shape":"PreconditionFailed"}, + {"shape":"OriginAccessControlInUse"} + ], + "documentation":"

Deletes a CloudFront origin access control.

You cannot delete an origin access control if it's in use. First, update all distributions to remove the origin access control from all origins, then delete the origin access control.

" + }, "DeleteOriginRequestPolicy":{ "name":"DeleteOriginRequestPolicy2020_05_31", "http":{ @@ -752,6 +916,34 @@ ], "documentation":"

Get the configuration information about an origin access identity.

" }, + "GetContinuousDeploymentPolicy":{ + "name":"GetContinuousDeploymentPolicy2020_05_31", + "http":{ + "method":"GET", + "requestUri":"/2020-05-31/continuous-deployment-policy/{Id}" + }, + "input":{"shape":"GetContinuousDeploymentPolicyRequest"}, + "output":{"shape":"GetContinuousDeploymentPolicyResult"}, + "errors":[ + {"shape":"AccessDenied"}, + {"shape":"NoSuchContinuousDeploymentPolicy"} + ], + "documentation":"

Gets a continuous deployment policy, including metadata (the policy’s identifier and the date and time when the policy was last modified).

" + }, + "GetContinuousDeploymentPolicyConfig":{ + "name":"GetContinuousDeploymentPolicyConfig2020_05_31", + "http":{ + "method":"GET", + "requestUri":"/2020-05-31/continuous-deployment-policy/{Id}/config" + }, + "input":{"shape":"GetContinuousDeploymentPolicyConfigRequest"}, + "output":{"shape":"GetContinuousDeploymentPolicyConfigResult"}, + "errors":[ + {"shape":"AccessDenied"}, + {"shape":"NoSuchContinuousDeploymentPolicy"} + ], + "documentation":"

Gets configuration information about a continuous deployment policy.

" + }, "GetDistribution":{ "name":"GetDistribution2020_05_31", "http":{ @@ -895,17 +1087,46 @@ "name":"GetMonitoringSubscription2020_05_31", "http":{ "method":"GET", - "requestUri":"/2020-05-31/distributions/{DistributionId}/monitoring-subscription" + "requestUri":"/2020-05-31/distributions/{DistributionId}/monitoring-subscription/" }, "input":{"shape":"GetMonitoringSubscriptionRequest"}, "output":{"shape":"GetMonitoringSubscriptionResult"}, "errors":[ {"shape":"AccessDenied"}, {"shape":"NoSuchDistribution"}, + {"shape":"NoSuchMonitoringSubscription"}, {"shape":"UnsupportedOperation"} ], "documentation":"

Gets information about whether additional CloudWatch metrics are enabled for the specified CloudFront distribution.

" }, + "GetOriginAccessControl":{ + "name":"GetOriginAccessControl2020_05_31", + "http":{ + "method":"GET", + "requestUri":"/2020-05-31/origin-access-control/{Id}" + }, + "input":{"shape":"GetOriginAccessControlRequest"}, + "output":{"shape":"GetOriginAccessControlResult"}, + "errors":[ + {"shape":"NoSuchOriginAccessControl"}, + {"shape":"AccessDenied"} + ], + "documentation":"

Gets a CloudFront origin access control, including its unique identifier.

" + }, + "GetOriginAccessControlConfig":{ + "name":"GetOriginAccessControlConfig2020_05_31", + "http":{ + "method":"GET", + "requestUri":"/2020-05-31/origin-access-control/{Id}/config" + }, + "input":{"shape":"GetOriginAccessControlConfigRequest"}, + "output":{"shape":"GetOriginAccessControlConfigResult"}, + "errors":[ + {"shape":"NoSuchOriginAccessControl"}, + {"shape":"AccessDenied"} + ], + "documentation":"

Gets a CloudFront origin access control configuration.

" + }, "GetOriginRequestPolicy":{ "name":"GetOriginRequestPolicy2020_05_31", "http":{ @@ -1080,6 +1301,21 @@ ], "documentation":"

Gets a list of aliases (also called CNAMEs or alternate domain names) that conflict or overlap with the provided alias, and the associated CloudFront distributions and Amazon Web Services accounts for each conflicting alias. In the returned list, the distribution and account IDs are partially hidden, which allows you to identify the distributions and accounts that you own, but helps to protect the information of ones that you don’t own.

Use this operation to find aliases that are in use in CloudFront that conflict or overlap with the provided alias. For example, if you provide www.example.com as input, the returned list can include www.example.com and the overlapping wildcard alternate domain name (*.example.com), if they exist. If you provide *.example.com as input, the returned list can include *.example.com and any alternate domain names covered by that wildcard (for example, www.example.com, test.example.com, dev.example.com, and so on), if they exist.

To list conflicting aliases, you provide the alias to search and the ID of a distribution in your account that has an attached SSL/TLS certificate that includes the provided alias. For more information, including how to set up the distribution and certificate, see Moving an alternate domain name to a different distribution in the Amazon CloudFront Developer Guide.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

" }, + "ListContinuousDeploymentPolicies":{ + "name":"ListContinuousDeploymentPolicies2020_05_31", + "http":{ + "method":"GET", + "requestUri":"/2020-05-31/continuous-deployment-policy" + }, + "input":{"shape":"ListContinuousDeploymentPoliciesRequest"}, + "output":{"shape":"ListContinuousDeploymentPoliciesResult"}, + "errors":[ + {"shape":"InvalidArgument"}, + {"shape":"AccessDenied"}, + {"shape":"NoSuchContinuousDeploymentPolicy"} + ], + "documentation":"

Gets a list of the continuous deployment policies in your Amazon Web Services account.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

" + }, "ListDistributions":{ "name":"ListDistributions2020_05_31", "http":{ @@ -1251,6 +1487,19 @@ ], "documentation":"

Gets a list of key groups.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request.

" }, + "ListOriginAccessControls":{ + "name":"ListOriginAccessControls2020_05_31", + "http":{ + "method":"GET", + "requestUri":"/2020-05-31/origin-access-control" + }, + "input":{"shape":"ListOriginAccessControlsRequest"}, + "output":{"shape":"ListOriginAccessControlsResult"}, + "errors":[ + {"shape":"InvalidArgument"} + ], + "documentation":"

Gets the list of CloudFront origin access controls in this Amazon Web Services account.

You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send another request that specifies the NextMarker value from the current response as the Marker value in the next request.

" + }, "ListOriginRequestPolicies":{ "name":"ListOriginRequestPolicies2020_05_31", "http":{ @@ -1451,6 +1700,25 @@ ], "documentation":"

Update an origin access identity.

" }, + "UpdateContinuousDeploymentPolicy":{ + "name":"UpdateContinuousDeploymentPolicy2020_05_31", + "http":{ + "method":"PUT", + "requestUri":"/2020-05-31/continuous-deployment-policy/{Id}" + }, + "input":{"shape":"UpdateContinuousDeploymentPolicyRequest"}, + "output":{"shape":"UpdateContinuousDeploymentPolicyResult"}, + "errors":[ + {"shape":"InvalidIfMatchVersion"}, + {"shape":"InvalidArgument"}, + {"shape":"AccessDenied"}, + {"shape":"InconsistentQuantities"}, + {"shape":"PreconditionFailed"}, + {"shape":"StagingDistributionInUse"}, + {"shape":"NoSuchContinuousDeploymentPolicy"} + ], + "documentation":"

Updates a continuous deployment policy. You can update a continuous deployment policy to enable or disable it, to change the percentage of traffic that it sends to the staging distribution, or to change the staging distribution that it sends traffic to.

When you update a continuous deployment policy configuration, all the fields are updated with the values that are provided in the request. You cannot update some fields independent of others. To update a continuous deployment policy configuration:

  1. Use GetContinuousDeploymentPolicyConfig to get the current configuration.

  2. Locally modify the fields in the continuous deployment policy configuration that you want to update.

  3. Use UpdateContinuousDeploymentPolicy, providing the entire continuous deployment policy configuration, including the fields that you modified and those that you didn’t.

" + }, "UpdateDistribution":{ "name":"UpdateDistribution2020_05_31", "http":{ @@ -1474,6 +1742,84 @@ {"shape":"InvalidResponseCode"}, {"shape":"InvalidArgument"}, {"shape":"InvalidOriginAccessIdentity"}, + {"shape":"InvalidOriginAccessControl"}, + {"shape":"TooManyTrustedSigners"}, + {"shape":"TrustedSignerDoesNotExist"}, + {"shape":"InvalidViewerCertificate"}, + {"shape":"InvalidMinimumProtocolVersion"}, + {"shape":"InvalidRequiredProtocol"}, + {"shape":"NoSuchOrigin"}, + {"shape":"TooManyOrigins"}, + {"shape":"TooManyOriginGroupsPerDistribution"}, + {"shape":"TooManyCacheBehaviors"}, + {"shape":"TooManyCookieNamesInWhiteList"}, + {"shape":"InvalidForwardCookies"}, + {"shape":"TooManyHeadersInForwardedValues"}, + {"shape":"InvalidHeadersForS3Origin"}, + {"shape":"InconsistentQuantities"}, + {"shape":"TooManyCertificates"}, + {"shape":"InvalidLocationCode"}, + {"shape":"InvalidGeoRestrictionParameter"}, + {"shape":"InvalidTTLOrder"}, + {"shape":"InvalidWebACLId"}, + {"shape":"TooManyOriginCustomHeaders"}, + {"shape":"TooManyQueryStringParameters"}, + {"shape":"InvalidQueryStringParameters"}, + {"shape":"TooManyDistributionsWithLambdaAssociations"}, + {"shape":"TooManyDistributionsWithSingleFunctionARN"}, + {"shape":"TooManyLambdaFunctionAssociations"}, + {"shape":"InvalidLambdaFunctionAssociation"}, + {"shape":"TooManyDistributionsWithFunctionAssociations"}, + {"shape":"TooManyFunctionAssociations"}, + {"shape":"InvalidFunctionAssociation"}, + {"shape":"InvalidOriginReadTimeout"}, + {"shape":"InvalidOriginKeepaliveTimeout"}, + {"shape":"NoSuchFieldLevelEncryptionConfig"}, + {"shape":"IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior"}, + {"shape":"TooManyDistributionsAssociatedToFieldLevelEncryptionConfig"}, + {"shape":"NoSuchCachePolicy"}, + {"shape":"TooManyDistributionsAssociatedToCachePolicy"}, + {"shape":"NoSuchResponseHeadersPolicy"}, + {"shape":"TooManyDistributionsAssociatedToResponseHeadersPolicy"}, + {"shape":"NoSuchOriginRequestPolicy"}, + {"shape":"TooManyDistributionsAssociatedToOriginRequestPolicy"}, + {"shape":"TooManyDistributionsAssociatedToKeyGroup"}, + {"shape":"TooManyKeyGroupsAssociatedToDistribution"}, + {"shape":"TrustedKeyGroupDoesNotExist"}, + {"shape":"NoSuchRealtimeLogConfig"}, + {"shape":"RealtimeLogConfigOwnerMismatch"}, + {"shape":"ContinuousDeploymentPolicyInUse"}, + {"shape":"NoSuchContinuousDeploymentPolicy"}, + {"shape":"StagingDistributionInUse"}, + {"shape":"IllegalOriginAccessConfiguration"}, + {"shape":"InvalidDomainNameForOriginAccessControl"} + ], + "documentation":"

Updates the configuration for a CloudFront distribution.

The update process includes getting the current distribution configuration, updating it to make your changes, and then submitting an UpdateDistribution request to make the updates.

To update a web distribution using the CloudFront API

  1. Use GetDistributionConfig to get the current configuration, including the version identifier (ETag).

  2. Update the distribution configuration that was returned in the response. Note the following important requirements and restrictions:

    • You must rename the ETag field to IfMatch, leaving the value unchanged. (Set the value of IfMatch to the value of ETag, then remove the ETag field.)

    • You can’t change the value of CallerReference.

  3. Submit an UpdateDistribution request, providing the distribution configuration. The new configuration replaces the existing configuration. The values that you specify in an UpdateDistribution request are not merged into your existing configuration. Make sure to include all fields: the ones that you modified and also the ones that you didn’t.

" + }, + "UpdateDistributionWithStagingConfig":{ + "name":"UpdateDistributionWithStagingConfig2020_05_31", + "http":{ + "method":"PUT", + "requestUri":"/2020-05-31/distribution/{Id}/promote-staging-config" + }, + "input":{"shape":"UpdateDistributionWithStagingConfigRequest"}, + "output":{"shape":"UpdateDistributionWithStagingConfigResult"}, + "errors":[ + {"shape":"AccessDenied"}, + {"shape":"CNAMEAlreadyExists"}, + {"shape":"IllegalUpdate"}, + {"shape":"InvalidIfMatchVersion"}, + {"shape":"MissingBody"}, + {"shape":"NoSuchDistribution"}, + {"shape":"PreconditionFailed"}, + {"shape":"TooManyDistributionCNAMEs"}, + {"shape":"InvalidDefaultRootObject"}, + {"shape":"InvalidRelativePath"}, + {"shape":"InvalidErrorCode"}, + {"shape":"InvalidResponseCode"}, + {"shape":"InvalidArgument"}, + {"shape":"InvalidOriginAccessIdentity"}, + {"shape":"InvalidOriginAccessControl"}, {"shape":"TooManyTrustedSigners"}, {"shape":"TrustedSignerDoesNotExist"}, {"shape":"InvalidViewerCertificate"}, @@ -1520,7 +1866,7 @@ {"shape":"NoSuchRealtimeLogConfig"}, {"shape":"RealtimeLogConfigOwnerMismatch"} ], - "documentation":"

Updates the configuration for a web distribution.

When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using this API action, follow the steps here to get the current configuration and then make your updates, to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution in the Amazon CloudFront Developer Guide.

The update process includes getting the current distribution configuration, updating the XML document that is returned to make your changes, and then submitting an UpdateDistribution request to make the updates.

For information about updating a distribution using the CloudFront console instead, see Creating a Distribution in the Amazon CloudFront Developer Guide.

To update a web distribution using the CloudFront API

  1. Submit a GetDistributionConfig request to get the current configuration and an Etag header for the distribution.

    If you update the distribution again, you must get a new Etag header.

  2. Update the XML document that was returned in the response to your GetDistributionConfig request to include your changes.

    When you edit the XML file, be aware of the following:

    • You must strip out the ETag parameter that is returned.

    • Additional fields are required when you update a distribution. There may be fields included in the XML file for features that you haven't configured for your distribution. This is expected and required to successfully update the distribution.

    • You can't change the value of CallerReference. If you try to change this value, CloudFront returns an IllegalUpdate error.

    • The new configuration replaces the existing configuration; the values that you specify in an UpdateDistribution request are not merged into your existing configuration. When you add, delete, or replace values in an element that allows multiple values (for example, CNAME), you must specify all of the values that you want to appear in the updated distribution. In addition, you must update the corresponding Quantity element.

  3. Submit an UpdateDistribution request to update the configuration for your distribution:

    • In the request body, include the XML document that you updated in Step 2. The request body must include an XML document with a DistributionConfig element.

    • Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GetDistributionConfig request in Step 1.

  4. Review the response to the UpdateDistribution request to confirm that the configuration was successfully updated.

  5. Optional: Submit a GetDistribution request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed.

" + "documentation":"

Copies the staging distribution's configuration to its corresponding primary distribution. The primary distribution retains its Aliases (also known as alternate domain names or CNAMEs) and ContinuousDeploymentPolicyId value, but otherwise its configuration is overwritten to match the staging distribution.

You can use this operation in a continuous deployment workflow after you have tested configuration changes on the staging distribution. After using a continuous deployment policy to move a portion of your domain name’s traffic to the staging distribution and verifying that it works as intended, you can use this operation to copy the staging distribution’s configuration to the primary distribution. This action will disable the continuous deployment policy and move your domain’s traffic back to the primary distribution.

" }, "UpdateFieldLevelEncryptionConfig":{ "name":"UpdateFieldLevelEncryptionConfig2020_05_31", @@ -1609,6 +1955,25 @@ ], "documentation":"

Updates a key group.

When you update a key group, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update a key group:

  1. Get the current key group with GetKeyGroup or GetKeyGroupConfig.

  2. Locally modify the fields in the key group that you want to update. For example, add or remove public key IDs.

  3. Call UpdateKeyGroup with the entire key group object, including the fields that you modified and those that you didn’t.

" }, + "UpdateOriginAccessControl":{ + "name":"UpdateOriginAccessControl2020_05_31", + "http":{ + "method":"PUT", + "requestUri":"/2020-05-31/origin-access-control/{Id}/config" + }, + "input":{"shape":"UpdateOriginAccessControlRequest"}, + "output":{"shape":"UpdateOriginAccessControlResult"}, + "errors":[ + {"shape":"AccessDenied"}, + {"shape":"IllegalUpdate"}, + {"shape":"InvalidIfMatchVersion"}, + {"shape":"OriginAccessControlAlreadyExists"}, + {"shape":"NoSuchOriginAccessControl"}, + {"shape":"PreconditionFailed"}, + {"shape":"InvalidArgument"} + ], + "documentation":"

Updates a CloudFront origin access control.

" + }, "UpdateOriginRequestPolicy":{ "name":"UpdateOriginRequestPolicy2020_05_31", "http":{ @@ -1711,6 +2076,7 @@ {"shape":"TooManyStreamingDistributionCNAMEs"}, {"shape":"InvalidArgument"}, {"shape":"InvalidOriginAccessIdentity"}, + {"shape":"InvalidOriginAccessControl"}, {"shape":"TooManyTrustedSigners"}, {"shape":"TrustedSignerDoesNotExist"}, {"shape":"InconsistentQuantities"} @@ -2484,6 +2850,147 @@ }, "documentation":"

Field-level encryption content type-profile.

" }, + "ContinuousDeploymentPolicy":{ + "type":"structure", + "required":[ + "Id", + "LastModifiedTime", + "ContinuousDeploymentPolicyConfig" + ], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The identifier of the continuous deployment policy.

" + }, + "LastModifiedTime":{ + "shape":"timestamp", + "documentation":"

The date and time the continuous deployment policy was last modified.

" + }, + "ContinuousDeploymentPolicyConfig":{"shape":"ContinuousDeploymentPolicyConfig"} + }, + "documentation":"

A continuous deployment policy.

" + }, + "ContinuousDeploymentPolicyAlreadyExists":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

A continuous deployment policy with this configuration already exists.

", + "error":{"httpStatusCode":409}, + "exception":true + }, + "ContinuousDeploymentPolicyConfig":{ + "type":"structure", + "required":[ + "StagingDistributionDnsNames", + "Enabled" + ], + "members":{ + "StagingDistributionDnsNames":{ + "shape":"StagingDistributionDnsNames", + "documentation":"

The CloudFront domain name of the staging distribution. For example: d111111abcdef8.cloudfront.net.

" + }, + "Enabled":{ + "shape":"boolean", + "documentation":"

A Boolean that indicates whether this continuous deployment policy is enabled (in effect). When this value is true, this policy is enabled and in effect. When this value is false, this policy is not enabled and has no effect.

" + }, + "TrafficConfig":{ + "shape":"TrafficConfig", + "documentation":"

Contains the parameters for routing production traffic from your primary to staging distributions.

" + } + }, + "documentation":"

Contains the configuration for a continuous deployment policy.

" + }, + "ContinuousDeploymentPolicyInUse":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

You cannot delete a continuous deployment policy that is associated with a primary distribution.

", + "error":{"httpStatusCode":409}, + "exception":true + }, + "ContinuousDeploymentPolicyList":{ + "type":"structure", + "required":[ + "MaxItems", + "Quantity" + ], + "members":{ + "NextMarker":{ + "shape":"string", + "documentation":"

Indicates the next page of continuous deployment policies. To get the next page of the list, use this value in the Marker field of your request.

" + }, + "MaxItems":{ + "shape":"integer", + "documentation":"

The maximum number of continuous deployment policies that were specified in your request.

" + }, + "Quantity":{ + "shape":"integer", + "documentation":"

The total number of continuous deployment policies in your Amazon Web Services account, regardless of the MaxItems value.

" + }, + "Items":{ + "shape":"ContinuousDeploymentPolicySummaryList", + "documentation":"

A list of continuous deployment policy items.

" + } + }, + "documentation":"

Contains a list of continuous deployment policies.

" + }, + "ContinuousDeploymentPolicySummary":{ + "type":"structure", + "required":["ContinuousDeploymentPolicy"], + "members":{ + "ContinuousDeploymentPolicy":{ + "shape":"ContinuousDeploymentPolicy", + "documentation":"

The continuous deployment policy.

" + } + }, + "documentation":"

A summary of the information about your continuous deployment policies.

" + }, + "ContinuousDeploymentPolicySummaryList":{ + "type":"list", + "member":{ + "shape":"ContinuousDeploymentPolicySummary", + "locationName":"ContinuousDeploymentPolicySummary" + } + }, + "ContinuousDeploymentPolicyType":{ + "type":"string", + "enum":[ + "SingleWeight", + "SingleHeader" + ] + }, + "ContinuousDeploymentSingleHeaderConfig":{ + "type":"structure", + "required":[ + "Header", + "Value" + ], + "members":{ + "Header":{ + "shape":"string", + "documentation":"

The request header name that you want CloudFront to send to your staging distribution.

" + }, + "Value":{ + "shape":"string", + "documentation":"

The request header value.

" + } + }, + "documentation":"

This configuration determines which HTTP requests are sent to the staging distribution. If the HTTP request contains a header and value that matches what you specify here, the request is sent to the staging distribution. Otherwise the request is sent to the primary distribution.

" + }, + "ContinuousDeploymentSingleWeightConfig":{ + "type":"structure", + "required":["Weight"], + "members":{ + "Weight":{ + "shape":"float", + "documentation":"

The percentage of traffic to send to a staging distribution, expressed as a decimal number between 0 and .15.

" + }, + "SessionStickinessConfig":{"shape":"SessionStickinessConfig"} + }, + "documentation":"

Contains the percentage of traffic to send to a staging distribution.

" + }, "CookieNameList":{ "type":"list", "member":{ @@ -2521,6 +3028,56 @@ }, "documentation":"

This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.

If you want to include cookies in the cache key, use CookiesConfig in a cache policy. See CachePolicy.

If you want to send cookies to the origin but not include them in the cache key, use CookiesConfig in an origin request policy. See OriginRequestPolicy.

A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see Caching Content Based on Cookies in the Amazon CloudFront Developer Guide.

" }, + "CopyDistributionRequest":{ + "type":"structure", + "required":[ + "PrimaryDistributionId", + "CallerReference" + ], + "members":{ + "PrimaryDistributionId":{ + "shape":"string", + "documentation":"

The identifier of the primary distribution whose configuration you are copying. To get a distribution ID, use ListDistributions.

", + "location":"uri", + "locationName":"PrimaryDistributionId" + }, + "Staging":{ + "shape":"boolean", + "documentation":"

The type of distribution that your primary distribution will be copied to. The only valid value is True, indicating that you are copying to a staging distribution.

", + "location":"header", + "locationName":"Staging" + }, + "IfMatch":{ + "shape":"string", + "documentation":"

The version identifier of the primary distribution whose configuration you are copying. This is the ETag value returned in the response to GetDistribution and GetDistributionConfig.

", + "location":"header", + "locationName":"If-Match" + }, + "CallerReference":{ + "shape":"string", + "documentation":"

A value that uniquely identifies a request to create a resource. This helps to prevent CloudFront from creating a duplicate resource if you accidentally resubmit an identical request.

" + } + } + }, + "CopyDistributionResult":{ + "type":"structure", + "members":{ + "Distribution":{"shape":"Distribution"}, + "Location":{ + "shape":"string", + "documentation":"

The URL of the staging distribution.

", + "location":"header", + "locationName":"Location" + }, + "ETag":{ + "shape":"string", + "documentation":"

The version identifier for the current version of the staging distribution.

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"Distribution" + }, "CreateCachePolicyRequest":{ "type":"structure", "required":["CachePolicyConfig"], @@ -2593,6 +3150,41 @@ "documentation":"

The returned result of the corresponding request.

", "payload":"CloudFrontOriginAccessIdentity" }, + "CreateContinuousDeploymentPolicyRequest":{ + "type":"structure", + "required":["ContinuousDeploymentPolicyConfig"], + "members":{ + "ContinuousDeploymentPolicyConfig":{ + "shape":"ContinuousDeploymentPolicyConfig", + "documentation":"

Contains the configuration for a continuous deployment policy.

", + "locationName":"ContinuousDeploymentPolicyConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2020-05-31/"} + } + }, + "payload":"ContinuousDeploymentPolicyConfig" + }, + "CreateContinuousDeploymentPolicyResult":{ + "type":"structure", + "members":{ + "ContinuousDeploymentPolicy":{ + "shape":"ContinuousDeploymentPolicy", + "documentation":"

A continuous deployment policy.

" + }, + "Location":{ + "shape":"string", + "documentation":"

The location of the continuous deployment policy.

", + "location":"header", + "locationName":"Location" + }, + "ETag":{ + "shape":"string", + "documentation":"

The version identifier for the current version of the continuous deployment policy.

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"ContinuousDeploymentPolicy" + }, "CreateDistributionRequest":{ "type":"structure", "required":["DistributionConfig"], @@ -2888,6 +3480,41 @@ }, "payload":"MonitoringSubscription" }, + "CreateOriginAccessControlRequest":{ + "type":"structure", + "required":["OriginAccessControlConfig"], + "members":{ + "OriginAccessControlConfig":{ + "shape":"OriginAccessControlConfig", + "documentation":"

Contains the origin access control.

", + "locationName":"OriginAccessControlConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2020-05-31/"} + } + }, + "payload":"OriginAccessControlConfig" + }, + "CreateOriginAccessControlResult":{ + "type":"structure", + "members":{ + "OriginAccessControl":{ + "shape":"OriginAccessControl", + "documentation":"

Contains an origin access control.

" + }, + "Location":{ + "shape":"string", + "documentation":"

The URL of the origin access control.

", + "location":"header", + "locationName":"Location" + }, + "ETag":{ + "shape":"string", + "documentation":"

The version identifier for the current version of the origin access control.

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"OriginAccessControl" + }, "CreateOriginRequestPolicyRequest":{ "type":"structure", "required":["OriginRequestPolicyConfig"], @@ -3318,6 +3945,24 @@ }, "documentation":"

Deletes a origin access identity.

" }, + "DeleteContinuousDeploymentPolicyRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The identifier of the continuous deployment policy that you are deleting.

", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "documentation":"

The current version (ETag value) of the continuous deployment policy that you are deleting.

", + "location":"header", + "locationName":"If-Match" + } + } + }, "DeleteDistributionRequest":{ "type":"structure", "required":["Id"], @@ -3429,6 +4074,24 @@ "members":{ } }, + "DeleteOriginAccessControlRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The unique identifier of the origin access control that you are deleting.

", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "documentation":"

The current version (ETag value) of the origin access control that you are deleting.

", + "location":"header", + "locationName":"If-Match" + } + } + }, "DeleteOriginRequestPolicyRequest":{ "type":"structure", "required":["Id"], @@ -3563,19 +4226,19 @@ "members":{ "Id":{ "shape":"string", - "documentation":"

The identifier for the distribution. For example: EDFDVBD632BHDS5.

" + "documentation":"

The distribution’s identifier. For example: E1U5RQF7T870K0.

" }, "ARN":{ "shape":"string", - "documentation":"

The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your Amazon Web Services account ID.

" + "documentation":"

The distribution’s Amazon Resource Name (ARN).

" }, "Status":{ "shape":"string", - "documentation":"

This response element indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated to all CloudFront edge locations.

" + "documentation":"

The distribution’s status. When the status is Deployed, the distribution’s information is fully propagated to all CloudFront edge locations.

" }, "LastModifiedTime":{ "shape":"timestamp", - "documentation":"

The date and time the distribution was last modified.

" + "documentation":"

The date and time when the distribution was last modified.

" }, "InProgressInvalidationBatches":{ "shape":"integer", @@ -3583,7 +4246,7 @@ }, "DomainName":{ "shape":"string", - "documentation":"

The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net.

" + "documentation":"

The distribution’s CloudFront domain name. For example: d111111abcdef8.cloudfront.net.

" }, "ActiveTrustedSigners":{ "shape":"ActiveTrustedSigners", @@ -3595,7 +4258,7 @@ }, "DistributionConfig":{ "shape":"DistributionConfig", - "documentation":"

The current configuration information for the distribution. Send a GET request to the /CloudFront API version/distribution ID/config resource.

" + "documentation":"

The distribution’s configuration.

" }, "AliasICPRecordals":{ "shape":"AliasICPRecordals", @@ -3633,7 +4296,7 @@ }, "DefaultRootObject":{ "shape":"string", - "documentation":"

The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/product-description.html). Specifying a default root object avoids exposing the contents of your distribution.

Specify only the object name, for example, index.html. Don't add a / before the object name.

If you don't want to specify a default root object when you create a distribution, include an empty DefaultRootObject element.

To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element.

To replace the default root object, update the distribution configuration and specify the new object.

For more information about the default root object, see Creating a Default Root Object in the Amazon CloudFront Developer Guide.

" + "documentation":"

The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution (https://www.example.com) instead of an object in your distribution (https://www.example.com/product-description.html). Specifying a default root object avoids exposing the contents of your distribution.

Specify only the object name, for example, index.html. Don't add a / before the object name.

If you don't want to specify a default root object when you create a distribution, include an empty DefaultRootObject element.

To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element.

To replace the default root object, update the distribution configuration and specify the new object.

For more information about the default root object, see Creating a Default Root Object in the Amazon CloudFront Developer Guide.

" }, "Origins":{ "shape":"Origins", @@ -3685,11 +4348,19 @@ }, "HttpVersion":{ "shape":"HttpVersion", - "documentation":"

(Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 automatically use an earlier HTTP version.

For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or later, and must support Server Name Identification (SNI).

In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for \"http/2 optimization.\"

" + "documentation":"

(Optional) Specify the maximum HTTP version(s) that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 automatically use an earlier HTTP version.

For viewers and CloudFront to use HTTP/2, viewers must support TLSv1.2 or later, and must support Server Name Indication (SNI).

For viewers and CloudFront to use HTTP/3, viewers must support TLSv1.3 and Server Name Indication (SNI). CloudFront supports HTTP/3 connection migration to allow the viewer to switch networks without losing connection. For more information about connection migration, see Connection Migration at RFC 9000. For more information about supported TLSv1.3 ciphers, see Supported protocols and ciphers between viewers and CloudFront.

" }, "IsIPV6Enabled":{ "shape":"boolean", "documentation":"

If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify true. If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.

In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the IpAddress parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see Creating a Signed URL Using a Custom Policy in the Amazon CloudFront Developer Guide.

If you're using an Route 53 Amazon Web Services Integration alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true:

  • You enable IPv6 for the distribution

  • You're using alternate domain names in the URLs for your objects

For more information, see Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name in the Route 53 Amazon Web Services Integration Developer Guide.

If you created a CNAME resource record set, either with Route 53 Amazon Web Services Integration or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request.

" + }, + "ContinuousDeploymentPolicyId":{ + "shape":"string", + "documentation":"

The identifier of a continuous deployment policy. For more information, see CreateContinuousDeploymentPolicy.

" + }, + "Staging":{ + "shape":"boolean", + "documentation":"

A Boolean that indicates whether this is a staging distribution. When this value is true, this is a staging distribution. When this value is false, this is not a staging distribution.

" } }, "documentation":"

A distribution configuration.

" @@ -3820,7 +4491,8 @@ "Restrictions", "WebACLId", "HttpVersion", - "IsIPV6Enabled" + "IsIPV6Enabled", + "Staging" ], "members":{ "Id":{ @@ -3902,6 +4574,10 @@ "AliasICPRecordals":{ "shape":"AliasICPRecordals", "documentation":"

Amazon Web Services services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions.

For more information about ICP recordals, see Signup, Accounts, and Credentials in Getting Started with Amazon Web Services services in China.

" + }, + "Staging":{ + "shape":"boolean", + "documentation":"

Whether the primary distribution has a staging distribution enabled.

" } }, "documentation":"

A summary of the information about a CloudFront distribution.

" @@ -4676,6 +5352,59 @@ "documentation":"

The returned result of the corresponding request.

", "payload":"CloudFrontOriginAccessIdentity" }, + "GetContinuousDeploymentPolicyConfigRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The identifier of the continuous deployment policy whose configuration you are getting.

", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetContinuousDeploymentPolicyConfigResult":{ + "type":"structure", + "members":{ + "ContinuousDeploymentPolicyConfig":{"shape":"ContinuousDeploymentPolicyConfig"}, + "ETag":{ + "shape":"string", + "documentation":"

The version identifier for the current version of the continuous deployment policy.

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"ContinuousDeploymentPolicyConfig" + }, + "GetContinuousDeploymentPolicyRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The identifier of the continuous deployment policy that you are getting.

", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetContinuousDeploymentPolicyResult":{ + "type":"structure", + "members":{ + "ContinuousDeploymentPolicy":{ + "shape":"ContinuousDeploymentPolicy", + "documentation":"

A continuous deployment policy.

" + }, + "ETag":{ + "shape":"string", + "documentation":"

The version identifier for the current version of the continuous deployment policy.

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"ContinuousDeploymentPolicy" + }, "GetDistributionConfigRequest":{ "type":"structure", "required":["Id"], @@ -4999,6 +5728,62 @@ }, "payload":"MonitoringSubscription" }, + "GetOriginAccessControlConfigRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The unique identifier of the origin access control.

", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetOriginAccessControlConfigResult":{ + "type":"structure", + "members":{ + "OriginAccessControlConfig":{ + "shape":"OriginAccessControlConfig", + "documentation":"

Contains an origin access control configuration.

" + }, + "ETag":{ + "shape":"string", + "documentation":"

The version identifier for the current version of the origin access control.

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"OriginAccessControlConfig" + }, + "GetOriginAccessControlRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The unique identifier of the origin access control.

", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetOriginAccessControlResult":{ + "type":"structure", + "members":{ + "OriginAccessControl":{ + "shape":"OriginAccessControl", + "documentation":"

Contains an origin access control, including its unique identifier.

" + }, + "ETag":{ + "shape":"string", + "documentation":"

The version identifier for the current version of the origin access control.

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"OriginAccessControl" + }, "GetOriginRequestPolicyConfigRequest":{ "type":"structure", "required":["Id"], @@ -5275,7 +6060,9 @@ "type":"string", "enum":[ "http1.1", - "http2" + "http2", + "http3", + "http2and3" ] }, "ICPRecordalStatus":{ @@ -5304,6 +6091,15 @@ "error":{"httpStatusCode":400}, "exception":true }, + "IllegalOriginAccessConfiguration":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

An origin cannot contain both an origin access control (OAC) and an origin access identity (OAI).

", + "error":{"httpStatusCode":400}, + "exception":true + }, "IllegalUpdate":{ "type":"structure", "members":{ @@ -5340,6 +6136,15 @@ "error":{"httpStatusCode":400}, "exception":true }, + "InvalidDomainNameForOriginAccessControl":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

An origin access control is associated with an origin whose domain name is not supported.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "InvalidErrorCode":{ "type":"structure", "members":{ @@ -5430,6 +6235,15 @@ "error":{"httpStatusCode":400}, "exception":true }, + "InvalidOriginAccessControl":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

The origin access control is not valid.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "InvalidOriginAccessIdentity":{ "type":"structure", "members":{ @@ -5964,6 +6778,33 @@ }, "payload":"ConflictingAliasesList" }, + "ListContinuousDeploymentPoliciesRequest":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"string", + "documentation":"

Use this field when paginating results to indicate where to begin in your list of continuous deployment policies. The response includes policies in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response.

", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"string", + "documentation":"

The maximum number of continuous deployment policies that you want returned in the response.

", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListContinuousDeploymentPoliciesResult":{ + "type":"structure", + "members":{ + "ContinuousDeploymentPolicyList":{ + "shape":"ContinuousDeploymentPolicyList", + "documentation":"

A list of continuous deployment policies.

" + } + }, + "payload":"ContinuousDeploymentPolicyList" + }, "ListDistributionsByCachePolicyIdRequest":{ "type":"structure", "required":["CachePolicyId"], @@ -6337,6 +7178,33 @@ }, "payload":"KeyGroupList" }, + "ListOriginAccessControlsRequest":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"string", + "documentation":"

Use this field when paginating results to indicate where to begin in your list of origin access controls. The response includes the items in the list that occur after the marker. To get the next page of the list, set this field's value to the value of NextMarker from the current page's response.

", + "location":"querystring", + "locationName":"Marker" + }, + "MaxItems":{ + "shape":"string", + "documentation":"

The maximum number of origin access controls that you want in the response.

", + "location":"querystring", + "locationName":"MaxItems" + } + } + }, + "ListOriginAccessControlsResult":{ + "type":"structure", + "members":{ + "OriginAccessControlList":{ + "shape":"OriginAccessControlList", + "documentation":"

A list of origin access controls.

" + } + }, + "payload":"OriginAccessControlList" + }, "ListOriginRequestPoliciesRequest":{ "type":"structure", "members":{ @@ -6596,6 +7464,15 @@ }, "documentation":"

A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution.

" }, + "MonitoringSubscriptionAlreadyExists":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

A monitoring subscription already exists for the specified distribution.

", + "error":{"httpStatusCode":409}, + "exception":true + }, "NoSuchCachePolicy":{ "type":"structure", "members":{ @@ -6614,6 +7491,15 @@ "error":{"httpStatusCode":404}, "exception":true }, + "NoSuchContinuousDeploymentPolicy":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

The continuous deployment policy doesn’t exist.

", + "error":{"httpStatusCode":404}, + "exception":true + }, "NoSuchDistribution":{ "type":"structure", "members":{ @@ -6659,6 +7545,15 @@ "error":{"httpStatusCode":404}, "exception":true }, + "NoSuchMonitoringSubscription":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

A monitoring subscription does not exist for the specified distribution.

", + "error":{"httpStatusCode":404}, + "exception":true + }, "NoSuchOrigin":{ "type":"structure", "members":{ @@ -6668,6 +7563,15 @@ "error":{"httpStatusCode":404}, "exception":true }, + "NoSuchOriginAccessControl":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

The origin access control does not exist.

", + "error":{"httpStatusCode":404}, + "exception":true + }, "NoSuchOriginRequestPolicy":{ "type":"structure", "members":{ @@ -6764,10 +7668,176 @@ "OriginShield":{ "shape":"OriginShield", "documentation":"

CloudFront Origin Shield. Using Origin Shield can help reduce the load on your origin.

For more information, see Using Origin Shield in the Amazon CloudFront Developer Guide.

" + }, + "OriginAccessControlId":{ + "shape":"string", + "documentation":"

The unique identifier of an origin access control for this origin.

For more information, see Restricting access to an Amazon S3 origin in the Amazon CloudFront Developer Guide.

" } }, "documentation":"

An origin.

An origin is the location where content is stored, and from which CloudFront gets content to serve to viewers. To specify an origin:

  • Use S3OriginConfig to specify an Amazon S3 bucket that is not configured with static website hosting.

  • Use CustomOriginConfig to specify all other kinds of origins, including:

    • An Amazon S3 bucket that is configured with static website hosting

    • An Elastic Load Balancing load balancer

    • An AWS Elemental MediaPackage endpoint

    • An AWS Elemental MediaStore container

    • Any other HTTP server, running on an Amazon EC2 instance or any other kind of host

For the current maximum number of origins that you can specify per distribution, see General Quotas on Web Distributions in the Amazon CloudFront Developer Guide (quotas were formerly referred to as limits).

" }, + "OriginAccessControl":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The unique identifier of the origin access control.

" + }, + "OriginAccessControlConfig":{ + "shape":"OriginAccessControlConfig", + "documentation":"

The origin access control.

" + } + }, + "documentation":"

A CloudFront origin access control, including its unique identifier.

" + }, + "OriginAccessControlAlreadyExists":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

An origin access control with the specified parameters already exists.

", + "error":{"httpStatusCode":409}, + "exception":true + }, + "OriginAccessControlConfig":{ + "type":"structure", + "required":[ + "Name", + "SigningProtocol", + "SigningBehavior", + "OriginAccessControlOriginType" + ], + "members":{ + "Name":{ + "shape":"string", + "documentation":"

A name to identify the origin access control.

" + }, + "Description":{ + "shape":"string", + "documentation":"

A description of the origin access control.

" + }, + "SigningProtocol":{ + "shape":"OriginAccessControlSigningProtocols", + "documentation":"

The signing protocol of the origin access control, which determines how CloudFront signs (authenticates) requests. The only valid value is sigv4.

" + }, + "SigningBehavior":{ + "shape":"OriginAccessControlSigningBehaviors", + "documentation":"

Specifies which requests CloudFront signs (adds authentication information to). Specify always for the most common use case. For more information, see origin access control advanced settings in the Amazon CloudFront Developer Guide.

This field can have one of the following values:

  • always – CloudFront signs all origin requests, overwriting the Authorization header from the viewer request if one exists.

  • never – CloudFront doesn't sign any origin requests. This value turns off origin access control for all origins in all distributions that use this origin access control.

  • no-override – If the viewer request doesn't contain the Authorization header, then CloudFront signs the origin request. If the viewer request contains the Authorization header, then CloudFront doesn't sign the origin request and instead passes along the Authorization header from the viewer request. WARNING: To pass along the Authorization header from the viewer request, you must add the Authorization header to a cache policy for all cache behaviors that use origins associated with this origin access control.

" + }, + "OriginAccessControlOriginType":{ + "shape":"OriginAccessControlOriginTypes", + "documentation":"

The type of origin that this origin access control is for. The only valid value is s3.

" + } + }, + "documentation":"

A CloudFront origin access control configuration.

" + }, + "OriginAccessControlInUse":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

Cannot delete the origin access control because it's in use by one or more distributions.

", + "error":{"httpStatusCode":409}, + "exception":true + }, + "OriginAccessControlList":{ + "type":"structure", + "required":[ + "Marker", + "MaxItems", + "IsTruncated", + "Quantity" + ], + "members":{ + "Marker":{ + "shape":"string", + "documentation":"

The value of the Marker field that was provided in the request.

" + }, + "NextMarker":{ + "shape":"string", + "documentation":"

If there are more items in the list than are in this response, this element is present. It contains the value to use in the Marker field of another request to continue listing origin access controls.

" + }, + "MaxItems":{ + "shape":"integer", + "documentation":"

The maximum number of origin access controls requested.

" + }, + "IsTruncated":{ + "shape":"boolean", + "documentation":"

If there are more items in the list than are in this response, this value is true.

" + }, + "Quantity":{ + "shape":"integer", + "documentation":"

The number of origin access controls returned in the response.

" + }, + "Items":{ + "shape":"OriginAccessControlSummaryList", + "documentation":"

Contains the origin access controls in the list.

" + } + }, + "documentation":"

A list of CloudFront origin access controls.

" + }, + "OriginAccessControlOriginTypes":{ + "type":"string", + "enum":["s3"] + }, + "OriginAccessControlSigningBehaviors":{ + "type":"string", + "enum":[ + "never", + "always", + "no-override" + ] + }, + "OriginAccessControlSigningProtocols":{ + "type":"string", + "enum":["sigv4"] + }, + "OriginAccessControlSummary":{ + "type":"structure", + "required":[ + "Id", + "Description", + "Name", + "SigningProtocol", + "SigningBehavior", + "OriginAccessControlOriginType" + ], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The unique identifier of the origin access control.

" + }, + "Description":{ + "shape":"string", + "documentation":"

A description of the origin access control.

" + }, + "Name":{ + "shape":"string", + "documentation":"

A unique name that identifies the origin access control.

" + }, + "SigningProtocol":{ + "shape":"OriginAccessControlSigningProtocols", + "documentation":"

The signing protocol of the origin access control. The signing protocol determines how CloudFront signs (authenticates) requests. The only valid value is sigv4.

" + }, + "SigningBehavior":{ + "shape":"OriginAccessControlSigningBehaviors", + "documentation":"

A value that specifies which requests CloudFront signs (adds authentication information to). This field can have one of the following values:

  • never – CloudFront doesn't sign any origin requests.

  • always – CloudFront signs all origin requests, overwriting the Authorization header from the viewer request if necessary.

  • no-override – If the viewer request doesn't contain the Authorization header, CloudFront signs the origin request. If the viewer request contains the Authorization header, CloudFront doesn't sign the origin request, but instead passes along the Authorization header that it received in the viewer request.

" + }, + "OriginAccessControlOriginType":{ + "shape":"OriginAccessControlOriginTypes", + "documentation":"

The type of origin that this origin access control is for. The only valid value is s3.

" + } + }, + "documentation":"

A CloudFront origin access control.

" + }, + "OriginAccessControlSummaryList":{ + "type":"list", + "member":{ + "shape":"OriginAccessControlSummary", + "locationName":"OriginAccessControlSummary" + } + }, "OriginCustomHeader":{ "type":"structure", "required":[ @@ -7780,13 +8850,13 @@ "shape":"ResponseHeadersPolicySecurityHeadersConfig", "documentation":"

A configuration for a set of security-related HTTP response headers.

" }, - "CustomHeadersConfig":{ - "shape":"ResponseHeadersPolicyCustomHeadersConfig", - "documentation":"

A configuration for a set of custom HTTP response headers.

" - }, "ServerTimingHeadersConfig":{ "shape":"ResponseHeadersPolicyServerTimingHeadersConfig", "documentation":"

A configuration for enabling the Server-Timing header in HTTP responses sent from CloudFront.

" + }, + "CustomHeadersConfig":{ + "shape":"ResponseHeadersPolicyCustomHeadersConfig", + "documentation":"

A configuration for a set of custom HTTP response headers.

" } }, "documentation":"

A response headers policy configuration.

A response headers policy configuration contains metadata about the response headers policy, and configurations for sets of HTTP response headers and their values. CloudFront adds the headers in the policy to HTTP responses that it sends for requests that match a cache behavior associated with the policy.

" @@ -8159,6 +9229,24 @@ "max":100.0, "min":0.0 }, + "SessionStickinessConfig":{ + "type":"structure", + "required":[ + "IdleTTL", + "MaximumTTL" + ], + "members":{ + "IdleTTL":{ + "shape":"integer", + "documentation":"

The amount of time after which you want sessions to cease if no requests are received.
Allowed values are 300–3600 seconds (5–60 minutes).

The value must be less than or equal to MaximumTTL.

" + }, + "MaximumTTL":{ + "shape":"integer", + "documentation":"

The maximum amount of time to consider requests from the viewer as being part of the same session. Allowed values are 300–3600 seconds (5–60 minutes).

The value must be less than or equal to IdleTTL.

" + } + }, + "documentation":"

Session stickiness provides the ability to define multiple requests from a single viewer as a single session. This prevents the potentially inconsistent experience of sending some of a given user's requests to your staging distribution, while others are sent to your primary distribution. Define the session duration using TTL values.

" + }, "Signer":{ "type":"structure", "members":{ @@ -8196,6 +9284,37 @@ "locationName":"SslProtocol" } }, + "StagingDistributionDnsNameList":{ + "type":"list", + "member":{ + "shape":"string", + "locationName":"DnsName" + } + }, + "StagingDistributionDnsNames":{ + "type":"structure", + "required":["Quantity"], + "members":{ + "Quantity":{ + "shape":"integer", + "documentation":"

The number of CloudFront domain names in your staging distribution.

" + }, + "Items":{ + "shape":"StagingDistributionDnsNameList", + "documentation":"

The CloudFront domain name of the staging distribution.

" + } + }, + "documentation":"

The CloudFront domain name of the staging distribution.

" + }, + "StagingDistributionInUse":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

A continuous deployment policy for this staging distribution already exists.

", + "error":{"httpStatusCode":409}, + "exception":true + }, "StatusCodeList":{ "type":"list", "member":{ @@ -8680,6 +9799,15 @@ "error":{"httpStatusCode":400}, "exception":true }, + "TooManyContinuousDeploymentPolicies":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

You have reached the maximum number of continuous deployment policies for this Amazon Web Services account.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "TooManyCookieNamesInWhiteList":{ "type":"structure", "members":{ @@ -8761,6 +9889,15 @@ "error":{"httpStatusCode":400}, "exception":true }, + "TooManyDistributionsAssociatedToOriginAccessControl":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

The maximum number of distributions have been associated with the specified origin access control.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "TooManyDistributionsAssociatedToOriginRequestPolicy":{ "type":"structure", "members":{ @@ -8941,6 +10078,15 @@ "error":{"httpStatusCode":400}, "exception":true }, + "TooManyOriginAccessControls":{ + "type":"structure", + "members":{ + "Message":{"shape":"string"} + }, + "documentation":"

The number of origin access controls in your Amazon Web Services account exceeds the maximum allowed.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "TooManyOriginCustomHeaders":{ "type":"structure", "members":{ @@ -9067,6 +10213,25 @@ "error":{"httpStatusCode":400}, "exception":true }, + "TrafficConfig":{ + "type":"structure", + "required":["Type"], + "members":{ + "SingleWeightConfig":{ + "shape":"ContinuousDeploymentSingleWeightConfig", + "documentation":"

Contains the percentage of traffic to send to the staging distribution.

" + }, + "SingleHeaderConfig":{ + "shape":"ContinuousDeploymentSingleHeaderConfig", + "documentation":"

Determines which HTTP requests are sent to the staging distribution.

" + }, + "Type":{ + "shape":"ContinuousDeploymentPolicyType", + "documentation":"

The type of traffic configuration.

" + } + }, + "documentation":"

The traffic configuration of your continuous deployment.

" + }, "TrustedKeyGroupDoesNotExist":{ "type":"structure", "members":{ @@ -9258,6 +10423,50 @@ "documentation":"

The returned result of the corresponding request.

", "payload":"CloudFrontOriginAccessIdentity" }, + "UpdateContinuousDeploymentPolicyRequest":{ + "type":"structure", + "required":[ + "ContinuousDeploymentPolicyConfig", + "Id" + ], + "members":{ + "ContinuousDeploymentPolicyConfig":{ + "shape":"ContinuousDeploymentPolicyConfig", + "documentation":"

The continuous deployment policy configuration.

", + "locationName":"ContinuousDeploymentPolicyConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2020-05-31/"} + }, + "Id":{ + "shape":"string", + "documentation":"

The identifier of the continuous deployment policy that you are updating.

", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "documentation":"

The current version (ETag value) of the continuous deployment policy that you are updating.

", + "location":"header", + "locationName":"If-Match" + } + }, + "payload":"ContinuousDeploymentPolicyConfig" + }, + "UpdateContinuousDeploymentPolicyResult":{ + "type":"structure", + "members":{ + "ContinuousDeploymentPolicy":{ + "shape":"ContinuousDeploymentPolicy", + "documentation":"

A continuous deployment policy.

" + }, + "ETag":{ + "shape":"string", + "documentation":"

The version identifier for the current version of the continuous deployment policy.

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"ContinuousDeploymentPolicy" + }, "UpdateDistributionRequest":{ "type":"structure", "required":[ @@ -9304,6 +10513,43 @@ "documentation":"

The returned result of the corresponding request.

", "payload":"Distribution" }, + "UpdateDistributionWithStagingConfigRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"string", + "documentation":"

The identifier of the primary distribution to which you are copying a staging distribution's configuration.

", + "location":"uri", + "locationName":"Id" + }, + "StagingDistributionId":{ + "shape":"string", + "documentation":"

The identifier of the staging distribution whose configuration you are copying to the primary distribution.

", + "location":"querystring", + "locationName":"StagingDistributionId" + }, + "IfMatch":{ + "shape":"string", + "documentation":"

The current versions (ETag values) of both primary and staging distributions. Provide these in the following format:

<primary ETag>, <staging ETag>

", + "location":"header", + "locationName":"If-Match" + } + } + }, + "UpdateDistributionWithStagingConfigResult":{ + "type":"structure", + "members":{ + "Distribution":{"shape":"Distribution"}, + "ETag":{ + "shape":"string", + "documentation":"

The current version of the primary distribution (after it’s updated).

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"Distribution" + }, "UpdateFieldLevelEncryptionConfigRequest":{ "type":"structure", "required":[ @@ -9483,6 +10729,50 @@ }, "payload":"KeyGroup" }, + "UpdateOriginAccessControlRequest":{ + "type":"structure", + "required":[ + "OriginAccessControlConfig", + "Id" + ], + "members":{ + "OriginAccessControlConfig":{ + "shape":"OriginAccessControlConfig", + "documentation":"

An origin access control.

", + "locationName":"OriginAccessControlConfig", + "xmlNamespace":{"uri":"http://cloudfront.amazonaws.com/doc/2020-05-31/"} + }, + "Id":{ + "shape":"string", + "documentation":"

The unique identifier of the origin access control that you are updating.

", + "location":"uri", + "locationName":"Id" + }, + "IfMatch":{ + "shape":"string", + "documentation":"

The current version (ETag value) of the origin access control that you are updating.

", + "location":"header", + "locationName":"If-Match" + } + }, + "payload":"OriginAccessControlConfig" + }, + "UpdateOriginAccessControlResult":{ + "type":"structure", + "members":{ + "OriginAccessControl":{ + "shape":"OriginAccessControl", + "documentation":"

The origin access control after it has been updated.

" + }, + "ETag":{ + "shape":"string", + "documentation":"

The new version of the origin access control after it has been updated.

", + "location":"header", + "locationName":"ETag" + } + }, + "payload":"OriginAccessControl" + }, "UpdateOriginRequestPolicyRequest":{ "type":"structure", "required":[ @@ -9748,6 +11038,7 @@ "type":"string", "max":25 }, + "float":{"type":"float"}, "integer":{"type":"integer"}, "listConflictingAliasesMaxItemsInteger":{ "type":"integer", diff --git a/botocore/data/cloudhsm/2014-05-30/endpoint-rule-set-1.json b/botocore/data/cloudhsm/2014-05-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..807bc8fa --- /dev/null +++ b/botocore/data/cloudhsm/2014-05-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudhsm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudhsm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudhsm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudhsm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json b/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..ed7866f8 --- /dev/null +++ b/botocore/data/cloudhsmv2/2017-04-28/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudhsmv2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudhsmv2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudhsmv2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudhsmv2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudsearch/2011-02-01/endpoint-rule-set-1.json b/botocore/data/cloudsearch/2011-02-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..34f002d1 --- /dev/null +++ b/botocore/data/cloudsearch/2011-02-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearch-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearch-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearch.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearch.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudsearch/2013-01-01/endpoint-rule-set-1.json b/botocore/data/cloudsearch/2013-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..34f002d1 --- /dev/null +++ b/botocore/data/cloudsearch/2013-01-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearch-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearch-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearch.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearch.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudsearch/2013-01-01/examples-1.json b/botocore/data/cloudsearch/2013-01-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/cloudsearch/2013-01-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/cloudsearchdomain/2013-01-01/endpoint-rule-set-1.json b/botocore/data/cloudsearchdomain/2013-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..a1d65a70 --- /dev/null +++ b/botocore/data/cloudsearchdomain/2013-01-01/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearchdomain-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearchdomain-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearchdomain.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudsearchdomain.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudtrail/2013-11-01/endpoint-rule-set-1.json b/botocore/data/cloudtrail/2013-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..c5897ff5 --- /dev/null +++ b/botocore/data/cloudtrail/2013-11-01/endpoint-rule-set-1.json @@ -0,0 +1,353 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://cloudtrail.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://cloudtrail.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudtrail/2013-11-01/paginators-1.json b/botocore/data/cloudtrail/2013-11-01/paginators-1.json index d990ba91..300217d2 100644 --- a/botocore/data/cloudtrail/2013-11-01/paginators-1.json +++ b/botocore/data/cloudtrail/2013-11-01/paginators-1.json @@ -20,6 +20,18 @@ "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/botocore/data/cloudtrail/2013-11-01/service-2.json b/botocore/data/cloudtrail/2013-11-01/service-2.json index 4519bb0a..b928aeed 100644 --- a/botocore/data/cloudtrail/2013-11-01/service-2.json +++ b/botocore/data/cloudtrail/2013-11-01/service-2.json @@ -33,6 +33,7 @@ {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"ConflictException"} ], "documentation":"

Adds one or more tags to a trail or event data store, up to a limit of 50. Overwrites an existing tag's value when a new value is specified for an existing tag key. Tag key names must be unique for a trail; you cannot have two keys with the same name but different values. If you specify a key without a value, the tag will be created with the specified key and a value of null. You can tag a trail or event data store that applies to all Amazon Web Services Regions only from the Region in which the trail or event data store was created (also known as its home region).

", @@ -55,6 +56,7 @@ {"shape":"QueryIdNotFoundException"}, {"shape":"OperationNotPermittedException"}, {"shape":"UnsupportedOperationException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"ConflictException"} ], "documentation":"

Cancels a query if the query is not in a terminated state, such as CANCELLED, FAILED, TIMED_OUT, or FINISHED. You must specify an ARN value for EventDataStore. The ID of the query that you want to cancel is also required. When you run CancelQuery, the query status might show as CANCELLED even if the operation is not yet finished.

", @@ -76,11 +78,16 @@ {"shape":"OperationNotPermittedException"}, {"shape":"UnsupportedOperationException"}, {"shape":"ConflictException"}, + {"shape":"InsufficientEncryptionPolicyException"}, + {"shape":"InvalidKmsKeyIdException"}, + {"shape":"KmsKeyNotFoundException"}, + {"shape":"KmsException"}, {"shape":"CloudTrailAccessNotEnabledException"}, {"shape":"InsufficientDependencyServiceAccessPermissionException"}, {"shape":"NotOrganizationMasterAccountException"}, {"shape":"OrganizationsNotInUseException"}, - {"shape":"OrganizationNotInAllFeaturesModeException"} + {"shape":"OrganizationNotInAllFeaturesModeException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Creates a new event data store.

" }, @@ -120,6 +127,7 @@ {"shape":"NotOrganizationMasterAccountException"}, {"shape":"OrganizationsNotInUseException"}, {"shape":"OrganizationNotInAllFeaturesModeException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"CloudTrailInvalidClientTokenIdException"}, {"shape":"ConflictException"} ], @@ -138,10 +146,12 @@ {"shape":"EventDataStoreARNInvalidException"}, {"shape":"EventDataStoreNotFoundException"}, {"shape":"EventDataStoreTerminationProtectedException"}, + {"shape":"EventDataStoreHasOngoingImportException"}, {"shape":"InvalidParameterException"}, {"shape":"OperationNotPermittedException"}, {"shape":"UnsupportedOperationException"}, {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"InsufficientDependencyServiceAccessPermissionException"} ], "documentation":"

Disables the event data store specified by EventDataStore, which accepts an event data store ARN. After you run DeleteEventDataStore, the event data store enters a PENDING_DELETION state, and is automatically deleted after a wait period of seven days. TerminationProtectionEnabled must be set to False on the event data store; this operation cannot work if TerminationProtectionEnabled is True.

After you run DeleteEventDataStore on an event data store, you cannot run ListQueries, DescribeQuery, or GetQueryResults on queries that are using an event data store in a PENDING_DELETION state. An event data store in the PENDING_DELETION state does not incur costs.

" @@ -161,12 +171,36 @@ {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"InsufficientDependencyServiceAccessPermissionException"}, {"shape":"ConflictException"} ], "documentation":"

Deletes a trail. This operation must be called from the region in which the trail was created. DeleteTrail cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions.

", "idempotent":true }, + "DeregisterOrganizationDelegatedAdmin":{ + "name":"DeregisterOrganizationDelegatedAdmin", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterOrganizationDelegatedAdminRequest"}, + "output":{"shape":"DeregisterOrganizationDelegatedAdminResponse"}, + "errors":[ + {"shape":"AccountNotFoundException"}, + {"shape":"AccountNotRegisteredException"}, + {"shape":"CloudTrailAccessNotEnabledException"}, + {"shape":"InsufficientDependencyServiceAccessPermissionException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotOrganizationManagementAccountException"}, + {"shape":"OrganizationNotInAllFeaturesModeException"}, + {"shape":"OrganizationsNotInUseException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"OperationNotPermittedException"} + ], + "documentation":"

Removes CloudTrail delegated administrator permissions from a member account in an organization.

", + "idempotent":true + }, "DescribeQuery":{ "name":"DescribeQuery", "http":{ @@ -182,7 +216,8 @@ {"shape":"InvalidParameterException"}, {"shape":"QueryIdNotFoundException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"UnsupportedOperationException"} + {"shape":"UnsupportedOperationException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Returns metadata about a query, including query run time in milliseconds, number of events scanned and matched, and query status. You must specify an ARN for EventDataStore, and a value for QueryID.

", "idempotent":true @@ -198,11 +233,29 @@ "errors":[ {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"InvalidTrailNameException"} + {"shape":"InvalidTrailNameException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Retrieves settings for one or more trails associated with the current region for your account.

", "idempotent":true }, + "GetChannel":{ + "name":"GetChannel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetChannelRequest"}, + "output":{"shape":"GetChannelResponse"}, + "errors":[ + {"shape":"ChannelARNInvalidException"}, + {"shape":"ChannelNotFoundException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"} + ], + "documentation":"

Returns information about a specific channel. Amazon Web Services services create service-linked channels to get information about CloudTrail events on your behalf. For more information about service-linked channels, see Viewing service-linked channels for CloudTrail by using the CLI.

", + "idempotent":true + }, "GetEventDataStore":{ "name":"GetEventDataStore", "http":{ @@ -216,7 +269,8 @@ {"shape":"EventDataStoreNotFoundException"}, {"shape":"InvalidParameterException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"UnsupportedOperationException"} + {"shape":"UnsupportedOperationException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Returns information about an event data store specified as either an ARN or the ID portion of the ARN.

", "idempotent":true @@ -233,11 +287,28 @@ {"shape":"TrailNotFoundException"}, {"shape":"InvalidTrailNameException"}, {"shape":"UnsupportedOperationException"}, - {"shape":"OperationNotPermittedException"} + {"shape":"OperationNotPermittedException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], - "documentation":"

Describes the settings for the event selectors that you configured for your trail. The information returned for your event selectors includes the following:

  • If your event selector includes read-only events, write-only events, or all events. This applies to both management events and data events.

  • If your event selector includes management events.

  • If your event selector includes data events, the resources on which you are logging data events.

For more information, see Logging Data and Management Events for Trails in the CloudTrail User Guide.

", + "documentation":"

Describes the settings for the event selectors that you configured for your trail. The information returned for your event selectors includes the following:

  • If your event selector includes read-only events, write-only events, or all events. This applies to both management events and data events.

  • If your event selector includes management events.

  • If your event selector includes data events, the resources on which you are logging data events.

For more information about logging management and data events, see the following topics in the CloudTrail User Guide:

", "idempotent":true }, + "GetImport":{ + "name":"GetImport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetImportRequest"}, + "output":{"shape":"GetImportResponse"}, + "errors":[ + {"shape":"ImportNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"} + ], + "documentation":"

Returns information about a specific import.

" + }, "GetInsightSelectors":{ "name":"GetInsightSelectors", "http":{ @@ -251,7 +322,8 @@ {"shape":"InvalidTrailNameException"}, {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"InsightNotEnabledException"} + {"shape":"InsightNotEnabledException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Describes the settings for the Insights event selectors that you configured for your trail. GetInsightSelectors shows if CloudTrail Insights event logging is enabled on the trail, and if it is, which insight types are enabled. If you run GetInsightSelectors on a trail that does not have Insights events enabled, the operation throws the exception InsightNotEnabledException

For more information, see Logging CloudTrail Insights Events for Trails in the CloudTrail User Guide.

", "idempotent":true @@ -272,8 +344,10 @@ {"shape":"InvalidNextTokenException"}, {"shape":"InvalidParameterException"}, {"shape":"QueryIdNotFoundException"}, + {"shape":"InsufficientEncryptionPolicyException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"UnsupportedOperationException"} + {"shape":"UnsupportedOperationException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Gets event data results of a query. You must specify the QueryID value returned by the StartQuery operation, and an ARN for EventDataStore.

" }, @@ -311,6 +385,22 @@ "documentation":"

Returns a JSON-formatted list of information about the specified trail. Fields include information on delivery errors, Amazon SNS and Amazon S3 errors, and start and stop logging times for each trail. This operation returns trail status from a single region. To return trail status from all regions, you must call the operation on each region.

", "idempotent":true }, + "ListChannels":{ + "name":"ListChannels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListChannelsRequest"}, + "output":{"shape":"ListChannelsResponse"}, + "errors":[ + {"shape":"InvalidNextTokenException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"} + ], + "documentation":"

Lists the channels in the current account, and their source names. Amazon Web Services services create service-linked channels get information about CloudTrail events on your behalf. For more information about service-linked channels, see Viewing service-linked channels for CloudTrail by using the CLI.

", + "idempotent":true + }, "ListEventDataStores":{ "name":"ListEventDataStores", "http":{ @@ -323,11 +413,46 @@ {"shape":"InvalidMaxResultsException"}, {"shape":"InvalidNextTokenException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"UnsupportedOperationException"} + {"shape":"UnsupportedOperationException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Returns information about all event data stores in the account, in the current region.

", "idempotent":true }, + "ListImportFailures":{ + "name":"ListImportFailures", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListImportFailuresRequest"}, + "output":{"shape":"ListImportFailuresResponse"}, + "errors":[ + {"shape":"InvalidNextTokenException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"} + ], + "documentation":"

Returns a list of failures for the specified import.

", + "idempotent":true + }, + "ListImports":{ + "name":"ListImports", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListImportsRequest"}, + "output":{"shape":"ListImportsResponse"}, + "errors":[ + {"shape":"EventDataStoreARNInvalidException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidParameterException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"} + ], + "documentation":"

Returns information on all imports, or a select set of imports by ImportStatus or Destination.

", + "idempotent":true + }, "ListPublicKeys":{ "name":"ListPublicKeys", "http":{ @@ -363,7 +488,8 @@ {"shape":"InvalidParameterException"}, {"shape":"InvalidQueryStatusException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"UnsupportedOperationException"} + {"shape":"UnsupportedOperationException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Returns a list of queries and query statuses for the past seven days. You must specify an ARN value for EventDataStore. Optionally, to shorten the list of results, you can specify a time range, formatted as timestamps, by adding StartTime and EndTime parameters, and a QueryStatus value. Valid values for QueryStatus include QUEUED, RUNNING, FINISHED, FAILED, TIMED_OUT, or CANCELLED.

", "idempotent":true @@ -385,7 +511,8 @@ {"shape":"EventDataStoreNotFoundException"}, {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"InvalidTokenException"} + {"shape":"InvalidTokenException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Lists the tags for the trail or event data store in the current region.

", "idempotent":true @@ -441,9 +568,10 @@ {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"InsufficientDependencyServiceAccessPermissionException"} ], - "documentation":"

Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event selectors to specify management and data event settings for your trail. By default, trails created without specific event selectors are configured to log all read and write management events, and no data events.

When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event.

Example

  1. You create an event selector for a trail and specify that you want write-only events.

  2. The EC2 GetConsoleOutput and RunInstances API operations occur in your account.

  3. CloudTrail evaluates whether the events match your event selectors.

  4. The RunInstances is a write-only event and it matches your event selector. The trail logs the event.

  5. The GetConsoleOutput is a read-only event that doesn't match your event selector. The trail doesn't log the event.

The PutEventSelectors operation must be called from the region in which the trail was created; otherwise, an InvalidHomeRegionException exception is thrown.

You can configure up to five event selectors for each trail. For more information, see Logging data and management events for trails and Quotas in CloudTrail in the CloudTrail User Guide.

You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors to a trail, any existing EventSelectors are overwritten. For more information about advanced event selectors, see Logging data events for trails in the CloudTrail User Guide.

", + "documentation":"

Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event selectors to specify management and data event settings for your trail. By default, trails created without specific event selectors are configured to log all read and write management events, and no data events.

When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event.

Example

  1. You create an event selector for a trail and specify that you want write-only events.

  2. The EC2 GetConsoleOutput and RunInstances API operations occur in your account.

  3. CloudTrail evaluates whether the events match your event selectors.

  4. The RunInstances is a write-only event and it matches your event selector. The trail logs the event.

  5. The GetConsoleOutput is a read-only event that doesn't match your event selector. The trail doesn't log the event.

The PutEventSelectors operation must be called from the region in which the trail was created; otherwise, an InvalidHomeRegionException exception is thrown.

You can configure up to five event selectors for each trail. For more information, see Logging management events for trails , Logging data events for trails , and Quotas in CloudTrail in the CloudTrail User Guide.

You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors to a trail, any existing EventSelectors are overwritten. For more information about advanced event selectors, see Logging data events for trails in the CloudTrail User Guide.

", "idempotent":true }, "PutInsightSelectors":{ @@ -465,11 +593,37 @@ {"shape":"KmsException"}, {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"NotOrganizationMasterAccountException"} + {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Lets you enable Insights event logging by specifying the Insights selectors that you want to enable on an existing trail. You also use PutInsightSelectors to turn off Insights event logging, by passing an empty list of insight types. The valid Insights event types in this release are ApiErrorRateInsight and ApiCallRateInsight.

", "idempotent":true }, + "RegisterOrganizationDelegatedAdmin":{ + "name":"RegisterOrganizationDelegatedAdmin", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterOrganizationDelegatedAdminRequest"}, + "output":{"shape":"RegisterOrganizationDelegatedAdminResponse"}, + "errors":[ + {"shape":"AccountRegisteredException"}, + {"shape":"AccountNotFoundException"}, + {"shape":"InsufficientDependencyServiceAccessPermissionException"}, + {"shape":"InvalidParameterException"}, + {"shape":"CannotDelegateManagementAccountException"}, + {"shape":"CloudTrailAccessNotEnabledException"}, + {"shape":"DelegatedAdminAccountLimitExceededException"}, + {"shape":"NotOrganizationManagementAccountException"}, + {"shape":"OrganizationNotInAllFeaturesModeException"}, + {"shape":"OrganizationsNotInUseException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"OperationNotPermittedException"} + ], + "documentation":"

Registers an organization’s member account as the CloudTrail delegated administrator.

", + "idempotent":true + }, "RemoveTags":{ "name":"RemoveTags", "http":{ @@ -488,7 +642,8 @@ {"shape":"EventDataStoreNotFoundException"}, {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, - {"shape":"NotOrganizationMasterAccountException"} + {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"} ], "documentation":"

Removes the specified tags from a trail or event data store.

", "idempotent":true @@ -513,10 +668,36 @@ {"shape":"InsufficientDependencyServiceAccessPermissionException"}, {"shape":"OrganizationsNotInUseException"}, {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"OrganizationNotInAllFeaturesModeException"} ], "documentation":"

Restores a deleted event data store specified by EventDataStore, which accepts an event data store ARN. You can only restore a deleted event data store within the seven-day wait period after deletion. Restoring an event data store can take several minutes, depending on the size of the event data store.

" }, + "StartImport":{ + "name":"StartImport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartImportRequest"}, + "output":{"shape":"StartImportResponse"}, + "errors":[ + {"shape":"AccountHasOngoingImportException"}, + {"shape":"EventDataStoreARNInvalidException"}, + {"shape":"EventDataStoreNotFoundException"}, + {"shape":"InvalidEventDataStoreStatusException"}, + {"shape":"InvalidEventDataStoreCategoryException"}, + {"shape":"InactiveEventDataStoreException"}, + {"shape":"InvalidImportSourceException"}, + {"shape":"ImportNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"} + ], + "documentation":"

Starts an import of logged trail events from a source S3 bucket to a destination event data store. By default, CloudTrail only imports events contained in the S3 bucket's CloudTrail prefix and the prefixes inside the CloudTrail prefix, and does not check prefixes for other Amazon Web Services services. If you want to import CloudTrail events contained in another prefix, you must include the prefix in the S3LocationUri. For more considerations about importing trail events, see Considerations.

When you start a new import, the Destinations and ImportSource parameters are required. Before starting a new import, disable any access control lists (ACLs) attached to the source S3 bucket. For more information about disabling ACLs, see Controlling ownership of objects and disabling ACLs for your bucket.

When you retry an import, the ImportID parameter is required.

" + }, "StartLogging":{ "name":"StartLogging", "http":{ @@ -532,6 +713,7 @@ {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"InsufficientDependencyServiceAccessPermissionException"} ], "documentation":"

Starts the recording of Amazon Web Services API calls and log file delivery for a trail. For a trail that is enabled in all regions, this operation must be called from the region in which the trail was created. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions.

", @@ -552,11 +734,33 @@ {"shape":"InvalidParameterException"}, {"shape":"InvalidQueryStatementException"}, {"shape":"MaxConcurrentQueriesException"}, + {"shape":"InsufficientEncryptionPolicyException"}, + {"shape":"InvalidS3PrefixException"}, + {"shape":"InvalidS3BucketNameException"}, + {"shape":"InsufficientS3BucketPolicyException"}, + {"shape":"S3BucketDoesNotExistException"}, + {"shape":"OperationNotPermittedException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"NoManagementAccountSLRExistsException"} + ], + "documentation":"

Starts a CloudTrail Lake query. The required QueryStatement parameter provides your SQL query, enclosed in single quotation marks. Use the optional DeliveryS3Uri parameter to deliver the query results to an S3 bucket.

", + "idempotent":true + }, + "StopImport":{ + "name":"StopImport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopImportRequest"}, + "output":{"shape":"StopImportResponse"}, + "errors":[ + {"shape":"ImportNotFoundException"}, + {"shape":"InvalidParameterException"}, {"shape":"OperationNotPermittedException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Starts a CloudTrail Lake query. The required QueryStatement parameter provides your SQL query, enclosed in single quotation marks.

", - "idempotent":true + "documentation":"

Stops a specified import.

" }, "StopLogging":{ "name":"StopLogging", @@ -573,6 +777,7 @@ {"shape":"UnsupportedOperationException"}, {"shape":"OperationNotPermittedException"}, {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"InsufficientDependencyServiceAccessPermissionException"} ], "documentation":"

Suspends the recording of Amazon Web Services API calls and log file delivery for the specified trail. Under most circumstances, there is no need to use this action. You can update a trail without stopping it first. This action is the only way to stop recording. For a trail enabled in all regions, this operation must be called from the region in which the trail was created, or an InvalidHomeRegionException will occur. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail enabled in all regions.

", @@ -589,17 +794,23 @@ "errors":[ {"shape":"EventDataStoreARNInvalidException"}, {"shape":"EventDataStoreNotFoundException"}, + {"shape":"EventDataStoreHasOngoingImportException"}, {"shape":"InactiveEventDataStoreException"}, {"shape":"InvalidParameterException"}, {"shape":"OperationNotPermittedException"}, {"shape":"UnsupportedOperationException"}, + {"shape":"InsufficientEncryptionPolicyException"}, + {"shape":"InvalidKmsKeyIdException"}, + {"shape":"KmsKeyNotFoundException"}, + {"shape":"KmsException"}, {"shape":"CloudTrailAccessNotEnabledException"}, {"shape":"InsufficientDependencyServiceAccessPermissionException"}, {"shape":"OrganizationsNotInUseException"}, {"shape":"NotOrganizationMasterAccountException"}, + {"shape":"NoManagementAccountSLRExistsException"}, {"shape":"OrganizationNotInAllFeaturesModeException"} ], - "documentation":"

Updates an event data store. The required EventDataStore value is an ARN or the ID portion of the ARN. Other parameters are optional, but at least one optional parameter must be specified, or CloudTrail throws an error. RetentionPeriod is in days, and valid values are integers between 90 and 2555. By default, TerminationProtection is enabled. AdvancedEventSelectors includes or excludes management and data events in your event data store; for more information about AdvancedEventSelectors, see PutEventSelectorsRequest$AdvancedEventSelectors.

", + "documentation":"

Updates an event data store. The required EventDataStore value is an ARN or the ID portion of the ARN. Other parameters are optional, but at least one optional parameter must be specified, or CloudTrail throws an error. RetentionPeriod is in days, and valid values are integers between 90 and 2557. By default, TerminationProtection is enabled. AdvancedEventSelectors includes or excludes management and data events in your event data store; for more information about AdvancedEventSelectors, see PutEventSelectorsRequest$AdvancedEventSelectors.

", "idempotent":true }, "UpdateTrail":{ @@ -638,13 +849,49 @@ {"shape":"OrganizationsNotInUseException"}, {"shape":"NotOrganizationMasterAccountException"}, {"shape":"OrganizationNotInAllFeaturesModeException"}, - {"shape":"CloudTrailInvalidClientTokenIdException"} + {"shape":"NoManagementAccountSLRExistsException"}, + {"shape":"CloudTrailInvalidClientTokenIdException"}, + {"shape":"InvalidParameterException"} ], "documentation":"

Updates trail settings that control what events you are logging, and how to handle log files. Changes to a trail do not require stopping the CloudTrail service. Use this action to designate an existing bucket for log delivery. If the existing bucket has previously been a target for CloudTrail log files, an IAM policy exists for the bucket. UpdateTrail must be called from the region in which the trail was created; otherwise, an InvalidHomeRegionException is thrown.

", "idempotent":true } }, "shapes":{ + "AccountHasOngoingImportException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when you start a new import and a previous import is still in progress.

", + "exception":true + }, + "AccountId":{ + "type":"string", + "max":16, + "min":12, + "pattern":"\\d+" + }, + "AccountNotFoundException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when when the specified account is not found or not part of an organization.

", + "exception":true + }, + "AccountNotRegisteredException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when the specified account is not registered as the CloudTrail delegated administrator.

", + "exception":true + }, + "AccountRegisteredException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when the account is already registered as the CloudTrail delegated administrator.

", + "exception":true + }, "AddTagsRequest":{ "type":"structure", "required":[ @@ -694,7 +941,7 @@ "members":{ "Field":{ "shape":"SelectorField", - "documentation":"

A field in an event record on which to filter events to be logged. Supported fields include readOnly, eventCategory, eventSource (for management events), eventName, resources.type, and resources.ARN.

  • readOnly - Optional. Can be set to Equals a value of true or false. If you do not add this field, CloudTrail logs both both read and write events. A value of true logs only read events. A value of false logs only write events.

  • eventSource - For filtering management events only. This can be set only to NotEquals kms.amazonaws.com.

  • eventName - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as PutBucket or GetSnapshotBlock. You can have multiple values for this field, separated by commas.

  • eventCategory - This is required. It must be set to Equals, and the value must be Management or Data.

  • resources.type - This field is required. resources.type can only use the Equals operator, and the value can be one of the following:

    • AWS::S3::Object

    • AWS::Lambda::Function

    • AWS::DynamoDB::Table

    • AWS::S3Outposts::Object

    • AWS::ManagedBlockchain::Node

    • AWS::S3ObjectLambda::AccessPoint

    • AWS::EC2::Snapshot

    • AWS::S3::AccessPoint

    • AWS::DynamoDB::Stream

    • AWS::Glue::Table

    You can have only one resources.type field per selector. To log data events on more than one resource type, add another selector.

  • resources.ARN - You can use any operator with resources.ARN, but if you use Equals or NotEquals, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals AWS::S3::Object, the ARN must be in one of the following formats. To log all data events for all objects in a specific S3 bucket, use the StartsWith operator, and include only the bucket ARN as the matching value.

    The trailing slash is intentional; do not exclude it. Replace the text between less than and greater than symbols (<>) with resource-specific information.

    • arn:<partition>:s3:::<bucket_name>/

    • arn:<partition>:s3:::<bucket_name>/<object_path>/

    When resources.type equals AWS::S3::AccessPoint, and the operator is set to Equals or NotEquals, the ARN must be in one of the following formats. To log events on all objects in an S3 access point, we recommend that you use only the access point ARN, don’t include the object path, and use the StartsWith or NotStartsWith operators.

    • arn:<partition>:s3:<region>:<account_ID>:accesspoint/<access_point_name>

    • arn:<partition>:s3:<region>:<account_ID>:accesspoint/<access_point_name>/object/<object_path>

    When resources.type equals AWS::Lambda::Function, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:lambda:<region>:<account_ID>:function:<function_name>

    When resources.type equals AWS::DynamoDB::Table, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:dynamodb:<region>:<account_ID>:table/<table_name>

    When resources.type equals AWS::S3Outposts::Object, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:s3-outposts:<region>:<account_ID>:<object_path>

    When resources.type equals AWS::ManagedBlockchain::Node, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:managedblockchain:<region>:<account_ID>:nodes/<node_ID>

    When resources.type equals AWS::S3ObjectLambda::AccessPoint, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:s3-object-lambda:<region>:<account_ID>:accesspoint/<access_point_name>

    When resources.type equals AWS::EC2::Snapshot, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:ec2:<region>::snapshot/<snapshot_ID>

    When resources.type equals AWS::DynamoDB::Stream, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:dynamodb:<region>:<account_ID>:table/<table_name>/stream/<date_time>

    When resources.type equals AWS::Glue::Table, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:glue:<region>:<account_ID>:table/<database_name>/<table_name>

" + "documentation":"

A field in an event record on which to filter events to be logged. Supported fields include readOnly, eventCategory, eventSource (for management events), eventName, resources.type, and resources.ARN.

  • readOnly - Optional. Can be set to Equals a value of true or false. If you do not add this field, CloudTrail logs both read and write events. A value of true logs only read events. A value of false logs only write events.

  • eventSource - For filtering management events only. This can be set only to NotEquals kms.amazonaws.com.

  • eventName - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as PutBucket or GetSnapshotBlock. You can have multiple values for this field, separated by commas.

  • eventCategory - This is required. It must be set to Equals, and the value must be Management or Data.

  • resources.type - This field is required. resources.type can only use the Equals operator, and the value can be one of the following:

    • AWS::S3::Object

    • AWS::Lambda::Function

    • AWS::DynamoDB::Table

    • AWS::S3Outposts::Object

    • AWS::ManagedBlockchain::Node

    • AWS::S3ObjectLambda::AccessPoint

    • AWS::EC2::Snapshot

    • AWS::S3::AccessPoint

    • AWS::DynamoDB::Stream

    • AWS::Glue::Table

    You can have only one resources.type field per selector. To log data events on more than one resource type, add another selector.

  • resources.ARN - You can use any operator with resources.ARN, but if you use Equals or NotEquals, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals AWS::S3::Object, the ARN must be in one of the following formats. To log all data events for all objects in a specific S3 bucket, use the StartsWith operator, and include only the bucket ARN as the matching value.

    The trailing slash is intentional; do not exclude it. Replace the text between less than and greater than symbols (<>) with resource-specific information.

    • arn:<partition>:s3:::<bucket_name>/

    • arn:<partition>:s3:::<bucket_name>/<object_path>/

    When resources.type equals AWS::S3::AccessPoint, and the operator is set to Equals or NotEquals, the ARN must be in one of the following formats. To log events on all objects in an S3 access point, we recommend that you use only the access point ARN, don’t include the object path, and use the StartsWith or NotStartsWith operators.

    • arn:<partition>:s3:<region>:<account_ID>:accesspoint/<access_point_name>

    • arn:<partition>:s3:<region>:<account_ID>:accesspoint/<access_point_name>/object/<object_path>

    When resources.type equals AWS::Lambda::Function, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:lambda:<region>:<account_ID>:function:<function_name>

    When resources.type equals AWS::DynamoDB::Table, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:dynamodb:<region>:<account_ID>:table/<table_name>

    When resources.type equals AWS::S3Outposts::Object, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:s3-outposts:<region>:<account_ID>:<object_path>

    When resources.type equals AWS::ManagedBlockchain::Node, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:managedblockchain:<region>:<account_ID>:nodes/<node_ID>

    When resources.type equals AWS::S3ObjectLambda::AccessPoint, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:s3-object-lambda:<region>:<account_ID>:accesspoint/<access_point_name>

    When resources.type equals AWS::EC2::Snapshot, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:ec2:<region>::snapshot/<snapshot_ID>

    When resources.type equals AWS::DynamoDB::Stream, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:dynamodb:<region>:<account_ID>:table/<table_name>/stream/<date_time>

    When resources.type equals AWS::Glue::Table, and the operator is set to Equals or NotEquals, the ARN must be in the following format:

    • arn:<partition>:glue:<region>:<account_ID>:table/<database_name>/<table_name>

" }, "Equals":{ "shape":"Operator", @@ -732,14 +979,13 @@ "ByteBuffer":{"type":"blob"}, "CancelQueryRequest":{ "type":"structure", - "required":[ - "EventDataStore", - "QueryId" - ], + "required":["QueryId"], "members":{ "EventDataStore":{ "shape":"EventDataStoreArn", - "documentation":"

The ARN (or the ID suffix of the ARN) of an event data store on which the specified query is running.

" + "documentation":"

The ARN (or the ID suffix of the ARN) of an event data store on which the specified query is running.

", + "deprecated":true, + "deprecatedMessage":"EventDataStore is no longer required by CancelQueryRequest" }, "QueryId":{ "shape":"UUID", @@ -764,6 +1010,57 @@ } } }, + "CannotDelegateManagementAccountException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when the management account of an organization is registered as the CloudTrail delegated administrator.

", + "exception":true + }, + "Channel":{ + "type":"structure", + "members":{ + "ChannelArn":{ + "shape":"ChannelArn", + "documentation":"

The Amazon Resource Name (ARN) of a channel.

" + }, + "Name":{ + "shape":"ChannelName", + "documentation":"

The name of the CloudTrail channel. For service-linked channels, the name is aws-service-channel/service-name/custom-suffix where service-name represents the name of the Amazon Web Services service that created the channel and custom-suffix represents the suffix created by the Amazon Web Services service.

" + } + }, + "documentation":"

Contains information about a returned CloudTrail channel.

" + }, + "ChannelARNInvalidException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when the specified value of ChannelARN is not valid.

", + "exception":true + }, + "ChannelArn":{ + "type":"string", + "max":256, + "min":3, + "pattern":"^[a-zA-Z0-9._/\\-:]+$" + }, + "ChannelName":{ + "type":"string", + "max":128, + "min":3, + "pattern":"^[a-zA-Z0-9._\\-]+$" + }, + "ChannelNotFoundException":{ + "type":"structure", + "members":{ + }, + "documentation":"

The specified channel was not found.

", + "exception":true + }, + "Channels":{ + "type":"list", + "member":{"shape":"Channel"} + }, "CloudTrailARNInvalidException":{ "type":"structure", "members":{ @@ -821,13 +1118,17 @@ }, "RetentionPeriod":{ "shape":"RetentionPeriod", - "documentation":"

The retention period of the event data store, in days. You can set a retention period of up to 2555 days, the equivalent of seven years.

" + "documentation":"

The retention period of the event data store, in days. You can set a retention period of up to 2557 days, the equivalent of seven years.

" }, "TerminationProtectionEnabled":{ "shape":"TerminationProtectionEnabled", "documentation":"

Specifies whether termination protection is enabled for the event data store. If termination protection is enabled, you cannot delete the event data store until termination protection is disabled.

" }, - "TagsList":{"shape":"TagsList"} + "TagsList":{"shape":"TagsList"}, + "KmsKeyId":{ + "shape":"EventDataStoreKmsKeyId", + "documentation":"

Specifies the KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.

Disabling or deleting the KMS key, or removing CloudTrail permissions on the key, prevents CloudTrail from logging events to the event data store, and prevents users from querying the data in the event data store that was encrypted with the key. After you associate an event data store with a KMS key, the KMS key cannot be removed or changed. Before you disable or delete a KMS key that you are using with an event data store, delete or back up your event data store.

CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

Examples:

  • alias/MyAliasName

  • arn:aws:kms:us-east-2:123456789012:alias/MyAliasName

  • arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

  • 12345678-1234-1234-1234-123456789012

" + } } }, "CreateEventDataStoreResponse":{ @@ -873,6 +1174,10 @@ "UpdatedTimestamp":{ "shape":"Date", "documentation":"

The timestamp that shows when an event data store was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp.

" + }, + "KmsKeyId":{ + "shape":"EventDataStoreKmsKeyId", + "documentation":"

Specifies the KMS key ID that encrypts the events delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the following format.

arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

" } } }, @@ -921,7 +1226,7 @@ }, "KmsKeyId":{ "shape":"String", - "documentation":"

Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by \"alias/\", a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.

CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

Examples:

  • alias/MyAliasName

  • arn:aws:kms:us-east-2:123456789012:alias/MyAliasName

  • arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

  • 12345678-1234-1234-1234-123456789012

" + "documentation":"

Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.

CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

Examples:

  • alias/MyAliasName

  • arn:aws:kms:us-east-2:123456789012:alias/MyAliasName

  • arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

  • 12345678-1234-1234-1234-123456789012

" }, "IsOrganizationTrail":{ "shape":"Boolean", @@ -981,7 +1286,7 @@ }, "KmsKeyId":{ "shape":"String", - "documentation":"

Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the following format.

arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

" + "documentation":"

Specifies the KMS key ID that encrypts the events delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the following format.

arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

" }, "IsOrganizationTrail":{ "shape":"Boolean", @@ -995,11 +1300,11 @@ "members":{ "Type":{ "shape":"String", - "documentation":"

The resource type in which you want to log data events. You can specify the following basic event selector resource types:

  • AWS::S3::Object

  • AWS::Lambda::Function

  • AWS::DynamoDB::Table

The following resource types are also availble through advanced event selectors. Basic event selector resource types are valid in advanced event selectors, but advanced event selector resource types are not valid in basic event selectors. For more information, see AdvancedFieldSelector$Field.

  • AWS::S3Outposts::Object

  • AWS::ManagedBlockchain::Node

  • AWS::S3ObjectLambda::AccessPoint

  • AWS::EC2::Snapshot

  • AWS::S3::AccessPoint

  • AWS::DynamoDB::Stream

  • AWS::Glue::Table

" + "documentation":"

The resource type in which you want to log data events. You can specify the following basic event selector resource types:

  • AWS::S3::Object

  • AWS::Lambda::Function

  • AWS::DynamoDB::Table

The following resource types are also available through advanced event selectors. Basic event selector resource types are valid in advanced event selectors, but advanced event selector resource types are not valid in basic event selectors. For more information, see AdvancedFieldSelector$Field.

  • AWS::S3Outposts::Object

  • AWS::ManagedBlockchain::Node

  • AWS::S3ObjectLambda::AccessPoint

  • AWS::EC2::Snapshot

  • AWS::S3::AccessPoint

  • AWS::DynamoDB::Stream

  • AWS::Glue::Table

" }, "Values":{ "shape":"DataResourceValues", - "documentation":"

An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.

  • To log data events for all objects in all S3 buckets in your Amazon Web Services account, specify the prefix as arn:aws:s3:::.

    This also enables logging of data event activity performed by any user or role in your Amazon Web Services account, even if that activity is performed on a bucket that belongs to another Amazon Web Services account.

  • To log data events for all objects in an S3 bucket, specify the bucket and an empty object prefix such as arn:aws:s3:::bucket-1/. The trail logs data events for all objects in this S3 bucket.

  • To log data events for specific objects, specify the S3 bucket and object prefix such as arn:aws:s3:::bucket-1/example-images. The trail logs data events for objects in this S3 bucket that match the prefix.

  • To log data events for all Lambda functions in your Amazon Web Services account, specify the prefix as arn:aws:lambda.

    This also enables logging of Invoke activity performed by any user or role in your Amazon Web Services account, even if that activity is performed on a function that belongs to another Amazon Web Services account.

  • To log data events for a specific Lambda function, specify the function ARN.

    Lambda function ARNs are exact. For example, if you specify a function ARN arn:aws:lambda:us-west-2:111111111111:function:helloworld, data events will only be logged for arn:aws:lambda:us-west-2:111111111111:function:helloworld. They will not be logged for arn:aws:lambda:us-west-2:111111111111:function:helloworld2.

  • To log data events for all DynamoDB tables in your Amazon Web Services account, specify the prefix as arn:aws:dynamodb.

" + "documentation":"

An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.

  • To log data events for all objects in all S3 buckets in your Amazon Web Services account, specify the prefix as arn:aws:s3.

    This also enables logging of data event activity performed by any user or role in your Amazon Web Services account, even if that activity is performed on a bucket that belongs to another Amazon Web Services account.

  • To log data events for all objects in an S3 bucket, specify the bucket and an empty object prefix such as arn:aws:s3:::bucket-1/. The trail logs data events for all objects in this S3 bucket.

  • To log data events for specific objects, specify the S3 bucket and object prefix such as arn:aws:s3:::bucket-1/example-images. The trail logs data events for objects in this S3 bucket that match the prefix.

  • To log data events for all Lambda functions in your Amazon Web Services account, specify the prefix as arn:aws:lambda.

    This also enables logging of Invoke activity performed by any user or role in your Amazon Web Services account, even if that activity is performed on a function that belongs to another Amazon Web Services account.

  • To log data events for a specific Lambda function, specify the function ARN.

    Lambda function ARNs are exact. For example, if you specify a function ARN arn:aws:lambda:us-west-2:111111111111:function:helloworld, data events will only be logged for arn:aws:lambda:us-west-2:111111111111:function:helloworld. They will not be logged for arn:aws:lambda:us-west-2:111111111111:function:helloworld2.

  • To log data events for all DynamoDB tables in your Amazon Web Services account, specify the prefix as arn:aws:dynamodb.

" } }, "documentation":"

The Amazon S3 buckets, Lambda functions, or Amazon DynamoDB tables that you specify in your event selectors for your trail to log data events. Data events provide information about the resource operations performed on or within a resource itself. These are also known as data plane operations. You can specify up to 250 data resources for a trail.

The total number of allowed data resources is 250. This number can be distributed between 1 and 5 event selectors, but the total cannot exceed 250 across all selectors.

If you are using advanced event selectors, the maximum total number of values for all conditions, across all advanced event selectors for the trail, is 500.

The following example demonstrates how logging works when you configure logging of all data events for an S3 bucket named bucket-1. In this example, the CloudTrail user specified an empty prefix, and the option to log both Read and Write data events.

  1. A user uploads an image file to bucket-1.

  2. The PutObject API operation is an Amazon S3 object-level API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified an S3 bucket with an empty prefix, events that occur on any object in that bucket are logged. The trail processes and logs the event.

  3. A user uploads an object to an Amazon S3 bucket named arn:aws:s3:::bucket-2.

  4. The PutObject API operation occurred for an object in an S3 bucket that the CloudTrail user didn't specify for the trail. The trail doesn’t log the event.

The following example demonstrates how logging works when you configure logging of Lambda data events for a Lambda function named MyLambdaFunction, but not for all Lambda functions.

  1. A user runs a script that includes a call to the MyLambdaFunction function and the MyOtherLambdaFunction function.

  2. The Invoke API operation on MyLambdaFunction is an Lambda API. It is recorded as a data event in CloudTrail. Because the CloudTrail user specified logging data events for MyLambdaFunction, any invocations of that function are logged. The trail processes and logs the event.

  3. The Invoke API operation on MyOtherLambdaFunction is an Lambda API. Because the CloudTrail user did not specify logging data events for all Lambda functions, the Invoke operation for MyOtherLambdaFunction does not match the function specified for the trail. The trail doesn’t log the event.

" @@ -1013,6 +1318,13 @@ "member":{"shape":"DataResource"} }, "Date":{"type":"timestamp"}, + "DelegatedAdminAccountLimitExceededException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when the maximum number of CloudTrail delegated administrators is reached.

", + "exception":true + }, "DeleteEventDataStoreRequest":{ "type":"structure", "required":["EventDataStore"], @@ -1045,16 +1357,51 @@ }, "documentation":"

Returns the objects or data listed below if successful. Otherwise, returns an error.

" }, + "DeliveryS3Uri":{ + "type":"string", + "max":1024, + "pattern":"s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?" + }, + "DeliveryStatus":{ + "type":"string", + "enum":[ + "SUCCESS", + "FAILED", + "FAILED_SIGNING_FILE", + "PENDING", + "RESOURCE_NOT_FOUND", + "ACCESS_DENIED", + "ACCESS_DENIED_SIGNING_FILE", + "CANCELLED", + "UNKNOWN" + ] + }, + "DeregisterOrganizationDelegatedAdminRequest":{ + "type":"structure", + "required":["DelegatedAdminAccountId"], + "members":{ + "DelegatedAdminAccountId":{ + "shape":"AccountId", + "documentation":"

A delegated administrator account ID. This is a member account in an organization that is currently designated as a delegated administrator.

" + } + }, + "documentation":"

Removes CloudTrail delegated administrator permissions from a specified member account in an organization that is currently designated as a delegated administrator.

" + }, + "DeregisterOrganizationDelegatedAdminResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Returns the following response if successful. Otherwise, returns an error.

" + }, "DescribeQueryRequest":{ "type":"structure", - "required":[ - "EventDataStore", - "QueryId" - ], + "required":["QueryId"], "members":{ "EventDataStore":{ "shape":"EventDataStoreArn", - "documentation":"

The ARN (or the ID suffix of the ARN) of an event data store on which the specified query was run.

" + "documentation":"

The ARN (or the ID suffix of the ARN) of an event data store on which the specified query was run.

", + "deprecated":true, + "deprecatedMessage":"EventDataStore is no longer required by DescribeQueryRequest" }, "QueryId":{ "shape":"UUID", @@ -1084,6 +1431,14 @@ "ErrorMessage":{ "shape":"ErrorMessage", "documentation":"

The error message returned if a query failed.

" + }, + "DeliveryS3Uri":{ + "shape":"DeliveryS3Uri", + "documentation":"

The URI for the S3 bucket where CloudTrail delivered query results, if applicable.

" + }, + "DeliveryStatus":{ + "shape":"DeliveryStatus", + "documentation":"

The delivery status.

" } } }, @@ -1111,6 +1466,37 @@ }, "documentation":"

Returns the objects or data listed below if successful. Otherwise, returns an error.

" }, + "Destination":{ + "type":"structure", + "required":[ + "Type", + "Location" + ], + "members":{ + "Type":{ + "shape":"DestinationType", + "documentation":"

The type of destination for events arriving from a channel. For service-linked channels, the value is AWS_SERVICE.

" + }, + "Location":{ + "shape":"Location", + "documentation":"

For service-linked channels, the value is the name of the Amazon Web Services service.

" + } + }, + "documentation":"

Contains information about the service where CloudTrail delivers events.

" + }, + "DestinationType":{ + "type":"string", + "enum":[ + "EVENT_DATA_STORE", + "AWS_SERVICE" + ] + }, + "Destinations":{ + "type":"list", + "member":{"shape":"Destination"}, + "max":200, + "min":1 + }, "ErrorMessage":{ "type":"string", "max":1000, @@ -1223,7 +1609,7 @@ "deprecatedMessage":"UpdatedTimestamp is no longer returned by ListEventDataStores" } }, - "documentation":"

A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 90 to 2555 days (about three months to up to seven years). To select events for an event data store, use advanced event selectors.

" + "documentation":"

A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 90 to 2557 days (about three months to up to seven years). To select events for an event data store, use advanced event selectors.

" }, "EventDataStoreARNInvalidException":{ "type":"structure", @@ -1245,6 +1631,19 @@ "min":3, "pattern":"^[a-zA-Z0-9._/\\-:]+$" }, + "EventDataStoreHasOngoingImportException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when you try to update or delete an event data store that currently has an import in progress.

", + "exception":true + }, + "EventDataStoreKmsKeyId":{ + "type":"string", + "max":350, + "min":1, + "pattern":"^[a-zA-Z0-9._/\\-:]+$" + }, "EventDataStoreMaxLimitExceededException":{ "type":"structure", "members":{ @@ -1293,11 +1692,11 @@ }, "IncludeManagementEvents":{ "shape":"Boolean", - "documentation":"

Specify if you want your event selector to include management events for your trail.

For more information, see Management Events in the CloudTrail User Guide.

By default, the value is true.

The first copy of management events is free. You are charged for additional copies of management events that you are logging on any subsequent trail in the same region. For more information about CloudTrail pricing, see CloudTrail Pricing.

" + "documentation":"

Specify if you want your event selector to include management events for your trail.

For more information, see Management Events in the CloudTrail User Guide.

By default, the value is true.

The first copy of management events is free. You are charged for additional copies of management events that you are logging on any subsequent trail in the same region. For more information about CloudTrail pricing, see CloudTrail Pricing.

" }, "DataResources":{ "shape":"DataResources", - "documentation":"

CloudTrail supports data event logging for Amazon S3 objects, Lambda functions, and Amazon DynamoDB tables with basic event selectors. You can specify up to 250 resources for an individual event selector, but the total number of data resources cannot exceed 250 across all event selectors in a trail. This limit does not apply if you configure resource logging for all data events.

For more information, see Data Events and Limits in CloudTrail in the CloudTrail User Guide.

" + "documentation":"

CloudTrail supports data event logging for Amazon S3 objects, Lambda functions, and Amazon DynamoDB tables with basic event selectors. You can specify up to 250 resources for an individual event selector, but the total number of data resources cannot exceed 250 across all event selectors in a trail. This limit does not apply if you configure resource logging for all data events.

For more information, see Data Events and Limits in CloudTrail in the CloudTrail User Guide.

" }, "ExcludeManagementEventSources":{ "shape":"ExcludeManagementEventSources", @@ -1318,6 +1717,41 @@ "type":"list", "member":{"shape":"String"} }, + "GetChannelRequest":{ + "type":"structure", + "required":["Channel"], + "members":{ + "Channel":{ + "shape":"ChannelArn", + "documentation":"

The ARN or UUID of a channel.

" + } + } + }, + "GetChannelResponse":{ + "type":"structure", + "members":{ + "ChannelArn":{ + "shape":"ChannelArn", + "documentation":"

The ARN of an channel returned by a GetChannel request.

" + }, + "Name":{ + "shape":"ChannelName", + "documentation":"

The name of the CloudTrail channel. For service-linked channels, the value is aws-service-channel/service-name/custom-suffix where service-name represents the name of the Amazon Web Services service that created the channel and custom-suffix represents the suffix generated by the Amazon Web Services service.

" + }, + "Source":{ + "shape":"Source", + "documentation":"

The event source for the CloudTrail channel.

" + }, + "SourceConfig":{ + "shape":"SourceConfig", + "documentation":"

Provides information about the advanced event selectors configured for the channel, and whether the channel applies to all regions or a single region.

" + }, + "Destinations":{ + "shape":"Destinations", + "documentation":"

The Amazon Web Services service that created the service-linked channel.

" + } + } + }, "GetEventDataStoreRequest":{ "type":"structure", "required":["EventDataStore"], @@ -1370,6 +1804,10 @@ "UpdatedTimestamp":{ "shape":"Date", "documentation":"

Shows the time that an event data store was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp.

" + }, + "KmsKeyId":{ + "shape":"EventDataStoreKmsKeyId", + "documentation":"

Specifies the KMS key ID that encrypts the events delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the following format.

arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

" } } }, @@ -1400,6 +1838,57 @@ } } }, + "GetImportRequest":{ + "type":"structure", + "required":["ImportId"], + "members":{ + "ImportId":{ + "shape":"UUID", + "documentation":"

The ID for the import.

" + } + } + }, + "GetImportResponse":{ + "type":"structure", + "members":{ + "ImportId":{ + "shape":"UUID", + "documentation":"

The ID of the import.

" + }, + "Destinations":{ + "shape":"ImportDestinations", + "documentation":"

The ARN of the destination event data store.

" + }, + "ImportSource":{ + "shape":"ImportSource", + "documentation":"

The source S3 bucket.

" + }, + "StartEventTime":{ + "shape":"Date", + "documentation":"

Used with EndEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

" + }, + "EndEventTime":{ + "shape":"Date", + "documentation":"

Used with StartEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

" + }, + "ImportStatus":{ + "shape":"ImportStatus", + "documentation":"

The status of the import.

" + }, + "CreatedTimestamp":{ + "shape":"Date", + "documentation":"

The timestamp of the import's creation.

" + }, + "UpdatedTimestamp":{ + "shape":"Date", + "documentation":"

The timestamp of when the import was updated.

" + }, + "ImportStatistics":{ + "shape":"ImportStatistics", + "documentation":"

Provides statistics for the import. CloudTrail does not update import statistics in real-time. Returned values for parameters such as EventsCompleted may be lower than the actual value, because CloudTrail updates statistics incrementally over the course of the import.

" + } + } + }, "GetInsightSelectorsRequest":{ "type":"structure", "required":["TrailName"], @@ -1425,14 +1914,13 @@ }, "GetQueryResultsRequest":{ "type":"structure", - "required":[ - "EventDataStore", - "QueryId" - ], + "required":["QueryId"], "members":{ "EventDataStore":{ "shape":"EventDataStoreArn", - "documentation":"

The ARN (or ID suffix of the ARN) of the event data store against which the query was run.

" + "documentation":"

The ARN (or ID suffix of the ARN) of the event data store against which the query was run.

", + "deprecated":true, + "deprecatedMessage":"EventDataStore is no longer required by GetQueryResultsRequest" }, "QueryId":{ "shape":"UUID", @@ -1574,6 +2062,134 @@ }, "documentation":"

Returns the objects or data listed below if successful. Otherwise, returns an error.

" }, + "ImportDestinations":{ + "type":"list", + "member":{"shape":"EventDataStoreArn"}, + "max":1, + "min":1 + }, + "ImportFailureList":{ + "type":"list", + "member":{"shape":"ImportFailureListItem"} + }, + "ImportFailureListItem":{ + "type":"structure", + "members":{ + "Location":{ + "shape":"String", + "documentation":"

The location of the failure in the S3 bucket.

" + }, + "Status":{ + "shape":"ImportFailureStatus", + "documentation":"

The status of the import.

" + }, + "ErrorType":{ + "shape":"String", + "documentation":"

The type of import error.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

Provides the reason the import failed.

" + }, + "LastUpdatedTime":{ + "shape":"Date", + "documentation":"

When the import was last updated.

" + } + }, + "documentation":"

Provides information about an import failure.

" + }, + "ImportFailureStatus":{ + "type":"string", + "enum":[ + "FAILED", + "RETRY", + "SUCCEEDED" + ] + }, + "ImportNotFoundException":{ + "type":"structure", + "members":{ + }, + "documentation":"

The specified import was not found.

", + "exception":true + }, + "ImportSource":{ + "type":"structure", + "required":["S3"], + "members":{ + "S3":{ + "shape":"S3ImportSource", + "documentation":"

The source S3 bucket.

" + } + }, + "documentation":"

The import source.

" + }, + "ImportStatistics":{ + "type":"structure", + "members":{ + "PrefixesFound":{ + "shape":"Long", + "documentation":"

The number of S3 prefixes found for the import.

" + }, + "PrefixesCompleted":{ + "shape":"Long", + "documentation":"

The number of S3 prefixes that completed import.

" + }, + "FilesCompleted":{ + "shape":"Long", + "documentation":"

The number of log files that completed import.

" + }, + "EventsCompleted":{ + "shape":"Long", + "documentation":"

The number of trail events imported into the event data store.

" + }, + "FailedEntries":{ + "shape":"Long", + "documentation":"

The number of failed entries.

" + } + }, + "documentation":"

Provides statistics for the specified ImportID. CloudTrail does not update import statistics in real-time. Returned values for parameters such as EventsCompleted may be lower than the actual value, because CloudTrail updates statistics incrementally over the course of the import.

" + }, + "ImportStatus":{ + "type":"string", + "enum":[ + "INITIALIZING", + "IN_PROGRESS", + "FAILED", + "STOPPED", + "COMPLETED" + ] + }, + "ImportsList":{ + "type":"list", + "member":{"shape":"ImportsListItem"} + }, + "ImportsListItem":{ + "type":"structure", + "members":{ + "ImportId":{ + "shape":"UUID", + "documentation":"

The ID of the import.

" + }, + "ImportStatus":{ + "shape":"ImportStatus", + "documentation":"

The status of the import.

" + }, + "Destinations":{ + "shape":"ImportDestinations", + "documentation":"

The ARN of the destination event data store.

" + }, + "CreatedTimestamp":{ + "shape":"Date", + "documentation":"

The timestamp of the import's creation.

" + }, + "UpdatedTimestamp":{ + "shape":"Date", + "documentation":"

The timestamp of the import's last update.

" + } + }, + "documentation":"

Contains information about an import that was returned by a lookup request.

" + }, "InactiveEventDataStoreException":{ "type":"structure", "members":{ @@ -1627,7 +2243,7 @@ "type":"structure", "members":{ }, - "documentation":"

This exception is thrown when the policy on the S3 bucket or KMS key is not sufficient.

", + "documentation":"

This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation.

", "exception":true }, "InsufficientS3BucketPolicyException":{ @@ -1673,6 +2289,13 @@ "documentation":"

Occurs if an event category that is not valid is specified as a value of EventCategory.

", "exception":true }, + "InvalidEventDataStoreCategoryException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when event categories of specified event data stores are not valid.

", + "exception":true + }, "InvalidEventDataStoreStatusException":{ "type":"structure", "members":{ @@ -1694,6 +2317,13 @@ "documentation":"

This exception is thrown when an operation is called on a trail from a region other than the region in which the trail was created.

", "exception":true }, + "InvalidImportSourceException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when the provided source S3 bucket is not valid for import.

", + "exception":true + }, "InvalidInsightSelectorsException":{ "type":"structure", "members":{ @@ -1810,7 +2440,7 @@ "type":"structure", "members":{ }, - "documentation":"

This exception is thrown when there is an issue with the specified KMS key and the trail can’t be updated.

", + "documentation":"

This exception is thrown when there is an issue with the specified KMS key and the trail or event data store can't be updated.

", "exception":true }, "KmsKeyDisabledException":{ @@ -1828,6 +2458,37 @@ "documentation":"

This exception is thrown when the KMS key does not exist, when the S3 bucket and the KMS key are not in the same region, or when the KMS key associated with the Amazon SNS topic either does not exist or is not in the same region.

", "exception":true }, + "ListChannelsMaxResultsCount":{ + "type":"integer", + "max":1000, + "min":1 + }, + "ListChannelsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListChannelsMaxResultsCount", + "documentation":"

The maximum number of CloudTrail channels to display on a single page.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.

" + } + } + }, + "ListChannelsResponse":{ + "type":"structure", + "members":{ + "Channels":{ + "shape":"Channels", + "documentation":"

The list of channels in the account.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

The token to use to get the next page of results after a previous API call.

" + } + } + }, "ListEventDataStoresMaxResultsCount":{ "type":"integer", "max":1000, @@ -1859,6 +2520,81 @@ } } }, + "ListImportFailuresMaxResultsCount":{ + "type":"integer", + "max":1000, + "min":1 + }, + "ListImportFailuresRequest":{ + "type":"structure", + "required":["ImportId"], + "members":{ + "ImportId":{ + "shape":"UUID", + "documentation":"

The ID of the import.

" + }, + "MaxResults":{ + "shape":"ListImportFailuresMaxResultsCount", + "documentation":"

The maximum number of failures to display on a single page.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A token you can use to get the next page of import failures.

" + } + } + }, + "ListImportFailuresResponse":{ + "type":"structure", + "members":{ + "Failures":{ + "shape":"ImportFailureList", + "documentation":"

Contains information about the import failures.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A token you can use to get the next page of results.

" + } + } + }, + "ListImportsMaxResultsCount":{ + "type":"integer", + "max":1000, + "min":1 + }, + "ListImportsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListImportsMaxResultsCount", + "documentation":"

The maximum number of imports to display on a single page.

" + }, + "Destination":{ + "shape":"EventDataStoreArn", + "documentation":"

The ARN of the destination event data store.

" + }, + "ImportStatus":{ + "shape":"ImportStatus", + "documentation":"

The status of the import.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A token you can use to get the next page of import results.

" + } + } + }, + "ListImportsResponse":{ + "type":"structure", + "members":{ + "Imports":{ + "shape":"ImportsList", + "documentation":"

The list of returned imports.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A token you can use to get the next page of import results.

" + } + } + }, "ListPublicKeysRequest":{ "type":"structure", "members":{ @@ -1973,7 +2709,7 @@ "members":{ "NextToken":{ "shape":"String", - "documentation":"

The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.

" + "documentation":"

The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.

" } } }, @@ -1990,6 +2726,12 @@ } } }, + "Location":{ + "type":"string", + "max":1024, + "min":3, + "pattern":"^[a-zA-Z0-9._/\\-:]+$" + }, "Long":{"type":"long"}, "LookupAttribute":{ "type":"structure", @@ -2051,7 +2793,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.

" + "documentation":"

The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.

" } }, "documentation":"

Contains a request for LookupEvents.

" @@ -2095,6 +2837,20 @@ "exception":true }, "NextToken":{"type":"string"}, + "NoManagementAccountSLRExistsException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when the management account does not have a service-linked role.

", + "exception":true + }, + "NotOrganizationManagementAccountException":{ + "type":"structure", + "members":{ + }, + "documentation":"

This exception is thrown when the account making the request is not the organization's management account.

", + "exception":true + }, "NotOrganizationMasterAccountException":{ "type":"structure", "members":{ @@ -2344,6 +3100,23 @@ "All" ] }, + "RegisterOrganizationDelegatedAdminRequest":{ + "type":"structure", + "required":["MemberAccountId"], + "members":{ + "MemberAccountId":{ + "shape":"AccountId", + "documentation":"

An organization member account ID that you want to designate as a delegated administrator.

" + } + }, + "documentation":"

Specifies an organization member account ID as a CloudTrail delegated administrator.

" + }, + "RegisterOrganizationDelegatedAdminResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Returns the following response if successful. Otherwise, returns an error.

" + }, "RemoveTagsRequest":{ "type":"structure", "required":[ @@ -2475,6 +3248,10 @@ "UpdatedTimestamp":{ "shape":"Date", "documentation":"

The timestamp that shows when an event data store was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp.

" + }, + "KmsKeyId":{ + "shape":"EventDataStoreKmsKeyId", + "documentation":"

Specifies the KMS key ID that encrypts the events delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the following format.

arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

" } } }, @@ -2490,6 +3267,29 @@ "documentation":"

This exception is thrown when the specified S3 bucket does not exist.

", "exception":true }, + "S3ImportSource":{ + "type":"structure", + "required":[ + "S3LocationUri", + "S3BucketRegion", + "S3BucketAccessRoleArn" + ], + "members":{ + "S3LocationUri":{ + "shape":"String", + "documentation":"

The URI for the source S3 bucket.

" + }, + "S3BucketRegion":{ + "shape":"String", + "documentation":"

The region associated with the source S3 bucket.

" + }, + "S3BucketAccessRoleArn":{ + "shape":"String", + "documentation":"

The IAM ARN role used to access the source S3 bucket.

" + } + }, + "documentation":"

The settings for the source S3 bucket.

" + }, "SelectorField":{ "type":"string", "max":1000, @@ -2502,6 +3302,88 @@ "min":0, "pattern":".*" }, + "Source":{ + "type":"string", + "max":256, + "min":1, + "pattern":".*" + }, + "SourceConfig":{ + "type":"structure", + "members":{ + "ApplyToAllRegions":{ + "shape":"Boolean", + "documentation":"

Specifies whether the channel applies to a single region or to all regions.

" + }, + "AdvancedEventSelectors":{ + "shape":"AdvancedEventSelectors", + "documentation":"

The advanced event selectors that are configured for the channel.

" + } + }, + "documentation":"

Contains configuration information about the channel.

" + }, + "StartImportRequest":{ + "type":"structure", + "members":{ + "Destinations":{ + "shape":"ImportDestinations", + "documentation":"

The ARN of the destination event data store. Use this parameter for a new import.

" + }, + "ImportSource":{ + "shape":"ImportSource", + "documentation":"

The source S3 bucket for the import. Use this parameter for a new import.

" + }, + "StartEventTime":{ + "shape":"Date", + "documentation":"

Use with EndEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period. When you specify a time range, CloudTrail checks the prefix and log file names to verify the names contain a date between the specified StartEventTime and EndEventTime before attempting to import events.

" + }, + "EndEventTime":{ + "shape":"Date", + "documentation":"

Use with StartEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period. When you specify a time range, CloudTrail checks the prefix and log file names to verify the names contain a date between the specified StartEventTime and EndEventTime before attempting to import events.

" + }, + "ImportId":{ + "shape":"UUID", + "documentation":"

The ID of the import. Use this parameter when you are retrying an import.

" + } + } + }, + "StartImportResponse":{ + "type":"structure", + "members":{ + "ImportId":{ + "shape":"UUID", + "documentation":"

The ID of the import.

" + }, + "Destinations":{ + "shape":"ImportDestinations", + "documentation":"

The ARN of the destination event data store.

" + }, + "ImportSource":{ + "shape":"ImportSource", + "documentation":"

The source S3 bucket for the import.

" + }, + "StartEventTime":{ + "shape":"Date", + "documentation":"

Used with EndEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

" + }, + "EndEventTime":{ + "shape":"Date", + "documentation":"

Used with StartEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

" + }, + "ImportStatus":{ + "shape":"ImportStatus", + "documentation":"

Shows the status of the import after a StartImport request. An import finishes with a status of COMPLETED if there were no failures, or FAILED if there were failures.

" + }, + "CreatedTimestamp":{ + "shape":"Date", + "documentation":"

The timestamp for the import's creation.

" + }, + "UpdatedTimestamp":{ + "shape":"Date", + "documentation":"

The timestamp of the import's last update, if applicable.

" + } + } + }, "StartLoggingRequest":{ "type":"structure", "required":["Name"], @@ -2526,6 +3408,10 @@ "QueryStatement":{ "shape":"QueryStatement", "documentation":"

The SQL code of your query.

" + }, + "DeliveryS3Uri":{ + "shape":"DeliveryS3Uri", + "documentation":"

The URI for the S3 bucket where CloudTrail delivers the query results.

" } } }, @@ -2538,6 +3424,57 @@ } } }, + "StopImportRequest":{ + "type":"structure", + "required":["ImportId"], + "members":{ + "ImportId":{ + "shape":"UUID", + "documentation":"

The ID of the import.

" + } + } + }, + "StopImportResponse":{ + "type":"structure", + "members":{ + "ImportId":{ + "shape":"UUID", + "documentation":"

The ID for the import.

" + }, + "ImportSource":{ + "shape":"ImportSource", + "documentation":"

The source S3 bucket for the import.

" + }, + "Destinations":{ + "shape":"ImportDestinations", + "documentation":"

The ARN of the destination event data store.

" + }, + "ImportStatus":{ + "shape":"ImportStatus", + "documentation":"

The status of the import.

" + }, + "CreatedTimestamp":{ + "shape":"Date", + "documentation":"

The timestamp of the import's creation.

" + }, + "UpdatedTimestamp":{ + "shape":"Date", + "documentation":"

The timestamp of the import's last update.

" + }, + "StartEventTime":{ + "shape":"Date", + "documentation":"

Used with EndEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

" + }, + "EndEventTime":{ + "shape":"Date", + "documentation":"

Used with StartEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

" + }, + "ImportStatistics":{ + "shape":"ImportStatistics", + "documentation":"

Returns information on the stopped import.

" + } + } + }, "StopLoggingRequest":{ "type":"structure", "required":["Name"], @@ -2744,7 +3681,7 @@ }, "AdvancedEventSelectors":{ "shape":"AdvancedEventSelectors", - "documentation":"

The advanced event selectors used to select events for the event data store.

" + "documentation":"

The advanced event selectors used to select events for the event data store. You can configure up to five advanced event selectors for each event data store.

" }, "MultiRegionEnabled":{ "shape":"Boolean", @@ -2761,6 +3698,10 @@ "TerminationProtectionEnabled":{ "shape":"TerminationProtectionEnabled", "documentation":"

Indicates that termination protection is enabled and the event data store cannot be automatically deleted.

" + }, + "KmsKeyId":{ + "shape":"EventDataStoreKmsKeyId", + "documentation":"

Specifies the KMS key ID to use to encrypt the events delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.

Disabling or deleting the KMS key, or removing CloudTrail permissions on the key, prevents CloudTrail from logging events to the event data store, and prevents users from querying the data in the event data store that was encrypted with the key. After you associate an event data store with a KMS key, the KMS key cannot be removed or changed. Before you disable or delete a KMS key that you are using with an event data store, delete or back up your event data store.

CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

Examples:

  • alias/MyAliasName

  • arn:aws:kms:us-east-2:123456789012:alias/MyAliasName

  • arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

  • 12345678-1234-1234-1234-123456789012

" } } }, @@ -2806,6 +3747,10 @@ "UpdatedTimestamp":{ "shape":"Date", "documentation":"

The timestamp that shows when the event data store was last updated. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp.

" + }, + "KmsKeyId":{ + "shape":"EventDataStoreKmsKeyId", + "documentation":"

Specifies the KMS key ID that encrypts the events delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the following format.

arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

" } } }, diff --git a/botocore/data/cloudwatch/2010-08-01/endpoint-rule-set-1.json b/botocore/data/cloudwatch/2010-08-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..5bfcb13c --- /dev/null +++ b/botocore/data/cloudwatch/2010-08-01/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://monitoring-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://monitoring.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://monitoring-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://monitoring.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://monitoring.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cloudwatch/2010-08-01/paginators-1.json b/botocore/data/cloudwatch/2010-08-01/paginators-1.json index cae11fb1..b386c2f6 100644 --- a/botocore/data/cloudwatch/2010-08-01/paginators-1.json +++ b/botocore/data/cloudwatch/2010-08-01/paginators-1.json @@ -23,7 +23,10 @@ "ListMetrics": { "input_token": "NextToken", "output_token": "NextToken", - "result_key": "Metrics" + "result_key": [ + "Metrics", + "OwningAccounts" + ] }, "GetMetricData": { "input_token": "NextToken", @@ -33,6 +36,12 @@ "MetricDataResults", "Messages" ] + }, + "DescribeAnomalyDetectors": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "AnomalyDetectors" } } } diff --git a/botocore/data/cloudwatch/2010-08-01/service-2.json b/botocore/data/cloudwatch/2010-08-01/service-2.json index d04762f2..aefbfdca 100644 --- a/botocore/data/cloudwatch/2010-08-01/service-2.json +++ b/botocore/data/cloudwatch/2010-08-01/service-2.json @@ -22,7 +22,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation.

In the event of an error, no alarms are deleted.

It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.

To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to False.

Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.

" + "documentation":"

Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation.

In the event of an error, no alarms are deleted.

It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.

To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to false.

Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.

" }, "DeleteAnomalyDetector":{ "name":"DeleteAnomalyDetector", @@ -42,7 +42,7 @@ {"shape":"MissingRequiredParameterException"}, {"shape":"InvalidParameterCombinationException"} ], - "documentation":"

Deletes the specified anomaly detection model from your account.

" + "documentation":"

Deletes the specified anomaly detection model from your account. For more information about how to delete an anomaly detection model, see Deleting an anomaly detection model in the CloudWatch User Guide.

" }, "DeleteDashboards":{ "name":"DeleteDashboards", @@ -351,6 +351,24 @@ ], "documentation":"

Returns a list of the dashboards for your account. If you include DashboardNamePrefix, only those dashboards with names starting with the prefix are listed. Otherwise, all dashboards in your account are listed.

ListDashboards returns up to 1000 results on one page. If there are more than 1000 dashboards, you can call ListDashboards again and include the value you received for NextToken in the first call, to receive the next 1000 results.

" }, + "ListManagedInsightRules":{ + "name":"ListManagedInsightRules", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListManagedInsightRulesInput"}, + "output":{ + "shape":"ListManagedInsightRulesOutput", + "resultWrapper":"ListManagedInsightRulesResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"InvalidNextToken"} + ], + "documentation":"

Returns a list that contains the number of managed Contributor Insights rules in your account.

" + }, "ListMetricStreams":{ "name":"ListMetricStreams", "http":{ @@ -385,7 +403,7 @@ {"shape":"InternalServiceFault"}, {"shape":"InvalidParameterValueException"} ], - "documentation":"

List the specified metrics. You can use the returned metrics with GetMetricData or GetMetricStatistics to obtain statistical data.

Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls.

After you create a metric, allow up to 15 minutes before the metric appears. You can see statistics about the metric sooner by using GetMetricData or GetMetricStatistics.

ListMetrics doesn't return information about metrics if those metrics haven't reported data in the past two weeks. To retrieve those metrics, use GetMetricData or GetMetricStatistics.

" + "documentation":"

List the specified metrics. You can use the returned metrics with GetMetricData or GetMetricStatistics to get statistical data.

Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls.

After you create a metric, allow up to 15 minutes for the metric to appear. To see metric statistics sooner, use GetMetricData or GetMetricStatistics.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view metrics from the linked source accounts. For more information, see CloudWatch cross-account observability.

ListMetrics doesn't return information about metrics if those metrics haven't reported data in the past two weeks. To retrieve those metrics, use GetMetricData or GetMetricStatistics.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -435,7 +453,7 @@ "errors":[ {"shape":"LimitExceededFault"} ], - "documentation":"

Creates or updates a composite alarm. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met.

The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms. The rule expression of a composite alarm can include as many as 100 underlying alarms. Any single alarm can be included in the rule expressions of as many as 150 composite alarms.

Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state.

Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics.

It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.

To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to False.

Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.

When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in INSUFFICIENT_DATA state.

When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.

To use this operation, you must be signed on with the cloudwatch:PutCompositeAlarm permission that is scoped to *. You can't create a composite alarms if your cloudwatch:PutCompositeAlarm permission has a narrower scope.

If you are an IAM user, you must have iam:CreateServiceLinkedRole to create a composite alarm that has Systems Manager OpsItem actions.

" + "documentation":"

Creates or updates a composite alarm. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met.

The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms. The rule expression of a composite alarm can include as many as 100 underlying alarms. Any single alarm can be included in the rule expressions of as many as 150 composite alarms.

Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state.

Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics.

It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete.

To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to false.

Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path.

When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in INSUFFICIENT_DATA state.

When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm.

To use this operation, you must be signed on with the cloudwatch:PutCompositeAlarm permission that is scoped to *. You can't create a composite alarms if your cloudwatch:PutCompositeAlarm permission has a narrower scope.

If you are an IAM user, you must have iam:CreateServiceLinkedRole to create a composite alarm that has Systems Manager OpsItem actions.

" }, "PutDashboard":{ "name":"PutDashboard", @@ -472,6 +490,23 @@ ], "documentation":"

Creates a Contributor Insights rule. Rules evaluate log events in a CloudWatch Logs log group, enabling you to find contributor data for the log events in that log group. For more information, see Using Contributor Insights to Analyze High-Cardinality Data.

If you create a rule, delete it, and then re-create it with the same name, historical data from the first time the rule was created might not be available.

" }, + "PutManagedInsightRules":{ + "name":"PutManagedInsightRules", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutManagedInsightRulesInput"}, + "output":{ + "shape":"PutManagedInsightRulesOutput", + "resultWrapper":"PutManagedInsightRulesResult" + }, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"MissingRequiredParameterException"} + ], + "documentation":"

Creates a managed Contributor Insights rule for a specified Amazon Web Services resource. When you enable a managed rule, you create a Contributor Insights rule that collects data from Amazon Web Services services. You cannot edit these rules with PutInsightRule. The rules can be enabled, disabled, and deleted using EnableInsightRules, DisableInsightRules, and DeleteInsightRules. If a previously created managed rule is currently disabled, a subsequent call to this API will re-enable it. Use ListManagedInsightRules to describe all available rules.

" + }, "PutMetricAlarm":{ "name":"PutMetricAlarm", "http":{ @@ -497,7 +532,7 @@ {"shape":"InvalidParameterCombinationException"}, {"shape":"InternalServiceFault"} ], - "documentation":"

Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics.

You can publish either individual data points in the Value field, or arrays of values and the number of times each value occurred during the period by using the Values and Counts fields in the MetricDatum structure. Using the Values and Counts method enables you to publish up to 150 values per metric with one PutMetricData request, and supports retrieving percentile statistics on this data.

Each PutMetricData request is limited to 40 KB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 20 different metrics.

Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

You can use up to 10 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

You specify the time stamp to be associated with each data point. You can specify time stamps that are as much as two weeks before the current date, and as much as 2 hours after the current day and time.

Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricData or GetMetricStatistics from the time they are submitted. Data points with time stamps between 3 and 24 hours ago can take as much as 2 hours to become available for for GetMetricData or GetMetricStatistics.

CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true:

  • The SampleCount value of the statistic set is 1 and Min, Max, and Sum are all equal.

  • The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount.

" + "documentation":"

Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics.

You can publish either individual data points in the Value field, or arrays of values and the number of times each value occurred during the period by using the Values and Counts fields in the MetricDatum structure. Using the Values and Counts method enables you to publish up to 150 values per metric with one PutMetricData request, and supports retrieving percentile statistics on this data.

Each PutMetricData request is limited to 1 MB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 1000 different metrics.

Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported.

You can use up to 30 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide.

You specify the time stamp to be associated with each data point. You can specify time stamps that are as much as two weeks before the current date, and as much as 2 hours after the current day and time.

Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricData or GetMetricStatistics from the time they are submitted. Data points with time stamps between 3 and 24 hours ago can take as much as 2 hours to become available for for GetMetricData or GetMetricStatistics.

CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true:

  • The SampleCount value of the statistic set is 1 and Min, Max, and Sum are all equal.

  • The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount.

" }, "PutMetricStream":{ "name":"PutMetricStream", @@ -517,7 +552,7 @@ {"shape":"MissingRequiredParameterException"}, {"shape":"InvalidParameterCombinationException"} ], - "documentation":"

Creates or updates a metric stream. Metric streams can automatically stream CloudWatch metrics to Amazon Web Services destinations including Amazon S3 and to many third-party solutions.

For more information, see Using Metric Streams.

To create a metric stream, you must be logged on to an account that has the iam:PassRole permission and either the CloudWatchFullAccess policy or the cloudwatch:PutMetricStream permission.

When you create or update a metric stream, you choose one of the following:

  • Stream metrics from all metric namespaces in the account.

  • Stream metrics from all metric namespaces in the account, except for the namespaces that you list in ExcludeFilters.

  • Stream metrics from only the metric namespaces that you list in IncludeFilters.

By default, a metric stream always sends the MAX, MIN, SUM, and SAMPLECOUNT statistics for each metric that is streamed. You can use the StatisticsConfigurations parameter to have the metric stream also send additional statistics in the stream. Streaming additional statistics incurs additional costs. For more information, see Amazon CloudWatch Pricing.

When you use PutMetricStream to create a new metric stream, the stream is created in the running state. If you use it to update an existing stream, the state of the stream is not changed.

" + "documentation":"

Creates or updates a metric stream. Metric streams can automatically stream CloudWatch metrics to Amazon Web Services destinations, including Amazon S3, and to many third-party solutions.

For more information, see Using Metric Streams.

To create a metric stream, you must be signed in to an account that has the iam:PassRole permission and either the CloudWatchFullAccess policy or the cloudwatch:PutMetricStream permission.

When you create or update a metric stream, you choose one of the following:

  • Stream metrics from all metric namespaces in the account.

  • Stream metrics from all metric namespaces in the account, except for the namespaces that you list in ExcludeFilters.

  • Stream metrics from only the metric namespaces that you list in IncludeFilters.

By default, a metric stream always sends the MAX, MIN, SUM, and SAMPLECOUNT statistics for each metric that is streamed. You can use the StatisticsConfigurations parameter to have the metric stream send additional statistics in the stream. Streaming additional statistics incurs additional costs. For more information, see Amazon CloudWatch Pricing.

When you use PutMetricStream to create a new metric stream, the stream is created in the running state. If you use it to update an existing stream, the state of the stream is not changed.

" }, "SetAlarmState":{ "name":"SetAlarmState", @@ -619,6 +654,19 @@ "min":1 }, "ActionsEnabled":{"type":"boolean"}, + "ActionsSuppressedBy":{ + "type":"string", + "enum":[ + "WaitPeriod", + "ExtensionPeriod", + "Alarm" + ] + }, + "ActionsSuppressedReason":{ + "type":"string", + "max":1024, + "min":0 + }, "AlarmArn":{ "type":"string", "max":1600, @@ -863,11 +911,35 @@ }, "StateUpdatedTimestamp":{ "shape":"Timestamp", - "documentation":"

The time stamp of the last update to the alarm state.

" + "documentation":"

Tracks the timestamp of any state update, even if StateValue doesn't change.

" }, "StateValue":{ "shape":"StateValue", "documentation":"

The state value for the alarm.

" + }, + "StateTransitionedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The timestamp of the last change to the alarm's StateValue.

" + }, + "ActionsSuppressedBy":{ + "shape":"ActionsSuppressedBy", + "documentation":"

When the value is ALARM, it means that the actions are suppressed because the suppressor alarm is in ALARM When the value is WaitPeriod, it means that the actions are suppressed because the composite alarm is waiting for the suppressor alarm to go into into the ALARM state. The maximum waiting time is as specified in ActionsSuppressorWaitPeriod. After this time, the composite alarm performs its actions. When the value is ExtensionPeriod, it means that the actions are suppressed because the composite alarm is waiting after the suppressor alarm went out of the ALARM state. The maximum waiting time is as specified in ActionsSuppressorExtensionPeriod. After this time, the composite alarm performs its actions.

" + }, + "ActionsSuppressedReason":{ + "shape":"ActionsSuppressedReason", + "documentation":"

Captures the reason for action suppression.

" + }, + "ActionsSuppressor":{ + "shape":"AlarmArn", + "documentation":"

Actions will be suppressed if the suppressor alarm is in the ALARM state. ActionsSuppressor can be an AlarmName or an Amazon Resource Name (ARN) from an existing alarm.

" + }, + "ActionsSuppressorWaitPeriod":{ + "shape":"SuppressorPeriod", + "documentation":"

The maximum time in seconds that the composite alarm waits for the suppressor alarm to go into the ALARM state. After this time, the composite alarm performs its actions.

WaitPeriod is required only when ActionsSuppressor is specified.

" + }, + "ActionsSuppressorExtensionPeriod":{ + "shape":"SuppressorPeriod", + "documentation":"

The maximum time in seconds that the composite alarm waits after suppressor alarm goes out of the ALARM state. After this time, the composite alarm performs its actions.

ExtensionPeriod is required only when ActionsSuppressor is specified.

" } }, "documentation":"

The details about a composite alarm.

", @@ -884,7 +956,13 @@ "StateReason", "StateReasonData", "StateUpdatedTimestamp", - "StateValue" + "StateValue", + "StateTransitionedTimestamp", + "ActionsSuppressedBy", + "ActionsSuppressedReason", + "ActionsSuppressor", + "ActionsSuppressorWaitPeriod", + "ActionsSuppressorExtensionPeriod" ] }, "CompositeAlarms":{ @@ -1393,7 +1471,7 @@ "documentation":"

The value of the dimension. Dimension values must contain only ASCII characters and must include at least one non-whitespace character.

" } }, - "documentation":"

A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish InstanceId as a dimension name, and the actual instance ID as the value for that dimension.

You can assign up to 10 dimensions to a metric.

", + "documentation":"

A dimension is a name/value pair that is part of the identity of a metric. Because dimensions are part of the unique identifier for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric. For example, many Amazon EC2 metrics publish InstanceId as a dimension name, and the actual instance ID as the value for that dimension.

You can assign up to 30 dimensions to a metric.

", "xmlOrder":[ "Name", "Value" @@ -1426,13 +1504,13 @@ }, "DimensionValue":{ "type":"string", - "max":255, + "max":1024, "min":1 }, "Dimensions":{ "type":"list", "member":{"shape":"Dimension"}, - "max":10 + "max":30 }, "DisableAlarmActionsInput":{ "type":"structure", @@ -1507,10 +1585,7 @@ "min":1 }, "ExceptionType":{"type":"string"}, - "ExtendedStatistic":{ - "type":"string", - "pattern":"p(\\d{1,2}(\\.\\d{0,2})?|100)" - }, + "ExtendedStatistic":{"type":"string"}, "ExtendedStatistics":{ "type":"list", "member":{"shape":"ExtendedStatistic"}, @@ -1765,7 +1840,7 @@ }, "FirehoseArn":{ "shape":"AmazonResourceName", - "documentation":"

The ARN of the Amazon Kinesis Firehose delivery stream that is used by this metric stream.

" + "documentation":"

The ARN of the Amazon Kinesis Data Firehose delivery stream that is used by this metric stream.

" }, "RoleArn":{ "shape":"AmazonResourceName", @@ -1785,7 +1860,7 @@ }, "OutputFormat":{ "shape":"MetricStreamOutputFormat", - "documentation":"

The output format for the stream. Valid values are json and opentelemetry0.7. For more information about metric stream output formats, see Metric streams output formats.

" + "documentation":"

The output format for the stream. Valid values are json and opentelemetry0.7. For more information about metric stream output formats, see Metric streams output formats.

" }, "StatisticsConfigurations":{ "shape":"MetricStreamStatisticsConfigurations", @@ -1834,6 +1909,7 @@ "max":255, "min":1 }, + "IncludeLinkedAccounts":{"type":"boolean"}, "InsightRule":{ "type":"structure", "required":[ @@ -1858,6 +1934,10 @@ "Definition":{ "shape":"InsightRuleDefinition", "documentation":"

The definition of the rule, as a JSON object. The definition contains the keywords used to define contributors, the value to aggregate on if this rule returns a sum instead of a count, and the filters. For details on the valid syntax, see Contributor Insights Rule Syntax.

" + }, + "ManagedRule":{ + "shape":"InsightRuleIsManaged", + "documentation":"

An optional built-in rule that Amazon Web Services manages.

" } }, "documentation":"

This structure contains the definition for a Contributor Insights rule. For more information about this rule, see Using Constributor Insights to analyze high-cardinality data in the Amazon CloudWatch User Guide.

" @@ -1928,6 +2008,7 @@ "min":1, "pattern":"[\\x00-\\x7F]+" }, + "InsightRuleIsManaged":{"type":"boolean"}, "InsightRuleMaxResults":{ "type":"integer", "max":500, @@ -2163,6 +2244,37 @@ } } }, + "ListManagedInsightRulesInput":{ + "type":"structure", + "required":["ResourceARN"], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of an Amazon Web Services resource that has managed Contributor Insights rules.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

Include this value to get the next set of rules if the value was returned by the previous operation.

" + }, + "MaxResults":{ + "shape":"InsightRuleMaxResults", + "documentation":"

The maximum number of results to return in one operation. If you omit this parameter, the default number is used. The default number is 100.

" + } + } + }, + "ListManagedInsightRulesOutput":{ + "type":"structure", + "members":{ + "ManagedRules":{ + "shape":"ManagedRuleDescriptions", + "documentation":"

The managed rules that are available for the specified Amazon Web Services resource.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

Include this value to get the next set of rules if the value was returned by the previous operation.

" + } + } + }, "ListMetricStreamsInput":{ "type":"structure", "members":{ @@ -2216,6 +2328,14 @@ "RecentlyActive":{ "shape":"RecentlyActive", "documentation":"

To filter the results to show only metrics that have had data points published in the past three hours, specify this parameter with a value of PT3H. This is the only valid value for this parameter.

The results that are returned are an approximation of the value you specify. There is a low probability that the returned results include metrics with last published data as much as 40 minutes more than the specified time interval.

" + }, + "IncludeLinkedAccounts":{ + "shape":"IncludeLinkedAccounts", + "documentation":"

If you are using this operation in a monitoring account, specify true to include metrics from source accounts in the returned data.

The default is false.

" + }, + "OwningAccount":{ + "shape":"AccountId", + "documentation":"

When you use this operation in a monitoring account, use this field to return metrics only from one source account. To do so, specify that source account ID in this field, and also specify true for IncludeLinkedAccounts.

" } } }, @@ -2229,11 +2349,16 @@ "NextToken":{ "shape":"NextToken", "documentation":"

The token that marks the start of the next batch of returned results.

" + }, + "OwningAccounts":{ + "shape":"OwningAccounts", + "documentation":"

If you are using this operation in a monitoring account, this array contains the account IDs of the source accounts where the metrics in the returned data are from.

This field is a 1:1 mapping between each metric that is returned and the ID of the owning account.

" } }, "xmlOrder":[ "Metrics", - "NextToken" + "NextToken", + "OwningAccounts" ] }, "ListTagsForResourceInput":{ @@ -2255,6 +2380,72 @@ } } }, + "ManagedRule":{ + "type":"structure", + "required":[ + "TemplateName", + "ResourceARN" + ], + "members":{ + "TemplateName":{ + "shape":"TemplateName", + "documentation":"

The template name for the managed Contributor Insights rule, as returned by ListManagedInsightRules.

" + }, + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of an Amazon Web Services resource that has managed Contributor Insights rules.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

A list of key-value pairs that you can associate with a managed Contributor Insights rule. You can associate as many as 50 tags with a rule. Tags can help you organize and categorize your resources. You also can use them to scope user permissions by granting a user permission to access or change only the resources that have certain tag values. To associate tags with a rule, you must have the cloudwatch:TagResource permission in addition to the cloudwatch:PutInsightRule permission. If you are using this operation to update an existing Contributor Insights rule, any tags that you specify in this parameter are ignored. To change the tags of an existing rule, use TagResource.

" + } + }, + "documentation":"

Contains the information that's required to enable a managed Contributor Insights rule for an Amazon Web Services resource.

" + }, + "ManagedRuleDescription":{ + "type":"structure", + "members":{ + "TemplateName":{ + "shape":"TemplateName", + "documentation":"

The template name for the managed rule. Used to enable managed rules using PutManagedInsightRules.

" + }, + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

If a managed rule is enabled, this is the ARN for the related Amazon Web Services resource.

" + }, + "RuleState":{ + "shape":"ManagedRuleState", + "documentation":"

Describes the state of a managed rule. If present, it contains information about the Contributor Insights rule that contains information about the related Amazon Web Services resource.

" + } + }, + "documentation":"

Contains information about managed Contributor Insights rules, as returned by ListManagedInsightRules.

" + }, + "ManagedRuleDescriptions":{ + "type":"list", + "member":{"shape":"ManagedRuleDescription"} + }, + "ManagedRuleState":{ + "type":"structure", + "required":[ + "RuleName", + "State" + ], + "members":{ + "RuleName":{ + "shape":"InsightRuleName", + "documentation":"

The name of the Contributor Insights rule that contains data for the specified Amazon Web Services resource.

" + }, + "State":{ + "shape":"InsightRuleState", + "documentation":"

Indicates whether the rule is enabled or disabled.

" + } + }, + "documentation":"

The status of a managed Contributor Insights rule.

" + }, + "ManagedRules":{ + "type":"list", + "member":{"shape":"ManagedRule"} + }, "MaxRecords":{ "type":"integer", "max":100, @@ -2481,7 +2672,7 @@ }, "ReturnData":{ "shape":"ReturnData", - "documentation":"

When used in GetMetricData, this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify False. If you omit this, the default of True is used.

When used in PutMetricAlarm, specify True for the one expression result to use as the alarm. For all other metrics and expressions in the same PutMetricAlarm operation, specify ReturnData as False.

" + "documentation":"

When used in GetMetricData, this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify false. If you omit this, the default of true is used.

When used in PutMetricAlarm, specify true for the one expression result to use as the alarm. For all other metrics and expressions in the same PutMetricAlarm operation, specify ReturnData as False.

" }, "Period":{ "shape":"Period", @@ -2489,10 +2680,10 @@ }, "AccountId":{ "shape":"AccountId", - "documentation":"

The ID of the account where the metrics are located, if this is a cross-account alarm.

Use this field only for PutMetricAlarm operations. It is not used in GetMetricData operations.

" + "documentation":"

The ID of the account where the metrics are located.

If you are performing a GetMetricData operation in a monitoring account, use this to specify which account to retrieve this metric from.

If you are performing a PutMetricAlarm operation, use this to specify which account contains the metric that the alarm is watching.

" } }, - "documentation":"

This structure is used in both GetMetricData and PutMetricAlarm. The supported use of this structure is different for those two operations.

When used in GetMetricData, it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a Metrics Insights query or a math expression. A single GetMetricData call can include up to 500 MetricDataQuery structures.

When used in PutMetricAlarm, it enables you to create an alarm based on a metric math expression. Each MetricDataQuery in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single PutMetricAlarm call can include up to 20 MetricDataQuery structures in the array. The 20 structures can include as many as 10 structures that contain a MetricStat parameter to retrieve a metric, and as many as 10 structures that contain the Expression parameter to perform a math expression. Of those Expression structures, one must have True as the value for ReturnData. The result of this expression is the value the alarm watches.

Any expression used in a PutMetricAlarm operation must return a single time series. For more information, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide.

Some of the parameters of this structure also have different uses whether you are using this structure in a GetMetricData operation or a PutMetricAlarm operation. These differences are explained in the following parameter list.

" + "documentation":"

This structure is used in both GetMetricData and PutMetricAlarm. The supported use of this structure is different for those two operations.

When used in GetMetricData, it indicates the metric data to return, and whether this call is just retrieving a batch set of data for one metric, or is performing a Metrics Insights query or a math expression. A single GetMetricData call can include up to 500 MetricDataQuery structures.

When used in PutMetricAlarm, it enables you to create an alarm based on a metric math expression. Each MetricDataQuery in the array specifies either a metric to retrieve, or a math expression to be performed on retrieved metrics. A single PutMetricAlarm call can include up to 20 MetricDataQuery structures in the array. The 20 structures can include as many as 10 structures that contain a MetricStat parameter to retrieve a metric, and as many as 10 structures that contain the Expression parameter to perform a math expression. Of those Expression structures, one must have true as the value for ReturnData. The result of this expression is the value the alarm watches.

Any expression used in a PutMetricAlarm operation must return a single time series. For more information, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide.

Some of the parameters of this structure also have different uses whether you are using this structure in a GetMetricData operation or a PutMetricAlarm operation. These differences are explained in the following parameter list.

" }, "MetricDataResult":{ "type":"structure", @@ -2577,7 +2768,7 @@ }, "MetricExpression":{ "type":"string", - "max":1024, + "max":2048, "min":1 }, "MetricId":{ @@ -2591,7 +2782,7 @@ "members":{ "MetricDataQueries":{ "shape":"MetricDataQueries", - "documentation":"

An array of metric data query structures that enables you to create an anomaly detector based on the result of a metric math expression. Each item in MetricDataQueries gets a metric or performs a math expression. One item in MetricDataQueries is the expression that provides the time series that the anomaly detector uses as input. Designate the expression by setting ReturnData to True for this object in the array. For all other expressions and metrics, set ReturnData to False. The designated expression must return a single time series.

" + "documentation":"

An array of metric data query structures that enables you to create an anomaly detector based on the result of a metric math expression. Each item in MetricDataQueries gets a metric or performs a math expression. One item in MetricDataQueries is the expression that provides the time series that the anomaly detector uses as input. Designate the expression by setting ReturnData to true for this object in the array. For all other expressions and metrics, set ReturnData to false. The designated expression must return a single time series.

" } }, "documentation":"

Indicates the CloudWatch math expression that provides the time series the anomaly detector uses as input. The designated math expression must return a single time series.

" @@ -2779,6 +2970,10 @@ }, "NextToken":{"type":"string"}, "OutputFormat":{"type":"string"}, + "OwningAccounts":{ + "type":"list", + "member":{"shape":"AccountId"} + }, "PartialFailure":{ "type":"structure", "members":{ @@ -2889,6 +3084,18 @@ "Tags":{ "shape":"TagList", "documentation":"

A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values.

" + }, + "ActionsSuppressor":{ + "shape":"AlarmArn", + "documentation":"

Actions will be suppressed if the suppressor alarm is in the ALARM state. ActionsSuppressor can be an AlarmName or an Amazon Resource Name (ARN) from an existing alarm.

" + }, + "ActionsSuppressorWaitPeriod":{ + "shape":"SuppressorPeriod", + "documentation":"

The maximum time in seconds that the composite alarm waits for the suppressor alarm to go into the ALARM state. After this time, the composite alarm performs its actions.

WaitPeriod is required only when ActionsSuppressor is specified.

" + }, + "ActionsSuppressorExtensionPeriod":{ + "shape":"SuppressorPeriod", + "documentation":"

The maximum time in seconds that the composite alarm waits after suppressor alarm goes out of the ALARM state. After this time, the composite alarm performs its actions.

ExtensionPeriod is required only when ActionsSuppressor is specified.

" } } }, @@ -2948,6 +3155,25 @@ "members":{ } }, + "PutManagedInsightRulesInput":{ + "type":"structure", + "required":["ManagedRules"], + "members":{ + "ManagedRules":{ + "shape":"ManagedRules", + "documentation":"

A list of ManagedRules to enable.

" + } + } + }, + "PutManagedInsightRulesOutput":{ + "type":"structure", + "members":{ + "Failures":{ + "shape":"BatchFailures", + "documentation":"

An array that lists the rules that could not be enabled.

" + } + } + }, "PutMetricAlarmInput":{ "type":"structure", "required":[ @@ -3006,7 +3232,7 @@ }, "Unit":{ "shape":"StandardUnit", - "documentation":"

The unit of measure for the statistic. For example, the units for the Amazon EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that an instance receives on all network interfaces. You can also specify a unit when you create a custom metric. Units help provide conceptual meaning to your data. Metric data points that specify a unit of measure, such as Percent, are aggregated separately.

If you don't specify Unit, CloudWatch retrieves all unit types that have been published for the metric and attempts to evaluate the alarm. Usually, metrics are published with only one unit, so the alarm works as intended.

However, if the metric is published with multiple types of units and you don't specify a unit, the alarm's behavior is not defined and it behaves predictably.

We recommend omitting Unit so that you don't inadvertently specify an incorrect unit that is not published for this metric. Doing so causes the alarm to be stuck in the INSUFFICIENT DATA state.

" + "documentation":"

The unit of measure for the statistic. For example, the units for the Amazon EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that an instance receives on all network interfaces. You can also specify a unit when you create a custom metric. Units help provide conceptual meaning to your data. Metric data points that specify a unit of measure, such as Percent, are aggregated separately.

If you don't specify Unit, CloudWatch retrieves all unit types that have been published for the metric and attempts to evaluate the alarm. Usually, metrics are published with only one unit, so the alarm works as intended.

However, if the metric is published with multiple types of units and you don't specify a unit, the alarm's behavior is not defined and it behaves unpredictably.

We recommend omitting Unit so that you don't inadvertently specify an incorrect unit that is not published for this metric. Doing so causes the alarm to be stuck in the INSUFFICIENT DATA state.

" }, "EvaluationPeriods":{ "shape":"EvaluationPeriods", @@ -3059,7 +3285,7 @@ }, "MetricData":{ "shape":"MetricData", - "documentation":"

The data for the metric. The array can include no more than 20 metrics per call.

" + "documentation":"

The data for the metric. The array can include no more than 1000 metrics per call.

" } } }, @@ -3086,11 +3312,11 @@ }, "FirehoseArn":{ "shape":"AmazonResourceName", - "documentation":"

The ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream. This Amazon Kinesis Firehose delivery stream must already exist and must be in the same account as the metric stream.

" + "documentation":"

The ARN of the Amazon Kinesis Data Firehose delivery stream to use for this metric stream. This Amazon Kinesis Data Firehose delivery stream must already exist and must be in the same account as the metric stream.

" }, "RoleArn":{ "shape":"AmazonResourceName", - "documentation":"

The ARN of an IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. This IAM role must already exist and must be in the same account as the metric stream. This IAM role must include the following permissions:

  • firehose:PutRecord

  • firehose:PutRecordBatch

" + "documentation":"

The ARN of an IAM role that this metric stream will use to access Amazon Kinesis Data Firehose resources. This IAM role must already exist and must be in the same account as the metric stream. This IAM role must include the following permissions:

  • firehose:PutRecord

  • firehose:PutRecordBatch

" }, "OutputFormat":{ "shape":"MetricStreamOutputFormat", @@ -3102,7 +3328,7 @@ }, "StatisticsConfigurations":{ "shape":"MetricStreamStatisticsConfigurations", - "documentation":"

By default, a metric stream always sends the MAX, MIN, SUM, and SAMPLECOUNT statistics for each metric that is streamed. You can use this parameter to have the metric stream also send additional statistics in the stream. This array can have up to 100 members.

For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's OutputFormat. If the OutputFormat is json, you can stream any additional statistic that is supported by CloudWatch, listed in CloudWatch statistics definitions. If the OutputFormat is opentelemetry0.7, you can stream percentile statistics such as p95, p99.9 and so on.

" + "documentation":"

By default, a metric stream always sends the MAX, MIN, SUM, and SAMPLECOUNT statistics for each metric that is streamed. You can use this parameter to have the metric stream also send additional statistics in the stream. This array can have up to 100 members.

For each entry in this array, you specify one or more metrics and the list of additional statistics to stream for those metrics. The additional statistics that you can stream depend on the stream's OutputFormat. If the OutputFormat is json, you can stream any additional statistic that is supported by CloudWatch, listed in CloudWatch statistics definitions. If the OutputFormat is opentelemetry0.7, you can stream percentile statistics such as p95, p99.9, and so on.

" } } }, @@ -3355,7 +3581,8 @@ "enum":[ "Complete", "InternalError", - "PartialData" + "PartialData", + "Forbidden" ] }, "StopMetricStreamsInput":{ @@ -3377,6 +3604,7 @@ "type":"integer", "min":1 }, + "SuppressorPeriod":{"type":"integer"}, "Tag":{ "type":"structure", "required":[ @@ -3435,6 +3663,12 @@ "max":256, "min":0 }, + "TemplateName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[0-9A-Za-z][\\-\\.\\_0-9A-Za-z]{0,126}[0-9A-Za-z]" + }, "Threshold":{"type":"double"}, "Timestamp":{"type":"timestamp"}, "Timestamps":{ diff --git a/botocore/data/codeartifact/2018-09-22/endpoint-rule-set-1.json b/botocore/data/codeartifact/2018-09-22/endpoint-rule-set-1.json new file mode 100644 index 00000000..f5f91fef --- /dev/null +++ b/botocore/data/codeartifact/2018-09-22/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeartifact-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeartifact-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeartifact.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codeartifact.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codeartifact/2018-09-22/examples-1.json b/botocore/data/codeartifact/2018-09-22/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/codeartifact/2018-09-22/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/codeartifact/2018-09-22/service-2.json b/botocore/data/codeartifact/2018-09-22/service-2.json index 43f4b6a1..66f810de 100644 --- a/botocore/data/codeartifact/2018-09-22/service-2.json +++ b/botocore/data/codeartifact/2018-09-22/service-2.json @@ -67,7 +67,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Creates a domain. CodeArtifact domains make it easier to manage multiple repositories across an organization. You can use a domain to apply permissions across many repositories owned by different AWS accounts. An asset is stored only once in a domain, even if it's in multiple repositories.

Although you can have multiple domains, we recommend a single production domain that contains all published artifacts so that your development teams can find and share packages. You can use a second pre-production domain to test changes to the production domain configuration.

" + "documentation":"

Creates a domain. CodeArtifact domains make it easier to manage multiple repositories across an organization. You can use a domain to apply permissions across many repositories owned by different Amazon Web Services accounts. An asset is stored only once in a domain, even if it's in multiple repositories.

Although you can have multiple domains, we recommend a single production domain that contains all published artifacts so that your development teams can find and share packages. You can use a second pre-production domain to test changes to the production domain configuration.

" }, "CreateRepository":{ "name":"CreateRepository", @@ -175,7 +175,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Deletes the resource policy that is set on a repository. After a resource policy is deleted, the permissions allowed and denied by the deleted policy are removed. The effect of deleting a resource policy might not be immediate.

Use DeleteRepositoryPermissionsPolicy with caution. After a policy is deleted, AWS users, roles, and accounts lose permissions to perform the repository actions granted by the deleted policy.

" + "documentation":"

Deletes the resource policy that is set on a repository. After a resource policy is deleted, the permissions allowed and denied by the deleted policy are removed. The effect of deleting a resource policy might not be immediate.

Use DeleteRepositoryPermissionsPolicy with caution. After a policy is deleted, Amazon Web Services users, roles, and accounts lose permissions to perform the repository actions granted by the deleted policy.

" }, "DescribeDomain":{ "name":"DescribeDomain", @@ -194,6 +194,23 @@ ], "documentation":"

Returns a DomainDescription object that contains information about the requested domain.

" }, + "DescribePackage":{ + "name":"DescribePackage", + "http":{ + "method":"GET", + "requestUri":"/v1/package" + }, + "input":{"shape":"DescribePackageRequest"}, + "output":{"shape":"DescribePackageResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns a PackageDescription object that contains information about the requested package.

" + }, "DescribePackageVersion":{ "name":"DescribePackageVersion", "http":{ @@ -281,7 +298,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Generates a temporary authorization token for accessing repositories in the domain. This API requires the codeartifact:GetAuthorizationToken and sts:GetServiceBearerToken permissions. For more information about authorization tokens, see AWS CodeArtifact authentication and tokens.

CodeArtifact authorization tokens are valid for a period of 12 hours when created with the login command. You can call login periodically to refresh the token. When you create an authorization token with the GetAuthorizationToken API, you can set a custom authorization period, up to a maximum of 12 hours, with the durationSeconds parameter.

The authorization period begins after login or GetAuthorizationToken is called. If login or GetAuthorizationToken is called while assuming a role, the token lifetime is independent of the maximum session duration of the role. For example, if you call sts assume-role and specify a session duration of 15 minutes, then generate a CodeArtifact authorization token, the token will be valid for the full authorization period even though this is longer than the 15-minute session duration.

See Using IAM Roles for more information on controlling session duration.

" + "documentation":"

Generates a temporary authorization token for accessing repositories in the domain. This API requires the codeartifact:GetAuthorizationToken and sts:GetServiceBearerToken permissions. For more information about authorization tokens, see CodeArtifact authentication and tokens.

CodeArtifact authorization tokens are valid for a period of 12 hours when created with the login command. You can call login periodically to refresh the token. When you create an authorization token with the GetAuthorizationToken API, you can set a custom authorization period, up to a maximum of 12 hours, with the durationSeconds parameter.

The authorization period begins after login or GetAuthorizationToken is called. If login or GetAuthorizationToken is called while assuming a role, the token lifetime is independent of the maximum session duration of the role. For example, if you call sts assume-role and specify a session duration of 15 minutes, then generate a CodeArtifact authorization token, the token will be valid for the full authorization period even though this is longer than the 15-minute session duration.

See Using IAM Roles for more information on controlling session duration.

" }, "GetDomainPermissionsPolicy":{ "name":"GetDomainPermissionsPolicy", @@ -298,7 +315,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns the resource policy attached to the specified domain.

The policy is a resource-based policy, not an identity-based policy. For more information, see Identity-based policies and resource-based policies in the AWS Identity and Access Management User Guide.

" + "documentation":"

Returns the resource policy attached to the specified domain.

The policy is a resource-based policy, not an identity-based policy. For more information, see Identity-based policies and resource-based policies in the IAM User Guide.

" }, "GetPackageVersionAsset":{ "name":"GetPackageVersionAsset", @@ -350,7 +367,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format:

  • npm

  • pypi

  • maven

" + "documentation":"

Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format:

  • maven

  • npm

  • nuget

  • pypi

" }, "GetRepositoryPermissionsPolicy":{ "name":"GetRepositoryPermissionsPolicy", @@ -383,7 +400,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns a list of DomainSummary objects for all domains owned by the AWS account that makes this call. Each returned DomainSummary object contains information about a domain.

" + "documentation":"

Returns a list of DomainSummary objects for all domains owned by the Amazon Web Services account that makes this call. Each returned DomainSummary object contains information about a domain.

" }, "ListPackageVersionAssets":{ "name":"ListPackageVersionAssets", @@ -467,7 +484,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns a list of RepositorySummary objects. Each RepositorySummary contains information about a repository in the specified AWS account and that matches the input parameters.

" + "documentation":"

Returns a list of RepositorySummary objects. Each RepositorySummary contains information about a repository in the specified Amazon Web Services account and that matches the input parameters.

" }, "ListRepositoriesInDomain":{ "name":"ListRepositoriesInDomain", @@ -500,7 +517,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeArtifact.

" + "documentation":"

Gets information about Amazon Web Services tags for a specified Amazon Resource Name (ARN) in CodeArtifact.

" }, "PutDomainPermissionsPolicy":{ "name":"PutDomainPermissionsPolicy", @@ -521,6 +538,23 @@ ], "documentation":"

Sets a resource policy on a domain that specifies permissions to access it.

When you call PutDomainPermissionsPolicy, the resource policy on the domain is ignored when evaluting permissions. This ensures that the owner of a domain cannot lock themselves out of the domain, which would prevent them from being able to update the resource policy.

" }, + "PutPackageOriginConfiguration":{ + "name":"PutPackageOriginConfiguration", + "http":{ + "method":"POST", + "requestUri":"/v1/package" + }, + "input":{"shape":"PutPackageOriginConfigurationRequest"}, + "output":{"shape":"PutPackageOriginConfigurationResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Sets the package origin configuration for a package.

The package origin configuration determines how new versions of a package can be added to a repository. You can allow or block direct publishing of new package versions, or ingestion and retaining of new package versions from an external connection or upstream source. For more information about package origin controls and configuration, see Editing package origin controls in the CodeArtifact User Guide.

PutPackageOriginConfiguration can be called on a package that doesn't yet exist in the repository. When called on a package that does not exist, a package is created in the repository with no versions and the requested restrictions are set on the package. This can be used to preemptively block ingesting or retaining any versions from external connections or upstream repositories, or to block publishing any versions of the package into the repository before connecting any package managers or publishers to the repository.

" + }, "PutRepositoryPermissionsPolicy":{ "name":"PutRepositoryPermissionsPolicy", "http":{ @@ -555,7 +589,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Adds or updates tags for a resource in AWS CodeArtifact.

" + "documentation":"

Adds or updates tags for a resource in CodeArtifact.

" }, "UntagResource":{ "name":"UntagResource", @@ -571,7 +605,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Removes tags from a resource in AWS CodeArtifact.

" + "documentation":"

Removes tags from a resource in CodeArtifact.

" }, "UpdatePackageVersionsStatus":{ "name":"UpdatePackageVersionsStatus", @@ -589,7 +623,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Updates the status of one or more versions of a package.

" + "documentation":"

Updates the status of one or more versions of a package. Using UpdatePackageVersionsStatus, you can update the status of package versions to Archived, Published, or Unlisted. To set the status of a package version to Disposed, use DisposePackageVersions.

" }, "UpdateRepository":{ "name":"UpdateRepository", @@ -628,6 +662,20 @@ "min":12, "pattern":"[0-9]{12}" }, + "AllowPublish":{ + "type":"string", + "enum":[ + "ALLOW", + "BLOCK" + ] + }, + "AllowUpstream":{ + "type":"string", + "enum":[ + "ALLOW", + "BLOCK" + ] + }, "Arn":{ "type":"string", "max":1011, @@ -688,7 +736,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -732,7 +780,7 @@ }, "resourceType":{ "shape":"ResourceType", - "documentation":"

The type of AWS resource.

" + "documentation":"

The type of Amazon Web Services resource.

" } }, "documentation":"

The operation did not succeed because prerequisites are not met.

", @@ -757,13 +805,13 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, "sourceRepository":{ "shape":"RepositoryName", - "documentation":"

The name of the repository that contains the package versions to copy.

", + "documentation":"

The name of the repository that contains the package versions to be copied.

", "location":"querystring", "locationName":"source-repository" }, @@ -775,25 +823,25 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

The format of the package that is copied. The valid package types are:

  • npm: A Node Package Manager (npm) package.

  • pypi: A Python Package Index (PyPI) package.

  • maven: A Maven package that contains compiled code in a distributable format, such as a JAR file.

", + "documentation":"

The format of the package versions to be copied.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the package versions to be copied. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId. The namespace is required when copying Maven package versions.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, "package":{ "shape":"PackageName", - "documentation":"

The name of the package that is copied.

", + "documentation":"

The name of the package that contains the versions to be copied.

", "location":"querystring", "locationName":"package" }, "versions":{ "shape":"PackageVersionList", - "documentation":"

The versions of the package to copy.

You must specify versions or versionRevisions. You cannot specify both.

" + "documentation":"

The versions of the package to be copied.

You must specify versions or versionRevisions. You cannot specify both.

" }, "versionRevisions":{ "shape":"PackageVersionRevisionMap", @@ -828,13 +876,13 @@ "members":{ "domain":{ "shape":"DomainName", - "documentation":"

The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable.

", + "documentation":"

The name of the domain to create. All domain names in an Amazon Web Services Region that are in the same Amazon Web Services account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable.

", "location":"querystring", "locationName":"domain" }, "encryptionKey":{ "shape":"Arn", - "documentation":"

The encryption key for the domain. This is used to encrypt content stored in a domain. An encryption key can be a key ID, a key Amazon Resource Name (ARN), a key alias, or a key alias ARN. To specify an encryptionKey, your IAM role must have kms:DescribeKey and kms:CreateGrant permissions on the encryption key that is used. For more information, see DescribeKey in the AWS Key Management Service API Reference and AWS KMS API Permissions Reference in the AWS Key Management Service Developer Guide.

CodeArtifact supports only symmetric CMKs. Do not associate an asymmetric CMK with your domain. For more information, see Using symmetric and asymmetric keys in the AWS Key Management Service Developer Guide.

" + "documentation":"

The encryption key for the domain. This is used to encrypt content stored in a domain. An encryption key can be a key ID, a key Amazon Resource Name (ARN), a key alias, or a key alias ARN. To specify an encryptionKey, your IAM role must have kms:DescribeKey and kms:CreateGrant permissions on the encryption key that is used. For more information, see DescribeKey in the Key Management Service API Reference and Key Management Service API Permissions Reference in the Key Management Service Developer Guide.

CodeArtifact supports only symmetric CMKs. Do not associate an asymmetric CMK with your domain. For more information, see Using symmetric and asymmetric keys in the Key Management Service Developer Guide.

" }, "tags":{ "shape":"TagList", @@ -866,7 +914,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -882,7 +930,7 @@ }, "upstreams":{ "shape":"UpstreamRepositoryList", - "documentation":"

A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see Working with upstream repositories.

" + "documentation":"

A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when CodeArtifact looks for a requested package version. For more information, see Working with upstream repositories.

" }, "tags":{ "shape":"TagList", @@ -911,7 +959,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -944,7 +992,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" } @@ -977,7 +1025,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -989,13 +1037,13 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

The format of the package versions to delete. The valid values are:

  • npm

  • pypi

  • maven

", + "documentation":"

The format of the package versions to delete.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the package versions to be deleted. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId. The namespace is required when deleting Maven package versions.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1011,7 +1059,7 @@ }, "expectedStatus":{ "shape":"PackageVersionStatus", - "documentation":"

The expected status of the package version to delete. Valid values are:

  • Published

  • Unfinished

  • Unlisted

  • Archived

  • Disposed

" + "documentation":"

The expected status of the package version to delete.

" } } }, @@ -1020,7 +1068,7 @@ "members":{ "successfulVersions":{ "shape":"SuccessfulPackageVersionInfoMap", - "documentation":"

A list of the package versions that were successfully deleted.

" + "documentation":"

A list of the package versions that were successfully deleted. The status of every successful version will be Deleted.

" }, "failedVersions":{ "shape":"PackageVersionErrorMap", @@ -1043,7 +1091,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1085,7 +1133,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1118,7 +1166,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" } @@ -1130,6 +1178,63 @@ "domain":{"shape":"DomainDescription"} } }, + "DescribePackageRequest":{ + "type":"structure", + "required":[ + "domain", + "repository", + "format", + "package" + ], + "members":{ + "domain":{ + "shape":"DomainName", + "documentation":"

The name of the domain that contains the repository that contains the package.

", + "location":"querystring", + "locationName":"domain" + }, + "domainOwner":{ + "shape":"AccountId", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", + "location":"querystring", + "locationName":"domain-owner" + }, + "repository":{ + "shape":"RepositoryName", + "documentation":"

The name of the repository that contains the requested package.

", + "location":"querystring", + "locationName":"repository" + }, + "format":{ + "shape":"PackageFormat", + "documentation":"

A format that specifies the type of the requested package.

", + "location":"querystring", + "locationName":"format" + }, + "namespace":{ + "shape":"PackageNamespace", + "documentation":"

The namespace of the requested package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId. The namespace is required when requesting Maven packages.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

", + "location":"querystring", + "locationName":"namespace" + }, + "package":{ + "shape":"PackageName", + "documentation":"

The name of the requested package.

", + "location":"querystring", + "locationName":"package" + } + } + }, + "DescribePackageResult":{ + "type":"structure", + "required":["package"], + "members":{ + "package":{ + "shape":"PackageDescription", + "documentation":"

A PackageDescription object that contains information about the requested package.

" + } + } + }, "DescribePackageVersionRequest":{ "type":"structure", "required":[ @@ -1148,7 +1253,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1160,13 +1265,13 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

A format that specifies the type of the requested package version. The valid values are:

  • npm

  • pypi

  • maven

", + "documentation":"

A format that specifies the type of the requested package version.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the requested package version. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1209,7 +1314,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1233,7 +1338,7 @@ "Description":{ "type":"string", "max":1000, - "pattern":"\\P{C}+" + "pattern":"\\P{C}*" }, "DisassociateExternalConnectionRequest":{ "type":"structure", @@ -1251,7 +1356,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1296,7 +1401,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1308,13 +1413,13 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

A format that specifies the type of package versions you want to dispose. The valid values are:

  • npm

  • pypi

  • maven

", + "documentation":"

A format that specifies the type of package versions you want to dispose.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the package versions to be disposed. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1334,7 +1439,7 @@ }, "expectedStatus":{ "shape":"PackageVersionStatus", - "documentation":"

The expected status of the package version to dispose. Valid values are:

  • Published

  • Unfinished

  • Unlisted

  • Archived

  • Disposed

" + "documentation":"

The expected status of the package version to dispose.

" } } }, @@ -1360,7 +1465,7 @@ }, "owner":{ "shape":"AccountId", - "documentation":"

The AWS account ID that owns the domain.

" + "documentation":"

The Amazon Web Services account ID that owns the domain.

" }, "arn":{ "shape":"Arn", @@ -1368,7 +1473,7 @@ }, "status":{ "shape":"DomainStatus", - "documentation":"

The current status of a domain. The valid values are

  • Active

  • Deleted

" + "documentation":"

The current status of a domain.

" }, "createdTime":{ "shape":"Timestamp", @@ -1376,7 +1481,7 @@ }, "encryptionKey":{ "shape":"Arn", - "documentation":"

The ARN of an AWS Key Management Service (AWS KMS) key associated with a domain.

" + "documentation":"

The ARN of an Key Management Service (KMS) key associated with a domain.

" }, "repositoryCount":{ "shape":"Integer", @@ -1393,6 +1498,20 @@ }, "documentation":"

Information about a domain. A domain is a container for repositories. When you create a domain, it is empty until you add one or more repositories.

" }, + "DomainEntryPoint":{ + "type":"structure", + "members":{ + "repositoryName":{ + "shape":"RepositoryName", + "documentation":"

The name of the repository that a package was originally published to.

" + }, + "externalConnectionName":{ + "shape":"ExternalConnectionName", + "documentation":"

The name of the external connection that a package was ingested from.

" + } + }, + "documentation":"

Information about how a package originally entered the CodeArtifact domain. For packages published directly to CodeArtifact, the entry point is the repository it was published to. For packages ingested from an external repository, the entry point is the external connection that it was ingested from. An external connection is a CodeArtifact repository that is connected to an external repository such as the npm registry or NuGet gallery.

" + }, "DomainName":{ "type":"string", "max":50, @@ -1415,7 +1534,7 @@ }, "owner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

" + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

" }, "arn":{ "shape":"Arn", @@ -1423,7 +1542,7 @@ }, "status":{ "shape":"DomainStatus", - "documentation":"

A string that contains the status of the domain. The valid values are:

  • Active

  • Deleted

" + "documentation":"

A string that contains the status of the domain.

" }, "createdTime":{ "shape":"Timestamp", @@ -1443,6 +1562,8 @@ "ErrorMessage":{"type":"string"}, "ExternalConnectionName":{ "type":"string", + "max":100, + "min":2, "pattern":"[A-Za-z0-9][A-Za-z0-9._\\-:]{1,99}" }, "ExternalConnectionStatus":{ @@ -1461,7 +1582,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1498,7 +1619,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" } @@ -1532,7 +1653,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1544,13 +1665,13 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

A format that specifies the type of the package version with the requested asset file. The valid values are:

  • npm

  • pypi

  • maven

", + "documentation":"

A format that specifies the type of the package version with the requested asset file.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the package version with the requested asset file. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1626,7 +1747,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1638,13 +1759,13 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

A format that specifies the type of the package version with the requested readme file. The valid values are:

  • npm

  • pypi

  • maven

", + "documentation":"

A format that specifies the type of the package version with the requested readme file.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the package version with the requested readme file. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -1667,11 +1788,11 @@ "members":{ "format":{ "shape":"PackageFormat", - "documentation":"

The format of the package with the requested readme file. Valid format types are:

  • npm

  • pypi

  • maven

" + "documentation":"

The format of the package with the requested readme file.

" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

" + "documentation":"

The namespace of the package version with the requested readme file. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

" }, "package":{ "shape":"PackageName", @@ -1707,7 +1828,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain that contains the repository. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1719,7 +1840,7 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

Returns which endpoint of a repository to return. A repository has one endpoint for each package format:

  • npm

  • pypi

  • maven

", + "documentation":"

Returns which endpoint of a repository to return. A repository has one endpoint for each package format.

", "location":"querystring", "locationName":"format" } @@ -1749,7 +1870,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1792,7 +1913,7 @@ "members":{ "message":{"shape":"String"} }, - "documentation":"

The operation did not succeed because of an error that occurred inside AWS CodeArtifact.

", + "documentation":"

The operation did not succeed because of an error that occurred inside CodeArtifact.

", "error":{"httpStatusCode":500}, "exception":true, "fault":true @@ -1869,31 +1990,31 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, "repository":{ "shape":"RepositoryName", - "documentation":"

The name of the repository that contains the package that contains the returned package version assets.

", + "documentation":"

The name of the repository that contains the package that contains the requested package version assets.

", "location":"querystring", "locationName":"repository" }, "format":{ "shape":"PackageFormat", - "documentation":"

The format of the package that contains the returned package version assets. The valid package types are:

  • npm: A Node Package Manager (npm) package.

  • pypi: A Python Package Index (PyPI) package.

  • maven: A Maven package that contains compiled code in a distributable format, such as a JAR file.

", + "documentation":"

The format of the package that contains the requested package version assets.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the package version that contains the requested package version assets. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, "package":{ "shape":"PackageName", - "documentation":"

The name of the package that contains the returned package version assets.

", + "documentation":"

The name of the package that contains the requested package version assets.

", "location":"querystring", "locationName":"package" }, @@ -1922,19 +2043,19 @@ "members":{ "format":{ "shape":"PackageFormat", - "documentation":"

The format of the package that contains the returned package version assets.

" + "documentation":"

The format of the package that contains the requested package version assets.

" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

" + "documentation":"

The namespace of the package version that contains the requested package version assets. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

" }, "package":{ "shape":"PackageName", - "documentation":"

The name of the package that contains the returned package version assets.

" + "documentation":"

The name of the package that contains the requested package version assets.

" }, "version":{ "shape":"PackageVersion", - "documentation":"

The version of the package associated with the returned assets.

" + "documentation":"

The version of the package associated with the requested assets.

" }, "versionRevision":{ "shape":"PackageVersionRevision", @@ -1968,7 +2089,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -1980,13 +2101,13 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

The format of the package with the requested dependencies. The valid package types are:

  • npm: A Node Package Manager (npm) package.

  • pypi: A Python Package Index (PyPI) package.

  • maven: A Maven package that contains compiled code in a distributable format, such as a JAR file.

", + "documentation":"

The format of the package with the requested dependencies.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the package version with the requested dependencies. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -2015,11 +2136,11 @@ "members":{ "format":{ "shape":"PackageFormat", - "documentation":"

A format that specifies the type of the package that contains the returned dependencies. The valid values are:

  • npm

  • pypi

  • maven

" + "documentation":"

A format that specifies the type of the package that contains the returned dependencies.

" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

" + "documentation":"

The namespace of the package version that contains the returned dependencies. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

" }, "package":{ "shape":"PackageName", @@ -2059,49 +2180,49 @@ "members":{ "domain":{ "shape":"DomainName", - "documentation":"

The name of the domain that contains the repository that contains the returned package versions.

", + "documentation":"

The name of the domain that contains the repository that contains the requested package versions.

", "location":"querystring", "locationName":"domain" }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, "repository":{ "shape":"RepositoryName", - "documentation":"

The name of the repository that contains the package.

", + "documentation":"

The name of the repository that contains the requested package versions.

", "location":"querystring", "locationName":"repository" }, "format":{ "shape":"PackageFormat", - "documentation":"

The format of the returned packages. The valid package types are:

  • npm: A Node Package Manager (npm) package.

  • pypi: A Python Package Index (PyPI) package.

  • maven: A Maven package that contains compiled code in a distributable format, such as a JAR file.

", + "documentation":"

The format of the returned package versions.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the package that contains the requested package versions. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, "package":{ "shape":"PackageName", - "documentation":"

The name of the package for which you want to return a list of package versions.

", + "documentation":"

The name of the package for which you want to request package versions.

", "location":"querystring", "locationName":"package" }, "status":{ "shape":"PackageVersionStatus", - "documentation":"

A string that specifies the status of the package versions to include in the returned list. It can be one of the following:

  • Published

  • Unfinished

  • Unlisted

  • Archived

  • Disposed

", + "documentation":"

A string that filters the requested package versions by status.

", "location":"querystring", "locationName":"status" }, "sortBy":{ "shape":"PackageVersionSortType", - "documentation":"

How to sort the returned list of package versions.

", + "documentation":"

How to sort the requested list of package versions.

", "location":"querystring", "locationName":"sortBy" }, @@ -2116,6 +2237,12 @@ "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", "location":"querystring", "locationName":"next-token" + }, + "originType":{ + "shape":"PackageVersionOriginType", + "documentation":"

The originType used to filter package versions. Only package versions with the provided originType will be returned.

", + "location":"querystring", + "locationName":"originType" } } }, @@ -2128,11 +2255,11 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

A format of the package. Valid package format values are:

  • npm

  • pypi

  • maven

" + "documentation":"

A format of the package.

" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

" + "documentation":"

The namespace of the package that contains the requested package versions. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

" }, "package":{ "shape":"PackageName", @@ -2162,37 +2289,37 @@ "members":{ "domain":{ "shape":"DomainName", - "documentation":"

The name of the domain that contains the repository that contains the requested list of packages.

", + "documentation":"

The name of the domain that contains the repository that contains the requested packages.

", "location":"querystring", "locationName":"domain" }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, "repository":{ "shape":"RepositoryName", - "documentation":"

The name of the repository from which packages are to be listed.

", + "documentation":"

The name of the repository that contains the requested packages.

", "location":"querystring", "locationName":"repository" }, "format":{ "shape":"PackageFormat", - "documentation":"

The format of the packages. The valid package types are:

  • npm: A Node Package Manager (npm) package.

  • pypi: A Python Package Index (PyPI) package.

  • maven: A Maven package that contains compiled code in a distributable format, such as a JAR file.

", + "documentation":"

The format used to filter requested packages. Only packages from the provided format will be returned.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace used to filter requested packages. Only packages with the provided namespace will be returned. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, "packagePrefix":{ "shape":"PackageName", - "documentation":"

A prefix used to filter returned packages. Only packages with names that start with packagePrefix are returned.

", + "documentation":"

A prefix used to filter requested packages. Only packages with names that start with packagePrefix are returned.

", "location":"querystring", "locationName":"package-prefix" }, @@ -2207,6 +2334,18 @@ "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", "location":"querystring", "locationName":"next-token" + }, + "publish":{ + "shape":"AllowPublish", + "documentation":"

The value of the Publish package origin control restriction used to filter requested packages. Only packages with the provided restriction are returned. For more information, see PackageOriginRestrictions.

", + "location":"querystring", + "locationName":"publish" + }, + "upstream":{ + "shape":"AllowUpstream", + "documentation":"

The value of the Upstream package origin control restriction used to filter requested packages. Only packages with the provided restriction are returned. For more information, see PackageOriginRestrictions.

", + "location":"querystring", + "locationName":"upstream" } } }, @@ -2240,13 +2379,13 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, "administratorAccount":{ "shape":"AccountId", - "documentation":"

Filter the list of repositories to only include those that are managed by the AWS account ID.

", + "documentation":"

Filter the list of repositories to only include those that are managed by the Amazon Web Services account ID.

", "location":"querystring", "locationName":"administrator-account" }, @@ -2352,7 +2491,7 @@ "members":{ "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

" + "documentation":"

The namespace of the package that this package depends on. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

" }, "package":{ "shape":"PackageName", @@ -2373,6 +2512,28 @@ "type":"list", "member":{"shape":"PackageDependency"} }, + "PackageDescription":{ + "type":"structure", + "members":{ + "format":{ + "shape":"PackageFormat", + "documentation":"

A format that specifies the type of the package.

" + }, + "namespace":{ + "shape":"PackageNamespace", + "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

" + }, + "name":{ + "shape":"PackageName", + "documentation":"

The name of the package.

" + }, + "originConfiguration":{ + "shape":"PackageOriginConfiguration", + "documentation":"

The package origin configuration for the package.

" + } + }, + "documentation":"

Details about a package.

" + }, "PackageFormat":{ "type":"string", "enum":[ @@ -2386,28 +2547,60 @@ "type":"string", "max":255, "min":1, - "pattern":"[^!#/\\s]+" + "pattern":"[^#/\\s]+" }, "PackageNamespace":{ "type":"string", "max":255, "min":1, - "pattern":"[^!#/\\s]+" + "pattern":"[^#/\\s]+" + }, + "PackageOriginConfiguration":{ + "type":"structure", + "members":{ + "restrictions":{ + "shape":"PackageOriginRestrictions", + "documentation":"

A PackageOriginRestrictions object that contains information about the upstream and publish package origin configuration for the package.

" + } + }, + "documentation":"

Details about the package origin configuration of a package.

" + }, + "PackageOriginRestrictions":{ + "type":"structure", + "required":[ + "publish", + "upstream" + ], + "members":{ + "publish":{ + "shape":"AllowPublish", + "documentation":"

The package origin configuration that determines if new versions of the package can be published directly to the repository.

" + }, + "upstream":{ + "shape":"AllowUpstream", + "documentation":"

The package origin configuration that determines if new versions of the package can be added to the repository from an external connection or upstream source.

" + } + }, + "documentation":"

Details about the origin restrictions set on the package. The package origin restrictions determine how new versions of a package can be added to a specific repository.

" }, "PackageSummary":{ "type":"structure", "members":{ "format":{ "shape":"PackageFormat", - "documentation":"

The format of the package. Valid values are:

  • npm

  • pypi

  • maven

" + "documentation":"

The format of the package.

" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

" + "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

" }, "package":{ "shape":"PackageName", "documentation":"

The name of the package.

" + }, + "originConfiguration":{ + "shape":"PackageOriginConfiguration", + "documentation":"

A PackageOriginConfiguration object that contains a PackageOriginRestrictions object that contains information about the upstream and publish package origin restrictions.

" } }, "documentation":"

Details about a package, including its format, namespace, and name. The ListPackages operation returns a list of PackageSummary objects.

" @@ -2420,18 +2613,18 @@ "type":"string", "max":255, "min":1, - "pattern":"[^!#/\\s]+" + "pattern":"[^#/\\s]+" }, "PackageVersionDescription":{ "type":"structure", "members":{ "format":{ "shape":"PackageFormat", - "documentation":"

The format of the package version. The valid package formats are:

  • npm: A Node Package Manager (npm) package.

  • pypi: A Python Package Index (PyPI) package.

  • maven: A Maven package that contains compiled code in a distributable format, such as a JAR file.

" + "documentation":"

The format of the package version.

" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

" + "documentation":"

The namespace of the package version. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

" }, "packageName":{ "shape":"PackageName", @@ -2471,7 +2664,11 @@ }, "status":{ "shape":"PackageVersionStatus", - "documentation":"

A string that contains the status of the package version. It can be one of the following:

  • Published

  • Unfinished

  • Unlisted

  • Archived

  • Disposed

" + "documentation":"

A string that contains the status of the package version.

" + }, + "origin":{ + "shape":"PackageVersionOrigin", + "documentation":"

A PackageVersionOrigin object that contains information about how the package version was added to the repository.

" } }, "documentation":"

Details about a package version.

" @@ -2488,7 +2685,7 @@ "documentation":"

The error message associated with the error.

" } }, - "documentation":"

An error associated with package.

" + "documentation":"

l An error associated with package.

" }, "PackageVersionErrorCode":{ "type":"string", @@ -2511,6 +2708,28 @@ "member":{"shape":"PackageVersion"}, "max":100 }, + "PackageVersionOrigin":{ + "type":"structure", + "members":{ + "domainEntryPoint":{ + "shape":"DomainEntryPoint", + "documentation":"

A DomainEntryPoint object that contains information about from which repository or external connection the package version was added to the domain.

" + }, + "originType":{ + "shape":"PackageVersionOriginType", + "documentation":"

Describes how the package version was originally added to the domain. An INTERNAL origin type means the package version was published directly to a repository in the domain. An EXTERNAL origin type means the package version was ingested from an external connection.

" + } + }, + "documentation":"

Information about how a package version was added to a repository.

" + }, + "PackageVersionOriginType":{ + "type":"string", + "enum":[ + "INTERNAL", + "EXTERNAL", + "UNKNOWN" + ] + }, "PackageVersionRevision":{ "type":"string", "max":50, @@ -2554,7 +2773,11 @@ }, "status":{ "shape":"PackageVersionStatus", - "documentation":"

A string that contains the status of the package version. It can be one of the following:

  • Published

  • Unfinished

  • Unlisted

  • Archived

  • Disposed

" + "documentation":"

A string that contains the status of the package version. It can be one of the following:

" + }, + "origin":{ + "shape":"PackageVersionOrigin", + "documentation":"

A PackageVersionOrigin object that contains information about how the package version was added to the repository.

" } }, "documentation":"

Details about a package version, including its status, version, and revision. The ListPackageVersions operation returns a list of PackageVersionSummary objects.

" @@ -2571,8 +2794,9 @@ }, "PolicyDocument":{ "type":"string", - "max":5120, - "min":1 + "max":7168, + "min":1, + "pattern":"[\\P{C}\\s]+" }, "PolicyRevision":{ "type":"string", @@ -2593,7 +2817,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

" + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

" }, "policyRevision":{ "shape":"PolicyRevision", @@ -2614,6 +2838,67 @@ } } }, + "PutPackageOriginConfigurationRequest":{ + "type":"structure", + "required":[ + "domain", + "repository", + "format", + "package", + "restrictions" + ], + "members":{ + "domain":{ + "shape":"DomainName", + "documentation":"

The name of the domain that contains the repository that contains the package.

", + "location":"querystring", + "locationName":"domain" + }, + "domainOwner":{ + "shape":"AccountId", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", + "location":"querystring", + "locationName":"domain-owner" + }, + "repository":{ + "shape":"RepositoryName", + "documentation":"

The name of the repository that contains the package.

", + "location":"querystring", + "locationName":"repository" + }, + "format":{ + "shape":"PackageFormat", + "documentation":"

A format that specifies the type of the package to be updated.

", + "location":"querystring", + "locationName":"format" + }, + "namespace":{ + "shape":"PackageNamespace", + "documentation":"

The namespace of the package to be updated. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • Python and NuGet packages do not contain a corresponding component, packages of those formats do not have a namespace.

", + "location":"querystring", + "locationName":"namespace" + }, + "package":{ + "shape":"PackageName", + "documentation":"

The name of the package to be updated.

", + "location":"querystring", + "locationName":"package" + }, + "restrictions":{ + "shape":"PackageOriginRestrictions", + "documentation":"

A PackageOriginRestrictions object that contains information about the upstream and publish package origin restrictions. The upstream restriction determines if new package versions can be ingested or retained from external connections or upstream repositories. The publish restriction determines if new package versions can be published directly to the repository.

You must include both the desired upstream and publish restrictions.

" + } + } + }, + "PutPackageOriginConfigurationResult":{ + "type":"structure", + "members":{ + "originConfiguration":{ + "shape":"PackageOriginConfiguration", + "documentation":"

A PackageOriginConfiguration object that describes the origin configuration set for the package. It contains a PackageOriginRestrictions object that describes how new versions of the package can be introduced to the repository.

" + } + } + }, "PutRepositoryPermissionsPolicyRequest":{ "type":"structure", "required":[ @@ -2630,7 +2915,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -2668,7 +2953,7 @@ }, "administratorAccount":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that manages the repository.

" + "documentation":"

The 12-digit account number of the Amazon Web Services account that manages the repository.

" }, "domainName":{ "shape":"DomainName", @@ -2676,7 +2961,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces.

" + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain that contains the repository. It does not include dashes or spaces.

" }, "arn":{ "shape":"Arn", @@ -2688,14 +2973,14 @@ }, "upstreams":{ "shape":"UpstreamRepositoryInfoList", - "documentation":"

A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see Working with upstream repositories.

" + "documentation":"

A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when CodeArtifact looks for a requested package version. For more information, see Working with upstream repositories.

" }, "externalConnections":{ "shape":"RepositoryExternalConnectionInfoList", "documentation":"

An array of external connections associated with the repository.

" } }, - "documentation":"

The details of a repository stored in AWS CodeArtifact. A CodeArtifact repository contains a set of package versions, each of which maps to a set of assets. Repositories are polyglot—a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools like the npm CLI, the Maven CLI (mvn), and pip. You can create up to 100 repositories per AWS account.

" + "documentation":"

The details of a repository stored in CodeArtifact. A CodeArtifact repository contains a set of package versions, each of which maps to a set of assets. Repositories are polyglot—a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools like the npm CLI, the Maven CLI (mvn), and pip. You can create up to 100 repositories per Amazon Web Services account.

" }, "RepositoryExternalConnectionInfo":{ "type":"structure", @@ -2706,7 +2991,7 @@ }, "packageFormat":{ "shape":"PackageFormat", - "documentation":"

The package format associated with a repository's external connection. The valid package formats are:

  • npm: A Node Package Manager (npm) package.

  • pypi: A Python Package Index (PyPI) package.

  • maven: A Maven package that contains compiled code in a distributable format, such as a JAR file.

" + "documentation":"

The package format associated with a repository's external connection. The valid package formats are:

  • npm: A Node Package Manager (npm) package.

  • pypi: A Python Package Index (PyPI) package.

  • maven: A Maven package that contains compiled code in a distributable format, such as a JAR file.

  • nuget: A NuGet package.

" }, "status":{ "shape":"ExternalConnectionStatus", @@ -2734,7 +3019,7 @@ }, "administratorAccount":{ "shape":"AccountId", - "documentation":"

The AWS account ID that manages the repository.

" + "documentation":"

The Amazon Web Services account ID that manages the repository.

" }, "domainName":{ "shape":"DomainName", @@ -2742,7 +3027,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

" + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

" }, "arn":{ "shape":"Arn", @@ -2770,7 +3055,7 @@ }, "resourceType":{ "shape":"ResourceType", - "documentation":"

The type of AWS resource.

" + "documentation":"

The type of Amazon Web Services resource.

" } }, "documentation":"

The operation did not succeed because the resource requested is not found in the service.

", @@ -2793,7 +3078,7 @@ "documentation":"

The resource policy formatted in JSON.

" } }, - "documentation":"

An AWS CodeArtifact resource policy that contains a resource ARN, document details, and a revision.

" + "documentation":"

An CodeArtifact resource policy that contains a resource ARN, document details, and a revision.

" }, "ResourceType":{ "type":"string", @@ -2817,7 +3102,7 @@ }, "resourceType":{ "shape":"ResourceType", - "documentation":"

The type of AWS resource.

" + "documentation":"

The type of Amazon Web Services resource.

" } }, "documentation":"

The operation did not succeed because it would have exceeded a service limit for your account.

", @@ -2839,7 +3124,7 @@ }, "status":{ "shape":"PackageVersionStatus", - "documentation":"

The status of a package version. Valid statuses are:

  • Published

  • Unfinished

  • Unlisted

  • Archived

  • Disposed

" + "documentation":"

The status of a package version.

" } }, "documentation":"

Contains the revision and status of a package version.

" @@ -2865,12 +3150,13 @@ "documentation":"

The tag value.

" } }, - "documentation":"

A tag is a key-value pair that can be used to manage, search for, or filter resources in AWS CodeArtifact.

" + "documentation":"

A tag is a key-value pair that can be used to manage, search for, or filter resources in CodeArtifact.

" }, "TagKey":{ "type":"string", "max":128, - "min":1 + "min":1, + "pattern":"\\P{C}+" }, "TagKeyList":{ "type":"list", @@ -2911,7 +3197,8 @@ "TagValue":{ "type":"string", "max":256, - "min":0 + "min":0, + "pattern":"\\P{C}*" }, "ThrottlingException":{ "type":"structure", @@ -2973,7 +3260,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -2985,13 +3272,13 @@ }, "format":{ "shape":"PackageFormat", - "documentation":"

A format that specifies the type of the package with the statuses to update. The valid values are:

  • npm

  • pypi

  • maven

", + "documentation":"

A format that specifies the type of the package with the statuses to update.

", "location":"querystring", "locationName":"format" }, "namespace":{ "shape":"PackageNamespace", - "documentation":"

The namespace of the package. The package component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package is its groupId.

  • The namespace of an npm package is its scope.

  • A Python package does not contain a corresponding component, so Python packages do not have a namespace.

", + "documentation":"

The namespace of the package version to be updated. The package version component that specifies its namespace depends on its type. For example:

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm package version is its scope.

  • Python and NuGet package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

", "location":"querystring", "locationName":"namespace" }, @@ -3047,7 +3334,7 @@ }, "domainOwner":{ "shape":"AccountId", - "documentation":"

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

", + "documentation":"

The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

", "location":"querystring", "locationName":"domain-owner" }, @@ -3063,7 +3350,7 @@ }, "upstreams":{ "shape":"UpstreamRepositoryList", - "documentation":"

A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see Working with upstream repositories.

" + "documentation":"

A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when CodeArtifact looks for a requested package version. For more information, see Working with upstream repositories.

" } } }, @@ -3130,5 +3417,5 @@ ] } }, - "documentation":"

AWS CodeArtifact is a fully managed artifact repository compatible with language-native package managers and build tools such as npm, Apache Maven, and pip. You can use CodeArtifact to share packages with development teams and pull packages. Packages can be pulled from both public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact repository and another repository, which effectively merges their contents from the point of view of a package manager client.

AWS CodeArtifact Components

Use the information in this guide to help you work with the following CodeArtifact components:

  • Repository: A CodeArtifact repository contains a set of package versions, each of which maps to a set of assets, or files. Repositories are polyglot, so a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools like the npm CLI, the Maven CLI ( mvn ), and pip .

  • Domain: Repositories are aggregated into a higher-level entity known as a domain. All package assets and metadata are stored in the domain, but are consumed through repositories. A given package asset, such as a Maven JAR file, is stored once per domain, no matter how many repositories it's present in. All of the assets and metadata in a domain are encrypted with the same customer master key (CMK) stored in AWS Key Management Service (AWS KMS).

    Each repository is a member of a single domain and can't be moved to a different domain.

    The domain allows organizational policy to be applied across multiple repositories, such as which accounts can access repositories in the domain, and which public repositories can be used as sources of packages.

    Although an organization can have multiple domains, we recommend a single production domain that contains all published artifacts so that teams can find and share packages across their organization.

  • Package: A package is a bundle of software and the metadata required to resolve dependencies and install the software. CodeArtifact supports npm, PyPI, and Maven package formats.

    In CodeArtifact, a package consists of:

    • A name (for example, webpack is the name of a popular npm package)

    • An optional namespace (for example, @types in @types/node)

    • A set of versions (for example, 1.0.0, 1.0.1, 1.0.2, etc.)

    • Package-level metadata (for example, npm tags)

  • Package version: A version of a package, such as @types/node 12.6.9. The version number format and semantics vary for different package formats. For example, npm package versions must conform to the Semantic Versioning specification. In CodeArtifact, a package version consists of the version identifier, metadata at the package version level, and a set of assets.

  • Upstream repository: One repository is upstream of another when the package versions in it can be accessed from the repository endpoint of the downstream repository, effectively merging the contents of the two repositories from the point of view of a client. CodeArtifact allows creating an upstream relationship between two repositories.

  • Asset: An individual file stored in CodeArtifact associated with a package version, such as an npm .tgz file or Maven POM and JAR files.

CodeArtifact supports these operations:

  • AssociateExternalConnection: Adds an existing external connection to a repository.

  • CopyPackageVersions: Copies package versions from one repository to another repository in the same domain.

  • CreateDomain: Creates a domain

  • CreateRepository: Creates a CodeArtifact repository in a domain.

  • DeleteDomain: Deletes a domain. You cannot delete a domain that contains repositories.

  • DeleteDomainPermissionsPolicy: Deletes the resource policy that is set on a domain.

  • DeletePackageVersions: Deletes versions of a package. After a package has been deleted, it can be republished, but its assets and metadata cannot be restored because they have been permanently removed from storage.

  • DeleteRepository: Deletes a repository.

  • DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a repository.

  • DescribeDomain: Returns a DomainDescription object that contains information about the requested domain.

  • DescribePackageVersion: Returns a PackageVersionDescription object that contains details about a package version.

  • DescribeRepository: Returns a RepositoryDescription object that contains detailed information about the requested repository.

  • DisposePackageVersions: Disposes versions of a package. A package version with the status Disposed cannot be restored because they have been permanently removed from storage.

  • DisassociateExternalConnection: Removes an existing external connection from a repository.

  • GetAuthorizationToken: Generates a temporary authorization token for accessing repositories in the domain. The token expires the authorization period has passed. The default authorization period is 12 hours and can be customized to any length with a maximum of 12 hours.

  • GetDomainPermissionsPolicy: Returns the policy of a resource that is attached to the specified domain.

  • GetPackageVersionAsset: Returns the contents of an asset that is in a package version.

  • GetPackageVersionReadme: Gets the readme file or descriptive text for a package version.

  • GetRepositoryEndpoint: Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format:

    • npm

    • pypi

    • maven

  • GetRepositoryPermissionsPolicy: Returns the resource policy that is set on a repository.

  • ListDomains: Returns a list of DomainSummary objects. Each returned DomainSummary object contains information about a domain.

  • ListPackages: Lists the packages in a repository.

  • ListPackageVersionAssets: Lists the assets for a given package version.

  • ListPackageVersionDependencies: Returns a list of the direct dependencies for a package version.

  • ListPackageVersions: Returns a list of package versions for a specified package in a repository.

  • ListRepositories: Returns a list of repositories owned by the AWS account that called this method.

  • ListRepositoriesInDomain: Returns a list of the repositories in a domain.

  • PutDomainPermissionsPolicy: Attaches a resource policy to a domain.

  • PutRepositoryPermissionsPolicy: Sets the resource policy on a repository that specifies permissions to access it.

  • UpdatePackageVersionsStatus: Updates the status of one or more versions of a package.

  • UpdateRepository: Updates the properties of a repository.

" + "documentation":"

CodeArtifact is a fully managed artifact repository compatible with language-native package managers and build tools such as npm, Apache Maven, pip, and dotnet. You can use CodeArtifact to share packages with development teams and pull packages. Packages can be pulled from both public and CodeArtifact repositories. You can also create an upstream relationship between a CodeArtifact repository and another repository, which effectively merges their contents from the point of view of a package manager client.

CodeArtifact Components

Use the information in this guide to help you work with the following CodeArtifact components:

  • Repository: A CodeArtifact repository contains a set of package versions, each of which maps to a set of assets, or files. Repositories are polyglot, so a single repository can contain packages of any supported type. Each repository exposes endpoints for fetching and publishing packages using tools like the npm CLI, the Maven CLI ( mvn ), Python CLIs ( pip and twine), and NuGet CLIs (nuget and dotnet).

  • Domain: Repositories are aggregated into a higher-level entity known as a domain. All package assets and metadata are stored in the domain, but are consumed through repositories. A given package asset, such as a Maven JAR file, is stored once per domain, no matter how many repositories it's present in. All of the assets and metadata in a domain are encrypted with the same customer master key (CMK) stored in Key Management Service (KMS).

    Each repository is a member of a single domain and can't be moved to a different domain.

    The domain allows organizational policy to be applied across multiple repositories, such as which accounts can access repositories in the domain, and which public repositories can be used as sources of packages.

    Although an organization can have multiple domains, we recommend a single production domain that contains all published artifacts so that teams can find and share packages across their organization.

  • Package: A package is a bundle of software and the metadata required to resolve dependencies and install the software. CodeArtifact supports npm, PyPI, Maven, and NuGet package formats.

    In CodeArtifact, a package consists of:

    • A name (for example, webpack is the name of a popular npm package)

    • An optional namespace (for example, @types in @types/node)

    • A set of versions (for example, 1.0.0, 1.0.1, 1.0.2, etc.)

    • Package-level metadata (for example, npm tags)

  • Package version: A version of a package, such as @types/node 12.6.9. The version number format and semantics vary for different package formats. For example, npm package versions must conform to the Semantic Versioning specification. In CodeArtifact, a package version consists of the version identifier, metadata at the package version level, and a set of assets.

  • Upstream repository: One repository is upstream of another when the package versions in it can be accessed from the repository endpoint of the downstream repository, effectively merging the contents of the two repositories from the point of view of a client. CodeArtifact allows creating an upstream relationship between two repositories.

  • Asset: An individual file stored in CodeArtifact associated with a package version, such as an npm .tgz file or Maven POM and JAR files.

CodeArtifact supports these operations:

  • AssociateExternalConnection: Adds an existing external connection to a repository.

  • CopyPackageVersions: Copies package versions from one repository to another repository in the same domain.

  • CreateDomain: Creates a domain

  • CreateRepository: Creates a CodeArtifact repository in a domain.

  • DeleteDomain: Deletes a domain. You cannot delete a domain that contains repositories.

  • DeleteDomainPermissionsPolicy: Deletes the resource policy that is set on a domain.

  • DeletePackageVersions: Deletes versions of a package. After a package has been deleted, it can be republished, but its assets and metadata cannot be restored because they have been permanently removed from storage.

  • DeleteRepository: Deletes a repository.

  • DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a repository.

  • DescribeDomain: Returns a DomainDescription object that contains information about the requested domain.

  • DescribePackage: Returns a PackageDescription object that contains details about a package.

  • DescribePackageVersion: Returns a PackageVersionDescription object that contains details about a package version.

  • DescribeRepository: Returns a RepositoryDescription object that contains detailed information about the requested repository.

  • DisposePackageVersions: Disposes versions of a package. A package version with the status Disposed cannot be restored because they have been permanently removed from storage.

  • DisassociateExternalConnection: Removes an existing external connection from a repository.

  • GetAuthorizationToken: Generates a temporary authorization token for accessing repositories in the domain. The token expires the authorization period has passed. The default authorization period is 12 hours and can be customized to any length with a maximum of 12 hours.

  • GetDomainPermissionsPolicy: Returns the policy of a resource that is attached to the specified domain.

  • GetPackageVersionAsset: Returns the contents of an asset that is in a package version.

  • GetPackageVersionReadme: Gets the readme file or descriptive text for a package version.

  • GetRepositoryEndpoint: Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format:

    • maven

    • npm

    • nuget

    • pypi

  • GetRepositoryPermissionsPolicy: Returns the resource policy that is set on a repository.

  • ListDomains: Returns a list of DomainSummary objects. Each returned DomainSummary object contains information about a domain.

  • ListPackages: Lists the packages in a repository.

  • ListPackageVersionAssets: Lists the assets for a given package version.

  • ListPackageVersionDependencies: Returns a list of the direct dependencies for a package version.

  • ListPackageVersions: Returns a list of package versions for a specified package in a repository.

  • ListRepositories: Returns a list of repositories owned by the Amazon Web Services account that called this method.

  • ListRepositoriesInDomain: Returns a list of the repositories in a domain.

  • PutDomainPermissionsPolicy: Attaches a resource policy to a domain.

  • PutPackageOriginConfiguration: Sets the package origin configuration for a package, which determine how new versions of the package can be added to a specific repository.

  • PutRepositoryPermissionsPolicy: Sets the resource policy on a repository that specifies permissions to access it.

  • UpdatePackageVersionsStatus: Updates the status of one or more versions of a package.

  • UpdateRepository: Updates the properties of a repository.

" } diff --git a/botocore/data/codebuild/2016-10-06/endpoint-rule-set-1.json b/botocore/data/codebuild/2016-10-06/endpoint-rule-set-1.json new file mode 100644 index 00000000..b9abd3d5 --- /dev/null +++ b/botocore/data/codebuild/2016-10-06/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codebuild-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codebuild-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codebuild.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codebuild.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codecatalyst/2022-09-28/endpoint-rule-set-1.json b/botocore/data/codecatalyst/2022-09-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..3cd71efd --- /dev/null +++ b/botocore/data/codecatalyst/2022-09-28/endpoint-rule-set-1.json @@ -0,0 +1,213 @@ +{ + "version": "1.3", + "parameters": { + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + "us-west-2" + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + false + ] + } + ], + "error": "Partition does not support FIPS.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://codecatalyst-fips.global.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codecatalyst.global.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + false + ] + } + ], + "error": "Partition does not support FIPS.", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://codecatalyst-fips.global.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codecatalyst.global.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codecatalyst/2022-09-28/paginators-1.json b/botocore/data/codecatalyst/2022-09-28/paginators-1.json new file mode 100644 index 00000000..420fbfd1 --- /dev/null +++ b/botocore/data/codecatalyst/2022-09-28/paginators-1.json @@ -0,0 +1,45 @@ +{ + "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" + } + } +} diff --git a/botocore/data/codecatalyst/2022-09-28/service-2.json b/botocore/data/codecatalyst/2022-09-28/service-2.json new file mode 100644 index 00000000..8820f787 --- /dev/null +++ b/botocore/data/codecatalyst/2022-09-28/service-2.json @@ -0,0 +1,2573 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-09-28", + "endpointPrefix":"codecatalyst", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon CodeCatalyst", + "serviceId":"CodeCatalyst", + "signatureVersion":"bearer", + "signingName":"codecatalyst", + "uid":"codecatalyst-2022-09-28" + }, + "operations":{ + "CreateAccessToken":{ + "name":"CreateAccessToken", + "http":{ + "method":"PUT", + "requestUri":"/v1/accessTokens", + "responseCode":201 + }, + "input":{"shape":"CreateAccessTokenRequest"}, + "output":{"shape":"CreateAccessTokenResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a personal access token (PAT) for the current user. A personal access token (PAT) is similar to a password. It is associated with your user account. You use PATs to access Amazon CodeCatalyst resources such as source repositories from third-party applications like Git and integrated development environments (IDEs). For more information, see Managing personal access tokens in Amazon CodeCatalyst.

" + }, + "CreateDevEnvironment":{ + "name":"CreateDevEnvironment", + "http":{ + "method":"PUT", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/devEnvironments", + "responseCode":201 + }, + "input":{"shape":"CreateDevEnvironmentRequest"}, + "output":{"shape":"CreateDevEnvironmentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a Dev Environment in Amazon CodeCatalyst, a cloud-based development Dev Environment that you can use to quickly work on the code stored in the source repositories of your project. By default, a Dev Environment is configured to have a 2 core processor, 4GB of RAM, and 16GB of persistent storage.

", + "idempotent":true + }, + "CreateProject":{ + "name":"CreateProject", + "http":{ + "method":"PUT", + "requestUri":"/v1/spaces/{spaceName}/projects", + "responseCode":201 + }, + "input":{"shape":"CreateProjectRequest"}, + "output":{"shape":"CreateProjectResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a project in a specified space.

", + "idempotent":true + }, + "CreateSourceRepositoryBranch":{ + "name":"CreateSourceRepositoryBranch", + "http":{ + "method":"PUT", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/sourceRepositories/{sourceRepositoryName}/branches/{name}", + "responseCode":201 + }, + "input":{"shape":"CreateSourceRepositoryBranchRequest"}, + "output":{"shape":"CreateSourceRepositoryBranchResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a branch in a specified source repository in Amazon CodeCatalyst.

This API only creates a branch in a source repository hosted in Amazon CodeCatalyst. You cannot use this API to create a branch in a linked repository.

", + "idempotent":true + }, + "DeleteAccessToken":{ + "name":"DeleteAccessToken", + "http":{ + "method":"DELETE", + "requestUri":"/v1/accessTokens/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteAccessTokenRequest"}, + "output":{"shape":"DeleteAccessTokenResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a specified personal access token (PAT). A personal access token can only be deleted by the user who created it.

", + "idempotent":true + }, + "DeleteDevEnvironment":{ + "name":"DeleteDevEnvironment", + "http":{ + "method":"DELETE", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/devEnvironments/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteDevEnvironmentRequest"}, + "output":{"shape":"DeleteDevEnvironmentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a Dev Environment.

", + "idempotent":true + }, + "GetDevEnvironment":{ + "name":"GetDevEnvironment", + "http":{ + "method":"GET", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/devEnvironments/{id}", + "responseCode":200 + }, + "input":{"shape":"GetDevEnvironmentRequest"}, + "output":{"shape":"GetDevEnvironmentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about a Dev Environment for a source repository in a project. Dev Environments are specific to the user who creates them.

" + }, + "GetProject":{ + "name":"GetProject", + "http":{ + "method":"GET", + "requestUri":"/v1/spaces/{spaceName}/projects/{name}", + "responseCode":200 + }, + "input":{"shape":"GetProjectRequest"}, + "output":{"shape":"GetProjectResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about a project.

" + }, + "GetSourceRepositoryCloneUrls":{ + "name":"GetSourceRepositoryCloneUrls", + "http":{ + "method":"GET", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/sourceRepositories/{sourceRepositoryName}/cloneUrls", + "responseCode":200 + }, + "input":{"shape":"GetSourceRepositoryCloneUrlsRequest"}, + "output":{"shape":"GetSourceRepositoryCloneUrlsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about the URLs that can be used with a Git client to clone a source repository.

" + }, + "GetSpace":{ + "name":"GetSpace", + "http":{ + "method":"GET", + "requestUri":"/v1/spaces/{name}", + "responseCode":200 + }, + "input":{"shape":"GetSpaceRequest"}, + "output":{"shape":"GetSpaceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about an space.

" + }, + "GetSubscription":{ + "name":"GetSubscription", + "http":{ + "method":"GET", + "requestUri":"/v1/spaces/{spaceName}/subscription", + "responseCode":200 + }, + "input":{"shape":"GetSubscriptionRequest"}, + "output":{"shape":"GetSubscriptionResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about the Amazon Web Services account used for billing purposes and the billing plan for the space.

" + }, + "GetUserDetails":{ + "name":"GetUserDetails", + "http":{ + "method":"GET", + "requestUri":"/userDetails", + "responseCode":200 + }, + "input":{"shape":"GetUserDetailsRequest"}, + "output":{"shape":"GetUserDetailsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about a user.

" + }, + "ListAccessTokens":{ + "name":"ListAccessTokens", + "http":{ + "method":"POST", + "requestUri":"/v1/accessTokens", + "responseCode":200 + }, + "input":{"shape":"ListAccessTokensRequest"}, + "output":{"shape":"ListAccessTokensResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all personal access tokens (PATs) associated with the user who calls the API. You can only list PATs associated with your user account.

" + }, + "ListDevEnvironments":{ + "name":"ListDevEnvironments", + "http":{ + "method":"POST", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/devEnvironments", + "responseCode":200 + }, + "input":{"shape":"ListDevEnvironmentsRequest"}, + "output":{"shape":"ListDevEnvironmentsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrives a list of Dev Environments in a project.

" + }, + "ListEventLogs":{ + "name":"ListEventLogs", + "http":{ + "method":"POST", + "requestUri":"/v1/spaces/{spaceName}/eventLogs", + "responseCode":200 + }, + "input":{"shape":"ListEventLogsRequest"}, + "output":{"shape":"ListEventLogsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of events that occurred during a specified time period in a space. You can use these events to audit user and system activity in a space.

" + }, + "ListProjects":{ + "name":"ListProjects", + "http":{ + "method":"POST", + "requestUri":"/v1/spaces/{spaceName}/projects", + "responseCode":200 + }, + "input":{"shape":"ListProjectsRequest"}, + "output":{"shape":"ListProjectsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of projects.

" + }, + "ListSourceRepositories":{ + "name":"ListSourceRepositories", + "http":{ + "method":"POST", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/sourceRepositories", + "responseCode":200 + }, + "input":{"shape":"ListSourceRepositoriesRequest"}, + "output":{"shape":"ListSourceRepositoriesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of source repositories in a project.

" + }, + "ListSourceRepositoryBranches":{ + "name":"ListSourceRepositoryBranches", + "http":{ + "method":"POST", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/sourceRepositories/{sourceRepositoryName}/branches", + "responseCode":200 + }, + "input":{"shape":"ListSourceRepositoryBranchesRequest"}, + "output":{"shape":"ListSourceRepositoryBranchesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of branches in a specified source repository.

" + }, + "ListSpaces":{ + "name":"ListSpaces", + "http":{ + "method":"POST", + "requestUri":"/v1/spaces", + "responseCode":200 + }, + "input":{"shape":"ListSpacesRequest"}, + "output":{"shape":"ListSpacesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of spaces.

" + }, + "StartDevEnvironment":{ + "name":"StartDevEnvironment", + "http":{ + "method":"PUT", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/devEnvironments/{id}/start", + "responseCode":200 + }, + "input":{"shape":"StartDevEnvironmentRequest"}, + "output":{"shape":"StartDevEnvironmentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Starts a specified Dev Environment and puts it into an active state.

", + "idempotent":true + }, + "StartDevEnvironmentSession":{ + "name":"StartDevEnvironmentSession", + "http":{ + "method":"PUT", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/devEnvironments/{id}/session", + "responseCode":200 + }, + "input":{"shape":"StartDevEnvironmentSessionRequest"}, + "output":{"shape":"StartDevEnvironmentSessionResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Starts a session for a specified Dev Environment.

" + }, + "StopDevEnvironment":{ + "name":"StopDevEnvironment", + "http":{ + "method":"PUT", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/devEnvironments/{id}/stop", + "responseCode":200 + }, + "input":{"shape":"StopDevEnvironmentRequest"}, + "output":{"shape":"StopDevEnvironmentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Pauses a specified Dev Environment and places it in a non-running state. Stopped Dev Environments do not consume compute minutes.

", + "idempotent":true + }, + "UpdateDevEnvironment":{ + "name":"UpdateDevEnvironment", + "http":{ + "method":"PATCH", + "requestUri":"/v1/spaces/{spaceName}/projects/{projectName}/devEnvironments/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateDevEnvironmentRequest"}, + "output":{"shape":"UpdateDevEnvironmentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Changes one or more values for a Dev Environment. Updating certain values of the Dev Environment will cause a restart.

", + "idempotent":true + }, + "VerifySession":{ + "name":"VerifySession", + "http":{ + "method":"GET", + "requestUri":"/session", + "responseCode":200 + }, + "output":{"shape":"VerifySessionResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Verifies whether the calling user has a valid Amazon CodeCatalyst login and session. If successful, this returns the ID of the user in Amazon CodeCatalyst.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied because you don't have sufficient access to perform this action. Verify that you are a member of a role that allows this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AccessTokenId":{ + "type":"string", + "max":36, + "min":1 + }, + "AccessTokenName":{ + "type":"string", + "max":100, + "min":1 + }, + "AccessTokenSecret":{ + "type":"string", + "max":4000, + "min":1, + "sensitive":true + }, + "AccessTokenSummaries":{ + "type":"list", + "member":{"shape":"AccessTokenSummary"} + }, + "AccessTokenSummary":{ + "type":"structure", + "required":[ + "id", + "name" + ], + "members":{ + "id":{ + "shape":"AccessTokenId", + "documentation":"

The system-generated ID of the personal access token.

" + }, + "name":{ + "shape":"AccessTokenName", + "documentation":"

The friendly name of the personal access token.

" + }, + "expiresTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the personal access token will expire, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + } + }, + "documentation":"

Information about a specified personal access token (PAT).

" + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ClientToken":{ + "type":"string", + "max":1024, + "min":1 + }, + "ComparisonOperator":{ + "type":"string", + "enum":[ + "EQ", + "GT", + "GE", + "LT", + "LE" + ] + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied because the requested operation would cause a conflict with the current state of a service resource associated with the request. Another user might have updated the resource. Reload, make sure you have the latest data, and then try again.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateAccessTokenRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"AccessTokenName", + "documentation":"

The friendly name of the personal access token.

" + }, + "expiresTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the personal access token expires, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + } + } + }, + "CreateAccessTokenResponse":{ + "type":"structure", + "required":["secret"], + "members":{ + "secret":{ + "shape":"AccessTokenSecret", + "documentation":"

The secret value of the personal access token.

" + }, + "name":{ + "shape":"AccessTokenName", + "documentation":"

The friendly name of the personal access token.

" + }, + "expiresTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time the personal access token expires, in coordinated universal time (UTC) timestamp format as specified in RFC 3339. If not specified, the default is one year from creation.

" + } + } + }, + "CreateDevEnvironmentRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "instanceType", + "persistentStorage" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "repositories":{ + "shape":"RepositoriesInput", + "documentation":"

The source repository that contains the branch to clone into the Dev Environment.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.

" + }, + "alias":{ + "shape":"CreateDevEnvironmentRequestAliasString", + "documentation":"

The user-defined alias for a Dev Environment.

" + }, + "ides":{ + "shape":"IdeConfigurationList", + "documentation":"

Information about the integrated development environment (IDE) configured for a Dev Environment.

An IDE is required to create a Dev Environment. For Dev Environment creation, this field contains configuration information and must be provided.

" + }, + "instanceType":{ + "shape":"InstanceType", + "documentation":"

The Amazon EC2 instace type to use for the Dev Environment.

" + }, + "inactivityTimeoutMinutes":{ + "shape":"InactivityTimeoutMinutes", + "documentation":"

The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.

" + }, + "persistentStorage":{ + "shape":"PersistentStorageConfiguration", + "documentation":"

Information about the amount of storage allocated to the Dev Environment. By default, a Dev Environment is configured to have 16GB of persistent storage.

Valid values for persistent storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64.

" + } + } + }, + "CreateDevEnvironmentRequestAliasString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9]+(?:[-_\\.][a-zA-Z0-9]+)*" + }, + "CreateDevEnvironmentResponse":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

" + } + } + }, + "CreateProjectRequest":{ + "type":"structure", + "required":[ + "spaceName", + "displayName" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "displayName":{ + "shape":"ProjectDisplayName", + "documentation":"

The friendly name of the project that will be displayed to users.

" + }, + "description":{ + "shape":"ProjectDescription", + "documentation":"

The description of the project. This description will be displayed to all users of the project. We recommend providing a brief description of the project and its intended purpose.

" + } + } + }, + "CreateProjectResponse":{ + "type":"structure", + "required":["name"], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "name":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The friendly name of the project.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the project.

" + } + } + }, + "CreateSourceRepositoryBranchRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "sourceRepositoryName", + "name" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "sourceRepositoryName":{ + "shape":"SourceRepositoryNameString", + "documentation":"

The name of the repository where you want to create a branch.

", + "location":"uri", + "locationName":"sourceRepositoryName" + }, + "name":{ + "shape":"SourceRepositoryBranchString", + "documentation":"

The name for the branch you're creating.

", + "location":"uri", + "locationName":"name" + }, + "headCommitId":{ + "shape":"String", + "documentation":"

The commit ID in an existing branch from which you want to create the new branch.

" + } + } + }, + "CreateSourceRepositoryBranchResponse":{ + "type":"structure", + "members":{ + "ref":{ + "shape":"SourceRepositoryBranchRefString", + "documentation":"

The Git reference name of the branch.

" + }, + "name":{ + "shape":"SourceRepositoryBranchString", + "documentation":"

The name of the newly created branch.

" + }, + "lastUpdatedTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time the branch was last updated, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + }, + "headCommitId":{ + "shape":"String", + "documentation":"

The commit ID of the tip of the newly created branch.

" + } + } + }, + "DeleteAccessTokenRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"AccessTokenId", + "documentation":"

The ID of the personal access token to delete. You can find the IDs of all PATs associated with your user account by calling ListAccessTokens.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteAccessTokenResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteDevEnvironmentRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment you want to delete. To retrieve a list of Dev Environment IDs, use ListDevEnvironments.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteDevEnvironmentResponse":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the deleted Dev Environment.

" + } + } + }, + "DevEnvironmentAccessDetails":{ + "type":"structure", + "required":[ + "streamUrl", + "tokenValue" + ], + "members":{ + "streamUrl":{ + "shape":"SensitiveString", + "documentation":"

The URL used to send commands to and from the Dev Environment.

" + }, + "tokenValue":{ + "shape":"SensitiveString", + "documentation":"

An encrypted token value that contains session and caller information used to authenticate the connection.

" + } + }, + "documentation":"

Information about connection details for a Dev Environment.

", + "sensitive":true + }, + "DevEnvironmentRepositorySummaries":{ + "type":"list", + "member":{"shape":"DevEnvironmentRepositorySummary"} + }, + "DevEnvironmentRepositorySummary":{ + "type":"structure", + "required":["repositoryName"], + "members":{ + "repositoryName":{ + "shape":"SourceRepositoryNameString", + "documentation":"

The name of the source repository.

" + }, + "branchName":{ + "shape":"SourceRepositoryBranchString", + "documentation":"

The name of the branch in a source repository cloned into the Dev Environment.

" + } + }, + "documentation":"

Information about the source repsitory for a Dev Environment.

" + }, + "DevEnvironmentSessionConfiguration":{ + "type":"structure", + "required":["sessionType"], + "members":{ + "sessionType":{ + "shape":"DevEnvironmentSessionType", + "documentation":"

The type of the session.

" + }, + "executeCommandSessionConfiguration":{ + "shape":"ExecuteCommandSessionConfiguration", + "documentation":"

Information about optional commands that will be run on the Dev Environment when the SSH session begins.

" + } + }, + "documentation":"

Information about the configuration of a Dev Environment session.

" + }, + "DevEnvironmentSessionType":{ + "type":"string", + "enum":[ + "SSM", + "SSH" + ] + }, + "DevEnvironmentStatus":{ + "type":"string", + "enum":[ + "PENDING", + "RUNNING", + "STARTING", + "STOPPING", + "STOPPED", + "FAILED", + "DELETING", + "DELETED" + ] + }, + "DevEnvironmentSummary":{ + "type":"structure", + "required":[ + "id", + "lastUpdatedTime", + "creatorId", + "status", + "repositories", + "instanceType", + "inactivityTimeoutMinutes", + "persistentStorage" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID for the Dev Environment.

" + }, + "lastUpdatedTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when the Dev Environment was last updated, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + }, + "creatorId":{ + "shape":"DevEnvironmentSummaryCreatorIdString", + "documentation":"

The system-generated unique ID of the user who created the Dev Environment.

" + }, + "status":{ + "shape":"DevEnvironmentStatus", + "documentation":"

The status of the Dev Environment.

" + }, + "statusReason":{ + "shape":"StatusReason", + "documentation":"

The reason for the status.

" + }, + "repositories":{ + "shape":"DevEnvironmentRepositorySummaries", + "documentation":"

Information about the repositories that will be cloned into the Dev Environment. If no rvalue is specified, no repository is cloned.

" + }, + "alias":{ + "shape":"DevEnvironmentSummaryAliasString", + "documentation":"

The user-specified alias for the Dev Environment.

" + }, + "ides":{ + "shape":"Ides", + "documentation":"

Information about the integrated development environment (IDE) configured for a Dev Environment.

" + }, + "instanceType":{ + "shape":"InstanceType", + "documentation":"

The Amazon EC2 instace type used for the Dev Environment.

" + }, + "inactivityTimeoutMinutes":{ + "shape":"InactivityTimeoutMinutes", + "documentation":"

The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Dev Environments consume compute minutes when running.

" + }, + "persistentStorage":{ + "shape":"PersistentStorage", + "documentation":"

Information about the configuration of persistent storage for the Dev Environment.

" + } + }, + "documentation":"

Information about a Dev Environment.

" + }, + "DevEnvironmentSummaryAliasString":{ + "type":"string", + "max":128, + "min":0 + }, + "DevEnvironmentSummaryCreatorIdString":{ + "type":"string", + "max":1024, + "min":0 + }, + "DevEnvironmentSummaryList":{ + "type":"list", + "member":{"shape":"DevEnvironmentSummary"} + }, + "EmailAddress":{ + "type":"structure", + "members":{ + "email":{ + "shape":"String", + "documentation":"

The email address.

" + }, + "verified":{ + "shape":"Boolean", + "documentation":"

Whether the email address has been verified.

" + } + }, + "documentation":"

Information about an email address.

" + }, + "EventLogEntries":{ + "type":"list", + "member":{"shape":"EventLogEntry"} + }, + "EventLogEntry":{ + "type":"structure", + "required":[ + "id", + "eventName", + "eventType", + "eventCategory", + "eventSource", + "eventTime", + "operationType", + "userIdentity" + ], + "members":{ + "id":{ + "shape":"String", + "documentation":"

The system-generated unique ID of the event.

" + }, + "eventName":{ + "shape":"String", + "documentation":"

The name of the event.

" + }, + "eventType":{ + "shape":"String", + "documentation":"

The type of the event.

" + }, + "eventCategory":{ + "shape":"String", + "documentation":"

The category for the event.

" + }, + "eventSource":{ + "shape":"String", + "documentation":"

The source of the event.

" + }, + "eventTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time the event took place, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + }, + "operationType":{ + "shape":"OperationType", + "documentation":"

The type of the event.

" + }, + "userIdentity":{ + "shape":"UserIdentity", + "documentation":"

The system-generated unique ID of the user whose actions are recorded in the event.

" + }, + "projectInformation":{ + "shape":"ProjectInformation", + "documentation":"

Information about the project where the event occurred.

" + }, + "requestId":{ + "shape":"String", + "documentation":"

The system-generated unique ID of the request.

" + }, + "requestPayload":{ + "shape":"EventPayload", + "documentation":"

Information about the payload of the request.

" + }, + "responsePayload":{ + "shape":"EventPayload", + "documentation":"

Information about the payload of the response, if any.

" + }, + "errorCode":{ + "shape":"String", + "documentation":"

The code of the error, if any.

" + }, + "sourceIpAddress":{ + "shape":"String", + "documentation":"

The IP address of the user whose actions are recorded in the event.

" + }, + "userAgent":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

Information about an entry in an event log of Amazon CodeCatalyst activity.

" + }, + "EventPayload":{ + "type":"structure", + "members":{ + "contentType":{ + "shape":"String", + "documentation":"

The type of content in the event payload.

" + }, + "data":{ + "shape":"String", + "documentation":"

The data included in the event payload.

" + } + }, + "documentation":"

Information about the payload of an event recording Amazon CodeCatalyst activity.

" + }, + "ExecuteCommandSessionConfiguration":{ + "type":"structure", + "required":["command"], + "members":{ + "command":{ + "shape":"ExecuteCommandSessionConfigurationCommandString", + "documentation":"

The command used at the beginning of the SSH session to a Dev Environment.

" + }, + "arguments":{ + "shape":"ExecuteCommandSessionConfigurationArguments", + "documentation":"

An array of arguments containing arguments and members.

" + } + }, + "documentation":"

Information about the commands that will be run on a Dev Environment when an SSH session begins.

" + }, + "ExecuteCommandSessionConfigurationArguments":{ + "type":"list", + "member":{"shape":"ExecuteCommandSessionConfigurationArgumentsMemberString"} + }, + "ExecuteCommandSessionConfigurationArgumentsMemberString":{ + "type":"string", + "max":255, + "min":1 + }, + "ExecuteCommandSessionConfigurationCommandString":{ + "type":"string", + "max":255, + "min":1 + }, + "Filter":{ + "type":"structure", + "required":[ + "key", + "values" + ], + "members":{ + "key":{ + "shape":"String", + "documentation":"

" + }, + "values":{ + "shape":"StringList", + "documentation":"

" + }, + "comparisonOperator":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

" + }, + "FilterKey":{ + "type":"string", + "enum":["hasAccessTo"] + }, + "Filters":{ + "type":"list", + "member":{"shape":"Filter"} + }, + "GetDevEnvironmentRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment for which you want to view information. To retrieve a list of Dev Environment IDs, use ListDevEnvironments.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetDevEnvironmentResponse":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id", + "lastUpdatedTime", + "creatorId", + "status", + "repositories", + "instanceType", + "inactivityTimeoutMinutes", + "persistentStorage" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

" + }, + "lastUpdatedTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time when the Dev Environment was last updated, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + }, + "creatorId":{ + "shape":"GetDevEnvironmentResponseCreatorIdString", + "documentation":"

The system-generated unique ID of the user who created the Dev Environment.

" + }, + "status":{ + "shape":"DevEnvironmentStatus", + "documentation":"

The current status of the Dev Environment.

" + }, + "statusReason":{ + "shape":"StatusReason", + "documentation":"

The reason for the status.

" + }, + "repositories":{ + "shape":"DevEnvironmentRepositorySummaries", + "documentation":"

The source repository that contains the branch cloned into the Dev Environment.

" + }, + "alias":{ + "shape":"GetDevEnvironmentResponseAliasString", + "documentation":"

The user-specified alias for the Dev Environment.

" + }, + "ides":{ + "shape":"Ides", + "documentation":"

Information about the integrated development environment (IDE) configured for the Dev Environment.

" + }, + "instanceType":{ + "shape":"InstanceType", + "documentation":"

The Amazon EC2 instace type to use for the Dev Environment.

" + }, + "inactivityTimeoutMinutes":{ + "shape":"InactivityTimeoutMinutes", + "documentation":"

The amount of time the Dev Environment will run without any activity detected before stopping, in minutes.

" + }, + "persistentStorage":{ + "shape":"PersistentStorage", + "documentation":"

Information about the amount of storage allocated to the Dev Environment. By default, a Dev Environment is configured to have 16GB of persistent storage.

" + } + } + }, + "GetDevEnvironmentResponseAliasString":{ + "type":"string", + "max":128, + "min":0 + }, + "GetDevEnvironmentResponseCreatorIdString":{ + "type":"string", + "max":1024, + "min":0 + }, + "GetProjectRequest":{ + "type":"structure", + "required":[ + "spaceName", + "name" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "name":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"name" + } + } + }, + "GetProjectResponse":{ + "type":"structure", + "required":["name"], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the project in the space.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The friendly name of the project displayed to users in Amazon CodeCatalyst.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the project.

" + } + } + }, + "GetSourceRepositoryCloneUrlsRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "sourceRepositoryName" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "sourceRepositoryName":{ + "shape":"SourceRepositoryNameString", + "documentation":"

The name of the source repository.

", + "location":"uri", + "locationName":"sourceRepositoryName" + } + } + }, + "GetSourceRepositoryCloneUrlsResponse":{ + "type":"structure", + "required":["https"], + "members":{ + "https":{ + "shape":"String", + "documentation":"

The HTTPS URL to use when cloning the source repository.

" + } + } + }, + "GetSpaceRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"name" + } + } + }, + "GetSpaceResponse":{ + "type":"structure", + "required":[ + "name", + "regionName" + ], + "members":{ + "name":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "regionName":{ + "shape":"RegionString", + "documentation":"

The Amazon Web Services Region where the space exists.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The friendly name of the space displayed to users.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the space.

" + } + } + }, + "GetSubscriptionRequest":{ + "type":"structure", + "required":["spaceName"], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + } + } + }, + "GetSubscriptionResponse":{ + "type":"structure", + "members":{ + "subscriptionType":{ + "shape":"String", + "documentation":"

The type of the billing plan for the space.

" + }, + "awsAccountName":{ + "shape":"NameString", + "documentation":"

The display name of the Amazon Web Services account used for billing for the space.

" + } + } + }, + "GetUserDetailsRequest":{ + "type":"structure", + "members":{ + "id":{ + "shape":"GetUserDetailsRequestIdString", + "documentation":"

The system-generated unique ID of the user.

", + "location":"querystring", + "locationName":"id" + }, + "userName":{ + "shape":"GetUserDetailsRequestUserNameString", + "documentation":"

The name of the user as displayed in Amazon CodeCatalyst.

", + "location":"querystring", + "locationName":"userName" + } + } + }, + "GetUserDetailsRequestIdString":{ + "type":"string", + "max":256, + "min":1 + }, + "GetUserDetailsRequestUserNameString":{ + "type":"string", + "max":100, + "min":3, + "pattern":"[a-zA-Z0-9]{3,100}" + }, + "GetUserDetailsResponse":{ + "type":"structure", + "members":{ + "userId":{ + "shape":"String", + "documentation":"

The system-generated unique ID of the user.

" + }, + "userName":{ + "shape":"String", + "documentation":"

The name of the user as displayed in Amazon CodeCatalyst.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The friendly name displayed for the user in Amazon CodeCatalyst.

" + }, + "primaryEmail":{ + "shape":"EmailAddress", + "documentation":"

The email address provided by the user when they signed up.

" + }, + "version":{ + "shape":"String", + "documentation":"

" + } + } + }, + "Ide":{ + "type":"structure", + "members":{ + "runtime":{ + "shape":"IdeRuntimeString", + "documentation":"

A link to the IDE runtime image.

" + }, + "name":{ + "shape":"IdeNameString", + "documentation":"

The name of the IDE.

" + } + }, + "documentation":"

Information about an integrated development environment (IDE) used in a Dev Environment.

" + }, + "IdeConfiguration":{ + "type":"structure", + "members":{ + "runtime":{ + "shape":"IdeConfigurationRuntimeString", + "documentation":"

A link to the IDE runtime image.

" + }, + "name":{ + "shape":"IdeConfigurationNameString", + "documentation":"

The name of the IDE.

" + } + }, + "documentation":"

Information about the configuration of an integrated development environment (IDE) for a Dev Environment.

" + }, + "IdeConfigurationList":{ + "type":"list", + "member":{"shape":"IdeConfiguration"}, + "max":1, + "min":0 + }, + "IdeConfigurationNameString":{ + "type":"string", + "max":128, + "min":1 + }, + "IdeConfigurationRuntimeString":{ + "type":"string", + "max":400, + "min":1 + }, + "IdeNameString":{ + "type":"string", + "max":128, + "min":1 + }, + "IdeRuntimeString":{ + "type":"string", + "max":400, + "min":1 + }, + "Ides":{ + "type":"list", + "member":{"shape":"Ide"}, + "max":1, + "min":0 + }, + "InactivityTimeoutMinutes":{ + "type":"integer", + "max":1200, + "min":0 + }, + "InstanceType":{ + "type":"string", + "enum":[ + "dev.standard1.small", + "dev.standard1.medium", + "dev.standard1.large", + "dev.standard1.xlarge" + ] + }, + "ListAccessTokensRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListAccessTokensRequestMaxResultsInteger", + "documentation":"

The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a NextToken element, which you can use to obtain additional results.

" + }, + "nextToken":{ + "shape":"ListAccessTokensRequestNextTokenString", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + } + } + }, + "ListAccessTokensRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":10 + }, + "ListAccessTokensRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListAccessTokensResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"AccessTokenSummaries", + "documentation":"

A list of personal access tokens (PATs) associated with the calling user.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + } + } + }, + "ListDevEnvironmentsRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "filters":{ + "shape":"Filters", + "documentation":"

Information about filters to apply to narrow the results returned in the list.

" + }, + "nextToken":{ + "shape":"ListDevEnvironmentsRequestNextTokenString", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + }, + "maxResults":{ + "shape":"ListDevEnvironmentsRequestMaxResultsInteger", + "documentation":"

The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a NextToken element, which you can use to obtain additional results.

" + } + } + }, + "ListDevEnvironmentsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "ListDevEnvironmentsRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListDevEnvironmentsResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "items":{ + "shape":"DevEnvironmentSummaryList", + "documentation":"

Information about the Dev Environments in a project.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + } + } + }, + "ListEventLogsRequest":{ + "type":"structure", + "required":[ + "spaceName", + "startTime", + "endTime" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "startTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when you want to start retrieving events, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + }, + "endTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time after which you do not want any events retrieved, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + }, + "eventName":{ + "shape":"String", + "documentation":"

The name of the event.

" + }, + "nextToken":{ + "shape":"ListEventLogsRequestNextTokenString", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + }, + "maxResults":{ + "shape":"ListEventLogsRequestMaxResultsInteger", + "documentation":"

The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a NextToken element, which you can use to obtain additional results.

" + } + } + }, + "ListEventLogsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":250, + "min":1 + }, + "ListEventLogsRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListEventLogsResponse":{ + "type":"structure", + "required":["items"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + }, + "items":{ + "shape":"EventLogEntries", + "documentation":"

Information about each event retrieved in the list.

" + } + } + }, + "ListProjectsRequest":{ + "type":"structure", + "required":["spaceName"], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "nextToken":{ + "shape":"ListProjectsRequestNextTokenString", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + }, + "maxResults":{ + "shape":"ListProjectsRequestMaxResultsInteger", + "documentation":"

The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a NextToken element, which you can use to obtain additional results.

" + }, + "filters":{ + "shape":"ProjectListFilters", + "documentation":"

Information about filters to apply to narrow the results returned in the list.

" + } + } + }, + "ListProjectsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListProjectsRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListProjectsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + }, + "items":{ + "shape":"ProjectSummaries", + "documentation":"

Information about the projects.

" + } + } + }, + "ListSourceRepositoriesItem":{ + "type":"structure", + "required":[ + "id", + "name", + "lastUpdatedTime", + "createdTime" + ], + "members":{ + "id":{ + "shape":"SourceRepositoryIdString", + "documentation":"

The system-generated unique ID of the source repository.

" + }, + "name":{ + "shape":"SourceRepositoryNameString", + "documentation":"

The name of the source repository.

" + }, + "description":{ + "shape":"SourceRepositoryDescriptionString", + "documentation":"

The description of the repository, if any.

" + }, + "lastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The time the source repository was last updated, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + }, + "createdTime":{ + "shape":"Timestamp", + "documentation":"

The time the source repository was created, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + } + }, + "documentation":"

Information about a source repository returned in a list of source repositories.

" + }, + "ListSourceRepositoriesItems":{ + "type":"list", + "member":{"shape":"ListSourceRepositoriesItem"} + }, + "ListSourceRepositoriesRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "nextToken":{ + "shape":"ListSourceRepositoriesRequestNextTokenString", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + }, + "maxResults":{ + "shape":"ListSourceRepositoriesRequestMaxResultsInteger", + "documentation":"

The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a NextToken element, which you can use to obtain additional results.

" + } + } + }, + "ListSourceRepositoriesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":200, + "min":1 + }, + "ListSourceRepositoriesRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListSourceRepositoriesResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"ListSourceRepositoriesItems", + "documentation":"

Information about the source repositories.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + } + } + }, + "ListSourceRepositoryBranchesItem":{ + "type":"structure", + "members":{ + "ref":{ + "shape":"SourceRepositoryBranchRefString", + "documentation":"

The Git reference name of the branch.

" + }, + "name":{ + "shape":"SourceRepositoryBranchString", + "documentation":"

The name of the branch.

" + }, + "lastUpdatedTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time the branch was last updated, in coordinated universal time (UTC) timestamp format as specified in RFC 3339.

" + }, + "headCommitId":{ + "shape":"String", + "documentation":"

The commit ID of the tip of the branch at the time of the request, also known as the head commit.

" + } + }, + "documentation":"

Information about a branch of a source repository returned in a list of branches.

" + }, + "ListSourceRepositoryBranchesItems":{ + "type":"list", + "member":{"shape":"ListSourceRepositoryBranchesItem"} + }, + "ListSourceRepositoryBranchesRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "sourceRepositoryName" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "sourceRepositoryName":{ + "shape":"SourceRepositoryNameString", + "documentation":"

The name of the source repository.

", + "location":"uri", + "locationName":"sourceRepositoryName" + }, + "nextToken":{ + "shape":"ListSourceRepositoryBranchesRequestNextTokenString", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + }, + "maxResults":{ + "shape":"ListSourceRepositoryBranchesRequestMaxResultsInteger", + "documentation":"

The maximum number of results to show in a single call to this API. If the number of results is larger than the number you specified, the response will include a NextToken element, which you can use to obtain additional results.

" + } + } + }, + "ListSourceRepositoryBranchesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "ListSourceRepositoryBranchesRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListSourceRepositoryBranchesResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + }, + "items":{ + "shape":"ListSourceRepositoryBranchesItems", + "documentation":"

Information about the source branches.

" + } + } + }, + "ListSpacesRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"ListSpacesRequestNextTokenString", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + } + } + }, + "ListSpacesRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListSpacesResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

A token returned from a call to this API to indicate the next batch of results to return, if any.

" + }, + "items":{ + "shape":"SpaceSummaries", + "documentation":"

Information about the space.

" + } + } + }, + "NameString":{ + "type":"string", + "max":63, + "min":3, + "pattern":"[a-zA-Z0-9]+(?:[-_\\.][a-zA-Z0-9]+)*" + }, + "OperationType":{ + "type":"string", + "enum":[ + "READONLY", + "MUTATION" + ] + }, + "PersistentStorage":{ + "type":"structure", + "required":["sizeInGiB"], + "members":{ + "sizeInGiB":{ + "shape":"PersistentStorageSizeInGiBInteger", + "documentation":"

The size of the persistent storage in gigabytes (specifically GiB).

Valid values for storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64.

" + } + }, + "documentation":"

Information about the persistent storage for a Dev Environment.

" + }, + "PersistentStorageConfiguration":{ + "type":"structure", + "required":["sizeInGiB"], + "members":{ + "sizeInGiB":{ + "shape":"PersistentStorageConfigurationSizeInGiBInteger", + "documentation":"

The size of the persistent storage in gigabytes (specifically GiB).

Valid values for storage are based on memory sizes in 16GB increments. Valid values are 16, 32, and 64.

" + } + }, + "documentation":"

Information about the configuration of persistent storage for a Dev Environment.

" + }, + "PersistentStorageConfigurationSizeInGiBInteger":{ + "type":"integer", + "box":true, + "max":64, + "min":0 + }, + "PersistentStorageSizeInGiBInteger":{ + "type":"integer", + "box":true, + "max":64, + "min":0 + }, + "ProjectDescription":{ + "type":"string", + "max":200, + "min":0, + "pattern":"[a-zA-Z0-9]+(?:[-_a-zA-Z0-9.,;:/\\+=?&$% ])*" + }, + "ProjectDisplayName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"[a-zA-Z0-9]+(?:[-_\\. ][a-zA-Z0-9]+)*" + }, + "ProjectInformation":{ + "type":"structure", + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the project in the space.

" + }, + "projectId":{ + "shape":"String", + "documentation":"

The system-generated unique ID of the project.

" + } + }, + "documentation":"

Information about a project in a space.

" + }, + "ProjectListFilter":{ + "type":"structure", + "required":[ + "key", + "values" + ], + "members":{ + "key":{ + "shape":"FilterKey", + "documentation":"

A key that can be used to sort results.

" + }, + "values":{ + "shape":"StringList", + "documentation":"

The value of the key.

" + }, + "comparisonOperator":{ + "shape":"ComparisonOperator", + "documentation":"

The operator used to compare the fields.

" + } + }, + "documentation":"

nformation about the filter used to narrow the results returned in a list of projects.

" + }, + "ProjectListFilters":{ + "type":"list", + "member":{"shape":"ProjectListFilter"} + }, + "ProjectSummaries":{ + "type":"list", + "member":{"shape":"ProjectSummary"} + }, + "ProjectSummary":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the project in the space.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The friendly name displayed to users of the project in Amazon CodeCatalyst.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the project.

" + } + }, + "documentation":"

Information about a project.

" + }, + "RegionString":{ + "type":"string", + "max":16, + "min":3, + "pattern":"(us(?:-gov)?|af|ap|ca|cn|eu|sa)-(central|(?:north|south)?(?:east|west)?)-(\\d+)" + }, + "RepositoriesInput":{ + "type":"list", + "member":{"shape":"RepositoryInput"} + }, + "RepositoryInput":{ + "type":"structure", + "required":["repositoryName"], + "members":{ + "repositoryName":{ + "shape":"SourceRepositoryNameString", + "documentation":"

The name of the source repository.

" + }, + "branchName":{ + "shape":"SourceRepositoryBranchString", + "documentation":"

The name of the branch in a source repository.

" + } + }, + "documentation":"

Information about a repository that will be cloned to a Dev Environment.

" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied because the specified resource was not found. Verify that the spelling is correct and that you have access to the resource.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied because one or more resources has reached its limits for the tier the space belongs to. Either reduce the number of resources, or change the tier if applicable.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SourceRepositoryBranchRefString":{ + "type":"string", + "max":255, + "min":1 + }, + "SourceRepositoryBranchString":{ + "type":"string", + "max":100, + "min":1 + }, + "SourceRepositoryDescriptionString":{ + "type":"string", + "max":255, + "min":1 + }, + "SourceRepositoryIdString":{ + "type":"string", + "pattern":"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" + }, + "SourceRepositoryNameString":{ + "type":"string", + "max":100, + "min":1, + "pattern":"(?!.*[.]git$)[\\w\\-.]*" + }, + "SpaceSummaries":{ + "type":"list", + "member":{"shape":"SpaceSummary"} + }, + "SpaceSummary":{ + "type":"structure", + "required":[ + "name", + "regionName" + ], + "members":{ + "name":{ + "shape":"NameString", + "documentation":"

We need to know what this is and the basic usage information so that third-party developers know how to use this data type.

" + }, + "regionName":{ + "shape":"RegionString", + "documentation":"

The Amazon Web Services Region where the space exists.

" + }, + "displayName":{ + "shape":"String", + "documentation":"

The friendly name of the space displayed to users.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the space.

" + } + }, + "documentation":"

Information about an space.

" + }, + "StartDevEnvironmentRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

", + "location":"uri", + "locationName":"id" + }, + "ides":{ + "shape":"IdeConfigurationList", + "documentation":"

Information about the integrated development environment (IDE) configured for a Dev Environment.

" + }, + "instanceType":{ + "shape":"InstanceType", + "documentation":"

The Amazon EC2 instace type to use for the Dev Environment.

" + }, + "inactivityTimeoutMinutes":{ + "shape":"InactivityTimeoutMinutes", + "documentation":"

The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.

" + } + } + }, + "StartDevEnvironmentResponse":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id", + "status" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

" + }, + "status":{ + "shape":"DevEnvironmentStatus", + "documentation":"

The status of the Dev Environment.

" + } + } + }, + "StartDevEnvironmentSessionRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id", + "sessionConfiguration" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

", + "location":"uri", + "locationName":"id" + }, + "sessionConfiguration":{"shape":"DevEnvironmentSessionConfiguration"} + } + }, + "StartDevEnvironmentSessionResponse":{ + "type":"structure", + "required":[ + "accessDetails", + "spaceName", + "projectName", + "id" + ], + "members":{ + "accessDetails":{"shape":"DevEnvironmentAccessDetails"}, + "sessionId":{ + "shape":"StartDevEnvironmentSessionResponseSessionIdString", + "documentation":"

The system-generated unique ID of the Dev Environment session.

" + }, + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

" + } + } + }, + "StartDevEnvironmentSessionResponseSessionIdString":{ + "type":"string", + "max":96, + "min":1 + }, + "StatusReason":{ + "type":"string", + "max":1024, + "min":0 + }, + "StopDevEnvironmentRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

", + "location":"uri", + "locationName":"id" + } + } + }, + "StopDevEnvironmentResponse":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id", + "status" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

" + }, + "status":{ + "shape":"DevEnvironmentStatus", + "documentation":"

The status of the Dev Environment.

" + } + } + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "Timestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "UpdateDevEnvironmentRequest":{ + "type":"structure", + "required":[ + "spaceName", + "projectName", + "id" + ], + "members":{ + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

", + "location":"uri", + "locationName":"spaceName" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

", + "location":"uri", + "locationName":"projectName" + }, + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

", + "location":"uri", + "locationName":"id" + }, + "alias":{ + "shape":"UpdateDevEnvironmentRequestAliasString", + "documentation":"

The user-specified alias for the Dev Environment. Changing this value will not cause a restart.

" + }, + "ides":{ + "shape":"IdeConfigurationList", + "documentation":"

Information about the integrated development environment (IDE) configured for a Dev Environment.

" + }, + "instanceType":{ + "shape":"InstanceType", + "documentation":"

The Amazon EC2 instace type to use for the Dev Environment.

Changing this value will cause a restart of the Dev Environment if it is running.

" + }, + "inactivityTimeoutMinutes":{ + "shape":"InactivityTimeoutMinutes", + "documentation":"

The amount of time the Dev Environment will run without any activity detected before stopping, in minutes. Only whole integers are allowed. Dev Environments consume compute minutes when running.

Changing this value will cause a restart of the Dev Environment if it is running.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.

" + } + } + }, + "UpdateDevEnvironmentRequestAliasString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9]+(?:[-_\\.][a-zA-Z0-9]+)*" + }, + "UpdateDevEnvironmentResponse":{ + "type":"structure", + "required":[ + "id", + "spaceName", + "projectName" + ], + "members":{ + "id":{ + "shape":"Uuid", + "documentation":"

The system-generated unique ID of the Dev Environment.

" + }, + "spaceName":{ + "shape":"NameString", + "documentation":"

The name of the space.

" + }, + "projectName":{ + "shape":"NameString", + "documentation":"

The name of the project in the space.

" + }, + "alias":{ + "shape":"UpdateDevEnvironmentResponseAliasString", + "documentation":"

The user-specified alias for the Dev Environment.

" + }, + "ides":{ + "shape":"IdeConfigurationList", + "documentation":"

Information about the integrated development environment (IDE) configured for the Dev Environment.

" + }, + "instanceType":{ + "shape":"InstanceType", + "documentation":"

The Amazon EC2 instace type to use for the Dev Environment.

" + }, + "inactivityTimeoutMinutes":{ + "shape":"InactivityTimeoutMinutes", + "documentation":"

The amount of time the Dev Environment will run without any activity detected before stopping, in minutes.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A user-specified idempotency token. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries return the result from the original successful request and have no additional effect.

" + } + } + }, + "UpdateDevEnvironmentResponseAliasString":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9]+(?:[-_\\.][a-zA-Z0-9]+)*" + }, + "UserIdentity":{ + "type":"structure", + "required":[ + "userType", + "principalId" + ], + "members":{ + "userType":{ + "shape":"UserType", + "documentation":"

The role assigned to the user in a Amazon CodeCatalyst space or project when the event occurred.

" + }, + "principalId":{ + "shape":"String", + "documentation":"

" + }, + "userName":{ + "shape":"String", + "documentation":"

The display name of the user in Amazon CodeCatalyst.

" + }, + "awsAccountId":{ + "shape":"String", + "documentation":"

The Amazon Web Services account number of the user in Amazon Web Services, if any.

" + } + }, + "documentation":"

Information about a user whose activity is recorded in an event for a space.

" + }, + "UserType":{ + "type":"string", + "enum":[ + "USER", + "AWS_ACCOUNT", + "UNKNOWN" + ] + }, + "Uuid":{ + "type":"string", + "pattern":"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied because an input failed to satisfy the constraints specified by the service. Check the spelling and input requirements, and then try again.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "VerifySessionResponse":{ + "type":"structure", + "members":{ + "identity":{ + "shape":"VerifySessionResponseIdentityString", + "documentation":"

The system-generated unique ID of the user in Amazon CodeCatalyst.

" + } + } + }, + "VerifySessionResponseIdentityString":{ + "type":"string", + "max":256, + "min":1 + } + }, + "documentation":"

Amazon CodeCatalyst is in preview release and subject to change.

Welcome to the Amazon CodeCatalyst API reference. This reference provides descriptions of operations and data types for Amazon CodeCatalyst. You can use the Amazon CodeCatalyst API to work with the following objects.

Dev Environments and the Amazon Web Services Toolkits, by calling the following:

Security, activity, and resource management in Amazon CodeCatalyst, by calling the following:

  • DeleteAccessToken, which deletes a specified personal access token (PAT).

  • ListAccessTokens, which lists all personal access tokens (PATs) associated with a user.

  • ListEventLogs, which retrieves a list of events that occurred during a specified time period in a space.

" +} diff --git a/botocore/data/codecatalyst/2022-09-28/waiters-2.json b/botocore/data/codecatalyst/2022-09-28/waiters-2.json new file mode 100644 index 00000000..13f60ee6 --- /dev/null +++ b/botocore/data/codecatalyst/2022-09-28/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/botocore/data/codecommit/2015-04-13/endpoint-rule-set-1.json b/botocore/data/codecommit/2015-04-13/endpoint-rule-set-1.json new file mode 100644 index 00000000..09eaf8c3 --- /dev/null +++ b/botocore/data/codecommit/2015-04-13/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codecommit-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codecommit-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codecommit.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codecommit.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codedeploy/2014-10-06/endpoint-rule-set-1.json b/botocore/data/codedeploy/2014-10-06/endpoint-rule-set-1.json new file mode 100644 index 00000000..bb2a0fde --- /dev/null +++ b/botocore/data/codedeploy/2014-10-06/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codedeploy-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codedeploy-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codedeploy.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codedeploy.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codedeploy/2014-10-06/service-2.json b/botocore/data/codedeploy/2014-10-06/service-2.json index 82bf32b4..b43507c2 100644 --- a/botocore/data/codedeploy/2014-10-06/service-2.json +++ b/botocore/data/codedeploy/2014-10-06/service-2.json @@ -101,7 +101,7 @@ {"shape":"BatchLimitExceededException"}, {"shape":"InvalidComputePlatformException"} ], - "documentation":"

This method works, but is deprecated. Use BatchGetDeploymentTargets instead.

Returns an array of one or more instances associated with a deployment. This method works with EC2/On-premises and AWS Lambda compute platforms. The newer BatchGetDeploymentTargets works with all compute platforms. The maximum number of instances that can be returned is 25.

", + "documentation":"

This method works, but is deprecated. Use BatchGetDeploymentTargets instead.

Returns an array of one or more instances associated with a deployment. This method works with EC2/On-premises and Lambda compute platforms. The newer BatchGetDeploymentTargets works with all compute platforms. The maximum number of instances that can be returned is 25.

", "deprecated":true, "deprecatedMessage":"This operation is deprecated, use BatchGetDeploymentTargets instead." }, @@ -124,7 +124,7 @@ {"shape":"DeploymentTargetListSizeExceededException"}, {"shape":"InstanceDoesNotExistException"} ], - "documentation":"

Returns an array of one or more targets associated with a deployment. This method works with all compute types and should be used instead of the deprecated BatchGetDeploymentInstances. The maximum number of targets that can be returned is 25.

The type of targets returned depends on the deployment's compute platform or deployment method:

  • EC2/On-premises: Information about EC2 instance targets.

  • AWS Lambda: Information about Lambda functions targets.

  • Amazon ECS: Information about Amazon ECS service targets.

  • CloudFormation: Information about targets of blue/green deployments initiated by a CloudFormation stack update.

" + "documentation":"

Returns an array of one or more targets associated with a deployment. This method works with all compute types and should be used instead of the deprecated BatchGetDeploymentInstances. The maximum number of targets that can be returned is 25.

The type of targets returned depends on the deployment's compute platform or deployment method:

  • EC2/On-premises: Information about Amazon EC2 instance targets.

  • Lambda: Information about Lambda functions targets.

  • Amazon ECS: Information about Amazon ECS service targets.

  • CloudFormation: Information about targets of blue/green deployments initiated by a CloudFormation stack update.

" }, "BatchGetDeployments":{ "name":"BatchGetDeployments", @@ -216,6 +216,8 @@ {"shape":"DescriptionTooLongException"}, {"shape":"DeploymentLimitExceededException"}, {"shape":"InvalidTargetInstancesException"}, + {"shape":"InvalidAlarmConfigException"}, + {"shape":"AlarmsLimitExceededException"}, {"shape":"InvalidAutoRollbackConfigException"}, {"shape":"InvalidLoadBalancerInfoException"}, {"shape":"InvalidFileExistsBehaviorException"}, @@ -552,7 +554,7 @@ "errors":[ {"shape":"InvalidNextTokenException"} ], - "documentation":"

Lists the applications registered with the IAM user or AWS account.

" + "documentation":"

Lists the applications registered with the IAM user or Amazon Web Services account.

" }, "ListDeploymentConfigs":{ "name":"ListDeploymentConfigs", @@ -565,7 +567,7 @@ "errors":[ {"shape":"InvalidNextTokenException"} ], - "documentation":"

Lists the deployment configurations with the IAM user or AWS account.

" + "documentation":"

Lists the deployment configurations with the IAM user or Amazon Web Services account.

" }, "ListDeploymentGroups":{ "name":"ListDeploymentGroups", @@ -581,7 +583,7 @@ {"shape":"ApplicationDoesNotExistException"}, {"shape":"InvalidNextTokenException"} ], - "documentation":"

Lists the deployment groups for an application registered with the IAM user or AWS account.

" + "documentation":"

Lists the deployment groups for an application registered with the IAM user or Amazon Web Services account.

" }, "ListDeploymentInstances":{ "name":"ListDeploymentInstances", @@ -603,7 +605,7 @@ {"shape":"InvalidTargetFilterNameException"}, {"shape":"InvalidComputePlatformException"} ], - "documentation":"

The newer BatchGetDeploymentTargets should be used instead because it works with all compute types. ListDeploymentInstances throws an exception if it is used with a compute platform other than EC2/On-premises or AWS Lambda.

Lists the instance for a deployment associated with the IAM user or AWS account.

", + "documentation":"

The newer BatchGetDeploymentTargets should be used instead because it works with all compute types. ListDeploymentInstances throws an exception if it is used with a compute platform other than EC2/On-premises or Lambda.

Lists the instance for a deployment associated with the IAM user or Amazon Web Services account.

", "deprecated":true, "deprecatedMessage":"This operation is deprecated, use ListDeploymentTargets instead." }, @@ -648,7 +650,7 @@ {"shape":"InvalidExternalIdException"}, {"shape":"InvalidInputException"} ], - "documentation":"

Lists the deployments in a deployment group for an application registered with the IAM user or AWS account.

" + "documentation":"

Lists the deployments in a deployment group for an application registered with the IAM user or Amazon Web Services account.

" }, "ListGitHubAccountTokenNames":{ "name":"ListGitHubAccountTokenNames", @@ -712,7 +714,7 @@ {"shape":"InvalidDeploymentIdException"}, {"shape":"UnsupportedActionForDeploymentTypeException"} ], - "documentation":"

Sets the result of a Lambda validation function. The function validates lifecycle hooks during a deployment that uses the AWS Lambda or Amazon ECS compute platform. For AWS Lambda deployments, the available lifecycle hooks are BeforeAllowTraffic and AfterAllowTraffic. For Amazon ECS deployments, the available lifecycle hooks are BeforeInstall, AfterInstall, AfterAllowTestTraffic, BeforeAllowTraffic, and AfterAllowTraffic. Lambda validation functions return Succeeded or Failed. For more information, see AppSpec 'hooks' Section for an AWS Lambda Deployment and AppSpec 'hooks' Section for an Amazon ECS Deployment.

" + "documentation":"

Sets the result of a Lambda validation function. The function validates lifecycle hooks during a deployment that uses the Lambda or Amazon ECS compute platform. For Lambda deployments, the available lifecycle hooks are BeforeAllowTraffic and AfterAllowTraffic. For Amazon ECS deployments, the available lifecycle hooks are BeforeInstall, AfterInstall, AfterAllowTestTraffic, BeforeAllowTraffic, and AfterAllowTraffic. Lambda validation functions return Succeeded or Failed. For more information, see AppSpec 'hooks' Section for an Lambda Deployment and AppSpec 'hooks' Section for an Amazon ECS Deployment.

" }, "RegisterApplicationRevision":{ "name":"RegisterApplicationRevision", @@ -729,7 +731,7 @@ {"shape":"RevisionRequiredException"}, {"shape":"InvalidRevisionException"} ], - "documentation":"

Registers with AWS CodeDeploy a revision for the specified application.

" + "documentation":"

Registers with CodeDeploy a revision for the specified application.

" }, "RegisterOnPremisesInstance":{ "name":"RegisterOnPremisesInstance", @@ -953,10 +955,10 @@ }, "alarms":{ "shape":"AlarmList", - "documentation":"

A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group.

" + "documentation":"

A list of alarms configured for the deployment or deployment group. A maximum of 10 alarms can be added.

" } }, - "documentation":"

Information about alarms associated with the deployment group.

" + "documentation":"

Information about alarms associated with a deployment or deployment group.

" }, "AlarmList":{ "type":"list", @@ -975,27 +977,27 @@ "members":{ "content":{ "shape":"RawStringContent", - "documentation":"

The YAML-formatted or JSON-formatted revision string.

For an AWS Lambda deployment, the content includes a Lambda function name, the alias for its original version, and the alias for its replacement version. The deployment shifts traffic from the original version of the Lambda function to the replacement version.

For an Amazon ECS deployment, the content includes the task name, information about the load balancer that serves traffic to the container, and more.

For both types of deployments, the content can specify Lambda functions that run at specified hooks, such as BeforeInstall, during a deployment.

" + "documentation":"

The YAML-formatted or JSON-formatted revision string.

For an Lambda deployment, the content includes a Lambda function name, the alias for its original version, and the alias for its replacement version. The deployment shifts traffic from the original version of the Lambda function to the replacement version.

For an Amazon ECS deployment, the content includes the task name, information about the load balancer that serves traffic to the container, and more.

For both types of deployments, the content can specify Lambda functions that run at specified hooks, such as BeforeInstall, during a deployment.

" }, "sha256":{ "shape":"RawStringSha256", "documentation":"

The SHA256 hash value of the revision content.

" } }, - "documentation":"

A revision for an AWS Lambda or Amazon ECS deployment that is a YAML-formatted or JSON-formatted string. For AWS Lambda and Amazon ECS deployments, the revision is the same as the AppSpec file. This method replaces the deprecated RawString data type.

" + "documentation":"

A revision for an Lambda or Amazon ECS deployment that is a YAML-formatted or JSON-formatted string. For Lambda and Amazon ECS deployments, the revision is the same as the AppSpec file. This method replaces the deprecated RawString data type.

" }, "ApplicationAlreadyExistsException":{ "type":"structure", "members":{ }, - "documentation":"

An application with the specified name with the IAM user or AWS account already exists.

", + "documentation":"

An application with the specified name with the IAM user or Amazon Web Services account already exists.

", "exception":true }, "ApplicationDoesNotExistException":{ "type":"structure", "members":{ }, - "documentation":"

The application does not exist with the IAM user or AWS account.

", + "documentation":"

The application does not exist with the IAM user or Amazon Web Services account.

", "exception":true }, "ApplicationId":{"type":"string"}, @@ -1135,7 +1137,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application about which to get revision information.

" + "documentation":"

The name of an CodeDeploy application about which to get revision information.

" }, "revisions":{ "shape":"RevisionLocationList", @@ -1192,7 +1194,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the applicable IAM or Amazon Web Services account.

" }, "deploymentGroupNames":{ "shape":"DeploymentGroupsList", @@ -1256,7 +1258,7 @@ }, "targetIds":{ "shape":"TargetIdList", - "documentation":"

The unique IDs of the deployment targets. The compute platform of the deployment determines the type of the targets and their formats. The maximum number of deployment target IDs you can specify is 25.

  • For deployments that use the EC2/On-premises compute platform, the target IDs are EC2 or on-premises instances IDs, and their target type is instanceTarget.

  • For deployments that use the AWS Lambda compute platform, the target IDs are the names of Lambda functions, and their target type is instanceTarget.

  • For deployments that use the Amazon ECS compute platform, the target IDs are pairs of Amazon ECS clusters and services specified using the format <clustername>:<servicename>. Their target type is ecsTarget.

  • For deployments that are deployed with AWS CloudFormation, the target IDs are CloudFormation stack IDs. Their target type is cloudFormationTarget.

" + "documentation":"

The unique IDs of the deployment targets. The compute platform of the deployment determines the type of the targets and their formats. The maximum number of deployment target IDs you can specify is 25.

  • For deployments that use the EC2/On-premises compute platform, the target IDs are Amazon EC2 or on-premises instances IDs, and their target type is instanceTarget.

  • For deployments that use the Lambda compute platform, the target IDs are the names of Lambda functions, and their target type is instanceTarget.

  • For deployments that use the Amazon ECS compute platform, the target IDs are pairs of Amazon ECS clusters and services specified using the format <clustername>:<servicename>. Their target type is ecsTarget.

  • For deployments that are deployed with CloudFormation, the target IDs are CloudFormation stack IDs. Their target type is cloudFormationTarget.

" } } }, @@ -1265,7 +1267,7 @@ "members":{ "deploymentTargets":{ "shape":"DeploymentTargetList", - "documentation":"

A list of target objects for a deployment. Each target object contains details about the target, such as its status and lifecycle events. The type of the target objects depends on the deployment' compute platform.

  • EC2/On-premises: Each target object is an EC2 or on-premises instance.

  • AWS Lambda: The target object is a specific version of an AWS Lambda function.

  • Amazon ECS: The target object is an Amazon ECS service.

  • CloudFormation: The target object is an AWS CloudFormation blue/green deployment.

" + "documentation":"

A list of target objects for a deployment. Each target object contains details about the target, such as its status and lifecycle events. The type of the target objects depends on the deployment' compute platform.

  • EC2/On-premises: Each target object is an Amazon EC2 or on-premises instance.

  • Lambda: The target object is a specific version of an Lambda function.

  • Amazon ECS: The target object is an Amazon ECS service.

  • CloudFormation: The target object is an CloudFormation blue/green deployment.

" } } }, @@ -1374,7 +1376,7 @@ "members":{ "deploymentId":{ "shape":"DeploymentId", - "documentation":"

The unique ID of an AWS CloudFormation blue/green deployment.

" + "documentation":"

The unique ID of an CloudFormation blue/green deployment.

" }, "targetId":{ "shape":"TargetId", @@ -1382,26 +1384,26 @@ }, "lastUpdatedAt":{ "shape":"Time", - "documentation":"

The date and time when the target application was updated by an AWS CloudFormation blue/green deployment.

" + "documentation":"

The date and time when the target application was updated by an CloudFormation blue/green deployment.

" }, "lifecycleEvents":{ "shape":"LifecycleEventList", - "documentation":"

The lifecycle events of the AWS CloudFormation blue/green deployment to this target application.

" + "documentation":"

The lifecycle events of the CloudFormation blue/green deployment to this target application.

" }, "status":{ "shape":"TargetStatus", - "documentation":"

The status of an AWS CloudFormation blue/green deployment's target application.

" + "documentation":"

The status of an CloudFormation blue/green deployment's target application.

" }, "resourceType":{ "shape":"CloudFormationResourceType", - "documentation":"

The resource type for the AWS CloudFormation blue/green deployment.

" + "documentation":"

The resource type for the CloudFormation blue/green deployment.

" }, "targetVersionWeight":{ "shape":"TrafficWeight", - "documentation":"

The percentage of production traffic that the target version of an AWS CloudFormation blue/green deployment receives.

" + "documentation":"

The percentage of production traffic that the target version of an CloudFormation blue/green deployment receives.

" } }, - "documentation":"

Information about the target to be updated by an AWS CloudFormation blue/green deployment. This target type is used for all deployments initiated by a CloudFormation stack update.

" + "documentation":"

Information about the target to be updated by an CloudFormation blue/green deployment. This target type is used for all deployments initiated by a CloudFormation stack update.

" }, "CommitId":{"type":"string"}, "ComputePlatform":{ @@ -1431,7 +1433,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of the application. This name must be unique with the applicable IAM user or AWS account.

" + "documentation":"

The name of the application. This name must be unique with the applicable IAM or Amazon Web Services account.

" }, "computePlatform":{ "shape":"ComputePlatform", @@ -1464,7 +1466,7 @@ }, "minimumHealthyHosts":{ "shape":"MinimumHealthyHosts", - "documentation":"

The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.

The type parameter takes either of the following values:

  • HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.

  • FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances.

The value parameter takes an integer.

For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.

" + "documentation":"

The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.

The type parameter takes either of the following values:

  • HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.

  • FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances.

The value parameter takes an integer.

For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.

" }, "trafficRoutingConfig":{ "shape":"TrafficRoutingConfig", @@ -1497,7 +1499,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

" }, "deploymentGroupName":{ "shape":"DeploymentGroupName", @@ -1505,11 +1507,11 @@ }, "deploymentConfigName":{ "shape":"DeploymentConfigName", - "documentation":"

If specified, the deployment configuration name can be either one of the predefined configurations provided with AWS CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation.

CodeDeployDefault.OneAtATime is the default deployment configuration. It is used if a configuration isn't specified for the deployment or deployment group.

For more information about the predefined deployment configurations in AWS CodeDeploy, see Working with Deployment Configurations in CodeDeploy in the AWS CodeDeploy User Guide.

" + "documentation":"

If specified, the deployment configuration name can be either one of the predefined configurations provided with CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation.

CodeDeployDefault.OneAtATime is the default deployment configuration. It is used if a configuration isn't specified for the deployment or deployment group.

For more information about the predefined deployment configurations in CodeDeploy, see Working with Deployment Configurations in CodeDeploy in the CodeDeploy User Guide.

" }, "ec2TagFilters":{ "shape":"EC2TagFilterList", - "documentation":"

The Amazon EC2 tags on which to filter. The deployment group includes EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet.

" + "documentation":"

The Amazon EC2 tags on which to filter. The deployment group includes Amazon EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet.

" }, "onPremisesInstanceTagFilters":{ "shape":"TagFilterList", @@ -1521,11 +1523,11 @@ }, "serviceRoleArn":{ "shape":"Role", - "documentation":"

A service role Amazon Resource Name (ARN) that allows AWS CodeDeploy to act on the user's behalf when interacting with AWS services.

" + "documentation":"

A service role Amazon Resource Name (ARN) that allows CodeDeploy to act on the user's behalf when interacting with Amazon Web Services services.

" }, "triggerConfigurations":{ "shape":"TriggerConfigList", - "documentation":"

Information about triggers to create when the deployment group is created. For examples, see Create a Trigger for an AWS CodeDeploy Event in the AWS CodeDeploy User Guide.

" + "documentation":"

Information about triggers to create when the deployment group is created. For examples, see Create a Trigger for an CodeDeploy Event in the CodeDeploy User Guide.

" }, "alarmConfiguration":{ "shape":"AlarmConfiguration", @@ -1537,7 +1539,7 @@ }, "outdatedInstancesStrategy":{ "shape":"OutdatedInstancesStrategy", - "documentation":"

Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision.

If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances.

If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions.

" + "documentation":"

Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision.

If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new Amazon EC2 instances.

If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new Amazon EC2 instances. This may result in instances having different revisions.

" }, "deploymentStyle":{ "shape":"DeploymentStyle", @@ -1553,7 +1555,7 @@ }, "ec2TagSet":{ "shape":"EC2TagSet", - "documentation":"

Information about groups of tags applied to EC2 instances. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters.

" + "documentation":"

Information about groups of tags applied to Amazon EC2 instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters.

" }, "ecsServices":{ "shape":"ECSServiceList", @@ -1586,7 +1588,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

" }, "deploymentGroupName":{ "shape":"DeploymentGroupName", @@ -1598,7 +1600,7 @@ }, "deploymentConfigName":{ "shape":"DeploymentConfigName", - "documentation":"

The name of a deployment configuration associated with the IAM user or AWS account.

If not specified, the value configured in the deployment group is used as the default. If the deployment group does not have a deployment configuration associated with it, CodeDeployDefault.OneAtATime is used by default.

" + "documentation":"

The name of a deployment configuration associated with the IAM user or Amazon Web Services account.

If not specified, the value configured in the deployment group is used as the default. If the deployment group does not have a deployment configuration associated with it, CodeDeployDefault.OneAtATime is used by default.

" }, "description":{ "shape":"Description", @@ -1606,7 +1608,7 @@ }, "ignoreApplicationStopFailures":{ "shape":"Boolean", - "documentation":"

If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if ApplicationStop fails, the deployment continues with DownloadBundle. If BeforeBlockTraffic fails, the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the deployment continues with ApplicationStop.

If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted.

During a deployment, the AWS CodeDeploy agent runs the scripts specified for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec file from the previous successful deployment. (All other scripts are run from the AppSpec file in the current deployment.) If one of these scripts contains an error and does not run successfully, the deployment can fail.

If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use ignoreApplicationStopFailures to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic failures should be ignored.

" + "documentation":"

If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if ApplicationStop fails, the deployment continues with DownloadBundle. If BeforeBlockTraffic fails, the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the deployment continues with ApplicationStop.

If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted.

During a deployment, the CodeDeploy agent runs the scripts specified for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec file from the previous successful deployment. (All other scripts are run from the AppSpec file in the current deployment.) If one of these scripts contains an error and does not run successfully, the deployment can fail.

If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use ignoreApplicationStopFailures to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic failures should be ignored.

" }, "targetInstances":{ "shape":"TargetInstances", @@ -1622,7 +1624,11 @@ }, "fileExistsBehavior":{ "shape":"FileExistsBehavior", - "documentation":"

Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment.

The fileExistsBehavior parameter takes any of the following values:

  • DISALLOW: The deployment fails. This is also the default behavior if no option is specified.

  • OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance.

  • RETAIN: The version of the file already on the instance is kept and used as part of the new deployment.

" + "documentation":"

Information about how CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment.

The fileExistsBehavior parameter takes any of the following values:

  • DISALLOW: The deployment fails. This is also the default behavior if no option is specified.

  • OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance.

  • RETAIN: The version of the file already on the instance is kept and used as part of the new deployment.

" + }, + "overrideAlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

Allows you to specify information about alarms associated with a deployment. The alarm configuration that you specify here will override the alarm configuration at the deployment group level. Consider overriding the alarm configuration if you have set up alarms at the deployment group level that are causing deployment failures. In this case, you would call CreateDeployment to create a new deployment that uses a previous application revision that is known to work, and set its alarm configuration to turn off alarm polling. Turning off alarm polling ensures that the new deployment proceeds without being blocked by the alarm that was generated by the previous, failed, deployment.

If you specify an overrideAlarmConfiguration, you need the UpdateDeploymentGroup IAM permission when calling CreateDeployment.

" } }, "documentation":"

Represents the input of a CreateDeployment operation.

" @@ -1643,7 +1649,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

" } }, "documentation":"

Represents the input of a DeleteApplication operation.

" @@ -1654,7 +1660,7 @@ "members":{ "deploymentConfigName":{ "shape":"DeploymentConfigName", - "documentation":"

The name of a deployment configuration associated with the IAM user or AWS account.

" + "documentation":"

The name of a deployment configuration associated with the IAM user or Amazon Web Services account.

" } }, "documentation":"

Represents the input of a DeleteDeploymentConfig operation.

" @@ -1668,7 +1674,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

" }, "deploymentGroupName":{ "shape":"DeploymentGroupName", @@ -1682,7 +1688,7 @@ "members":{ "hooksNotCleanedUp":{ "shape":"AutoScalingGroupList", - "documentation":"

If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group.

" + "documentation":"

If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group. If the output contains data, CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group.

" } }, "documentation":"

Represents the output of a DeleteDeploymentGroup operation.

" @@ -1739,14 +1745,14 @@ "type":"structure", "members":{ }, - "documentation":"

A deployment configuration with the specified name with the IAM user or AWS account already exists.

", + "documentation":"

A deployment configuration with the specified name with the IAM user or Amazon Web Services account already exists.

", "exception":true }, "DeploymentConfigDoesNotExistException":{ "type":"structure", "members":{ }, - "documentation":"

The deployment configuration does not exist with the IAM user or AWS account.

", + "documentation":"

The deployment configuration does not exist with the IAM user or Amazon Web Services account.

", "exception":true }, "DeploymentConfigId":{"type":"string"}, @@ -1782,7 +1788,7 @@ }, "trafficRoutingConfig":{ "shape":"TrafficRoutingConfig", - "documentation":"

The configuration that specifies how the deployment traffic is routed. Used for deployments with a Lambda or ECS compute platform only.

" + "documentation":"

The configuration that specifies how the deployment traffic is routed. Used for deployments with a Lambda or Amazon ECS compute platform only.

" } }, "documentation":"

Information about a deployment configuration.

" @@ -1826,21 +1832,21 @@ "type":"structure", "members":{ }, - "documentation":"

The deployment with the IAM user or AWS account does not exist.

", + "documentation":"

The deployment with the IAM user or Amazon Web Services account does not exist.

", "exception":true }, "DeploymentGroupAlreadyExistsException":{ "type":"structure", "members":{ }, - "documentation":"

A deployment group with the specified name with the IAM user or AWS account already exists.

", + "documentation":"

A deployment group with the specified name with the IAM user or Amazon Web Services account already exists.

", "exception":true }, "DeploymentGroupDoesNotExistException":{ "type":"structure", "members":{ }, - "documentation":"

The named deployment group with the IAM user or AWS account does not exist.

", + "documentation":"

The named deployment group with the IAM user or Amazon Web Services account does not exist.

", "exception":true }, "DeploymentGroupId":{"type":"string"}, @@ -1877,7 +1883,7 @@ }, "serviceRoleArn":{ "shape":"Role", - "documentation":"

A service role Amazon Resource Name (ARN) that grants CodeDeploy permission to make calls to AWS services on your behalf. For more information, see Create a Service Role for AWS CodeDeploy in the AWS CodeDeploy User Guide.

" + "documentation":"

A service role Amazon Resource Name (ARN) that grants CodeDeploy permission to make calls to Amazon Web Services services on your behalf. For more information, see Create a Service Role for CodeDeploy in the CodeDeploy User Guide.

" }, "targetRevision":{ "shape":"RevisionLocation", @@ -1901,7 +1907,7 @@ }, "outdatedInstancesStrategy":{ "shape":"OutdatedInstancesStrategy", - "documentation":"

Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision.

If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances.

If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions.

" + "documentation":"

Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision.

If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new Amazon EC2 instances.

If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new Amazon EC2 instances. This may result in instances having different revisions.

" }, "blueGreenDeploymentConfiguration":{ "shape":"BlueGreenDeploymentConfiguration", @@ -1921,7 +1927,7 @@ }, "ec2TagSet":{ "shape":"EC2TagSet", - "documentation":"

Information about groups of tags applied to an EC2 instance. The deployment group includes only EC2 instances identified by all of the tag groups. Cannot be used in the same call as ec2TagFilters.

" + "documentation":"

Information about groups of tags applied to an Amazon EC2 instance. The deployment group includes only Amazon EC2 instances identified by all of the tag groups. Cannot be used in the same call as ec2TagFilters.

" }, "onPremisesTagSet":{ "shape":"OnPremisesTagSet", @@ -2030,11 +2036,11 @@ }, "creator":{ "shape":"DeploymentCreator", - "documentation":"

The means by which the deployment was created:

  • user: A user created the deployment.

  • autoscaling: Amazon EC2 Auto Scaling created the deployment.

  • codeDeployRollback: A rollback process created the deployment.

  • CodeDeployAutoUpdate: An auto-update process created the deployment when it detected outdated EC2 instances.

" + "documentation":"

The means by which the deployment was created:

  • user: A user created the deployment.

  • autoscaling: Amazon EC2 Auto Scaling created the deployment.

  • codeDeployRollback: A rollback process created the deployment.

  • CodeDeployAutoUpdate: An auto-update process created the deployment when it detected outdated Amazon EC2 instances.

" }, "ignoreApplicationStopFailures":{ "shape":"Boolean", - "documentation":"

If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if ApplicationStop fails, the deployment continues with DownloadBundle. If BeforeBlockTraffic fails, the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the deployment continues with ApplicationStop.

If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted.

During a deployment, the AWS CodeDeploy agent runs the scripts specified for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec file from the previous successful deployment. (All other scripts are run from the AppSpec file in the current deployment.) If one of these scripts contains an error and does not run successfully, the deployment can fail.

If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use ignoreApplicationStopFailures to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic failures should be ignored.

" + "documentation":"

If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if ApplicationStop fails, the deployment continues with DownloadBundle. If BeforeBlockTraffic fails, the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the deployment continues with ApplicationStop.

If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted.

During a deployment, the CodeDeploy agent runs the scripts specified for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec file from the previous successful deployment. (All other scripts are run from the AppSpec file in the current deployment.) If one of these scripts contains an error and does not run successfully, the deployment can fail.

If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use ignoreApplicationStopFailures to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic failures should be ignored.

" }, "autoRollbackConfiguration":{ "shape":"AutoRollbackConfiguration", @@ -2074,7 +2080,7 @@ }, "fileExistsBehavior":{ "shape":"FileExistsBehavior", - "documentation":"

Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment.

  • DISALLOW: The deployment fails. This is also the default behavior if no option is specified.

  • OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance.

  • RETAIN: The version of the file already on the instance is kept and used as part of the new deployment.

" + "documentation":"

Information about how CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment.

  • DISALLOW: The deployment fails. This is also the default behavior if no option is specified.

  • OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance.

  • RETAIN: The version of the file already on the instance is kept and used as part of the new deployment.

" }, "deploymentStatusMessages":{ "shape":"DeploymentStatusMessageList", @@ -2088,7 +2094,8 @@ "shape":"ExternalId", "documentation":"

The unique ID for an external resource (for example, a CloudFormation stack ID) that is linked to this deployment.

" }, - "relatedDeployments":{"shape":"RelatedDeployments"} + "relatedDeployments":{"shape":"RelatedDeployments"}, + "overrideAlarmConfiguration":{"shape":"AlarmConfiguration"} }, "documentation":"

Information about a deployment.

" }, @@ -2219,7 +2226,7 @@ }, "lambdaTarget":{ "shape":"LambdaTarget", - "documentation":"

Information about the target for a deployment that uses the AWS Lambda compute platform.

" + "documentation":"

Information about the target for a deployment that uses the Lambda compute platform.

" }, "ecsTarget":{ "shape":"ECSTarget", @@ -2251,7 +2258,7 @@ "type":"structure", "members":{ }, - "documentation":"

The maximum number of targets that can be associated with an Amazon ECS or AWS Lambda deployment was exceeded. The target list of both types of deployments must have exactly one item. This exception does not apply to EC2/On-premises deployments.

", + "documentation":"

The maximum number of targets that can be associated with an Amazon ECS or Lambda deployment was exceeded. The target list of both types of deployments must have exactly one item. This exception does not apply to EC2/On-premises deployments.

", "exception":true }, "DeploymentTargetType":{ @@ -2321,7 +2328,7 @@ }, "logTail":{ "shape":"LogTail", - "documentation":"

The last portion of the diagnostic log.

If available, AWS CodeDeploy returns up to the last 4 KB of the diagnostic log.

" + "documentation":"

The last portion of the diagnostic log.

If available, CodeDeploy returns up to the last 4 KB of the diagnostic log.

" } }, "documentation":"

Diagnostic information about executable scripts that are part of a deployment.

" @@ -2362,10 +2369,10 @@ "members":{ "ec2TagSetList":{ "shape":"EC2TagSetList", - "documentation":"

A list that contains other lists of EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.

" + "documentation":"

A list that contains other lists of Amazon EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list.

" } }, - "documentation":"

Information about groups of EC2 instance tags.

" + "documentation":"

Information about groups of Amazon EC2 instance tags.

" }, "EC2TagSetList":{ "type":"list", @@ -2461,14 +2468,14 @@ }, "targetGroup":{ "shape":"TargetGroupInfo", - "documentation":"

The target group associated with the task set. The target group is used by AWS CodeDeploy to manage traffic to a task set.

" + "documentation":"

The target group associated with the task set. The target group is used by CodeDeploy to manage traffic to a task set.

" }, "taskSetLabel":{ "shape":"TargetLabel", "documentation":"

A label that identifies whether the ECS task set is an original target (BLUE) or a replacement target (GREEN).

" } }, - "documentation":"

Information about a set of Amazon ECS tasks in an AWS CodeDeploy deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic. An AWS CodeDeploy application that uses the Amazon ECS compute platform deploys a containerized application in an Amazon ECS service as a task set.

" + "documentation":"

Information about a set of Amazon ECS tasks in an CodeDeploy deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic. An CodeDeploy application that uses the Amazon ECS compute platform deploys a containerized application in an Amazon ECS service as a task set.

" }, "ECSTaskSetCount":{"type":"long"}, "ECSTaskSetIdentifier":{"type":"string"}, @@ -2537,7 +2544,7 @@ "members":{ "code":{ "shape":"ErrorCode", - "documentation":"

For more information, see Error Codes for AWS CodeDeploy in the AWS CodeDeploy User Guide.

The error code:

  • APPLICATION_MISSING: The application was missing. This error code is most likely raised if the application is deleted after the deployment is created, but before it is started.

  • DEPLOYMENT_GROUP_MISSING: The deployment group was missing. This error code is most likely raised if the deployment group is deleted after the deployment is created, but before it is started.

  • HEALTH_CONSTRAINTS: The deployment failed on too many instances to be successfully deployed within the instance health constraints specified.

  • HEALTH_CONSTRAINTS_INVALID: The revision cannot be successfully deployed within the instance health constraints specified.

  • IAM_ROLE_MISSING: The service role cannot be accessed.

  • IAM_ROLE_PERMISSIONS: The service role does not have the correct permissions.

  • INTERNAL_ERROR: There was an internal error.

  • NO_EC2_SUBSCRIPTION: The calling account is not subscribed to Amazon EC2.

  • NO_INSTANCES: No instances were specified, or no instances can be found.

  • OVER_MAX_INSTANCES: The maximum number of instances was exceeded.

  • THROTTLED: The operation was throttled because the calling account exceeded the throttling limits of one or more AWS services.

  • TIMEOUT: The deployment has timed out.

  • REVISION_MISSING: The revision ID was missing. This error code is most likely raised if the revision is deleted after the deployment is created, but before it is started.

" + "documentation":"

For more information, see Error Codes for CodeDeploy in the CodeDeploy User Guide.

The error code:

  • APPLICATION_MISSING: The application was missing. This error code is most likely raised if the application is deleted after the deployment is created, but before it is started.

  • DEPLOYMENT_GROUP_MISSING: The deployment group was missing. This error code is most likely raised if the deployment group is deleted after the deployment is created, but before it is started.

  • HEALTH_CONSTRAINTS: The deployment failed on too many instances to be successfully deployed within the instance health constraints specified.

  • HEALTH_CONSTRAINTS_INVALID: The revision cannot be successfully deployed within the instance health constraints specified.

  • IAM_ROLE_MISSING: The service role cannot be accessed.

  • IAM_ROLE_PERMISSIONS: The service role does not have the correct permissions.

  • INTERNAL_ERROR: There was an internal error.

  • NO_EC2_SUBSCRIPTION: The calling account is not subscribed to Amazon EC2.

  • NO_INSTANCES: No instances were specified, or no instances can be found.

  • OVER_MAX_INSTANCES: The maximum number of instances was exceeded.

  • THROTTLED: The operation was throttled because the calling account exceeded the throttling limits of one or more Amazon Web Services services.

  • TIMEOUT: The deployment has timed out.

  • REVISION_MISSING: The revision ID was missing. This error code is most likely raised if the revision is deleted after the deployment is created, but before it is started.

" }, "message":{ "shape":"ErrorMessage", @@ -2574,15 +2581,15 @@ }, "firstUsedTime":{ "shape":"Timestamp", - "documentation":"

When the revision was first used by AWS CodeDeploy.

" + "documentation":"

When the revision was first used by CodeDeploy.

" }, "lastUsedTime":{ "shape":"Timestamp", - "documentation":"

When the revision was last used by AWS CodeDeploy.

" + "documentation":"

When the revision was last used by CodeDeploy.

" }, "registerTime":{ "shape":"Timestamp", - "documentation":"

When the revision was registered with AWS CodeDeploy.

" + "documentation":"

When the revision was registered with CodeDeploy.

" } }, "documentation":"

Information about an application revision.

" @@ -2593,7 +2600,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

" } }, "documentation":"

Represents the input of a GetApplication operation.

" @@ -2650,7 +2657,7 @@ "members":{ "deploymentConfigName":{ "shape":"DeploymentConfigName", - "documentation":"

The name of a deployment configuration associated with the IAM user or AWS account.

" + "documentation":"

The name of a deployment configuration associated with the IAM user or Amazon Web Services account.

" } }, "documentation":"

Represents the input of a GetDeploymentConfig operation.

" @@ -2674,7 +2681,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

" }, "deploymentGroupName":{ "shape":"DeploymentGroupName", @@ -2699,7 +2706,7 @@ "members":{ "deploymentId":{ "shape":"DeploymentId", - "documentation":"

The unique ID of a deployment associated with the IAM user or AWS account.

" + "documentation":"

The unique ID of a deployment associated with the IAM user or Amazon Web Services account.

" } }, "documentation":"

Represents the input of a GetDeployment operation.

" @@ -3218,7 +3225,7 @@ "type":"structure", "members":{ }, - "documentation":"

An invalid fileExistsBehavior option was specified to determine how AWS CodeDeploy handles files or directories that already exist in a deployment target location, but weren't part of the previous successful deployment. Valid values include \"DISALLOW,\" \"OVERWRITE,\" and \"RETAIN.\"

", + "documentation":"

An invalid fileExistsBehavior option was specified to determine how CodeDeploy handles files or directories that already exist in a deployment target location, but weren't part of the previous successful deployment. Valid values include \"DISALLOW,\" \"OVERWRITE,\" and \"RETAIN.\"

", "exception":true }, "InvalidGitHubAccountTokenException":{ @@ -3253,7 +3260,7 @@ "type":"structure", "members":{ }, - "documentation":"

The IgnoreApplicationStopFailures value is invalid. For AWS Lambda deployments, false is expected. For EC2/On-premises deployments, true or false is expected.

", + "documentation":"

The IgnoreApplicationStopFailures value is invalid. For Lambda deployments, false is expected. For EC2/On-premises deployments, true or false is expected.

", "exception":true }, "InvalidInputException":{ @@ -3456,7 +3463,7 @@ "type":"structure", "members":{ }, - "documentation":"

The UpdateOutdatedInstancesOnly value is invalid. For AWS Lambda deployments, false is expected. For EC2/On-premises deployments, true or false is expected.

", + "documentation":"

The UpdateOutdatedInstancesOnly value is invalid. For Lambda deployments, false is expected. For EC2/On-premises deployments, true or false is expected.

", "exception":true }, "Key":{"type":"string"}, @@ -3470,7 +3477,7 @@ }, "functionAlias":{ "shape":"LambdaFunctionAlias", - "documentation":"

The alias of a Lambda function. For more information, see AWS Lambda Function Aliases in the AWS Lambda Developer Guide.

" + "documentation":"

The alias of a Lambda function. For more information, see Lambda Function Aliases in the Lambda Developer Guide.

" }, "currentVersion":{ "shape":"Version", @@ -3505,7 +3512,7 @@ }, "status":{ "shape":"TargetStatus", - "documentation":"

The status an AWS Lambda deployment's target Lambda function.

" + "documentation":"

The status an Lambda deployment's target Lambda function.

" }, "lastUpdatedAt":{ "shape":"Time", @@ -3520,7 +3527,7 @@ "documentation":"

A LambdaFunctionInfo object that describes a target Lambda function.

" } }, - "documentation":"

Information about the target AWS Lambda function during an AWS Lambda deployment.

" + "documentation":"

Information about the target Lambda function during an Lambda deployment.

" }, "LastDeploymentInfo":{ "type":"structure", @@ -3619,11 +3626,11 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

" }, "sortBy":{ "shape":"ApplicationRevisionSortBy", - "documentation":"

The column name to use to sort the list results:

  • registerTime: Sort by the time the revisions were registered with AWS CodeDeploy.

  • firstUsedTime: Sort by the time the revisions were first used in a deployment.

  • lastUsedTime: Sort by the time the revisions were last used in a deployment.

If not specified or set to null, the results are returned in an arbitrary order.

" + "documentation":"

The column name to use to sort the list results:

  • registerTime: Sort by the time the revisions were registered with CodeDeploy.

  • firstUsedTime: Sort by the time the revisions were first used in a deployment.

  • lastUsedTime: Sort by the time the revisions were last used in a deployment.

If not specified or set to null, the results are returned in an arbitrary order.

" }, "sortOrder":{ "shape":"SortOrder", @@ -3716,7 +3723,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

" }, "nextToken":{ "shape":"NextToken", @@ -3815,7 +3822,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

If applicationName is specified, then deploymentGroupName must be specified. If it is not specified, then deploymentGroupName must not be specified.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

If applicationName is specified, then deploymentGroupName must be specified. If it is not specified, then deploymentGroupName must not be specified.

" }, "deploymentGroupName":{ "shape":"DeploymentGroupName", @@ -3975,7 +3982,7 @@ "members":{ "type":{ "shape":"MinimumHealthyHostsType", - "documentation":"

The minimum healthy instance type:

  • HOST_COUNT: The minimum number of healthy instances as an absolute value.

  • FLEET_PERCENT: The minimum number of healthy instances as a percentage of the total number of instances in the deployment.

In an example of nine instances, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment is successful if six or more instances are deployed to successfully. Otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instances at a time. The deployment is successful if four or more instances are deployed to successfully. Otherwise, the deployment fails.

In a call to the GetDeploymentConfig, CodeDeployDefault.OneAtATime returns a minimum healthy instance type of MOST_CONCURRENCY and a value of 1. This means a deployment to only one instance at a time. (You cannot set the type to MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT.) In addition, with CodeDeployDefault.OneAtATime, AWS CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful.

For more information, see AWS CodeDeploy Instance Health in the AWS CodeDeploy User Guide.

" + "documentation":"

The minimum healthy instance type:

  • HOST_COUNT: The minimum number of healthy instances as an absolute value.

  • FLEET_PERCENT: The minimum number of healthy instances as a percentage of the total number of instances in the deployment.

In an example of nine instances, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment is successful if six or more instances are deployed to successfully. Otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instances at a time. The deployment is successful if four or more instances are deployed to successfully. Otherwise, the deployment fails.

In a call to the GetDeploymentConfig, CodeDeployDefault.OneAtATime returns a minimum healthy instance type of MOST_CONCURRENCY and a value of 1. This means a deployment to only one instance at a time. (You cannot set the type to MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT.) In addition, with CodeDeployDefault.OneAtATime, CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful.

For more information, see CodeDeploy Instance Health in the CodeDeploy User Guide.

" }, "value":{ "shape":"MinimumHealthyHostsValue", @@ -4043,7 +4050,7 @@ }, "status":{ "shape":"LifecycleEventStatus", - "documentation":"

The result of a Lambda function that validates a deployment lifecycle event. Succeeded and Failed are the only valid values for status.

" + "documentation":"

The result of a Lambda function that validates a deployment lifecycle event. The values listed in Valid Values are valid for lifecycle statuses in general; however, only Succeeded and Failed can be passed successfully in your API call.

" } } }, @@ -4068,7 +4075,7 @@ "documentation":"

The SHA256 hash value of the revision content.

" } }, - "documentation":"

A revision for an AWS Lambda deployment that is a YAML-formatted or JSON-formatted string. For AWS Lambda deployments, the revision is the same as the AppSpec file.

", + "documentation":"

A revision for an Lambda deployment that is a YAML-formatted or JSON-formatted string. For Lambda deployments, the revision is the same as the AppSpec file.

", "deprecated":true, "deprecatedMessage":"RawString and String revision type are deprecated, use AppSpecContent type instead." }, @@ -4083,7 +4090,7 @@ "members":{ "applicationName":{ "shape":"ApplicationName", - "documentation":"

The name of an AWS CodeDeploy application associated with the IAM user or AWS account.

" + "documentation":"

The name of an CodeDeploy application associated with the IAM user or Amazon Web Services account.

" }, "description":{ "shape":"Description", @@ -4173,7 +4180,7 @@ "type":"structure", "members":{ }, - "documentation":"

The named revision does not exist with the IAM user or AWS account.

", + "documentation":"

The named revision does not exist with the IAM user or Amazon Web Services account.

", "exception":true }, "RevisionInfo":{ @@ -4199,7 +4206,7 @@ "members":{ "revisionType":{ "shape":"RevisionLocationType", - "documentation":"

The type of application revision:

  • S3: An application revision stored in Amazon S3.

  • GitHub: An application revision stored in GitHub (EC2/On-premises deployments only).

  • String: A YAML-formatted or JSON-formatted string (AWS Lambda deployments only).

  • AppSpecContent: An AppSpecContent object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString.

" + "documentation":"

The type of application revision:

  • S3: An application revision stored in Amazon S3.

  • GitHub: An application revision stored in GitHub (EC2/On-premises deployments only).

  • String: A YAML-formatted or JSON-formatted string (Lambda deployments only).

  • AppSpecContent: An AppSpecContent object that contains the contents of an AppSpec file for an Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString.

" }, "s3Location":{ "shape":"S3Location", @@ -4211,11 +4218,11 @@ }, "string":{ "shape":"RawString", - "documentation":"

Information about the location of an AWS Lambda deployment revision stored as a RawString.

" + "documentation":"

Information about the location of an Lambda deployment revision stored as a RawString.

" }, "appSpecContent":{ "shape":"AppSpecContent", - "documentation":"

The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString.

" + "documentation":"

The content of an AppSpec file for an Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString.

" } }, "documentation":"

Information about the location of an application revision.

" @@ -4510,7 +4517,7 @@ }, "ec2TagSet":{ "shape":"EC2TagSet", - "documentation":"

Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as tagFilters.

" + "documentation":"

Information about the groups of Amazon EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as tagFilters.

" } }, "documentation":"

Information about the instances to be used in the replacement environment in a blue/green deployment.

" @@ -4554,7 +4561,7 @@ "documentation":"

The number of minutes between the first and second traffic shifts of a TimeBasedCanary deployment.

" } }, - "documentation":"

A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.

" + "documentation":"

A configuration that shifts traffic from one version of a Lambda function or Amazon ECS task set to another in two increments. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.

" }, "TimeBasedLinear":{ "type":"structure", @@ -4608,10 +4615,10 @@ }, "timeBasedLinear":{ "shape":"TimeBasedLinear", - "documentation":"

A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in equal increments, with an equal number of minutes between each increment. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.

" + "documentation":"

A configuration that shifts traffic from one version of a Lambda function or Amazon ECS task set to another in equal increments, with an equal number of minutes between each increment. The original and target Lambda function versions or Amazon ECS task sets are specified in the deployment's AppSpec file.

" } }, - "documentation":"

The configuration that specifies how traffic is shifted from one version of a Lambda function to another version during an AWS Lambda deployment, or from one Amazon ECS task set to another during an Amazon ECS deployment.

" + "documentation":"

The configuration that specifies how traffic is shifted from one version of a Lambda function to another version during an Lambda deployment, or from one Amazon ECS task set to another during an Amazon ECS deployment.

" }, "TrafficRoutingType":{ "type":"string", @@ -4748,7 +4755,7 @@ }, "autoScalingGroups":{ "shape":"AutoScalingGroupNameList", - "documentation":"

The replacement list of Auto Scaling groups to be included in the deployment group, if you want to change them. To keep the Auto Scaling groups, enter their names. To remove Auto Scaling groups, do not enter any Auto Scaling group names.

" + "documentation":"

The replacement list of Auto Scaling groups to be included in the deployment group, if you want to change them.

" }, "serviceRoleArn":{ "shape":"Role", @@ -4756,7 +4763,7 @@ }, "triggerConfigurations":{ "shape":"TriggerConfigList", - "documentation":"

Information about triggers to change when the deployment group is updated. For examples, see Edit a Trigger in a CodeDeploy Deployment Group in the AWS CodeDeploy User Guide.

" + "documentation":"

Information about triggers to change when the deployment group is updated. For examples, see Edit a Trigger in a CodeDeploy Deployment Group in the CodeDeploy User Guide.

" }, "alarmConfiguration":{ "shape":"AlarmConfiguration", @@ -4768,7 +4775,7 @@ }, "outdatedInstancesStrategy":{ "shape":"OutdatedInstancesStrategy", - "documentation":"

Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision.

If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances.

If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions.

" + "documentation":"

Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision.

If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new Amazon EC2 instances.

If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new Amazon EC2 instances. This may result in instances having different revisions.

" }, "deploymentStyle":{ "shape":"DeploymentStyle", @@ -4784,7 +4791,7 @@ }, "ec2TagSet":{ "shape":"EC2TagSet", - "documentation":"

Information about groups of tags applied to on-premises instances. The deployment group includes only EC2 instances identified by all the tag groups.

" + "documentation":"

Information about groups of tags applied to on-premises instances. The deployment group includes only Amazon EC2 instances identified by all the tag groups.

" }, "ecsServices":{ "shape":"ECSServiceList", @@ -4802,7 +4809,7 @@ "members":{ "hooksNotCleanedUp":{ "shape":"AutoScalingGroupList", - "documentation":"

If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the AWS account. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the AWS account.

" + "documentation":"

If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the Amazon Web Services account. If the output contains data, CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the Amazon Web Services account.

" } }, "documentation":"

Represents the output of an UpdateDeploymentGroup operation.

" @@ -4812,5 +4819,5 @@ "VersionId":{"type":"string"}, "WaitTimeInMins":{"type":"integer"} }, - "documentation":"AWS CodeDeploy

AWS CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances, on-premises instances running in your own facility, serverless AWS Lambda functions, or applications in an Amazon ECS service.

You can deploy a nearly unlimited variety of application content, such as an updated Lambda function, updated applications in an Amazon ECS service, code, web and configuration files, executables, packages, scripts, multimedia files, and so on. AWS CodeDeploy can deploy application content stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories. You do not need to make changes to your existing code before you can use AWS CodeDeploy.

AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications, without many of the risks associated with error-prone manual deployments.

AWS CodeDeploy Components

Use the information in this guide to help you work with the following AWS CodeDeploy components:

  • Application: A name that uniquely identifies the application you want to deploy. AWS CodeDeploy uses this name, which functions as a container, to ensure the correct combination of revision, deployment configuration, and deployment group are referenced during a deployment.

  • Deployment group: A set of individual instances, CodeDeploy Lambda deployment configuration settings, or an Amazon ECS service and network details. A Lambda deployment group specifies how to route traffic to a new version of a Lambda function. An Amazon ECS deployment group specifies the service created in Amazon ECS to deploy, a load balancer, and a listener to reroute production traffic to an updated containerized application. An EC2/On-premises deployment group contains individually tagged instances, Amazon EC2 instances in Amazon EC2 Auto Scaling groups, or both. All deployment groups can specify optional trigger, alarm, and rollback settings.

  • Deployment configuration: A set of deployment rules and deployment success and failure conditions used by AWS CodeDeploy during a deployment.

  • Deployment: The process and the components used when updating a Lambda function, a containerized application in an Amazon ECS service, or of installing content on one or more instances.

  • Application revisions: For an AWS Lambda deployment, this is an AppSpec file that specifies the Lambda function to be updated and one or more functions to validate deployment lifecycle events. For an Amazon ECS deployment, this is an AppSpec file that specifies the Amazon ECS task definition, container, and port where production traffic is rerouted. For an EC2/On-premises deployment, this is an archive file that contains source content—source code, webpages, executable files, and deployment scripts—along with an AppSpec file. Revisions are stored in Amazon S3 buckets or GitHub repositories. For Amazon S3, a revision is uniquely identified by its Amazon S3 object key and its ETag, version, or both. For GitHub, a revision is uniquely identified by its commit ID.

This guide also contains information to help you get details about the instances in your deployments, to make on-premises instances available for AWS CodeDeploy deployments, to get details about a Lambda function deployment, and to get details about Amazon ECS service deployments.

AWS CodeDeploy Information Resources

" + "documentation":"

CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances, on-premises instances running in your own facility, serverless Lambda functions, or applications in an Amazon ECS service.

You can deploy a nearly unlimited variety of application content, such as an updated Lambda function, updated applications in an Amazon ECS service, code, web and configuration files, executables, packages, scripts, multimedia files, and so on. CodeDeploy can deploy application content stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories. You do not need to make changes to your existing code before you can use CodeDeploy.

CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications, without many of the risks associated with error-prone manual deployments.

CodeDeploy Components

Use the information in this guide to help you work with the following CodeDeploy components:

  • Application: A name that uniquely identifies the application you want to deploy. CodeDeploy uses this name, which functions as a container, to ensure the correct combination of revision, deployment configuration, and deployment group are referenced during a deployment.

  • Deployment group: A set of individual instances, CodeDeploy Lambda deployment configuration settings, or an Amazon ECS service and network details. A Lambda deployment group specifies how to route traffic to a new version of a Lambda function. An Amazon ECS deployment group specifies the service created in Amazon ECS to deploy, a load balancer, and a listener to reroute production traffic to an updated containerized application. An Amazon EC2/On-premises deployment group contains individually tagged instances, Amazon EC2 instances in Amazon EC2 Auto Scaling groups, or both. All deployment groups can specify optional trigger, alarm, and rollback settings.

  • Deployment configuration: A set of deployment rules and deployment success and failure conditions used by CodeDeploy during a deployment.

  • Deployment: The process and the components used when updating a Lambda function, a containerized application in an Amazon ECS service, or of installing content on one or more instances.

  • Application revisions: For an Lambda deployment, this is an AppSpec file that specifies the Lambda function to be updated and one or more functions to validate deployment lifecycle events. For an Amazon ECS deployment, this is an AppSpec file that specifies the Amazon ECS task definition, container, and port where production traffic is rerouted. For an EC2/On-premises deployment, this is an archive file that contains source content—source code, webpages, executable files, and deployment scripts—along with an AppSpec file. Revisions are stored in Amazon S3 buckets or GitHub repositories. For Amazon S3, a revision is uniquely identified by its Amazon S3 object key and its ETag, version, or both. For GitHub, a revision is uniquely identified by its commit ID.

This guide also contains information to help you get details about the instances in your deployments, to make on-premises instances available for CodeDeploy deployments, to get details about a Lambda function deployment, and to get details about Amazon ECS service deployments.

CodeDeploy Information Resources

" } diff --git a/botocore/data/codeguru-reviewer/2019-09-19/endpoint-rule-set-1.json b/botocore/data/codeguru-reviewer/2019-09-19/endpoint-rule-set-1.json new file mode 100644 index 00000000..0e8d85f6 --- /dev/null +++ b/botocore/data/codeguru-reviewer/2019-09-19/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeguru-reviewer-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeguru-reviewer-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeguru-reviewer.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codeguru-reviewer.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codeguru-reviewer/2019-09-19/examples-1.json b/botocore/data/codeguru-reviewer/2019-09-19/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/codeguru-reviewer/2019-09-19/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/codeguru-reviewer/2019-09-19/service-2.json b/botocore/data/codeguru-reviewer/2019-09-19/service-2.json index 07749876..4333a09d 100644 --- a/botocore/data/codeguru-reviewer/2019-09-19/service-2.json +++ b/botocore/data/codeguru-reviewer/2019-09-19/service-2.json @@ -28,7 +28,7 @@ {"shape":"ConflictException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Use to associate an Amazon Web Services CodeCommit repository or a repostory managed by Amazon Web Services CodeStar Connections with Amazon CodeGuru Reviewer. When you associate a repository, CodeGuru Reviewer reviews source code changes in the repository's pull requests and provides automatic recommendations. You can view recommendations using the CodeGuru Reviewer console. For more information, see Recommendations in Amazon CodeGuru Reviewer in the Amazon CodeGuru Reviewer User Guide.

If you associate a CodeCommit or S3 repository, it must be in the same Amazon Web Services Region and Amazon Web Services account where its CodeGuru Reviewer code reviews are configured.

Bitbucket and GitHub Enterprise Server repositories are managed by Amazon Web Services CodeStar Connections to connect to CodeGuru Reviewer. For more information, see Associate a repository in the Amazon CodeGuru Reviewer User Guide.

You cannot use the CodeGuru Reviewer SDK or the Amazon Web Services CLI to associate a GitHub repository with Amazon CodeGuru Reviewer. To associate a GitHub repository, use the console. For more information, see Getting started with CodeGuru Reviewer in the CodeGuru Reviewer User Guide.

" + "documentation":"

Use to associate an Amazon Web Services CodeCommit repository or a repository managed by Amazon Web Services CodeStar Connections with Amazon CodeGuru Reviewer. When you associate a repository, CodeGuru Reviewer reviews source code changes in the repository's pull requests and provides automatic recommendations. You can view recommendations using the CodeGuru Reviewer console. For more information, see Recommendations in Amazon CodeGuru Reviewer in the Amazon CodeGuru Reviewer User Guide.

If you associate a CodeCommit or S3 repository, it must be in the same Amazon Web Services Region and Amazon Web Services account where its CodeGuru Reviewer code reviews are configured.

Bitbucket and GitHub Enterprise Server repositories are managed by Amazon Web Services CodeStar Connections to connect to CodeGuru Reviewer. For more information, see Associate a repository in the Amazon CodeGuru Reviewer User Guide.

You cannot use the CodeGuru Reviewer SDK or the Amazon Web Services CLI to associate a GitHub repository with Amazon CodeGuru Reviewer. To associate a GitHub repository, use the console. For more information, see Getting started with CodeGuru Reviewer in the CodeGuru Reviewer User Guide.

" }, "CreateCodeReview":{ "name":"CreateCodeReview", @@ -46,7 +46,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Use to create a code review with a CodeReviewType of RepositoryAnalysis. This type of code review analyzes all code under a specified branch in an associated repository. PullRequest code reviews are automatically triggered by a pull request.

" + "documentation":"

Use to create a code review with a CodeReviewType of RepositoryAnalysis. This type of code review analyzes all code under a specified branch in an associated repository. PullRequest code reviews are automatically triggered by a pull request.

" }, "DescribeCodeReview":{ "name":"DescribeCodeReview", @@ -63,7 +63,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Returns the metadata associated with the code review along with its status.

" + "documentation":"

Returns the metadata associated with the code review along with its status.

" }, "DescribeRecommendationFeedback":{ "name":"DescribeRecommendationFeedback", @@ -80,7 +80,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Describes the customer feedback for a CodeGuru Reviewer recommendation.

" + "documentation":"

Describes the customer feedback for a CodeGuru Reviewer recommendation.

" }, "DescribeRepositoryAssociation":{ "name":"DescribeRepositoryAssociation", @@ -97,7 +97,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Returns a RepositoryAssociation object that contains information about the requested repository association.

" + "documentation":"

Returns a RepositoryAssociation object that contains information about the requested repository association.

" }, "DisassociateRepository":{ "name":"DisassociateRepository", @@ -131,7 +131,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists all the code reviews that the customer has created in the past 90 days.

" + "documentation":"

Lists all the code reviews that the customer has created in the past 90 days.

" }, "ListRecommendationFeedback":{ "name":"ListRecommendationFeedback", @@ -148,7 +148,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Returns a list of RecommendationFeedbackSummary objects that contain customer recommendation feedback for all CodeGuru Reviewer users.

" + "documentation":"

Returns a list of RecommendationFeedbackSummary objects that contain customer recommendation feedback for all CodeGuru Reviewer users.

" }, "ListRecommendations":{ "name":"ListRecommendations", @@ -165,7 +165,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Returns the list of all recommendations for a completed code review.

" + "documentation":"

Returns the list of all recommendations for a completed code review.

" }, "ListRepositoryAssociations":{ "name":"ListRepositoryAssociations", @@ -180,7 +180,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Returns a list of RepositoryAssociationSummary objects that contain summary information about a repository association. You can filter the returned list by ProviderType , Name , State , and Owner .

" + "documentation":"

Returns a list of RepositoryAssociationSummary objects that contain summary information about a repository association. You can filter the returned list by ProviderType, Name, State, and Owner.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -212,7 +212,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Stores customer feedback for a CodeGuru Reviewer recommendation. When this API is called again with different reactions the previous feedback is overwritten.

" + "documentation":"

Stores customer feedback for a CodeGuru Reviewer recommendation. When this API is called again with different reactions the previous feedback is overwritten.

" }, "TagResource":{ "name":"TagResource", @@ -282,16 +282,16 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository associations if there are failures and retries.

", + "documentation":"

Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository associations if there are failures and retries.

", "idempotencyToken":true }, "Tags":{ "shape":"TagMap", - "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" + "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" }, "KMSKeyDetails":{ "shape":"KMSKeyDetails", - "documentation":"

A KMSKeyDetails object that contains:

  • The encryption option for this repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK).

  • The ID of the Amazon Web Services KMS key that is associated with this respository association.

" + "documentation":"

A KMSKeyDetails object that contains:

  • The encryption option for this repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK).

  • The ID of the Amazon Web Services KMS key that is associated with this repository association.

" } } }, @@ -304,7 +304,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" + "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" } } }, @@ -335,7 +335,7 @@ "documentation":"

The destination branch for a diff in an associated repository.

" } }, - "documentation":"

A type of SourceCodeType that specifies a code diff between a source and destination branch in an associated repository.

" + "documentation":"

A type of SourceCodeType that specifies a code diff between a source and destination branch in an associated repository.

" }, "BranchName":{ "type":"string", @@ -364,7 +364,7 @@ }, "BuildArtifactsObjectKey":{ "shape":"BuildArtifactsObjectKey", - "documentation":"

The S3 object key for a build artifacts .zip file that contains .jar or .class files. This is required for a code review with security analysis. For more information, see Create code reviews with security analysis in the Amazon CodeGuru Reviewer User Guide.

" + "documentation":"

The S3 object key for a build artifacts .zip file that contains .jar or .class files. This is required for a code review with security analysis. For more information, see Create code reviews with GitHub Actions in the Amazon CodeGuru Reviewer User Guide.

" } }, "documentation":"

Code artifacts are source code artifacts and build artifacts used in a repository analysis or a pull request review.

  • Source code artifacts are source code files in a Git repository that are compressed into a .zip file.

  • Build artifacts are .jar or .class files that are compressed in a .zip file.

" @@ -385,15 +385,15 @@ "members":{ "Name":{ "shape":"Name", - "documentation":"

The name of the code review.

" + "documentation":"

The name of the code review.

" }, "CodeReviewArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

" + "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

" }, "RepositoryName":{ "shape":"Name", - "documentation":"

The name of the repository.

" + "documentation":"

The name of the repository.

" }, "Owner":{ "shape":"Owner", @@ -401,43 +401,43 @@ }, "ProviderType":{ "shape":"ProviderType", - "documentation":"

The type of repository that contains the reviewed code (for example, GitHub or Bitbucket).

" + "documentation":"

The type of repository that contains the reviewed code (for example, GitHub or Bitbucket).

" }, "State":{ "shape":"JobState", - "documentation":"

The valid code review states are:

  • Completed: The code review is complete.

  • Pending: The code review started and has not completed or failed.

  • Failed: The code review failed.

  • Deleting: The code review is being deleted.

" + "documentation":"

The valid code review states are:

  • Completed: The code review is complete.

  • Pending: The code review started and has not completed or failed.

  • Failed: The code review failed.

  • Deleting: The code review is being deleted.

" }, "StateReason":{ "shape":"StateReason", - "documentation":"

The reason for the state of the code review.

" + "documentation":"

The reason for the state of the code review.

" }, "CreatedTimeStamp":{ "shape":"TimeStamp", - "documentation":"

The time, in milliseconds since the epoch, when the code review was created.

" + "documentation":"

The time, in milliseconds since the epoch, when the code review was created.

" }, "LastUpdatedTimeStamp":{ "shape":"TimeStamp", - "documentation":"

The time, in milliseconds since the epoch, when the code review was last updated.

" + "documentation":"

The time, in milliseconds since the epoch, when the code review was last updated.

" }, "Type":{ "shape":"Type", - "documentation":"

The type of code review.

" + "documentation":"

The type of code review.

" }, "PullRequestId":{ "shape":"PullRequestId", - "documentation":"

The pull request ID for the code review.

" + "documentation":"

The pull request ID for the code review.

" }, "SourceCodeType":{ "shape":"SourceCodeType", - "documentation":"

The type of the source code for the code review.

" + "documentation":"

The type of the source code for the code review.

" }, "AssociationArn":{ "shape":"AssociationArn", - "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation that contains the reviewed source code. You can retrieve associated repository ARNs by calling ListRepositoryAssociations .

" + "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation that contains the reviewed source code. You can retrieve associated repository ARNs by calling ListRepositoryAssociations.

" }, "Metrics":{ "shape":"Metrics", - "documentation":"

The statistics from the code review.

" + "documentation":"

The statistics from the code review.

" }, "AnalysisTypes":{ "shape":"AnalysisTypes", @@ -448,7 +448,7 @@ "documentation":"

The state of the aws-codeguru-reviewer.yml configuration file that allows the configuration of the CodeGuru Reviewer analysis. The file either exists, doesn't exist, or exists with errors at the root directory of your repository.

" } }, - "documentation":"

Information about a code review. A code review belongs to the associated repository that contains the reviewed code.

" + "documentation":"

Information about a code review. A code review belongs to the associated repository that contains the reviewed code.

" }, "CodeReviewName":{ "type":"string", @@ -465,15 +465,15 @@ "members":{ "Name":{ "shape":"Name", - "documentation":"

The name of the code review.

" + "documentation":"

The name of the code review.

" }, "CodeReviewArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

" + "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

" }, "RepositoryName":{ "shape":"Name", - "documentation":"

The name of the repository.

" + "documentation":"

The name of the repository.

" }, "Owner":{ "shape":"Owner", @@ -481,35 +481,35 @@ }, "ProviderType":{ "shape":"ProviderType", - "documentation":"

The provider type of the repository association.

" + "documentation":"

The provider type of the repository association.

" }, "State":{ "shape":"JobState", - "documentation":"

The state of the code review.

The valid code review states are:

  • Completed: The code review is complete.

  • Pending: The code review started and has not completed or failed.

  • Failed: The code review failed.

  • Deleting: The code review is being deleted.

" + "documentation":"

The state of the code review.

The valid code review states are:

  • Completed: The code review is complete.

  • Pending: The code review started and has not completed or failed.

  • Failed: The code review failed.

  • Deleting: The code review is being deleted.

" }, "CreatedTimeStamp":{ "shape":"TimeStamp", - "documentation":"

The time, in milliseconds since the epoch, when the code review was created.

" + "documentation":"

The time, in milliseconds since the epoch, when the code review was created.

" }, "LastUpdatedTimeStamp":{ "shape":"TimeStamp", - "documentation":"

The time, in milliseconds since the epoch, when the code review was last updated.

" + "documentation":"

The time, in milliseconds since the epoch, when the code review was last updated.

" }, "Type":{ "shape":"Type", - "documentation":"

The type of the code review.

" + "documentation":"

The type of the code review.

" }, "PullRequestId":{ "shape":"PullRequestId", - "documentation":"

The pull request ID for the code review.

" + "documentation":"

The pull request ID for the code review.

" }, "MetricsSummary":{ "shape":"MetricsSummary", - "documentation":"

The statistics from the code review.

" + "documentation":"

The statistics from the code review.

" }, "SourceCodeType":{"shape":"SourceCodeType"} }, - "documentation":"

Information about the summary of the code review.

" + "documentation":"

Information about the summary of the code review.

" }, "CodeReviewType":{ "type":"structure", @@ -517,32 +517,32 @@ "members":{ "RepositoryAnalysis":{ "shape":"RepositoryAnalysis", - "documentation":"

A code review that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN in CreateCodeReview .

" + "documentation":"

A code review that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN in CreateCodeReview.

" }, "AnalysisTypes":{ "shape":"AnalysisTypes", "documentation":"

They types of analysis performed during a repository analysis or a pull request review. You can specify either Security, CodeQuality, or both.

" } }, - "documentation":"

The type of a code review. There are two code review types:

  • PullRequest - A code review that is automatically triggered by a pull request on an associated repository.

  • RepositoryAnalysis - A code review that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN in CreateCodeReview .

" + "documentation":"

The type of a code review. There are two code review types:

  • PullRequest - A code review that is automatically triggered by a pull request on an associated repository.

  • RepositoryAnalysis - A code review that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN in CreateCodeReview.

" }, "CommitDiffSourceCodeType":{ "type":"structure", "members":{ "SourceCommit":{ "shape":"CommitId", - "documentation":"

The SHA of the source commit used to generate a commit diff. This field is required for a pull request code review.

" + "documentation":"

The SHA of the source commit used to generate a commit diff. This field is required for a pull request code review.

" }, "DestinationCommit":{ "shape":"CommitId", - "documentation":"

The SHA of the destination commit used to generate a commit diff. This field is required for a pull request code review.

" + "documentation":"

The SHA of the destination commit used to generate a commit diff. This field is required for a pull request code review.

" }, "MergeBaseCommit":{ "shape":"CommitId", "documentation":"

The SHA of the merge base of a commit.

" } }, - "documentation":"

A type of SourceCodeType that specifies the commit diff for a pull request on an associated repository. The SourceCommit and DestinationCommit fields are required to do a pull request code review.

" + "documentation":"

A type of SourceCodeType that specifies the commit diff for a pull request on an associated repository. The SourceCommit and DestinationCommit fields are required to do a pull request code review.

" }, "CommitId":{ "type":"string", @@ -582,19 +582,19 @@ "members":{ "Name":{ "shape":"CodeReviewName", - "documentation":"

The name of the code review. The name of each code review in your Amazon Web Services account must be unique.

" + "documentation":"

The name of the code review. The name of each code review in your Amazon Web Services account must be unique.

" }, "RepositoryAssociationArn":{ "shape":"AssociationArn", - "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations .

A code review can only be created on an associated repository. This is the ARN of the associated repository.

" + "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations.

A code review can only be created on an associated repository. This is the ARN of the associated repository.

" }, "Type":{ "shape":"CodeReviewType", - "documentation":"

The type of code review to create. This is specified using a CodeReviewType object. You can create a code review only of type RepositoryAnalysis.

" + "documentation":"

The type of code review to create. This is specified using a CodeReviewType object. You can create a code review only of type RepositoryAnalysis.

" }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate code reviews if there are failures and retries.

", + "documentation":"

Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate code reviews if there are failures and retries.

", "idempotencyToken":true } } @@ -611,7 +611,7 @@ "members":{ "CodeReviewArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

", + "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

", "location":"uri", "locationName":"CodeReviewArn" } @@ -622,7 +622,7 @@ "members":{ "CodeReview":{ "shape":"CodeReview", - "documentation":"

Information about the code review.

" + "documentation":"

Information about the code review.

" } } }, @@ -635,19 +635,19 @@ "members":{ "CodeReviewArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

", + "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

", "location":"uri", "locationName":"CodeReviewArn" }, "RecommendationId":{ "shape":"RecommendationId", - "documentation":"

The recommendation ID that can be used to track the provided recommendations and then to collect the feedback.

", + "documentation":"

The recommendation ID that can be used to track the provided recommendations and then to collect the feedback.

", "location":"querystring", "locationName":"RecommendationId" }, "UserId":{ "shape":"UserId", - "documentation":"

Optional parameter to describe the feedback for a given user. If this is not supplied, it defaults to the user making the request.

The UserId is an IAM principal that can be specified as an Amazon Web Services account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the Amazon Web Services Identity and Access Management User Guide.

", + "documentation":"

Optional parameter to describe the feedback for a given user. If this is not supplied, it defaults to the user making the request.

The UserId is an IAM principal that can be specified as an Amazon Web Services account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the Amazon Web Services Identity and Access Management User Guide.

", "location":"querystring", "locationName":"UserId" } @@ -658,7 +658,7 @@ "members":{ "RecommendationFeedback":{ "shape":"RecommendationFeedback", - "documentation":"

The recommendation feedback given by the user.

" + "documentation":"

The recommendation feedback given by the user.

" } } }, @@ -668,7 +668,7 @@ "members":{ "AssociationArn":{ "shape":"AssociationArn", - "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations .

", + "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations.

", "location":"uri", "locationName":"AssociationArn" } @@ -683,7 +683,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" + "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" } } }, @@ -693,7 +693,7 @@ "members":{ "AssociationArn":{ "shape":"AssociationArn", - "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations .

", + "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations.

", "location":"uri", "locationName":"AssociationArn" } @@ -708,7 +708,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" + "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" } } }, @@ -782,14 +782,14 @@ "members":{ "KMSKeyId":{ "shape":"KMSKeyId", - "documentation":"

The ID of the Amazon Web Services KMS key that is associated with a respository association.

" + "documentation":"

The ID of the Amazon Web Services KMS key that is associated with a repository association.

" }, "EncryptionOption":{ "shape":"EncryptionOption", "documentation":"

The encryption option for a repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK).

" } }, - "documentation":"

An object that contains:

  • The encryption option for a repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK).

  • The ID of the Amazon Web Services KMS key that is associated with a respository association.

" + "documentation":"

An object that contains:

  • The encryption option for a repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK).

  • The ID of the Amazon Web Services KMS key that is associated with a repository association.

" }, "KMSKeyId":{ "type":"string", @@ -810,37 +810,37 @@ "members":{ "ProviderTypes":{ "shape":"ProviderTypes", - "documentation":"

List of provider types for filtering that needs to be applied before displaying the result. For example, providerTypes=[GitHub] lists code reviews from GitHub.

", + "documentation":"

List of provider types for filtering that needs to be applied before displaying the result. For example, providerTypes=[GitHub] lists code reviews from GitHub.

", "location":"querystring", "locationName":"ProviderTypes" }, "States":{ "shape":"JobStates", - "documentation":"

List of states for filtering that needs to be applied before displaying the result. For example, states=[Pending] lists code reviews in the Pending state.

The valid code review states are:

  • Completed: The code review is complete.

  • Pending: The code review started and has not completed or failed.

  • Failed: The code review failed.

  • Deleting: The code review is being deleted.

", + "documentation":"

List of states for filtering that needs to be applied before displaying the result. For example, states=[Pending] lists code reviews in the Pending state.

The valid code review states are:

  • Completed: The code review is complete.

  • Pending: The code review started and has not completed or failed.

  • Failed: The code review failed.

  • Deleting: The code review is being deleted.

", "location":"querystring", "locationName":"States" }, "RepositoryNames":{ "shape":"RepositoryNames", - "documentation":"

List of repository names for filtering that needs to be applied before displaying the result.

", + "documentation":"

List of repository names for filtering that needs to be applied before displaying the result.

", "location":"querystring", "locationName":"RepositoryNames" }, "Type":{ "shape":"Type", - "documentation":"

The type of code reviews to list in the response.

", + "documentation":"

The type of code reviews to list in the response.

", "location":"querystring", "locationName":"Type" }, "MaxResults":{ "shape":"ListCodeReviewsMaxResults", - "documentation":"

The maximum number of results that are returned per call. The default is 100.

", + "documentation":"

The maximum number of results that are returned per call. The default is 100.

", "location":"querystring", "locationName":"MaxResults" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

", "location":"querystring", "locationName":"NextToken" } @@ -851,11 +851,11 @@ "members":{ "CodeReviewSummaries":{ "shape":"CodeReviewSummaries", - "documentation":"

A list of code reviews that meet the criteria of the request.

" + "documentation":"

A list of code reviews that meet the criteria of the request.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

Pagination token.

" + "documentation":"

Pagination token.

" } } }, @@ -865,31 +865,31 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

", "location":"querystring", "locationName":"NextToken" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of results that are returned per call. The default is 100.

", + "documentation":"

The maximum number of results that are returned per call. The default is 100.

", "location":"querystring", "locationName":"MaxResults" }, "CodeReviewArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

", + "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

", "location":"uri", "locationName":"CodeReviewArn" }, "UserIds":{ "shape":"UserIds", - "documentation":"

An Amazon Web Services user's account ID or Amazon Resource Name (ARN). Use this ID to query the recommendation feedback for a code review from that user.

The UserId is an IAM principal that can be specified as an Amazon Web Services account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the Amazon Web Services Identity and Access Management User Guide.

", + "documentation":"

An Amazon Web Services user's account ID or Amazon Resource Name (ARN). Use this ID to query the recommendation feedback for a code review from that user.

The UserId is an IAM principal that can be specified as an Amazon Web Services account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the Amazon Web Services Identity and Access Management User Guide.

", "location":"querystring", "locationName":"UserIds" }, "RecommendationIds":{ "shape":"RecommendationIds", - "documentation":"

Used to query the recommendation feedback for a given recommendation.

", + "documentation":"

Used to query the recommendation feedback for a given recommendation.

", "location":"querystring", "locationName":"RecommendationIds" } @@ -900,11 +900,11 @@ "members":{ "RecommendationFeedbackSummaries":{ "shape":"RecommendationFeedbackSummaries", - "documentation":"

Recommendation feedback summaries corresponding to the code review ARN.

" + "documentation":"

Recommendation feedback summaries corresponding to the code review ARN.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" } } }, @@ -919,19 +919,19 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

Pagination token.

", + "documentation":"

Pagination token.

", "location":"querystring", "locationName":"NextToken" }, "MaxResults":{ "shape":"ListRecommendationsMaxResults", - "documentation":"

The maximum number of results that are returned per call. The default is 100.

", + "documentation":"

The maximum number of results that are returned per call. The default is 100.

", "location":"querystring", "locationName":"MaxResults" }, "CodeReviewArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

", + "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

", "location":"uri", "locationName":"CodeReviewArn" } @@ -942,11 +942,11 @@ "members":{ "RecommendationSummaries":{ "shape":"RecommendationSummaries", - "documentation":"

List of recommendations for the requested code review.

" + "documentation":"

List of recommendations for the requested code review.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

Pagination token.

" + "documentation":"

Pagination token.

" } } }, @@ -961,7 +961,7 @@ }, "States":{ "shape":"RepositoryAssociationStates", - "documentation":"

List of repository association states to use as a filter.

The valid repository association states are:

  • Associated: The repository association is complete.

  • Associating: CodeGuru Reviewer is:

    • Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.

      If your repository ProviderType is GitHub, GitHub Enterprise Server, or Bitbucket, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.

    • Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.

  • Failed: The repository failed to associate or disassociate.

  • Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.

  • Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide.

", + "documentation":"

List of repository association states to use as a filter.

The valid repository association states are:

  • Associated: The repository association is complete.

  • Associating: CodeGuru Reviewer is:

    • Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.

      If your repository ProviderType is GitHub, GitHub Enterprise Server, or Bitbucket, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.

    • Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.

  • Failed: The repository failed to associate or disassociate.

  • Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.

  • Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in anassociated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide.

", "location":"querystring", "locationName":"State" }, @@ -1010,7 +1010,7 @@ "members":{ "resourceArn":{ "shape":"AssociationArn", - "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations .

", + "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations.

", "location":"uri", "locationName":"resourceArn" } @@ -1021,7 +1021,7 @@ "members":{ "Tags":{ "shape":"TagMap", - "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" + "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" } } }, @@ -1041,7 +1041,7 @@ "members":{ "MeteredLinesOfCodeCount":{ "shape":"LinesOfCodeCount", - "documentation":"

MeteredLinesOfCodeCount is the number of lines of code in the repository where the code review happened. This does not include non-code lines such as comments and blank lines.

" + "documentation":"

MeteredLinesOfCodeCount is the number of lines of code in the repository where the code review happened. This does not include non-code lines such as comments and blank lines.

" }, "SuppressedLinesOfCodeCount":{ "shape":"LinesOfCodeCount", @@ -1049,17 +1049,17 @@ }, "FindingsCount":{ "shape":"FindingsCount", - "documentation":"

Total number of recommendations found in the code review.

" + "documentation":"

Total number of recommendations found in the code review.

" } }, - "documentation":"

Information about the statistics from the code review.

" + "documentation":"

Information about the statistics from the code review.

" }, "MetricsSummary":{ "type":"structure", "members":{ "MeteredLinesOfCodeCount":{ "shape":"LinesOfCodeCount", - "documentation":"

Lines of code metered in the code review. For the initial code review pull request and all subsequent revisions, this includes all lines of code in the files added to the pull request. In subsequent revisions, for files that already existed in the pull request, this includes only the changed lines of code. In both cases, this does not include non-code lines such as comments and import statements. For example, if you submit a pull request containing 5 files, each with 500 lines of code, and in a subsequent revision you added a new file with 200 lines of code, and also modified a total of 25 lines across the initial 5 files, MeteredLinesOfCodeCount includes the first 5 files (5 * 500 = 2,500 lines), the new file (200 lines) and the 25 changed lines of code for a total of 2,725 lines of code.

" + "documentation":"

Lines of code metered in the code review. For the initial code review pull request and all subsequent revisions, this includes all lines of code in the files added to the pull request. In subsequent revisions, for files that already existed in the pull request, this includes only the changed lines of code. In both cases, this does not include non-code lines such as comments and import statements. For example, if you submit a pull request containing 5 files, each with 500 lines of code, and in a subsequent revision you added a new file with 200 lines of code, and also modified a total of 25 lines across the initial 5 files, MeteredLinesOfCodeCount includes the first 5 files (5 * 500 = 2,500 lines), the new file (200 lines) and the 25 changed lines of code for a total of 2,725 lines of code.

" }, "SuppressedLinesOfCodeCount":{ "shape":"LinesOfCodeCount", @@ -1067,10 +1067,10 @@ }, "FindingsCount":{ "shape":"FindingsCount", - "documentation":"

Total number of recommendations found in the code review.

" + "documentation":"

Total number of recommendations found in the code review.

" } }, - "documentation":"

Information about metrics summaries.

" + "documentation":"

Information about metrics summaries.

" }, "Name":{ "type":"string", @@ -1141,15 +1141,15 @@ "members":{ "CodeReviewArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

" + "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

" }, "RecommendationId":{ "shape":"RecommendationId", - "documentation":"

The recommendation ID that can be used to track the provided recommendations and then to collect the feedback.

" + "documentation":"

The recommendation ID that can be used to track the provided recommendations and then to collect the feedback.

" }, "Reactions":{ "shape":"Reactions", - "documentation":"

List for storing reactions. Reactions are utf-8 text code for emojis. If you send an empty list it clears all your feedback.

" + "documentation":"

List for storing reactions. Reactions are utf-8 text code for emojis. If you send an empty list it clears all your feedback.

" } } }, @@ -1192,30 +1192,30 @@ "members":{ "CodeReviewArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

" + "documentation":"

The Amazon Resource Name (ARN) of the CodeReview object.

" }, "RecommendationId":{ "shape":"RecommendationId", - "documentation":"

The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback.

" + "documentation":"

The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback.

" }, "Reactions":{ "shape":"Reactions", - "documentation":"

List for storing reactions. Reactions are utf-8 text code for emojis. You can send an empty list to clear off all your feedback.

" + "documentation":"

List for storing reactions. Reactions are utf-8 text code for emojis. You can send an empty list to clear off all your feedback.

" }, "UserId":{ "shape":"UserId", - "documentation":"

The ID of the user that made the API call.

The UserId is an IAM principal that can be specified as an Amazon Web Services account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the Amazon Web Services Identity and Access Management User Guide.

" + "documentation":"

The ID of the user that made the API call.

The UserId is an IAM principal that can be specified as an Amazon Web Services account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the Amazon Web Services Identity and Access Management User Guide.

" }, "CreatedTimeStamp":{ "shape":"TimeStamp", - "documentation":"

The time at which the feedback was created.

" + "documentation":"

The time at which the feedback was created.

" }, "LastUpdatedTimeStamp":{ "shape":"TimeStamp", - "documentation":"

The time at which the feedback was last updated.

" + "documentation":"

The time at which the feedback was last updated.

" } }, - "documentation":"

Information about the recommendation feedback.

" + "documentation":"

Information about the recommendation feedback.

" }, "RecommendationFeedbackSummaries":{ "type":"list", @@ -1226,18 +1226,18 @@ "members":{ "RecommendationId":{ "shape":"RecommendationId", - "documentation":"

The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback.

" + "documentation":"

The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback.

" }, "Reactions":{ "shape":"Reactions", - "documentation":"

List for storing reactions. Reactions are utf-8 text code for emojis.

" + "documentation":"

List for storing reactions. Reactions are utf-8 text code for emojis.

" }, "UserId":{ "shape":"UserId", - "documentation":"

The ID of the user that gave the feedback.

The UserId is an IAM principal that can be specified as an Amazon Web Services account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the Amazon Web Services Identity and Access Management User Guide.

" + "documentation":"

The ID of the user that gave the feedback.

The UserId is an IAM principal that can be specified as an Amazon Web Services account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the Amazon Web Services Identity and Access Management User Guide.

" } }, - "documentation":"

Information about recommendation feedback summaries.

" + "documentation":"

Information about recommendation feedback summaries.

" }, "RecommendationId":{ "type":"string", @@ -1263,19 +1263,19 @@ }, "RecommendationId":{ "shape":"RecommendationId", - "documentation":"

The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback.

" + "documentation":"

The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback.

" }, "StartLine":{ "shape":"LineNumber", - "documentation":"

Start line from where the recommendation is applicable in the source commit or source branch.

" + "documentation":"

Start line from where the recommendation is applicable in the source commit or source branch.

" }, "EndLine":{ "shape":"LineNumber", - "documentation":"

Last line where the recommendation is applicable in the source commit or source branch. For a single line comment the start line and end line values are the same.

" + "documentation":"

Last line where the recommendation is applicable in the source commit or source branch. For a single line comment the start line and end line values are the same.

" }, "Description":{ "shape":"Text", - "documentation":"

A description of the recommendation generated by CodeGuru Reviewer for the lines of code between the start line and the end line.

" + "documentation":"

A description of the recommendation generated by CodeGuru Reviewer for the lines of code between the start line and the end line.

" }, "RecommendationCategory":{ "shape":"RecommendationCategory", @@ -1290,7 +1290,7 @@ "documentation":"

The severity of the issue in the code that generated this recommendation.

" } }, - "documentation":"

Information about recommendations.

" + "documentation":"

Information about recommendations.

" }, "Repository":{ "type":"structure", @@ -1305,22 +1305,22 @@ }, "GitHubEnterpriseServer":{ "shape":"ThirdPartySourceRepository", - "documentation":"

Information about a GitHub Enterprise Server repository.

" + "documentation":"

Information about a GitHub Enterprise Server repository.

" }, "S3Bucket":{"shape":"S3Repository"} }, - "documentation":"

Information about an associated Amazon Web Services CodeCommit repository or an associated repository that is managed by Amazon Web Services CodeStar Connections (for example, Bitbucket). This Repository object is not used if your source code is in an associated GitHub repository.

" + "documentation":"

Information about an associated Amazon Web Services CodeCommit repository or an associated repository that is managed by Amazon Web Services CodeStar Connections (for example, Bitbucket). This Repository object is not used if your source code is in an associated GitHub repository.

" }, "RepositoryAnalysis":{ "type":"structure", "members":{ "RepositoryHead":{ "shape":"RepositoryHeadSourceCodeType", - "documentation":"

A SourceCodeType that specifies the tip of a branch in an associated repository.

" + "documentation":"

A SourceCodeType that specifies the tip of a branch in an associated repository.

" }, "SourceCodeType":{"shape":"SourceCodeType"} }, - "documentation":"

A code review type that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN when you call CreateCodeReview .

" + "documentation":"

A code review type that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN when you call CreateCodeReview.

" }, "RepositoryAssociation":{ "type":"structure", @@ -1335,7 +1335,7 @@ }, "ConnectionArn":{ "shape":"ConnectionArn", - "documentation":"

The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more information, see Connection in the Amazon Web Services CodeStar Connections API Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more information, see Connection in the Amazon Web Services CodeStar Connections API Reference.

" }, "Name":{ "shape":"Name", @@ -1351,7 +1351,7 @@ }, "State":{ "shape":"RepositoryAssociationState", - "documentation":"

The state of the repository association.

The valid repository association states are:

  • Associated: The repository association is complete.

  • Associating: CodeGuru Reviewer is:

    • Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.

      If your repository ProviderType is GitHub, GitHub Enterprise Server, or Bitbucket, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.

    • Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.

  • Failed: The repository failed to associate or disassociate.

  • Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.

  • Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide.

" + "documentation":"

The state of the repository association.

The valid repository association states are:

  • Associated: The repository association is complete.

  • Associating: CodeGuru Reviewer is:

    • Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.

      If your repository ProviderType is GitHub, GitHub Enterprise Server, or Bitbucket, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.

    • Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.

  • Failed: The repository failed to associate or disassociate.

  • Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.

  • Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in anassociated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide.

" }, "StateReason":{ "shape":"StateReason", @@ -1367,11 +1367,11 @@ }, "KMSKeyDetails":{ "shape":"KMSKeyDetails", - "documentation":"

A KMSKeyDetails object that contains:

  • The encryption option for this repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK).

  • The ID of the Amazon Web Services KMS key that is associated with this respository association.

" + "documentation":"

A KMSKeyDetails object that contains:

  • The encryption option for this repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK).

  • The ID of the Amazon Web Services KMS key that is associated with this repository association.

" }, "S3RepositoryDetails":{"shape":"S3RepositoryDetails"} }, - "documentation":"

Information about a repository association. The DescribeRepositoryAssociation operation returns a RepositoryAssociation object.

" + "documentation":"

Information about a repository association. The DescribeRepositoryAssociation operation returns a RepositoryAssociation object.

" }, "RepositoryAssociationState":{ "type":"string", @@ -1398,19 +1398,19 @@ "members":{ "AssociationArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations .

" + "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations.

" }, "ConnectionArn":{ "shape":"ConnectionArn", - "documentation":"

The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more information, see Connection in the Amazon Web Services CodeStar Connections API Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more information, see Connection in the Amazon Web Services CodeStar Connections API Reference.

" }, "LastUpdatedTimeStamp":{ "shape":"TimeStamp", - "documentation":"

The time, in milliseconds since the epoch, since the repository association was last updated.

" + "documentation":"

The time, in milliseconds since the epoch, since the repository association was last updated.

" }, "AssociationId":{ "shape":"AssociationId", - "documentation":"

The repository association ID.

" + "documentation":"

The repository association ID.

" }, "Name":{ "shape":"Name", @@ -1426,10 +1426,10 @@ }, "State":{ "shape":"RepositoryAssociationState", - "documentation":"

The state of the repository association.

The valid repository association states are:

  • Associated: The repository association is complete.

  • Associating: CodeGuru Reviewer is:

    • Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.

      If your repository ProviderType is GitHub, GitHub Enterprise Server, or Bitbucket, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.

    • Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.

  • Failed: The repository failed to associate or disassociate.

  • Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.

  • Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide.

" + "documentation":"

The state of the repository association.

The valid repository association states are:

  • Associated: The repository association is complete.

  • Associating: CodeGuru Reviewer is:

    • Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.

      If your repository ProviderType is GitHub, GitHub Enterprise Server, or Bitbucket, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.

    • Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.

  • Failed: The repository failed to associate or disassociate.

  • Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.

  • Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in anassociated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide.

" } }, - "documentation":"

Summary information about a repository association. The ListRepositoryAssociations operation returns a list of RepositoryAssociationSummary objects.

" + "documentation":"

Summary information about a repository association. The ListRepositoryAssociations operation returns a list of RepositoryAssociationSummary objects.

" }, "RepositoryHeadSourceCodeType":{ "type":"structure", @@ -1437,10 +1437,10 @@ "members":{ "BranchName":{ "shape":"BranchName", - "documentation":"

The name of the branch in an associated repository. The RepositoryHeadSourceCodeType specifies the tip of this branch.

" + "documentation":"

The name of the branch in an associated repository. The RepositoryHeadSourceCodeType specifies the tip of this branch.

" } }, - "documentation":"

A SourceCodeType that specifies the tip of a branch in an associated repository.

" + "documentation":"

A SourceCodeType that specifies the tip of a branch in an associated repository.

" }, "RepositoryNames":{ "type":"list", @@ -1470,7 +1470,7 @@ }, "VendorName":{ "shape":"VendorName", - "documentation":"

The name of the repository vendor used to upload code to an S3 bucket for a CI/CD code review. For example, if code and artifacts are uploaded to an S3 bucket for a CI/CD code review by GitHub scripts from a GitHub repository, then the repository association's ProviderType is S3Bucket and the CI/CD repository vendor name is GitHub. For more information, see the definition for ProviderType in RepositoryAssociation.

" + "documentation":"

The name of the repository vendor used to upload code to an S3 bucket for a CI/CD code review. For example, if code and artifacts are uploaded to an S3 bucket for a CI/CD code review by GitHub scripts from a GitHub repository, then the repository association's ProviderType is S3Bucket and the CI/CD repository vendor name is GitHub. For more information, see the definition for ProviderType in RepositoryAssociation.

" } }, "documentation":"

Metadata that is associated with a code review. This applies to both pull request and repository analysis code reviews.

" @@ -1552,14 +1552,14 @@ "members":{ "Name":{ "shape":"Name", - "documentation":"

The name of the repository when the ProviderType is S3Bucket.

" + "documentation":"

The name of the repository when the ProviderType is S3Bucket.

" }, "Details":{ "shape":"S3RepositoryDetails", - "documentation":"

An S3RepositoryDetails object that specifies the name of an S3 bucket and a CodeArtifacts object. The CodeArtifacts object includes the S3 object keys for a source code .zip file and for a build artifacts .zip file.

" + "documentation":"

An S3RepositoryDetails object that specifies the name of an S3 bucket and a CodeArtifacts object. The CodeArtifacts object includes the S3 object keys for a source code .zip file and for a build artifacts .zip file.

" } }, - "documentation":"

Information about an associated repository in an S3 bucket. The associated repository contains a source code .zip file and a build artifacts .zip file that contains .jar or .class files.

" + "documentation":"

Information about an associated repository in an S3 bucket. The associated repository contains a source code .zip file and a build artifacts .zip file that contains .jar or .class files.

" }, "S3Repository":{ "type":"structure", @@ -1570,14 +1570,14 @@ "members":{ "Name":{ "shape":"Name", - "documentation":"

The name of the repository in the S3 bucket.

" + "documentation":"

The name of the repository in the S3 bucket.

" }, "BucketName":{ "shape":"S3BucketName", "documentation":"

The name of the S3 bucket used for associating a new S3 repository. It must begin with codeguru-reviewer-.

" } }, - "documentation":"

Information about a repository in an S3 bucket.

" + "documentation":"

Information about a repository in an S3 bucket.

" }, "S3RepositoryDetails":{ "type":"structure", @@ -1588,10 +1588,10 @@ }, "CodeArtifacts":{ "shape":"CodeArtifacts", - "documentation":"

A CodeArtifacts object. The CodeArtifacts object includes the S3 object key for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files.

" + "documentation":"

A CodeArtifacts object. The CodeArtifacts object includes the S3 object key for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files.

" } }, - "documentation":"

Specifies the name of an S3 bucket and a CodeArtifacts object that contains the S3 object keys for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files.

" + "documentation":"

Specifies the name of an S3 bucket and a CodeArtifacts object that contains the S3 object keys for a source code .zip file and for a build artifacts .zip file that contains .jar or .class files.

" }, "Severity":{ "type":"string", @@ -1620,23 +1620,23 @@ "members":{ "CommitDiff":{ "shape":"CommitDiffSourceCodeType", - "documentation":"

A SourceCodeType that specifies a commit diff created by a pull request on an associated repository.

" + "documentation":"

A SourceCodeType that specifies a commit diff created by a pull request on an associated repository.

" }, "RepositoryHead":{"shape":"RepositoryHeadSourceCodeType"}, "BranchDiff":{ "shape":"BranchDiffSourceCodeType", - "documentation":"

A type of SourceCodeType that specifies a source branch name and a destination branch name in an associated repository.

" + "documentation":"

A type of SourceCodeType that specifies a source branch name and a destination branch name in an associated repository.

" }, "S3BucketRepository":{ "shape":"S3BucketRepository", - "documentation":"

Information about an associated repository in an S3 bucket that includes its name and an S3RepositoryDetails object. The S3RepositoryDetails object includes the name of an S3 bucket, an S3 key for a source code .zip file, and an S3 key for a build artifacts .zip file. S3BucketRepository is required in SourceCodeType for S3BucketRepository based code reviews.

" + "documentation":"

Information about an associated repository in an S3 bucket that includes its name and an S3RepositoryDetails object. The S3RepositoryDetails object includes the name of an S3 bucket, an S3 key for a source code .zip file, and an S3 key for a build artifacts .zip file. S3BucketRepository is required in SourceCodeType for S3BucketRepository based code reviews.

" }, "RequestMetadata":{ "shape":"RequestMetadata", - "documentation":"

Metadata that is associated with a code review. This applies to any type of code review supported by CodeGuru Reviewer. The RequestMetadaa field captures any event metadata. For example, it might capture metadata associated with an event trigger, such as a push or a pull request.

" + "documentation":"

Metadata that is associated with a code review. This applies to any type of code review supported by CodeGuru Reviewer. The RequestMetadaa field captures any event metadata. For example, it might capture metadata associated with an event trigger, such as a push or a pull request.

" } }, - "documentation":"

Specifies the source code that is analyzed in a code review.

" + "documentation":"

Specifies the source code that is analyzed in a code review.

" }, "StateReason":{ "type":"string", @@ -1670,13 +1670,13 @@ "members":{ "resourceArn":{ "shape":"AssociationArn", - "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations .

", + "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations.

", "location":"uri", "locationName":"resourceArn" }, "Tags":{ "shape":"TagMap", - "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" + "documentation":"

An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.

" } } }, @@ -1704,18 +1704,18 @@ "members":{ "Name":{ "shape":"Name", - "documentation":"

The name of the third party source repository.

" + "documentation":"

The name of the third party source repository.

" }, "ConnectionArn":{ "shape":"ConnectionArn", - "documentation":"

The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more information, see Connection in the Amazon Web Services CodeStar Connections API Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more information, see Connection in the Amazon Web Services CodeStar Connections API Reference.

" }, "Owner":{ "shape":"Owner", - "documentation":"

The owner of the repository. For a GitHub, GitHub Enterprise, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, this can be the username or Amazon Web Services account ID.

" + "documentation":"

The owner of the repository. For a GitHub, GitHub Enterprise, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, this can be the username or Amazon Web Services account ID

" } }, - "documentation":"

Information about a third-party source repository connected to CodeGuru Reviewer.

" + "documentation":"

Information about a third-party source repository connected to CodeGuru Reviewer.

" }, "ThrottlingException":{ "type":"structure", @@ -1743,7 +1743,7 @@ "members":{ "resourceArn":{ "shape":"AssociationArn", - "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations .

", + "documentation":"

The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations.

", "location":"uri", "locationName":"resourceArn" }, @@ -1789,5 +1789,5 @@ ] } }, - "documentation":"

This section provides documentation for the Amazon CodeGuru Reviewer API operations. CodeGuru Reviewer is a service that uses program analysis and machine learning to detect potential defects that are difficult for developers to find and recommends fixes in your Java and Python code.

By proactively detecting and providing recommendations for addressing code defects and implementing best practices, CodeGuru Reviewer improves the overall quality and maintainability of your code base during the code review stage. For more information about CodeGuru Reviewer, see the Amazon CodeGuru Reviewer User Guide.

To improve the security of your CodeGuru Reviewer API calls, you can establish a private connection between your VPC and CodeGuru Reviewer by creating an interface VPC endpoint. For more information, see CodeGuru Reviewer and interface VPC endpoints (Amazon Web Services PrivateLink) in the Amazon CodeGuru Reviewer User Guide.

" + "documentation":"

This section provides documentation for the Amazon CodeGuru Reviewer API operations. CodeGuru Reviewer is a service that uses program analysis and machine learning to detect potential defects that are difficult for developers to find and recommends fixes in your Java and Python code.

By proactively detecting and providing recommendations for addressing code defects and implementing best practices, CodeGuru Reviewer improves the overall quality and maintainability of your code base during the code review stage. For more information about CodeGuru Reviewer, see the Amazon CodeGuru Reviewer User Guide.

To improve the security of your CodeGuru Reviewer API calls, you can establish a private connection between your VPC and CodeGuru Reviewer by creating an interface VPC endpoint. For more information, see CodeGuru Reviewer and interface VPC endpoints (Amazon Web Services PrivateLink) in the Amazon CodeGuru Reviewer User Guide.

" } diff --git a/botocore/data/codeguruprofiler/2019-07-18/endpoint-rule-set-1.json b/botocore/data/codeguruprofiler/2019-07-18/endpoint-rule-set-1.json new file mode 100644 index 00000000..c63f56f0 --- /dev/null +++ b/botocore/data/codeguruprofiler/2019-07-18/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeguru-profiler-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeguru-profiler-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codeguru-profiler.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codeguru-profiler.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codeguruprofiler/2019-07-18/examples-1.json b/botocore/data/codeguruprofiler/2019-07-18/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/codeguruprofiler/2019-07-18/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/codepipeline/2015-07-09/endpoint-rule-set-1.json b/botocore/data/codepipeline/2015-07-09/endpoint-rule-set-1.json new file mode 100644 index 00000000..2a14c131 --- /dev/null +++ b/botocore/data/codepipeline/2015-07-09/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codepipeline-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codepipeline-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codepipeline.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codepipeline.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codestar-connections/2019-12-01/endpoint-rule-set-1.json b/botocore/data/codestar-connections/2019-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..698d9be7 --- /dev/null +++ b/botocore/data/codestar-connections/2019-12-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codestar-connections-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codestar-connections-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codestar-connections.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codestar-connections.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codestar-connections/2019-12-01/examples-1.json b/botocore/data/codestar-connections/2019-12-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/codestar-connections/2019-12-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/codestar-notifications/2019-10-15/endpoint-rule-set-1.json b/botocore/data/codestar-notifications/2019-10-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..503abea7 --- /dev/null +++ b/botocore/data/codestar-notifications/2019-10-15/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codestar-notifications-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codestar-notifications-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codestar-notifications.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codestar-notifications.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/codestar-notifications/2019-10-15/examples-1.json b/botocore/data/codestar-notifications/2019-10-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/codestar-notifications/2019-10-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/codestar-notifications/2019-10-15/service-2.json b/botocore/data/codestar-notifications/2019-10-15/service-2.json index df94d9bc..3e65e08a 100644 --- a/botocore/data/codestar-notifications/2019-10-15/service-2.json +++ b/botocore/data/codestar-notifications/2019-10-15/service-2.json @@ -28,7 +28,7 @@ {"shape":"ConcurrentModificationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Creates a notification rule for a resource. The rule specifies the events you want notifications about and the targets (such as SNS topics) where you want to receive them.

" + "documentation":"

Creates a notification rule for a resource. The rule specifies the events you want notifications about and the targets (such as Chatbot topics or Chatbot clients configured for Slack) where you want to receive them.

" }, "DeleteNotificationRule":{ "name":"DeleteNotificationRule", @@ -98,7 +98,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns a list of the notification rules for an AWS account.

" + "documentation":"

Returns a list of the notification rules for an Amazon Web Services account.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -126,7 +126,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns a list of the notification rule targets for an AWS account.

" + "documentation":"

Returns a list of the notification rule targets for an Amazon Web Services account.

" }, "Subscribe":{ "name":"Subscribe", @@ -138,9 +138,10 @@ "output":{"shape":"SubscribeResult"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ConfigurationException"} ], - "documentation":"

Creates an association between a notification rule and an SNS topic so that the associated target can receive notifications when the events described in the rule are triggered.

" + "documentation":"

Creates an association between a notification rule and an Chatbot topic or Chatbot client so that the associated target can receive notifications when the events described in the rule are triggered.

" }, "TagResource":{ "name":"TagResource", @@ -152,6 +153,7 @@ "output":{"shape":"TagResourceResult"}, "errors":[ {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, {"shape":"ValidationException"}, {"shape":"ConcurrentModificationException"} ], @@ -168,18 +170,19 @@ "errors":[ {"shape":"ValidationException"} ], - "documentation":"

Removes an association between a notification rule and an Amazon SNS topic so that subscribers to that topic stop receiving notifications when the events described in the rule are triggered.

" + "documentation":"

Removes an association between a notification rule and an Chatbot topic so that subscribers to that topic stop receiving notifications when the events described in the rule are triggered.

" }, "UntagResource":{ "name":"UntagResource", "http":{ "method":"POST", - "requestUri":"/untagResource" + "requestUri":"/untagResource/{resourceArn}" }, "input":{"shape":"UntagResourceRequest"}, "output":{"shape":"UntagResourceResult"}, "errors":[ {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, {"shape":"ValidationException"}, {"shape":"ConcurrentModificationException"} ], @@ -195,7 +198,8 @@ "output":{"shape":"UpdateNotificationRuleResult"}, "errors":[ {"shape":"ValidationException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ConfigurationException"} ], "documentation":"

Updates a notification rule for a resource. You can change the events that trigger the notification rule, the status of the rule, and the targets that receive the notifications.

To add or remove tags for a notification rule, you must use TagResource and UntagResource.

" } @@ -246,7 +250,7 @@ "members":{ "Name":{ "shape":"NotificationRuleName", - "documentation":"

The name for the notification rule. Notifictaion rule names must be unique in your AWS account.

" + "documentation":"

The name for the notification rule. Notification rule names must be unique in your Amazon Web Services account.

" }, "EventTypeIds":{ "shape":"EventTypeIds", @@ -254,28 +258,28 @@ }, "Resource":{ "shape":"NotificationRuleResource", - "documentation":"

The Amazon Resource Name (ARN) of the resource to associate with the notification rule. Supported resources include pipelines in AWS CodePipeline, repositories in AWS CodeCommit, and build projects in AWS CodeBuild.

" + "documentation":"

The Amazon Resource Name (ARN) of the resource to associate with the notification rule. Supported resources include pipelines in CodePipeline, repositories in CodeCommit, and build projects in CodeBuild.

" }, "Targets":{ "shape":"Targets", - "documentation":"

A list of Amazon Resource Names (ARNs) of SNS topics to associate with the notification rule.

" + "documentation":"

A list of Amazon Resource Names (ARNs) of Amazon Simple Notification Service topics and Chatbot clients to associate with the notification rule.

" }, "DetailType":{ "shape":"DetailType", - "documentation":"

The level of detail to include in the notifications for this resource. BASIC will include only the contents of the event as it would appear in AWS CloudWatch. FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.

" + "documentation":"

The level of detail to include in the notifications for this resource. BASIC will include only the contents of the event as it would appear in Amazon CloudWatch. FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.

" }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request with the same parameters is received and a token is included, the request returns information about the initial request that used that token.

The AWS SDKs prepopulate client request tokens. If you are using an AWS SDK, an idempotency token is created for you.

", + "documentation":"

A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request with the same parameters is received and a token is included, the request returns information about the initial request that used that token.

The Amazon Web Services SDKs prepopulate client request tokens. If you are using an Amazon Web Services SDK, an idempotency token is created for you.

", "idempotencyToken":true }, "Tags":{ "shape":"Tags", - "documentation":"

A list of tags to apply to this notification rule. Key names cannot start with \"aws\".

" + "documentation":"

A list of tags to apply to this notification rule. Key names cannot start with \"aws\".

" }, "Status":{ "shape":"NotificationRuleStatus", - "documentation":"

The status of the notification rule. The default value is ENABLED. If the status is set to DISABLED, notifications aren't sent for the notification rule.

" + "documentation":"

The status of the notification rule. The default value is ENABLED. If the status is set to DISABLED, notifications aren't sent for the notification rule.

" } } }, @@ -314,11 +318,11 @@ "members":{ "TargetAddress":{ "shape":"TargetAddress", - "documentation":"

The Amazon Resource Name (ARN) of the SNS topic to delete.

" + "documentation":"

The Amazon Resource Name (ARN) of the Chatbot topic or Chatbot client to delete.

" }, "ForceUnsubscribeAll":{ "shape":"ForceUnsubscribeAll", - "documentation":"

A Boolean value that can be used to delete all associations with this SNS topic. The default value is FALSE. If set to TRUE, all associations between that target and every notification rule in your AWS account are deleted.

" + "documentation":"

A Boolean value that can be used to delete all associations with this Chatbot topic. The default value is FALSE. If set to TRUE, all associations between that target and every notification rule in your Amazon Web Services account are deleted.

" } } }, @@ -359,11 +363,11 @@ }, "Targets":{ "shape":"TargetsBatch", - "documentation":"

A list of the SNS topics associated with the notification rule.

" + "documentation":"

A list of the Chatbot topics and Chatbot clients associated with the notification rule.

" }, "DetailType":{ "shape":"DetailType", - "documentation":"

The level of detail included in the notifications for this resource. BASIC will include only the contents of the event as it would appear in AWS CloudWatch. FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.

" + "documentation":"

The level of detail included in the notifications for this resource. BASIC will include only the contents of the event as it would appear in Amazon CloudWatch. FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.

" }, "CreatedBy":{ "shape":"NotificationRuleCreatedBy", @@ -413,7 +417,7 @@ "members":{ "EventTypeId":{ "shape":"EventTypeId", - "documentation":"

The system-generated ID of the event.

" + "documentation":"

The system-generated ID of the event. For a complete list of event types and IDs, see Notification concepts in the Developer Tools Console User Guide.

" }, "ServiceName":{ "shape":"ServiceName", @@ -524,7 +528,7 @@ }, "Value":{ "shape":"ListNotificationRulesFilterValue", - "documentation":"

The value of the attribute you want to use to filter the returned notification rules. For example, if you specify filtering by RESOURCE in Name, you might specify the ARN of a pipeline in AWS CodePipeline for the value.

" + "documentation":"

The value of the attribute you want to use to filter the returned notification rules. For example, if you specify filtering by RESOURCE in Name, you might specify the ARN of a pipeline in CodePipeline for the value.

" } }, "documentation":"

Information about a filter to apply to the list of returned notification rules. You can filter by event type, owner, resource, or target.

" @@ -538,7 +542,10 @@ "TARGET_ADDRESS" ] }, - "ListNotificationRulesFilterValue":{"type":"string"}, + "ListNotificationRulesFilterValue":{ + "type":"string", + "max":2048 + }, "ListNotificationRulesFilters":{ "type":"list", "member":{"shape":"ListNotificationRulesFilter"} @@ -570,7 +577,7 @@ }, "NotificationRules":{ "shape":"NotificationRuleBatch", - "documentation":"

The list of notification rules for the AWS account, by Amazon Resource Name (ARN) and ID.

" + "documentation":"

The list of notification rules for the Amazon Web Services account, by Amazon Resource Name (ARN) and ID.

" } } }, @@ -606,10 +613,10 @@ }, "Value":{ "shape":"ListTargetsFilterValue", - "documentation":"

The value of the attribute you want to use to filter the returned targets. For example, if you specify SNS for the Target type, you could specify an Amazon Resource Name (ARN) for a topic as the value.

" + "documentation":"

The value of the attribute you want to use to filter the returned targets. For example, if you specify SNS for the Target type, you could specify an Amazon Resource Name (ARN) for a topic as the value.

" } }, - "documentation":"

Information about a filter to apply to the list of returned targets. You can filter by target type, address, or status. For example, to filter results to notification rules that have active Amazon SNS topics as targets, you could specify a ListTargetsFilter Name as TargetType and a Value of SNS, and a Name of TARGET_STATUS and a Value of ACTIVE.

" + "documentation":"

Information about a filter to apply to the list of returned targets. You can filter by target type, address, or status. For example, to filter results to notification rules that have active Chatbot topics as targets, you could specify a ListTargetsFilter Name as TargetType and a Value of SNS, and a Name of TARGET_STATUS and a Value of ACTIVE.

" }, "ListTargetsFilterName":{ "type":"string", @@ -619,7 +626,10 @@ "TARGET_STATUS" ] }, - "ListTargetsFilterValue":{"type":"string"}, + "ListTargetsFilterValue":{ + "type":"string", + "max":2048 + }, "ListTargetsFilters":{ "type":"list", "member":{"shape":"ListTargetsFilter"} @@ -722,7 +732,7 @@ "members":{ "Message":{"shape":"Message"} }, - "documentation":"

A resource with the same name or ID already exists. Notification rule names must be unique in your AWS account.

", + "documentation":"

A resource with the same name or ID already exists. Notification rule names must be unique in your Amazon Web Services account.

", "error":{"httpStatusCode":409}, "exception":true }, @@ -791,7 +801,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

The list of tags to associate with the resource. Tag key names cannot start with \"aws\".

" + "documentation":"

The list of tags to associate with the resource. Tag key names cannot start with \"aws\".

" } } }, @@ -819,14 +829,14 @@ "members":{ "TargetType":{ "shape":"TargetType", - "documentation":"

The target type. Can be an Amazon SNS topic.

" + "documentation":"

The target type. Can be an Chatbot topic or Chatbot client.

  • Chatbot topics are specified as SNS.

  • Chatbot clients are specified as AWSChatbotSlack.

" }, "TargetAddress":{ "shape":"TargetAddress", - "documentation":"

The Amazon Resource Name (ARN) of the SNS topic.

" + "documentation":"

The Amazon Resource Name (ARN) of the Chatbot topic or Chatbot client.

" } }, - "documentation":"

Information about the SNS topics associated with a notification rule.

" + "documentation":"

Information about the Chatbot topics or Chatbot clients associated with a notification rule.

" }, "TargetAddress":{ "type":"string", @@ -849,11 +859,11 @@ "members":{ "TargetAddress":{ "shape":"TargetAddress", - "documentation":"

The Amazon Resource Name (ARN) of the SNS topic.

" + "documentation":"

The Amazon Resource Name (ARN) of the Chatbot topic or Chatbot client.

" }, "TargetType":{ "shape":"TargetType", - "documentation":"

The type of the target (for example, SNS).

" + "documentation":"

The type of the target (for example, SNS).

  • Chatbot topics are specified as SNS.

  • Chatbot clients are specified as AWSChatbotSlack.

" }, "TargetStatus":{ "shape":"TargetStatus", @@ -888,7 +898,7 @@ }, "TargetAddress":{ "shape":"TargetAddress", - "documentation":"

The ARN of the SNS topic to unsubscribe from the notification rule.

" + "documentation":"

The ARN of the Chatbot topic to unsubscribe from the notification rule.

" } } }, @@ -911,11 +921,15 @@ "members":{ "Arn":{ "shape":"NotificationRuleArn", - "documentation":"

The Amazon Resource Name (ARN) of the notification rule from which to remove the tags.

" + "documentation":"

The Amazon Resource Name (ARN) of the notification rule from which to remove the tags.

", + "location":"uri", + "locationName":"resourceArn" }, "TagKeys":{ "shape":"TagKeys", - "documentation":"

The key names of the tags to remove.

" + "documentation":"

The key names of the tags to remove.

", + "location":"querystring", + "locationName":"tagKeys" } } }, @@ -942,7 +956,7 @@ }, "EventTypeIds":{ "shape":"EventTypeIds", - "documentation":"

A list of event types associated with this notification rule.

" + "documentation":"

A list of event types associated with this notification rule. For a complete list of event types and IDs, see Notification concepts in the Developer Tools Console User Guide.

" }, "Targets":{ "shape":"Targets", @@ -950,7 +964,7 @@ }, "DetailType":{ "shape":"DetailType", - "documentation":"

The level of detail to include in the notifications for this resource. BASIC will include only the contents of the event as it would appear in AWS CloudWatch. FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.

" + "documentation":"

The level of detail to include in the notifications for this resource. BASIC will include only the contents of the event as it would appear in Amazon CloudWatch. FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.

" } } }, @@ -969,5 +983,5 @@ "exception":true } }, - "documentation":"

This AWS CodeStar Notifications API Reference provides descriptions and usage examples of the operations and data types for the AWS CodeStar Notifications API. You can use the AWS CodeStar Notifications API to work with the following objects:

Notification rules, by calling the following:

Targets, by calling the following:

  • DeleteTarget, which removes a notification rule target (SNS topic) from a notification rule.

  • ListTargets, which lists the targets associated with a notification rule.

Events, by calling the following:

  • ListEventTypes, which lists the event types you can include in a notification rule.

Tags, by calling the following:

  • ListTagsForResource, which lists the tags already associated with a notification rule in your account.

  • TagResource, which associates a tag you provide with a notification rule in your account.

  • UntagResource, which removes a tag from a notification rule in your account.

For information about how to use AWS CodeStar Notifications, see link in the CodeStarNotifications User Guide.

" + "documentation":"

This AWS CodeStar Notifications API Reference provides descriptions and usage examples of the operations and data types for the AWS CodeStar Notifications API. You can use the AWS CodeStar Notifications API to work with the following objects:

Notification rules, by calling the following:

Targets, by calling the following:

  • DeleteTarget, which removes a notification rule target from a notification rule.

  • ListTargets, which lists the targets associated with a notification rule.

Events, by calling the following:

  • ListEventTypes, which lists the event types you can include in a notification rule.

Tags, by calling the following:

  • ListTagsForResource, which lists the tags already associated with a notification rule in your account.

  • TagResource, which associates a tag you provide with a notification rule in your account.

  • UntagResource, which removes a tag from a notification rule in your account.

For information about how to use AWS CodeStar Notifications, see the Amazon Web Services Developer Tools Console User Guide.

" } diff --git a/botocore/data/codestar/2017-04-19/endpoint-rule-set-1.json b/botocore/data/codestar/2017-04-19/endpoint-rule-set-1.json new file mode 100644 index 00000000..c79a54f9 --- /dev/null +++ b/botocore/data/codestar/2017-04-19/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codestar-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codestar-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://codestar.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://codestar.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cognito-identity/2014-06-30/endpoint-rule-set-1.json b/botocore/data/cognito-identity/2014-06-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..3799c2c2 --- /dev/null +++ b/botocore/data/cognito-identity/2014-06-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cognito-identity-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cognito-identity-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cognito-identity.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cognito-identity.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cognito-idp/2016-04-18/endpoint-rule-set-1.json b/botocore/data/cognito-idp/2016-04-18/endpoint-rule-set-1.json new file mode 100644 index 00000000..c4b4871e --- /dev/null +++ b/botocore/data/cognito-idp/2016-04-18/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cognito-idp-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cognito-idp-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cognito-idp.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cognito-idp.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cognito-idp/2016-04-18/service-2.json b/botocore/data/cognito-idp/2016-04-18/service-2.json index c57bb15f..68d68540 100644 --- a/botocore/data/cognito-idp/2016-04-18/service-2.json +++ b/botocore/data/cognito-idp/2016-04-18/service-2.json @@ -168,7 +168,7 @@ {"shape":"UserNotFoundException"}, {"shape":"InternalErrorException"} ], - "documentation":"

Disables the specified user.

Calling this action requires developer credentials.

" + "documentation":"

Deactivates a user and revokes all access tokens for the user. A deactivated user can't sign in, but still appears in the responses to GetUser and ListUsers API requests.

You must make this API request with Amazon Web Services credentials that have cognito-idp:AdminDisableUser permissions.

" }, "AdminEnableUser":{ "name":"AdminEnableUser", @@ -568,9 +568,10 @@ {"shape":"NotAuthorizedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InternalErrorException"}, - {"shape":"SoftwareTokenMFANotFoundException"} + {"shape":"SoftwareTokenMFANotFoundException"}, + {"shape":"ForbiddenException"} ], - "documentation":"

Returns a unique generated shared secret key code for the user account. The request takes an access token or a session string, but not both.

Calling AssociateSoftwareToken immediately disassociates the existing software token from the user account. If the user doesn't subsequently verify the software token, their account is set up to authenticate without MFA. If MFA config is set to Optional at the user pool level, the user can then log in without MFA. However, if MFA is set to Required for the user pool, the user is asked to set up a new software token MFA during sign-in.

" + "documentation":"

Begins setup of time-based one-time password (TOTP) multi-factor authentication (MFA) for a user, with a unique private key that Amazon Cognito generates and returns in the API response. You can authorize an AssociateSoftwareToken request with either the user's access token, or a session string from a challenge response that you received from Amazon Cognito.

Amazon Cognito disassociates an existing software token when you verify the new token in a VerifySoftwareToken API request. If you don't verify the software token and your user pool doesn't require MFA, the user can then authenticate with user name and password credentials alone. If your user pool requires TOTP MFA, Amazon Cognito generates an MFA_SETUP or SOFTWARE_TOKEN_SETUP challenge each time your user signs. Complete setup with AssociateSoftwareToken and VerifySoftwareToken.

After you set up software token MFA for your user, Amazon Cognito generates a SOFTWARE_TOKEN_MFA challenge when they authenticate. Respond to this challenge with your user's TOTP.

" }, "ChangePassword":{ "name":"ChangePassword", @@ -590,7 +591,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Changes the password for a specified user in a user pool.

", "authtype":"none" @@ -615,7 +617,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Confirms tracking of the device. This API call is the call that begins device tracking.

" }, @@ -642,7 +645,8 @@ {"shape":"LimitExceededException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Allows a user to enter a confirmation code to reset a forgotten password.

", "authtype":"none" @@ -669,7 +673,8 @@ {"shape":"TooManyRequestsException"}, {"shape":"LimitExceededException"}, {"shape":"UserNotFoundException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Confirms registration of a new user.

", "authtype":"none" @@ -833,6 +838,7 @@ "errors":[ {"shape":"InvalidParameterException"}, {"shape":"UnsupportedIdentityProviderException"}, + {"shape":"ConcurrentModificationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, @@ -871,7 +877,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Allows a user to delete himself or herself.

", "authtype":"none" @@ -892,7 +899,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Deletes the attributes for a user.

", "authtype":"none" @@ -926,6 +934,7 @@ {"shape":"InvalidParameterException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotAuthorizedException"}, + {"shape":"ConcurrentModificationException"}, {"shape":"InternalErrorException"} ], "documentation":"

Allows the developer to delete the user pool client.

" @@ -1082,7 +1091,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Forgets the specified device.

" }, @@ -1108,7 +1118,8 @@ {"shape":"InvalidEmailRoleAccessPolicyException"}, {"shape":"CodeDeliveryFailureException"}, {"shape":"UserNotFoundException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. The method used to send the confirmation code is sent according to the specified AccountRecoverySetting. For more information, see Recovering User Accounts in the Amazon Cognito Developer Guide. If neither a verified phone number nor a verified email exists, an InvalidParameterException is thrown. To use the confirmation code for resetting the password, call ConfirmForgotPassword.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

", "authtype":"none" @@ -1147,7 +1158,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Gets the device.

" }, @@ -1198,7 +1210,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

This method takes a user pool ID, and returns the signing certificate.

" + "documentation":"

This method takes a user pool ID, and returns the signing certificate. The issued certificate is valid for 10 years from the date of issue.

Amazon Cognito issues and assigns a new signing certificate annually. This process returns a new value in the response to GetSigningCertificate, but doesn't invalidate the original certificate.

" }, "GetUICustomization":{ "name":"GetUICustomization", @@ -1233,7 +1245,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Gets the user attributes and metadata for a user.

", "authtype":"none" @@ -1262,7 +1275,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Generates a user attribute verification code for the specified attribute name. Sends a message to a user with a code that they must return in a VerifyUserAttribute request.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

", "authtype":"none" @@ -1299,9 +1313,10 @@ {"shape":"TooManyRequestsException"}, {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], - "documentation":"

Signs out users from all devices. It also invalidates all refresh tokens that Amazon Cognito has issued to a user. The user's current access and ID tokens remain valid until their expiry. By default, access and ID tokens expire one hour after Amazon Cognito issues them. A user can still use a hosted UI cookie to retrieve new tokens for the duration of the cookie validity period of 1 hour.

" + "documentation":"

Signs out users from all devices. It also invalidates all refresh tokens that Amazon Cognito has issued to a user. A user can still use a hosted UI cookie to retrieve new tokens for the duration of the 1-hour cookie validity period.

" }, "InitiateAuth":{ "name":"InitiateAuth", @@ -1325,7 +1340,8 @@ {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, {"shape":"InvalidSmsRoleAccessPolicyException"}, - {"shape":"InvalidSmsRoleTrustRelationshipException"} + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Initiates sign-in for a user in the Amazon Cognito user directory. You can't sign in a user with a federated IdP with InitiateAuth. For more information, see Adding user pool sign-in through a third party.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

", "authtype":"none" @@ -1347,7 +1363,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Lists the sign-in devices that Amazon Cognito has registered to the current user.

" }, @@ -1525,7 +1542,8 @@ {"shape":"InvalidEmailRoleAccessPolicyException"}, {"shape":"CodeDeliveryFailureException"}, {"shape":"UserNotFoundException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Resends the confirmation (for confirmation of registration) to a specific user in the user pool.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

", "authtype":"none" @@ -1558,7 +1576,8 @@ {"shape":"InvalidSmsRoleTrustRelationshipException"}, {"shape":"AliasExistsException"}, {"shape":"InternalErrorException"}, - {"shape":"SoftwareTokenMFANotFoundException"} + {"shape":"SoftwareTokenMFANotFoundException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Responds to the authentication challenge.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

", "authtype":"none" @@ -1577,9 +1596,10 @@ {"shape":"UnauthorizedException"}, {"shape":"InvalidParameterException"}, {"shape":"UnsupportedOperationException"}, - {"shape":"UnsupportedTokenTypeException"} + {"shape":"UnsupportedTokenTypeException"}, + {"shape":"ForbiddenException"} ], - "documentation":"

Revokes all of the access tokens generated by the specified refresh token. After the token is revoked, you can't use the revoked token to access Amazon Cognito authenticated APIs.

" + "documentation":"

Revokes all of the access tokens generated by, and at the same time as, the specified refresh token. After a token is revoked, you can't use the revoked token to access Amazon Cognito user APIs, or to authorize access to your resource server.

" }, "SetRiskConfiguration":{ "name":"SetRiskConfiguration", @@ -1633,7 +1653,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Set the user's multi-factor authentication (MFA) method preference, including which MFA factors are activated and if any are preferred. Only one factor can be set as preferred. The preferred MFA factor will be used to authenticate a user if multiple factors are activated. If multiple options are activated and no preference is set, a challenge to choose an MFA option will be returned during sign-in. If an MFA type is activated for a user, the user will be prompted for MFA during all sign-in attempts unless device tracking is turned on and the device has been trusted. If you want MFA to be applied selectively based on the assessed risk level of sign-in attempts, deactivate MFA for users and turn on Adaptive Authentication for the user pool.

" }, @@ -1671,7 +1692,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

This action is no longer supported. You can use it to configure only SMS MFA. You can't use it to configure time-based one-time password (TOTP) software token MFA. To configure either type of MFA, use SetUserMFAPreference instead.

", "authtype":"none" @@ -1698,7 +1720,8 @@ {"shape":"InvalidSmsRoleAccessPolicyException"}, {"shape":"InvalidSmsRoleTrustRelationshipException"}, {"shape":"InvalidEmailRoleAccessPolicyException"}, - {"shape":"CodeDeliveryFailureException"} + {"shape":"CodeDeliveryFailureException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Registers the user in the specified user pool and creates a user name, password, and user attributes.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

", "authtype":"none" @@ -1809,7 +1832,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Updates the device status.

" }, @@ -1842,6 +1866,7 @@ {"shape":"InvalidParameterException"}, {"shape":"UnsupportedIdentityProviderException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"ConcurrentModificationException"}, {"shape":"NotAuthorizedException"}, {"shape":"TooManyRequestsException"}, {"shape":"InternalErrorException"} @@ -1891,7 +1916,8 @@ {"shape":"PasswordResetRequiredException"}, {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, - {"shape":"InternalErrorException"} + {"shape":"InternalErrorException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Allows a user to update a specific attribute (one at a time).

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

", "authtype":"none" @@ -1977,7 +2003,8 @@ {"shape":"EnableSoftwareTokenMFAException"}, {"shape":"NotAuthorizedException"}, {"shape":"SoftwareTokenMFANotFoundException"}, - {"shape":"CodeMismatchException"} + {"shape":"CodeMismatchException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Use this API to register a user's entered time-based one-time password (TOTP) code and mark the user's software token MFA status as \"verified\" if successful. The request takes an access token or a session string, but not both.

" }, @@ -2001,7 +2028,8 @@ {"shape":"UserNotFoundException"}, {"shape":"UserNotConfirmedException"}, {"shape":"InternalErrorException"}, - {"shape":"AliasExistsException"} + {"shape":"AliasExistsException"}, + {"shape":"ForbiddenException"} ], "documentation":"

Verifies the specified user attributes in the user pool.

If your user pool requires verification before Amazon Cognito updates the attribute value, VerifyUserAttribute updates the affected attribute to its pending value. For more information, see UserAttributeUpdateSettingsType.

", "authtype":"none" @@ -2507,7 +2535,7 @@ }, "ContextData":{ "shape":"ContextDataType", - "documentation":"

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests.

" } }, "documentation":"

Initiates the authorization request, as an administrator.

" @@ -2656,7 +2684,7 @@ }, "MaxResults":{ "shape":"QueryLimitType", - "documentation":"

The maximum number of authentication events to return.

" + "documentation":"

The maximum number of authentication events to return. Returns 60 events if you set MaxResults to 0, or if you don't include a MaxResults parameter.

" }, "NextToken":{ "shape":"PaginationKey", @@ -2761,7 +2789,7 @@ }, "ContextData":{ "shape":"ContextDataType", - "documentation":"

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests.

" }, "ClientMetadata":{ "shape":"ClientMetadataType", @@ -3029,10 +3057,10 @@ "members":{ "message":{ "shape":"MessageType", - "documentation":"

The message sent to the user when an alias exists.

" + "documentation":"

The message that Amazon Cognito sends to the user when the value of an alias attribute is already linked to another user profile.

" } }, - "documentation":"

This exception is thrown when a user tries to confirm the account with an email address or phone number that has already been supplied as an alias from a different account. This exception indicates that an account with this email address or phone already exists in a user pool that you've configured to use email address or phone number as a sign-in alias.

", + "documentation":"

This exception is thrown when a user tries to confirm the account with an email address or phone number that has already been supplied as an alias for a different user profile. This exception indicates that an account with this email address or phone already exists in a user pool that you've configured to use email address or phone number as a sign-in alias.

", "exception":true }, "AnalyticsConfigurationType":{ @@ -3095,7 +3123,7 @@ "members":{ "SecretCode":{ "shape":"SecretCodeType", - "documentation":"

A unique generated shared secret code that is used in the time-based one-time password (TOTP) algorithm to generate a one-time code.

" + "documentation":"

A unique generated shared secret code that is used in the TOTP algorithm to generate a one-time code.

" }, "Session":{ "shape":"SessionType", @@ -3220,6 +3248,11 @@ "value":{"shape":"StringType"}, "sensitive":true }, + "AuthSessionValidityType":{ + "type":"integer", + "max":15, + "min":3 + }, "AuthenticationResultType":{ "type":"structure", "members":{ @@ -3537,11 +3570,11 @@ }, "ConfirmationCode":{ "shape":"ConfirmationCodeType", - "documentation":"

The confirmation code sent by a user's request to retrieve a forgotten password. For more information, see ForgotPassword.

" + "documentation":"

The confirmation code from your user's request to reset their password. For more information, see ForgotPassword.

" }, "Password":{ "shape":"PasswordType", - "documentation":"

The password sent by a user's request to retrieve a forgotten password.

" + "documentation":"

The new password that your user wants to set.

" }, "AnalyticsMetadata":{ "shape":"AnalyticsMetadataType", @@ -3549,7 +3582,7 @@ }, "UserContextData":{ "shape":"UserContextDataType", - "documentation":"

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests.

" }, "ClientMetadata":{ "shape":"ClientMetadataType", @@ -3598,7 +3631,7 @@ }, "UserContextData":{ "shape":"UserContextDataType", - "documentation":"

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests.

" }, "ClientMetadata":{ "shape":"ClientMetadataType", @@ -3630,7 +3663,7 @@ "members":{ "IpAddress":{ "shape":"StringType", - "documentation":"

Source IP address of your user.

" + "documentation":"

The source IP address of your user's device.

" }, "ServerName":{ "shape":"StringType", @@ -3646,7 +3679,7 @@ }, "EncodedData":{ "shape":"StringType", - "documentation":"

Encoded data containing device fingerprinting details collected using the Amazon Cognito context data collection library.

" + "documentation":"

Encoded device-fingerprint details that your app collected with the Amazon Cognito context data collection library. For more information, see Adding user device and session data to API requests.

" } }, "documentation":"

Contextual user data type used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" @@ -3824,15 +3857,15 @@ }, "RefreshTokenValidity":{ "shape":"RefreshTokenValidityType", - "documentation":"

The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days.

The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds.

" + "documentation":"

The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days.

The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds.

If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days.

" }, "AccessTokenValidity":{ "shape":"AccessTokenValidityType", - "documentation":"

The access token time limit. After this limit expires, your user can't use their access token. To specify the time unit for AccessTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set AccessTokenValidity to 10 and TokenValidityUnits to hours, your user can authorize access with their access token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

" + "documentation":"

The access token time limit. After this limit expires, your user can't use their access token. To specify the time unit for AccessTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set AccessTokenValidity to 10 and TokenValidityUnits to hours, your user can authorize access with their access token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

If you don't specify otherwise in the configuration of your app client, your access tokens are valid for one hour.

" }, "IdTokenValidity":{ "shape":"IdTokenValidityType", - "documentation":"

The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for IdTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set IdTokenValidity as 10 and TokenValidityUnits as hours, your user can authenticate their session with their ID token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

" + "documentation":"

The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for IdTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set IdTokenValidity as 10 and TokenValidityUnits as hours, your user can authenticate their session with their ID token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

If you don't specify otherwise in the configuration of your app client, your ID tokens are valid for one hour.

" }, "TokenValidityUnits":{ "shape":"TokenValidityUnitsType", @@ -3848,11 +3881,11 @@ }, "ExplicitAuthFlows":{ "shape":"ExplicitAuthFlowsListType", - "documentation":"

The authentication flows that are supported by the user pool clients. Flow names without the ALLOW_ prefix are no longer supported, in favor of new names with the ALLOW_ prefix.

Values with ALLOW_ prefix must be used only along with the ALLOW_ prefix.

Valid values include:

  • ALLOW_ADMIN_USER_PASSWORD_AUTH: Enable admin based user password authentication flow ADMIN_USER_PASSWORD_AUTH. This setting replaces the ADMIN_NO_SRP_AUTH setting. With this authentication flow, Amazon Cognito receives the password in the request instead of using the Secure Remote Password (SRP) protocol to verify passwords.

  • ALLOW_CUSTOM_AUTH: Enable Lambda trigger based authentication.

  • ALLOW_USER_PASSWORD_AUTH: Enable user password-based authentication. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords.

  • ALLOW_USER_SRP_AUTH: Enable SRP-based authentication.

  • ALLOW_REFRESH_TOKEN_AUTH: Enable authflow to refresh tokens.

If you don't specify a value for ExplicitAuthFlows, your app client activates the ALLOW_USER_SRP_AUTH and ALLOW_CUSTOM_AUTH authentication flows.

" + "documentation":"

The authentication flows that you want your user pool client to support. For each app client in your user pool, you can sign in your users with any combination of one or more flows, including with a user name and Secure Remote Password (SRP), a user name and password, or a custom authentication process that you define with Lambda functions.

If you don't specify a value for ExplicitAuthFlows, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.

Valid values include:

  • ALLOW_ADMIN_USER_PASSWORD_AUTH: Enable admin based user password authentication flow ADMIN_USER_PASSWORD_AUTH. This setting replaces the ADMIN_NO_SRP_AUTH setting. With this authentication flow, your app passes a user name and password to Amazon Cognito in the request, instead of using the Secure Remote Password (SRP) protocol to securely transmit the password.

  • ALLOW_CUSTOM_AUTH: Enable Lambda trigger based authentication.

  • ALLOW_USER_PASSWORD_AUTH: Enable user password-based authentication. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords.

  • ALLOW_USER_SRP_AUTH: Enable SRP-based authentication.

  • ALLOW_REFRESH_TOKEN_AUTH: Enable authflow to refresh tokens.

In some environments, you will see the values ADMIN_NO_SRP_AUTH, CUSTOM_AUTH_FLOW_ONLY, or USER_PASSWORD_AUTH. You can't assign these legacy ExplicitAuthFlows values to user pool clients at the same time as values that begin with ALLOW_, like ALLOW_USER_SRP_AUTH.

" }, "SupportedIdentityProviders":{ "shape":"SupportedIdentityProvidersListType", - "documentation":"

A list of provider names for the IdPs that this client supports. The following are supported: COGNITO, Facebook, Google LoginWithAmazon, and the names of your own SAML and OIDC providers.

" + "documentation":"

A list of provider names for the identity providers (IdPs) that are supported on this client. The following are supported: COGNITO, Facebook, Google, SignInWithApple, and LoginWithAmazon. You can also specify the names that you configured for the SAML and OIDC IdPs in your user pool, for example MySAMLIdP or MyOIDCIdP.

" }, "CallbackURLs":{ "shape":"CallbackURLsListType", @@ -3889,6 +3922,14 @@ "EnableTokenRevocation":{ "shape":"WrappedBooleanType", "documentation":"

Activates or deactivates token revocation. For more information about revoking tokens, see RevokeToken.

If you don't include this parameter, token revocation is automatically activated for the new user pool client.

" + }, + "EnablePropagateAdditionalUserContextData":{ + "shape":"WrappedBooleanType", + "documentation":"

Activates the propagation of additional user context data. For more information about propagation of user context data, see Adding advanced security to a user pool. If you don’t include this parameter, you can't send device fingerprint information, including source IP address, to Amazon Cognito advanced security. You can only activate EnablePropagateAdditionalUserContextData in an app client that has a client secret.

" + }, + "AuthSessionValidity":{ + "shape":"AuthSessionValidityType", + "documentation":"

Amazon Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. Your user pool native user must respond to each authentication challenge before the session expires.

" } }, "documentation":"

Represents the request to create a user pool client.

" @@ -3945,6 +3986,10 @@ "shape":"UserPoolPolicyType", "documentation":"

The policies associated with the new user pool.

" }, + "DeletionProtection":{ + "shape":"DeletionProtectionType", + "documentation":"

When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature.

When you try to delete a protected user pool in a DeleteUserPool API request, Amazon Cognito returns an InvalidParameterException error. To delete a protected user pool, send a new DeleteUserPool request after you deactivate deletion protection in an UpdateUserPool API request.

" + }, "LambdaConfig":{ "shape":"LambdaConfigType", "documentation":"

The Lambda trigger configuration information for the new user pool.

In a push model, event sources (such as Amazon S3 and custom applications) need permission to invoke a function. So you must make an extra call to add permission for these event sources to invoke your Lambda function.

For more information on using the Lambda API to add permission, see AddPermission .

For adding permission using the CLI, see add-permission .

" @@ -3963,15 +4008,15 @@ }, "SmsVerificationMessage":{ "shape":"SmsVerificationMessageType", - "documentation":"

A string representing the SMS verification message.

" + "documentation":"

This parameter is no longer used. See VerificationMessageTemplateType.

" }, "EmailVerificationMessage":{ "shape":"EmailVerificationMessageType", - "documentation":"

A string representing the email verification message. EmailVerificationMessage is allowed only if EmailSendingAccount is DEVELOPER.

" + "documentation":"

This parameter is no longer used. See VerificationMessageTemplateType.

" }, "EmailVerificationSubject":{ "shape":"EmailVerificationSubjectType", - "documentation":"

A string representing the email verification subject. EmailVerificationSubject is allowed only if EmailSendingAccount is DEVELOPER.

" + "documentation":"

This parameter is no longer used. See VerificationMessageTemplateType.

" }, "VerificationMessageTemplate":{ "shape":"VerificationMessageTemplateType", @@ -3987,11 +4032,11 @@ }, "UserAttributeUpdateSettings":{ "shape":"UserAttributeUpdateSettingsType", - "documentation":"

" + "documentation":"

The settings for updates to user attributes. These settings include the property AttributesRequireVerificationBeforeUpdate, a user-pool setting that tells Amazon Cognito how to handle changes to the value of your users' email address and phone number attributes. For more information, see Verifying updates to email addresses and phone numbers.

" }, "DeviceConfiguration":{ "shape":"DeviceConfigurationType", - "documentation":"

The device configuration.

" + "documentation":"

The device-remembering configuration for a user pool. A null value indicates that you have deactivated device remembering in your user pool.

When you provide a value for any DeviceConfiguration field, you activate the Amazon Cognito device-remembering feature.

" }, "EmailConfiguration":{ "shape":"EmailConfigurationType", @@ -4250,6 +4295,13 @@ }, "documentation":"

Represents the request to delete a user.

" }, + "DeletionProtectionType":{ + "type":"string", + "enum":[ + "ACTIVE", + "INACTIVE" + ] + }, "DeliveryMediumListType":{ "type":"list", "member":{"shape":"DeliveryMediumType"} @@ -4284,7 +4336,7 @@ "members":{ "IdentityProvider":{ "shape":"IdentityProviderType", - "documentation":"

The IdP that was deleted.

" + "documentation":"

The identity provider details.

" } } }, @@ -4444,14 +4496,14 @@ "members":{ "ChallengeRequiredOnNewDevice":{ "shape":"BooleanType", - "documentation":"

When true, device authentication can replace SMS and time-based one-time password (TOTP) factors for multi-factor authentication (MFA).

Users that sign in with devices that have not been confirmed or remembered will still have to provide a second factor, whether or not ChallengeRequiredOnNewDevice is true, when your user pool requires MFA.

" + "documentation":"

When true, a remembered device can sign in with device authentication instead of SMS and time-based one-time password (TOTP) factors for multi-factor authentication (MFA).

Whether or not ChallengeRequiredOnNewDevice is true, users who sign in with devices that have not been confirmed or remembered must still provide a second factor in a user pool that requires MFA.

" }, "DeviceOnlyRememberedOnUserPrompt":{ "shape":"BooleanType", - "documentation":"

When true, users can opt in to remembering their device. Your app code must use callback functions to return the user's choice.

" + "documentation":"

When true, Amazon Cognito doesn't automatically remember a user's device when your app sends a ConfirmDevice API request. In your app, create a prompt for your user to choose whether they want to remember their device. Return the user's choice in an UpdateDeviceStatus API request.

When DeviceOnlyRememberedOnUserPrompt is false, Amazon Cognito immediately remembers devices that you register in a ConfirmDevice API request.

" } }, - "documentation":"

The device tracking configuration for a user pool. A user pool with device tracking deactivated returns a null value.

When you provide values for any DeviceConfiguration field, you activate device tracking.

" + "documentation":"

The device-remembering configuration for a user pool. A DescribeUserPool request returns a null value for this object when the user pool isn't configured to remember devices. When device remembering is active, you can remember a user's device with a ConfirmDevice API request. Additionally. when the property DeviceOnlyRememberedOnUserPrompt is true, you must follow ConfirmDevice with an UpdateDeviceStatus API request that sets the user's device to remembered or not_remembered.

To sign in with a remembered device, include DEVICE_KEY in the authentication parameters in your user's InitiateAuth request. If your app doesn't include a DEVICE_KEY parameter, the response from Amazon Cognito includes newly-generated DEVICE_KEY and DEVICE_GROUP_KEY values under NewDeviceMetadata. Store these values to use in future device-authentication requests.

When you provide a value for any property of DeviceConfiguration, you activate the device remembering for the user pool.

" }, "DeviceKeyType":{ "type":"string", @@ -4599,7 +4651,7 @@ }, "EmailSendingAccount":{ "shape":"EmailSendingAccountType", - "documentation":"

Specifies whether Amazon Cognito uses its built-in functionality to send your users email messages, or uses your Amazon Simple Email Service email configuration. Specify one of the following values:

COGNITO_DEFAULT

When Amazon Cognito emails your users, it uses its built-in email functionality. When you use the default option, Amazon Cognito allows only a limited number of emails each day for your user pool. For typical production environments, the default email limit is less than the required delivery volume. To achieve a higher delivery volume, specify DEVELOPER to use your Amazon SES email configuration.

To look up the email delivery limit for the default option, see Limits in in the Developer Guide.

The default FROM address is no-reply@verificationemail.com. To customize the FROM address, provide the Amazon Resource Name (ARN) of an Amazon SES verified email address for the SourceArn parameter.

DEVELOPER

When Amazon Cognito emails your users, it uses your Amazon SES configuration. Amazon Cognito calls Amazon SES on your behalf to send email from your verified email address. When you use this option, the email delivery limits are the same limits that apply to your Amazon SES verified email address in your Amazon Web Services account.

If you use this option, provide the ARN of an Amazon SES verified email address for the SourceArn parameter.

Before Amazon Cognito can email your users, it requires additional permissions to call Amazon SES on your behalf. When you update your user pool with this option, Amazon Cognito creates a service-linked role, which is a type of role, in your Amazon Web Services account. This role contains the permissions that allow to access Amazon SES and send email messages with your address. For more information about the service-linked role that Amazon Cognito creates, see Using Service-Linked Roles for Amazon Cognito in the Amazon Cognito Developer Guide.

" + "documentation":"

Specifies whether Amazon Cognito uses its built-in functionality to send your users email messages, or uses your Amazon Simple Email Service email configuration. Specify one of the following values:

COGNITO_DEFAULT

When Amazon Cognito emails your users, it uses its built-in email functionality. When you use the default option, Amazon Cognito allows only a limited number of emails each day for your user pool. For typical production environments, the default email limit is less than the required delivery volume. To achieve a higher delivery volume, specify DEVELOPER to use your Amazon SES email configuration.

To look up the email delivery limit for the default option, see Limits in the Amazon Cognito Developer Guide.

The default FROM address is no-reply@verificationemail.com. To customize the FROM address, provide the Amazon Resource Name (ARN) of an Amazon SES verified email address for the SourceArn parameter.

DEVELOPER

When Amazon Cognito emails your users, it uses your Amazon SES configuration. Amazon Cognito calls Amazon SES on your behalf to send email from your verified email address. When you use this option, the email delivery limits are the same limits that apply to your Amazon SES verified email address in your Amazon Web Services account.

If you use this option, provide the ARN of an Amazon SES verified email address for the SourceArn parameter.

Before Amazon Cognito can email your users, it requires additional permissions to call Amazon SES on your behalf. When you update your user pool with this option, Amazon Cognito creates a service-linked role, which is a type of role in your Amazon Web Services account. This role contains the permissions that allow you to access Amazon SES and send email messages from your email address. For more information about the service-linked role that Amazon Cognito creates, see Using Service-Linked Roles for Amazon Cognito in the Amazon Cognito Developer Guide.

" }, "From":{ "shape":"StringType", @@ -4668,7 +4720,7 @@ "members":{ "IpAddress":{ "shape":"StringType", - "documentation":"

The user's IP address.

" + "documentation":"

The source IP address of your user's device.

" }, "DeviceName":{ "shape":"StringType", @@ -4732,8 +4784,9 @@ "EventResponseType":{ "type":"string", "enum":[ - "Success", - "Failure" + "Pass", + "Fail", + "InProgress" ] }, "EventRiskType":{ @@ -4759,7 +4812,9 @@ "enum":[ "SignIn", "SignUp", - "ForgotPassword" + "ForgotPassword", + "PasswordChange", + "ResendCode" ] }, "ExpiredCodeException":{ @@ -4797,6 +4852,17 @@ "Invalid" ] }, + "ForbiddenException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when WAF doesn't allow your request based on a web ACL that's associated with your user pool.

" + } + }, + "documentation":"

This exception is thrown when WAF doesn't allow your request based on a web ACL that's associated with your user pool.

", + "exception":true + }, "ForceAliasCreation":{"type":"boolean"}, "ForgetDeviceRequest":{ "type":"structure", @@ -4830,7 +4896,7 @@ }, "UserContextData":{ "shape":"UserContextDataType", - "documentation":"

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests.

" }, "Username":{ "shape":"UsernameType", @@ -4855,7 +4921,7 @@ "documentation":"

The code delivery details returned by the server in response to the request to reset a password.

" } }, - "documentation":"

Represents the response from the server regarding the request to reset a password.

" + "documentation":"

The response from Amazon Cognito to a request to reset a password.

" }, "GenerateSecret":{"type":"boolean"}, "GetCSVHeaderRequest":{ @@ -4958,7 +5024,7 @@ "members":{ "IdentityProvider":{ "shape":"IdentityProviderType", - "documentation":"

The IdP object.

" + "documentation":"

The identity provider details.

" } } }, @@ -5054,15 +5120,15 @@ "members":{ "SmsMfaConfiguration":{ "shape":"SmsMfaConfigType", - "documentation":"

The SMS text message multi-factor (MFA) configuration.

" + "documentation":"

The SMS text message multi-factor authentication (MFA) configuration.

" }, "SoftwareTokenMfaConfiguration":{ "shape":"SoftwareTokenMfaConfigType", - "documentation":"

The software token multi-factor (MFA) configuration.

" + "documentation":"

The software token multi-factor authentication (MFA) configuration.

" }, "MfaConfiguration":{ "shape":"UserPoolMfaType", - "documentation":"

The multi-factor (MFA) configuration. Valid values include:

  • OFF MFA won't be used for any users.

  • ON MFA is required for all users to sign in.

  • OPTIONAL MFA will be required only for individual users who have an MFA factor activated.

" + "documentation":"

The multi-factor authentication (MFA) configuration. Valid values include:

  • OFF MFA won't be used for any users.

  • ON MFA is required for all users to sign in.

  • OPTIONAL MFA will be required only for individual users who have an MFA factor activated.

" } } }, @@ -5295,7 +5361,7 @@ }, "UserContextData":{ "shape":"UserContextDataType", - "documentation":"

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests.

" } }, "documentation":"

Initiates the authentication request.

" @@ -6229,7 +6295,7 @@ }, "UserContextData":{ "shape":"UserContextDataType", - "documentation":"

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests.

" }, "Username":{ "shape":"UsernameType", @@ -6368,7 +6434,7 @@ }, "UserContextData":{ "shape":"UserContextDataType", - "documentation":"

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests.

" }, "ClientMetadata":{ "shape":"ClientMetadataType", @@ -6678,7 +6744,7 @@ }, "SoftwareTokenMfaSettings":{ "shape":"SoftwareTokenMfaSettingsType", - "documentation":"

The time-based one-time password software token MFA settings.

" + "documentation":"

The time-based one-time password (TOTP) software token MFA settings.

" }, "AccessToken":{ "shape":"TokenModelType", @@ -6709,7 +6775,7 @@ }, "MfaConfiguration":{ "shape":"UserPoolMfaType", - "documentation":"

The MFA configuration. If you set the MfaConfiguration value to ‘ON’, only users who have set up an MFA factor can sign in. To learn more, see Adding Multi-Factor Authentication (MFA) to a user pool. Valid values include:

  • OFF MFA won't be used for any users.

  • ON MFA is required for all users to sign in.

  • OPTIONAL MFA will be required only for individual users who have an MFA factor activated.

" + "documentation":"

The MFA configuration. If you set the MfaConfiguration value to ‘ON’, only users who have set up an MFA factor can sign in. To learn more, see Adding Multi-Factor Authentication (MFA) to a user pool. Valid values include:

  • OFF MFA won't be used for any users.

  • ON MFA is required for all users to sign in.

  • OPTIONAL MFA will be required only for individual users who have an MFA factor activated.

" } } }, @@ -6792,7 +6858,7 @@ }, "UserContextData":{ "shape":"UserContextDataType", - "documentation":"

Contextual data such as the user's device fingerprint, IP address, or location used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests.

" }, "ClientMetadata":{ "shape":"ClientMetadataType", @@ -7043,15 +7109,15 @@ "members":{ "AccessToken":{ "shape":"TimeUnitsType", - "documentation":"

A time unit in “seconds”, “minutes”, “hours”, or “days” for the value in AccessTokenValidity, defaulting to hours.

" + "documentation":"

A time unit of seconds, minutes, hours, or days for the value that you set in the AccessTokenValidity parameter. The default AccessTokenValidity time unit is hours.

" }, "IdToken":{ "shape":"TimeUnitsType", - "documentation":"

A time unit in “seconds”, “minutes”, “hours”, or “days” for the value in IdTokenValidity, defaulting to hours.

" + "documentation":"

A time unit of seconds, minutes, hours, or days for the value that you set in the IdTokenValidity parameter. The default IdTokenValidity time unit is hours.

" }, "RefreshToken":{ "shape":"TimeUnitsType", - "documentation":"

A time unit in “seconds”, “minutes”, “hours”, or “days” for the value in RefreshTokenValidity, defaulting to days.

" + "documentation":"

A time unit of seconds, minutes, hours, or days for the value that you set in the RefreshTokenValidity parameter. The default RefreshTokenValidity time unit is days.

" } }, "documentation":"

The data type TokenValidityUnits specifies the time units you use when you set the duration of ID, access, and refresh tokens.

" @@ -7326,7 +7392,7 @@ "members":{ "IdentityProvider":{ "shape":"IdentityProviderType", - "documentation":"

The IdP object.

" + "documentation":"

The identity provider details.

" } } }, @@ -7419,15 +7485,15 @@ }, "RefreshTokenValidity":{ "shape":"RefreshTokenValidityType", - "documentation":"

The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days.

The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds.

" + "documentation":"

The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days.

The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds.

If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days.

" }, "AccessTokenValidity":{ "shape":"AccessTokenValidityType", - "documentation":"

The access token time limit. After this limit expires, your user can't use their access token. To specify the time unit for AccessTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set AccessTokenValidity to 10 and TokenValidityUnits to hours, your user can authorize access with their access token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

" + "documentation":"

The access token time limit. After this limit expires, your user can't use their access token. To specify the time unit for AccessTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set AccessTokenValidity to 10 and TokenValidityUnits to hours, your user can authorize access with their access token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

If you don't specify otherwise in the configuration of your app client, your access tokens are valid for one hour.

" }, "IdTokenValidity":{ "shape":"IdTokenValidityType", - "documentation":"

The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for IdTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set IdTokenValidity as 10 and TokenValidityUnits as hours, your user can authenticate their session with their ID token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

" + "documentation":"

The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for IdTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set IdTokenValidity as 10 and TokenValidityUnits as hours, your user can authenticate their session with their ID token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

If you don't specify otherwise in the configuration of your app client, your ID tokens are valid for one hour.

" }, "TokenValidityUnits":{ "shape":"TokenValidityUnitsType", @@ -7443,11 +7509,11 @@ }, "ExplicitAuthFlows":{ "shape":"ExplicitAuthFlowsListType", - "documentation":"

The authentication flows that are supported by the user pool clients. Flow names without the ALLOW_ prefix are no longer supported in favor of new names with the ALLOW_ prefix. Note that values with ALLOW_ prefix must be used only along with values with the ALLOW_ prefix.

Valid values include:

  • ALLOW_ADMIN_USER_PASSWORD_AUTH: Enable admin based user password authentication flow ADMIN_USER_PASSWORD_AUTH. This setting replaces the ADMIN_NO_SRP_AUTH setting. With this authentication flow, Amazon Cognito receives the password in the request instead of using the Secure Remote Password (SRP) protocol to verify passwords.

  • ALLOW_CUSTOM_AUTH: Enable Lambda trigger based authentication.

  • ALLOW_USER_PASSWORD_AUTH: Enable user password-based authentication. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords.

  • ALLOW_USER_SRP_AUTH: Enable SRP-based authentication.

  • ALLOW_REFRESH_TOKEN_AUTH: Enable authflow to refresh tokens.

" + "documentation":"

The authentication flows that you want your user pool client to support. For each app client in your user pool, you can sign in your users with any combination of one or more flows, including with a user name and Secure Remote Password (SRP), a user name and password, or a custom authentication process that you define with Lambda functions.

If you don't specify a value for ExplicitAuthFlows, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.

Valid values include:

  • ALLOW_ADMIN_USER_PASSWORD_AUTH: Enable admin based user password authentication flow ADMIN_USER_PASSWORD_AUTH. This setting replaces the ADMIN_NO_SRP_AUTH setting. With this authentication flow, your app passes a user name and password to Amazon Cognito in the request, instead of using the Secure Remote Password (SRP) protocol to securely transmit the password.

  • ALLOW_CUSTOM_AUTH: Enable Lambda trigger based authentication.

  • ALLOW_USER_PASSWORD_AUTH: Enable user password-based authentication. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords.

  • ALLOW_USER_SRP_AUTH: Enable SRP-based authentication.

  • ALLOW_REFRESH_TOKEN_AUTH: Enable authflow to refresh tokens.

In some environments, you will see the values ADMIN_NO_SRP_AUTH, CUSTOM_AUTH_FLOW_ONLY, or USER_PASSWORD_AUTH. You can't assign these legacy ExplicitAuthFlows values to user pool clients at the same time as values that begin with ALLOW_, like ALLOW_USER_SRP_AUTH.

" }, "SupportedIdentityProviders":{ "shape":"SupportedIdentityProvidersListType", - "documentation":"

A list of provider names for the IdPs that this client supports. The following are supported: COGNITO, Facebook, Google LoginWithAmazon, and the names of your own SAML and OIDC providers.

" + "documentation":"

A list of provider names for the IdPs that this client supports. The following are supported: COGNITO, Facebook, Google, SignInWithApple, LoginWithAmazon, and the names of your own SAML and OIDC providers.

" }, "CallbackURLs":{ "shape":"CallbackURLsListType", @@ -7484,6 +7550,14 @@ "EnableTokenRevocation":{ "shape":"WrappedBooleanType", "documentation":"

Activates or deactivates token revocation. For more information about revoking tokens, see RevokeToken.

" + }, + "EnablePropagateAdditionalUserContextData":{ + "shape":"WrappedBooleanType", + "documentation":"

Activates the propagation of additional user context data. For more information about propagation of user context data, see Adding advanced security to a user pool. If you don’t include this parameter, you can't send device fingerprint information, including source IP address, to Amazon Cognito advanced security. You can only activate EnablePropagateAdditionalUserContextData in an app client that has a client secret.

" + }, + "AuthSessionValidity":{ + "shape":"AuthSessionValidityType", + "documentation":"

Amazon Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. Your user pool native user must respond to each authentication challenge before the session expires.

" } }, "documentation":"

Represents the request to update the user pool client.

" @@ -7543,6 +7617,10 @@ "shape":"UserPoolPolicyType", "documentation":"

A container with the policies you want to update in a user pool.

" }, + "DeletionProtection":{ + "shape":"DeletionProtectionType", + "documentation":"

When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature.

When you try to delete a protected user pool in a DeleteUserPool API request, Amazon Cognito returns an InvalidParameterException error. To delete a protected user pool, send a new DeleteUserPool request after you deactivate deletion protection in an UpdateUserPool API request.

" + }, "LambdaConfig":{ "shape":"LambdaConfigType", "documentation":"

The Lambda configuration information from the request to update the user pool.

" @@ -7553,15 +7631,15 @@ }, "SmsVerificationMessage":{ "shape":"SmsVerificationMessageType", - "documentation":"

A container with information about the SMS verification message.

" + "documentation":"

This parameter is no longer used. See VerificationMessageTemplateType.

" }, "EmailVerificationMessage":{ "shape":"EmailVerificationMessageType", - "documentation":"

The contents of the email verification message.

" + "documentation":"

This parameter is no longer used. See VerificationMessageTemplateType.

" }, "EmailVerificationSubject":{ "shape":"EmailVerificationSubjectType", - "documentation":"

The subject of the email verification message.

" + "documentation":"

This parameter is no longer used. See VerificationMessageTemplateType.

" }, "VerificationMessageTemplate":{ "shape":"VerificationMessageTemplateType", @@ -7573,7 +7651,7 @@ }, "UserAttributeUpdateSettings":{ "shape":"UserAttributeUpdateSettingsType", - "documentation":"

" + "documentation":"

The settings for updates to user attributes. These settings include the property AttributesRequireVerificationBeforeUpdate, a user-pool setting that tells Amazon Cognito how to handle changes to the value of your users' email address and phone number attributes. For more information, see Verifying updates to email addresses and phone numbers.

" }, "MfaConfiguration":{ "shape":"UserPoolMfaType", @@ -7581,7 +7659,7 @@ }, "DeviceConfiguration":{ "shape":"DeviceConfigurationType", - "documentation":"

Device configuration.

" + "documentation":"

The device-remembering configuration for a user pool. A null value indicates that you have deactivated device remembering in your user pool.

When you provide a value for any DeviceConfiguration field, you activate the Amazon Cognito device-remembering feature.

" }, "EmailConfiguration":{ "shape":"EmailConfigurationType", @@ -7624,17 +7702,21 @@ "documentation":"

Requires that your user verifies their email address, phone number, or both before Amazon Cognito updates the value of that attribute. When you update a user attribute that has this option activated, Amazon Cognito sends a verification message to the new phone number or email address. Amazon Cognito doesn’t change the value of the attribute until your user responds to the verification message and confirms the new value.

You can verify an updated email address or phone number with a VerifyUserAttribute API request. You can also call the UpdateUserAttributes or AdminUpdateUserAttributes API and set email_verified or phone_number_verified to true.

When AttributesRequireVerificationBeforeUpdate is false, your user pool doesn't require that your users verify attribute changes before Amazon Cognito updates them. In a user pool where AttributesRequireVerificationBeforeUpdate is false, API operations that change attribute values can immediately update a user’s email or phone_number attribute.

" } }, - "documentation":"

The settings for updates to user attributes.

" + "documentation":"

The settings for updates to user attributes. These settings include the property AttributesRequireVerificationBeforeUpdate, a user-pool setting that tells Amazon Cognito how to handle changes to the value of your users' email address and phone number attributes. For more information, see Verifying updates to email addresses and phone numbers.

" }, "UserContextDataType":{ "type":"structure", "members":{ + "IpAddress":{ + "shape":"StringType", + "documentation":"

The source IP address of your user's device.

" + }, "EncodedData":{ "shape":"StringType", - "documentation":"

Contextual data, such as the user's device fingerprint, IP address, or location, used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" + "documentation":"

Encoded device-fingerprint details that your app collected with the Amazon Cognito context data collection library. For more information, see Adding user device and session data to API requests.

" } }, - "documentation":"

Information that your app generates about a user's AdminInitiateAuth or AdminRespondToAuthChallenge session. Amazon Cognito advanced security features calculate risk levels for user sessions based on this context data.

" + "documentation":"

Contextual data, such as the user's device fingerprint, IP address, or location, used for evaluating the risk of an unexpected event by Amazon Cognito advanced security.

" }, "UserFilterType":{ "type":"string", @@ -7847,15 +7929,15 @@ }, "RefreshTokenValidity":{ "shape":"RefreshTokenValidityType", - "documentation":"

The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days.

The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds.

" + "documentation":"

The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days.

The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds.

If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days.

" }, "AccessTokenValidity":{ "shape":"AccessTokenValidityType", - "documentation":"

The access token time limit. After this limit expires, your user can't use their access token. To specify the time unit for AccessTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set AccessTokenValidity to 10 and TokenValidityUnits to hours, your user can authorize access with their access token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

" + "documentation":"

The access token time limit. After this limit expires, your user can't use their access token. To specify the time unit for AccessTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set AccessTokenValidity to 10 and TokenValidityUnits to hours, your user can authorize access with their access token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

If you don't specify otherwise in the configuration of your app client, your access tokens are valid for one hour.

" }, "IdTokenValidity":{ "shape":"IdTokenValidityType", - "documentation":"

The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for IdTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set IdTokenValidity as 10 and TokenValidityUnits as hours, your user can authenticate their session with their ID token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

" + "documentation":"

The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for IdTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request.

For example, when you set IdTokenValidity as 10 and TokenValidityUnits as hours, your user can authenticate their session with their ID token for 10 hours.

The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds.

If you don't specify otherwise in the configuration of your app client, your ID tokens are valid for one hour.

" }, "TokenValidityUnits":{ "shape":"TokenValidityUnitsType", @@ -7871,11 +7953,11 @@ }, "ExplicitAuthFlows":{ "shape":"ExplicitAuthFlowsListType", - "documentation":"

The authentication flows that are supported by the user pool clients. Flow names without the ALLOW_ prefix are no longer supported in favor of new names with the ALLOW_ prefix. Note that values with ALLOW_ prefix must be used only along with values including the ALLOW_ prefix.

Valid values include:

  • ALLOW_ADMIN_USER_PASSWORD_AUTH: Enable admin based user password authentication flow ADMIN_USER_PASSWORD_AUTH. This setting replaces the ADMIN_NO_SRP_AUTH setting. With this authentication flow, Amazon Cognito receives the password in the request instead of using the Secure Remote Password (SRP) protocol to verify passwords.

  • ALLOW_CUSTOM_AUTH: Enable Lambda trigger based authentication.

  • ALLOW_USER_PASSWORD_AUTH: Enable user password-based authentication. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords.

  • ALLOW_USER_SRP_AUTH: Enable SRP-based authentication.

  • ALLOW_REFRESH_TOKEN_AUTH: Enable authflow to refresh tokens.

" + "documentation":"

The authentication flows that you want your user pool client to support. For each app client in your user pool, you can sign in your users with any combination of one or more flows, including with a user name and Secure Remote Password (SRP), a user name and password, or a custom authentication process that you define with Lambda functions.

If you don't specify a value for ExplicitAuthFlows, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.

Valid values include:

  • ALLOW_ADMIN_USER_PASSWORD_AUTH: Enable admin based user password authentication flow ADMIN_USER_PASSWORD_AUTH. This setting replaces the ADMIN_NO_SRP_AUTH setting. With this authentication flow, your app passes a user name and password to Amazon Cognito in the request, instead of using the Secure Remote Password (SRP) protocol to securely transmit the password.

  • ALLOW_CUSTOM_AUTH: Enable Lambda trigger based authentication.

  • ALLOW_USER_PASSWORD_AUTH: Enable user password-based authentication. In this flow, Amazon Cognito receives the password in the request instead of using the SRP protocol to verify passwords.

  • ALLOW_USER_SRP_AUTH: Enable SRP-based authentication.

  • ALLOW_REFRESH_TOKEN_AUTH: Enable authflow to refresh tokens.

In some environments, you will see the values ADMIN_NO_SRP_AUTH, CUSTOM_AUTH_FLOW_ONLY, or USER_PASSWORD_AUTH. You can't assign these legacy ExplicitAuthFlows values to user pool clients at the same time as values that begin with ALLOW_, like ALLOW_USER_SRP_AUTH.

" }, "SupportedIdentityProviders":{ "shape":"SupportedIdentityProvidersListType", - "documentation":"

A list of provider names for the IdPs that this client supports. The following are supported: COGNITO, Facebook, Google LoginWithAmazon, and the names of your own SAML and OIDC providers.

" + "documentation":"

A list of provider names for the IdPs that this client supports. The following are supported: COGNITO, Facebook, Google, SignInWithApple, LoginWithAmazon, and the names of your own SAML and OIDC providers.

" }, "CallbackURLs":{ "shape":"CallbackURLsListType", @@ -7913,6 +7995,14 @@ "EnableTokenRevocation":{ "shape":"WrappedBooleanType", "documentation":"

Indicates whether token revocation is activated for the user pool client. When you create a new user pool client, token revocation is activated by default. For more information about revoking tokens, see RevokeToken.

" + }, + "EnablePropagateAdditionalUserContextData":{ + "shape":"WrappedBooleanType", + "documentation":"

When EnablePropagateAdditionalUserContextData is true, Amazon Cognito accepts an IpAddress value that you send in the UserContextData parameter. The UserContextData parameter sends information to Amazon Cognito advanced security for risk analysis. You can send UserContextData when you sign in Amazon Cognito native users with the InitiateAuth and RespondToAuthChallenge API operations.

When EnablePropagateAdditionalUserContextData is false, you can't send your user's source IP address to Amazon Cognito advanced security with unauthenticated API operations. EnablePropagateAdditionalUserContextData doesn't affect whether you can send a source IP address in a ContextData parameter with the authenticated API operations AdminInitiateAuth and AdminRespondToAuthChallenge.

You can only activate EnablePropagateAdditionalUserContextData in an app client that has a client secret. For more information about propagation of user context data, see Adding user device and session data to API requests.

" + }, + "AuthSessionValidity":{ + "shape":"AuthSessionValidityType", + "documentation":"

Amazon Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. Your user pool native user must respond to each authentication challenge before the session expires.

" } }, "documentation":"

Contains information about a user pool client.

" @@ -8013,6 +8103,10 @@ "shape":"UserPoolPolicyType", "documentation":"

The policies associated with the user pool.

" }, + "DeletionProtection":{ + "shape":"DeletionProtectionType", + "documentation":"

When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature.

When you try to delete a protected user pool in a DeleteUserPool API request, Amazon Cognito returns an InvalidParameterException error. To delete a protected user pool, send a new DeleteUserPool request after you deactivate deletion protection in an UpdateUserPool API request.

" + }, "LambdaConfig":{ "shape":"LambdaConfigType", "documentation":"

The Lambda triggers associated with the user pool.

" @@ -8047,15 +8141,15 @@ }, "SmsVerificationMessage":{ "shape":"SmsVerificationMessageType", - "documentation":"

The contents of the SMS verification message.

" + "documentation":"

This parameter is no longer used. See VerificationMessageTemplateType.

" }, "EmailVerificationMessage":{ "shape":"EmailVerificationMessageType", - "documentation":"

The contents of the email verification message.

" + "documentation":"

This parameter is no longer used. See VerificationMessageTemplateType.

" }, "EmailVerificationSubject":{ "shape":"EmailVerificationSubjectType", - "documentation":"

The subject of the email verification message.

" + "documentation":"

This parameter is no longer used. See VerificationMessageTemplateType.

" }, "VerificationMessageTemplate":{ "shape":"VerificationMessageTemplateType", @@ -8067,7 +8161,7 @@ }, "UserAttributeUpdateSettings":{ "shape":"UserAttributeUpdateSettingsType", - "documentation":"

" + "documentation":"

The settings for updates to user attributes. These settings include the property AttributesRequireVerificationBeforeUpdate, a user-pool setting that tells Amazon Cognito how to handle changes to the value of your users' email address and phone number attributes. For more information, see Verifying updates to email addresses and phone numbers.

" }, "MfaConfiguration":{ "shape":"UserPoolMfaType", @@ -8075,7 +8169,7 @@ }, "DeviceConfiguration":{ "shape":"DeviceConfigurationType", - "documentation":"

The device configuration.

" + "documentation":"

The device-remembering configuration for a user pool. A null value indicates that you have deactivated device remembering in your user pool.

When you provide a value for any DeviceConfiguration field, you activate the Amazon Cognito device-remembering feature.

" }, "EstimatedNumberOfUsers":{ "shape":"IntegerType", diff --git a/botocore/data/cognito-sync/2014-06-30/endpoint-rule-set-1.json b/botocore/data/cognito-sync/2014-06-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..4620f720 --- /dev/null +++ b/botocore/data/cognito-sync/2014-06-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cognito-sync-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cognito-sync-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cognito-sync.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cognito-sync.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cognito-sync/2014-06-30/examples-1.json b/botocore/data/cognito-sync/2014-06-30/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/cognito-sync/2014-06-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/comprehend/2017-11-27/endpoint-rule-set-1.json b/botocore/data/comprehend/2017-11-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..62da72bd --- /dev/null +++ b/botocore/data/comprehend/2017-11-27/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://comprehend-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://comprehend-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://comprehend.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://comprehend.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/comprehend/2017-11-27/paginators-1.json b/botocore/data/comprehend/2017-11-27/paginators-1.json index eb84c64c..3a458182 100644 --- a/botocore/data/comprehend/2017-11-27/paginators-1.json +++ b/botocore/data/comprehend/2017-11-27/paginators-1.json @@ -47,6 +47,18 @@ "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/botocore/data/comprehend/2017-11-27/service-2.json b/botocore/data/comprehend/2017-11-27/service-2.json index 2a3207f0..35eb3606 100644 --- a/botocore/data/comprehend/2017-11-27/service-2.json +++ b/botocore/data/comprehend/2017-11-27/service-2.json @@ -44,7 +44,7 @@ {"shape":"BatchSizeLimitExceededException"}, {"shape":"InternalServerException"} ], - "documentation":"

Inspects the text of a batch of documents for named entities and returns information about them. For more information about named entities, see how-entities

" + "documentation":"

Inspects the text of a batch of documents for named entities and returns information about them. For more information about named entities, see Entities in the Comprehend Developer Guide.

" }, "BatchDetectKeyPhrases":{ "name":"BatchDetectKeyPhrases", @@ -95,7 +95,24 @@ {"shape":"BatchSizeLimitExceededException"}, {"shape":"InternalServerException"} ], - "documentation":"

Inspects the text of a batch of documents for the syntax and part of speech of the words in the document and returns information about them. For more information, see how-syntax.

" + "documentation":"

Inspects the text of a batch of documents for the syntax and part of speech of the words in the document and returns information about them. For more information, see Syntax in the Comprehend Developer Guide.

" + }, + "BatchDetectTargetedSentiment":{ + "name":"BatchDetectTargetedSentiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDetectTargetedSentimentRequest"}, + "output":{"shape":"BatchDetectTargetedSentimentResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"UnsupportedLanguageException"}, + {"shape":"BatchSizeLimitExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Inspects a batch of documents and returns a sentiment analysis for each entity identified in the documents.

For more information about targeted sentiment, see Targeted sentiment.

" }, "ClassifyDocument":{ "name":"ClassifyDocument", @@ -111,7 +128,7 @@ {"shape":"TextSizeLimitExceededException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a new document classification request to analyze a single document in real-time, using a previously created and trained custom model and an endpoint.

" + "documentation":"

Creates a new document classification request to analyze a single document in real-time, using a previously created and trained custom model and an endpoint.

You can input plain text or you can upload a single-page input document (text, PDF, Word, or image).

If the system detects errors while processing a page in the input document, the API response includes an entry in Errors that describes the errors.

If the system detects a document-level error in your input document, the API returns an InvalidRequestException error response. For details about this exception, see Errors in semi-structured documents in the Comprehend Developer Guide.

" }, "ContainsPiiEntities":{ "name":"ContainsPiiEntities", @@ -147,7 +164,7 @@ {"shape":"KmsKeyValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a new document classifier that you can use to categorize documents. To create a classifier, you provide a set of training documents that labeled with the categories that you want to use. After the classifier is trained you can use it to categorize a set of labeled documents into the categories. For more information, see how-document-classification.

" + "documentation":"

Creates a new document classifier that you can use to categorize documents. To create a classifier, you provide a set of training documents that labeled with the categories that you want to use. After the classifier is trained you can use it to categorize a set of labeled documents into the categories. For more information, see Document Classification in the Comprehend Developer Guide.

" }, "CreateEndpoint":{ "name":"CreateEndpoint", @@ -494,7 +511,7 @@ {"shape":"UnsupportedLanguageException"}, {"shape":"InternalServerException"} ], - "documentation":"

Inspects text for named entities, and returns information about them. For more information, about named entities, see how-entities.

" + "documentation":"

Detects named entities in input text when you use the pre-trained model. Detects custom entities if you have a custom entity recognition model.

When detecting named entities using the pre-trained model, use plain text as the input. For more information about named entities, see Entities in the Comprehend Developer Guide.

When you use a custom entity recognition model, you can input plain text or you can upload a single-page input document (text, PDF, Word, or image).

If the system detects errors while processing a page in the input document, the API response includes an entry in Errors for each error.

If the system detects a document-level error in your input document, the API returns an InvalidRequestException error response. For details about this exception, see Errors in semi-structured documents in the Comprehend Developer Guide.

" }, "DetectKeyPhrases":{ "name":"DetectKeyPhrases", @@ -558,7 +575,23 @@ {"shape":"UnsupportedLanguageException"}, {"shape":"InternalServerException"} ], - "documentation":"

Inspects text for syntax and the part of speech of words in the document. For more information, how-syntax.

" + "documentation":"

Inspects text for syntax and the part of speech of words in the document. For more information, see Syntax in the Comprehend Developer Guide.

" + }, + "DetectTargetedSentiment":{ + "name":"DetectTargetedSentiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetectTargetedSentimentRequest"}, + "output":{"shape":"DetectTargetedSentimentResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"TextSizeLimitExceededException"}, + {"shape":"UnsupportedLanguageException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Inspects the input text and returns a sentiment analysis for each entity identified in the text.

For more information about targeted sentiment, see Targeted sentiment.

" }, "ImportModel":{ "name":"ImportModel", @@ -1253,7 +1286,7 @@ "members":{ "TextList":{ "shape":"CustomerInputStringList", - "documentation":"

A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document should contain at least 20 characters and must contain fewer than 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A list containing the UTF-8 encoded text of the input documents. The list can contain a maximum of 25 documents. Each document should contain at least 20 characters. The maximum size of each document is 5 KB.

" } } }, @@ -1298,7 +1331,7 @@ "members":{ "TextList":{ "shape":"CustomerInputStringList", - "documentation":"

A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer than 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A list containing the UTF-8 encoded text of the input documents. The list can contain a maximum of 25 documents. The maximum size of each document is 5 KB.

" }, "LanguageCode":{ "shape":"LanguageCode", @@ -1347,7 +1380,7 @@ "members":{ "TextList":{ "shape":"CustomerInputStringList", - "documentation":"

A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer than 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A list containing the UTF-8 encoded text of the input documents. The list can contain a maximum of 25 documents. The maximum size of each document is 5 KB.

" }, "LanguageCode":{ "shape":"LanguageCode", @@ -1400,7 +1433,7 @@ "members":{ "TextList":{ "shape":"CustomerInputStringList", - "documentation":"

A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A list containing the UTF-8 encoded text of the input documents. The list can contain a maximum of 25 documents. The maximum size of each document is 5 KB.

Amazon Comprehend performs real-time sentiment analysis on the first 500 characters of the input text and ignores any additional text in the input.

" }, "LanguageCode":{ "shape":"LanguageCode", @@ -1449,7 +1482,7 @@ "members":{ "TextList":{ "shape":"CustomerInputStringList", - "documentation":"

A list containing the text of the input documents. The list can contain a maximum of 25 documents. Each document must contain fewer that 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A list containing the UTF-8 encoded text of the input documents. The list can contain a maximum of 25 documents. The maximum size for each document is 5 KB.

" }, "LanguageCode":{ "shape":"SyntaxLanguageCode", @@ -1475,6 +1508,55 @@ }, "sensitive":true }, + "BatchDetectTargetedSentimentItemResult":{ + "type":"structure", + "members":{ + "Index":{ + "shape":"Integer", + "documentation":"

The zero-based index of this result in the input list.

" + }, + "Entities":{ + "shape":"ListOfTargetedSentimentEntities", + "documentation":"

An array of targeted sentiment entities.

" + } + }, + "documentation":"

Analysis results for one of the documents in the batch.

" + }, + "BatchDetectTargetedSentimentRequest":{ + "type":"structure", + "required":[ + "TextList", + "LanguageCode" + ], + "members":{ + "TextList":{ + "shape":"CustomerInputStringList", + "documentation":"

A list containing the UTF-8 encoded text of the input documents. The list can contain a maximum of 25 documents. The maximum size of each document is 5 KB.

" + }, + "LanguageCode":{ + "shape":"LanguageCode", + "documentation":"

The language of the input documents. Currently, English is the only supported language.

" + } + } + }, + "BatchDetectTargetedSentimentResponse":{ + "type":"structure", + "required":[ + "ResultList", + "ErrorList" + ], + "members":{ + "ResultList":{ + "shape":"ListOfDetectTargetedSentimentResult", + "documentation":"

A list of objects containing the results of the operation. The results are sorted in ascending order by the Index field and match the order of the documents in the input list. If all of the documents contain an error, the ResultList is empty.

" + }, + "ErrorList":{ + "shape":"BatchItemErrorList", + "documentation":"

List of errors that the operation can return.

" + } + }, + "sensitive":true + }, "BatchItemError":{ "type":"structure", "members":{ @@ -1505,6 +1587,105 @@ "documentation":"

The number of documents in the request exceeds the limit of 25. Try your request again with fewer documents.

", "exception":true }, + "Block":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"String", + "documentation":"

Unique identifier for the block.

" + }, + "BlockType":{ + "shape":"BlockType", + "documentation":"

The block represents a line of text or one word of text.

  • WORD - A word that's detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces.

  • LINE - A string of tab-delimited, contiguous words that are detected on a document page

" + }, + "Text":{ + "shape":"String", + "documentation":"

The word or line of text extracted from the block.

" + }, + "Page":{ + "shape":"Integer", + "documentation":"

Page number where the block appears.

" + }, + "Geometry":{ + "shape":"Geometry", + "documentation":"

Co-ordinates of the rectangle or polygon that contains the text.

" + }, + "Relationships":{ + "shape":"ListOfRelationships", + "documentation":"

A list of child blocks of the current block. For example, a LINE object has child blocks for each WORD block that's part of the line of text.

" + } + }, + "documentation":"

Information about each word or line of text in the input document.

For additional information, see Block in the Amazon Textract API reference.

" + }, + "BlockReference":{ + "type":"structure", + "members":{ + "BlockId":{ + "shape":"String", + "documentation":"

Unique identifier for the block.

" + }, + "BeginOffset":{ + "shape":"Integer", + "documentation":"

Offset of the start of the block within its parent block.

" + }, + "EndOffset":{ + "shape":"Integer", + "documentation":"

Offset of the end of the block within its parent block.

" + }, + "ChildBlocks":{ + "shape":"ListOfChildBlocks", + "documentation":"

List of child blocks within this block.

" + } + }, + "documentation":"

A reference to a block.

" + }, + "BlockType":{ + "type":"string", + "enum":[ + "LINE", + "WORD" + ] + }, + "BoundingBox":{ + "type":"structure", + "members":{ + "Height":{ + "shape":"Float", + "documentation":"

The height of the bounding box as a ratio of the overall document page height.

" + }, + "Left":{ + "shape":"Float", + "documentation":"

The left coordinate of the bounding box as a ratio of overall document page width.

" + }, + "Top":{ + "shape":"Float", + "documentation":"

The top coordinate of the bounding box as a ratio of overall document page height.

" + }, + "Width":{ + "shape":"Float", + "documentation":"

The width of the bounding box as a ratio of the overall document page width.

" + } + }, + "documentation":"

The bounding box around the detected page or around an element on a document page. The left (x-coordinate) and top (y-coordinate) are coordinates that represent the top and left sides of the bounding box. Note that the upper-left corner of the image is the origin (0,0).

For additional information, see BoundingBox in the Amazon Textract API reference.

" + }, + "ChildBlock":{ + "type":"structure", + "members":{ + "ChildBlockId":{ + "shape":"String", + "documentation":"

Unique identifier for the child block.

" + }, + "BeginOffset":{ + "shape":"Integer", + "documentation":"

Offset of the start of the child block within its parent block.

" + }, + "EndOffset":{ + "shape":"Integer", + "documentation":"

Offset of the end of the child block within its parent block.

" + } + }, + "documentation":"

Nested block contained within a block.

" + }, "ClassifierEvaluationMetrics":{ "type":"structure", "members":{ @@ -1568,18 +1749,23 @@ }, "ClassifyDocumentRequest":{ "type":"structure", - "required":[ - "Text", - "EndpointArn" - ], + "required":["EndpointArn"], "members":{ "Text":{ "shape":"CustomerInputString", - "documentation":"

The document text to be analyzed.

" + "documentation":"

The document text to be analyzed. If you enter text using this parameter, do not use the Bytes parameter.

" }, "EndpointArn":{ "shape":"DocumentClassifierEndpointArn", "documentation":"

The Amazon Resource Number (ARN) of the endpoint. For information about endpoints, see Managing endpoints.

" + }, + "Bytes":{ + "shape":"SemiStructuredDocumentBlob", + "documentation":"

Use the Bytes parameter to input a text, PDF, Word or image file. You can also use the Bytes parameter to input an Amazon Textract DetectDocumentText or AnalyzeDocument output file.

Provide the input document as a sequence of base64-encoded bytes. If your code uses an Amazon Web Services SDK to classify documents, the SDK may encode the document file bytes for you.

The maximum length of this field depends on the input document type. For details, see Inputs for real-time custom analysis in the Comprehend Developer Guide.

If you use the Bytes parameter, do not use the Text parameter.

" + }, + "DocumentReaderConfig":{ + "shape":"DocumentReaderConfig", + "documentation":"

Provides configuration parameters to override the default actions for extracting text from PDF documents and image files.

" } } }, @@ -1593,6 +1779,18 @@ "Labels":{ "shape":"ListOfLabels", "documentation":"

The labels used the document being analyzed. These are used for multi-label trained models. Individual labels represent different categories that are related in some manner and are not mutually exclusive. For example, a movie can be just an action movie, or it can be an action movie, a science fiction movie, and a comedy, all at the same time.

" + }, + "DocumentMetadata":{ + "shape":"DocumentMetadata", + "documentation":"

Extraction information about the document. This field is present in the response only if your request includes the Byte parameter.

" + }, + "DocumentType":{ + "shape":"ListOfDocumentType", + "documentation":"

The document type for each page in the input document. This field is present in the response only if your request includes the Byte parameter.

" + }, + "Errors":{ + "shape":"ListOfErrors", + "documentation":"

Page-level errors that the system detected while processing the input document. The field is empty if the system encountered no errors.

" } }, "sensitive":true @@ -1645,7 +1843,7 @@ "members":{ "Text":{ "shape":"String", - "documentation":"

Creates a new document classification request to analyze a single document in real-time, returning personally identifiable information (PII) entity labels.

" + "documentation":"

A UTF-8 text string. The maximum string size is 100 KB.

" }, "LanguageCode":{ "shape":"LanguageCode", @@ -1815,7 +2013,7 @@ }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

You can specify any of the following languages supported by Amazon Comprehend: English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), German (\"de\"), or Portuguese (\"pt\"). All documents must be in the same language.

" + "documentation":"

You can specify any of the following languages: English (\"en\"), Spanish (\"es\"), French (\"fr\"), Italian (\"it\"), German (\"de\"), or Portuguese (\"pt\"). If you plan to use this entity recognizer with PDF, Word, or image input files, you must specify English as the language. All training documents must be in the same language.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", @@ -2093,7 +2291,7 @@ "members":{ "ResourceArn":{ "shape":"ComprehendModelArn", - "documentation":"

The Amazon Resource Name (ARN) of the policy to describe.

" + "documentation":"

The Amazon Resource Name (ARN) of the custom model version that has the resource policy.

" } } }, @@ -2181,7 +2379,7 @@ "members":{ "Text":{ "shape":"CustomerInputString", - "documentation":"

A UTF-8 text string. Each string should contain at least 20 characters and must contain fewer that 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A UTF-8 text string. The string must contain at least 20 characters. The maximum string size is 100 KB.

" } } }, @@ -2197,19 +2395,26 @@ }, "DetectEntitiesRequest":{ "type":"structure", - "required":["Text"], "members":{ "Text":{ "shape":"CustomerInputString", - "documentation":"

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A UTF-8 text string. The maximum string size is 100 KB. If you enter text using this parameter, do not use the Bytes parameter.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. All documents must be in the same language.

If your request includes the endpoint for a custom entity recognition model, Amazon Comprehend uses the language of your custom model, and it ignores any language code that you specify here.

" + "documentation":"

The language of the input documents. You can specify any of the primary languages supported by Amazon Comprehend. If your request includes the endpoint for a custom entity recognition model, Amazon Comprehend uses the language of your custom model, and it ignores any language code that you specify here.

All input documents must be in the same language.

" }, "EndpointArn":{ "shape":"EntityRecognizerEndpointArn", "documentation":"

The Amazon Resource Name of an endpoint that is associated with a custom entity recognition model. Provide an endpoint if you want to detect entities by using your own custom model instead of the default model that is used by Amazon Comprehend.

If you specify an endpoint, Amazon Comprehend uses the language of your custom model, and it ignores any language code that you provide in your request.

For information about endpoints, see Managing endpoints.

" + }, + "Bytes":{ + "shape":"SemiStructuredDocumentBlob", + "documentation":"

This field applies only when you use a custom entity recognition model that was trained with PDF annotations. For other cases, enter your text input in the Text field.

Use the Bytes parameter to input a text, PDF, Word or image file. Using a plain-text file in the Bytes parameter is equivelent to using the Text parameter (the Entities field in the response is identical).

You can also use the Bytes parameter to input an Amazon Textract DetectDocumentText or AnalyzeDocument output file.

Provide the input document as a sequence of base64-encoded bytes. If your code uses an Amazon Web Services SDK to detect entities, the SDK may encode the document file bytes for you.

The maximum length of this field depends on the input document type. For details, see Inputs for real-time custom analysis in the Comprehend Developer Guide.

If you use the Bytes parameter, do not use the Text parameter.

" + }, + "DocumentReaderConfig":{ + "shape":"DocumentReaderConfig", + "documentation":"

Provides configuration parameters to override the default actions for extracting text from PDF documents and image files.

" } } }, @@ -2218,7 +2423,23 @@ "members":{ "Entities":{ "shape":"ListOfEntities", - "documentation":"

A collection of entities identified in the input text. For each entity, the response provides the entity text, entity type, where the entity text begins and ends, and the level of confidence that Amazon Comprehend has in the detection.

If your request uses a custom entity recognition model, Amazon Comprehend detects the entities that the model is trained to recognize. Otherwise, it detects the default entity types. For a list of default entity types, see how-entities.

" + "documentation":"

A collection of entities identified in the input text. For each entity, the response provides the entity text, entity type, where the entity text begins and ends, and the level of confidence that Amazon Comprehend has in the detection.

If your request uses a custom entity recognition model, Amazon Comprehend detects the entities that the model is trained to recognize. Otherwise, it detects the default entity types. For a list of default entity types, see Entities in the Comprehend Developer Guide.

" + }, + "DocumentMetadata":{ + "shape":"DocumentMetadata", + "documentation":"

Information about the document, discovered during text extraction. This field is present in the response only if your request used the Byte parameter.

" + }, + "DocumentType":{ + "shape":"ListOfDocumentType", + "documentation":"

The document type for each page in the input document. This field is present in the response only if your request used the Byte parameter.

" + }, + "Blocks":{ + "shape":"ListOfBlocks", + "documentation":"

Information about each block of text in the input document. Blocks are nested. A page block contains a block for each line of text, which contains a block for each word.

The Block content for a Word input document does not include a Geometry field.

The Block field is not present in the response for plain-text inputs.

" + }, + "Errors":{ + "shape":"ListOfErrors", + "documentation":"

Page-level errors that the system detected while processing the input document. The field is empty if the system encountered no errors.

" } }, "sensitive":true @@ -2232,7 +2453,7 @@ "members":{ "Text":{ "shape":"CustomerInputString", - "documentation":"

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A UTF-8 text string. The string must contain less than 100 KB of UTF-8 encoded characters.

" }, "LanguageCode":{ "shape":"LanguageCode", @@ -2259,7 +2480,7 @@ "members":{ "Text":{ "shape":"String", - "documentation":"

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A UTF-8 text string. The maximum string size is 100 KB.

" }, "LanguageCode":{ "shape":"LanguageCode", @@ -2285,7 +2506,7 @@ "members":{ "Text":{ "shape":"CustomerInputString", - "documentation":"

A UTF-8 text string. Each string must contain fewer that 5,000 bytes of UTF-8 encoded characters.

" + "documentation":"

A UTF-8 text string. The maximum string size is 5 KB.

Amazon Comprehend performs real-time sentiment analysis on the first 500 characters of the input text and ignores any additional text in the input.

" }, "LanguageCode":{ "shape":"LanguageCode", @@ -2316,7 +2537,7 @@ "members":{ "Text":{ "shape":"CustomerInputString", - "documentation":"

A UTF-8 string. Each string must contain fewer that 5,000 bytes of UTF encoded characters.

" + "documentation":"

A UTF-8 string. The maximum string size is 5 KB.

" }, "LanguageCode":{ "shape":"SyntaxLanguageCode", @@ -2329,7 +2550,34 @@ "members":{ "SyntaxTokens":{ "shape":"ListOfSyntaxTokens", - "documentation":"

A collection of syntax tokens describing the text. For each token, the response provides the text, the token type, where the text begins and ends, and the level of confidence that Amazon Comprehend has that the token is correct. For a list of token types, see how-syntax.

" + "documentation":"

A collection of syntax tokens describing the text. For each token, the response provides the text, the token type, where the text begins and ends, and the level of confidence that Amazon Comprehend has that the token is correct. For a list of token types, see Syntax in the Comprehend Developer Guide.

" + } + }, + "sensitive":true + }, + "DetectTargetedSentimentRequest":{ + "type":"structure", + "required":[ + "Text", + "LanguageCode" + ], + "members":{ + "Text":{ + "shape":"CustomerInputString", + "documentation":"

A UTF-8 text string. The maximum string length is 5 KB.

" + }, + "LanguageCode":{ + "shape":"LanguageCode", + "documentation":"

The language of the input documents. Currently, English is the only supported language.

" + } + } + }, + "DetectTargetedSentimentResponse":{ + "type":"structure", + "members":{ + "Entities":{ + "shape":"ListOfTargetedSentimentEntities", + "documentation":"

Targeted sentiment analysis for each of the entities identified in the input text.

" } }, "sensitive":true @@ -2344,6 +2592,10 @@ "Score":{ "shape":"Float", "documentation":"

The confidence score that Amazon Comprehend has this class correctly attributed.

" + }, + "Page":{ + "shape":"Integer", + "documentation":"

Page number in the input document. This field is present in the response only if your request includes the Byte parameter.

" } }, "documentation":"

Specifies the class that categorizes the document being analyzed

" @@ -2488,7 +2740,7 @@ }, "TestS3Uri":{ "shape":"S3Uri", - "documentation":"

The Amazon S3 URI for the input data. The Amazon S3 bucket must be in the same AWS Region as the API endpoint that you are calling. The URI can point to a single input file or it can provide the prefix for a collection of input files.

" + "documentation":"

This specifies the Amazon S3 location where the test annotations for an entity recognizer are located. The URI must be in the same AWS Region as the API endpoint that you are calling.

" }, "LabelDelimiter":{ "shape":"LabelDelimiter", @@ -2499,7 +2751,7 @@ "documentation":"

A list of augmented manifest files that provide training data for your custom model. An augmented manifest file is a labeled dataset that is produced by Amazon SageMaker Ground Truth.

This parameter is required if you set DataFormat to AUGMENTED_MANIFEST.

" } }, - "documentation":"

The input properties for training a document classifier.

For more information on how the input file is formatted, see prep-classifier-data.

" + "documentation":"

The input properties for training a document classifier.

For more information on how the input file is formatted, see Preparing training data in the Comprehend Developer Guide.

" }, "DocumentClassifierMode":{ "type":"string", @@ -2644,10 +2896,28 @@ "Score":{ "shape":"Float", "documentation":"

The confidence score that Amazon Comprehend has this label correctly attributed.

" + }, + "Page":{ + "shape":"Integer", + "documentation":"

Page number where the label occurs. This field is present in the response only if your request includes the Byte parameter.

" } }, "documentation":"

Specifies one of the label or labels that categorize the document being analyzed.

" }, + "DocumentMetadata":{ + "type":"structure", + "members":{ + "Pages":{ + "shape":"Integer", + "documentation":"

Number of pages in the document.

" + }, + "ExtractedCharacters":{ + "shape":"ListOfExtractedCharacters", + "documentation":"

List of pages in the document, with the number of characters extracted from each page.

" + } + }, + "documentation":"

Information about the document, discovered during text extraction.

" + }, "DocumentReadAction":{ "type":"string", "enum":[ @@ -2657,7 +2927,7 @@ }, "DocumentReadFeatureTypes":{ "type":"string", - "documentation":"

A list of the types of analyses to perform. This field specifies what feature types need to be extracted from the document where entity recognition is expected.

  • TABLES - Add TABLES to the list to return information about the tables that are detected in the input document.

  • FORMS - Add FORMS to return detected form data.

", + "documentation":"

Specifies the type of Amazon Textract features to apply. If you chose TEXTRACT_ANALYZE_DOCUMENT as the read action, you must specify one or both of the following values:

  • TABLES - Returns additional information about any tables that are detected in the input document.

  • FORMS - Returns additional information about any forms that are detected in the input document.

", "enum":[ "TABLES", "FORMS" @@ -2676,18 +2946,44 @@ "members":{ "DocumentReadAction":{ "shape":"DocumentReadAction", - "documentation":"

This enum field will start with two values which will apply to PDFs:

  • TEXTRACT_DETECT_DOCUMENT_TEXT - The service calls DetectDocumentText for PDF documents per page.

  • TEXTRACT_ANALYZE_DOCUMENT - The service calls AnalyzeDocument for PDF documents per page.

" + "documentation":"

This field defines the Amazon Textract API operation that Amazon Comprehend uses to extract text from PDF files and image files. Enter one of the following values:

  • TEXTRACT_DETECT_DOCUMENT_TEXT - The Amazon Comprehend service uses the DetectDocumentText API operation.

  • TEXTRACT_ANALYZE_DOCUMENT - The Amazon Comprehend service uses the AnalyzeDocument API operation.

" }, "DocumentReadMode":{ "shape":"DocumentReadMode", - "documentation":"

This enum field provides two values:

  • SERVICE_DEFAULT - use service defaults for Document reading. For Digital PDF it would mean using an internal parser instead of Textract APIs

  • FORCE_DOCUMENT_READ_ACTION - Always use specified action for DocumentReadAction, including Digital PDF.

" + "documentation":"

Determines the text extraction actions for PDF files. Enter one of the following values:

  • SERVICE_DEFAULT - use the Amazon Comprehend service defaults for PDF files.

  • FORCE_DOCUMENT_READ_ACTION - Amazon Comprehend uses the Textract API specified by DocumentReadAction for all PDF files, including digital PDF files.

" }, "FeatureTypes":{ "shape":"ListOfDocumentReadFeatureTypes", - "documentation":"

Specifies how the text in an input file should be processed:

" + "documentation":"

Specifies the type of Amazon Textract features to apply. If you chose TEXTRACT_ANALYZE_DOCUMENT as the read action, you must specify one or both of the following values:

  • TABLES - Returns information about any tables that are detected in the input document.

  • FORMS - Returns information and the data from any forms that are detected in the input document.

" } }, - "documentation":"

The input properties for a topic detection job.

" + "documentation":"

Provides configuration parameters to override the default actions for extracting text from PDF documents and image files.

By default, Amazon Comprehend performs the following actions to extract text from files, based on the input file type:

  • Word files - Amazon Comprehend parser extracts the text.

  • Digital PDF files - Amazon Comprehend parser extracts the text.

  • Image files and scanned PDF files - Amazon Comprehend uses the Amazon Textract DetectDocumentText API to extract the text.

DocumentReaderConfig does not apply to plain text files or Word files.

For image files and PDF documents, you can override these default actions using the fields listed below. For more information, see Setting text extraction options.

" + }, + "DocumentType":{ + "type":"string", + "enum":[ + "NATIVE_PDF", + "SCANNED_PDF", + "MS_WORD", + "IMAGE", + "PLAIN_TEXT", + "TEXTRACT_DETECT_DOCUMENT_TEXT_JSON", + "TEXTRACT_ANALYZE_DOCUMENT_JSON" + ] + }, + "DocumentTypeListItem":{ + "type":"structure", + "members":{ + "Page":{ + "shape":"Integer", + "documentation":"

Page number.

" + }, + "Type":{ + "shape":"DocumentType", + "documentation":"

Document type.

" + } + }, + "documentation":"

Document type for each page in the document.

" }, "DominantLanguage":{ "type":"structure", @@ -2967,7 +3263,7 @@ }, "Type":{ "shape":"EntityType", - "documentation":"

The entity's type.

" + "documentation":"

The entity type. For entity detection using the built-in model, this field contains one of the standard entity types listed below.

For custom entity detection, this field contains one of the entity types that you specified when you trained your custom model.

" }, "Text":{ "shape":"String", @@ -2975,11 +3271,15 @@ }, "BeginOffset":{ "shape":"Integer", - "documentation":"

A character offset in the input text that shows where the entity begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

" + "documentation":"

The zero-based offset from the beginning of the source text to the first character in the entity.

This field is empty for non-text input.

" }, "EndOffset":{ "shape":"Integer", - "documentation":"

A character offset in the input text that shows where the entity ends. The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

" + "documentation":"

The zero-based offset from the beginning of the source text to the last character in the entity.

This field is empty for non-text input.

" + }, + "BlockReferences":{ + "shape":"ListOfBlockReferences", + "documentation":"

A reference to each block for this entity. This field is empty for plain-text input.

" } }, "documentation":"

Provides information about an entity.

" @@ -3008,7 +3308,7 @@ }, "TestS3Uri":{ "shape":"S3Uri", - "documentation":"

This specifies the Amazon S3 location where the test annotations for an entity recognizer are located. The URI must be in the same AWS Region as the API endpoint that you are calling.

" + "documentation":"

Specifies the Amazon S3 location where the test annotations for an entity recognizer are located. The URI must be in the same region as the API endpoint that you are calling.

" } }, "documentation":"

Describes the annotations associated with a entity recognizer.

" @@ -3336,6 +3636,24 @@ }, "documentation":"

An entity type within a labeled training dataset that Amazon Comprehend uses to train a custom entity recognizer.

" }, + "ErrorsListItem":{ + "type":"structure", + "members":{ + "Page":{ + "shape":"Integer", + "documentation":"

Page number where the error occurred.

" + }, + "ErrorCode":{ + "shape":"PageBasedErrorCode", + "documentation":"

Error code for the cause of the error.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

Text message explaining the reason for the error.

" + } + }, + "documentation":"

Text extraction encountered one or more page-level errors in the input document.

The ErrorCode contains one of the following values:

  • TEXTRACT_BAD_PAGE - Amazon Textract cannot read the page. For more information about page limits in Amazon Textract, see Page Quotas in Amazon Textract.

  • TEXTRACT_PROVISIONED_THROUGHPUT_EXCEEDED - The number of requests exceeded your throughput limit. For more information about throughput quotas in Amazon Textract, see Default quotas in Amazon Textract.

  • PAGE_CHARACTERS_EXCEEDED - Too many text characters on the page (10,000 characters maximum).

  • PAGE_SIZE_EXCEEDED - The maximum page size is 10 MB.

  • INTERNAL_SERVER_ERROR - The request encountered a service issue. Try the API request again.

" + }, "EventTypeString":{ "type":"string", "max":40, @@ -3422,7 +3740,35 @@ "type":"list", "member":{"shape":"EventsDetectionJobProperties"} }, + "ExtractedCharactersListItem":{ + "type":"structure", + "members":{ + "Page":{ + "shape":"Integer", + "documentation":"

Page number.

" + }, + "Count":{ + "shape":"Integer", + "documentation":"

Number of characters extracted from each page.

" + } + }, + "documentation":"

Array of the number of characters extracted from each page.

" + }, "Float":{"type":"float"}, + "Geometry":{ + "type":"structure", + "members":{ + "BoundingBox":{ + "shape":"BoundingBox", + "documentation":"

An axis-aligned coarse representation of the location of the recognized item on the document page.

" + }, + "Polygon":{ + "shape":"Polygon", + "documentation":"

Within the bounding box, a fine-grained polygon around the recognized item.

" + } + }, + "documentation":"

Information about the location of items on a document page.

For additional information, see Geometry in the Amazon Textract API reference.

" + }, "IamRoleArn":{ "type":"string", "max":2048, @@ -3486,10 +3832,10 @@ }, "DocumentReaderConfig":{ "shape":"DocumentReaderConfig", - "documentation":"

The document reader config field applies only for InputDataConfig of StartEntitiesDetectionJob.

Use DocumentReaderConfig to provide specifications about how you want your inference documents read. Currently it applies for PDF documents in StartEntitiesDetectionJob custom inference.

" + "documentation":"

Provides configuration parameters to override the default actions for extracting text from PDF documents and image files.

" } }, - "documentation":"

The input properties for an inference job.

" + "documentation":"

The input properties for an inference job. The document reader config field applies only to non-text inputs for custom analysis.

" }, "InputFormat":{ "type":"string", @@ -3516,14 +3862,39 @@ "documentation":"

The filter specified for the operation is invalid. Specify a different filter.

", "exception":true }, + "InvalidRequestDetail":{ + "type":"structure", + "members":{ + "Reason":{ + "shape":"InvalidRequestDetailReason", + "documentation":"

Reason code is INVALID_DOCUMENT.

" + } + }, + "documentation":"

Provides additional detail about why the request failed:

  • Document size is too large - Check the size of your file and resubmit the request.

  • Document type is not supported - Check the file type and resubmit the request.

  • Too many pages in the document - Check the number of pages in your file and resubmit the request.

  • Access denied to Amazon Textract - Verify that your account has permission to use Amazon Textract API operations and resubmit the request.

" + }, + "InvalidRequestDetailReason":{ + "type":"string", + "enum":[ + "DOCUMENT_SIZE_EXCEEDED", + "UNSUPPORTED_DOC_TYPE", + "PAGE_LIMIT_EXCEEDED", + "TEXTRACT_ACCESS_DENIED" + ] + }, "InvalidRequestException":{ "type":"structure", "members":{ - "Message":{"shape":"String"} + "Message":{"shape":"String"}, + "Reason":{"shape":"InvalidRequestReason"}, + "Detail":{"shape":"InvalidRequestDetail"} }, "documentation":"

The request is invalid.

", "exception":true }, + "InvalidRequestReason":{ + "type":"string", + "enum":["INVALID_DOCUMENT"] + }, "JobId":{ "type":"string", "max":32, @@ -3568,11 +3939,11 @@ }, "BeginOffset":{ "shape":"Integer", - "documentation":"

A character offset in the input text that shows where the key phrase begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

" + "documentation":"

The zero-based offset from the beginning of the source text to the first character in the key phrase.

" }, "EndOffset":{ "shape":"Integer", - "documentation":"

A character offset in the input text where the key phrase ends. The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

" + "documentation":"

The zero-based offset from the beginning of the source text to the last character in the key phrase.

" } }, "documentation":"

Describes a key noun phrase.

" @@ -3989,10 +4360,26 @@ } } }, + "ListOfBlockReferences":{ + "type":"list", + "member":{"shape":"BlockReference"} + }, + "ListOfBlocks":{ + "type":"list", + "member":{"shape":"Block"} + }, + "ListOfChildBlocks":{ + "type":"list", + "member":{"shape":"ChildBlock"} + }, "ListOfClasses":{ "type":"list", "member":{"shape":"DocumentClass"} }, + "ListOfDescriptiveMentionIndices":{ + "type":"list", + "member":{"shape":"Integer"} + }, "ListOfDetectDominantLanguageResult":{ "type":"list", "member":{"shape":"BatchDetectDominantLanguageItemResult"} @@ -4013,12 +4400,20 @@ "type":"list", "member":{"shape":"BatchDetectSyntaxItemResult"} }, + "ListOfDetectTargetedSentimentResult":{ + "type":"list", + "member":{"shape":"BatchDetectTargetedSentimentItemResult"} + }, "ListOfDocumentReadFeatureTypes":{ "type":"list", "member":{"shape":"DocumentReadFeatureTypes"}, "max":2, "min":1 }, + "ListOfDocumentType":{ + "type":"list", + "member":{"shape":"DocumentTypeListItem"} + }, "ListOfDominantLanguages":{ "type":"list", "member":{"shape":"DominantLanguage"} @@ -4031,6 +4426,14 @@ "type":"list", "member":{"shape":"EntityLabel"} }, + "ListOfErrors":{ + "type":"list", + "member":{"shape":"ErrorsListItem"} + }, + "ListOfExtractedCharacters":{ + "type":"list", + "member":{"shape":"ExtractedCharactersListItem"} + }, "ListOfKeyPhrases":{ "type":"list", "member":{"shape":"KeyPhrase"} @@ -4039,6 +4442,10 @@ "type":"list", "member":{"shape":"DocumentLabel"} }, + "ListOfMentions":{ + "type":"list", + "member":{"shape":"TargetedSentimentMention"} + }, "ListOfPiiEntities":{ "type":"list", "member":{"shape":"PiiEntity"} @@ -4047,10 +4454,18 @@ "type":"list", "member":{"shape":"PiiEntityType"} }, + "ListOfRelationships":{ + "type":"list", + "member":{"shape":"RelationshipsListItem"} + }, "ListOfSyntaxTokens":{ "type":"list", "member":{"shape":"SyntaxToken"} }, + "ListOfTargetedSentimentEntities":{ + "type":"list", + "member":{"shape":"TargetedSentimentEntity"} + }, "ListPiiEntitiesDetectionJobsRequest":{ "type":"structure", "members":{ @@ -4205,6 +4620,17 @@ "max":500, "min":1 }, + "MentionSentiment":{ + "type":"structure", + "members":{ + "Sentiment":{ + "shape":"SentimentType", + "documentation":"

The sentiment of the mention.

" + }, + "SentimentScore":{"shape":"SentimentScore"} + }, + "documentation":"

Contains the sentiment and sentiment score for one mention of an entity.

For more information about targeted sentiment, see Targeted sentiment.

" + }, "ModelStatus":{ "type":"string", "enum":[ @@ -4237,6 +4663,16 @@ }, "documentation":"

Provides configuration parameters for the output of inference jobs.

" }, + "PageBasedErrorCode":{ + "type":"string", + "enum":[ + "TEXTRACT_BAD_PAGE", + "TEXTRACT_PROVISIONED_THROUGHPUT_EXCEEDED", + "PAGE_CHARACTERS_EXCEEDED", + "PAGE_SIZE_EXCEEDED", + "INTERNAL_SERVER_ERROR" + ] + }, "PartOfSpeechTag":{ "type":"structure", "members":{ @@ -4249,7 +4685,7 @@ "documentation":"

The confidence that Amazon Comprehend has that the part of speech was correctly identified.

" } }, - "documentation":"

Identifies the part of speech represented by the token and gives the confidence that Amazon Comprehend has that the part of speech was correctly identified. For more information about the parts of speech that Amazon Comprehend can identify, see how-syntax.

" + "documentation":"

Identifies the part of speech represented by the token and gives the confidence that Amazon Comprehend has that the part of speech was correctly identified. For more information about the parts of speech that Amazon Comprehend can identify, see Syntax in the Comprehend Developer Guide.

" }, "PartOfSpeechTagType":{ "type":"string", @@ -4385,11 +4821,11 @@ }, "BeginOffset":{ "shape":"Integer", - "documentation":"

A character offset in the input text that shows where the PII entity begins (the first character is at position 0). The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

" + "documentation":"

The zero-based offset from the beginning of the source text to the first character in the entity.

" }, "EndOffset":{ "shape":"Integer", - "documentation":"

A character offset in the input text that shows where the PII entity ends. The offset returns the position of each UTF-8 code point in the string. A code point is the abstract character from a particular graphical representation. For example, a multi-byte UTF-8 character maps to a single code point.

" + "documentation":"

The zero-based offset from the beginning of the source text to the last character in the entity.

" } }, "documentation":"

Provides information about a PII entity.

" @@ -4451,6 +4887,20 @@ }, "documentation":"

Provides configuration parameters for the output of PII entity detection jobs.

" }, + "Point":{ + "type":"structure", + "members":{ + "X":{ + "shape":"Float", + "documentation":"

The value of the X coordinate for a point on a polygon

" + }, + "Y":{ + "shape":"Float", + "documentation":"

The value of the Y coordinate for a point on a polygon

" + } + }, + "documentation":"

The X and Y coordinates of a point on a document page.

For additional information, see Point in the Amazon Textract API reference.

" + }, "Policy":{ "type":"string", "max":20000, @@ -4462,6 +4912,10 @@ "max":64, "pattern":"[0-9A-Fa-f]+" }, + "Polygon":{ + "type":"list", + "member":{"shape":"Point"} + }, "PutResourcePolicyRequest":{ "type":"structure", "required":[ @@ -4510,6 +4964,24 @@ }, "documentation":"

Provides configuration parameters for PII entity redaction.

" }, + "RelationshipType":{ + "type":"string", + "enum":["CHILD"] + }, + "RelationshipsListItem":{ + "type":"structure", + "members":{ + "Ids":{ + "shape":"StringList", + "documentation":"

Identifers of the child blocks.

" + }, + "Type":{ + "shape":"RelationshipType", + "documentation":"

Only supported relationship is a child relationship.

" + } + }, + "documentation":"

List of child blocks for the current block.

" + }, "ResourceInUseException":{ "type":"structure", "members":{ @@ -4559,6 +5031,10 @@ "max":5, "min":1 }, + "SemiStructuredDocumentBlob":{ + "type":"blob", + "min":1 + }, "SentimentDetectionJobFilter":{ "type":"structure", "members":{ @@ -5157,7 +5633,7 @@ }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language of the input documents. Currently, English is the only valid language.

" + "documentation":"

The language of the input documents. Currently, English is the only supported language.

" }, "ClientRequestToken":{ "shape":"ClientRequestTokenString", @@ -5451,6 +5927,10 @@ "type":"string", "min":1 }, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, "SubnetId":{ "type":"string", "max":32, @@ -5495,7 +5975,7 @@ }, "PartOfSpeech":{ "shape":"PartOfSpeechTag", - "documentation":"

Provides the part of speech label and the confidence level that Amazon Comprehend has that the part of speech was correctly identified. For more information, see how-syntax.

" + "documentation":"

Provides the part of speech label and the confidence level that Amazon Comprehend has that the part of speech was correctly identified. For more information, see Syntax in the Comprehend Developer Guide.

" } }, "documentation":"

Represents a work in the input text that was recognized and assigned a part of speech. There is one syntax token record for each word in the source text.

" @@ -5635,6 +6115,76 @@ "type":"list", "member":{"shape":"TargetedSentimentDetectionJobProperties"} }, + "TargetedSentimentEntity":{ + "type":"structure", + "members":{ + "DescriptiveMentionIndex":{ + "shape":"ListOfDescriptiveMentionIndices", + "documentation":"

One or more index into the Mentions array that provides the best name for the entity group.

" + }, + "Mentions":{ + "shape":"ListOfMentions", + "documentation":"

An array of mentions of the entity in the document. The array represents a co-reference group. See Co-reference group for an example.

" + } + }, + "documentation":"

Information about one of the entities found by targeted sentiment analysis.

For more information about targeted sentiment, see Targeted sentiment.

" + }, + "TargetedSentimentEntityType":{ + "type":"string", + "enum":[ + "PERSON", + "LOCATION", + "ORGANIZATION", + "FACILITY", + "BRAND", + "COMMERCIAL_ITEM", + "MOVIE", + "MUSIC", + "BOOK", + "SOFTWARE", + "GAME", + "PERSONAL_TITLE", + "EVENT", + "DATE", + "QUANTITY", + "ATTRIBUTE", + "OTHER" + ] + }, + "TargetedSentimentMention":{ + "type":"structure", + "members":{ + "Score":{ + "shape":"Float", + "documentation":"

Model confidence that the entity is relevant. Value range is zero to one, where one is highest confidence.

" + }, + "GroupScore":{ + "shape":"Float", + "documentation":"

The confidence that all the entities mentioned in the group relate to the same entity.

" + }, + "Text":{ + "shape":"String", + "documentation":"

The text in the document that identifies the entity.

" + }, + "Type":{ + "shape":"TargetedSentimentEntityType", + "documentation":"

The type of the entity. Amazon Comprehend supports a variety of entity types.

" + }, + "MentionSentiment":{ + "shape":"MentionSentiment", + "documentation":"

Contains the sentiment and sentiment score for the mention.

" + }, + "BeginOffset":{ + "shape":"Integer", + "documentation":"

The offset into the document text where the mention begins.

" + }, + "EndOffset":{ + "shape":"Integer", + "documentation":"

The offset into the document text where the mention ends.

" + } + }, + "documentation":"

Information about one mention of an entity. The mention information includes the location of the mention in the text and the sentiment of the mention.

For more information about targeted sentiment, see Targeted sentiment.

" + }, "TextSizeLimitExceededException":{ "type":"structure", "members":{ @@ -5757,7 +6307,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

Amazon Comprehend can't process the language of the input text. For custom entity recognition APIs, only English, Spanish, French, Italian, German, or Portuguese are accepted. For a list of supported languages, see supported-languages.

", + "documentation":"

Amazon Comprehend can't process the language of the input text. For custom entity recognition APIs, only English, Spanish, French, Italian, German, or Portuguese are accepted. For a list of supported languages, Supported languages in the Comprehend Developer Guide.

", "exception":true }, "UntagResourceRequest":{ diff --git a/botocore/data/comprehendmedical/2018-10-30/endpoint-rule-set-1.json b/botocore/data/comprehendmedical/2018-10-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..2e5664d7 --- /dev/null +++ b/botocore/data/comprehendmedical/2018-10-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://comprehendmedical-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://comprehendmedical-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://comprehendmedical.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://comprehendmedical.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/comprehendmedical/2018-10-30/examples-1.json b/botocore/data/comprehendmedical/2018-10-30/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/comprehendmedical/2018-10-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/comprehendmedical/2018-10-30/service-2.json b/botocore/data/comprehendmedical/2018-10-30/service-2.json index 5dfb28c4..d6ad6501 100644 --- a/botocore/data/comprehendmedical/2018-10-30/service-2.json +++ b/botocore/data/comprehendmedical/2018-10-30/service-2.json @@ -499,7 +499,12 @@ "SIGN", "SYMPTOM", "DIAGNOSIS", - "NEGATION" + "NEGATION", + "PERTAINS_TO_FAMILY", + "HYPOTHETICAL", + "LOW_CONFIDENCE", + "PAST_HISTORY", + "FUTURE" ] }, "BoundedLengthString":{ @@ -890,7 +895,14 @@ "TIME_TO_DX_NAME", "TIME_TO_TEST_NAME", "TIME_TO_PROCEDURE_NAME", - "TIME_TO_TREATMENT_NAME" + "TIME_TO_TREATMENT_NAME", + "AMOUNT", + "GENDER", + "RACE_ETHNICITY", + "ALLERGIES", + "TOBACCO_USE", + "ALCOHOL_CONSUMPTION", + "REC_DRUG_USE" ] }, "EntityType":{ @@ -901,7 +913,8 @@ "PROTECTED_HEALTH_INFORMATION", "TEST_TREATMENT_PROCEDURE", "ANATOMY", - "TIME_EXPRESSION" + "TIME_EXPRESSION", + "BEHAVIORAL_ENVIRONMENTAL_SOCIAL" ] }, "Float":{"type":"float"}, @@ -1081,7 +1094,10 @@ "NEGATION", "DIAGNOSIS", "SIGN", - "SYMPTOM" + "SYMPTOM", + "PERTAINS_TO_FAMILY", + "HYPOTHETICAL", + "LOW_CONFIDENCE" ] }, "IamRoleArn":{ @@ -1456,7 +1472,8 @@ "TEST_UNITS", "TEST_UNIT", "DIRECTION", - "SYSTEM_ORGAN_SITE" + "SYSTEM_ORGAN_SITE", + "AMOUNT" ] }, "ResourceNotFoundException":{ @@ -1844,7 +1861,12 @@ "NEGATION", "DIAGNOSIS", "SIGN", - "SYMPTOM" + "SYMPTOM", + "PERTAINS_TO_FAMILY", + "HYPOTHETICAL", + "LOW_CONFIDENCE", + "PAST_HISTORY", + "FUTURE" ] }, "ServiceUnavailableException":{ diff --git a/botocore/data/compute-optimizer/2019-11-01/endpoint-rule-set-1.json b/botocore/data/compute-optimizer/2019-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..3d9d66e2 --- /dev/null +++ b/botocore/data/compute-optimizer/2019-11-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://compute-optimizer-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://compute-optimizer-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://compute-optimizer.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://compute-optimizer.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/compute-optimizer/2019-11-01/examples-1.json b/botocore/data/compute-optimizer/2019-11-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/compute-optimizer/2019-11-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/compute-optimizer/2019-11-01/service-2.json b/botocore/data/compute-optimizer/2019-11-01/service-2.json index 5ceab003..8e2455a1 100644 --- a/botocore/data/compute-optimizer/2019-11-01/service-2.json +++ b/botocore/data/compute-optimizer/2019-11-01/service-2.json @@ -597,7 +597,7 @@ }, "recommendationPreferenceNames":{ "shape":"RecommendationPreferenceNames", - "documentation":"

The name of the recommendation preference to delete.

Enhanced infrastructure metrics (EnhancedInfrastructureMetrics) is the only feature that can be activated through preferences. Therefore, it is also the only recommendation preference that can be deleted.

" + "documentation":"

The name of the recommendation preference to delete.

" } } }, @@ -718,6 +718,10 @@ "inferredWorkloadTypes":{ "shape":"InferredWorkloadTypesPreference", "documentation":"

Describes the activation status of the inferred workload types preference.

A status of Active confirms that the preference is applied in the latest recommendation refresh. A status of Inactive confirms that it's not yet applied to recommendations.

" + }, + "externalMetricsPreference":{ + "shape":"ExternalMetricsPreference", + "documentation":"

An object that describes the external metrics recommendation preference.

If the preference is applied in the latest recommendation refresh, an object with a valid source value appears in the response. If the preference isn't applied to the recommendations already, then this object doesn't appear in the response.

" } }, "documentation":"

Describes the effective recommendation preferences for a resource.

" @@ -1061,7 +1065,8 @@ "EffectiveRecommendationPreferencesEnhancedInfrastructureMetrics", "EffectiveRecommendationPreferencesInferredWorkloadTypes", "InferredWorkloadTypes", - "RecommendationOptionsMigrationEffort" + "RecommendationOptionsMigrationEffort", + "EffectiveRecommendationPreferencesExternalMetricsSource" ] }, "ExportableInstanceFields":{ @@ -1140,6 +1145,25 @@ "type":"list", "member":{"shape":"ExportableVolumeField"} }, + "ExternalMetricsPreference":{ + "type":"structure", + "members":{ + "source":{ + "shape":"ExternalMetricsSource", + "documentation":"

Contains the source options for external metrics preferences.

" + } + }, + "documentation":"

Describes the external metrics preferences for EC2 rightsizing recommendations.

" + }, + "ExternalMetricsSource":{ + "type":"string", + "enum":[ + "Datadog", + "Dynatrace", + "NewRelic", + "Instana" + ] + }, "FailureReason":{"type":"string"}, "FileFormat":{ "type":"string", @@ -1393,6 +1417,10 @@ "enhancedInfrastructureMetrics":{ "shape":"EnhancedInfrastructureMetrics", "documentation":"

The status of the enhanced infrastructure metrics recommendation preference. Considers all applicable preferences that you might have set at the resource, account, and organization level.

A status of Active confirms that the preference is applied in the latest recommendation refresh, and a status of Inactive confirms that it's not yet applied to recommendations.

To validate whether the preference is applied to your last generated set of recommendations, review the effectiveRecommendationPreferences value in the response of the GetAutoScalingGroupRecommendations and GetEC2InstanceRecommendations actions.

For more information, see Enhanced infrastructure metrics in the Compute Optimizer User Guide.

" + }, + "externalMetricsPreference":{ + "shape":"ExternalMetricsPreference", + "documentation":"

The provider of the external metrics recommendation preference. Considers all applicable preferences that you might have set at the account and organization level.

If the preference is applied in the latest recommendation refresh, an object with a valid source value appears in the response. If the preference isn't applied to the recommendations already, then this object doesn't appear in the response.

To validate whether the preference is applied to your last generated set of recommendations, review the effectiveRecommendationPreferences value in the response of the GetEC2InstanceRecommendations actions.

For more information, see Enhanced infrastructure metrics in the Compute Optimizer User Guide.

" } } }, @@ -2147,6 +2175,10 @@ "inferredWorkloadTypes":{ "shape":"InferredWorkloadTypesPreference", "documentation":"

The status of the inferred workload types recommendation preference to create or update.

The inferred workload type feature is active by default. To deactivate it, create a recommendation preference.

Specify the Inactive status to deactivate the feature, or specify Active to activate it.

For more information, see Inferred workload types in the Compute Optimizer User Guide.

" + }, + "externalMetricsPreference":{ + "shape":"ExternalMetricsPreference", + "documentation":"

The provider of the external metrics recommendation preference to create or update.

Specify a valid provider in the source field to activate the preference. To delete this preference, see the DeleteRecommendationPreferences action.

This preference can only be set for the Ec2Instance resource type.

For more information, see External metrics ingestion in the Compute Optimizer User Guide.

" } } }, @@ -2220,7 +2252,8 @@ "type":"string", "enum":[ "EnhancedInfrastructureMetrics", - "InferredWorkloadTypes" + "InferredWorkloadTypes", + "ExternalMetricsPreference" ] }, "RecommendationPreferenceNames":{ @@ -2250,11 +2283,15 @@ }, "enhancedInfrastructureMetrics":{ "shape":"EnhancedInfrastructureMetrics", - "documentation":"

The status of the enhanced infrastructure metrics recommendation preference.

A status of Active confirms that the preference is applied in the latest recommendation refresh, and a status of Inactive confirms that it's not yet applied to recommendations.

For more information, see Enhanced infrastructure metrics in the Compute Optimizer User Guide.

" + "documentation":"

The status of the enhanced infrastructure metrics recommendation preference.

When the recommendations page is refreshed, a status of Active confirms that the preference is applied to the recommendations, and a status of Inactive confirms that the preference isn't yet applied to recommendations.

For more information, see Enhanced infrastructure metrics in the Compute Optimizer User Guide.

" }, "inferredWorkloadTypes":{ "shape":"InferredWorkloadTypesPreference", - "documentation":"

The status of the inferred workload types recommendation preference.

A status of Active confirms that the preference is applied in the latest recommendation refresh. A status of Inactive confirms that it's not yet applied to recommendations.

" + "documentation":"

The status of the inferred workload types recommendation preference.

When the recommendations page is refreshed, a status of Active confirms that the preference is applied to the recommendations, and a status of Inactive confirms that the preference isn't yet applied to recommendations.

" + }, + "externalMetricsPreference":{ + "shape":"ExternalMetricsPreference", + "documentation":"

An object that describes the external metrics recommendation preference.

If the preference is applied in the latest recommendation refresh, an object with a valid source value appears in the response. If the preference isn't applied to the recommendations already, then this object doesn't appear in the response.

" } }, "documentation":"

Describes a recommendation preference.

" diff --git a/botocore/data/config/2014-11-12/endpoint-rule-set-1.json b/botocore/data/config/2014-11-12/endpoint-rule-set-1.json new file mode 100644 index 00000000..fbf81ba9 --- /dev/null +++ b/botocore/data/config/2014-11-12/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://config-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://config.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://config-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://config.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://config.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/config/2014-11-12/paginators-1.json b/botocore/data/config/2014-11-12/paginators-1.json index 2f24f15b..1df4d34e 100644 --- a/botocore/data/config/2014-11-12/paginators-1.json +++ b/botocore/data/config/2014-11-12/paginators-1.json @@ -181,6 +181,12 @@ ], "output_token": "NextToken", "result_key": "Results" + }, + "ListResourceEvaluations": { + "input_token": "NextToken", + "limit_key": "Limit", + "output_token": "NextToken", + "result_key": "ResourceEvaluations" } } } diff --git a/botocore/data/config/2014-11-12/service-2.json b/botocore/data/config/2014-11-12/service-2.json index a5eab003..88e3bbe4 100644 --- a/botocore/data/config/2014-11-12/service-2.json +++ b/botocore/data/config/2014-11-12/service-2.json @@ -142,7 +142,7 @@ {"shape":"ResourceInUseException"}, {"shape":"OrganizationAccessDeniedException"} ], - "documentation":"

Deletes the specified organization Config rule and all of its evaluation results from all member accounts in that organization.

Only a master account and a delegated administrator account can delete an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a rule while it is in this state.

" + "documentation":"

Deletes the specified organization Config rule and all of its evaluation results from all member accounts in that organization.

Only a management account and a delegated administrator account can delete an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a rule while it is in this state.

" }, "DeleteOrganizationConformancePack":{ "name":"DeleteOrganizationConformancePack", @@ -156,7 +156,7 @@ {"shape":"ResourceInUseException"}, {"shape":"OrganizationAccessDeniedException"} ], - "documentation":"

Deletes the specified organization conformance pack and all of the Config rules and remediation actions from all member accounts in that organization.

Only a master account or a delegated administrator account can delete an organization conformance pack. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

" + "documentation":"

Deletes the specified organization conformance pack and all of the Config rules and remediation actions from all member accounts in that organization.

Only a management account or a delegated administrator account can delete an organization conformance pack. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

" }, "DeletePendingAggregationRequest":{ "name":"DeletePendingAggregationRequest", @@ -355,7 +355,8 @@ "output":{"shape":"DescribeConfigRulesResponse"}, "errors":[ {"shape":"NoSuchConfigRuleException"}, - {"shape":"InvalidNextTokenException"} + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidParameterValueException"} ], "documentation":"

Returns details about your Config rules.

" }, @@ -521,7 +522,7 @@ {"shape":"InvalidLimitException"}, {"shape":"OrganizationAccessDeniedException"} ], - "documentation":"

Returns a list of organization Config rules.

When you specify the limit and the next token, you receive a paginated response. Limit and next token are not applicable if you specify organization Config rule names. It is only applicable, when you request all the organization Config rules.

" + "documentation":"

Returns a list of organization Config rules.

When you specify the limit and the next token, you receive a paginated response.

Limit and next token are not applicable if you specify organization Config rule names. It is only applicable, when you request all the organization Config rules.

For accounts within an organzation

If you deploy an organizational rule or conformance pack in an organization administrator account, and then establish a delegated administrator and deploy an organizational rule or conformance pack in the delegated administrator account, you won't be able to see the organizational rule or conformance pack in the organization administrator account from the delegated administrator account or see the organizational rule or conformance pack in the delegated administrator account from organization administrator account. The DescribeOrganizationConfigRules and DescribeOrganizationConformancePacks APIs can only see and interact with the organization-related resource that were deployed from within the account calling those APIs.

" }, "DescribeOrganizationConformancePackStatuses":{ "name":"DescribeOrganizationConformancePackStatuses", @@ -553,7 +554,7 @@ {"shape":"InvalidLimitException"}, {"shape":"OrganizationAccessDeniedException"} ], - "documentation":"

Returns a list of organization conformance packs.

When you specify the limit and the next token, you receive a paginated response.

Limit and next token are not applicable if you specify organization conformance packs names. They are only applicable, when you request all the organization conformance packs.

" + "documentation":"

Returns a list of organization conformance packs.

When you specify the limit and the next token, you receive a paginated response.

Limit and next token are not applicable if you specify organization conformance packs names. They are only applicable, when you request all the organization conformance packs.

For accounts within an organzation

If you deploy an organizational rule or conformance pack in an organization administrator account, and then establish a delegated administrator and deploy an organizational rule or conformance pack in the delegated administrator account, you won't be able to see the organizational rule or conformance pack in the organization administrator account from the delegated administrator account or see the organizational rule or conformance pack in the delegated administrator account from organization administrator account. The DescribeOrganizationConfigRules and DescribeOrganizationConformancePacks APIs can only see and interact with the organization-related resource that were deployed from within the account calling those APIs.

" }, "DescribePendingAggregationRequests":{ "name":"DescribePendingAggregationRequests", @@ -730,7 +731,7 @@ "errors":[ {"shape":"InvalidParameterValueException"} ], - "documentation":"

Returns the evaluation results for the specified Amazon Web Services resource. The results indicate which Config rules were used to evaluate the resource, when each rule was last used, and whether the resource complies with each rule.

" + "documentation":"

Returns the evaluation results for the specified Amazon Web Services resource. The results indicate which Config rules were used to evaluate the resource, when each rule was last invoked, and whether the resource complies with each rule.

" }, "GetComplianceSummaryByConfigRule":{ "name":"GetComplianceSummaryByConfigRule", @@ -878,6 +879,19 @@ ], "documentation":"

Returns a list of ConfigurationItems for the specified resource. The list contains details about each state of the resource during the specified time interval. If you specified a retention period to retain your ConfigurationItems between a minimum of 30 days and a maximum of 7 years (2557 days), Config returns the ConfigurationItems for the specified retention period.

The response is paginated. By default, Config returns a limit of 10 configuration items per page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified limit. In such cases, you can make another call, using the nextToken.

" }, + "GetResourceEvaluationSummary":{ + "name":"GetResourceEvaluationSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourceEvaluationSummaryRequest"}, + "output":{"shape":"GetResourceEvaluationSummaryResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a summary of resource evaluation for the specified resource evaluation ID from the proactive rules that were run. The results indicate which evaluation context was used to evaluate the rules, which resource details were evaluated, the evaluation mode that was run, and whether the resource details comply with the configuration of the proactive rules.

" + }, "GetStoredQuery":{ "name":"GetStoredQuery", "http":{ @@ -908,6 +922,21 @@ ], "documentation":"

Accepts a resource type and returns a list of resource identifiers that are aggregated for a specific resource type across accounts and regions. A resource identifier includes the resource type, ID, (if available) the custom resource name, source account, and source region. You can narrow the results to include only resources that have specific resource IDs, or a resource name, or source account ID, or source region.

For example, if the input consists of accountID 12345678910 and the region is us-east-1 for resource type AWS::EC2::Instance then the API returns all the EC2 instance identifiers of accountID 12345678910 and region us-east-1.

" }, + "ListConformancePackComplianceScores":{ + "name":"ListConformancePackComplianceScores", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListConformancePackComplianceScoresRequest"}, + "output":{"shape":"ListConformancePackComplianceScoresResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidLimitException"}, + {"shape":"InvalidNextTokenException"} + ], + "documentation":"

Returns a list of conformance pack compliance scores. A compliance score is the percentage of the number of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations in the conformance pack. This metric provides you with a high-level view of the compliance state of your conformance packs. You can use it to identify, investigate, and understand the level of compliance in your conformance packs.

Conformance packs with no evaluation results will have a compliance score of INSUFFICIENT_DATA.

" + }, "ListDiscoveredResources":{ "name":"ListDiscoveredResources", "http":{ @@ -924,6 +953,21 @@ ], "documentation":"

Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that Config has discovered, including those that Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name.

You can specify either resource IDs or a resource name, but not both, in the same request.

The response is paginated. By default, Config lists 100 resource identifiers on each page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

" }, + "ListResourceEvaluations":{ + "name":"ListResourceEvaluations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceEvaluationsRequest"}, + "output":{"shape":"ListResourceEvaluationsResponse"}, + "errors":[ + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"InvalidTimeRangeException"} + ], + "documentation":"

Returns a list of proactive resource evaluations.

" + }, "ListStoredQueries":{ "name":"ListStoredQueries", "http":{ @@ -981,7 +1025,7 @@ {"shape":"InsufficientPermissionsException"}, {"shape":"NoAvailableConfigurationRecorderException"} ], - "documentation":"

Adds or updates an Config rule for evaluating whether your Amazon Web Services resources comply with your desired configurations.

You can use this action for Config custom rules and Config managed rules. A Config custom rule is a rule that you develop and maintain. An Config managed rule is a customizable, predefined rule that Config provides.

If you are adding a new Config custom rule, you must first create the Lambda function that the rule invokes to evaluate your resources. When you use the PutConfigRule action to add the rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function. Specify the ARN for the SourceIdentifier key. This key is part of the Source object, which is part of the ConfigRule object.

If you are adding an Config managed rule, specify the rule's identifier for the SourceIdentifier key. To reference Config managed rule identifiers, see About Config managed rules.

For any new rule that you add, specify the ConfigRuleName in the ConfigRule object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are generated by Config for new rules.

If you are updating a rule that you added previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or ConfigRuleArn in the ConfigRule data type that you use in this request.

The maximum number of rules that Config supports is 150.

For information about requesting a rule limit increase, see Config Limits in the Amazon Web Services General Reference Guide.

For more information about developing and using Config rules, see Evaluating Amazon Web Services resource Configurations with Config in the Config Developer Guide.

" + "documentation":"

Adds or updates an Config rule to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

There are two types of rules: Config Custom Rules and Config Managed Rules. You can use PutConfigRule to create both Config custom rules and Config managed rules.

Custom rules are rules that you can create using either Guard or Lambda functions. Guard (Guard GitHub Repository) is a policy-as-code language that allows you to write policies that are enforced by Config Custom Policy rules. Lambda uses custom code that you upload to evaluate a custom rule. If you are adding a new Custom Lambda rule, you first need to create an Lambda function that the rule invokes to evaluate your resources. When you use PutConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function. You specify the ARN in the SourceIdentifier key. This key is part of the Source object, which is part of the ConfigRule object.

Managed rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the SourceIdentifier key.

For any new rule that you add, specify the ConfigRuleName in the ConfigRule object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are generated by Config for new rules.

If you are updating a rule that you added previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or ConfigRuleArn in the ConfigRule data type that you use in this request.

For more information about developing and using Config rules, see Evaluating Amazon Web Services resource Configurations with Config in the Config Developer Guide.

" }, "PutConfigurationAggregator":{ "name":"PutConfigurationAggregator", @@ -999,7 +1043,7 @@ {"shape":"NoAvailableOrganizationException"}, {"shape":"OrganizationAllFeaturesNotEnabledException"} ], - "documentation":"

Creates and updates the configuration aggregator with the selected source accounts and regions. The source account can be individual account(s) or an organization.

accountIds that are passed will be replaced with existing accounts. If you want to add additional accounts into the aggregator, call DescribeConfigurationAggregators to get the previous accounts and then append new ones.

Config should be enabled in source accounts and regions you want to aggregate.

If your source type is an organization, you must be signed in to the management account or a registered delegated administrator and all the features must be enabled in your organization. If the caller is a management account, Config calls EnableAwsServiceAccess API to enable integration between Config and Organizations. If the caller is a registered delegated administrator, Config calls ListDelegatedAdministrators API to verify whether the caller is a valid delegated administrator.

To register a delegated administrator, see Register a Delegated Administrator in the Config developer guide.

" + "documentation":"

Creates and updates the configuration aggregator with the selected source accounts and regions. The source account can be individual account(s) or an organization.

accountIds that are passed will be replaced with existing accounts. If you want to add additional accounts into the aggregator, call DescribeConfigurationAggregators to get the previous accounts and then append new ones.

Config should be enabled in source accounts and regions you want to aggregate.

If your source type is an organization, you must be signed in to the management account or a registered delegated administrator and all the features must be enabled in your organization. If the caller is a management account, Config calls EnableAwsServiceAccess API to enable integration between Config and Organizations. If the caller is a registered delegated administrator, Config calls ListDelegatedAdministrators API to verify whether the caller is a valid delegated administrator.

To register a delegated administrator, see Register a Delegated Administrator in the Config developer guide.

" }, "PutConfigurationRecorder":{ "name":"PutConfigurationRecorder", @@ -1031,7 +1075,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"MaxNumberOfConformancePacksExceededException"} ], - "documentation":"

Creates or updates a conformance pack. A conformance pack is a collection of Config rules that can be easily deployed in an account and a region and across Amazon Web Services Organization.

This API creates a service linked role AWSServiceRoleForConfigConforms in your account. The service linked role is created only when the role does not exist in your account.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

" + "documentation":"

Creates or updates a conformance pack. A conformance pack is a collection of Config rules that can be easily deployed in an account and a region and across an organization. For information on how many conformance packs you can have per account, see Service Limits in the Config Developer Guide.

This API creates a service-linked role AWSServiceRoleForConfigConforms in your account. The service-linked role is created only when the role does not exist in your account.

You must specify only one of the follow parameters: TemplateS3Uri, TemplateBody or TemplateSSMDocumentDetails.

" }, "PutDeliveryChannel":{ "name":"PutDeliveryChannel", @@ -1099,7 +1143,7 @@ {"shape":"OrganizationAllFeaturesNotEnabledException"}, {"shape":"InsufficientPermissionsException"} ], - "documentation":"

Adds or updates organization Config rule for your entire organization evaluating whether your Amazon Web Services resources comply with your desired configurations.

Only a master account and a delegated administrator can create or update an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

This API enables organization service access through the EnableAWSServiceAccess action and creates a service linked role AWSServiceRoleForConfigMultiAccountSetup in the master or delegated administrator account of your organization. The service linked role is created only when the role does not exist in the caller account. Config verifies the existence of role with GetRole action.

To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegated-administrator for config-multiaccountsetup.amazonaws.com.

You can use this action to create both Config custom rules and Config managed rules. If you are adding a new Config custom rule, you must first create Lambda function in the master account or a delegated administrator that the rule invokes to evaluate your resources. You also need to create an IAM role in the managed-account that can be assumed by the Lambda function. When you use the PutOrganizationConfigRule action to add the rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function. If you are adding an Config managed rule, specify the rule's identifier for the RuleIdentifier key.

The maximum number of organization Config rules that Config supports is 150 and 3 delegated administrator per organization.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

Specify either OrganizationCustomRuleMetadata or OrganizationManagedRuleMetadata.

" + "documentation":"

Adds or updates an Config rule for your entire organization to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many organization Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a management account and a delegated administrator can create or update an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

This API enables organization service access through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. Config verifies the existence of role with GetRole action.

To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegated-administrator for config-multiaccountsetup.amazonaws.com.

There are two types of rules: Config Custom Rules and Config Managed Rules. You can use PutOrganizationConfigRule to create both Config custom rules and Config managed rules.

Custom rules are rules that you can create using either Guard or Lambda functions. Guard (Guard GitHub Repository) is a policy-as-code language that allows you to write policies that are enforced by Config Custom Policy rules. Lambda uses custom code that you upload to evaluate a custom rule. If you are adding a new Custom Lambda rule, you first need to create an Lambda function in the management account or a delegated administrator that the rule invokes to evaluate your resources. You also need to create an IAM role in the managed account that can be assumed by the Lambda function. When you use PutOrganizationConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function.

Managed rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the RuleIdentifier key.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

Make sure to specify one of either OrganizationCustomPolicyRuleMetadata for Custom Policy rules, OrganizationCustomRuleMetadata for Custom Lambda rules, or OrganizationManagedRuleMetadata for managed rules.

" }, "PutOrganizationConformancePack":{ "name":"PutOrganizationConformancePack", @@ -1119,7 +1163,7 @@ {"shape":"OrganizationAllFeaturesNotEnabledException"}, {"shape":"NoAvailableOrganizationException"} ], - "documentation":"

Deploys conformance packs across member accounts in an Amazon Web Services Organization.

Only a master account and a delegated administrator can call this API. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

This API enables organization service access for config-multiaccountsetup.amazonaws.com through the EnableAWSServiceAccess action and creates a service linked role AWSServiceRoleForConfigMultiAccountSetup in the master or delegated administrator account of your organization. The service linked role is created only when the role does not exist in the caller account. To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegate-admin for config-multiaccountsetup.amazonaws.com.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created or updated. You cannot update a conformance pack while it is in this state.

You can create 50 conformance packs with 25 Config rules in each pack and 3 delegated administrator per organization.

" + "documentation":"

Deploys conformance packs across member accounts in an Amazon Web Services Organization. For information on how many organization conformance packs and how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a management account and a delegated administrator can call this API. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

This API enables organization service access for config-multiaccountsetup.amazonaws.com through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegate-admin for config-multiaccountsetup.amazonaws.com.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created or updated. You cannot update a conformance pack while it is in this state.

" }, "PutRemediationConfigurations":{ "name":"PutRemediationConfigurations", @@ -1133,7 +1177,7 @@ {"shape":"InsufficientPermissionsException"}, {"shape":"InvalidParameterValueException"} ], - "documentation":"

Adds or updates the remediation configuration with a specific Config rule with the selected target or action. The API creates the RemediationConfiguration object for the Config rule. The Config rule must already exist for you to add a remediation configuration. The target (SSM document) must exist and have permissions to use the target.

If you make backward incompatible changes to the SSM document, you must call this again to ensure the remediations can run.

This API does not support adding remediation configurations for service-linked Config Rules such as Organization Config rules, the rules deployed by conformance packs, and rules deployed by Amazon Web Services Security Hub.

" + "documentation":"

Adds or updates the remediation configuration with a specific Config rule with the selected target or action. The API creates the RemediationConfiguration object for the Config rule. The Config rule must already exist for you to add a remediation configuration. The target (SSM document) must exist and have permissions to use the target.

If you make backward incompatible changes to the SSM document, you must call this again to ensure the remediations can run.

This API does not support adding remediation configurations for service-linked Config Rules such as Organization Config rules, the rules deployed by conformance packs, and rules deployed by Amazon Web Services Security Hub.

For manual remediation configuration, you need to provide a value for automationAssumeRole or use a value in the assumeRolefield to remediate your resources. The SSM automation document can use either as long as it maps to a valid parameter.

However, for automatic remediation configuration, the only valid assumeRole field value is AutomationAssumeRole and you need to provide a value for AutomationAssumeRole to remediate your resources.

" }, "PutRemediationExceptions":{ "name":"PutRemediationExceptions", @@ -1147,7 +1191,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"InsufficientPermissionsException"} ], - "documentation":"

A remediation exception is when a specific resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specific resource with a specific Config rule.

Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

" + "documentation":"

A remediation exception is when a specific resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specific resource with a specific Config rule.

Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

To place an exception on an Amazon Web Services resource, ensure remediation is set as manual remediation.

" }, "PutResourceConfig":{ "name":"PutResourceConfig", @@ -1222,7 +1266,7 @@ {"shape":"InvalidLimitException"}, {"shape":"InvalidNextTokenException"} ], - "documentation":"

Accepts a structured query language (SQL) SELECT command, performs the corresponding search, and returns resource configurations matching the properties.

For more information about query components, see the Query Components section in the Config Developer Guide.

" + "documentation":"

Accepts a structured query language (SQL) SELECT command, performs the corresponding search, and returns resource configurations matching the properties.

For more information about query components, see the Query Components section in the Config Developer Guide.

" }, "StartConfigRulesEvaluation":{ "name":"StartConfigRulesEvaluation", @@ -1268,6 +1312,20 @@ ], "documentation":"

Runs an on-demand remediation for the specified Config rules against the last known remediation configuration. It runs an execution against the current state of your resources. Remediation execution is asynchronous.

You can specify up to 100 resource keys per request. An existing StartRemediationExecution call for the specified resource keys must complete before you can call the API again.

" }, + "StartResourceEvaluation":{ + "name":"StartResourceEvaluation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartResourceEvaluationRequest"}, + "output":{"shape":"StartResourceEvaluationResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"IdempotentParameterMismatch"} + ], + "documentation":"

Runs an on-demand evaluation for the specified resource to determine whether the resource details will comply with configured Config rules. You can also use it for evaluation purposes. Config recommends using an evaluation context. It runs an execution against the resource details with all of the Config rules in your account that match with the specified proactive mode and resource type.

Ensure you have the cloudformation:DescribeType role setup to validate the resource type schema.

" + }, "StopConfigurationRecorder":{ "name":"StopConfigurationRecorder", "http":{ @@ -1836,6 +1894,11 @@ "Forward" ] }, + "ClientToken":{ + "type":"string", + "max":256, + "min":64 + }, "Compliance":{ "type":"structure", "members":{ @@ -1910,6 +1973,7 @@ "max":100, "min":0 }, + "ComplianceScore":{"type":"string"}, "ComplianceSummariesByResourceType":{ "type":"list", "member":{"shape":"ComplianceSummaryByResourceType"} @@ -2017,7 +2081,7 @@ }, "Source":{ "shape":"Source", - "documentation":"

Provides the rule owner (Amazon Web Services or customer), the rule identifier, and the notifications that cause the function to evaluate your Amazon Web Services resources.

" + "documentation":"

Provides the rule owner (Amazon Web Services for managed rules, CUSTOM_POLICY for Custom Policy rules, and CUSTOM_LAMBDA for Custom Lambda rules), the rule identifier, and the notifications that cause the function to evaluate your Amazon Web Services resources.

" }, "InputParameters":{ "shape":"StringWithCharLimit1024", @@ -2025,7 +2089,7 @@ }, "MaximumExecutionFrequency":{ "shape":"MaximumExecutionFrequency", - "documentation":"

The maximum frequency with which Config runs evaluations for a rule. You can specify a value for MaximumExecutionFrequency when:

  • You are using an Config managed rule that is triggered at a periodic frequency.

  • Your custom rule is triggered when Config delivers the configuration snapshot. For more information, see ConfigSnapshotDeliveryProperties.

By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the MaximumExecutionFrequency parameter.

" + "documentation":"

The maximum frequency with which Config runs evaluations for a rule. You can specify a value for MaximumExecutionFrequency when:

  • This is for an Config managed rule that is triggered at a periodic frequency.

  • Your custom rule is triggered when Config delivers the configuration snapshot. For more information, see ConfigSnapshotDeliveryProperties.

By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the MaximumExecutionFrequency parameter.

" }, "ConfigRuleState":{ "shape":"ConfigRuleState", @@ -2033,10 +2097,14 @@ }, "CreatedBy":{ "shape":"StringWithCharLimit256", - "documentation":"

Service principal name of the service that created the rule.

The field is populated only if the service linked rule is created by a service. The field is empty if you create your own rule.

" + "documentation":"

Service principal name of the service that created the rule.

The field is populated only if the service-linked rule is created by a service. The field is empty if you create your own rule.

" + }, + "EvaluationModes":{ + "shape":"EvaluationModes", + "documentation":"

The modes the Config rule can be evaluated in. The valid values are distinct objects. By default, the value is Detective evaluation mode only.

" } }, - "documentation":"

An Config rule represents an Lambda function that you create for a custom rule or a predefined function for an Config managed rule. The function evaluates configuration items to assess whether your Amazon Web Services resources comply with your desired configurations. This function can run when Config detects a configuration change to an Amazon Web Services resource and at a periodic frequency that you choose (for example, every 24 hours).

You can use the Amazon Web Services CLI and Amazon Web Services SDKs if you want to create a rule that triggers evaluations for your resources when Config delivers the configuration snapshot. For more information, see ConfigSnapshotDeliveryProperties.

For more information about developing and using Config rules, see Evaluating Amazon Web Services resource Configurations with Config in the Config Developer Guide.

" + "documentation":"

Config rules evaluate the configuration settings of your Amazon Web Services resources. A rule can run when Config detects a configuration change to an Amazon Web Services resource or at a periodic frequency that you choose (for example, every 24 hours). There are two types of rules: Config Managed Rules and Config Custom Rules. Managed rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules.

Custom rules are rules that you can create using either Guard or Lambda functions. Guard (Guard GitHub Repository) is a policy-as-code language that allows you to write policies that are enforced by Config Custom Policy rules. Lambda uses custom code that you upload to evaluate a custom rule. It is invoked by events that are published to it by an event source, which Config invokes when the custom rule is initiated.

For more information about developing and using Config rules, see Evaluating Amazon Web Services resource Configurations with Config in the Config Developer Guide.

You can use the Amazon Web Services CLI and Amazon Web Services SDKs if you want to create a rule that triggers evaluations for your resources when Config delivers the configuration snapshot. For more information, see ConfigSnapshotDeliveryProperties.

" }, "ConfigRuleComplianceFilters":{ "type":"structure", @@ -2366,7 +2434,7 @@ }, "roleARN":{ "shape":"String", - "documentation":"

Amazon Resource Name (ARN) of the IAM role used to describe the Amazon Web Services resources associated with the account.

" + "documentation":"

Amazon Resource Name (ARN) of the IAM role used to describe the Amazon Web Services resources associated with the account.

While the API model does not require this field, the server will reject a request without a defined roleARN for the configuration recorder.

" }, "recordingGroup":{ "shape":"RecordingGroup", @@ -2451,6 +2519,39 @@ "max":5, "min":0 }, + "ConformancePackComplianceScore":{ + "type":"structure", + "members":{ + "Score":{ + "shape":"ComplianceScore", + "documentation":"

Compliance score for the conformance pack. Conformance packs with no evaluation results will have a compliance score of INSUFFICIENT_DATA.

" + }, + "ConformancePackName":{ + "shape":"ConformancePackName", + "documentation":"

The name of the conformance pack.

" + }, + "LastUpdatedTime":{ + "shape":"LastUpdatedTime", + "documentation":"

The time that the conformance pack compliance score was last updated.

" + } + }, + "documentation":"

A compliance score is the percentage of the number of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations in the conformance pack. This metric provides you with a high-level view of the compliance state of your conformance packs. You can use it to identify, investigate, and understand the level of compliance in your conformance packs.

" + }, + "ConformancePackComplianceScores":{ + "type":"list", + "member":{"shape":"ConformancePackComplianceScore"} + }, + "ConformancePackComplianceScoresFilters":{ + "type":"structure", + "required":["ConformancePackNames"], + "members":{ + "ConformancePackNames":{ + "shape":"ConformancePackNameFilter", + "documentation":"

The names of the conformance packs whose compliance scores you want to include in the conformance pack compliance score result set. You can include up to 25 conformance packs in the ConformancePackNames array of strings, each with a character limit of 256 characters for the conformance pack name.

" + } + }, + "documentation":"

A list of filters to apply to the conformance pack compliance score result set.

" + }, "ConformancePackComplianceSummary":{ "type":"structure", "required":[ @@ -2523,11 +2624,15 @@ }, "LastUpdateRequestedTime":{ "shape":"Date", - "documentation":"

Last time when conformation pack update was requested.

" + "documentation":"

The last time a conformation pack update was requested.

" }, "CreatedBy":{ "shape":"StringWithCharLimit256", - "documentation":"

Amazon Web Services service that created the conformance pack.

" + "documentation":"

The Amazon Web Services service that created the conformance pack.

" + }, + "TemplateSSMDocumentDetails":{ + "shape":"TemplateSSMDocumentDetails", + "documentation":"

An object that contains the name or Amazon Resource Name (ARN) of the Amazon Web Services Systems Manager document (SSM document) and the version of the SSM document that is used to create a conformance pack.

" } }, "documentation":"

Returns details of a conformance pack. A conformance pack is a collection of Config rules and remediation actions that can be easily deployed in an account and a region.

" @@ -2624,6 +2729,12 @@ "min":1, "pattern":"[a-zA-Z][-a-zA-Z0-9]*" }, + "ConformancePackNameFilter":{ + "type":"list", + "member":{"shape":"ConformancePackName"}, + "max":25, + "min":1 + }, "ConformancePackNamesList":{ "type":"list", "member":{"shape":"ConformancePackName"}, @@ -2737,7 +2848,7 @@ "type":"structure", "members":{ }, - "documentation":"

You have specified a template that is not valid or supported.

", + "documentation":"

You have specified a template that is invalid or supported.

", "exception":true }, "ControlsList":{ @@ -3021,7 +3132,7 @@ }, "s3BucketName":{ "shape":"String", - "documentation":"

The name of the Amazon S3 bucket to which Config delivers configuration snapshots and configuration history files.

If you specify a bucket that belongs to another Amazon Web Services account, that bucket must have policies that grant access permissions to Config. For more information, see Permissions for the Amazon S3 Bucket in the Config Developer Guide.

" + "documentation":"

The name of the Amazon S3 bucket to which Config delivers configuration snapshots and configuration history files.

If you specify a bucket that belongs to another Amazon Web Services account, that bucket must have policies that grant access permissions to Config. For more information, see Permissions for the Amazon S3 Bucket in the Config Developer Guide.

" }, "s3KeyPrefix":{ "shape":"String", @@ -3033,7 +3144,7 @@ }, "snsTopicARN":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon SNS topic to which Config sends notifications about configuration changes.

If you choose a topic from another account, the topic must have policies that grant access permissions to Config. For more information, see Permissions for the Amazon SNS Topic in the Config Developer Guide.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon SNS topic to which Config sends notifications about configuration changes.

If you choose a topic from another account, the topic must have policies that grant access permissions to Config. For more information, see Permissions for the Amazon SNS Topic in the Config Developer Guide.

" }, "configSnapshotDeliveryProperties":{ "shape":"ConfigSnapshotDeliveryProperties", @@ -3294,6 +3405,16 @@ }, "documentation":"

" }, + "DescribeConfigRulesFilters":{ + "type":"structure", + "members":{ + "EvaluationMode":{ + "shape":"EvaluationMode", + "documentation":"

The mode of an evaluation. The valid values are Detective or Proactive.

" + } + }, + "documentation":"

Returns a filtered list of Detective or Proactive Config rules. By default, if the filter is not defined, this API returns an unfiltered list.

" + }, "DescribeConfigRulesRequest":{ "type":"structure", "members":{ @@ -3304,6 +3425,10 @@ "NextToken":{ "shape":"String", "documentation":"

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

" + }, + "Filters":{ + "shape":"DescribeConfigRulesFilters", + "documentation":"

Returns a list of Detecive or Proactive Config rules. By default, this API returns an unfiltered list.

" } }, "documentation":"

" @@ -3884,6 +4009,42 @@ }, "documentation":"

Identifies an Amazon Web Services resource and indicates whether it complies with the Config rule that it was evaluated against.

" }, + "EvaluationContext":{ + "type":"structure", + "members":{ + "EvaluationContextIdentifier":{ + "shape":"EvaluationContextIdentifier", + "documentation":"

A unique EvaluationContextIdentifier ID for an EvaluationContext.

" + } + }, + "documentation":"

Use EvaluationContext to group independently initiated proactive resource evaluations. For example, CFN Stack. If you want to check just a resource definition, you do not need to provide evaluation context.

" + }, + "EvaluationContextIdentifier":{ + "type":"string", + "max":128, + "min":1 + }, + "EvaluationMode":{ + "type":"string", + "enum":[ + "DETECTIVE", + "PROACTIVE" + ] + }, + "EvaluationModeConfiguration":{ + "type":"structure", + "members":{ + "Mode":{ + "shape":"EvaluationMode", + "documentation":"

The mode of an evaluation. The valid values are Detective or Proactive.

" + } + }, + "documentation":"

The configuration object for Config rule evaluation mode. The Supported valid values are Detective or Proactive.

" + }, + "EvaluationModes":{ + "type":"list", + "member":{"shape":"EvaluationModeConfiguration"} + }, "EvaluationResult":{ "type":"structure", "members":{ @@ -3924,6 +4085,10 @@ "OrderingTimestamp":{ "shape":"Date", "documentation":"

The time of the event that triggered the evaluation of your Amazon Web Services resources. The time can indicate when Config delivered a configuration item change notification, or it can indicate when Config delivered the configuration snapshot, depending on which event triggered the evaluation.

" + }, + "ResourceEvaluationId":{ + "shape":"ResourceEvaluationId", + "documentation":"

A Unique ID for an evaluation result.

" } }, "documentation":"

Uniquely identifies an evaluation result.

" @@ -3942,6 +4107,10 @@ "ResourceId":{ "shape":"BaseResourceId", "documentation":"

The ID of the evaluated Amazon Web Services resource.

" + }, + "EvaluationMode":{ + "shape":"EvaluationMode", + "documentation":"

The mode of an evaluation. The valid values are Detective or Proactive.

" } }, "documentation":"

Identifies an Config rule that evaluated an Amazon Web Services resource, and provides the type and ID of the resource that the rule evaluated.

" @@ -3950,6 +4119,26 @@ "type":"list", "member":{"shape":"EvaluationResult"} }, + "EvaluationStatus":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{ + "shape":"ResourceEvaluationStatus", + "documentation":"

The status of an execution. The valid values are In_Progress, Succeeded or Failed.

" + }, + "FailureReason":{ + "shape":"StringWithCharLimit1024", + "documentation":"

An explanation for failed execution status.

" + } + }, + "documentation":"

Returns status details of an evaluation.

" + }, + "EvaluationTimeout":{ + "type":"integer", + "max":3600, + "min":0 + }, "Evaluations":{ "type":"list", "member":{"shape":"Evaluation"}, @@ -4333,10 +4522,6 @@ }, "GetComplianceDetailsByResourceRequest":{ "type":"structure", - "required":[ - "ResourceType", - "ResourceId" - ], "members":{ "ResourceType":{ "shape":"StringWithCharLimit256", @@ -4353,6 +4538,10 @@ "NextToken":{ "shape":"String", "documentation":"

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

" + }, + "ResourceEvaluationId":{ + "shape":"ResourceEvaluationId", + "documentation":"

The unique ID of Amazon Web Services resource execution for which you want to retrieve evaluation results.

You need to only provide either a ResourceEvaluationID or a ResourceID and ResourceType.

" } }, "documentation":"

" @@ -4670,6 +4859,49 @@ }, "documentation":"

The output for the GetResourceConfigHistory action.

" }, + "GetResourceEvaluationSummaryRequest":{ + "type":"structure", + "required":["ResourceEvaluationId"], + "members":{ + "ResourceEvaluationId":{ + "shape":"ResourceEvaluationId", + "documentation":"

The unique ResourceEvaluationId of Amazon Web Services resource execution for which you want to retrieve the evaluation summary.

" + } + } + }, + "GetResourceEvaluationSummaryResponse":{ + "type":"structure", + "members":{ + "ResourceEvaluationId":{ + "shape":"ResourceEvaluationId", + "documentation":"

The unique ResourceEvaluationId of Amazon Web Services resource execution for which you want to retrieve the evaluation summary.

" + }, + "EvaluationMode":{ + "shape":"EvaluationMode", + "documentation":"

Lists results of the mode that you requested to retrieve the resource evaluation summary. The valid values are Detective or Proactive.

" + }, + "EvaluationStatus":{ + "shape":"EvaluationStatus", + "documentation":"

Returns an EvaluationStatus object.

" + }, + "EvaluationStartTimestamp":{ + "shape":"Date", + "documentation":"

The start timestamp when Config rule starts evaluating compliance for the provided resource details.

" + }, + "Compliance":{ + "shape":"ComplianceType", + "documentation":"

The compliance status of the resource evaluation summary.

" + }, + "EvaluationContext":{ + "shape":"EvaluationContext", + "documentation":"

Returns an EvaluationContext object.

" + }, + "ResourceDetails":{ + "shape":"ResourceDetails", + "documentation":"

Returns a ResourceDetails object.

" + } + } + }, "GetStoredQueryRequest":{ "type":"structure", "required":["QueryName"], @@ -4716,6 +4948,14 @@ "type":"list", "member":{"shape":"GroupedResourceCount"} }, + "IdempotentParameterMismatch":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Using the same client token with one or more different parameters. Specify a new client token with the parameter changes and try again.

", + "exception":true + }, "IncludeGlobalResourceTypes":{"type":"boolean"}, "InsufficientDeliveryPolicyException":{ "type":"structure", @@ -4728,7 +4968,7 @@ "type":"structure", "members":{ }, - "documentation":"

Indicates one of the following errors:

  • For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions to perform the config:Put* action.

  • For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the function's permissions.

  • For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have permissions to call IAM GetRole action or create a service linked role.

  • For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because you do not have permissions:

    • To call IAM GetRole action or create a service linked role.

    • To read Amazon S3 bucket.

", + "documentation":"

Indicates one of the following errors:

  • For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions to perform the config:Put* action.

  • For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the function's permissions.

  • For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have permissions to call IAM GetRole action or create a service-linked role.

  • For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because you do not have the following permissions:

    • You do not have permission to call IAM GetRole action or create a service-linked role.

    • You do not have permission to read Amazon S3 bucket or call SSM:GetDocument.

", "exception":true }, "Integer":{"type":"integer"}, @@ -4743,7 +4983,7 @@ "type":"structure", "members":{ }, - "documentation":"

The specified delivery channel name is not valid.

", + "documentation":"

The specified delivery channel name is invalid.

", "exception":true }, "InvalidExpressionException":{ @@ -4799,14 +5039,14 @@ "type":"structure", "members":{ }, - "documentation":"

The specified Amazon S3 key prefix is not valid.

", + "documentation":"

The specified Amazon S3 key prefix is invalid.

", "exception":true }, "InvalidS3KmsKeyArnException":{ "type":"structure", "members":{ }, - "documentation":"

The specified Amazon KMS Key ARN is not valid.

", + "documentation":"

The specified Amazon KMS Key ARN is invalid.

", "exception":true }, "InvalidSNSTopicARNException":{ @@ -4820,7 +5060,7 @@ "type":"structure", "members":{ }, - "documentation":"

The specified time range is not valid. The earlier time is not chronologically before the later time.

", + "documentation":"

The specified time range is invalid. The earlier time is not chronologically before the later time.

", "exception":true }, "LastDeliveryChannelDeleteFailedException":{ @@ -4830,6 +5070,7 @@ "documentation":"

You cannot delete the delivery channel you specified because the configuration recorder is running.

", "exception":true }, + "LastUpdatedTime":{"type":"timestamp"}, "LaterTime":{"type":"timestamp"}, "Limit":{ "type":"integer", @@ -4885,6 +5126,45 @@ } } }, + "ListConformancePackComplianceScoresRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"ConformancePackComplianceScoresFilters", + "documentation":"

Filters the results based on the ConformancePackComplianceScoresFilters.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

Determines the order in which conformance pack compliance scores are sorted. Either in ascending or descending order.

By default, conformance pack compliance scores are sorted in alphabetical order by name of the conformance pack. Conformance pack compliance scores are sorted in reverse alphabetical order if you enter DESCENDING.

You can sort conformance pack compliance scores by the numerical value of the compliance score by entering SCORE in the SortBy action. When compliance scores are sorted by SCORE, conformance packs with a compliance score of INSUFFICIENT_DATA will be last when sorting by ascending order and first when sorting by descending order.

" + }, + "SortBy":{ + "shape":"SortBy", + "documentation":"

Sorts your conformance pack compliance scores in either ascending or descending order, depending on SortOrder.

By default, conformance pack compliance scores are sorted in alphabetical order by name of the conformance pack. Enter SCORE, to sort conformance pack compliance scores by the numerical value of the compliance score.

" + }, + "Limit":{ + "shape":"PageSizeLimit", + "documentation":"

The maximum number of conformance pack compliance scores returned on each page.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The nextToken string in a prior request that you can use to get the paginated response for next set of conformance pack compliance scores.

" + } + } + }, + "ListConformancePackComplianceScoresResponse":{ + "type":"structure", + "required":["ConformancePackComplianceScores"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

The nextToken string that you can use to get the next page of results in a paginated response.

" + }, + "ConformancePackComplianceScores":{ + "shape":"ConformancePackComplianceScores", + "documentation":"

A list of ConformancePackComplianceScore objects.

" + } + } + }, "ListDiscoveredResourcesRequest":{ "type":"structure", "required":["resourceType"], @@ -4930,6 +5210,41 @@ }, "documentation":"

" }, + "ListResourceEvaluationsPageItemLimit":{ + "type":"integer", + "max":100, + "min":0 + }, + "ListResourceEvaluationsRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"ResourceEvaluationFilters", + "documentation":"

Returns a ResourceEvaluationFilters object.

" + }, + "Limit":{ + "shape":"ListResourceEvaluationsPageItemLimit", + "documentation":"

The maximum number of evaluations returned on each page. The default is 10. You cannot specify a number greater than 100. If you specify 0, Config uses the default.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

" + } + } + }, + "ListResourceEvaluationsResponse":{ + "type":"structure", + "members":{ + "ResourceEvaluations":{ + "shape":"ResourceEvaluations", + "documentation":"

Returns a ResourceEvaluations object.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.

" + } + } + }, "ListStoredQueriesRequest":{ "type":"structure", "members":{ @@ -4994,7 +5309,7 @@ "type":"structure", "members":{ }, - "documentation":"

You have reached the limit (100,000) of active custom resource types in your account. Delete unused resources using DeleteResourceConfig.

", + "documentation":"

You have reached the limit of active custom resource types in your account. There is a limit of 100,000. Delete unused resources using DeleteResourceConfig .

", "exception":true }, "MaxNumberOfConfigRulesExceededException":{ @@ -5015,7 +5330,7 @@ "type":"structure", "members":{ }, - "documentation":"

You have reached the limit (6) of the number of conformance packs in an account (6 conformance pack with 25 Config rules per pack).

", + "documentation":"

You have reached the limit of the number of conformance packs you can create in an account. For more information, see Service Limits in the Config Developer Guide.

", "exception":true }, "MaxNumberOfDeliveryChannelsExceededException":{ @@ -5029,14 +5344,14 @@ "type":"structure", "members":{ }, - "documentation":"

You have reached the limit of the number of organization Config rules you can create.

", + "documentation":"

You have reached the limit of the number of organization Config rules you can create. For more information, see see Service Limits in the Config Developer Guide.

", "exception":true }, "MaxNumberOfOrganizationConformancePacksExceededException":{ "type":"structure", "members":{ }, - "documentation":"

You have reached the limit (6) of the number of organization conformance packs in an account (6 conformance pack with 25 Config rules per pack per account).

", + "documentation":"

You have reached the limit of the number of organization conformance packs you can create in an account. For more information, see Service Limits in the Config Developer Guide.

", "exception":true }, "MaxNumberOfRetentionConfigurationsExceededException":{ @@ -5088,7 +5403,7 @@ }, "MemberAccountRuleStatus":{ "shape":"MemberAccountRuleStatus", - "documentation":"

Indicates deployment status for Config rule in the member account. When master account calls PutOrganizationConfigRule action for the first time, Config rule status is created in the member account. When master account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in the member account. Config rule status is deleted when the master account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

  • CREATE_SUCCESSFUL when Config rule has been created in the member account.

  • CREATE_IN_PROGRESS when Config rule is being created in the member account.

  • CREATE_FAILED when Config rule creation has failed in the member account.

  • DELETE_FAILED when Config rule deletion has failed in the member account.

  • DELETE_IN_PROGRESS when Config rule is being deleted in the member account.

  • DELETE_SUCCESSFUL when Config rule has been deleted in the member account.

  • UPDATE_SUCCESSFUL when Config rule has been updated in the member account.

  • UPDATE_IN_PROGRESS when Config rule is being updated in the member account.

  • UPDATE_FAILED when Config rule deletion has failed in the member account.

" + "documentation":"

Indicates deployment status for Config rule in the member account. When management account calls PutOrganizationConfigRule action for the first time, Config rule status is created in the member account. When management account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in the member account. Config rule status is deleted when the management account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

  • CREATE_SUCCESSFUL when Config rule has been created in the member account.

  • CREATE_IN_PROGRESS when Config rule is being created in the member account.

  • CREATE_FAILED when Config rule creation has failed in the member account.

  • DELETE_FAILED when Config rule deletion has failed in the member account.

  • DELETE_IN_PROGRESS when Config rule is being deleted in the member account.

  • DELETE_SUCCESSFUL when Config rule has been deleted in the member account.

  • UPDATE_SUCCESSFUL when Config rule has been updated in the member account.

  • UPDATE_IN_PROGRESS when Config rule is being updated in the member account.

  • UPDATE_FAILED when Config rule deletion has failed in the member account.

" }, "ErrorCode":{ "shape":"String", @@ -5155,7 +5470,7 @@ "type":"structure", "members":{ }, - "documentation":"

The Config rule in the request is not valid. Verify that the rule is an Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", + "documentation":"

The Config rule in the request is invalid. Verify that the rule is an Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", "exception":true }, "NoSuchConfigRuleInConformancePackException":{ @@ -5197,7 +5512,7 @@ "type":"structure", "members":{ }, - "documentation":"

The Config rule in the request is not valid. Verify that the rule is an organization Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", + "documentation":"

The Config rule in the request is invalid. Verify that the rule is an organization Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", "exception":true }, "NoSuchOrganizationConformancePackException":{ @@ -5233,7 +5548,7 @@ "type":"structure", "members":{ }, - "documentation":"

For PutConfigurationAggregator API, you can see this exception for the following reasons:

  • No permission to call EnableAWSServiceAccess API

  • The configuration aggregator cannot be updated because your Amazon Web Services Organization management account or the delegated administrator role changed. Delete this aggregator and create a new one with the current Amazon Web Services Organization.

  • The configuration aggregator is associated with a previous Amazon Web Services Organization and Config cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a new one with the current Amazon Web Services Organization.

  • You are not a registered delegated administrator for Config with permissions to call ListDelegatedAdministrators API. Ensure that the management account registers delagated administrator for Config service principle name before the delegated administrator creates an aggregator.

For all OrganizationConfigRule and OrganizationConformancePack APIs, Config throws an exception if APIs are called from member accounts. All APIs must be called from organization master account.

", + "documentation":"

For PutConfigurationAggregator API, you can see this exception for the following reasons:

  • No permission to call EnableAWSServiceAccess API

  • The configuration aggregator cannot be updated because your Amazon Web Services Organization management account or the delegated administrator role changed. Delete this aggregator and create a new one with the current Amazon Web Services Organization.

  • The configuration aggregator is associated with a previous Amazon Web Services Organization and Config cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a new one with the current Amazon Web Services Organization.

  • You are not a registered delegated administrator for Config with permissions to call ListDelegatedAdministrators API. Ensure that the management account registers delagated administrator for Config service principle name before the delegated administrator creates an aggregator.

For all OrganizationConfigRule and OrganizationConformancePack APIs, Config throws an exception if APIs are called from member accounts. All APIs must be called from organization management account.

", "exception":true }, "OrganizationAggregationSource":{ @@ -5329,7 +5644,7 @@ }, "OrganizationRuleStatus":{ "shape":"OrganizationRuleStatus", - "documentation":"

Indicates deployment status of an organization Config rule. When master account calls PutOrganizationConfigRule action for the first time, Config rule status is created in all the member accounts. When master account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in all the member accounts. Additionally, Config rule status is updated when one or more member accounts join or leave an organization. Config rule status is deleted when the master account deletes OrganizationConfigRule in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

  • CREATE_SUCCESSFUL when an organization Config rule has been successfully created in all the member accounts.

  • CREATE_IN_PROGRESS when an organization Config rule creation is in progress.

  • CREATE_FAILED when an organization Config rule creation failed in one or more member accounts within that organization.

  • DELETE_FAILED when an organization Config rule deletion failed in one or more member accounts within that organization.

  • DELETE_IN_PROGRESS when an organization Config rule deletion is in progress.

  • DELETE_SUCCESSFUL when an organization Config rule has been successfully deleted from all the member accounts.

  • UPDATE_SUCCESSFUL when an organization Config rule has been successfully updated in all the member accounts.

  • UPDATE_IN_PROGRESS when an organization Config rule update is in progress.

  • UPDATE_FAILED when an organization Config rule update failed in one or more member accounts within that organization.

" + "documentation":"

Indicates deployment status of an organization Config rule. When management account calls PutOrganizationConfigRule action for the first time, Config rule status is created in all the member accounts. When management account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in all the member accounts. Additionally, Config rule status is updated when one or more member accounts join or leave an organization. Config rule status is deleted when the management account deletes OrganizationConfigRule in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

  • CREATE_SUCCESSFUL when an organization Config rule has been successfully created in all the member accounts.

  • CREATE_IN_PROGRESS when an organization Config rule creation is in progress.

  • CREATE_FAILED when an organization Config rule creation failed in one or more member accounts within that organization.

  • DELETE_FAILED when an organization Config rule deletion failed in one or more member accounts within that organization.

  • DELETE_IN_PROGRESS when an organization Config rule deletion is in progress.

  • DELETE_SUCCESSFUL when an organization Config rule has been successfully deleted from all the member accounts.

  • UPDATE_SUCCESSFUL when an organization Config rule has been successfully updated in all the member accounts.

  • UPDATE_IN_PROGRESS when an organization Config rule update is in progress.

  • UPDATE_FAILED when an organization Config rule update failed in one or more member accounts within that organization.

" }, "ErrorCode":{ "shape":"String", @@ -5434,7 +5749,7 @@ }, "Status":{ "shape":"OrganizationResourceDetailedStatus", - "documentation":"

Indicates deployment status for conformance pack in a member account. When master account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. When master account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. Conformance pack status is deleted when the master account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

  • CREATE_SUCCESSFUL when conformance pack has been created in the member account.

  • CREATE_IN_PROGRESS when conformance pack is being created in the member account.

  • CREATE_FAILED when conformance pack creation has failed in the member account.

  • DELETE_FAILED when conformance pack deletion has failed in the member account.

  • DELETE_IN_PROGRESS when conformance pack is being deleted in the member account.

  • DELETE_SUCCESSFUL when conformance pack has been deleted in the member account.

  • UPDATE_SUCCESSFUL when conformance pack has been updated in the member account.

  • UPDATE_IN_PROGRESS when conformance pack is being updated in the member account.

  • UPDATE_FAILED when conformance pack deletion has failed in the member account.

" + "documentation":"

Indicates deployment status for conformance pack in a member account. When management account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. When management account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. Conformance pack status is deleted when the management account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

  • CREATE_SUCCESSFUL when conformance pack has been created in the member account.

  • CREATE_IN_PROGRESS when conformance pack is being created in the member account.

  • CREATE_FAILED when conformance pack creation has failed in the member account.

  • DELETE_FAILED when conformance pack deletion has failed in the member account.

  • DELETE_IN_PROGRESS when conformance pack is being deleted in the member account.

  • DELETE_SUCCESSFUL when conformance pack has been deleted in the member account.

  • UPDATE_SUCCESSFUL when conformance pack has been updated in the member account.

  • UPDATE_IN_PROGRESS when conformance pack is being updated in the member account.

  • UPDATE_FAILED when conformance pack deletion has failed in the member account.

" }, "ErrorCode":{ "shape":"String", @@ -5480,7 +5795,7 @@ }, "Status":{ "shape":"OrganizationResourceStatus", - "documentation":"

Indicates deployment status of an organization conformance pack. When master account calls PutOrganizationConformancePack for the first time, conformance pack status is created in all the member accounts. When master account calls PutOrganizationConformancePack for the second time, conformance pack status is updated in all the member accounts. Additionally, conformance pack status is updated when one or more member accounts join or leave an organization. Conformance pack status is deleted when the master account deletes OrganizationConformancePack in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

  • CREATE_SUCCESSFUL when an organization conformance pack has been successfully created in all the member accounts.

  • CREATE_IN_PROGRESS when an organization conformance pack creation is in progress.

  • CREATE_FAILED when an organization conformance pack creation failed in one or more member accounts within that organization.

  • DELETE_FAILED when an organization conformance pack deletion failed in one or more member accounts within that organization.

  • DELETE_IN_PROGRESS when an organization conformance pack deletion is in progress.

  • DELETE_SUCCESSFUL when an organization conformance pack has been successfully deleted from all the member accounts.

  • UPDATE_SUCCESSFUL when an organization conformance pack has been successfully updated in all the member accounts.

  • UPDATE_IN_PROGRESS when an organization conformance pack update is in progress.

  • UPDATE_FAILED when an organization conformance pack update failed in one or more member accounts within that organization.

" + "documentation":"

Indicates deployment status of an organization conformance pack. When management account calls PutOrganizationConformancePack for the first time, conformance pack status is created in all the member accounts. When management account calls PutOrganizationConformancePack for the second time, conformance pack status is updated in all the member accounts. Additionally, conformance pack status is updated when one or more member accounts join or leave an organization. Conformance pack status is deleted when the management account deletes OrganizationConformancePack in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

  • CREATE_SUCCESSFUL when an organization conformance pack has been successfully created in all the member accounts.

  • CREATE_IN_PROGRESS when an organization conformance pack creation is in progress.

  • CREATE_FAILED when an organization conformance pack creation failed in one or more member accounts within that organization.

  • DELETE_FAILED when an organization conformance pack deletion failed in one or more member accounts within that organization.

  • DELETE_IN_PROGRESS when an organization conformance pack deletion is in progress.

  • DELETE_SUCCESSFUL when an organization conformance pack has been successfully deleted from all the member accounts.

  • UPDATE_SUCCESSFUL when an organization conformance pack has been successfully updated in all the member accounts.

  • UPDATE_IN_PROGRESS when an organization conformance pack update is in progress.

  • UPDATE_FAILED when an organization conformance pack update failed in one or more member accounts within that organization.

" }, "ErrorCode":{ "shape":"String", @@ -5505,7 +5820,7 @@ "type":"structure", "members":{ }, - "documentation":"

You have specified a template that is not valid or supported.

", + "documentation":"

You have specified a template that is invalid or supported.

", "exception":true }, "OrganizationConformancePacks":{ @@ -5676,7 +5991,7 @@ }, "MaximumExecutionFrequency":{ "shape":"MaximumExecutionFrequency", - "documentation":"

The maximum frequency with which Config runs evaluations for a rule. You are using an Config managed rule that is triggered at a periodic frequency.

By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the MaximumExecutionFrequency parameter.

" + "documentation":"

The maximum frequency with which Config runs evaluations for a rule. This is for an Config managed rule that is triggered at a periodic frequency.

By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the MaximumExecutionFrequency parameter.

" }, "ResourceTypesScope":{ "shape":"ResourceTypesScope", @@ -5720,7 +6035,7 @@ }, "Status":{ "shape":"OrganizationResourceDetailedStatus", - "documentation":"

Indicates deployment status for conformance pack in a member account. When master account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. When master account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. Conformance pack status is deleted when the master account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

  • CREATE_SUCCESSFUL when conformance pack has been created in the member account.

  • CREATE_IN_PROGRESS when conformance pack is being created in the member account.

  • CREATE_FAILED when conformance pack creation has failed in the member account.

  • DELETE_FAILED when conformance pack deletion has failed in the member account.

  • DELETE_IN_PROGRESS when conformance pack is being deleted in the member account.

  • DELETE_SUCCESSFUL when conformance pack has been deleted in the member account.

  • UPDATE_SUCCESSFUL when conformance pack has been updated in the member account.

  • UPDATE_IN_PROGRESS when conformance pack is being updated in the member account.

  • UPDATE_FAILED when conformance pack deletion has failed in the member account.

" + "documentation":"

Indicates deployment status for conformance pack in a member account. When management account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. When management account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. Conformance pack status is deleted when the management account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

  • CREATE_SUCCESSFUL when conformance pack has been created in the member account.

  • CREATE_IN_PROGRESS when conformance pack is being created in the member account.

  • CREATE_FAILED when conformance pack creation has failed in the member account.

  • DELETE_FAILED when conformance pack deletion has failed in the member account.

  • DELETE_IN_PROGRESS when conformance pack is being deleted in the member account.

  • DELETE_SUCCESSFUL when conformance pack has been deleted in the member account.

  • UPDATE_SUCCESSFUL when conformance pack has been updated in the member account.

  • UPDATE_IN_PROGRESS when conformance pack is being updated in the member account.

  • UPDATE_FAILED when conformance pack deletion has failed in the member account.

" } }, "documentation":"

Status filter object to filter results based on specific member account ID or status type for an organization conformance pack.

" @@ -5910,15 +6225,15 @@ "members":{ "ConformancePackName":{ "shape":"ConformancePackName", - "documentation":"

Name of the conformance pack you want to create.

" + "documentation":"

The unique name of the conformance pack you want to deploy.

" }, "TemplateS3Uri":{ "shape":"TemplateS3Uri", - "documentation":"

Location of file containing the template body (s3://bucketname/prefix). The uri must point to the conformance pack template (max size: 300 KB) that is located in an Amazon S3 bucket in the same region as the conformance pack.

You must have access to read Amazon S3 bucket.

" + "documentation":"

The location of the file containing the template body (s3://bucketname/prefix). The uri must point to a conformance pack template (max size: 300 KB) that is located in an Amazon S3 bucket in the same Region as the conformance pack.

You must have access to read Amazon S3 bucket.

" }, "TemplateBody":{ "shape":"TemplateBody", - "documentation":"

A string containing full conformance pack template body. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

You can only use a YAML template with two resource types: Config rule (AWS::Config::ConfigRule) and a remediation action (AWS::Config::RemediationConfiguration).

" + "documentation":"

A string containing the full conformance pack template body. The structure containing the template body has a minimum length of 1 byte and a maximum length of 51,200 bytes.

You can use a YAML template with two resource types: Config rule (AWS::Config::ConfigRule) and remediation action (AWS::Config::RemediationConfiguration).

" }, "DeliveryS3Bucket":{ "shape":"DeliveryS3Bucket", @@ -5931,6 +6246,10 @@ "ConformancePackInputParameters":{ "shape":"ConformancePackInputParameters", "documentation":"

A list of ConformancePackInputParameter objects.

" + }, + "TemplateSSMDocumentDetails":{ + "shape":"TemplateSSMDocumentDetails", + "documentation":"

An object of type TemplateSSMDocumentDetails, which contains the name or the Amazon Resource Name (ARN) of the Amazon Web Services Systems Manager document (SSM document) and the version of the SSM document that is used to create a conformance pack.

" } } }, @@ -6015,11 +6334,11 @@ }, "OrganizationManagedRuleMetadata":{ "shape":"OrganizationManagedRuleMetadata", - "documentation":"

An OrganizationManagedRuleMetadata object.

" + "documentation":"

An OrganizationManagedRuleMetadata object. This object specifies organization managed rule metadata such as resource type and ID of Amazon Web Services resource along with the rule identifier. It also provides the frequency with which you want Config to run evaluations for the rule if the trigger type is periodic.

" }, "OrganizationCustomRuleMetadata":{ "shape":"OrganizationCustomRuleMetadata", - "documentation":"

An OrganizationCustomRuleMetadata object.

" + "documentation":"

An OrganizationCustomRuleMetadata object. This object specifies organization custom rule metadata such as resource type, resource ID of Amazon Web Services resource, Lambda function ARN, and organization trigger types that trigger Config to evaluate your Amazon Web Services resources against a rule. It also provides the frequency with which you want Config to run evaluations for the rule if the trigger type is periodic.

" }, "ExcludedAccounts":{ "shape":"ExcludedAccounts", @@ -6027,7 +6346,7 @@ }, "OrganizationCustomPolicyRuleMetadata":{ "shape":"OrganizationCustomPolicyRuleMetadata", - "documentation":"

An object that specifies metadata for your organization's Config Custom Policy rule. The metadata includes the runtime system in use, which accounts have debug logging enabled, and other custom rule metadata, such as resource type, resource ID of Amazon Web Services resource, and organization trigger types that initiate Config to evaluate Amazon Web Services resources against a rule.

" + "documentation":"

An OrganizationCustomPolicyRuleMetadata object. This object specifies metadata for your organization's Config Custom Policy rule. The metadata includes the runtime system in use, which accounts have debug logging enabled, and other custom rule metadata, such as resource type, resource ID of Amazon Web Services resource, and organization trigger types that initiate Config to evaluate Amazon Web Services resources against a rule.

" } } }, @@ -6167,7 +6486,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

Tags associated with the resource.

" + "documentation":"

Tags associated with the resource.

This field is not to be confused with the Amazon Web Services-wide tag feature for Amazon Web Services resources. Tags for PutResourceConfig are tags that you supply for the configuration items of your custom resources.

" } } }, @@ -6282,7 +6601,7 @@ "documentation":"

A comma-separated list that specifies the types of Amazon Web Services resources for which Config records configuration changes (for example, AWS::EC2::Instance or AWS::CloudTrail::Trail).

To record all configuration changes, you must set the allSupported option to true.

If you set this option to false, when Config adds support for a new type of resource, it will not record resources of that type unless you manually add that type to your recording group.

For a list of valid resourceTypes values, see the resourceType Value column in Supported Amazon Web Services resource Types.

" } }, - "documentation":"

Specifies the types of Amazon Web Services resource for which Config records configuration changes.

In the recording group, you specify whether all supported types or specific types of resources are recorded.

By default, Config records configuration changes for all supported types of regional resources that Config discovers in the region in which it is running. Regional resources are tied to a region and can be used only in that region. Examples of regional resources are EC2 instances and EBS volumes.

You can also have Config record configuration changes for supported types of global resources (for example, IAM resources). Global resources are not tied to an individual region and can be used in all regions.

The configuration details for any global resource are the same in all regions. If you customize Config in multiple regions to record global resources, it will create multiple configuration items each time a global resource changes: one configuration item for each region. These configuration items will contain identical data. To prevent duplicate configuration items, you should consider customizing Config in only one region to record global resources, unless you want the configuration items to be available in multiple regions.

If you don't want Config to record all resources, you can specify which types of resources it will record with the resourceTypes parameter.

For a list of supported resource types, see Supported Resource Types.

For more information, see Selecting Which Resources Config Records.

" + "documentation":"

Specifies which Amazon Web Services resource types Config records for configuration changes. In the recording group, you specify whether you want to record all supported resource types or only specific types of resources.

By default, Config records the configuration changes for all supported types of regional resources that Config discovers in the region in which it is running. Regional resources are tied to a region and can be used only in that region. Examples of regional resources are EC2 instances and EBS volumes.

You can also have Config record supported types of global resources. Global resources are not tied to a specific region and can be used in all regions. The global resource types that Config supports include IAM users, groups, roles, and customer managed policies.

Global resource types onboarded to Config recording after February 2022 will only be recorded in the service's home region for the commercial partition and Amazon Web Services GovCloud (US) West for the GovCloud partition. You can view the Configuration Items for these new global resource types only in their home region and Amazon Web Services GovCloud (US) West.

Supported global resource types onboarded before February 2022 such as AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User remain unchanged, and they will continue to deliver Configuration Items in all supported regions in Config. The change will only affect new global resource types onboarded after February 2022.

To record global resource types onboarded after February 2022, enable All Supported Resource Types in the home region of the global resource type you want to record.

If you don't want Config to record all resources, you can specify which types of resources it will record with the resourceTypes parameter.

For a list of supported resource types, see Supported Resource Types.

For more information and a table of the Home Regions for Global Resource Types Onboarded after February 2022, see Selecting Which Resources Config Records.

" }, "ReevaluateConfigRuleNames":{ "type":"list", @@ -6376,7 +6695,7 @@ }, "CreatedByService":{ "shape":"StringWithCharLimit1024", - "documentation":"

Name of the service that owns the service linked rule, if applicable.

" + "documentation":"

Name of the service that owns the service-linked rule, if applicable.

" } }, "documentation":"

An object that represents the details about the remediation configuration that includes the remediation action, parameters, and data to execute the action.

" @@ -6558,6 +6877,15 @@ "documentation":"

Two users are trying to modify the same query at the same time. Wait for a moment and try again.

", "exception":true }, + "ResourceConfiguration":{ + "type":"string", + "max":51200, + "min":1 + }, + "ResourceConfigurationSchemaType":{ + "type":"string", + "enum":["CFN_RESOURCE_SCHEMA"] + }, "ResourceCount":{ "type":"structure", "members":{ @@ -6604,6 +6932,86 @@ }, "ResourceCreationTime":{"type":"timestamp"}, "ResourceDeletionTime":{"type":"timestamp"}, + "ResourceDetails":{ + "type":"structure", + "required":[ + "ResourceId", + "ResourceType", + "ResourceConfiguration" + ], + "members":{ + "ResourceId":{ + "shape":"BaseResourceId", + "documentation":"

A unique resource ID for an evaluation.

" + }, + "ResourceType":{ + "shape":"StringWithCharLimit256", + "documentation":"

The type of resource being evaluated.

" + }, + "ResourceConfiguration":{ + "shape":"ResourceConfiguration", + "documentation":"

The resource definition to be evaluated as per the resource configuration schema type.

" + }, + "ResourceConfigurationSchemaType":{ + "shape":"ResourceConfigurationSchemaType", + "documentation":"

The schema type of the resource configuration.

" + } + }, + "documentation":"

Returns information about the resource being evaluated.

" + }, + "ResourceEvaluation":{ + "type":"structure", + "members":{ + "ResourceEvaluationId":{ + "shape":"ResourceEvaluationId", + "documentation":"

The ResourceEvaluationId of a evaluation.

" + }, + "EvaluationMode":{ + "shape":"EvaluationMode", + "documentation":"

The mode of an evaluation. The valid values are Detective or Proactive.

" + }, + "EvaluationStartTimestamp":{ + "shape":"Date", + "documentation":"

The starting time of an execution.

" + } + }, + "documentation":"

Returns details of a resource evaluation.

" + }, + "ResourceEvaluationFilters":{ + "type":"structure", + "members":{ + "EvaluationMode":{ + "shape":"EvaluationMode", + "documentation":"

Filters all resource evaluations results based on an evaluation mode. the valid value for this API is Proactive.

" + }, + "TimeWindow":{ + "shape":"TimeWindow", + "documentation":"

Returns a TimeWindow object.

" + }, + "EvaluationContextIdentifier":{ + "shape":"EvaluationContextIdentifier", + "documentation":"

Filters evaluations for a given infrastructure deployment. For example: CFN Stack.

" + } + }, + "documentation":"

Returns details of a resource evaluation based on the selected filter.

" + }, + "ResourceEvaluationId":{ + "type":"string", + "max":128, + "min":1 + }, + "ResourceEvaluationStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "FAILED", + "SUCCEEDED" + ] + }, + "ResourceEvaluations":{ + "type":"list", + "member":{"shape":"ResourceEvaluation"} + }, "ResourceFilters":{ "type":"structure", "members":{ @@ -6835,7 +7243,51 @@ "AWS::ECR::PublicRepository", "AWS::GuardDuty::Detector", "AWS::EMR::SecurityConfiguration", - "AWS::SageMaker::CodeRepository" + "AWS::SageMaker::CodeRepository", + "AWS::Route53Resolver::ResolverEndpoint", + "AWS::Route53Resolver::ResolverRule", + "AWS::Route53Resolver::ResolverRuleAssociation", + "AWS::DMS::ReplicationSubnetGroup", + "AWS::DMS::EventSubscription", + "AWS::MSK::Cluster", + "AWS::StepFunctions::Activity", + "AWS::WorkSpaces::Workspace", + "AWS::WorkSpaces::ConnectionAlias", + "AWS::SageMaker::Model", + "AWS::ElasticLoadBalancingV2::Listener", + "AWS::StepFunctions::StateMachine", + "AWS::Batch::JobQueue", + "AWS::Batch::ComputeEnvironment", + "AWS::AccessAnalyzer::Analyzer", + "AWS::Athena::WorkGroup", + "AWS::Athena::DataCatalog", + "AWS::Detective::Graph", + "AWS::GlobalAccelerator::Accelerator", + "AWS::GlobalAccelerator::EndpointGroup", + "AWS::GlobalAccelerator::Listener", + "AWS::EC2::TransitGatewayAttachment", + "AWS::EC2::TransitGatewayRouteTable", + "AWS::DMS::Certificate", + "AWS::AppConfig::Application", + "AWS::AppSync::GraphQLApi", + "AWS::DataSync::LocationSMB", + "AWS::DataSync::LocationFSxLustre", + "AWS::DataSync::LocationS3", + "AWS::DataSync::LocationEFS", + "AWS::DataSync::Task", + "AWS::DataSync::LocationNFS", + "AWS::EC2::NetworkInsightsAccessScopeAnalysis", + "AWS::EKS::FargateProfile", + "AWS::Glue::Job", + "AWS::GuardDuty::ThreatIntelSet", + "AWS::GuardDuty::IPSet", + "AWS::SageMaker::Workteam", + "AWS::SageMaker::NotebookInstanceLifecycleConfig", + "AWS::ServiceDiscovery::Service", + "AWS::ServiceDiscovery::PublicDnsNamespace", + "AWS::SES::ContactList", + "AWS::SES::ConfigurationSet", + "AWS::Route53::HostedZone" ] }, "ResourceTypeList":{ @@ -6922,6 +7374,14 @@ "max":50, "min":0 }, + "SSMDocumentName":{ + "type":"string", + "pattern":"^[a-zA-Z0-9_\\-.:/]{3,200}$" + }, + "SSMDocumentVersion":{ + "type":"string", + "pattern":"([$]LATEST|[$]DEFAULT|^[1-9][0-9]*$)" + }, "SchemaVersionId":{ "type":"string", "max":128, @@ -7028,13 +7488,24 @@ } } }, + "SortBy":{ + "type":"string", + "enum":["SCORE"] + }, + "SortOrder":{ + "type":"string", + "enum":[ + "ASCENDING", + "DESCENDING" + ] + }, "Source":{ "type":"structure", "required":["Owner"], "members":{ "Owner":{ "shape":"Owner", - "documentation":"

Indicates whether Amazon Web Services or the customer owns and manages the Config rule.

Config Managed Rules are predefined rules owned by Amazon Web Services. For more information, see Config Managed Rules in the Config developer guide.

Config Custom Rules are rules that you can develop either with Guard (CUSTOM_POLICY) or Lambda (CUSTOM_LAMBDA). For more information, see Config Custom Rules in the Config developer guide.

" + "documentation":"

Indicates whether Amazon Web Services or the customer owns and manages the Config rule.

Config Managed Rules are predefined rules owned by Amazon Web Services. For more information, see Config Managed Rules in the Config developer guide.

Config Custom Rules are rules that you can develop either with Guard (CUSTOM_POLICY) or Lambda (CUSTOM_LAMBDA). For more information, see Config Custom Rules in the Config developer guide.

" }, "SourceIdentifier":{ "shape":"StringWithCharLimit256", @@ -7049,7 +7520,7 @@ "documentation":"

Provides the runtime system, policy definition, and whether debug logging is enabled. Required when owner is set to CUSTOM_POLICY.

" } }, - "documentation":"

Provides the CustomPolicyDetails, the rule owner (Amazon Web Services or customer), the rule identifier, and the events that cause the evaluation of your Amazon Web Services resources.

" + "documentation":"

Provides the CustomPolicyDetails, the rule owner (Amazon Web Services for managed rules, CUSTOM_POLICY for Custom Policy rules, and CUSTOM_LAMBDA for Custom Lambda rules), the rule identifier, and the events that cause the evaluation of your Amazon Web Services resources.

" }, "SourceDetail":{ "type":"structure", @@ -7151,6 +7622,44 @@ } } }, + "StartResourceEvaluationRequest":{ + "type":"structure", + "required":[ + "ResourceDetails", + "EvaluationMode" + ], + "members":{ + "ResourceDetails":{ + "shape":"ResourceDetails", + "documentation":"

Returns a ResourceDetails object.

" + }, + "EvaluationContext":{ + "shape":"EvaluationContext", + "documentation":"

Returns an EvaluationContext object.

" + }, + "EvaluationMode":{ + "shape":"EvaluationMode", + "documentation":"

The mode of an evaluation. The valid value for this API is Proactive.

" + }, + "EvaluationTimeout":{ + "shape":"EvaluationTimeout", + "documentation":"

The timeout for an evaluation. The default is 900 seconds. You cannot specify a number greater than 3600. If you specify 0, Config uses the default.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

A client token is a unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request using one of these actions, specify a client token in the request.

Avoid reusing the same client token for other API requests. If you retry a request that completed successfully using the same client token and the same parameters, the retry succeeds without performing any further actions. If you retry a successful request using the same client token, but one or more of the parameters are different, other than the Region or Availability Zone, the retry fails with an IdempotentParameterMismatch error.

" + } + } + }, + "StartResourceEvaluationResponse":{ + "type":"structure", + "members":{ + "ResourceEvaluationId":{ + "shape":"ResourceEvaluationId", + "documentation":"

A unique ResourceEvaluationId that is associated with a single execution.

" + } + } + }, "StaticParameterValues":{ "type":"list", "member":{"shape":"StringWithCharLimit256"}, @@ -7177,7 +7686,7 @@ }, "MemberAccountRuleStatus":{ "shape":"MemberAccountRuleStatus", - "documentation":"

Indicates deployment status for Config rule in the member account. When master account calls PutOrganizationConfigRule action for the first time, Config rule status is created in the member account. When master account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in the member account. Config rule status is deleted when the master account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

  • CREATE_SUCCESSFUL when Config rule has been created in the member account.

  • CREATE_IN_PROGRESS when Config rule is being created in the member account.

  • CREATE_FAILED when Config rule creation has failed in the member account.

  • DELETE_FAILED when Config rule deletion has failed in the member account.

  • DELETE_IN_PROGRESS when Config rule is being deleted in the member account.

  • DELETE_SUCCESSFUL when Config rule has been deleted in the member account.

  • UPDATE_SUCCESSFUL when Config rule has been updated in the member account.

  • UPDATE_IN_PROGRESS when Config rule is being updated in the member account.

  • UPDATE_FAILED when Config rule deletion has failed in the member account.

" + "documentation":"

Indicates deployment status for Config rule in the member account. When management account calls PutOrganizationConfigRule action for the first time, Config rule status is created in the member account. When management account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in the member account. Config rule status is deleted when the management account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

  • CREATE_SUCCESSFUL when Config rule has been created in the member account.

  • CREATE_IN_PROGRESS when Config rule is being created in the member account.

  • CREATE_FAILED when Config rule creation has failed in the member account.

  • DELETE_FAILED when Config rule deletion has failed in the member account.

  • DELETE_IN_PROGRESS when Config rule is being deleted in the member account.

  • DELETE_SUCCESSFUL when Config rule has been deleted in the member account.

  • UPDATE_SUCCESSFUL when Config rule has been updated in the member account.

  • UPDATE_IN_PROGRESS when Config rule is being updated in the member account.

  • UPDATE_FAILED when Config rule deletion has failed in the member account.

" } }, "documentation":"

Status filter object to filter results based on specific member account ID or status type for an organization Config rule.

" @@ -7373,11 +7882,40 @@ "min":1, "pattern":"s3://.*" }, + "TemplateSSMDocumentDetails":{ + "type":"structure", + "required":["DocumentName"], + "members":{ + "DocumentName":{ + "shape":"SSMDocumentName", + "documentation":"

The name or Amazon Resource Name (ARN) of the SSM document to use to create a conformance pack. If you use the document name, Config checks only your account and Amazon Web Services Region for the SSM document. If you want to use an SSM document from another Region or account, you must provide the ARN.

" + }, + "DocumentVersion":{ + "shape":"SSMDocumentVersion", + "documentation":"

The version of the SSM document to use to create a conformance pack. By default, Config uses the latest version.

This field is optional.

" + } + }, + "documentation":"

This API allows you to create a conformance pack template with an Amazon Web Services Systems Manager document (SSM document). To deploy a conformance pack using an SSM document, first create an SSM document with conformance pack content, and then provide the DocumentName in the PutConformancePack API. You can also provide the DocumentVersion.

The TemplateSSMDocumentDetails object contains the name of the SSM document and the version of the SSM document.

" + }, + "TimeWindow":{ + "type":"structure", + "members":{ + "StartTime":{ + "shape":"Date", + "documentation":"

The start time of an execution.

" + }, + "EndTime":{ + "shape":"Date", + "documentation":"

The end time of an execution. The end time must be after the start date.

" + } + }, + "documentation":"

Filters evaluation results based on start and end times.

" + }, "TooManyTagsException":{ "type":"structure", "members":{ }, - "documentation":"

You have reached the limit of the number of tags you can use. You have more than 50 tags.

", + "documentation":"

You have reached the limit of the number of tags you can use. For more information, see Service Limits in the Config Developer Guide.

", "exception":true }, "UnprocessedResourceIdentifierList":{ @@ -7405,7 +7943,7 @@ "type":"structure", "members":{ }, - "documentation":"

The requested action is not valid.

For PutStoredQuery, you will see this exception if there are missing required fields or if the input value fails the validation, or if you are trying to create more than 300 queries.

For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are missing required fields or if the input value fails the validation.

", + "documentation":"

The requested action is invalid.

For PutStoredQuery, you will see this exception if there are missing required fields or if the input value fails the validation, or if you are trying to create more than 300 queries.

For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are missing required fields or if the input value fails the validation.

", "exception":true }, "Value":{"type":"string"}, diff --git a/botocore/data/connect-contact-lens/2020-08-21/endpoint-rule-set-1.json b/botocore/data/connect-contact-lens/2020-08-21/endpoint-rule-set-1.json new file mode 100644 index 00000000..5e1789a0 --- /dev/null +++ b/botocore/data/connect-contact-lens/2020-08-21/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://contact-lens-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://contact-lens-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://contact-lens.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://contact-lens.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/connect-contact-lens/2020-08-21/examples-1.json b/botocore/data/connect-contact-lens/2020-08-21/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/connect-contact-lens/2020-08-21/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/connect/2017-08-08/endpoint-rule-set-1.json b/botocore/data/connect/2017-08-08/endpoint-rule-set-1.json new file mode 100644 index 00000000..be91ec84 --- /dev/null +++ b/botocore/data/connect/2017-08-08/endpoint-rule-set-1.json @@ -0,0 +1,306 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://connect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/connect/2017-08-08/paginators-1.json b/botocore/data/connect/2017-08-08/paginators-1.json index aff2bb5f..4e01cf2c 100644 --- a/botocore/data/connect/2017-08-08/paginators-1.json +++ b/botocore/data/connect/2017-08-08/paginators-1.json @@ -193,6 +193,51 @@ ], "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" } } } diff --git a/botocore/data/connect/2017-08-08/service-2.json b/botocore/data/connect/2017-08-08/service-2.json index c85d2bdc..f0dc981b 100644 --- a/botocore/data/connect/2017-08-08/service-2.json +++ b/botocore/data/connect/2017-08-08/service-2.json @@ -134,7 +134,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Associates a contact flow with a phone number claimed to your Amazon Connect instance.

" + "documentation":"

Associates a flow with a phone number claimed to your Amazon Connect instance.

If the number is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

" }, "AssociateQueueQuickConnects":{ "name":"AssociateQueueQuickConnects", @@ -204,7 +204,7 @@ {"shape":"IdempotencyException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Claims an available phone number to your Amazon Connect instance.

" + "documentation":"

Claims an available phone number to your Amazon Connect instance or traffic distribution group. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance or traffic distribution group was created.

For more information about how to use this operation, see Claim a phone number in your country and Claim phone numbers to traffic distribution groups in the Amazon Connect Administrator Guide.

You can call the SearchAvailablePhoneNumbers API for available phone numbers that you can claim. Call the DescribePhoneNumber API to verify the status of a previous ClaimPhoneNumber operation.

" }, "CreateAgentStatus":{ "name":"CreateAgentStatus", @@ -243,7 +243,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a contact flow for the specified Amazon Connect instance.

You can also create and update contact flows using the Amazon Connect Flow language.

" + "documentation":"

Creates a flow for the specified Amazon Connect instance.

You can also create and update flows using the Amazon Connect Flow language.

" }, "CreateContactFlowModule":{ "name":"CreateContactFlowModule", @@ -265,7 +265,7 @@ {"shape":"IdempotencyException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a contact flow module for the specified Amazon Connect instance.

" + "documentation":"

Creates a flow module for the specified Amazon Connect instance.

" }, "CreateHoursOfOperation":{ "name":"CreateHoursOfOperation", @@ -337,7 +337,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Creates a new queue for the specified Amazon Connect instance.

" + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Creates a new queue for the specified Amazon Connect instance.

If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the OutboundCallerConfig request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

" }, "CreateQuickConnect":{ "name":"CreateQuickConnect", @@ -377,6 +377,25 @@ ], "documentation":"

Creates a new routing profile.

" }, + "CreateRule":{ + "name":"CreateRule", + "http":{ + "method":"POST", + "requestUri":"/rules/{InstanceId}" + }, + "input":{"shape":"CreateRuleRequest"}, + "output":{"shape":"CreateRuleResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a rule for the specified Amazon Connect instance.

" + }, "CreateSecurityProfile":{ "name":"CreateSecurityProfile", "http":{ @@ -396,6 +415,44 @@ ], "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Creates a security profile.

" }, + "CreateTaskTemplate":{ + "name":"CreateTaskTemplate", + "http":{ + "method":"PUT", + "requestUri":"/instance/{InstanceId}/task/template" + }, + "input":{"shape":"CreateTaskTemplateRequest"}, + "output":{"shape":"CreateTaskTemplateResponse"}, + "errors":[ + {"shape":"PropertyValidationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Creates a new task template in the specified Amazon Connect instance.

" + }, + "CreateTrafficDistributionGroup":{ + "name":"CreateTrafficDistributionGroup", + "http":{ + "method":"PUT", + "requestUri":"/traffic-distribution-group" + }, + "input":{"shape":"CreateTrafficDistributionGroupRequest"}, + "output":{"shape":"CreateTrafficDistributionGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ResourceNotReadyException"} + ], + "documentation":"

Creates a traffic distribution group given an Amazon Connect instance that has been replicated.

For more information about creating traffic distribution groups, see Set up traffic distribution groups in the Amazon Connect Administrator Guide.

" + }, "CreateUseCase":{ "name":"CreateUseCase", "http":{ @@ -485,7 +542,7 @@ {"shape":"InternalServiceException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Deletes a contact flow for the specified Amazon Connect instance.

" + "documentation":"

Deletes a flow for the specified Amazon Connect instance.

" }, "DeleteContactFlowModule":{ "name":"DeleteContactFlowModule", @@ -503,7 +560,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Deletes the specified contact flow module.

" + "documentation":"

Deletes the specified flow module.

" }, "DeleteHoursOfOperation":{ "name":"DeleteHoursOfOperation", @@ -566,6 +623,22 @@ ], "documentation":"

Deletes a quick connect.

" }, + "DeleteRule":{ + "name":"DeleteRule", + "http":{ + "method":"DELETE", + "requestUri":"/rules/{InstanceId}/{RuleId}" + }, + "input":{"shape":"DeleteRuleRequest"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a rule for the specified Amazon Connect instance.

" + }, "DeleteSecurityProfile":{ "name":"DeleteSecurityProfile", "http":{ @@ -584,6 +657,40 @@ ], "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Deletes a security profile.

" }, + "DeleteTaskTemplate":{ + "name":"DeleteTaskTemplate", + "http":{ + "method":"DELETE", + "requestUri":"/instance/{InstanceId}/task/template/{TaskTemplateId}" + }, + "input":{"shape":"DeleteTaskTemplateRequest"}, + "output":{"shape":"DeleteTaskTemplateResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Deletes the task template.

" + }, + "DeleteTrafficDistributionGroup":{ + "name":"DeleteTrafficDistributionGroup", + "http":{ + "method":"DELETE", + "requestUri":"/traffic-distribution-group/{TrafficDistributionGroupId}" + }, + "input":{"shape":"DeleteTrafficDistributionGroupRequest"}, + "output":{"shape":"DeleteTrafficDistributionGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Deletes a traffic distribution group. This API can be called only in the Region where the traffic distribution group is created.

For more information about deleting traffic distribution groups, see Delete traffic distribution groups in the Amazon Connect Administrator Guide.

" + }, "DeleteUseCase":{ "name":"DeleteUseCase", "http":{ @@ -682,7 +789,7 @@ {"shape":"InternalServiceException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Describes the specified contact.

Contact information remains available in Amazon Connect for 24 months, and then it is deleted.

" + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Describes the specified contact.

Contact information remains available in Amazon Connect for 24 months, and then it is deleted.

Only data from November 12, 2021, and later is returned by this API.

" }, "DescribeContactFlow":{ "name":"DescribeContactFlow", @@ -700,7 +807,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describes the specified contact flow.

You can also create and update contact flows using the Amazon Connect Flow language.

" + "documentation":"

Describes the specified flow.

You can also create and update flows using the Amazon Connect Flow language.

" }, "DescribeContactFlowModule":{ "name":"DescribeContactFlowModule", @@ -718,7 +825,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Describes the specified contact flow module.

" + "documentation":"

Describes the specified flow module.

" }, "DescribeHoursOfOperation":{ "name":"DescribeHoursOfOperation", @@ -801,7 +908,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Gets details and status of a phone number that’s claimed to your Amazon Connect instance

" + "documentation":"

Gets details and status of a phone number that’s claimed to your Amazon Connect instance or traffic distribution group.

If the number is claimed to a traffic distribution group, and you are calling in the Amazon Web Services Region where the traffic distribution group was created, you can use either a phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

" }, "DescribeQueue":{ "name":"DescribeQueue", @@ -854,6 +961,23 @@ ], "documentation":"

Describes the specified routing profile.

" }, + "DescribeRule":{ + "name":"DescribeRule", + "http":{ + "method":"GET", + "requestUri":"/rules/{InstanceId}/{RuleId}" + }, + "input":{"shape":"DescribeRuleRequest"}, + "output":{"shape":"DescribeRuleResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Describes a rule for the specified Amazon Connect instance.

" + }, "DescribeSecurityProfile":{ "name":"DescribeSecurityProfile", "http":{ @@ -871,6 +995,23 @@ ], "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Gets basic information about the security profle.

" }, + "DescribeTrafficDistributionGroup":{ + "name":"DescribeTrafficDistributionGroup", + "http":{ + "method":"GET", + "requestUri":"/traffic-distribution-group/{TrafficDistributionGroupId}" + }, + "input":{"shape":"DescribeTrafficDistributionGroupRequest"}, + "output":{"shape":"DescribeTrafficDistributionGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Gets details and status of a traffic distribution group.

" + }, "DescribeUser":{ "name":"DescribeUser", "http":{ @@ -1000,7 +1141,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Remove the Lambda function from the dropdown options available in the relevant contact flow blocks.

" + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Remove the Lambda function from the dropdown options available in the relevant flow blocks.

" }, "DisassociateLexBot":{ "name":"DisassociateLexBot", @@ -1032,7 +1173,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Removes the contact flow association from a phone number claimed to your Amazon Connect instance, if a contact flow association exists.

" + "documentation":"

Removes the flow association from a phone number claimed to your Amazon Connect instance.

If the number is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

" }, "DisassociateQueueQuickConnects":{ "name":"DisassociateQueueQuickConnects", @@ -1082,6 +1223,24 @@ ], "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Deletes the specified security key.

" }, + "DismissUserContact":{ + "name":"DismissUserContact", + "http":{ + "method":"POST", + "requestUri":"/users/{InstanceId}/{UserId}/contact" + }, + "input":{"shape":"DismissUserContactRequest"}, + "output":{"shape":"DismissUserContactResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Dismisses contacts from an agent’s CCP and returns the agent to an available state, which allows the agent to receive a new routed contact. Contacts can only be dismissed if they are in a MISSED, ERROR, ENDED, or REJECTED state in the Agent Event Stream.

" + }, "GetContactAttributes":{ "name":"GetContactAttributes", "http":{ @@ -1114,6 +1273,23 @@ ], "documentation":"

Gets the real-time metric data from the specified Amazon Connect instance.

For a description of each metric, see Real-time Metrics Definitions in the Amazon Connect Administrator Guide.

" }, + "GetCurrentUserData":{ + "name":"GetCurrentUserData", + "http":{ + "method":"POST", + "requestUri":"/metrics/userdata/{InstanceId}" + }, + "input":{"shape":"GetCurrentUserDataRequest"}, + "output":{"shape":"GetCurrentUserDataResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets the real-time active user data from the specified Amazon Connect instance.

" + }, "GetFederationToken":{ "name":"GetFederationToken", "http":{ @@ -1149,6 +1325,40 @@ ], "documentation":"

Gets historical metric data from the specified Amazon Connect instance.

For a description of each historical metric, see Historical Metrics Definitions in the Amazon Connect Administrator Guide.

" }, + "GetTaskTemplate":{ + "name":"GetTaskTemplate", + "http":{ + "method":"GET", + "requestUri":"/instance/{InstanceId}/task/template/{TaskTemplateId}" + }, + "input":{"shape":"GetTaskTemplateRequest"}, + "output":{"shape":"GetTaskTemplateResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Gets details about a specific task template in the specified Amazon Connect instance.

" + }, + "GetTrafficDistribution":{ + "name":"GetTrafficDistribution", + "http":{ + "method":"GET", + "requestUri":"/traffic-distribution/{Id}" + }, + "input":{"shape":"GetTrafficDistributionRequest"}, + "output":{"shape":"GetTrafficDistributionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the current traffic distribution for a given traffic distribution group.

" + }, "ListAgentStatuses":{ "name":"ListAgentStatuses", "http":{ @@ -1197,7 +1407,7 @@ {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

For the specified version of Amazon Lex, returns a paginated list of all the Amazon Lex bots currently associated with the instance.

" + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

For the specified version of Amazon Lex, returns a paginated list of all the Amazon Lex bots currently associated with the instance. Use this API to returns both Amazon Lex V1 and V2 bots.

" }, "ListContactFlowModules":{ "name":"ListContactFlowModules", @@ -1215,7 +1425,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the contact flow modules for the specified Amazon Connect instance.

" + "documentation":"

Provides information about the flow modules for the specified Amazon Connect instance.

" }, "ListContactFlows":{ "name":"ListContactFlows", @@ -1232,7 +1442,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the contact flows for the specified Amazon Connect instance.

You can also create and update contact flows using the Amazon Connect Flow language.

For more information about contact flows, see Contact Flows in the Amazon Connect Administrator Guide.

" + "documentation":"

Provides information about the flows for the specified Amazon Connect instance.

You can also create and update flows using the Amazon Connect Flow language.

For more information about flows, see Flows in the Amazon Connect Administrator Guide.

" }, "ListContactReferences":{ "name":"ListContactReferences", @@ -1363,7 +1573,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all Lambda functions that display in the dropdown options in the relevant contact flow blocks.

" + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all Lambda functions that display in the dropdown options in the relevant flow blocks.

" }, "ListLexBots":{ "name":"ListLexBots", @@ -1380,7 +1590,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ThrottlingException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all the Amazon Lex bots currently associated with the instance.

" + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all the Amazon Lex V1 bots currently associated with the instance. To return both Amazon Lex V1 and V2 bots, use the ListBots API.

" }, "ListPhoneNumbers":{ "name":"ListPhoneNumbers", @@ -1397,7 +1607,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides information about the phone numbers for the specified Amazon Connect instance.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

" + "documentation":"

Provides information about the phone numbers for the specified Amazon Connect instance.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

The phone number Arn value that is returned from each of the items in the PhoneNumberSummaryList cannot be used to tag phone number resources. It will fail with a ResourceNotFoundException. Instead, use the ListPhoneNumbersV2 API. It returns the new phone number ARN that can be used to tag phone number resources.

" }, "ListPhoneNumbersV2":{ "name":"ListPhoneNumbersV2", @@ -1414,7 +1624,7 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists phone numbers claimed to your Amazon Connect instance.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

" + "documentation":"

Lists phone numbers claimed to your Amazon Connect instance or traffic distribution group. If the provided TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions associated with traffic distribution group.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

" }, "ListPrompts":{ "name":"ListPrompts", @@ -1518,6 +1728,23 @@ ], "documentation":"

Provides summary information about the routing profiles for the specified Amazon Connect instance.

For more information about routing profiles, see Routing Profiles and Create a Routing Profile in the Amazon Connect Administrator Guide.

" }, + "ListRules":{ + "name":"ListRules", + "http":{ + "method":"GET", + "requestUri":"/rules/{InstanceId}" + }, + "input":{"shape":"ListRulesRequest"}, + "output":{"shape":"ListRulesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

List all rules for the specified Amazon Connect instance.

" + }, "ListSecurityKeys":{ "name":"ListSecurityKeys", "http":{ @@ -1586,6 +1813,39 @@ ], "documentation":"

Lists the tags for the specified resource.

For sample policies that use tags, see Amazon Connect Identity-Based Policy Examples in the Amazon Connect Administrator Guide.

" }, + "ListTaskTemplates":{ + "name":"ListTaskTemplates", + "http":{ + "method":"GET", + "requestUri":"/instance/{InstanceId}/task/template" + }, + "input":{"shape":"ListTaskTemplatesRequest"}, + "output":{"shape":"ListTaskTemplatesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Lists task templates for the specified Amazon Connect instance.

" + }, + "ListTrafficDistributionGroups":{ + "name":"ListTrafficDistributionGroups", + "http":{ + "method":"GET", + "requestUri":"/traffic-distribution-groups" + }, + "input":{"shape":"ListTrafficDistributionGroupsRequest"}, + "output":{"shape":"ListTrafficDistributionGroupsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Lists traffic distribution groups.

" + }, "ListUseCases":{ "name":"ListUseCases", "http":{ @@ -1636,6 +1896,25 @@ ], "documentation":"

Provides summary information about the users for the specified Amazon Connect instance.

" }, + "MonitorContact":{ + "name":"MonitorContact", + "http":{ + "method":"POST", + "requestUri":"/contact/monitor" + }, + "input":{"shape":"MonitorContactRequest"}, + "output":{"shape":"MonitorContactResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"IdempotencyException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Initiates silent monitoring of a contact. The Contact Control Panel (CCP) of the user specified by userId will be set to silent monitoring mode on the contact.

" + }, "PutUserStatus":{ "name":"PutUserStatus", "http":{ @@ -1670,7 +1949,27 @@ {"shape":"IdempotencyException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Releases a phone number previously claimed to an Amazon Connect instance.

" + "documentation":"

Releases a phone number previously claimed to an Amazon Connect instance or traffic distribution group. You can call this API only in the Amazon Web Services Region where the number was claimed.

To release phone numbers from a traffic distribution group, use the ReleasePhoneNumber API, not the Amazon Connect console.

After releasing a phone number, the phone number enters into a cooldown period of 30 days. It cannot be searched for or claimed again until the period has ended. If you accidentally release a phone number, contact Amazon Web Services Support.

" + }, + "ReplicateInstance":{ + "name":"ReplicateInstance", + "http":{ + "method":"POST", + "requestUri":"/instance/{InstanceId}/replicate" + }, + "input":{"shape":"ReplicateInstanceRequest"}, + "output":{"shape":"ReplicateInstanceResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ResourceNotReadyException"}, + {"shape":"ResourceConflictException"} + ], + "documentation":"

Replicates an Amazon Connect instance in the specified Amazon Web Services Region.

For more information about replicating an Amazon Connect instance, see Create a replica of your existing Amazon Connect instance in the Amazon Connect Administrator Guide.

" }, "ResumeContactRecording":{ "name":"ResumeContactRecording", @@ -1701,7 +2000,58 @@ {"shape":"InternalServiceException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Searches for available phone numbers that you can claim to your Amazon Connect instance.

" + "documentation":"

Searches for available phone numbers that you can claim to your Amazon Connect instance or traffic distribution group. If the provided TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions associated with the traffic distribution group.

" + }, + "SearchQueues":{ + "name":"SearchQueues", + "http":{ + "method":"POST", + "requestUri":"/search-queues" + }, + "input":{"shape":"SearchQueuesRequest"}, + "output":{"shape":"SearchQueuesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Searches queues in an Amazon Connect instance, with optional filtering.

" + }, + "SearchRoutingProfiles":{ + "name":"SearchRoutingProfiles", + "http":{ + "method":"POST", + "requestUri":"/search-routing-profiles" + }, + "input":{"shape":"SearchRoutingProfilesRequest"}, + "output":{"shape":"SearchRoutingProfilesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Searches routing profiles in an Amazon Connect instance, with optional filtering.

" + }, + "SearchSecurityProfiles":{ + "name":"SearchSecurityProfiles", + "http":{ + "method":"POST", + "requestUri":"/search-security-profiles" + }, + "input":{"shape":"SearchSecurityProfilesRequest"}, + "output":{"shape":"SearchSecurityProfilesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Searches security profiles in an Amazon Connect instance, with optional filtering.

" }, "SearchUsers":{ "name":"SearchUsers", @@ -1718,7 +2068,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Searches users in an Amazon Connect instance, with optional filtering.

" + "documentation":"

Searches users in an Amazon Connect instance, with optional filtering.

AfterContactWorkTimeLimit is returned in milliseconds.

" }, "SearchVocabularies":{ "name":"SearchVocabularies", @@ -1751,7 +2101,7 @@ {"shape":"InternalServiceException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Initiates a contact flow to start a new chat for the customer. Response of this API provides a token required to obtain credentials from the CreateParticipantConnection API in the Amazon Connect Participant Service.

When a new chat contact is successfully created, clients must subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking CreateParticipantConnection with WEBSOCKET and CONNECTION_CREDENTIALS.

A 429 error occurs in the following situations:

  • API rate limit is exceeded. API TPS throttling returns a TooManyRequests exception.

  • The quota for concurrent active chats is exceeded. Active chat throttling returns a LimitExceededException.

If you use the ChatDurationInMinutes parameter and receive a 400 error, your account may not support the ability to configure custom chat durations. For more information, contact Amazon Web Services Support.

For more information about chat, see Chat in the Amazon Connect Administrator Guide.

" + "documentation":"

Initiates a flow to start a new chat for the customer. Response of this API provides a token required to obtain credentials from the CreateParticipantConnection API in the Amazon Connect Participant Service.

When a new chat contact is successfully created, clients must subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking CreateParticipantConnection with WEBSOCKET and CONNECTION_CREDENTIALS.

A 429 error occurs in the following situations:

  • API rate limit is exceeded. API TPS throttling returns a TooManyRequests exception.

  • The quota for concurrent active chats is exceeded. Active chat throttling returns a LimitExceededException.

If you use the ChatDurationInMinutes parameter and receive a 400 error, your account may not support the ability to configure custom chat durations. For more information, contact Amazon Web Services Support.

For more information about chat, see Chat in the Amazon Connect Administrator Guide.

" }, "StartContactRecording":{ "name":"StartContactRecording", @@ -1803,7 +2153,7 @@ {"shape":"DestinationNotAllowedException"}, {"shape":"OutboundContactNotPermittedException"} ], - "documentation":"

Places an outbound call to a contact, and then initiates the contact flow. It performs the actions in the contact flow that's specified (in ContactFlowId).

Agents do not initiate the outbound API, which means that they do not dial the contact. If the contact flow places an outbound call to a contact, and then puts the contact in queue, the call is then routed to the agent, like any other inbound case.

There is a 60-second dialing timeout for this operation. If the call is not connected after 60 seconds, it fails.

UK numbers with a 447 prefix are not allowed by default. Before you can dial these UK mobile numbers, you must submit a service quota increase request. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

Campaign calls are not allowed by default. Before you can make a call with TrafficType = CAMPAIGN, you must submit a service quota increase request. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

" + "documentation":"

Places an outbound call to a contact, and then initiates the flow. It performs the actions in the flow that's specified (in ContactFlowId).

Agents do not initiate the outbound API, which means that they do not dial the contact. If the flow places an outbound call to a contact, and then puts the contact in queue, the call is then routed to the agent, like any other inbound case.

There is a 60-second dialing timeout for this operation. If the call is not connected after 60 seconds, it fails.

UK numbers with a 447 prefix are not allowed by default. Before you can dial these UK mobile numbers, you must submit a service quota increase request. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

Campaign calls are not allowed by default. Before you can make a call with TrafficType = CAMPAIGN, you must submit a service quota increase request to the quota Amazon Connect campaigns.

" }, "StartTaskContact":{ "name":"StartTaskContact", @@ -1821,7 +2171,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Initiates a contact flow to start a new task.

" + "documentation":"

Initiates a flow to start a new task.

" }, "StopContact":{ "name":"StopContact", @@ -1900,7 +2250,26 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Adds the specified tags to the specified resource.

The supported resource types are users, routing profiles, queues, quick connects, contact flows, agent status, hours of operation, and phone number.

For sample policies that use tags, see Amazon Connect Identity-Based Policy Examples in the Amazon Connect Administrator Guide.

" + "documentation":"

Adds the specified tags to the specified resource.

Some of the supported resource types are agents, routing profiles, queues, quick connects, contact flows, agent statuses, hours of operation, phone numbers, security profiles, and task templates. For a complete list, see Tagging resources in Amazon Connect.

For sample policies that use tags, see Amazon Connect Identity-Based Policy Examples in the Amazon Connect Administrator Guide.

" + }, + "TransferContact":{ + "name":"TransferContact", + "http":{ + "method":"POST", + "requestUri":"/contact/transfer" + }, + "input":{"shape":"TransferContactRequest"}, + "output":{"shape":"TransferContactResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"IdempotencyException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Transfers contacts from one agent or queue to another agent or queue at any point after a contact is created. You can transfer a contact to another queue by providing the flow which orchestrates the contact to the destination queue. This gives you more control over contact handling and helps you adhere to the service level agreement (SLA) guaranteed to your customers.

Note the following requirements:

  • Transfer is supported for only TASK contacts.

  • Do not use both QueueId and UserId in the same call.

  • The following flow types are supported: Inbound flow, Transfer to agent flow, and Transfer to queue flow.

  • The TransferContact API can be called only on active contacts.

  • A contact cannot be transferred more than 11 times.

" }, "UntagResource":{ "name":"UntagResource", @@ -1967,7 +2336,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates or updates user-defined contact attributes associated with the specified contact.

You can create or update user-defined attributes for both ongoing and completed contacts. For example, while the call is active, you can update the customer's name or the reason the customer called. You can add notes about steps that the agent took during the call that display to the next agent that takes the call. You can also update attributes for a contact using data from your CRM application and save the data with the contact in Amazon Connect. You could also flag calls for additional analysis, such as legal review or to identify abusive callers.

Contact attributes are available in Amazon Connect for 24 months, and are then deleted. For information about CTR retention and the maximum size of the CTR attributes section, see Feature specifications in the Amazon Connect Administrator Guide.

Important: You cannot use the operation to update attributes for contacts that occurred prior to the release of the API, which was September 12, 2018. You can update attributes only for contacts that started after the release of the API. If you attempt to update attributes for a contact that occurred prior to the release of the API, a 400 error is returned. This applies also to queued callbacks that were initiated prior to the release of the API but are still active in your instance.

" + "documentation":"

Creates or updates user-defined contact attributes associated with the specified contact.

You can create or update user-defined attributes for both ongoing and completed contacts. For example, while the call is active, you can update the customer's name or the reason the customer called. You can add notes about steps that the agent took during the call that display to the next agent that takes the call. You can also update attributes for a contact using data from your CRM application and save the data with the contact in Amazon Connect. You could also flag calls for additional analysis, such as legal review or to identify abusive callers.

Contact attributes are available in Amazon Connect for 24 months, and are then deleted. For information about contact record retention and the maximum size of the contact record attributes section, see Feature specifications in the Amazon Connect Administrator Guide.

" }, "UpdateContactFlowContent":{ "name":"UpdateContactFlowContent", @@ -1984,7 +2353,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates the specified contact flow.

You can also create and update contact flows using the Amazon Connect Flow language.

" + "documentation":"

Updates the specified flow.

You can also create and update flows using the Amazon Connect Flow language.

" }, "UpdateContactFlowMetadata":{ "name":"UpdateContactFlowMetadata", @@ -2001,7 +2370,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates metadata about specified contact flow.

" + "documentation":"

Updates metadata about specified flow.

" }, "UpdateContactFlowModuleContent":{ "name":"UpdateContactFlowModuleContent", @@ -2019,7 +2388,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates specified contact flow module for the specified Amazon Connect instance.

" + "documentation":"

Updates specified flow module for the specified Amazon Connect instance.

" }, "UpdateContactFlowModuleMetadata":{ "name":"UpdateContactFlowModuleMetadata", @@ -2038,7 +2407,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates metadata about specified contact flow module.

" + "documentation":"

Updates metadata about specified flow module.

" }, "UpdateContactFlowName":{ "name":"UpdateContactFlowName", @@ -2055,7 +2424,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

The name of the contact flow.

You can also create and update contact flows using the Amazon Connect Flow language.

" + "documentation":"

The name of the flow.

You can also create and update flows using the Amazon Connect Flow language.

" }, "UpdateContactSchedule":{ "name":"UpdateContactSchedule", @@ -2141,7 +2510,7 @@ {"shape":"IdempotencyException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Updates your claimed phone number from its current Amazon Connect instance to another Amazon Connect instance in the same Region.

" + "documentation":"

Updates your claimed phone number from its current Amazon Connect instance or traffic distribution group to another Amazon Connect instance or traffic distribution group in the same Amazon Web Services Region.

You can call DescribePhoneNumber API to verify the status of a previous UpdatePhoneNumber operation.

" }, "UpdateQueueHoursOfOperation":{ "name":"UpdateQueueHoursOfOperation", @@ -2206,7 +2575,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue.

" + "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue.

If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the OutboundCallerConfig request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

" }, "UpdateQueueStatus":{ "name":"UpdateQueueStatus", @@ -2321,6 +2690,23 @@ ], "documentation":"

Updates the properties associated with a set of queues for a routing profile.

" }, + "UpdateRule":{ + "name":"UpdateRule", + "http":{ + "method":"PUT", + "requestUri":"/rules/{InstanceId}/{RuleId}" + }, + "input":{"shape":"UpdateRuleRequest"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceConflictException"} + ], + "documentation":"

Updates a rule for the specified Amazon Connect instance.

" + }, "UpdateSecurityProfile":{ "name":"UpdateSecurityProfile", "http":{ @@ -2337,6 +2723,42 @@ ], "documentation":"

This API is in preview release for Amazon Connect and is subject to change.

Updates a security profile.

" }, + "UpdateTaskTemplate":{ + "name":"UpdateTaskTemplate", + "http":{ + "method":"POST", + "requestUri":"/instance/{InstanceId}/task/template/{TaskTemplateId}" + }, + "input":{"shape":"UpdateTaskTemplateRequest"}, + "output":{"shape":"UpdateTaskTemplateResponse"}, + "errors":[ + {"shape":"PropertyValidationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Updates details about a specific task template in the specified Amazon Connect instance. This operation does not support partial updates. Instead it does a full update of template content.

" + }, + "UpdateTrafficDistribution":{ + "name":"UpdateTrafficDistribution", + "http":{ + "method":"PUT", + "requestUri":"/traffic-distribution/{Id}" + }, + "input":{"shape":"UpdateTrafficDistributionRequest"}, + "output":{"shape":"UpdateTrafficDistributionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Updates the traffic distribution for a given traffic distribution group.

For more information about updating a traffic distribution group, see Update telephony traffic distribution across Amazon Web Services Regions in the Amazon Connect Administrator Guide.

" + }, "UpdateUserHierarchy":{ "name":"UpdateUserHierarchy", "http":{ @@ -2463,10 +2885,69 @@ "error":{"httpStatusCode":403}, "exception":true }, + "ActionSummaries":{ + "type":"list", + "member":{"shape":"ActionSummary"} + }, + "ActionSummary":{ + "type":"structure", + "required":["ActionType"], + "members":{ + "ActionType":{ + "shape":"ActionType", + "documentation":"

The action type.

" + } + }, + "documentation":"

Information about an action.

" + }, + "ActionType":{ + "type":"string", + "enum":[ + "CREATE_TASK", + "ASSIGN_CONTACT_CATEGORY", + "GENERATE_EVENTBRIDGE_EVENT", + "SEND_NOTIFICATION" + ] + }, "AfterContactWorkTimeLimit":{ "type":"integer", "min":0 }, + "AgentContactReference":{ + "type":"structure", + "members":{ + "ContactId":{ + "shape":"ContactId", + "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + }, + "Channel":{ + "shape":"Channel", + "documentation":"

The channel of the contact.

" + }, + "InitiationMethod":{ + "shape":"ContactInitiationMethod", + "documentation":"

How the contact was initiated.

" + }, + "AgentContactState":{ + "shape":"ContactState", + "documentation":"

The state of the contact.

" + }, + "StateStartTimestamp":{ + "shape":"Timestamp", + "documentation":"

The epoch timestamp when the contact state started.

" + }, + "ConnectedToAgentTimestamp":{ + "shape":"Timestamp", + "documentation":"

The time at which the contact was connected to an agent.

" + }, + "Queue":{"shape":"QueueReference"} + }, + "documentation":"

Information about the contact associated to the user.

" + }, + "AgentContactReferenceList":{ + "type":"list", + "member":{"shape":"AgentContactReference"} + }, "AgentFirstName":{ "type":"string", "max":100, @@ -2529,7 +3010,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } }, "documentation":"

Contains information about an agent status.

" @@ -2550,6 +3031,20 @@ "max":50, "min":1 }, + "AgentStatusReference":{ + "type":"structure", + "members":{ + "StatusStartTimestamp":{ + "shape":"Timestamp", + "documentation":"

The start timestamp of the agent's status.

" + }, + "StatusArn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the agent's status.

" + } + }, + "documentation":"

Information about the agent's status.

" + }, "AgentStatusState":{ "type":"string", "enum":[ @@ -2606,6 +3101,17 @@ "max":100, "min":1 }, + "AllowedAccessControlTags":{ + "type":"map", + "key":{"shape":"SecurityProfilePolicyKey"}, + "value":{"shape":"SecurityProfilePolicyValue"}, + "max":2 + }, + "AllowedMonitorCapabilities":{ + "type":"list", + "member":{"shape":"MonitorCapability"}, + "max":2 + }, "AnswerMachineDetectionConfig":{ "type":"structure", "members":{ @@ -2621,6 +3127,12 @@ "documentation":"

Configuration of the answering machine detection.

" }, "ApproximateTotalCount":{"type":"long"}, + "AssignContactCategoryActionDefinition":{ + "type":"structure", + "members":{ + }, + "documentation":"

This action must be set if TriggerEventSource is one of the following values: OnPostCallAnalysisAvailable | OnRealTimeCallAnalysisAvailable | OnPostChatAnalysisAvailable. Contact is categorized using the rule name.

RuleName is used as ContactCategory.

" + }, "AssociateApprovedOriginRequest":{ "type":"structure", "required":[ @@ -2778,7 +3290,7 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

" + "documentation":"

The identifier of the flow.

" } } }, @@ -2876,14 +3388,14 @@ }, "Value":{ "shape":"ReferenceValue", - "documentation":"

Contains the location path of the attachment reference.

" + "documentation":"

The location path of the attachment reference.

" }, "Status":{ "shape":"ReferenceStatus", - "documentation":"

Status of an attachment reference type.

" + "documentation":"

Status of the attachment reference type.

" } }, - "documentation":"

Information about the attachment reference if the referenceType is ATTACHMENT. Otherwise, null.

" + "documentation":"

Information about a reference when the referenceType is ATTACHMENT. Otherwise, null.

" }, "Attribute":{ "type":"structure", @@ -2941,6 +3453,12 @@ "type":"list", "member":{"shape":"AvailableNumberSummary"} }, + "AwsRegion":{ + "type":"string", + "max":31, + "min":8, + "pattern":"[a-z]{2}(-[a-z]+){1,2}(-[0-9])?" + }, "Boolean":{"type":"boolean"}, "BotName":{ "type":"string", @@ -2964,6 +3482,11 @@ "TASK" ] }, + "ChannelToCountMap":{ + "type":"map", + "key":{"shape":"Channel"}, + "value":{"shape":"IntegerCount"} + }, "Channels":{ "type":"list", "member":{"shape":"Channel"}, @@ -3027,7 +3550,7 @@ "members":{ "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

" + "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

" }, "PhoneNumber":{ "shape":"PhoneNumber", @@ -3039,11 +3562,11 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" }, "ClientToken":{ "shape":"ClientToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

Pattern: ^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$

", "idempotencyToken":true } } @@ -3090,18 +3613,18 @@ }, "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

" + "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

" }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" }, "PhoneNumberStatus":{ "shape":"PhoneNumberStatus", - "documentation":"

The status of the phone number.

" + "documentation":"

The status of the phone number.

  • CLAIMED means the previous ClaimedPhoneNumber or UpdatePhoneNumber operation succeeded.

  • IN_PROGRESS means a ClaimedPhoneNumber or UpdatePhoneNumber operation is still in progress and has not yet completed. You can call DescribePhoneNumber at a later time to verify if the previous operation has completed.

  • FAILED indicates that the previous ClaimedPhoneNumber or UpdatePhoneNumber operation has failed. It will include a message indicating the failure reason. A common reason for a failure may be that the TargetArn value you are claiming or updating a phone number to has reached its limit of total claimed numbers. If you received a FAILED status from a ClaimPhoneNumber API call, you have one day to retry claiming the phone number before the number is released back to the inventory for other customers to claim.

You will not be billed for the phone number during the 1-day period if number claiming fails.

" } }, - "documentation":"

Information about a phone number that has been claimed to your Amazon Connect instance.

" + "documentation":"

Information about a phone number that has been claimed to your Amazon Connect instance or traffic distribution group.

" }, "ClientToken":{ "type":"string", @@ -3183,43 +3706,53 @@ }, "documentation":"

Contains information about a contact.

" }, + "ContactFilter":{ + "type":"structure", + "members":{ + "ContactStates":{ + "shape":"ContactStates", + "documentation":"

A list of up to 9 contact states.

" + } + }, + "documentation":"

Filters user data based on the contact information that is associated to the users. It contains a list of contact states.

" + }, "ContactFlow":{ "type":"structure", "members":{ "Arn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the contact flow.

" + "documentation":"

The Amazon Resource Name (ARN) of the flow.

" }, "Id":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

" + "documentation":"

The identifier of the flow.

" }, "Name":{ "shape":"ContactFlowName", - "documentation":"

The name of the contact flow.

" + "documentation":"

The name of the flow.

" }, "Type":{ "shape":"ContactFlowType", - "documentation":"

The type of the contact flow. For descriptions of the available types, see Choose a Contact Flow Type in the Amazon Connect Administrator Guide.

" + "documentation":"

The type of the flow. For descriptions of the available types, see Choose a flow type in the Amazon Connect Administrator Guide.

" }, "State":{ "shape":"ContactFlowState", - "documentation":"

The type of contact flow.

" + "documentation":"

The type of flow.

" }, "Description":{ "shape":"ContactFlowDescription", - "documentation":"

The description of the contact flow.

" + "documentation":"

The description of the flow.

" }, "Content":{ "shape":"ContactFlowContent", - "documentation":"

The content of the contact flow.

" + "documentation":"

The content of the flow.

" }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } }, - "documentation":"

Contains information about a contact flow.

" + "documentation":"

Contains information about a flow.

" }, "ContactFlowContent":{"type":"string"}, "ContactFlowDescription":{"type":"string"}, @@ -3236,34 +3769,34 @@ }, "Id":{ "shape":"ContactFlowModuleId", - "documentation":"

The identifier of the contact flow module.

" + "documentation":"

The identifier of the flow module.

" }, "Name":{ "shape":"ContactFlowModuleName", - "documentation":"

The name of the contact flow module.

" + "documentation":"

The name of the flow module.

" }, "Content":{ "shape":"ContactFlowModuleContent", - "documentation":"

The content of the contact flow module.

" + "documentation":"

The content of the flow module.

" }, "Description":{ "shape":"ContactFlowModuleDescription", - "documentation":"

The description of the contact flow module.

" + "documentation":"

The description of the flow module.

" }, "State":{ "shape":"ContactFlowModuleState", - "documentation":"

The type of contact flow module.

" + "documentation":"

The type of flow module.

" }, "Status":{ "shape":"ContactFlowModuleStatus", - "documentation":"

The status of the contact flow module.

" + "documentation":"

The status of the flow module.

" }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } }, - "documentation":"

Contains information about a contact flow module.

" + "documentation":"

Contains information about a flow module.

" }, "ContactFlowModuleContent":{ "type":"string", @@ -3306,22 +3839,22 @@ "members":{ "Id":{ "shape":"ContactFlowModuleId", - "documentation":"

The identifier of the contact flow module.

" + "documentation":"

The identifier of the flow module.

" }, "Arn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the contact flow module.

" + "documentation":"

The Amazon Resource Name (ARN) of the flow module.

" }, "Name":{ "shape":"ContactFlowModuleName", - "documentation":"

The name of the contact flow module.

" + "documentation":"

The name of the flow module.

" }, "State":{ "shape":"ContactFlowModuleState", - "documentation":"

The type of contact flow module.

" + "documentation":"

The type of flow module.

" } }, - "documentation":"

Contains summary information about a contact flow.

" + "documentation":"

Contains summary information about a flow.

" }, "ContactFlowModulesSummaryList":{ "type":"list", @@ -3336,7 +3869,7 @@ "members":{ "Message":{"shape":"Message"} }, - "documentation":"

The contact flow has not been published.

", + "documentation":"

The flow has not been published.

", "error":{"httpStatusCode":404}, "exception":true }, @@ -3352,26 +3885,26 @@ "members":{ "Id":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

" + "documentation":"

The identifier of the flow.

" }, "Arn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the contact flow.

" + "documentation":"

The Amazon Resource Name (ARN) of the flow.

" }, "Name":{ "shape":"ContactFlowName", - "documentation":"

The name of the contact flow.

" + "documentation":"

The name of the flow.

" }, "ContactFlowType":{ "shape":"ContactFlowType", - "documentation":"

The type of contact flow.

" + "documentation":"

The type of flow.

" }, "ContactFlowState":{ "shape":"ContactFlowState", - "documentation":"

The type of contact flow.

" + "documentation":"

The type of flow.

" } }, - "documentation":"

Contains summary information about a contact flow.

You can also create and update contact flows using the Amazon Connect Flow language.

" + "documentation":"

Contains summary information about a flow.

You can also create and update flows using the Amazon Connect Flow language.

" }, "ContactFlowSummaryList":{ "type":"list", @@ -3420,7 +3953,7 @@ "documentation":"

The message.

" } }, - "documentation":"

The contact with the specified ID is not active or does not exist.

", + "documentation":"

The contact with the specified ID is not active or does not exist. Applies to Voice calls only, not to Chat, Task, or Voice Callback.

", "error":{"httpStatusCode":410}, "exception":true }, @@ -3429,6 +3962,30 @@ "key":{"shape":"ReferenceKey"}, "value":{"shape":"Reference"} }, + "ContactState":{ + "type":"string", + "enum":[ + "INCOMING", + "PENDING", + "CONNECTING", + "CONNECTED", + "CONNECTED_ONHOLD", + "MISSED", + "ERROR", + "ENDED", + "REJECTED" + ] + }, + "ContactStates":{ + "type":"list", + "member":{"shape":"ContactState"}, + "max":9 + }, + "Content":{ + "type":"string", + "max":1024, + "min":1 + }, "ControlPlaneTagFilter":{ "type":"structure", "members":{ @@ -3480,7 +4037,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -3513,23 +4070,23 @@ }, "Name":{ "shape":"ContactFlowModuleName", - "documentation":"

The name of the contact flow module.

" + "documentation":"

The name of the flow module.

" }, "Description":{ "shape":"ContactFlowModuleDescription", - "documentation":"

The description of the contact flow module.

" + "documentation":"

The description of the flow module.

" }, "Content":{ "shape":"ContactFlowModuleContent", - "documentation":"

The content of the contact flow module.

" + "documentation":"

The content of the flow module.

" }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" }, "ClientToken":{ "shape":"ClientToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", "idempotencyToken":true } } @@ -3539,11 +4096,11 @@ "members":{ "Id":{ "shape":"ContactFlowModuleId", - "documentation":"

The identifier of the contact flow module.

" + "documentation":"

The identifier of the flow module.

" }, "Arn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the contact flow module.

" + "documentation":"

The Amazon Resource Name (ARN) of the flow module.

" } } }, @@ -3564,23 +4121,23 @@ }, "Name":{ "shape":"ContactFlowName", - "documentation":"

The name of the contact flow.

" + "documentation":"

The name of the flow.

" }, "Type":{ "shape":"ContactFlowType", - "documentation":"

The type of the contact flow. For descriptions of the available types, see Choose a Contact Flow Type in the Amazon Connect Administrator Guide.

" + "documentation":"

The type of the flow. For descriptions of the available types, see Choose a flow type in the Amazon Connect Administrator Guide.

" }, "Description":{ "shape":"ContactFlowDescription", - "documentation":"

The description of the contact flow.

" + "documentation":"

The description of the flow.

" }, "Content":{ "shape":"ContactFlowContent", - "documentation":"

The content of the contact flow.

" + "documentation":"

The content of the flow.

" }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -3589,11 +4146,11 @@ "members":{ "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

" + "documentation":"

The identifier of the flow.

" }, "ContactFlowArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the contact flow.

" + "documentation":"

The Amazon Resource Name (ARN) of the flow.

" } } }, @@ -3630,7 +4187,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -3714,7 +4271,7 @@ }, "IntegrationArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of the integration.

" + "documentation":"

The Amazon Resource Name (ARN) of the integration.

When integrating with Amazon Pinpoint, the Amazon Connect and Amazon Pinpoint instances must be in the same account.

" }, "SourceApplicationUrl":{ "shape":"URI", @@ -3730,7 +4287,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -3788,7 +4345,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -3833,7 +4390,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -3888,7 +4445,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -3905,6 +4462,73 @@ } } }, + "CreateRuleRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Name", + "TriggerEventSource", + "Function", + "Actions", + "PublishStatus" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "Name":{ + "shape":"RuleName", + "documentation":"

A unique name for the rule.

" + }, + "TriggerEventSource":{ + "shape":"RuleTriggerEventSource", + "documentation":"

The event source to trigger the rule.

" + }, + "Function":{ + "shape":"RuleFunction", + "documentation":"

The conditions of the rule.

" + }, + "Actions":{ + "shape":"RuleActions", + "documentation":"

A list of actions to be run when the rule is triggered.

" + }, + "PublishStatus":{ + "shape":"RulePublishStatus", + "documentation":"

The publish status of the rule.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "idempotencyToken":true + } + } + }, + "CreateRuleResponse":{ + "type":"structure", + "required":[ + "RuleArn", + "RuleId" + ], + "members":{ + "RuleArn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the rule.

" + }, + "RuleId":{ + "shape":"RuleId", + "documentation":"

A unique identifier for the rule.

" + } + } + }, + "CreateSecurityProfileName":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[ a-zA-Z0-9_@-]+$" + }, "CreateSecurityProfileRequest":{ "type":"structure", "required":[ @@ -3913,7 +4537,7 @@ ], "members":{ "SecurityProfileName":{ - "shape":"SecurityProfileName", + "shape":"CreateSecurityProfileName", "documentation":"

The name of the security profile.

" }, "Description":{ @@ -3922,7 +4546,7 @@ }, "Permissions":{ "shape":"PermissionsList", - "documentation":"

Permissions assigned to the security profile.

" + "documentation":"

Permissions assigned to the security profile. For a list of valid permissions, see List of security profile permissions.

" }, "InstanceId":{ "shape":"InstanceId", @@ -3932,7 +4556,15 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + }, + "AllowedAccessControlTags":{ + "shape":"AllowedAccessControlTags", + "documentation":"

The list of tags that a security profile uses to restrict access to resources in Amazon Connect.

" + }, + "TagRestrictedResources":{ + "shape":"TagRestrictedResourceList", + "documentation":"

The list of resources that a security profile applies tag restrictions to in Amazon Connect.

" } } }, @@ -3949,6 +4581,115 @@ } } }, + "CreateTaskTemplateRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Name", + "Fields" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "Name":{ + "shape":"TaskTemplateName", + "documentation":"

The name of the task template.

" + }, + "Description":{ + "shape":"TaskTemplateDescription", + "documentation":"

The description of the task template.

" + }, + "ContactFlowId":{ + "shape":"ContactFlowId", + "documentation":"

The identifier of the flow that runs by default when a task is created by referencing this template.

" + }, + "Constraints":{ + "shape":"TaskTemplateConstraints", + "documentation":"

Constraints that are applicable to the fields listed.

" + }, + "Defaults":{ + "shape":"TaskTemplateDefaults", + "documentation":"

The default values for fields when a task is created by referencing this template.

" + }, + "Status":{ + "shape":"TaskTemplateStatus", + "documentation":"

Marks a template as ACTIVE or INACTIVE for a task to refer to it. Tasks can only be created from ACTIVE templates. If a template is marked as INACTIVE, then a task that refers to this template cannot be created.

" + }, + "Fields":{ + "shape":"TaskTemplateFields", + "documentation":"

Fields that are part of the template.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "idempotencyToken":true + } + } + }, + "CreateTaskTemplateResponse":{ + "type":"structure", + "required":[ + "Id", + "Arn" + ], + "members":{ + "Id":{ + "shape":"TaskTemplateId", + "documentation":"

The identifier of the task template resource.

" + }, + "Arn":{ + "shape":"TaskTemplateArn", + "documentation":"

The Amazon Resource Name (ARN) for the task template resource.

" + } + } + }, + "CreateTrafficDistributionGroupRequest":{ + "type":"structure", + "required":[ + "Name", + "InstanceId" + ], + "members":{ + "Name":{ + "shape":"Name128", + "documentation":"

The name for the traffic distribution group.

" + }, + "Description":{ + "shape":"Description250", + "documentation":"

A description for the traffic distribution group.

" + }, + "InstanceId":{ + "shape":"InstanceIdOrArn", + "documentation":"

The identifier of the Amazon Connect instance that has been replicated. You can find the instanceId in the ARN of the instance.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "CreateTrafficDistributionGroupResponse":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"TrafficDistributionGroupId", + "documentation":"

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

" + }, + "Arn":{ + "shape":"TrafficDistributionGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the traffic distribution group.

" + } + } + }, "CreateUseCaseRequest":{ "type":"structure", "required":[ @@ -3975,7 +4716,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -4015,7 +4756,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -4082,7 +4823,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -4110,7 +4851,7 @@ "members":{ "ClientToken":{ "shape":"ClientToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If a create request is received more than once with same client token, subsequent requests return the previous response without creating a vocabulary again.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs. If a create request is received more than once with same client token, subsequent requests return the previous response without creating a vocabulary again.

", "idempotencyToken":true }, "InstanceId":{ @@ -4133,7 +4874,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, @@ -4255,6 +4996,20 @@ "type":"list", "member":{"shape":"CurrentMetric"} }, + "DateReference":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"ReferenceKey", + "documentation":"

Identifier of the date reference.

" + }, + "Value":{ + "shape":"ReferenceValue", + "documentation":"

A valid date.

" + } + }, + "documentation":"

Information about a reference when the referenceType is DATE. Otherwise, null.

" + }, "DefaultVocabulary":{ "type":"structure", "required":[ @@ -4307,7 +5062,7 @@ }, "ContactFlowModuleId":{ "shape":"ContactFlowModuleId", - "documentation":"

The identifier of the contact flow module.

", + "documentation":"

The identifier of the flow module.

", "location":"uri", "locationName":"ContactFlowModuleId" } @@ -4333,7 +5088,7 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

", + "documentation":"

The identifier of the flow.

", "location":"uri", "locationName":"ContactFlowId" } @@ -4414,6 +5169,27 @@ } } }, + "DeleteRuleRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "RuleId" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "RuleId":{ + "shape":"RuleId", + "documentation":"

A unique identifier for the rule.

", + "location":"uri", + "locationName":"RuleId" + } + } + }, "DeleteSecurityProfileRequest":{ "type":"structure", "required":[ @@ -4435,6 +5211,49 @@ } } }, + "DeleteTaskTemplateRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "TaskTemplateId" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "TaskTemplateId":{ + "shape":"TaskTemplateId", + "documentation":"

A unique identifier for the task template.

", + "location":"uri", + "locationName":"TaskTemplateId" + } + } + }, + "DeleteTaskTemplateResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteTrafficDistributionGroupRequest":{ + "type":"structure", + "required":["TrafficDistributionGroupId"], + "members":{ + "TrafficDistributionGroupId":{ + "shape":"TrafficDistributionGroupIdOrArn", + "documentation":"

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

", + "location":"uri", + "locationName":"TrafficDistributionGroupId" + } + } + }, + "DeleteTrafficDistributionGroupResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteUseCaseRequest":{ "type":"structure", "required":[ @@ -4593,7 +5412,7 @@ }, "ContactFlowModuleId":{ "shape":"ContactFlowModuleId", - "documentation":"

The identifier of the contact flow module.

", + "documentation":"

The identifier of the flow module.

", "location":"uri", "locationName":"ContactFlowModuleId" } @@ -4604,7 +5423,7 @@ "members":{ "ContactFlowModule":{ "shape":"ContactFlowModule", - "documentation":"

Information about the contact flow module.

" + "documentation":"

Information about the flow module.

" } } }, @@ -4623,7 +5442,7 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

", + "documentation":"

The identifier of the flow.

", "location":"uri", "locationName":"ContactFlowId" } @@ -4634,7 +5453,7 @@ "members":{ "ContactFlow":{ "shape":"ContactFlow", - "documentation":"

Information about the contact flow.

" + "documentation":"

Information about the flow.

" } } }, @@ -4803,7 +5622,7 @@ "members":{ "ClaimedPhoneNumberSummary":{ "shape":"ClaimedPhoneNumberSummary", - "documentation":"

Information about a phone number that's been claimed to your Amazon Connect instance.

" + "documentation":"

Information about a phone number that's been claimed to your Amazon Connect instance or traffic distribution group.

" } } }, @@ -4897,6 +5716,37 @@ } } }, + "DescribeRuleRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "RuleId" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "RuleId":{ + "shape":"RuleId", + "documentation":"

A unique identifier for the rule.

", + "location":"uri", + "locationName":"RuleId" + } + } + }, + "DescribeRuleResponse":{ + "type":"structure", + "required":["Rule"], + "members":{ + "Rule":{ + "shape":"Rule", + "documentation":"

Information about the rule.

" + } + } + }, "DescribeSecurityProfileRequest":{ "type":"structure", "required":[ @@ -4927,6 +5777,27 @@ } } }, + "DescribeTrafficDistributionGroupRequest":{ + "type":"structure", + "required":["TrafficDistributionGroupId"], + "members":{ + "TrafficDistributionGroupId":{ + "shape":"TrafficDistributionGroupIdOrArn", + "documentation":"

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

", + "location":"uri", + "locationName":"TrafficDistributionGroupId" + } + } + }, + "DescribeTrafficDistributionGroupResponse":{ + "type":"structure", + "members":{ + "TrafficDistributionGroup":{ + "shape":"TrafficDistributionGroup", + "documentation":"

Information about the traffic distribution group.

" + } + } + }, "DescribeUserHierarchyGroupRequest":{ "type":"structure", "required":[ @@ -5044,6 +5915,12 @@ "max":4096, "min":0 }, + "Description250":{ + "type":"string", + "max":250, + "min":1, + "pattern":"(^[\\S].*[\\S]$)|(^[\\S]$)" + }, "DestinationNotAllowedException":{ "type":"structure", "members":{ @@ -5201,7 +6078,7 @@ }, "LexRegion":{ "shape":"LexRegion", - "documentation":"

The Region in which the Amazon Lex bot has been created.

", + "documentation":"

The Amazon Web Services Region in which the Amazon Lex bot has been created.

", "location":"querystring", "locationName":"lexRegion" } @@ -5301,11 +6178,64 @@ } } }, + "DismissUserContactRequest":{ + "type":"structure", + "required":[ + "UserId", + "InstanceId", + "ContactId" + ], + "members":{ + "UserId":{ + "shape":"UserId", + "documentation":"

The identifier of the user account.

", + "location":"uri", + "locationName":"UserId" + }, + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "ContactId":{ + "shape":"ContactId", + "documentation":"

The identifier of the contact.

" + } + } + }, + "DismissUserContactResponse":{ + "type":"structure", + "members":{ + } + }, "DisplayName":{ "type":"string", "max":256, "min":1 }, + "Distribution":{ + "type":"structure", + "required":[ + "Region", + "Percentage" + ], + "members":{ + "Region":{ + "shape":"AwsRegion", + "documentation":"

The Amazon Web Services Region where the traffic is distributed.

" + }, + "Percentage":{ + "shape":"Percentage", + "documentation":"

The percentage of the traffic that is distributed, in increments of 10.

" + } + }, + "documentation":"

Information about a traffic distribution.

" + }, + "DistributionList":{ + "type":"list", + "member":{"shape":"Distribution"} + }, "DuplicateResourceException":{ "type":"structure", "members":{ @@ -5316,6 +6246,20 @@ "exception":true }, "Email":{"type":"string"}, + "EmailReference":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"ReferenceKey", + "documentation":"

Identifier of the email reference.

" + }, + "Value":{ + "shape":"ReferenceValue", + "documentation":"

A valid email address.

" + } + }, + "documentation":"

Information about a reference when the referenceType is EMAIL. Otherwise, null.

" + }, "EncryptionConfig":{ "type":"structure", "required":[ @@ -5338,6 +6282,33 @@ "type":"string", "enum":["KMS"] }, + "EventBridgeActionDefinition":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"EventBridgeActionName", + "documentation":"

The name.

" + } + }, + "documentation":"

The EventBridge action definition.

" + }, + "EventBridgeActionName":{ + "type":"string", + "max":100, + "min":1 + }, + "EventSourceName":{ + "type":"string", + "enum":[ + "OnPostCallAnalysisAvailable", + "OnRealTimeCallAnalysisAvailable", + "OnPostChatAnalysisAvailable", + "OnZendeskTicketCreate", + "OnZendeskTicketStatusUpdate", + "OnSalesforceCaseCreate" + ] + }, "Filters":{ "type":"structure", "members":{ @@ -5411,7 +6382,7 @@ }, "Groupings":{ "shape":"Groupings", - "documentation":"

The grouping applied to the metrics returned. For example, when grouped by QUEUE, the metrics returned apply to each queue rather than aggregated for all queues. If you group by CHANNEL, you should include a Channels filter. VOICE, CHAT, and TASK channels are supported.

If no Grouping is included in the request, a summary of metrics is returned.

" + "documentation":"

The grouping applied to the metrics returned. For example, when grouped by QUEUE, the metrics returned apply to each queue rather than aggregated for all queues.

  • If you group by CHANNEL, you should include a Channels filter. VOICE, CHAT, and TASK channels are supported.

  • If you group by ROUTING_PROFILE, you must include either a queue or routing profile filter.

  • If no Grouping is included in the request, a summary of metrics is returned.

" }, "CurrentMetrics":{ "shape":"CurrentMetrics", @@ -5445,6 +6416,47 @@ } } }, + "GetCurrentUserDataRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "Filters" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "Filters":{ + "shape":"UserDataFilters", + "documentation":"

Filters up to 100 Queues, or up to 9 ContactStates. The user data is retrieved only for those users who are associated with the queues and have contacts that are in the specified ContactState.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxResult100", + "documentation":"

The maximum number of results to return per page.

", + "box":true + } + } + }, + "GetCurrentUserDataResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If there are additional results, this is the token for the next set of results.

" + }, + "UserDataList":{ + "shape":"UserDataList", + "documentation":"

A list of the user data that is returned.

" + } + } + }, "GetFederationTokenRequest":{ "type":"structure", "required":["InstanceId"], @@ -5463,6 +6475,18 @@ "Credentials":{ "shape":"Credentials", "documentation":"

The credentials to use for federation.

" + }, + "SignInUrl":{ + "shape":"Url", + "documentation":"

The URL to sign into the user's instance.

" + }, + "UserArn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the user.

" + }, + "UserId":{ + "shape":"AgentResourceId", + "documentation":"

The identifier for the user.

" } } }, @@ -5526,6 +6550,124 @@ } } }, + "GetTaskTemplateRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "TaskTemplateId" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "TaskTemplateId":{ + "shape":"TaskTemplateId", + "documentation":"

A unique identifier for the task template.

", + "location":"uri", + "locationName":"TaskTemplateId" + }, + "SnapshotVersion":{ + "shape":"SnapshotVersion", + "documentation":"

The system generated version of a task template that is associated with a task, when the task is created.

", + "location":"querystring", + "locationName":"snapshotVersion" + } + } + }, + "GetTaskTemplateResponse":{ + "type":"structure", + "required":[ + "Id", + "Arn", + "Name" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + }, + "Id":{ + "shape":"TaskTemplateId", + "documentation":"

A unique identifier for the task template.

" + }, + "Arn":{ + "shape":"TaskTemplateArn", + "documentation":"

The Amazon Resource Name (ARN).

" + }, + "Name":{ + "shape":"TaskTemplateName", + "documentation":"

The name of the task template.

" + }, + "Description":{ + "shape":"TaskTemplateDescription", + "documentation":"

The description of the task template.

" + }, + "ContactFlowId":{ + "shape":"ContactFlowId", + "documentation":"

The identifier of the flow that runs by default when a task is created by referencing this template.

" + }, + "Constraints":{ + "shape":"TaskTemplateConstraints", + "documentation":"

Constraints that are applicable to the fields listed.

" + }, + "Defaults":{ + "shape":"TaskTemplateDefaults", + "documentation":"

The default values for fields when a task is created by referencing this template.

" + }, + "Fields":{ + "shape":"TaskTemplateFields", + "documentation":"

Fields that are part of the template.

" + }, + "Status":{ + "shape":"TaskTemplateStatus", + "documentation":"

Marks a template as ACTIVE or INACTIVE for a task to refer to it. Tasks can only be created from ACTIVE templates. If a template is marked as INACTIVE, then a task that refers to this template cannot be created.

" + }, + "LastModifiedTime":{ + "shape":"timestamp", + "documentation":"

The timestamp when the task template was last modified.

" + }, + "CreatedTime":{ + "shape":"timestamp", + "documentation":"

The timestamp when the task template was created.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + } + }, + "GetTrafficDistributionRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"TrafficDistributionGroupIdOrArn", + "documentation":"

The identifier of the traffic distribution group.

", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetTrafficDistributionResponse":{ + "type":"structure", + "members":{ + "TelephonyConfig":{ + "shape":"TelephonyConfig", + "documentation":"

The distribution of traffic between the instance and its replicas.

" + }, + "Id":{ + "shape":"TrafficDistributionGroupId", + "documentation":"

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

" + }, + "Arn":{ + "shape":"TrafficDistributionGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the traffic distribution group.

" + } + } + }, "Grouping":{ "type":"string", "enum":[ @@ -5563,7 +6705,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } }, "documentation":"

Contains information about a hierarchy group.

" @@ -5613,6 +6755,20 @@ "type":"list", "member":{"shape":"HierarchyGroupSummary"} }, + "HierarchyGroupSummaryReference":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"HierarchyGroupId", + "documentation":"

The unique identifier for the hierarchy group.

" + }, + "Arn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) for the hierarchy group.

" + } + }, + "documentation":"

Information about the hierarchy group.

" + }, "HierarchyLevel":{ "type":"structure", "members":{ @@ -5670,6 +6826,32 @@ }, "documentation":"

Contains information about the levels of a hierarchy group.

" }, + "HierarchyPathReference":{ + "type":"structure", + "members":{ + "LevelOne":{ + "shape":"HierarchyGroupSummaryReference", + "documentation":"

Information about level one.

" + }, + "LevelTwo":{ + "shape":"HierarchyGroupSummaryReference", + "documentation":"

Information about level two.

" + }, + "LevelThree":{ + "shape":"HierarchyGroupSummaryReference", + "documentation":"

Information about level three.

" + }, + "LevelFour":{ + "shape":"HierarchyGroupSummaryReference", + "documentation":"

Information about level four.

" + }, + "LevelFive":{ + "shape":"HierarchyGroupSummaryReference", + "documentation":"

Information about level five.

" + } + }, + "documentation":"

Information about the levels in the hierarchy group.

" + }, "HierarchyStructure":{ "type":"structure", "members":{ @@ -5856,7 +7038,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } }, "documentation":"

Information about of the hours of operation.

" @@ -6007,6 +7189,10 @@ }, "documentation":"

The Amazon Connect instance.

" }, + "InstanceArn":{ + "type":"string", + "pattern":"arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9-]{1}:[0-9]{1,20}:instance/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, "InstanceAttributeType":{ "type":"string", "enum":[ @@ -6017,7 +7203,9 @@ "AUTO_RESOLVE_BEST_VOICES", "USE_CUSTOM_TTS_VOICES", "EARLY_MEDIA", - "MULTI_PARTY_CONFERENCE" + "MULTI_PARTY_CONFERENCE", + "HIGH_VOLUME_OUTBOUND", + "ENHANCED_CONTACT_MONITORING" ] }, "InstanceAttributeValue":{ @@ -6030,6 +7218,12 @@ "max":100, "min":1 }, + "InstanceIdOrArn":{ + "type":"string", + "max":250, + "min":1, + "pattern":"^(arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0-9]{1,20}:instance/)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, "InstanceStatus":{ "type":"string", "enum":[ @@ -6141,6 +7335,10 @@ "type":"list", "member":{"shape":"InstanceSummary"} }, + "IntegerCount":{ + "type":"integer", + "min":0 + }, "IntegrationAssociationId":{ "type":"string", "max":200, @@ -6195,7 +7393,8 @@ "VOICE_ID", "PINPOINT_APP", "WISDOM_ASSISTANT", - "WISDOM_KNOWLEDGE_BASE" + "WISDOM_KNOWLEDGE_BASE", + "CASES_DOMAIN" ] }, "InternalServiceException":{ @@ -6215,10 +7414,10 @@ "members":{ "problems":{ "shape":"Problems", - "documentation":"

The problems with the contact flow. Please fix before trying again.

" + "documentation":"

The problems with the flow. Please fix before trying again.

" } }, - "documentation":"

The contact flow is not valid.

", + "documentation":"

The flow is not valid.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -6255,6 +7454,20 @@ "error":{"httpStatusCode":400}, "exception":true }, + "InvisibleFieldInfo":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"TaskTemplateFieldIdentifier", + "documentation":"

Identifier of the invisible field.

" + } + }, + "documentation":"

A field that is invisible to an agent.

" + }, + "InvisibleTaskTemplateFields":{ + "type":"list", + "member":{"shape":"InvisibleFieldInfo"} + }, "KeyId":{ "type":"string", "max":128, @@ -6319,7 +7532,7 @@ }, "LexRegion":{ "shape":"LexRegion", - "documentation":"

The Region that the Amazon Lex bot was created in.

" + "documentation":"

The Amazon Web Services Region where the Amazon Lex bot was created.

" } }, "documentation":"

Configuration information of an Amazon Lex bot.

" @@ -6497,7 +7710,7 @@ "members":{ "LexBots":{ "shape":"LexBotConfigList", - "documentation":"

The names and Regions of the Amazon Lex or Amazon Lex V2 bots associated with the specified instance.

" + "documentation":"

The names and Amazon Web Services Regions of the Amazon Lex or Amazon Lex V2 bots associated with the specified instance.

" }, "NextToken":{ "shape":"NextToken", @@ -6530,7 +7743,7 @@ }, "ContactFlowModuleState":{ "shape":"ContactFlowModuleState", - "documentation":"

The state of the contact flow module.

", + "documentation":"

The state of the flow module.

", "location":"querystring", "locationName":"state" } @@ -6541,7 +7754,7 @@ "members":{ "ContactFlowModulesSummaryList":{ "shape":"ContactFlowModulesSummaryList", - "documentation":"

Information about the contact flow module.

" + "documentation":"

Information about the flow module.

" }, "NextToken":{ "shape":"NextToken", @@ -6561,7 +7774,7 @@ }, "ContactFlowTypes":{ "shape":"ContactFlowTypes", - "documentation":"

The type of contact flow.

", + "documentation":"

The type of flow.

", "location":"querystring", "locationName":"contactFlowTypes" }, @@ -6573,7 +7786,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "location":"querystring", "locationName":"maxResults" } @@ -6584,7 +7797,7 @@ "members":{ "ContactFlowSummaryList":{ "shape":"ContactFlowSummaryList", - "documentation":"

Information about the contact flows.

" + "documentation":"

Information about the flows.

" }, "NextToken":{ "shape":"NextToken", @@ -6631,7 +7844,7 @@ "members":{ "ReferenceSummaryList":{ "shape":"ReferenceSummaryList", - "documentation":"

Information about the contact flows.

" + "documentation":"

Information about the flows.

" }, "NextToken":{ "shape":"NextToken", @@ -6695,7 +7908,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "location":"querystring", "locationName":"maxResults" } @@ -6942,7 +8155,7 @@ "members":{ "LexBots":{ "shape":"LexBotsList", - "documentation":"

The names and Regions of the Amazon Lex bots associated with the specified instance.

" + "documentation":"

The names and Amazon Web Services Regions of the Amazon Lex bots associated with the specified instance.

" }, "NextToken":{ "shape":"NextToken", @@ -6980,7 +8193,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "location":"querystring", "locationName":"maxResults" } @@ -7024,10 +8237,10 @@ }, "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

" + "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

" } }, - "documentation":"

Information about phone numbers that have been claimed to your Amazon Connect instance.

" + "documentation":"

Information about phone numbers that have been claimed to your Amazon Connect instance or traffic distribution group.

" }, "ListPhoneNumbersSummaryList":{ "type":"list", @@ -7038,7 +8251,7 @@ "members":{ "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to. If TargetArn input is not provided, this API lists numbers claimed to all the Amazon Connect instances belonging to your account.

" + "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to. If TargetArn input is not provided, this API lists numbers claimed to all the Amazon Connect instances belonging to your account in the same Amazon Web Services Region as the request.

" }, "MaxResults":{ "shape":"MaxResult1000", @@ -7072,7 +8285,7 @@ }, "ListPhoneNumbersSummaryList":{ "shape":"ListPhoneNumbersSummaryList", - "documentation":"

Information about phone numbers that have been claimed to your Amazon Connect instances.

" + "documentation":"

Information about phone numbers that have been claimed to your Amazon Connect instances or traffic distribution groups.

" } } }, @@ -7094,7 +8307,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "box":true, "location":"querystring", "locationName":"maxResults" @@ -7141,7 +8354,7 @@ }, "MaxResults":{ "shape":"MaxResult100", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "box":true, "location":"querystring", "locationName":"maxResults" @@ -7185,7 +8398,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "location":"querystring", "locationName":"maxResults" } @@ -7222,7 +8435,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "box":true, "location":"querystring", "locationName":"maxResults" @@ -7275,7 +8488,7 @@ }, "MaxResults":{ "shape":"MaxResult100", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "box":true, "location":"querystring", "locationName":"maxResults" @@ -7313,7 +8526,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "box":true, "location":"querystring", "locationName":"maxResults" @@ -7333,6 +8546,57 @@ } } }, + "ListRulesRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "PublishStatus":{ + "shape":"RulePublishStatus", + "documentation":"

The publish status of the rule.

", + "location":"querystring", + "locationName":"publishStatus" + }, + "EventSourceName":{ + "shape":"EventSourceName", + "documentation":"

The name of the event source.

", + "location":"querystring", + "locationName":"eventSourceName" + }, + "MaxResults":{ + "shape":"MaxResult200", + "documentation":"

The maximum number of results to return per page.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListRulesResponse":{ + "type":"structure", + "required":["RuleSummaryList"], + "members":{ + "RuleSummaryList":{ + "shape":"RuleSummaryList", + "documentation":"

Summary information about a rule.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If there are additional results, this is the token for the next set of results.

" + } + } + }, "ListSecurityKeysRequest":{ "type":"structure", "required":["InstanceId"], @@ -7410,7 +8674,7 @@ "members":{ "Permissions":{ "shape":"PermissionsList", - "documentation":"

The permissions granted to the security profile.

" + "documentation":"

The permissions granted to the security profile. For a complete list of valid permissions, see List of security profile permissions.

" }, "NextToken":{ "shape":"NextToken", @@ -7436,7 +8700,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "box":true, "location":"querystring", "locationName":"maxResults" @@ -7477,6 +8741,92 @@ } } }, + "ListTaskTemplatesRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

It is not expected that you set this because the value returned in the previous response is always null.

", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResult100", + "documentation":"

The maximum number of results to return per page.

It is not expected that you set this.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "Status":{ + "shape":"TaskTemplateStatus", + "documentation":"

Marks a template as ACTIVE or INACTIVE for a task to refer to it. Tasks can only be created from ACTIVE templates. If a template is marked as INACTIVE, then a task that refers to this template cannot be created.

", + "location":"querystring", + "locationName":"status" + }, + "Name":{ + "shape":"TaskTemplateName", + "documentation":"

The name of the task template.

", + "location":"querystring", + "locationName":"name" + } + } + }, + "ListTaskTemplatesResponse":{ + "type":"structure", + "members":{ + "TaskTemplates":{ + "shape":"TaskTemplateList", + "documentation":"

Provides details about a list of task templates belonging to an instance.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If there are additional results, this is the token for the next set of results.

This is always returned as a null in the response.

" + } + } + }, + "ListTrafficDistributionGroupsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResult10", + "documentation":"

The maximum number of results to return per page.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "InstanceId":{ + "shape":"InstanceIdOrArn", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"querystring", + "locationName":"instanceId" + } + } + }, + "ListTrafficDistributionGroupsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If there are additional results, this is the token for the next set of results.

" + }, + "TrafficDistributionGroupSummaryList":{ + "shape":"TrafficDistributionGroupSummaryList", + "documentation":"

A list of traffic distribution groups.

" + } + } + }, "ListUseCasesRequest":{ "type":"structure", "required":[ @@ -7543,7 +8893,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "box":true, "location":"querystring", "locationName":"maxResults" @@ -7581,7 +8931,7 @@ }, "MaxResults":{ "shape":"MaxResult1000", - "documentation":"

The maximum number of results to return per page.

", + "documentation":"

The maximum number of results to return per page. The default MaxResult size is 100.

", "box":true, "location":"querystring", "locationName":"maxResults" @@ -7601,6 +8951,7 @@ } } }, + "Long":{"type":"long"}, "MaxResult10":{ "type":"integer", "max":10, @@ -7621,6 +8972,11 @@ "max":2, "min":1 }, + "MaxResult200":{ + "type":"integer", + "max":200, + "min":1 + }, "MaxResult25":{ "type":"integer", "max":25, @@ -7659,17 +9015,110 @@ "max":59, "min":0 }, + "MonitorCapability":{ + "type":"string", + "enum":[ + "SILENT_MONITOR", + "BARGE" + ] + }, + "MonitorContactRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "ContactId", + "UserId" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + }, + "ContactId":{ + "shape":"ContactId", + "documentation":"

The identifier of the contact.

" + }, + "UserId":{ + "shape":"AgentResourceId", + "documentation":"

The identifier of the user account.

" + }, + "AllowedMonitorCapabilities":{ + "shape":"AllowedMonitorCapabilities", + "documentation":"

Specify which monitoring actions the user is allowed to take. For example, whether the user is allowed to escalate from silent monitoring to barge.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "idempotencyToken":true + } + } + }, + "MonitorContactResponse":{ + "type":"structure", + "members":{ + "ContactId":{ + "shape":"ContactId", + "documentation":"

The identifier of the contact.

" + }, + "ContactArn":{ + "shape":"ARN", + "documentation":"

The ARN of the contact.

" + } + } + }, "Name":{ "type":"string", "max":512, "min":0 }, + "Name128":{ + "type":"string", + "max":128, + "min":1, + "pattern":"(^[\\S].*[\\S]$)|(^[\\S]$)" + }, "NextToken":{"type":"string"}, "NextToken2500":{ "type":"string", "max":2500, "min":1 }, + "NotificationContentType":{ + "type":"string", + "enum":["PLAIN_TEXT"] + }, + "NotificationDeliveryType":{ + "type":"string", + "enum":["EMAIL"] + }, + "NotificationRecipientType":{ + "type":"structure", + "members":{ + "UserTags":{ + "shape":"UserTagMap", + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }. Amazon Connect users with the specified tags will be notified.

" + }, + "UserIds":{ + "shape":"UserIdList", + "documentation":"

A list of user IDs.

" + } + }, + "documentation":"

The type of notification recipient.

" + }, + "NumberReference":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"ReferenceKey", + "documentation":"

Identifier of the number reference.

" + }, + "Value":{ + "shape":"ReferenceValue", + "documentation":"

A valid number.

" + } + }, + "documentation":"

Information about a reference when the referenceType is NUMBER. Otherwise, null.

" + }, "Origin":{ "type":"string", "max":267 @@ -7744,6 +9193,11 @@ "type":"string", "pattern":"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$/" }, + "Percentage":{ + "type":"integer", + "max":100, + "min":0 + }, "PermissionsList":{ "type":"list", "member":{"shape":"SecurityProfilePermission"}, @@ -8034,7 +9488,7 @@ "documentation":"

The status message.

" } }, - "documentation":"

The status of the phone number.

" + "documentation":"

The status of the phone number.

  • CLAIMED means the previous ClaimedPhoneNumber or UpdatePhoneNumber operation succeeded.

  • IN_PROGRESS means a ClaimedPhoneNumber or UpdatePhoneNumber operation is still in progress and has not yet completed. You can call DescribePhoneNumber at a later time to verify if the previous operation has completed.

  • FAILED indicates that the previous ClaimedPhoneNumber or UpdatePhoneNumber operation has failed. It will include a message indicating the failure reason. A common reason for a failure may be that the TargetArn value you are claiming or updating a phone number to has reached its limit of total claimed numbers. If you received a FAILED status from a ClaimPhoneNumber API call, you have one day to retry claiming the phone number before the number is released back to the inventory for other customers to claim.

" }, "PhoneNumberSummary":{ "type":"structure", @@ -8162,6 +9616,55 @@ "type":"list", "member":{"shape":"PromptSummary"} }, + "PropertyValidationException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"Message"}, + "PropertyList":{"shape":"PropertyValidationExceptionPropertyList"} + }, + "documentation":"

The property is not valid.

", + "error":{"httpStatusCode":400}, + "exception":true + }, + "PropertyValidationExceptionProperty":{ + "type":"structure", + "required":[ + "PropertyPath", + "Reason", + "Message" + ], + "members":{ + "PropertyPath":{ + "shape":"String", + "documentation":"

The full property path.

" + }, + "Reason":{ + "shape":"PropertyValidationExceptionReason", + "documentation":"

Why the property is not valid.

" + }, + "Message":{ + "shape":"Message", + "documentation":"

A message describing why the property is not valid.

" + } + }, + "documentation":"

Contains information about why a property is not valid.

" + }, + "PropertyValidationExceptionPropertyList":{ + "type":"list", + "member":{"shape":"PropertyValidationExceptionProperty"} + }, + "PropertyValidationExceptionReason":{ + "type":"string", + "enum":[ + "INVALID_FORMAT", + "UNIQUE_CONSTRAINT_VIOLATED", + "REFERENCED_RESOURCE_NOT_FOUND", + "RESOURCE_NAME_ALREADY_EXISTS", + "REQUIRED_PROPERTY_MISSING", + "NOT_SUPPORTED" + ] + }, "PutUserStatusRequest":{ "type":"structure", "required":[ @@ -8231,7 +9734,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } }, "documentation":"

Contains information about a queue.

" @@ -8247,7 +9750,7 @@ "members":{ "Id":{ "shape":"QueueId", - "documentation":"

The identifier of the agent who accepted the contact.

" + "documentation":"

The unique identifier for the queue.

" }, "EnqueueTimestamp":{ "shape":"timestamp", @@ -8278,10 +9781,10 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

" + "documentation":"

The identifier of the flow.

" } }, - "documentation":"

Contains information about a queue for a quick connect. The contact flow must be of type Transfer to Queue.

" + "documentation":"

Contains information about a queue for a quick connect. The flow must be of type Transfer to Queue.

" }, "QueueReference":{ "type":"structure", @@ -8297,6 +9800,40 @@ }, "documentation":"

Contains information about a queue resource for which metrics are returned.

" }, + "QueueSearchConditionList":{ + "type":"list", + "member":{"shape":"QueueSearchCriteria"} + }, + "QueueSearchCriteria":{ + "type":"structure", + "members":{ + "OrConditions":{ + "shape":"QueueSearchConditionList", + "documentation":"

A list of conditions which would be applied together with an OR condition.

" + }, + "AndConditions":{ + "shape":"QueueSearchConditionList", + "documentation":"

A list of conditions which would be applied together with an AND condition.

" + }, + "StringCondition":{"shape":"StringCondition"}, + "QueueTypeCondition":{ + "shape":"SearchableQueueType", + "documentation":"

The type of queue.

" + } + }, + "documentation":"

The search criteria to be used to return queues.

The name and description fields support \"contains\" queries with a minimum of 2 characters and a maximum of 25 characters. Any queries with character lengths outside of this range will throw invalid results.

" + }, + "QueueSearchFilter":{ + "type":"structure", + "members":{ + "TagFilter":{"shape":"ControlPlaneTagFilter"} + }, + "documentation":"

Filters to be applied to search results.

" + }, + "QueueSearchSummaryList":{ + "type":"list", + "member":{"shape":"Queue"} + }, "QueueStatus":{ "type":"string", "enum":[ @@ -8373,7 +9910,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } }, "documentation":"

Contains information about a quick connect.

" @@ -8457,6 +9994,20 @@ "max":50, "min":1 }, + "ReadOnlyFieldInfo":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"TaskTemplateFieldIdentifier", + "documentation":"

Identifier of the read-only field.

" + } + }, + "documentation":"

Indicates a field that is read-only to an agent.

" + }, + "ReadOnlyTaskTemplateFields":{ + "type":"list", + "member":{"shape":"ReadOnlyFieldInfo"} + }, "Reference":{ "type":"structure", "required":[ @@ -8470,10 +10021,10 @@ }, "Type":{ "shape":"ReferenceType", - "documentation":"

The type of the reference. Only URL type can be added or updated on a contact.

" + "documentation":"

The type of the reference. DATE must be of type Epoch timestamp.

" } }, - "documentation":"

A link that an agent selects to complete a given task. You can have up to 4,096 UTF-8 bytes across all references for a contact.

" + "documentation":"

Well-formed data on a contact, used by agents to complete a contact request. You can have up to 4,096 UTF-8 bytes across all references for a contact.

" }, "ReferenceKey":{ "type":"string", @@ -8492,11 +10043,27 @@ "members":{ "Url":{ "shape":"UrlReference", - "documentation":"

Information about the URL reference if the referenceType is URL. Otherwise, null.

" + "documentation":"

Information about the reference when the referenceType is URL. Otherwise, null.

" }, "Attachment":{ "shape":"AttachmentReference", - "documentation":"

Information about the attachment reference if the referenceType is ATTACHMENT. Otherwise, null.

" + "documentation":"

Information about the reference when the referenceType is ATTACHMENT. Otherwise, null.

" + }, + "String":{ + "shape":"StringReference", + "documentation":"

Information about a reference when the referenceType is STRING. Otherwise, null.

" + }, + "Number":{ + "shape":"NumberReference", + "documentation":"

Information about a reference when the referenceType is NUMBER. Otherwise, null.

" + }, + "Date":{ + "shape":"DateReference", + "documentation":"

Information about a reference when the referenceType is DATE. Otherwise, null.

" + }, + "Email":{ + "shape":"EmailReference", + "documentation":"

Information about a reference when the referenceType is EMAIL. Otherwise, null.

" } }, "documentation":"

Contains summary information about a reference. ReferenceSummary contains only one non null field between the URL and attachment based on the reference type.

", @@ -8510,13 +10077,17 @@ "type":"string", "enum":[ "URL", - "ATTACHMENT" + "ATTACHMENT", + "NUMBER", + "STRING", + "DATE", + "EMAIL" ] }, "ReferenceTypes":{ "type":"list", "member":{"shape":"ReferenceType"}, - "max":2 + "max":6 }, "ReferenceValue":{ "type":"string", @@ -8535,13 +10106,69 @@ }, "ClientToken":{ "shape":"ClientToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", "idempotencyToken":true, "location":"querystring", "locationName":"clientToken" } } }, + "ReplicateInstanceRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "ReplicaRegion", + "ReplicaAlias" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceIdOrArn", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance. You can provide the InstanceId, or the entire ARN.

", + "location":"uri", + "locationName":"InstanceId" + }, + "ReplicaRegion":{ + "shape":"AwsRegion", + "documentation":"

The Amazon Web Services Region where to replicate the Amazon Connect instance.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "idempotencyToken":true + }, + "ReplicaAlias":{ + "shape":"DirectoryAlias", + "documentation":"

The alias for the replicated instance. The ReplicaAlias must be unique.

" + } + } + }, + "ReplicateInstanceResponse":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"InstanceId", + "documentation":"

The identifier of the replicated instance. You can find the instanceId in the ARN of the instance. The replicated instance has the same identifier as the instance it was replicated from.

" + }, + "Arn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the replicated instance.

" + } + } + }, + "RequiredFieldInfo":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"TaskTemplateFieldIdentifier", + "documentation":"

The unique identifier for the field.

" + } + }, + "documentation":"

Information about a required field.

" + }, + "RequiredTaskTemplateFields":{ + "type":"list", + "member":{"shape":"RequiredFieldInfo"} + }, "ResourceConflictException":{ "type":"structure", "members":{ @@ -8580,6 +10207,15 @@ "error":{"httpStatusCode":404}, "exception":true }, + "ResourceNotReadyException":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"} + }, + "documentation":"

The resource is not ready.

", + "error":{"httpStatusCode":409}, + "exception":true + }, "ResourceType":{ "type":"string", "enum":[ @@ -8652,7 +10288,15 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

One or more tags.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + }, + "NumberOfAssociatedQueues":{ + "shape":"Long", + "documentation":"

The number of associated queues in routing profile.

" + }, + "NumberOfAssociatedUsers":{ + "shape":"Long", + "documentation":"

The number of associated users in routing profile.

" } }, "documentation":"

Contains information about a routing profile.

" @@ -8663,6 +10307,10 @@ "min":1 }, "RoutingProfileId":{"type":"string"}, + "RoutingProfileList":{ + "type":"list", + "member":{"shape":"RoutingProfile"} + }, "RoutingProfileName":{ "type":"string", "max":127, @@ -8763,6 +10411,46 @@ "type":"list", "member":{"shape":"RoutingProfileQueueReference"} }, + "RoutingProfileReference":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"RoutingProfileId", + "documentation":"

The identifier of the routing profile.

" + }, + "Arn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the routing profile.

" + } + }, + "documentation":"

Information about the routing profile assigned to the user.

" + }, + "RoutingProfileSearchConditionList":{ + "type":"list", + "member":{"shape":"RoutingProfileSearchCriteria"} + }, + "RoutingProfileSearchCriteria":{ + "type":"structure", + "members":{ + "OrConditions":{ + "shape":"RoutingProfileSearchConditionList", + "documentation":"

A list of conditions which would be applied together with an OR condition.

" + }, + "AndConditions":{ + "shape":"RoutingProfileSearchConditionList", + "documentation":"

A list of conditions which would be applied together with an AND condition.

" + }, + "StringCondition":{"shape":"StringCondition"} + }, + "documentation":"

The search criteria to be used to return routing profiles.

The name and description fields support \"contains\" queries with a minimum of 2 characters and a maximum of 25 characters. Any queries with character lengths outside of this range will throw invalid results.

" + }, + "RoutingProfileSearchFilter":{ + "type":"structure", + "members":{ + "TagFilter":{"shape":"ControlPlaneTagFilter"} + }, + "documentation":"

Filters to be applied to search results.

" + }, "RoutingProfileSummary":{ "type":"structure", "members":{ @@ -8785,6 +10473,185 @@ "type":"list", "member":{"shape":"RoutingProfileSummary"} }, + "Rule":{ + "type":"structure", + "required":[ + "Name", + "RuleId", + "RuleArn", + "TriggerEventSource", + "Function", + "Actions", + "PublishStatus", + "CreatedTime", + "LastUpdatedTime", + "LastUpdatedBy" + ], + "members":{ + "Name":{ + "shape":"RuleName", + "documentation":"

The name of the rule.

" + }, + "RuleId":{ + "shape":"RuleId", + "documentation":"

A unique identifier for the rule.

" + }, + "RuleArn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the rule.

" + }, + "TriggerEventSource":{ + "shape":"RuleTriggerEventSource", + "documentation":"

The event source to trigger the rule.

" + }, + "Function":{ + "shape":"RuleFunction", + "documentation":"

The conditions of the rule.

" + }, + "Actions":{ + "shape":"RuleActions", + "documentation":"

A list of actions to be run when the rule is triggered.

" + }, + "PublishStatus":{ + "shape":"RulePublishStatus", + "documentation":"

The publish status of the rule.

" + }, + "CreatedTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for when the rule was created.

" + }, + "LastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for the when the rule was last updated.

" + }, + "LastUpdatedBy":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the user who last updated the rule.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + }, + "documentation":"

Information about a rule.

" + }, + "RuleAction":{ + "type":"structure", + "required":["ActionType"], + "members":{ + "ActionType":{ + "shape":"ActionType", + "documentation":"

The type of action that creates a rule.

" + }, + "TaskAction":{ + "shape":"TaskActionDefinition", + "documentation":"

Information about the task action. This field is required if TriggerEventSource is one of the following values: OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | OnSalesforceCaseCreate

" + }, + "EventBridgeAction":{ + "shape":"EventBridgeActionDefinition", + "documentation":"

Information about the EventBridge action.

" + }, + "AssignContactCategoryAction":{ + "shape":"AssignContactCategoryActionDefinition", + "documentation":"

Information about the contact category action.

" + }, + "SendNotificationAction":{ + "shape":"SendNotificationActionDefinition", + "documentation":"

Information about the send notification action.

" + } + }, + "documentation":"

Information about the action to be performed when a rule is triggered.

" + }, + "RuleActions":{ + "type":"list", + "member":{"shape":"RuleAction"} + }, + "RuleFunction":{"type":"string"}, + "RuleId":{ + "type":"string", + "max":256, + "min":1 + }, + "RuleName":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^[0-9a-zA-Z._-]+" + }, + "RulePublishStatus":{ + "type":"string", + "enum":[ + "DRAFT", + "PUBLISHED" + ] + }, + "RuleSummary":{ + "type":"structure", + "required":[ + "Name", + "RuleId", + "RuleArn", + "EventSourceName", + "PublishStatus", + "ActionSummaries", + "CreatedTime", + "LastUpdatedTime" + ], + "members":{ + "Name":{ + "shape":"RuleName", + "documentation":"

The name of the rule.

" + }, + "RuleId":{ + "shape":"RuleId", + "documentation":"

A unique identifier for the rule.

" + }, + "RuleArn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the rule.

" + }, + "EventSourceName":{ + "shape":"EventSourceName", + "documentation":"

The name of the event source.

" + }, + "PublishStatus":{ + "shape":"RulePublishStatus", + "documentation":"

The publish status of the rule.

" + }, + "ActionSummaries":{ + "shape":"ActionSummaries", + "documentation":"

A list of ActionTypes associated with a rule.

" + }, + "CreatedTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for when the rule was created.

" + }, + "LastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp for when the rule was last updated.

" + } + }, + "documentation":"

A list of ActionTypes associated with a rule.

" + }, + "RuleSummaryList":{ + "type":"list", + "member":{"shape":"RuleSummary"} + }, + "RuleTriggerEventSource":{ + "type":"structure", + "required":["EventSourceName"], + "members":{ + "EventSourceName":{ + "shape":"EventSourceName", + "documentation":"

The name of the event source.

" + }, + "IntegrationAssociationId":{ + "shape":"IntegrationAssociationId", + "documentation":"

The identifier for the integration association.

" + } + }, + "documentation":"

The name of the event source. This field is required if TriggerEventSource is one of the following values: OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | OnSalesforceCaseCreate

" + }, "S3Config":{ "type":"structure", "required":[ @@ -8817,7 +10684,7 @@ "members":{ "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

" + "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

" }, "PhoneNumberCountryCode":{ "shape":"PhoneNumberCountryCode", @@ -8851,7 +10718,139 @@ }, "AvailableNumbersList":{ "shape":"AvailableNumbersList", - "documentation":"

A list of available phone numbers that you can claim for your Amazon Connect instance.

" + "documentation":"

A list of available phone numbers that you can claim to your Amazon Connect instance or traffic distribution group.

" + } + } + }, + "SearchQueuesRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + }, + "NextToken":{ + "shape":"NextToken2500", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxResult100", + "documentation":"

The maximum number of results to return per page.

", + "box":true + }, + "SearchFilter":{ + "shape":"QueueSearchFilter", + "documentation":"

Filters to be applied to search results.

" + }, + "SearchCriteria":{ + "shape":"QueueSearchCriteria", + "documentation":"

The search criteria to be used to return queues.

The name and description fields support \"contains\" queries with a minimum of 2 characters and a maximum of 25 characters. Any queries with character lengths outside of this range will throw invalid results.

" + } + } + }, + "SearchQueuesResponse":{ + "type":"structure", + "members":{ + "Queues":{ + "shape":"QueueSearchSummaryList", + "documentation":"

Information about the queues.

" + }, + "NextToken":{ + "shape":"NextToken2500", + "documentation":"

If there are additional results, this is the token for the next set of results.

" + }, + "ApproximateTotalCount":{ + "shape":"ApproximateTotalCount", + "documentation":"

The total number of queues which matched your search query.

" + } + } + }, + "SearchRoutingProfilesRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + }, + "NextToken":{ + "shape":"NextToken2500", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxResult100", + "documentation":"

The maximum number of results to return per page.

", + "box":true + }, + "SearchFilter":{ + "shape":"RoutingProfileSearchFilter", + "documentation":"

Filters to be applied to search results.

" + }, + "SearchCriteria":{ + "shape":"RoutingProfileSearchCriteria", + "documentation":"

The search criteria to be used to return routing profiles.

The name and description fields support \"contains\" queries with a minimum of 2 characters and a maximum of 25 characters. Any queries with character lengths outside of this range will throw invalid results.

" + } + } + }, + "SearchRoutingProfilesResponse":{ + "type":"structure", + "members":{ + "RoutingProfiles":{ + "shape":"RoutingProfileList", + "documentation":"

Information about the routing profiles.

" + }, + "NextToken":{ + "shape":"NextToken2500", + "documentation":"

If there are additional results, this is the token for the next set of results.

" + }, + "ApproximateTotalCount":{ + "shape":"ApproximateTotalCount", + "documentation":"

The total number of routing profiles which matched your search query.

" + } + } + }, + "SearchSecurityProfilesRequest":{ + "type":"structure", + "required":["InstanceId"], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + }, + "NextToken":{ + "shape":"NextToken2500", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxResult100", + "documentation":"

The maximum number of results to return per page.

", + "box":true + }, + "SearchCriteria":{ + "shape":"SecurityProfileSearchCriteria", + "documentation":"

The search criteria to be used to return security profiles.

The name field support \"contains\" queries with a minimum of 2 characters and maximum of 25 characters. Any queries with character lengths outside of this range will throw invalid results.

The currently supported value for FieldName: name

" + }, + "SearchFilter":{ + "shape":"SecurityProfilesSearchFilter", + "documentation":"

Filters to be applied to search results.

" + } + } + }, + "SearchSecurityProfilesResponse":{ + "type":"structure", + "members":{ + "SecurityProfiles":{ + "shape":"SecurityProfilesSearchSummaryList", + "documentation":"

Information about the security profiles.

" + }, + "NextToken":{ + "shape":"NextToken2500", + "documentation":"

If there are additional results, this is the token for the next set of results.

" + }, + "ApproximateTotalCount":{ + "shape":"ApproximateTotalCount", + "documentation":"

The total number of security profiles which matched your search query.

" } } }, @@ -8940,6 +10939,10 @@ } } }, + "SearchableQueueType":{ + "type":"string", + "enum":["STANDARD"] + }, "SecurityKey":{ "type":"structure", "members":{ @@ -8987,7 +10990,15 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + }, + "AllowedAccessControlTags":{ + "shape":"AllowedAccessControlTags", + "documentation":"

The list of tags that a security profile uses to restrict access to resources in Amazon Connect.

" + }, + "TagRestrictedResources":{ + "shape":"TagRestrictedResourceList", + "documentation":"

The list of resources that a security profile applies tag restrictions to in Amazon Connect.

" } }, "documentation":"

Contains information about a security profile.

" @@ -9009,6 +11020,64 @@ "max":128, "min":1 }, + "SecurityProfilePolicyKey":{ + "type":"string", + "max":128, + "min":1 + }, + "SecurityProfilePolicyValue":{ + "type":"string", + "max":256 + }, + "SecurityProfileSearchConditionList":{ + "type":"list", + "member":{"shape":"SecurityProfileSearchCriteria"} + }, + "SecurityProfileSearchCriteria":{ + "type":"structure", + "members":{ + "OrConditions":{ + "shape":"SecurityProfileSearchConditionList", + "documentation":"

A list of conditions which would be applied together with an OR condition.

" + }, + "AndConditions":{ + "shape":"SecurityProfileSearchConditionList", + "documentation":"

A list of conditions which would be applied together with an AND condition.

" + }, + "StringCondition":{"shape":"StringCondition"} + }, + "documentation":"

The search criteria to be used to return security profiles.

The name field support \"contains\" queries with a minimum of 2 characters and maximum of 25 characters. Any queries with character lengths outside of this range will throw invalid results.

" + }, + "SecurityProfileSearchSummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"SecurityProfileId", + "documentation":"

The identifier of the security profile.

" + }, + "OrganizationResourceId":{ + "shape":"InstanceId", + "documentation":"

The organization resource identifier.

" + }, + "Arn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the security profile.

" + }, + "SecurityProfileName":{ + "shape":"SecurityProfileName", + "documentation":"

The name of the security profile.

" + }, + "Description":{ + "shape":"SecurityProfileDescription", + "documentation":"

The description of the security profile.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + }, + "documentation":"

Information about the returned security profiles.

" + }, "SecurityProfileSummary":{ "type":"structure", "members":{ @@ -9031,10 +11100,53 @@ "type":"list", "member":{"shape":"SecurityProfileSummary"} }, + "SecurityProfilesSearchFilter":{ + "type":"structure", + "members":{ + "TagFilter":{"shape":"ControlPlaneTagFilter"} + }, + "documentation":"

Filters to be applied to search results.

" + }, + "SecurityProfilesSearchSummaryList":{ + "type":"list", + "member":{"shape":"SecurityProfileSearchSummary"} + }, "SecurityToken":{ "type":"string", "sensitive":true }, + "SendNotificationActionDefinition":{ + "type":"structure", + "required":[ + "DeliveryMethod", + "Content", + "ContentType", + "Recipient" + ], + "members":{ + "DeliveryMethod":{ + "shape":"NotificationDeliveryType", + "documentation":"

Notification delivery method.

" + }, + "Subject":{ + "shape":"Subject", + "documentation":"

The subject of the email if the delivery method is EMAIL. Supports variable injection. For more information, see JSONPath reference in the Amazon Connect Administrators Guide.

" + }, + "Content":{ + "shape":"Content", + "documentation":"

Notification content. Supports variable injection. For more information, see JSONPath reference in the Amazon Connect Administrators Guide.

" + }, + "ContentType":{ + "shape":"NotificationContentType", + "documentation":"

Content type format.

" + }, + "Recipient":{ + "shape":"NotificationRecipientType", + "documentation":"

Notification recipient.

" + } + }, + "documentation":"

Information about the send notification action.

" + }, "ServiceQuotaExceededException":{ "type":"structure", "members":{ @@ -9044,6 +11156,11 @@ "error":{"httpStatusCode":402}, "exception":true }, + "SingleSelectOptions":{ + "type":"list", + "member":{"shape":"TaskTemplateSingleSelectOption"} + }, + "SnapshotVersion":{"type":"string"}, "SourceApplicationName":{ "type":"string", "max":100, @@ -9071,11 +11188,11 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow for initiating the chat. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the contact flow. On the contact flow page, under the name of the contact flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" + "documentation":"

The identifier of the flow for initiating the chat. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" }, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in contact flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" }, "ParticipantDetails":{ "shape":"ParticipantDetails", @@ -9087,7 +11204,7 @@ }, "ClientToken":{ "shape":"ClientToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", "idempotencyToken":true }, "ChatDurationInMinutes":{ @@ -9172,7 +11289,7 @@ }, "ClientToken":{ "shape":"ClientToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", "idempotencyToken":true } } @@ -9201,7 +11318,7 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow for the outbound call. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the contact flow. On the contact flow page, under the name of the contact flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" + "documentation":"

The identifier of the flow for the outbound call. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" }, "InstanceId":{ "shape":"InstanceId", @@ -9209,7 +11326,7 @@ }, "ClientToken":{ "shape":"ClientToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned.

", "idempotencyToken":true }, "SourcePhoneNumber":{ @@ -9218,11 +11335,11 @@ }, "QueueId":{ "shape":"QueueId", - "documentation":"

The queue for the call. If you specify a queue, the phone displayed for caller ID is the phone number specified in the queue. If you do not specify a queue, the queue defined in the contact flow is used. If you do not specify a queue, you must specify a source phone number.

" + "documentation":"

The queue for the call. If you specify a queue, the phone displayed for caller ID is the phone number specified in the queue. If you do not specify a queue, the queue defined in the flow is used. If you do not specify a queue, you must specify a source phone number.

" }, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in contact flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" }, "AnswerMachineDetectionConfig":{ "shape":"AnswerMachineDetectionConfig", @@ -9251,7 +11368,6 @@ "type":"structure", "required":[ "InstanceId", - "ContactFlowId", "Name" ], "members":{ @@ -9265,11 +11381,11 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow for initiating the tasks. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the contact flow. On the contact flow page, under the name of the contact flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" + "documentation":"

The identifier of the flow for initiating the tasks. To see the ContactFlowId in the Amazon Connect console user interface, on the navigation menu go to Routing, Contact Flows. Choose the flow. On the flow page, under the name of the flow, choose Show additional flow information. The ContactFlowId is the last part of the ARN, shown here in bold:

arn:aws:connect:us-west-2:xxxxxxxxxxxx:instance/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/contact-flow/846ec553-a005-41c0-8341-xxxxxxxxxxxx

" }, "Attributes":{ "shape":"Attributes", - "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in contact flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in flows just like any other contact attributes.

There can be up to 32,768 UTF-8 bytes across all key-value pairs per contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" }, "Name":{ "shape":"Name", @@ -9285,12 +11401,20 @@ }, "ClientToken":{ "shape":"ClientToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", "idempotencyToken":true }, "ScheduledTime":{ "shape":"Timestamp", - "documentation":"

The timestamp, in Unix Epoch seconds format, at which to start running the inbound contact flow. The scheduled time cannot be in the past. It must be within up to 6 days in future.

" + "documentation":"

The timestamp, in Unix Epoch seconds format, at which to start running the inbound flow. The scheduled time cannot be in the past. It must be within up to 6 days in future.

" + }, + "TaskTemplateId":{ + "shape":"TaskTemplateId", + "documentation":"

A unique identifier for the task template.

" + }, + "QuickConnectId":{ + "shape":"QuickConnectId", + "documentation":"

The identifier for the quick connect.

" } } }, @@ -9426,7 +11550,26 @@ "documentation":"

The type of comparison to be made when evaluating the string condition.

" } }, - "documentation":"

A leaf node condition which can be used to specify a string condition, for example, username = 'abc'.

" + "documentation":"

A leaf node condition which can be used to specify a string condition.

The currently supported value for FieldName: name

" + }, + "StringReference":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"ReferenceKey", + "documentation":"

Identifier of the string reference.

" + }, + "Value":{ + "shape":"ReferenceValue", + "documentation":"

A valid string.

" + } + }, + "documentation":"

Information about a reference when the referenceType is STRING. Otherwise, null.

" + }, + "Subject":{ + "type":"string", + "max":200, + "min":1 }, "SupportedMessagingContentType":{ "type":"string", @@ -9520,14 +11663,256 @@ }, "tags":{ "shape":"TagMap", - "documentation":"

One or more tags. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } } }, + "TagRestrictedResourceList":{ + "type":"list", + "member":{"shape":"TagRestrictedResourceName"}, + "max":10 + }, + "TagRestrictedResourceName":{ + "type":"string", + "max":128, + "min":1 + }, "TagValue":{ "type":"string", "max":256 }, + "TaskActionDefinition":{ + "type":"structure", + "required":[ + "Name", + "ContactFlowId" + ], + "members":{ + "Name":{ + "shape":"TaskNameExpression", + "documentation":"

The name. Supports variable injection. For more information, see JSONPath reference in the Amazon Connect Administrators Guide.

" + }, + "Description":{ + "shape":"TaskDescriptionExpression", + "documentation":"

The description. Supports variable injection. For more information, see JSONPath reference in the Amazon Connect Administrators Guide.

" + }, + "ContactFlowId":{ + "shape":"ContactFlowId", + "documentation":"

The identifier of the flow.

" + }, + "References":{ + "shape":"ContactReferences", + "documentation":"

Information about the reference when the referenceType is URL. Otherwise, null. (Supports variable injection in the Value field.)

" + } + }, + "documentation":"

Information about the task action.

" + }, + "TaskDescriptionExpression":{ + "type":"string", + "max":4096, + "min":0 + }, + "TaskNameExpression":{ + "type":"string", + "max":512, + "min":1 + }, + "TaskTemplateArn":{ + "type":"string", + "max":500, + "min":1 + }, + "TaskTemplateConstraints":{ + "type":"structure", + "members":{ + "RequiredFields":{ + "shape":"RequiredTaskTemplateFields", + "documentation":"

Lists the fields that are required to be filled by agents.

" + }, + "ReadOnlyFields":{ + "shape":"ReadOnlyTaskTemplateFields", + "documentation":"

Lists the fields that are read-only to agents, and cannot be edited.

" + }, + "InvisibleFields":{ + "shape":"InvisibleTaskTemplateFields", + "documentation":"

Lists the fields that are invisible to agents.

" + } + }, + "documentation":"

Describes constraints that apply to the template fields.

" + }, + "TaskTemplateDefaultFieldValue":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"TaskTemplateFieldIdentifier", + "documentation":"

Identifier of a field.

" + }, + "DefaultValue":{ + "shape":"TaskTemplateFieldValue", + "documentation":"

Default value for the field.

" + } + }, + "documentation":"

Describes a default field and its corresponding value.

" + }, + "TaskTemplateDefaultFieldValueList":{ + "type":"list", + "member":{"shape":"TaskTemplateDefaultFieldValue"} + }, + "TaskTemplateDefaults":{ + "type":"structure", + "members":{ + "DefaultFieldValues":{ + "shape":"TaskTemplateDefaultFieldValueList", + "documentation":"

Default value for the field.

" + } + }, + "documentation":"

Describes default values for fields on a template.

" + }, + "TaskTemplateDescription":{ + "type":"string", + "max":255, + "min":1 + }, + "TaskTemplateField":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"TaskTemplateFieldIdentifier", + "documentation":"

The unique identifier for the field.

" + }, + "Description":{ + "shape":"TaskTemplateFieldDescription", + "documentation":"

The description of the field.

" + }, + "Type":{ + "shape":"TaskTemplateFieldType", + "documentation":"

Indicates the type of field.

" + }, + "SingleSelectOptions":{ + "shape":"SingleSelectOptions", + "documentation":"

A list of options for a single select field.

" + } + }, + "documentation":"

Describes a single task template field.

" + }, + "TaskTemplateFieldDescription":{ + "type":"string", + "max":255, + "min":1 + }, + "TaskTemplateFieldIdentifier":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"TaskTemplateFieldName", + "documentation":"

The name of the task template field.

" + } + }, + "documentation":"

The identifier of the task template field.

" + }, + "TaskTemplateFieldName":{ + "type":"string", + "max":100, + "min":1 + }, + "TaskTemplateFieldType":{ + "type":"string", + "enum":[ + "NAME", + "DESCRIPTION", + "SCHEDULED_TIME", + "QUICK_CONNECT", + "URL", + "NUMBER", + "TEXT", + "TEXT_AREA", + "DATE_TIME", + "BOOLEAN", + "SINGLE_SELECT", + "EMAIL" + ] + }, + "TaskTemplateFieldValue":{ + "type":"string", + "max":4096, + "min":0 + }, + "TaskTemplateFields":{ + "type":"list", + "member":{"shape":"TaskTemplateField"} + }, + "TaskTemplateId":{ + "type":"string", + "max":500, + "min":1 + }, + "TaskTemplateList":{ + "type":"list", + "member":{"shape":"TaskTemplateMetadata"} + }, + "TaskTemplateMetadata":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"TaskTemplateId", + "documentation":"

A unique identifier for the task template.

" + }, + "Arn":{ + "shape":"TaskTemplateArn", + "documentation":"

The Amazon Resource Name (ARN) of the task template.

" + }, + "Name":{ + "shape":"TaskTemplateName", + "documentation":"

The name of the task template.

" + }, + "Description":{ + "shape":"TaskTemplateDescription", + "documentation":"

The description of the task template.

" + }, + "Status":{ + "shape":"TaskTemplateStatus", + "documentation":"

Marks a template as ACTIVE or INACTIVE for a task to refer to it. Tasks can only be created from ACTIVE templates. If a template is marked as INACTIVE, then a task that refers to this template cannot be created.

" + }, + "LastModifiedTime":{ + "shape":"timestamp", + "documentation":"

The timestamp when the task template was last modified.

" + }, + "CreatedTime":{ + "shape":"timestamp", + "documentation":"

The timestamp when the task template was created.

" + } + }, + "documentation":"

Contains summary information about the task template.

" + }, + "TaskTemplateName":{ + "type":"string", + "max":100, + "min":1 + }, + "TaskTemplateSingleSelectOption":{ + "type":"string", + "max":100, + "min":1 + }, + "TaskTemplateStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "INACTIVE" + ] + }, + "TelephonyConfig":{ + "type":"structure", + "required":["Distributions"], + "members":{ + "Distributions":{ + "shape":"DistributionList", + "documentation":"

Information about traffic distributions.

" + } + }, + "documentation":"

The distribution of traffic between the instance and its replicas.

" + }, "Threshold":{ "type":"structure", "members":{ @@ -9555,6 +11940,95 @@ }, "TimeZone":{"type":"string"}, "Timestamp":{"type":"timestamp"}, + "TrafficDistributionGroup":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"TrafficDistributionGroupId", + "documentation":"

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

" + }, + "Arn":{ + "shape":"TrafficDistributionGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the traffic distribution group.

" + }, + "Name":{ + "shape":"Name128", + "documentation":"

The name of the traffic distribution group.

" + }, + "Description":{ + "shape":"Description250", + "documentation":"

The description of the traffic distribution group.

" + }, + "InstanceArn":{ + "shape":"InstanceArn", + "documentation":"

The Amazon Resource Name (ARN).

" + }, + "Status":{ + "shape":"TrafficDistributionGroupStatus", + "documentation":"

The status of the traffic distribution group.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" + } + }, + "documentation":"

Information about a traffic distribution group.

" + }, + "TrafficDistributionGroupArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0-9]{1,20}:traffic-distribution-group/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "TrafficDistributionGroupId":{ + "type":"string", + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "TrafficDistributionGroupIdOrArn":{ + "type":"string", + "pattern":"^(arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z-]+-[0-9]{1}:[0-9]{1,20}:traffic-distribution-group/)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "TrafficDistributionGroupStatus":{ + "type":"string", + "enum":[ + "CREATION_IN_PROGRESS", + "ACTIVE", + "CREATION_FAILED", + "PENDING_DELETION", + "DELETION_FAILED", + "UPDATE_IN_PROGRESS" + ] + }, + "TrafficDistributionGroupSummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"TrafficDistributionGroupId", + "documentation":"

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

" + }, + "Arn":{ + "shape":"TrafficDistributionGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the traffic distribution group.

" + }, + "Name":{ + "shape":"Name128", + "documentation":"

The name of the traffic distribution group.

" + }, + "InstanceArn":{ + "shape":"InstanceArn", + "documentation":"

The Amazon Resource Name (ARN) of the traffic distribution group.

" + }, + "Status":{ + "shape":"TrafficDistributionGroupStatus", + "documentation":"

The status of the traffic distribution group.

" + } + }, + "documentation":"

Information about traffic distribution groups.

" + }, + "TrafficDistributionGroupSummaryList":{ + "type":"list", + "member":{"shape":"TrafficDistributionGroupSummary"}, + "max":10, + "min":0 + }, "TrafficType":{ "type":"string", "enum":[ @@ -9562,6 +12036,54 @@ "CAMPAIGN" ] }, + "TransferContactRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "ContactId", + "ContactFlowId" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + }, + "ContactId":{ + "shape":"ContactId", + "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + }, + "QueueId":{ + "shape":"QueueId", + "documentation":"

The identifier for the queue.

" + }, + "UserId":{ + "shape":"AgentResourceId", + "documentation":"

The identifier for the user.

" + }, + "ContactFlowId":{ + "shape":"ContactFlowId", + "documentation":"

The identifier of the flow.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "idempotencyToken":true + } + } + }, + "TransferContactResponse":{ + "type":"structure", + "members":{ + "ContactId":{ + "shape":"ContactId", + "documentation":"

The identifier of the contact in this instance of Amazon Connect.

" + }, + "ContactArn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) of the contact.

" + } + } + }, "URI":{ "type":"string", "max":2000, @@ -9661,7 +12183,7 @@ }, "Attributes":{ "shape":"Attributes", - "documentation":"

The Amazon Connect attributes. These attributes can be accessed in contact flows just like any other contact attributes.

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" + "documentation":"

The Amazon Connect attributes. These attributes can be accessed in flows just like any other contact attributes.

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys can include only alphanumeric, dash, and underscore characters.

" } } }, @@ -9686,13 +12208,13 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

", + "documentation":"

The identifier of the flow.

", "location":"uri", "locationName":"ContactFlowId" }, "Content":{ "shape":"ContactFlowContent", - "documentation":"

The JSON string that represents contact flow’s content. For an example, see Example contact flow in Amazon Connect Flow language in the Amazon Connect Administrator Guide.

" + "documentation":"

The JSON string that represents flow's content. For an example, see Example contact flow in Amazon Connect Flow language in the Amazon Connect Administrator Guide.

" } } }, @@ -9711,21 +12233,21 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

", + "documentation":"

The identifier of the flow.

", "location":"uri", "locationName":"ContactFlowId" }, "Name":{ "shape":"ContactFlowName", - "documentation":"

TThe name of the contact flow.

" + "documentation":"

The name of the flow.

" }, "Description":{ "shape":"ContactFlowDescription", - "documentation":"

The description of the contact flow.

" + "documentation":"

The description of the flow.

" }, "ContactFlowState":{ "shape":"ContactFlowState", - "documentation":"

The state of contact flow.

" + "documentation":"

The state of flow.

" } } }, @@ -9745,13 +12267,13 @@ }, "ContactFlowModuleId":{ "shape":"ContactFlowModuleId", - "documentation":"

The identifier of the contact flow module.

", + "documentation":"

The identifier of the flow module.

", "location":"uri", "locationName":"ContactFlowModuleId" }, "Content":{ "shape":"ContactFlowModuleContent", - "documentation":"

The content of the contact flow module.

" + "documentation":"

The content of the flow module.

" } } }, @@ -9775,21 +12297,21 @@ }, "ContactFlowModuleId":{ "shape":"ContactFlowModuleId", - "documentation":"

The identifier of the contact flow module.

", + "documentation":"

The identifier of the flow module.

", "location":"uri", "locationName":"ContactFlowModuleId" }, "Name":{ "shape":"ContactFlowModuleName", - "documentation":"

The name of the contact flow module.

" + "documentation":"

The name of the flow module.

" }, "Description":{ "shape":"ContactFlowModuleDescription", - "documentation":"

The description of the contact flow module.

" + "documentation":"

The description of the flow module.

" }, "State":{ "shape":"ContactFlowModuleState", - "documentation":"

The state of contact flow module.

" + "documentation":"

The state of flow module.

" } } }, @@ -9813,17 +12335,17 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

", + "documentation":"

The identifier of the flow.

", "location":"uri", "locationName":"ContactFlowId" }, "Name":{ "shape":"ContactFlowName", - "documentation":"

The name of the contact flow.

" + "documentation":"

The name of the flow.

" }, "Description":{ "shape":"ContactFlowDescription", - "documentation":"

The description of the contact flow.

" + "documentation":"

The description of the flow.

" } } }, @@ -9856,7 +12378,7 @@ }, "References":{ "shape":"ContactReferences", - "documentation":"

A formatted URL that is shown to an agent in the Contact Control Panel (CCP).

" + "documentation":"

Well-formed data on contact, shown to agents on Contact Control Panel (CCP).

" } } }, @@ -9883,7 +12405,7 @@ }, "ScheduledTime":{ "shape":"Timestamp", - "documentation":"

The timestamp, in Unix Epoch seconds format, at which to start running the inbound contact flow. The scheduled time cannot be in the past. It must be within up to 6 days in future.

" + "documentation":"

The timestamp, in Unix Epoch seconds format, at which to start running the inbound flow. The scheduled time cannot be in the past. It must be within up to 6 days in future.

" } } }, @@ -10005,11 +12527,11 @@ }, "TargetArn":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

" + "documentation":"

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

" }, "ClientToken":{ "shape":"ClientToken", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", "idempotencyToken":true } } @@ -10327,6 +12849,47 @@ } } }, + "UpdateRuleRequest":{ + "type":"structure", + "required":[ + "RuleId", + "InstanceId", + "Name", + "Function", + "Actions", + "PublishStatus" + ], + "members":{ + "RuleId":{ + "shape":"RuleId", + "documentation":"

A unique identifier for the rule.

", + "location":"uri", + "locationName":"RuleId" + }, + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "Name":{ + "shape":"RuleName", + "documentation":"

The name of the rule. You can change the name only if TriggerEventSource is one of the following values: OnZendeskTicketCreate | OnZendeskTicketStatusUpdate | OnSalesforceCaseCreate

" + }, + "Function":{ + "shape":"RuleFunction", + "documentation":"

The conditions of the rule.

" + }, + "Actions":{ + "shape":"RuleActions", + "documentation":"

A list of actions to be run when the rule is triggered.

" + }, + "PublishStatus":{ + "shape":"RulePublishStatus", + "documentation":"

The publish status of the rule.

" + } + } + }, "UpdateSecurityProfileRequest":{ "type":"structure", "required":[ @@ -10340,7 +12903,7 @@ }, "Permissions":{ "shape":"PermissionsList", - "documentation":"

The permissions granted to a security profile.

" + "documentation":"

The permissions granted to a security profile. For a list of valid permissions, see List of security profile permissions.

" }, "SecurityProfileId":{ "shape":"SecurityProfileId", @@ -10353,9 +12916,140 @@ "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", "location":"uri", "locationName":"InstanceId" + }, + "AllowedAccessControlTags":{ + "shape":"AllowedAccessControlTags", + "documentation":"

The list of tags that a security profile uses to restrict access to resources in Amazon Connect.

" + }, + "TagRestrictedResources":{ + "shape":"TagRestrictedResourceList", + "documentation":"

The list of resources that a security profile applies tag restrictions to in Amazon Connect.

" } } }, + "UpdateTaskTemplateRequest":{ + "type":"structure", + "required":[ + "TaskTemplateId", + "InstanceId" + ], + "members":{ + "TaskTemplateId":{ + "shape":"TaskTemplateId", + "documentation":"

A unique identifier for the task template.

", + "location":"uri", + "locationName":"TaskTemplateId" + }, + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "location":"uri", + "locationName":"InstanceId" + }, + "Name":{ + "shape":"TaskTemplateName", + "documentation":"

The name of the task template.

" + }, + "Description":{ + "shape":"TaskTemplateDescription", + "documentation":"

The description of the task template.

" + }, + "ContactFlowId":{ + "shape":"ContactFlowId", + "documentation":"

The identifier of the flow that runs by default when a task is created by referencing this template.

" + }, + "Constraints":{ + "shape":"TaskTemplateConstraints", + "documentation":"

Constraints that are applicable to the fields listed.

" + }, + "Defaults":{ + "shape":"TaskTemplateDefaults", + "documentation":"

The default values for fields when a task is created by referencing this template.

" + }, + "Status":{ + "shape":"TaskTemplateStatus", + "documentation":"

Marks a template as ACTIVE or INACTIVE for a task to refer to it. Tasks can only be created from ACTIVE templates. If a template is marked as INACTIVE, then a task that refers to this template cannot be created.

" + }, + "Fields":{ + "shape":"TaskTemplateFields", + "documentation":"

Fields that are part of the template.

" + } + } + }, + "UpdateTaskTemplateResponse":{ + "type":"structure", + "members":{ + "InstanceId":{ + "shape":"InstanceId", + "documentation":"

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + }, + "Id":{ + "shape":"TaskTemplateId", + "documentation":"

The identifier of the task template resource.

" + }, + "Arn":{ + "shape":"TaskTemplateArn", + "documentation":"

The Amazon Resource Name (ARN) for the task template resource.

" + }, + "Name":{ + "shape":"TaskTemplateName", + "documentation":"

The name of the task template.

" + }, + "Description":{ + "shape":"TaskTemplateDescription", + "documentation":"

The description of the task template.

" + }, + "ContactFlowId":{ + "shape":"ContactFlowId", + "documentation":"

The identifier of the flow that runs by default when a task is created by referencing this template.

" + }, + "Constraints":{ + "shape":"TaskTemplateConstraints", + "documentation":"

Constraints that are applicable to the fields listed.

" + }, + "Defaults":{ + "shape":"TaskTemplateDefaults", + "documentation":"

The default values for fields when a task is created by referencing this template.

" + }, + "Fields":{ + "shape":"TaskTemplateFields", + "documentation":"

Fields that are part of the template.

" + }, + "Status":{ + "shape":"TaskTemplateStatus", + "documentation":"

Marks a template as ACTIVE or INACTIVE for a task to refer to it. Tasks can only be created from ACTIVE templates. If a template is marked as INACTIVE, then a task that refers to this template cannot be created.

" + }, + "LastModifiedTime":{ + "shape":"timestamp", + "documentation":"

The timestamp when the task template was last modified.

" + }, + "CreatedTime":{ + "shape":"timestamp", + "documentation":"

The timestamp when the task template was created.

" + } + } + }, + "UpdateTrafficDistributionRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"TrafficDistributionGroupIdOrArn", + "documentation":"

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

", + "location":"uri", + "locationName":"Id" + }, + "TelephonyConfig":{ + "shape":"TelephonyConfig", + "documentation":"

The distribution of traffic between the instance and its replica(s).

" + } + } + }, + "UpdateTrafficDistributionResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateUserHierarchyGroupNameRequest":{ "type":"structure", "required":[ @@ -10530,6 +13224,7 @@ } } }, + "Url":{"type":"string"}, "UrlReference":{ "type":"structure", "members":{ @@ -10622,9 +13317,69 @@ "documentation":"

The tags.

" } }, - "documentation":"

Contains information about a user account for a Amazon Connect instance.

" + "documentation":"

Contains information about a user account for an Amazon Connect instance.

" + }, + "UserData":{ + "type":"structure", + "members":{ + "User":{ + "shape":"UserReference", + "documentation":"

Information about the user for the data that is returned. It contains the resourceId and ARN of the user.

" + }, + "RoutingProfile":{ + "shape":"RoutingProfileReference", + "documentation":"

Information about the routing profile that is assigned to the user.

" + }, + "HierarchyPath":{ + "shape":"HierarchyPathReference", + "documentation":"

Contains information about the levels of a hierarchy group assigned to a user.

" + }, + "Status":{ + "shape":"AgentStatusReference", + "documentation":"

The status of the agent that they manually set in their Contact Control Panel (CCP), or that the supervisor manually changes in the real-time metrics report.

" + }, + "AvailableSlotsByChannel":{ + "shape":"ChannelToCountMap", + "documentation":"

A map of available slots by channel. The key is a channel name. The value is an integer: the available number of slots.

" + }, + "MaxSlotsByChannel":{ + "shape":"ChannelToCountMap", + "documentation":"

A map of maximum slots by channel. The key is a channel name. The value is an integer: the maximum number of slots. This is calculated from MediaConcurrency of the RoutingProfile assigned to the agent.

" + }, + "ActiveSlotsByChannel":{ + "shape":"ChannelToCountMap", + "documentation":"

A map of active slots by channel. The key is a channel name. The value is an integer: the number of active slots.

" + }, + "Contacts":{ + "shape":"AgentContactReferenceList", + "documentation":"

A list of contact reference information.

" + } + }, + "documentation":"

Data for a user.

" + }, + "UserDataFilters":{ + "type":"structure", + "members":{ + "Queues":{ + "shape":"Queues", + "documentation":"

Contains information about a queue resource for which metrics are returned.

" + }, + "ContactFilter":{ + "shape":"ContactFilter", + "documentation":"

A filter for the user data based on the contact information that is associated to the user. It contains a list of contact states.

" + } + }, + "documentation":"

A filter for the user data.

" + }, + "UserDataList":{ + "type":"list", + "member":{"shape":"UserData"} }, "UserId":{"type":"string"}, + "UserIdList":{ + "type":"list", + "member":{"shape":"UserId"} + }, "UserIdentityInfo":{ "type":"structure", "members":{ @@ -10639,6 +13394,14 @@ "Email":{ "shape":"Email", "documentation":"

The email address. If you are using SAML for identity management and include this parameter, an error is returned.

" + }, + "SecondaryEmail":{ + "shape":"Email", + "documentation":"

The user's secondary email address. If you provide a secondary email, the user receives email notifications - other than password reset notifications - to this email address instead of to their primary email address.

Pattern: (?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}

" + }, + "Mobile":{ + "shape":"PhoneNumber", + "documentation":"

The user's mobile number.

" } }, "documentation":"

Contains information about the identity of a user.

" @@ -10680,7 +13443,7 @@ }, "AfterContactWorkTimeLimit":{ "shape":"AfterContactWorkTimeLimit", - "documentation":"

The After Call Work (ACW) timeout setting, in seconds.

" + "documentation":"

The After Call Work (ACW) timeout setting, in seconds.

When returned by a SearchUsers call, AfterContactWorkTimeLimit is returned in milliseconds.

" }, "DeskPhoneNumber":{ "shape":"PhoneNumber", @@ -10702,11 +13465,25 @@ }, "ContactFlowId":{ "shape":"ContactFlowId", - "documentation":"

The identifier of the contact flow.

" + "documentation":"

The identifier of the flow.

" } }, "documentation":"

Contains information about the quick connect configuration settings for a user. The contact flow must be of type Transfer to Agent.

" }, + "UserReference":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"UserId", + "documentation":"

The unique identifier for the user.

" + }, + "Arn":{ + "shape":"ARN", + "documentation":"

The Amazon Resource Name (ARN) for the user.

" + } + }, + "documentation":"

Information about the user.

" + }, "UserSearchConditionList":{ "type":"list", "member":{"shape":"UserSearchCriteria"} @@ -10731,7 +13508,7 @@ "documentation":"

A leaf node condition which can be used to specify a hierarchy group condition.

" } }, - "documentation":"

The search criteria to be used to return users.

" + "documentation":"

The search criteria to be used to return users.

The name and description fields support \"contains\" queries with a minimum of 2 characters and a maximum of 25 characters. Any queries with character lengths outside of this range will throw invalid results.

" }, "UserSearchFilter":{ "type":"structure", @@ -10774,7 +13551,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" }, "Username":{ "shape":"AgentUsername", @@ -10809,6 +13586,11 @@ "type":"list", "member":{"shape":"UserSummary"} }, + "UserTagMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, "Value":{"type":"double"}, "Vocabulary":{ "type":"structure", @@ -10855,7 +13637,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

The tags used to organize, track, or control access for this resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } }, "documentation":"

Contains information about a custom vocabulary.

" @@ -10985,5 +13767,5 @@ }, "timestamp":{"type":"timestamp"} }, - "documentation":"

Amazon Connect is a cloud-based contact center solution that you use to set up and manage a customer contact center and provide reliable customer engagement at any scale.

Amazon Connect provides metrics and real-time reporting that enable you to optimize contact routing. You can also resolve customer issues more efficiently by getting customers in touch with the appropriate agents.

There are limits to the number of Amazon Connect resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

You can connect programmatically to an Amazon Web Services service by using an endpoint. For a list of Amazon Connect endpoints, see Amazon Connect Endpoints.

Working with contact flows? Check out the Amazon Connect Flow language.

" + "documentation":"

Amazon Connect is a cloud-based contact center solution that you use to set up and manage a customer contact center and provide reliable customer engagement at any scale.

Amazon Connect provides metrics and real-time reporting that enable you to optimize contact routing. You can also resolve customer issues more efficiently by getting customers in touch with the appropriate agents.

There are limits to the number of Amazon Connect resources that you can create. There are also limits to the number of requests that you can make per second. For more information, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

You can connect programmatically to an Amazon Web Services service by using an endpoint. For a list of Amazon Connect endpoints, see Amazon Connect Endpoints.

Working with flows? Check out the Amazon Connect Flow language.

" } diff --git a/botocore/data/connectcampaigns/2021-01-30/endpoint-rule-set-1.json b/botocore/data/connectcampaigns/2021-01-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..53e8ed25 --- /dev/null +++ b/botocore/data/connectcampaigns/2021-01-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect-campaigns-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect-campaigns-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect-campaigns.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://connect-campaigns.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/connectcampaigns/2021-01-30/paginators-1.json b/botocore/data/connectcampaigns/2021-01-30/paginators-1.json new file mode 100644 index 00000000..6ab04512 --- /dev/null +++ b/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/botocore/data/connectcampaigns/2021-01-30/service-2.json b/botocore/data/connectcampaigns/2021-01-30/service-2.json new file mode 100644 index 00000000..fcabbb1d --- /dev/null +++ b/botocore/data/connectcampaigns/2021-01-30/service-2.json @@ -0,0 +1,1417 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-01-30", + "endpointPrefix":"connect-campaigns", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AmazonConnectCampaignService", + "serviceId":"ConnectCampaigns", + "signatureVersion":"v4", + "signingName":"connect-campaigns", + "uid":"connectcampaigns-2021-01-30" + }, + "operations":{ + "CreateCampaign":{ + "name":"CreateCampaign", + "http":{ + "method":"PUT", + "requestUri":"/campaigns", + "responseCode":200 + }, + "input":{"shape":"CreateCampaignRequest"}, + "output":{"shape":"CreateCampaignResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates a campaign for the specified Amazon Connect account. This API is idempotent.

", + "idempotent":true + }, + "DeleteCampaign":{ + "name":"DeleteCampaign", + "http":{ + "method":"DELETE", + "requestUri":"/campaigns/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteCampaignRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a campaign from the specified Amazon Connect account.

", + "idempotent":true + }, + "DeleteConnectInstanceConfig":{ + "name":"DeleteConnectInstanceConfig", + "http":{ + "method":"DELETE", + "requestUri":"/connect-instance/{connectInstanceId}/config", + "responseCode":200 + }, + "input":{"shape":"DeleteConnectInstanceConfigRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidStateException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deletes a connect instance config from the specified AWS account.

", + "idempotent":true + }, + "DeleteInstanceOnboardingJob":{ + "name":"DeleteInstanceOnboardingJob", + "http":{ + "method":"DELETE", + "requestUri":"/connect-instance/{connectInstanceId}/onboarding", + "responseCode":200 + }, + "input":{"shape":"DeleteInstanceOnboardingJobRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidStateException"} + ], + "documentation":"

Delete the Connect Campaigns onboarding job for the specified Amazon Connect instance.

", + "idempotent":true + }, + "DescribeCampaign":{ + "name":"DescribeCampaign", + "http":{ + "method":"GET", + "requestUri":"/campaigns/{id}", + "responseCode":200 + }, + "input":{"shape":"DescribeCampaignRequest"}, + "output":{"shape":"DescribeCampaignResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Describes the specific campaign.

" + }, + "GetCampaignState":{ + "name":"GetCampaignState", + "http":{ + "method":"GET", + "requestUri":"/campaigns/{id}/state", + "responseCode":200 + }, + "input":{"shape":"GetCampaignStateRequest"}, + "output":{"shape":"GetCampaignStateResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Get state of a campaign for the specified Amazon Connect account.

" + }, + "GetCampaignStateBatch":{ + "name":"GetCampaignStateBatch", + "http":{ + "method":"POST", + "requestUri":"/campaigns-state", + "responseCode":200 + }, + "input":{"shape":"GetCampaignStateBatchRequest"}, + "output":{"shape":"GetCampaignStateBatchResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Get state of campaigns for the specified Amazon Connect account.

" + }, + "GetConnectInstanceConfig":{ + "name":"GetConnectInstanceConfig", + "http":{ + "method":"GET", + "requestUri":"/connect-instance/{connectInstanceId}/config", + "responseCode":200 + }, + "input":{"shape":"GetConnectInstanceConfigRequest"}, + "output":{"shape":"GetConnectInstanceConfigResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Get the specific Connect instance config.

" + }, + "GetInstanceOnboardingJobStatus":{ + "name":"GetInstanceOnboardingJobStatus", + "http":{ + "method":"GET", + "requestUri":"/connect-instance/{connectInstanceId}/onboarding", + "responseCode":200 + }, + "input":{"shape":"GetInstanceOnboardingJobStatusRequest"}, + "output":{"shape":"GetInstanceOnboardingJobStatusResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Get the specific instance onboarding job status.

" + }, + "ListCampaigns":{ + "name":"ListCampaigns", + "http":{ + "method":"POST", + "requestUri":"/campaigns-summary", + "responseCode":200 + }, + "input":{"shape":"ListCampaignsRequest"}, + "output":{"shape":"ListCampaignsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Provides summary information about the campaigns under the specified Amazon Connect account.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{arn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

List tags for a resource.

", + "idempotent":true + }, + "PauseCampaign":{ + "name":"PauseCampaign", + "http":{ + "method":"POST", + "requestUri":"/campaigns/{id}/pause", + "responseCode":200 + }, + "input":{"shape":"PauseCampaignRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InvalidCampaignStateException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Pauses a campaign for the specified Amazon Connect account.

" + }, + "PutDialRequestBatch":{ + "name":"PutDialRequestBatch", + "http":{ + "method":"PUT", + "requestUri":"/campaigns/{id}/dial-requests", + "responseCode":200 + }, + "input":{"shape":"PutDialRequestBatchRequest"}, + "output":{"shape":"PutDialRequestBatchResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InvalidCampaignStateException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates dials requests for the specified campaign Amazon Connect account. This API is idempotent.

", + "idempotent":true + }, + "ResumeCampaign":{ + "name":"ResumeCampaign", + "http":{ + "method":"POST", + "requestUri":"/campaigns/{id}/resume", + "responseCode":200 + }, + "input":{"shape":"ResumeCampaignRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InvalidCampaignStateException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Stops a campaign for the specified Amazon Connect account.

" + }, + "StartCampaign":{ + "name":"StartCampaign", + "http":{ + "method":"POST", + "requestUri":"/campaigns/{id}/start", + "responseCode":200 + }, + "input":{"shape":"StartCampaignRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InvalidCampaignStateException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Starts a campaign for the specified Amazon Connect account.

" + }, + "StartInstanceOnboardingJob":{ + "name":"StartInstanceOnboardingJob", + "http":{ + "method":"PUT", + "requestUri":"/connect-instance/{connectInstanceId}/onboarding", + "responseCode":200 + }, + "input":{"shape":"StartInstanceOnboardingJobRequest"}, + "output":{"shape":"StartInstanceOnboardingJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Onboard the specific Amazon Connect instance to Connect Campaigns.

", + "idempotent":true + }, + "StopCampaign":{ + "name":"StopCampaign", + "http":{ + "method":"POST", + "requestUri":"/campaigns/{id}/stop", + "responseCode":200 + }, + "input":{"shape":"StopCampaignRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InvalidCampaignStateException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Stops a campaign for the specified Amazon Connect account.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{arn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Tag a resource.

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{arn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Untag a resource.

", + "idempotent":true + }, + "UpdateCampaignDialerConfig":{ + "name":"UpdateCampaignDialerConfig", + "http":{ + "method":"POST", + "requestUri":"/campaigns/{id}/dialer-config", + "responseCode":200 + }, + "input":{"shape":"UpdateCampaignDialerConfigRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates the dialer config of a campaign. This API is idempotent.

", + "idempotent":true + }, + "UpdateCampaignName":{ + "name":"UpdateCampaignName", + "http":{ + "method":"POST", + "requestUri":"/campaigns/{id}/name", + "responseCode":200 + }, + "input":{"shape":"UpdateCampaignNameRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates the name of a campaign. This API is idempotent.

", + "idempotent":true + }, + "UpdateCampaignOutboundCallConfig":{ + "name":"UpdateCampaignOutboundCallConfig", + "http":{ + "method":"POST", + "requestUri":"/campaigns/{id}/outbound-call-config", + "responseCode":200 + }, + "input":{"shape":"UpdateCampaignOutboundCallConfigRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates the outbound call config of a campaign. This API is idempotent.

", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "xAmzErrorType":{ + "shape":"XAmazonErrorType", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

You do not have sufficient access to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AnswerMachineDetectionConfig":{ + "type":"structure", + "required":["enableAnswerMachineDetection"], + "members":{ + "enableAnswerMachineDetection":{ + "shape":"Boolean", + "documentation":"

Enable or disable answering machine detection

" + } + }, + "documentation":"

Answering Machine Detection config

" + }, + "Arn":{ + "type":"string", + "documentation":"

Arn

", + "max":500, + "min":20, + "pattern":"^arn:.*" + }, + "AttributeName":{ + "type":"string", + "documentation":"

The key of the attribute. Attribute keys can include only alphanumeric, dash, and underscore characters.

", + "max":32767, + "min":0, + "pattern":"^[a-zA-Z0-9\\-_]+$" + }, + "AttributeValue":{ + "type":"string", + "documentation":"

The value of the attribute.

", + "max":32767, + "min":0 + }, + "Attributes":{ + "type":"map", + "key":{"shape":"AttributeName"}, + "value":{"shape":"AttributeValue"}, + "documentation":"

A custom key-value pair using an attribute map. The attributes are standard Amazon Connect attributes, and can be accessed in contact flows just like any other contact attributes.

", + "sensitive":true + }, + "BandwidthAllocation":{ + "type":"double", + "documentation":"

The bandwidth allocation of a queue resource.

", + "box":true, + "max":1, + "min":0 + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "Campaign":{ + "type":"structure", + "required":[ + "arn", + "connectInstanceId", + "dialerConfig", + "id", + "name", + "outboundCallConfig" + ], + "members":{ + "arn":{"shape":"CampaignArn"}, + "connectInstanceId":{"shape":"InstanceId"}, + "dialerConfig":{"shape":"DialerConfig"}, + "id":{"shape":"CampaignId"}, + "name":{"shape":"CampaignName"}, + "outboundCallConfig":{"shape":"OutboundCallConfig"}, + "tags":{"shape":"TagMap"} + }, + "documentation":"

An Amazon Connect campaign.

" + }, + "CampaignArn":{ + "type":"string", + "documentation":"

The resource name of an Amazon Connect campaign.

", + "max":500, + "min":20 + }, + "CampaignFilters":{ + "type":"structure", + "members":{ + "instanceIdFilter":{"shape":"InstanceIdFilter"} + }, + "documentation":"

Filter model by type

" + }, + "CampaignId":{ + "type":"string", + "documentation":"

Identifier representing a Campaign

", + "max":256, + "min":0 + }, + "CampaignName":{ + "type":"string", + "documentation":"

The name of an Amazon Connect Campaign name.

", + "max":127, + "min":1 + }, + "CampaignState":{ + "type":"string", + "documentation":"

State of a campaign

", + "enum":[ + "Initialized", + "Running", + "Paused", + "Stopped", + "Failed" + ] + }, + "CampaignSummary":{ + "type":"structure", + "required":[ + "arn", + "connectInstanceId", + "id", + "name" + ], + "members":{ + "arn":{"shape":"CampaignArn"}, + "connectInstanceId":{"shape":"InstanceId"}, + "id":{"shape":"CampaignId"}, + "name":{"shape":"CampaignName"} + }, + "documentation":"

An Amazon Connect campaign summary.

" + }, + "CampaignSummaryList":{ + "type":"list", + "member":{"shape":"CampaignSummary"}, + "documentation":"

A list of Amazon Connect campaigns.

" + }, + "ClientToken":{ + "type":"string", + "documentation":"

Client provided parameter used for idempotency. Its value must be unique for each request.

", + "max":64, + "min":0 + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "xAmzErrorType":{ + "shape":"XAmazonErrorType", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

The request could not be processed because of conflict in the current state of the resource.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ContactFlowId":{ + "type":"string", + "documentation":"

The identifier of the contact flow for the outbound call.

", + "max":500, + "min":0 + }, + "CreateCampaignRequest":{ + "type":"structure", + "required":[ + "connectInstanceId", + "dialerConfig", + "name", + "outboundCallConfig" + ], + "members":{ + "connectInstanceId":{"shape":"InstanceId"}, + "dialerConfig":{"shape":"DialerConfig"}, + "name":{"shape":"CampaignName"}, + "outboundCallConfig":{"shape":"OutboundCallConfig"}, + "tags":{"shape":"TagMap"} + }, + "documentation":"

The request for Create Campaign API.

" + }, + "CreateCampaignResponse":{ + "type":"structure", + "members":{ + "arn":{"shape":"CampaignArn"}, + "id":{"shape":"CampaignId"}, + "tags":{"shape":"TagMap"} + }, + "documentation":"

The response for Create Campaign API

" + }, + "DeleteCampaignRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

DeleteCampaignRequest

" + }, + "DeleteConnectInstanceConfigRequest":{ + "type":"structure", + "required":["connectInstanceId"], + "members":{ + "connectInstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"connectInstanceId" + } + }, + "documentation":"

DeleteCampaignRequest

" + }, + "DeleteInstanceOnboardingJobRequest":{ + "type":"structure", + "required":["connectInstanceId"], + "members":{ + "connectInstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"connectInstanceId" + } + }, + "documentation":"

The request for DeleteInstanceOnboardingJob API.

" + }, + "DescribeCampaignRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

DescribeCampaignRequests

" + }, + "DescribeCampaignResponse":{ + "type":"structure", + "members":{ + "campaign":{"shape":"Campaign"} + }, + "documentation":"

DescribeCampaignResponse

" + }, + "DestinationPhoneNumber":{ + "type":"string", + "documentation":"

The phone number of the customer, in E.164 format.

", + "max":20, + "min":0, + "sensitive":true + }, + "DialRequest":{ + "type":"structure", + "required":[ + "attributes", + "clientToken", + "expirationTime", + "phoneNumber" + ], + "members":{ + "attributes":{"shape":"Attributes"}, + "clientToken":{"shape":"ClientToken"}, + "expirationTime":{"shape":"TimeStamp"}, + "phoneNumber":{"shape":"DestinationPhoneNumber"} + }, + "documentation":"

A dial request for a campaign.

" + }, + "DialRequestId":{ + "type":"string", + "documentation":"

Identifier representing a Dial request

" + }, + "DialRequestList":{ + "type":"list", + "member":{"shape":"DialRequest"}, + "documentation":"

A list of dial requests.

", + "max":25, + "min":1 + }, + "DialerConfig":{ + "type":"structure", + "members":{ + "predictiveDialerConfig":{"shape":"PredictiveDialerConfig"}, + "progressiveDialerConfig":{"shape":"ProgressiveDialerConfig"} + }, + "documentation":"

The possible types of dialer config parameters

", + "union":true + }, + "Enabled":{ + "type":"boolean", + "documentation":"

Boolean to indicate if custom encryption has been enabled.

" + }, + "EncryptionConfig":{ + "type":"structure", + "required":["enabled"], + "members":{ + "enabled":{"shape":"Enabled"}, + "encryptionType":{"shape":"EncryptionType"}, + "keyArn":{"shape":"EncryptionKey"} + }, + "documentation":"

Encryption config for Connect Instance. Note that sensitive data will always be encrypted. If disabled, service will perform encryption with its own key. If enabled, a KMS key id needs to be provided and KMS charges will apply. KMS is only type supported

" + }, + "EncryptionKey":{ + "type":"string", + "documentation":"

KMS key id/arn for encryption config.

", + "max":500, + "min":0 + }, + "EncryptionType":{ + "type":"string", + "documentation":"

Server-side encryption type.

", + "enum":["KMS"] + }, + "FailedCampaignStateResponse":{ + "type":"structure", + "members":{ + "campaignId":{"shape":"CampaignId"}, + "failureCode":{"shape":"GetCampaignStateBatchFailureCode"} + }, + "documentation":"

Failed response of campaign state

" + }, + "FailedCampaignStateResponseList":{ + "type":"list", + "member":{"shape":"FailedCampaignStateResponse"}, + "documentation":"

List of failed requests of campaign state

", + "max":25, + "min":0 + }, + "FailedRequest":{ + "type":"structure", + "members":{ + "clientToken":{"shape":"ClientToken"}, + "failureCode":{"shape":"FailureCode"}, + "id":{"shape":"DialRequestId"} + }, + "documentation":"

A failed request identified by the unique client token.

" + }, + "FailedRequestList":{ + "type":"list", + "member":{"shape":"FailedRequest"}, + "documentation":"

A list of failed requests.

", + "max":25, + "min":0 + }, + "FailureCode":{ + "type":"string", + "documentation":"

A predefined code indicating the error that caused the failure.

", + "enum":[ + "InvalidInput", + "RequestThrottled", + "UnknownError" + ] + }, + "GetCampaignStateBatchFailureCode":{ + "type":"string", + "documentation":"

A predefined code indicating the error that caused the failure in getting state of campaigns

", + "enum":[ + "ResourceNotFound", + "UnknownError" + ] + }, + "GetCampaignStateBatchRequest":{ + "type":"structure", + "required":["campaignIds"], + "members":{ + "campaignIds":{"shape":"GetCampaignStateBatchRequestCampaignIdsList"} + }, + "documentation":"

GetCampaignStateBatchRequest

" + }, + "GetCampaignStateBatchRequestCampaignIdsList":{ + "type":"list", + "member":{"shape":"CampaignId"}, + "documentation":"

List of CampaignId

", + "max":25, + "min":1 + }, + "GetCampaignStateBatchResponse":{ + "type":"structure", + "members":{ + "failedRequests":{"shape":"FailedCampaignStateResponseList"}, + "successfulRequests":{"shape":"SuccessfulCampaignStateResponseList"} + }, + "documentation":"

GetCampaignStateBatchResponse

" + }, + "GetCampaignStateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

GetCampaignStateRequest

" + }, + "GetCampaignStateResponse":{ + "type":"structure", + "members":{ + "state":{"shape":"CampaignState"} + }, + "documentation":"

GetCampaignStateResponse

" + }, + "GetConnectInstanceConfigRequest":{ + "type":"structure", + "required":["connectInstanceId"], + "members":{ + "connectInstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"connectInstanceId" + } + }, + "documentation":"

GetConnectInstanceConfigRequest

" + }, + "GetConnectInstanceConfigResponse":{ + "type":"structure", + "members":{ + "connectInstanceConfig":{"shape":"InstanceConfig"} + }, + "documentation":"

GetConnectInstanceConfigResponse

" + }, + "GetInstanceOnboardingJobStatusRequest":{ + "type":"structure", + "required":["connectInstanceId"], + "members":{ + "connectInstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"connectInstanceId" + } + }, + "documentation":"

GetInstanceOnboardingJobStatusRequest

" + }, + "GetInstanceOnboardingJobStatusResponse":{ + "type":"structure", + "members":{ + "connectInstanceOnboardingJobStatus":{"shape":"InstanceOnboardingJobStatus"} + }, + "documentation":"

GetInstanceOnboardingJobStatusResponse

" + }, + "InstanceConfig":{ + "type":"structure", + "required":[ + "connectInstanceId", + "encryptionConfig", + "serviceLinkedRoleArn" + ], + "members":{ + "connectInstanceId":{"shape":"InstanceId"}, + "encryptionConfig":{"shape":"EncryptionConfig"}, + "serviceLinkedRoleArn":{"shape":"ServiceLinkedRoleArn"} + }, + "documentation":"

Instance config object

" + }, + "InstanceId":{ + "type":"string", + "documentation":"

Amazon Connect Instance Id

", + "max":256, + "min":0 + }, + "InstanceIdFilter":{ + "type":"structure", + "required":[ + "operator", + "value" + ], + "members":{ + "operator":{"shape":"InstanceIdFilterOperator"}, + "value":{"shape":"InstanceId"} + }, + "documentation":"

Connect instance identifier filter

" + }, + "InstanceIdFilterOperator":{ + "type":"string", + "documentation":"

Operators for Connect instance identifier filter

", + "enum":["Eq"] + }, + "InstanceOnboardingJobFailureCode":{ + "type":"string", + "documentation":"

Enumeration of the possible failure codes for instance onboarding job

", + "enum":[ + "EVENT_BRIDGE_ACCESS_DENIED", + "EVENT_BRIDGE_MANAGED_RULE_LIMIT_EXCEEDED", + "IAM_ACCESS_DENIED", + "KMS_ACCESS_DENIED", + "KMS_KEY_NOT_FOUND", + "INTERNAL_FAILURE" + ] + }, + "InstanceOnboardingJobStatus":{ + "type":"structure", + "required":[ + "connectInstanceId", + "status" + ], + "members":{ + "connectInstanceId":{"shape":"InstanceId"}, + "failureCode":{"shape":"InstanceOnboardingJobFailureCode"}, + "status":{"shape":"InstanceOnboardingJobStatusCode"} + }, + "documentation":"

Instance onboarding job status object

" + }, + "InstanceOnboardingJobStatusCode":{ + "type":"string", + "documentation":"

Enumeration of the possible states for instance onboarding job

", + "enum":[ + "IN_PROGRESS", + "SUCCEEDED", + "FAILED" + ] + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "xAmzErrorType":{ + "shape":"XAmazonErrorType", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

Request processing failed because of an error or failure with the service.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "InvalidCampaignStateException":{ + "type":"structure", + "required":[ + "message", + "state" + ], + "members":{ + "message":{"shape":"String"}, + "state":{"shape":"CampaignState"}, + "xAmzErrorType":{ + "shape":"XAmazonErrorType", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

The request could not be processed because of conflict in the current state of the campaign.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "InvalidStateException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "xAmzErrorType":{ + "shape":"XAmazonErrorType", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

The request could not be processed because of conflict in the current state.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ListCampaignsRequest":{ + "type":"structure", + "members":{ + "filters":{"shape":"CampaignFilters"}, + "maxResults":{"shape":"MaxResults"}, + "nextToken":{"shape":"NextToken"} + }, + "documentation":"

ListCampaignsRequest

" + }, + "ListCampaignsResponse":{ + "type":"structure", + "members":{ + "campaignSummaryList":{"shape":"CampaignSummaryList"}, + "nextToken":{"shape":"NextToken"} + }, + "documentation":"

ListCampaignsResponse

" + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{ + "shape":"Arn", + "location":"uri", + "locationName":"arn" + } + }, + "documentation":"

ListTagsForResource

" + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{"shape":"TagMap"} + }, + "documentation":"

ListTagsForResponse

" + }, + "MaxResults":{ + "type":"integer", + "documentation":"

The maximum number of results to return per page.

", + "box":true, + "max":50, + "min":1 + }, + "NextToken":{ + "type":"string", + "documentation":"

The token for the next set of results.

", + "max":1000, + "min":0 + }, + "OutboundCallConfig":{ + "type":"structure", + "required":[ + "connectContactFlowId", + "connectQueueId" + ], + "members":{ + "answerMachineDetectionConfig":{"shape":"AnswerMachineDetectionConfig"}, + "connectContactFlowId":{"shape":"ContactFlowId"}, + "connectQueueId":{"shape":"QueueId"}, + "connectSourcePhoneNumber":{"shape":"SourcePhoneNumber"} + }, + "documentation":"

The configuration used for outbound calls.

" + }, + "PauseCampaignRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

PauseCampaignRequest

" + }, + "PredictiveDialerConfig":{ + "type":"structure", + "required":["bandwidthAllocation"], + "members":{ + "bandwidthAllocation":{"shape":"BandwidthAllocation"} + }, + "documentation":"

Predictive Dialer config

" + }, + "ProgressiveDialerConfig":{ + "type":"structure", + "required":["bandwidthAllocation"], + "members":{ + "bandwidthAllocation":{"shape":"BandwidthAllocation"} + }, + "documentation":"

Progressive Dialer config

" + }, + "PutDialRequestBatchRequest":{ + "type":"structure", + "required":[ + "dialRequests", + "id" + ], + "members":{ + "dialRequests":{"shape":"DialRequestList"}, + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

PutDialRequestBatchRequest

" + }, + "PutDialRequestBatchResponse":{ + "type":"structure", + "members":{ + "failedRequests":{"shape":"FailedRequestList"}, + "successfulRequests":{"shape":"SuccessfulRequestList"} + }, + "documentation":"

PutDialRequestBatchResponse

" + }, + "QueueId":{ + "type":"string", + "documentation":"

The queue for the call. If you specify a queue, the phone displayed for caller ID is the phone number specified in the queue. If you do not specify a queue, the queue defined in the contact flow is used. If you do not specify a queue, you must specify a source phone number.

", + "max":500, + "min":0 + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "xAmzErrorType":{ + "shape":"XAmazonErrorType", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

The specified resource was not found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResumeCampaignRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

ResumeCampaignRequest

" + }, + "ServiceLinkedRoleArn":{ + "type":"string", + "documentation":"

Service linked role arn

", + "max":256, + "min":0 + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "xAmzErrorType":{ + "shape":"XAmazonErrorType", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

Request would cause a service quota to be exceeded.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SourcePhoneNumber":{ + "type":"string", + "documentation":"

The phone number associated with the Amazon Connect instance, in E.164 format. If you do not specify a source phone number, you must specify a queue.

", + "max":100, + "min":0 + }, + "StartCampaignRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

StartCampaignRequest

" + }, + "StartInstanceOnboardingJobRequest":{ + "type":"structure", + "required":[ + "connectInstanceId", + "encryptionConfig" + ], + "members":{ + "connectInstanceId":{ + "shape":"InstanceId", + "location":"uri", + "locationName":"connectInstanceId" + }, + "encryptionConfig":{"shape":"EncryptionConfig"} + }, + "documentation":"

The request for StartInstanceOnboardingJob API.

" + }, + "StartInstanceOnboardingJobResponse":{ + "type":"structure", + "members":{ + "connectInstanceOnboardingJobStatus":{"shape":"InstanceOnboardingJobStatus"} + }, + "documentation":"

The response for StartInstanceOnboardingJob API.

" + }, + "StopCampaignRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

StopCampaignRequest

" + }, + "String":{"type":"string"}, + "SuccessfulCampaignStateResponse":{ + "type":"structure", + "members":{ + "campaignId":{"shape":"CampaignId"}, + "state":{"shape":"CampaignState"} + }, + "documentation":"

Successful response of campaign state

" + }, + "SuccessfulCampaignStateResponseList":{ + "type":"list", + "member":{"shape":"SuccessfulCampaignStateResponse"}, + "documentation":"

List of successful response of campaign state

", + "max":25, + "min":0 + }, + "SuccessfulRequest":{ + "type":"structure", + "members":{ + "clientToken":{"shape":"ClientToken"}, + "id":{"shape":"DialRequestId"} + }, + "documentation":"

A successful request identified by the unique client token.

" + }, + "SuccessfulRequestList":{ + "type":"list", + "member":{"shape":"SuccessfulRequest"}, + "documentation":"

A list of successful requests identified by the unique client token.

", + "max":25, + "min":0 + }, + "TagKey":{ + "type":"string", + "documentation":"

Tag key.

", + "max":128, + "min":1, + "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "documentation":"

List of tag keys.

", + "max":50, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "documentation":"

Tag map with key and value.

" + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "arn", + "tags" + ], + "members":{ + "arn":{ + "shape":"Arn", + "location":"uri", + "locationName":"arn" + }, + "tags":{"shape":"TagMap"} + }, + "documentation":"

TagResourceRequest

" + }, + "TagValue":{ + "type":"string", + "documentation":"

Tag value.

", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "xAmzErrorType":{ + "shape":"XAmazonErrorType", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "TimeStamp":{ + "type":"timestamp", + "documentation":"

Timestamp with no UTC offset or timezone

", + "timestampFormat":"iso8601" + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "arn", + "tagKeys" + ], + "members":{ + "arn":{ + "shape":"Arn", + "location":"uri", + "locationName":"arn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "location":"querystring", + "locationName":"tagKeys" + } + }, + "documentation":"

UntagResourceRequest

" + }, + "UpdateCampaignDialerConfigRequest":{ + "type":"structure", + "required":[ + "dialerConfig", + "id" + ], + "members":{ + "dialerConfig":{"shape":"DialerConfig"}, + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

UpdateCampaignDialerConfigRequest

" + }, + "UpdateCampaignNameRequest":{ + "type":"structure", + "required":[ + "id", + "name" + ], + "members":{ + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + }, + "name":{"shape":"CampaignName"} + }, + "documentation":"

UpdateCampaignNameRequest

" + }, + "UpdateCampaignOutboundCallConfigRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "answerMachineDetectionConfig":{"shape":"AnswerMachineDetectionConfig"}, + "connectContactFlowId":{"shape":"ContactFlowId"}, + "connectSourcePhoneNumber":{"shape":"SourcePhoneNumber"}, + "id":{ + "shape":"CampaignId", + "location":"uri", + "locationName":"id" + } + }, + "documentation":"

UpdateCampaignOutboundCallConfigRequest

" + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "xAmzErrorType":{ + "shape":"XAmazonErrorType", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

The input fails to satisfy the constraints specified by an AWS service.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "XAmazonErrorType":{ + "type":"string", + "documentation":"

A header that defines the error encountered while processing the request.

" + } + }, + "documentation":"

Provide APIs to create and manage Amazon Connect Campaigns.

" +} diff --git a/botocore/data/connectcases/2022-10-03/endpoint-rule-set-1.json b/botocore/data/connectcases/2022-10-03/endpoint-rule-set-1.json new file mode 100644 index 00000000..da61afd0 --- /dev/null +++ b/botocore/data/connectcases/2022-10-03/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cases-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cases-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cases.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cases.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/connectcases/2022-10-03/paginators-1.json b/botocore/data/connectcases/2022-10-03/paginators-1.json new file mode 100644 index 00000000..6ce244da --- /dev/null +++ b/botocore/data/connectcases/2022-10-03/paginators-1.json @@ -0,0 +1,16 @@ +{ + "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" + } + } +} diff --git a/botocore/data/connectcases/2022-10-03/service-2.json b/botocore/data/connectcases/2022-10-03/service-2.json new file mode 100644 index 00000000..7d90a7c2 --- /dev/null +++ b/botocore/data/connectcases/2022-10-03/service-2.json @@ -0,0 +1,2936 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-10-03", + "endpointPrefix":"cases", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"ConnectCases", + "serviceFullName":"Amazon Connect Cases", + "serviceId":"ConnectCases", + "signatureVersion":"v4", + "signingName":"cases", + "uid":"connectcases-2022-10-03" + }, + "operations":{ + "BatchGetField":{ + "name":"BatchGetField", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/fields-batch", + "responseCode":200 + }, + "input":{"shape":"BatchGetFieldRequest"}, + "output":{"shape":"BatchGetFieldResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns the description for the list of fields in the request parameters.

" + }, + "BatchPutFieldOptions":{ + "name":"BatchPutFieldOptions", + "http":{ + "method":"PUT", + "requestUri":"/domains/{domainId}/fields/{fieldId}/options", + "responseCode":200 + }, + "input":{"shape":"BatchPutFieldOptionsRequest"}, + "output":{"shape":"BatchPutFieldOptionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates and updates a set of field options for a single select field in a Cases domain.

", + "idempotent":true + }, + "CreateCase":{ + "name":"CreateCase", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/cases", + "responseCode":200 + }, + "input":{"shape":"CreateCaseRequest"}, + "output":{"shape":"CreateCaseResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates a case in the specified Cases domain. Case system and custom fields are taken as an array id/value pairs with a declared data types.

customer_id is a required field when creating a case.

", + "idempotent":true + }, + "CreateDomain":{ + "name":"CreateDomain", + "http":{ + "method":"POST", + "requestUri":"/domains", + "responseCode":200 + }, + "input":{"shape":"CreateDomainRequest"}, + "output":{"shape":"CreateDomainResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a domain, which is a container for all case data, such as cases, fields, templates and layouts. Each Amazon Connect instance can be associated with only one Cases domain.

This will not associate your connect instance to Cases domain. Instead, use the Amazon Connect CreateIntegrationAssociation API.

", + "idempotent":true + }, + "CreateField":{ + "name":"CreateField", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/fields", + "responseCode":200 + }, + "input":{"shape":"CreateFieldRequest"}, + "output":{"shape":"CreateFieldResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a field in the Cases domain. This field is used to define the case object model (that is, defines what data can be captured on cases) in a Cases domain.

", + "idempotent":true + }, + "CreateLayout":{ + "name":"CreateLayout", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/layouts", + "responseCode":200 + }, + "input":{"shape":"CreateLayoutRequest"}, + "output":{"shape":"CreateLayoutResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a layout in the Cases domain. Layouts define the following configuration in the top section and More Info tab of the Cases user interface:

  • Fields to display to the users

  • Field ordering

Title and Status fields cannot be part of layouts since they are not configurable.

" + }, + "CreateRelatedItem":{ + "name":"CreateRelatedItem", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/cases/{caseId}/related-items/", + "responseCode":200 + }, + "input":{"shape":"CreateRelatedItemRequest"}, + "output":{"shape":"CreateRelatedItemResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a related item (comments, tasks, and contacts) and associates it with a case.

A Related Item is a resource that is associated with a case. It may or may not have an external identifier linking it to an external resource (for example, a contactArn). All Related Items have their own internal identifier, the relatedItemArn. Examples of related items include comments and contacts.

", + "idempotent":true + }, + "CreateTemplate":{ + "name":"CreateTemplate", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/templates", + "responseCode":200 + }, + "input":{"shape":"CreateTemplateRequest"}, + "output":{"shape":"CreateTemplateResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a template in the Cases domain. This template is used to define the case object model (that is, to define what data can be captured on cases) in a Cases domain. A template must have a unique name within a domain, and it must reference existing field IDs and layout IDs. Additionally, multiple fields with same IDs are not allowed within the same Template. A template can be either Active or Inactive, as indicated by its status. Inactive templates cannot be used to create cases.

", + "idempotent":true + }, + "GetCase":{ + "name":"GetCase", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/cases/{caseId}", + "responseCode":200 + }, + "input":{"shape":"GetCaseRequest"}, + "output":{"shape":"GetCaseResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about a specific case if it exists.

" + }, + "GetCaseEventConfiguration":{ + "name":"GetCaseEventConfiguration", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/case-event-configuration", + "responseCode":200 + }, + "input":{"shape":"GetCaseEventConfigurationRequest"}, + "output":{"shape":"GetCaseEventConfigurationResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns the case event publishing configuration.

" + }, + "GetDomain":{ + "name":"GetDomain", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}", + "responseCode":200 + }, + "input":{"shape":"GetDomainRequest"}, + "output":{"shape":"GetDomainResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about a specific domain if it exists.

" + }, + "GetLayout":{ + "name":"GetLayout", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/layouts/{layoutId}", + "responseCode":200 + }, + "input":{"shape":"GetLayoutRequest"}, + "output":{"shape":"GetLayoutResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns the details for the requested layout.

" + }, + "GetTemplate":{ + "name":"GetTemplate", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/templates/{templateId}", + "responseCode":200 + }, + "input":{"shape":"GetTemplateRequest"}, + "output":{"shape":"GetTemplateResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns the details for the requested template.

" + }, + "ListCasesForContact":{ + "name":"ListCasesForContact", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/list-cases-for-contact", + "responseCode":200 + }, + "input":{"shape":"ListCasesForContactRequest"}, + "output":{"shape":"ListCasesForContactResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists cases for a given contact.

" + }, + "ListDomains":{ + "name":"ListDomains", + "http":{ + "method":"POST", + "requestUri":"/domains-list", + "responseCode":200 + }, + "input":{"shape":"ListDomainsRequest"}, + "output":{"shape":"ListDomainsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all cases domains in the Amazon Web Services account. Each list item is a condensed summary object of the domain.

" + }, + "ListFieldOptions":{ + "name":"ListFieldOptions", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/fields/{fieldId}/options-list", + "responseCode":200 + }, + "input":{"shape":"ListFieldOptionsRequest"}, + "output":{"shape":"ListFieldOptionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all of the field options for a field identifier in the domain.

" + }, + "ListFields":{ + "name":"ListFields", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/fields-list", + "responseCode":200 + }, + "input":{"shape":"ListFieldsRequest"}, + "output":{"shape":"ListFieldsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all fields in a Cases domain.

" + }, + "ListLayouts":{ + "name":"ListLayouts", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/layouts-list", + "responseCode":200 + }, + "input":{"shape":"ListLayoutsRequest"}, + "output":{"shape":"ListLayoutsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all layouts in the given cases domain. Each list item is a condensed summary object of the layout.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{arn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists tags for a resource.

", + "idempotent":true + }, + "ListTemplates":{ + "name":"ListTemplates", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/templates-list", + "responseCode":200 + }, + "input":{"shape":"ListTemplatesRequest"}, + "output":{"shape":"ListTemplatesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all of the templates in a Cases domain. Each list item is a condensed summary object of the template.

" + }, + "PutCaseEventConfiguration":{ + "name":"PutCaseEventConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/domains/{domainId}/case-event-configuration", + "responseCode":200 + }, + "input":{"shape":"PutCaseEventConfigurationRequest"}, + "output":{"shape":"PutCaseEventConfigurationResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

API for adding case event publishing configuration

" + }, + "SearchCases":{ + "name":"SearchCases", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/cases-search", + "responseCode":200 + }, + "input":{"shape":"SearchCasesRequest"}, + "output":{"shape":"SearchCasesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Searches for cases within their associated Cases domain. Search results are returned as a paginated list of abridged case documents.

" + }, + "SearchRelatedItems":{ + "name":"SearchRelatedItems", + "http":{ + "method":"POST", + "requestUri":"/domains/{domainId}/cases/{caseId}/related-items-search", + "responseCode":200 + }, + "input":{"shape":"SearchRelatedItemsRequest"}, + "output":{"shape":"SearchRelatedItemsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Searches for related items that are associated with a case.

If no filters are provided, this returns all related items associated with a case.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{arn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Adds tags to a resource.

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{arn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Untags a resource.

", + "idempotent":true + }, + "UpdateCase":{ + "name":"UpdateCase", + "http":{ + "method":"PUT", + "requestUri":"/domains/{domainId}/cases/{caseId}", + "responseCode":200 + }, + "input":{"shape":"UpdateCaseRequest"}, + "output":{"shape":"UpdateCaseResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates the values of fields on a case. Fields to be updated are received as an array of id/value pairs identical to the CreateCase input .

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

" + }, + "UpdateField":{ + "name":"UpdateField", + "http":{ + "method":"PUT", + "requestUri":"/domains/{domainId}/fields/{fieldId}", + "responseCode":200 + }, + "input":{"shape":"UpdateFieldRequest"}, + "output":{"shape":"UpdateFieldResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Updates the properties of an existing field.

", + "idempotent":true + }, + "UpdateLayout":{ + "name":"UpdateLayout", + "http":{ + "method":"PUT", + "requestUri":"/domains/{domainId}/layouts/{layoutId}", + "responseCode":200 + }, + "input":{"shape":"UpdateLayoutRequest"}, + "output":{"shape":"UpdateLayoutResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Updates the attributes of an existing layout.

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

A ValidationException is returned when you add non-existent fieldIds to a layout.

Title and Status fields cannot be part of layouts because they are not configurable.

", + "idempotent":true + }, + "UpdateTemplate":{ + "name":"UpdateTemplate", + "http":{ + "method":"PUT", + "requestUri":"/domains/{domainId}/templates/{templateId}", + "responseCode":200 + }, + "input":{"shape":"UpdateTemplateRequest"}, + "output":{"shape":"UpdateTemplateResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Updates the attributes of an existing template. The template attributes that can be modified include name, description, layoutConfiguration, requiredFields, and status. At least one of these attributes must not be null. If a null value is provided for a given attribute, that attribute is ignored and its current value is preserved.

", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You do not have sufficient access to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "Arn":{ + "type":"string", + "max":500, + "min":1 + }, + "AssociationTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "BasicLayout":{ + "type":"structure", + "members":{ + "moreInfo":{ + "shape":"LayoutSections", + "documentation":"

This represents sections in a tab of the page layout.

" + }, + "topPanel":{ + "shape":"LayoutSections", + "documentation":"

This represents sections in a panel of the page layout.

" + } + }, + "documentation":"

Content specific to BasicLayout type. It configures fields in the top panel and More Info tab of agent application.

" + }, + "BatchGetFieldIdentifierList":{ + "type":"list", + "member":{"shape":"FieldIdentifier"}, + "max":50, + "min":1 + }, + "BatchGetFieldRequest":{ + "type":"structure", + "required":[ + "domainId", + "fields" + ], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "fields":{ + "shape":"BatchGetFieldIdentifierList", + "documentation":"

A list of unique field identifiers.

" + } + } + }, + "BatchGetFieldResponse":{ + "type":"structure", + "required":[ + "errors", + "fields" + ], + "members":{ + "errors":{ + "shape":"BatchGetFieldResponseErrorsList", + "documentation":"

A list of field errors.

" + }, + "fields":{ + "shape":"BatchGetFieldResponseFieldsList", + "documentation":"

A list of detailed field information.

" + } + } + }, + "BatchGetFieldResponseErrorsList":{ + "type":"list", + "member":{"shape":"FieldError"}, + "max":50, + "min":0 + }, + "BatchGetFieldResponseFieldsList":{ + "type":"list", + "member":{"shape":"GetFieldResponse"}, + "max":50, + "min":0 + }, + "BatchPutFieldOptionsRequest":{ + "type":"structure", + "required":[ + "domainId", + "fieldId", + "options" + ], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "fieldId":{ + "shape":"FieldId", + "documentation":"

The unique identifier of a field.

", + "location":"uri", + "locationName":"fieldId" + }, + "options":{ + "shape":"BatchPutFieldOptionsRequestOptionsList", + "documentation":"

A list of FieldOption objects.

" + } + } + }, + "BatchPutFieldOptionsRequestOptionsList":{ + "type":"list", + "member":{"shape":"FieldOption"}, + "max":50, + "min":0 + }, + "BatchPutFieldOptionsResponse":{ + "type":"structure", + "members":{ + "errors":{ + "shape":"BatchPutFieldOptionsResponseErrorsList", + "documentation":"

A list of field errors.

" + } + } + }, + "BatchPutFieldOptionsResponseErrorsList":{ + "type":"list", + "member":{"shape":"FieldOptionError"}, + "max":50, + "min":0 + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CaseArn":{ + "type":"string", + "max":500, + "min":1 + }, + "CaseEventIncludedData":{ + "type":"structure", + "required":["fields"], + "members":{ + "fields":{ + "shape":"CaseEventIncludedDataFieldsList", + "documentation":"

List of field identifiers.

" + } + }, + "documentation":"

Details of what case data is published through the case event stream.

" + }, + "CaseEventIncludedDataFieldsList":{ + "type":"list", + "member":{"shape":"FieldIdentifier"}, + "max":50, + "min":0 + }, + "CaseFilter":{ + "type":"structure", + "members":{ + "andAll":{ + "shape":"CaseFilterAndAllList", + "documentation":"

Provides \"and all\" filtering.

" + }, + "field":{ + "shape":"FieldFilter", + "documentation":"

A list of fields to filter on.

" + }, + "not":{"shape":"CaseFilter"} + }, + "documentation":"

A filter for cases. Only one value can be provided.

", + "union":true + }, + "CaseFilterAndAllList":{ + "type":"list", + "member":{"shape":"CaseFilter"}, + "max":10, + "min":0 + }, + "CaseId":{ + "type":"string", + "max":500, + "min":1 + }, + "CaseSummary":{ + "type":"structure", + "required":[ + "caseId", + "templateId" + ], + "members":{ + "caseId":{ + "shape":"CaseId", + "documentation":"

A unique identifier of the case.

" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

A unique identifier of a template.

" + } + }, + "documentation":"

Case summary information.

" + }, + "Channel":{ + "type":"string", + "max":100, + "min":1 + }, + "CommentBody":{ + "type":"string", + "max":1000, + "min":1 + }, + "CommentBodyTextType":{ + "type":"string", + "enum":["Text/Plain"] + }, + "CommentContent":{ + "type":"structure", + "required":[ + "body", + "contentType" + ], + "members":{ + "body":{ + "shape":"CommentBody", + "documentation":"

Text in the body of a Comment on a case.

" + }, + "contentType":{ + "shape":"CommentBodyTextType", + "documentation":"

Type of the text in the box of a Comment on a case.

" + } + }, + "documentation":"

Represents the content of a Comment to be returned to agents.

" + }, + "CommentFilter":{ + "type":"structure", + "members":{ + }, + "documentation":"

A filter for related items of type Comment.

" + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The requested operation would cause a conflict with the current state of a service resource associated with the request. Resolve the conflict before retrying this request. See the accompanying error message for details.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ConnectedToSystemTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "Contact":{ + "type":"structure", + "required":["contactArn"], + "members":{ + "contactArn":{ + "shape":"ContactArn", + "documentation":"

A unique identifier of a contact in Amazon Connect.

" + } + }, + "documentation":"

An object that represents an Amazon Connect contact object.

" + }, + "ContactArn":{ + "type":"string", + "max":500, + "min":1 + }, + "ContactContent":{ + "type":"structure", + "required":[ + "channel", + "connectedToSystemTime", + "contactArn" + ], + "members":{ + "channel":{ + "shape":"Channel", + "documentation":"

A list of channels to filter on for related items of type Contact.

" + }, + "connectedToSystemTime":{ + "shape":"ConnectedToSystemTime", + "documentation":"

The difference between the InitiationTimestamp and the DisconnectTimestamp of the contact.

" + }, + "contactArn":{ + "shape":"ContactArn", + "documentation":"

A unique identifier of a contact in Amazon Connect.

" + } + }, + "documentation":"

An object that represents a content of an Amazon Connect contact object.

" + }, + "ContactFilter":{ + "type":"structure", + "members":{ + "channel":{ + "shape":"ContactFilterChannelList", + "documentation":"

A list of channels to filter on for related items of type Contact.

" + }, + "contactArn":{ + "shape":"ContactArn", + "documentation":"

A unique identifier of a contact in Amazon Connect.

" + } + }, + "documentation":"

A filter for related items of type Contact.

" + }, + "ContactFilterChannelList":{ + "type":"list", + "member":{"shape":"Channel"}, + "max":3, + "min":0 + }, + "CreateCaseRequest":{ + "type":"structure", + "required":[ + "domainId", + "fields", + "templateId" + ], + "members":{ + "clientToken":{ + "shape":"CreateCaseRequestClientTokenString", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "idempotencyToken":true + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "fields":{ + "shape":"CreateCaseRequestFieldsList", + "documentation":"

An array of objects with field ID (matching ListFields/DescribeField) and value union data.

" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

A unique identifier of a template.

" + } + } + }, + "CreateCaseRequestClientTokenString":{ + "type":"string", + "max":64, + "min":0 + }, + "CreateCaseRequestFieldsList":{ + "type":"list", + "member":{"shape":"FieldValue"}, + "max":100, + "min":0 + }, + "CreateCaseResponse":{ + "type":"structure", + "required":[ + "caseArn", + "caseId" + ], + "members":{ + "caseArn":{ + "shape":"CaseArn", + "documentation":"

The Amazon Resource Name (ARN) of the case.

" + }, + "caseId":{ + "shape":"CaseId", + "documentation":"

A unique identifier of the case.

" + } + } + }, + "CreateDomainRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"DomainName", + "documentation":"

The name for your Cases domain. It must be unique for your Amazon Web Services account.

" + } + } + }, + "CreateDomainResponse":{ + "type":"structure", + "required":[ + "domainArn", + "domainId", + "domainStatus" + ], + "members":{ + "domainArn":{ + "shape":"DomainArn", + "documentation":"

The Amazon Resource Name (ARN) for the Cases domain.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

" + }, + "domainStatus":{ + "shape":"DomainStatus", + "documentation":"

The status of the domain.

" + } + } + }, + "CreateFieldRequest":{ + "type":"structure", + "required":[ + "domainId", + "name", + "type" + ], + "members":{ + "description":{ + "shape":"FieldDescription", + "documentation":"

The description of the field.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "name":{ + "shape":"FieldName", + "documentation":"

The name of the field.

" + }, + "type":{ + "shape":"FieldType", + "documentation":"

Defines the data type, some system constraints, and default display of the field.

" + } + } + }, + "CreateFieldResponse":{ + "type":"structure", + "required":[ + "fieldArn", + "fieldId" + ], + "members":{ + "fieldArn":{ + "shape":"FieldArn", + "documentation":"

The Amazon Resource Name (ARN) of the field.

" + }, + "fieldId":{ + "shape":"FieldId", + "documentation":"

The unique identifier of a field.

" + } + } + }, + "CreateLayoutRequest":{ + "type":"structure", + "required":[ + "content", + "domainId", + "name" + ], + "members":{ + "content":{ + "shape":"LayoutContent", + "documentation":"

Information about which fields will be present in the layout, and information about the order of the fields.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "name":{ + "shape":"LayoutName", + "documentation":"

The name of the layout. It must be unique for the Cases domain.

" + } + } + }, + "CreateLayoutResponse":{ + "type":"structure", + "required":[ + "layoutArn", + "layoutId" + ], + "members":{ + "layoutArn":{ + "shape":"LayoutArn", + "documentation":"

The Amazon Resource Name (ARN) of the newly created layout.

" + }, + "layoutId":{ + "shape":"LayoutId", + "documentation":"

The unique identifier of the layout.

" + } + } + }, + "CreateRelatedItemRequest":{ + "type":"structure", + "required":[ + "caseId", + "content", + "domainId", + "type" + ], + "members":{ + "caseId":{ + "shape":"CaseId", + "documentation":"

A unique identifier of the case.

", + "location":"uri", + "locationName":"caseId" + }, + "content":{ + "shape":"RelatedItemInputContent", + "documentation":"

The content of a related item to be created.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "type":{ + "shape":"RelatedItemType", + "documentation":"

The type of a related item.

" + } + } + }, + "CreateRelatedItemResponse":{ + "type":"structure", + "required":[ + "relatedItemArn", + "relatedItemId" + ], + "members":{ + "relatedItemArn":{ + "shape":"RelatedItemArn", + "documentation":"

The Amazon Resource Name (ARN) of the related item.

" + }, + "relatedItemId":{ + "shape":"RelatedItemId", + "documentation":"

The unique identifier of the related item.

" + } + } + }, + "CreateTemplateRequest":{ + "type":"structure", + "required":[ + "domainId", + "name" + ], + "members":{ + "description":{ + "shape":"TemplateDescription", + "documentation":"

A brief description of the template.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "layoutConfiguration":{ + "shape":"LayoutConfiguration", + "documentation":"

Configuration of layouts associated to the template.

" + }, + "name":{ + "shape":"TemplateName", + "documentation":"

A name for the template. It must be unique per domain.

" + }, + "requiredFields":{ + "shape":"RequiredFieldList", + "documentation":"

A list of fields that must contain a value for a case to be successfully created with this template.

" + }, + "status":{ + "shape":"TemplateStatus", + "documentation":"

The status of the template.

" + } + } + }, + "CreateTemplateResponse":{ + "type":"structure", + "required":[ + "templateArn", + "templateId" + ], + "members":{ + "templateArn":{ + "shape":"TemplateArn", + "documentation":"

The Amazon Resource Name (ARN) of the newly created template.

" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

A unique identifier of a template.

" + } + } + }, + "CreatedTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "DomainArn":{ + "type":"string", + "max":500, + "min":1 + }, + "DomainId":{ + "type":"string", + "max":500, + "min":1 + }, + "DomainName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^.*[\\S]$" + }, + "DomainStatus":{ + "type":"string", + "enum":[ + "Active", + "CreationInProgress", + "CreationFailed" + ] + }, + "DomainSummary":{ + "type":"structure", + "required":[ + "domainArn", + "domainId", + "name" + ], + "members":{ + "domainArn":{ + "shape":"DomainArn", + "documentation":"

The Amazon Resource Name (ARN) of the domain.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the domain.

" + }, + "name":{ + "shape":"DomainName", + "documentation":"

The name of the domain.

" + } + }, + "documentation":"

Object for the summarized details of the domain.

" + }, + "DomainSummaryList":{ + "type":"list", + "member":{"shape":"DomainSummary"} + }, + "Double":{ + "type":"double", + "box":true + }, + "EventBridgeConfiguration":{ + "type":"structure", + "required":["enabled"], + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether the to broadcast case event data to the customer.

" + }, + "includedData":{ + "shape":"EventIncludedData", + "documentation":"

Details of what case and related item data is published through the case event stream.

" + } + }, + "documentation":"

Configuration to enable EventBridge case event delivery and determine what data is delivered.

" + }, + "EventIncludedData":{ + "type":"structure", + "members":{ + "caseData":{ + "shape":"CaseEventIncludedData", + "documentation":"

Details of what case data is published through the case event stream.

" + }, + "relatedItemData":{ + "shape":"RelatedItemEventIncludedData", + "documentation":"

Details of what related item data is published through the case event stream.

" + } + }, + "documentation":"

Details of what case and related item data is published through the case event stream.

" + }, + "FieldArn":{ + "type":"string", + "max":500, + "min":1 + }, + "FieldDescription":{ + "type":"string", + "max":255, + "min":0 + }, + "FieldError":{ + "type":"structure", + "required":[ + "errorCode", + "id" + ], + "members":{ + "errorCode":{ + "shape":"String", + "documentation":"

The error code from getting a field.

" + }, + "id":{ + "shape":"FieldId", + "documentation":"

The field identifier that caused the error.

" + }, + "message":{ + "shape":"String", + "documentation":"

The error message from getting a field.

" + } + }, + "documentation":"

Object for errors on fields.

" + }, + "FieldFilter":{ + "type":"structure", + "members":{ + "contains":{ + "shape":"FieldValue", + "documentation":"

Object containing field identifier and value information.

" + }, + "equalTo":{ + "shape":"FieldValue", + "documentation":"

Object containing field identifier and value information.

" + }, + "greaterThan":{ + "shape":"FieldValue", + "documentation":"

Object containing field identifier and value information.

" + }, + "greaterThanOrEqualTo":{ + "shape":"FieldValue", + "documentation":"

Object containing field identifier and value information.

" + }, + "lessThan":{ + "shape":"FieldValue", + "documentation":"

Object containing field identifier and value information.

" + }, + "lessThanOrEqualTo":{ + "shape":"FieldValue", + "documentation":"

Object containing field identifier and value information.

" + } + }, + "documentation":"

A filter for fields. Only one value can be provided.

", + "union":true + }, + "FieldGroup":{ + "type":"structure", + "required":["fields"], + "members":{ + "fields":{ + "shape":"FieldGroupFieldsList", + "documentation":"

Represents an ordered list containing field related information.

" + }, + "name":{ + "shape":"FieldGroupNameString", + "documentation":"

Name of the field group.

" + } + }, + "documentation":"

Object for a group of fields and associated properties.

" + }, + "FieldGroupFieldsList":{ + "type":"list", + "member":{"shape":"FieldItem"}, + "max":100, + "min":0 + }, + "FieldGroupNameString":{ + "type":"string", + "max":100, + "min":0 + }, + "FieldId":{ + "type":"string", + "max":500, + "min":1 + }, + "FieldIdentifier":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"FieldId", + "documentation":"

Unique identifier of a field.

" + } + }, + "documentation":"

Object for unique identifier of a field.

" + }, + "FieldItem":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"FieldId", + "documentation":"

Unique identifier of a field.

" + } + }, + "documentation":"

Object for field related information.

" + }, + "FieldName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^.*[\\S]$" + }, + "FieldNamespace":{ + "type":"string", + "enum":[ + "System", + "Custom" + ] + }, + "FieldOption":{ + "type":"structure", + "required":[ + "active", + "name", + "value" + ], + "members":{ + "active":{ + "shape":"Boolean", + "documentation":"

Describes whether the FieldOption is active (displayed) or inactive.

" + }, + "name":{ + "shape":"FieldOptionName", + "documentation":"

FieldOptionName has max length 100 and disallows trailing spaces.

" + }, + "value":{ + "shape":"FieldOptionValue", + "documentation":"

FieldOptionValue has max length 100 and must be alphanumeric with hyphens and underscores.

" + } + }, + "documentation":"

Object for field Options information.

" + }, + "FieldOptionError":{ + "type":"structure", + "required":[ + "errorCode", + "message", + "value" + ], + "members":{ + "errorCode":{ + "shape":"String", + "documentation":"

Error code from creating or updating field option.

" + }, + "message":{ + "shape":"String", + "documentation":"

Error message from creating or updating field option.

" + }, + "value":{ + "shape":"FieldOptionValue", + "documentation":"

The field option value that caused the error.

" + } + }, + "documentation":"

Object for field Options errors.

" + }, + "FieldOptionName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^.*[\\S]$" + }, + "FieldOptionValue":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^.*[\\S]$" + }, + "FieldOptionsList":{ + "type":"list", + "member":{"shape":"FieldOption"} + }, + "FieldSummary":{ + "type":"structure", + "required":[ + "fieldArn", + "fieldId", + "name", + "namespace", + "type" + ], + "members":{ + "fieldArn":{ + "shape":"FieldArn", + "documentation":"

The Amazon Resource Name (ARN) of the field.

" + }, + "fieldId":{ + "shape":"FieldId", + "documentation":"

The unique identifier of a field.

" + }, + "name":{ + "shape":"FieldName", + "documentation":"

Name of the field.

" + }, + "namespace":{ + "shape":"FieldNamespace", + "documentation":"

The namespace of a field.

" + }, + "type":{ + "shape":"FieldType", + "documentation":"

The type of a field.

" + } + }, + "documentation":"

Object for the summarized details of the field.

" + }, + "FieldType":{ + "type":"string", + "enum":[ + "Text", + "Number", + "Boolean", + "DateTime", + "SingleSelect" + ] + }, + "FieldValue":{ + "type":"structure", + "required":[ + "id", + "value" + ], + "members":{ + "id":{ + "shape":"FieldId", + "documentation":"

Unique identifier of a field.

" + }, + "value":{ + "shape":"FieldValueUnion", + "documentation":"

Union of potential field value types.

" + } + }, + "documentation":"

Object for case field values.

" + }, + "FieldValueUnion":{ + "type":"structure", + "members":{ + "booleanValue":{ + "shape":"Boolean", + "documentation":"

Can be either null, or have a Boolean value type. Only one value can be provided.

" + }, + "doubleValue":{ + "shape":"Double", + "documentation":"

Can be either null, or have a Double number value type. Only one value can be provided.

" + }, + "stringValue":{ + "shape":"FieldValueUnionStringValueString", + "documentation":"

String value type.

" + } + }, + "documentation":"

Object to store union of Field values.

", + "union":true + }, + "FieldValueUnionStringValueString":{ + "type":"string", + "max":500, + "min":0 + }, + "GetCaseEventConfigurationRequest":{ + "type":"structure", + "required":["domainId"], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + } + } + }, + "GetCaseEventConfigurationResponse":{ + "type":"structure", + "required":["eventBridge"], + "members":{ + "eventBridge":{ + "shape":"EventBridgeConfiguration", + "documentation":"

Configuration to enable EventBridge case event delivery and determine what data is delivered.

" + } + } + }, + "GetCaseRequest":{ + "type":"structure", + "required":[ + "caseId", + "domainId", + "fields" + ], + "members":{ + "caseId":{ + "shape":"CaseId", + "documentation":"

A unique identifier of the case.

", + "location":"uri", + "locationName":"caseId" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "fields":{ + "shape":"GetCaseRequestFieldsList", + "documentation":"

A list of unique field identifiers.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

" + } + } + }, + "GetCaseRequestFieldsList":{ + "type":"list", + "member":{"shape":"FieldIdentifier"}, + "max":100, + "min":1 + }, + "GetCaseResponse":{ + "type":"structure", + "required":[ + "fields", + "templateId" + ], + "members":{ + "fields":{ + "shape":"GetCaseResponseFieldsList", + "documentation":"

A list of detailed field information.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. This is null if there are no more results to return.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

A unique identifier of a template.

" + } + } + }, + "GetCaseResponseFieldsList":{ + "type":"list", + "member":{"shape":"FieldValue"}, + "max":100, + "min":0 + }, + "GetDomainRequest":{ + "type":"structure", + "required":["domainId"], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + } + } + }, + "GetDomainResponse":{ + "type":"structure", + "required":[ + "createdTime", + "domainArn", + "domainId", + "domainStatus", + "name" + ], + "members":{ + "createdTime":{ + "shape":"CreatedTime", + "documentation":"

The timestamp when the Cases domain was created.

" + }, + "domainArn":{ + "shape":"DomainArn", + "documentation":"

The Amazon Resource Name (ARN) for the Cases domain.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

" + }, + "domainStatus":{ + "shape":"DomainStatus", + "documentation":"

The status of the Cases domain.

" + }, + "name":{ + "shape":"DomainName", + "documentation":"

The name of the Cases domain.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" + } + } + }, + "GetFieldResponse":{ + "type":"structure", + "required":[ + "fieldArn", + "fieldId", + "name", + "namespace", + "type" + ], + "members":{ + "description":{ + "shape":"FieldDescription", + "documentation":"

Description of the field.

" + }, + "fieldArn":{ + "shape":"FieldArn", + "documentation":"

The Amazon Resource Name (ARN) of the field.

" + }, + "fieldId":{ + "shape":"FieldId", + "documentation":"

Unique identifier of the field.

" + }, + "name":{ + "shape":"FieldName", + "documentation":"

Name of the field.

" + }, + "namespace":{ + "shape":"FieldNamespace", + "documentation":"

Namespace of the field.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" + }, + "type":{ + "shape":"FieldType", + "documentation":"

Type of the field.

" + } + }, + "documentation":"

Object to store detailed field information.

" + }, + "GetLayoutRequest":{ + "type":"structure", + "required":[ + "domainId", + "layoutId" + ], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "layoutId":{ + "shape":"LayoutId", + "documentation":"

The unique identifier of the layout.

", + "location":"uri", + "locationName":"layoutId" + } + } + }, + "GetLayoutResponse":{ + "type":"structure", + "required":[ + "content", + "layoutArn", + "layoutId", + "name" + ], + "members":{ + "content":{ + "shape":"LayoutContent", + "documentation":"

Information about which fields will be present in the layout, the order of the fields, and read-only attribute of the field.

" + }, + "layoutArn":{ + "shape":"LayoutArn", + "documentation":"

The Amazon Resource Name (ARN) of the newly created layout.

" + }, + "layoutId":{ + "shape":"LayoutId", + "documentation":"

The unique identifier of the layout.

" + }, + "name":{ + "shape":"LayoutName", + "documentation":"

The name of the layout. It must be unique.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" + } + } + }, + "GetTemplateRequest":{ + "type":"structure", + "required":[ + "domainId", + "templateId" + ], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

A unique identifier of a template.

", + "location":"uri", + "locationName":"templateId" + } + } + }, + "GetTemplateResponse":{ + "type":"structure", + "required":[ + "name", + "status", + "templateArn", + "templateId" + ], + "members":{ + "description":{ + "shape":"TemplateDescription", + "documentation":"

A brief description of the template.

" + }, + "layoutConfiguration":{ + "shape":"LayoutConfiguration", + "documentation":"

Configuration of layouts associated to the template.

" + }, + "name":{ + "shape":"TemplateName", + "documentation":"

The name of the template.

" + }, + "requiredFields":{ + "shape":"RequiredFieldList", + "documentation":"

A list of fields that must contain a value for a case to be successfully created with this template.

" + }, + "status":{ + "shape":"TemplateStatus", + "documentation":"

The status of the template.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" + }, + "templateArn":{ + "shape":"TemplateArn", + "documentation":"

The Amazon Resource Name (ARN) of the template.

" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

A unique identifier of a template.

" + } + } + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

Advice to clients on when the call can be safely retried.

", + "location":"header", + "locationName":"Retry-After" + } + }, + "documentation":"

We couldn't process your request because of an issue with the server. Try again later.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "LayoutArn":{ + "type":"string", + "max":500, + "min":1 + }, + "LayoutConfiguration":{ + "type":"structure", + "members":{ + "defaultLayout":{ + "shape":"LayoutId", + "documentation":"

Unique identifier of a layout.

" + } + }, + "documentation":"

Object to store configuration of layouts associated to the template.

" + }, + "LayoutContent":{ + "type":"structure", + "members":{ + "basic":{ + "shape":"BasicLayout", + "documentation":"

Content specific to BasicLayout type. It configures fields in the top panel and More Info tab of Cases user interface.

" + } + }, + "documentation":"

Object to store union of different versions of layout content.

", + "union":true + }, + "LayoutId":{ + "type":"string", + "max":500, + "min":1 + }, + "LayoutName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^.*[\\S]$" + }, + "LayoutSections":{ + "type":"structure", + "members":{ + "sections":{"shape":"SectionsList"} + }, + "documentation":"

Ordered list containing different kinds of sections that can be added. A LayoutSections object can only contain one section.

" + }, + "LayoutSummary":{ + "type":"structure", + "required":[ + "layoutArn", + "layoutId", + "name" + ], + "members":{ + "layoutArn":{ + "shape":"LayoutArn", + "documentation":"

The Amazon Resource Name (ARN) of the layout.

" + }, + "layoutId":{ + "shape":"LayoutId", + "documentation":"

The unique identifier for of the layout.

" + }, + "name":{ + "shape":"LayoutName", + "documentation":"

The name of the layout.

" + } + }, + "documentation":"

Object for the summarized details of the layout.

" + }, + "LayoutSummaryList":{ + "type":"list", + "member":{"shape":"LayoutSummary"} + }, + "ListCasesForContactRequest":{ + "type":"structure", + "required":[ + "contactArn", + "domainId" + ], + "members":{ + "contactArn":{ + "shape":"ContactArn", + "documentation":"

A unique identifier of a contact in Amazon Connect.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "maxResults":{ + "shape":"ListCasesForContactRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return per page.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

" + } + } + }, + "ListCasesForContactRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "ListCasesForContactResponse":{ + "type":"structure", + "required":["cases"], + "members":{ + "cases":{ + "shape":"ListCasesForContactResponseCasesList", + "documentation":"

A list of Case summary information.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. This is null if there are no more results to return.

" + } + } + }, + "ListCasesForContactResponseCasesList":{ + "type":"list", + "member":{"shape":"CaseSummary"}, + "max":10, + "min":0 + }, + "ListDomainsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListDomainsRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return per page.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListDomainsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "ListDomainsResponse":{ + "type":"structure", + "required":["domains"], + "members":{ + "domains":{ + "shape":"DomainSummaryList", + "documentation":"

The Cases domain.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. This is null if there are no more results to return.

" + } + } + }, + "ListFieldOptionsRequest":{ + "type":"structure", + "required":[ + "domainId", + "fieldId" + ], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "fieldId":{ + "shape":"FieldId", + "documentation":"

The unique identifier of a field.

", + "location":"uri", + "locationName":"fieldId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return per page.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "values":{ + "shape":"ValuesList", + "documentation":"

A list of FieldOption values to filter on for ListFieldOptions.

", + "location":"querystring", + "locationName":"values" + } + } + }, + "ListFieldOptionsResponse":{ + "type":"structure", + "required":["options"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. This is null if there are no more results to return.

" + }, + "options":{ + "shape":"FieldOptionsList", + "documentation":"

A list of FieldOption objects.

" + } + } + }, + "ListFieldsRequest":{ + "type":"structure", + "required":["domainId"], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return per page.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListFieldsResponse":{ + "type":"structure", + "required":["fields"], + "members":{ + "fields":{ + "shape":"ListFieldsResponseFieldsList", + "documentation":"

List of detailed field information.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. This is null if there are no more results to return.

" + } + } + }, + "ListFieldsResponseFieldsList":{ + "type":"list", + "member":{"shape":"FieldSummary"}, + "max":100, + "min":0 + }, + "ListLayoutsRequest":{ + "type":"structure", + "required":["domainId"], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return per page.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListLayoutsResponse":{ + "type":"structure", + "required":["layouts"], + "members":{ + "layouts":{ + "shape":"LayoutSummaryList", + "documentation":"

The layouts for the domain.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. This is null if there are no more results to return.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["arn"], + "members":{ + "arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN)

", + "location":"uri", + "locationName":"arn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"Tags", + "documentation":"

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" + } + } + }, + "ListTemplatesRequest":{ + "type":"structure", + "required":["domainId"], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return per page.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "status":{ + "shape":"TemplateStatusFilters", + "documentation":"

A list of status values to filter on.

", + "location":"querystring", + "locationName":"status" + } + } + }, + "ListTemplatesResponse":{ + "type":"structure", + "required":["templates"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. This is null if there are no more results to return.

" + }, + "templates":{ + "shape":"ListTemplatesResponseTemplatesList", + "documentation":"

List of template summary objects.

" + } + } + }, + "ListTemplatesResponseTemplatesList":{ + "type":"list", + "member":{"shape":"TemplateSummary"}, + "max":100, + "min":0 + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "NextToken":{ + "type":"string", + "max":9000, + "min":0 + }, + "Order":{ + "type":"string", + "enum":[ + "Asc", + "Desc" + ] + }, + "PutCaseEventConfigurationRequest":{ + "type":"structure", + "required":[ + "domainId", + "eventBridge" + ], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "eventBridge":{ + "shape":"EventBridgeConfiguration", + "documentation":"

Configuration to enable EventBridge case event delivery and determine what data is delivered.

" + } + } + }, + "PutCaseEventConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, + "RelatedItemArn":{ + "type":"string", + "max":500, + "min":1 + }, + "RelatedItemContent":{ + "type":"structure", + "members":{ + "comment":{ + "shape":"CommentContent", + "documentation":"

Represents the content of a comment to be returned to agents.

" + }, + "contact":{ + "shape":"ContactContent", + "documentation":"

Represents the content of a contact to be returned to agents.

" + } + }, + "documentation":"

Represents the content of a particular type of related item.

", + "union":true + }, + "RelatedItemEventIncludedData":{ + "type":"structure", + "required":["includeContent"], + "members":{ + "includeContent":{ + "shape":"Boolean", + "documentation":"

Details of what related item data is published through the case event stream.

" + } + }, + "documentation":"

Details of what related item data is published through the case event stream.

" + }, + "RelatedItemId":{ + "type":"string", + "max":500, + "min":1 + }, + "RelatedItemInputContent":{ + "type":"structure", + "members":{ + "comment":{ + "shape":"CommentContent", + "documentation":"

Represents the content of a comment to be returned to agents.

" + }, + "contact":{ + "shape":"Contact", + "documentation":"

Object representing a contact in Amazon Connect as an API request field.

" + } + }, + "documentation":"

Represents the content of a related item to be created.

", + "union":true + }, + "RelatedItemType":{ + "type":"string", + "enum":[ + "Contact", + "Comment" + ] + }, + "RelatedItemTypeFilter":{ + "type":"structure", + "members":{ + "comment":{ + "shape":"CommentFilter", + "documentation":"

A filter for related items of type Comment.

" + }, + "contact":{ + "shape":"ContactFilter", + "documentation":"

A filter for related items of type Contact.

" + } + }, + "documentation":"

The list of types of related items and their parameters to use for filtering.

", + "union":true + }, + "RequiredField":{ + "type":"structure", + "required":["fieldId"], + "members":{ + "fieldId":{ + "shape":"FieldId", + "documentation":"

Unique identifier of a field.

" + } + }, + "documentation":"

List of fields that must have a value provided to create a case.

" + }, + "RequiredFieldList":{ + "type":"list", + "member":{"shape":"RequiredField"}, + "max":100, + "min":0 + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

Unique identifier of the resource affected.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

Type of the resource affected.

" + } + }, + "documentation":"

We couldn't find the requested resource. Check that your resources exists and were created in the same Amazon Web Services Region as your request, and try your request again.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SearchCasesRequest":{ + "type":"structure", + "required":["domainId"], + "members":{ + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "fields":{ + "shape":"SearchCasesRequestFieldsList", + "documentation":"

The list of field identifiers to be returned as part of the response.

" + }, + "filter":{ + "shape":"CaseFilter", + "documentation":"

A list of filter objects.

" + }, + "maxResults":{ + "shape":"SearchCasesRequestMaxResultsInteger", + "documentation":"

The maximum number of cases to return. The current maximum supported value is 25. This is also the default value when no other value is provided.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

" + }, + "searchTerm":{ + "shape":"SearchCasesRequestSearchTermString", + "documentation":"

A word or phrase used to perform a quick search.

" + }, + "sorts":{ + "shape":"SearchCasesRequestSortsList", + "documentation":"

A list of sorts where each sort specifies a field and their sort order to be applied to the results.

" + } + } + }, + "SearchCasesRequestFieldsList":{ + "type":"list", + "member":{"shape":"FieldIdentifier"}, + "max":10, + "min":0 + }, + "SearchCasesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":25, + "min":1 + }, + "SearchCasesRequestSearchTermString":{ + "type":"string", + "max":255, + "min":0 + }, + "SearchCasesRequestSortsList":{ + "type":"list", + "member":{"shape":"Sort"}, + "documentation":"

/@documentation("The templateId")

", + "max":2, + "min":0 + }, + "SearchCasesResponse":{ + "type":"structure", + "required":["cases"], + "members":{ + "cases":{ + "shape":"SearchCasesResponseCasesList", + "documentation":"

A list of case documents where each case contains the properties CaseId and Fields where each field is a complex union structure.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. This is null if there are no more results to return.

" + } + } + }, + "SearchCasesResponseCasesList":{ + "type":"list", + "member":{"shape":"SearchCasesResponseItem"}, + "max":25, + "min":0 + }, + "SearchCasesResponseItem":{ + "type":"structure", + "required":[ + "caseId", + "fields", + "templateId" + ], + "members":{ + "caseId":{ + "shape":"CaseId", + "documentation":"

A unique identifier of the case.

" + }, + "fields":{ + "shape":"SearchCasesResponseItemFieldsList", + "documentation":"

List of case field values.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

A unique identifier of a template.

" + } + }, + "documentation":"

A list of items that represent cases.

" + }, + "SearchCasesResponseItemFieldsList":{ + "type":"list", + "member":{"shape":"FieldValue"}, + "max":10, + "min":0 + }, + "SearchRelatedItemsRequest":{ + "type":"structure", + "required":[ + "caseId", + "domainId" + ], + "members":{ + "caseId":{ + "shape":"CaseId", + "documentation":"

A unique identifier of the case.

", + "location":"uri", + "locationName":"caseId" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "filters":{ + "shape":"SearchRelatedItemsRequestFiltersList", + "documentation":"

The list of types of related items and their parameters to use for filtering.

" + }, + "maxResults":{ + "shape":"SearchRelatedItemsRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return per page.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

" + } + } + }, + "SearchRelatedItemsRequestFiltersList":{ + "type":"list", + "member":{"shape":"RelatedItemTypeFilter"}, + "max":10, + "min":0 + }, + "SearchRelatedItemsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":25, + "min":1 + }, + "SearchRelatedItemsResponse":{ + "type":"structure", + "required":["relatedItems"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results. This is null if there are no more results to return.

" + }, + "relatedItems":{ + "shape":"SearchRelatedItemsResponseRelatedItemsList", + "documentation":"

A list of items related to a case.

" + } + } + }, + "SearchRelatedItemsResponseItem":{ + "type":"structure", + "required":[ + "associationTime", + "content", + "relatedItemId", + "type" + ], + "members":{ + "associationTime":{ + "shape":"AssociationTime", + "documentation":"

Time at which a related item was associated with a case.

" + }, + "content":{ + "shape":"RelatedItemContent", + "documentation":"

Represents the content of a particular type of related item.

" + }, + "relatedItemId":{ + "shape":"RelatedItemId", + "documentation":"

Unique identifier of a related item.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" + }, + "type":{ + "shape":"RelatedItemType", + "documentation":"

Type of a related item.

" + } + }, + "documentation":"

A list of items that represent RelatedItems.

" + }, + "SearchRelatedItemsResponseRelatedItemsList":{ + "type":"list", + "member":{"shape":"SearchRelatedItemsResponseItem"}, + "max":25, + "min":0 + }, + "Section":{ + "type":"structure", + "members":{ + "fieldGroup":{ + "shape":"FieldGroup", + "documentation":"

Consists of a group of fields and associated properties.

" + } + }, + "documentation":"

This represents a sections within a panel or tab of the page layout.

", + "union":true + }, + "SectionsList":{ + "type":"list", + "member":{"shape":"Section"}, + "documentation":"

Ordered list containing different kinds of sections that can be added.

", + "max":1, + "min":0 + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The service quota has been exceeded. For a list of service quotas, see Amazon Connect Service Quotas in the Amazon Connect Administrator Guide.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "Sort":{ + "type":"structure", + "required":[ + "fieldId", + "sortOrder" + ], + "members":{ + "fieldId":{ + "shape":"FieldId", + "documentation":"

Unique identifier of a field.

" + }, + "sortOrder":{ + "shape":"Order", + "documentation":"

A structured set of sort terms

" + } + }, + "documentation":"

A structured set of sort terms.

" + }, + "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "arn", + "tags" + ], + "members":{ + "arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN)

", + "location":"uri", + "locationName":"arn" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A map of of key-value pairs that represent tags on a resource. Tags are used to organize, track, or control access for this resource.

" + } + } + }, + "Tags":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "TemplateArn":{ + "type":"string", + "max":500, + "min":1 + }, + "TemplateDescription":{ + "type":"string", + "max":255, + "min":0 + }, + "TemplateId":{ + "type":"string", + "max":500, + "min":1 + }, + "TemplateName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^.*[\\S]$" + }, + "TemplateStatus":{ + "type":"string", + "documentation":"

Status of a template

", + "enum":[ + "Active", + "Inactive" + ] + }, + "TemplateStatusFilters":{ + "type":"list", + "member":{"shape":"TemplateStatus"}, + "documentation":"

List of filters used on the ListTemplates result set

", + "max":2, + "min":1 + }, + "TemplateSummary":{ + "type":"structure", + "required":[ + "name", + "status", + "templateArn", + "templateId" + ], + "members":{ + "name":{ + "shape":"TemplateName", + "documentation":"

The template name.

" + }, + "status":{ + "shape":"TemplateStatus", + "documentation":"

The status of the template.

" + }, + "templateArn":{ + "shape":"TemplateArn", + "documentation":"

The Amazon Resource Name (ARN) of the template.

" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

The unique identifier for the template.

" + } + }, + "documentation":"

Template summary information.

" + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The rate has been exceeded for this API. Please try again after a few minutes.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "arn", + "tagKeys" + ], + "members":{ + "arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN)

", + "location":"uri", + "locationName":"arn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

List of tag keys.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UpdateCaseRequest":{ + "type":"structure", + "required":[ + "caseId", + "domainId", + "fields" + ], + "members":{ + "caseId":{ + "shape":"CaseId", + "documentation":"

A unique identifier of the case.

", + "location":"uri", + "locationName":"caseId" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "fields":{ + "shape":"UpdateCaseRequestFieldsList", + "documentation":"

An array of objects with fieldId (matching ListFields/DescribeField) and value union data, structured identical to CreateCase.

" + } + } + }, + "UpdateCaseRequestFieldsList":{ + "type":"list", + "member":{"shape":"FieldValue"}, + "max":100, + "min":0 + }, + "UpdateCaseResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateFieldRequest":{ + "type":"structure", + "required":[ + "domainId", + "fieldId" + ], + "members":{ + "description":{ + "shape":"FieldDescription", + "documentation":"

The description of a field.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "fieldId":{ + "shape":"FieldId", + "documentation":"

The unique identifier of a field.

", + "location":"uri", + "locationName":"fieldId" + }, + "name":{ + "shape":"FieldName", + "documentation":"

The name of the field.

" + } + } + }, + "UpdateFieldResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateLayoutRequest":{ + "type":"structure", + "required":[ + "domainId", + "layoutId" + ], + "members":{ + "content":{ + "shape":"LayoutContent", + "documentation":"

Information about which fields will be present in the layout, the order of the fields, and a read-only attribute of the field.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "layoutId":{ + "shape":"LayoutId", + "documentation":"

The unique identifier of the layout.

", + "location":"uri", + "locationName":"layoutId" + }, + "name":{ + "shape":"LayoutName", + "documentation":"

The name of the layout. It must be unique per domain.

" + } + } + }, + "UpdateLayoutResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateTemplateRequest":{ + "type":"structure", + "required":[ + "domainId", + "templateId" + ], + "members":{ + "description":{ + "shape":"TemplateDescription", + "documentation":"

A brief description of the template.

" + }, + "domainId":{ + "shape":"DomainId", + "documentation":"

The unique identifier of the Cases domain.

", + "location":"uri", + "locationName":"domainId" + }, + "layoutConfiguration":{ + "shape":"LayoutConfiguration", + "documentation":"

Configuration of layouts associated to the template.

" + }, + "name":{ + "shape":"TemplateName", + "documentation":"

The name of the template. It must be unique per domain.

" + }, + "requiredFields":{ + "shape":"RequiredFieldList", + "documentation":"

A list of fields that must contain a value for a case to be successfully created with this template.

" + }, + "status":{ + "shape":"TemplateStatus", + "documentation":"

The status of the template.

" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

A unique identifier for the template.

", + "location":"uri", + "locationName":"templateId" + } + } + }, + "UpdateTemplateResponse":{ + "type":"structure", + "members":{ + } + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request isn't valid. Check the syntax and try again.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Value":{ + "type":"string", + "max":100, + "min":0 + }, + "ValuesList":{ + "type":"list", + "member":{"shape":"Value"}, + "max":1, + "min":0 + } + }, + "documentation":"

Welcome to the Amazon Connect Cases API Reference. This guide provides information about the Amazon Connect Cases API, which you can use to create, update, get, and list Cases domains, fields, field options, layouts, templates, cases, related items, and tags.

 <p>For more information about Amazon Connect Cases, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/cases.html">Amazon Connect Cases</a> in the <i>Amazon Connect Administrator Guide</i>. </p> 
" +} diff --git a/botocore/data/connectparticipant/2018-09-07/endpoint-rule-set-1.json b/botocore/data/connectparticipant/2018-09-07/endpoint-rule-set-1.json new file mode 100644 index 00000000..4532a7cf --- /dev/null +++ b/botocore/data/connectparticipant/2018-09-07/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://participant.connect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://participant.connect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://participant.connect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://participant.connect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/connectparticipant/2018-09-07/examples-1.json b/botocore/data/connectparticipant/2018-09-07/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/connectparticipant/2018-09-07/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/controltower/2018-05-10/endpoint-rule-set-1.json b/botocore/data/controltower/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..25bacc66 --- /dev/null +++ b/botocore/data/controltower/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controltower-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controltower-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://controltower.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://controltower.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/controltower/2018-05-10/paginators-1.json b/botocore/data/controltower/2018-05-10/paginators-1.json new file mode 100644 index 00000000..3d1220df --- /dev/null +++ b/botocore/data/controltower/2018-05-10/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListEnabledControls": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "enabledControls" + } + } +} diff --git a/botocore/data/controltower/2018-05-10/service-2.json b/botocore/data/controltower/2018-05-10/service-2.json new file mode 100644 index 00000000..ee0d76b5 --- /dev/null +++ b/botocore/data/controltower/2018-05-10/service-2.json @@ -0,0 +1,394 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-05-10", + "endpointPrefix":"controltower", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Control Tower", + "serviceId":"ControlTower", + "signatureVersion":"v4", + "signingName":"controltower", + "uid":"controltower-2018-05-10" + }, + "operations":{ + "DisableControl":{ + "name":"DisableControl", + "http":{ + "method":"POST", + "requestUri":"/disable-control", + "responseCode":200 + }, + "input":{"shape":"DisableControlInput"}, + "output":{"shape":"DisableControlOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

This API call turns off a control. It starts an asynchronous operation that deletes AWS resources on the specified organizational unit and the accounts it contains. The resources will vary according to the control that you specify.

" + }, + "EnableControl":{ + "name":"EnableControl", + "http":{ + "method":"POST", + "requestUri":"/enable-control", + "responseCode":200 + }, + "input":{"shape":"EnableControlInput"}, + "output":{"shape":"EnableControlOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

This API call activates a control. It starts an asynchronous operation that creates AWS resources on the specified organizational unit and the accounts it contains. The resources created will vary according to the control that you specify.

" + }, + "GetControlOperation":{ + "name":"GetControlOperation", + "http":{ + "method":"POST", + "requestUri":"/get-control-operation", + "responseCode":200 + }, + "input":{"shape":"GetControlOperationInput"}, + "output":{"shape":"GetControlOperationOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns the status of a particular EnableControl or DisableControl operation. Displays a message in case of error. Details for an operation are available for 90 days.

" + }, + "ListEnabledControls":{ + "name":"ListEnabledControls", + "http":{ + "method":"POST", + "requestUri":"/list-enabled-controls", + "responseCode":200 + }, + "input":{"shape":"ListEnabledControlsInput"}, + "output":{"shape":"ListEnabledControlsOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it contains.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

User does not have sufficient access to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Updating or deleting a resource can cause an inconsistent state.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ControlIdentifier":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:aws[0-9a-zA-Z_\\-:\\/]+$" + }, + "ControlOperation":{ + "type":"structure", + "members":{ + "endTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time that the operation finished.

" + }, + "operationType":{ + "shape":"ControlOperationType", + "documentation":"

One of ENABLE_CONTROL or DISABLE_CONTROL.

" + }, + "startTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time that the operation began.

" + }, + "status":{ + "shape":"ControlOperationStatus", + "documentation":"

One of IN_PROGRESS, SUCEEDED, or FAILED.

" + }, + "statusMessage":{ + "shape":"String", + "documentation":"

If the operation result is FAILED, this string contains a message explaining why the operation failed.

" + } + }, + "documentation":"

An operation performed by the control.

" + }, + "ControlOperationStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "FAILED", + "IN_PROGRESS" + ] + }, + "ControlOperationType":{ + "type":"string", + "enum":[ + "ENABLE_CONTROL", + "DISABLE_CONTROL" + ] + }, + "DisableControlInput":{ + "type":"structure", + "required":[ + "controlIdentifier", + "targetIdentifier" + ], + "members":{ + "controlIdentifier":{ + "shape":"ControlIdentifier", + "documentation":"

The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny guardrail.

" + }, + "targetIdentifier":{ + "shape":"TargetIdentifier", + "documentation":"

The ARN of the organizational unit.

" + } + } + }, + "DisableControlOutput":{ + "type":"structure", + "required":["operationIdentifier"], + "members":{ + "operationIdentifier":{ + "shape":"OperationIdentifier", + "documentation":"

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

" + } + } + }, + "EnableControlInput":{ + "type":"structure", + "required":[ + "controlIdentifier", + "targetIdentifier" + ], + "members":{ + "controlIdentifier":{ + "shape":"ControlIdentifier", + "documentation":"

The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny guardrail.

" + }, + "targetIdentifier":{ + "shape":"TargetIdentifier", + "documentation":"

The ARN of the organizational unit.

" + } + } + }, + "EnableControlOutput":{ + "type":"structure", + "required":["operationIdentifier"], + "members":{ + "operationIdentifier":{ + "shape":"OperationIdentifier", + "documentation":"

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

" + } + } + }, + "EnabledControlSummary":{ + "type":"structure", + "members":{ + "controlIdentifier":{ + "shape":"ControlIdentifier", + "documentation":"

The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny guardrail.

" + } + }, + "documentation":"

A summary of enabled controls.

" + }, + "EnabledControls":{ + "type":"list", + "member":{"shape":"EnabledControlSummary"} + }, + "GetControlOperationInput":{ + "type":"structure", + "required":["operationIdentifier"], + "members":{ + "operationIdentifier":{ + "shape":"OperationIdentifier", + "documentation":"

The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days.

" + } + } + }, + "GetControlOperationOutput":{ + "type":"structure", + "required":["controlOperation"], + "members":{ + "controlOperation":{ + "shape":"ControlOperation", + "documentation":"

" + } + } + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Unexpected error during processing of request.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "ListEnabledControlsInput":{ + "type":"structure", + "required":["targetIdentifier"], + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

How many results to return per API call.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The token to continue the list from a previous API call with the same parameters.

" + }, + "targetIdentifier":{ + "shape":"TargetIdentifier", + "documentation":"

The ARN of the organizational unit.

" + } + } + }, + "ListEnabledControlsOutput":{ + "type":"structure", + "required":["enabledControls"], + "members":{ + "enabledControls":{ + "shape":"EnabledControls", + "documentation":"

Lists the controls enabled by AWS Control Tower on the specified organizational unit and the accounts it contains.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

Retrieves the next page of results. If the string is empty, the current response is the end of the results.

" + } + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "OperationIdentifier":{ + "type":"string", + "max":36, + "min":36, + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Request references a resource which does not exist.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Request would cause a service quota to be exceeded. The limit is 10 concurrent operations.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "String":{"type":"string"}, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TargetIdentifier":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:aws[0-9a-zA-Z_\\-:\\/]+$" + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

The ID of the service quota that was exceeded.

" + }, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds the caller should wait before retrying.

", + "location":"header", + "locationName":"Retry-After" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

The ID of the service that is associated with the error.

" + } + }, + "documentation":"

Request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The input fails to satisfy the constraints specified by an AWS service.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + }, + "documentation":"

These interfaces allow you to apply the AWS library of pre-defined controls to your organizational units, programmatically. In this context, controls are the same as AWS Control Tower guardrails.

To call these APIs, you'll need to know:

  • the ControlARN for the control--that is, the guardrail--you are targeting,

  • and the ARN associated with the target organizational unit (OU).

To get the ControlARN for your AWS Control Tower guardrail:

The ControlARN contains the control name which is specified in each guardrail. For a list of control names for Strongly recommended and Elective guardrails, see Resource identifiers for APIs and guardrails in the Automating tasks section of the AWS Control Tower User Guide. Remember that Mandatory guardrails cannot be added or removed.

ARN format: arn:aws:controltower:{REGION}::control/{CONTROL_NAME}

Example:

arn:aws:controltower:us-west-2::control/AWS-GR_AUTOSCALING_LAUNCH_CONFIG_PUBLIC_IP_DISABLED

To get the ARN for an OU:

In the AWS Organizations console, you can find the ARN for the OU on the Organizational unit details page associated with that OU.

OU ARN format:

arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}

Details and examples

To view the open source resource repository on GitHub, see aws-cloudformation/aws-cloudformation-resource-providers-controltower

Recording API Requests

AWS Control Tower supports AWS CloudTrail, a service that records AWS API calls for your AWS account and delivers log files to an Amazon S3 bucket. By using information collected by CloudTrail, you can determine which requests the AWS Control Tower service received, who made the request and when, and so on. For more about AWS Control Tower and its support for CloudTrail, see Logging AWS Control Tower Actions with AWS CloudTrail in the AWS Control Tower User Guide. To learn more about CloudTrail, including how to turn it on and find your log files, see the AWS CloudTrail User Guide.

" +} diff --git a/botocore/data/cur/2017-01-06/endpoint-rule-set-1.json b/botocore/data/cur/2017-01-06/endpoint-rule-set-1.json new file mode 100644 index 00000000..d9ca8e7e --- /dev/null +++ b/botocore/data/cur/2017-01-06/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cur-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cur-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cur.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cur.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/cur/2017-01-06/examples-1.json b/botocore/data/cur/2017-01-06/examples-1.json index 0ea7e3b0..d647e38b 100644 --- a/botocore/data/cur/2017-01-06/examples-1.json +++ b/botocore/data/cur/2017-01-06/examples-1.json @@ -1,5 +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/botocore/data/cur/2017-01-06/service-2.json b/botocore/data/cur/2017-01-06/service-2.json index eee4ed9a..5bea391e 100644 --- a/botocore/data/cur/2017-01-06/service-2.json +++ b/botocore/data/cur/2017-01-06/service-2.json @@ -81,6 +81,7 @@ "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", @@ -91,6 +92,8 @@ "eu-west-3", "eu-north-1", "eu-south-1", + "eu-south-2", + "me-central-1", "me-south-1", "sa-east-1", "us-east-1", diff --git a/botocore/data/customer-profiles/2020-08-15/endpoint-rule-set-1.json b/botocore/data/customer-profiles/2020-08-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..a2e97c85 --- /dev/null +++ b/botocore/data/customer-profiles/2020-08-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://profile-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://profile-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://profile.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://profile.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/customer-profiles/2020-08-15/examples-1.json b/botocore/data/customer-profiles/2020-08-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/customer-profiles/2020-08-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/customer-profiles/2020-08-15/service-2.json b/botocore/data/customer-profiles/2020-08-15/service-2.json index 95713d8a..706f3a18 100644 --- a/botocore/data/customer-profiles/2020-08-15/service-2.json +++ b/botocore/data/customer-profiles/2020-08-15/service-2.json @@ -28,7 +28,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Associates a new key value with a specific profile, such as a Contact Trace Record (CTR) ContactId.

A profile object can have a single unique key and any number of additional keys that can be used to identify the profile that it belongs to.

" + "documentation":"

Associates a new key value with a specific profile, such as a Contact Record ContactId.

A profile object can have a single unique key and any number of additional keys that can be used to identify the profile that it belongs to.

" }, "CreateDomain":{ "name":"CreateDomain", @@ -535,7 +535,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Adds an integration between the service and a third-party service, which includes Amazon AppFlow and Amazon Connect.

An integration can belong to only one domain.

" + "documentation":"

Adds an integration between the service and a third-party service, which includes Amazon AppFlow and Amazon Connect.

An integration can belong to only one domain.

To add or remove tags on an existing Integration, see TagResource / UntagResource.

" }, "PutProfileObject":{ "name":"PutProfileObject", @@ -552,7 +552,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Adds additional objects to customer profiles of a given ObjectType.

When adding a specific profile object, like a Contact Trace Record (CTR), an inferred profile can get created if it is not mapped to an existing profile. The resulting profile will only have a phone number populated in the standard ProfileObject. Any additional CTRs with the same phone number will be mapped to the same inferred profile.

When a ProfileObject is created and if a ProfileObjectType already exists for the ProfileObject, it will provide data to a standard profile depending on the ProfileObjectType definition.

PutProfileObject needs an ObjectType, which can be created using PutProfileObjectType.

" + "documentation":"

Adds additional objects to customer profiles of a given ObjectType.

When adding a specific profile object, like a Contact Record, an inferred profile can get created if it is not mapped to an existing profile. The resulting profile will only have a phone number populated in the standard ProfileObject. Any additional Contact Records with the same phone number will be mapped to the same inferred profile.

When a ProfileObject is created and if a ProfileObjectType already exists for the ProfileObject, it will provide data to a standard profile depending on the ProfileObjectType definition.

PutProfileObject needs an ObjectType, which can be created using PutProfileObjectType.

" }, "PutProfileObjectType":{ "name":"PutProfileObjectType", @@ -569,7 +569,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Defines a ProfileObjectType.

" + "documentation":"

Defines a ProfileObjectType.

To add or remove tags on an existing ObjectType, see TagResource/UntagResource.

" }, "SearchProfiles":{ "name":"SearchProfiles", @@ -586,7 +586,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Searches for profiles within a specific domain name using name, phone number, email address, account number, or a custom defined index.

" + "documentation":"

Searches for profiles within a specific domain using one or more predefined search keys (e.g., _fullName, _phone, _email, _account, etc.) and/or custom-defined search keys. A search key is a data type pair that consists of a KeyName and Values list.

This operation supports searching for profiles with a minimum of 1 key-value(s) pair and up to 5 key-value(s) pairs using either AND or OR logic.

" }, "TagResource":{ "name":"TagResource", @@ -633,7 +633,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Updates the properties of a domain, including creating or selecting a dead letter queue or an encryption key.

After a domain is created, the name can’t be changed.

Use this API or CreateDomain to enable identity resolution: set Matching to true.

To prevent cross-service impersonation when you call this API, see Cross-service confused deputy prevention for sample policies that you should apply.

" + "documentation":"

Updates the properties of a domain, including creating or selecting a dead letter queue or an encryption key.

After a domain is created, the name can’t be changed.

Use this API or CreateDomain to enable identity resolution: set Matching to true.

To prevent cross-service impersonation when you call this API, see Cross-service confused deputy prevention for sample policies that you should apply.

To add or remove tags on an existing Domain, see TagResource/UntagResource.

" }, "UpdateProfile":{ "name":"UpdateProfile", @@ -684,7 +684,7 @@ }, "KeyName":{ "shape":"name", - "documentation":"

A searchable identifier of a customer profile.

" + "documentation":"

A searchable identifier of a customer profile. The predefined keys you can use include: _account, _profileId, _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, _zendeskExternalId, _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId, _shopifyCustomerId, _shopifyOrderId.

" }, "Values":{ "shape":"requestValueList", @@ -711,6 +711,24 @@ } } }, + "AdditionalSearchKey":{ + "type":"structure", + "required":[ + "KeyName", + "Values" + ], + "members":{ + "KeyName":{ + "shape":"name", + "documentation":"

A searchable identifier of a customer profile.

" + }, + "Values":{ + "shape":"requestValueList", + "documentation":"

A list of key values.

" + } + }, + "documentation":"

A data type pair that consists of a KeyName and Values list that is used in conjunction with the KeyName and Values parameters to search for profiles using the SearchProfiles API.

" + }, "Address":{ "type":"structure", "members":{ @@ -887,6 +905,10 @@ "ConflictResolution":{ "shape":"ConflictResolution", "documentation":"

How the auto-merging process should resolve conflicts between different profiles. For example, if Profile A and Profile B have the same FirstName and LastName (and that is the matching criteria), which EmailAddress should be used?

" + }, + "MinAllowedConfidenceScoreForMerging":{ + "shape":"Double0To1", + "documentation":"

A number between 0 and 1 that represents the minimum confidence score required for profiles within a matching group to be merged during the auto-merge process. A higher score means higher similarity required to merge profiles.

" } }, "documentation":"

Configuration settings for how to perform the auto-merging of profiles.

" @@ -1493,6 +1515,11 @@ "documentation":"

Usage-specific statistics about the domain.

" }, "Double":{"type":"double"}, + "Double0To1":{ + "type":"double", + "max":1.0, + "min":0.0 + }, "ExportingConfig":{ "type":"structure", "members":{ @@ -1669,6 +1696,20 @@ "max":256, "pattern":"[a-zA-Z0-9][\\w!@#.-]+" }, + "FoundByKeyValue":{ + "type":"structure", + "members":{ + "KeyName":{ + "shape":"name", + "documentation":"

A searchable identifier of a customer profile.

" + }, + "Values":{ + "shape":"requestValueList", + "documentation":"

A list of key values.

" + } + }, + "documentation":"

A data type pair that consists of a KeyName and Values list that were used to find a profile returned in response to a SearchProfiles request.

" + }, "Gender":{ "type":"string", "enum":[ @@ -1698,6 +1739,10 @@ "ConflictResolution":{ "shape":"ConflictResolution", "documentation":"

How the auto-merging process should resolve conflicts between different profiles.

" + }, + "MinAllowedConfidenceScoreForMerging":{ + "shape":"Double0To1", + "documentation":"

Minimum confidence score required for profiles within a matching group to be merged during the auto-merge process.

" } } }, @@ -1910,6 +1955,10 @@ "WorkflowId":{ "shape":"string1To255", "documentation":"

Unique identifier for the workflow.

" + }, + "IsUnstructured":{ + "shape":"optionalBoolean", + "documentation":"

Boolean to indicate if the Flow associated with the Integration is created via Appflow console or with ObjectTypeName equals _unstructured via API/CLI in flowDefinition

" } } }, @@ -2521,6 +2570,10 @@ "WorkflowId":{ "shape":"string1To255", "documentation":"

Unique identifier for the workflow.

" + }, + "IsUnstructured":{ + "shape":"optionalBoolean", + "documentation":"

Boolean to indicate if the Flow associated with the Integration is created via Appflow console or with ObjectTypeName equals _unstructured via API/CLI in flowDefinition

" } }, "documentation":"

An integration in list of integrations.

" @@ -2911,7 +2964,7 @@ }, "ConfidenceScore":{ "shape":"Double", - "documentation":"

A number between 0 and 1 that represents the confidence level of assigning profiles to a matching group. A score of 1 likely indicates an exact match.

" + "documentation":"

A number between 0 and 1, where a higher score means higher similarity. Examining match confidence scores lets you distinguish between groups of similar records in which the system is highly confident (which you may decide to merge), groups of similar records about which the system is uncertain (which you may decide to have reviewed by a human), and groups of similar records that the system deems to be unlikely (which you may decide to reject). Given confidence scores vary as per the data input, it should not be used an absolute measure of matching quality.

" } }, "documentation":"

The Match group object.

" @@ -3195,6 +3248,10 @@ "Attributes":{ "shape":"Attributes", "documentation":"

A key value pair of attributes of a customer profile.

" + }, + "FoundByItems":{ + "shape":"foundByList", + "documentation":"

A list of items used to find a profile returned in a SearchProfiles response. An item is a key-value(s) pair that matches an attribute in the profile.

If the optional AdditionalSearchKeys parameter was included in the SearchProfiles request, the FoundByItems list should be interpreted based on the LogicalOperator used in the request:

  • AND - The profile included in the response matched all of the search keys specified in the request. The FoundByItems will include all of the key-value(s) pairs that were specified in the request (as this is a requirement of AND search logic).

  • OR - The profile included in the response matched at least one of the search keys specified in the request. The FoundByItems will include each of the key-value(s) pairs that the profile was found by.

The OR relationship is the default behavior if the LogicalOperator parameter is not included in the SearchProfiles request.

" } }, "documentation":"

The standard profile of a customer.

" @@ -3302,6 +3359,10 @@ "WorkflowId":{ "shape":"string1To255", "documentation":"

Unique identifier for the workflow.

" + }, + "IsUnstructured":{ + "shape":"optionalBoolean", + "documentation":"

Boolean to indicate if the Flow associated with the Integration is created via Appflow console or with ObjectTypeName equals _unstructured via API/CLI in flowDefinition

" } } }, @@ -3364,7 +3425,7 @@ }, "TemplateId":{ "shape":"name", - "documentation":"

A unique identifier for the object template.

" + "documentation":"

A unique identifier for the object template. For some attributes in the request, the service will use the default value from the object template when TemplateId is present. If these attributes are present in the request, the service may return a BadRequestException. These attributes include: AllowProfileCreation, SourceLastUpdatedTimestampFormat, Fields, and Keys. For example, if AllowProfileCreation is set to true when TemplateId is set, the service may return a BadRequestException.

" }, "ExpirationDays":{ "shape":"expirationDaysInteger", @@ -3643,7 +3704,7 @@ }, "MaxResults":{ "shape":"maxSize100", - "documentation":"

The maximum number of objects returned per page.

", + "documentation":"

The maximum number of objects returned per page.

The default is 20 if this parameter is not included in the request.

", "location":"querystring", "locationName":"max-results" }, @@ -3660,6 +3721,14 @@ "Values":{ "shape":"requestValueList", "documentation":"

A list of key values.

" + }, + "AdditionalSearchKeys":{ + "shape":"additionalSearchKeysList", + "documentation":"

A list of AdditionalSearchKey objects that are each searchable identifiers of a profile. Each AdditionalSearchKey object contains a KeyName and a list of Values associated with that specific key (i.e., a key-value(s) pair). These additional search keys will be used in conjunction with the LogicalOperator and the required KeyName and Values parameters to search for profiles that satisfy the search criteria.

" + }, + "LogicalOperator":{ + "shape":"logicalOperator", + "documentation":"

Relationship between all specified search keys that will be used to search for profiles. This includes the required KeyName and Values parameters as well as any key-value(s) pairs specified in the AdditionalSearchKeys list.

This parameter influences which profiles will be returned in the response in the following manner:

  • AND - The response only includes profiles that match all of the search keys.

  • OR - The response includes profiles that match at least one of the search keys.

The OR relationship is the default behavior if this parameter is not included in the request.

" } } }, @@ -3668,7 +3737,7 @@ "members":{ "Items":{ "shape":"ProfileList", - "documentation":"

The list of SearchProfiles instances.

" + "documentation":"

The list of Profiles matching the search criteria.

" }, "NextToken":{ "shape":"token", @@ -4294,6 +4363,12 @@ }, "documentation":"

The properties that are applied when using Zendesk as a flow source.

" }, + "additionalSearchKeysList":{ + "type":"list", + "member":{"shape":"AdditionalSearchKey"}, + "max":4, + "min":1 + }, "boolean":{"type":"boolean"}, "encryptionKey":{ "type":"string", @@ -4305,6 +4380,19 @@ "max":1098, "min":1 }, + "foundByList":{ + "type":"list", + "member":{"shape":"FoundByKeyValue"}, + "max":5, + "min":1 + }, + "logicalOperator":{ + "type":"string", + "enum":[ + "AND", + "OR" + ] + }, "long":{"type":"long"}, "matchesNumber":{ "type":"integer", @@ -4396,5 +4484,5 @@ "pattern":"[a-f0-9]{32}" } }, - "documentation":"Amazon Connect Customer Profiles

Welcome to the Amazon Connect Customer Profiles API Reference. This guide provides information about the Amazon Connect Customer Profiles API, including supported operations, data types, parameters, and schemas.

Amazon Connect Customer Profiles is a unified customer profile for your contact center that has pre-built connectors powered by AppFlow that make it easy to combine customer information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and your enterprise resource planning (ERP), with contact history from your Amazon Connect contact center.

If you're new to Amazon Connect , you might find it helpful to also review the Amazon Connect Administrator Guide.

" + "documentation":"Amazon Connect Customer Profiles

Amazon Connect Customer Profiles is a unified customer profile for your contact center that has pre-built connectors powered by AppFlow that make it easy to combine customer information from third party applications, such as Salesforce (CRM), ServiceNow (ITSM), and your enterprise resource planning (ERP), with contact history from your Amazon Connect contact center. If you're new to Amazon Connect, you might find it helpful to review the Amazon Connect Administrator Guide.

" } diff --git a/botocore/data/databrew/2017-07-25/endpoint-rule-set-1.json b/botocore/data/databrew/2017-07-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..39a28365 --- /dev/null +++ b/botocore/data/databrew/2017-07-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://databrew-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://databrew-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://databrew.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://databrew.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/databrew/2017-07-25/examples-1.json b/botocore/data/databrew/2017-07-25/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/databrew/2017-07-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/dataexchange/2017-07-25/endpoint-rule-set-1.json b/botocore/data/dataexchange/2017-07-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..6c8aa803 --- /dev/null +++ b/botocore/data/dataexchange/2017-07-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dataexchange-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dataexchange-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dataexchange.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://dataexchange.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/dataexchange/2017-07-25/service-2.json b/botocore/data/dataexchange/2017-07-25/service-2.json index 943534a9..8e87e382 100644 --- a/botocore/data/dataexchange/2017-07-25/service-2.json +++ b/botocore/data/dataexchange/2017-07-25/service-2.json @@ -1,1276 +1,767 @@ { - "metadata": { - "apiVersion": "2017-07-25", - "endpointPrefix": "dataexchange", - "signingName": "dataexchange", - "serviceFullName": "AWS Data Exchange", - "serviceId": "DataExchange", - "protocol": "rest-json", - "jsonVersion": "1.1", - "uid": "dataexchange-2017-07-25", - "signatureVersion": "v4" + "version":"2.0", + "metadata":{ + "apiVersion":"2017-07-25", + "endpointPrefix":"dataexchange", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Data Exchange", + "serviceId":"DataExchange", + "signatureVersion":"v4", + "signingName":"dataexchange", + "uid":"dataexchange-2017-07-25" }, - "operations": { - "CancelJob": { - "name": "CancelJob", - "http": { - "method": "DELETE", - "requestUri": "/v1/jobs/{JobId}", - "responseCode": 204 + "operations":{ + "CancelJob":{ + "name":"CancelJob", + "http":{ + "method":"DELETE", + "requestUri":"/v1/jobs/{JobId}", + "responseCode":204 }, - "input": { - "shape": "CancelJobRequest" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "ConflictException", - "documentation": "

409 response

" - } + "input":{"shape":"CancelJobRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation cancels a job. Jobs can be cancelled only when they are in the WAITING state.

" + "documentation":"

This operation cancels a job. Jobs can be cancelled only when they are in the WAITING state.

" }, - "CreateDataSet": { - "name": "CreateDataSet", - "http": { - "method": "POST", - "requestUri": "/v1/data-sets", - "responseCode": 201 + "CreateDataSet":{ + "name":"CreateDataSet", + "http":{ + "method":"POST", + "requestUri":"/v1/data-sets", + "responseCode":201 }, - "input": { - "shape": "CreateDataSetRequest" - }, - "output": { - "shape": "CreateDataSetResponse", - "documentation": "

201 response

" - }, - "errors": [ - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "ServiceLimitExceededException", - "documentation": "

402 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - } + "input":{"shape":"CreateDataSetRequest"}, + "output":{"shape":"CreateDataSetResponse"}, + "errors":[ + {"shape":"ServiceLimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation creates a data set.

" + "documentation":"

This operation creates a data set.

" }, - "CreateEventAction": { - "name": "CreateEventAction", - "http": { - "method": "POST", - "requestUri": "/v1/event-actions", - "responseCode": 201 + "CreateEventAction":{ + "name":"CreateEventAction", + "http":{ + "method":"POST", + "requestUri":"/v1/event-actions", + "responseCode":201 }, - "input": { - "shape": "CreateEventActionRequest" - }, - "output": { - "shape": "CreateEventActionResponse", - "documentation": "

201 response

" - }, - "errors": [ - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "ServiceLimitExceededException", - "documentation": "

402 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - } + "input":{"shape":"CreateEventActionRequest"}, + "output":{"shape":"CreateEventActionResponse"}, + "errors":[ + {"shape":"ServiceLimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation creates an event action.

" + "documentation":"

This operation creates an event action.

" }, - "CreateJob": { - "name": "CreateJob", - "http": { - "method": "POST", - "requestUri": "/v1/jobs", - "responseCode": 201 + "CreateJob":{ + "name":"CreateJob", + "http":{ + "method":"POST", + "requestUri":"/v1/jobs", + "responseCode":201 }, - "input": { - "shape": "CreateJobRequest" - }, - "output": { - "shape": "CreateJobResponse", - "documentation": "

201 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - }, - { - "shape": "ConflictException", - "documentation": "

409 response

" - } + "input":{"shape":"CreateJobRequest"}, + "output":{"shape":"CreateJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation creates a job.

" + "documentation":"

This operation creates a job.

" }, - "CreateRevision": { - "name": "CreateRevision", - "http": { - "method": "POST", - "requestUri": "/v1/data-sets/{DataSetId}/revisions", - "responseCode": 201 + "CreateRevision":{ + "name":"CreateRevision", + "http":{ + "method":"POST", + "requestUri":"/v1/data-sets/{DataSetId}/revisions", + "responseCode":201 }, - "input": { - "shape": "CreateRevisionRequest" - }, - "output": { - "shape": "CreateRevisionResponse", - "documentation": "

201 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - } + "input":{"shape":"CreateRevisionRequest"}, + "output":{"shape":"CreateRevisionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation creates a revision for a data set.

" + "documentation":"

This operation creates a revision for a data set.

" }, - "DeleteAsset": { - "name": "DeleteAsset", - "http": { - "method": "DELETE", - "requestUri": "/v1/data-sets/{DataSetId}/revisions/{RevisionId}/assets/{AssetId}", - "responseCode": 204 + "DeleteAsset":{ + "name":"DeleteAsset", + "http":{ + "method":"DELETE", + "requestUri":"/v1/data-sets/{DataSetId}/revisions/{RevisionId}/assets/{AssetId}", + "responseCode":204 }, - "input": { - "shape": "DeleteAssetRequest" - }, - "errors": [ - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - }, - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ConflictException", - "documentation": "

409 response

" - } + "input":{"shape":"DeleteAssetRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation deletes an asset.

" + "documentation":"

This operation deletes an asset.

" }, - "DeleteDataSet": { - "name": "DeleteDataSet", - "http": { - "method": "DELETE", - "requestUri": "/v1/data-sets/{DataSetId}", - "responseCode": 204 + "DeleteDataSet":{ + "name":"DeleteDataSet", + "http":{ + "method":"DELETE", + "requestUri":"/v1/data-sets/{DataSetId}", + "responseCode":204 }, - "input": { - "shape": "DeleteDataSetRequest" - }, - "errors": [ - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - }, - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ConflictException", - "documentation": "

409 response

" - } + "input":{"shape":"DeleteDataSetRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation deletes a data set.

" + "documentation":"

This operation deletes a data set.

" }, - "DeleteEventAction": { - "name": "DeleteEventAction", - "http": { - "method": "DELETE", - "requestUri": "/v1/event-actions/{EventActionId}", - "responseCode": 204 + "DeleteEventAction":{ + "name":"DeleteEventAction", + "http":{ + "method":"DELETE", + "requestUri":"/v1/event-actions/{EventActionId}", + "responseCode":204 }, - "input": { - "shape": "DeleteEventActionRequest" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"DeleteEventActionRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation deletes the event action.

" + "documentation":"

This operation deletes the event action.

" }, - "DeleteRevision": { - "name": "DeleteRevision", - "http": { - "method": "DELETE", - "requestUri": "/v1/data-sets/{DataSetId}/revisions/{RevisionId}", - "responseCode": 204 + "DeleteRevision":{ + "name":"DeleteRevision", + "http":{ + "method":"DELETE", + "requestUri":"/v1/data-sets/{DataSetId}/revisions/{RevisionId}", + "responseCode":204 }, - "input": { - "shape": "DeleteRevisionRequest" - }, - "errors": [ - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - }, - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ConflictException", - "documentation": "

409 response

" - } + "input":{"shape":"DeleteRevisionRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation deletes a revision.

" + "documentation":"

This operation deletes a revision.

" }, - "GetAsset": { - "name": "GetAsset", - "http": { - "method": "GET", - "requestUri": "/v1/data-sets/{DataSetId}/revisions/{RevisionId}/assets/{AssetId}", - "responseCode": 200 + "GetAsset":{ + "name":"GetAsset", + "http":{ + "method":"GET", + "requestUri":"/v1/data-sets/{DataSetId}/revisions/{RevisionId}/assets/{AssetId}", + "responseCode":200 }, - "input": { - "shape": "GetAssetRequest" - }, - "output": { - "shape": "GetAssetResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"GetAssetRequest"}, + "output":{"shape":"GetAssetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation returns information about an asset.

" + "documentation":"

This operation returns information about an asset.

" }, - "GetDataSet": { - "name": "GetDataSet", - "http": { - "method": "GET", - "requestUri": "/v1/data-sets/{DataSetId}", - "responseCode": 200 + "GetDataSet":{ + "name":"GetDataSet", + "http":{ + "method":"GET", + "requestUri":"/v1/data-sets/{DataSetId}", + "responseCode":200 }, - "input": { - "shape": "GetDataSetRequest" - }, - "output": { - "shape": "GetDataSetResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"GetDataSetRequest"}, + "output":{"shape":"GetDataSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation returns information about a data set.

" + "documentation":"

This operation returns information about a data set.

" }, - "GetEventAction": { - "name": "GetEventAction", - "http": { - "method": "GET", - "requestUri": "/v1/event-actions/{EventActionId}", - "responseCode": 200 + "GetEventAction":{ + "name":"GetEventAction", + "http":{ + "method":"GET", + "requestUri":"/v1/event-actions/{EventActionId}", + "responseCode":200 }, - "input": { - "shape": "GetEventActionRequest" - }, - "output": { - "shape": "GetEventActionResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"GetEventActionRequest"}, + "output":{"shape":"GetEventActionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation retrieves information about an event action.

" + "documentation":"

This operation retrieves information about an event action.

" }, - "GetJob": { - "name": "GetJob", - "http": { - "method": "GET", - "requestUri": "/v1/jobs/{JobId}", - "responseCode": 200 + "GetJob":{ + "name":"GetJob", + "http":{ + "method":"GET", + "requestUri":"/v1/jobs/{JobId}", + "responseCode":200 }, - "input": { - "shape": "GetJobRequest" - }, - "output": { - "shape": "GetJobResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"GetJobRequest"}, + "output":{"shape":"GetJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation returns information about a job.

" + "documentation":"

This operation returns information about a job.

" }, - "GetRevision": { - "name": "GetRevision", - "http": { - "method": "GET", - "requestUri": "/v1/data-sets/{DataSetId}/revisions/{RevisionId}", - "responseCode": 200 + "GetRevision":{ + "name":"GetRevision", + "http":{ + "method":"GET", + "requestUri":"/v1/data-sets/{DataSetId}/revisions/{RevisionId}", + "responseCode":200 }, - "input": { - "shape": "GetRevisionRequest" - }, - "output": { - "shape": "GetRevisionResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"GetRevisionRequest"}, + "output":{"shape":"GetRevisionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation returns information about a revision.

" + "documentation":"

This operation returns information about a revision.

" }, - "ListDataSetRevisions": { - "name": "ListDataSetRevisions", - "http": { - "method": "GET", - "requestUri": "/v1/data-sets/{DataSetId}/revisions", - "responseCode": 200 + "ListDataSetRevisions":{ + "name":"ListDataSetRevisions", + "http":{ + "method":"GET", + "requestUri":"/v1/data-sets/{DataSetId}/revisions", + "responseCode":200 }, - "input": { - "shape": "ListDataSetRevisionsRequest" - }, - "output": { - "shape": "ListDataSetRevisionsResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"ListDataSetRevisionsRequest"}, + "output":{"shape":"ListDataSetRevisionsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation lists a data set's revisions sorted by CreatedAt in descending order.

" + "documentation":"

This operation lists a data set's revisions sorted by CreatedAt in descending order.

" }, - "ListDataSets": { - "name": "ListDataSets", - "http": { - "method": "GET", - "requestUri": "/v1/data-sets", - "responseCode": 200 + "ListDataSets":{ + "name":"ListDataSets", + "http":{ + "method":"GET", + "requestUri":"/v1/data-sets", + "responseCode":200 }, - "input": { - "shape": "ListDataSetsRequest" - }, - "output": { - "shape": "ListDataSetsResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"ListDataSetsRequest"}, + "output":{"shape":"ListDataSetsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation lists your data sets. When listing by origin OWNED, results are sorted by CreatedAt in descending order. When listing by origin ENTITLED, there is no order and the maxResults parameter is ignored.

" + "documentation":"

This operation lists your data sets. When listing by origin OWNED, results are sorted by CreatedAt in descending order. When listing by origin ENTITLED, there is no order and the maxResults parameter is ignored.

" }, - "ListEventActions": { - "name": "ListEventActions", - "http": { - "method": "GET", - "requestUri": "/v1/event-actions", - "responseCode": 200 + "ListEventActions":{ + "name":"ListEventActions", + "http":{ + "method":"GET", + "requestUri":"/v1/event-actions", + "responseCode":200 }, - "input": { - "shape": "ListEventActionsRequest" - }, - "output": { - "shape": "ListEventActionsResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"ListEventActionsRequest"}, + "output":{"shape":"ListEventActionsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation lists your event actions.

" + "documentation":"

This operation lists your event actions.

" }, - "ListJobs": { - "name": "ListJobs", - "http": { - "method": "GET", - "requestUri": "/v1/jobs", - "responseCode": 200 + "ListJobs":{ + "name":"ListJobs", + "http":{ + "method":"GET", + "requestUri":"/v1/jobs", + "responseCode":200 }, - "input": { - "shape": "ListJobsRequest" - }, - "output": { - "shape": "ListJobsResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"ListJobsRequest"}, + "output":{"shape":"ListJobsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation lists your jobs sorted by CreatedAt in descending order.

" + "documentation":"

This operation lists your jobs sorted by CreatedAt in descending order.

" }, - "ListRevisionAssets": { - "name": "ListRevisionAssets", - "http": { - "method": "GET", - "requestUri": "/v1/data-sets/{DataSetId}/revisions/{RevisionId}/assets", - "responseCode": 200 + "ListRevisionAssets":{ + "name":"ListRevisionAssets", + "http":{ + "method":"GET", + "requestUri":"/v1/data-sets/{DataSetId}/revisions/{RevisionId}/assets", + "responseCode":200 }, - "input": { - "shape": "ListRevisionAssetsRequest" - }, - "output": { - "shape": "ListRevisionAssetsResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - } + "input":{"shape":"ListRevisionAssetsRequest"}, + "output":{"shape":"ListRevisionAssetsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation lists a revision's assets sorted alphabetically in descending order.

" + "documentation":"

This operation lists a revision's assets sorted alphabetically in descending order.

" }, - "ListTagsForResource": { - "name": "ListTagsForResource", - "http": { - "method": "GET", - "requestUri": "/tags/{resource-arn}", - "responseCode": 200 + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 }, - "input": { - "shape": "ListTagsForResourceRequest" - }, - "output": { - "shape": "ListTagsForResourceResponse", - "documentation": "

200 response

" - }, - "errors": [], - "documentation": "

This operation lists the tags on the resource.

" + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "documentation":"

This operation lists the tags on the resource.

" }, - "RevokeRevision": { - "name": "RevokeRevision", - "http": { - "method": "POST", - "requestUri": "/v1/data-sets/{DataSetId}/revisions/{RevisionId}/revoke", - "responseCode": 200 + "RevokeRevision":{ + "name":"RevokeRevision", + "http":{ + "method":"POST", + "requestUri":"/v1/data-sets/{DataSetId}/revisions/{RevisionId}/revoke", + "responseCode":200 }, - "input": { - "shape": "RevokeRevisionRequest" - }, - "output": { - "shape": "RevokeRevisionResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - }, - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ConflictException", - "documentation": "

409 response

" - } + "input":{"shape":"RevokeRevisionRequest"}, + "output":{"shape":"RevokeRevisionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation revokes subscribers' access to a revision.

" + "documentation":"

This operation revokes subscribers' access to a revision.

" }, - "SendApiAsset": { - "name": "SendApiAsset", - "http": { - "method": "POST", - "requestUri": "/v1", - "responseCode": 200 + "SendApiAsset":{ + "name":"SendApiAsset", + "http":{ + "method":"POST", + "requestUri":"/v1", + "responseCode":200 }, - "input": { - "shape": "SendApiAssetRequest" - }, - "output": { - "shape": "SendApiAssetResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - } + "input":{"shape":"SendApiAssetRequest"}, + "output":{"shape":"SendApiAssetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation invokes an API Gateway API asset. The request is proxied to the provider’s API Gateway API.

", - "endpoint": { - "hostPrefix": "api-fulfill." - } + "documentation":"

This operation invokes an API Gateway API asset. The request is proxied to the provider’s API Gateway API.

", + "endpoint":{"hostPrefix":"api-fulfill."} }, - "StartJob": { - "name": "StartJob", - "http": { - "method": "PATCH", - "requestUri": "/v1/jobs/{JobId}", - "responseCode": 202 + "StartJob":{ + "name":"StartJob", + "http":{ + "method":"PATCH", + "requestUri":"/v1/jobs/{JobId}", + "responseCode":202 }, - "input": { - "shape": "StartJobRequest" - }, - "output": { - "shape": "StartJobResponse", - "documentation": "

202 response

" - }, - "errors": [ - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - }, - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ConflictException", - "documentation": "

409 response

" - } + "input":{"shape":"StartJobRequest"}, + "output":{"shape":"StartJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation starts a job.

" + "documentation":"

This operation starts a job.

" }, - "TagResource": { - "name": "TagResource", - "http": { - "method": "POST", - "requestUri": "/tags/{resource-arn}", - "responseCode": 204 + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{ResourceArn}", + "responseCode":204 }, - "input": { - "shape": "TagResourceRequest" - }, - "errors": [], - "documentation": "

This operation tags a resource.

" + "input":{"shape":"TagResourceRequest"}, + "documentation":"

This operation tags a resource.

" }, - "UntagResource": { - "name": "UntagResource", - "http": { - "method": "DELETE", - "requestUri": "/tags/{resource-arn}", - "responseCode": 204 + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{ResourceArn}", + "responseCode":204 }, - "input": { - "shape": "UntagResourceRequest" - }, - "errors": [], - "documentation": "

This operation removes one or more tags from a resource.

" + "input":{"shape":"UntagResourceRequest"}, + "documentation":"

This operation removes one or more tags from a resource.

", + "idempotent":true }, - "UpdateAsset": { - "name": "UpdateAsset", - "http": { - "method": "PATCH", - "requestUri": "/v1/data-sets/{DataSetId}/revisions/{RevisionId}/assets/{AssetId}", - "responseCode": 200 + "UpdateAsset":{ + "name":"UpdateAsset", + "http":{ + "method":"PATCH", + "requestUri":"/v1/data-sets/{DataSetId}/revisions/{RevisionId}/assets/{AssetId}", + "responseCode":200 }, - "input": { - "shape": "UpdateAssetRequest" - }, - "output": { - "shape": "UpdateAssetResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - }, - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ConflictException", - "documentation": "

409 response

" - } + "input":{"shape":"UpdateAssetRequest"}, + "output":{"shape":"UpdateAssetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation updates an asset.

" + "documentation":"

This operation updates an asset.

" }, - "UpdateDataSet": { - "name": "UpdateDataSet", - "http": { - "method": "PATCH", - "requestUri": "/v1/data-sets/{DataSetId}", - "responseCode": 200 + "UpdateDataSet":{ + "name":"UpdateDataSet", + "http":{ + "method":"PATCH", + "requestUri":"/v1/data-sets/{DataSetId}", + "responseCode":200 }, - "input": { - "shape": "UpdateDataSetRequest" - }, - "output": { - "shape": "UpdateDataSetResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - } + "input":{"shape":"UpdateDataSetRequest"}, + "output":{"shape":"UpdateDataSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation updates a data set.

" + "documentation":"

This operation updates a data set.

" }, - "UpdateEventAction": { - "name": "UpdateEventAction", - "http": { - "method": "PATCH", - "requestUri": "/v1/event-actions/{EventActionId}", - "responseCode": 200 + "UpdateEventAction":{ + "name":"UpdateEventAction", + "http":{ + "method":"PATCH", + "requestUri":"/v1/event-actions/{EventActionId}", + "responseCode":200 }, - "input": { - "shape": "UpdateEventActionRequest" - }, - "output": { - "shape": "UpdateEventActionResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - } + "input":{"shape":"UpdateEventActionRequest"}, + "output":{"shape":"UpdateEventActionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation updates the event action.

" + "documentation":"

This operation updates the event action.

" }, - "UpdateRevision": { - "name": "UpdateRevision", - "http": { - "method": "PATCH", - "requestUri": "/v1/data-sets/{DataSetId}/revisions/{RevisionId}", - "responseCode": 200 + "UpdateRevision":{ + "name":"UpdateRevision", + "http":{ + "method":"PATCH", + "requestUri":"/v1/data-sets/{DataSetId}/revisions/{RevisionId}", + "responseCode":200 }, - "input": { - "shape": "UpdateRevisionRequest" - }, - "output": { - "shape": "UpdateRevisionResponse", - "documentation": "

200 response

" - }, - "errors": [ - { - "shape": "ValidationException", - "documentation": "

400 response

" - }, - { - "shape": "InternalServerException", - "documentation": "

500 response

" - }, - { - "shape": "AccessDeniedException", - "documentation": "

403 response

" - }, - { - "shape": "ResourceNotFoundException", - "documentation": "

404 response

" - }, - { - "shape": "ThrottlingException", - "documentation": "

429 response

" - }, - { - "shape": "ConflictException", - "documentation": "

409 response

" - } + "input":{"shape":"UpdateRevisionRequest"}, + "output":{"shape":"UpdateRevisionResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} ], - "documentation": "

This operation updates a revision.

" + "documentation":"

This operation updates a revision.

" } }, - "shapes": { - "AccessDeniedException": { - "type": "structure", - "members": { - "Message": { - "shape": "__string", - "documentation": "

Access to the resource is denied.

" + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{ + "shape":"__string", + "documentation":"

Access to the resource is denied.

" } }, - "documentation": "

Access to the resource is denied.

", - "required": [ - "Message" + "documentation":"

Access to the resource is denied.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "Action":{ + "type":"structure", + "members":{ + "ExportRevisionToS3":{ + "shape":"AutoExportRevisionToS3RequestDetails", + "documentation":"

Details for the export revision to Amazon S3 action.

" + } + }, + "documentation":"

What occurs after a certain event.

" + }, + "ApiDescription":{"type":"string"}, + "ApiGatewayApiAsset":{ + "type":"structure", + "members":{ + "ApiDescription":{ + "shape":"ApiDescription", + "documentation":"

The API description of the API asset.

" + }, + "ApiEndpoint":{ + "shape":"__string", + "documentation":"

The API endpoint of the API asset.

" + }, + "ApiId":{ + "shape":"__string", + "documentation":"

The unique identifier of the API asset.

" + }, + "ApiKey":{ + "shape":"__string", + "documentation":"

The API key of the API asset.

" + }, + "ApiName":{ + "shape":"__string", + "documentation":"

The API name of the API asset.

" + }, + "ApiSpecificationDownloadUrl":{ + "shape":"__string", + "documentation":"

The download URL of the API specification of the API asset.

" + }, + "ApiSpecificationDownloadUrlExpiresAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the upload URL expires, in ISO 8601 format.

" + }, + "ProtocolType":{ + "shape":"ProtocolType", + "documentation":"

The protocol type of the API asset.

" + }, + "Stage":{ + "shape":"__string", + "documentation":"

The stage of the API asset.

" + } + }, + "documentation":"

The API Gateway API that is the asset.

" + }, + "Arn":{"type":"string"}, + "AssetDestinationEntry":{ + "type":"structure", + "required":[ + "AssetId", + "Bucket" ], - "exception": true, - "error": { - "httpStatusCode": 403 - } - }, - "Action": { - "type": "structure", - "members": { - "ExportRevisionToS3": { - "shape": "AutoExportRevisionToS3RequestDetails", - "documentation": "

Details for the export revision to Amazon S3 action.

" + "members":{ + "AssetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the asset.

" + }, + "Bucket":{ + "shape":"__string", + "documentation":"

The Amazon S3 bucket that is the destination for the asset.

" + }, + "Key":{ + "shape":"__string", + "documentation":"

The name of the object in Amazon S3 for the asset.

" } }, - "documentation": "

What occurs after a certain event.

" + "documentation":"

The destination for the asset.

" }, - "ApiDescription": { - "type": "string", - "documentation": "

The description of the API.

" - }, - "ApiGatewayApiAsset": { - "type": "structure", - "members": { - "ApiDescription": { - "shape": "ApiDescription", - "documentation": "

The API description of the API asset.

" + "AssetDetails":{ + "type":"structure", + "members":{ + "S3SnapshotAsset":{ + "shape":"S3SnapshotAsset", + "documentation":"

The Amazon S3 object that is the asset.

" }, - "ApiEndpoint": { - "shape": "__string", - "documentation": "

The API endpoint of the API asset.

" + "RedshiftDataShareAsset":{ + "shape":"RedshiftDataShareAsset", + "documentation":"

The Amazon Redshift datashare that is the asset.

" }, - "ApiId": { - "shape": "__string", - "documentation": "

The unique identifier of the API asset.

" + "ApiGatewayApiAsset":{ + "shape":"ApiGatewayApiAsset", + "documentation":"

Information about the API Gateway API asset.

" }, - "ApiKey": { - "shape": "__string", - "documentation": "

The API key of the API asset.

" + "S3DataAccessAsset":{ + "shape":"S3DataAccessAsset", + "documentation":"

The Amazon S3 data access that is the asset.

" }, - "ApiName": { - "shape": "__string", - "documentation": "

The API name of the API asset.

" - }, - "ApiSpecificationDownloadUrl": { - "shape": "__string", - "documentation": "

The download URL of the API specification of the API asset.

" - }, - "ApiSpecificationDownloadUrlExpiresAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the upload URL expires, in ISO 8601 format.

" - }, - "ProtocolType": { - "shape": "ProtocolType", - "documentation": "

The protocol type of the API asset.

" - }, - "Stage": { - "shape": "__string", - "documentation": "

The stage of the API asset.

" + "LakeFormationDataPermissionAsset":{ + "shape":"LakeFormationDataPermissionAsset", + "documentation":"

The AWS Lake Formation data permission that is the asset.

" } }, - "documentation": "

The API Gateway API that is the asset.

" + "documentation":"

Details about the asset.

" }, - "Arn": { - "type": "string", - "documentation": "

An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.

" - }, - "AssetDestinationEntry": { - "type": "structure", - "members": { - "AssetId": { - "shape": "Id", - "documentation": "

The unique identifier for the asset.

" - }, - "Bucket": { - "shape": "__string", - "documentation": "

The S3 bucket that is the destination for the asset.

" - }, - "Key": { - "shape": "__string", - "documentation": "

The name of the object in Amazon S3 for the asset.

" - } - }, - "documentation": "

The destination for the asset.

", - "required": [ - "Bucket", - "AssetId" - ] - }, - "AssetDetails": { - "type": "structure", - "members": { - "S3SnapshotAsset": { - "shape": "S3SnapshotAsset", - "documentation": "

The S3 object that is the asset.

" - }, - "RedshiftDataShareAsset": { - "shape": "RedshiftDataShareAsset", - "documentation": "

The Amazon Redshift datashare that is the asset.

" - }, - "ApiGatewayApiAsset": { - "shape": "ApiGatewayApiAsset", - "documentation": "

Information about the API Gateway API asset.

" - } - }, - "documentation": "

Information about the asset.

" - }, - "AssetEntry": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the asset.

" - }, - "AssetDetails": { - "shape": "AssetDetails", - "documentation": "

Information about the asset.

" - }, - "AssetType": { - "shape": "AssetType", - "documentation": "

The type of asset that is added to a data set.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the asset was created, in ISO 8601 format.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this asset.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the asset.

" - }, - "Name": { - "shape": "AssetName", - "documentation": "

The name of the asset. When importing from Amazon S3, the S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this asset.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The asset ID of the owned asset corresponding to the entitled asset being viewed. This parameter is returned when an asset owner is viewing the entitled copy of its owned asset.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the asset was last updated, in ISO 8601 format.

" - } - }, - "documentation": "

An asset in AWS Data Exchange is a piece of data (S3 object) or a means of fulfilling data (Amazon Redshift datashare or Amazon API Gateway API). The asset can be a structured data file, an image file, or some other data file that can be stored as an S3 object, an Amazon API Gateway API, or an Amazon Redshift datashare. When you create an import job for your files, API Gateway APIs, or Amazon Redshift datashares, you create an asset in AWS Data Exchange.

", - "required": [ + "AssetEntry":{ + "type":"structure", + "required":[ + "Arn", + "AssetDetails", "AssetType", "CreatedAt", "DataSetId", "Id", - "Arn", - "AssetDetails", - "UpdatedAt", + "Name", "RevisionId", - "Name" - ] - }, - "AssetName": { - "type": "string", - "documentation": "

The name of the asset. When importing from Amazon S3, the S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name.

" - }, - "AssetSourceEntry": { - "type": "structure", - "members": { - "Bucket": { - "shape": "__string", - "documentation": "

The S3 bucket that's part of the source of the asset.

" + "UpdatedAt" + ], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the asset.

" }, - "Key": { - "shape": "__string", - "documentation": "

The name of the object in Amazon S3 for the asset.

" + "AssetDetails":{ + "shape":"AssetDetails", + "documentation":"

Details about the asset.

" + }, + "AssetType":{ + "shape":"AssetType", + "documentation":"

The type of asset that is added to a data set.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the asset was created, in ISO 8601 format.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this asset.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the asset.

" + }, + "Name":{ + "shape":"AssetName", + "documentation":"

The name of the asset. When importing from Amazon S3, the Amazon S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target Amazon S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name. When importing from AWS Lake Formation, the static values of \"Database(s) included in LF-tag policy\" or \"Table(s) included in LF-tag policy\" are used as the asset name.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this asset.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The asset ID of the owned asset corresponding to the entitled asset being viewed. This parameter is returned when an asset owner is viewing the entitled copy of its owned asset.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the asset was last updated, in ISO 8601 format.

" } }, - "documentation": "

The source of the assets.

", - "required": [ + "documentation":"

An asset in AWS Data Exchange is a piece of data (Amazon S3 object) or a means of fulfilling data (Amazon Redshift datashare or Amazon API Gateway API, AWS Lake Formation data permission, or Amazon S3 data access). The asset can be a structured data file, an image file, or some other data file that can be stored as an Amazon S3 object, an Amazon API Gateway API, or an Amazon Redshift datashare, an AWS Lake Formation data permission, or an Amazon S3 data access. When you create an import job for your files, API Gateway APIs, Amazon Redshift datashares, AWS Lake Formation data permission, or Amazon S3 data access, you create an asset in AWS Data Exchange.

" + }, + "AssetName":{"type":"string"}, + "AssetSourceEntry":{ + "type":"structure", + "required":[ "Bucket", "Key" - ] + ], + "members":{ + "Bucket":{ + "shape":"__string", + "documentation":"

The Amazon S3 bucket that's part of the source of the asset.

" + }, + "Key":{ + "shape":"__string", + "documentation":"

The name of the object in Amazon S3 for the asset.

" + } + }, + "documentation":"

The source of the assets.

" }, - "AssetType": { - "type": "string", - "documentation": "

The type of asset that is added to a data set.

", - "enum": [ + "AssetType":{ + "type":"string", + "enum":[ "S3_SNAPSHOT", "REDSHIFT_DATA_SHARE", - "API_GATEWAY_API" + "API_GATEWAY_API", + "S3_DATA_ACCESS", + "LAKE_FORMATION_DATA_PERMISSION" ] }, - "AutoExportRevisionDestinationEntry": { - "type": "structure", - "members": { - "Bucket": { - "shape": "__string", - "documentation": "

The S3 bucket that is the destination for the event action.

" + "AutoExportRevisionDestinationEntry":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"__string", + "documentation":"

The Amazon S3 bucket that is the destination for the event action.

" }, - "KeyPattern": { - "shape": "__string", - "documentation": "

A string representing the pattern for generated names of the individual assets in the revision. For more information about key patterns, see Key patterns when exporting revisions.

" + "KeyPattern":{ + "shape":"__string", + "documentation":"

A string representing the pattern for generated names of the individual assets in the revision. For more information about key patterns, see Key patterns when exporting revisions.

" } }, - "documentation": "

A revision destination is the Amazon S3 bucket folder destination to where the export will be sent.

", - "required": [ - "Bucket" - ] + "documentation":"

A revision destination is the Amazon S3 bucket folder destination to where the export will be sent.

" }, - "AutoExportRevisionToS3RequestDetails": { - "type": "structure", - "members": { - "Encryption": { - "shape": "ExportServerSideEncryption", - "documentation": "

Encryption configuration for the auto export job.

" + "AutoExportRevisionToS3RequestDetails":{ + "type":"structure", + "required":["RevisionDestination"], + "members":{ + "Encryption":{ + "shape":"ExportServerSideEncryption", + "documentation":"

Encryption configuration for the auto export job.

" }, - "RevisionDestination": { - "shape": "AutoExportRevisionDestinationEntry", - "documentation": "

A revision destination is the Amazon S3 bucket folder destination to where the export will be sent.

" + "RevisionDestination":{ + "shape":"AutoExportRevisionDestinationEntry", + "documentation":"

A revision destination is the Amazon S3 bucket folder destination to where the export will be sent.

" } }, - "documentation": "

Details of the operation to be performed by the job.

", - "required": [ - "RevisionDestination" - ] + "documentation":"

Details of the operation to be performed by the job.

" }, - "CancelJobRequest": { - "type": "structure", - "members": { - "JobId": { - "shape": "__string", - "location": "uri", - "locationName": "JobId", - "documentation": "

The unique identifier for a job.

" + "AwsAccountId":{ + "type":"string", + "max":12, + "min":12, + "pattern":".*/^[\\d]{12}$/.*" + }, + "CancelJobRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{ + "shape":"__string", + "documentation":"

The unique identifier for a job.

", + "location":"uri", + "locationName":"JobId" } - }, - "required": [ - "JobId" - ] + } }, - "Code": { - "type": "string", - "enum": [ + "Code":{ + "type":"string", + "enum":[ "ACCESS_DENIED_EXCEPTION", "INTERNAL_SERVER_EXCEPTION", "MALWARE_DETECTED", @@ -1280,1375 +771,1606 @@ "MALWARE_SCAN_ENCRYPTED_FILE" ] }, - "ConflictException": { - "type": "structure", - "members": { - "Message": { - "shape": "__string", - "documentation": "

The request couldn't be completed because it conflicted with the current state of the resource.

" + "ConflictException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{ + "shape":"__string", + "documentation":"

The request couldn't be completed because it conflicted with the current state of the resource.

" }, - "ResourceId": { - "shape": "__string", - "documentation": "

The unique identifier for the resource with the conflict.

" + "ResourceId":{ + "shape":"__string", + "documentation":"

The unique identifier for the resource with the conflict.

" }, - "ResourceType": { - "shape": "ResourceType", - "documentation": "

The type of the resource with the conflict.

" + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

The type of the resource with the conflict.

" } }, - "documentation": "

The request couldn't be completed because it conflicted with the current state of the resource.

", - "required": [ - "Message" - ], - "exception": true, - "error": { - "httpStatusCode": 409 - } + "documentation":"

The request couldn't be completed because it conflicted with the current state of the resource.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true }, - "CreateDataSetRequest": { - "type": "structure", - "members": { - "AssetType": { - "shape": "AssetType", - "documentation": "

The type of asset that is added to a data set.

" - }, - "Description": { - "shape": "Description", - "documentation": "

A description for the data set. This value can be up to 16,348 characters long.

" - }, - "Name": { - "shape": "Name", - "documentation": "

The name of the data set.

" - }, - "Tags": { - "shape": "MapOf__string", - "documentation": "

A data set tag is an optional label that you can assign to a data set when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to these data sets and revisions.

" - } - }, - "documentation": "

The request body for CreateDataSet.

", - "required": [ + "CreateDataSetRequest":{ + "type":"structure", + "required":[ "AssetType", "Description", "Name" - ] - }, - "CreateDataSetResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the data set.

" + ], + "members":{ + "AssetType":{ + "shape":"AssetType", + "documentation":"

The type of asset that is added to a data set.

" }, - "AssetType": { - "shape": "AssetType", - "documentation": "

The type of asset that is added to a data set.

" + "Description":{ + "shape":"Description", + "documentation":"

A description for the data set. This value can be up to 16,348 characters long.

" }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the data set was created, in ISO 8601 format.

" + "Name":{ + "shape":"Name", + "documentation":"

The name of the data set.

" }, - "Description": { - "shape": "Description", - "documentation": "

The description for the data set.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the data set.

" - }, - "Name": { - "shape": "Name", - "documentation": "

The name of the data set.

" - }, - "Origin": { - "shape": "Origin", - "documentation": "

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

" - }, - "OriginDetails": { - "shape": "OriginDetails", - "documentation": "

If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

" - }, - "Tags": { - "shape": "MapOf__string", - "documentation": "

The tags for the data set.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the data set was last updated, in ISO 8601 format.

" + "Tags":{ + "shape":"MapOf__string", + "documentation":"

A data set tag is an optional label that you can assign to a data set when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to these data sets and revisions.

" } } }, - "CreateEventActionRequest": { - "type": "structure", - "members": { - "Action": { - "shape": "Action", - "documentation": "

What occurs after a certain event.

" + "CreateDataSetResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the data set.

" }, - "Event": { - "shape": "Event", - "documentation": "

What occurs to start an action.

" + "AssetType":{ + "shape":"AssetType", + "documentation":"

The type of asset that is added to a data set.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the data set was created, in ISO 8601 format.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The description for the data set.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the data set.

" + }, + "Origin":{ + "shape":"Origin", + "documentation":"

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

" + }, + "OriginDetails":{ + "shape":"OriginDetails", + "documentation":"

If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

" + }, + "Tags":{ + "shape":"MapOf__string", + "documentation":"

The tags for the data set.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the data set was last updated, in ISO 8601 format.

" } - }, - "documentation": "

The request body for CreateEventAction.

", - "required": [ + } + }, + "CreateEventActionRequest":{ + "type":"structure", + "required":[ "Action", "Event" - ] - }, - "CreateEventActionResponse": { - "type": "structure", - "members": { - "Action": { - "shape": "Action", - "documentation": "

What occurs after a certain event.

" + ], + "members":{ + "Action":{ + "shape":"Action", + "documentation":"

What occurs after a certain event.

" }, - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the event action.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the event action was created, in ISO 8601 format.

" - }, - "Event": { - "shape": "Event", - "documentation": "

What occurs to start an action.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the event action.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the event action was last updated, in ISO 8601 format.

" + "Event":{ + "shape":"Event", + "documentation":"

What occurs to start an action.

" } } }, - "CreateJobRequest": { - "type": "structure", - "members": { - "Details": { - "shape": "RequestDetails", - "documentation": "

The details for the CreateJob request.

" + "CreateEventActionResponse":{ + "type":"structure", + "members":{ + "Action":{ + "shape":"Action", + "documentation":"

What occurs after a certain event.

" }, - "Type": { - "shape": "Type", - "documentation": "

The type of job to be created.

" - } - }, - "documentation": "

The request body for CreateJob.

", - "required": [ - "Type", - "Details" - ] - }, - "CreateJobResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the job.

" + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the event action.

" }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the job was created, in ISO 8601 format.

" + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the event action was created, in ISO 8601 format.

" }, - "Details": { - "shape": "ResponseDetails", - "documentation": "

Details about the job.

" + "Event":{ + "shape":"Event", + "documentation":"

What occurs to start an action.

" }, - "Errors": { - "shape": "ListOfJobError", - "documentation": "

The errors associated with jobs.

" + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the event action.

" }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the job.

" - }, - "State": { - "shape": "State", - "documentation": "

The state of the job.

" - }, - "Type": { - "shape": "Type", - "documentation": "

The job type.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the job was last updated, in ISO 8601 format.

" + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the event action was last updated, in ISO 8601 format.

" } } }, - "CreateRevisionRequest": { - "type": "structure", - "members": { - "Comment": { - "shape": "__stringMin0Max16384", - "documentation": "

An optional comment about the revision.

" + "CreateJobRequest":{ + "type":"structure", + "required":[ + "Details", + "Type" + ], + "members":{ + "Details":{ + "shape":"RequestDetails", + "documentation":"

The details for the CreateJob request.

" }, - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" - }, - "Tags": { - "shape": "MapOf__string", - "documentation": "

A revision tag is an optional label that you can assign to a revision when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to these data sets and revisions.

" - } - }, - "documentation": "

The request body for CreateRevision.

", - "required": [ - "DataSetId" - ] - }, - "CreateRevisionResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the revision.

" - }, - "Comment": { - "shape": "__stringMin0Max16384", - "documentation": "

An optional comment about the revision.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was created, in ISO 8601 format.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this revision.

" - }, - "Finalized": { - "shape": "__boolean", - "documentation": "

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products.

Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the revision.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" - }, - "Tags": { - "shape": "MapOf__string", - "documentation": "

The tags for the revision.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was last updated, in ISO 8601 format.

" - }, - "RevocationComment": { - "shape": "__stringMin10Max512", - "documentation": "

A required comment to inform subscribers of the reason their access to the revision was revoked.

" - }, - "Revoked": { - "shape": "__boolean", - "documentation": "

A status indicating that subscribers' access to the revision was revoked.

" - }, - "RevokedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was revoked, in ISO 8601 format.

" + "Type":{ + "shape":"Type", + "documentation":"

The type of job to be created.

" } } }, - "DataSetEntry": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the data set.

" + "CreateJobResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the job.

" }, - "AssetType": { - "shape": "AssetType", - "documentation": "

The type of asset that is added to a data set.

" + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the job was created, in ISO 8601 format.

" }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the data set was created, in ISO 8601 format.

" + "Details":{ + "shape":"ResponseDetails", + "documentation":"

Details about the job.

" }, - "Description": { - "shape": "Description", - "documentation": "

The description for the data set.

" + "Errors":{ + "shape":"ListOfJobError", + "documentation":"

The errors associated with jobs.

" }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the data set.

" + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the job.

" }, - "Name": { - "shape": "Name", - "documentation": "

The name of the data set.

" + "State":{ + "shape":"State", + "documentation":"

The state of the job.

" }, - "Origin": { - "shape": "Origin", - "documentation": "

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

" + "Type":{ + "shape":"Type", + "documentation":"

The job type.

" }, - "OriginDetails": { - "shape": "OriginDetails", - "documentation": "

If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.

" + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the job was last updated, in ISO 8601 format.

" + } + } + }, + "CreateRevisionRequest":{ + "type":"structure", + "required":["DataSetId"], + "members":{ + "Comment":{ + "shape":"__stringMin0Max16384", + "documentation":"

An optional comment about the revision.

" }, - "SourceId": { - "shape": "Id", - "documentation": "

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

" + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the data set was last updated, in ISO 8601 format.

" + "Tags":{ + "shape":"MapOf__string", + "documentation":"

A revision tag is an optional label that you can assign to a revision when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to these data sets and revisions.

" + } + } + }, + "CreateRevisionResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the revision.

" + }, + "Comment":{ + "shape":"__stringMin0Max16384", + "documentation":"

An optional comment about the revision.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was created, in ISO 8601 format.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with the data set revision.

" + }, + "Finalized":{ + "shape":"__boolean", + "documentation":"

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products. Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" + }, + "Tags":{ + "shape":"MapOf__string", + "documentation":"

The tags for the revision.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was last updated, in ISO 8601 format.

" + }, + "RevocationComment":{ + "shape":"__stringMin10Max512", + "documentation":"

A required comment to inform subscribers of the reason their access to the revision was revoked.

" + }, + "Revoked":{ + "shape":"__boolean", + "documentation":"

A status indicating that subscribers' access to the revision was revoked.

" + }, + "RevokedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was revoked, in ISO 8601 format.

" + } + } + }, + "CreateS3DataAccessFromS3BucketRequestDetails":{ + "type":"structure", + "required":[ + "AssetSource", + "DataSetId", + "RevisionId" + ], + "members":{ + "AssetSource":{ + "shape":"S3DataAccessAssetSourceEntry", + "documentation":"

Details about the S3 data access source asset.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with the creation of this Amazon S3 data access.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for a revision.

" } }, - "documentation": "

A data set is an AWS resource with one or more revisions.

", - "required": [ - "Origin", - "AssetType", - "Description", - "CreatedAt", - "Id", + "documentation":"

Details of the operation to create an Amazon S3 data access from an S3 bucket.

" + }, + "CreateS3DataAccessFromS3BucketResponseDetails":{ + "type":"structure", + "required":[ + "AssetSource", + "DataSetId", + "RevisionId" + ], + "members":{ + "AssetSource":{ + "shape":"S3DataAccessAssetSourceEntry", + "documentation":"

Details about the asset source from an Amazon S3 bucket.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for this data set.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision.

" + } + }, + "documentation":"

Details about the response of the operation to create an S3 data access from an S3 bucket.

" + }, + "DataSetEntry":{ + "type":"structure", + "required":[ "Arn", - "UpdatedAt", - "Name" - ] - }, - "DeleteAssetRequest": { - "type": "structure", - "members": { - "AssetId": { - "shape": "__string", - "location": "uri", - "locationName": "AssetId", - "documentation": "

The unique identifier for an asset.

" + "AssetType", + "CreatedAt", + "Description", + "Id", + "Name", + "Origin", + "UpdatedAt" + ], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the data set.

" }, - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" + "AssetType":{ + "shape":"AssetType", + "documentation":"

The type of asset that is added to a data set.

" }, - "RevisionId": { - "shape": "__string", - "location": "uri", - "locationName": "RevisionId", - "documentation": "

The unique identifier for a revision.

" + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the data set was created, in ISO 8601 format.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The description for the data set.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the data set.

" + }, + "Origin":{ + "shape":"Origin", + "documentation":"

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

" + }, + "OriginDetails":{ + "shape":"OriginDetails", + "documentation":"

If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the data set was last updated, in ISO 8601 format.

" } }, - "required": [ - "RevisionId", + "documentation":"

A data set is an AWS resource with one or more revisions.

" + }, + "DatabaseLFTagPolicy":{ + "type":"structure", + "required":["Expression"], + "members":{ + "Expression":{ + "shape":"ListOfLFTags", + "documentation":"

A list of LF-tag conditions that apply to database resources.

" + } + }, + "documentation":"

The LF-tag policy for database resources.

" + }, + "DatabaseLFTagPolicyAndPermissions":{ + "type":"structure", + "required":[ + "Expression", + "Permissions" + ], + "members":{ + "Expression":{ + "shape":"ListOfLFTags", + "documentation":"

A list of LF-tag conditions that apply to database resources.

" + }, + "Permissions":{ + "shape":"ListOfDatabaseLFTagPolicyPermissions", + "documentation":"

The permissions granted to subscribers on database resources.

" + } + }, + "documentation":"

The LF-tag policy and permissions for database resources.

" + }, + "DatabaseLFTagPolicyPermission":{ + "type":"string", + "enum":["DESCRIBE"] + }, + "DeleteAssetRequest":{ + "type":"structure", + "required":[ "AssetId", - "DataSetId" - ] + "DataSetId", + "RevisionId" + ], + "members":{ + "AssetId":{ + "shape":"__string", + "documentation":"

The unique identifier for an asset.

", + "location":"uri", + "locationName":"AssetId" + }, + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + }, + "RevisionId":{ + "shape":"__string", + "documentation":"

The unique identifier for a revision.

", + "location":"uri", + "locationName":"RevisionId" + } + } }, - "DeleteDataSetRequest": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" + "DeleteDataSetRequest":{ + "type":"structure", + "required":["DataSetId"], + "members":{ + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + } + } + }, + "DeleteEventActionRequest":{ + "type":"structure", + "required":["EventActionId"], + "members":{ + "EventActionId":{ + "shape":"__string", + "documentation":"

The unique identifier for the event action.

", + "location":"uri", + "locationName":"EventActionId" + } + } + }, + "DeleteRevisionRequest":{ + "type":"structure", + "required":[ + "DataSetId", + "RevisionId" + ], + "members":{ + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + }, + "RevisionId":{ + "shape":"__string", + "documentation":"

The unique identifier for a revision.

", + "location":"uri", + "locationName":"RevisionId" + } + } + }, + "Description":{"type":"string"}, + "Details":{ + "type":"structure", + "members":{ + "ImportAssetFromSignedUrlJobErrorDetails":{ + "shape":"ImportAssetFromSignedUrlJobErrorDetails", + "documentation":"

Information about the job error.

" + }, + "ImportAssetsFromS3JobErrorDetails":{ + "shape":"ListOfAssetSourceEntry", + "documentation":"

Details about the job error.

" } }, - "required": [ - "DataSetId" - ] + "documentation":"

Information about the job error.

" }, - "DeleteEventActionRequest": { - "type": "structure", - "members": { - "EventActionId": { - "shape": "__string", - "location": "uri", - "locationName": "EventActionId", - "documentation": "

The unique identifier for the event action.

" + "Event":{ + "type":"structure", + "members":{ + "RevisionPublished":{ + "shape":"RevisionPublished", + "documentation":"

What occurs to start the revision publish action.

" } }, - "required": [ - "EventActionId" - ] + "documentation":"

What occurs to start an action.

" }, - "DeleteRevisionRequest": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" - }, - "RevisionId": { - "shape": "__string", - "location": "uri", - "locationName": "RevisionId", - "documentation": "

The unique identifier for a revision.

" - } - }, - "required": [ - "RevisionId", - "DataSetId" - ] - }, - "Description": { - "type": "string", - "documentation": "

A description of a resource.

" - }, - "Details": { - "type": "structure", - "members": { - "ImportAssetFromSignedUrlJobErrorDetails": { - "shape": "ImportAssetFromSignedUrlJobErrorDetails", - "documentation": "

Information about the job error.

" - }, - "ImportAssetsFromS3JobErrorDetails": { - "shape": "ListOfAssetSourceEntry", - "documentation": "

Information about the job error.

" - } - }, - "documentation": "

Information about the job error.

" - }, - "Event": { - "type": "structure", - "members": { - "RevisionPublished": { - "shape": "RevisionPublished", - "documentation": "

What occurs to start the revision publish action.

" - } - }, - "documentation": "

What occurs to start an action.

" - }, - "EventActionEntry": { - "type": "structure", - "members": { - "Action": { - "shape": "Action", - "documentation": "

What occurs after a certain event.

" - }, - "Arn": { - "shape": "Arn", - "documentation": "

The Amazon Resource Name (ARN) for the event action.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the event action was created, in ISO 8601 format.

" - }, - "Event": { - "shape": "Event", - "documentation": "

What occurs to start an action.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the event action.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the event action was last updated, in ISO 8601 format.

" - } - }, - "documentation": "

An event action is an object that defines the relationship between a specific event and an automated action that will be taken on behalf of the customer.

", - "required": [ + "EventActionEntry":{ + "type":"structure", + "required":[ "Action", + "Arn", "CreatedAt", "Event", "Id", - "Arn", "UpdatedAt" - ] + ], + "members":{ + "Action":{ + "shape":"Action", + "documentation":"

What occurs after a certain event.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the event action.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the event action was created, in ISO 8601 format.

" + }, + "Event":{ + "shape":"Event", + "documentation":"

What occurs to start an action.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the event action.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the event action was last updated, in ISO 8601 format.

" + } + }, + "documentation":"

An event action is an object that defines the relationship between a specific event and an automated action that will be taken on behalf of the customer.

" }, - "ExceptionCause": { - "type": "string", - "enum": [ + "ExceptionCause":{ + "type":"string", + "enum":[ "InsufficientS3BucketPolicy", "S3AccessDenied" ] }, - "ExportAssetToSignedUrlRequestDetails": { - "type": "structure", - "members": { - "AssetId": { - "shape": "Id", - "documentation": "

The unique identifier for the asset that is exported to a signed URL.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this export job.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this export request.

" - } - }, - "documentation": "

Details of the operation to be performed by the job.

", - "required": [ - "DataSetId", + "ExportAssetToSignedUrlRequestDetails":{ + "type":"structure", + "required":[ "AssetId", - "RevisionId" - ] - }, - "ExportAssetToSignedUrlResponseDetails": { - "type": "structure", - "members": { - "AssetId": { - "shape": "Id", - "documentation": "

The unique identifier for the asset associated with this export job.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this export job.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this export response.

" - }, - "SignedUrl": { - "shape": "__string", - "documentation": "

The signed URL for the export request.

" - }, - "SignedUrlExpiresAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the signed URL expires, in ISO 8601 format.

" - } - }, - "documentation": "

The details of the export to signed URL response.

", - "required": [ "DataSetId", - "AssetId", "RevisionId" - ] - }, - "ExportAssetsToS3RequestDetails": { - "type": "structure", - "members": { - "AssetDestinations": { - "shape": "ListOfAssetDestinationEntry", - "documentation": "

The destination for the asset.

" + ], + "members":{ + "AssetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the asset that is exported to a signed URL.

" }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this export job.

" + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this export job.

" }, - "Encryption": { - "shape": "ExportServerSideEncryption", - "documentation": "

Encryption configuration for the export job.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this export request.

" + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this export request.

" } }, - "documentation": "

Details of the operation to be performed by the job.

", - "required": [ + "documentation":"

Details of the operation to be performed by the job.

" + }, + "ExportAssetToSignedUrlResponseDetails":{ + "type":"structure", + "required":[ + "AssetId", + "DataSetId", + "RevisionId" + ], + "members":{ + "AssetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the asset associated with this export job.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this export job.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this export response.

" + }, + "SignedUrl":{ + "shape":"__string", + "documentation":"

The signed URL for the export request.

" + }, + "SignedUrlExpiresAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the signed URL expires, in ISO 8601 format.

" + } + }, + "documentation":"

The details of the export to signed URL response.

" + }, + "ExportAssetsToS3RequestDetails":{ + "type":"structure", + "required":[ "AssetDestinations", "DataSetId", "RevisionId" - ] - }, - "ExportAssetsToS3ResponseDetails": { - "type": "structure", - "members": { - "AssetDestinations": { - "shape": "ListOfAssetDestinationEntry", - "documentation": "

The destination in Amazon S3 where the asset is exported.

" + ], + "members":{ + "AssetDestinations":{ + "shape":"ListOfAssetDestinationEntry", + "documentation":"

The destination for the asset.

" }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this export job.

" + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this export job.

" }, - "Encryption": { - "shape": "ExportServerSideEncryption", - "documentation": "

Encryption configuration of the export job.

" + "Encryption":{ + "shape":"ExportServerSideEncryption", + "documentation":"

Encryption configuration for the export job.

" }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this export response.

" + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this export request.

" } }, - "documentation": "

Details about the export to Amazon S3 response.

", - "required": [ + "documentation":"

Details of the operation to be performed by the job.

" + }, + "ExportAssetsToS3ResponseDetails":{ + "type":"structure", + "required":[ "AssetDestinations", "DataSetId", "RevisionId" - ] - }, - "ExportRevisionsToS3RequestDetails": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this export job.

" + ], + "members":{ + "AssetDestinations":{ + "shape":"ListOfAssetDestinationEntry", + "documentation":"

The destination in Amazon S3 where the asset is exported.

" }, - "Encryption": { - "shape": "ExportServerSideEncryption", - "documentation": "

Encryption configuration for the export job.

" + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this export job.

" }, - "RevisionDestinations": { - "shape": "ListOfRevisionDestinationEntry", - "documentation": "

The destination for the revision.

" + "Encryption":{ + "shape":"ExportServerSideEncryption", + "documentation":"

Encryption configuration of the export job.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this export response.

" } }, - "documentation": "

Details of the operation to be performed by the job.

", - "required": [ - "RevisionDestinations", - "DataSetId" - ] + "documentation":"

Details about the export to Amazon S3 response.

" }, - "ExportRevisionsToS3ResponseDetails": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this export job.

" - }, - "Encryption": { - "shape": "ExportServerSideEncryption", - "documentation": "

Encryption configuration of the export job.

" - }, - "RevisionDestinations": { - "shape": "ListOfRevisionDestinationEntry", - "documentation": "

The destination in Amazon S3 where the revision is exported.

" - }, - "EventActionArn": { - "shape": "__string", - "documentation": "

The Amazon Resource Name (ARN) of the event action.

" - } - }, - "documentation": "

Details about the export revisions to Amazon S3 response.

", - "required": [ - "RevisionDestinations", - "DataSetId" - ] - }, - "ExportServerSideEncryption": { - "type": "structure", - "members": { - "KmsKeyArn": { - "shape": "__string", - "documentation": "

The Amazon Resource Name (ARN) of the AWS KMS key you want to use to encrypt the Amazon S3 objects. This parameter is required if you choose aws:kms as an encryption type.

" - }, - "Type": { - "shape": "ServerSideEncryptionTypes", - "documentation": "

The type of server side encryption used for encrypting the objects in Amazon S3.

" - } - }, - "documentation": "

Encryption configuration of the export job. Includes the encryption type in addition to the AWS KMS key. The KMS key is only necessary if you chose the KMS encryption. type.

", - "required": [ - "Type" - ] - }, - "GetAssetRequest": { - "type": "structure", - "members": { - "AssetId": { - "shape": "__string", - "location": "uri", - "locationName": "AssetId", - "documentation": "

The unique identifier for an asset.

" - }, - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" - }, - "RevisionId": { - "shape": "__string", - "location": "uri", - "locationName": "RevisionId", - "documentation": "

The unique identifier for a revision.

" - } - }, - "required": [ - "RevisionId", - "AssetId", - "DataSetId" - ] - }, - "GetAssetResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the asset.

" - }, - "AssetDetails": { - "shape": "AssetDetails", - "documentation": "

Information about the asset.

" - }, - "AssetType": { - "shape": "AssetType", - "documentation": "

The type of asset that is added to a data set.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the asset was created, in ISO 8601 format.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this asset.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the asset.

" - }, - "Name": { - "shape": "AssetName", - "documentation": "

The name of the asset. When importing from Amazon S3, the S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this asset.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The asset ID of the owned asset corresponding to the entitled asset being viewed. This parameter is returned when an asset owner is viewing the entitled copy of its owned asset.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the asset was last updated, in ISO 8601 format.

" - } - } - }, - "GetDataSetRequest": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" - } - }, - "required": [ - "DataSetId" - ] - }, - "GetDataSetResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the data set.

" - }, - "AssetType": { - "shape": "AssetType", - "documentation": "

The type of asset that is added to a data set.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the data set was created, in ISO 8601 format.

" - }, - "Description": { - "shape": "Description", - "documentation": "

The description for the data set.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the data set.

" - }, - "Name": { - "shape": "Name", - "documentation": "

The name of the data set.

" - }, - "Origin": { - "shape": "Origin", - "documentation": "

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

" - }, - "OriginDetails": { - "shape": "OriginDetails", - "documentation": "

If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

" - }, - "Tags": { - "shape": "MapOf__string", - "documentation": "

The tags for the data set.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the data set was last updated, in ISO 8601 format.

" - } - } - }, - "GetEventActionRequest": { - "type": "structure", - "members": { - "EventActionId": { - "shape": "__string", - "location": "uri", - "locationName": "EventActionId", - "documentation": "

The unique identifier for the event action.

" - } - }, - "required": [ - "EventActionId" - ] - }, - "GetEventActionResponse": { - "type": "structure", - "members": { - "Action": { - "shape": "Action", - "documentation": "

What occurs after a certain event.

" - }, - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the event action.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the event action was created, in ISO 8601 format.

" - }, - "Event": { - "shape": "Event", - "documentation": "

What occurs to start an action.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the event action.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the event action was last updated, in ISO 8601 format.

" - } - } - }, - "GetJobRequest": { - "type": "structure", - "members": { - "JobId": { - "shape": "__string", - "location": "uri", - "locationName": "JobId", - "documentation": "

The unique identifier for a job.

" - } - }, - "required": [ - "JobId" - ] - }, - "GetJobResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the job.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the job was created, in ISO 8601 format.

" - }, - "Details": { - "shape": "ResponseDetails", - "documentation": "

Details about the job.

" - }, - "Errors": { - "shape": "ListOfJobError", - "documentation": "

The errors associated with jobs.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the job.

" - }, - "State": { - "shape": "State", - "documentation": "

The state of the job.

" - }, - "Type": { - "shape": "Type", - "documentation": "

The job type.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the job was last updated, in ISO 8601 format.

" - } - } - }, - "GetRevisionRequest": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" - }, - "RevisionId": { - "shape": "__string", - "location": "uri", - "locationName": "RevisionId", - "documentation": "

The unique identifier for a revision.

" - } - }, - "required": [ - "RevisionId", - "DataSetId" - ] - }, - "GetRevisionResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the revision.

" - }, - "Comment": { - "shape": "__stringMin0Max16384", - "documentation": "

An optional comment about the revision.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was created, in ISO 8601 format.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this revision.

" - }, - "Finalized": { - "shape": "__boolean", - "documentation": "

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products.

Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the revision.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" - }, - "Tags": { - "shape": "MapOf__string", - "documentation": "

The tags for the revision.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was last updated, in ISO 8601 format.

" - }, - "RevocationComment": { - "shape": "__stringMin10Max512", - "documentation": "

A required comment to inform subscribers of the reason their access to the revision was revoked.

" - }, - "Revoked": { - "shape": "__boolean", - "documentation": "

A status indicating that subscribers' access to the revision was revoked.

" - }, - "RevokedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was revoked, in ISO 8601 format.

" - } - } - }, - "Id": { - "type": "string", - "documentation": "

A unique identifier.

" - }, - "ImportAssetFromApiGatewayApiRequestDetails": { - "type": "structure", - "members": { - "ApiDescription": { - "shape": "ApiDescription", - "documentation": "

The API description. Markdown supported.

" - }, - "ApiId": { - "shape": "__string", - "documentation": "

The API Gateway API ID.

" - }, - "ApiKey": { - "shape": "__string", - "documentation": "

The API Gateway API key.

" - }, - "ApiName": { - "shape": "__string", - "documentation": "

The API name.

" - }, - "ApiSpecificationMd5Hash": { - "shape": "__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093", - "documentation": "

The Base64-encoded MD5 hash of the OpenAPI 3.0 JSON API specification file. It is used to ensure the integrity of the file.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The data set ID.

" - }, - "ProtocolType": { - "shape": "ProtocolType", - "documentation": "

The protocol type.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The revision ID.

" - }, - "Stage": { - "shape": "__string", - "documentation": "

The API stage.

" - } - }, - "documentation": "

The request details.

", - "required": [ - "ApiName", - "ProtocolType", - "ApiSpecificationMd5Hash", - "Stage", + "ExportRevisionsToS3RequestDetails":{ + "type":"structure", + "required":[ "DataSetId", + "RevisionDestinations" + ], + "members":{ + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this export job.

" + }, + "Encryption":{ + "shape":"ExportServerSideEncryption", + "documentation":"

Encryption configuration for the export job.

" + }, + "RevisionDestinations":{ + "shape":"ListOfRevisionDestinationEntry", + "documentation":"

The destination for the revision.

" + } + }, + "documentation":"

Details of the operation to be performed by the job.

" + }, + "ExportRevisionsToS3ResponseDetails":{ + "type":"structure", + "required":[ + "DataSetId", + "RevisionDestinations" + ], + "members":{ + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this export job.

" + }, + "Encryption":{ + "shape":"ExportServerSideEncryption", + "documentation":"

Encryption configuration of the export job.

" + }, + "RevisionDestinations":{ + "shape":"ListOfRevisionDestinationEntry", + "documentation":"

The destination in Amazon S3 where the revision is exported.

" + }, + "EventActionArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the event action.

" + } + }, + "documentation":"

Details about the export revisions to Amazon S3 response.

" + }, + "ExportServerSideEncryption":{ + "type":"structure", + "required":["Type"], + "members":{ + "KmsKeyArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the AWS KMS key you want to use to encrypt the Amazon S3 objects. This parameter is required if you choose aws:kms as an encryption type.

" + }, + "Type":{ + "shape":"ServerSideEncryptionTypes", + "documentation":"

The type of server side encryption used for encrypting the objects in Amazon S3.

" + } + }, + "documentation":"

Encryption configuration of the export job. Includes the encryption type in addition to the AWS KMS key. The KMS key is only necessary if you chose the KMS encryption type.

" + }, + "GetAssetRequest":{ + "type":"structure", + "required":[ + "AssetId", + "DataSetId", + "RevisionId" + ], + "members":{ + "AssetId":{ + "shape":"__string", + "documentation":"

The unique identifier for an asset.

", + "location":"uri", + "locationName":"AssetId" + }, + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + }, + "RevisionId":{ + "shape":"__string", + "documentation":"

The unique identifier for a revision.

", + "location":"uri", + "locationName":"RevisionId" + } + } + }, + "GetAssetResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the asset.

" + }, + "AssetDetails":{ + "shape":"AssetDetails", + "documentation":"

Details about the asset.

" + }, + "AssetType":{ + "shape":"AssetType", + "documentation":"

The type of asset that is added to a data set.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the asset was created, in ISO 8601 format.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this asset.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the asset.

" + }, + "Name":{ + "shape":"AssetName", + "documentation":"

The name of the asset. When importing from Amazon S3, the Amazon S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target Amazon S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name. When importing from AWS Lake Formation, the static values of \"Database(s) included in the LF-tag policy\" or \"Table(s) included in the LF-tag policy\" are used as the asset name.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this asset.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The asset ID of the owned asset corresponding to the entitled asset being viewed. This parameter is returned when an asset owner is viewing the entitled copy of its owned asset.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the asset was last updated, in ISO 8601 format.

" + } + } + }, + "GetDataSetRequest":{ + "type":"structure", + "required":["DataSetId"], + "members":{ + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + } + } + }, + "GetDataSetResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the data set.

" + }, + "AssetType":{ + "shape":"AssetType", + "documentation":"

The type of asset that is added to a data set.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the data set was created, in ISO 8601 format.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The description for the data set.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the data set.

" + }, + "Origin":{ + "shape":"Origin", + "documentation":"

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

" + }, + "OriginDetails":{ + "shape":"OriginDetails", + "documentation":"

If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

" + }, + "Tags":{ + "shape":"MapOf__string", + "documentation":"

The tags for the data set.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the data set was last updated, in ISO 8601 format.

" + } + } + }, + "GetEventActionRequest":{ + "type":"structure", + "required":["EventActionId"], + "members":{ + "EventActionId":{ + "shape":"__string", + "documentation":"

The unique identifier for the event action.

", + "location":"uri", + "locationName":"EventActionId" + } + } + }, + "GetEventActionResponse":{ + "type":"structure", + "members":{ + "Action":{ + "shape":"Action", + "documentation":"

What occurs after a certain event.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the event action.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the event action was created, in ISO 8601 format.

" + }, + "Event":{ + "shape":"Event", + "documentation":"

What occurs to start an action.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the event action.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the event action was last updated, in ISO 8601 format.

" + } + } + }, + "GetJobRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{ + "shape":"__string", + "documentation":"

The unique identifier for a job.

", + "location":"uri", + "locationName":"JobId" + } + } + }, + "GetJobResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the job.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the job was created, in ISO 8601 format.

" + }, + "Details":{ + "shape":"ResponseDetails", + "documentation":"

Details about the job.

" + }, + "Errors":{ + "shape":"ListOfJobError", + "documentation":"

The errors associated with jobs.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the job.

" + }, + "State":{ + "shape":"State", + "documentation":"

The state of the job.

" + }, + "Type":{ + "shape":"Type", + "documentation":"

The job type.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the job was last updated, in ISO 8601 format.

" + } + } + }, + "GetRevisionRequest":{ + "type":"structure", + "required":[ + "DataSetId", + "RevisionId" + ], + "members":{ + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + }, + "RevisionId":{ + "shape":"__string", + "documentation":"

The unique identifier for a revision.

", + "location":"uri", + "locationName":"RevisionId" + } + } + }, + "GetRevisionResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the revision.

" + }, + "Comment":{ + "shape":"__stringMin0Max16384", + "documentation":"

An optional comment about the revision.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was created, in ISO 8601 format.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with the data set revision.

" + }, + "Finalized":{ + "shape":"__boolean", + "documentation":"

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products. Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" + }, + "Tags":{ + "shape":"MapOf__string", + "documentation":"

The tags for the revision.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was last updated, in ISO 8601 format.

" + }, + "RevocationComment":{ + "shape":"__stringMin10Max512", + "documentation":"

A required comment to inform subscribers of the reason their access to the revision was revoked.

" + }, + "Revoked":{ + "shape":"__boolean", + "documentation":"

A status indicating that subscribers' access to the revision was revoked.

" + }, + "RevokedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was revoked, in ISO 8601 format.

" + } + } + }, + "Id":{"type":"string"}, + "ImportAssetFromApiGatewayApiRequestDetails":{ + "type":"structure", + "required":[ "ApiId", - "RevisionId" - ] - }, - "ImportAssetFromApiGatewayApiResponseDetails": { - "type": "structure", - "members": { - "ApiDescription": { - "shape": "ApiDescription", - "documentation": "

The API description.

" + "ApiName", + "ApiSpecificationMd5Hash", + "DataSetId", + "ProtocolType", + "RevisionId", + "Stage" + ], + "members":{ + "ApiDescription":{ + "shape":"ApiDescription", + "documentation":"

The API description. Markdown supported.

" }, - "ApiId": { - "shape": "__string", - "documentation": "

The API ID.

" + "ApiId":{ + "shape":"__string", + "documentation":"

The API Gateway API ID.

" }, - "ApiKey": { - "shape": "__string", - "documentation": "

The API key.

" + "ApiKey":{ + "shape":"__string", + "documentation":"

The API Gateway API key.

" }, - "ApiName": { - "shape": "__string", - "documentation": "

The API name.

" + "ApiName":{ + "shape":"__string", + "documentation":"

The API name.

" }, - "ApiSpecificationMd5Hash": { - "shape": "__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093", - "documentation": "

The Base64-encoded Md5 hash for the API asset, used to ensure the integrity of the API at that location.

" + "ApiSpecificationMd5Hash":{ + "shape":"__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093", + "documentation":"

The Base64-encoded MD5 hash of the OpenAPI 3.0 JSON API specification file. It is used to ensure the integrity of the file.

" }, - "ApiSpecificationUploadUrl": { - "shape": "__string", - "documentation": "

The upload URL of the API specification.

" + "DataSetId":{ + "shape":"Id", + "documentation":"

The data set ID.

" }, - "ApiSpecificationUploadUrlExpiresAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the upload URL expires, in ISO 8601 format.

" + "ProtocolType":{ + "shape":"ProtocolType", + "documentation":"

The protocol type.

" }, - "DataSetId": { - "shape": "Id", - "documentation": "

The data set ID.

" + "RevisionId":{ + "shape":"Id", + "documentation":"

The revision ID.

" }, - "ProtocolType": { - "shape": "ProtocolType", - "documentation": "

The protocol type.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The revision ID.

" - }, - "Stage": { - "shape": "__string", - "documentation": "

The API stage.

" + "Stage":{ + "shape":"__string", + "documentation":"

The API stage.

" } }, - "documentation": "

The response details.

", - "required": [ + "documentation":"

The request details.

" + }, + "ImportAssetFromApiGatewayApiResponseDetails":{ + "type":"structure", + "required":[ + "ApiId", + "ApiName", + "ApiSpecificationMd5Hash", + "ApiSpecificationUploadUrl", "ApiSpecificationUploadUrlExpiresAt", - "ApiName", - "ProtocolType", - "ApiSpecificationMd5Hash", - "Stage", "DataSetId", - "ApiId", + "ProtocolType", "RevisionId", - "ApiSpecificationUploadUrl" - ] - }, - "ImportAssetFromSignedUrlJobErrorDetails": { - "type": "structure", - "members": { - "AssetName": { - "shape": "AssetName", - "documentation": "

Information about the job error.

" + "Stage" + ], + "members":{ + "ApiDescription":{ + "shape":"ApiDescription", + "documentation":"

The API description.

" + }, + "ApiId":{ + "shape":"__string", + "documentation":"

The API ID.

" + }, + "ApiKey":{ + "shape":"__string", + "documentation":"

The API key.

" + }, + "ApiName":{ + "shape":"__string", + "documentation":"

The API name.

" + }, + "ApiSpecificationMd5Hash":{ + "shape":"__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093", + "documentation":"

The Base64-encoded Md5 hash for the API asset, used to ensure the integrity of the API at that location.

" + }, + "ApiSpecificationUploadUrl":{ + "shape":"__string", + "documentation":"

The upload URL of the API specification.

" + }, + "ApiSpecificationUploadUrlExpiresAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the upload URL expires, in ISO 8601 format.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The data set ID.

" + }, + "ProtocolType":{ + "shape":"ProtocolType", + "documentation":"

The protocol type.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The revision ID.

" + }, + "Stage":{ + "shape":"__string", + "documentation":"

The API stage.

" } }, - "documentation": "

Information about the job error.

", - "required": [ - "AssetName" - ] + "documentation":"

The response details.

" }, - "ImportAssetFromSignedUrlRequestDetails": { - "type": "structure", - "members": { - "AssetName": { - "shape": "AssetName", - "documentation": "

The name of the asset. When importing from Amazon S3, the S3 object key is used as the asset name.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this import job.

" - }, - "Md5Hash": { - "shape": "__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093", - "documentation": "

The Base64-encoded Md5 hash for the asset, used to ensure the integrity of the file at that location.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this import request.

" + "ImportAssetFromSignedUrlJobErrorDetails":{ + "type":"structure", + "required":["AssetName"], + "members":{ + "AssetName":{ + "shape":"AssetName", + "documentation":"

Details about the job error.

" } }, - "documentation": "

Details of the operation to be performed by the job.

", - "required": [ + "documentation":"

Details about the job error.

" + }, + "ImportAssetFromSignedUrlRequestDetails":{ + "type":"structure", + "required":[ + "AssetName", "DataSetId", "Md5Hash", + "RevisionId" + ], + "members":{ + "AssetName":{ + "shape":"AssetName", + "documentation":"

The name of the asset. When importing from Amazon S3, the Amazon S3 object key is used as the asset name.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this import job.

" + }, + "Md5Hash":{ + "shape":"__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093", + "documentation":"

The Base64-encoded Md5 hash for the asset, used to ensure the integrity of the file at that location.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this import request.

" + } + }, + "documentation":"

Details of the operation to be performed by the job.

" + }, + "ImportAssetFromSignedUrlResponseDetails":{ + "type":"structure", + "required":[ "AssetName", + "DataSetId", "RevisionId" - ] - }, - "ImportAssetFromSignedUrlResponseDetails": { - "type": "structure", - "members": { - "AssetName": { - "shape": "AssetName", - "documentation": "

The name for the asset associated with this import job.

" + ], + "members":{ + "AssetName":{ + "shape":"AssetName", + "documentation":"

The name for the asset associated with this import job.

" }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this import job.

" + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this import job.

" }, - "Md5Hash": { - "shape": "__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093", - "documentation": "

The Base64-encoded Md5 hash for the asset, used to ensure the integrity of the file at that location.

" + "Md5Hash":{ + "shape":"__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093", + "documentation":"

The Base64-encoded Md5 hash for the asset, used to ensure the integrity of the file at that location.

" }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this import response.

" + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this import response.

" }, - "SignedUrl": { - "shape": "__string", - "documentation": "

The signed URL.

" + "SignedUrl":{ + "shape":"__string", + "documentation":"

The signed URL.

" }, - "SignedUrlExpiresAt": { - "shape": "Timestamp", - "documentation": "

The time and date at which the signed URL expires, in ISO 8601 format.

" + "SignedUrlExpiresAt":{ + "shape":"Timestamp", + "documentation":"

The time and date at which the signed URL expires, in ISO 8601 format.

" } }, - "documentation": "

The details in the response for an import request, including the signed URL and other information.

", - "required": [ - "DataSetId", - "AssetName", - "RevisionId" - ] + "documentation":"

The details in the response for an import request, including the signed URL and other information.

" }, - "ImportAssetsFromRedshiftDataSharesRequestDetails": { - "type": "structure", - "members": { - "AssetSources": { - "shape": "ListOfRedshiftDataShareAssetSourceEntry", - "documentation": "A list of Amazon Redshift datashare assets." + "ImportAssetsFromLakeFormationTagPolicyRequestDetails":{ + "type":"structure", + "required":[ + "CatalogId", + "RoleArn", + "DataSetId", + "RevisionId" + ], + "members":{ + "CatalogId":{ + "shape":"AwsAccountId", + "documentation":"

The identifier for the AWS Glue Data Catalog.

" }, - "DataSetId": { - "shape": "Id", - "documentation": "The unique identifier for the data set associated with this import job." + "Database":{ + "shape":"DatabaseLFTagPolicyAndPermissions", + "documentation":"

A structure for the database object.

" }, - "RevisionId": { - "shape": "Id", - "documentation": "The unique identifier for the revision associated with this import job." + "Table":{ + "shape":"TableLFTagPolicyAndPermissions", + "documentation":"

A structure for the table object.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The IAM role's ARN that allows AWS Data Exchange to assume the role and grant and revoke permissions of subscribers to AWS Lake Formation data permissions.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this import job.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this import job.

" } }, - "documentation": "Details from an import from Amazon Redshift datashare request.", - "required": [ + "documentation":"

Details about the assets imported from an AWS Lake Formation tag policy request.

" + }, + "ImportAssetsFromLakeFormationTagPolicyResponseDetails":{ + "type":"structure", + "required":[ + "CatalogId", + "RoleArn", "DataSetId", + "RevisionId" + ], + "members":{ + "CatalogId":{ + "shape":"AwsAccountId", + "documentation":"

The identifier for the AWS Glue Data Catalog.

" + }, + "Database":{ + "shape":"DatabaseLFTagPolicyAndPermissions", + "documentation":"

A structure for the database object.

" + }, + "Table":{ + "shape":"TableLFTagPolicyAndPermissions", + "documentation":"

A structure for the table object.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The IAM role's ARN that allows AWS Data Exchange to assume the role and grant and revoke permissions to AWS Lake Formation data permissions.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this import job.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this import job.

" + } + }, + "documentation":"

Details from an import AWS Lake Formation tag policy job response.

" + }, + "ImportAssetsFromRedshiftDataSharesRequestDetails":{ + "type":"structure", + "required":[ "AssetSources", - "RevisionId" - ] - }, - "ImportAssetsFromRedshiftDataSharesResponseDetails": { - "type": "structure", - "members": { - "AssetSources": { - "shape": "ListOfRedshiftDataShareAssetSourceEntry", - "documentation": "A list of Amazon Redshift datashare asset sources." - }, - "DataSetId": { - "shape": "Id", - "documentation": "The unique identifier for the data set associated with this import job." - }, - "RevisionId": { - "shape": "Id", - "documentation": "The unique identifier for the revision associated with this import job." - } - }, - "documentation": "Details from an import from Amazon Redshift datashare response.", - "required": [ "DataSetId", - "AssetSources", "RevisionId" - ] - }, - "ImportAssetsFromS3RequestDetails": { - "type": "structure", - "members": { - "AssetSources": { - "shape": "ListOfAssetSourceEntry", - "documentation": "

Is a list of S3 bucket and object key pairs.

" + ], + "members":{ + "AssetSources":{ + "shape":"ListOfRedshiftDataShareAssetSourceEntry", + "documentation":"

A list of Amazon Redshift datashare assets.

" }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this import job.

" + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this import job.

" }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this import request.

" + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this import job.

" } }, - "documentation": "

Details of the operation to be performed by the job.

", - "required": [ + "documentation":"

Details from an import from Amazon Redshift datashare request.

" + }, + "ImportAssetsFromRedshiftDataSharesResponseDetails":{ + "type":"structure", + "required":[ + "AssetSources", "DataSetId", - "AssetSources", "RevisionId" - ] - }, - "ImportAssetsFromS3ResponseDetails": { - "type": "structure", - "members": { - "AssetSources": { - "shape": "ListOfAssetSourceEntry", - "documentation": "

Is a list of Amazon S3 bucket and object key pairs.

" + ], + "members":{ + "AssetSources":{ + "shape":"ListOfRedshiftDataShareAssetSourceEntry", + "documentation":"

A list of Amazon Redshift datashare asset sources.

" }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this import job.

" + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this import job.

" }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this import response.

" + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this import job.

" } }, - "documentation": "

Details from an import from Amazon S3 response.

", - "required": [ + "documentation":"

Details from an import from Amazon Redshift datashare response.

" + }, + "ImportAssetsFromS3RequestDetails":{ + "type":"structure", + "required":[ + "AssetSources", "DataSetId", - "AssetSources", "RevisionId" - ] - }, - "InternalServerException": { - "type": "structure", - "members": { - "Message": { - "shape": "__string", - "documentation": "The message identifying the service exception that occurred." + ], + "members":{ + "AssetSources":{ + "shape":"ListOfAssetSourceEntry", + "documentation":"

Is a list of Amazon S3 bucket and object key pairs.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this import job.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this import request.

" } }, - "documentation": "An exception occurred with the service.", - "required": [ + "documentation":"

Details of the operation to be performed by the job.

" + }, + "ImportAssetsFromS3ResponseDetails":{ + "type":"structure", + "required":[ + "AssetSources", + "DataSetId", + "RevisionId" + ], + "members":{ + "AssetSources":{ + "shape":"ListOfAssetSourceEntry", + "documentation":"

Is a list of Amazon S3 bucket and object key pairs.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this import job.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this import response.

" + } + }, + "documentation":"

Details from an import from Amazon S3 response.

" + }, + "InternalServerException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{ + "shape":"__string", + "documentation":"

The message identifying the service exception that occurred.

" + } + }, + "documentation":"

An exception occurred with the service.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "JobEntry":{ + "type":"structure", + "required":[ + "Arn", + "CreatedAt", + "Details", + "Id", + "State", + "Type", + "UpdatedAt" + ], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the job.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the job was created, in ISO 8601 format.

" + }, + "Details":{ + "shape":"ResponseDetails", + "documentation":"

Details of the operation to be performed by the job, such as export destination details or import source details.

" + }, + "Errors":{ + "shape":"ListOfJobError", + "documentation":"

Errors for jobs.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the job.

" + }, + "State":{ + "shape":"State", + "documentation":"

The state of the job.

" + }, + "Type":{ + "shape":"Type", + "documentation":"

The job type.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the job was last updated, in ISO 8601 format.

" + } + }, + "documentation":"

AWS Data Exchange Jobs are asynchronous import or export operations used to create or copy assets. A data set owner can both import and export as they see fit. Someone with an entitlement to a data set can only export. Jobs are deleted 90 days after they are created.

" + }, + "JobError":{ + "type":"structure", + "required":[ + "Code", "Message" ], - "exception": true, - "error": { - "httpStatusCode": 500 - } - }, - "JobEntry": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the job.

" + "members":{ + "Code":{ + "shape":"Code", + "documentation":"

The code for the job error.

" }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the job was created, in ISO 8601 format.

" + "Details":{ + "shape":"Details", + "documentation":"

The details about the job error.

" }, - "Details": { - "shape": "ResponseDetails", - "documentation": "

Details of the operation to be performed by the job, such as export destination details or import source details.

" + "LimitName":{ + "shape":"JobErrorLimitName", + "documentation":"

The name of the limit that was reached.

" }, - "Errors": { - "shape": "ListOfJobError", - "documentation": "

Errors for jobs.

" + "LimitValue":{ + "shape":"__double", + "documentation":"

The value of the exceeded limit.

" }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the job.

" + "Message":{ + "shape":"__string", + "documentation":"

The message related to the job error.

" }, - "State": { - "shape": "State", - "documentation": "

The state of the job.

" + "ResourceId":{ + "shape":"__string", + "documentation":"

The unique identifier for the resource related to the error.

" }, - "Type": { - "shape": "Type", - "documentation": "

The job type.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the job was last updated, in ISO 8601 format.

" + "ResourceType":{ + "shape":"JobErrorResourceTypes", + "documentation":"

The type of resource related to the error.

" } }, - "documentation": "AWS Data Exchange Jobs are asynchronous import or export operations used to create or copy assets. A data set owner can both import and export as they see fit. Someone with an entitlement to a data set can only export. Jobs are deleted 90 days after they are created.", - "required": [ - "Type", - "Details", - "State", - "CreatedAt", - "Id", - "Arn", - "UpdatedAt" - ] + "documentation":"

An error that occurred with the job request.

" }, - "JobError": { - "type": "structure", - "members": { - "Code": { - "shape": "Code", - "documentation": "The code for the job error." - }, - "Details": { - "shape": "Details", - "documentation": "

The details about the job error.

" - }, - "LimitName": { - "shape": "JobErrorLimitName", - "documentation": "

The name of the limit that was reached.

" - }, - "LimitValue": { - "shape": "__double", - "documentation": "The value of the exceeded limit." - }, - "Message": { - "shape": "__string", - "documentation": "The message related to the job error." - }, - "ResourceId": { - "shape": "__string", - "documentation": "The unique identifier for the resource related to the error." - }, - "ResourceType": { - "shape": "JobErrorResourceTypes", - "documentation": "The type of resource related to the error." - } - }, - "documentation": "An error that occurred with the job request.", - "required": [ - "Message", - "Code" - ] - }, - "JobErrorLimitName": { - "type": "string", - "documentation": "The name of the limit that was reached.", - "enum": [ + "JobErrorLimitName":{ + "type":"string", + "enum":[ "Assets per revision", "Asset size in GB", - "Amazon Redshift datashare assets per revision" + "Amazon Redshift datashare assets per revision", + "AWS Lake Formation data permission assets per revision", + "Amazon S3 data access assets per revision" ] }, - "JobErrorResourceTypes": { - "type": "string", - "documentation": "The types of resource which the job error can apply to.", - "enum": [ + "JobErrorResourceTypes":{ + "type":"string", + "enum":[ "REVISION", "ASSET", "DATA_SET" ] }, - "LimitName": { - "type": "string", - "enum": [ + "LFPermission":{ + "type":"string", + "enum":[ + "DESCRIBE", + "SELECT" + ] + }, + "LFResourceDetails":{ + "type":"structure", + "members":{ + "Database":{ + "shape":"DatabaseLFTagPolicy", + "documentation":"

Details about the database resource included in the AWS Lake Formation data permission.

" + }, + "Table":{ + "shape":"TableLFTagPolicy", + "documentation":"

Details about the table resource included in the AWS Lake Formation data permission.

" + } + }, + "documentation":"

Details about the AWS Lake Formation resource (Table or Database) included in the AWS Lake Formation data permission.

" + }, + "LFResourceType":{ + "type":"string", + "enum":[ + "TABLE", + "DATABASE" + ] + }, + "LFTag":{ + "type":"structure", + "required":[ + "TagKey", + "TagValues" + ], + "members":{ + "TagKey":{ + "shape":"String", + "documentation":"

The key name for the LF-tag.

" + }, + "TagValues":{ + "shape":"ListOfLFTagValues", + "documentation":"

A list of LF-tag values.

" + } + }, + "documentation":"

A structure that allows an LF-admin to grant permissions on certain conditions.

" + }, + "LFTagPolicyDetails":{ + "type":"structure", + "required":[ + "CatalogId", + "ResourceType", + "ResourceDetails" + ], + "members":{ + "CatalogId":{ + "shape":"AwsAccountId", + "documentation":"

The identifier for the AWS Glue Data Catalog.

" + }, + "ResourceType":{ + "shape":"LFResourceType", + "documentation":"

The resource type for which the LF-tag policy applies.

" + }, + "ResourceDetails":{ + "shape":"LFResourceDetails", + "documentation":"

Details for the Lake Formation Resources included in the LF-tag policy.

" + } + }, + "documentation":"

Details about the LF-tag policy.

" + }, + "LakeFormationDataPermissionAsset":{ + "type":"structure", + "required":[ + "LakeFormationDataPermissionDetails", + "LakeFormationDataPermissionType", + "Permissions" + ], + "members":{ + "LakeFormationDataPermissionDetails":{ + "shape":"LakeFormationDataPermissionDetails", + "documentation":"

Details about the AWS Lake Formation data permission.

" + }, + "LakeFormationDataPermissionType":{ + "shape":"LakeFormationDataPermissionType", + "documentation":"

The data permission type.

" + }, + "Permissions":{ + "shape":"ListOfLFPermissions", + "documentation":"

The permissions granted to the subscribers on the resource.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The IAM role's ARN that allows AWS Data Exchange to assume the role and grant and revoke permissions to AWS Lake Formation data permissions.

" + } + }, + "documentation":"

The AWS Lake Formation data permission asset.

" + }, + "LakeFormationDataPermissionDetails":{ + "type":"structure", + "members":{ + "LFTagPolicy":{ + "shape":"LFTagPolicyDetails", + "documentation":"

Details about the LF-tag policy.

" + } + }, + "documentation":"

Details about the AWS Lake Formation data permission.

" + }, + "LakeFormationDataPermissionType":{ + "type":"string", + "enum":["LFTagPolicy"] + }, + "LimitName":{ + "type":"string", + "enum":[ "Products per account", "Data sets per account", "Data sets per product", @@ -2670,388 +2392,423 @@ "Amazon Redshift datashare assets per revision", "Concurrent in progress jobs to import assets from an API Gateway API", "Amazon API Gateway API assets per revision", - "Revisions per Amazon API Gateway API data set" + "Revisions per Amazon API Gateway API data set", + "Concurrent in progress jobs to import assets from an AWS Lake Formation tag policy", + "AWS Lake Formation data permission assets per revision", + "Revisions per AWS Lake Formation data permission data set", + "Revisions per Amazon S3 data access data set", + "Amazon S3 data access assets per revision", + "Concurrent in progress jobs to create Amazon S3 data access assets from S3 buckets" ] }, - "ListDataSetRevisionsRequest": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" + "ListDataSetRevisionsRequest":{ + "type":"structure", + "required":["DataSetId"], + "members":{ + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" }, - "MaxResults": { - "shape": "MaxResults", - "location": "querystring", - "locationName": "maxResults", - "documentation": "

The maximum number of results returned by a single call.

" + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results returned by a single call.

", + "location":"querystring", + "locationName":"maxResults" }, - "NextToken": { - "shape": "__string", - "location": "querystring", - "locationName": "nextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" - } - }, - "required": [ - "DataSetId" - ] - }, - "ListDataSetRevisionsResponse": { - "type": "structure", - "members": { - "NextToken": { - "shape": "NextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" - }, - "Revisions": { - "shape": "ListOfRevisionEntry", - "documentation": "

The asset objects listed by the request.

" + "NextToken":{ + "shape":"__string", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

", + "location":"querystring", + "locationName":"nextToken" } } }, - "ListDataSetsRequest": { - "type": "structure", - "members": { - "MaxResults": { - "shape": "MaxResults", - "location": "querystring", - "locationName": "maxResults", - "documentation": "

The maximum number of results returned by a single call.

" + "ListDataSetRevisionsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

" }, - "NextToken": { - "shape": "__string", - "location": "querystring", - "locationName": "nextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" - }, - "Origin": { - "shape": "__string", - "location": "querystring", - "locationName": "origin", - "documentation": "

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

" + "Revisions":{ + "shape":"ListOfRevisionEntry", + "documentation":"

The asset objects listed by the request.

" } } }, - "ListDataSetsResponse": { - "type": "structure", - "members": { - "DataSets": { - "shape": "ListOfDataSetEntry", - "documentation": "

The data set objects listed by the request.

" + "ListDataSetsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results returned by a single call.

", + "location":"querystring", + "locationName":"maxResults" }, - "NextToken": { - "shape": "NextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" + "NextToken":{ + "shape":"__string", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "Origin":{ + "shape":"__string", + "documentation":"

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

", + "location":"querystring", + "locationName":"origin" } } }, - "ListEventActionsRequest": { - "type": "structure", - "members": { - "EventSourceId": { - "shape": "__string", - "location": "querystring", - "locationName": "eventSourceId", - "documentation": "

The unique identifier for the event source.

" + "ListDataSetsResponse":{ + "type":"structure", + "members":{ + "DataSets":{ + "shape":"ListOfDataSetEntry", + "documentation":"

The data set objects listed by the request.

" }, - "MaxResults": { - "shape": "MaxResults", - "location": "querystring", - "locationName": "maxResults", - "documentation": "

The maximum number of results returned by a single call.

" - }, - "NextToken": { - "shape": "__string", - "location": "querystring", - "locationName": "nextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

" } } }, - "ListEventActionsResponse": { - "type": "structure", - "members": { - "EventActions": { - "shape": "ListOfEventActionEntry", - "documentation": "

The event action objects listed by the request.

" + "ListEventActionsRequest":{ + "type":"structure", + "members":{ + "EventSourceId":{ + "shape":"__string", + "documentation":"

The unique identifier for the event source.

", + "location":"querystring", + "locationName":"eventSourceId" }, - "NextToken": { - "shape": "NextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results returned by a single call.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

", + "location":"querystring", + "locationName":"nextToken" } } }, - "ListJobsRequest": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "__string", - "location": "querystring", - "locationName": "dataSetId", - "documentation": "

The unique identifier for a data set.

" + "ListEventActionsResponse":{ + "type":"structure", + "members":{ + "EventActions":{ + "shape":"ListOfEventActionEntry", + "documentation":"

The event action objects listed by the request.

" }, - "MaxResults": { - "shape": "MaxResults", - "location": "querystring", - "locationName": "maxResults", - "documentation": "

The maximum number of results returned by a single call.

" - }, - "NextToken": { - "shape": "__string", - "location": "querystring", - "locationName": "nextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" - }, - "RevisionId": { - "shape": "__string", - "location": "querystring", - "locationName": "revisionId", - "documentation": "

The unique identifier for a revision.

" + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

" } } }, - "ListJobsResponse": { - "type": "structure", - "members": { - "Jobs": { - "shape": "ListOfJobEntry", - "documentation": "

The jobs listed by the request.

" + "ListJobsRequest":{ + "type":"structure", + "members":{ + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"querystring", + "locationName":"dataSetId" }, - "NextToken": { - "shape": "NextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results returned by a single call.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "RevisionId":{ + "shape":"__string", + "documentation":"

The unique identifier for a revision.

", + "location":"querystring", + "locationName":"revisionId" } } }, - "ListOfAssetDestinationEntry": { - "type": "list", - "documentation": "

The destination where the assets will be exported.

", - "member": { - "shape": "AssetDestinationEntry" - } - }, - "ListOfAssetSourceEntry": { - "type": "list", - "documentation": "

The list of sources for the assets.

", - "member": { - "shape": "AssetSourceEntry" - } - }, - "ListOfRedshiftDataShareAssetSourceEntry": { - "type": "list", - "documentation": "A list of Amazon Redshift datashare asset sources.", - "member": { - "shape": "RedshiftDataShareAssetSourceEntry" - } - }, - "ListOfRevisionDestinationEntry": { - "type": "list", - "documentation": "

The destination where the assets in the revision will be exported.

", - "member": { - "shape": "RevisionDestinationEntry" - } - }, - "ListRevisionAssetsRequest": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" + "ListJobsResponse":{ + "type":"structure", + "members":{ + "Jobs":{ + "shape":"ListOfJobEntry", + "documentation":"

The jobs listed by the request.

" }, - "MaxResults": { - "shape": "MaxResults", - "location": "querystring", - "locationName": "maxResults", - "documentation": "

The maximum number of results returned by a single call.

" - }, - "NextToken": { - "shape": "__string", - "location": "querystring", - "locationName": "nextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" - }, - "RevisionId": { - "shape": "__string", - "location": "uri", - "locationName": "RevisionId", - "documentation": "

The unique identifier for a revision.

" - } - }, - "required": [ - "RevisionId", - "DataSetId" - ] - }, - "ListRevisionAssetsResponse": { - "type": "structure", - "members": { - "Assets": { - "shape": "ListOfAssetEntry", - "documentation": "

The asset objects listed by the request.

" - }, - "NextToken": { - "shape": "NextToken", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

" } } }, - "ListTagsForResourceRequest": { - "type": "structure", - "members": { - "ResourceArn": { - "shape": "__string", - "location": "uri", - "locationName": "resource-arn", - "documentation": "

An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.

" - } - }, - "required": [ - "ResourceArn" - ] + "ListOfAssetDestinationEntry":{ + "type":"list", + "member":{"shape":"AssetDestinationEntry"} }, - "ListTagsForResourceResponse": { - "type": "structure", - "members": { - "Tags": { - "shape": "MapOf__string", - "locationName": "tags", - "documentation": "A label that consists of a customer-defined key and an optional value." + "ListOfAssetEntry":{ + "type":"list", + "member":{"shape":"AssetEntry"} + }, + "ListOfAssetSourceEntry":{ + "type":"list", + "member":{"shape":"AssetSourceEntry"} + }, + "ListOfDataSetEntry":{ + "type":"list", + "member":{"shape":"DataSetEntry"} + }, + "ListOfDatabaseLFTagPolicyPermissions":{ + "type":"list", + "member":{"shape":"DatabaseLFTagPolicyPermission"} + }, + "ListOfEventActionEntry":{ + "type":"list", + "member":{"shape":"EventActionEntry"} + }, + "ListOfJobEntry":{ + "type":"list", + "member":{"shape":"JobEntry"} + }, + "ListOfJobError":{ + "type":"list", + "member":{"shape":"JobError"} + }, + "ListOfLFPermissions":{ + "type":"list", + "member":{"shape":"LFPermission"} + }, + "ListOfLFTagValues":{ + "type":"list", + "member":{"shape":"String"} + }, + "ListOfLFTags":{ + "type":"list", + "member":{"shape":"LFTag"} + }, + "ListOfRedshiftDataShareAssetSourceEntry":{ + "type":"list", + "member":{"shape":"RedshiftDataShareAssetSourceEntry"} + }, + "ListOfRevisionDestinationEntry":{ + "type":"list", + "member":{"shape":"RevisionDestinationEntry"} + }, + "ListOfRevisionEntry":{ + "type":"list", + "member":{"shape":"RevisionEntry"} + }, + "ListOfTableTagPolicyLFPermissions":{ + "type":"list", + "member":{"shape":"TableTagPolicyLFPermission"} + }, + "ListOf__string":{ + "type":"list", + "member":{"shape":"__string"} + }, + "ListRevisionAssetsRequest":{ + "type":"structure", + "required":[ + "DataSetId", + "RevisionId" + ], + "members":{ + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results returned by a single call.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "RevisionId":{ + "shape":"__string", + "documentation":"

The unique identifier for a revision.

", + "location":"uri", + "locationName":"RevisionId" } } }, - "MaxResults": { - "type": "integer", - "min": 1, - "max": 25 + "ListRevisionAssetsResponse":{ + "type":"structure", + "members":{ + "Assets":{ + "shape":"ListOfAssetEntry", + "documentation":"

The asset objects listed by the request.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token value retrieved from a previous call to access the next page of results.

" + } + } }, - "Name": { - "type": "string", - "documentation": "The name of the model." + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"__string", + "documentation":"

An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.

", + "location":"uri", + "locationName":"ResourceArn" + } + } }, - "NextToken": { - "type": "string", - "documentation": "

The token value retrieved from a previous call to access the next page of results.

" + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"MapOf__string", + "documentation":"

A label that consists of a customer-defined key and an optional value.

", + "locationName":"tags" + } + } }, - "Origin": { - "type": "string", - "documentation": "

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers). When an owned data set is published in a product, AWS Data Exchange creates a copy of the data set. Subscribers can access that copy of the data set as an entitled data set.

", - "enum": [ + "MapOf__string":{ + "type":"map", + "key":{"shape":"__string"}, + "value":{"shape":"__string"} + }, + "MaxResults":{ + "type":"integer", + "max":25, + "min":1 + }, + "Name":{"type":"string"}, + "NextToken":{"type":"string"}, + "Origin":{ + "type":"string", + "enum":[ "OWNED", "ENTITLED" ] }, - "OriginDetails": { - "type": "structure", - "members": { - "ProductId": { - "shape": "__string", - "documentation": "

The product ID of the origin of the data set.

" + "OriginDetails":{ + "type":"structure", + "required":["ProductId"], + "members":{ + "ProductId":{ + "shape":"__string", + "documentation":"

The product ID of the origin of the data set.

" } }, - "documentation": "

Information about the origin of the data set.

", - "required": [ - "ProductId" - ] + "documentation":"

Details about the origin of the data set.

" }, - "ProtocolType": { - "type": "string", - "enum": [ - "REST" - ] + "ProtocolType":{ + "type":"string", + "enum":["REST"] }, - "RedshiftDataShareAsset": { - "type": "structure", - "members": { - "Arn": { - "shape": "__string", - "documentation": "The Amazon Resource Name (ARN) of the datashare asset." + "RedshiftDataShareAsset":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the datashare asset.

" } }, - "documentation": "The Amazon Redshift datashare asset.", - "required": [ - "Arn" - ] + "documentation":"

The Amazon Redshift datashare asset.

" }, - "RedshiftDataShareAssetSourceEntry": { - "type": "structure", - "members": { - "DataShareArn": { - "shape": "__string", - "documentation": "The Amazon Resource Name (ARN) of the datashare asset." + "RedshiftDataShareAssetSourceEntry":{ + "type":"structure", + "required":["DataShareArn"], + "members":{ + "DataShareArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the datashare asset.

" } }, - "documentation": "

The source of the Amazon Redshift datashare asset.

", - "required": [ - "DataShareArn" - ] + "documentation":"

The source of the Amazon Redshift datashare asset.

" }, - "RequestDetails": { - "type": "structure", - "members": { - "ExportAssetToSignedUrl": { - "shape": "ExportAssetToSignedUrlRequestDetails", - "documentation": "

Details about the export to signed URL request.

" + "RequestDetails":{ + "type":"structure", + "members":{ + "ExportAssetToSignedUrl":{ + "shape":"ExportAssetToSignedUrlRequestDetails", + "documentation":"

Details about the export to signed URL request.

" }, - "ExportAssetsToS3": { - "shape": "ExportAssetsToS3RequestDetails", - "documentation": "

Details about the export to Amazon S3 request.

" + "ExportAssetsToS3":{ + "shape":"ExportAssetsToS3RequestDetails", + "documentation":"

Details about the export to Amazon S3 request.

" }, - "ExportRevisionsToS3": { - "shape": "ExportRevisionsToS3RequestDetails", - "documentation": "

Details about the export to Amazon S3 request.

" + "ExportRevisionsToS3":{ + "shape":"ExportRevisionsToS3RequestDetails", + "documentation":"

Details about the export to Amazon S3 request.

" }, - "ImportAssetFromSignedUrl": { - "shape": "ImportAssetFromSignedUrlRequestDetails", - "documentation": "

Details about the import from signed URL request.

" + "ImportAssetFromSignedUrl":{ + "shape":"ImportAssetFromSignedUrlRequestDetails", + "documentation":"

Details about the import from Amazon S3 request.

" }, - "ImportAssetsFromS3": { - "shape": "ImportAssetsFromS3RequestDetails", - "documentation": "

Details about the import from Amazon S3 request.

" + "ImportAssetsFromS3":{ + "shape":"ImportAssetsFromS3RequestDetails", + "documentation":"

Details about the import asset from API Gateway API request.

" }, - "ImportAssetsFromRedshiftDataShares": { - "shape": "ImportAssetsFromRedshiftDataSharesRequestDetails", - "documentation": "

Details from an import from Amazon Redshift datashare request.

" + "ImportAssetsFromRedshiftDataShares":{ + "shape":"ImportAssetsFromRedshiftDataSharesRequestDetails", + "documentation":"

Details from an import from Amazon Redshift datashare request.

" }, - "ImportAssetFromApiGatewayApi": { - "shape": "ImportAssetFromApiGatewayApiRequestDetails", - "documentation": "

Information about the import asset from API Gateway API request.

" + "ImportAssetFromApiGatewayApi":{ + "shape":"ImportAssetFromApiGatewayApiRequestDetails", + "documentation":"

Details about the import from signed URL request.

" + }, + "CreateS3DataAccessFromS3Bucket":{ + "shape":"CreateS3DataAccessFromS3BucketRequestDetails", + "documentation":"

Details of the request to create S3 data access from the Amazon S3 bucket.

" + }, + "ImportAssetsFromLakeFormationTagPolicy":{ + "shape":"ImportAssetsFromLakeFormationTagPolicyRequestDetails", + "documentation":"

Request details for the ImportAssetsFromLakeFormationTagPolicy job.

" } }, - "documentation": "

The details for the request.

" + "documentation":"

The details for the request.

" }, - "ResourceNotFoundException": { - "type": "structure", - "members": { - "Message": { - "shape": "__string", - "documentation": "

The resource couldn't be found.

" + "ResourceNotFoundException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{ + "shape":"__string", + "documentation":"

The resource couldn't be found.

" }, - "ResourceId": { - "shape": "__string", - "documentation": "

The unique identifier for the resource that couldn't be found.

" + "ResourceId":{ + "shape":"__string", + "documentation":"

The unique identifier for the resource that couldn't be found.

" }, - "ResourceType": { - "shape": "ResourceType", - "documentation": "

The type of resource that couldn't be found.

" + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

The type of resource that couldn't be found.

" } }, - "documentation": "

The resource couldn't be found.

", - "required": [ - "Message" - ], - "exception": true, - "error": { - "httpStatusCode": 404 - } + "documentation":"

The resource couldn't be found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true }, - "ResourceType": { - "type": "string", - "enum": [ + "ResourceType":{ + "type":"string", + "enum":[ "DATA_SET", "REVISION", "ASSET", @@ -3059,348 +2816,397 @@ "EVENT_ACTION" ] }, - "ResponseDetails": { - "type": "structure", - "members": { - "ExportAssetToSignedUrl": { - "shape": "ExportAssetToSignedUrlResponseDetails", - "documentation": "

Details for the export to signed URL response.

" + "ResponseDetails":{ + "type":"structure", + "members":{ + "ExportAssetToSignedUrl":{ + "shape":"ExportAssetToSignedUrlResponseDetails", + "documentation":"

Details for the export to signed URL response.

" }, - "ExportAssetsToS3": { - "shape": "ExportAssetsToS3ResponseDetails", - "documentation": "

Details for the export to Amazon S3 response.

" + "ExportAssetsToS3":{ + "shape":"ExportAssetsToS3ResponseDetails", + "documentation":"

Details for the export to Amazon S3 response.

" }, - "ExportRevisionsToS3": { - "shape": "ExportRevisionsToS3ResponseDetails", - "documentation": "

Details for the export revisions to Amazon S3 response.

" + "ExportRevisionsToS3":{ + "shape":"ExportRevisionsToS3ResponseDetails", + "documentation":"

Details for the export revisions to Amazon S3 response.

" }, - "ImportAssetFromSignedUrl": { - "shape": "ImportAssetFromSignedUrlResponseDetails", - "documentation": "

Details for the import from signed URL response.

" + "ImportAssetFromSignedUrl":{ + "shape":"ImportAssetFromSignedUrlResponseDetails", + "documentation":"

Details for the import from signed URL response.

" }, - "ImportAssetsFromS3": { - "shape": "ImportAssetsFromS3ResponseDetails", - "documentation": "

Details for the import from Amazon S3 response.

" + "ImportAssetsFromS3":{ + "shape":"ImportAssetsFromS3ResponseDetails", + "documentation":"

Details for the import from Amazon S3 response.

" }, - "ImportAssetsFromRedshiftDataShares": { - "shape": "ImportAssetsFromRedshiftDataSharesResponseDetails", - "documentation": "

Details from an import from Amazon Redshift datashare response.

" + "ImportAssetsFromRedshiftDataShares":{ + "shape":"ImportAssetsFromRedshiftDataSharesResponseDetails", + "documentation":"

Details from an import from Amazon Redshift datashare response.

" }, - "ImportAssetFromApiGatewayApi": { - "shape": "ImportAssetFromApiGatewayApiResponseDetails", - "documentation": "

The response details.

" + "ImportAssetFromApiGatewayApi":{ + "shape":"ImportAssetFromApiGatewayApiResponseDetails", + "documentation":"

The response details.

" + }, + "CreateS3DataAccessFromS3Bucket":{ + "shape":"CreateS3DataAccessFromS3BucketResponseDetails", + "documentation":"

Response details from the CreateS3DataAccessFromS3Bucket job.

" + }, + "ImportAssetsFromLakeFormationTagPolicy":{ + "shape":"ImportAssetsFromLakeFormationTagPolicyResponseDetails", + "documentation":"

Response details from the ImportAssetsFromLakeFormationTagPolicy job.

" } }, - "documentation": "

Details for the response.

" + "documentation":"

Details for the response.

" }, - "RevisionDestinationEntry": { - "type": "structure", - "members": { - "Bucket": { - "shape": "__string", - "documentation": "

The S3 bucket that is the destination for the assets in the revision.

" - }, - "KeyPattern": { - "shape": "__string", - "documentation": "

A string representing the pattern for generated names of the individual assets in the revision. For more information about key patterns, see Key patterns when exporting revisions.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision.

" - } - }, - "documentation": "

The destination where the assets in the revision will be exported.

", - "required": [ + "RevisionDestinationEntry":{ + "type":"structure", + "required":[ "Bucket", "RevisionId" - ] - }, - "RevisionEntry": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the revision.

" + ], + "members":{ + "Bucket":{ + "shape":"__string", + "documentation":"

The Amazon S3 bucket that is the destination for the assets in the revision.

" }, - "Comment": { - "shape": "__stringMin0Max16384", - "documentation": "

An optional comment about the revision.

" + "KeyPattern":{ + "shape":"__string", + "documentation":"

A string representing the pattern for generated names of the individual assets in the revision. For more information about key patterns, see Key patterns when exporting revisions.

" }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was created, in ISO 8601 format.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this revision.

" - }, - "Finalized": { - "shape": "__boolean", - "documentation": "

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products.

Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the revision.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was last updated, in ISO 8601 format.

" - }, - "RevocationComment": { - "shape": "__stringMin10Max512", - "documentation": "

A required comment to inform subscribers of the reason their access to the revision was revoked.

" - }, - "Revoked": { - "shape": "__boolean", - "documentation": "

A status indicating that subscribers' access to the revision was revoked.

" - }, - "RevokedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was revoked, in ISO 8601 format.

" + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision.

" } }, - "documentation": "

A revision is a container for one or more assets.

", - "required": [ + "documentation":"

The destination where the assets in the revision will be exported.

" + }, + "RevisionEntry":{ + "type":"structure", + "required":[ + "Arn", "CreatedAt", "DataSetId", "Id", - "Arn", "UpdatedAt" - ] - }, - "RevisionPublished": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "Id", - "documentation": "

The data set ID of the published revision.

" + ], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the revision.

" + }, + "Comment":{ + "shape":"__stringMin0Max16384", + "documentation":"

An optional comment about the revision.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was created, in ISO 8601 format.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with the data set revision.

" + }, + "Finalized":{ + "shape":"__boolean", + "documentation":"

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products. Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was last updated, in ISO 8601 format.

" + }, + "RevocationComment":{ + "shape":"__stringMin10Max512", + "documentation":"

A required comment to inform subscribers of the reason their access to the revision was revoked.

" + }, + "Revoked":{ + "shape":"__boolean", + "documentation":"

A status indicating that subscribers' access to the revision was revoked.

" + }, + "RevokedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was revoked, in ISO 8601 format.

" } }, - "documentation": "

Information about the published revision.

", - "required": [ - "DataSetId" - ] + "documentation":"

A revision is a container for one or more assets.

" }, - "RevokeRevisionRequest": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" - }, - "RevisionId": { - "shape": "__string", - "location": "uri", - "locationName": "RevisionId", - "documentation": "

The unique identifier for a revision.

" - }, - "RevocationComment": { - "shape": "__stringMin10Max512", - "documentation": "

A required comment to inform subscribers of the reason their access to the revision was revoked.

" + "RevisionPublished":{ + "type":"structure", + "required":["DataSetId"], + "members":{ + "DataSetId":{ + "shape":"Id", + "documentation":"

The data set ID of the published revision.

" } }, - "documentation": "

The request body for RevokeRevision.

", - "required": [ - "RevisionId", + "documentation":"

Information about the published revision.

" + }, + "RevokeRevisionRequest":{ + "type":"structure", + "required":[ "DataSetId", + "RevisionId", "RevocationComment" - ] - }, - "RevokeRevisionResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the revision.

" + ], + "members":{ + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" }, - "Comment": { - "shape": "__stringMin0Max16384", - "documentation": "

An optional comment about the revision.

" + "RevisionId":{ + "shape":"__string", + "documentation":"

The unique identifier for a revision.

", + "location":"uri", + "locationName":"RevisionId" }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was created, in ISO 8601 format.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this revision.

" - }, - "Finalized": { - "shape": "__boolean", - "documentation": "

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products.

Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the revision.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was last updated, in ISO 8601 format.

" - }, - "RevocationComment": { - "shape": "__stringMin10Max512", - "documentation": "

A required comment to inform subscribers of the reason their access to the revision was revoked.

" - }, - "Revoked": { - "shape": "__boolean", - "documentation": "

A status indicating that subscribers' access to the revision was revoked.

" - }, - "RevokedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was revoked, in ISO 8601 format.

" + "RevocationComment":{ + "shape":"__stringMin10Max512", + "documentation":"

A required comment to inform subscribers of the reason their access to the revision was revoked.

" } } }, - "S3SnapshotAsset": { - "type": "structure", - "members": { - "Size": { - "shape": "__doubleMin0", - "documentation": "

The size of the S3 object that is the object.

" + "RevokeRevisionResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the revision.

" + }, + "Comment":{ + "shape":"__stringMin0Max16384", + "documentation":"

An optional comment about the revision.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was created, in ISO 8601 format.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with the data set revision.

" + }, + "Finalized":{ + "shape":"__boolean", + "documentation":"

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products. Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was last updated, in ISO 8601 format.

" + }, + "RevocationComment":{ + "shape":"__stringMin10Max512", + "documentation":"

A required comment to inform subscribers of the reason their access to the revision was revoked.

" + }, + "Revoked":{ + "shape":"__boolean", + "documentation":"

A status indicating that subscribers' access to the revision was revoked.

" + }, + "RevokedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was revoked, in ISO 8601 format.

" } - }, - "documentation": "

The S3 object that is the asset.

", - "required": [ - "Size" - ] + } }, - "SendApiAssetRequest": { - "type": "structure", - "members": { - "Body": { - "shape": "__string", - "documentation": "

The request body.

" + "RoleArn":{ + "type":"string", + "pattern":"arn:aws:iam::(\\d{12}):role\\/.+" + }, + "S3DataAccessAsset":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"__string", + "documentation":"

The Amazon S3 bucket hosting data to be shared in the S3 data access.

" }, - "QueryStringParameters": { - "shape": "MapOf__string", - "location": "querystring", - "documentation": "

Attach query string parameters to the end of the URI (for example, /v1/examplePath?exampleParam=exampleValue).

" + "KeyPrefixes":{ + "shape":"ListOf__string", + "documentation":"

The Amazon S3 bucket used for hosting shared data in the Amazon S3 data access.

" }, - "AssetId": { - "shape": "__string", - "location": "header", - "locationName": "x-amzn-dataexchange-asset-id", - "documentation": "

Asset ID value for the API request.

" + "Keys":{ + "shape":"ListOf__string", + "documentation":"

S3 keys made available using this asset.

" }, - "DataSetId": { - "shape": "__string", - "location": "header", - "locationName": "x-amzn-dataexchange-data-set-id", - "documentation": "

Data set ID value for the API request.

" + "S3AccessPointAlias":{ + "shape":"__string", + "documentation":"

The automatically-generated bucket-style alias for your Amazon S3 Access Point. Customers can access their entitled data using the S3 Access Point alias.

" }, - "RequestHeaders": { - "shape": "MapOf__string", - "location": "headers", - "locationName": "x-amzn-dataexchange-header-", - "documentation": "

Any header value prefixed with x-amzn-dataexchange-header- will have that stripped before sending the Asset API request. Use this when you want to override a header that AWS Data Exchange uses. Alternatively, you can use the header without a prefix to the HTTP request.

" - }, - "Method": { - "shape": "__string", - "location": "header", - "locationName": "x-amzn-dataexchange-http-method", - "documentation": "

HTTP method value for the API request. Alternatively, you can use the appropriate verb in your request.

" - }, - "Path": { - "shape": "__string", - "location": "header", - "locationName": "x-amzn-dataexchange-path", - "documentation": "

URI path value for the API request. Alternatively, you can set the URI path directly by invoking /v1/{pathValue}

" - }, - "RevisionId": { - "shape": "__string", - "location": "header", - "locationName": "x-amzn-dataexchange-revision-id", - "documentation": "

Revision ID value for the API request.

" + "S3AccessPointArn":{ + "shape":"__string", + "documentation":"

The ARN for your Amazon S3 Access Point. Customers can also access their entitled data using the S3 Access Point ARN.

" } }, - "documentation": "

The request body for SendApiAsset.

", - "required": [ + "documentation":"

The Amazon S3 data access that is the asset.

" + }, + "S3DataAccessAssetSourceEntry":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "Bucket":{ + "shape":"__string", + "documentation":"

The Amazon S3 bucket used for hosting shared data in the Amazon S3 data access.

" + }, + "KeyPrefixes":{ + "shape":"ListOf__string", + "documentation":"

Organizes Amazon S3 asset key prefixes stored in an Amazon S3 bucket.

" + }, + "Keys":{ + "shape":"ListOf__string", + "documentation":"

The keys used to create the Amazon S3 data access.

" + } + }, + "documentation":"

Source details for an Amazon S3 data access asset.

" + }, + "S3SnapshotAsset":{ + "type":"structure", + "required":["Size"], + "members":{ + "Size":{ + "shape":"__doubleMin0", + "documentation":"

The size of the Amazon S3 object that is the object.

" + } + }, + "documentation":"

The Amazon S3 object that is the asset.

" + }, + "SendApiAssetRequest":{ + "type":"structure", + "required":[ + "AssetId", "DataSetId", - "RevisionId", - "AssetId" + "RevisionId" ], - "payload": "Body" - }, - "SendApiAssetResponse": { - "type": "structure", - "members": { - "Body": { - "shape": "__string", - "documentation": "

The response body from the underlying API tracked by the API asset.

" + "members":{ + "Body":{ + "shape":"__string", + "documentation":"

The request body.

" }, - "ResponseHeaders": { - "shape": "MapOf__string", - "documentation": "

The response headers from the underlying API tracked by the API asset.

", - "location": "headers", - "locationName": "" + "QueryStringParameters":{ + "shape":"MapOf__string", + "documentation":"

Attach query string parameters to the end of the URI (for example, /v1/examplePath?exampleParam=exampleValue).

", + "location":"querystring" + }, + "AssetId":{ + "shape":"__string", + "documentation":"

Asset ID value for the API request.

", + "location":"header", + "locationName":"x-amzn-dataexchange-asset-id" + }, + "DataSetId":{ + "shape":"__string", + "documentation":"

Data set ID value for the API request.

", + "location":"header", + "locationName":"x-amzn-dataexchange-data-set-id" + }, + "RequestHeaders":{ + "shape":"MapOf__string", + "documentation":"

Any header value prefixed with x-amzn-dataexchange-header- will have that stripped before sending the Asset API request. Use this when you want to override a header that AWS Data Exchange uses. Alternatively, you can use the header without a prefix to the HTTP request.

", + "location":"headers", + "locationName":"x-amzn-dataexchange-header-" + }, + "Method":{ + "shape":"__string", + "documentation":"

HTTP method value for the API request. Alternatively, you can use the appropriate verb in your request.

", + "location":"header", + "locationName":"x-amzn-dataexchange-http-method" + }, + "Path":{ + "shape":"__string", + "documentation":"

URI path value for the API request. Alternatively, you can set the URI path directly by invoking /v1/{pathValue}.

", + "location":"header", + "locationName":"x-amzn-dataexchange-path" + }, + "RevisionId":{ + "shape":"__string", + "documentation":"

Revision ID value for the API request.

", + "location":"header", + "locationName":"x-amzn-dataexchange-revision-id" } }, - "payload": "Body" + "payload":"Body" }, - "ServerSideEncryptionTypes": { - "type": "string", - "documentation": "

The types of encryption supported in export jobs to Amazon S3.

", - "enum": [ + "SendApiAssetResponse":{ + "type":"structure", + "members":{ + "Body":{ + "shape":"__string", + "documentation":"

The response body from the underlying API tracked by the API asset.

" + }, + "ResponseHeaders":{ + "shape":"MapOf__string", + "documentation":"

The response headers from the underlying API tracked by the API asset.

", + "location":"headers", + "locationName":"" + } + }, + "payload":"Body" + }, + "ServerSideEncryptionTypes":{ + "type":"string", + "enum":[ "aws:kms", "AES256" ] }, - "ServiceLimitExceededException": { - "type": "structure", - "members": { - "LimitName": { - "shape": "LimitName", - "documentation": "

The name of the quota that was exceeded.

" + "ServiceLimitExceededException":{ + "type":"structure", + "required":["Message"], + "members":{ + "LimitName":{ + "shape":"LimitName", + "documentation":"

The name of the limit that was reached.

" }, - "LimitValue": { - "shape": "__double", - "documentation": "

The maximum value for the service-specific limit.

" + "LimitValue":{ + "shape":"__double", + "documentation":"

The value of the exceeded limit.

" }, - "Message": { - "shape": "__string", - "documentation": "

The request has exceeded the quotas imposed by the service.

" + "Message":{ + "shape":"__string", + "documentation":"

The request has exceeded the quotas imposed by the service.

" } }, - "documentation": "

The request has exceeded the quotas imposed by the service.

", - "required": [ - "Message" - ], - "exception": true, - "error": { - "httpStatusCode": 402 + "documentation":"

The request has exceeded the quotas imposed by the service.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "StartJobRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{ + "shape":"__string", + "documentation":"

The unique identifier for a job.

", + "location":"uri", + "locationName":"JobId" + } } }, - "StartJobRequest": { - "type": "structure", - "members": { - "JobId": { - "shape": "__string", - "location": "uri", - "locationName": "JobId", - "documentation": "

The unique identifier for a job.

" - } - }, - "required": [ - "JobId" - ] + "StartJobResponse":{ + "type":"structure", + "members":{ + } }, - "StartJobResponse": { - "type": "structure", - "members": {} - }, - "State": { - "type": "string", - "enum": [ + "State":{ + "type":"string", + "enum":[ "WAITING", "IN_PROGRESS", "ERROR", @@ -3409,456 +3215,424 @@ "TIMED_OUT" ] }, - "TagResourceRequest": { - "type": "structure", - "members": { - "ResourceArn": { - "shape": "__string", - "location": "uri", - "locationName": "resource-arn", - "documentation": "

An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.

" - }, - "Tags": { - "shape": "MapOf__string", - "locationName": "tags", - "documentation": "A label that consists of a customer-defined key and an optional value." + "String":{"type":"string"}, + "TableLFTagPolicy":{ + "type":"structure", + "required":["Expression"], + "members":{ + "Expression":{ + "shape":"ListOfLFTags", + "documentation":"

A list of LF-tag conditions that apply to table resources.

" } }, - "documentation": "

The request body for TagResource.

", - "required": [ - "ResourceArn", - "Tags" + "documentation":"

The LF-tag policy for a table resource.

" + }, + "TableLFTagPolicyAndPermissions":{ + "type":"structure", + "required":[ + "Expression", + "Permissions" + ], + "members":{ + "Expression":{ + "shape":"ListOfLFTags", + "documentation":"

A list of LF-tag conditions that apply to table resources.

" + }, + "Permissions":{ + "shape":"ListOfTableTagPolicyLFPermissions", + "documentation":"

The permissions granted to subscribers on table resources.

" + } + }, + "documentation":"

The LF-tag policy and permissions that apply to table resources.

" + }, + "TableTagPolicyLFPermission":{ + "type":"string", + "enum":[ + "DESCRIBE", + "SELECT" ] }, - "ThrottlingException": { - "type": "structure", - "members": { - "Message": { - "shape": "__string", - "documentation": "

The limit on the number of requests per second was exceeded.

" - } - }, - "documentation": "

The limit on the number of requests per second was exceeded.

", - "required": [ - "Message" + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" ], - "exception": true, - "error": { - "httpStatusCode": 429 + "members":{ + "ResourceArn":{ + "shape":"__string", + "documentation":"

An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "Tags":{ + "shape":"MapOf__string", + "documentation":"

A label that consists of a customer-defined key and an optional value.

", + "locationName":"tags" + } } }, - "Timestamp": { - "type": "timestamp", - "documentation": "

Dates and times in AWS Data Exchange are recorded in ISO 8601 format.

", - "timestampFormat": "iso8601" + "ThrottlingException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{ + "shape":"__string", + "documentation":"

The limit on the number of requests per second was exceeded.

" + } + }, + "documentation":"

The limit on the number of requests per second was exceeded.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true }, - "Type": { - "type": "string", - "enum": [ + "Timestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "Type":{ + "type":"string", + "enum":[ "IMPORT_ASSETS_FROM_S3", "IMPORT_ASSET_FROM_SIGNED_URL", "EXPORT_ASSETS_TO_S3", "EXPORT_ASSET_TO_SIGNED_URL", "EXPORT_REVISIONS_TO_S3", "IMPORT_ASSETS_FROM_REDSHIFT_DATA_SHARES", - "IMPORT_ASSET_FROM_API_GATEWAY_API" + "IMPORT_ASSET_FROM_API_GATEWAY_API", + "CREATE_S3_DATA_ACCESS_FROM_S3_BUCKET", + "IMPORT_ASSETS_FROM_LAKE_FORMATION_TAG_POLICY" ] }, - "UntagResourceRequest": { - "type": "structure", - "members": { - "ResourceArn": { - "shape": "__string", - "location": "uri", - "locationName": "resource-arn", - "documentation": "

An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.

" + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"__string", + "documentation":"

An Amazon Resource Name (ARN) that uniquely identifies an AWS resource.

", + "location":"uri", + "locationName":"ResourceArn" }, - "TagKeys": { - "shape": "ListOf__string", - "location": "querystring", - "locationName": "tagKeys", - "documentation": "The key tags." + "TagKeys":{ + "shape":"ListOf__string", + "documentation":"

The key tags.

", + "location":"querystring", + "locationName":"tagKeys" } - }, - "required": [ - "TagKeys", - "ResourceArn" - ] + } }, - "UpdateAssetRequest": { - "type": "structure", - "members": { - "AssetId": { - "shape": "__string", - "location": "uri", - "locationName": "AssetId", - "documentation": "

The unique identifier for an asset.

" - }, - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" - }, - "Name": { - "shape": "AssetName", - "documentation": "

The name of the asset. When importing from Amazon S3, the S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name.

" - }, - "RevisionId": { - "shape": "__string", - "location": "uri", - "locationName": "RevisionId", - "documentation": "

The unique identifier for a revision.

" - } - }, - "documentation": "

The request body for UpdateAsset.

", - "required": [ - "RevisionId", + "UpdateAssetRequest":{ + "type":"structure", + "required":[ "AssetId", "DataSetId", - "Name" - ] - }, - "UpdateAssetResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the asset.

" - }, - "AssetDetails": { - "shape": "AssetDetails", - "documentation": "

Information about the asset.

" - }, - "AssetType": { - "shape": "AssetType", - "documentation": "

The type of asset that is added to a data set.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the asset was created, in ISO 8601 format.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this asset.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the asset.

" - }, - "Name": { - "shape": "AssetName", - "documentation": "

The name of the asset. When importing from Amazon S3, the S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name.

" - }, - "RevisionId": { - "shape": "Id", - "documentation": "

The unique identifier for the revision associated with this asset.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The asset ID of the owned asset corresponding to the entitled asset being viewed. This parameter is returned when an asset owner is viewing the entitled copy of its owned asset.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the asset was last updated, in ISO 8601 format.

" - } - } - }, - "UpdateDataSetRequest": { - "type": "structure", - "members": { - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" - }, - "Description": { - "shape": "Description", - "documentation": "

The description for the data set.

" - }, - "Name": { - "shape": "Name", - "documentation": "

The name of the data set.

" - } - }, - "documentation": "

The request body for UpdateDataSet.

", - "required": [ - "DataSetId" - ] - }, - "UpdateDataSetResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the data set.

" - }, - "AssetType": { - "shape": "AssetType", - "documentation": "

The type of asset that is added to a data set.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the data set was created, in ISO 8601 format.

" - }, - "Description": { - "shape": "Description", - "documentation": "

The description for the data set.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the data set.

" - }, - "Name": { - "shape": "Name", - "documentation": "

The name of the data set.

" - }, - "Origin": { - "shape": "Origin", - "documentation": "

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

" - }, - "OriginDetails": { - "shape": "OriginDetails", - "documentation": "

If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the data set was last updated, in ISO 8601 format.

" - } - } - }, - "UpdateEventActionRequest": { - "type": "structure", - "members": { - "Action": { - "shape": "Action", - "documentation": "

What occurs after a certain event.

" - }, - "EventActionId": { - "shape": "__string", - "location": "uri", - "locationName": "EventActionId", - "documentation": "

The unique identifier for the event action.

" - } - }, - "documentation": "

The request body for UpdateEventAction.

", - "required": [ - "EventActionId" - ] - }, - "UpdateEventActionResponse": { - "type": "structure", - "members": { - "Action": { - "shape": "Action", - "documentation": "

What occurs after a certain event.

" - }, - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the event action.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the event action was created, in ISO 8601 format.

" - }, - "Event": { - "shape": "Event", - "documentation": "

What occurs to start an action.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the event action.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the event action was last updated, in ISO 8601 format.

" - } - } - }, - "UpdateRevisionRequest": { - "type": "structure", - "members": { - "Comment": { - "shape": "__stringMin0Max16384", - "documentation": "

An optional comment about the revision.

" - }, - "DataSetId": { - "shape": "__string", - "location": "uri", - "locationName": "DataSetId", - "documentation": "

The unique identifier for a data set.

" - }, - "Finalized": { - "shape": "__boolean", - "documentation": "

Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products.

" - }, - "RevisionId": { - "shape": "__string", - "location": "uri", - "locationName": "RevisionId", - "documentation": "

The unique identifier for a revision.

" - } - }, - "documentation": "

The request body for UpdateRevision.

", - "required": [ - "RevisionId", - "DataSetId" - ] - }, - "UpdateRevisionResponse": { - "type": "structure", - "members": { - "Arn": { - "shape": "Arn", - "documentation": "

The ARN for the revision.

" - }, - "Comment": { - "shape": "__stringMin0Max16384", - "documentation": "

An optional comment about the revision.

" - }, - "CreatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was created, in ISO 8601 format.

" - }, - "DataSetId": { - "shape": "Id", - "documentation": "

The unique identifier for the data set associated with this revision.

" - }, - "Finalized": { - "shape": "__boolean", - "documentation": "

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products.

Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" - }, - "Id": { - "shape": "Id", - "documentation": "

The unique identifier for the revision.

" - }, - "SourceId": { - "shape": "Id", - "documentation": "

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" - }, - "UpdatedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was last updated, in ISO 8601 format.

" - }, - "RevocationComment": { - "shape": "__stringMin10Max512", - "documentation": "

A required comment to inform subscribers of the reason their access to the revision was revoked.

" - }, - "Revoked": { - "shape": "__boolean", - "documentation": "

A status indicating that subscribers' access to the revision was revoked.

" - }, - "RevokedAt": { - "shape": "Timestamp", - "documentation": "

The date and time that the revision was revoked, in ISO 8601 format.

" - } - } - }, - "ValidationException": { - "type": "structure", - "members": { - "Message": { - "shape": "__string", - "documentation": "

The message that informs you about what was invalid about the request.

" - }, - "ExceptionCause": { - "shape": "ExceptionCause", - "documentation": "

The message that informs you about what the exception was.

" - } - }, - "documentation": "

The request was invalid.

", - "required": [ - "Message" + "Name", + "RevisionId" ], - "exception": true, - "error": { - "httpStatusCode": 400 + "members":{ + "AssetId":{ + "shape":"__string", + "documentation":"

The unique identifier for an asset.

", + "location":"uri", + "locationName":"AssetId" + }, + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + }, + "Name":{ + "shape":"AssetName", + "documentation":"

The name of the asset. When importing from Amazon S3, the Amazon S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target Amazon S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name. When importing from AWS Lake Formation, the static values of \"Database(s) included in the LF-tag policy\" or \"Table(s) included in LF-tag policy\" are used as the name.

" + }, + "RevisionId":{ + "shape":"__string", + "documentation":"

The unique identifier for a revision.

", + "location":"uri", + "locationName":"RevisionId" + } } }, - "__boolean": { - "type": "boolean" - }, - "__double": { - "type": "double" - }, - "__doubleMin0": { - "type": "double" - }, - "ListOfAssetEntry": { - "type": "list", - "member": { - "shape": "AssetEntry" + "UpdateAssetResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the asset.

" + }, + "AssetDetails":{ + "shape":"AssetDetails", + "documentation":"

Details about the asset.

" + }, + "AssetType":{ + "shape":"AssetType", + "documentation":"

The type of asset that is added to a data set.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the asset was created, in ISO 8601 format.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with this asset.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the asset.

" + }, + "Name":{ + "shape":"AssetName", + "documentation":"

The name of the asset. When importing from Amazon S3, the Amazon S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target Amazon S3 object key. When importing from Amazon API Gateway API, the API name is used as the asset name. When importing from Amazon Redshift, the datashare name is used as the asset name. When importing from AWS Lake Formation, the static values of \"Database(s) included in the LF-tag policy\"- or \"Table(s) included in LF-tag policy\" are used as the asset name.

" + }, + "RevisionId":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision associated with this asset.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The asset ID of the owned asset corresponding to the entitled asset being viewed. This parameter is returned when an asset owner is viewing the entitled copy of its owned asset.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the asset was last updated, in ISO 8601 format.

" + } } }, - "ListOfDataSetEntry": { - "type": "list", - "member": { - "shape": "DataSetEntry" + "UpdateDataSetRequest":{ + "type":"structure", + "required":["DataSetId"], + "members":{ + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + }, + "Description":{ + "shape":"Description", + "documentation":"

The description for the data set.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the data set.

" + } } }, - "ListOfEventActionEntry": { - "type": "list", - "member": { - "shape": "EventActionEntry" + "UpdateDataSetResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the data set.

" + }, + "AssetType":{ + "shape":"AssetType", + "documentation":"

The type of asset that is added to a data set.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the data set was created, in ISO 8601 format.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The description for the data set.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the data set.

" + }, + "Origin":{ + "shape":"Origin", + "documentation":"

A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers).

" + }, + "OriginDetails":{ + "shape":"OriginDetails", + "documentation":"

If the origin of this data set is ENTITLED, includes the details for the product on AWS Marketplace.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The data set ID of the owned data set corresponding to the entitled data set being viewed. This parameter is returned when a data set owner is viewing the entitled copy of its owned data set.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the data set was last updated, in ISO 8601 format.

" + } } }, - "ListOfJobEntry": { - "type": "list", - "member": { - "shape": "JobEntry" + "UpdateEventActionRequest":{ + "type":"structure", + "required":["EventActionId"], + "members":{ + "Action":{ + "shape":"Action", + "documentation":"

What occurs after a certain event.

" + }, + "EventActionId":{ + "shape":"__string", + "documentation":"

The unique identifier for the event action.

", + "location":"uri", + "locationName":"EventActionId" + } } }, - "ListOfJobError": { - "type": "list", - "member": { - "shape": "JobError" + "UpdateEventActionResponse":{ + "type":"structure", + "members":{ + "Action":{ + "shape":"Action", + "documentation":"

What occurs after a certain event.

" + }, + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the event action.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the event action was created, in ISO 8601 format.

" + }, + "Event":{ + "shape":"Event", + "documentation":"

What occurs to start an action.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the event action.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the event action was last updated, in ISO 8601 format.

" + } } }, - "ListOfRevisionEntry": { - "type": "list", - "member": { - "shape": "RevisionEntry" + "UpdateRevisionRequest":{ + "type":"structure", + "required":[ + "DataSetId", + "RevisionId" + ], + "members":{ + "Comment":{ + "shape":"__stringMin0Max16384", + "documentation":"

An optional comment about the revision.

" + }, + "DataSetId":{ + "shape":"__string", + "documentation":"

The unique identifier for a data set.

", + "location":"uri", + "locationName":"DataSetId" + }, + "Finalized":{ + "shape":"__boolean", + "documentation":"

Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products.

" + }, + "RevisionId":{ + "shape":"__string", + "documentation":"

The unique identifier for a revision.

", + "location":"uri", + "locationName":"RevisionId" + } } }, - "ListOf__string": { - "type": "list", - "member": { - "shape": "__string" + "UpdateRevisionResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN for the revision.

" + }, + "Comment":{ + "shape":"__stringMin0Max16384", + "documentation":"

An optional comment about the revision.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was created, in ISO 8601 format.

" + }, + "DataSetId":{ + "shape":"Id", + "documentation":"

The unique identifier for the data set associated with the data set revision.

" + }, + "Finalized":{ + "shape":"__boolean", + "documentation":"

To publish a revision to a data set in a product, the revision must first be finalized. Finalizing a revision tells AWS Data Exchange that changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products. Finalized revisions can be published through the AWS Data Exchange console or the AWS Marketplace Catalog API, using the StartChangeSet AWS Marketplace Catalog API action. When using the API, revisions are uniquely identified by their ARN.

" + }, + "Id":{ + "shape":"Id", + "documentation":"

The unique identifier for the revision.

" + }, + "SourceId":{ + "shape":"Id", + "documentation":"

The revision ID of the owned revision corresponding to the entitled revision being viewed. This parameter is returned when a revision owner is viewing the entitled copy of its owned revision.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was last updated, in ISO 8601 format.

" + }, + "RevocationComment":{ + "shape":"__stringMin10Max512", + "documentation":"

A required comment to inform subscribers of the reason their access to the revision was revoked.

" + }, + "Revoked":{ + "shape":"__boolean", + "documentation":"

A status indicating that subscribers' access to the revision was revoked.

" + }, + "RevokedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the revision was revoked, in ISO 8601 format.

" + } } }, - "MapOf__string": { - "type": "map", - "key": { - "shape": "__string" + "ValidationException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{ + "shape":"__string", + "documentation":"

The message that informs you about what was invalid about the request.

" + }, + "ExceptionCause":{ + "shape":"ExceptionCause", + "documentation":"

The unique identifier for the resource that couldn't be found.

" + } }, - "value": { - "shape": "__string" - } + "documentation":"

The request was invalid.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true }, - "__string": { - "type": "string" + "__boolean":{"type":"boolean"}, + "__double":{"type":"double"}, + "__doubleMin0":{"type":"double"}, + "__string":{"type":"string"}, + "__stringMin0Max16384":{ + "type":"string", + "max":16384, + "min":0 }, - "__stringMin0Max16384": { - "type": "string", - "min": 0, - "max": 16384 + "__stringMin10Max512":{ + "type":"string", + "max":512, + "min":10 }, - "__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093": { - "type": "string", - "min": 24, - "max": 24, - "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" - }, - "__stringMin10Max512": { - "type": "string", - "min": 10, - "max": 512 + "__stringMin24Max24PatternAZaZ094AZaZ092AZaZ093":{ + "type":"string", + "max":24, + "min":24, + "pattern":"(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?" } }, - "documentation": "

AWS Data Exchange is a service that makes it easy for AWS customers to exchange data in the cloud. You can use the AWS Data Exchange APIs to create, update, manage, and access file-based data set in the AWS Cloud.

As a subscriber, you can view and access the data sets that you have an entitlement to through a subscription. You can use the APIS to download or copy your entitled data sets to Amazon S3 for use across a variety of AWS analytics and machine learning services.

As a provider, you can create and manage your data sets that you would like to publish to a product. Being able to package and provide your data sets into products requires a few steps to determine eligibility. For more information, visit the AWS Data Exchange User Guide.

A data set is a collection of data that can be changed or updated over time. Data sets can be updated using revisions, which represent a new version or incremental change to a data set. A revision contains one or more assets. An asset in AWS Data Exchange is a piece of data that can be stored as an Amazon S3 object. The asset can be a structured data file, an image file, or some other data file. Jobs are asynchronous import or export operations used to create or copy assets.

" + "documentation":"

AWS Data Exchange is a service that makes it easy for AWS customers to exchange data in the cloud. You can use the AWS Data Exchange APIs to create, update, manage, and access file-based data set in the AWS Cloud.

As a subscriber, you can view and access the data sets that you have an entitlement to through a subscription. You can use the APIs to download or copy your entitled data sets to Amazon Simple Storage Service (Amazon S3) for use across a variety of AWS analytics and machine learning services.

As a provider, you can create and manage your data sets that you would like to publish to a product. Being able to package and provide your data sets into products requires a few steps to determine eligibility. For more information, visit the AWS Data Exchange User Guide.

A data set is a collection of data that can be changed or updated over time. Data sets can be updated using revisions, which represent a new version or incremental change to a data set. A revision contains one or more assets. An asset in AWS Data Exchange is a piece of data that can be stored as an Amazon S3 object, Redshift datashare, API Gateway API, AWS Lake Formation data permission, or Amazon S3 data access. The asset can be a structured data file, an image file, or some other data file. Jobs are asynchronous import or export operations used to create or copy assets.

" } diff --git a/botocore/data/dataexchange/2017-07-25/waiters-2.json b/botocore/data/dataexchange/2017-07-25/waiters-2.json new file mode 100644 index 00000000..13f60ee6 --- /dev/null +++ b/botocore/data/dataexchange/2017-07-25/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/botocore/data/datapipeline/2012-10-29/endpoint-rule-set-1.json b/botocore/data/datapipeline/2012-10-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..7208b2fd --- /dev/null +++ b/botocore/data/datapipeline/2012-10-29/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://datapipeline-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://datapipeline-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://datapipeline.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://datapipeline.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/datapipeline/2012-10-29/examples-1.json b/botocore/data/datapipeline/2012-10-29/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/datapipeline/2012-10-29/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/datasync/2018-11-09/endpoint-rule-set-1.json b/botocore/data/datasync/2018-11-09/endpoint-rule-set-1.json new file mode 100644 index 00000000..d3a4482d --- /dev/null +++ b/botocore/data/datasync/2018-11-09/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://datasync-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://datasync-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://datasync.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://datasync.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/datasync/2018-11-09/examples-1.json b/botocore/data/datasync/2018-11-09/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/datasync/2018-11-09/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/datasync/2018-11-09/service-2.json b/botocore/data/datasync/2018-11-09/service-2.json index cd3ab99e..0ca490d1 100644 --- a/botocore/data/datasync/2018-11-09/service-2.json +++ b/botocore/data/datasync/2018-11-09/service-2.json @@ -26,7 +26,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Cancels execution of a task.

When you cancel a task execution, the transfer of some files is abruptly interrupted. The contents of files that are transferred to the destination might be incomplete or inconsistent with the source files. However, if you start a new task execution on the same task and you allow the task execution to complete, file content on the destination is complete and consistent. This applies to other unexpected failures that interrupt a task execution. In all of these cases, DataSync successfully complete the transfer when you start the next task execution.

" + "documentation":"

Stops an DataSync task execution that's in progress. The transfer of some files are abruptly interrupted. File contents that're transferred to the destination might be incomplete or inconsistent with the source files.

However, if you start a new task execution using the same task and allow it to finish, file content on the destination will be complete and consistent. This applies to other unexpected failures that interrupt a task execution. In all of these cases, DataSync successfully completes the transfer when you start the next task execution.

" }, "CreateAgent":{ "name":"CreateAgent", @@ -40,7 +40,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Activates an DataSync agent that you have deployed on your host. The activation process associates your agent with your account. In the activation process, you specify information such as the Amazon Web Services Region that you want to activate the agent in. You activate the agent in the Amazon Web Services Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your tasks are created in this Amazon Web Services Region.

You can activate the agent in a VPC (virtual private cloud) or provide the agent access to a VPC endpoint so you can run tasks without going over the public internet.

You can use an agent for more than one location. If a task uses multiple agents, all of them need to have status AVAILABLE for the task to run. If you use multiple agents for a source location, the status of all the agents must be AVAILABLE for the task to run.

Agents are automatically updated by Amazon Web Services on a regular basis, using a mechanism that ensures minimal interruption to your tasks.

" + "documentation":"

Activates an DataSync agent that you have deployed in your storage environment. The activation process associates your agent with your account. In the activation process, you specify information such as the Amazon Web Services Region that you want to activate the agent in. You activate the agent in the Amazon Web Services Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your tasks are created in this Amazon Web Services Region.

You can activate the agent in a VPC (virtual private cloud) or provide the agent access to a VPC endpoint so you can run tasks without going over the public internet.

You can use an agent for more than one location. If a task uses multiple agents, all of them need to have status AVAILABLE for the task to run. If you use multiple agents for a source location, the status of all the agents must be AVAILABLE for the task to run.

Agents are automatically updated by Amazon Web Services on a regular basis, using a mechanism that ensures minimal interruption to your tasks.

" }, "CreateLocationEfs":{ "name":"CreateLocationEfs", @@ -54,7 +54,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Creates an endpoint for an Amazon EFS file system.

" + "documentation":"

Creates an endpoint for an Amazon EFS file system that DataSync can access for a transfer. For more information, see Creating a location for Amazon EFS.

" }, "CreateLocationFsxLustre":{ "name":"CreateLocationFsxLustre", @@ -70,6 +70,20 @@ ], "documentation":"

Creates an endpoint for an Amazon FSx for Lustre file system.

" }, + "CreateLocationFsxOntap":{ + "name":"CreateLocationFsxOntap", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLocationFsxOntapRequest"}, + "output":{"shape":"CreateLocationFsxOntapResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalException"} + ], + "documentation":"

Creates an endpoint for an Amazon FSx for NetApp ONTAP file system that DataSync can access for a transfer. For more information, see Creating a location for FSx for ONTAP.

" + }, "CreateLocationFsxOpenZfs":{ "name":"CreateLocationFsxOpenZfs", "http":{ @@ -82,7 +96,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Creates an endpoint for an Amazon FSx for OpenZFS file system.

" + "documentation":"

Creates an endpoint for an Amazon FSx for OpenZFS file system that DataSync can access for a transfer. For more information, see Creating a location for FSx for OpenZFS.

Request parameters related to SMB aren't supported with the CreateLocationFsxOpenZfs operation.

" }, "CreateLocationFsxWindows":{ "name":"CreateLocationFsxWindows", @@ -138,7 +152,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Creates an endpoint for a self-managed object storage bucket. For more information about self-managed object storage locations, see Creating a location for object storage.

" + "documentation":"

Creates an endpoint for an object storage system that DataSync can access for a transfer. For more information, see Creating a location for object storage.

" }, "CreateLocationS3":{ "name":"CreateLocationS3", @@ -152,7 +166,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Creates an endpoint for an Amazon S3 bucket.

For more information, see Create an Amazon S3 location in the DataSync User Guide.

" + "documentation":"

Creates an endpoint for an Amazon S3 bucket that DataSync can access for a transfer.

For more information, see Create an Amazon S3 location in the DataSync User Guide.

" }, "CreateLocationSmb":{ "name":"CreateLocationSmb", @@ -180,7 +194,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Creates a task.

A task includes a source location and a destination location, and a configuration that specifies how data is transferred. A task always transfers data from the source location to the destination location. The configuration specifies options such as task scheduling, bandwidth limits, etc. A task is the complete definition of a data transfer.

When you create a task that transfers data between Amazon Web Services services in different Amazon Web Services Regions, one of the two locations that you specify must reside in the Region where DataSync is being used. The other location must be specified in a different Region.

You can transfer data between commercial Amazon Web Services Regions except for China, or between Amazon Web Services GovCloud (US) Regions.

When you use DataSync to copy files or objects between Amazon Web Services Regions, you pay for data transfer between Regions. This is billed as data transfer OUT from your source Region to your destination Region. For more information, see Data Transfer pricing.

" + "documentation":"

Configures a task, which defines where and how DataSync transfers your data.

A task includes a source location, a destination location, and the preferences for how and when you want to transfer your data (such as bandwidth limits, scheduling, among other options).

When you create a task that transfers data between Amazon Web Services services in different Amazon Web Services Regions, one of your locations must reside in the Region where you're using DataSync.

For more information, see the following topics:

" }, "DeleteAgent":{ "name":"DeleteAgent", @@ -250,7 +264,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Returns metadata, such as the path information about an Amazon EFS location.

" + "documentation":"

Returns metadata about your DataSync location for an Amazon EFS file system.

" }, "DescribeLocationFsxLustre":{ "name":"DescribeLocationFsxLustre", @@ -264,7 +278,21 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Returns metadata about an Amazon FSx for Lustre location, such as information about its path.

" + "documentation":"

Provides details about how an DataSync location for an Amazon FSx for Lustre file system is configured.

" + }, + "DescribeLocationFsxOntap":{ + "name":"DescribeLocationFsxOntap", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLocationFsxOntapRequest"}, + "output":{"shape":"DescribeLocationFsxOntapResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalException"} + ], + "documentation":"

Provides details about how an DataSync location for an Amazon FSx for NetApp ONTAP file system is configured.

If your location uses SMB, the DescribeLocationFsxOntap operation doesn't actually return a Password.

" }, "DescribeLocationFsxOpenZfs":{ "name":"DescribeLocationFsxOpenZfs", @@ -278,7 +306,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Returns metadata about an Amazon FSx for OpenZFS location, such as information about its path.

" + "documentation":"

Provides details about how an DataSync location for an Amazon FSx for OpenZFS file system is configured.

Response elements related to SMB aren't supported with the DescribeLocationFsxOpenZfs operation.

" }, "DescribeLocationFsxWindows":{ "name":"DescribeLocationFsxWindows", @@ -334,7 +362,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Returns metadata about a self-managed object storage server location. For more information about self-managed object storage locations, see Creating a location for object storage.

" + "documentation":"

Returns metadata about your DataSync location for an object storage system.

" }, "DescribeLocationS3":{ "name":"DescribeLocationS3", @@ -460,7 +488,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Returns a list of all the tasks.

" + "documentation":"

Returns a list of the DataSync tasks you created.

" }, "StartTaskExecution":{ "name":"StartTaskExecution", @@ -558,7 +586,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalException"} ], - "documentation":"

Updates some of the parameters of a previously created location for self-managed object storage server access. For information about creating a self-managed object storage location, see Creating a location for object storage.

" + "documentation":"

Updates some parameters of an existing object storage location that DataSync accesses for a transfer. For information about creating a self-managed object storage location, see Creating a location for object storage.

" }, "UpdateLocationSmb":{ "name":"UpdateLocationSmb", @@ -666,7 +694,7 @@ "members":{ "TaskExecutionArn":{ "shape":"TaskExecutionArn", - "documentation":"

The Amazon Resource Name (ARN) of the task execution to cancel.

" + "documentation":"

The Amazon Resource Name (ARN) of the task execution to stop.

" } }, "documentation":"

CancelTaskExecutionRequest

" @@ -726,19 +754,31 @@ "members":{ "Subdirectory":{ "shape":"EfsSubdirectory", - "documentation":"

A subdirectory in the location’s path. This subdirectory in the EFS file system is used to read data from the EFS source location or write data to the EFS destination. By default, DataSync uses the root directory.

Subdirectory must be specified with forward slashes. For example, /path/to/folder.

" + "documentation":"

Specifies a mount path for your Amazon EFS file system. This is where DataSync reads or writes data (depending on if this is a source or destination location). By default, DataSync uses the root directory, but you can also include subdirectories.

You must specify a value with forward slashes (for example, /path/to/folder).

" }, "EfsFilesystemArn":{ "shape":"EfsFilesystemArn", - "documentation":"

The Amazon Resource Name (ARN) for the Amazon EFS file system.

" + "documentation":"

Specifies the ARN for the Amazon EFS file system.

" }, "Ec2Config":{ "shape":"Ec2Config", - "documentation":"

The subnet and security group that the Amazon EFS file system uses. The security group that you provide needs to be able to communicate with the security group on the mount target in the subnet specified.

The exact relationship between security group M (of the mount target) and security group S (which you provide for DataSync to use at this stage) is as follows:

  • Security group M (which you associate with the mount target) must allow inbound access for the Transmission Control Protocol (TCP) on the NFS port (2049) from security group S. You can enable inbound connections either by IP address (CIDR range) or security group.

  • Security group S (provided to DataSync to access EFS) should have a rule that enables outbound connections to the NFS port on one of the file system’s mount targets. You can enable outbound connections either by IP address (CIDR range) or security group.

    For information about security groups and mount targets, see Security Groups for Amazon EC2 Instances and Mount Targets in the Amazon EFS User Guide.

" + "documentation":"

Specifies the subnet and security groups DataSync uses to access your Amazon EFS file system.

" }, "Tags":{ "shape":"InputTagList", - "documentation":"

The key-value pair that represents a tag that you want to add to the resource. The value can be an empty string. This value helps you manage, filter, and search for your resources. We recommend that you create a name tag for your location.

" + "documentation":"

Specifies the key-value pair that represents a tag that you want to add to the resource. The value can be an empty string. This value helps you manage, filter, and search for your resources. We recommend that you create a name tag for your location.

" + }, + "AccessPointArn":{ + "shape":"EfsAccessPointArn", + "documentation":"

Specifies the Amazon Resource Name (ARN) of the access point that DataSync uses to access the Amazon EFS file system.

" + }, + "FileSystemAccessRoleArn":{ + "shape":"IamRoleArn", + "documentation":"

Specifies an Identity and Access Management (IAM) role that DataSync assumes when mounting the Amazon EFS file system.

" + }, + "InTransitEncryption":{ + "shape":"EfsInTransitEncryption", + "documentation":"

Specifies whether you want DataSync to use Transport Layer Security (TLS) 1.2 encryption when it copies data to or from the Amazon EFS file system.

If you specify an access point using AccessPointArn or an IAM role using FileSystemAccessRoleArn, you must set this parameter to TLS1_2.

" } }, "documentation":"

CreateLocationEfsRequest

" @@ -748,7 +788,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon EFS file system location that is created.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon EFS file system location that you create.

" } }, "documentation":"

CreateLocationEfs

" @@ -787,6 +827,42 @@ } } }, + "CreateLocationFsxOntapRequest":{ + "type":"structure", + "required":[ + "Protocol", + "SecurityGroupArns", + "StorageVirtualMachineArn" + ], + "members":{ + "Protocol":{"shape":"FsxProtocol"}, + "SecurityGroupArns":{ + "shape":"Ec2SecurityGroupArnList", + "documentation":"

Specifies the Amazon EC2 security groups that provide access to your file system's preferred subnet.

The security groups must allow outbound traffic on the following ports (depending on the protocol you use):

  • Network File System (NFS): TCP ports 111, 635, and 2049

  • Server Message Block (SMB): TCP port 445

Your file system's security groups must also allow inbound traffic on the same ports.

" + }, + "StorageVirtualMachineArn":{ + "shape":"StorageVirtualMachineArn", + "documentation":"

Specifies the ARN of the storage virtual machine (SVM) on your file system where you're copying data to or from.

" + }, + "Subdirectory":{ + "shape":"FsxOntapSubdirectory", + "documentation":"

Specifies the junction path (also known as a mount point) in the SVM volume where you're copying data to or from (for example, /vol1).

Don't specify a junction path in the SVM's root volume. For more information, see Managing FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP User Guide.

" + }, + "Tags":{ + "shape":"InputTagList", + "documentation":"

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your location.

" + } + } + }, + "CreateLocationFsxOntapResponse":{ + "type":"structure", + "members":{ + "LocationArn":{ + "shape":"LocationArn", + "documentation":"

Specifies the ARN of the FSx for ONTAP file system location that you create.

" + } + } + }, "CreateLocationFsxOpenZfsRequest":{ "type":"structure", "required":[ @@ -837,31 +913,31 @@ "members":{ "Subdirectory":{ "shape":"FsxWindowsSubdirectory", - "documentation":"

A subdirectory in the location's path. This subdirectory in the Amazon FSx for Windows File Server file system is used to read data from the Amazon FSx for Windows File Server source location or write data to the FSx for Windows File Server destination.

" + "documentation":"

Specifies a mount path for your file system using forward slashes. This is where DataSync reads or writes data (depending on if this is a source or destination location).

" }, "FsxFilesystemArn":{ "shape":"FsxFilesystemArn", - "documentation":"

The Amazon Resource Name (ARN) for the FSx for Windows File Server file system.

" + "documentation":"

Specifies the Amazon Resource Name (ARN) for the FSx for Windows File Server file system.

" }, "SecurityGroupArns":{ "shape":"Ec2SecurityGroupArnList", - "documentation":"

The ARNs of the security groups that are used to configure the FSx for Windows File Server file system.

" + "documentation":"

Specifies the ARNs of the security groups that provide access to your file system's preferred subnet.

If you choose a security group that doesn't allow connections from within itself, do one of the following:

  • Configure the security group to allow it to communicate within itself.

  • Choose a different security group that can communicate with the mount target's security group.

" }, "Tags":{ "shape":"InputTagList", - "documentation":"

The key-value pair that represents a tag that you want to add to the resource. The value can be an empty string. This value helps you manage, filter, and search for your resources. We recommend that you create a name tag for your location.

" + "documentation":"

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your location.

" }, "User":{ "shape":"SmbUser", - "documentation":"

The user who has the permissions to access files and folders in the FSx for Windows File Server file system.

For information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see user.

" + "documentation":"

Specifies the user who has the permissions to access files and folders in the file system.

For information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see user.

" }, "Domain":{ "shape":"SmbDomain", - "documentation":"

The name of the Windows domain that the FSx for Windows File Server belongs to.

" + "documentation":"

Specifies the name of the Windows domain that the FSx for Windows File Server belongs to.

" }, "Password":{ "shape":"SmbPassword", - "documentation":"

The password of the user who has the permissions to access files and folders in the FSx for Windows File Server file system.

" + "documentation":"

Specifies the password of the user who has the permissions to access files and folders in the file system.

" } } }, @@ -870,7 +946,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

The Amazon Resource Name (ARN) of the FSx for Windows File Server file system location you created.

" + "documentation":"

The ARN of the FSx for Windows File Server file system location you created.

" } } }, @@ -996,39 +1072,43 @@ "members":{ "ServerHostname":{ "shape":"ServerHostname", - "documentation":"

The name of the self-managed object storage server. This value is the IP address or Domain Name Service (DNS) name of the object storage server. An agent uses this hostname to mount the object storage server in a network.

" + "documentation":"

Specifies the domain name or IP address of the object storage server. A DataSync agent uses this hostname to mount the object storage server in a network.

" }, "ServerPort":{ "shape":"ObjectStorageServerPort", - "documentation":"

The port that your self-managed object storage server accepts inbound network traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443 (HTTPS). You can specify a custom port if your self-managed object storage server requires one.

" + "documentation":"

Specifies the port that your object storage server accepts inbound network traffic on (for example, port 443).

" }, "ServerProtocol":{ "shape":"ObjectStorageServerProtocol", - "documentation":"

The protocol that the object storage server uses to communicate. Valid values are HTTP or HTTPS.

" + "documentation":"

Specifies the protocol that your object storage server uses to communicate.

" }, "Subdirectory":{ "shape":"S3Subdirectory", - "documentation":"

The subdirectory in the self-managed object storage server that is used to read data from.

" + "documentation":"

Specifies the object prefix for your object storage server. If this is a source location, DataSync only copies objects with this prefix. If this is a destination location, DataSync writes all objects with this prefix.

" }, "BucketName":{ "shape":"ObjectStorageBucketName", - "documentation":"

The bucket on the self-managed object storage server that is used to read data from.

" + "documentation":"

Specifies the name of the object storage bucket involved in the transfer.

" }, "AccessKey":{ "shape":"ObjectStorageAccessKey", - "documentation":"

Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.

" + "documentation":"

Specifies the access key (for example, a user name) if credentials are required to authenticate with the object storage server.

" }, "SecretKey":{ "shape":"ObjectStorageSecretKey", - "documentation":"

Optional. The secret key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.

" + "documentation":"

Specifies the secret key (for example, a password) if credentials are required to authenticate with the object storage server.

" }, "AgentArns":{ "shape":"AgentArnList", - "documentation":"

The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.

" + "documentation":"

Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can securely connect with your location.

" }, "Tags":{ "shape":"InputTagList", - "documentation":"

The key-value pair that represents the tag that you want to add to the location. The value can be an empty string. We recommend using tags to name your resources.

" + "documentation":"

Specifies the key-value pair that represents a tag that you want to add to the resource. Tags can help you manage, filter, and search for your resources. We recommend creating a name tag for your location.

" + }, + "ServerCertificate":{ + "shape":"ObjectStorageCertificate", + "documentation":"

Specifies a certificate to authenticate with an object storage system that uses a private or self-signed certificate authority (CA). You must specify a Base64-encoded .pem file (for example, file:///home/user/.ssh/storage_sys_certificate.pem). The certificate can be up to 32768 bytes (before Base64 encoding).

To use this parameter, configure ServerProtocol to HTTPS.

" } }, "documentation":"

CreateLocationObjectStorageRequest

" @@ -1038,7 +1118,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.

" + "documentation":"

Specifies the ARN of the object storage system location that you create.

" } }, "documentation":"

CreateLocationObjectStorageResponse

" @@ -1104,7 +1184,7 @@ }, "User":{ "shape":"SmbUser", - "documentation":"

The user who can mount the share, has the permissions to access files and folders in the SMB share.

For information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see user.

" + "documentation":"

The user who can mount the share, has the permissions to access files and folders in the SMB share.

For information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see the User setting for SMB locations.

" }, "Domain":{ "shape":"SmbDomain", @@ -1294,7 +1374,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

The Amazon Resource Name (ARN) of the EFS location to describe.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon EFS file system location that you want information about.

" } }, "documentation":"

DescribeLocationEfsRequest

" @@ -1304,16 +1384,28 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

The Amazon Resource Name (ARN) of the EFS location that was described.

" + "documentation":"

The ARN of the Amazon EFS file system location.

" }, "LocationUri":{ "shape":"LocationUri", - "documentation":"

The URL of the EFS location that was described.

" + "documentation":"

The URL of the Amazon EFS file system location.

" }, "Ec2Config":{"shape":"Ec2Config"}, "CreationTime":{ "shape":"Time", - "documentation":"

The time that the EFS location was created.

" + "documentation":"

The time that the location was created.

" + }, + "AccessPointArn":{ + "shape":"EfsAccessPointArn", + "documentation":"

The ARN of the access point that DataSync uses to access the Amazon EFS file system.

" + }, + "FileSystemAccessRoleArn":{ + "shape":"IamRoleArn", + "documentation":"

The Identity and Access Management (IAM) role that DataSync assumes when mounting the Amazon EFS file system.

" + }, + "InTransitEncryption":{ + "shape":"EfsInTransitEncryption", + "documentation":"

Describes whether DataSync uses Transport Layer Security (TLS) encryption when copying data to or from the Amazon EFS file system.

" } }, "documentation":"

DescribeLocationEfsResponse

" @@ -1349,6 +1441,46 @@ } } }, + "DescribeLocationFsxOntapRequest":{ + "type":"structure", + "required":["LocationArn"], + "members":{ + "LocationArn":{ + "shape":"LocationArn", + "documentation":"

Specifies the Amazon Resource Name (ARN) of the FSx for ONTAP file system location that you want information about.

" + } + } + }, + "DescribeLocationFsxOntapResponse":{ + "type":"structure", + "members":{ + "CreationTime":{ + "shape":"Time", + "documentation":"

The time that the location was created.

" + }, + "LocationArn":{ + "shape":"LocationArn", + "documentation":"

The ARN of the FSx for ONTAP file system location.

" + }, + "LocationUri":{ + "shape":"LocationUri", + "documentation":"

The uniform resource identifier (URI) of the FSx for ONTAP file system location.

" + }, + "Protocol":{"shape":"FsxProtocol"}, + "SecurityGroupArns":{ + "shape":"Ec2SecurityGroupArnList", + "documentation":"

The security groups that DataSync uses to access your FSx for ONTAP file system.

" + }, + "StorageVirtualMachineArn":{ + "shape":"StorageVirtualMachineArn", + "documentation":"

The ARN of the storage virtual machine (SVM) on your FSx for ONTAP file system where you're copying data to or from.

" + }, + "FsxFilesystemArn":{ + "shape":"FsxFilesystemArn", + "documentation":"

The ARN of the FSx for ONTAP file system.

" + } + } + }, "DescribeLocationFsxOpenZfsRequest":{ "type":"structure", "required":["LocationArn"], @@ -1526,7 +1658,7 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

The Amazon Resource Name (ARN) of the self-managed object storage server location that was described.

" + "documentation":"

The Amazon Resource Name (ARN) of the object storage system location that you want information about.

" } }, "documentation":"

DescribeLocationObjectStorageRequest

" @@ -1536,31 +1668,35 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

The Amazon Resource Name (ARN) of the self-managed object storage server location to describe.

" + "documentation":"

The ARN of the object storage system location.

" }, "LocationUri":{ "shape":"LocationUri", - "documentation":"

The URL of the source self-managed object storage server location that was described.

" + "documentation":"

The URL of the object storage system location.

" }, "AccessKey":{ "shape":"ObjectStorageAccessKey", - "documentation":"

Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.

" + "documentation":"

The access key (for example, a user name) required to authenticate with the object storage system.

" }, "ServerPort":{ "shape":"ObjectStorageServerPort", - "documentation":"

The port that your self-managed object storage server accepts inbound network traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443 (HTTPS).

" + "documentation":"

The port that your object storage server accepts inbound network traffic on (for example, port 443).

" }, "ServerProtocol":{ "shape":"ObjectStorageServerProtocol", - "documentation":"

The protocol that the object storage server uses to communicate. Valid values are HTTP or HTTPS.

" + "documentation":"

The protocol that your object storage system uses to communicate.

" }, "AgentArns":{ "shape":"AgentArnList", - "documentation":"

The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.

" + "documentation":"

The ARNs of the DataSync agents that can securely connect with your location.

" }, "CreationTime":{ "shape":"Time", - "documentation":"

The time that the self-managed object storage server agent was created.

" + "documentation":"

The time that the location was created.

" + }, + "ServerCertificate":{ + "shape":"ObjectStorageCertificate", + "documentation":"

The self-signed certificate that DataSync uses to securely authenticate with your object storage system.

" } }, "documentation":"

DescribeLocationObjectStorageResponse

" @@ -1673,11 +1809,11 @@ "Options":{"shape":"Options"}, "Excludes":{ "shape":"FilterList", - "documentation":"

A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by \"|\" (that is, a pipe), for example: \"/folder1|/folder2\"

" + "documentation":"

A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by \"|\" (that is, a pipe), for example: \"/folder1|/folder2\"

" }, "Includes":{ "shape":"FilterList", - "documentation":"

A list of filter rules that determines which files to include when running a task. The list should contain a single filter string that consists of the patterns to include. The patterns are delimited by \"|\" (that is, a pipe), for example: \"/folder1|/folder2\"

" + "documentation":"

A list of filter rules that determines which files to include when running a task. The list should contain a single filter string that consists of the patterns to include. The patterns are delimited by \"|\" (that is, a pipe), for example: \"/folder1|/folder2\"

" }, "StartTime":{ "shape":"Time", @@ -1706,6 +1842,10 @@ "Result":{ "shape":"TaskExecutionResultDetail", "documentation":"

The result of the task execution.

" + }, + "BytesCompressed":{ + "shape":"long", + "documentation":"

The physical number of bytes transferred over the network after compression was applied. In most cases, this number is less than BytesTransferred.

" } }, "documentation":"

DescribeTaskExecutionResponse

" @@ -1808,14 +1948,14 @@ "members":{ "SubnetArn":{ "shape":"Ec2SubnetArn", - "documentation":"

The ARN of the subnet that DataSync uses to access the target EFS file system.

" + "documentation":"

Specifies the ARN of a subnet where DataSync creates the network interfaces for managing traffic during your transfer.

The subnet must be located:

  • In the same virtual private cloud (VPC) as the Amazon EFS file system.

  • In the same Availability Zone as at least one mount target for the Amazon EFS file system.

You don't need to specify a subnet that includes a file system mount target.

" }, "SecurityGroupArns":{ "shape":"Ec2SecurityGroupArnList", - "documentation":"

The Amazon Resource Names (ARNs) of the security groups that are configured for the Amazon EC2 resource.

" + "documentation":"

Specifies the Amazon Resource Names (ARNs) of the security groups associated with an Amazon EFS file system's mount target.

" } }, - "documentation":"

The subnet that DataSync uses to access target EFS file system. The subnet must have at least one mount target for that file system. The security group that you provide needs to be able to communicate with the security group on the mount target in the subnet specified.

" + "documentation":"

The subnet and security groups that DataSync uses to access your Amazon EFS file system.

" }, "Ec2SecurityGroupArn":{ "type":"string", @@ -1833,11 +1973,23 @@ "max":128, "pattern":"^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):ec2:[a-z\\-0-9]*:[0-9]{12}:subnet/.*$" }, + "EfsAccessPointArn":{ + "type":"string", + "max":128, + "pattern":"^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):elasticfilesystem:[a-z\\-0-9]+:[0-9]{12}:access-point/fsap-[0-9a-f]{8,40}$" + }, "EfsFilesystemArn":{ "type":"string", "max":128, "pattern":"^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):elasticfilesystem:[a-z\\-0-9]*:[0-9]{12}:file-system/fs-.*$" }, + "EfsInTransitEncryption":{ + "type":"string", + "enum":[ + "NONE", + "TLS1_2" + ] + }, "EfsSubdirectory":{ "type":"string", "max":4096, @@ -1908,6 +2060,11 @@ "max":4096, "pattern":"^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$" }, + "FsxOntapSubdirectory":{ + "type":"string", + "max":255, + "pattern":"^[^\\u0000\\u0085\\u2028\\u2029\\r\\n]{1,255}$" + }, "FsxOpenZfsSubdirectory":{ "type":"string", "max":4096, @@ -1918,17 +2075,44 @@ "members":{ "NFS":{ "shape":"FsxProtocolNfs", - "documentation":"

Represents the Network File System (NFS) protocol that DataSync uses to access your FSx for OpenZFS file system.

" + "documentation":"

Specifies the Network File System (NFS) protocol configuration that DataSync uses to access your FSx for OpenZFS file system or FSx for ONTAP file system's storage virtual machine (SVM).

" + }, + "SMB":{ + "shape":"FsxProtocolSmb", + "documentation":"

Specifies the Server Message Block (SMB) protocol configuration that DataSync uses to access your FSx for ONTAP file system's SVM.

" } }, - "documentation":"

Represents the protocol that DataSync uses to access your Amazon FSx for OpenZFS file system.

" + "documentation":"

Specifies the data transfer protocol that DataSync uses to access your Amazon FSx file system.

" }, "FsxProtocolNfs":{ "type":"structure", "members":{ "MountOptions":{"shape":"NfsMountOptions"} }, - "documentation":"

Represents the Network File System (NFS) protocol that DataSync uses to access your Amazon FSx for OpenZFS file system.

" + "documentation":"

Specifies the Network File System (NFS) protocol configuration that DataSync uses to access your Amazon FSx for OpenZFS or Amazon FSx for NetApp ONTAP file system.

" + }, + "FsxProtocolSmb":{ + "type":"structure", + "required":[ + "Password", + "User" + ], + "members":{ + "Domain":{ + "shape":"SmbDomain", + "documentation":"

Specifies the fully qualified domain name (FQDN) of the Microsoft Active Directory that your storage virtual machine (SVM) belongs to.

" + }, + "MountOptions":{"shape":"SmbMountOptions"}, + "Password":{ + "shape":"SmbPassword", + "documentation":"

Specifies the password of a user who has permission to access your SVM.

" + }, + "User":{ + "shape":"SmbUser", + "documentation":"

Specifies a user name that can mount the location and access the files, folders, and metadata that you need in the SVM.

If you provide a user in your Active Directory, note the following:

  • If you're using Directory Service for Microsoft Active Directory, the user must be a member of the Amazon Web Services Delegated FSx Administrators group.

  • If you're using a self-managed Active Directory, the user must be a member of either the Domain Admins group or a custom group that you specified for file system administration when you created your file system.

Make sure that the user has the permissions it needs to copy the data you want:

  • SE_TCB_NAME: Required to set object ownership and file metadata. With this privilege, you also can copy NTFS discretionary access lists (DACLs).

  • SE_SECURITY_NAME: May be needed to copy NTFS system access control lists (SACLs). This operation specifically requires the Windows privilege, which is granted to members of the Domain Admins group. If you configure your task to copy SACLs, make sure that the user has the required privileges. For information about copying SACLs, see Ownership and permissions-related options.

" + } + }, + "documentation":"

Specifies the Server Message Block (SMB) protocol configuration that DataSync uses to access your Amazon FSx for NetApp ONTAP file system. For more information, see Accessing FSx for ONTAP file systems.

" }, "FsxWindowsSubdirectory":{ "type":"string", @@ -2258,10 +2442,10 @@ }, "Operator":{ "shape":"Operator", - "documentation":"

The operator that is used to compare filter values (for example, Equals or Contains). For more about API filtering operators, see API filters for ListTasks and ListLocations.

" + "documentation":"

The operator that is used to compare filter values (for example, Equals or Contains).

" } }, - "documentation":"

You can use API filters to narrow down the list of resources returned by ListLocations. For example, to retrieve all your Amazon S3 locations, you can use ListLocations with filter name LocationType S3 and Operator Equals.

" + "documentation":"

Narrow down the list of resources returned by ListLocations. For example, to see all your Amazon S3 locations, create a filter using \"Name\": \"LocationType\", \"Operator\": \"Equals\", and \"Values\": \"S3\".

For more information, see filtering resources.

" }, "LocationFilterName":{ "type":"string", @@ -2295,8 +2479,8 @@ }, "LocationUri":{ "type":"string", - "max":4356, - "pattern":"^(efs|nfs|s3|smb|hdfs|fsx[a-z0-9]+)://[a-zA-Z0-9.:/\\-]+$" + "max":4360, + "pattern":"^(efs|nfs|s3|smb|hdfs|fsx[a-z0-9-]+)://[a-zA-Z0-9.:/\\-]+$" }, "LogGroupArn":{ "type":"string", @@ -2338,10 +2522,10 @@ "members":{ "Version":{ "shape":"NfsVersion", - "documentation":"

The specific NFS version that you want DataSync to use to mount your NFS share. If the server refuses to use the version specified, the sync will fail. If you don't specify a version, DataSync defaults to AUTOMATIC. That is, DataSync automatically selects a version based on negotiation with the NFS server.

You can specify the following NFS versions:

  • NFSv3 - stateless protocol version that allows for asynchronous writes on the server.

  • NFSv4.0 - stateful, firewall-friendly protocol version that supports delegations and pseudo file systems.

  • NFSv4.1 - stateful protocol version that supports sessions, directory delegations, and parallel data processing. Version 4.1 also includes all features available in version 4.0.

" + "documentation":"

Specifies the NFS version that you want DataSync to use when mounting your NFS share. If the server refuses to use the version specified, the task fails.

You can specify the following options:

  • AUTOMATIC (default): DataSync chooses NFS version 4.1.

  • NFS3: Stateless protocol version that allows for asynchronous writes on the server.

  • NFSv4_0: Stateful, firewall-friendly protocol version that supports delegations and pseudo file systems.

  • NFSv4_1: Stateful protocol version that supports sessions, directory delegations, and parallel data processing. NFS version 4.1 also includes all features available in version 4.0.

DataSync currently only supports NFS version 3 with Amazon FSx for NetApp ONTAP locations.

" } }, - "documentation":"

Represents the mount options that are available for DataSync to access an NFS location.

" + "documentation":"

Specifies how DataSync can access a location using the NFS protocol.

" }, "NfsSubdirectory":{ "type":"string", @@ -2369,6 +2553,10 @@ "min":3, "pattern":"^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\$\\p{Zs}]+$" }, + "ObjectStorageCertificate":{ + "type":"blob", + "max":32768 + }, "ObjectStorageSecretKey":{ "type":"string", "max":200, @@ -2427,7 +2615,7 @@ "members":{ "VerifyMode":{ "shape":"VerifyMode", - "documentation":"

A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. For more information, see Configure task settings.

Default value: POINT_IN_TIME_CONSISTENT.

ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files that were transferred.

POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at the end of the transfer to verify that source and destination are fully synchronized. This option isn't supported when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes.

NONE: No additional verification is done at the end of the transfer, but all data transmissions are integrity-checked with checksum verification during the transfer.

" + "documentation":"

A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. For more information, see Configure task settings.

Default value: POINT_IN_TIME_CONSISTENT

ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files that were transferred.

POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at the end of the transfer to verify that source and destination are fully synchronized. This option isn't supported when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes.

NONE: No additional verification is done at the end of the transfer, but all data transmissions are integrity-checked with checksum verification during the transfer.

" }, "OverwriteMode":{ "shape":"OverwriteMode", @@ -2435,31 +2623,31 @@ }, "Atime":{ "shape":"Atime", - "documentation":"

A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to). If you set Atime to BEST_EFFORT, DataSync attempts to preserve the original Atime attribute on all source files (that is, the version before the PREPARING phase). However, Atime's behavior is not fully standard across platforms, so DataSync can only do this on a best-effort basis.

Default value: BEST_EFFORT.

BEST_EFFORT: Attempt to preserve the per-file Atime value (recommended).

NONE: Ignore Atime.

If Atime is set to BEST_EFFORT, Mtime must be set to PRESERVE.

If Atime is set to NONE, Mtime must also be NONE.

" + "documentation":"

A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to). If you set Atime to BEST_EFFORT, DataSync attempts to preserve the original Atime attribute on all source files (that is, the version before the PREPARING phase). However, Atime's behavior is not fully standard across platforms, so DataSync can only do this on a best-effort basis.

Default value: BEST_EFFORT

BEST_EFFORT: Attempt to preserve the per-file Atime value (recommended).

NONE: Ignore Atime.

If Atime is set to BEST_EFFORT, Mtime must be set to PRESERVE.

If Atime is set to NONE, Mtime must also be NONE.

" }, "Mtime":{ "shape":"Mtime", - "documentation":"

A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase. This option is required for cases when you need to run the same task more than one time.

Default Value: PRESERVE

PRESERVE: Preserve original Mtime (recommended)

NONE: Ignore Mtime.

If Mtime is set to PRESERVE, Atime must be set to BEST_EFFORT.

If Mtime is set to NONE, Atime must also be set to NONE.

" + "documentation":"

A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase. This option is required for cases when you need to run the same task more than one time.

Default Value: PRESERVE

PRESERVE: Preserve original Mtime (recommended)

NONE: Ignore Mtime.

If Mtime is set to PRESERVE, Atime must be set to BEST_EFFORT.

If Mtime is set to NONE, Atime must also be set to NONE.

" }, "Uid":{ "shape":"Uid", - "documentation":"

The POSIX user ID (UID) of the file's owner. This option should only be set for NFS, EFS, and S3 locations. To learn more about what metadata is copied by DataSync, see Metadata Copied by DataSync.

Default value: INT_VALUE. This preserves the integer value of the ID.

INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended).

NONE: Ignore UID and GID.

" + "documentation":"

The POSIX user ID (UID) of the file's owner.

For more information, see Metadata copied by DataSync.

Default value: INT_VALUE. This preserves the integer value of the ID.

INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended).

NONE: Ignore UID and GID.

" }, "Gid":{ "shape":"Gid", - "documentation":"

The POSIX group ID (GID) of the file's owners. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see Metadata Copied by DataSync.

Default value: INT_VALUE. This preserves the integer value of the ID.

INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended).

NONE: Ignore UID and GID.

" + "documentation":"

The POSIX group ID (GID) of the file's owners.

For more information, see Metadata copied by DataSync.

Default value: INT_VALUE. This preserves the integer value of the ID.

INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended).

NONE: Ignore UID and GID.

" }, "PreserveDeletedFiles":{ "shape":"PreserveDeletedFiles", - "documentation":"

A value that specifies whether files in the destination that don't exist in the source file system should be preserved. This option can affect your storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync in the DataSync User Guide.

Default value: PRESERVE.

PRESERVE: Ignore such destination files (recommended).

REMOVE: Delete destination files that aren’t present in the source.

" + "documentation":"

A value that specifies whether files in the destination that don't exist in the source file system should be preserved. This option can affect your storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync in the DataSync User Guide.

Default value: PRESERVE

PRESERVE: Ignore such destination files (recommended).

REMOVE: Delete destination files that aren’t present in the source.

" }, "PreserveDevices":{ "shape":"PreserveDevices", - "documentation":"

A value that determines whether DataSync should preserve the metadata of block and character devices in the source file system, and re-create the files with that device name and metadata on the destination. DataSync does not copy the contents of such devices, only the name and metadata.

DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end-of-file (EOF) marker.

Default value: NONE.

NONE: Ignore special devices (recommended).

PRESERVE: Preserve character and block device metadata. This option isn't currently supported for Amazon EFS.

" + "documentation":"

A value that determines whether DataSync should preserve the metadata of block and character devices in the source file system, and re-create the files with that device name and metadata on the destination. DataSync does not copy the contents of such devices, only the name and metadata.

DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end-of-file (EOF) marker.

Default value: NONE

NONE: Ignore special devices (recommended).

PRESERVE: Preserve character and block device metadata. This option isn't currently supported for Amazon EFS.

" }, "PosixPermissions":{ "shape":"PosixPermissions", - "documentation":"

A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see Metadata Copied by DataSync.

Default value: PRESERVE.

PRESERVE: Preserve POSIX-style permissions (recommended).

NONE: Ignore permissions.

DataSync can preserve extant permissions of a source location.

" + "documentation":"

A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.

For more information, see Metadata copied by DataSync.

Default value: PRESERVE

PRESERVE: Preserve POSIX-style permissions (recommended).

NONE: Ignore permissions.

DataSync can preserve extant permissions of a source location.

" }, "BytesPerSecond":{ "shape":"BytesPerSecond", @@ -2475,11 +2663,11 @@ }, "TransferMode":{ "shape":"TransferMode", - "documentation":"

A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.

CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location.

ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.

" + "documentation":"

A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.

CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location.

ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.

" }, "SecurityDescriptorCopyFlags":{ "shape":"SmbSecurityDescriptorCopyFlags", - "documentation":"

A value that determines which components of the SMB security descriptor are copied from source to destination objects.

This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations. For more information about how DataSync handles metadata, see How DataSync Handles Metadata and Special Files.

Default value: OWNER_DACL.

OWNER_DACL: For each copied object, DataSync copies the following metadata:

  • Object owner.

  • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

When choosing this option, DataSync does NOT copy the NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.

OWNER_DACL_SACL: For each copied object, DataSync copies the following metadata:

  • Object owner.

  • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

  • NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.

Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see user.

NONE: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration.

" + "documentation":"

A value that determines which components of the SMB security descriptor are copied from source to destination objects.

This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations, or between two Amazon FSx for Windows File Server locations. For more information about how DataSync handles metadata, see How DataSync Handles Metadata and Special Files.

Default value: OWNER_DACL

OWNER_DACL: For each copied object, DataSync copies the following metadata:

  • Object owner.

  • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

When choosing this option, DataSync does NOT copy the NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.

OWNER_DACL_SACL: For each copied object, DataSync copies the following metadata:

  • Object owner.

  • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

  • NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.

Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see user.

NONE: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration.

" }, "ObjectTags":{ "shape":"ObjectTags", @@ -2624,17 +2812,17 @@ "SmbDomain":{ "type":"string", "max":253, - "pattern":"^([A-Za-z0-9]+[A-Za-z0-9-.]*)*[A-Za-z0-9-]*[A-Za-z0-9]$" + "pattern":"^[A-Za-z0-9]((\\.|-+)?[A-Za-z0-9]){0,252}$" }, "SmbMountOptions":{ "type":"structure", "members":{ "Version":{ "shape":"SmbVersion", - "documentation":"

The specific SMB version that you want DataSync to use to mount your SMB share. If you don't specify a version, DataSync defaults to AUTOMATIC. That is, DataSync automatically selects a version based on negotiation with the SMB server.

" + "documentation":"

Specifies the SMB version that you want DataSync to use when mounting your SMB share. If you don't specify a version, DataSync defaults to AUTOMATIC and chooses a version based on negotiation with the SMB server.

" } }, - "documentation":"

Represents the mount options that are available for DataSync to access an SMB location.

" + "documentation":"

Specifies how DataSync can access a location using the SMB protocol.

" }, "SmbPassword":{ "type":"string", @@ -2702,6 +2890,11 @@ }, "documentation":"

StartTaskExecutionResponse

" }, + "StorageVirtualMachineArn":{ + "type":"string", + "max":162, + "pattern":"^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):fsx:[a-z\\-0-9]+:[0-9]{12}:storage-virtual-machine/fs-[0-9a-f]+/svm-[0-9a-f]{17,}$" + }, "TagKey":{ "type":"string", "max":256, @@ -2863,10 +3056,10 @@ }, "Operator":{ "shape":"Operator", - "documentation":"

The operator that is used to compare filter values (for example, Equals or Contains). For more about API filtering operators, see API filters for ListTasks and ListLocations.

" + "documentation":"

The operator that is used to compare filter values (for example, Equals or Contains).

" } }, - "documentation":"

You can use API filters to narrow down the list of resources returned by ListTasks. For example, to retrieve all tasks on a source location, you can use ListTasks with filter name LocationId and Operator Equals with the ARN for the location.

" + "documentation":"

You can use API filters to narrow down the list of resources returned by ListTasks. For example, to retrieve all tasks on a source location, you can use ListTasks with filter name LocationId and Operator Equals with the ARN for the location.

For more information, see filtering DataSync resources.

" }, "TaskFilterName":{ "type":"string", @@ -3079,31 +3272,35 @@ "members":{ "LocationArn":{ "shape":"LocationArn", - "documentation":"

The Amazon Resource Name (ARN) of the self-managed object storage server location to be updated.

" + "documentation":"

Specifies the ARN of the object storage system location that you're updating.

" }, "ServerPort":{ "shape":"ObjectStorageServerPort", - "documentation":"

The port that your self-managed object storage server accepts inbound network traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443 (HTTPS). You can specify a custom port if your self-managed object storage server requires one.

" + "documentation":"

Specifies the port that your object storage server accepts inbound network traffic on (for example, port 443).

" }, "ServerProtocol":{ "shape":"ObjectStorageServerProtocol", - "documentation":"

The protocol that the object storage server uses to communicate. Valid values are HTTP or HTTPS.

" + "documentation":"

Specifies the protocol that your object storage server uses to communicate.

" }, "Subdirectory":{ "shape":"S3Subdirectory", - "documentation":"

The subdirectory in the self-managed object storage server that is used to read data from.

" + "documentation":"

Specifies the object prefix for your object storage server. If this is a source location, DataSync only copies objects with this prefix. If this is a destination location, DataSync writes all objects with this prefix.

" }, "AccessKey":{ "shape":"ObjectStorageAccessKey", - "documentation":"

Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.

" + "documentation":"

Specifies the access key (for example, a user name) if credentials are required to authenticate with the object storage server.

" }, "SecretKey":{ "shape":"ObjectStorageSecretKey", - "documentation":"

Optional. The secret key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.

" + "documentation":"

Specifies the secret key (for example, a password) if credentials are required to authenticate with the object storage server.

" }, "AgentArns":{ "shape":"AgentArnList", - "documentation":"

The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.

" + "documentation":"

Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can securely connect with your location.

" + }, + "ServerCertificate":{ + "shape":"ObjectStorageCertificate", + "documentation":"

Specifies a certificate to authenticate with an object storage system that uses a private or self-signed certificate authority (CA). You must specify a Base64-encoded .pem file (for example, file:///home/user/.ssh/storage_sys_certificate.pem). The certificate can be up to 32768 bytes (before Base64 encoding).

To use this parameter, configure ServerProtocol to HTTPS.

Updating the certificate doesn't interfere with tasks that you have in progress.

" } } }, @@ -3219,5 +3416,5 @@ "long":{"type":"long"}, "string":{"type":"string"} }, - "documentation":"DataSync

DataSync is a managed data transfer service that makes it simpler for you to automate moving data between on-premises storage and Amazon Simple Storage Service (Amazon S3) or Amazon Elastic File System (Amazon EFS).

This API interface reference for DataSync contains documentation for a programming interface that you can use to manage DataSync.

" + "documentation":"DataSync

DataSync is a managed data transfer service that makes it simpler for you to automate moving data between on-premises storage and Amazon Web Services storage services. You also can use DataSync to transfer data between other cloud providers and Amazon Web Services storage services.

This API interface reference includes documentation for using DataSync programmatically. For complete information, see the DataSync User Guide .

" } diff --git a/botocore/data/dax/2017-04-19/endpoint-rule-set-1.json b/botocore/data/dax/2017-04-19/endpoint-rule-set-1.json new file mode 100644 index 00000000..cfa238ac --- /dev/null +++ b/botocore/data/dax/2017-04-19/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dax-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dax-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dax.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://dax.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/detective/2018-10-26/endpoint-rule-set-1.json b/botocore/data/detective/2018-10-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..e97ea6e0 --- /dev/null +++ b/botocore/data/detective/2018-10-26/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.detective-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.detective-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.detective.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.detective.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/detective/2018-10-26/examples-1.json b/botocore/data/detective/2018-10-26/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/detective/2018-10-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/detective/2018-10-26/service-2.json b/botocore/data/detective/2018-10-26/service-2.json index 74c0896f..25a4fdb9 100644 --- a/botocore/data/detective/2018-10-26/service-2.json +++ b/botocore/data/detective/2018-10-26/service-2.json @@ -27,6 +27,36 @@ ], "documentation":"

Accepts an invitation for the member account to contribute data to a behavior graph. This operation can only be called by an invited member account.

The request provides the ARN of behavior graph.

The member account status in the graph must be INVITED.

" }, + "BatchGetGraphMemberDatasources":{ + "name":"BatchGetGraphMemberDatasources", + "http":{ + "method":"POST", + "requestUri":"/graph/datasources/get" + }, + "input":{"shape":"BatchGetGraphMemberDatasourcesRequest"}, + "output":{"shape":"BatchGetGraphMemberDatasourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Gets data source package information for the behavior graph.

" + }, + "BatchGetMembershipDatasources":{ + "name":"BatchGetMembershipDatasources", + "http":{ + "method":"POST", + "requestUri":"/membership/datasources/get" + }, + "input":{"shape":"BatchGetMembershipDatasourcesRequest"}, + "output":{"shape":"BatchGetMembershipDatasourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Gets information on the data source package history for an account.

" + }, "CreateGraph":{ "name":"CreateGraph", "http":{ @@ -114,7 +144,7 @@ {"shape":"ValidationException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Removes the Detective administrator account for the organization in the current Region. Deletes the behavior graph for that account.

Can only be called by the organization management account. Before you can select a different Detective administrator account, you must remove the Detective administrator account in all Regions.

" + "documentation":"

Removes the Detective administrator account in the current Region. Deletes the organization behavior graph.

Can only be called by the organization management account.

Removing the Detective administrator account does not affect the delegated administrator account for Detective in Organizations.

To remove the delegated administrator account in Organizations, use the Organizations API. Removing the delegated administrator account also removes the Detective administrator account in all Regions, except for Regions where the Detective administrator account is the organization management account.

" }, "DisassociateMembership":{ "name":"DisassociateMembership", @@ -143,7 +173,7 @@ {"shape":"ValidationException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Designates the Detective administrator account for the organization in the current Region.

If the account does not have Detective enabled, then enables Detective for that account and creates a new behavior graph.

Can only be called by the organization management account.

The Detective administrator account for an organization must be the same in all Regions. If you already designated a Detective administrator account in another Region, then you must designate the same account.

" + "documentation":"

Designates the Detective administrator account for the organization in the current Region.

If the account does not have Detective enabled, then enables Detective for that account and creates a new behavior graph.

Can only be called by the organization management account.

If the organization has a delegated administrator account in Organizations, then the Detective administrator account must be either the delegated administrator account or the organization management account.

If the organization does not have a delegated administrator account in Organizations, then you can choose any account in the organization. If you choose an account other than the organization management account, Detective calls Organizations to make that account the delegated administrator account for Detective. The organization management account cannot be the delegated administrator account.

" }, "GetMembers":{ "name":"GetMembers", @@ -160,6 +190,21 @@ ], "documentation":"

Returns the membership details for specified member accounts for a behavior graph.

" }, + "ListDatasourcePackages":{ + "name":"ListDatasourcePackages", + "http":{ + "method":"POST", + "requestUri":"/graph/datasources/list" + }, + "input":{"shape":"ListDatasourcePackagesRequest"}, + "output":{"shape":"ListDatasourcePackagesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists data source packages in the behavior graph.

" + }, "ListGraphs":{ "name":"ListGraphs", "http":{ @@ -297,6 +342,21 @@ ], "documentation":"

Removes tags from a behavior graph.

" }, + "UpdateDatasourcePackages":{ + "name":"UpdateDatasourcePackages", + "http":{ + "method":"POST", + "requestUri":"/graph/datasources/update" + }, + "input":{"shape":"UpdateDatasourcePackagesRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Starts a data source packages for the behavior graph.

" + }, "UpdateOrganizationConfiguration":{ "name":"UpdateOrganizationConfiguration", "http":{ @@ -347,6 +407,12 @@ "min":12, "pattern":"^[0-9]+$" }, + "AccountIdExtendedList":{ + "type":"list", + "member":{"shape":"AccountId"}, + "max":200, + "min":1 + }, "AccountIdList":{ "type":"list", "member":{"shape":"AccountId"}, @@ -381,6 +447,59 @@ "type":"list", "member":{"shape":"Administrator"} }, + "BatchGetGraphMemberDatasourcesRequest":{ + "type":"structure", + "required":[ + "GraphArn", + "AccountIds" + ], + "members":{ + "GraphArn":{ + "shape":"GraphArn", + "documentation":"

The ARN of the behavior graph.

" + }, + "AccountIds":{ + "shape":"AccountIdExtendedList", + "documentation":"

The list of Amazon Web Services accounts to get data source package information on.

" + } + } + }, + "BatchGetGraphMemberDatasourcesResponse":{ + "type":"structure", + "members":{ + "MemberDatasources":{ + "shape":"MembershipDatasourcesList", + "documentation":"

Details on the status of data source packages for members of the behavior graph.

" + }, + "UnprocessedAccounts":{ + "shape":"UnprocessedAccountList", + "documentation":"

Accounts that data source package information could not be retrieved for.

" + } + } + }, + "BatchGetMembershipDatasourcesRequest":{ + "type":"structure", + "required":["GraphArns"], + "members":{ + "GraphArns":{ + "shape":"GraphArnList", + "documentation":"

The ARN of the behavior graph.

" + } + } + }, + "BatchGetMembershipDatasourcesResponse":{ + "type":"structure", + "members":{ + "MembershipDatasources":{ + "shape":"MembershipDatasourcesList", + "documentation":"

Details on the data source package history for an member of the behavior graph.

" + }, + "UnprocessedGraphs":{ + "shape":"UnprocessedGraphList", + "documentation":"

Graphs that data source package information could not be retrieved for.

" + } + } + }, "Boolean":{"type":"boolean"}, "ByteValue":{"type":"long"}, "ConflictException":{ @@ -448,6 +567,70 @@ } } }, + "DatasourcePackage":{ + "type":"string", + "enum":[ + "DETECTIVE_CORE", + "EKS_AUDIT" + ] + }, + "DatasourcePackageIngestDetail":{ + "type":"structure", + "members":{ + "DatasourcePackageIngestState":{ + "shape":"DatasourcePackageIngestState", + "documentation":"

Details on which data source packages are ingested for a member account.

" + }, + "LastIngestStateChange":{ + "shape":"LastIngestStateChangeDates", + "documentation":"

The date a data source package was enabled for this account

" + } + }, + "documentation":"

Details about the data source packages ingested by your behavior graph.

" + }, + "DatasourcePackageIngestDetails":{ + "type":"map", + "key":{"shape":"DatasourcePackage"}, + "value":{"shape":"DatasourcePackageIngestDetail"} + }, + "DatasourcePackageIngestHistory":{ + "type":"map", + "key":{"shape":"DatasourcePackage"}, + "value":{"shape":"LastIngestStateChangeDates"} + }, + "DatasourcePackageIngestState":{ + "type":"string", + "enum":[ + "STARTED", + "STOPPED", + "DISABLED" + ] + }, + "DatasourcePackageIngestStates":{ + "type":"map", + "key":{"shape":"DatasourcePackage"}, + "value":{"shape":"DatasourcePackageIngestState"} + }, + "DatasourcePackageList":{ + "type":"list", + "member":{"shape":"DatasourcePackage"}, + "max":25, + "min":1 + }, + "DatasourcePackageUsageInfo":{ + "type":"structure", + "members":{ + "VolumeUsageInBytes":{ + "shape":"ByteValue", + "documentation":"

Total volume of data in bytes per day ingested for a given data source package.

" + }, + "VolumeUsageUpdateTime":{ + "shape":"Timestamp", + "documentation":"

The data and time when the member account data volume was last updated. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

" + } + }, + "documentation":"

Information on the usage of a data source package in the behavior graph.

" + }, "DeleteGraphRequest":{ "type":"structure", "required":["GraphArn"], @@ -538,6 +721,15 @@ } } }, + "ErrorCode":{ + "type":"string", + "enum":[ + "INVALID_GRAPH_ARN", + "INVALID_REQUEST_BODY", + "INTERNAL_ERROR" + ] + }, + "ErrorCodeReason":{"type":"string"}, "ErrorMessage":{"type":"string"}, "GetMembersRequest":{ "type":"structure", @@ -587,6 +779,12 @@ "type":"string", "pattern":"^arn:aws[-\\w]{0,10}?:detective:[-\\w]{2,20}?:\\d{12}?:graph:[abcdef\\d]{32}?$" }, + "GraphArnList":{ + "type":"list", + "member":{"shape":"GraphArn"}, + "max":50, + "min":1 + }, "GraphList":{ "type":"list", "member":{"shape":"Graph"} @@ -607,6 +805,42 @@ "ORGANIZATION" ] }, + "LastIngestStateChangeDates":{ + "type":"map", + "key":{"shape":"DatasourcePackageIngestState"}, + "value":{"shape":"TimestampForCollection"} + }, + "ListDatasourcePackagesRequest":{ + "type":"structure", + "required":["GraphArn"], + "members":{ + "GraphArn":{ + "shape":"GraphArn", + "documentation":"

The ARN of the behavior graph.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

For requests to get the next page of results, the pagination token that was returned with the previous set of results. The initial request does not include a pagination token.

" + }, + "MaxResults":{ + "shape":"MemberResultsLimit", + "documentation":"

The maximum number of results to return.

" + } + } + }, + "ListDatasourcePackagesResponse":{ + "type":"structure", + "members":{ + "DatasourcePackages":{ + "shape":"DatasourcePackageIngestDetails", + "documentation":"

Details on the data source packages active in the behavior graph.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

For requests to get the next page of results, the pagination token that was returned with the previous set of results. The initial request does not include a pagination token.

" + } + } + }, "ListGraphsRequest":{ "type":"structure", "members":{ @@ -708,7 +942,7 @@ "members":{ "Administrators":{ "shape":"AdministratorList", - "documentation":"

The list of delegated administrator accounts.

" + "documentation":"

The list of Detective administrator accounts.

" }, "NextToken":{ "shape":"PaginationToken", @@ -780,27 +1014,39 @@ }, "VolumeUsageInBytes":{ "shape":"ByteValue", - "documentation":"

The data volume in bytes per day for the member account.

" + "documentation":"

The data volume in bytes per day for the member account.

", + "deprecated":true, + "deprecatedMessage":"This property is deprecated. Use VolumeUsageByDatasourcePackage instead." }, "VolumeUsageUpdatedTime":{ "shape":"Timestamp", - "documentation":"

The data and time when the member account data volume was last updated. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

" + "documentation":"

The data and time when the member account data volume was last updated. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", + "deprecated":true, + "deprecatedMessage":"This property is deprecated. Use VolumeUsageByDatasourcePackage instead." }, "PercentOfGraphUtilization":{ "shape":"Percentage", "documentation":"

The member account data volume as a percentage of the maximum allowed data volume. 0 indicates 0 percent, and 100 indicates 100 percent.

Note that this is not the percentage of the behavior graph data volume.

For example, the data volume for the behavior graph is 80 GB per day. The maximum data volume is 160 GB per day. If the data volume for the member account is 40 GB per day, then PercentOfGraphUtilization is 25. It represents 25% of the maximum allowed data volume.

", "deprecated":true, - "deprecatedMessage":"This property is deprecated. Use VolumeUsageInBytes instead." + "deprecatedMessage":"This property is deprecated. Use VolumeUsageByDatasourcePackage instead." }, "PercentOfGraphUtilizationUpdatedTime":{ "shape":"Timestamp", "documentation":"

The date and time when the graph utilization percentage was last updated. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

", "deprecated":true, - "deprecatedMessage":"This property is deprecated. Use VolumeUsageUpdatedTime instead." + "deprecatedMessage":"This property is deprecated. Use VolumeUsageByDatasourcePackage instead." }, "InvitationType":{ "shape":"InvitationType", "documentation":"

The type of behavior graph membership.

For an organization account in the organization behavior graph, the type is ORGANIZATION.

For an account that was invited to a behavior graph, the type is INVITATION.

" + }, + "VolumeUsageByDatasourcePackage":{ + "shape":"VolumeUsageByDatasourcePackage", + "documentation":"

Details on the volume of usage for each data source package in a behavior graph.

" + }, + "DatasourcePackageIngestStates":{ + "shape":"DatasourcePackageIngestStates", + "documentation":"

The state of a data source package for the behavior graph.

" } }, "documentation":"

Details about a member account in a behavior graph.

" @@ -832,6 +1078,28 @@ "ACCEPTED_BUT_DISABLED" ] }, + "MembershipDatasources":{ + "type":"structure", + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

The account identifier of the Amazon Web Services account.

" + }, + "GraphArn":{ + "shape":"GraphArn", + "documentation":"

The ARN of the organization behavior graph.

" + }, + "DatasourcePackageIngestHistory":{ + "shape":"DatasourcePackageIngestHistory", + "documentation":"

Details on when a data source package was added to a behavior graph.

" + } + }, + "documentation":"

Details on data source packages for members of the behavior graph.

" + }, + "MembershipDatasourcesList":{ + "type":"list", + "member":{"shape":"MembershipDatasources"} + }, "PaginationToken":{ "type":"string", "max":1024, @@ -848,6 +1116,17 @@ } } }, + "Resource":{ + "type":"string", + "max":64, + "min":1 + }, + "ResourceList":{ + "type":"list", + "member":{"shape":"Resource"}, + "max":50, + "min":1 + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -860,7 +1139,11 @@ "ServiceQuotaExceededException":{ "type":"structure", "members":{ - "Message":{"shape":"ErrorMessage"} + "Message":{"shape":"ErrorMessage"}, + "Resources":{ + "shape":"ResourceList", + "documentation":"

The type of resource that has exceeded the service quota.

" + } }, "documentation":"

This request cannot be completed for one of the following reasons.

  • The request would cause the number of member accounts in the behavior graph to exceed the maximum allowed. A behavior graph cannot have more than 1200 member accounts.

  • The request would cause the data rate for the behavior graph to exceed the maximum allowed.

  • Detective is unable to verify the data rate for the member account. This is usually because the member account is not enrolled in Amazon GuardDuty.

", "error":{"httpStatusCode":402}, @@ -934,6 +1217,16 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "TimestampForCollection":{ + "type":"structure", + "members":{ + "Timestamp":{ + "shape":"Timestamp", + "documentation":"

The data and time when data collection began for a source package. The value is an ISO8601 formatted string. For example, 2021-08-18T16:35:56.284Z.

" + } + }, + "documentation":"

Details on when data collection began for a source package.

" + }, "TooManyRequestsException":{ "type":"structure", "members":{ @@ -961,6 +1254,24 @@ "type":"list", "member":{"shape":"UnprocessedAccount"} }, + "UnprocessedGraph":{ + "type":"structure", + "members":{ + "GraphArn":{ + "shape":"GraphArn", + "documentation":"

The ARN of the organization behavior graph.

" + }, + "Reason":{ + "shape":"UnprocessedReason", + "documentation":"

The reason data source package information could not be processed for a behavior graph.

" + } + }, + "documentation":"

Behavior graphs that could not be processed in the request.

" + }, + "UnprocessedGraphList":{ + "type":"list", + "member":{"shape":"UnprocessedGraph"} + }, "UnprocessedReason":{"type":"string"}, "UntagResourceRequest":{ "type":"structure", @@ -988,6 +1299,23 @@ "members":{ } }, + "UpdateDatasourcePackagesRequest":{ + "type":"structure", + "required":[ + "GraphArn", + "DatasourcePackages" + ], + "members":{ + "GraphArn":{ + "shape":"GraphArn", + "documentation":"

The ARN of the behavior graph.

" + }, + "DatasourcePackages":{ + "shape":"DatasourcePackageList", + "documentation":"

The data source package start for the behavior graph.

" + } + } + }, "UpdateOrganizationConfigurationRequest":{ "type":"structure", "required":["GraphArn"], @@ -1005,12 +1333,25 @@ "ValidationException":{ "type":"structure", "members":{ - "Message":{"shape":"ErrorMessage"} + "Message":{"shape":"ErrorMessage"}, + "ErrorCode":{ + "shape":"ErrorCode", + "documentation":"

The error code associated with the validation failure.

" + }, + "ErrorCodeReason":{ + "shape":"ErrorCodeReason", + "documentation":"

An explanation of why validation failed.

" + } }, "documentation":"

The request parameters are invalid.

", "error":{"httpStatusCode":400}, "exception":true + }, + "VolumeUsageByDatasourcePackage":{ + "type":"map", + "key":{"shape":"DatasourcePackage"}, + "value":{"shape":"DatasourcePackageUsageInfo"} } }, - "documentation":"

Detective uses machine learning and purpose-built visualizations to help you to analyze and investigate security issues across your Amazon Web Services (Amazon Web Services) workloads. Detective automatically extracts time-based events such as login attempts, API calls, and network traffic from CloudTrail and Amazon Virtual Private Cloud (Amazon VPC) flow logs. It also extracts findings detected by Amazon GuardDuty.

The Detective API primarily supports the creation and management of behavior graphs. A behavior graph contains the extracted data from a set of member accounts, and is created and managed by an administrator account.

To add a member account to the behavior graph, the administrator account sends an invitation to the account. When the account accepts the invitation, it becomes a member account in the behavior graph.

Detective is also integrated with Organizations. The organization management account designates the Detective administrator account for the organization. That account becomes the administrator account for the organization behavior graph. The Detective administrator account can enable any organization account as a member account in the organization behavior graph. The organization accounts do not receive invitations. The Detective administrator account can also invite other accounts to the organization behavior graph.

Every behavior graph is specific to a Region. You can only use the API to manage behavior graphs that belong to the Region that is associated with the currently selected endpoint.

The administrator account for a behavior graph can use the Detective API to do the following:

  • Enable and disable Detective. Enabling Detective creates a new behavior graph.

  • View the list of member accounts in a behavior graph.

  • Add member accounts to a behavior graph.

  • Remove member accounts from a behavior graph.

  • Apply tags to a behavior graph.

The organization management account can use the Detective API to select the delegated administrator for Detective.

The Detective administrator account for an organization can use the Detective API to do the following:

  • Perform all of the functions of an administrator account.

  • Determine whether to automatically enable new organization accounts as member accounts in the organization behavior graph.

An invited member account can use the Detective API to do the following:

  • View the list of behavior graphs that they are invited to.

  • Accept an invitation to contribute to a behavior graph.

  • Decline an invitation to contribute to a behavior graph.

  • Remove their account from a behavior graph.

All API actions are logged as CloudTrail events. See Logging Detective API Calls with CloudTrail.

We replaced the term \"master account\" with the term \"administrator account.\" An administrator account is used to centrally manage multiple accounts. In the case of Detective, the administrator account manages the accounts in their behavior graph.

" + "documentation":"

Detective uses machine learning and purpose-built visualizations to help you to analyze and investigate security issues across your Amazon Web Services (Amazon Web Services) workloads. Detective automatically extracts time-based events such as login attempts, API calls, and network traffic from CloudTrail and Amazon Virtual Private Cloud (Amazon VPC) flow logs. It also extracts findings detected by Amazon GuardDuty.

The Detective API primarily supports the creation and management of behavior graphs. A behavior graph contains the extracted data from a set of member accounts, and is created and managed by an administrator account.

To add a member account to the behavior graph, the administrator account sends an invitation to the account. When the account accepts the invitation, it becomes a member account in the behavior graph.

Detective is also integrated with Organizations. The organization management account designates the Detective administrator account for the organization. That account becomes the administrator account for the organization behavior graph. The Detective administrator account is also the delegated administrator account for Detective in Organizations.

The Detective administrator account can enable any organization account as a member account in the organization behavior graph. The organization accounts do not receive invitations. The Detective administrator account can also invite other accounts to the organization behavior graph.

Every behavior graph is specific to a Region. You can only use the API to manage behavior graphs that belong to the Region that is associated with the currently selected endpoint.

The administrator account for a behavior graph can use the Detective API to do the following:

  • Enable and disable Detective. Enabling Detective creates a new behavior graph.

  • View the list of member accounts in a behavior graph.

  • Add member accounts to a behavior graph.

  • Remove member accounts from a behavior graph.

  • Apply tags to a behavior graph.

The organization management account can use the Detective API to select the delegated administrator for Detective.

The Detective administrator account for an organization can use the Detective API to do the following:

  • Perform all of the functions of an administrator account.

  • Determine whether to automatically enable new organization accounts as member accounts in the organization behavior graph.

An invited member account can use the Detective API to do the following:

  • View the list of behavior graphs that they are invited to.

  • Accept an invitation to contribute to a behavior graph.

  • Decline an invitation to contribute to a behavior graph.

  • Remove their account from a behavior graph.

All API actions are logged as CloudTrail events. See Logging Detective API Calls with CloudTrail.

We replaced the term \"master account\" with the term \"administrator account.\" An administrator account is used to centrally manage multiple accounts. In the case of Detective, the administrator account manages the accounts in their behavior graph.

" } diff --git a/botocore/data/devicefarm/2015-06-23/endpoint-rule-set-1.json b/botocore/data/devicefarm/2015-06-23/endpoint-rule-set-1.json new file mode 100644 index 00000000..b3e3bbfe --- /dev/null +++ b/botocore/data/devicefarm/2015-06-23/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devicefarm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devicefarm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devicefarm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://devicefarm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/devicefarm/2015-06-23/examples-1.json b/botocore/data/devicefarm/2015-06-23/examples-1.json index 4bfa22ba..9db4e46c 100644 --- a/botocore/data/devicefarm/2015-06-23/examples-1.json +++ b/botocore/data/devicefarm/2015-06-23/examples-1.json @@ -962,7 +962,7 @@ "ListSuites": [ { "input": { - "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:EXAMPLE-GUID-123-456", + "arn": "arn:aws:devicefarm:us-west-2:123456789101:job:EXAMPLE-GUID-123-456", "nextToken": "RW5DdDJkMWYwZjM2MzM2VHVpOHJIUXlDUXlhc2QzRGViYnc9SEXAMPLE" }, "output": { @@ -972,13 +972,13 @@ }, "comments": { "input": { - "arn": "You can get the Amazon Resource Name (ARN) of the project by using the list-projects CLI command.", + "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 project.", + "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" } diff --git a/botocore/data/devicefarm/2015-06-23/service-2.json b/botocore/data/devicefarm/2015-06-23/service-2.json index 030273b5..14a5d1e4 100644 --- a/botocore/data/devicefarm/2015-06-23/service-2.json +++ b/botocore/data/devicefarm/2015-06-23/service-2.json @@ -1278,7 +1278,7 @@ }, "skipAppResign":{ "shape":"SkipAppResign", - "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.

" + "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.

" } }, "documentation":"

A container for account-level settings in AWS Device Farm.

" @@ -1612,6 +1612,10 @@ "defaultJobTimeoutMinutes":{ "shape":"JobTimeoutMinutes", "documentation":"

Sets the execution timeout value (in minutes) for a project. All test runs in this project use the specified execution timeout value unless overridden when scheduling a run.

" + }, + "vpcConfig":{ + "shape":"VpcConfig", + "documentation":"

The VPC security groups and subnets that are attached to a project.

" } }, "documentation":"

Represents a request to the create project operation.

" @@ -1693,7 +1697,7 @@ }, "skipAppResign":{ "shape":"Boolean", - "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information on how Device Farm modifies your uploads during tests, see Do you modify my app?

" + "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information on how Device Farm modifies your uploads during tests, see Do you modify my app?

" } }, "documentation":"

Creates and submits a request to start a remote access session.

" @@ -2372,7 +2376,7 @@ }, "skipAppResign":{ "shape":"SkipAppResign", - "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.

" + "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.

" } }, "documentation":"

Represents configuration information about a test run, such as the execution timeout (in minutes).

" @@ -4098,6 +4102,10 @@ "created":{ "shape":"DateTime", "documentation":"

When the project was created.

" + }, + "vpcConfig":{ + "shape":"VpcConfig", + "documentation":"

The VPC security groups and subnets that are attached to a project.

" } }, "documentation":"

Represents an operating-system neutral workspace for running and managing tests.

" @@ -4272,7 +4280,11 @@ }, "skipAppResign":{ "shape":"SkipAppResign", - "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.

" + "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.

" + }, + "vpcConfig":{ + "shape":"VpcConfig", + "documentation":"

The VPC security groups and subnets that are attached to a project.

" } }, "documentation":"

Represents information about the remote access session.

" @@ -4493,7 +4505,7 @@ }, "skipAppResign":{ "shape":"SkipAppResign", - "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.

" + "documentation":"

When set to true, for private devices, Device Farm does not sign your app again. For public devices, Device Farm always signs your apps again.

For more information about how Device Farm re-signs your apps, see Do you modify my app? in the AWS Device Farm FAQs.

" }, "testSpecArn":{ "shape":"AmazonResourceName", @@ -4502,6 +4514,10 @@ "deviceSelectionResult":{ "shape":"DeviceSelectionResult", "documentation":"

The results of a device filter used to select the devices for a test run.

" + }, + "vpcConfig":{ + "shape":"VpcConfig", + "documentation":"

The VPC security groups and subnets that are attached to a project.

" } }, "documentation":"

Represents a test run on a set of devices with a given app package, test parameters, and so on.

" @@ -4675,6 +4691,12 @@ }, "documentation":"

Represents test settings. This data structure is passed in as the test parameter to ScheduleRun. For an example of the JSON request syntax, see ScheduleRun.

" }, + "SecurityGroupId":{ + "type":"string", + "max":4096, + "min":1, + "pattern":"^sg-[0-9a-fA-F]{8,}$" + }, "SecurityGroupIds":{ "type":"list", "member":{"shape":"NonEmptyString"}, @@ -4775,6 +4797,12 @@ "documentation":"

Represents the results of your stop run attempt.

" }, "String":{"type":"string"}, + "SubnetId":{ + "type":"string", + "max":4096, + "min":1, + "pattern":"^subnet-[0-9a-fA-F]{8,}$" + }, "SubnetIds":{ "type":"list", "member":{"shape":"NonEmptyString"}, @@ -5427,6 +5455,10 @@ "defaultJobTimeoutMinutes":{ "shape":"JobTimeoutMinutes", "documentation":"

The number of minutes a test run in the project executes before it times out.

" + }, + "vpcConfig":{ + "shape":"VpcConfig", + "documentation":"

The VPC security groups and subnets that are attached to a project.

" } }, "documentation":"

Represents a request to the update project operation.

" @@ -5686,7 +5718,42 @@ "max":2048, "min":0 }, - "VideoCapture":{"type":"boolean"} + "VideoCapture":{"type":"boolean"}, + "VpcConfig":{ + "type":"structure", + "required":[ + "securityGroupIds", + "subnetIds", + "vpcId" + ], + "members":{ + "securityGroupIds":{ + "shape":"VpcSecurityGroupIds", + "documentation":"

An array of one or more security groups IDs in your Amazon VPC.

" + }, + "subnetIds":{ + "shape":"VpcSubnetIds", + "documentation":"

An array of one or more subnet IDs in your Amazon VPC.

" + }, + "vpcId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the Amazon VPC.

" + } + }, + "documentation":"

Contains the VPC configuration data necessary to interface with AWS Device Farm's services.

" + }, + "VpcSecurityGroupIds":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":5, + "min":1 + }, + "VpcSubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":8, + "min":1 + } }, "documentation":"

Welcome to the AWS Device Farm API documentation, which contains APIs for:

  • Testing on desktop browsers

    Device Farm makes it possible for you to test your web applications on desktop browsers using Selenium. The APIs for desktop browser testing contain TestGrid in their names. For more information, see Testing Web Applications on Selenium with Device Farm.

  • Testing on real mobile devices

    Device Farm makes it possible for you to test apps on physical phones, tablets, and other devices in the cloud. For more information, see the Device Farm Developer Guide.

" } diff --git a/botocore/data/devops-guru/2020-12-01/endpoint-rule-set-1.json b/botocore/data/devops-guru/2020-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..396977d5 --- /dev/null +++ b/botocore/data/devops-guru/2020-12-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://devops-guru.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/devops-guru/2020-12-01/examples-1.json b/botocore/data/devops-guru/2020-12-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/devops-guru/2020-12-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/devops-guru/2020-12-01/paginators-1.json b/botocore/data/devops-guru/2020-12-01/paginators-1.json index 452828fa..d0d58717 100644 --- a/botocore/data/devops-guru/2020-12-01/paginators-1.json +++ b/botocore/data/devops-guru/2020-12-01/paginators-1.json @@ -103,6 +103,23 @@ "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/botocore/data/devops-guru/2020-12-01/service-2.json b/botocore/data/devops-guru/2020-12-01/service-2.json index 86fe698e..f93c89c8 100644 --- a/botocore/data/devops-guru/2020-12-01/service-2.json +++ b/botocore/data/devops-guru/2020-12-01/service-2.json @@ -236,6 +236,7 @@ "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], @@ -295,6 +296,24 @@ ], "documentation":"

Returns a list of the anomalies that belong to an insight that you specify using its ID.

" }, + "ListAnomalousLogGroups":{ + "name":"ListAnomalousLogGroups", + "http":{ + "method":"POST", + "requestUri":"/list-log-anomalies", + "responseCode":200 + }, + "input":{"shape":"ListAnomalousLogGroupsRequest"}, + "output":{"shape":"ListAnomalousLogGroupsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns the list of log groups that contain log anomalies.

" + }, "ListEvents":{ "name":"ListEvents", "http":{ @@ -330,6 +349,23 @@ ], "documentation":"

Returns a list of insights in your Amazon Web Services account. You can specify which insights are returned by their start time and status (ONGOING, CLOSED, or ANY).

" }, + "ListMonitoredResources":{ + "name":"ListMonitoredResources", + "http":{ + "method":"POST", + "requestUri":"/monitoredResources", + "responseCode":200 + }, + "input":{"shape":"ListMonitoredResourcesRequest"}, + "output":{"shape":"ListMonitoredResourcesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns the list of all log groups that are being monitored and tagged by DevOps Guru.

" + }, "ListNotificationChannels":{ "name":"ListNotificationChannels", "http":{ @@ -435,7 +471,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns a list of insights in your Amazon Web Services account. You can specify which insights are returned by their start time, one or more statuses (ONGOING, CLOSED, and CLOSED), one or more severities (LOW, MEDIUM, and HIGH), and type (REACTIVE or PROACTIVE).

Use the Filters parameter to specify status and severity search parameters. Use the Type parameter to specify REACTIVE or PROACTIVE in your search.

" + "documentation":"

Returns a list of insights in your Amazon Web Services account. You can specify which insights are returned by their start time, one or more statuses (ONGOING or CLOSED), one or more severities (LOW, MEDIUM, and HIGH), and type (REACTIVE or PROACTIVE).

Use the Filters parameter to specify status and severity search parameters. Use the Type parameter to specify REACTIVE or PROACTIVE in your search.

" }, "SearchOrganizationInsights":{ "name":"SearchOrganizationInsights", @@ -606,6 +642,37 @@ }, "documentation":"

Information about your account's integration with Amazon CodeGuru Profiler. This returns whether DevOps Guru is configured to consume recommendations generated from Amazon CodeGuru Profiler.

" }, + "AnalyzedResourceCount":{"type":"long"}, + "AnomalousLogGroup":{ + "type":"structure", + "members":{ + "LogGroupName":{ + "shape":"LogGroupName", + "documentation":"

The name of the CloudWatch log group.

" + }, + "ImpactStartTime":{ + "shape":"Timestamp", + "documentation":"

The time the anomalous log events began. The impact start time indicates the time of the first log anomaly event that occurs.

" + }, + "ImpactEndTime":{ + "shape":"Timestamp", + "documentation":"

The time the anomalous log events stopped.

" + }, + "NumberOfLogLinesScanned":{ + "shape":"NumberOfLogLinesScanned", + "documentation":"

The number of log lines that were scanned for anomalous log events.

" + }, + "LogAnomalyShowcases":{ + "shape":"LogAnomalyShowcases", + "documentation":"

The log anomalies in the log group. Each log anomaly displayed represents a cluster of similar anomalous log events.

" + } + }, + "documentation":"

An Amazon CloudWatch log group that contains log anomalies and is used to generate an insight.

" + }, + "AnomalousLogGroups":{ + "type":"list", + "member":{"shape":"AnomalousLogGroup"} + }, "AnomalyDescription":{"type":"string"}, "AnomalyId":{ "type":"string", @@ -787,6 +854,10 @@ "Insight":{ "shape":"InsightHealth", "documentation":"

Information about the health of the Amazon Web Services resources in your account that are specified by an Amazon Web Services CloudFormation stack, including the number of open proactive, open reactive insights, and the Mean Time to Recover (MTTR) of closed insights.

" + }, + "AnalyzedResourceCount":{ + "shape":"AnalyzedResourceCount", + "documentation":"

Number of resources that DevOps Guru is monitoring in your account that are specified by an Amazon Web Services CloudFormation stack.

" } }, "documentation":"

Information about the health of Amazon Web Services resources in your account that are specified by an Amazon Web Services CloudFormation stack.

" @@ -867,7 +938,7 @@ "documentation":"

The value of the CloudWatch dimension.

" } }, - "documentation":"

The dimension of am Amazon CloudWatch metric that is used when DevOps Guru analyzes the resources in your account for operational problems and anomalous behavior. A dimension is a name/value pair that is part of the identity of a metric. A metric can have up to 10 dimensions. For more information, see Dimensions in the Amazon CloudWatch User Guide.

" + "documentation":"

The dimension of an Amazon CloudWatch metric that is used when DevOps Guru analyzes the resources in your account for operational problems and anomalous behavior. A dimension is a name/value pair that is part of the identity of a metric. A metric can have up to 10 dimensions. For more information, see Dimensions in the Amazon CloudWatch User Guide.

" }, "CloudWatchMetricsDimensionName":{"type":"string"}, "CloudWatchMetricsDimensionValue":{"type":"string"}, @@ -924,7 +995,7 @@ }, "Tags":{ "shape":"TagCostEstimationResourceCollectionFilters", - "documentation":"

The Amazon Web Services tags used to filter the resource collection that is used for a cost estimate.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The Amazon Web Services tags used to filter the resource collection that is used for a cost estimate.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } }, "documentation":"

Information about a filter used to specify which Amazon Web Services resources are analyzed to create a monthly DevOps Guru cost estimate. For more information, see Estimate your Amazon DevOps Guru costs and Amazon DevOps Guru pricing.

" @@ -1016,6 +1087,10 @@ "ResourceHours":{ "shape":"ResourceHours", "documentation":"

The number of Amazon DevOps Guru resource analysis hours billed to the current Amazon Web Services account in the last hour.

" + }, + "AnalyzedResourceCount":{ + "shape":"AnalyzedResourceCount", + "documentation":"

Number of resources that DevOps Guru is monitoring in your Amazon Web Services account.

" } } }, @@ -1272,7 +1347,7 @@ }, "Tags":{ "shape":"TagHealths", - "documentation":"

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } } }, @@ -1311,7 +1386,7 @@ }, "Tags":{ "shape":"TagHealths", - "documentation":"

The Amazon Web Services tags that are used by resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The Amazon Web Services tags that are used by resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } } }, @@ -1487,6 +1562,11 @@ "type":"list", "member":{"shape":"Event"} }, + "Explanation":{ + "type":"string", + "max":2048, + "min":1 + }, "GetCostEstimationRequest":{ "type":"structure", "members":{ @@ -1729,6 +1809,50 @@ } } }, + "ListAnomalousLogGroupsMaxResults":{ + "type":"integer", + "max":200, + "min":1 + }, + "ListAnomalousLogGroupsRequest":{ + "type":"structure", + "required":["InsightId"], + "members":{ + "InsightId":{ + "shape":"InsightId", + "documentation":"

The ID of the insight containing the log groups.

" + }, + "MaxResults":{ + "shape":"ListAnomalousLogGroupsMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"UuidNextToken", + "documentation":"

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

" + } + } + }, + "ListAnomalousLogGroupsResponse":{ + "type":"structure", + "required":[ + "InsightId", + "AnomalousLogGroups" + ], + "members":{ + "InsightId":{ + "shape":"InsightId", + "documentation":"

The ID of the insight containing the log groups.

" + }, + "AnomalousLogGroups":{ + "shape":"AnomalousLogGroups", + "documentation":"

The list of Amazon CloudWatch log groups that are related to an insight.

" + }, + "NextToken":{ + "shape":"UuidNextToken", + "documentation":"

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

" + } + } + }, "ListEventsFilters":{ "type":"structure", "members":{ @@ -1914,6 +2038,60 @@ }, "documentation":"

A filter used by ListInsights to specify which insights to return.

" }, + "ListMonitoredResourcesFilters":{ + "type":"structure", + "required":[ + "ResourcePermission", + "ResourceTypeFilters" + ], + "members":{ + "ResourcePermission":{ + "shape":"ResourcePermission", + "documentation":"

The permission status of a resource.

" + }, + "ResourceTypeFilters":{ + "shape":"ResourceTypeFilters", + "documentation":"

The type of resource that you wish to retrieve, such as log groups.

" + } + }, + "documentation":"

Filters to determine which monitored resources you want to retrieve. You can filter by resource type or resource permission status.

" + }, + "ListMonitoredResourcesMaxResults":{ + "type":"integer", + "max":50, + "min":1 + }, + "ListMonitoredResourcesRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"ListMonitoredResourcesFilters", + "documentation":"

Filters to determine which monitored resources you want to retrieve. You can filter by resource type or resource permission status.

" + }, + "MaxResults":{ + "shape":"ListMonitoredResourcesMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"UuidNextToken", + "documentation":"

The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

" + } + } + }, + "ListMonitoredResourcesResponse":{ + "type":"structure", + "required":["MonitoredResourceIdentifiers"], + "members":{ + "MonitoredResourceIdentifiers":{ + "shape":"MonitoredResourceIdentifiers", + "documentation":"

Information about the resource that is being monitored, including the name of the resource, the type of resource, and whether or not permission is given to DevOps Guru to access that resource.

" + }, + "NextToken":{ + "shape":"UuidNextToken", + "documentation":"

The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

" + } + } + }, "ListNotificationChannelsRequest":{ "type":"structure", "members":{ @@ -2027,8 +2205,150 @@ "ZH_TW" ] }, + "LogAnomalyClass":{ + "type":"structure", + "members":{ + "LogStreamName":{ + "shape":"LogStreamName", + "documentation":"

The name of the Amazon CloudWatch log stream that the anomalous log event belongs to. A log stream is a sequence of log events that share the same source.

" + }, + "LogAnomalyType":{ + "shape":"LogAnomalyType", + "documentation":"

The type of log anomaly that has been detected.

" + }, + "LogAnomalyToken":{ + "shape":"LogAnomalyToken", + "documentation":"

The token where the anomaly was detected. This may refer to an exception or another location, or it may be blank for log anomalies such as format anomalies.

" + }, + "LogEventId":{ + "shape":"LogEventId", + "documentation":"

The ID of the log event.

" + }, + "Explanation":{ + "shape":"Explanation", + "documentation":"

The explanation for why the log event is considered an anomaly.

" + }, + "NumberOfLogLinesOccurrences":{ + "shape":"NumberOfLogLinesOccurrences", + "documentation":"

The number of log lines where this anomalous log event occurs.

" + }, + "LogEventTimestamp":{ + "shape":"Timestamp", + "documentation":"

The time of the first occurrence of the anomalous log event.

" + } + }, + "documentation":"

Information about an anomalous log event found within a log group.

" + }, + "LogAnomalyClasses":{ + "type":"list", + "member":{"shape":"LogAnomalyClass"}, + "max":10, + "min":0 + }, + "LogAnomalyShowcase":{ + "type":"structure", + "members":{ + "LogAnomalyClasses":{ + "shape":"LogAnomalyClasses", + "documentation":"

A list of anomalous log events that may be related.

" + } + }, + "documentation":"

A cluster of similar anomalous log events found within a log group.

" + }, + "LogAnomalyShowcases":{ + "type":"list", + "member":{"shape":"LogAnomalyShowcase"}, + "max":20, + "min":0 + }, + "LogAnomalyToken":{ + "type":"string", + "max":2048, + "min":1 + }, + "LogAnomalyType":{ + "type":"string", + "enum":[ + "KEYWORD", + "KEYWORD_TOKEN", + "FORMAT", + "HTTP_CODE", + "BLOCK_FORMAT", + "NUMERICAL_POINT", + "NUMERICAL_NAN", + "NEW_FIELD_NAME" + ] + }, + "LogEventId":{ + "type":"string", + "max":512, + "min":1 + }, + "LogGroupName":{ + "type":"string", + "max":512, + "min":1 + }, + "LogStreamName":{ + "type":"string", + "max":512, + "min":1 + }, + "LogsAnomalyDetectionIntegration":{ + "type":"structure", + "members":{ + "OptInStatus":{ + "shape":"OptInStatus", + "documentation":"

Specifies if DevOps Guru is configured to perform log anomaly detection on CloudWatch log groups.

" + } + }, + "documentation":"

Information about the integration of DevOps Guru with CloudWatch log groups for log anomaly detection.

" + }, + "LogsAnomalyDetectionIntegrationConfig":{ + "type":"structure", + "members":{ + "OptInStatus":{ + "shape":"OptInStatus", + "documentation":"

Specifies if DevOps Guru is configured to perform log anomaly detection on CloudWatch log groups.

" + } + }, + "documentation":"

Information about the integration of DevOps Guru with CloudWatch log groups for log anomaly detection. You can use this to update the configuration.

" + }, "MeanTimeToRecoverInMilliseconds":{"type":"long"}, "MetricValue":{"type":"double"}, + "MonitoredResourceIdentifier":{ + "type":"structure", + "members":{ + "MonitoredResourceName":{ + "shape":"MonitoredResourceName", + "documentation":"

The name of the resource being monitored.

" + }, + "Type":{ + "shape":"ResourceType", + "documentation":"

The type of resource being monitored.

" + }, + "ResourcePermission":{ + "shape":"ResourcePermission", + "documentation":"

The permission status of a resource.

" + }, + "LastUpdated":{ + "shape":"Timestamp", + "documentation":"

The time at which DevOps Guru last updated this resource.

" + }, + "ResourceCollection":{"shape":"ResourceCollection"} + }, + "documentation":"

Information about the resource that is being monitored, including the name of the resource, the type of resource, and whether or not permission is given to DevOps Guru to access that resource.

" + }, + "MonitoredResourceIdentifiers":{ + "type":"list", + "member":{"shape":"MonitoredResourceIdentifier"} + }, + "MonitoredResourceName":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\.\\-_\\/#A-Za-z0-9]+" + }, "NotificationChannel":{ "type":"structure", "members":{ @@ -2050,6 +2370,10 @@ "Sns":{ "shape":"SnsChannelConfig", "documentation":"

Information about a notification channel configured in DevOps Guru to send notifications when insights are created.

If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. DevOps Guru only supports standard SNS topics. For more information, see Permissions for cross account Amazon SNS topics.

If you use an Amazon SNS topic in another account, you must attach a policy to it that grants DevOps Guru permission to it notifications. DevOps Guru adds the required policy on your behalf to send notifications using Amazon SNS in your account. For more information, see Permissions for cross account Amazon SNS topics.

If you use an Amazon SNS topic that is encrypted by an Amazon Web Services Key Management Service customer-managed key (CMK), then you must add permissions to the CMK. For more information, see Permissions for Amazon Web Services KMS–encrypted Amazon SNS topics.

" + }, + "Filters":{ + "shape":"NotificationFilterConfig", + "documentation":"

The filter configurations for the Amazon SNS notification topic you use with DevOps Guru. If you do not provide filter configurations, the default configurations are to receive notifications for all message types of High or Medium severity.

" } }, "documentation":"

Information about notification channels you have configured with DevOps Guru. The one supported notification channel is Amazon Simple Notification Service (Amazon SNS).

" @@ -2060,11 +2384,43 @@ "min":36, "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" }, + "NotificationFilterConfig":{ + "type":"structure", + "members":{ + "Severities":{ + "shape":"InsightSeverities", + "documentation":"

The severity levels that you want to receive notifications for. For example, you can choose to receive notifications only for insights with HIGH and MEDIUM severity levels. For more information, see Understanding insight severities.

" + }, + "MessageTypes":{ + "shape":"NotificationMessageTypes", + "documentation":"

The events that you want to receive notifications for. For example, you can choose to receive notifications only when the severity level is upgraded or a new insight is created.

" + } + }, + "documentation":"

The filter configurations for the Amazon SNS notification topic you use with DevOps Guru. You can choose to specify which events or message types to receive notifications for. You can also choose to specify which severity levels to receive notifications for.

" + }, + "NotificationMessageType":{ + "type":"string", + "enum":[ + "NEW_INSIGHT", + "CLOSED_INSIGHT", + "NEW_ASSOCIATION", + "SEVERITY_UPGRADED", + "NEW_RECOMMENDATION" + ] + }, + "NotificationMessageTypes":{ + "type":"list", + "member":{"shape":"NotificationMessageType"}, + "max":5, + "min":0 + }, "NumMetricsAnalyzed":{"type":"integer"}, "NumOpenProactiveInsights":{"type":"integer"}, "NumOpenReactiveInsights":{"type":"integer"}, "NumProactiveInsights":{"type":"integer"}, "NumReactiveInsights":{"type":"integer"}, + "NumberOfLogLinesOccurrences":{"type":"integer"}, + "NumberOfLogLinesScanned":{"type":"integer"}, "OpsCenterIntegration":{ "type":"structure", "members":{ @@ -2083,7 +2439,7 @@ "documentation":"

Specifies if DevOps Guru is enabled to create an Amazon Web Services Systems Manager OpsItem for each created insight.

" } }, - "documentation":"

Information about whether DevOps Guru is configured to create an OpsItem in Amazon Web Services Systems Manager OpsCenter for each created insight.

" + "documentation":"

Information about whether DevOps Guru is configured to create an OpsItem in Amazon Web Services Systems Manager OpsCenter for each created insight. You can use this to update the configuration.

" }, "OptInStatus":{ "type":"string", @@ -2929,7 +3285,7 @@ }, "Tags":{ "shape":"TagCollections", - "documentation":"

The Amazon Web Services tags that are used by resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The Amazon Web Services tags that are used by resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } }, "documentation":"

A collection of Amazon Web Services resources supported by DevOps Guru. The two types of Amazon Web Services resource collections supported are Amazon Web Services CloudFormation stacks and Amazon Web Services resources that contain the same Amazon Web Services tag. DevOps Guru can be configured to analyze the Amazon Web Services resources that are defined in the stacks or that are tagged using the same tag key. You can specify up to 500 Amazon Web Services CloudFormation stacks.

" @@ -2943,7 +3299,7 @@ }, "Tags":{ "shape":"TagCollectionFilters", - "documentation":"

The Amazon Web Services tags used to filter the resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The Amazon Web Services tags used to filter the resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } }, "documentation":"

Information about a filter used to specify which Amazon Web Services resources are analyzed for anomalous behavior by DevOps Guru.

" @@ -2982,12 +3338,55 @@ "error":{"httpStatusCode":404}, "exception":true }, + "ResourcePermission":{ + "type":"string", + "enum":[ + "FULL_PERMISSION", + "MISSING_PERMISSION" + ] + }, "ResourceType":{ "type":"string", "max":256, "min":1, "pattern":"^[a-zA-Z]+[a-zA-Z0-9-_:]*$" }, + "ResourceTypeFilter":{ + "type":"string", + "enum":[ + "LOG_GROUPS", + "CLOUDFRONT_DISTRIBUTION", + "DYNAMODB_TABLE", + "EC2_NAT_GATEWAY", + "ECS_CLUSTER", + "ECS_SERVICE", + "EKS_CLUSTER", + "ELASTIC_BEANSTALK_ENVIRONMENT", + "ELASTIC_LOAD_BALANCER_LOAD_BALANCER", + "ELASTIC_LOAD_BALANCING_V2_LOAD_BALANCER", + "ELASTIC_LOAD_BALANCING_V2_TARGET_GROUP", + "ELASTICACHE_CACHE_CLUSTER", + "ELASTICSEARCH_DOMAIN", + "KINESIS_STREAM", + "LAMBDA_FUNCTION", + "OPEN_SEARCH_SERVICE_DOMAIN", + "RDS_DB_INSTANCE", + "RDS_DB_CLUSTER", + "REDSHIFT_CLUSTER", + "ROUTE53_HOSTED_ZONE", + "ROUTE53_HEALTH_CHECK", + "S3_BUCKET", + "SAGEMAKER_ENDPOINT", + "SNS_TOPIC", + "SQS_QUEUE", + "STEP_FUNCTIONS_ACTIVITY", + "STEP_FUNCTIONS_STATE_MACHINE" + ] + }, + "ResourceTypeFilters":{ + "type":"list", + "member":{"shape":"ResourceTypeFilter"} + }, "RetryAfterSeconds":{"type":"integer"}, "SearchInsightsAccountIdList":{ "type":"list", @@ -3154,6 +3553,10 @@ "Insight":{ "shape":"ServiceInsightHealth", "documentation":"

Represents the health of an Amazon Web Services service. This is a ServiceInsightHealth that contains the number of open proactive and reactive insights for this service.

" + }, + "AnalyzedResourceCount":{ + "shape":"AnalyzedResourceCount", + "documentation":"

Number of resources that DevOps Guru is monitoring in an analyzed Amazon Web Services service.

" } }, "documentation":"

Represents the health of an Amazon Web Services service.

" @@ -3182,6 +3585,10 @@ "OpsCenter":{ "shape":"OpsCenterIntegration", "documentation":"

Information about whether DevOps Guru is configured to create an OpsItem in Amazon Web Services Systems Manager OpsCenter for each created insight.

" + }, + "LogsAnomalyDetection":{ + "shape":"LogsAnomalyDetectionIntegration", + "documentation":"

Information about whether DevOps Guru is configured to perform log anomaly detection on Amazon CloudWatch log groups.

" } }, "documentation":"

Information about the integration of DevOps Guru with another Amazon Web Services service, such as Amazon Web Services Systems Manager.

" @@ -3328,14 +3735,14 @@ "members":{ "AppBoundaryKey":{ "shape":"AppBoundaryKey", - "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" }, "TagValues":{ "shape":"TagValues", "documentation":"

The values in an Amazon Web Services tag collection.

The tag's value is an optional field used to associate a string with the tag key (for example, 111122223333, Production, or a team name). The key and value are the tag's key pair. Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive. You can specify a maximum of 256 characters for a tag value.

" } }, - "documentation":"

A collection of Amazon Web Services stags.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

A collection of Amazon Web Services tags.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" }, "TagCollectionFilter":{ "type":"structure", @@ -3346,7 +3753,7 @@ "members":{ "AppBoundaryKey":{ "shape":"AppBoundaryKey", - "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" }, "TagValues":{ "shape":"TagValues", @@ -3372,7 +3779,7 @@ "members":{ "AppBoundaryKey":{ "shape":"AppBoundaryKey", - "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" }, "TagValues":{ "shape":"CostEstimationTagValues", @@ -3390,7 +3797,7 @@ "members":{ "AppBoundaryKey":{ "shape":"AppBoundaryKey", - "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" }, "TagValue":{ "shape":"TagValue", @@ -3399,6 +3806,10 @@ "Insight":{ "shape":"InsightHealth", "documentation":"

Information about the health of the Amazon Web Services resources in your account that are specified by an Amazon Web Services tag, including the number of open proactive, open reactive insights, and the Mean Time to Recover (MTTR) of closed insights.

" + }, + "AnalyzedResourceCount":{ + "shape":"AnalyzedResourceCount", + "documentation":"

Number of resources that DevOps Guru is monitoring in your account that are specified by an Amazon Web Services tag.

" } }, "documentation":"

Information about the health of Amazon Web Services resources in your account that are specified by an Amazon Web Services tag key.

" @@ -3506,7 +3917,7 @@ }, "Tags":{ "shape":"UpdateTagCollectionFilters", - "documentation":"

The updated Amazon Web Services tags used to filter the resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

The updated Amazon Web Services tags used to filter the resources in the resource collection.

Tags help you identify and organize your Amazon Web Services resources. Many Amazon Web Services services support tagging, so you can assign the same tag to resources from different services to indicate that the resources are related. For example, you can assign the same tag to an Amazon DynamoDB table resource that you assign to an Lambda function. For more information about using tags, see the Tagging best practices whitepaper.

Each Amazon Web Services tag has two parts.

  • A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case-sensitive.

  • An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case-sensitive.

Together these are known as key-value pairs.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" } }, "documentation":"

Contains information used to update a collection of Amazon Web Services resources.

" @@ -3533,7 +3944,11 @@ "UpdateServiceIntegrationConfig":{ "type":"structure", "members":{ - "OpsCenter":{"shape":"OpsCenterIntegrationConfig"} + "OpsCenter":{"shape":"OpsCenterIntegrationConfig"}, + "LogsAnomalyDetection":{ + "shape":"LogsAnomalyDetectionIntegrationConfig", + "documentation":"

Information about whether DevOps Guru is configured to perform log anomaly detection on Amazon CloudWatch log groups.

" + } }, "documentation":"

Information about updating the integration status of an Amazon Web Services service, such as Amazon Web Services Systems Manager, with DevOps Guru.

" }, @@ -3567,7 +3982,7 @@ "members":{ "AppBoundaryKey":{ "shape":"AppBoundaryKey", - "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be Devops-guru-deployment-application or Devops-guru-rds-application. While keys are case-sensitive, the case of key characters don't matter to DevOps Guru. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" + "documentation":"

An Amazon Web Services tag key that is used to identify the Amazon Web Services resources that DevOps Guru analyzes. All Amazon Web Services resources in your account and Region tagged with this key make up your DevOps Guru application and analysis boundary.

The string used for a key in a tag that you use to define your resource coverage must begin with the prefix Devops-guru-. The tag key might be DevOps-Guru-deployment-application or devops-guru-rds-application. When you create a key, the case of characters in the key can be whatever you choose. After you create a key, it is case-sensitive. For example, DevOps Guru works with a key named devops-guru-rds and a key named DevOps-Guru-RDS, and these act as two different keys. Possible key/value pairs in your application might be Devops-Guru-production-application/RDS or Devops-Guru-production-application/containers.

" }, "TagValues":{ "shape":"UpdateTagValues", diff --git a/botocore/data/directconnect/2012-10-25/endpoint-rule-set-1.json b/botocore/data/directconnect/2012-10-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..58989c64 --- /dev/null +++ b/botocore/data/directconnect/2012-10-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://directconnect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://directconnect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://directconnect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://directconnect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/discovery/2015-11-01/endpoint-rule-set-1.json b/botocore/data/discovery/2015-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..e0555493 --- /dev/null +++ b/botocore/data/discovery/2015-11-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://discovery-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://discovery-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://discovery.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://discovery.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/discovery/2015-11-01/service-2.json b/botocore/data/discovery/2015-11-01/service-2.json index 7cd212e8..d569f983 100644 --- a/botocore/data/discovery/2015-11-01/service-2.json +++ b/botocore/data/discovery/2015-11-01/service-2.json @@ -898,6 +898,27 @@ }, "documentation":"

Inventory data for installed discovery agents.

" }, + "CustomerAgentlessCollectorInfo":{ + "type":"structure", + "required":[ + "activeAgentlessCollectors", + "healthyAgentlessCollectors", + "denyListedAgentlessCollectors", + "shutdownAgentlessCollectors", + "unhealthyAgentlessCollectors", + "totalAgentlessCollectors", + "unknownAgentlessCollectors" + ], + "members":{ + "activeAgentlessCollectors":{"shape":"Integer"}, + "healthyAgentlessCollectors":{"shape":"Integer"}, + "denyListedAgentlessCollectors":{"shape":"Integer"}, + "shutdownAgentlessCollectors":{"shape":"Integer"}, + "unhealthyAgentlessCollectors":{"shape":"Integer"}, + "totalAgentlessCollectors":{"shape":"Integer"}, + "unknownAgentlessCollectors":{"shape":"Integer"} + } + }, "CustomerConnectorInfo":{ "type":"structure", "required":[ @@ -1466,7 +1487,8 @@ "meCollectorSummary":{ "shape":"CustomerMeCollectorInfo", "documentation":"

Details about Migration Evaluator collectors, including collector status and health.

" - } + }, + "agentlessCollectorSummary":{"shape":"CustomerAgentlessCollectorInfo"} } }, "HomeRegionNotSetException":{ @@ -1603,7 +1625,7 @@ "type":"string", "max":4000, "min":1, - "pattern":"\\S+:\\/\\/\\S+\\/[\\s\\S]*\\S[\\s\\S]*" + "pattern":"\\S+://\\S+/[\\s\\S]*\\S[\\s\\S]*" }, "Integer":{"type":"integer"}, "InvalidParameterException":{ diff --git a/botocore/data/dlm/2018-01-12/endpoint-rule-set-1.json b/botocore/data/dlm/2018-01-12/endpoint-rule-set-1.json new file mode 100644 index 00000000..bd1b5a1d --- /dev/null +++ b/botocore/data/dlm/2018-01-12/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dlm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dlm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dlm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://dlm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/dlm/2018-01-12/service-2.json b/botocore/data/dlm/2018-01-12/service-2.json index 5cc75f7a..b85372d3 100644 --- a/botocore/data/dlm/2018-01-12/service-2.json +++ b/botocore/data/dlm/2018-01-12/service-2.json @@ -41,7 +41,7 @@ {"shape":"InternalServerException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Deletes the specified lifecycle policy and halts the automated operations that the policy specified.

" + "documentation":"

Deletes the specified lifecycle policy and halts the automated operations that the policy specified.

For more information about deleting a policy, see Delete lifecycle policies.

" }, "GetLifecyclePolicies":{ "name":"GetLifecyclePolicies", @@ -133,7 +133,7 @@ {"shape":"InternalServerException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Updates the specified lifecycle policy.

" + "documentation":"

Updates the specified lifecycle policy.

For more information about updating a policy, see Modify lifecycle policies.

" } }, "shapes":{ @@ -153,7 +153,7 @@ "documentation":"

The rule for copying shared snapshots across Regions.

" } }, - "documentation":"

Specifies an action for an event-based policy.

" + "documentation":"

[Event-based policies only] Specifies an action for an event-based policy.

" }, "ActionList":{ "type":"list", @@ -167,6 +167,28 @@ "min":0, "pattern":"[0-9A-Za-z _-]+" }, + "ArchiveRetainRule":{ + "type":"structure", + "required":["RetentionArchiveTier"], + "members":{ + "RetentionArchiveTier":{ + "shape":"RetentionArchiveTier", + "documentation":"

Information about retention period in the Amazon EBS Snapshots Archive. For more information, see Archive Amazon EBS snapshots.

" + } + }, + "documentation":"

[Snapshot policies only] Specifies information about the archive storage tier retention period.

" + }, + "ArchiveRule":{ + "type":"structure", + "required":["RetainRule"], + "members":{ + "RetainRule":{ + "shape":"ArchiveRetainRule", + "documentation":"

Information about the retention period for the snapshot archiving rule.

" + } + }, + "documentation":"

[Snapshot policies only] Specifies a snapshot archiving rule for a schedule.

" + }, "AvailabilityZone":{ "type":"string", "max":16, @@ -243,7 +265,7 @@ "members":{ "Location":{ "shape":"LocationValues", - "documentation":"

Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify CLOUD. To create snapshots on the same Outpost as the source resource, specify OUTPOST_LOCAL. If you omit this parameter, CLOUD is used by default.

If the policy targets resources in an Amazon Web Services Region, then you must create snapshots in the same Region as the source resource.

If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost.

" + "documentation":"

[Snapshot policies only] Specifies the destination for snapshots created by the policy. To create snapshots in the same Region as the source resource, specify CLOUD. To create snapshots on the same Outpost as the source resource, specify OUTPOST_LOCAL. If you omit this parameter, CLOUD is used by default.

If the policy targets resources in an Amazon Web Services Region, then you must create snapshots in the same Region as the source resource. If the policy targets resources on an Outpost, then you can create snapshots on the same Outpost as the source resource, or in the Region of that Outpost.

" }, "Interval":{ "shape":"Interval", @@ -255,14 +277,14 @@ }, "Times":{ "shape":"TimesList", - "documentation":"

The time, in UTC, to start the operation. The supported format is hh:mm.

The operation occurs within a one-hour window following the specified time. If you do not specify a time, Amazon DLM selects a time within the next 24 hours.

" + "documentation":"

The time, in UTC, to start the operation. The supported format is hh:mm.

The operation occurs within a one-hour window following the specified time. If you do not specify a time, Amazon Data Lifecycle Manager selects a time within the next 24 hours.

" }, "CronExpression":{ "shape":"CronExpression", "documentation":"

The schedule, as a Cron expression. The schedule interval must be between 1 hour and 1 year. For more information, see Cron expressions in the Amazon CloudWatch User Guide.

" } }, - "documentation":"

Specifies when to create snapshots of EBS volumes.

You must specify either a Cron expression or an interval, interval unit, and start time. You cannot specify both.

" + "documentation":"

[Snapshot and AMI policies only] Specifies when the policy should create snapshots or AMIs.

  • You must specify either CronExpression, or Interval, IntervalUnit, and Times.

  • If you need to specify an ArchiveRule for the schedule, then you must specify a creation frequency of at least 28 days.

" }, "CronExpression":{ "type":"string", @@ -287,7 +309,7 @@ }, "RetainRule":{"shape":"CrossRegionCopyRetainRule"} }, - "documentation":"

Specifies a rule for copying shared snapshots across Regions.

" + "documentation":"

[Event-based policies only] Specifies a cross-Region copy action for event-based policies.

To specify a cross-Region copy rule for snapshot and AMI policies, use CrossRegionCopyRule.

" }, "CrossRegionCopyActionList":{ "type":"list", @@ -304,24 +326,24 @@ }, "IntervalUnit":{ "shape":"RetentionIntervalUnitValues", - "documentation":"

The unit of time in which to measure the Interval.

" + "documentation":"

The unit of time in which to measure the Interval. For example, to deprecate a cross-Region AMI copy after 3 months, specify Interval=3 and IntervalUnit=MONTHS.

" } }, - "documentation":"

Specifies an AMI deprecation rule for cross-Region AMI copies created by a cross-Region copy rule.

" + "documentation":"

[AMI policies only] Specifies an AMI deprecation rule for cross-Region AMI copies created by an AMI policy.

" }, "CrossRegionCopyRetainRule":{ "type":"structure", "members":{ "Interval":{ "shape":"Interval", - "documentation":"

The amount of time to retain each snapshot. The maximum is 100 years. This is equivalent to 1200 months, 5200 weeks, or 36500 days.

" + "documentation":"

The amount of time to retain a cross-Region snapshot or AMI copy. The maximum is 100 years. This is equivalent to 1200 months, 5200 weeks, or 36500 days.

" }, "IntervalUnit":{ "shape":"RetentionIntervalUnitValues", - "documentation":"

The unit of time for time-based retention.

" + "documentation":"

The unit of time for time-based retention. For example, to retain a cross-Region copy for 3 months, specify Interval=3 and IntervalUnit=MONTHS.

" } }, - "documentation":"

Specifies the retention rule for cross-Region snapshot copies.

" + "documentation":"

Specifies a retention rule for cross-Region snapshot copies created by snapshot or event-based policies, or cross-Region AMI copies created by AMI policies. After the retention period expires, the cross-Region copy is deleted.

" }, "CrossRegionCopyRule":{ "type":"structure", @@ -329,7 +351,7 @@ "members":{ "TargetRegion":{ "shape":"TargetRegion", - "documentation":"

Avoid using this parameter when creating new policies. Instead, use Target to specify a target Region or a target Outpost for snapshot copies.

For policies created before the Target parameter was introduced, this parameter indicates the target Region for snapshot copies.

" + "documentation":"

Avoid using this parameter when creating new policies. Instead, use Target to specify a target Region or a target Outpost for snapshot copies.

For policies created before the Target parameter was introduced, this parameter indicates the target Region for snapshot copies.

" }, "Target":{ "shape":"Target", @@ -345,18 +367,18 @@ }, "CopyTags":{ "shape":"CopyTagsNullable", - "documentation":"

Indicates whether to copy all user-defined tags from the source snapshot to the cross-Region snapshot copy.

" + "documentation":"

Indicates whether to copy all user-defined tags from the source snapshot or AMI to the cross-Region copy.

" }, "RetainRule":{ "shape":"CrossRegionCopyRetainRule", - "documentation":"

The retention rule that indicates how long snapshot copies are to be retained in the destination Region.

" + "documentation":"

The retention rule that indicates how long the cross-Region snapshot or AMI copies are to be retained in the destination Region.

" }, "DeprecateRule":{ "shape":"CrossRegionCopyDeprecateRule", - "documentation":"

The AMI deprecation rule for cross-Region AMI copies created by the rule.

" + "documentation":"

[AMI policies only] The AMI deprecation rule for cross-Region AMI copies created by the rule.

" } }, - "documentation":"

Specifies a rule for cross-Region snapshot copies.

" + "documentation":"

[Snapshot and AMI policies only] Specifies a cross-Region copy rule for snapshot and AMI policies.

To specify a cross-Region copy action for event-based polices, use CrossRegionCopyAction.

" }, "CrossRegionCopyRules":{ "type":"list", @@ -397,7 +419,7 @@ "documentation":"

The unit of time in which to measure the Interval.

" } }, - "documentation":"

Specifies an AMI deprecation rule for a schedule.

" + "documentation":"

[AMI policies only] Specifies an AMI deprecation rule for AMIs created by an AMI lifecycle policy.

For age-based schedules, you must specify Interval and IntervalUnit. For count-based schedules, you must specify Count.

" }, "DescriptionRegex":{ "type":"string", @@ -419,7 +441,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the KMS key to use for EBS encryption. If this parameter is not specified, the default KMS key for the account is used.

" } }, - "documentation":"

Specifies the encryption settings for shared snapshots that are copied across Regions.

" + "documentation":"

[Event-based policies only] Specifies the encryption settings for cross-Region snapshot copies created by event-based policies.

" }, "ErrorCode":{"type":"string"}, "ErrorMessage":{"type":"string"}, @@ -444,7 +466,7 @@ "documentation":"

The snapshot description that can trigger the policy. The description pattern is specified using a regular expression. The policy runs only if a snapshot with a description that matches the specified pattern is shared with your account.

For example, specifying ^.*Created for policy: policy-1234567890abcdef0.*$ configures the policy to run only if snapshots created by policy policy-1234567890abcdef0 are shared with your account.

" } }, - "documentation":"

Specifies an event that triggers an event-based policy.

" + "documentation":"

[Event-based policies only] Specifies an event that activates an event-based policy.

" }, "EventSource":{ "type":"structure", @@ -459,7 +481,7 @@ "documentation":"

Information about the event.

" } }, - "documentation":"

Specifies an event that triggers an event-based policy.

" + "documentation":"

[Event-based policies only] Specifies an event that activates an event-based policy.

" }, "EventSourceValues":{ "type":"string", @@ -470,6 +492,12 @@ "enum":["shareSnapshot"] }, "ExcludeBootVolume":{"type":"boolean"}, + "ExcludeDataVolumeTagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":0 + }, "ExecutionRoleArn":{ "type":"string", "max":2048, @@ -497,7 +525,7 @@ "documentation":"

The Availability Zones in which to enable fast snapshot restore.

" } }, - "documentation":"

Specifies a rule for enabling fast snapshot restore. You can enable fast snapshot restore based on either a count or a time interval.

" + "documentation":"

[Snapshot policies only] Specifies a rule for enabling fast snapshot restore for snapshots created by snapshot policies. You can enable fast snapshot restore based on either a count or a time interval.

" }, "GetLifecyclePoliciesRequest":{ "type":"structure", @@ -652,7 +680,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the policy.

" } }, - "documentation":"

Detailed information about a lifecycle policy.

" + "documentation":"

[All policy types] Detailed information about a snapshot, AMI, or event-based lifecycle policy.

" }, "LifecyclePolicySummary":{ "type":"structure", @@ -675,7 +703,7 @@ }, "PolicyType":{ "shape":"PolicyTypeValues", - "documentation":"

The type of policy. EBS_SNAPSHOT_MANAGEMENT indicates that the policy manages the lifecycle of Amazon EBS snapshots. IMAGE_MANAGEMENT indicates that the policy manages the lifecycle of EBS-backed AMIs.

" + "documentation":"

The type of policy. EBS_SNAPSHOT_MANAGEMENT indicates that the policy manages the lifecycle of Amazon EBS snapshots. IMAGE_MANAGEMENT indicates that the policy manages the lifecycle of EBS-backed AMIs. EVENT_BASED_POLICY indicates that the policy automates cross-account snapshot copies for snapshots that are shared with your account.

" } }, "documentation":"

Summary information about a lifecycle policy.

" @@ -737,14 +765,18 @@ "members":{ "ExcludeBootVolume":{ "shape":"ExcludeBootVolume", - "documentation":"

[EBS Snapshot Management – Instance policies only] Indicates whether to exclude the root volume from snapshots created using CreateSnapshots. The default is false.

" + "documentation":"

[Snapshot policies that target instances only] Indicates whether to exclude the root volume from multi-volume snapshot sets. The default is false. If you specify true, then the root volumes attached to targeted instances will be excluded from the multi-volume snapshot sets created by the policy.

" }, "NoReboot":{ "shape":"NoReboot", - "documentation":"

Applies to AMI lifecycle policies only. Indicates whether targeted instances are rebooted when the lifecycle policy runs. true indicates that targeted instances are not rebooted when the policy runs. false indicates that target instances are rebooted when the policy runs. The default is true (instances are not rebooted).

" + "documentation":"

[AMI policies only] Indicates whether targeted instances are rebooted when the lifecycle policy runs. true indicates that targeted instances are not rebooted when the policy runs. false indicates that target instances are rebooted when the policy runs. The default is true (instances are not rebooted).

" + }, + "ExcludeDataVolumeTags":{ + "shape":"ExcludeDataVolumeTagList", + "documentation":"

[Snapshot policies that target instances only] The tags used to identify data (non-root) volumes to exclude from multi-volume snapshot sets.

If you create a snapshot lifecycle policy that targets instances and you specify tags for this parameter, then data volumes with the specified tags that are attached to targeted instances will be excluded from the multi-volume snapshot sets created by the policy.

" } }, - "documentation":"

Specifies optional parameters to add to a policy. The set of valid parameters depends on the combination of policy type and resource type.

" + "documentation":"

[Snapshot and AMI policies only] Specifies optional parameters for snapshot and AMI policies. The set of valid parameters depends on the combination of policy type and target resource type.

If you choose to exclude boot volumes and you specify tags that consequently exclude all of the additional data volumes attached to an instance, then Amazon Data Lifecycle Manager will not create any snapshots for the affected instance, and it will emit a SnapshotsCreateFailed Amazon CloudWatch metric. For more information, see Monitor your policies using Amazon CloudWatch.

" }, "PolicyArn":{ "type":"string", @@ -763,38 +795,38 @@ "members":{ "PolicyType":{ "shape":"PolicyTypeValues", - "documentation":"

The valid target resource types and actions a policy can manage. Specify EBS_SNAPSHOT_MANAGEMENT to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify IMAGE_MANAGEMENT to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify EVENT_BASED_POLICY to create an event-based policy that performs specific actions when a defined event occurs in your Amazon Web Services account.

The default is EBS_SNAPSHOT_MANAGEMENT.

" + "documentation":"

[All policy types] The valid target resource types and actions a policy can manage. Specify EBS_SNAPSHOT_MANAGEMENT to create a lifecycle policy that manages the lifecycle of Amazon EBS snapshots. Specify IMAGE_MANAGEMENT to create a lifecycle policy that manages the lifecycle of EBS-backed AMIs. Specify EVENT_BASED_POLICY to create an event-based policy that performs specific actions when a defined event occurs in your Amazon Web Services account.

The default is EBS_SNAPSHOT_MANAGEMENT.

" }, "ResourceTypes":{ "shape":"ResourceTypeValuesList", - "documentation":"

The target resource type for snapshot and AMI lifecycle policies. Use VOLUME to create snapshots of individual volumes or use INSTANCE to create multi-volume snapshots from the volumes for an instance.

This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.

" + "documentation":"

[Snapshot policies only] The target resource type for snapshot and AMI lifecycle policies. Use VOLUME to create snapshots of individual volumes or use INSTANCE to create multi-volume snapshots from the volumes for an instance.

" }, "ResourceLocations":{ "shape":"ResourceLocationList", - "documentation":"

The location of the resources to backup. If the source resources are located in an Amazon Web Services Region, specify CLOUD. If the source resources are located on an Outpost in your account, specify OUTPOST.

If you specify OUTPOST, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account.

" + "documentation":"

[Snapshot and AMI policies only] The location of the resources to backup. If the source resources are located in an Amazon Web Services Region, specify CLOUD. If the source resources are located on an Outpost in your account, specify OUTPOST.

If you specify OUTPOST, Amazon Data Lifecycle Manager backs up all resources of the specified type with matching target tags across all of the Outposts in your account.

" }, "TargetTags":{ "shape":"TargetTagList", - "documentation":"

The single tag that identifies targeted resources for this policy.

This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.

" + "documentation":"

[Snapshot and AMI policies only] The single tag that identifies targeted resources for this policy.

" }, "Schedules":{ "shape":"ScheduleList", - "documentation":"

The schedules of policy-defined actions for snapshot and AMI lifecycle policies. A policy can have up to four schedules—one mandatory schedule and up to three optional schedules.

This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.

" + "documentation":"

[Snapshot and AMI policies only] The schedules of policy-defined actions for snapshot and AMI lifecycle policies. A policy can have up to four schedules—one mandatory schedule and up to three optional schedules.

" }, "Parameters":{ "shape":"Parameters", - "documentation":"

A set of optional parameters for snapshot and AMI lifecycle policies.

This parameter is required for snapshot and AMI policies only. If you are creating an event-based policy, omit this parameter.

" + "documentation":"

[Snapshot and AMI policies only] A set of optional parameters for snapshot and AMI lifecycle policies.

If you are modifying a policy that was created or previously modified using the Amazon Data Lifecycle Manager console, then you must include this parameter and specify either the default values or the new values that you require. You can't omit this parameter or set its values to null.

" }, "EventSource":{ "shape":"EventSource", - "documentation":"

The event that triggers the event-based policy.

This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter.

" + "documentation":"

[Event-based policies only] The event that activates the event-based policy.

" }, "Actions":{ "shape":"ActionList", - "documentation":"

The actions to be performed when the event-based policy is triggered. You can specify only one action per policy.

This parameter is required for event-based policies only. If you are creating a snapshot or AMI policy, omit this parameter.

" + "documentation":"

[Event-based policies only] The actions to be performed when the event-based policy is activated. You can specify only one action per policy.

" } }, - "documentation":"

Specifies the configuration of a lifecycle policy.

" + "documentation":"

[All policy types] Specifies the configuration of a lifecycle policy.

" }, "PolicyId":{ "type":"string", @@ -862,19 +894,37 @@ "type":"structure", "members":{ "Count":{ - "shape":"Count", - "documentation":"

The number of snapshots to retain for each volume, up to a maximum of 1000.

" + "shape":"StandardTierRetainRuleCount", + "documentation":"

The number of snapshots to retain for each volume, up to a maximum of 1000. For example if you want to retain a maximum of three snapshots, specify 3. When the fourth snapshot is created, the oldest retained snapshot is deleted, or it is moved to the archive tier if you have specified an ArchiveRule.

" }, "Interval":{ - "shape":"Interval", + "shape":"StandardTierRetainRuleInterval", "documentation":"

The amount of time to retain each snapshot. The maximum is 100 years. This is equivalent to 1200 months, 5200 weeks, or 36500 days.

" }, "IntervalUnit":{ "shape":"RetentionIntervalUnitValues", - "documentation":"

The unit of time for time-based retention.

" + "documentation":"

The unit of time for time-based retention. For example, to retain snapshots for 3 months, specify Interval=3 and IntervalUnit=MONTHS. Once the snapshot has been retained for 3 months, it is deleted, or it is moved to the archive tier if you have specified an ArchiveRule.

" } }, - "documentation":"

Specifies the retention rule for a lifecycle policy. You can retain snapshots based on either a count or a time interval.

" + "documentation":"

[Snapshot and AMI policies only] Specifies a retention rule for snapshots created by snapshot policies, or for AMIs created by AMI policies.

For snapshot policies that have an ArchiveRule, this retention rule applies to standard tier retention. When the retention threshold is met, snapshots are moved from the standard to the archive tier.

For snapshot policies that do not have an ArchiveRule, snapshots are permanently deleted when this retention threshold is met.

You can retain snapshots based on either a count or a time interval.

  • Count-based retention

    You must specify Count. If you specify an ArchiveRule for the schedule, then you can specify a retention count of 0 to archive snapshots immediately after creation. If you specify a FastRestoreRule, ShareRule, or a CrossRegionCopyRule, then you must specify a retention count of 1 or more.

  • Age-based retention

    You must specify Interval and IntervalUnit. If you specify an ArchiveRule for the schedule, then you can specify a retention interval of 0 days to archive snapshots immediately after creation. If you specify a FastRestoreRule, ShareRule, or a CrossRegionCopyRule, then you must specify a retention interval of 1 day or more.

" + }, + "RetentionArchiveTier":{ + "type":"structure", + "members":{ + "Count":{ + "shape":"Count", + "documentation":"

The maximum number of snapshots to retain in the archive storage tier for each volume. The count must ensure that each snapshot remains in the archive tier for at least 90 days. For example, if the schedule creates snapshots every 30 days, you must specify a count of 3 or more to ensure that each snapshot is archived for at least 90 days.

" + }, + "Interval":{ + "shape":"Interval", + "documentation":"

Specifies the period of time to retain snapshots in the archive tier. After this period expires, the snapshot is permanently deleted.

" + }, + "IntervalUnit":{ + "shape":"RetentionIntervalUnitValues", + "documentation":"

The unit of time in which to measure the Interval. For example, to retain a snapshots in the archive tier for 6 months, specify Interval=6 and IntervalUnit=MONTHS.

" + } + }, + "documentation":"

[Snapshot policies only] Describes the retention rule for archived snapshots. Once the archive retention threshold is met, the snapshots are permanently deleted from the archive tier.

The archive retention rule must retain snapshots in the archive tier for a minimum of 90 days.

For count-based schedules, you must specify Count. For age-based schedules, you must specify Interval and IntervalUnit.

For more information about using snapshot archiving, see Considerations for snapshot lifecycle policies.

" }, "RetentionIntervalUnitValues":{ "type":"string", @@ -902,7 +952,7 @@ }, "VariableTags":{ "shape":"VariableTagsList", - "documentation":"

A collection of key/value pairs with values determined dynamically when the policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in one of the two following formats: $(instance-id) or $(timestamp). Variable tags are only valid for EBS Snapshot Management – Instance policies.

" + "documentation":"

[AMI policies and snapshot policies that target instances only] A collection of key/value pairs with values determined dynamically when the policy is executed. Keys may be any valid Amazon EC2 tag key. Values must be in one of the two following formats: $(instance-id) or $(timestamp). Variable tags are only valid for EBS Snapshot Management – Instance policies.

" }, "CreateRule":{ "shape":"CreateRule", @@ -910,26 +960,30 @@ }, "RetainRule":{ "shape":"RetainRule", - "documentation":"

The retention rule.

" + "documentation":"

The retention rule for snapshots or AMIs created by the policy.

" }, "FastRestoreRule":{ "shape":"FastRestoreRule", - "documentation":"

The rule for enabling fast snapshot restore.

" + "documentation":"

[Snapshot policies only] The rule for enabling fast snapshot restore.

" }, "CrossRegionCopyRules":{ "shape":"CrossRegionCopyRules", - "documentation":"

The rule for cross-Region snapshot copies.

You can only specify cross-Region copy rules for policies that create snapshots in a Region. If the policy creates snapshots on an Outpost, then you cannot copy the snapshots to a Region or to an Outpost. If the policy creates snapshots in a Region, then snapshots can be copied to up to three Regions or Outposts.

" + "documentation":"

Specifies a rule for copying snapshots or AMIs across regions.

You can't specify cross-Region copy rules for policies that create snapshots on an Outpost. If the policy creates snapshots in a Region, then snapshots can be copied to up to three Regions or Outposts.

" }, "ShareRules":{ "shape":"ShareRules", - "documentation":"

The rule for sharing snapshots with other Amazon Web Services accounts.

" + "documentation":"

[Snapshot policies only] The rule for sharing snapshots with other Amazon Web Services accounts.

" }, "DeprecateRule":{ "shape":"DeprecateRule", - "documentation":"

The AMI deprecation rule for the schedule.

" + "documentation":"

[AMI policies only] The AMI deprecation rule for the schedule.

" + }, + "ArchiveRule":{ + "shape":"ArchiveRule", + "documentation":"

[Snapshot policies that target volumes only] The snapshot archiving rule for the schedule. When you specify an archiving rule, snapshots are automatically moved from the standard tier to the archive tier once the schedule's retention threshold is met. Snapshots are then retained in the archive tier for the archive retention period that you specify.

For more information about using snapshot archiving, see Considerations for snapshot lifecycle policies.

" } }, - "documentation":"

Specifies a backup schedule for a snapshot or AMI lifecycle policy.

" + "documentation":"

[Snapshot and AMI policies only] Specifies a schedule for a snapshot or AMI lifecycle policy.

" }, "ScheduleList":{ "type":"list", @@ -967,7 +1021,7 @@ "documentation":"

The unit of time for the automatic unsharing interval.

" } }, - "documentation":"

Specifies a rule for sharing snapshots across Amazon Web Services accounts.

" + "documentation":"

[Snapshot policies only] Specifies a rule for sharing snapshots across Amazon Web Services accounts.

" }, "ShareRules":{ "type":"list", @@ -986,6 +1040,15 @@ "max":50, "min":0 }, + "StandardTierRetainRuleCount":{ + "type":"integer", + "max":1000, + "min":0 + }, + "StandardTierRetainRuleInterval":{ + "type":"integer", + "min":0 + }, "StatusMessage":{ "type":"string", "max":500, @@ -1187,5 +1250,5 @@ "min":0 } }, - "documentation":"Amazon Data Lifecycle Manager

With Amazon Data Lifecycle Manager, you can manage the lifecycle of your Amazon Web Services resources. You create lifecycle policies, which are used to automate operations on the specified resources.

Amazon DLM supports Amazon EBS volumes and snapshots. For information about using Amazon DLM with Amazon EBS, see Automating the Amazon EBS Snapshot Lifecycle in the Amazon EC2 User Guide.

" + "documentation":"Amazon Data Lifecycle Manager

With Amazon Data Lifecycle Manager, you can manage the lifecycle of your Amazon Web Services resources. You create lifecycle policies, which are used to automate operations on the specified resources.

Amazon Data Lifecycle Manager supports Amazon EBS volumes and snapshots. For information about using Amazon Data Lifecycle Manager with Amazon EBS, see Amazon Data Lifecycle Manager in the Amazon EC2 User Guide.

" } diff --git a/botocore/data/dms/2016-01-01/endpoint-rule-set-1.json b/botocore/data/dms/2016-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..86a1825e --- /dev/null +++ b/botocore/data/dms/2016-01-01/endpoint-rule-set-1.json @@ -0,0 +1,466 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dms" + ] + } + ], + "endpoint": { + "url": "https://dms-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dms" + ] + } + ], + "endpoint": { + "url": "https://dms.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dms" + ] + } + ], + "endpoint": { + "url": "https://dms.us-iso-east-1.c2s.ic.gov", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-iso", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dms" + ] + } + ], + "endpoint": { + "url": "https://dms.us-isob-east-1.sc2s.sgov.gov", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-iso-b", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dms.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://dms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/dms/2016-01-01/examples-1.json b/botocore/data/dms/2016-01-01/examples-1.json index 295fccf2..f9e8c4e5 100644 --- a/botocore/data/dms/2016-01-01/examples-1.json +++ b/botocore/data/dms/2016-01-01/examples-1.json @@ -250,6 +250,27 @@ "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": { diff --git a/botocore/data/dms/2016-01-01/service-2.json b/botocore/data/dms/2016-01-01/service-2.json index 15fce61c..34eeb4e2 100644 --- a/botocore/data/dms/2016-01-01/service-2.json +++ b/botocore/data/dms/2016-01-01/service-2.json @@ -94,6 +94,23 @@ ], "documentation":"

Creates an DMS event notification subscription.

You can specify the type of source (SourceType) you want to be notified of, provide a list of DMS source IDs (SourceIds) that triggers the events, and provide a list of event categories (EventCategories) for events you want to be notified of. If you specify both the SourceType and SourceIds, such as SourceType = replication-instance and SourceIdentifier = my-replinstance, you will be notified of all the replication instance events for the specified source. If you specify a SourceType but don't specify a SourceIdentifier, you receive notice of the events for that source type for all your DMS sources. If you don't specify either SourceType nor SourceIdentifier, you will be notified of events generated from all DMS sources belonging to your customer account.

For more information about DMS events, see Working with Events and Notifications in the Database Migration Service User Guide.

" }, + "CreateFleetAdvisorCollector":{ + "name":"CreateFleetAdvisorCollector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateFleetAdvisorCollectorRequest"}, + "output":{"shape":"CreateFleetAdvisorCollectorResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"}, + {"shape":"AccessDeniedFault"}, + {"shape":"S3AccessDeniedFault"}, + {"shape":"S3ResourceNotFoundFault"}, + {"shape":"ResourceQuotaExceededFault"} + ], + "documentation":"

Creates a Fleet Advisor collector using the specified parameters.

" + }, "CreateReplicationInstance":{ "name":"CreateReplicationInstance", "http":{ @@ -209,6 +226,33 @@ ], "documentation":"

Deletes an DMS event subscription.

" }, + "DeleteFleetAdvisorCollector":{ + "name":"DeleteFleetAdvisorCollector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCollectorRequest"}, + "errors":[ + {"shape":"InvalidResourceStateFault"}, + {"shape":"CollectorNotFoundFault"} + ], + "documentation":"

Deletes the specified Fleet Advisor collector.

" + }, + "DeleteFleetAdvisorDatabases":{ + "name":"DeleteFleetAdvisorDatabases", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteFleetAdvisorDatabasesRequest"}, + "output":{"shape":"DeleteFleetAdvisorDatabasesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundFault"}, + {"shape":"InvalidOperationFault"} + ], + "documentation":"

Deletes the specified Fleet Advisor collector databases.

" + }, "DeleteReplicationInstance":{ "name":"DeleteReplicationInstance", "http":{ @@ -383,6 +427,71 @@ "output":{"shape":"DescribeEventsResponse"}, "documentation":"

Lists events for a given source identifier and source type. You can also specify a start and end time. For more information on DMS events, see Working with Events and Notifications in the Database Migration Service User Guide.

" }, + "DescribeFleetAdvisorCollectors":{ + "name":"DescribeFleetAdvisorCollectors", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFleetAdvisorCollectorsRequest"}, + "output":{"shape":"DescribeFleetAdvisorCollectorsResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"} + ], + "documentation":"

Returns a list of the Fleet Advisor collectors in your account.

" + }, + "DescribeFleetAdvisorDatabases":{ + "name":"DescribeFleetAdvisorDatabases", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFleetAdvisorDatabasesRequest"}, + "output":{"shape":"DescribeFleetAdvisorDatabasesResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"} + ], + "documentation":"

Returns a list of Fleet Advisor databases in your account.

" + }, + "DescribeFleetAdvisorLsaAnalysis":{ + "name":"DescribeFleetAdvisorLsaAnalysis", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFleetAdvisorLsaAnalysisRequest"}, + "output":{"shape":"DescribeFleetAdvisorLsaAnalysisResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"} + ], + "documentation":"

Provides descriptions of large-scale assessment (LSA) analyses produced by your Fleet Advisor collectors.

" + }, + "DescribeFleetAdvisorSchemaObjectSummary":{ + "name":"DescribeFleetAdvisorSchemaObjectSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFleetAdvisorSchemaObjectSummaryRequest"}, + "output":{"shape":"DescribeFleetAdvisorSchemaObjectSummaryResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"} + ], + "documentation":"

Provides descriptions of the schemas discovered by your Fleet Advisor collectors.

" + }, + "DescribeFleetAdvisorSchemas":{ + "name":"DescribeFleetAdvisorSchemas", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFleetAdvisorSchemasRequest"}, + "output":{"shape":"DescribeFleetAdvisorSchemasResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"} + ], + "documentation":"

Returns a list of schemas detected by Fleet Advisor Collectors in your account.

" + }, "DescribeOrderableReplicationInstances":{ "name":"DescribeOrderableReplicationInstances", "http":{ @@ -733,6 +842,19 @@ ], "documentation":"

Removes metadata tags from an DMS resource, including replication instance, endpoint, security group, and migration task. For more information, see Tag data type description.

" }, + "RunFleetAdvisorLsaAnalysis":{ + "name":"RunFleetAdvisorLsaAnalysis", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{"shape":"RunFleetAdvisorLsaAnalysisResponse"}, + "errors":[ + {"shape":"InvalidResourceStateFault"}, + {"shape":"ResourceNotFoundFault"} + ], + "documentation":"

Runs large-scale assessment (LSA) analysis on every Fleet Advisor collector in your account.

" + }, "StartReplicationTask":{ "name":"StartReplicationTask", "http":{ @@ -816,6 +938,20 @@ {"shape":"AccessDeniedFault"} ], "documentation":"

Tests the connection between the replication instance and the endpoint.

" + }, + "UpdateSubscriptionsToEventBridge":{ + "name":"UpdateSubscriptionsToEventBridge", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSubscriptionsToEventBridgeMessage"}, + "output":{"shape":"UpdateSubscriptionsToEventBridgeResponse"}, + "errors":[ + {"shape":"AccessDeniedFault"}, + {"shape":"InvalidResourceStateFault"} + ], + "documentation":"

Migrates 10 active and enabled Amazon SNS subscriptions at a time and converts them to corresponding Amazon EventBridge rules. By default, this operation migrates subscriptions only when all your replication instance versions are 3.4.6 or higher. If any replication instances are from versions earlier than 3.4.6, the operation raises an error and tells you to upgrade these instances to version 3.4.6 or higher. To enable migration regardless of version, set the Force option to true. However, if you don't upgrade instances earlier than version 3.4.6, some types of events might not be available when you use Amazon EventBridge.

To call this operation, make sure that you have certain permissions added to your user account. For more information, see Migrating event subscriptions to Amazon EventBridge in the Amazon Web Services Database Migration Service User Guide.

" } }, "shapes":{ @@ -1037,6 +1173,117 @@ "byte" ] }, + "CollectorHealthCheck":{ + "type":"structure", + "members":{ + "CollectorStatus":{ + "shape":"CollectorStatus", + "documentation":"

The status of the Fleet Advisor collector.

" + }, + "LocalCollectorS3Access":{ + "shape":"BooleanOptional", + "documentation":"

Whether the local collector can access its Amazon S3 bucket.

" + }, + "WebCollectorS3Access":{ + "shape":"BooleanOptional", + "documentation":"

Whether the web collector can access its Amazon S3 bucket.

" + }, + "WebCollectorGrantedRoleBasedAccess":{ + "shape":"BooleanOptional", + "documentation":"

Whether the role that you provided when creating the Fleet Advisor collector has sufficient permissions to access the Fleet Advisor web collector.

" + } + }, + "documentation":"

Describes the last Fleet Advisor collector health check.

" + }, + "CollectorNotFoundFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "documentation":"

The specified collector doesn't exist.

", + "exception":true + }, + "CollectorResponse":{ + "type":"structure", + "members":{ + "CollectorReferencedId":{ + "shape":"String", + "documentation":"

The reference ID of the Fleet Advisor collector.

" + }, + "CollectorName":{ + "shape":"String", + "documentation":"

The name of the Fleet Advisor collector .

" + }, + "CollectorVersion":{ + "shape":"String", + "documentation":"

The version of your Fleet Advisor collector, in semantic versioning format, for example 1.0.2

" + }, + "VersionStatus":{ + "shape":"VersionStatus", + "documentation":"

Whether the collector version is up to date.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A summary description of the Fleet Advisor collector.

" + }, + "S3BucketName":{ + "shape":"String", + "documentation":"

The Amazon S3 bucket that the Fleet Advisor collector uses to store inventory metadata.

" + }, + "ServiceAccessRoleArn":{ + "shape":"String", + "documentation":"

The IAM role that grants permissions to access the specified Amazon S3 bucket.

" + }, + "CollectorHealthCheck":{"shape":"CollectorHealthCheck"}, + "LastDataReceived":{ + "shape":"String", + "documentation":"

The timestamp of the last time the collector received data, in the following format: 2022-01-24T19:04:02.596113Z

" + }, + "RegisteredDate":{ + "shape":"String", + "documentation":"

The timestamp when DMS registered the collector, in the following format: 2022-01-24T19:04:02.596113Z

" + }, + "CreatedDate":{ + "shape":"String", + "documentation":"

The timestamp when you created the collector, in the following format: 2022-01-24T19:04:02.596113Z

" + }, + "ModifiedDate":{ + "shape":"String", + "documentation":"

The timestamp when DMS last modified the collector, in the following format: 2022-01-24T19:04:02.596113Z

" + }, + "InventoryData":{"shape":"InventoryData"} + }, + "documentation":"

Describes a Fleet Advisor collector.

" + }, + "CollectorResponses":{ + "type":"list", + "member":{"shape":"CollectorResponse"} + }, + "CollectorShortInfoResponse":{ + "type":"structure", + "members":{ + "CollectorReferencedId":{ + "shape":"String", + "documentation":"

The reference ID of the Fleet Advisor collector.

" + }, + "CollectorName":{ + "shape":"String", + "documentation":"

The name of the Fleet Advisor collector.

" + } + }, + "documentation":"

Briefly describes a Fleet Advisor collector.

" + }, + "CollectorStatus":{ + "type":"string", + "enum":[ + "UNREGISTERED", + "ACTIVE" + ] + }, + "CollectorsList":{ + "type":"list", + "member":{"shape":"CollectorShortInfoResponse"} + }, "CompressionTypeValue":{ "type":"string", "enum":[ @@ -1096,7 +1343,7 @@ }, "EngineName":{ "shape":"String", - "documentation":"

The type of engine for the endpoint. Valid values, depending on the EndpointType value, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"opensearch\", \"redshift\", \"s3\", \"db2\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"docdb\", \"sqlserver\", and \"neptune\".

" + "documentation":"

The type of engine for the endpoint. Valid values, depending on the EndpointType value, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"opensearch\", \"redshift\", \"s3\", \"db2\", \"db2-zos\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"docdb\", \"sqlserver\", \"neptune\", and \"babelfish\".

" }, "Username":{ "shape":"String", @@ -1116,7 +1363,7 @@ }, "DatabaseName":{ "shape":"String", - "documentation":"

The name of the endpoint database. For a MySQL source or target endpoint, do not specify DatabaseName.

" + "documentation":"

The name of the endpoint database. For a MySQL source or target endpoint, do not specify DatabaseName. To migrate to a specific database, use this setting and targetDbType.

" }, "ExtraConnectionAttributes":{ "shape":"String", @@ -1277,6 +1524,57 @@ }, "documentation":"

" }, + "CreateFleetAdvisorCollectorRequest":{ + "type":"structure", + "required":[ + "CollectorName", + "ServiceAccessRoleArn", + "S3BucketName" + ], + "members":{ + "CollectorName":{ + "shape":"String", + "documentation":"

The name of your Fleet Advisor collector (for example, sample-collector).

" + }, + "Description":{ + "shape":"String", + "documentation":"

A summary description of your Fleet Advisor collector.

" + }, + "ServiceAccessRoleArn":{ + "shape":"String", + "documentation":"

The IAM role that grants permissions to access the specified Amazon S3 bucket.

" + }, + "S3BucketName":{ + "shape":"String", + "documentation":"

The Amazon S3 bucket that the Fleet Advisor collector uses to store inventory metadata.

" + } + } + }, + "CreateFleetAdvisorCollectorResponse":{ + "type":"structure", + "members":{ + "CollectorReferencedId":{ + "shape":"String", + "documentation":"

The unique ID of the new Fleet Advisor collector, for example: 22fda70c-40d5-4acf-b233-a495bd8eb7f5

" + }, + "CollectorName":{ + "shape":"String", + "documentation":"

The name of the new Fleet Advisor collector.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A summary description of the Fleet Advisor collector.

" + }, + "ServiceAccessRoleArn":{ + "shape":"String", + "documentation":"

The IAM role that grants permissions to access the specified Amazon S3 bucket.

" + }, + "S3BucketName":{ + "shape":"String", + "documentation":"

The Amazon S3 bucket that the collector uses to store inventory metadata.

" + } + } + }, "CreateReplicationInstanceMessage":{ "type":"structure", "required":[ @@ -1343,6 +1641,10 @@ "ResourceIdentifier":{ "shape":"String", "documentation":"

A friendly name for the resource identifier at the end of the EndpointArn response parameter that is returned in the created Endpoint object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as Example-App-ARN1. For example, this value might result in the EndpointArn value arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1. If you don't specify a ResourceIdentifier value, DMS generates a default identifier value for the end of EndpointArn.

" + }, + "NetworkType":{ + "shape":"String", + "documentation":"

The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.

" } }, "documentation":"

" @@ -1477,6 +1779,100 @@ "parquet" ] }, + "DatabaseInstanceSoftwareDetailsResponse":{ + "type":"structure", + "members":{ + "Engine":{ + "shape":"String", + "documentation":"

The database engine of a database in a Fleet Advisor collector inventory, for example Microsoft SQL Server.

" + }, + "EngineVersion":{ + "shape":"String", + "documentation":"

The database engine version of a database in a Fleet Advisor collector inventory, for example 2019.

" + }, + "EngineEdition":{ + "shape":"String", + "documentation":"

The database engine edition of a database in a Fleet Advisor collector inventory, for example Express.

" + }, + "ServicePack":{ + "shape":"String", + "documentation":"

The service pack level of the database.

" + }, + "SupportLevel":{ + "shape":"String", + "documentation":"

The support level of the database, for example Mainstream support.

" + }, + "OsArchitecture":{ + "shape":"IntegerOptional", + "documentation":"

The operating system architecture of the database.

" + }, + "Tooltip":{ + "shape":"String", + "documentation":"

Information about the database engine software, for example Mainstream support ends on November 14th, 2024.

" + } + }, + "documentation":"

Describes an inventory database instance for a Fleet Advisor collector.

" + }, + "DatabaseList":{ + "type":"list", + "member":{"shape":"DatabaseResponse"} + }, + "DatabaseResponse":{ + "type":"structure", + "members":{ + "DatabaseId":{ + "shape":"String", + "documentation":"

The ID of a database in a Fleet Advisor collector inventory.

" + }, + "DatabaseName":{ + "shape":"String", + "documentation":"

The name of a database in a Fleet Advisor collector inventory.

" + }, + "IpAddress":{ + "shape":"String", + "documentation":"

The IP address of a database in a Fleet Advisor collector inventory.

" + }, + "NumberOfSchemas":{ + "shape":"LongOptional", + "documentation":"

The number of schemas in a Fleet Advisor collector inventory database.

" + }, + "Server":{ + "shape":"ServerShortInfoResponse", + "documentation":"

The server name of a database in a Fleet Advisor collector inventory.

" + }, + "SoftwareDetails":{ + "shape":"DatabaseInstanceSoftwareDetailsResponse", + "documentation":"

The software details of a database in a Fleet Advisor collector inventory, such as database engine and version.

" + }, + "Collectors":{ + "shape":"CollectorsList", + "documentation":"

A list of collectors associated with the database.

" + } + }, + "documentation":"

Describes a database in a Fleet Advisor collector inventory.

" + }, + "DatabaseShortInfoResponse":{ + "type":"structure", + "members":{ + "DatabaseId":{ + "shape":"String", + "documentation":"

The ID of a database in a Fleet Advisor collector inventory.

" + }, + "DatabaseName":{ + "shape":"String", + "documentation":"

The name of a database in a Fleet Advisor collector inventory.

" + }, + "DatabaseIpAddress":{ + "shape":"String", + "documentation":"

The IP address of a database in a Fleet Advisor collector inventory.

" + }, + "DatabaseEngine":{ + "shape":"String", + "documentation":"

The database engine of a database in a Fleet Advisor collector inventory, for example PostgreSQL.

" + } + }, + "documentation":"

Describes a database in a Fleet Advisor collector inventory.

" + }, "DatePartitionDelimiterValue":{ "type":"string", "enum":[ @@ -1515,6 +1911,16 @@ } } }, + "DeleteCollectorRequest":{ + "type":"structure", + "required":["CollectorReferencedId"], + "members":{ + "CollectorReferencedId":{ + "shape":"String", + "documentation":"

The reference ID of the Fleet Advisor collector to delete.

" + } + } + }, "DeleteConnectionMessage":{ "type":"structure", "required":[ @@ -1585,6 +1991,25 @@ }, "documentation":"

" }, + "DeleteFleetAdvisorDatabasesRequest":{ + "type":"structure", + "required":["DatabaseIds"], + "members":{ + "DatabaseIds":{ + "shape":"StringList", + "documentation":"

The IDs of the Fleet Advisor collector databases to delete.

" + } + } + }, + "DeleteFleetAdvisorDatabasesResponse":{ + "type":"structure", + "members":{ + "DatabaseIds":{ + "shape":"StringList", + "documentation":"

The IDs of the databases that the operation deleted.

" + } + } + }, "DeleteReplicationInstanceMessage":{ "type":"structure", "required":["ReplicationInstanceArn"], @@ -2006,6 +2431,152 @@ }, "documentation":"

" }, + "DescribeFleetAdvisorCollectorsRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

If you specify any of the following filters, the output includes information for only those collectors that meet the filter criteria:

  • collector-referenced-id – The ID of the collector agent, for example d4610ac5-e323-4ad9-bc50-eaf7249dfe9d.

  • collector-name – The name of the collector agent.

An example is: describe-fleet-advisor-collectors --filter Name=\"collector-referenced-id\",Values=\"d4610ac5-e323-4ad9-bc50-eaf7249dfe9d\"

" + }, + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

Sets the maximum number of records returned in the response.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned by a previous response, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeFleetAdvisorCollectorsResponse":{ + "type":"structure", + "members":{ + "Collectors":{ + "shape":"CollectorResponses", + "documentation":"

Provides descriptions of the Fleet Advisor collectors, including the collectors' name and ID, and the latest inventory data.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeFleetAdvisorDatabasesRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

If you specify any of the following filters, the output includes information for only those databases that meet the filter criteria:

  • database-id – The ID of the database.

  • database-name – The name of the database.

  • database-engine – The name of the database engine.

  • server-ip-address – The IP address of the database server.

  • database-ip-address – The IP address of the database.

  • collector-name – The name of the associated Fleet Advisor collector.

An example is: describe-fleet-advisor-databases --filter Name=\"database-id\",Values=\"45\"

" + }, + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

Sets the maximum number of records returned in the response.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned by a previous response, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeFleetAdvisorDatabasesResponse":{ + "type":"structure", + "members":{ + "Databases":{ + "shape":"DatabaseList", + "documentation":"

Provides descriptions of the Fleet Advisor collector databases, including the database's collector, ID, and name.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeFleetAdvisorLsaAnalysisRequest":{ + "type":"structure", + "members":{ + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

Sets the maximum number of records returned in the response.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned by a previous response, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeFleetAdvisorLsaAnalysisResponse":{ + "type":"structure", + "members":{ + "Analysis":{ + "shape":"FleetAdvisorLsaAnalysisResponseList", + "documentation":"

A list of FleetAdvisorLsaAnalysisResponse objects.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeFleetAdvisorSchemaObjectSummaryRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

If you specify any of the following filters, the output includes information for only those schema objects that meet the filter criteria:

  • schema-id – The ID of the schema, for example d4610ac5-e323-4ad9-bc50-eaf7249dfe9d.

Example: describe-fleet-advisor-schema-object-summary --filter Name=\"schema-id\",Values=\"50\"

" + }, + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

Sets the maximum number of records returned in the response.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned by a previous response, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeFleetAdvisorSchemaObjectSummaryResponse":{ + "type":"structure", + "members":{ + "FleetAdvisorSchemaObjects":{ + "shape":"FleetAdvisorSchemaObjectList", + "documentation":"

A collection of FleetAdvisorSchemaObjectResponse objects.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeFleetAdvisorSchemasRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

If you specify any of the following filters, the output includes information for only those schemas that meet the filter criteria:

  • complexity – The schema's complexity, for example Simple.

  • database-id – The ID of the schema's database.

  • database-ip-address – The IP address of the schema's database.

  • database-name – The name of the schema's database.

  • database-engine – The name of the schema database's engine.

  • original-schema-name – The name of the schema's database's main schema.

  • schema-id – The ID of the schema, for example 15.

  • schema-name – The name of the schema.

  • server-ip-address – The IP address of the schema database's server.

An example is: describe-fleet-advisor-schemas --filter Name=\"schema-id\",Values=\"50\"

" + }, + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

Sets the maximum number of records returned in the response.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned by a previous response, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, + "DescribeFleetAdvisorSchemasResponse":{ + "type":"structure", + "members":{ + "FleetAdvisorSchemas":{ + "shape":"FleetAdvisorSchemaList", + "documentation":"

A collection of SchemaResponse objects.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If NextToken is returned, there are more results available. The value of NextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged.

" + } + } + }, "DescribeOrderableReplicationInstancesMessage":{ "type":"structure", "members":{ @@ -2473,6 +3044,7 @@ }, "documentation":"

Provides information that defines a DocumentDB endpoint.

" }, + "DoubleOptional":{"type":"double"}, "DynamoDbSettings":{ "type":"structure", "required":["ServiceAccessRoleArn"], @@ -2506,6 +3078,10 @@ "ErrorRetryDuration":{ "shape":"IntegerOptional", "documentation":"

The maximum number of seconds for which DMS retries failed API requests to the OpenSearch cluster.

" + }, + "UseNewMappingType":{ + "shape":"BooleanOptional", + "documentation":"

Set this option to true for DMS to migrate documentation using the documentation type _doc. OpenSearch and an Elasticsearch cluster only support the _doc documentation type in versions 7. x and later. The default value is false.

" } }, "documentation":"

Provides information that defines an OpenSearch endpoint.

" @@ -2538,11 +3114,11 @@ }, "EngineName":{ "shape":"String", - "documentation":"

The database engine name. Valid values, depending on the EndpointType, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"opensearch\", \"redshift\", \"s3\", \"db2\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", \"sqlserver\", and \"neptune\".

" + "documentation":"

The database engine name. Valid values, depending on the EndpointType, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"redshift\", \"s3\", \"db2\", \"db2-zos\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", \"sqlserver\", \"neptune\", and \"babelfish\".

" }, "EngineDisplayName":{ "shape":"String", - "documentation":"

The expanded name for the engine name. For example, if the EngineName parameter is \"aurora,\" this value would be \"Amazon Aurora MySQL.\"

" + "documentation":"

The expanded name for the engine name. For example, if the EngineName parameter is \"aurora\", this value would be \"Amazon Aurora MySQL\".

" }, "Username":{ "shape":"String", @@ -2860,6 +3436,58 @@ "type":"list", "member":{"shape":"String"} }, + "FleetAdvisorLsaAnalysisResponse":{ + "type":"structure", + "members":{ + "LsaAnalysisId":{ + "shape":"String", + "documentation":"

The ID of an LSA analysis run by a Fleet Advisor collector.

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of an LSA analysis run by a Fleet Advisor collector.

" + } + }, + "documentation":"

Describes a large-scale assessment (LSA) analysis run by a Fleet Advisor collector.

" + }, + "FleetAdvisorLsaAnalysisResponseList":{ + "type":"list", + "member":{"shape":"FleetAdvisorLsaAnalysisResponse"} + }, + "FleetAdvisorSchemaList":{ + "type":"list", + "member":{"shape":"SchemaResponse"} + }, + "FleetAdvisorSchemaObjectList":{ + "type":"list", + "member":{"shape":"FleetAdvisorSchemaObjectResponse"} + }, + "FleetAdvisorSchemaObjectResponse":{ + "type":"structure", + "members":{ + "SchemaId":{ + "shape":"String", + "documentation":"

The ID of a schema object in a Fleet Advisor collector inventory.

" + }, + "ObjectType":{ + "shape":"String", + "documentation":"

The type of the schema object, as reported by the database engine. Examples include the following:

  • function

  • trigger

  • SYSTEM_TABLE

  • QUEUE

" + }, + "NumberOfObjects":{ + "shape":"LongOptional", + "documentation":"

The number of objects in a schema object in a Fleet Advisor collector inventory.

" + }, + "CodeLineCount":{ + "shape":"LongOptional", + "documentation":"

The number of lines of code in a schema object in a Fleet Advisor collector inventory.

" + }, + "CodeSize":{ + "shape":"LongOptional", + "documentation":"

The size level of the code in a schema object in a Fleet Advisor collector inventory.

" + } + }, + "documentation":"

Describes a schema object in a Fleet Advisor collector inventory.

" + }, "GcpMySQLSettings":{ "type":"structure", "members":{ @@ -3032,6 +3660,14 @@ "documentation":"

The certificate was not valid.

", "exception":true }, + "InvalidOperationFault":{ + "type":"structure", + "members":{ + "message":{"shape":"ExceptionMessage"} + }, + "documentation":"

The action or operation requested isn't valid.

", + "exception":true + }, "InvalidResourceStateFault":{ "type":"structure", "members":{ @@ -3054,6 +3690,20 @@ "documentation":"

The subnet provided is invalid.

", "exception":true }, + "InventoryData":{ + "type":"structure", + "members":{ + "NumberOfDatabases":{ + "shape":"IntegerOptional", + "documentation":"

The number of databases in the Fleet Advisor collector inventory.

" + }, + "NumberOfSchemas":{ + "shape":"IntegerOptional", + "documentation":"

The number of schemas in the Fleet Advisor collector inventory.

" + } + }, + "documentation":"

Describes a Fleet Advisor collector inventory.

" + }, "KMSAccessDeniedFault":{ "type":"structure", "members":{ @@ -3275,6 +3925,7 @@ "documentation":"

" }, "Long":{"type":"long"}, + "LongOptional":{"type":"long"}, "MessageFormatValue":{ "type":"string", "enum":[ @@ -3340,6 +3991,10 @@ "SecretsManagerSecretId":{ "shape":"String", "documentation":"

The full ARN, partial ARN, or friendly name of the SecretsManagerSecret that contains the SQL Server endpoint connection details.

" + }, + "TrimSpaceInChar":{ + "shape":"BooleanOptional", + "documentation":"

Use the TrimSpaceInChar source endpoint setting to trim data on CHAR and NCHAR data types during migration. The default value is true.

" } }, "documentation":"

Provides information that defines a Microsoft SQL Server endpoint.

" @@ -3370,7 +4025,7 @@ }, "EngineName":{ "shape":"String", - "documentation":"

The type of engine for the endpoint. Valid values, depending on the EndpointType, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"opensearch\", \"redshift\", \"s3\", \"db2\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", \"sqlserver\", and \"neptune\".

" + "documentation":"

The database engine name. Valid values, depending on the EndpointType, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"redshift\", \"s3\", \"db2\", \"db2-zos\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", \"sqlserver\", \"neptune\", and \"babelfish\".

" }, "Username":{ "shape":"String", @@ -3582,6 +4237,10 @@ "ReplicationInstanceIdentifier":{ "shape":"String", "documentation":"

The replication instance identifier. This parameter is stored as a lowercase string.

" + }, + "NetworkType":{ + "shape":"String", + "documentation":"

The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.

" } }, "documentation":"

" @@ -3792,7 +4451,7 @@ }, "TargetDbType":{ "shape":"TargetDbType", - "documentation":"

Specifies where to migrate source tables on the target, either to a single database or multiple databases.

Example: targetDbType=MULTIPLE_DATABASES

" + "documentation":"

Specifies where to migrate source tables on the target, either to a single database or multiple databases. If you specify SPECIFIC_DATABASE, specify the database name using the DatabaseName parameter of the Endpoint object.

Example: targetDbType=MULTIPLE_DATABASES

" }, "MaxFileSize":{ "shape":"IntegerOptional", @@ -3939,7 +4598,7 @@ }, "ArchivedLogsOnly":{ "shape":"BooleanOptional", - "documentation":"

When this field is set to Y, DMS only accesses the archived redo logs. If the archived redo logs are stored on Oracle ASM only, the DMS user account needs to be granted ASM privileges.

" + "documentation":"

When this field is set to Y, DMS only accesses the archived redo logs. If the archived redo logs are stored on Automatic Storage Management (ASM) only, the DMS user account needs to be granted ASM privileges.

" }, "AsmPassword":{ "shape":"SecretString", @@ -4035,11 +4694,15 @@ }, "SecretsManagerOracleAsmAccessRoleArn":{ "shape":"String", - "documentation":"

Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN of the IAM role that specifies DMS as the trusted entity and grants the required permissions to access the SecretsManagerOracleAsmSecret. This SecretsManagerOracleAsmSecret has the secret value that allows access to the Oracle ASM of the endpoint.

You can specify one of two sets of values for these permissions. You can specify the values for this setting and SecretsManagerOracleAsmSecretId. Or you can specify clear-text values for AsmUserName, AsmPassword, and AsmServerName. You can't specify both. For more information on creating this SecretsManagerOracleAsmSecret and the SecretsManagerOracleAsmAccessRoleArn and SecretsManagerOracleAsmSecretId required to access it, see Using secrets to access Database Migration Service resources in the Database Migration Service User Guide.

" + "documentation":"

Required only if your Oracle endpoint uses Automatic Storage Management (ASM). The full ARN of the IAM role that specifies DMS as the trusted entity and grants the required permissions to access the SecretsManagerOracleAsmSecret. This SecretsManagerOracleAsmSecret has the secret value that allows access to the Oracle ASM of the endpoint.

You can specify one of two sets of values for these permissions. You can specify the values for this setting and SecretsManagerOracleAsmSecretId. Or you can specify clear-text values for AsmUserName, AsmPassword, and AsmServerName. You can't specify both. For more information on creating this SecretsManagerOracleAsmSecret and the SecretsManagerOracleAsmAccessRoleArn and SecretsManagerOracleAsmSecretId required to access it, see Using secrets to access Database Migration Service resources in the Database Migration Service User Guide.

" }, "SecretsManagerOracleAsmSecretId":{ "shape":"String", - "documentation":"

Required only if your Oracle endpoint uses Advanced Storage Manager (ASM). The full ARN, partial ARN, or friendly name of the SecretsManagerOracleAsmSecret that contains the Oracle ASM connection details for the Oracle endpoint.

" + "documentation":"

Required only if your Oracle endpoint uses Automatic Storage Management (ASM). The full ARN, partial ARN, or friendly name of the SecretsManagerOracleAsmSecret that contains the Oracle ASM connection details for the Oracle endpoint.

" + }, + "TrimSpaceInChar":{ + "shape":"BooleanOptional", + "documentation":"

Use the TrimSpaceInChar source endpoint setting to trim data on CHAR and NCHAR data types during migration. The default value is true.

" } }, "documentation":"

Provides information that defines an Oracle endpoint.

" @@ -4217,6 +4880,10 @@ "SecretsManagerSecretId":{ "shape":"String", "documentation":"

The full ARN, partial ARN, or friendly name of the SecretsManagerSecret that contains the PostgreSQL endpoint connection details.

" + }, + "TrimSpaceInChar":{ + "shape":"BooleanOptional", + "documentation":"

Use the TrimSpaceInChar source endpoint setting to trim data on CHAR and NCHAR data types during migration. The default value is true.

" } }, "documentation":"

Provides information that defines a PostgreSQL endpoint.

" @@ -4635,6 +5302,10 @@ "shape":"ReplicationInstancePrivateIpAddressList", "documentation":"

One or more private IP addresses for the replication instance.

" }, + "ReplicationInstanceIpv6Addresses":{ + "shape":"ReplicationInstanceIpv6AddressList", + "documentation":"

One or more IPv6 addresses for the replication instance.

" + }, "PubliclyAccessible":{ "shape":"Boolean", "documentation":"

Specifies the accessibility options for the replication instance. A value of true represents an instance with a public IP address. A value of false represents an instance with a private IP address. The default value is true.

" @@ -4650,10 +5321,18 @@ "DnsNameServers":{ "shape":"String", "documentation":"

The DNS name servers supported for the replication instance to access your on-premise source or target database.

" + }, + "NetworkType":{ + "shape":"String", + "documentation":"

The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.

" } }, "documentation":"

Provides information that defines a replication instance.

" }, + "ReplicationInstanceIpv6AddressList":{ + "type":"list", + "member":{"shape":"String"} + }, "ReplicationInstanceList":{ "type":"list", "member":{"shape":"ReplicationInstance"} @@ -4706,6 +5385,10 @@ "EngineVersion":{ "shape":"String", "documentation":"

The engine version number of the replication instance.

" + }, + "NetworkType":{ + "shape":"String", + "documentation":"

The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.

" } }, "documentation":"

Provides information about the values of pending modifications to a replication instance. This data type is an object of the ReplicationInstance user-defined data type.

" @@ -4732,6 +5415,10 @@ "Subnets":{ "shape":"SubnetList", "documentation":"

The subnets that are in the subnet group.

" + }, + "SupportedNetworkTypes":{ + "shape":"StringList", + "documentation":"

The IP addressing protocol supported by the subnet group. This is used by a replication instance with values such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.

" } }, "documentation":"

Describes a subnet group in response to a request by the DescribeReplicationSubnetGroups operation.

" @@ -4792,7 +5479,7 @@ }, "StopReason":{ "shape":"String", - "documentation":"

The reason the replication task was stopped. This response parameter can return one of the following values:

  • \"STOP_REASON_FULL_LOAD_COMPLETED\" – Full-load migration completed.

  • \"STOP_REASON_CACHED_CHANGES_APPLIED\" – Change data capture (CDC) load completed.

  • \"STOP_REASON_CACHED_CHANGES_NOT_APPLIED\" – In a full-load and CDC migration, the full load stopped as specified before starting the CDC migration.

  • \"STOP_REASON_SERVER_TIME\" – The migration stopped at the specified server time.

" + "documentation":"

The reason the replication task was stopped. This response parameter can return one of the following values:

  • \"Stop Reason NORMAL\"

  • \"Stop Reason RECOVERABLE_ERROR\"

  • \"Stop Reason FATAL_ERROR\"

  • \"Stop Reason FULL_LOAD_ONLY_FINISHED\"

  • \"Stop Reason STOPPED_AFTER_FULL_LOAD\" – Full load completed, with cached changes not applied

  • \"Stop Reason STOPPED_AFTER_CACHED_EVENTS\" – Full load completed, with cached changes applied

  • \"Stop Reason EXPRESS_LICENSE_LIMITS_REACHED\"

  • \"Stop Reason STOPPED_AFTER_DDL_APPLY\" – User-defined stop task after DDL applied

  • \"Stop Reason STOPPED_DUE_TO_LOW_MEMORY\"

  • \"Stop Reason STOPPED_DUE_TO_LOW_DISK\"

  • \"Stop Reason STOPPED_AT_SERVER_TIME\" – User-defined server time for stopping task

  • \"Stop Reason STOPPED_AT_COMMIT_TIME\" – User-defined commit time for stopping task

  • \"Stop Reason RECONFIGURATION_RESTART\"

  • \"Stop Reason RECYCLE_TASK\"

" }, "ReplicationTaskCreationDate":{ "shape":"TStamp", @@ -5076,6 +5763,19 @@ "documentation":"

The quota for this resource quota has been exceeded.

", "exception":true }, + "RunFleetAdvisorLsaAnalysisResponse":{ + "type":"structure", + "members":{ + "LsaAnalysisId":{ + "shape":"String", + "documentation":"

The ID of the LSA analysis run.

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of the LSA analysis, for example COMPLETED.

" + } + } + }, "S3AccessDeniedFault":{ "type":"structure", "members":{ @@ -5225,7 +5925,7 @@ }, "CdcMinFileSize":{ "shape":"IntegerOptional", - "documentation":"

Minimum file size, defined in megabytes, to reach for a file output to Amazon S3.

When CdcMinFileSize and CdcMaxBatchInterval are both specified, the file write is triggered by whichever parameter condition is met first within an DMS CloudFormation template.

The default value is 32 MB.

" + "documentation":"

Minimum file size, defined in kilobytes, to reach for a file output to Amazon S3.

When CdcMinFileSize and CdcMaxBatchInterval are both specified, the file write is triggered by whichever parameter condition is met first within an DMS CloudFormation template.

The default value is 32 MB.

" }, "CsvNullValue":{ "shape":"String", @@ -5246,6 +5946,14 @@ "DatePartitionTimezone":{ "shape":"String", "documentation":"

When creating an S3 target endpoint, set DatePartitionTimezone to convert the current UTC time into a specified time zone. The conversion occurs when a date partition folder is created and a CDC filename is generated. The time zone format is Area/Location. Use this parameter when DatePartitionedEnabled is set to true, as shown in the following example.

s3-settings='{\"DatePartitionEnabled\": true, \"DatePartitionSequence\": \"YYYYMMDDHH\", \"DatePartitionDelimiter\": \"SLASH\", \"DatePartitionTimezone\":\"Asia/Seoul\", \"BucketName\": \"dms-nattarat-test\"}'

" + }, + "AddTrailingPaddingCharacter":{ + "shape":"BooleanOptional", + "documentation":"

Use the S3 target endpoint setting AddTrailingPaddingCharacter to add padding on string data. The default value is false.

" + }, + "ExpectedBucketOwner":{ + "shape":"String", + "documentation":"

To specify a bucket owner and prevent sniping, you can use the ExpectedBucketOwner endpoint setting.

Example: --s3-settings='{\"ExpectedBucketOwner\": \"AWS_Account_ID\"}'

When you make a request to test a connection or perform a migration, S3 checks the account ID of the bucket owner against the specified parameter.

" } }, "documentation":"

Settings for exporting data to Amazon S3.

" @@ -5284,10 +5992,93 @@ "type":"list", "member":{"shape":"String"} }, + "SchemaResponse":{ + "type":"structure", + "members":{ + "CodeLineCount":{ + "shape":"LongOptional", + "documentation":"

The number of lines of code in a schema in a Fleet Advisor collector inventory.

" + }, + "CodeSize":{ + "shape":"LongOptional", + "documentation":"

The size level of the code in a schema in a Fleet Advisor collector inventory.

" + }, + "Complexity":{ + "shape":"String", + "documentation":"

The complexity level of the code in a schema in a Fleet Advisor collector inventory.

" + }, + "Server":{ + "shape":"ServerShortInfoResponse", + "documentation":"

The database server for a schema in a Fleet Advisor collector inventory.

" + }, + "DatabaseInstance":{ + "shape":"DatabaseShortInfoResponse", + "documentation":"

The database for a schema in a Fleet Advisor collector inventory.

" + }, + "SchemaId":{ + "shape":"String", + "documentation":"

The ID of a schema in a Fleet Advisor collector inventory.

" + }, + "SchemaName":{ + "shape":"String", + "documentation":"

The name of a schema in a Fleet Advisor collector inventory.

" + }, + "OriginalSchema":{"shape":"SchemaShortInfoResponse"}, + "Similarity":{ + "shape":"DoubleOptional", + "documentation":"

The similarity value for a schema in a Fleet Advisor collector inventory. A higher similarity value indicates that a schema is likely to be a duplicate.

" + } + }, + "documentation":"

Describes a schema in a Fleet Advisor collector inventory.

" + }, + "SchemaShortInfoResponse":{ + "type":"structure", + "members":{ + "SchemaId":{ + "shape":"String", + "documentation":"

The ID of a schema in a Fleet Advisor collector inventory.

" + }, + "SchemaName":{ + "shape":"String", + "documentation":"

The name of a schema in a Fleet Advisor collector inventory.

" + }, + "DatabaseId":{ + "shape":"String", + "documentation":"

The ID of a database in a Fleet Advisor collector inventory.

" + }, + "DatabaseName":{ + "shape":"String", + "documentation":"

The name of a database in a Fleet Advisor collector inventory.

" + }, + "DatabaseIpAddress":{ + "shape":"String", + "documentation":"

The IP address of a database in a Fleet Advisor collector inventory.

" + } + }, + "documentation":"

Describes a schema in a Fleet Advisor collector inventory.

" + }, "SecretString":{ "type":"string", "sensitive":true }, + "ServerShortInfoResponse":{ + "type":"structure", + "members":{ + "ServerId":{ + "shape":"String", + "documentation":"

The ID of a server in a Fleet Advisor collector inventory.

" + }, + "IpAddress":{ + "shape":"String", + "documentation":"

The IP address of a server in a Fleet Advisor collector inventory.

" + }, + "ServerName":{ + "shape":"String", + "documentation":"

The name address of a server in a Fleet Advisor collector inventory.

" + } + }, + "documentation":"

Describes a server in a Fleet Advisor collector inventory.

" + }, "SourceIdsList":{ "type":"list", "member":{"shape":"String"} @@ -5463,6 +6254,10 @@ "exception":true }, "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, "Subnet":{ "type":"structure", "members":{ @@ -5505,7 +6300,7 @@ "members":{ "EngineName":{ "shape":"String", - "documentation":"

The database engine name. Valid values, depending on the EndpointType, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"redshift\", \"s3\", \"db2\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", \"sqlserver\", and \"neptune\".

" + "documentation":"

The database engine name. Valid values, depending on the EndpointType, include \"mysql\", \"oracle\", \"postgres\", \"mariadb\", \"aurora\", \"aurora-postgresql\", \"redshift\", \"s3\", \"db2\", \"db2-zos\", \"azuredb\", \"sybase\", \"dynamodb\", \"mongodb\", \"kinesis\", \"kafka\", \"elasticsearch\", \"documentdb\", \"sqlserver\", \"neptune\", and \"babelfish\".

" }, "SupportsCDC":{ "shape":"Boolean", @@ -5521,7 +6316,7 @@ }, "EngineDisplayName":{ "shape":"String", - "documentation":"

The expanded name for the engine name. For example, if the EngineName parameter is \"aurora,\" this value would be \"Amazon Aurora MySQL.\"

" + "documentation":"

The expanded name for the engine name. For example, if the EngineName parameter is \"aurora\", this value would be \"Amazon Aurora MySQL\".

" } }, "documentation":"

Provides information about types of supported endpoints in response to a request by the DescribeEndpointTypes operation. This information includes the type of endpoint, the database engine name, and whether change data capture (CDC) is supported.

" @@ -5596,6 +6391,22 @@ "shape":"Long", "documentation":"

The data definition language (DDL) used to build and modify the structure of your tables.

" }, + "AppliedInserts":{ + "shape":"LongOptional", + "documentation":"

The number of insert actions applied on a target table.

" + }, + "AppliedDeletes":{ + "shape":"LongOptional", + "documentation":"

The number of delete actions applied on a target table.

" + }, + "AppliedUpdates":{ + "shape":"LongOptional", + "documentation":"

The number of update actions applied on a target table.

" + }, + "AppliedDdls":{ + "shape":"LongOptional", + "documentation":"

The number of data definition language (DDL) statements used to build and modify the structure of your tables applied on the target.

" + }, "FullLoadRows":{ "shape":"Long", "documentation":"

The number of rows added during the full load operation.

" @@ -5626,7 +6437,7 @@ }, "TableState":{ "shape":"String", - "documentation":"

The state of the tables described.

Valid states: Table does not exist | Before load | Full load | Table completed | Table cancelled | Table error | Table all | Table updates | Table is being reloaded

" + "documentation":"

The state of the tables described.

Valid states: Table does not exist | Before load | Full load | Table completed | Table cancelled | Table error | Table is being reloaded

" }, "ValidationPendingRecords":{ "shape":"Long", @@ -5730,6 +6541,26 @@ }, "documentation":"

" }, + "UpdateSubscriptionsToEventBridgeMessage":{ + "type":"structure", + "members":{ + "ForceMove":{ + "shape":"BooleanOptional", + "documentation":"

When set to true, this operation migrates DMS subscriptions for Amazon SNS notifications no matter what your replication instance version is. If not set or set to false, this operation runs only when all your replication instances are from DMS version 3.4.6 or higher.

" + } + }, + "documentation":"

" + }, + "UpdateSubscriptionsToEventBridgeResponse":{ + "type":"structure", + "members":{ + "Result":{ + "shape":"String", + "documentation":"

A string that indicates how many event subscriptions were migrated and how many remain to be migrated.

" + } + }, + "documentation":"

" + }, "UpgradeDependencyFailureFault":{ "type":"structure", "members":{ @@ -5741,6 +6572,14 @@ "documentation":"

An upgrade dependency is preventing the database migration.

", "exception":true }, + "VersionStatus":{ + "type":"string", + "enum":[ + "UP_TO_DATE", + "OUTDATED", + "UNSUPPORTED" + ] + }, "VpcSecurityGroupIdList":{ "type":"list", "member":{"shape":"String"} diff --git a/botocore/data/docdb-elastic/2022-11-28/endpoint-rule-set-1.json b/botocore/data/docdb-elastic/2022-11-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..984fc53b --- /dev/null +++ b/botocore/data/docdb-elastic/2022-11-28/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://docdb-elastic-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://docdb-elastic-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://docdb-elastic.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://docdb-elastic.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/docdb-elastic/2022-11-28/paginators-1.json b/botocore/data/docdb-elastic/2022-11-28/paginators-1.json new file mode 100644 index 00000000..db11a76b --- /dev/null +++ b/botocore/data/docdb-elastic/2022-11-28/paginators-1.json @@ -0,0 +1,16 @@ +{ + "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" + } + } +} diff --git a/botocore/data/docdb-elastic/2022-11-28/service-2.json b/botocore/data/docdb-elastic/2022-11-28/service-2.json new file mode 100644 index 00000000..63dceab3 --- /dev/null +++ b/botocore/data/docdb-elastic/2022-11-28/service-2.json @@ -0,0 +1,1141 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-11-28", + "endpointPrefix":"docdb-elastic", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"DocDB Elastic", + "serviceFullName":"Amazon DocumentDB Elastic Clusters", + "serviceId":"DocDB Elastic", + "signatureVersion":"v4", + "signingName":"docdb-elastic", + "uid":"docdb-elastic-2022-11-28" + }, + "operations":{ + "CreateCluster":{ + "name":"CreateCluster", + "http":{ + "method":"POST", + "requestUri":"/cluster", + "responseCode":200 + }, + "input":{"shape":"CreateClusterInput"}, + "output":{"shape":"CreateClusterOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a new Elastic DocumentDB cluster and returns its Cluster structure.

", + "idempotent":true + }, + "CreateClusterSnapshot":{ + "name":"CreateClusterSnapshot", + "http":{ + "method":"POST", + "requestUri":"/cluster-snapshot", + "responseCode":200 + }, + "input":{"shape":"CreateClusterSnapshotInput"}, + "output":{"shape":"CreateClusterSnapshotOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a snapshot of a cluster.

", + "idempotent":true + }, + "DeleteCluster":{ + "name":"DeleteCluster", + "http":{ + "method":"DELETE", + "requestUri":"/cluster/{clusterArn}", + "responseCode":200 + }, + "input":{"shape":"DeleteClusterInput"}, + "output":{"shape":"DeleteClusterOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Delete a Elastic DocumentDB cluster.

", + "idempotent":true + }, + "DeleteClusterSnapshot":{ + "name":"DeleteClusterSnapshot", + "http":{ + "method":"DELETE", + "requestUri":"/cluster-snapshot/{snapshotArn}", + "responseCode":200 + }, + "input":{"shape":"DeleteClusterSnapshotInput"}, + "output":{"shape":"DeleteClusterSnapshotOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Delete a Elastic DocumentDB snapshot.

", + "idempotent":true + }, + "GetCluster":{ + "name":"GetCluster", + "http":{ + "method":"GET", + "requestUri":"/cluster/{clusterArn}", + "responseCode":200 + }, + "input":{"shape":"GetClusterInput"}, + "output":{"shape":"GetClusterOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about a specific Elastic DocumentDB cluster.

" + }, + "GetClusterSnapshot":{ + "name":"GetClusterSnapshot", + "http":{ + "method":"GET", + "requestUri":"/cluster-snapshot/{snapshotArn}", + "responseCode":200 + }, + "input":{"shape":"GetClusterSnapshotInput"}, + "output":{"shape":"GetClusterSnapshotOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about a specific Elastic DocumentDB snapshot

" + }, + "ListClusterSnapshots":{ + "name":"ListClusterSnapshots", + "http":{ + "method":"GET", + "requestUri":"/cluster-snapshots", + "responseCode":200 + }, + "input":{"shape":"ListClusterSnapshotsInput"}, + "output":{"shape":"ListClusterSnapshotsOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about Elastic DocumentDB snapshots for a specified cluster.

" + }, + "ListClusters":{ + "name":"ListClusters", + "http":{ + "method":"GET", + "requestUri":"/clusters", + "responseCode":200 + }, + "input":{"shape":"ListClustersInput"}, + "output":{"shape":"ListClustersOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about provisioned Elastic DocumentDB clusters.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists all tags on a Elastic DocumentDB resource

" + }, + "RestoreClusterFromSnapshot":{ + "name":"RestoreClusterFromSnapshot", + "http":{ + "method":"POST", + "requestUri":"/cluster-snapshot/{snapshotArn}/restore", + "responseCode":200 + }, + "input":{"shape":"RestoreClusterFromSnapshotInput"}, + "output":{"shape":"RestoreClusterFromSnapshotOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Restores a Elastic DocumentDB cluster from a snapshot.

", + "idempotent":true + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Adds metadata tags to a Elastic DocumentDB resource

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Removes metadata tags to a Elastic DocumentDB resource

", + "idempotent":true + }, + "UpdateCluster":{ + "name":"UpdateCluster", + "http":{ + "method":"PUT", + "requestUri":"/cluster/{clusterArn}", + "responseCode":200 + }, + "input":{"shape":"UpdateClusterInput"}, + "output":{"shape":"UpdateClusterOutput"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Modifies a Elastic DocumentDB cluster. This includes updating admin-username/password, upgrading API version setting up a backup window and maintenance window

", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{ + "shape":"String", + "documentation":"

An error message explaining why access was denied.

" + } + }, + "documentation":"

An exception that occurs when there are not sufficient permissions to perform an action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "Arn":{ + "type":"string", + "max":1011, + "min":1 + }, + "Auth":{ + "type":"string", + "enum":[ + "PLAIN_TEXT", + "SECRET_ARN" + ] + }, + "Cluster":{ + "type":"structure", + "required":[ + "adminUserName", + "authType", + "clusterArn", + "clusterEndpoint", + "clusterName", + "createTime", + "kmsKeyId", + "preferredMaintenanceWindow", + "shardCapacity", + "shardCount", + "status", + "subnetIds", + "vpcSecurityGroupIds" + ], + "members":{ + "adminUserName":{ + "shape":"String", + "documentation":"

The name of the Elastic DocumentDB cluster administrator.

" + }, + "authType":{ + "shape":"Auth", + "documentation":"

The authentication type for the Elastic DocumentDB cluster.

" + }, + "clusterArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB cluster.

" + }, + "clusterEndpoint":{ + "shape":"String", + "documentation":"

The URL used to connect to the Elastic DocumentDB cluster.

" + }, + "clusterName":{ + "shape":"String", + "documentation":"

The name of the Elastic DocumentDB cluster.

" + }, + "createTime":{ + "shape":"String", + "documentation":"

The time when the Elastic DocumentDB cluster was created in Universal Coordinated Time (UTC).

" + }, + "kmsKeyId":{ + "shape":"String", + "documentation":"

The KMS key identifier to use to encrypt the Elastic DocumentDB cluster.

" + }, + "preferredMaintenanceWindow":{ + "shape":"String", + "documentation":"

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

" + }, + "shardCapacity":{ + "shape":"Integer", + "documentation":"

The capacity of each shard in the Elastic DocumentDB cluster.

" + }, + "shardCount":{ + "shape":"Integer", + "documentation":"

The number of shards in the Elastic DocumentDB cluster.

" + }, + "status":{ + "shape":"Status", + "documentation":"

The status of the Elastic DocumentDB cluster.

" + }, + "subnetIds":{ + "shape":"StringList", + "documentation":"

The Amazon EC2 subnet IDs for the Elastic DocumentDB cluster.

" + }, + "vpcSecurityGroupIds":{ + "shape":"StringList", + "documentation":"

A list of EC2 VPC security groups associated with this cluster.

" + } + }, + "documentation":"

Returns information about a specific Elastic DocumentDB cluster.

" + }, + "ClusterInList":{ + "type":"structure", + "required":[ + "clusterArn", + "clusterName", + "status" + ], + "members":{ + "clusterArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB cluster.

" + }, + "clusterName":{ + "shape":"String", + "documentation":"

The name of the Elastic DocumentDB cluster.

" + }, + "status":{ + "shape":"Status", + "documentation":"

The status of the Elastic DocumentDB cluster.

" + } + }, + "documentation":"

A list of Elastic DocumentDB cluster.

" + }, + "ClusterList":{ + "type":"list", + "member":{"shape":"ClusterInList"} + }, + "ClusterSnapshot":{ + "type":"structure", + "required":[ + "adminUserName", + "clusterArn", + "clusterCreationTime", + "kmsKeyId", + "snapshotArn", + "snapshotCreationTime", + "snapshotName", + "status", + "subnetIds", + "vpcSecurityGroupIds" + ], + "members":{ + "adminUserName":{ + "shape":"String", + "documentation":"

The name of the Elastic DocumentDB cluster administrator.

" + }, + "clusterArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB cluster.

" + }, + "clusterCreationTime":{ + "shape":"String", + "documentation":"

The time when the Elastic DocumentDB cluster was created in Universal Coordinated Time (UTC).

" + }, + "kmsKeyId":{ + "shape":"String", + "documentation":"

The KMS key identifier to use to encrypt the Elastic DocumentDB cluster.

" + }, + "snapshotArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB snapshot

" + }, + "snapshotCreationTime":{ + "shape":"String", + "documentation":"

The time when the Elastic DocumentDB snapshot was created in Universal Coordinated Time (UTC).

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the Elastic DocumentDB snapshot.

" + }, + "status":{ + "shape":"Status", + "documentation":"

The status of the Elastic DocumentDB snapshot.

" + }, + "subnetIds":{ + "shape":"StringList", + "documentation":"

A list of the IDs of subnets associated with the DB cluster snapshot.

" + }, + "vpcSecurityGroupIds":{ + "shape":"StringList", + "documentation":"

A list of the IDs of the VPC security groups associated with the cluster snapshot.

" + } + }, + "documentation":"

Returns information about a specific Elastic DocumentDB snapshot.

" + }, + "ClusterSnapshotInList":{ + "type":"structure", + "required":[ + "clusterArn", + "snapshotArn", + "snapshotCreationTime", + "snapshotName", + "status" + ], + "members":{ + "clusterArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB cluster.

" + }, + "snapshotArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB snapshot

" + }, + "snapshotCreationTime":{ + "shape":"String", + "documentation":"

The time when the Elastic DocumentDB snapshot was created in Universal Coordinated Time (UTC).

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the Elastic DocumentDB snapshot.

" + }, + "status":{ + "shape":"Status", + "documentation":"

The status of the Elastic DocumentDB snapshot.

" + } + }, + "documentation":"

A list of Elastic DocumentDB snapshots.

" + }, + "ClusterSnapshotList":{ + "type":"list", + "member":{"shape":"ClusterSnapshotInList"} + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

The ID of the resource where there was an access conflict.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of the resource where there was an access conflict.

" + } + }, + "documentation":"

There was an access conflict.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateClusterInput":{ + "type":"structure", + "required":[ + "adminUserName", + "adminUserPassword", + "authType", + "clusterName", + "shardCapacity", + "shardCount" + ], + "members":{ + "adminUserName":{ + "shape":"String", + "documentation":"

The name of the Elastic DocumentDB cluster administrator.

Constraints:

  • Must be from 1 to 63 letters or numbers.

  • The first character must be a letter.

  • Cannot be a reserved word.

" + }, + "adminUserPassword":{ + "shape":"Password", + "documentation":"

The password for the Elastic DocumentDB cluster administrator and can contain any printable ASCII characters.

Constraints:

  • Must contain from 8 to 100 characters.

  • Cannot contain a forward slash (/), double quote (\"), or the \"at\" symbol (@).

" + }, + "authType":{ + "shape":"Auth", + "documentation":"

The authentication type for the Elastic DocumentDB cluster.

" + }, + "clientToken":{ + "shape":"String", + "documentation":"

The client token for the Elastic DocumentDB cluster.

", + "idempotencyToken":true + }, + "clusterName":{ + "shape":"String", + "documentation":"

The name of the new Elastic DocumentDB cluster. This parameter is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • The first character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

Example: my-cluster

" + }, + "kmsKeyId":{ + "shape":"String", + "documentation":"

The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of the ARN as the KMS encryption key.

If an encryption key is not specified, Elastic DocumentDB uses the default encryption key that KMS creates for your account. Your account has a different default encryption key for each Amazon Region.

" + }, + "preferredMaintenanceWindow":{ + "shape":"String", + "documentation":"

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.

Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

" + }, + "shardCapacity":{ + "shape":"Integer", + "documentation":"

The capacity of each shard in the new Elastic DocumentDB cluster.

" + }, + "shardCount":{ + "shape":"Integer", + "documentation":"

The number of shards to create in the new Elastic DocumentDB cluster.

" + }, + "subnetIds":{ + "shape":"StringList", + "documentation":"

The Amazon EC2 subnet IDs for the new Elastic DocumentDB cluster.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags to be assigned to the new Elastic DocumentDB cluster.

" + }, + "vpcSecurityGroupIds":{ + "shape":"StringList", + "documentation":"

A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster.

" + } + } + }, + "CreateClusterOutput":{ + "type":"structure", + "required":["cluster"], + "members":{ + "cluster":{ + "shape":"Cluster", + "documentation":"

The new Elastic DocumentDB cluster that has been created.

" + } + } + }, + "CreateClusterSnapshotInput":{ + "type":"structure", + "required":[ + "clusterArn", + "snapshotName" + ], + "members":{ + "clusterArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB cluster that the snapshot will be taken from.

" + }, + "snapshotName":{ + "shape":"CreateClusterSnapshotInputSnapshotNameString", + "documentation":"

The name of the Elastic DocumentDB snapshot.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags to be assigned to the new Elastic DocumentDB snapshot.

" + } + } + }, + "CreateClusterSnapshotInputSnapshotNameString":{ + "type":"string", + "max":63, + "min":1 + }, + "CreateClusterSnapshotOutput":{ + "type":"structure", + "required":["snapshot"], + "members":{ + "snapshot":{ + "shape":"ClusterSnapshot", + "documentation":"

Returns information about the new Elastic DocumentDB snapshot.

" + } + } + }, + "DeleteClusterInput":{ + "type":"structure", + "required":["clusterArn"], + "members":{ + "clusterArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB cluster that is to be deleted.

", + "location":"uri", + "locationName":"clusterArn" + } + } + }, + "DeleteClusterOutput":{ + "type":"structure", + "required":["cluster"], + "members":{ + "cluster":{ + "shape":"Cluster", + "documentation":"

Returns information about the newly deleted Elastic DocumentDB cluster.

" + } + } + }, + "DeleteClusterSnapshotInput":{ + "type":"structure", + "required":["snapshotArn"], + "members":{ + "snapshotArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB snapshot that is to be deleted.

", + "location":"uri", + "locationName":"snapshotArn" + } + } + }, + "DeleteClusterSnapshotOutput":{ + "type":"structure", + "required":["snapshot"], + "members":{ + "snapshot":{ + "shape":"ClusterSnapshot", + "documentation":"

Returns information about the newly deleted Elastic DocumentDB snapshot.

" + } + } + }, + "GetClusterInput":{ + "type":"structure", + "required":["clusterArn"], + "members":{ + "clusterArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB cluster.

", + "location":"uri", + "locationName":"clusterArn" + } + } + }, + "GetClusterOutput":{ + "type":"structure", + "required":["cluster"], + "members":{ + "cluster":{ + "shape":"Cluster", + "documentation":"

Returns information about a specific Elastic DocumentDB cluster.

" + } + } + }, + "GetClusterSnapshotInput":{ + "type":"structure", + "required":["snapshotArn"], + "members":{ + "snapshotArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB snapshot.

", + "location":"uri", + "locationName":"snapshotArn" + } + } + }, + "GetClusterSnapshotOutput":{ + "type":"structure", + "required":["snapshot"], + "members":{ + "snapshot":{ + "shape":"ClusterSnapshot", + "documentation":"

Returns information about a specific Elastic DocumentDB snapshot.

" + } + } + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

There was an internal server error.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "ListClusterSnapshotsInput":{ + "type":"structure", + "members":{ + "clusterArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB cluster.

", + "location":"querystring", + "locationName":"clusterArn" + }, + "maxResults":{ + "shape":"ListClusterSnapshotsInputMaxResultsInteger", + "documentation":"

The maximum number of entries to recieve in the response.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The nextToken which is used the get the next page of data.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListClusterSnapshotsInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":20 + }, + "ListClusterSnapshotsOutput":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The response will provide a nextToken if there is more data beyond the maxResults.

If there is no more data in the responce, the nextToken will not be returned.

" + }, + "snapshots":{ + "shape":"ClusterSnapshotList", + "documentation":"

A list of Elastic DocumentDB snapshots for a specified cluster.

" + } + } + }, + "ListClustersInput":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListClustersInputMaxResultsInteger", + "documentation":"

The maximum number of entries to recieve in the response.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The nextToken which is used the get the next page of data.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListClustersInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListClustersOutput":{ + "type":"structure", + "members":{ + "clusters":{ + "shape":"ClusterList", + "documentation":"

A list of Elastic DocumentDB cluster.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The response will provide a nextToken if there is more data beyond the maxResults.

If there is no more data in the responce, the nextToken will not be returned.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The arn of the Elastic DocumentDB resource.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

The list of tags for the specified Elastic DocumentDB resource.

" + } + } + }, + "PaginationToken":{ + "type":"string", + "documentation":"

Token or cursor used in paginated operations.

When this value is provided as operation input, the service returns results from where the previous response left off. When this value is present in operation output, it indicates that there are more results to retrieve.

This should be opaque to not expose implementation details and potentially versioned to allow evolution of pagination strategy.

" + }, + "Password":{ + "type":"string", + "sensitive":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{ + "shape":"String", + "documentation":"

An error message describing the failure.

" + }, + "resourceId":{ + "shape":"String", + "documentation":"

The ID of the resource that could not be located.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of the resource that could not be found.

" + } + }, + "documentation":"

The specified resource could not be located.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RestoreClusterFromSnapshotInput":{ + "type":"structure", + "required":[ + "clusterName", + "snapshotArn" + ], + "members":{ + "clusterName":{ + "shape":"String", + "documentation":"

The name of the Elastic DocumentDB cluster.

" + }, + "kmsKeyId":{ + "shape":"String", + "documentation":"

The KMS key identifier to use to encrypt the new Elastic DocumentDB cluster.

The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a cluster using the same Amazon account that owns this KMS encryption key, you can use the KMS key alias instead of the ARN as the KMS encryption key.

If an encryption key is not specified here, Elastic DocumentDB uses the default encryption key that KMS creates for your account. Your account has a different default encryption key for each Amazon Region.

" + }, + "snapshotArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB snapshot.

", + "location":"uri", + "locationName":"snapshotArn" + }, + "subnetIds":{ + "shape":"StringList", + "documentation":"

The Amazon EC2 subnet IDs for the Elastic DocumentDB cluster.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

A list of the tag names to be assigned to the restored DB cluster, in the form of an array of key-value pairs in which the key is the tag name and the value is the key value.

" + }, + "vpcSecurityGroupIds":{ + "shape":"StringList", + "documentation":"

A list of EC2 VPC security groups to associate with the Elastic DocumentDB cluster.

" + } + } + }, + "RestoreClusterFromSnapshotOutput":{ + "type":"structure", + "required":["cluster"], + "members":{ + "cluster":{ + "shape":"Cluster", + "documentation":"

Returns information about a the restored Elastic DocumentDB cluster.

" + } + } + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The service quota for the action was exceeded.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "Status":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "DELETING", + "UPDATING", + "VPC_ENDPOINT_LIMIT_EXCEEDED", + "IP_ADDRESS_LIMIT_EXCEEDED", + "INVALID_SECURITY_GROUP_ID", + "INVALID_SUBNET_ID", + "INACCESSIBLE_ENCRYPTION_CREDS" + ] + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^(?!aws:)[a-zA-Z+-=._:/]+$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The arn of the Elastic DocumentDB resource.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags to be assigned to the Elastic DocumentDB resource.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds to wait before retrying the operation.

", + "location":"header", + "locationName":"Retry-After" + } + }, + "documentation":"

ThrottlingException will be thrown when request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The arn of the Elastic DocumentDB resource.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

The tag keys to be removed from the Elastic DocumentDB resource.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateClusterInput":{ + "type":"structure", + "required":["clusterArn"], + "members":{ + "adminUserPassword":{ + "shape":"Password", + "documentation":"

The password for the Elastic DocumentDB cluster administrator. This password can contain any printable ASCII character except forward slash (/), double quote (\"), or the \"at\" symbol (@).

Constraints: Must contain from 8 to 100 characters.

" + }, + "authType":{ + "shape":"Auth", + "documentation":"

The authentication type for the Elastic DocumentDB cluster.

" + }, + "clientToken":{ + "shape":"String", + "documentation":"

The client token for the Elastic DocumentDB cluster.

", + "idempotencyToken":true + }, + "clusterArn":{ + "shape":"String", + "documentation":"

The arn of the Elastic DocumentDB cluster.

", + "location":"uri", + "locationName":"clusterArn" + }, + "preferredMaintenanceWindow":{ + "shape":"String", + "documentation":"

The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).

Format: ddd:hh24:mi-ddd:hh24:mi

Default: a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.

Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun

Constraints: Minimum 30-minute window.

" + }, + "shardCapacity":{ + "shape":"Integer", + "documentation":"

The capacity of each shard in the Elastic DocumentDB cluster.

" + }, + "shardCount":{ + "shape":"Integer", + "documentation":"

The number of shards to create in the Elastic DocumentDB cluster.

" + }, + "subnetIds":{ + "shape":"StringList", + "documentation":"

The number of shards to create in the Elastic DocumentDB cluster.

" + }, + "vpcSecurityGroupIds":{ + "shape":"StringList", + "documentation":"

A list of EC2 VPC security groups to associate with the new Elastic DocumentDB cluster.

" + } + } + }, + "UpdateClusterOutput":{ + "type":"structure", + "required":["cluster"], + "members":{ + "cluster":{ + "shape":"Cluster", + "documentation":"

Returns information about the updated Elastic DocumentDB cluster.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

A list of the fields in which the validation exception occurred.

" + }, + "message":{ + "shape":"String", + "documentation":"

An error message describing the validation exception.

" + }, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

The reason why the validation exception occurred (one of unknownOperation, cannotParse, fieldValidationFailed, or other).

" + } + }, + "documentation":"

A structure defining a validation exception.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{ + "shape":"String", + "documentation":"

An error message describing the validation exception in this field.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the field where the validation exception occurred.

" + } + }, + "documentation":"

A specific field in which a given validation exception occurred.

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + } + }, + "documentation":"

The new Amazon Elastic DocumentDB service endpoint.

" +} diff --git a/botocore/data/docdb/2014-10-31/endpoint-rule-set-1.json b/botocore/data/docdb/2014-10-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..1becf46c --- /dev/null +++ b/botocore/data/docdb/2014-10-31/endpoint-rule-set-1.json @@ -0,0 +1,435 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.ca-central-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.ca-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-east-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-east-2" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-west-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-west-2" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/docdb/2014-10-31/examples-1.json b/botocore/data/docdb/2014-10-31/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/docdb/2014-10-31/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/docdb/2014-10-31/service-2.json b/botocore/data/docdb/2014-10-31/service-2.json index b9608269..07b323f6 100644 --- a/botocore/data/docdb/2014-10-31/service-2.json +++ b/botocore/data/docdb/2014-10-31/service-2.json @@ -1457,6 +1457,10 @@ "shape":"String", "documentation":"

The identifier of the cluster that the instance will belong to.

" }, + "CopyTagsToSnapshot":{ + "shape":"BooleanOptional", + "documentation":"

A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.

" + }, "PromotionTier":{ "shape":"IntegerOptional", "documentation":"

A value that specifies the order in which an Amazon DocumentDB replica is promoted to the primary instance after a failure of the existing primary instance.

Default: 1

Valid values: 0-15

" @@ -1711,6 +1715,10 @@ "shape":"DBClusterRoles", "documentation":"

Provides a list of the Identity and Access Management (IAM) roles that are associated with the cluster. (IAM) roles that are associated with a cluster grant permission for the cluster to access other Amazon Web Services services on your behalf.

" }, + "CloneGroupId":{ + "shape":"String", + "documentation":"

Identifies the clone group to which the DB cluster is associated.

" + }, "ClusterCreateTime":{ "shape":"TStamp", "documentation":"

Specifies the time when the cluster was created, in Universal Coordinated Time (UTC).

" @@ -2225,6 +2233,10 @@ "shape":"String", "documentation":"

The identifier of the CA certificate for this DB instance.

" }, + "CopyTagsToSnapshot":{ + "shape":"BooleanOptional", + "documentation":"

A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.

" + }, "PromotionTier":{ "shape":"IntegerOptional", "documentation":"

A value that specifies the order in which an Amazon DocumentDB replica is promoted to the primary instance after a failure of the existing primary instance.

" @@ -3830,6 +3842,10 @@ "shape":"String", "documentation":"

Indicates the certificate that needs to be associated with the instance.

" }, + "CopyTagsToSnapshot":{ + "shape":"BooleanOptional", + "documentation":"

A value that indicates whether to copy all tags from the DB instance to snapshots of the DB instance. By default, tags are not copied.

" + }, "PromotionTier":{ "shape":"IntegerOptional", "documentation":"

A value that specifies the order in which an Amazon DocumentDB replica is promoted to the primary instance after a failure of the existing primary instance.

Default: 1

Valid values: 0-15

" @@ -4396,6 +4412,10 @@ "shape":"String", "documentation":"

The name of the new cluster to be created.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • The first character must be a letter.

  • Cannot end with a hyphen or contain two consecutive hyphens.

" }, + "RestoreType":{ + "shape":"String", + "documentation":"

The type of restore to be performed. You can specify one of the following values:

  • full-copy - The new DB cluster is restored as a full copy of the source DB cluster.

  • copy-on-write - The new DB cluster is restored as a clone of the source DB cluster.

If you don't specify a RestoreType value, then the new DB cluster is restored as a full copy of the source DB cluster.

" + }, "SourceDBClusterIdentifier":{ "shape":"String", "documentation":"

The identifier of the source cluster from which to restore.

Constraints:

  • Must match the identifier of an existing DBCluster.

" diff --git a/botocore/data/drs/2020-02-26/endpoint-rule-set-1.json b/botocore/data/drs/2020-02-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..73c6ccc3 --- /dev/null +++ b/botocore/data/drs/2020-02-26/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://drs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://drs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://drs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://drs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/drs/2020-02-26/examples-1.json b/botocore/data/drs/2020-02-26/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/drs/2020-02-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/drs/2020-02-26/paginators-1.json b/botocore/data/drs/2020-02-26/paginators-1.json index 1b140e71..d3867f19 100644 --- a/botocore/data/drs/2020-02-26/paginators-1.json +++ b/botocore/data/drs/2020-02-26/paginators-1.json @@ -35,6 +35,18 @@ "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" } } } diff --git a/botocore/data/drs/2020-02-26/service-2.json b/botocore/data/drs/2020-02-26/service-2.json index d166ee73..fe47f97f 100644 --- a/botocore/data/drs/2020-02-26/service-2.json +++ b/botocore/data/drs/2020-02-26/service-2.json @@ -13,6 +13,26 @@ "uid":"drs-2020-02-26" }, "operations":{ + "CreateExtendedSourceServer":{ + "name":"CreateExtendedSourceServer", + "http":{ + "method":"POST", + "requestUri":"/CreateExtendedSourceServer", + "responseCode":201 + }, + "input":{"shape":"CreateExtendedSourceServerRequest"}, + "output":{"shape":"CreateExtendedSourceServerResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"UninitializedAccountException"} + ], + "documentation":"

Create an extended source server in the target Account based on the source server in staging account.

" + }, "CreateReplicationConfigurationTemplate":{ "name":"CreateReplicationConfigurationTemplate", "http":{ @@ -293,6 +313,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, {"shape":"UninitializedAccountException"} ], "documentation":"

Gets a ReplicationConfiguration, filtered by Source Server ID.

" @@ -314,6 +335,42 @@ ], "documentation":"

Initialize Elastic Disaster Recovery.

" }, + "ListExtensibleSourceServers":{ + "name":"ListExtensibleSourceServers", + "http":{ + "method":"POST", + "requestUri":"/ListExtensibleSourceServers", + "responseCode":200 + }, + "input":{"shape":"ListExtensibleSourceServersRequest"}, + "output":{"shape":"ListExtensibleSourceServersResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"UninitializedAccountException"} + ], + "documentation":"

Returns a list of source servers on a staging account that are extensible, which means that: a. The source server is not already extended into this Account. b. The source server on the Account we’re reading from is not an extension of another source server.

" + }, + "ListStagingAccounts":{ + "name":"ListStagingAccounts", + "http":{ + "method":"GET", + "requestUri":"/ListStagingAccounts", + "responseCode":200 + }, + "input":{"shape":"ListStagingAccountsRequest"}, + "output":{"shape":"ListStagingAccountsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"UninitializedAccountException"} + ], + "documentation":"

Returns an array of staging accounts for existing extended source servers.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -350,6 +407,26 @@ ], "documentation":"

Causes the data replication initiation sequence to begin immediately upon next Handshake for the specified Source Server ID, regardless of when the previous initiation started. This command will work only if the Source Server is stalled or is in a DISCONNECTED or STOPPED state.

" }, + "ReverseReplication":{ + "name":"ReverseReplication", + "http":{ + "method":"POST", + "requestUri":"/ReverseReplication", + "responseCode":200 + }, + "input":{"shape":"ReverseReplicationRequest"}, + "output":{"shape":"ReverseReplicationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"UninitializedAccountException"} + ], + "documentation":"

Start replication to origin / target region - applies only to protected instances that originated in EC2. For recovery instances on target region - starts replication back to origin region. For failback instances on origin region - starts replication to target region to re-protect them.

" + }, "StartFailbackLaunch":{ "name":"StartFailbackLaunch", "http":{ @@ -387,6 +464,24 @@ ], "documentation":"

Launches Recovery Instances for the specified Source Servers. For each Source Server you may choose a point in time snapshot to launch from, or use an on demand snapshot.

" }, + "StartReplication":{ + "name":"StartReplication", + "http":{ + "method":"POST", + "requestUri":"/StartReplication", + "responseCode":200 + }, + "input":{"shape":"StartReplicationRequest"}, + "output":{"shape":"StartReplicationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"UninitializedAccountException"} + ], + "documentation":"

Starts replication for a stopped Source Server. This action would make the Source Server protected again and restart billing for it.

" + }, "StopFailback":{ "name":"StopFailback", "http":{ @@ -403,6 +498,24 @@ ], "documentation":"

Stops the failback process for a specified Recovery Instance. This changes the Failback State of the Recovery Instance back to FAILBACK_NOT_STARTED.

" }, + "StopReplication":{ + "name":"StopReplication", + "http":{ + "method":"POST", + "requestUri":"/StopReplication", + "responseCode":200 + }, + "input":{"shape":"StopReplicationRequest"}, + "output":{"shape":"StopReplicationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"UninitializedAccountException"} + ], + "documentation":"

Stops replication for a Source Server. This action would make the Source Server unprotected, delete its existing snapshots and stop billing for it.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -548,13 +661,53 @@ "code":{"shape":"LargeBoundedString"}, "message":{"shape":"LargeBoundedString"} }, - "documentation":"

TYou do not have sufficient access to perform this action.

", + "documentation":"

You do not have sufficient access to perform this action.

", "error":{ "httpStatusCode":403, "senderFault":true }, "exception":true }, + "Account":{ + "type":"structure", + "members":{ + "accountID":{ + "shape":"AccountID", + "documentation":"

Account ID of AWS account.

" + } + }, + "documentation":"

AWS account.

" + }, + "AccountID":{ + "type":"string", + "max":12, + "min":12, + "pattern":"[0-9]{12,}" + }, + "AccountIDs":{ + "type":"list", + "member":{"shape":"AccountID"}, + "max":200, + "min":0 + }, + "Accounts":{ + "type":"list", + "member":{"shape":"Account"}, + "max":50, + "min":0 + }, + "AwsAvailabilityZone":{ + "type":"string", + "max":255, + "min":0, + "pattern":"^(us(-gov)?|ap|ca|cn|eu|sa|af|me)-(central|north|(north(?:east|west))|south|south(?:east|west)|east|west)-[0-9][a-z]$" + }, + "AwsRegion":{ + "type":"string", + "max":255, + "min":0, + "pattern":"^(us(-gov)?|ap|ca|cn|eu|sa|af|me)-(central|north|(north(?:east|west))|south|south(?:east|west)|east|west)-[0-9]$" + }, "Boolean":{ "type":"boolean", "box":true @@ -599,12 +752,66 @@ }, "exception":true }, + "ConversionMap":{ + "type":"map", + "key":{"shape":"ebsSnapshot"}, + "value":{"shape":"ebsSnapshot"} + }, + "ConversionProperties":{ + "type":"structure", + "members":{ + "dataTimestamp":{ + "shape":"LargeBoundedString", + "documentation":"

The timestamp of when the snapshot being converted was taken

" + }, + "forceUefi":{ + "shape":"Boolean", + "documentation":"

Whether the volume being converted uses UEFI or not

" + }, + "rootVolumeName":{ + "shape":"LargeBoundedString", + "documentation":"

The root volume name of a conversion job

" + }, + "volumeToConversionMap":{ + "shape":"VolumeToConversionMap", + "documentation":"

A mapping between the volumes being converted and the converted snapshot ids

" + }, + "volumeToVolumeSize":{ + "shape":"VolumeToSizeMap", + "documentation":"

A mapping between the volumes and their sizes

" + } + }, + "documentation":"

Properties of a conversion job

" + }, "Cpus":{ "type":"list", "member":{"shape":"CPU"}, "max":256, "min":0 }, + "CreateExtendedSourceServerRequest":{ + "type":"structure", + "required":["sourceServerArn"], + "members":{ + "sourceServerArn":{ + "shape":"SourceServerARN", + "documentation":"

This defines the ARN of the source server in staging Account based on which you want to create an extended source server.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

A list of tags associated with the extended source server.

" + } + } + }, + "CreateExtendedSourceServerResponse":{ + "type":"structure", + "members":{ + "sourceServer":{ + "shape":"SourceServer", + "documentation":"

Created extended source server.

" + } + } + }, "CreateReplicationConfigurationTemplateRequest":{ "type":"structure", "required":[ @@ -733,7 +940,7 @@ "documentation":"

An estimate of when the data replication will be completed.

" }, "lagDuration":{ - "shape":"ISO8601DatetimeString", + "shape":"ISO8601DurationString", "documentation":"

Data replication lag duration.

" }, "replicatedDisks":{ @@ -873,7 +1080,7 @@ "members":{ "recoveryInstanceID":{ "shape":"RecoveryInstanceID", - "documentation":"

RThe ID of the Recovery Instance to be deleted.

" + "documentation":"

The ID of the Recovery Instance to be deleted.

" } } }, @@ -940,7 +1147,6 @@ }, "DescribeJobsRequest":{ "type":"structure", - "required":["filters"], "members":{ "filters":{ "shape":"DescribeJobsRequestFilters", @@ -999,7 +1205,6 @@ }, "DescribeRecoveryInstancesRequest":{ "type":"structure", - "required":["filters"], "members":{ "filters":{ "shape":"DescribeRecoveryInstancesRequestFilters", @@ -1097,7 +1302,6 @@ }, "DescribeReplicationConfigurationTemplatesRequest":{ "type":"structure", - "required":["replicationConfigurationTemplateIDs"], "members":{ "maxResults":{ "shape":"StrictlyPositiveInteger", @@ -1128,7 +1332,6 @@ }, "DescribeSourceServersRequest":{ "type":"structure", - "required":["filters"], "members":{ "filters":{ "shape":"DescribeSourceServersRequestFilters", @@ -1154,6 +1357,10 @@ "sourceServerIDs":{ "shape":"DescribeSourceServersRequestFiltersIDs", "documentation":"

An array of Source Servers IDs that should be returned. An empty array means all Source Servers.

" + }, + "stagingAccountIDs":{ + "shape":"AccountIDs", + "documentation":"

An array of staging account IDs that extended source servers belong to. An empty array means all source servers will be shown.

" } }, "documentation":"

A set of filters by which to return Source Servers.

" @@ -1250,6 +1457,21 @@ "min":10, "pattern":"^vol-([0-9a-fA-F]{8}|[0-9a-fA-F]{17})$" }, + "ExtensionStatus":{ + "type":"string", + "enum":[ + "EXTENDED", + "EXTENSION_ERROR", + "NOT_EXTENDED" + ] + }, + "FailbackLaunchType":{ + "type":"string", + "enum":[ + "RECOVERY", + "DRILL" + ] + }, "FailbackReplicationError":{ "type":"string", "enum":[ @@ -1261,7 +1483,19 @@ "FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE_TO_FAILBACK_CLIENT", "FAILED_TO_CONFIGURE_REPLICATION_SOFTWARE", "FAILED_TO_PAIR_AGENT_WITH_REPLICATION_SOFTWARE", - "FAILED_TO_ESTABLISH_AGENT_REPLICATOR_SOFTWARE_COMMUNICATION" + "FAILED_TO_ESTABLISH_AGENT_REPLICATOR_SOFTWARE_COMMUNICATION", + "FAILED_GETTING_REPLICATION_STATE", + "SNAPSHOTS_FAILURE", + "FAILED_TO_CREATE_SECURITY_GROUP", + "FAILED_TO_LAUNCH_REPLICATION_SERVER", + "FAILED_TO_BOOT_REPLICATION_SERVER", + "FAILED_TO_AUTHENTICATE_WITH_SERVICE", + "FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE", + "FAILED_TO_CREATE_STAGING_DISKS", + "FAILED_TO_ATTACH_STAGING_DISKS", + "FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT", + "FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER", + "FAILED_TO_START_DATA_TRANSFER" ] }, "FailbackState":{ @@ -1271,7 +1505,9 @@ "FAILBACK_IN_PROGRESS", "FAILBACK_READY_FOR_LAUNCH", "FAILBACK_COMPLETED", - "FAILBACK_ERROR" + "FAILBACK_ERROR", + "FAILBACK_NOT_READY_FOR_LAUNCH", + "FAILBACK_LAUNCH_STATE_NOT_AVAILABLE" ] }, "GetFailbackReplicationConfigurationRequest":{ @@ -1336,6 +1572,11 @@ "min":19, "pattern":"^[1-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?Z$" }, + "ISO8601DurationString":{ + "type":"string", + "max":64, + "min":1 + }, "IdentificationHints":{ "type":"structure", "members":{ @@ -1375,7 +1616,8 @@ "START_DRILL", "FAILBACK", "DIAGNOSTIC", - "TERMINATE_RECOVERY_INSTANCES" + "TERMINATE_RECOVERY_INSTANCES", + "TARGET_ACCOUNT" ] }, "InternalServerException":{ @@ -1487,6 +1729,10 @@ "JobLogEventData":{ "type":"structure", "members":{ + "conversionProperties":{ + "shape":"ConversionProperties", + "documentation":"

Properties of a conversion job

" + }, "conversionServerID":{ "shape":"EC2InstanceID", "documentation":"

The ID of a conversion server.

" @@ -1522,7 +1768,8 @@ "type":"string", "enum":[ "LAUNCH", - "TERMINATE" + "TERMINATE", + "CREATE_CONVERTED_SNAPSHOT" ] }, "JobsList":{ @@ -1622,7 +1869,7 @@ "documentation":"

The date and time of when the Source Server was added to the service.

" }, "elapsedReplicationDuration":{ - "shape":"ISO8601DatetimeString", + "shape":"ISO8601DurationString", "documentation":"

The amount of time that the Source Server has been replicating for.

" }, "firstByteDateTime":{ @@ -1668,6 +1915,73 @@ }, "documentation":"

An object containing information regarding the initiation of the last launch of a Source Server.

" }, + "ListExtensibleSourceServersRequest":{ + "type":"structure", + "required":["stagingAccountID"], + "members":{ + "maxResults":{ + "shape":"MaxResultsReplicatingSourceServers", + "documentation":"

The maximum number of extensible source servers to retrieve.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The token of the next extensible source server to retrieve.

" + }, + "stagingAccountID":{ + "shape":"AccountID", + "documentation":"

The Id of the staging Account to retrieve extensible source servers from.

" + } + } + }, + "ListExtensibleSourceServersResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"StagingSourceServersList", + "documentation":"

A list of source servers on a staging Account that are extensible.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The token of the next extensible source server to retrieve.

" + } + } + }, + "ListStagingAccountsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListStagingAccountsRequestMaxResultsInteger", + "documentation":"

The maximum number of staging Accounts to retrieve.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The token of the next staging Account to retrieve.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListStagingAccountsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "ListStagingAccountsResponse":{ + "type":"structure", + "members":{ + "accounts":{ + "shape":"Accounts", + "documentation":"

An array of staging AWS Accounts.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The token of the next staging Account to retrieve.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["resourceArn"], @@ -1689,6 +2003,11 @@ } } }, + "MaxResultsReplicatingSourceServers":{ + "type":"integer", + "max":300, + "min":1 + }, "NetworkInterface":{ "type":"structure", "members":{ @@ -1723,6 +2042,13 @@ }, "documentation":"

Operating System.

" }, + "OriginEnvironment":{ + "type":"string", + "enum":[ + "ON_PREMISES", + "AWS" + ] + }, "PITPolicy":{ "type":"list", "member":{"shape":"PITPolicyRule"}, @@ -1830,6 +2156,10 @@ "shape":"JobID", "documentation":"

The ID of the Job that created the Recovery Instance.

" }, + "originEnvironment":{ + "shape":"OriginEnvironment", + "documentation":"

Environment (On Premises / AWS) of the instance that the recovery instance originated from.

" + }, "pointInTimeSnapshotDateTime":{ "shape":"ISO8601DatetimeString", "documentation":"

The date and time of the Point in Time (PIT) snapshot that this Recovery Instance was launched from.

" @@ -1966,7 +2296,18 @@ "DOWNLOAD_REPLICATION_SOFTWARE_TO_FAILBACK_CLIENT", "CONFIGURE_REPLICATION_SOFTWARE", "PAIR_AGENT_WITH_REPLICATION_SOFTWARE", - "ESTABLISH_AGENT_REPLICATOR_SOFTWARE_COMMUNICATION" + "ESTABLISH_AGENT_REPLICATOR_SOFTWARE_COMMUNICATION", + "WAIT", + "CREATE_SECURITY_GROUP", + "LAUNCH_REPLICATION_SERVER", + "BOOT_REPLICATION_SERVER", + "AUTHENTICATE_WITH_SERVICE", + "DOWNLOAD_REPLICATION_SOFTWARE", + "CREATE_STAGING_DISKS", + "ATTACH_STAGING_DISKS", + "PAIR_REPLICATION_SERVER_WITH_AGENT", + "CONNECT_AGENT_TO_REPLICATION_SERVER", + "START_DATA_TRANSFER" ] }, "RecoveryInstanceDataReplicationInitiationStepStatus":{ @@ -1995,7 +2336,9 @@ "PAUSED", "RESCAN", "STALLED", - "DISCONNECTED" + "DISCONNECTED", + "REPLICATION_STATE_NOT_AVAILABLE", + "NOT_STARTED" ] }, "RecoveryInstanceDisk":{ @@ -2049,6 +2392,10 @@ "shape":"JobID", "documentation":"

The Job ID of the last failback log for this Recovery Instance.

" }, + "failbackLaunchType":{ + "shape":"FailbackLaunchType", + "documentation":"

The launch type (Recovery / Drill) of the last launch for the failback replication of this recovery instance.

" + }, "failbackToOriginalServer":{ "shape":"Boolean", "documentation":"

Whether we are failing back to the original Source Server for this Recovery Instance.

" @@ -2245,7 +2592,8 @@ "enum":[ "GP2", "GP3", - "ST1" + "ST1", + "AUTO" ] }, "ReplicationConfigurationEbsEncryption":{ @@ -2270,6 +2618,10 @@ "shape":"Boolean", "documentation":"

Whether to boot from this disk or not.

" }, + "optimizedStagingDiskType":{ + "shape":"ReplicationConfigurationReplicatedDiskStagingDiskType", + "documentation":"

When stagingDiskType is set to Auto, this field shows the current staging disk EBS volume type as it is constantly updated by the service. This is a read-only field.

" + }, "stagingDiskType":{ "shape":"ReplicationConfigurationReplicatedDiskStagingDiskType", "documentation":"

The Staging Disk EBS volume type to be used during replication.

" @@ -2385,6 +2737,14 @@ "type":"list", "member":{"shape":"ReplicationConfigurationTemplate"} }, + "ReplicationDirection":{ + "type":"string", + "documentation":"

Replication direction designates if this is a failover replication, or a failback replication. When a DRS agent is installed on an instance, the replication direction is failover. In cases where a recovery launch was made in the recovery location and a new recovery instance was created, and then a failback replication was initiated from that recovery instance back to the origin location, then the replication direction will be failback.

", + "enum":[ + "FAILOVER", + "FAILBACK" + ] + }, "ReplicationServersSecurityGroupsIDs":{ "type":"list", "member":{"shape":"SecurityGroupID"}, @@ -2422,6 +2782,25 @@ } } }, + "ReverseReplicationRequest":{ + "type":"structure", + "required":["recoveryInstanceID"], + "members":{ + "recoveryInstanceID":{ + "shape":"RecoveryInstanceID", + "documentation":"

The ID of the Recovery Instance that we want to reverse the replication for.

" + } + } + }, + "ReverseReplicationResponse":{ + "type":"structure", + "members":{ + "reversedDirectionSourceServerArn":{ + "shape":"SourceServerARN", + "documentation":"

ARN of created SourceServer.

" + } + } + }, "SecurityGroupID":{ "type":"string", "max":255, @@ -2462,6 +2841,24 @@ "max":128, "min":0 }, + "SourceCloudProperties":{ + "type":"structure", + "members":{ + "originAccountID":{ + "shape":"AccountID", + "documentation":"

AWS Account ID for an EC2-originated Source Server.

" + }, + "originAvailabilityZone":{ + "shape":"AwsAvailabilityZone", + "documentation":"

AWS Availability Zone for an EC2-originated Source Server.

" + }, + "originRegion":{ + "shape":"AwsRegion", + "documentation":"

AWS Region for an EC2-originated Source Server.

" + } + }, + "documentation":"

Properties of the cloud environment where this Source Server originated from.

" + }, "SourceProperties":{ "type":"structure", "members":{ @@ -2523,6 +2920,18 @@ "shape":"RecoveryInstanceID", "documentation":"

The ID of the Recovery Instance associated with this Source Server.

" }, + "replicationDirection":{ + "shape":"ReplicationDirection", + "documentation":"

Replication direction of the Source Server.

" + }, + "reversedDirectionSourceServerArn":{ + "shape":"SourceServerARN", + "documentation":"

For EC2-originated Source Servers which have been failed over and then failed back, this value will mean the ARN of the Source Server on the opposite replication direction.

" + }, + "sourceCloudProperties":{ + "shape":"SourceCloudProperties", + "documentation":"

Source cloud properties of the Source Server.

" + }, "sourceProperties":{ "shape":"SourceProperties", "documentation":"

The source properties of the Source Server.

" @@ -2531,12 +2940,22 @@ "shape":"SourceServerID", "documentation":"

The ID of the Source Server.

" }, + "stagingArea":{ + "shape":"StagingArea", + "documentation":"

The staging area of the source server.

" + }, "tags":{ "shape":"TagsMap", "documentation":"

The tags associated with the Source Server.

" } } }, + "SourceServerARN":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:(?:[0-9a-zA-Z_-]+:){3}([0-9]{12,}):source-server/(s-[0-9a-zA-Z]{17})$" + }, "SourceServerID":{ "type":"string", "max":19, @@ -2551,6 +2970,50 @@ "type":"list", "member":{"shape":"SourceServer"} }, + "StagingArea":{ + "type":"structure", + "members":{ + "errorMessage":{ + "shape":"LargeBoundedString", + "documentation":"

Shows an error message that occurred when DRS tried to access the staging source server. In this case StagingArea$status will have value EXTENSION_ERROR

" + }, + "stagingAccountID":{ + "shape":"AccountID", + "documentation":"

Account ID of the account to which source server belongs. If this source server is extended - shows Account ID of staging source server.

" + }, + "stagingSourceServerArn":{ + "shape":"ARN", + "documentation":"

Arn of the staging source server if this source server is extended

" + }, + "status":{ + "shape":"ExtensionStatus", + "documentation":"

Status of Source server extension. Possible values: (a) NOT_EXTENDED - This is a source server that is replicating in the current account. (b) EXTENDED - Source server is extended from a staging source server. In this case, the value of stagingSourceServerArn is pointing to the Arn of the source server in the staging account. (c) EXTENSION_ERROR - Some issue occurred when accessing staging source server. In this case, errorMessage field will contain an error message that explains what happened.

" + } + }, + "documentation":"

Staging information related to source server.

" + }, + "StagingSourceServer":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"SourceServerARN", + "documentation":"

The ARN of the source server.

" + }, + "hostname":{ + "shape":"BoundedString", + "documentation":"

Hostname of staging source server.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

A list of tags associated with the staging source server.

" + } + }, + "documentation":"

Source server in staging account that extended source server connected to.

" + }, + "StagingSourceServersList":{ + "type":"list", + "member":{"shape":"StagingSourceServer"} + }, "StartFailbackLaunchRequest":{ "type":"structure", "required":["recoveryInstanceIDs"], @@ -2628,6 +3091,25 @@ } } }, + "StartReplicationRequest":{ + "type":"structure", + "required":["sourceServerID"], + "members":{ + "sourceServerID":{ + "shape":"SourceServerID", + "documentation":"

The ID of the Source Server to start replication for.

" + } + } + }, + "StartReplicationResponse":{ + "type":"structure", + "members":{ + "sourceServer":{ + "shape":"SourceServer", + "documentation":"

The Source Server that this action was targeted on.

" + } + } + }, "StopFailbackRequest":{ "type":"structure", "required":["recoveryInstanceID"], @@ -2638,6 +3120,25 @@ } } }, + "StopReplicationRequest":{ + "type":"structure", + "required":["sourceServerID"], + "members":{ + "sourceServerID":{ + "shape":"SourceServerID", + "documentation":"

The ID of the Source Server to stop replication for.

" + } + } + }, + "StopReplicationResponse":{ + "type":"structure", + "members":{ + "sourceServer":{ + "shape":"SourceServer", + "documentation":"

The Source Server that this action was targeted on.

" + } + } + }, "StrictlyPositiveInteger":{ "type":"integer", "min":1 @@ -3015,6 +3516,16 @@ "other" ] }, + "VolumeToConversionMap":{ + "type":"map", + "key":{"shape":"LargeBoundedString"}, + "value":{"shape":"ConversionMap"} + }, + "VolumeToSizeMap":{ + "type":"map", + "key":{"shape":"LargeBoundedString"}, + "value":{"shape":"PositiveInteger"} + }, "ebsSnapshot":{ "type":"string", "pattern":"^snap-[0-9a-zA-Z]{17}$" diff --git a/botocore/data/ds/2015-04-16/endpoint-rule-set-1.json b/botocore/data/ds/2015-04-16/endpoint-rule-set-1.json new file mode 100644 index 00000000..fae90805 --- /dev/null +++ b/botocore/data/ds/2015-04-16/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ds.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ds/2015-04-16/paginators-1.json b/botocore/data/ds/2015-04-16/paginators-1.json index 3b74918e..fd7f0b9e 100644 --- a/botocore/data/ds/2015-04-16/paginators-1.json +++ b/botocore/data/ds/2015-04-16/paginators-1.json @@ -53,6 +53,34 @@ "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/botocore/data/ds/2015-04-16/service-2.json b/botocore/data/ds/2015-04-16/service-2.json index 5d857ffc..a7088cc1 100644 --- a/botocore/data/ds/2015-04-16/service-2.json +++ b/botocore/data/ds/2015-04-16/service-2.json @@ -521,6 +521,24 @@ ], "documentation":"

Provides information about the Regions that are configured for multi-Region replication.

" }, + "DescribeSettings":{ + "name":"DescribeSettings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSettingsRequest"}, + "output":{"shape":"DescribeSettingsResult"}, + "errors":[ + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ], + "documentation":"

Retrieves information about the configurable settings for the specified directory.

" + }, "DescribeSharedDirectories":{ "name":"DescribeSharedDirectories", "http":{ @@ -574,6 +592,24 @@ ], "documentation":"

Obtains information about the trust relationships for this account.

If no input parameters are provided, such as DirectoryId or TrustIds, this request describes all the trust relationships belonging to the account.

" }, + "DescribeUpdateDirectory":{ + "name":"DescribeUpdateDirectory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeUpdateDirectoryRequest"}, + "output":{"shape":"DescribeUpdateDirectoryResult"}, + "errors":[ + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"}, + {"shape":"InvalidNextTokenException"} + ], + "documentation":"

Describes the updates of a directory for a particular update type.

" + }, "DisableClientAuthentication":{ "name":"DisableClientAuthentication", "http":{ @@ -1045,6 +1081,27 @@ ], "documentation":"

Updates a conditional forwarder that has been set up for your Amazon Web Services directory.

" }, + "UpdateDirectorySetup":{ + "name":"UpdateDirectorySetup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDirectorySetupRequest"}, + "output":{"shape":"UpdateDirectorySetupResult"}, + "errors":[ + {"shape":"UnsupportedOperationException"}, + {"shape":"DirectoryInDesiredStateException"}, + {"shape":"DirectoryUnavailableException"}, + {"shape":"SnapshotLimitExceededException"}, + {"shape":"InvalidParameterException"}, + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ], + "documentation":"

Updates the directory for a particular update type.

" + }, "UpdateNumberOfDomainControllers":{ "name":"UpdateNumberOfDomainControllers", "http":{ @@ -1080,6 +1137,26 @@ ], "documentation":"

Updates the Remote Authentication Dial In User Service (RADIUS) server information for an AD Connector or Microsoft AD directory.

" }, + "UpdateSettings":{ + "name":"UpdateSettings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSettingsRequest"}, + "output":{"shape":"UpdateSettingsResult"}, + "errors":[ + {"shape":"DirectoryDoesNotExistException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"DirectoryUnavailableException"}, + {"shape":"IncompatibleSettingsException"}, + {"shape":"UnsupportedSettingsException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ClientException"}, + {"shape":"ServiceException"} + ], + "documentation":"

Updates the configurable settings for the specified directory.

" + }, "UpdateTrust":{ "name":"UpdateTrust", "http":{ @@ -1470,7 +1547,10 @@ }, "ClientAuthenticationType":{ "type":"string", - "enum":["SmartCard"] + "enum":[ + "SmartCard", + "SmartCardOrPassword" + ] }, "ClientCertAuthSettings":{ "type":"structure", @@ -1824,6 +1904,7 @@ "documentation":"

Result of a CreateMicrosoftAD request.

" }, "CreateSnapshotBeforeSchemaExtension":{"type":"boolean"}, + "CreateSnapshotBeforeUpdate":{"type":"boolean"}, "CreateSnapshotRequest":{ "type":"structure", "required":["DirectoryId"], @@ -2306,6 +2387,41 @@ } } }, + "DescribeSettingsRequest":{ + "type":"structure", + "required":["DirectoryId"], + "members":{ + "DirectoryId":{ + "shape":"DirectoryId", + "documentation":"

The identifier of the directory for which to retrieve information.

" + }, + "Status":{ + "shape":"DirectoryConfigurationStatus", + "documentation":"

The status of the directory settings for which to retrieve information.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The DescribeSettingsResult.NextToken value from a previous call to DescribeSettings. Pass null if this is the first call.

" + } + } + }, + "DescribeSettingsResult":{ + "type":"structure", + "members":{ + "DirectoryId":{ + "shape":"DirectoryId", + "documentation":"

The identifier of the directory.

" + }, + "SettingEntries":{ + "shape":"SettingEntries", + "documentation":"

The list of SettingEntry objects that were retrieved.

It is possible that this list contains less than the number of items specified in the Limit member of the request. This occurs if there are less than the requested number of items left to retrieve, or if the limitations of the operation have been exceeded.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If not null, token that indicates that more results are available. Pass this value for the NextToken parameter in a subsequent call to DescribeSettings to retrieve the next set of items.

" + } + } + }, "DescribeSharedDirectoriesRequest":{ "type":"structure", "required":["OwnerDirectoryId"], @@ -2413,6 +2529,44 @@ }, "documentation":"

The result of a DescribeTrust request.

" }, + "DescribeUpdateDirectoryRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "UpdateType" + ], + "members":{ + "DirectoryId":{ + "shape":"DirectoryId", + "documentation":"

The unique identifier of the directory.

" + }, + "UpdateType":{ + "shape":"UpdateType", + "documentation":"

The type of updates you want to describe for the directory.

" + }, + "RegionName":{ + "shape":"RegionName", + "documentation":"

The name of the Region.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The DescribeUpdateDirectoryResult. NextToken value from a previous call to DescribeUpdateDirectory. Pass null if this is the first call.

" + } + } + }, + "DescribeUpdateDirectoryResult":{ + "type":"structure", + "members":{ + "UpdateActivities":{ + "shape":"UpdateActivities", + "documentation":"

The list of update activities on a directory for the requested update type.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If not null, more results are available. Pass this value for the NextToken parameter.

" + } + } + }, "Description":{ "type":"string", "max":128, @@ -2441,6 +2595,38 @@ "documentation":"

The specified directory has already been shared with this Amazon Web Services account.

", "exception":true }, + "DirectoryConfigurationSettingAllowedValues":{"type":"string"}, + "DirectoryConfigurationSettingLastRequestedDateTime":{"type":"timestamp"}, + "DirectoryConfigurationSettingLastUpdatedDateTime":{"type":"timestamp"}, + "DirectoryConfigurationSettingName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[a-zA-Z0-9-/. _]*$" + }, + "DirectoryConfigurationSettingRequestDetailedStatus":{ + "type":"map", + "key":{"shape":"RegionName"}, + "value":{"shape":"DirectoryConfigurationStatus"} + }, + "DirectoryConfigurationSettingRequestStatusMessage":{"type":"string"}, + "DirectoryConfigurationSettingType":{"type":"string"}, + "DirectoryConfigurationSettingValue":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[a-zA-Z0-9]*$" + }, + "DirectoryConfigurationStatus":{ + "type":"string", + "enum":[ + "Requested", + "Updating", + "Updated", + "Failed", + "Default" + ] + }, "DirectoryConnectSettings":{ "type":"structure", "required":[ @@ -2601,6 +2787,10 @@ "RegionsInfo":{ "shape":"RegionsInfo", "documentation":"

Lists the Regions where the directory has replicated.

" + }, + "OsVersion":{ + "shape":"OSVersion", + "documentation":"

The operating system (OS) version of the directory.

" } }, "documentation":"

Contains information about an Directory Service directory.

" @@ -2635,6 +2825,15 @@ "member":{"shape":"DirectoryId"}, "documentation":"

A list of directory identifiers.

" }, + "DirectoryInDesiredStateException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "documentation":"

The directory is already updated to desired update type settings.

", + "exception":true + }, "DirectoryLimitExceededException":{ "type":"structure", "members":{ @@ -3137,6 +3336,16 @@ }, "documentation":"

Contains the results of the GetSnapshotLimits operation.

" }, + "IncompatibleSettingsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "documentation":"

The specified directory setting is not compatible with other settings.

", + "exception":true + }, + "InitiatedBy":{"type":"string"}, "InsufficientPermissionsException":{ "type":"structure", "members":{ @@ -3541,6 +3750,23 @@ "min":1, "pattern":"^(https?|ftp|file|ldaps?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;()]*[-a-zA-Z0-9+&@#/%=~_|()]" }, + "OSUpdateSettings":{ + "type":"structure", + "members":{ + "OSVersion":{ + "shape":"OSVersion", + "documentation":"

OS version that the directory needs to be updated to.

" + } + }, + "documentation":"

OS version that the directory needs to be updated to.

" + }, + "OSVersion":{ + "type":"string", + "enum":[ + "SERVER_2012", + "SERVER_2019" + ] + }, "OrganizationalUnitDN":{ "type":"string", "max":2000, @@ -4049,6 +4275,78 @@ "exception":true, "fault":true }, + "Setting":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{ + "shape":"DirectoryConfigurationSettingName", + "documentation":"

The name of the directory setting. For example:

TLS_1_0

" + }, + "Value":{ + "shape":"DirectoryConfigurationSettingValue", + "documentation":"

The value of the directory setting for which to retrieve information. For example, for TLS_1_0, the valid values are: Enable and Disable.

" + } + }, + "documentation":"

Contains information about the configurable settings for a directory.

" + }, + "SettingEntries":{ + "type":"list", + "member":{"shape":"SettingEntry"} + }, + "SettingEntry":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"DirectoryConfigurationSettingType", + "documentation":"

The type of directory setting. For example, Protocol or Cipher.

" + }, + "Name":{ + "shape":"DirectoryConfigurationSettingName", + "documentation":"

The name of the directory setting. For example:

TLS_1_0

" + }, + "AllowedValues":{ + "shape":"DirectoryConfigurationSettingAllowedValues", + "documentation":"

The valid range of values for the directory setting.

" + }, + "AppliedValue":{ + "shape":"DirectoryConfigurationSettingValue", + "documentation":"

The value of the directory setting that is applied to the directory.

" + }, + "RequestedValue":{ + "shape":"DirectoryConfigurationSettingValue", + "documentation":"

The value that was last requested for the directory setting.

" + }, + "RequestStatus":{ + "shape":"DirectoryConfigurationStatus", + "documentation":"

The overall status of the request to update the directory setting request. If the directory setting is deployed in more than one region, and the request fails in any region, the overall status is Failed.

" + }, + "RequestDetailedStatus":{ + "shape":"DirectoryConfigurationSettingRequestDetailedStatus", + "documentation":"

Details about the status of the request to update the directory setting. If the directory setting is deployed in more than one region, status is returned for the request in each region where the setting is deployed.

" + }, + "RequestStatusMessage":{ + "shape":"DirectoryConfigurationSettingRequestStatusMessage", + "documentation":"

The last status message for the directory status request.

" + }, + "LastUpdatedDateTime":{ + "shape":"DirectoryConfigurationSettingLastUpdatedDateTime", + "documentation":"

The date and time when the directory setting was last updated.

" + }, + "LastRequestedDateTime":{ + "shape":"DirectoryConfigurationSettingLastRequestedDateTime", + "documentation":"

The date and time when the request to update a directory setting was last submitted.

" + } + }, + "documentation":"

Contains information about the specified configurable setting for a directory.

" + }, + "Settings":{ + "type":"list", + "member":{"shape":"Setting"} + }, "ShareDirectoryRequest":{ "type":"structure", "required":[ @@ -4466,7 +4764,7 @@ "type":"string", "max":128, "min":1, - "pattern":"(.|\\s)*\\S(.|\\s)*", + "pattern":"^(\\p{LD}|\\p{Punct}| )+$", "sensitive":true }, "TrustState":{ @@ -4550,6 +4848,19 @@ "documentation":"

The operation is not supported.

", "exception":true }, + "UnsupportedSettingsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{"shape":"RequestId"} + }, + "documentation":"

The specified directory setting is not supported.

", + "exception":true + }, + "UpdateActivities":{ + "type":"list", + "member":{"shape":"UpdateInfoEntry"} + }, "UpdateConditionalForwarderRequest":{ "type":"structure", "required":[ @@ -4579,6 +4890,75 @@ }, "documentation":"

The result of an UpdateConditionalForwarder request.

" }, + "UpdateDirectorySetupRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "UpdateType" + ], + "members":{ + "DirectoryId":{ + "shape":"DirectoryId", + "documentation":"

The identifier of the directory on which you want to perform the update.

" + }, + "UpdateType":{ + "shape":"UpdateType", + "documentation":"

The type of update that needs to be performed on the directory. For example, OS.

" + }, + "OSUpdateSettings":{ + "shape":"OSUpdateSettings", + "documentation":"

The settings for the OS update that needs to be performed on the directory.

" + }, + "CreateSnapshotBeforeUpdate":{ + "shape":"CreateSnapshotBeforeUpdate", + "documentation":"

The boolean that specifies if a snapshot for the directory needs to be taken before updating the directory.

", + "box":true + } + } + }, + "UpdateDirectorySetupResult":{ + "type":"structure", + "members":{ + } + }, + "UpdateInfoEntry":{ + "type":"structure", + "members":{ + "Region":{ + "shape":"RegionName", + "documentation":"

The name of the Region.

" + }, + "Status":{ + "shape":"UpdateStatus", + "documentation":"

The status of the update performed on the directory.

" + }, + "StatusReason":{ + "shape":"UpdateStatusReason", + "documentation":"

The reason for the current status of the update type activity.

" + }, + "InitiatedBy":{ + "shape":"InitiatedBy", + "documentation":"

This specifies if the update was initiated by the customer or by the service team.

" + }, + "NewValue":{ + "shape":"UpdateValue", + "documentation":"

The new value of the target setting.

" + }, + "PreviousValue":{ + "shape":"UpdateValue", + "documentation":"

The old value of the target setting.

" + }, + "StartTime":{ + "shape":"StartDateTime", + "documentation":"

The start time of the UpdateDirectorySetup for the particular type.

" + }, + "LastUpdatedDateTime":{ + "shape":"LastUpdatedDateTime", + "documentation":"

The last updated date and time of a particular directory setting.

" + } + }, + "documentation":"

An entry of update information related to a requested update type.

" + }, "UpdateNumberOfDomainControllersRequest":{ "type":"structure", "required":[ @@ -4626,6 +5006,41 @@ "documentation":"

Contains the results of the UpdateRadius operation.

" }, "UpdateSecurityGroupForDirectoryControllers":{"type":"boolean"}, + "UpdateSettingsRequest":{ + "type":"structure", + "required":[ + "DirectoryId", + "Settings" + ], + "members":{ + "DirectoryId":{ + "shape":"DirectoryId", + "documentation":"

The identifier of the directory for which to update settings.

" + }, + "Settings":{ + "shape":"Settings", + "documentation":"

The list of Setting objects.

" + } + } + }, + "UpdateSettingsResult":{ + "type":"structure", + "members":{ + "DirectoryId":{ + "shape":"DirectoryId", + "documentation":"

The identifier of the directory.

" + } + } + }, + "UpdateStatus":{ + "type":"string", + "enum":[ + "Updated", + "Updating", + "UpdateFailed" + ] + }, + "UpdateStatusReason":{"type":"string"}, "UpdateTrustRequest":{ "type":"structure", "required":["TrustId"], @@ -4650,6 +5065,20 @@ } } }, + "UpdateType":{ + "type":"string", + "enum":["OS"] + }, + "UpdateValue":{ + "type":"structure", + "members":{ + "OSUpdateSettings":{ + "shape":"OSUpdateSettings", + "documentation":"

The OS update related settings.

" + } + }, + "documentation":"

The value for a given type of UpdateSettings.

" + }, "UseSameUsername":{"type":"boolean"}, "UserDoesNotExistException":{ "type":"structure", diff --git a/botocore/data/dynamodb/2011-12-05/endpoint-rule-set-1.json b/botocore/data/dynamodb/2011-12-05/endpoint-rule-set-1.json new file mode 100644 index 00000000..c5d50276 --- /dev/null +++ b/botocore/data/dynamodb/2011-12-05/endpoint-rule-set-1.json @@ -0,0 +1,373 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "local" + ] + } + ], + "endpoint": { + "url": "https://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/dynamodb/2011-12-05/examples-1.json b/botocore/data/dynamodb/2011-12-05/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/dynamodb/2011-12-05/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json b/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..e98b735c --- /dev/null +++ b/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json @@ -0,0 +1,364 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "local" + ] + } + ], + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "dynamodb" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/dynamodb/2012-08-10/service-2.json b/botocore/data/dynamodb/2012-08-10/service-2.json index 25c87aae..639aec3a 100644 --- a/botocore/data/dynamodb/2012-08-10/service-2.json +++ b/botocore/data/dynamodb/2012-08-10/service-2.json @@ -25,7 +25,7 @@ {"shape":"RequestLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

This operation allows you to perform batch reads or writes on data stored in DynamoDB, using PartiQL.

The entire batch must consist of either read statements or write statements, you cannot mix both in one batch.

" + "documentation":"

This operation allows you to perform batch reads or writes on data stored in DynamoDB, using PartiQL. Each read statement in a BatchExecuteStatement must specify an equality condition on all key attributes. This enforces that each SELECT statement in a batch returns at most a single item.

The entire batch must consist of either read statements or write statements, you cannot mix both in one batch.

A HTTP 200 response does not mean that all statements in the BatchExecuteStatement succeeded. Error details for individual statements can be found under the Error field of the BatchStatementResponse for each statement.

" }, "BatchGetItem":{ "name":"BatchGetItem", @@ -60,7 +60,7 @@ {"shape":"RequestLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

The BatchWriteItem operation puts or deletes multiple items in one or more tables. A single call to BatchWriteItem can transmit up to 16MB of data over the network, consisting of up to 25 item put or delete operations. While individual items can be up to 400 KB once stored, it's important to note that an item's representation might be greater than 400KB while being sent in DynamoDB's JSON format for the API call. For more details on this distinction, see Naming Rules and Data Types.

BatchWriteItem cannot update items. To update items, use the UpdateItem action.

The individual PutItem and DeleteItem operations specified in BatchWriteItem are atomic; however BatchWriteItem as a whole is not. If any requested operations fail because the table's provisioned throughput is exceeded or an internal processing failure occurs, the failed operations are returned in the UnprocessedItems response parameter. You can investigate and optionally resend the requests. Typically, you would call BatchWriteItem in a loop. Each iteration would check for unprocessed items and submit a new BatchWriteItem request with those unprocessed items until all items have been processed.

If none of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then BatchWriteItem returns a ProvisionedThroughputExceededException.

If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, we strongly recommend that you use an exponential backoff algorithm. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed.

For more information, see Batch Operations and Error Handling in the Amazon DynamoDB Developer Guide.

With BatchWriteItem, you can efficiently write or delete large amounts of data, such as from Amazon EMR, or copy data from another database into DynamoDB. In order to improve performance with these large-scale operations, BatchWriteItem does not behave in the same way as individual PutItem and DeleteItem calls would. For example, you cannot specify conditions on individual put and delete requests, and BatchWriteItem does not return deleted items in the response.

If you use a programming language that supports concurrency, you can use threads to write items in parallel. Your application must include the necessary logic to manage the threads. With languages that don't support threading, you must update or delete the specified items one at a time. In both situations, BatchWriteItem performs the specified put and delete operations in parallel, giving you the power of the thread pool approach without having to introduce complexity into your application.

Parallel processing reduces latency, but each specified put and delete request consumes the same number of write capacity units whether it is processed in parallel or not. Delete operations on nonexistent items consume one write capacity unit.

If one or more of the following is true, DynamoDB rejects the entire batch write operation:

  • One or more tables specified in the BatchWriteItem request does not exist.

  • Primary key attributes specified on an item in the request do not match those in the corresponding table's primary key schema.

  • You try to perform multiple operations on the same item in the same BatchWriteItem request. For example, you cannot put and delete the same item in the same BatchWriteItem request.

  • Your request contains at least two items with identical hash and range keys (which essentially is two put operations).

  • There are more than 25 requests in the batch.

  • Any individual item in a batch exceeds 400 KB.

  • The total request size exceeds 16 MB.

", + "documentation":"

The BatchWriteItem operation puts or deletes multiple items in one or more tables. A single call to BatchWriteItem can transmit up to 16MB of data over the network, consisting of up to 25 item put or delete operations. While individual items can be up to 400 KB once stored, it's important to note that an item's representation might be greater than 400KB while being sent in DynamoDB's JSON format for the API call. For more details on this distinction, see Naming Rules and Data Types.

BatchWriteItem cannot update items. If you perform a BatchWriteItem operation on an existing item, that item's values will be overwritten by the operation and it will appear like it was updated. To update items, we recommend you use the UpdateItem action.

The individual PutItem and DeleteItem operations specified in BatchWriteItem are atomic; however BatchWriteItem as a whole is not. If any requested operations fail because the table's provisioned throughput is exceeded or an internal processing failure occurs, the failed operations are returned in the UnprocessedItems response parameter. You can investigate and optionally resend the requests. Typically, you would call BatchWriteItem in a loop. Each iteration would check for unprocessed items and submit a new BatchWriteItem request with those unprocessed items until all items have been processed.

If none of the items can be processed due to insufficient provisioned throughput on all of the tables in the request, then BatchWriteItem returns a ProvisionedThroughputExceededException.

If DynamoDB returns any unprocessed items, you should retry the batch operation on those items. However, we strongly recommend that you use an exponential backoff algorithm. If you retry the batch operation immediately, the underlying read or write requests can still fail due to throttling on the individual tables. If you delay the batch operation using exponential backoff, the individual requests in the batch are much more likely to succeed.

For more information, see Batch Operations and Error Handling in the Amazon DynamoDB Developer Guide.

With BatchWriteItem, you can efficiently write or delete large amounts of data, such as from Amazon EMR, or copy data from another database into DynamoDB. In order to improve performance with these large-scale operations, BatchWriteItem does not behave in the same way as individual PutItem and DeleteItem calls would. For example, you cannot specify conditions on individual put and delete requests, and BatchWriteItem does not return deleted items in the response.

If you use a programming language that supports concurrency, you can use threads to write items in parallel. Your application must include the necessary logic to manage the threads. With languages that don't support threading, you must update or delete the specified items one at a time. In both situations, BatchWriteItem performs the specified put and delete operations in parallel, giving you the power of the thread pool approach without having to introduce complexity into your application.

Parallel processing reduces latency, but each specified put and delete request consumes the same number of write capacity units whether it is processed in parallel or not. Delete operations on nonexistent items consume one write capacity unit.

If one or more of the following is true, DynamoDB rejects the entire batch write operation:

  • One or more tables specified in the BatchWriteItem request does not exist.

  • Primary key attributes specified on an item in the request do not match those in the corresponding table's primary key schema.

  • You try to perform multiple operations on the same item in the same BatchWriteItem request. For example, you cannot put and delete the same item in the same BatchWriteItem request.

  • Your request contains at least two items with identical hash and range keys (which essentially is two put operations).

  • There are more than 25 requests in the batch.

  • Any individual item in a batch exceeds 400 KB.

  • The total request size exceeds 16 MB.

", "endpointdiscovery":{ } }, @@ -280,6 +280,19 @@ "endpointdiscovery":{ } }, + "DescribeImport":{ + "name":"DescribeImport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeImportInput"}, + "output":{"shape":"DescribeImportOutput"}, + "errors":[ + {"shape":"ImportNotFoundException"} + ], + "documentation":"

Represents the properties of the import.

" + }, "DescribeKinesisStreamingDestination":{ "name":"DescribeKinesisStreamingDestination", "http":{ @@ -468,6 +481,21 @@ "endpointdiscovery":{ } }, + "ImportTable":{ + "name":"ImportTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportTableInput"}, + "output":{"shape":"ImportTableOutput"}, + "errors":[ + {"shape":"ResourceInUseException"}, + {"shape":"LimitExceededException"}, + {"shape":"ImportConflictException"} + ], + "documentation":"

Imports table data from an S3 bucket.

" + }, "ListBackups":{ "name":"ListBackups", "http":{ @@ -526,6 +554,19 @@ "endpointdiscovery":{ } }, + "ListImports":{ + "name":"ListImports", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListImportsInput"}, + "output":{"shape":"ListImportsOutput"}, + "errors":[ + {"shape":"LimitExceededException"} + ], + "documentation":"

Lists completed imports within the past 90 days.

" + }, "ListTables":{ "name":"ListTables", "http":{ @@ -574,7 +615,7 @@ {"shape":"RequestLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values. You can return the item's attribute values in the same operation, using the ReturnValues parameter.

This topic provides general information about the PutItem API.

For information on how to call the PutItem API using the Amazon Web Services SDK in specific languages, see the following:

When you add an item, the primary key attributes are the only required attributes. Attribute values cannot be null.

Empty String and Binary attribute values are allowed. Attribute values of type String and Binary must have a length greater than zero if the attribute is used as a key attribute for a table or index. Set type attributes cannot be empty.

Invalid Requests with empty values will be rejected with a ValidationException exception.

To prevent a new item from replacing an existing item, use a conditional expression that contains the attribute_not_exists function with the name of the attribute being used as the partition key for the table. Since every record must contain that attribute, the attribute_not_exists function will only succeed if no matching item exists.

For more information about PutItem, see Working with Items in the Amazon DynamoDB Developer Guide.

", + "documentation":"

Creates a new item, or replaces an old item with a new item. If an item that has the same primary key as the new item already exists in the specified table, the new item completely replaces the existing item. You can perform a conditional put operation (add a new item if one with the specified primary key doesn't exist), or replace an existing item if it has certain attribute values. You can return the item's attribute values in the same operation, using the ReturnValues parameter.

When you add an item, the primary key attributes are the only required attributes.

Empty String and Binary attribute values are allowed. Attribute values of type String and Binary must have a length greater than zero if the attribute is used as a key attribute for a table or index. Set type attributes cannot be empty.

Invalid Requests with empty values will be rejected with a ValidationException exception.

To prevent a new item from replacing an existing item, use a conditional expression that contains the attribute_not_exists function with the name of the attribute being used as the partition key for the table. Since every record must contain that attribute, the attribute_not_exists function will only succeed if no matching item exists.

For more information about PutItem, see Working with Items in the Amazon DynamoDB Developer Guide.

", "endpointdiscovery":{ } }, @@ -687,7 +728,7 @@ {"shape":"RequestLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

TransactGetItems is a synchronous operation that atomically retrieves multiple items from one or more tables (but not from indexes) in a single account and Region. A TransactGetItems call can contain up to 25 TransactGetItem objects, each of which contains a Get structure that specifies an item to retrieve from a table in the account and Region. A call to TransactGetItems cannot retrieve items from tables in more than one Amazon Web Services account or Region. The aggregate size of the items in the transaction cannot exceed 4 MB.

DynamoDB rejects the entire TransactGetItems request if any of the following is true:

  • A conflicting operation is in the process of updating an item to be read.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • There is a user error, such as an invalid data format.

  • The aggregate size of the items in the transaction cannot exceed 4 MB.

", + "documentation":"

TransactGetItems is a synchronous operation that atomically retrieves multiple items from one or more tables (but not from indexes) in a single account and Region. A TransactGetItems call can contain up to 100 TransactGetItem objects, each of which contains a Get structure that specifies an item to retrieve from a table in the account and Region. A call to TransactGetItems cannot retrieve items from tables in more than one Amazon Web Services account or Region. The aggregate size of the items in the transaction cannot exceed 4 MB.

DynamoDB rejects the entire TransactGetItems request if any of the following is true:

  • A conflicting operation is in the process of updating an item to be read.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • There is a user error, such as an invalid data format.

  • The aggregate size of the items in the transaction cannot exceed 4 MB.

", "endpointdiscovery":{ } }, @@ -708,7 +749,7 @@ {"shape":"RequestLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

TransactWriteItems is a synchronous write operation that groups up to 25 action requests. These actions can target items in different tables, but not in different Amazon Web Services accounts or Regions, and no two actions can target the same item. For example, you cannot both ConditionCheck and Update the same item. The aggregate size of the items in the transaction cannot exceed 4 MB.

The actions are completed atomically so that either all of them succeed, or all of them fail. They are defined by the following objects:

  • Put  —   Initiates a PutItem operation to write a new item. This structure specifies the primary key of the item to be written, the name of the table to write it in, an optional condition expression that must be satisfied for the write to succeed, a list of the item's attributes, and a field indicating whether to retrieve the item's attributes if the condition is not met.

  • Update  —   Initiates an UpdateItem operation to update an existing item. This structure specifies the primary key of the item to be updated, the name of the table where it resides, an optional condition expression that must be satisfied for the update to succeed, an expression that defines one or more attributes to be updated, and a field indicating whether to retrieve the item's attributes if the condition is not met.

  • Delete  —   Initiates a DeleteItem operation to delete an existing item. This structure specifies the primary key of the item to be deleted, the name of the table where it resides, an optional condition expression that must be satisfied for the deletion to succeed, and a field indicating whether to retrieve the item's attributes if the condition is not met.

  • ConditionCheck  —   Applies a condition to an item that is not being modified by the transaction. This structure specifies the primary key of the item to be checked, the name of the table where it resides, a condition expression that must be satisfied for the transaction to succeed, and a field indicating whether to retrieve the item's attributes if the condition is not met.

DynamoDB rejects the entire TransactWriteItems request if any of the following is true:

  • A condition in one of the condition expressions is not met.

  • An ongoing operation is in the process of updating the same item.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • An item size becomes too large (bigger than 400 KB), a local secondary index (LSI) becomes too large, or a similar validation error occurs because of changes made by the transaction.

  • The aggregate size of the items in the transaction exceeds 4 MB.

  • There is a user error, such as an invalid data format.

", + "documentation":"

TransactWriteItems is a synchronous write operation that groups up to 100 action requests. These actions can target items in different tables, but not in different Amazon Web Services accounts or Regions, and no two actions can target the same item. For example, you cannot both ConditionCheck and Update the same item. The aggregate size of the items in the transaction cannot exceed 4 MB.

The actions are completed atomically so that either all of them succeed, or all of them fail. They are defined by the following objects:

  • Put  —   Initiates a PutItem operation to write a new item. This structure specifies the primary key of the item to be written, the name of the table to write it in, an optional condition expression that must be satisfied for the write to succeed, a list of the item's attributes, and a field indicating whether to retrieve the item's attributes if the condition is not met.

  • Update  —   Initiates an UpdateItem operation to update an existing item. This structure specifies the primary key of the item to be updated, the name of the table where it resides, an optional condition expression that must be satisfied for the update to succeed, an expression that defines one or more attributes to be updated, and a field indicating whether to retrieve the item's attributes if the condition is not met.

  • Delete  —   Initiates a DeleteItem operation to delete an existing item. This structure specifies the primary key of the item to be deleted, the name of the table where it resides, an optional condition expression that must be satisfied for the deletion to succeed, and a field indicating whether to retrieve the item's attributes if the condition is not met.

  • ConditionCheck  —   Applies a condition to an item that is not being modified by the transaction. This structure specifies the primary key of the item to be checked, the name of the table where it resides, a condition expression that must be satisfied for the transaction to succeed, and a field indicating whether to retrieve the item's attributes if the condition is not met.

DynamoDB rejects the entire TransactWriteItems request if any of the following is true:

  • A condition in one of the condition expressions is not met.

  • An ongoing operation is in the process of updating the same item.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • An item size becomes too large (bigger than 400 KB), a local secondary index (LSI) becomes too large, or a similar validation error occurs because of changes made by the transaction.

  • The aggregate size of the items in the transaction exceeds 4 MB.

  • There is a user error, such as an invalid data format.

", "endpointdiscovery":{ } }, @@ -834,7 +875,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServerError"} ], - "documentation":"

Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.

You can only perform one of the following operations at once:

  • Modify the provisioned throughput settings of the table.

  • Enable or disable DynamoDB Streams on the table.

  • Remove a global secondary index from the table.

  • Create a new global secondary index on the table. After the index begins backfilling, you can use UpdateTable to perform other operations.

UpdateTable is an asynchronous operation; while it is executing, the table status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot issue another UpdateTable request. When the table returns to the ACTIVE state, the UpdateTable operation is complete.

", + "documentation":"

Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table.

You can only perform one of the following operations at once:

  • Modify the provisioned throughput settings of the table.

  • Remove a global secondary index from the table.

  • Create a new global secondary index on the table. After the index begins backfilling, you can use UpdateTable to perform other operations.

UpdateTable is an asynchronous operation; while it is executing, the table status changes from ACTIVE to UPDATING. While it is UPDATING, you cannot issue another UpdateTable request. When the table returns to the ACTIVE state, the UpdateTable operation is complete.

", "endpointdiscovery":{ } }, @@ -975,7 +1016,7 @@ }, "L":{ "shape":"ListAttributeValue", - "documentation":"

An attribute of type List. For example:

\"L\": [ {\"S\": \"Cookies\"} , {\"S\": \"Coffee\"}, {\"N\", \"3.14159\"}]

" + "documentation":"

An attribute of type List. For example:

\"L\": [ {\"S\": \"Cookies\"} , {\"S\": \"Coffee\"}, {\"N\": \"3.14159\"}]

" }, "NULL":{ "shape":"NullAttributeValue", @@ -1001,7 +1042,7 @@ }, "Action":{ "shape":"AttributeAction", - "documentation":"

Specifies how to perform the update. Valid values are PUT (default), DELETE, and ADD. The behavior depends on whether the specified primary key already exists in the table.

If an item with the specified Key is found in the table:

  • PUT - Adds the specified attribute to the item. If the attribute already exists, it is replaced by the new value.

  • DELETE - If no value is specified, the attribute and its value are removed from the item. The data type of the specified value must match the existing value's data type.

    If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set [a,b,c] and the DELETE action specified [a,c], then the final attribute value would be [b]. Specifying an empty set is an error.

  • ADD - If the attribute does not already exist, then the attribute and its values are added to the item. If the attribute does exist, then the behavior of ADD depends on the data type of the attribute:

    • If the existing attribute is a number, and if Value is also a number, then the Value is mathematically added to the existing attribute. If Value is a negative number, then it is subtracted from the existing attribute.

      If you use ADD to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses 0 as the initial value.

      In addition, if you use ADD to update an existing item, and intend to increment or decrement an attribute value which does not yet exist, DynamoDB uses 0 as the initial value. For example, suppose that the item you want to update does not yet have an attribute named itemcount, but you decide to ADD the number 3 to this attribute anyway, even though it currently does not exist. DynamoDB will create the itemcount attribute, set its initial value to 0, and finally add 3 to it. The result will be a new itemcount attribute in the item, with a value of 3.

    • If the existing data type is a set, and if the Value is also a set, then the Value is added to the existing set. (This is a set operation, not mathematical addition.) For example, if the attribute value was the set [1,2], and the ADD action specified [3], then the final attribute value would be [1,2,3]. An error occurs if an Add action is specified for a set attribute and the attribute type specified does not match the existing set type.

      Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the Value must also be a set of strings. The same holds true for number sets and binary sets.

    This action is only valid for an existing attribute whose data type is number or is a set. Do not use ADD for any other data types.

If no item with the specified Key is found:

  • PUT - DynamoDB creates a new item with the specified primary key, and then adds the attribute.

  • DELETE - Nothing happens; there is no attribute to delete.

  • ADD - DynamoDB creates an item with the supplied primary key and number (or set of numbers) for the attribute value. The only data types allowed are number and number set; no other data types can be specified.

" + "documentation":"

Specifies how to perform the update. Valid values are PUT (default), DELETE, and ADD. The behavior depends on whether the specified primary key already exists in the table.

If an item with the specified Key is found in the table:

  • PUT - Adds the specified attribute to the item. If the attribute already exists, it is replaced by the new value.

  • DELETE - If no value is specified, the attribute and its value are removed from the item. The data type of the specified value must match the existing value's data type.

    If a set of values is specified, then those values are subtracted from the old set. For example, if the attribute value was the set [a,b,c] and the DELETE action specified [a,c], then the final attribute value would be [b]. Specifying an empty set is an error.

  • ADD - If the attribute does not already exist, then the attribute and its values are added to the item. If the attribute does exist, then the behavior of ADD depends on the data type of the attribute:

    • If the existing attribute is a number, and if Value is also a number, then the Value is mathematically added to the existing attribute. If Value is a negative number, then it is subtracted from the existing attribute.

      If you use ADD to increment or decrement a number value for an item that doesn't exist before the update, DynamoDB uses 0 as the initial value.

      In addition, if you use ADD to update an existing item, and intend to increment or decrement an attribute value which does not yet exist, DynamoDB uses 0 as the initial value. For example, suppose that the item you want to update does not yet have an attribute named itemcount, but you decide to ADD the number 3 to this attribute anyway, even though it currently does not exist. DynamoDB will create the itemcount attribute, set its initial value to 0, and finally add 3 to it. The result will be a new itemcount attribute in the item, with a value of 3.

    • If the existing data type is a set, and if the Value is also a set, then the Value is added to the existing set. (This is a set operation, not mathematical addition.) For example, if the attribute value was the set [1,2], and the ADD action specified [3], then the final attribute value would be [1,2,3]. An error occurs if an Add action is specified for a set attribute and the attribute type specified does not match the existing set type.

      Both sets must have the same primitive data type. For example, if the existing data type is a set of strings, the Value must also be a set of strings. The same holds true for number sets and binary sets.

    This action is only valid for an existing attribute whose data type is number or is a set. Do not use ADD for any other data types.

If no item with the specified Key is found:

  • PUT - DynamoDB creates a new item with the specified primary key, and then adds the attribute.

  • DELETE - Nothing happens; there is no attribute to delete.

  • ADD - DynamoDB creates a new item with the supplied primary key and number (or set) for the attribute value. The only data types allowed are number, number set, string set or binary set.

" } }, "documentation":"

For the UpdateItem operation, represents the attributes to be modified, the action to perform on each, and the new value for each.

You cannot use UpdateItem to update any primary key attributes. Instead, you will need to delete the item, and then use PutItem to create a new item with new attributes.

Attribute values cannot be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests with empty values will be rejected with a ValidationException exception.

" @@ -1194,7 +1235,7 @@ }, "BackupSizeBytes":{ "shape":"BackupSizeBytes", - "documentation":"

Size of the backup in bytes.

" + "documentation":"

Size of the backup in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

" }, "BackupStatus":{ "shape":"BackupStatus", @@ -1396,7 +1437,7 @@ }, "Message":{ "shape":"String", - "documentation":"

The error message associated with the PartiQL batch resposne.

" + "documentation":"

The error message associated with the PartiQL batch response.

" } }, "documentation":"

An error associated with a statement in a PartiQL batch that was run.

" @@ -1475,7 +1516,7 @@ "members":{ "UnprocessedItems":{ "shape":"BatchWriteItemRequestMap", - "documentation":"

A map of tables and requests against those tables that were not processed. The UnprocessedItems value is in the same form as RequestItems, so you can provide this value directly to a subsequent BatchGetItem operation. For more information, see RequestItems in the Request Parameters section.

Each UnprocessedItems entry consists of a table name and, for that table, a list of operations to perform (DeleteRequest or PutRequest).

  • DeleteRequest - Perform a DeleteItem operation on the specified item. The item to be deleted is identified by a Key subelement:

    • Key - A map of primary key attribute values that uniquely identify the item. Each entry in this map consists of an attribute name and an attribute value.

  • PutRequest - Perform a PutItem operation on the specified item. The item to be put is identified by an Item subelement:

    • Item - A map of attributes and their values. Each entry in this map consists of an attribute name and an attribute value. Attribute values must not be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests that contain empty values will be rejected with a ValidationException exception.

      If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition.

If there are no unprocessed items remaining, the response contains an empty UnprocessedItems map.

" + "documentation":"

A map of tables and requests against those tables that were not processed. The UnprocessedItems value is in the same form as RequestItems, so you can provide this value directly to a subsequent BatchWriteItem operation. For more information, see RequestItems in the Request Parameters section.

Each UnprocessedItems entry consists of a table name and, for that table, a list of operations to perform (DeleteRequest or PutRequest).

  • DeleteRequest - Perform a DeleteItem operation on the specified item. The item to be deleted is identified by a Key subelement:

    • Key - A map of primary key attribute values that uniquely identify the item. Each entry in this map consists of an attribute name and an attribute value.

  • PutRequest - Perform a PutItem operation on the specified item. The item to be put is identified by an Item subelement:

    • Item - A map of attributes and their values. Each entry in this map consists of an attribute name and an attribute value. Attribute values must not be null; string and binary type attributes must have lengths greater than zero; and set type attributes must not be empty. Requests that contain empty values will be rejected with a ValidationException exception.

      If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition.

If there are no unprocessed items remaining, the response contains an empty UnprocessedItems map.

" }, "ItemCollectionMetrics":{ "shape":"ItemCollectionMetricsPerTable", @@ -1518,7 +1559,7 @@ "documentation":"

Represents the time when PAY_PER_REQUEST was last set as the read/write capacity mode.

" } }, - "documentation":"

Contains the details for the read/write capacity mode.

" + "documentation":"

Contains the details for the read/write capacity mode. This page talks about PROVISIONED and PAY_PER_REQUEST billing modes. For more information about these modes, see Read/write capacity mode.

You may need to switch to on-demand mode at least once in order to return a BillingModeSummary response.

" }, "BinaryAttributeValue":{"type":"blob"}, "BinarySetAttributeValue":{ @@ -1548,7 +1589,7 @@ "CancellationReasonList":{ "type":"list", "member":{"shape":"CancellationReason"}, - "max":25, + "max":100, "min":1 }, "Capacity":{ @@ -1574,7 +1615,15 @@ "max":36, "min":1 }, - "ClientToken":{"type":"string"}, + "ClientToken":{ + "type":"string", + "pattern":"^[^\\$]+$" + }, + "CloudWatchLogGroupArn":{ + "type":"string", + "max":1024, + "min":1 + }, "Code":{"type":"string"}, "ComparisonOperator":{ "type":"string", @@ -1962,6 +2011,38 @@ }, "documentation":"

Represents the output of a CreateTable operation.

" }, + "CsvDelimiter":{ + "type":"string", + "max":1, + "min":1, + "pattern":"[,;:|\\t ]" + }, + "CsvHeader":{ + "type":"string", + "max":65536, + "min":1, + "pattern":"[\\x20-\\x21\\x23-\\x2B\\x2D-\\x7E]*" + }, + "CsvHeaderList":{ + "type":"list", + "member":{"shape":"CsvHeader"}, + "max":255, + "min":1 + }, + "CsvOptions":{ + "type":"structure", + "members":{ + "Delimiter":{ + "shape":"CsvDelimiter", + "documentation":"

The delimiter used for separating items in the CSV file being imported.

" + }, + "HeaderList":{ + "shape":"CsvHeaderList", + "documentation":"

List of the headers used to specify a common header for all source CSV files being imported. If this field is specified then the first line of each CSV file is treated as data instead of the header. If this field is not specified the the first line of each CSV file is treated as the header.

" + } + }, + "documentation":"

Processing options for the CSV file being imported.

" + }, "Date":{"type":"timestamp"}, "Delete":{ "type":"structure", @@ -2052,7 +2133,7 @@ }, "ReturnValues":{ "shape":"ReturnValue", - "documentation":"

Use ReturnValues if you want to get the item attributes as they appeared before they were deleted. For DeleteItem, the valid values are:

  • NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.)

  • ALL_OLD - The content of the old item is returned.

The ReturnValues parameter is used by several DynamoDB operations; however, DeleteItem does not recognize any values other than NONE or ALL_OLD.

" + "documentation":"

Use ReturnValues if you want to get the item attributes as they appeared before they were deleted. For DeleteItem, the valid values are:

  • NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.)

  • ALL_OLD - The content of the old item is returned.

There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.

The ReturnValues parameter is used by several DynamoDB operations; however, DeleteItem does not recognize any values other than NONE or ALL_OLD.

" }, "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, "ReturnItemCollectionMetrics":{ @@ -2303,6 +2384,26 @@ } } }, + "DescribeImportInput":{ + "type":"structure", + "required":["ImportArn"], + "members":{ + "ImportArn":{ + "shape":"ImportArn", + "documentation":"

The Amazon Resource Name (ARN) associated with the table you're importing to.

" + } + } + }, + "DescribeImportOutput":{ + "type":"structure", + "required":["ImportTableDescription"], + "members":{ + "ImportTableDescription":{ + "shape":"ImportTableDescription", + "documentation":"

Represents the properties of the table created for the import, and parameters of the import. The import parameters include import status, how many items were processed, and how many errors were encountered.

" + } + } + }, "DescribeKinesisStreamingDestinationInput":{ "type":"structure", "required":["TableName"], @@ -2454,6 +2555,10 @@ "type":"list", "member":{"shape":"Endpoint"} }, + "ErrorCount":{ + "type":"long", + "min":0 + }, "ErrorMessage":{"type":"string"}, "ExceptionDescription":{"type":"string"}, "ExceptionName":{"type":"string"}, @@ -2714,11 +2819,11 @@ }, "ExportTime":{ "shape":"ExportTime", - "documentation":"

Time in the past from which to export table data. The table export will be a snapshot of the table's state at this point in time.

" + "documentation":"

Time in the past from which to export table data, counted in seconds from the start of the Unix epoch. The table export will be a snapshot of the table's state at this point in time.

" }, "ClientToken":{ "shape":"ClientToken", - "documentation":"

Providing a ClientToken makes the call to ExportTableToPointInTimeInput idempotent, meaning that multiple identical calls have the same effect as one single call.

A client token is valid for 8 hours after the first request that uses it is completed. After 8 hours, any request with the same client token is treated as a new request. Do not resubmit the same request with the same client token for more than 8 hours, or the result might not be idempotent.

If you submit a request with the same client token but a change in other parameters within the 8-hour idempotency window, DynamoDB returns an IdempotentParameterMismatch exception.

", + "documentation":"

Providing a ClientToken makes the call to ExportTableToPointInTimeInput idempotent, meaning that multiple identical calls have the same effect as one single call.

A client token is valid for 8 hours after the first request that uses it is completed. After 8 hours, any request with the same client token is treated as a new request. Do not resubmit the same request with the same client token for more than 8 hours, or the result might not be idempotent.

If you submit a request with the same client token but a change in other parameters within the 8-hour idempotency window, DynamoDB returns an ImportConflictException.

", "idempotencyToken":true }, "S3Bucket":{ @@ -3109,6 +3214,218 @@ "documentation":"

DynamoDB rejected the request because you retried a request with a different payload but with an idempotent token that was already used.

", "exception":true }, + "ImportArn":{ + "type":"string", + "max":1024, + "min":37 + }, + "ImportConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"

There was a conflict when importing from the specified S3 source. This can occur when the current import conflicts with a previous import request that had the same client token.

", + "exception":true + }, + "ImportEndTime":{"type":"timestamp"}, + "ImportNextToken":{ + "type":"string", + "max":1024, + "min":112, + "pattern":"([0-9a-f]{16})+" + }, + "ImportNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"

The specified import was not found.

", + "exception":true + }, + "ImportStartTime":{"type":"timestamp"}, + "ImportStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "COMPLETED", + "CANCELLING", + "CANCELLED", + "FAILED" + ] + }, + "ImportSummary":{ + "type":"structure", + "members":{ + "ImportArn":{ + "shape":"ImportArn", + "documentation":"

The Amazon Resource Number (ARN) corresponding to the import request.

" + }, + "ImportStatus":{ + "shape":"ImportStatus", + "documentation":"

The status of the import operation.

" + }, + "TableArn":{ + "shape":"TableArn", + "documentation":"

The Amazon Resource Number (ARN) of the table being imported into.

" + }, + "S3BucketSource":{ + "shape":"S3BucketSource", + "documentation":"

The path and S3 bucket of the source file that is being imported. This includes the S3Bucket (required), S3KeyPrefix (optional) and S3BucketOwner (optional if the bucket is owned by the requester).

" + }, + "CloudWatchLogGroupArn":{ + "shape":"CloudWatchLogGroupArn", + "documentation":"

The Amazon Resource Number (ARN) of the Cloudwatch Log Group associated with this import task.

" + }, + "InputFormat":{ + "shape":"InputFormat", + "documentation":"

The format of the source data. Valid values are CSV, DYNAMODB_JSON or ION.

" + }, + "StartTime":{ + "shape":"ImportStartTime", + "documentation":"

The time at which this import task began.

" + }, + "EndTime":{ + "shape":"ImportEndTime", + "documentation":"

The time at which this import task ended. (Does this include the successful complete creation of the table it was imported to?)

" + } + }, + "documentation":"

Summary information about the source file for the import.

" + }, + "ImportSummaryList":{ + "type":"list", + "member":{"shape":"ImportSummary"} + }, + "ImportTableDescription":{ + "type":"structure", + "members":{ + "ImportArn":{ + "shape":"ImportArn", + "documentation":"

The Amazon Resource Number (ARN) corresponding to the import request.

" + }, + "ImportStatus":{ + "shape":"ImportStatus", + "documentation":"

The status of the import.

" + }, + "TableArn":{ + "shape":"TableArn", + "documentation":"

The Amazon Resource Number (ARN) of the table being imported into.

" + }, + "TableId":{ + "shape":"TableId", + "documentation":"

The table id corresponding to the table created by import table process.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

The client token that was provided for the import task. Reusing the client token on retry makes a call to ImportTable idempotent.

" + }, + "S3BucketSource":{ + "shape":"S3BucketSource", + "documentation":"

Values for the S3 bucket the source file is imported from. Includes bucket name (required), key prefix (optional) and bucket account owner ID (optional).

" + }, + "ErrorCount":{ + "shape":"ErrorCount", + "documentation":"

The number of errors occurred on importing the source file into the target table.

" + }, + "CloudWatchLogGroupArn":{ + "shape":"CloudWatchLogGroupArn", + "documentation":"

The Amazon Resource Number (ARN) of the Cloudwatch Log Group associated with the target table.

" + }, + "InputFormat":{ + "shape":"InputFormat", + "documentation":"

The format of the source data going into the target table.

" + }, + "InputFormatOptions":{ + "shape":"InputFormatOptions", + "documentation":"

The format options for the data that was imported into the target table. There is one value, CsvOption.

" + }, + "InputCompressionType":{ + "shape":"InputCompressionType", + "documentation":"

The compression options for the data that has been imported into the target table. The values are NONE, GZIP, or ZSTD.

" + }, + "TableCreationParameters":{ + "shape":"TableCreationParameters", + "documentation":"

The parameters for the new table that is being imported into.

" + }, + "StartTime":{ + "shape":"ImportStartTime", + "documentation":"

The time when this import task started.

" + }, + "EndTime":{ + "shape":"ImportEndTime", + "documentation":"

The time at which the creation of the table associated with this import task completed.

" + }, + "ProcessedSizeBytes":{ + "shape":"Long", + "documentation":"

The total size of data processed from the source file, in Bytes.

" + }, + "ProcessedItemCount":{ + "shape":"ProcessedItemCount", + "documentation":"

The total number of items processed from the source file.

" + }, + "ImportedItemCount":{ + "shape":"ImportedItemCount", + "documentation":"

The number of items successfully imported into the new table.

" + }, + "FailureCode":{ + "shape":"FailureCode", + "documentation":"

The error code corresponding to the failure that the import job ran into during execution.

" + }, + "FailureMessage":{ + "shape":"FailureMessage", + "documentation":"

The error message corresponding to the failure that the import job ran into during execution.

" + } + }, + "documentation":"

Represents the properties of the table being imported into.

" + }, + "ImportTableInput":{ + "type":"structure", + "required":[ + "S3BucketSource", + "InputFormat", + "TableCreationParameters" + ], + "members":{ + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

Providing a ClientToken makes the call to ImportTableInput idempotent, meaning that multiple identical calls have the same effect as one single call.

A client token is valid for 8 hours after the first request that uses it is completed. After 8 hours, any request with the same client token is treated as a new request. Do not resubmit the same request with the same client token for more than 8 hours, or the result might not be idempotent.

If you submit a request with the same client token but a change in other parameters within the 8-hour idempotency window, DynamoDB returns an IdempotentParameterMismatch exception.

", + "idempotencyToken":true + }, + "S3BucketSource":{ + "shape":"S3BucketSource", + "documentation":"

The S3 bucket that provides the source for the import.

" + }, + "InputFormat":{ + "shape":"InputFormat", + "documentation":"

The format of the source data. Valid values for ImportFormat are CSV, DYNAMODB_JSON or ION.

" + }, + "InputFormatOptions":{ + "shape":"InputFormatOptions", + "documentation":"

Additional properties that specify how the input is formatted,

" + }, + "InputCompressionType":{ + "shape":"InputCompressionType", + "documentation":"

Type of compression to be used on the input coming from the imported table.

" + }, + "TableCreationParameters":{ + "shape":"TableCreationParameters", + "documentation":"

Parameters for the table to import the data into.

" + } + } + }, + "ImportTableOutput":{ + "type":"structure", + "required":["ImportTableDescription"], + "members":{ + "ImportTableDescription":{ + "shape":"ImportTableDescription", + "documentation":"

Represents the properties of the table created for the import, and parameters of the import. The import parameters include import status, how many items were processed, and how many errors were encountered.

" + } + } + }, + "ImportedItemCount":{ + "type":"long", + "min":0 + }, "IndexName":{ "type":"string", "max":255, @@ -3132,6 +3449,32 @@ "ACTIVE" ] }, + "InputCompressionType":{ + "type":"string", + "enum":[ + "GZIP", + "ZSTD", + "NONE" + ] + }, + "InputFormat":{ + "type":"string", + "enum":[ + "DYNAMODB_JSON", + "ION", + "CSV" + ] + }, + "InputFormatOptions":{ + "type":"structure", + "members":{ + "Csv":{ + "shape":"CsvOptions", + "documentation":"

The options for imported source files in CSV format. The values are Delimiter and HeaderList.

" + } + }, + "documentation":"

The format options for the data that was imported into the target table. There is one value, CsvOption.

" + }, "Integer":{"type":"integer"}, "IntegerObject":{"type":"integer"}, "InternalServerError":{ @@ -3227,7 +3570,7 @@ "ItemResponseList":{ "type":"list", "member":{"shape":"ItemResponse"}, - "max":25, + "max":100, "min":1 }, "KMSMasterKeyArn":{"type":"string"}, @@ -3377,7 +3720,7 @@ "documentation":"

Too many operations for a given subscriber.

" } }, - "documentation":"

There is no limit to the number of daily on-demand backups that can be taken.

Up to 50 simultaneous table operations are allowed per account. These operations include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, and RestoreTableToPointInTime.

The only exception is when you are creating a table with one or more secondary indexes. You can have up to 25 such requests running at a time; however, if the table or index specifications are complex, DynamoDB might temporarily reduce the number of concurrent operations.

There is a soft account quota of 256 tables.

", + "documentation":"

There is no limit to the number of daily on-demand backups that can be taken.

For most purposes, up to 500 simultaneous table operations are allowed per account. These operations include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, and RestoreTableToPointInTime.

When you are creating a table with one or more secondary indexes, you can have up to 250 such requests running at a time. However, if the table or index specifications are complex, then DynamoDB might temporarily reduce the number of concurrent operations.

When importing into DynamoDB, up to 50 simultaneous import table operations are allowed per account.

There is a soft account quota of 2,500 tables.

", "exception":true }, "ListAttributeValue":{ @@ -3409,7 +3752,7 @@ }, "BackupType":{ "shape":"BackupTypeFilter", - "documentation":"

The backups from the table specified by BackupType are listed.

Where BackupType can be:

  • USER - On-demand backup created by you.

  • SYSTEM - On-demand backup automatically created by DynamoDB.

  • ALL - All types of on-demand backups (USER and SYSTEM).

" + "documentation":"

The backups from the table specified by BackupType are listed.

Where BackupType can be:

  • USER - On-demand backup created by you. (The default setting if no other backup types are specified.)

  • SYSTEM - On-demand backup automatically created by DynamoDB.

  • ALL - All types of on-demand backups (USER and SYSTEM).

" } } }, @@ -3525,6 +3868,41 @@ } } }, + "ListImportsInput":{ + "type":"structure", + "members":{ + "TableArn":{ + "shape":"TableArn", + "documentation":"

The Amazon Resource Name (ARN) associated with the table that was imported to.

" + }, + "PageSize":{ + "shape":"ListImportsMaxLimit", + "documentation":"

The number of ImportSummary objects returned in a single page.

" + }, + "NextToken":{ + "shape":"ImportNextToken", + "documentation":"

An optional string that, if supplied, must be copied from the output of a previous call to ListImports. When provided in this manner, the API fetches the next page of results.

" + } + } + }, + "ListImportsMaxLimit":{ + "type":"integer", + "max":25, + "min":1 + }, + "ListImportsOutput":{ + "type":"structure", + "members":{ + "ImportSummaryList":{ + "shape":"ImportSummaryList", + "documentation":"

A list of ImportSummary objects.

" + }, + "NextToken":{ + "shape":"ImportNextToken", + "documentation":"

If this value is returned, there are additional results to be displayed. To retrieve them, call ListImports again, with NextToken set to this value.

" + } + } + }, "ListTablesInput":{ "type":"structure", "members":{ @@ -3714,7 +4092,7 @@ "ParameterizedStatements":{ "type":"list", "member":{"shape":"ParameterizedStatement"}, - "max":25, + "max":100, "min":1 }, "PartiQLBatchRequest":{ @@ -3794,6 +4172,10 @@ "member":{"shape":"AttributeValue"}, "min":1 }, + "ProcessedItemCount":{ + "type":"long", + "min":0 + }, "Projection":{ "type":"structure", "members":{ @@ -3803,7 +4185,7 @@ }, "NonKeyAttributes":{ "shape":"NonKeyAttributeNameList", - "documentation":"

Represents the non-key attribute names which will be projected into the index.

For local secondary indexes, the total count of NonKeyAttributes summed across all of the local secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

" + "documentation":"

Represents the non-key attribute names which will be projected into the index.

For local secondary indexes, the total count of NonKeyAttributes summed across all of the local secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

" } }, "documentation":"

Represents attributes that are copied (projected) from the table into an index. These are in addition to the primary key attributes and index key attributes, which are automatically projected.

" @@ -3937,7 +4319,7 @@ }, "ReturnValues":{ "shape":"ReturnValue", - "documentation":"

Use ReturnValues if you want to get the item attributes as they appeared before they were updated with the PutItem request. For PutItem, the valid values are:

  • NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.)

  • ALL_OLD - If PutItem overwrote an attribute name-value pair, then the content of the old item is returned.

The values returned are strongly consistent.

The ReturnValues parameter is used by several DynamoDB operations; however, PutItem does not recognize any values other than NONE or ALL_OLD.

" + "documentation":"

Use ReturnValues if you want to get the item attributes as they appeared before they were updated with the PutItem request. For PutItem, the valid values are:

  • NONE - If ReturnValues is not specified, or if its value is NONE, then nothing is returned. (This setting is the default for ReturnValues.)

  • ALL_OLD - If PutItem overwrote an attribute name-value pair, then the content of the old item is returned.

The values returned are strongly consistent.

There is no additional cost associated with requesting a return value aside from the small network and processing overhead of receiving a larger response. No read capacity units are consumed.

The ReturnValues parameter is used by several DynamoDB operations; however, PutItem does not recognize any values other than NONE or ALL_OLD.

" }, "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, "ReturnItemCollectionMetrics":{ @@ -4011,7 +4393,7 @@ }, "Select":{ "shape":"Select", - "documentation":"

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

  • ALL_ATTRIBUTES - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required.

  • ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying ALL_ATTRIBUTES.

  • COUNT - Returns the number of matching items, rather than the matching items themselves.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet. This return value is equivalent to specifying AttributesToGet without specifying any value for Select.

    If you query or scan a local secondary index and request only attributes that are projected into that index, the operation will read only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

    If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

If neither Select nor AttributesToGet are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and AttributesToGet together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying AttributesToGet without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

" + "documentation":"

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

  • ALL_ATTRIBUTES - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required.

  • ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying ALL_ATTRIBUTES.

  • COUNT - Returns the number of matching items, rather than the matching items themselves.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in ProjectionExpression. This return value is equivalent to specifying ProjectionExpression without specifying any value for Select.

    If you query or scan a local secondary index and request only attributes that are projected into that index, the operation will read only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

    If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

If neither Select nor ProjectionExpression are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and ProjectionExpression together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying ProjectionExpression without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

" }, "AttributesToGet":{ "shape":"AttributeNameList", @@ -4052,7 +4434,7 @@ }, "FilterExpression":{ "shape":"ConditionExpression", - "documentation":"

A string that contains conditions that DynamoDB applies after the Query operation, but before the data is returned to you. Items that do not satisfy the FilterExpression criteria are not returned.

A FilterExpression does not allow key attributes. You cannot define a filter expression based on a partition key or a sort key.

A FilterExpression is applied after the items have already been read; the process of filtering does not consume any additional read capacity units.

For more information, see Filter Expressions in the Amazon DynamoDB Developer Guide.

" + "documentation":"

A string that contains conditions that DynamoDB applies after the Query operation, but before the data is returned to you. Items that do not satisfy the FilterExpression criteria are not returned.

A FilterExpression does not allow key attributes. You cannot define a filter expression based on a partition key or a sort key.

A FilterExpression is applied after the items have already been read; the process of filtering does not consume any additional read capacity units.

For more information, see Filter Expressions in the Amazon DynamoDB Developer Guide.

" }, "KeyConditionExpression":{ "shape":"KeyExpression", @@ -4226,7 +4608,7 @@ }, "IndexStatus":{ "shape":"IndexStatus", - "documentation":"

The current state of the replica global secondary index:

  • CREATING - The index is being created.

  • UPDATING - The index is being updated.

  • DELETING - The index is being deleted.

  • ACTIVE - The index is ready for use.

" + "documentation":"

The current state of the replica global secondary index:

  • CREATING - The index is being created.

  • UPDATING - The table/index configuration is being updated. The table/index remains available for data operations when UPDATING

  • DELETING - The index is being deleted.

  • ACTIVE - The index is ready for use.

" }, "ProvisionedReadCapacityAutoScalingSettings":{"shape":"AutoScalingSettingsDescription"}, "ProvisionedWriteCapacityAutoScalingSettings":{"shape":"AutoScalingSettingsDescription"} @@ -4472,7 +4854,7 @@ "documentation":"

The parameters required for deleting a replica for the table.

" } }, - "documentation":"

Represents one of the following:

  • A new replica to be added to an existing regional table or global table. This request invokes the CreateTableReplica action in the destination Region.

  • New parameters for an existing replica. This request invokes the UpdateTable action in the destination Region.

  • An existing replica to be deleted. The request invokes the DeleteTableReplica action in the destination Region, deleting the replica and all if its items in the destination Region.

" + "documentation":"

Represents one of the following:

  • A new replica to be added to an existing regional table or global table. This request invokes the CreateTableReplica action in the destination Region.

  • New parameters for an existing replica. This request invokes the UpdateTable action in the destination Region.

  • An existing replica to be deleted. The request invokes the DeleteTableReplica action in the destination Region, deleting the replica and all if its items in the destination Region.

When you manually remove a table or global table replica, you do not automatically remove any associated scalable targets, scaling policies, or CloudWatch alarms.

" }, "ReplicationGroupUpdateList":{ "type":"list", @@ -4675,9 +5057,38 @@ "NONE" ] }, - "S3Bucket":{"type":"string"}, - "S3BucketOwner":{"type":"string"}, - "S3Prefix":{"type":"string"}, + "S3Bucket":{ + "type":"string", + "max":255, + "pattern":"^[a-z0-9A-Z]+[\\.\\-\\w]*[a-z0-9A-Z]+$" + }, + "S3BucketOwner":{ + "type":"string", + "pattern":"[0-9]{12}" + }, + "S3BucketSource":{ + "type":"structure", + "required":["S3Bucket"], + "members":{ + "S3BucketOwner":{ + "shape":"S3BucketOwner", + "documentation":"

The account number of the S3 bucket that is being imported from. If the bucket is owned by the requester this is optional.

" + }, + "S3Bucket":{ + "shape":"S3Bucket", + "documentation":"

The S3 bucket that is being imported from.

" + }, + "S3KeyPrefix":{ + "shape":"S3Prefix", + "documentation":"

The key prefix shared by all S3 Objects that are being imported.

" + } + }, + "documentation":"

The S3 bucket that is being imported from.

" + }, + "S3Prefix":{ + "type":"string", + "max":1024 + }, "S3SseAlgorithm":{ "type":"string", "enum":[ @@ -4778,7 +5189,7 @@ }, "Select":{ "shape":"Select", - "documentation":"

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

  • ALL_ATTRIBUTES - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required.

  • ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying ALL_ATTRIBUTES.

  • COUNT - Returns the number of matching items, rather than the matching items themselves.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in AttributesToGet. This return value is equivalent to specifying AttributesToGet without specifying any value for Select.

    If you query or scan a local secondary index and request only attributes that are projected into that index, the operation reads only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

    If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

If neither Select nor AttributesToGet are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and AttributesToGet together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying AttributesToGet without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

" + "documentation":"

The attributes to be returned in the result. You can retrieve all item attributes, specific item attributes, the count of matching items, or in the case of an index, some or all of the attributes projected into the index.

  • ALL_ATTRIBUTES - Returns all of the item attributes from the specified table or index. If you query a local secondary index, then for each matching item in the index, DynamoDB fetches the entire item from the parent table. If the index is configured to project all item attributes, then all of the data can be obtained from the local secondary index, and no fetching is required.

  • ALL_PROJECTED_ATTRIBUTES - Allowed only when querying an index. Retrieves all attributes that have been projected into the index. If the index is configured to project all attributes, this return value is equivalent to specifying ALL_ATTRIBUTES.

  • COUNT - Returns the number of matching items, rather than the matching items themselves.

  • SPECIFIC_ATTRIBUTES - Returns only the attributes listed in ProjectionExpression. This return value is equivalent to specifying ProjectionExpression without specifying any value for Select.

    If you query or scan a local secondary index and request only attributes that are projected into that index, the operation reads only the index and not the table. If any of the requested attributes are not projected into the local secondary index, DynamoDB fetches each of these attributes from the parent table. This extra fetching incurs additional throughput cost and latency.

    If you query or scan a global secondary index, you can only request attributes that are projected into the index. Global secondary index queries cannot fetch attributes from the parent table.

If neither Select nor ProjectionExpression are specified, DynamoDB defaults to ALL_ATTRIBUTES when accessing a table, and ALL_PROJECTED_ATTRIBUTES when accessing an index. You cannot use both Select and ProjectionExpression together in a single request, unless the value for Select is SPECIFIC_ATTRIBUTES. (This usage is equivalent to specifying ProjectionExpression without any value for Select.)

If you use the ProjectionExpression parameter, then the value for Select can only be SPECIFIC_ATTRIBUTES. Any other value for Select will return an error.

" }, "ScanFilter":{ "shape":"FilterConditionMap", @@ -4807,7 +5218,7 @@ }, "FilterExpression":{ "shape":"ConditionExpression", - "documentation":"

A string that contains conditions that DynamoDB applies after the Scan operation, but before the data is returned to you. Items that do not satisfy the FilterExpression criteria are not returned.

A FilterExpression is applied after the items have already been read; the process of filtering does not consume any additional read capacity units.

For more information, see Filter Expressions in the Amazon DynamoDB Developer Guide.

" + "documentation":"

A string that contains conditions that DynamoDB applies after the Scan operation, but before the data is returned to you. Items that do not satisfy the FilterExpression criteria are not returned.

A FilterExpression is applied after the items have already been read; the process of filtering does not consume any additional read capacity units.

For more information, see Filter Expressions in the Amazon DynamoDB Developer Guide.

" }, "ExpressionAttributeNames":{ "shape":"ExpressionAttributeNameMap", @@ -5034,6 +5445,39 @@ "documentation":"

Contains details of the table class.

" }, "TableCreationDateTime":{"type":"timestamp"}, + "TableCreationParameters":{ + "type":"structure", + "required":[ + "TableName", + "AttributeDefinitions", + "KeySchema" + ], + "members":{ + "TableName":{ + "shape":"TableName", + "documentation":"

The name of the table created as part of the import operation.

" + }, + "AttributeDefinitions":{ + "shape":"AttributeDefinitions", + "documentation":"

The attributes of the table created as part of the import operation.

" + }, + "KeySchema":{ + "shape":"KeySchema", + "documentation":"

The primary key and option sort key of the table created as part of the import operation.

" + }, + "BillingMode":{ + "shape":"BillingMode", + "documentation":"

The billing mode for provisioning the table created as part of the import operation.

" + }, + "ProvisionedThroughput":{"shape":"ProvisionedThroughput"}, + "SSESpecification":{"shape":"SSESpecification"}, + "GlobalSecondaryIndexes":{ + "shape":"GlobalSecondaryIndexList", + "documentation":"

The Global Secondary Indexes (GSI) of the table to be created as part of the import operation.

" + } + }, + "documentation":"

The parameters for the table created as part of the import operation.

" + }, "TableDescription":{ "type":"structure", "members":{ @@ -5051,7 +5495,7 @@ }, "TableStatus":{ "shape":"TableStatus", - "documentation":"

The current state of the table:

  • CREATING - The table is being created.

  • UPDATING - The table is being updated.

  • DELETING - The table is being deleted.

  • ACTIVE - The table is ready for use.

  • INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival process when a table's KMS key remains inaccessible for more than seven days.

  • ARCHIVING - The table is being archived. Operations are not allowed until archival is complete.

  • ARCHIVED - The table has been archived. See the ArchivalReason for more information.

" + "documentation":"

The current state of the table:

  • CREATING - The table is being created.

  • UPDATING - The table/index configuration is being updated. The table/index remains available for data operations when UPDATING.

  • DELETING - The table is being deleted.

  • ACTIVE - The table is ready for use.

  • INACCESSIBLE_ENCRYPTION_CREDENTIALS - The KMS key used to encrypt the table in inaccessible. Table operations may fail due to failure to use the KMS key. DynamoDB will initiate the table archival process when a table's KMS key remains inaccessible for more than seven days.

  • ARCHIVING - The table is being archived. Operations are not allowed until archival is complete.

  • ARCHIVED - The table has been archived. See the ArchivalReason for more information.

" }, "CreationDateTime":{ "shape":"Date", @@ -5083,11 +5527,11 @@ }, "LocalSecondaryIndexes":{ "shape":"LocalSecondaryIndexDescriptionList", - "documentation":"

Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:

  • IndexName - The name of the local secondary index.

  • KeySchema - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.

  • Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:

    • ProjectionType - One of the following:

      • KEYS_ONLY - Only the index and primary keys are projected into the index.

      • INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes is in NonKeyAttributes.

      • ALL - All of the table attributes are projected into the index.

    • NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

  • IndexSizeBytes - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

  • ItemCount - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

If the table is in the DELETING state, no information about indexes will be returned.

" + "documentation":"

Represents one or more local secondary indexes on the table. Each index is scoped to a given partition key value. Tables with one or more local secondary indexes are subject to an item collection size limit, where the amount of data within a given item collection cannot exceed 10 GB. Each element is composed of:

  • IndexName - The name of the local secondary index.

  • KeySchema - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.

  • Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:

    • ProjectionType - One of the following:

      • KEYS_ONLY - Only the index and primary keys are projected into the index.

      • INCLUDE - Only the specified table attributes are projected into the index. The list of projected attributes is in NonKeyAttributes.

      • ALL - All of the table attributes are projected into the index.

    • NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

  • IndexSizeBytes - Represents the total size of the index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

  • ItemCount - Represents the number of items in the index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

If the table is in the DELETING state, no information about indexes will be returned.

" }, "GlobalSecondaryIndexes":{ "shape":"GlobalSecondaryIndexDescriptionList", - "documentation":"

The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:

  • Backfilling - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a CreateTable operation.)

    You can delete an index that is being created during the Backfilling phase when IndexStatus is set to CREATING and Backfilling is true. You can't delete the index that is being created when IndexStatus is set to CREATING and Backfilling is false. (This attribute does not appear for indexes that were created during a CreateTable operation.)

  • IndexName - The name of the global secondary index.

  • IndexSizeBytes - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

  • IndexStatus - The current status of the global secondary index:

    • CREATING - The index is being created.

    • UPDATING - The index is being updated.

    • DELETING - The index is being deleted.

    • ACTIVE - The index is ready for use.

  • ItemCount - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

  • KeySchema - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.

  • Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:

    • ProjectionType - One of the following:

      • KEYS_ONLY - Only the index and primary keys are projected into the index.

      • INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary index will include other non-key attributes that you specify.

      • ALL - All of the table attributes are projected into the index.

    • NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 20. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

  • ProvisionedThroughput - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.

If the table is in the DELETING state, no information about indexes will be returned.

" + "documentation":"

The global secondary indexes, if any, on the table. Each index is scoped to a given partition key value. Each element is composed of:

  • Backfilling - If true, then the index is currently in the backfilling phase. Backfilling occurs only when a new global secondary index is added to the table. It is the process by which DynamoDB populates the new index with data from the table. (This attribute does not appear for indexes that were created during a CreateTable operation.)

    You can delete an index that is being created during the Backfilling phase when IndexStatus is set to CREATING and Backfilling is true. You can't delete the index that is being created when IndexStatus is set to CREATING and Backfilling is false. (This attribute does not appear for indexes that were created during a CreateTable operation.)

  • IndexName - The name of the global secondary index.

  • IndexSizeBytes - The total size of the global secondary index, in bytes. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

  • IndexStatus - The current status of the global secondary index:

    • CREATING - The index is being created.

    • UPDATING - The index is being updated.

    • DELETING - The index is being deleted.

    • ACTIVE - The index is ready for use.

  • ItemCount - The number of items in the global secondary index. DynamoDB updates this value approximately every six hours. Recent changes might not be reflected in this value.

  • KeySchema - Specifies the complete index key schema. The attribute names in the key schema must be between 1 and 255 characters (inclusive). The key schema must begin with the same partition key as the table.

  • Projection - Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:

    • ProjectionType - One of the following:

      • KEYS_ONLY - Only the index and primary keys are projected into the index.

      • INCLUDE - In addition to the attributes described in KEYS_ONLY, the secondary index will include other non-key attributes that you specify.

      • ALL - All of the table attributes are projected into the index.

    • NonKeyAttributes - A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided in NonKeyAttributes, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.

  • ProvisionedThroughput - The provisioned throughput settings for the global secondary index, consisting of read and write capacity units, along with data about increases and decreases.

If the table is in the DELETING state, no information about indexes will be returned.

" }, "StreamSpecification":{ "shape":"StreamSpecification", @@ -5155,7 +5599,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

A source table with the name TableName does not currently exist within the subscriber's account.

", + "documentation":"

A source table with the name TableName does not currently exist within the subscriber's account or the subscriber is operating in the wrong Amazon Web Services Region.

", "exception":true }, "TableStatus":{ @@ -5286,7 +5730,7 @@ "TransactGetItemList":{ "type":"list", "member":{"shape":"TransactGetItem"}, - "max":25, + "max":100, "min":1 }, "TransactGetItemsInput":{ @@ -5295,7 +5739,7 @@ "members":{ "TransactItems":{ "shape":"TransactGetItemList", - "documentation":"

An ordered array of up to 25 TransactGetItem objects, each of which contains a Get structure.

" + "documentation":"

An ordered array of up to 100 TransactGetItem objects, each of which contains a Get structure.

" }, "ReturnConsumedCapacity":{ "shape":"ReturnConsumedCapacity", @@ -5312,7 +5756,7 @@ }, "Responses":{ "shape":"ItemResponseList", - "documentation":"

An ordered array of up to 25 ItemResponse objects, each of which corresponds to the TransactGetItem object in the same position in the TransactItems array. Each ItemResponse object contains a Map of the name-value pairs that are the projected attributes of the requested item.

If a requested item could not be retrieved, the corresponding ItemResponse object is Null, or if the requested item has no projected attributes, the corresponding ItemResponse object is an empty Map.

" + "documentation":"

An ordered array of up to 100 ItemResponse objects, each of which corresponds to the TransactGetItem object in the same position in the TransactItems array. Each ItemResponse object contains a Map of the name-value pairs that are the projected attributes of the requested item.

If a requested item could not be retrieved, the corresponding ItemResponse object is Null, or if the requested item has no projected attributes, the corresponding ItemResponse object is an empty Map.

" } } }, @@ -5341,7 +5785,7 @@ "TransactWriteItemList":{ "type":"list", "member":{"shape":"TransactWriteItem"}, - "max":25, + "max":100, "min":1 }, "TransactWriteItemsInput":{ @@ -5350,7 +5794,7 @@ "members":{ "TransactItems":{ "shape":"TransactWriteItemList", - "documentation":"

An ordered array of up to 25 TransactWriteItem objects, each of which contains a ConditionCheck, Put, Update, or Delete object. These can operate on items in different tables, but the tables must reside in the same Amazon Web Services account and Region, and no two of them can operate on the same item.

" + "documentation":"

An ordered array of up to 100 TransactWriteItem objects, each of which contains a ConditionCheck, Put, Update, or Delete object. These can operate on items in different tables, but the tables must reside in the same Amazon Web Services account and Region, and no two of them can operate on the same item.

" }, "ReturnConsumedCapacity":{"shape":"ReturnConsumedCapacity"}, "ReturnItemCollectionMetrics":{ @@ -5386,7 +5830,7 @@ "documentation":"

A list of cancellation reasons.

" } }, - "documentation":"

The entire transaction request was canceled.

DynamoDB cancels a TransactWriteItems request under the following circumstances:

  • A condition in one of the condition expressions is not met.

  • A table in the TransactWriteItems request is in a different account or region.

  • More than one action in the TransactWriteItems operation targets the same item.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • An item size becomes too large (larger than 400 KB), or a local secondary index (LSI) becomes too large, or a similar validation error occurs because of changes made by the transaction.

  • There is a user error, such as an invalid data format.

DynamoDB cancels a TransactGetItems request under the following circumstances:

  • There is an ongoing TransactGetItems operation that conflicts with a concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request. In this case the TransactGetItems operation fails with a TransactionCanceledException.

  • A table in the TransactGetItems request is in a different account or region.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • There is a user error, such as an invalid data format.

If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons property. This property is not set for other languages. Transaction cancellation reasons are ordered in the order of requested items, if an item has no error it will have NONE code and Null message.

Cancellation reason codes and possible error messages:

  • No Errors:

    • Code: NONE

    • Message: null

  • Conditional Check Failed:

    • Code: ConditionalCheckFailed

    • Message: The conditional request failed.

  • Item Collection Size Limit Exceeded:

    • Code: ItemCollectionSizeLimitExceeded

    • Message: Collection size exceeded.

  • Transaction Conflict:

    • Code: TransactionConflict

    • Message: Transaction is ongoing for the item.

  • Provisioned Throughput Exceeded:

    • Code: ProvisionedThroughputExceeded

    • Messages:

      • The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API.

        This Message is received when provisioned throughput is exceeded is on a provisioned DynamoDB table.

      • The level of configured provisioned throughput for one or more global secondary indexes of the table was exceeded. Consider increasing your provisioning level for the under-provisioned global secondary indexes with the UpdateTable API.

        This message is returned when provisioned throughput is exceeded is on a provisioned GSI.

  • Throttling Error:

    • Code: ThrottlingError

    • Messages:

      • Throughput exceeds the current capacity of your table or index. DynamoDB is automatically scaling your table or index so please try again shortly. If exceptions persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.

        This message is returned when writes get throttled on an On-Demand table as DynamoDB is automatically scaling the table.

      • Throughput exceeds the current capacity for one or more global secondary indexes. DynamoDB is automatically scaling your index so please try again shortly.

        This message is returned when when writes get throttled on an On-Demand GSI as DynamoDB is automatically scaling the GSI.

  • Validation Error:

    • Code: ValidationError

    • Messages:

      • One or more parameter values were invalid.

      • The update expression attempted to update the secondary index key beyond allowed size limits.

      • The update expression attempted to update the secondary index key to unsupported type.

      • An operand in the update expression has an incorrect data type.

      • Item size to update has exceeded the maximum allowed size.

      • Number overflow. Attempting to store a number with magnitude larger than supported range.

      • Type mismatch for attribute to update.

      • Nesting Levels have exceeded supported limits.

      • The document path provided in the update expression is invalid for update.

      • The provided expression refers to an attribute that does not exist in the item.

", + "documentation":"

The entire transaction request was canceled.

DynamoDB cancels a TransactWriteItems request under the following circumstances:

  • A condition in one of the condition expressions is not met.

  • A table in the TransactWriteItems request is in a different account or region.

  • More than one action in the TransactWriteItems operation targets the same item.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • An item size becomes too large (larger than 400 KB), or a local secondary index (LSI) becomes too large, or a similar validation error occurs because of changes made by the transaction.

  • There is a user error, such as an invalid data format.

DynamoDB cancels a TransactGetItems request under the following circumstances:

  • There is an ongoing TransactGetItems operation that conflicts with a concurrent PutItem, UpdateItem, DeleteItem or TransactWriteItems request. In this case the TransactGetItems operation fails with a TransactionCanceledException.

  • A table in the TransactGetItems request is in a different account or region.

  • There is insufficient provisioned capacity for the transaction to be completed.

  • There is a user error, such as an invalid data format.

If using Java, DynamoDB lists the cancellation reasons on the CancellationReasons property. This property is not set for other languages. Transaction cancellation reasons are ordered in the order of requested items, if an item has no error it will have None code and Null message.

Cancellation reason codes and possible error messages:

  • No Errors:

    • Code: None

    • Message: null

  • Conditional Check Failed:

    • Code: ConditionalCheckFailed

    • Message: The conditional request failed.

  • Item Collection Size Limit Exceeded:

    • Code: ItemCollectionSizeLimitExceeded

    • Message: Collection size exceeded.

  • Transaction Conflict:

    • Code: TransactionConflict

    • Message: Transaction is ongoing for the item.

  • Provisioned Throughput Exceeded:

    • Code: ProvisionedThroughputExceeded

    • Messages:

      • The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API.

        This Message is received when provisioned throughput is exceeded is on a provisioned DynamoDB table.

      • The level of configured provisioned throughput for one or more global secondary indexes of the table was exceeded. Consider increasing your provisioning level for the under-provisioned global secondary indexes with the UpdateTable API.

        This message is returned when provisioned throughput is exceeded is on a provisioned GSI.

  • Throttling Error:

    • Code: ThrottlingError

    • Messages:

      • Throughput exceeds the current capacity of your table or index. DynamoDB is automatically scaling your table or index so please try again shortly. If exceptions persist, check if you have a hot key: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html.

        This message is returned when writes get throttled on an On-Demand table as DynamoDB is automatically scaling the table.

      • Throughput exceeds the current capacity for one or more global secondary indexes. DynamoDB is automatically scaling your index so please try again shortly.

        This message is returned when when writes get throttled on an On-Demand GSI as DynamoDB is automatically scaling the GSI.

  • Validation Error:

    • Code: ValidationError

    • Messages:

      • One or more parameter values were invalid.

      • The update expression attempted to update the secondary index key beyond allowed size limits.

      • The update expression attempted to update the secondary index key to unsupported type.

      • An operand in the update expression has an incorrect data type.

      • Item size to update has exceeded the maximum allowed size.

      • Number overflow. Attempting to store a number with magnitude larger than supported range.

      • Type mismatch for attribute to update.

      • Nesting Levels have exceeded supported limits.

      • The document path provided in the update expression is invalid for update.

      • The provided expression refers to an attribute that does not exist in the item.

", "exception":true }, "TransactionConflictException":{ diff --git a/botocore/data/dynamodbstreams/2012-08-10/endpoint-rule-set-1.json b/botocore/data/dynamodbstreams/2012-08-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..d086a70a --- /dev/null +++ b/botocore/data/dynamodbstreams/2012-08-10/endpoint-rule-set-1.json @@ -0,0 +1,364 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://streams.dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://streams.dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://streams.dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://streams.dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "local" + ] + } + ], + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "dynamodb" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://streams.dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/dynamodbstreams/2012-08-10/service-2.json b/botocore/data/dynamodbstreams/2012-08-10/service-2.json index 9dd95ee2..9b65e8fc 100644 --- a/botocore/data/dynamodbstreams/2012-08-10/service-2.json +++ b/botocore/data/dynamodbstreams/2012-08-10/service-2.json @@ -117,7 +117,7 @@ }, "L":{ "shape":"ListAttributeValue", - "documentation":"

An attribute of type List. For example:

\"L\": [ {\"S\": \"Cookies\"} , {\"S\": \"Coffee\"}, {\"N\", \"3.14159\"}]

" + "documentation":"

An attribute of type List. For example:

\"L\": [ {\"S\": \"Cookies\"} , {\"S\": \"Coffee\"}, {\"N\": \"3.14159\"}]

" }, "NULL":{ "shape":"NullAttributeValue", @@ -314,7 +314,7 @@ "documentation":"

Too many operations for a given subscriber.

" } }, - "documentation":"

There is no limit to the number of daily on-demand backups that can be taken.

Up to 50 simultaneous table operations are allowed per account. These operations include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, and RestoreTableToPointInTime.

The only exception is when you are creating a table with one or more secondary indexes. You can have up to 25 such requests running at a time; however, if the table or index specifications are complex, DynamoDB might temporarily reduce the number of concurrent operations.

There is a soft account quota of 256 tables.

", + "documentation":"

There is no limit to the number of daily on-demand backups that can be taken.

For most purposes, up to 500 simultaneous table operations are allowed per account. These operations include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, RestoreTableFromBackup, and RestoreTableToPointInTime.

When you are creating a table with one or more secondary indexes, you can have up to 250 such requests running at a time. However, if the table or index specifications are complex, then DynamoDB might temporarily reduce the number of concurrent operations.

When importing into DynamoDB, up to 50 simultaneous import table operations are allowed per account.

There is a soft account quota of 2,500 tables.

", "exception":true }, "ListAttributeValue":{ diff --git a/botocore/data/ebs/2019-11-02/endpoint-rule-set-1.json b/botocore/data/ebs/2019-11-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..66091be7 --- /dev/null +++ b/botocore/data/ebs/2019-11-02/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ebs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ebs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ebs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ebs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ebs/2019-11-02/examples-1.json b/botocore/data/ebs/2019-11-02/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/ebs/2019-11-02/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/ec2-instance-connect/2018-04-02/endpoint-rule-set-1.json b/botocore/data/ec2-instance-connect/2018-04-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..b8b78e9f --- /dev/null +++ b/botocore/data/ec2-instance-connect/2018-04-02/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-instance-connect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-instance-connect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-instance-connect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-instance-connect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ec2-instance-connect/2018-04-02/examples-1.json b/botocore/data/ec2-instance-connect/2018-04-02/examples-1.json new file mode 100644 index 00000000..c5c60013 --- /dev/null +++ b/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/botocore/data/ec2-instance-connect/2018-04-02/service-2.json b/botocore/data/ec2-instance-connect/2018-04-02/service-2.json index d6fbb980..099dbf8e 100644 --- a/botocore/data/ec2-instance-connect/2018-04-02/service-2.json +++ b/botocore/data/ec2-instance-connect/2018-04-02/service-2.json @@ -27,7 +27,8 @@ {"shape":"ServiceException"}, {"shape":"ThrottlingException"}, {"shape":"EC2InstanceNotFoundException"}, - {"shape":"EC2InstanceStateInvalidException"} + {"shape":"EC2InstanceStateInvalidException"}, + {"shape":"EC2InstanceUnavailableException"} ], "documentation":"

Pushes an SSH public key to the specified EC2 instance for use by the specified user. The key remains for 60 seconds. For more information, see Connect to your Linux instance using EC2 Instance Connect in the Amazon EC2 User Guide.

" }, @@ -49,7 +50,8 @@ {"shape":"EC2InstanceTypeInvalidException"}, {"shape":"SerialConsoleSessionLimitExceededException"}, {"shape":"SerialConsoleSessionUnavailableException"}, - {"shape":"EC2InstanceStateInvalidException"} + {"shape":"EC2InstanceStateInvalidException"}, + {"shape":"EC2InstanceUnavailableException"} ], "documentation":"

Pushes an SSH public key to the specified EC2 instance. The key remains for 60 seconds, which gives you 60 seconds to establish a serial console connection to the instance using SSH. For more information, see EC2 Serial Console in the Amazon EC2 User Guide.

" } @@ -93,6 +95,14 @@ "documentation":"

The instance type is not supported for connecting via the serial console. Only Nitro instance types are currently supported.

", "exception":true }, + "EC2InstanceUnavailableException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The instance is currently unavailable. Wait a few minutes and try again.

", + "exception":true + }, "InstanceId":{ "type":"string", "max":32, diff --git a/botocore/data/ec2/2014-09-01/endpoint-rule-set-1.json b/botocore/data/ec2/2014-09-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..cc324428 --- /dev/null +++ b/botocore/data/ec2/2014-09-01/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ec2/2014-10-01/endpoint-rule-set-1.json b/botocore/data/ec2/2014-10-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..cc324428 --- /dev/null +++ b/botocore/data/ec2/2014-10-01/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ec2/2015-03-01/endpoint-rule-set-1.json b/botocore/data/ec2/2015-03-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..cc324428 --- /dev/null +++ b/botocore/data/ec2/2015-03-01/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ec2/2015-04-15/endpoint-rule-set-1.json b/botocore/data/ec2/2015-04-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..cc324428 --- /dev/null +++ b/botocore/data/ec2/2015-04-15/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ec2/2015-10-01/endpoint-rule-set-1.json b/botocore/data/ec2/2015-10-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..cc324428 --- /dev/null +++ b/botocore/data/ec2/2015-10-01/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ec2/2015-10-01/examples-1.json b/botocore/data/ec2/2015-10-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/ec2/2015-10-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/ec2/2016-04-01/endpoint-rule-set-1.json b/botocore/data/ec2/2016-04-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..cc324428 --- /dev/null +++ b/botocore/data/ec2/2016-04-01/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ec2/2016-04-01/examples-1.json b/botocore/data/ec2/2016-04-01/examples-1.json new file mode 100644 index 00000000..3f584e9f --- /dev/null +++ b/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/botocore/data/ec2/2016-09-15/endpoint-rule-set-1.json b/botocore/data/ec2/2016-09-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..cc324428 --- /dev/null +++ b/botocore/data/ec2/2016-09-15/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ec2/2016-11-15/endpoint-rule-set-1.json b/botocore/data/ec2/2016-11-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..54f6aee0 --- /dev/null +++ b/botocore/data/ec2/2016-11-15/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ec2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ec2/2016-11-15/examples-1.json b/botocore/data/ec2/2016-11-15/examples-1.json index 29f88e78..93b4bf88 100644 --- a/botocore/data/ec2/2016-11-15/examples-1.json +++ b/botocore/data/ec2/2016-11-15/examples-1.json @@ -887,7 +887,7 @@ "From": 53, "To": 53 }, - "Protocol": "udp", + "Protocol": "17", "RuleAction": "allow", "RuleNumber": 100 }, @@ -4398,7 +4398,7 @@ "From": 53, "To": 53 }, - "Protocol": "udp", + "Protocol": "17", "RuleAction": "allow", "RuleNumber": 100 }, diff --git a/botocore/data/ec2/2016-11-15/paginators-1.json b/botocore/data/ec2/2016-11-15/paginators-1.json index 00406225..798162f6 100644 --- a/botocore/data/ec2/2016-11-15/paginators-1.json +++ b/botocore/data/ec2/2016-11-15/paginators-1.json @@ -721,6 +721,72 @@ "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" } } } diff --git a/botocore/data/ec2/2016-11-15/service-2.json b/botocore/data/ec2/2016-11-15/service-2.json index dcd9f58a..b997370a 100644 --- a/botocore/data/ec2/2016-11-15/service-2.json +++ b/botocore/data/ec2/2016-11-15/service-2.json @@ -12,6 +12,16 @@ "xmlNamespace":"http://ec2.amazonaws.com/doc/2016-11-15" }, "operations":{ + "AcceptAddressTransfer":{ + "name":"AcceptAddressTransfer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AcceptAddressTransferRequest"}, + "output":{"shape":"AcceptAddressTransferResult"}, + "documentation":"

Accepts an Elastic IP address transfer. For more information, see Accept a transferred Elastic IP address in the Amazon Virtual Private Cloud User Guide.

" + }, "AcceptReservedInstancesExchangeQuote":{ "name":"AcceptReservedInstancesExchangeQuote", "http":{ @@ -90,7 +100,7 @@ }, "input":{"shape":"AllocateAddressRequest"}, "output":{"shape":"AllocateAddressResult"}, - "documentation":"

Allocates an Elastic IP address to your Amazon Web Services account. After you allocate the Elastic IP address you can associate it with an instance or network interface. After you release an Elastic IP address, it is released to the IP address pool and can be allocated to a different Amazon Web Services account.

You can allocate an Elastic IP address from an address pool owned by Amazon Web Services or from an address pool created from a public IPv4 address range that you have brought to Amazon Web Services for use with your Amazon Web Services resources using bring your own IP addresses (BYOIP). For more information, see Bring Your Own IP Addresses (BYOIP) in the Amazon Elastic Compute Cloud User Guide.

[EC2-VPC] If you release an Elastic IP address, you might be able to recover it. You cannot recover an Elastic IP address that you released after it is allocated to another Amazon Web Services account. You cannot recover an Elastic IP address for EC2-Classic. To attempt to recover an Elastic IP address that you released, specify it in this operation.

An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. By default, you can allocate 5 Elastic IP addresses for EC2-Classic per Region and 5 Elastic IP addresses for EC2-VPC per Region.

For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

You can allocate a carrier IP address which is a public IP address from a telecommunication carrier, to a network interface which resides in a subnet in a Wavelength Zone (for example an EC2 instance).

" + "documentation":"

Allocates an Elastic IP address to your Amazon Web Services account. After you allocate the Elastic IP address you can associate it with an instance or network interface. After you release an Elastic IP address, it is released to the IP address pool and can be allocated to a different Amazon Web Services account.

You can allocate an Elastic IP address from an address pool owned by Amazon Web Services or from an address pool created from a public IPv4 address range that you have brought to Amazon Web Services for use with your Amazon Web Services resources using bring your own IP addresses (BYOIP). For more information, see Bring Your Own IP Addresses (BYOIP) in the Amazon Elastic Compute Cloud User Guide.

[EC2-VPC] If you release an Elastic IP address, you might be able to recover it. You cannot recover an Elastic IP address that you released after it is allocated to another Amazon Web Services account. You cannot recover an Elastic IP address for EC2-Classic. To attempt to recover an Elastic IP address that you released, specify it in this operation.

An Elastic IP address is for use either in the EC2-Classic platform or in a VPC. By default, you can allocate 5 Elastic IP addresses for EC2-Classic per Region and 5 Elastic IP addresses for EC2-VPC per Region.

For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

You can allocate a carrier IP address which is a public IP address from a telecommunication carrier, to a network interface which resides in a subnet in a Wavelength Zone (for example an EC2 instance).

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "AllocateHosts":{ "name":"AllocateHosts", @@ -110,7 +120,7 @@ }, "input":{"shape":"AllocateIpamPoolCidrRequest"}, "output":{"shape":"AllocateIpamPoolCidrResult"}, - "documentation":"

Allocate a CIDR from an IPAM pool. In IPAM, an allocation is a CIDR assignment from an IPAM pool to another resource or IPAM pool. For more information, see Allocate CIDRs in the Amazon VPC IPAM User Guide.

" + "documentation":"

Allocate a CIDR from an IPAM pool. In IPAM, an allocation is a CIDR assignment from an IPAM pool to another resource or IPAM pool. For more information, see Allocate CIDRs in the Amazon VPC IPAM User Guide.

" }, "ApplySecurityGroupsToClientVpnTargetNetwork":{ "name":"ApplySecurityGroupsToClientVpnTargetNetwork", @@ -150,7 +160,7 @@ }, "input":{"shape":"AssociateAddressRequest"}, "output":{"shape":"AssociateAddressResult"}, - "documentation":"

Associates an Elastic IP address, or carrier IP address (for instances that are in subnets in Wavelength Zones) with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

[EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different instance, it is disassociated from that instance and associated with the specified instance. If you associate an Elastic IP address with an instance that has an existing Elastic IP address, the existing address is disassociated from the instance, but remains allocated to your account.

[VPC in an EC2-Classic account] If you don't specify a private IP address, the Elastic IP address is associated with the primary IP address. If the Elastic IP address is already associated with a different instance or a network interface, you get an error unless you allow reassociation. You cannot associate an Elastic IP address with an instance or network interface that has an existing Elastic IP address.

[Subnets in Wavelength Zones] You can associate an IP address from the telecommunication carrier to the instance or network interface.

You cannot associate an Elastic IP address with an interface in a different network border group.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error, and you may be charged for each time the Elastic IP address is remapped to the same instance. For more information, see the Elastic IP Addresses section of Amazon EC2 Pricing.

" + "documentation":"

Associates an Elastic IP address, or carrier IP address (for instances that are in subnets in Wavelength Zones) with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

[EC2-Classic, VPC in an EC2-VPC-only account] If the Elastic IP address is already associated with a different instance, it is disassociated from that instance and associated with the specified instance. If you associate an Elastic IP address with an instance that has an existing Elastic IP address, the existing address is disassociated from the instance, but remains allocated to your account.

[VPC in an EC2-Classic account] If you don't specify a private IP address, the Elastic IP address is associated with the primary IP address. If the Elastic IP address is already associated with a different instance or a network interface, you get an error unless you allow reassociation. You cannot associate an Elastic IP address with an instance or network interface that has an existing Elastic IP address.

[Subnets in Wavelength Zones] You can associate an IP address from the telecommunication carrier to the instance or network interface.

You cannot associate an Elastic IP address with an interface in a different network border group.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error, and you may be charged for each time the Elastic IP address is remapped to the same instance. For more information, see the Elastic IP Addresses section of Amazon EC2 Pricing.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "AssociateClientVpnTargetNetwork":{ "name":"AssociateClientVpnTargetNetwork", @@ -179,7 +189,7 @@ }, "input":{"shape":"AssociateEnclaveCertificateIamRoleRequest"}, "output":{"shape":"AssociateEnclaveCertificateIamRoleResult"}, - "documentation":"

Associates an Identity and Access Management (IAM) role with an Certificate Manager (ACM) certificate. This enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave. For more information, see Certificate Manager for Nitro Enclaves in the Amazon Web Services Nitro Enclaves User Guide.

When the IAM role is associated with the ACM certificate, the certificate, certificate chain, and encrypted private key are placed in an Amazon S3 bucket that only the associated IAM role can access. The private key of the certificate is encrypted with an Amazon Web Services managed key that has an attached attestation-based key policy.

To enable the IAM role to access the Amazon S3 object, you must grant it permission to call s3:GetObject on the Amazon S3 bucket returned by the command. To enable the IAM role to access the KMS key, you must grant it permission to call kms:Decrypt on the KMS key returned by the command. For more information, see Grant the role permission to access the certificate and encryption key in the Amazon Web Services Nitro Enclaves User Guide.

" + "documentation":"

Associates an Identity and Access Management (IAM) role with an Certificate Manager (ACM) certificate. This enables the certificate to be used by the ACM for Nitro Enclaves application inside an enclave. For more information, see Certificate Manager for Nitro Enclaves in the Amazon Web Services Nitro Enclaves User Guide.

When the IAM role is associated with the ACM certificate, the certificate, certificate chain, and encrypted private key are placed in an Amazon S3 location that only the associated IAM role can access. The private key of the certificate is encrypted with an Amazon Web Services managed key that has an attached attestation-based key policy.

To enable the IAM role to access the Amazon S3 object, you must grant it permission to call s3:GetObject on the Amazon S3 bucket returned by the command. To enable the IAM role to access the KMS key, you must grant it permission to call kms:Decrypt on the KMS key returned by the command. For more information, see Grant the role permission to access the certificate and encryption key in the Amazon Web Services Nitro Enclaves User Guide.

" }, "AssociateIamInstanceProfile":{ "name":"AssociateIamInstanceProfile", @@ -231,6 +241,16 @@ "output":{"shape":"AssociateTransitGatewayMulticastDomainResult"}, "documentation":"

Associates the specified subnets and transit gateway attachments with the specified transit gateway multicast domain.

The transit gateway attachment must be in the available state before you can add a resource. Use DescribeTransitGatewayAttachments to see the state of the attachment.

" }, + "AssociateTransitGatewayPolicyTable":{ + "name":"AssociateTransitGatewayPolicyTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateTransitGatewayPolicyTableRequest"}, + "output":{"shape":"AssociateTransitGatewayPolicyTableResult"}, + "documentation":"

Associates the specified transit gateway attachment with a transit gateway policy table.

" + }, "AssociateTransitGatewayRouteTable":{ "name":"AssociateTransitGatewayRouteTable", "http":{ @@ -269,7 +289,7 @@ }, "input":{"shape":"AttachClassicLinkVpcRequest"}, "output":{"shape":"AttachClassicLinkVpcResult"}, - "documentation":"

Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You can only link an instance that's in the running state. An instance is automatically unlinked from a VPC when it's stopped - you can link it to the VPC again when you restart it.

After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again.

Linking your instance to a VPC is sometimes referred to as attaching your instance.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Links an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups. You cannot link an EC2-Classic instance to more than one VPC at a time. You can only link an instance that's in the running state. An instance is automatically unlinked from a VPC when it's stopped - you can link it to the VPC again when you restart it.

After you've linked an instance, you cannot change the VPC security groups that are associated with it. To change the security groups, you must first unlink the instance, and then link it again.

Linking your instance to a VPC is sometimes referred to as attaching your instance.

" }, "AttachInternetGateway":{ "name":"AttachInternetGateway", @@ -290,6 +310,16 @@ "output":{"shape":"AttachNetworkInterfaceResult"}, "documentation":"

Attaches a network interface to an instance.

" }, + "AttachVerifiedAccessTrustProvider":{ + "name":"AttachVerifiedAccessTrustProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachVerifiedAccessTrustProviderRequest"}, + "output":{"shape":"AttachVerifiedAccessTrustProviderResult"}, + "documentation":"

A trust provider is a third-party entity that creates, maintains, and manages identity information for users and devices. One or more trust providers can be attached to an Amazon Web Services Verified Access instance.

" + }, "AttachVolume":{ "name":"AttachVolume", "http":{ @@ -328,7 +358,7 @@ }, "input":{"shape":"AuthorizeSecurityGroupEgressRequest"}, "output":{"shape":"AuthorizeSecurityGroupEgressResult"}, - "documentation":"

[VPC only] Adds the specified outbound (egress) rules to a security group for use with a VPC.

An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 CIDR address ranges, or to the instances that are associated with the specified source security groups.

You specify a protocol for each rule (for example, TCP). For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes.

Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.

For information about VPC security group quotas, see Amazon VPC quotas.

" + "documentation":"

[VPC only] Adds the specified outbound (egress) rules to a security group for use with a VPC.

An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 CIDR address ranges, or to the instances that are associated with the specified source security groups. When specifying an outbound rule for your security group in a VPC, the IpPermissions must include a destination for the traffic.

You specify a protocol for each rule (for example, TCP). For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes.

Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.

For information about VPC security group quotas, see Amazon VPC quotas.

" }, "AuthorizeSecurityGroupIngress":{ "name":"AuthorizeSecurityGroupIngress", @@ -338,7 +368,7 @@ }, "input":{"shape":"AuthorizeSecurityGroupIngressRequest"}, "output":{"shape":"AuthorizeSecurityGroupIngressResult"}, - "documentation":"

Adds the specified inbound (ingress) rules to a security group.

An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 CIDR address range, or from the instances that are associated with the specified destination security groups.

You specify a protocol for each rule (for example, TCP). For TCP and UDP, you must also specify the destination port or port range. For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type and code. You can use -1 to mean all types or all codes.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

For more information about VPC security group quotas, see Amazon VPC quotas.

" + "documentation":"

Adds the specified inbound (ingress) rules to a security group.

An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 CIDR address range, or from the instances that are associated with the specified destination security groups. When specifying an inbound rule for your security group in a VPC, the IpPermissions must include a source for the traffic.

You specify a protocol for each rule (for example, TCP). For TCP and UDP, you must also specify the destination port or port range. For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type and code. You can use -1 to mean all types or all codes.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

For more information about VPC security group quotas, see Amazon VPC quotas.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "BundleInstance":{ "name":"BundleInstance", @@ -398,6 +428,16 @@ "input":{"shape":"CancelExportTaskRequest"}, "documentation":"

Cancels an active export task. The request removes all artifacts of the export, including any partially-created Amazon S3 objects. If the export task is complete or is in the process of transferring the final disk image, the command fails and returns an error.

" }, + "CancelImageLaunchPermission":{ + "name":"CancelImageLaunchPermission", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelImageLaunchPermissionRequest"}, + "output":{"shape":"CancelImageLaunchPermissionResult"}, + "documentation":"

Removes your Amazon Web Services account from the launch permissions for the specified AMI. For more information, see Cancel having an AMI shared with your Amazon Web Services account in the Amazon Elastic Compute Cloud User Guide.

" + }, "CancelImportTask":{ "name":"CancelImportTask", "http":{ @@ -466,7 +506,7 @@ }, "input":{"shape":"CopyImageRequest"}, "output":{"shape":"CopyImageResult"}, - "documentation":"

Initiates the copy of an AMI. You can copy an AMI from one Region to another, or from a Region to an Outpost. You can't copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost. To copy an AMI to another partition, see CreateStoreImageTask.

To copy an AMI from one Region to another, specify the source Region using the SourceRegion parameter, and specify the destination Region using its endpoint. Copies of encrypted backing snapshots for the AMI are encrypted. Copies of unencrypted backing snapshots remain unencrypted, unless you set Encrypted during the copy operation. You cannot create an unencrypted copy of an encrypted backing snapshot.

To copy an AMI from a Region to an Outpost, specify the source Region using the SourceRegion parameter, and specify the ARN of the destination Outpost using DestinationOutpostArn. Backing snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region, or a different key that you specify in the request using KmsKeyId. Outposts do not support unencrypted snapshots. For more information, Amazon EBS local snapshots on Outposts in the Amazon Elastic Compute Cloud User Guide.

For more information about the prerequisites and limits when copying an AMI, see Copying an AMI in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Initiates the copy of an AMI. You can copy an AMI from one Region to another, or from a Region to an Outpost. You can't copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost. To copy an AMI to another partition, see CreateStoreImageTask.

To copy an AMI from one Region to another, specify the source Region using the SourceRegion parameter, and specify the destination Region using its endpoint. Copies of encrypted backing snapshots for the AMI are encrypted. Copies of unencrypted backing snapshots remain unencrypted, unless you set Encrypted during the copy operation. You cannot create an unencrypted copy of an encrypted backing snapshot.

To copy an AMI from a Region to an Outpost, specify the source Region using the SourceRegion parameter, and specify the ARN of the destination Outpost using DestinationOutpostArn. Backing snapshots copied to an Outpost are encrypted by default using the default encryption key for the Region, or a different key that you specify in the request using KmsKeyId. Outposts do not support unencrypted snapshots. For more information, Amazon EBS local snapshots on Outposts in the Amazon Elastic Compute Cloud User Guide.

For more information about the prerequisites and limits when copying an AMI, see Copy an AMI in the Amazon Elastic Compute Cloud User Guide.

" }, "CopySnapshot":{ "name":"CopySnapshot", @@ -528,6 +568,26 @@ "output":{"shape":"CreateClientVpnRouteResult"}, "documentation":"

Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint has a route table that describes the available destination network routes. Each route in the route table specifies the path for traffic to specific resources or networks.

" }, + "CreateCoipCidr":{ + "name":"CreateCoipCidr", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCoipCidrRequest"}, + "output":{"shape":"CreateCoipCidrResult"}, + "documentation":"

Creates a range of customer-owned IP addresses.

" + }, + "CreateCoipPool":{ + "name":"CreateCoipPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCoipPoolRequest"}, + "output":{"shape":"CreateCoipPoolResult"}, + "documentation":"

Creates a pool of customer-owned IP (CoIP) addresses.

" + }, "CreateCustomerGateway":{ "name":"CreateCustomerGateway", "http":{ @@ -536,7 +596,7 @@ }, "input":{"shape":"CreateCustomerGatewayRequest"}, "output":{"shape":"CreateCustomerGatewayResult"}, - "documentation":"

Provides information to Amazon Web Services about your VPN customer gateway device. The customer gateway is the appliance at your end of the VPN connection. (The device on the Amazon Web Services side of the VPN connection is the virtual private gateway.) You must provide the internet-routable IP address of the customer gateway's external interface. The IP address must be static and can be behind a device performing network address translation (NAT).

For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN. For more information, see Customer gateway options for your Site-to-Site VPN connection in the Amazon Web Services Site-to-Site VPN User Guide.

To create more than one customer gateway with the same VPN type, IP address, and BGP ASN, specify a unique device name for each customer gateway. An identical request returns information about the existing customer gateway; it doesn't create a new customer gateway.

" + "documentation":"

Provides information to Amazon Web Services about your customer gateway device. The customer gateway device is the appliance at your end of the VPN connection. You must provide the IP address of the customer gateway device’s external interface. The IP address must be static and can be behind a device performing network address translation (NAT).

For devices that use Border Gateway Protocol (BGP), you can also provide the device's BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network. If you don't have an ASN already, you can use a private ASN. For more information, see Customer gateway options for your Site-to-Site VPN connection in the Amazon Web Services Site-to-Site VPN User Guide.

To create more than one customer gateway with the same VPN type, IP address, and BGP ASN, specify a unique device name for each customer gateway. An identical request returns information about the existing customer gateway; it doesn't create a new customer gateway.

" }, "CreateDefaultSubnet":{ "name":"CreateDefaultSubnet", @@ -556,7 +616,7 @@ }, "input":{"shape":"CreateDefaultVpcRequest"}, "output":{"shape":"CreateDefaultVpcResult"}, - "documentation":"

Creates a default VPC with a size /16 IPv4 CIDR block and a default subnet in each Availability Zone. For more information about the components of a default VPC, see Default VPC and default subnets in the Amazon Virtual Private Cloud User Guide. You cannot specify the components of the default VPC yourself.

If you deleted your previous default VPC, you can create a default VPC. You cannot have more than one default VPC per Region.

If your account supports EC2-Classic, you cannot use this action to create a default VPC in a Region that supports EC2-Classic. If you want a default VPC in a Region that supports EC2-Classic, see \"I really want a default VPC for my existing EC2 account. Is that possible?\" in the Default VPCs FAQ.

" + "documentation":"

Creates a default VPC with a size /16 IPv4 CIDR block and a default subnet in each Availability Zone. For more information about the components of a default VPC, see Default VPC and default subnets in the Amazon Virtual Private Cloud User Guide. You cannot specify the components of the default VPC yourself.

If you deleted your previous default VPC, you can create a default VPC. You cannot have more than one default VPC per Region.

If your account supports EC2-Classic, you cannot use this action to create a default VPC in a Region that supports EC2-Classic. If you want a default VPC in a Region that supports EC2-Classic, see \"I really want a default VPC for my existing EC2 account. Is that possible?\" in the Default VPCs FAQ.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "CreateDhcpOptions":{ "name":"CreateDhcpOptions", @@ -616,7 +676,7 @@ }, "input":{"shape":"CreateImageRequest"}, "output":{"shape":"CreateImageResult"}, - "documentation":"

Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.

By default, when Amazon EC2 creates the new AMI, it reboots the instance so that it can take snapshots of the attached volumes while data is at rest, in order to ensure a consistent state. You can set the NoReboot parameter to true in the API request, or use the --no-reboot option in the CLI to prevent Amazon EC2 from shutting down and rebooting the instance.

If you choose to bypass the shutdown and reboot process by setting the NoReboot parameter to true in the API request, or by using the --no-reboot option in the CLI, we can't guarantee the file system integrity of the created image.

If you customized your instance with instance store volumes or Amazon EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes.

For more information, see Creating Amazon EBS-Backed Linux AMIs in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.

By default, when Amazon EC2 creates the new AMI, it reboots the instance so that it can take snapshots of the attached volumes while data is at rest, in order to ensure a consistent state. You can set the NoReboot parameter to true in the API request, or use the --no-reboot option in the CLI to prevent Amazon EC2 from shutting down and rebooting the instance.

If you choose to bypass the shutdown and reboot process by setting the NoReboot parameter to true in the API request, or by using the --no-reboot option in the CLI, we can't guarantee the file system integrity of the created image.

If you customized your instance with instance store volumes or Amazon EBS volumes in addition to the root device volume, the new AMI contains block device mapping information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional volumes.

For more information, see Create an Amazon EBS-backed Linux AMI in the Amazon Elastic Compute Cloud User Guide.

" }, "CreateInstanceEventWindow":{ "name":"CreateInstanceEventWindow", @@ -656,7 +716,7 @@ }, "input":{"shape":"CreateIpamRequest"}, "output":{"shape":"CreateIpamResult"}, - "documentation":"

Create an IPAM. Amazon VPC IP Address Manager (IPAM) is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization.

For more information, see Create an IPAM in the Amazon VPC IPAM User Guide.

" + "documentation":"

Create an IPAM. Amazon VPC IP Address Manager (IPAM) is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization.

For more information, see Create an IPAM in the Amazon VPC IPAM User Guide.

" }, "CreateIpamPool":{ "name":"CreateIpamPool", @@ -666,7 +726,7 @@ }, "input":{"shape":"CreateIpamPoolRequest"}, "output":{"shape":"CreateIpamPoolResult"}, - "documentation":"

Create an IP address pool for Amazon VPC IP Address Manager (IPAM). In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools enable you to organize your IP addresses according to your routing and security needs. For example, if you have separate routing and security needs for development and production applications, you can create a pool for each.

For more information, see Create a top-level pool in the Amazon VPC IPAM User Guide.

" + "documentation":"

Create an IP address pool for Amazon VPC IP Address Manager (IPAM). In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools enable you to organize your IP addresses according to your routing and security needs. For example, if you have separate routing and security needs for development and production applications, you can create a pool for each.

For more information, see Create a top-level pool in the Amazon VPC IPAM User Guide.

" }, "CreateIpamScope":{ "name":"CreateIpamScope", @@ -676,7 +736,7 @@ }, "input":{"shape":"CreateIpamScopeRequest"}, "output":{"shape":"CreateIpamScopeResult"}, - "documentation":"

Create an IPAM scope. In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.

For more information, see Add a scope in the Amazon VPC IPAM User Guide.

" + "documentation":"

Create an IPAM scope. In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.

For more information, see Add a scope in the Amazon VPC IPAM User Guide.

" }, "CreateKeyPair":{ "name":"CreateKeyPair", @@ -706,7 +766,7 @@ }, "input":{"shape":"CreateLaunchTemplateVersionRequest"}, "output":{"shape":"CreateLaunchTemplateVersionResult"}, - "documentation":"

Creates a new version for a launch template. You can specify an existing version of launch template from which to base the new version.

Launch template versions are numbered in the order in which they are created. You cannot specify, change, or replace the numbering of launch template versions.

Launch templates are immutable; after you create a launch template, you can't modify it. Instead, you can create a new version of the launch template that includes any changes you require.

For more information, see Modify a launch template (manage launch template versions)in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Creates a new version of a launch template. You can specify an existing version of launch template from which to base the new version.

Launch template versions are numbered in the order in which they are created. You cannot specify, change, or replace the numbering of launch template versions.

Launch templates are immutable; after you create a launch template, you can't modify it. Instead, you can create a new version of the launch template that includes any changes you require.

For more information, see Modify a launch template (manage launch template versions) in the Amazon Elastic Compute Cloud User Guide.

" }, "CreateLocalGatewayRoute":{ "name":"CreateLocalGatewayRoute", @@ -716,7 +776,27 @@ }, "input":{"shape":"CreateLocalGatewayRouteRequest"}, "output":{"shape":"CreateLocalGatewayRouteResult"}, - "documentation":"

Creates a static route for the specified local gateway route table.

" + "documentation":"

Creates a static route for the specified local gateway route table. You must specify one of the following targets:

  • LocalGatewayVirtualInterfaceGroupId

  • NetworkInterfaceId

" + }, + "CreateLocalGatewayRouteTable":{ + "name":"CreateLocalGatewayRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLocalGatewayRouteTableRequest"}, + "output":{"shape":"CreateLocalGatewayRouteTableResult"}, + "documentation":"

Creates a local gateway route table.

" + }, + "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation":{ + "name":"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest"}, + "output":{"shape":"CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult"}, + "documentation":"

Creates a local gateway route table virtual interface group association.

" }, "CreateLocalGatewayRouteTableVpcAssociation":{ "name":"CreateLocalGatewayRouteTableVpcAssociation", @@ -795,7 +875,7 @@ }, "input":{"shape":"CreateNetworkInterfaceRequest"}, "output":{"shape":"CreateNetworkInterfaceResult"}, - "documentation":"

Creates a network interface in the specified subnet.

For more information about network interfaces, see Elastic Network Interfaces in the Amazon Virtual Private Cloud User Guide.

" + "documentation":"

Creates a network interface in the specified subnet.

The number of IP addresses you can assign to a network interface varies by instance type. For more information, see IP Addresses Per ENI Per Instance Type in the Amazon Virtual Private Cloud User Guide.

For more information about network interfaces, see Elastic network interfaces in the Amazon Elastic Compute Cloud User Guide.

" }, "CreateNetworkInterfacePermission":{ "name":"CreateNetworkInterfacePermission", @@ -835,7 +915,7 @@ }, "input":{"shape":"CreateReplaceRootVolumeTaskRequest"}, "output":{"shape":"CreateReplaceRootVolumeTaskResult"}, - "documentation":"

Creates a root volume replacement task for an Amazon EC2 instance. The root volume can either be restored to its initial launch state, or it can be restored using a specific snapshot.

For more information, see Replace a root volume in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Replaces the EBS-backed root volume for a running instance with a new volume that is restored to the original root volume's launch state, that is restored to a specific snapshot taken from the original root volume, or that is restored from an AMI that has the same key characteristics as that of the instance.

For more information, see Replace a root volume in the Amazon Elastic Compute Cloud User Guide.

" }, "CreateReservedInstancesListing":{ "name":"CreateReservedInstancesListing", @@ -865,7 +945,7 @@ }, "input":{"shape":"CreateRouteRequest"}, "output":{"shape":"CreateRouteResult"}, - "documentation":"

Creates a route in a route table within a VPC.

You must specify one of the following targets: internet gateway or virtual private gateway, NAT instance, NAT gateway, VPC peering connection, network interface, egress-only internet gateway, or transit gateway.

When determining how to route traffic, we use the route with the most specific match. For example, traffic is destined for the IPv4 address 192.0.2.3, and the route table includes the following two IPv4 routes:

  • 192.0.2.0/24 (goes to some target A)

  • 192.0.2.0/28 (goes to some target B)

Both routes apply to the traffic destined for 192.0.2.3. However, the second route in the list covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where to target the traffic.

For more information about route tables, see Route tables in the Amazon Virtual Private Cloud User Guide.

" + "documentation":"

Creates a route in a route table within a VPC.

You must specify either a destination CIDR block or a prefix list ID. You must also specify exactly one of the resources from the parameter list.

When determining how to route traffic, we use the route with the most specific match. For example, traffic is destined for the IPv4 address 192.0.2.3, and the route table includes the following two IPv4 routes:

  • 192.0.2.0/24 (goes to some target A)

  • 192.0.2.0/28 (goes to some target B)

Both routes apply to the traffic destined for 192.0.2.3. However, the second route in the list covers a smaller number of IP addresses and is therefore more specific, so we use that route to determine where to target the traffic.

For more information about route tables, see Route tables in the Amazon Virtual Private Cloud User Guide.

" }, "CreateRouteTable":{ "name":"CreateRouteTable", @@ -885,7 +965,7 @@ }, "input":{"shape":"CreateSecurityGroupRequest"}, "output":{"shape":"CreateSecurityGroupResult"}, - "documentation":"

Creates a security group.

A security group acts as a virtual firewall for your instance to control inbound and outbound traffic. For more information, see Amazon EC2 security groups in the Amazon Elastic Compute Cloud User Guide and Security groups for your VPC in the Amazon Virtual Private Cloud User Guide.

When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name.

You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other.

You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.

For more information about VPC security group limits, see Amazon VPC Limits.

" + "documentation":"

Creates a security group.

A security group acts as a virtual firewall for your instance to control inbound and outbound traffic. For more information, see Amazon EC2 security groups in the Amazon Elastic Compute Cloud User Guide and Security groups for your VPC in the Amazon Virtual Private Cloud User Guide.

When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name.

You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other.

You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.

For more information about VPC security group limits, see Amazon VPC Limits.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "CreateSnapshot":{ "name":"CreateSnapshot", @@ -905,7 +985,7 @@ }, "input":{"shape":"CreateSnapshotsRequest"}, "output":{"shape":"CreateSnapshotsResult"}, - "documentation":"

Creates crash-consistent snapshots of multiple EBS volumes and stores the data in S3. Volumes are chosen by specifying an instance. Any attached volumes will produce one snapshot each that is crash-consistent across the instance. Boot volumes can be excluded by changing the parameters.

You can create multi-volume snapshots of instances in a Region and instances on an Outpost. If you create snapshots from an instance in a Region, the snapshots must be stored in the same Region as the instance. If you create snapshots from an instance on an Outpost, the snapshots can be stored on the same Outpost as the instance, or in the Region for that Outpost.

" + "documentation":"

Creates crash-consistent snapshots of multiple EBS volumes and stores the data in S3. Volumes are chosen by specifying an instance. Any attached volumes will produce one snapshot each that is crash-consistent across the instance.

You can include all of the volumes currently attached to the instance, or you can exclude the root volume or specific data (non-root) volumes from the multi-volume snapshot set.

You can create multi-volume snapshots of instances in a Region and instances on an Outpost. If you create snapshots from an instance in a Region, the snapshots must be stored in the same Region as the instance. If you create snapshots from an instance on an Outpost, the snapshots can be stored on the same Outpost as the instance, or in the Region for that Outpost.

" }, "CreateSpotDatafeedSubscription":{ "name":"CreateSpotDatafeedSubscription", @@ -954,7 +1034,7 @@ "requestUri":"/" }, "input":{"shape":"CreateTagsRequest"}, - "documentation":"

Adds or overwrites only the specified tags for the specified Amazon EC2 resource or resources. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide. For more information about creating IAM policies that control users' access to resources based on tags, see Supported Resource-Level Permissions for Amazon EC2 API Actions in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Adds or overwrites only the specified tags for the specified Amazon EC2 resource or resources. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource.

For more information about tags, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide. For more information about creating IAM policies that control users' access to resources based on tags, see Supported resource-level permissions for Amazon EC2 API actions in the Amazon Elastic Compute Cloud User Guide.

" }, "CreateTrafficMirrorFilter":{ "name":"CreateTrafficMirrorFilter", @@ -1044,7 +1124,17 @@ }, "input":{"shape":"CreateTransitGatewayPeeringAttachmentRequest"}, "output":{"shape":"CreateTransitGatewayPeeringAttachmentResult"}, - "documentation":"

Requests a transit gateway peering attachment between the specified transit gateway (requester) and a peer transit gateway (accepter). The transit gateways must be in different Regions. The peer transit gateway can be in your account or a different Amazon Web Services account.

After you create the peering attachment, the owner of the accepter transit gateway must accept the attachment request.

" + "documentation":"

Requests a transit gateway peering attachment between the specified transit gateway (requester) and a peer transit gateway (accepter). The peer transit gateway can be in your account or a different Amazon Web Services account.

After you create the peering attachment, the owner of the accepter transit gateway must accept the attachment request.

" + }, + "CreateTransitGatewayPolicyTable":{ + "name":"CreateTransitGatewayPolicyTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTransitGatewayPolicyTableRequest"}, + "output":{"shape":"CreateTransitGatewayPolicyTableResult"}, + "documentation":"

Creates a transit gateway policy table.

" }, "CreateTransitGatewayPrefixListReference":{ "name":"CreateTransitGatewayPrefixListReference", @@ -1076,6 +1166,16 @@ "output":{"shape":"CreateTransitGatewayRouteTableResult"}, "documentation":"

Creates a route table for the specified transit gateway.

" }, + "CreateTransitGatewayRouteTableAnnouncement":{ + "name":"CreateTransitGatewayRouteTableAnnouncement", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateTransitGatewayRouteTableAnnouncementRequest"}, + "output":{"shape":"CreateTransitGatewayRouteTableAnnouncementResult"}, + "documentation":"

Advertises a new transit gateway route table.

" + }, "CreateTransitGatewayVpcAttachment":{ "name":"CreateTransitGatewayVpcAttachment", "http":{ @@ -1086,6 +1186,46 @@ "output":{"shape":"CreateTransitGatewayVpcAttachmentResult"}, "documentation":"

Attaches the specified VPC to the specified transit gateway.

If you attach a VPC with a CIDR range that overlaps the CIDR range of a VPC that is already attached, the new VPC CIDR range is not propagated to the default propagation route table.

To send VPC traffic to an attached transit gateway, add a route to the VPC route table using CreateRoute.

" }, + "CreateVerifiedAccessEndpoint":{ + "name":"CreateVerifiedAccessEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVerifiedAccessEndpointRequest"}, + "output":{"shape":"CreateVerifiedAccessEndpointResult"}, + "documentation":"

An Amazon Web Services Verified Access endpoint is where you define your application along with an optional endpoint-level access policy.

" + }, + "CreateVerifiedAccessGroup":{ + "name":"CreateVerifiedAccessGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVerifiedAccessGroupRequest"}, + "output":{"shape":"CreateVerifiedAccessGroupResult"}, + "documentation":"

An Amazon Web Services Verified Access group is a collection of Amazon Web Services Verified Access endpoints who's associated applications have similar security requirements. Each instance within an Amazon Web Services Verified Access group shares an Amazon Web Services Verified Access policy. For example, you can group all Amazon Web Services Verified Access instances associated with “sales” applications together and use one common Amazon Web Services Verified Access policy.

" + }, + "CreateVerifiedAccessInstance":{ + "name":"CreateVerifiedAccessInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVerifiedAccessInstanceRequest"}, + "output":{"shape":"CreateVerifiedAccessInstanceResult"}, + "documentation":"

An Amazon Web Services Verified Access instance is a regional entity that evaluates application requests and grants access only when your security requirements are met.

" + }, + "CreateVerifiedAccessTrustProvider":{ + "name":"CreateVerifiedAccessTrustProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVerifiedAccessTrustProviderRequest"}, + "output":{"shape":"CreateVerifiedAccessTrustProviderResult"}, + "documentation":"

A trust provider is a third-party entity that creates, maintains, and manages identity information for users and devices. When an application request is made, the identity information sent by the trust provider will be evaluated by Amazon Web Services Verified Access, before allowing or denying the application request.

" + }, "CreateVolume":{ "name":"CreateVolume", "http":{ @@ -1205,6 +1345,26 @@ "output":{"shape":"DeleteClientVpnRouteResult"}, "documentation":"

Deletes a route from a Client VPN endpoint. You can only delete routes that you manually added using the CreateClientVpnRoute action. You cannot delete routes that were automatically added when associating a subnet. To remove routes that have been automatically added, disassociate the target subnet from the Client VPN endpoint.

" }, + "DeleteCoipCidr":{ + "name":"DeleteCoipCidr", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCoipCidrRequest"}, + "output":{"shape":"DeleteCoipCidrResult"}, + "documentation":"

Deletes a range of customer-owned IP addresses.

" + }, + "DeleteCoipPool":{ + "name":"DeleteCoipPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCoipPoolRequest"}, + "output":{"shape":"DeleteCoipPoolResult"}, + "documentation":"

Deletes a pool of customer-owned IP (CoIP) addresses.

" + }, "DeleteCustomerGateway":{ "name":"DeleteCustomerGateway", "http":{ @@ -1290,7 +1450,7 @@ }, "input":{"shape":"DeleteIpamRequest"}, "output":{"shape":"DeleteIpamResult"}, - "documentation":"

Delete an IPAM. Deleting an IPAM removes all monitored data associated with the IPAM including the historical data for CIDRs.

For more information, see Delete an IPAM in the Amazon VPC IPAM User Guide.

" + "documentation":"

Delete an IPAM. Deleting an IPAM removes all monitored data associated with the IPAM including the historical data for CIDRs.

For more information, see Delete an IPAM in the Amazon VPC IPAM User Guide.

" }, "DeleteIpamPool":{ "name":"DeleteIpamPool", @@ -1300,7 +1460,7 @@ }, "input":{"shape":"DeleteIpamPoolRequest"}, "output":{"shape":"DeleteIpamPoolResult"}, - "documentation":"

Delete an IPAM pool.

You cannot delete an IPAM pool if there are allocations in it or CIDRs provisioned to it. To release allocations, see ReleaseIpamPoolAllocation. To deprovision pool CIDRs, see DeprovisionIpamPoolCidr.

For more information, see Delete a pool in the Amazon VPC IPAM User Guide.

" + "documentation":"

Delete an IPAM pool.

You cannot delete an IPAM pool if there are allocations in it or CIDRs provisioned to it. To release allocations, see ReleaseIpamPoolAllocation. To deprovision pool CIDRs, see DeprovisionIpamPoolCidr.

For more information, see Delete a pool in the Amazon VPC IPAM User Guide.

" }, "DeleteIpamScope":{ "name":"DeleteIpamScope", @@ -1310,7 +1470,7 @@ }, "input":{"shape":"DeleteIpamScopeRequest"}, "output":{"shape":"DeleteIpamScopeResult"}, - "documentation":"

Delete the scope for an IPAM. You cannot delete the default scopes.

For more information, see Delete a scope in the Amazon VPC IPAM User Guide.

" + "documentation":"

Delete the scope for an IPAM. You cannot delete the default scopes.

For more information, see Delete a scope in the Amazon VPC IPAM User Guide.

" }, "DeleteKeyPair":{ "name":"DeleteKeyPair", @@ -1351,6 +1511,26 @@ "output":{"shape":"DeleteLocalGatewayRouteResult"}, "documentation":"

Deletes the specified route from the specified local gateway route table.

" }, + "DeleteLocalGatewayRouteTable":{ + "name":"DeleteLocalGatewayRouteTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLocalGatewayRouteTableRequest"}, + "output":{"shape":"DeleteLocalGatewayRouteTableResult"}, + "documentation":"

Deletes a local gateway route table.

" + }, + "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation":{ + "name":"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest"}, + "output":{"shape":"DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult"}, + "documentation":"

Deletes a local gateway route table virtual interface group association.

" + }, "DeleteLocalGatewayRouteTableVpcAssociation":{ "name":"DeleteLocalGatewayRouteTableVpcAssociation", "http":{ @@ -1512,7 +1692,7 @@ "requestUri":"/" }, "input":{"shape":"DeleteSecurityGroupRequest"}, - "documentation":"

Deletes a security group.

If you attempt to delete a security group that is associated with an instance, or is referenced by another security group, the operation fails with InvalidGroup.InUse in EC2-Classic or DependencyViolation in EC2-VPC.

" + "documentation":"

Deletes a security group.

If you attempt to delete a security group that is associated with an instance, or is referenced by another security group, the operation fails with InvalidGroup.InUse in EC2-Classic or DependencyViolation in EC2-VPC.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "DeleteSnapshot":{ "name":"DeleteSnapshot", @@ -1558,7 +1738,7 @@ "requestUri":"/" }, "input":{"shape":"DeleteTagsRequest"}, - "documentation":"

Deletes the specified set of tags from the specified set of resources.

To list the current tags, use DescribeTags. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Deletes the specified set of tags from the specified set of resources.

To list the current tags, use DescribeTags. For more information about tags, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide.

" }, "DeleteTrafficMirrorFilter":{ "name":"DeleteTrafficMirrorFilter", @@ -1650,6 +1830,16 @@ "output":{"shape":"DeleteTransitGatewayPeeringAttachmentResult"}, "documentation":"

Deletes a transit gateway peering attachment.

" }, + "DeleteTransitGatewayPolicyTable":{ + "name":"DeleteTransitGatewayPolicyTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTransitGatewayPolicyTableRequest"}, + "output":{"shape":"DeleteTransitGatewayPolicyTableResult"}, + "documentation":"

Deletes the specified transit gateway policy table.

" + }, "DeleteTransitGatewayPrefixListReference":{ "name":"DeleteTransitGatewayPrefixListReference", "http":{ @@ -1680,6 +1870,16 @@ "output":{"shape":"DeleteTransitGatewayRouteTableResult"}, "documentation":"

Deletes the specified transit gateway route table. You must disassociate the route table from any transit gateway route tables before you can delete it.

" }, + "DeleteTransitGatewayRouteTableAnnouncement":{ + "name":"DeleteTransitGatewayRouteTableAnnouncement", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteTransitGatewayRouteTableAnnouncementRequest"}, + "output":{"shape":"DeleteTransitGatewayRouteTableAnnouncementResult"}, + "documentation":"

Advertises to the transit gateway that a transit gateway route table is deleted.

" + }, "DeleteTransitGatewayVpcAttachment":{ "name":"DeleteTransitGatewayVpcAttachment", "http":{ @@ -1690,6 +1890,46 @@ "output":{"shape":"DeleteTransitGatewayVpcAttachmentResult"}, "documentation":"

Deletes the specified VPC attachment.

" }, + "DeleteVerifiedAccessEndpoint":{ + "name":"DeleteVerifiedAccessEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVerifiedAccessEndpointRequest"}, + "output":{"shape":"DeleteVerifiedAccessEndpointResult"}, + "documentation":"

Delete an Amazon Web Services Verified Access endpoint.

" + }, + "DeleteVerifiedAccessGroup":{ + "name":"DeleteVerifiedAccessGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVerifiedAccessGroupRequest"}, + "output":{"shape":"DeleteVerifiedAccessGroupResult"}, + "documentation":"

Delete an Amazon Web Services Verified Access group.

" + }, + "DeleteVerifiedAccessInstance":{ + "name":"DeleteVerifiedAccessInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVerifiedAccessInstanceRequest"}, + "output":{"shape":"DeleteVerifiedAccessInstanceResult"}, + "documentation":"

Delete an Amazon Web Services Verified Access instance.

" + }, + "DeleteVerifiedAccessTrustProvider":{ + "name":"DeleteVerifiedAccessTrustProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVerifiedAccessTrustProviderRequest"}, + "output":{"shape":"DeleteVerifiedAccessTrustProviderResult"}, + "documentation":"

Delete an Amazon Web Services Verified Access trust provider.

" + }, "DeleteVolume":{ "name":"DeleteVolume", "http":{ @@ -1793,7 +2033,7 @@ }, "input":{"shape":"DeprovisionIpamPoolCidrRequest"}, "output":{"shape":"DeprovisionIpamPoolCidrResult"}, - "documentation":"

Deprovision a CIDR provisioned from an IPAM pool. If you deprovision a CIDR from a pool that has a source pool, the CIDR is recycled back into the source pool. For more information, see Deprovision pool CIDRs in the Amazon VPC IPAM User Guide.

" + "documentation":"

Deprovision a CIDR provisioned from an IPAM pool. If you deprovision a CIDR from a pool that has a source pool, the CIDR is recycled back into the source pool. For more information, see Deprovision pool CIDRs in the Amazon VPC IPAM User Guide.

" }, "DeprovisionPublicIpv4PoolCidr":{ "name":"DeprovisionPublicIpv4PoolCidr", @@ -1812,7 +2052,7 @@ "requestUri":"/" }, "input":{"shape":"DeregisterImageRequest"}, - "documentation":"

Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances.

If you deregister an AMI that matches a Recycle Bin retention rule, the AMI is retained in the Recycle Bin for the specified retention period. For more information, see Recycle Bin in the Amazon Elastic Compute Cloud User Guide.

When you deregister an AMI, it doesn't affect any instances that you've already launched from the AMI. You'll continue to incur usage costs for those instances until you terminate them.

When you deregister an Amazon EBS-backed AMI, it doesn't affect the snapshot that was created for the root volume of the instance during the AMI creation process. When you deregister an instance store-backed AMI, it doesn't affect the files that you uploaded to Amazon S3 when you created the AMI.

" + "documentation":"

Deregisters the specified AMI. After you deregister an AMI, it can't be used to launch new instances.

If you deregister an AMI that matches a Recycle Bin retention rule, the AMI is retained in the Recycle Bin for the specified retention period. For more information, see Recycle Bin in the Amazon Elastic Compute Cloud User Guide.

When you deregister an AMI, it doesn't affect any instances that you've already launched from the AMI. You'll continue to incur usage costs for those instances until you terminate them.

When you deregister an Amazon EBS-backed AMI, it doesn't affect the snapshot that was created for the root volume of the instance during the AMI creation process. When you deregister an instance store-backed AMI, it doesn't affect the files that you uploaded to Amazon S3 when you created the AMI.

" }, "DeregisterInstanceEventNotificationAttributes":{ "name":"DeregisterInstanceEventNotificationAttributes", @@ -1852,7 +2092,17 @@ }, "input":{"shape":"DescribeAccountAttributesRequest"}, "output":{"shape":"DescribeAccountAttributesResult"}, - "documentation":"

Describes attributes of your Amazon Web Services account. The following are the supported account attributes:

  • supported-platforms: Indicates whether your account can launch instances into EC2-Classic and EC2-VPC, or only into EC2-VPC.

  • default-vpc: The ID of the default VPC for your account, or none.

  • max-instances: This attribute is no longer supported. The returned value does not reflect your actual vCPU limit for running On-Demand Instances. For more information, see On-Demand Instance Limits in the Amazon Elastic Compute Cloud User Guide.

  • vpc-max-security-groups-per-interface: The maximum number of security groups that you can assign to a network interface.

  • max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-Classic.

  • vpc-max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-VPC.

" + "documentation":"

Describes attributes of your Amazon Web Services account. The following are the supported account attributes:

  • supported-platforms: Indicates whether your account can launch instances into EC2-Classic and EC2-VPC, or only into EC2-VPC.

  • default-vpc: The ID of the default VPC for your account, or none.

  • max-instances: This attribute is no longer supported. The returned value does not reflect your actual vCPU limit for running On-Demand Instances. For more information, see On-Demand Instance Limits in the Amazon Elastic Compute Cloud User Guide.

  • vpc-max-security-groups-per-interface: The maximum number of security groups that you can assign to a network interface.

  • max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-Classic.

  • vpc-max-elastic-ips: The maximum number of Elastic IP addresses that you can allocate for use with EC2-VPC.

We are retiring EC2-Classic on August 15, 2022. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide.

" + }, + "DescribeAddressTransfers":{ + "name":"DescribeAddressTransfers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAddressTransfersRequest"}, + "output":{"shape":"DescribeAddressTransfersResult"}, + "documentation":"

Describes an Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon Virtual Private Cloud User Guide.

" }, "DescribeAddresses":{ "name":"DescribeAddresses", @@ -1862,7 +2112,7 @@ }, "input":{"shape":"DescribeAddressesRequest"}, "output":{"shape":"DescribeAddressesResult"}, - "documentation":"

Describes the specified Elastic IP addresses or all of your Elastic IP addresses.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Describes the specified Elastic IP addresses or all of your Elastic IP addresses.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeAddressesAttribute":{ "name":"DescribeAddressesAttribute", @@ -1894,6 +2144,16 @@ "output":{"shape":"DescribeAvailabilityZonesResult"}, "documentation":"

Describes the Availability Zones, Local Zones, and Wavelength Zones that are available to you. If there is an event impacting a zone, you can use this request to view the state and any provided messages for that zone.

For more information about Availability Zones, Local Zones, and Wavelength Zones, see Regions and zones in the Amazon Elastic Compute Cloud User Guide.

" }, + "DescribeAwsNetworkPerformanceMetricSubscriptions":{ + "name":"DescribeAwsNetworkPerformanceMetricSubscriptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAwsNetworkPerformanceMetricSubscriptionsRequest"}, + "output":{"shape":"DescribeAwsNetworkPerformanceMetricSubscriptionsResult"}, + "documentation":"

Describes the current Infrastructure Performance metric subscriptions.

" + }, "DescribeBundleTasks":{ "name":"DescribeBundleTasks", "http":{ @@ -1952,7 +2212,7 @@ }, "input":{"shape":"DescribeClassicLinkInstancesRequest"}, "output":{"shape":"DescribeClassicLinkInstancesResult"}, - "documentation":"

Describes one or more of your linked EC2-Classic instances. This request only returns information about EC2-Classic instances linked to a VPC through ClassicLink. You cannot use this request to return information about other instances.

" + "documentation":"

Describes one or more of your linked EC2-Classic instances. This request only returns information about EC2-Classic instances linked to a VPC through ClassicLink. You cannot use this request to return information about other instances.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeClientVpnAuthorizationRules":{ "name":"DescribeClientVpnAuthorizationRules", @@ -2142,7 +2402,7 @@ }, "input":{"shape":"DescribeFlowLogsRequest"}, "output":{"shape":"DescribeFlowLogsResult"}, - "documentation":"

Describes one or more flow logs. To view the information in your flow logs (the log streams for the network interfaces), you must use the CloudWatch Logs console or the CloudWatch Logs API.

" + "documentation":"

Describes one or more flow logs.

To view the published flow log records, you must view the log destination. For example, the CloudWatch Logs log group, the Amazon S3 bucket, or the Kinesis Data Firehose delivery stream.

" }, "DescribeFpgaImageAttribute":{ "name":"DescribeFpgaImageAttribute", @@ -2382,7 +2642,7 @@ }, "input":{"shape":"DescribeIpamsRequest"}, "output":{"shape":"DescribeIpamsResult"}, - "documentation":"

Get information about your IPAM pools.

For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

Get information about your IPAM pools.

For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "DescribeIpv6Pools":{ "name":"DescribeIpv6Pools", @@ -2652,7 +2912,7 @@ }, "input":{"shape":"DescribeReplaceRootVolumeTasksRequest"}, "output":{"shape":"DescribeReplaceRootVolumeTasksResult"}, - "documentation":"

Describes a root volume replacement task. For more information, see Replace a root volume in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Describes a root volume replacement task. For more information, see Replace a root volume in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeReservedInstances":{ "name":"DescribeReservedInstances", @@ -2752,7 +3012,7 @@ }, "input":{"shape":"DescribeSecurityGroupsRequest"}, "output":{"shape":"DescribeSecurityGroupsResult"}, - "documentation":"

Describes the specified security groups or all of your security groups.

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 security groups in the Amazon Elastic Compute Cloud User Guide and Security groups for your VPC in the Amazon Virtual Private Cloud User Guide.

" + "documentation":"

Describes the specified security groups or all of your security groups.

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 security groups in the Amazon Elastic Compute Cloud User Guide and Security groups for your VPC in the Amazon Virtual Private Cloud User Guide.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeSnapshotAttribute":{ "name":"DescribeSnapshotAttribute", @@ -2812,7 +3072,7 @@ }, "input":{"shape":"DescribeSpotFleetRequestHistoryRequest"}, "output":{"shape":"DescribeSpotFleetRequestHistoryResponse"}, - "documentation":"

Describes the events for the specified Spot Fleet request during the specified time.

Spot Fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event. Spot Fleet events are available for 48 hours.

For more information, see Monitor fleet events using Amazon EventBridge in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

Describes the events for the specified Spot Fleet request during the specified time.

Spot Fleet events are delayed by up to 30 seconds before they can be described. This ensures that you can query by the last evaluated time and not miss a recorded event. Spot Fleet events are available for 48 hours.

For more information, see Monitor fleet events using Amazon EventBridge in the Amazon EC2 User Guide.

" }, "DescribeSpotFleetRequests":{ "name":"DescribeSpotFleetRequests", @@ -2882,7 +3142,7 @@ }, "input":{"shape":"DescribeTagsRequest"}, "output":{"shape":"DescribeTagsResult"}, - "documentation":"

Describes the specified tags for your EC2 resources.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Describes the specified tags for your EC2 resources.

For more information about tags, see Tag your Amazon EC2 resources in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeTrafficMirrorFilters":{ "name":"DescribeTrafficMirrorFilters", @@ -2964,6 +3224,26 @@ "output":{"shape":"DescribeTransitGatewayPeeringAttachmentsResult"}, "documentation":"

Describes your transit gateway peering attachments.

" }, + "DescribeTransitGatewayPolicyTables":{ + "name":"DescribeTransitGatewayPolicyTables", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTransitGatewayPolicyTablesRequest"}, + "output":{"shape":"DescribeTransitGatewayPolicyTablesResult"}, + "documentation":"

Describes one or more transit gateway route policy tables.

" + }, + "DescribeTransitGatewayRouteTableAnnouncements":{ + "name":"DescribeTransitGatewayRouteTableAnnouncements", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeTransitGatewayRouteTableAnnouncementsRequest"}, + "output":{"shape":"DescribeTransitGatewayRouteTableAnnouncementsResult"}, + "documentation":"

Describes one or more transit gateway route table advertisements.

" + }, "DescribeTransitGatewayRouteTables":{ "name":"DescribeTransitGatewayRouteTables", "http":{ @@ -3004,6 +3284,56 @@ "output":{"shape":"DescribeTrunkInterfaceAssociationsResult"}, "documentation":"

This API action is currently in limited preview only. If you are interested in using this feature, contact your account manager.

Describes one or more network interface trunk associations.

" }, + "DescribeVerifiedAccessEndpoints":{ + "name":"DescribeVerifiedAccessEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVerifiedAccessEndpointsRequest"}, + "output":{"shape":"DescribeVerifiedAccessEndpointsResult"}, + "documentation":"

Describe Amazon Web Services Verified Access endpoints.

" + }, + "DescribeVerifiedAccessGroups":{ + "name":"DescribeVerifiedAccessGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVerifiedAccessGroupsRequest"}, + "output":{"shape":"DescribeVerifiedAccessGroupsResult"}, + "documentation":"

Describe details of existing Verified Access groups.

" + }, + "DescribeVerifiedAccessInstanceLoggingConfigurations":{ + "name":"DescribeVerifiedAccessInstanceLoggingConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVerifiedAccessInstanceLoggingConfigurationsRequest"}, + "output":{"shape":"DescribeVerifiedAccessInstanceLoggingConfigurationsResult"}, + "documentation":"

Describes the current logging configuration for the Amazon Web Services Verified Access instances.

" + }, + "DescribeVerifiedAccessInstances":{ + "name":"DescribeVerifiedAccessInstances", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVerifiedAccessInstancesRequest"}, + "output":{"shape":"DescribeVerifiedAccessInstancesResult"}, + "documentation":"

Describe Verified Access instances.

" + }, + "DescribeVerifiedAccessTrustProviders":{ + "name":"DescribeVerifiedAccessTrustProviders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeVerifiedAccessTrustProvidersRequest"}, + "output":{"shape":"DescribeVerifiedAccessTrustProvidersResult"}, + "documentation":"

Describe details of existing Verified Access trust providers.

" + }, "DescribeVolumeAttribute":{ "name":"DescribeVolumeAttribute", "http":{ @@ -3062,7 +3392,7 @@ }, "input":{"shape":"DescribeVpcClassicLinkRequest"}, "output":{"shape":"DescribeVpcClassicLinkResult"}, - "documentation":"

Describes the ClassicLink status of one or more VPCs.

" + "documentation":"

Describes the ClassicLink status of one or more VPCs.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeVpcClassicLinkDnsSupport":{ "name":"DescribeVpcClassicLinkDnsSupport", @@ -3072,7 +3402,7 @@ }, "input":{"shape":"DescribeVpcClassicLinkDnsSupportRequest"}, "output":{"shape":"DescribeVpcClassicLinkDnsSupportResult"}, - "documentation":"

Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Describes the ClassicLink DNS support status of one or more VPCs. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

" }, "DescribeVpcEndpointConnectionNotifications":{ "name":"DescribeVpcEndpointConnectionNotifications", @@ -3182,7 +3512,7 @@ }, "input":{"shape":"DetachClassicLinkVpcRequest"}, "output":{"shape":"DetachClassicLinkVpcResult"}, - "documentation":"

Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's stopped.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Unlinks (detaches) a linked EC2-Classic instance from a VPC. After the instance has been unlinked, the VPC security groups are no longer associated with it. An instance is automatically unlinked from a VPC when it's stopped.

" }, "DetachInternetGateway":{ "name":"DetachInternetGateway", @@ -3202,6 +3532,16 @@ "input":{"shape":"DetachNetworkInterfaceRequest"}, "documentation":"

Detaches a network interface from an instance.

" }, + "DetachVerifiedAccessTrustProvider":{ + "name":"DetachVerifiedAccessTrustProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachVerifiedAccessTrustProviderRequest"}, + "output":{"shape":"DetachVerifiedAccessTrustProviderResult"}, + "documentation":"

Detach a trust provider from an Amazon Web Services Verified Access instance.

" + }, "DetachVolume":{ "name":"DetachVolume", "http":{ @@ -3221,6 +3561,26 @@ "input":{"shape":"DetachVpnGatewayRequest"}, "documentation":"

Detaches a virtual private gateway from a VPC. You do this if you're planning to turn off the VPC and not use it anymore. You can confirm a virtual private gateway has been completely detached from a VPC by describing the virtual private gateway (any attachments to the virtual private gateway are also described).

You must wait for the attachment's state to switch to detached before you can delete the VPC or attach a different VPC to the virtual private gateway.

" }, + "DisableAddressTransfer":{ + "name":"DisableAddressTransfer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableAddressTransferRequest"}, + "output":{"shape":"DisableAddressTransferResult"}, + "documentation":"

Disables Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon Virtual Private Cloud User Guide.

" + }, + "DisableAwsNetworkPerformanceMetricSubscription":{ + "name":"DisableAwsNetworkPerformanceMetricSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisableAwsNetworkPerformanceMetricSubscriptionRequest"}, + "output":{"shape":"DisableAwsNetworkPerformanceMetricSubscriptionResult"}, + "documentation":"

Disables Infrastructure Performance metric subscriptions.

" + }, "DisableEbsEncryptionByDefault":{ "name":"DisableEbsEncryptionByDefault", "http":{ @@ -3269,7 +3629,7 @@ }, "input":{"shape":"DisableIpamOrganizationAdminAccountRequest"}, "output":{"shape":"DisableIpamOrganizationAdminAccountResult"}, - "documentation":"

Disable the IPAM account. For more information, see Enable integration with Organizations in the Amazon VPC IPAM User Guide.

" + "documentation":"

Disable the IPAM account. For more information, see Enable integration with Organizations in the Amazon VPC IPAM User Guide.

" }, "DisableSerialConsoleAccess":{ "name":"DisableSerialConsoleAccess", @@ -3308,7 +3668,7 @@ }, "input":{"shape":"DisableVpcClassicLinkRequest"}, "output":{"shape":"DisableVpcClassicLinkResult"}, - "documentation":"

Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to it.

" + "documentation":"

Disables ClassicLink for a VPC. You cannot disable ClassicLink for a VPC that has EC2-Classic instances linked to it.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "DisableVpcClassicLinkDnsSupport":{ "name":"DisableVpcClassicLinkDnsSupport", @@ -3318,7 +3678,7 @@ }, "input":{"shape":"DisableVpcClassicLinkDnsSupportRequest"}, "output":{"shape":"DisableVpcClassicLinkDnsSupportResult"}, - "documentation":"

Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve to public IP addresses when addressed between a linked EC2-Classic instance and instances in the VPC to which it's linked. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

You must specify a VPC ID in the request.

" + "documentation":"

Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve to public IP addresses when addressed between a linked EC2-Classic instance and instances in the VPC to which it's linked. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

You must specify a VPC ID in the request.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "DisassociateAddress":{ "name":"DisassociateAddress", @@ -3327,7 +3687,7 @@ "requestUri":"/" }, "input":{"shape":"DisassociateAddressRequest"}, - "documentation":"

Disassociates an Elastic IP address from the instance or network interface it's associated with.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

" + "documentation":"

Disassociates an Elastic IP address from the instance or network interface it's associated with.

An Elastic IP address is for use in either the EC2-Classic platform or in a VPC. For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

This is an idempotent operation. If you perform the operation more than once, Amazon EC2 doesn't return an error.

" }, "DisassociateClientVpnTargetNetwork":{ "name":"DisassociateClientVpnTargetNetwork", @@ -3398,6 +3758,16 @@ "output":{"shape":"DisassociateTransitGatewayMulticastDomainResult"}, "documentation":"

Disassociates the specified subnets from the transit gateway multicast domain.

" }, + "DisassociateTransitGatewayPolicyTable":{ + "name":"DisassociateTransitGatewayPolicyTable", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateTransitGatewayPolicyTableRequest"}, + "output":{"shape":"DisassociateTransitGatewayPolicyTableResult"}, + "documentation":"

Removes the association between an an attachment and a policy table.

" + }, "DisassociateTransitGatewayRouteTable":{ "name":"DisassociateTransitGatewayRouteTable", "http":{ @@ -3428,6 +3798,26 @@ "output":{"shape":"DisassociateVpcCidrBlockResult"}, "documentation":"

Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you must specify its association ID. You can get the association ID by using DescribeVpcs. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

You cannot disassociate the CIDR block with which you originally created the VPC (the primary CIDR block).

" }, + "EnableAddressTransfer":{ + "name":"EnableAddressTransfer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableAddressTransferRequest"}, + "output":{"shape":"EnableAddressTransferResult"}, + "documentation":"

Enables Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon Virtual Private Cloud User Guide.

" + }, + "EnableAwsNetworkPerformanceMetricSubscription":{ + "name":"EnableAwsNetworkPerformanceMetricSubscription", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableAwsNetworkPerformanceMetricSubscriptionRequest"}, + "output":{"shape":"EnableAwsNetworkPerformanceMetricSubscriptionResult"}, + "documentation":"

Enables Infrastructure Performance subscriptions.

" + }, "EnableEbsEncryptionByDefault":{ "name":"EnableEbsEncryptionByDefault", "http":{ @@ -3476,7 +3866,17 @@ }, "input":{"shape":"EnableIpamOrganizationAdminAccountRequest"}, "output":{"shape":"EnableIpamOrganizationAdminAccountResult"}, - "documentation":"

Enable an Organizations member account as the IPAM admin account. You cannot select the Organizations management account as the IPAM admin account. For more information, see Enable integration with Organizations in the Amazon VPC IPAM User Guide.

" + "documentation":"

Enable an Organizations member account as the IPAM admin account. You cannot select the Organizations management account as the IPAM admin account. For more information, see Enable integration with Organizations in the Amazon VPC IPAM User Guide.

" + }, + "EnableReachabilityAnalyzerOrganizationSharing":{ + "name":"EnableReachabilityAnalyzerOrganizationSharing", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnableReachabilityAnalyzerOrganizationSharingRequest"}, + "output":{"shape":"EnableReachabilityAnalyzerOrganizationSharingResult"}, + "documentation":"

Establishes a trust relationship between Reachability Analyzer and Organizations. This operation must be performed by the management account for the organization.

After you establish a trust relationship, a user in the management account or a delegated administrator account can run a cross-account analysis using resources from the member accounts.

" }, "EnableSerialConsoleAccess":{ "name":"EnableSerialConsoleAccess", @@ -3524,7 +3924,7 @@ }, "input":{"shape":"EnableVpcClassicLinkRequest"}, "output":{"shape":"EnableVpcClassicLinkResult"}, - "documentation":"

Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC route tables have existing routes for address ranges within the 10.0.0.0/8 IP address range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Enables a VPC for ClassicLink. You can then link EC2-Classic instances to your ClassicLink-enabled VPC to allow communication over private IP addresses. You cannot enable your VPC for ClassicLink if any of your VPC route tables have existing routes for address ranges within the 10.0.0.0/8 IP address range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16 IP address ranges. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

" }, "EnableVpcClassicLinkDnsSupport":{ "name":"EnableVpcClassicLinkDnsSupport", @@ -3534,7 +3934,7 @@ }, "input":{"shape":"EnableVpcClassicLinkDnsSupportRequest"}, "output":{"shape":"EnableVpcClassicLinkDnsSupportResult"}, - "documentation":"

Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

You must specify a VPC ID in the request.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Enables a VPC to support DNS hostname resolution for ClassicLink. If enabled, the DNS hostname of a linked EC2-Classic instance resolves to its private IP address when addressed from an instance in the VPC to which it's linked. Similarly, the DNS hostname of an instance in a VPC resolves to its private IP address when addressed from a linked EC2-Classic instance. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

You must specify a VPC ID in the request.

" }, "ExportClientVpnClientCertificateRevocationList":{ "name":"ExportClientVpnClientCertificateRevocationList", @@ -3596,6 +3996,16 @@ "output":{"shape":"GetAssociatedIpv6PoolCidrsResult"}, "documentation":"

Gets information about the IPv6 CIDR block associations for a specified IPv6 address pool.

" }, + "GetAwsNetworkPerformanceData":{ + "name":"GetAwsNetworkPerformanceData", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAwsNetworkPerformanceDataRequest"}, + "output":{"shape":"GetAwsNetworkPerformanceDataResult"}, + "documentation":"

Gets network performance data.

" + }, "GetCapacityReservationUsage":{ "name":"GetCapacityReservationUsage", "http":{ @@ -3724,7 +4134,7 @@ }, "input":{"shape":"GetIpamAddressHistoryRequest"}, "output":{"shape":"GetIpamAddressHistoryResult"}, - "documentation":"

Retrieve historical information about a CIDR within an IPAM scope. For more information, see View the history of IP addresses in the Amazon VPC IPAM User Guide.

" + "documentation":"

Retrieve historical information about a CIDR within an IPAM scope. For more information, see View the history of IP addresses in the Amazon VPC IPAM User Guide.

" }, "GetIpamPoolAllocations":{ "name":"GetIpamPoolAllocations", @@ -3764,7 +4174,7 @@ }, "input":{"shape":"GetLaunchTemplateDataRequest"}, "output":{"shape":"GetLaunchTemplateDataResult"}, - "documentation":"

Retrieves the configuration data of the specified instance. You can use this data to create a launch template.

This action calls on other describe actions to get instance information. Depending on your instance configuration, you may need to allow the following actions in your IAM policy: DescribeSpotInstanceRequests, DescribeInstanceCreditSpecifications, DescribeVolumes, DescribeInstanceAttribute, and DescribeElasticGpus. Or, you can allow describe* depending on your instance requirements.

" + "documentation":"

Retrieves the configuration data of the specified instance. You can use this data to create a launch template.

This action calls on other describe actions to get instance information. Depending on your instance configuration, you may need to allow the following actions in your IAM policy: DescribeSpotInstanceRequests, DescribeInstanceCreditSpecifications, DescribeVolumes, DescribeInstanceAttribute, and DescribeElasticGpus. Or, you can allow describe* depending on your instance requirements.

" }, "GetManagedPrefixListAssociations":{ "name":"GetManagedPrefixListAssociations", @@ -3876,6 +4286,26 @@ "output":{"shape":"GetTransitGatewayMulticastDomainAssociationsResult"}, "documentation":"

Gets information about the associations for the transit gateway multicast domain.

" }, + "GetTransitGatewayPolicyTableAssociations":{ + "name":"GetTransitGatewayPolicyTableAssociations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTransitGatewayPolicyTableAssociationsRequest"}, + "output":{"shape":"GetTransitGatewayPolicyTableAssociationsResult"}, + "documentation":"

Gets a list of the transit gateway policy table associations.

" + }, + "GetTransitGatewayPolicyTableEntries":{ + "name":"GetTransitGatewayPolicyTableEntries", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTransitGatewayPolicyTableEntriesRequest"}, + "output":{"shape":"GetTransitGatewayPolicyTableEntriesResult"}, + "documentation":"

Returns a list of transit gateway policy table entries.

" + }, "GetTransitGatewayPrefixListReferences":{ "name":"GetTransitGatewayPrefixListReferences", "http":{ @@ -3906,6 +4336,26 @@ "output":{"shape":"GetTransitGatewayRouteTablePropagationsResult"}, "documentation":"

Gets information about the route table propagations for the specified transit gateway route table.

" }, + "GetVerifiedAccessEndpointPolicy":{ + "name":"GetVerifiedAccessEndpointPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetVerifiedAccessEndpointPolicyRequest"}, + "output":{"shape":"GetVerifiedAccessEndpointPolicyResult"}, + "documentation":"

Get the Verified Access policy associated with the endpoint.

" + }, + "GetVerifiedAccessGroupPolicy":{ + "name":"GetVerifiedAccessGroupPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetVerifiedAccessGroupPolicyRequest"}, + "output":{"shape":"GetVerifiedAccessGroupPolicyResult"}, + "documentation":"

Shows the contents of the Verified Access policy associated with the group.

" + }, "GetVpnConnectionDeviceSampleConfiguration":{ "name":"GetVpnConnectionDeviceSampleConfiguration", "http":{ @@ -3944,7 +4394,7 @@ }, "input":{"shape":"ImportImageRequest"}, "output":{"shape":"ImportImageResult"}, - "documentation":"

Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI).

For more information, see Importing a VM as an image using VM Import/Export in the VM Import/Export User Guide.

" + "documentation":"

Import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI).

Amazon Web Services VM Import/Export strongly recommends specifying a value for either the --license-type or --usage-operation parameter when you create a new VM Import task. This ensures your operating system is licensed appropriately and your billing is optimized.

For more information, see Importing a VM as an image using VM Import/Export in the VM Import/Export User Guide.

" }, "ImportInstance":{ "name":"ImportInstance", @@ -4230,7 +4680,7 @@ }, "input":{"shape":"ModifyIpamPoolRequest"}, "output":{"shape":"ModifyIpamPoolResult"}, - "documentation":"

Modify the configurations of an IPAM pool.

For more information, see Modify a pool in the Amazon VPC IPAM User Guide.

" + "documentation":"

Modify the configurations of an IPAM pool.

For more information, see Modify a pool in the Amazon VPC IPAM User Guide.

" }, "ModifyIpamResourceCidr":{ "name":"ModifyIpamResourceCidr", @@ -4240,7 +4690,7 @@ }, "input":{"shape":"ModifyIpamResourceCidrRequest"}, "output":{"shape":"ModifyIpamResourceCidrResult"}, - "documentation":"

Modify a resource CIDR. You can use this action to transfer resource CIDRs between scopes and ignore resource CIDRs that you do not want to manage. If set to false, the resource will not be tracked for overlap, it cannot be auto-imported into a pool, and it will be removed from any pool it has an allocation in.

For more information, see Move resource CIDRs between scopes and Change the monitoring state of resource CIDRs in the Amazon VPC IPAM User Guide.

" + "documentation":"

Modify a resource CIDR. You can use this action to transfer resource CIDRs between scopes and ignore resource CIDRs that you do not want to manage. If set to false, the resource will not be tracked for overlap, it cannot be auto-imported into a pool, and it will be removed from any pool it has an allocation in.

For more information, see Move resource CIDRs between scopes and Change the monitoring state of resource CIDRs in the Amazon VPC IPAM User Guide.

" }, "ModifyIpamScope":{ "name":"ModifyIpamScope", @@ -4262,6 +4712,16 @@ "output":{"shape":"ModifyLaunchTemplateResult"}, "documentation":"

Modifies a launch template. You can specify which version of the launch template to set as the default version. When launching an instance, the default version applies when a launch template version is not specified.

" }, + "ModifyLocalGatewayRoute":{ + "name":"ModifyLocalGatewayRoute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyLocalGatewayRouteRequest"}, + "output":{"shape":"ModifyLocalGatewayRouteResult"}, + "documentation":"

Modifies the specified local gateway route.

" + }, "ModifyManagedPrefixList":{ "name":"ModifyManagedPrefixList", "http":{ @@ -4299,7 +4759,7 @@ }, "input":{"shape":"ModifyReservedInstancesRequest"}, "output":{"shape":"ModifyReservedInstancesResult"}, - "documentation":"

Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type.

For more information, see Modifying Reserved Instances in the Amazon EC2 User Guide.

" + "documentation":"

Modifies the configuration of your Reserved Instances, such as the Availability Zone, instance count, or instance type. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type.

For more information, see Modifying Reserved Instances in the Amazon EC2 User Guide.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "ModifySecurityGroupRules":{ "name":"ModifySecurityGroupRules", @@ -4409,6 +4869,76 @@ "output":{"shape":"ModifyTransitGatewayVpcAttachmentResult"}, "documentation":"

Modifies the specified VPC attachment.

" }, + "ModifyVerifiedAccessEndpoint":{ + "name":"ModifyVerifiedAccessEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVerifiedAccessEndpointRequest"}, + "output":{"shape":"ModifyVerifiedAccessEndpointResult"}, + "documentation":"

Modifies the configuration of an Amazon Web Services Verified Access endpoint.

" + }, + "ModifyVerifiedAccessEndpointPolicy":{ + "name":"ModifyVerifiedAccessEndpointPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVerifiedAccessEndpointPolicyRequest"}, + "output":{"shape":"ModifyVerifiedAccessEndpointPolicyResult"}, + "documentation":"

Modifies the specified Verified Access endpoint policy.

" + }, + "ModifyVerifiedAccessGroup":{ + "name":"ModifyVerifiedAccessGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVerifiedAccessGroupRequest"}, + "output":{"shape":"ModifyVerifiedAccessGroupResult"}, + "documentation":"

Modifies the specified Verified Access group configuration.

" + }, + "ModifyVerifiedAccessGroupPolicy":{ + "name":"ModifyVerifiedAccessGroupPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVerifiedAccessGroupPolicyRequest"}, + "output":{"shape":"ModifyVerifiedAccessGroupPolicyResult"}, + "documentation":"

Modifies the specified Verified Access group policy.

" + }, + "ModifyVerifiedAccessInstance":{ + "name":"ModifyVerifiedAccessInstance", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVerifiedAccessInstanceRequest"}, + "output":{"shape":"ModifyVerifiedAccessInstanceResult"}, + "documentation":"

Modifies the configuration of the specified Verified Access instance.

" + }, + "ModifyVerifiedAccessInstanceLoggingConfiguration":{ + "name":"ModifyVerifiedAccessInstanceLoggingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVerifiedAccessInstanceLoggingConfigurationRequest"}, + "output":{"shape":"ModifyVerifiedAccessInstanceLoggingConfigurationResult"}, + "documentation":"

Modifies the logging configuration for the specified Amazon Web Services Verified Access instance.

" + }, + "ModifyVerifiedAccessTrustProvider":{ + "name":"ModifyVerifiedAccessTrustProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyVerifiedAccessTrustProviderRequest"}, + "output":{"shape":"ModifyVerifiedAccessTrustProviderResult"}, + "documentation":"

Modifies the configuration of the specified Amazon Web Services Verified Access trust provider.

" + }, "ModifyVolume":{ "name":"ModifyVolume", "http":{ @@ -4495,7 +5025,7 @@ }, "input":{"shape":"ModifyVpcPeeringConnectionOptionsRequest"}, "output":{"shape":"ModifyVpcPeeringConnectionOptionsResult"}, - "documentation":"

Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:

  • Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your VPC (using ClassicLink) and instances in the peer VPC.

  • Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic instance that's linked to the peer VPC.

  • Enable/disable the ability to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.

If the peered VPCs are in the same Amazon Web Services account, you can enable DNS resolution for queries from the local VPC. This ensures that queries from the local VPC resolve to private IP addresses in the peer VPC. This option is not available if the peered VPCs are in different different Amazon Web Services accounts or different Regions. For peered VPCs in different Amazon Web Services accounts, each Amazon Web Services account owner must initiate a separate request to modify the peering connection options. For inter-region peering connections, you must use the Region for the requester VPC to modify the requester VPC peering options and the Region for the accepter VPC to modify the accepter VPC peering options. To verify which VPCs are the accepter and the requester for a VPC peering connection, use the DescribeVpcPeeringConnections command.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Modifies the VPC peering connection options on one side of a VPC peering connection. You can do the following:

  • Enable/disable communication over the peering connection between an EC2-Classic instance that's linked to your VPC (using ClassicLink) and instances in the peer VPC.

  • Enable/disable communication over the peering connection between instances in your VPC and an EC2-Classic instance that's linked to the peer VPC.

  • Enable/disable the ability to resolve public DNS hostnames to private IP addresses when queried from instances in the peer VPC.

If the peered VPCs are in the same Amazon Web Services account, you can enable DNS resolution for queries from the local VPC. This ensures that queries from the local VPC resolve to private IP addresses in the peer VPC. This option is not available if the peered VPCs are in different different Amazon Web Services accounts or different Regions. For peered VPCs in different Amazon Web Services accounts, each Amazon Web Services account owner must initiate a separate request to modify the peering connection options. For inter-region peering connections, you must use the Region for the requester VPC to modify the requester VPC peering options and the Region for the accepter VPC to modify the accepter VPC peering options. To verify which VPCs are the accepter and the requester for a VPC peering connection, use the DescribeVpcPeeringConnections command.

" }, "ModifyVpcTenancy":{ "name":"ModifyVpcTenancy", @@ -4565,7 +5095,7 @@ }, "input":{"shape":"MoveAddressToVpcRequest"}, "output":{"shape":"MoveAddressToVpcResult"}, - "documentation":"

Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The Elastic IP address must be allocated to your account for more than 24 hours, and it must not be associated with an instance. After the Elastic IP address is moved, it is no longer available for use in the EC2-Classic platform, unless you move it back using the RestoreAddressToClassic request. You cannot move an Elastic IP address that was originally allocated for use in the EC2-VPC platform to the EC2-Classic platform.

" + "documentation":"

Moves an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform. The Elastic IP address must be allocated to your account for more than 24 hours, and it must not be associated with an instance. After the Elastic IP address is moved, it is no longer available for use in the EC2-Classic platform, unless you move it back using the RestoreAddressToClassic request. You cannot move an Elastic IP address that was originally allocated for use in the EC2-VPC platform to the EC2-Classic platform.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "MoveByoipCidrToIpam":{ "name":"MoveByoipCidrToIpam", @@ -4575,7 +5105,7 @@ }, "input":{"shape":"MoveByoipCidrToIpamRequest"}, "output":{"shape":"MoveByoipCidrToIpamResult"}, - "documentation":"

Move an BYOIP IPv4 CIDR to IPAM from a public IPv4 pool.

If you already have an IPv4 BYOIP CIDR with Amazon Web Services, you can move the CIDR to IPAM from a public IPv4 pool. You cannot move an IPv6 CIDR to IPAM. If you are bringing a new IP address to Amazon Web Services for the first time, complete the steps in Tutorial: BYOIP address CIDRs to IPAM.

" + "documentation":"

Move an BYOIP IPv4 CIDR to IPAM from a public IPv4 pool.

If you already have an IPv4 BYOIP CIDR with Amazon Web Services, you can move the CIDR to IPAM from a public IPv4 pool. You cannot move an IPv6 CIDR to IPAM. If you are bringing a new IP address to Amazon Web Services for the first time, complete the steps in Tutorial: BYOIP address CIDRs to IPAM.

" }, "ProvisionByoipCidr":{ "name":"ProvisionByoipCidr", @@ -4595,7 +5125,7 @@ }, "input":{"shape":"ProvisionIpamPoolCidrRequest"}, "output":{"shape":"ProvisionIpamPoolCidrResult"}, - "documentation":"

Provision a CIDR to an IPAM pool. You can use this action to provision new CIDRs to a top-level pool or to transfer a CIDR from a top-level pool to a pool within it.

For more information, see Provision CIDRs to pools in the Amazon VPC IPAM User Guide.

" + "documentation":"

Provision a CIDR to an IPAM pool. You can use this action to provision new CIDRs to a top-level pool or to transfer a CIDR from a top-level pool to a pool within it.

For more information, see Provision CIDRs to pools in the Amazon VPC IPAM User Guide.

" }, "ProvisionPublicIpv4PoolCidr":{ "name":"ProvisionPublicIpv4PoolCidr", @@ -4605,7 +5135,7 @@ }, "input":{"shape":"ProvisionPublicIpv4PoolCidrRequest"}, "output":{"shape":"ProvisionPublicIpv4PoolCidrResult"}, - "documentation":"

Provision a CIDR to a public IPv4 pool.

For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

Provision a CIDR to a public IPv4 pool.

For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "PurchaseHostReservation":{ "name":"PurchaseHostReservation", @@ -4625,7 +5155,7 @@ }, "input":{"shape":"PurchaseReservedInstancesOfferingRequest"}, "output":{"shape":"PurchaseReservedInstancesOfferingResult"}, - "documentation":"

Purchases a Reserved Instance for use with your account. With Reserved Instances, you pay a lower hourly rate compared to On-Demand instance pricing.

Use DescribeReservedInstancesOfferings to get a list of Reserved Instance offerings that match your specifications. After you've purchased a Reserved Instance, you can check for your new Reserved Instance with DescribeReservedInstances.

To queue a purchase for a future date and time, specify a purchase time. If you do not specify a purchase time, the default is the current time.

For more information, see Reserved Instances and Reserved Instance Marketplace in the Amazon EC2 User Guide.

" + "documentation":"

Purchases a Reserved Instance for use with your account. With Reserved Instances, you pay a lower hourly rate compared to On-Demand instance pricing.

Use DescribeReservedInstancesOfferings to get a list of Reserved Instance offerings that match your specifications. After you've purchased a Reserved Instance, you can check for your new Reserved Instance with DescribeReservedInstances.

To queue a purchase for a future date and time, specify a purchase time. If you do not specify a purchase time, the default is the current time.

For more information, see Reserved Instances and Reserved Instance Marketplace in the Amazon EC2 User Guide.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "PurchaseScheduledInstances":{ "name":"PurchaseScheduledInstances", @@ -4635,7 +5165,7 @@ }, "input":{"shape":"PurchaseScheduledInstancesRequest"}, "output":{"shape":"PurchaseScheduledInstancesResult"}, - "documentation":"

Purchases the Scheduled Instances with the specified schedule.

Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the hour for a one-year term. Before you can purchase a Scheduled Instance, you must call DescribeScheduledInstanceAvailability to check for available schedules and obtain a purchase token. After you purchase a Scheduled Instance, you must call RunScheduledInstances during each scheduled time period.

After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase.

" + "documentation":"

You can no longer purchase Scheduled Instances.

Purchases the Scheduled Instances with the specified schedule.

Scheduled Instances enable you to purchase Amazon EC2 compute capacity by the hour for a one-year term. Before you can purchase a Scheduled Instance, you must call DescribeScheduledInstanceAvailability to check for available schedules and obtain a purchase token. After you purchase a Scheduled Instance, you must call RunScheduledInstances during each scheduled time period.

After you purchase a Scheduled Instance, you can't cancel, modify, or resell your purchase.

" }, "RebootInstances":{ "name":"RebootInstances", @@ -4654,7 +5184,7 @@ }, "input":{"shape":"RegisterImageRequest"}, "output":{"shape":"RegisterImageResult"}, - "documentation":"

Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see Creating your own AMIs in the Amazon Elastic Compute Cloud User Guide.

For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself.

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.

Register a snapshot of a root device volume

You can use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. You specify the snapshot using a block device mapping. You can't set the encryption state of the volume using the block device mapping. If the snapshot is encrypted, or encryption by default is enabled, the root volume of an instance launched from the AMI is encrypted.

For more information, see Create a Linux AMI from a snapshot and Use encryption with Amazon EBS-backed AMIs in the Amazon Elastic Compute Cloud User Guide.

Amazon Web Services Marketplace product codes

If any snapshots have Amazon Web Services Marketplace product codes, they are copied to the new AMI.

Windows and some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the Amazon EC2 billing product code associated with an AMI to verify the subscription status for package updates. To create a new AMI for operating systems that require a billing product code, instead of registering the AMI, do the following to preserve the billing product code association:

  1. Launch an instance from an existing AMI with that billing product code.

  2. Customize the instance.

  3. Create an AMI from the instance using CreateImage.

If you purchase a Reserved Instance to apply to an On-Demand Instance that was launched from an AMI with a billing product code, make sure that the Reserved Instance has the matching billing product code. If you purchase a Reserved Instance without the matching billing product code, the Reserved Instance will not be applied to the On-Demand Instance. For information about how to obtain the platform details and billing information of an AMI, see Understanding AMI billing in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Registers an AMI. When you're creating an AMI, this is the final step you must complete before you can launch an instance from the AMI. For more information about creating AMIs, see Create your own AMI in the Amazon Elastic Compute Cloud User Guide.

For Amazon EBS-backed instances, CreateImage creates and registers the AMI in a single request, so you don't have to register the AMI yourself. We recommend that you always use CreateImage unless you have a specific reason to use RegisterImage.

If needed, you can deregister an AMI at any time. Any modifications you make to an AMI backed by an instance store volume invalidates its registration. If you make changes to an image, deregister the previous image and register the new image.

Register a snapshot of a root device volume

You can use RegisterImage to create an Amazon EBS-backed Linux AMI from a snapshot of a root device volume. You specify the snapshot using a block device mapping. You can't set the encryption state of the volume using the block device mapping. If the snapshot is encrypted, or encryption by default is enabled, the root volume of an instance launched from the AMI is encrypted.

For more information, see Create a Linux AMI from a snapshot and Use encryption with Amazon EBS-backed AMIs in the Amazon Elastic Compute Cloud User Guide.

Amazon Web Services Marketplace product codes

If any snapshots have Amazon Web Services Marketplace product codes, they are copied to the new AMI.

Windows and some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE Linux Enterprise Server (SLES), use the Amazon EC2 billing product code associated with an AMI to verify the subscription status for package updates. To create a new AMI for operating systems that require a billing product code, instead of registering the AMI, do the following to preserve the billing product code association:

  1. Launch an instance from an existing AMI with that billing product code.

  2. Customize the instance.

  3. Create an AMI from the instance using CreateImage.

If you purchase a Reserved Instance to apply to an On-Demand Instance that was launched from an AMI with a billing product code, make sure that the Reserved Instance has the matching billing product code. If you purchase a Reserved Instance without the matching billing product code, the Reserved Instance will not be applied to the On-Demand Instance. For information about how to obtain the platform details and billing information of an AMI, see Understand AMI billing information in the Amazon Elastic Compute Cloud User Guide.

" }, "RegisterInstanceEventNotificationAttributes":{ "name":"RegisterInstanceEventNotificationAttributes", @@ -4743,7 +5273,7 @@ "requestUri":"/" }, "input":{"shape":"ReleaseAddressRequest"}, - "documentation":"

Releases the specified Elastic IP address.

[EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress.

[Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you can release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse).

After releasing an Elastic IP address, it is released to the IP address pool. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another Amazon Web Services account.

[EC2-VPC] After you release an Elastic IP address for use in a VPC, you might be able to recover it. For more information, see AllocateAddress.

" + "documentation":"

Releases the specified Elastic IP address.

[EC2-Classic, default VPC] Releasing an Elastic IP address automatically disassociates it from any instance that it's associated with. To disassociate an Elastic IP address without releasing it, use DisassociateAddress.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

[Nondefault VPC] You must use DisassociateAddress to disassociate the Elastic IP address before you can release it. Otherwise, Amazon EC2 returns an error (InvalidIPAddress.InUse).

After releasing an Elastic IP address, it is released to the IP address pool. Be sure to update your DNS records and any servers or devices that communicate with the address. If you attempt to release an Elastic IP address that you already released, you'll get an AuthFailure error if the address is already allocated to another Amazon Web Services account.

[EC2-VPC] After you release an Elastic IP address for use in a VPC, you might be able to recover it. For more information, see AllocateAddress.

For more information, see Elastic IP Addresses in the Amazon Elastic Compute Cloud User Guide.

" }, "ReleaseHosts":{ "name":"ReleaseHosts", @@ -4763,7 +5293,7 @@ }, "input":{"shape":"ReleaseIpamPoolAllocationRequest"}, "output":{"shape":"ReleaseIpamPoolAllocationResult"}, - "documentation":"

Release an allocation within an IPAM pool. You can only use this action to release manual allocations. To remove an allocation for a resource without deleting the resource, set its monitored state to false using ModifyIpamResourceCidr. For more information, see Release an allocation in the Amazon VPC IPAM User Guide.

" + "documentation":"

Release an allocation within an IPAM pool. You can only use this action to release manual allocations. To remove an allocation for a resource without deleting the resource, set its monitored state to false using ModifyIpamResourceCidr. For more information, see Release an allocation in the Amazon VPC IPAM User Guide.

" }, "ReplaceIamInstanceProfileAssociation":{ "name":"ReplaceIamInstanceProfileAssociation", @@ -4801,7 +5331,7 @@ "requestUri":"/" }, "input":{"shape":"ReplaceRouteRequest"}, - "documentation":"

Replaces an existing route within a route table in a VPC. You must provide only one of the following: internet gateway, virtual private gateway, NAT instance, NAT gateway, VPC peering connection, network interface, egress-only internet gateway, or transit gateway.

For more information, see Route tables in the Amazon Virtual Private Cloud User Guide.

" + "documentation":"

Replaces an existing route within a route table in a VPC.

You must specify either a destination CIDR block or a prefix list ID. You must also specify exactly one of the resources from the parameter list, or reset the local route to its default target.

For more information, see Route tables in the Amazon Virtual Private Cloud User Guide.

" }, "ReplaceRouteTableAssociation":{ "name":"ReplaceRouteTableAssociation", @@ -4840,7 +5370,7 @@ }, "input":{"shape":"RequestSpotFleetRequest"}, "output":{"shape":"RequestSpotFleetResponse"}, - "documentation":"

Creates a Spot Fleet request.

The Spot Fleet request specifies the total target capacity and the On-Demand target capacity. Amazon EC2 calculates the difference between the total capacity and On-Demand capacity, and launches the difference as Spot capacity.

You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.

By default, the Spot Fleet requests Spot Instances in the Spot Instance pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload.

Alternatively, you can specify that the Spot Fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot Instances in your Spot Fleet are in different Spot pools, you can improve the availability of your fleet.

You can specify tags for the Spot Fleet request and instances launched by the fleet. You cannot tag other resource types in a Spot Fleet request because only the spot-fleet-request and instance resource types are supported.

For more information, see Spot Fleet requests in the Amazon EC2 User Guide for Linux Instances.

We strongly discourage using the RequestSpotFleet API because it is a legacy API with no planned investment. For options for requesting Spot Instances, see Which is the best Spot request method to use? in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

Creates a Spot Fleet request.

The Spot Fleet request specifies the total target capacity and the On-Demand target capacity. Amazon EC2 calculates the difference between the total capacity and On-Demand capacity, and launches the difference as Spot capacity.

You can submit a single request that includes multiple launch specifications that vary by instance type, AMI, Availability Zone, or subnet.

By default, the Spot Fleet requests Spot Instances in the Spot Instance pool where the price per unit is the lowest. Each launch specification can include its own instance weighting that reflects the value of the instance type to your application workload.

Alternatively, you can specify that the Spot Fleet distribute the target capacity across the Spot pools included in its launch specifications. By ensuring that the Spot Instances in your Spot Fleet are in different Spot pools, you can improve the availability of your fleet.

You can specify tags for the Spot Fleet request and instances launched by the fleet. You cannot tag other resource types in a Spot Fleet request because only the spot-fleet-request and instance resource types are supported.

For more information, see Spot Fleet requests in the Amazon EC2 User Guide.

We strongly discourage using the RequestSpotFleet API because it is a legacy API with no planned investment. For options for requesting Spot Instances, see Which is the best Spot request method to use? in the Amazon EC2 User Guide.

" }, "RequestSpotInstances":{ "name":"RequestSpotInstances", @@ -4850,7 +5380,7 @@ }, "input":{"shape":"RequestSpotInstancesRequest"}, "output":{"shape":"RequestSpotInstancesResult"}, - "documentation":"

Creates a Spot Instance request.

For more information, see Spot Instance requests in the Amazon EC2 User Guide for Linux Instances.

We strongly discourage using the RequestSpotInstances API because it is a legacy API with no planned investment. For options for requesting Spot Instances, see Which is the best Spot request method to use? in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

Creates a Spot Instance request.

For more information, see Spot Instance requests in the Amazon EC2 User Guide for Linux Instances.

We strongly discourage using the RequestSpotInstances API because it is a legacy API with no planned investment. For options for requesting Spot Instances, see Which is the best Spot request method to use? in the Amazon EC2 User Guide for Linux Instances.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide for Linux Instances.

" }, "ResetAddressAttribute":{ "name":"ResetAddressAttribute", @@ -4926,7 +5456,7 @@ }, "input":{"shape":"RestoreAddressToClassicRequest"}, "output":{"shape":"RestoreAddressToClassicResult"}, - "documentation":"

Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.

" + "documentation":"

Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "RestoreImageFromRecycleBin":{ "name":"RestoreImageFromRecycleBin", @@ -4996,7 +5526,7 @@ }, "input":{"shape":"RevokeSecurityGroupIngressRequest"}, "output":{"shape":"RevokeSecurityGroupIngressResult"}, - "documentation":"

Removes the specified inbound (ingress) rules from a security group.

You can specify rules using either rule IDs or security group rule properties. If you use rule properties, the values that you specify (for example, ports) must match the existing rule's values exactly. Each rule has a protocol, from and to ports, and source (CIDR range, security group, or prefix list). For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not need to specify the description to revoke the rule.

[EC2-Classic, default VPC] If the values you specify do not match the existing rule's values, no error is returned, and the output describes the security group rules that were not revoked.

Amazon Web Services recommends that you describe the security group to verify that the rules were removed.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

" + "documentation":"

Removes the specified inbound (ingress) rules from a security group.

You can specify rules using either rule IDs or security group rule properties. If you use rule properties, the values that you specify (for example, ports) must match the existing rule's values exactly. Each rule has a protocol, from and to ports, and source (CIDR range, security group, or prefix list). For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not need to specify the description to revoke the rule.

[EC2-Classic, default VPC] If the values you specify do not match the existing rule's values, no error is returned, and the output describes the security group rules that were not revoked.

Amazon Web Services recommends that you describe the security group to verify that the rules were removed.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "RunInstances":{ "name":"RunInstances", @@ -5006,7 +5536,7 @@ }, "input":{"shape":"RunInstancesRequest"}, "output":{"shape":"Reservation"}, - "documentation":"

Launches the specified number of instances using an AMI for which you have permissions.

You can specify a number of options, or leave the default options. The following rules apply:

  • [EC2-VPC] If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you don't have a default VPC, you must specify a subnet ID in the request.

  • [EC2-Classic] If don't specify an Availability Zone, we choose one for you.

  • Some instance types must be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID, the request fails. For more information, see Instance types available only in a VPC.

  • [EC2-VPC] All instances have a network interface with a primary private IPv4 address. If you don't specify this address, we choose one from the IPv4 range of your subnet.

  • Not all instance types support IPv6 addresses. For more information, see Instance types.

  • If you don't specify a security group ID, we use the default security group. For more information, see Security groups.

  • If any of the AMIs have a product code attached for which the user has not subscribed, the request fails.

You can create a launch template, which is a resource that contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify the launch template instead of specifying the launch parameters.

To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances.

An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging your Amazon EC2 resources.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key pairs.

For troubleshooting, see What to do if an instance immediately terminates, and Troubleshooting connecting to your instance.

" + "documentation":"

Launches the specified number of instances using an AMI for which you have permissions.

You can specify a number of options, or leave the default options. The following rules apply:

  • [EC2-VPC] If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you don't have a default VPC, you must specify a subnet ID in the request.

  • [EC2-Classic] If don't specify an Availability Zone, we choose one for you.

  • Some instance types must be launched into a VPC. If you do not have a default VPC, or if you do not specify a subnet ID, the request fails. For more information, see Instance types available only in a VPC.

  • [EC2-VPC] All instances have a network interface with a primary private IPv4 address. If you don't specify this address, we choose one from the IPv4 range of your subnet.

  • Not all instance types support IPv6 addresses. For more information, see Instance types.

  • If you don't specify a security group ID, we use the default security group. For more information, see Security groups.

  • If any of the AMIs have a product code attached for which the user has not subscribed, the request fails.

You can create a launch template, which is a resource that contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify the launch template instead of specifying the launch parameters.

To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances.

An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging your Amazon EC2 resources.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key pairs.

For troubleshooting, see What to do if an instance immediately terminates, and Troubleshooting connecting to your instance.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide.

" }, "RunScheduledInstances":{ "name":"RunScheduledInstances", @@ -5243,7 +5773,9 @@ "t4", "m60", "radeon-pro-v520", - "vu9p" + "vu9p", + "inferentia", + "k520" ] }, "AcceleratorNameSet":{ @@ -5298,6 +5830,35 @@ "locationName":"item" } }, + "AcceptAddressTransferRequest":{ + "type":"structure", + "required":["Address"], + "members":{ + "Address":{ + "shape":"String", + "documentation":"

The Elastic IP address you are accepting for transfer.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

", + "locationName":"TagSpecification" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "AcceptAddressTransferResult":{ + "type":"structure", + "members":{ + "AddressTransfer":{ + "shape":"AddressTransfer", + "documentation":"

An Elastic IP address transfer.

", + "locationName":"addressTransfer" + } + } + }, "AcceptReservedInstancesExchangeQuoteRequest":{ "type":"structure", "required":["ReservedInstanceIds"], @@ -5356,6 +5917,7 @@ "members":{ "Associations":{ "shape":"TransitGatewayMulticastDomainAssociations", + "documentation":"

Information about the multicast domain associations.

", "locationName":"associations" } } @@ -5449,7 +6011,7 @@ "locationName":"dryRun" }, "VpcPeeringConnectionId":{ - "shape":"VpcPeeringConnectionId", + "shape":"VpcPeeringConnectionIdWithResolver", "documentation":"

The ID of the VPC peering connection. You must specify this parameter in the request.

", "locationName":"vpcPeeringConnectionId" } @@ -5657,7 +6219,7 @@ "documentation":"

The name of the operating Region.

" } }, - "documentation":"

Add an operating Region to an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

" + "documentation":"

Add an operating Region to an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

" }, "AddIpamOperatingRegionSet":{ "type":"list", @@ -5686,6 +6248,39 @@ }, "documentation":"

An entry for a prefix list.

" }, + "AddedPrincipal":{ + "type":"structure", + "members":{ + "PrincipalType":{ + "shape":"PrincipalType", + "documentation":"

The type of principal.

", + "locationName":"principalType" + }, + "Principal":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the principal.

", + "locationName":"principal" + }, + "ServicePermissionId":{ + "shape":"String", + "documentation":"

The ID of the service permission.

", + "locationName":"servicePermissionId" + }, + "ServiceId":{ + "shape":"String", + "documentation":"

The ID of the service.

", + "locationName":"serviceId" + } + }, + "documentation":"

Describes a principal.

" + }, + "AddedPrincipalSet":{ + "type":"list", + "member":{ + "shape":"AddedPrincipal", + "locationName":"item" + } + }, "AdditionalDetail":{ "type":"structure", "members":{ @@ -5841,6 +6436,57 @@ "locationName":"item" } }, + "AddressTransfer":{ + "type":"structure", + "members":{ + "PublicIp":{ + "shape":"String", + "documentation":"

The Elastic IP address being transferred.

", + "locationName":"publicIp" + }, + "AllocationId":{ + "shape":"String", + "documentation":"

The allocation ID of an Elastic IP address.

", + "locationName":"allocationId" + }, + "TransferAccountId":{ + "shape":"String", + "documentation":"

The ID of the account that you want to transfer the Elastic IP address to.

", + "locationName":"transferAccountId" + }, + "TransferOfferExpirationTimestamp":{ + "shape":"MillisecondDateTime", + "documentation":"

The timestamp when the Elastic IP address transfer expired. When the source account starts the transfer, the transfer account has seven hours to allocate the Elastic IP address to complete the transfer, or the Elastic IP address will return to its original owner.

", + "locationName":"transferOfferExpirationTimestamp" + }, + "TransferOfferAcceptedTimestamp":{ + "shape":"MillisecondDateTime", + "documentation":"

The timestamp when the Elastic IP address transfer was accepted.

", + "locationName":"transferOfferAcceptedTimestamp" + }, + "AddressTransferStatus":{ + "shape":"AddressTransferStatus", + "documentation":"

The Elastic IP address transfer status.

", + "locationName":"addressTransferStatus" + } + }, + "documentation":"

Details on the Elastic IP address transfer. For more information, see Transfer Elastic IP addresses in the Amazon Virtual Private Cloud User Guide.

" + }, + "AddressTransferList":{ + "type":"list", + "member":{ + "shape":"AddressTransfer", + "locationName":"item" + } + }, + "AddressTransferStatus":{ + "type":"string", + "enum":[ + "pending", + "disabled", + "accepted" + ] + }, "AdvertiseByoipCidrRequest":{ "type":"structure", "required":["Cidr"], @@ -6049,7 +6695,7 @@ }, "DisallowedCidrs":{ "shape":"IpamPoolAllocationDisallowedCidrs", - "documentation":"

Exclude a particular CIDR range from being returned by the pool.

", + "documentation":"

Exclude a particular CIDR range from being returned by the pool. Disallowed CIDRs are only allowed if using netmask length for allocation.

", "locationName":"DisallowedCidr" } } @@ -6096,9 +6742,29 @@ "lowestPrice", "diversified", "capacityOptimized", - "capacityOptimizedPrioritized" + "capacityOptimizedPrioritized", + "priceCapacityOptimized" ] }, + "AllocationType":{ + "type":"string", + "enum":["used"] + }, + "AllowedInstanceType":{ + "type":"string", + "max":30, + "min":1, + "pattern":"[a-zA-Z0-9\\.\\*]+" + }, + "AllowedInstanceTypeSet":{ + "type":"list", + "member":{ + "shape":"AllowedInstanceType", + "locationName":"item" + }, + "max":400, + "min":0 + }, "AllowedPrincipal":{ "type":"structure", "members":{ @@ -6111,6 +6777,21 @@ "shape":"String", "documentation":"

The Amazon Resource Name (ARN) of the principal.

", "locationName":"principal" + }, + "ServicePermissionId":{ + "shape":"String", + "documentation":"

The ID of the service permission.

", + "locationName":"servicePermissionId" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags.

", + "locationName":"tagSet" + }, + "ServiceId":{ + "shape":"String", + "documentation":"

The ID of the service.

", + "locationName":"serviceId" } }, "documentation":"

Describes a principal.

" @@ -6341,6 +7022,11 @@ "shape":"String", "documentation":"

The ID of a VPC peering connection.

", "locationName":"vpcPeeringConnectionId" + }, + "State":{ + "shape":"String", + "documentation":"

The state. The following are the possible values:

  • active

  • blackhole

", + "locationName":"state" } }, "documentation":"

Describes a route table route.

" @@ -6439,7 +7125,8 @@ "i386", "x86_64", "arm64", - "x86_64_mac" + "x86_64_mac", + "arm64_mac" ] }, "ArchitectureTypeList":{ @@ -6464,7 +7151,8 @@ "i386", "x86_64", "arm64", - "x86_64_mac" + "x86_64_mac", + "arm64_mac" ] }, "ArnList":{ @@ -6485,7 +7173,7 @@ }, "Ipv6Addresses":{ "shape":"Ipv6AddressList", - "documentation":"

One or more specific IPv6 addresses to be assigned to the network interface. You can't use this option if you're specifying a number of IPv6 addresses.

", + "documentation":"

The IPv6 addresses to be assigned to the network interface. You can't use this option if you're specifying a number of IPv6 addresses.

", "locationName":"ipv6Addresses" }, "Ipv6PrefixCount":{ @@ -6540,7 +7228,7 @@ }, "PrivateIpAddresses":{ "shape":"PrivateIpAddressStringList", - "documentation":"

One or more IP addresses to be assigned as a secondary private IP address to the network interface. You can't specify this parameter when also specifying a number of secondary IP addresses.

If you don't specify an IP address, Amazon EC2 automatically selects an IP address within the subnet range.

", + "documentation":"

The IP addresses to be assigned as a secondary private IP address to the network interface. You can't specify this parameter when also specifying a number of secondary IP addresses.

If you don't specify an IP address, Amazon EC2 automatically selects an IP address within the subnet range.

", "locationName":"privateIpAddress" }, "SecondaryPrivateIpAddressCount":{ @@ -6908,6 +7596,37 @@ } } }, + "AssociateTransitGatewayPolicyTableRequest":{ + "type":"structure", + "required":[ + "TransitGatewayPolicyTableId", + "TransitGatewayAttachmentId" + ], + "members":{ + "TransitGatewayPolicyTableId":{ + "shape":"TransitGatewayPolicyTableId", + "documentation":"

The ID of the transit gateway policy table to associate with the transit gateway attachment.

" + }, + "TransitGatewayAttachmentId":{ + "shape":"TransitGatewayAttachmentId", + "documentation":"

The ID of the transit gateway attachment to associate with the policy table.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "AssociateTransitGatewayPolicyTableResult":{ + "type":"structure", + "members":{ + "Association":{ + "shape":"TransitGatewayPolicyTableAssociation", + "documentation":"

Describes the association of a transit gateway and a transit gateway policy table.

", + "locationName":"association" + } + } + }, "AssociateTransitGatewayRouteTableRequest":{ "type":"structure", "required":[ @@ -7020,19 +7739,19 @@ }, "Ipv4IpamPoolId":{ "shape":"IpamPoolId", - "documentation":"

Associate a CIDR allocated from an IPv4 IPAM pool to a VPC. For more information about Amazon VPC IP Address Manager (IPAM), see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

Associate a CIDR allocated from an IPv4 IPAM pool to a VPC. For more information about Amazon VPC IP Address Manager (IPAM), see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "Ipv4NetmaskLength":{ "shape":"NetmaskLength", - "documentation":"

The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "Ipv6IpamPoolId":{ "shape":"IpamPoolId", - "documentation":"

Associates a CIDR allocated from an IPv6 IPAM pool to a VPC. For more information about Amazon VPC IP Address Manager (IPAM), see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

Associates a CIDR allocated from an IPv6 IPAM pool to a VPC. For more information about Amazon VPC IP Address Manager (IPAM), see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "Ipv6NetmaskLength":{ "shape":"NetmaskLength", - "documentation":"

The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" } } }, @@ -7279,6 +7998,10 @@ "NetworkCardIndex":{ "shape":"Integer", "documentation":"

The index of the network card. Some instance types support multiple network cards. The primary network interface must be assigned to network card index 0. The default is network card index 0.

" + }, + "EnaSrdSpecification":{ + "shape":"EnaSrdSpecification", + "documentation":"

Configures ENA Express for the network interface that this action attaches to the instance.

" } }, "documentation":"

Contains the parameters for AttachNetworkInterface.

" @@ -7299,6 +8022,47 @@ }, "documentation":"

Contains the output of AttachNetworkInterface.

" }, + "AttachVerifiedAccessTrustProviderRequest":{ + "type":"structure", + "required":[ + "VerifiedAccessInstanceId", + "VerifiedAccessTrustProviderId" + ], + "members":{ + "VerifiedAccessInstanceId":{ + "shape":"VerifiedAccessInstanceId", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

" + }, + "VerifiedAccessTrustProviderId":{ + "shape":"VerifiedAccessTrustProviderId", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "AttachVerifiedAccessTrustProviderResult":{ + "type":"structure", + "members":{ + "VerifiedAccessTrustProvider":{ + "shape":"VerifiedAccessTrustProvider", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

", + "locationName":"verifiedAccessTrustProvider" + }, + "VerifiedAccessInstance":{ + "shape":"VerifiedAccessInstance", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

", + "locationName":"verifiedAccessInstance" + } + } + }, "AttachVolumeRequest":{ "type":"structure", "required":[ @@ -7360,6 +8124,33 @@ }, "documentation":"

Contains the output of AttachVpnGateway.

" }, + "AttachmentEnaSrdSpecification":{ + "type":"structure", + "members":{ + "EnaSrdEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether ENA Express is enabled for the network interface that's attached to the instance.

", + "locationName":"enaSrdEnabled" + }, + "EnaSrdUdpSpecification":{ + "shape":"AttachmentEnaSrdUdpSpecification", + "documentation":"

ENA Express configuration for UDP network traffic.

", + "locationName":"enaSrdUdpSpecification" + } + }, + "documentation":"

Describes the ENA Express configuration for the network interface that's attached to the instance.

" + }, + "AttachmentEnaSrdUdpSpecification":{ + "type":"structure", + "members":{ + "EnaSrdUdpEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.

", + "locationName":"enaSrdUdpEnabled" + } + }, + "documentation":"

Describes the ENA Express configuration for UDP traffic on the network interface that's attached to the instance.

" + }, "AttachmentStatus":{ "type":"string", "enum":[ @@ -7570,7 +8361,7 @@ }, "GroupName":{ "shape":"SecurityGroupName", - "documentation":"

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

" + "documentation":"

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

" }, "IpPermissions":{ "shape":"IpPermissionList", @@ -8233,6 +9024,30 @@ } } }, + "CancelImageLaunchPermissionRequest":{ + "type":"structure", + "required":["ImageId"], + "members":{ + "ImageId":{ + "shape":"ImageId", + "documentation":"

The ID of the AMI that was shared with your Amazon Web Services account.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CancelImageLaunchPermissionResult":{ + "type":"structure", + "members":{ + "Return":{ + "shape":"Boolean", + "documentation":"

Returns true if the request succeeds; otherwise, it returns an error.

", + "locationName":"return" + } + } + }, "CancelImportTaskRequest":{ "type":"structure", "members":{ @@ -8462,6 +9277,29 @@ "locationName":"item" } }, + "CapacityAllocation":{ + "type":"structure", + "members":{ + "AllocationType":{ + "shape":"AllocationType", + "documentation":"

The usage type. used indicates that the instance capacity is in use by instances that are running in the Capacity Reservation.

", + "locationName":"allocationType" + }, + "Count":{ + "shape":"Integer", + "documentation":"

The amount of instance capacity associated with the usage. For example a value of 4 indicates that instance capacity for 4 instances is currently in use.

", + "locationName":"count" + } + }, + "documentation":"

Information about instance capacity usage for a Capacity Reservation.

" + }, + "CapacityAllocations":{ + "type":"list", + "member":{ + "shape":"CapacityAllocation", + "locationName":"item" + } + }, "CapacityReservation":{ "type":"structure", "members":{ @@ -8522,7 +9360,7 @@ }, "EphemeralStorage":{ "shape":"Boolean", - "documentation":"

Indicates whether the Capacity Reservation supports instances with temporary, block-level storage.

", + "documentation":"

Deprecated.

", "locationName":"ephemeralStorage" }, "State":{ @@ -8574,6 +9412,11 @@ "shape":"PlacementGroupArn", "documentation":"

The Amazon Resource Name (ARN) of the cluster placement group in which the Capacity Reservation was created. For more information, see Capacity Reservations for cluster placement groups in the Amazon EC2 User Guide.

", "locationName":"placementGroupArn" + }, + "CapacityAllocations":{ + "shape":"CapacityAllocations", + "documentation":"

Information about instance capacity usage.

", + "locationName":"capacityAllocationSet" } }, "documentation":"

Describes a Capacity Reservation.

" @@ -8923,6 +9766,7 @@ "deleted" ] }, + "CertificateArn":{"type":"string"}, "CertificateAuthentication":{ "type":"structure", "members":{ @@ -9027,7 +9871,7 @@ "locationName":"vpcId" } }, - "documentation":"

Describes a linked EC2-Classic instance.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Describes a linked EC2-Classic instance.

" }, "ClassicLinkInstanceList":{ "type":"list", @@ -9637,6 +10481,46 @@ "locationName":"item" } }, + "CloudWatchLogGroupArn":{"type":"string"}, + "CloudWatchLogOptions":{ + "type":"structure", + "members":{ + "LogEnabled":{ + "shape":"Boolean", + "documentation":"

Status of VPN tunnel logging feature. Default value is False.

Valid values: True | False

", + "locationName":"logEnabled" + }, + "LogGroupArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to.

", + "locationName":"logGroupArn" + }, + "LogOutputFormat":{ + "shape":"String", + "documentation":"

Configured log format. Default format is json.

Valid values: json | text

", + "locationName":"logOutputFormat" + } + }, + "documentation":"

Options for sending VPN tunnel logs to CloudWatch.

" + }, + "CloudWatchLogOptionsSpecification":{ + "type":"structure", + "members":{ + "LogEnabled":{ + "shape":"Boolean", + "documentation":"

Enable or disable VPN tunnel logging feature. Default value is False.

Valid values: True | False

" + }, + "LogGroupArn":{ + "shape":"CloudWatchLogGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the CloudWatch log group to send logs to.

" + }, + "LogOutputFormat":{ + "shape":"String", + "documentation":"

Set log format. Default format is json.

Valid values: json | text

" + } + }, + "documentation":"

Options for sending VPN tunnel logs to CloudWatch.

" + }, "CoipAddressUsage":{ "type":"structure", "members":{ @@ -9670,6 +10554,27 @@ "locationName":"item" } }, + "CoipCidr":{ + "type":"structure", + "members":{ + "Cidr":{ + "shape":"String", + "documentation":"

An address range in a customer-owned IP address space.

", + "locationName":"cidr" + }, + "CoipPoolId":{ + "shape":"Ipv4PoolCoipId", + "documentation":"

The ID of the address pool.

", + "locationName":"coipPoolId" + }, + "LocalGatewayRouteTableId":{ + "shape":"String", + "documentation":"

The ID of the local gateway route table.

", + "locationName":"localGatewayRouteTableId" + } + }, + "documentation":"

Information about a customer-owned IP address range.

" + }, "CoipPool":{ "type":"structure", "members":{ @@ -9721,6 +10626,14 @@ "locationName":"item" } }, + "ComponentAccount":{ + "type":"string", + "pattern":"\\d{12}" + }, + "ComponentRegion":{ + "type":"string", + "pattern":"[a-z]{2}-[a-z]+-[1-9]+" + }, "ConfirmProductInstanceRequest":{ "type":"structure", "required":[ @@ -9991,7 +10904,7 @@ }, "Encrypted":{ "shape":"Boolean", - "documentation":"

Specifies whether the destination snapshots of the copied image should be encrypted. You can encrypt a copy of an unencrypted snapshot, but you cannot create an unencrypted copy of an encrypted snapshot. The default KMS key for Amazon EBS is used unless you specify a non-default Key Management Service (KMS) KMS key using KmsKeyId. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", + "documentation":"

Specifies whether the destination snapshots of the copied image should be encrypted. You can encrypt a copy of an unencrypted snapshot, but you cannot create an unencrypted copy of an encrypted snapshot. The default KMS key for Amazon EBS is used unless you specify a non-default Key Management Service (KMS) KMS key using KmsKeyId. For more information, see Amazon EBS encryption in the Amazon Elastic Compute Cloud User Guide.

", "locationName":"encrypted" }, "KmsKeyId":{ @@ -10013,12 +10926,16 @@ }, "DestinationOutpostArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the Outpost to which to copy the AMI. Only specify this parameter when copying an AMI from an Amazon Web Services Region to an Outpost. The AMI must be in the Region of the destination Outpost. You cannot copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost.

For more information, see Copying AMIs from an Amazon Web Services Region to an Outpost in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

The Amazon Resource Name (ARN) of the Outpost to which to copy the AMI. Only specify this parameter when copying an AMI from an Amazon Web Services Region to an Outpost. The AMI must be in the Region of the destination Outpost. You cannot copy an AMI from an Outpost to a Region, from one Outpost to another, or within the same Outpost.

For more information, see Copy AMIs from an Amazon Web Services Region to an Outpost in the Amazon Elastic Compute Cloud User Guide.

" }, "DryRun":{ "shape":"Boolean", "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "locationName":"dryRun" + }, + "CopyImageTags":{ + "shape":"Boolean", + "documentation":"

Indicates whether to include your user-defined AMI tags when copying the AMI.

The following tags will not be copied:

  • System tags (prefixed with aws:)

  • For public and shared AMIs, user-defined tags that are attached by other Amazon Web Services accounts

Default: Your user-defined AMI tags are not copied.

" } }, "documentation":"

Contains the parameters for CopyImage.

" @@ -10312,7 +11229,7 @@ }, "EphemeralStorage":{ "shape":"Boolean", - "documentation":"

Indicates whether the Capacity Reservation supports instances with temporary, block-level storage.

" + "documentation":"

Deprecated.

" }, "EndDate":{ "shape":"DateTime", @@ -10540,6 +11457,66 @@ } } }, + "CreateCoipCidrRequest":{ + "type":"structure", + "required":[ + "Cidr", + "CoipPoolId" + ], + "members":{ + "Cidr":{ + "shape":"String", + "documentation":"

A customer-owned IP address range to create.

" + }, + "CoipPoolId":{ + "shape":"Ipv4PoolCoipId", + "documentation":"

The ID of the address pool.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateCoipCidrResult":{ + "type":"structure", + "members":{ + "CoipCidr":{ + "shape":"CoipCidr", + "documentation":"

Information about a range of customer-owned IP addresses.

", + "locationName":"coipCidr" + } + } + }, + "CreateCoipPoolRequest":{ + "type":"structure", + "required":["LocalGatewayRouteTableId"], + "members":{ + "LocalGatewayRouteTableId":{ + "shape":"LocalGatewayRoutetableId", + "documentation":"

The ID of the local gateway route table.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags to assign to the CoIP address pool.

", + "locationName":"TagSpecification" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateCoipPoolResult":{ + "type":"structure", + "members":{ + "CoipPool":{ + "shape":"CoipPool", + "documentation":"

Information about the CoIP address pool.

", + "locationName":"coipPool" + } + } + }, "CreateCustomerGatewayRequest":{ "type":"structure", "required":[ @@ -10553,8 +11530,7 @@ }, "PublicIp":{ "shape":"String", - "documentation":"

The Internet-routable IP address for the customer gateway's outside interface. The address must be static.

", - "locationName":"IpAddress" + "documentation":"

This member has been deprecated. The Internet-routable IP address for the customer gateway's outside interface. The address must be static.

" }, "CertificateArn":{ "shape":"String", @@ -10573,6 +11549,10 @@ "shape":"String", "documentation":"

A name for the customer gateway device.

Length Constraints: Up to 255 characters.

" }, + "IpAddress":{ + "shape":"String", + "documentation":"

IPv4 address for the customer gateway device's outside interface. The address must be static.

" + }, "DryRun":{ "shape":"Boolean", "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -10869,8 +11849,7 @@ "type":"structure", "required":[ "ResourceIds", - "ResourceType", - "TrafficType" + "ResourceType" ], "members":{ "DryRun":{ @@ -10883,36 +11862,40 @@ }, "DeliverLogsPermissionArn":{ "shape":"String", - "documentation":"

The ARN for the IAM role that permits Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account.

If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn or LogGroupName.

" + "documentation":"

The ARN of the IAM role that allows Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account.

This parameter is required if the destination type is cloud-watch-logs and unsupported otherwise.

" + }, + "DeliverCrossAccountRole":{ + "shape":"String", + "documentation":"

The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts.

" }, "LogGroupName":{ "shape":"String", - "documentation":"

The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs.

If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn or LogGroupName.

" + "documentation":"

The name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs.

This parameter is valid only if the destination type is cloud-watch-logs.

" }, "ResourceIds":{ "shape":"FlowLogResourceIds", - "documentation":"

The ID of the subnet, network interface, or VPC for which you want to create a flow log.

Constraints: Maximum of 1000 resources

", + "documentation":"

The IDs of the resources to monitor. For example, if the resource type is VPC, specify the IDs of the VPCs.

Constraints: Maximum of 25 for transit gateway resource types. Maximum of 1000 for the other resource types.

", "locationName":"ResourceId" }, "ResourceType":{ "shape":"FlowLogsResourceType", - "documentation":"

The type of resource for which to create the flow log. For example, if you specified a VPC ID for the ResourceId property, specify VPC for this property.

" + "documentation":"

The type of resource to monitor.

" }, "TrafficType":{ "shape":"TrafficType", - "documentation":"

The type of traffic to log. You can log traffic that the resource accepts or rejects, or all traffic.

" + "documentation":"

The type of traffic to monitor (accepted traffic, rejected traffic, or all traffic). This parameter is not supported for transit gateway resource types. It is required for the other resource types.

" }, "LogDestinationType":{ "shape":"LogDestinationType", - "documentation":"

The type of destination to which the flow log data is to be published. Flow log data can be published to CloudWatch Logs or Amazon S3. To publish flow log data to CloudWatch Logs, specify cloud-watch-logs. To publish flow log data to Amazon S3, specify s3.

If you specify LogDestinationType as s3, do not specify DeliverLogsPermissionArn or LogGroupName.

Default: cloud-watch-logs

" + "documentation":"

The type of destination for the flow log data.

Default: cloud-watch-logs

" }, "LogDestination":{ "shape":"String", - "documentation":"

The destination to which the flow log data is to be published. Flow log data can be published to a CloudWatch Logs log group or an Amazon S3 bucket. The value specified for this parameter depends on the value specified for LogDestinationType.

If LogDestinationType is not specified or cloud-watch-logs, specify the Amazon Resource Name (ARN) of the CloudWatch Logs log group. For example, to publish to a log group called my-logs, specify arn:aws:logs:us-east-1:123456789012:log-group:my-logs. Alternatively, use LogGroupName instead.

If LogDestinationType is s3, specify the ARN of the Amazon S3 bucket. You can also specify a subfolder in the bucket. To specify a subfolder in the bucket, use the following ARN format: bucket_ARN/subfolder_name/. For example, to specify a subfolder named my-logs in a bucket named my-bucket, use the following ARN: arn:aws:s3:::my-bucket/my-logs/. You cannot use AWSLogs as a subfolder name. This is a reserved term.

" + "documentation":"

The destination for the flow log data. The meaning of this parameter depends on the destination type.

  • If the destination type is cloud-watch-logs, specify the ARN of a CloudWatch Logs log group. For example:

    arn:aws:logs:region:account_id:log-group:my_group

    Alternatively, use the LogGroupName parameter.

  • If the destination type is s3, specify the ARN of an S3 bucket. For example:

    arn:aws:s3:::my_bucket/my_subfolder/

    The subfolder is optional. Note that you can't use AWSLogs as a subfolder name.

  • If the destination type is kinesis-data-firehose, specify the ARN of a Kinesis Data Firehose delivery stream. For example:

    arn:aws:firehose:region:account_id:deliverystream:my_stream

" }, "LogFormat":{ "shape":"String", - "documentation":"

The fields to include in the flow log record, in the order in which they should appear. For a list of available fields, see Flow log records. If you omit this parameter, the flow log is created using the default format. If you specify this parameter, you must specify at least one field.

Specify the fields using the ${field-id} format, separated by spaces. For the CLI, surround this parameter value with single quotes on Linux or double quotes on Windows.

" + "documentation":"

The fields to include in the flow log record. List the fields in the order in which they should appear. If you omit this parameter, the flow log is created using the default format. If you specify this parameter, you must include at least one field. For more information about the available fields, see Flow log records in the Amazon VPC User Guide or Transit Gateway Flow Log records in the Amazon Web Services Transit Gateway Guide.

Specify the fields using the ${field-id} format, separated by spaces. For the CLI, surround this parameter value with single quotes on Linux or double quotes on Windows.

" }, "TagSpecifications":{ "shape":"TagSpecificationList", @@ -10921,7 +11904,7 @@ }, "MaxAggregationInterval":{ "shape":"Integer", - "documentation":"

The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. You can specify 60 seconds (1 minute) or 600 seconds (10 minutes).

When a network interface is attached to a Nitro-based instance, the aggregation interval is always 60 seconds or less, regardless of the value that you specify.

Default: 600

" + "documentation":"

The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. The possible values are 60 seconds (1 minute) or 600 seconds (10 minutes). This parameter must be 60 seconds for transit gateway resource types.

When a network interface is attached to a Nitro-based instance, the aggregation interval is always 60 seconds or less, regardless of the value that you specify.

Default: 600

" }, "DestinationOptions":{ "shape":"DestinationOptionsRequest", @@ -11255,7 +12238,7 @@ }, "OperatingRegions":{ "shape":"AddIpamOperatingRegionSet", - "documentation":"

The operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

", + "documentation":"

The operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

", "locationName":"OperatingRegion" }, "TagSpecifications":{ @@ -11375,7 +12358,7 @@ }, "TagSpecifications":{ "shape":"TagSpecificationList", - "documentation":"

The tags to apply to the launch template during creation.

", + "documentation":"

The tags to apply to the launch template on creation. To tag the launch template, the resource type must be launch-template.

To specify the tags for the resources that are created when an instance is launched, you must use the TagSpecifications parameter in the launch template data structure.

", "locationName":"TagSpecification" } } @@ -11409,11 +12392,11 @@ }, "LaunchTemplateId":{ "shape":"LaunchTemplateId", - "documentation":"

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

" + "documentation":"

The ID of the launch template.

You must specify either the LaunchTemplateId or the LaunchTemplateName, but not both.

" }, "LaunchTemplateName":{ "shape":"LaunchTemplateName", - "documentation":"

The name of the launch template. You must specify either the launch template ID or launch template name in the request.

" + "documentation":"

The name of the launch template.

You must specify the LaunchTemplateName or the LaunchTemplateId, but not both.

" }, "SourceVersion":{ "shape":"String", @@ -11448,8 +12431,7 @@ "type":"structure", "required":[ "DestinationCidrBlock", - "LocalGatewayRouteTableId", - "LocalGatewayVirtualInterfaceGroupId" + "LocalGatewayRouteTableId" ], "members":{ "DestinationCidrBlock":{ @@ -11467,6 +12449,10 @@ "DryRun":{ "shape":"Boolean", "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "NetworkInterfaceId":{ + "shape":"NetworkInterfaceId", + "documentation":"

The ID of the network interface.

" } } }, @@ -11480,6 +12466,75 @@ } } }, + "CreateLocalGatewayRouteTableRequest":{ + "type":"structure", + "required":["LocalGatewayId"], + "members":{ + "LocalGatewayId":{ + "shape":"LocalGatewayId", + "documentation":"

The ID of the local gateway.

" + }, + "Mode":{ + "shape":"LocalGatewayRouteTableMode", + "documentation":"

The mode of the local gateway route table.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags assigned to the local gateway route table.

", + "locationName":"TagSpecification" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateLocalGatewayRouteTableResult":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTable":{ + "shape":"LocalGatewayRouteTable", + "documentation":"

Information about the local gateway route table.

", + "locationName":"localGatewayRouteTable" + } + } + }, + "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest":{ + "type":"structure", + "required":[ + "LocalGatewayRouteTableId", + "LocalGatewayVirtualInterfaceGroupId" + ], + "members":{ + "LocalGatewayRouteTableId":{ + "shape":"LocalGatewayRoutetableId", + "documentation":"

The ID of the local gateway route table.

" + }, + "LocalGatewayVirtualInterfaceGroupId":{ + "shape":"LocalGatewayVirtualInterfaceGroupId", + "documentation":"

The ID of the local gateway route table virtual interface group association.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags assigned to the local gateway route table virtual interface group association.

", + "locationName":"TagSpecification" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation":{ + "shape":"LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "documentation":"

Information about the local gateway route table virtual interface group association.

", + "locationName":"localGatewayRouteTableVirtualInterfaceGroupAssociation" + } + } + }, "CreateLocalGatewayRouteTableVpcAssociationRequest":{ "type":"structure", "required":[ @@ -11596,6 +12651,10 @@ "ConnectivityType":{ "shape":"ConnectivityType", "documentation":"

Indicates whether the NAT gateway supports public or private connectivity. The default is public connectivity.

" + }, + "PrivateIpAddress":{ + "shape":"String", + "documentation":"

The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned.

" } } }, @@ -11873,12 +12932,12 @@ }, "Ipv6AddressCount":{ "shape":"Integer", - "documentation":"

The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses. If your subnet has the AssignIpv6AddressOnCreation attribute set to true, you can specify 0 to override this setting.

", + "documentation":"

The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range.

You can't specify a count of IPv6 addresses using this parameter if you've specified one of the following: specific IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 prefixes.

If your subnet has the AssignIpv6AddressOnCreation attribute set, you can override that setting by specifying 0 as the IPv6 address count.

", "locationName":"ipv6AddressCount" }, "Ipv6Addresses":{ "shape":"InstanceIpv6AddressList", - "documentation":"

One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses.

", + "documentation":"

The IPv6 addresses from the IPv6 CIDR block range of your subnet.

You can't specify IPv6 addresses using this parameter if you've specified one of the following: a count of IPv6 addresses, specific IPv6 prefixes, or a count of IPv6 prefixes.

", "locationName":"ipv6Addresses" }, "PrivateIpAddress":{ @@ -11888,31 +12947,31 @@ }, "PrivateIpAddresses":{ "shape":"PrivateIpAddressSpecificationList", - "documentation":"

One or more private IPv4 addresses.

", + "documentation":"

The private IPv4 addresses.

You can't specify private IPv4 addresses if you've specified one of the following: a count of private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.

", "locationName":"privateIpAddresses" }, "SecondaryPrivateIpAddressCount":{ "shape":"Integer", - "documentation":"

The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using privateIpAddresses.

The number of IP addresses you can assign to a network interface varies by instance type. For more information, see IP Addresses Per ENI Per Instance Type in the Amazon Virtual Private Cloud User Guide.

", + "documentation":"

The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using privateIpAddresses.

You can't specify a count of private IPv4 addresses if you've specified one of the following: specific private IPv4 addresses, specific IPv4 prefixes, or a count of IPv4 prefixes.

", "locationName":"secondaryPrivateIpAddressCount" }, "Ipv4Prefixes":{ "shape":"Ipv4PrefixList", - "documentation":"

One or more IPv4 prefixes assigned to the network interface. You cannot use this option if you use the Ipv4PrefixCount option.

", + "documentation":"

The IPv4 prefixes assigned to the network interface.

You can't specify IPv4 prefixes if you've specified one of the following: a count of IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.

", "locationName":"Ipv4Prefix" }, "Ipv4PrefixCount":{ "shape":"Integer", - "documentation":"

The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface. You cannot use this option if you use the Ipv4 Prefixes option.

" + "documentation":"

The number of IPv4 prefixes that Amazon Web Services automatically assigns to the network interface.

You can't specify a count of IPv4 prefixes if you've specified one of the following: specific IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.

" }, "Ipv6Prefixes":{ "shape":"Ipv6PrefixList", - "documentation":"

One or more IPv6 prefixes assigned to the network interface. You cannot use this option if you use the Ipv6PrefixCount option.

", + "documentation":"

The IPv6 prefixes assigned to the network interface.

You can't specify IPv6 prefixes if you've specified one of the following: a count of IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

", "locationName":"Ipv6Prefix" }, "Ipv6PrefixCount":{ "shape":"Integer", - "documentation":"

The number of IPv6 prefixes that Amazon Web Services automatically assigns to the network interface. You cannot use this option if you use the Ipv6Prefixes option.

" + "documentation":"

The number of IPv6 prefixes that Amazon Web Services automatically assigns to the network interface.

You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.

" }, "InterfaceType":{ "shape":"NetworkInterfaceCreationType", @@ -11933,8 +12992,7 @@ "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Ensuring Idempotency.

", "idempotencyToken":true } - }, - "documentation":"

Contains the parameters for CreateNetworkInterface.

" + } }, "CreateNetworkInterfaceResult":{ "type":"structure", @@ -11949,8 +13007,7 @@ "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "locationName":"clientToken" } - }, - "documentation":"

Contains the output of CreateNetworkInterface.

" + } }, "CreatePlacementGroupRequest":{ "type":"structure", @@ -11978,6 +13035,10 @@ "shape":"TagSpecificationList", "documentation":"

The tags to apply to the new placement group.

", "locationName":"TagSpecification" + }, + "SpreadLevel":{ + "shape":"SpreadLevel", + "documentation":"

Determines how placement groups spread instances.

  • Host – You can use host only with Outpost placement groups.

  • Rack – No usage restrictions.

" } } }, @@ -11986,6 +13047,7 @@ "members":{ "PlacementGroup":{ "shape":"PlacementGroup", + "documentation":"

Information about the placement group.

", "locationName":"placementGroup" } } @@ -12024,7 +13086,7 @@ }, "SnapshotId":{ "shape":"SnapshotId", - "documentation":"

The ID of the snapshot from which to restore the replacement root volume. If you want to restore the volume to the initial launch state, omit this parameter.

" + "documentation":"

The ID of the snapshot from which to restore the replacement root volume. The specified snapshot must be a snapshot that you previously created from the original root volume.

If you want to restore the replacement root volume to the initial launch state, or if you want to restore the replacement root volume from an AMI, omit this parameter.

" }, "ClientToken":{ "shape":"String", @@ -12039,6 +13101,14 @@ "shape":"TagSpecificationList", "documentation":"

The tags to apply to the root volume replacement task.

", "locationName":"TagSpecification" + }, + "ImageId":{ + "shape":"ImageId", + "documentation":"

The ID of the AMI to use to restore the root volume. The specified AMI must have the same product code, billing information, architecture type, and virtualization type as that of the instance.

If you want to restore the replacement volume from a specific snapshot, or if you want to restore it to its launch state, omit this parameter.

" + }, + "DeleteReplacedRootVolume":{ + "shape":"Boolean", + "documentation":"

Indicates whether to automatically delete the original root volume after the root volume replacement task completes. To delete the original root volume, specify true. If you choose to keep the original root volume after the replacement task completes, you must manually delete it when you no longer need it.

" } } }, @@ -12969,6 +14039,10 @@ "shape":"String", "documentation":"

The Region where the peer transit gateway is located.

" }, + "Options":{ + "shape":"CreateTransitGatewayPeeringAttachmentRequestOptions", + "documentation":"

Requests a transit gateway peering attachment.

" + }, "TagSpecifications":{ "shape":"TagSpecificationList", "documentation":"

The tags to apply to the transit gateway peering attachment.

", @@ -12980,6 +14054,16 @@ } } }, + "CreateTransitGatewayPeeringAttachmentRequestOptions":{ + "type":"structure", + "members":{ + "DynamicRouting":{ + "shape":"DynamicRoutingValue", + "documentation":"

Indicates whether dynamic routing is enabled or disabled.

" + } + }, + "documentation":"

Describes whether dynamic routing is enabled or disabled for the transit gateway peering request.

" + }, "CreateTransitGatewayPeeringAttachmentResult":{ "type":"structure", "members":{ @@ -12990,6 +14074,34 @@ } } }, + "CreateTransitGatewayPolicyTableRequest":{ + "type":"structure", + "required":["TransitGatewayId"], + "members":{ + "TransitGatewayId":{ + "shape":"TransitGatewayId", + "documentation":"

The ID of the transit gateway used for the policy table.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags specification for the transit gateway policy table created during the request.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateTransitGatewayPolicyTableResult":{ + "type":"structure", + "members":{ + "TransitGatewayPolicyTable":{ + "shape":"TransitGatewayPolicyTable", + "documentation":"

Describes the created transit gateway policy table.

", + "locationName":"transitGatewayPolicyTable" + } + } + }, "CreateTransitGatewayPrefixListReferenceRequest":{ "type":"structure", "required":[ @@ -13100,6 +14212,42 @@ } } }, + "CreateTransitGatewayRouteTableAnnouncementRequest":{ + "type":"structure", + "required":[ + "TransitGatewayRouteTableId", + "PeeringAttachmentId" + ], + "members":{ + "TransitGatewayRouteTableId":{ + "shape":"TransitGatewayRouteTableId", + "documentation":"

The ID of the transit gateway route table.

" + }, + "PeeringAttachmentId":{ + "shape":"TransitGatewayAttachmentId", + "documentation":"

The ID of the peering attachment.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags specifications applied to the transit gateway route table announcement.

", + "locationName":"TagSpecification" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateTransitGatewayRouteTableAnnouncementResult":{ + "type":"structure", + "members":{ + "TransitGatewayRouteTableAnnouncement":{ + "shape":"TransitGatewayRouteTableAnnouncement", + "documentation":"

Provides details about the transit gateway route table announcement.

", + "locationName":"transitGatewayRouteTableAnnouncement" + } + } + }, "CreateTransitGatewayRouteTableRequest":{ "type":"structure", "required":["TransitGatewayId"], @@ -13190,6 +14338,316 @@ } } }, + "CreateVerifiedAccessEndpointEniOptions":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"NetworkInterfaceId", + "documentation":"

The ID of the network interface.

" + }, + "Protocol":{ + "shape":"VerifiedAccessEndpointProtocol", + "documentation":"

The IP protocol.

" + }, + "Port":{ + "shape":"VerifiedAccessEndpointPortNumber", + "documentation":"

The IP port number.

" + } + }, + "documentation":"

Options for a network interface-type endpoint.

" + }, + "CreateVerifiedAccessEndpointLoadBalancerOptions":{ + "type":"structure", + "members":{ + "Protocol":{ + "shape":"VerifiedAccessEndpointProtocol", + "documentation":"

The IP protocol.

" + }, + "Port":{ + "shape":"VerifiedAccessEndpointPortNumber", + "documentation":"

The IP port number.

" + }, + "LoadBalancerArn":{ + "shape":"LoadBalancerArn", + "documentation":"

The ARN of the load balancer.

" + }, + "SubnetIds":{ + "shape":"CreateVerifiedAccessEndpointSubnetIdList", + "documentation":"

The IDs of the subnets.

", + "locationName":"SubnetId" + } + }, + "documentation":"

Describes a load balancer when creating an Amazon Web Services Verified Access endpoint using the load-balancer type.

" + }, + "CreateVerifiedAccessEndpointRequest":{ + "type":"structure", + "required":[ + "VerifiedAccessGroupId", + "EndpointType", + "AttachmentType", + "DomainCertificateArn", + "ApplicationDomain", + "EndpointDomainPrefix" + ], + "members":{ + "VerifiedAccessGroupId":{ + "shape":"VerifiedAccessGroupId", + "documentation":"

The ID of the Verified Access group to associate the endpoint with.

" + }, + "EndpointType":{ + "shape":"VerifiedAccessEndpointType", + "documentation":"

The type of Amazon Web Services Verified Access endpoint to create.

" + }, + "AttachmentType":{ + "shape":"VerifiedAccessEndpointAttachmentType", + "documentation":"

The Amazon Web Services network component Verified Access attaches to.

" + }, + "DomainCertificateArn":{ + "shape":"CertificateArn", + "documentation":"

The ARN of the public TLS/SSL certificate in Amazon Web Services Certificate Manager to associate with the endpoint. The CN in the certificate must match the DNS name your end users will use to reach your application.

" + }, + "ApplicationDomain":{ + "shape":"String", + "documentation":"

The DNS name for users to reach your application.

" + }, + "EndpointDomainPrefix":{ + "shape":"String", + "documentation":"

A custom identifier that gets prepended to a DNS name that is generated for the endpoint.

" + }, + "SecurityGroupIds":{ + "shape":"SecurityGroupIdList", + "documentation":"

The Amazon EC2 security groups to associate with the Amazon Web Services Verified Access endpoint.

", + "locationName":"SecurityGroupId" + }, + "LoadBalancerOptions":{ + "shape":"CreateVerifiedAccessEndpointLoadBalancerOptions", + "documentation":"

The load balancer details if creating the Amazon Web Services Verified Access endpoint as load-balancertype.

" + }, + "NetworkInterfaceOptions":{ + "shape":"CreateVerifiedAccessEndpointEniOptions", + "documentation":"

The network interface details if creating the Amazon Web Services Verified Access endpoint as network-interfacetype.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access endpoint.

" + }, + "PolicyDocument":{ + "shape":"String", + "documentation":"

The Amazon Web Services Verified Access policy document.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags to assign to the Amazon Web Services Verified Access endpoint.

", + "locationName":"TagSpecification" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateVerifiedAccessEndpointResult":{ + "type":"structure", + "members":{ + "VerifiedAccessEndpoint":{ + "shape":"VerifiedAccessEndpoint", + "documentation":"

The ID of the Amazon Web Services Verified Access endpoint.

", + "locationName":"verifiedAccessEndpoint" + } + } + }, + "CreateVerifiedAccessEndpointSubnetIdList":{ + "type":"list", + "member":{ + "shape":"SubnetId", + "locationName":"item" + } + }, + "CreateVerifiedAccessGroupRequest":{ + "type":"structure", + "required":["VerifiedAccessInstanceId"], + "members":{ + "VerifiedAccessInstanceId":{ + "shape":"VerifiedAccessInstanceId", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access group.

" + }, + "PolicyDocument":{ + "shape":"String", + "documentation":"

The Amazon Web Services Verified Access policy document.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags to assign to the Amazon Web Services Verified Access group.

", + "locationName":"TagSpecification" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateVerifiedAccessGroupResult":{ + "type":"structure", + "members":{ + "VerifiedAccessGroup":{ + "shape":"VerifiedAccessGroup", + "documentation":"

The ID of the Verified Access group.

", + "locationName":"verifiedAccessGroup" + } + } + }, + "CreateVerifiedAccessInstanceRequest":{ + "type":"structure", + "members":{ + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access instance.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags to assign to the Amazon Web Services Verified Access instance.

", + "locationName":"TagSpecification" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateVerifiedAccessInstanceResult":{ + "type":"structure", + "members":{ + "VerifiedAccessInstance":{ + "shape":"VerifiedAccessInstance", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

", + "locationName":"verifiedAccessInstance" + } + } + }, + "CreateVerifiedAccessTrustProviderDeviceOptions":{ + "type":"structure", + "members":{ + "TenantId":{ + "shape":"String", + "documentation":"

The ID of the tenant application with the device-identity provider.

" + } + }, + "documentation":"

Options for a device-identity type trust provider.

" + }, + "CreateVerifiedAccessTrustProviderOidcOptions":{ + "type":"structure", + "members":{ + "Issuer":{ + "shape":"String", + "documentation":"

The OIDC issuer.

" + }, + "AuthorizationEndpoint":{ + "shape":"String", + "documentation":"

The OIDC authorization endpoint.

" + }, + "TokenEndpoint":{ + "shape":"String", + "documentation":"

The OIDC token endpoint.

" + }, + "UserInfoEndpoint":{ + "shape":"String", + "documentation":"

The OIDC user info endpoint.

" + }, + "ClientId":{ + "shape":"String", + "documentation":"

The client identifier.

" + }, + "ClientSecret":{ + "shape":"String", + "documentation":"

The client secret.

" + }, + "Scope":{ + "shape":"String", + "documentation":"

OpenID Connect (OIDC) scopes are used by an application during authentication to authorize access to a user's details. Each scope returns a specific set of user attributes.

" + } + }, + "documentation":"

Options for an OIDC-based, user-identity type trust provider.

" + }, + "CreateVerifiedAccessTrustProviderRequest":{ + "type":"structure", + "required":[ + "TrustProviderType", + "PolicyReferenceName" + ], + "members":{ + "TrustProviderType":{ + "shape":"TrustProviderType", + "documentation":"

The type of trust provider can be either user or device-based.

" + }, + "UserTrustProviderType":{ + "shape":"UserTrustProviderType", + "documentation":"

The type of user-based trust provider.

" + }, + "DeviceTrustProviderType":{ + "shape":"DeviceTrustProviderType", + "documentation":"

The type of device-based trust provider.

" + }, + "OidcOptions":{ + "shape":"CreateVerifiedAccessTrustProviderOidcOptions", + "documentation":"

The OpenID Connect details for an oidc-type, user-identity based trust provider.

" + }, + "DeviceOptions":{ + "shape":"CreateVerifiedAccessTrustProviderDeviceOptions", + "documentation":"

The options for device identity based trust providers.

" + }, + "PolicyReferenceName":{ + "shape":"String", + "documentation":"

The identifier to be used when working with policy rules.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access trust provider.

" + }, + "TagSpecifications":{ + "shape":"TagSpecificationList", + "documentation":"

The tags to assign to the Amazon Web Services Verified Access trust provider.

", + "locationName":"TagSpecification" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "CreateVerifiedAccessTrustProviderResult":{ + "type":"structure", + "members":{ + "VerifiedAccessTrustProvider":{ + "shape":"VerifiedAccessTrustProvider", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

", + "locationName":"verifiedAccessTrustProvider" + } + } + }, "CreateVolumePermission":{ "type":"structure", "members":{ @@ -13541,19 +14999,19 @@ }, "Ipv4IpamPoolId":{ "shape":"IpamPoolId", - "documentation":"

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "Ipv4NetmaskLength":{ "shape":"NetmaskLength", - "documentation":"

The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "Ipv6IpamPoolId":{ "shape":"IpamPoolId", - "documentation":"

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

The ID of an IPv6 IPAM pool which will be used to allocate this VPC an IPv6 CIDR. IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "Ipv6NetmaskLength":{ "shape":"NetmaskLength", - "documentation":"

The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

The netmask length of the IPv6 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "DryRun":{ "shape":"Boolean", @@ -13701,11 +15159,11 @@ "members":{ "CpuCredits":{ "shape":"String", - "documentation":"

The credit option for CPU usage of a T2, T3, or T3a instance. Valid values are standard and unlimited.

", + "documentation":"

The credit option for CPU usage of a T instance.

Valid values: standard | unlimited

", "locationName":"cpuCredits" } }, - "documentation":"

Describes the credit option for CPU usage of a T2, T3, or T3a instance.

" + "documentation":"

Describes the credit option for CPU usage of a T instance.

" }, "CreditSpecificationRequest":{ "type":"structure", @@ -13713,10 +15171,10 @@ "members":{ "CpuCredits":{ "shape":"String", - "documentation":"

The credit option for CPU usage of a T2, T3, or T3a instance. Valid values are standard and unlimited.

" + "documentation":"

The credit option for CPU usage of a T instance.

Valid values: standard | unlimited

" } }, - "documentation":"

The credit option for CPU usage of a T2, T3, or T3a instance.

" + "documentation":"

The credit option for CPU usage of a T instance.

" }, "CurrencyCodeValues":{ "type":"string", @@ -13738,7 +15196,7 @@ }, "IpAddress":{ "shape":"String", - "documentation":"

The Internet-routable IP address of the customer gateway's outside interface.

", + "documentation":"

The IP address of the customer gateway device's outside interface.

", "locationName":"ipAddress" }, "CertificateArn":{ @@ -13794,6 +15252,88 @@ "max":1000, "min":5 }, + "DataQueries":{ + "type":"list", + "member":{"shape":"DataQuery"} + }, + "DataQuery":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"String", + "documentation":"

A user-defined ID associated with a data query that's returned in the dataResponse identifying the query. For example, if you set the Id to MyQuery01in the query, the dataResponse identifies the query as MyQuery01.

" + }, + "Source":{ + "shape":"String", + "documentation":"

The Region or Availability Zone that's the source for the data query. For example, us-east-1.

" + }, + "Destination":{ + "shape":"String", + "documentation":"

The Region or Availability Zone that's the target for the data query. For example, eu-north-1.

" + }, + "Metric":{ + "shape":"MetricType", + "documentation":"

The aggregation metric used for the data query. Currently only aggregation-latency is supported, indicating network latency.

" + }, + "Statistic":{ + "shape":"StatisticType", + "documentation":"

Metric data aggregations over specified periods of time. The following are the supported Infrastructure Performance statistics:

  • p50 - The median value of the metric aggregated over a specified start and end time. For example, a metric of five_minutes is the median of all the data points gathered within those five minutes.

" + }, + "Period":{ + "shape":"PeriodType", + "documentation":"

The aggregation period used for the data query.

" + } + }, + "documentation":"

A query used for retrieving network health data.

" + }, + "DataResponse":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"String", + "documentation":"

The ID passed in the DataQuery.

", + "locationName":"id" + }, + "Source":{ + "shape":"String", + "documentation":"

The Region or Availability Zone that's the source for the data query. For example, us-east-1.

", + "locationName":"source" + }, + "Destination":{ + "shape":"String", + "documentation":"

The Region or Availability Zone that's the destination for the data query. For example, eu-west-1.

", + "locationName":"destination" + }, + "Metric":{ + "shape":"MetricType", + "documentation":"

The metric used for the network performance request. Currently only aggregate-latency is supported, showing network latency during a specified period.

", + "locationName":"metric" + }, + "Statistic":{ + "shape":"StatisticType", + "documentation":"

The statistic used for the network performance request.

", + "locationName":"statistic" + }, + "Period":{ + "shape":"PeriodType", + "documentation":"

The period used for the network performance request.

", + "locationName":"period" + }, + "MetricPoints":{ + "shape":"MetricPoints", + "documentation":"

A list of MetricPoint objects.

", + "locationName":"metricPointSet" + } + }, + "documentation":"

The response to a DataQuery.

" + }, + "DataResponses":{ + "type":"list", + "member":{ + "shape":"DataResponse", + "locationName":"item" + } + }, "DatafeedSubscriptionState":{ "type":"string", "enum":[ @@ -13917,6 +15457,61 @@ } } }, + "DeleteCoipCidrRequest":{ + "type":"structure", + "required":[ + "Cidr", + "CoipPoolId" + ], + "members":{ + "Cidr":{ + "shape":"String", + "documentation":"

A customer-owned IP address range that you want to delete.

" + }, + "CoipPoolId":{ + "shape":"Ipv4PoolCoipId", + "documentation":"

The ID of the customer-owned address pool.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DeleteCoipCidrResult":{ + "type":"structure", + "members":{ + "CoipCidr":{ + "shape":"CoipCidr", + "documentation":"

Information about a range of customer-owned IP addresses.

", + "locationName":"coipCidr" + } + } + }, + "DeleteCoipPoolRequest":{ + "type":"structure", + "required":["CoipPoolId"], + "members":{ + "CoipPoolId":{ + "shape":"Ipv4PoolCoipId", + "documentation":"

The ID of the CoIP pool that you want to delete.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DeleteCoipPoolResult":{ + "type":"structure", + "members":{ + "CoipPool":{ + "shape":"CoipPool", + "documentation":"

Information about the CoIP address pool.

", + "locationName":"coipPool" + } + } + }, "DeleteCustomerGatewayRequest":{ "type":"structure", "required":["CustomerGatewayId"], @@ -14281,11 +15876,11 @@ }, "LaunchTemplateId":{ "shape":"LaunchTemplateId", - "documentation":"

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

" + "documentation":"

The ID of the launch template.

You must specify either the LaunchTemplateId or the LaunchTemplateName, but not both.

" }, "LaunchTemplateName":{ "shape":"LaunchTemplateName", - "documentation":"

The name of the launch template. You must specify either the launch template ID or launch template name in the request.

" + "documentation":"

The name of the launch template.

You must specify either the LaunchTemplateName or the LaunchTemplateId, but not both.

" } } }, @@ -14309,11 +15904,11 @@ }, "LaunchTemplateId":{ "shape":"LaunchTemplateId", - "documentation":"

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

" + "documentation":"

The ID of the launch template.

You must specify either the LaunchTemplateId or the LaunchTemplateName, but not both.

" }, "LaunchTemplateName":{ "shape":"LaunchTemplateName", - "documentation":"

The name of the launch template. You must specify either the launch template ID or launch template name in the request.

" + "documentation":"

The name of the launch template.

You must specify either the LaunchTemplateName or the LaunchTemplateId, but not both.

" }, "Versions":{ "shape":"VersionStringList", @@ -14429,6 +16024,54 @@ } } }, + "DeleteLocalGatewayRouteTableRequest":{ + "type":"structure", + "required":["LocalGatewayRouteTableId"], + "members":{ + "LocalGatewayRouteTableId":{ + "shape":"LocalGatewayRoutetableId", + "documentation":"

The ID of the local gateway route table.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DeleteLocalGatewayRouteTableResult":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTable":{ + "shape":"LocalGatewayRouteTable", + "documentation":"

Information about the local gateway route table.

", + "locationName":"localGatewayRouteTable" + } + } + }, + "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationRequest":{ + "type":"structure", + "required":["LocalGatewayRouteTableVirtualInterfaceGroupAssociationId"], + "members":{ + "LocalGatewayRouteTableVirtualInterfaceGroupAssociationId":{ + "shape":"LocalGatewayRouteTableVirtualInterfaceGroupAssociationId", + "documentation":"

The ID of the local gateway route table virtual interface group association.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociationResult":{ + "type":"structure", + "members":{ + "LocalGatewayRouteTableVirtualInterfaceGroupAssociation":{ + "shape":"LocalGatewayRouteTableVirtualInterfaceGroupAssociation", + "documentation":"

Information about the association.

", + "locationName":"localGatewayRouteTableVirtualInterfaceGroupAssociation" + } + } + }, "DeleteLocalGatewayRouteTableVpcAssociationRequest":{ "type":"structure", "required":["LocalGatewayRouteTableVpcAssociationId"], @@ -14848,7 +16491,7 @@ }, "GroupName":{ "shape":"SecurityGroupName", - "documentation":"

[EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID.

" + "documentation":"

[EC2-Classic, default VPC] The name of the security group. You can specify either the security group name or the security group ID. For security groups in a nondefault VPC, you must specify the security group ID.

" }, "DryRun":{ "shape":"Boolean", @@ -15135,6 +16778,30 @@ } } }, + "DeleteTransitGatewayPolicyTableRequest":{ + "type":"structure", + "required":["TransitGatewayPolicyTableId"], + "members":{ + "TransitGatewayPolicyTableId":{ + "shape":"TransitGatewayPolicyTableId", + "documentation":"

The transit gateway policy table to delete.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DeleteTransitGatewayPolicyTableResult":{ + "type":"structure", + "members":{ + "TransitGatewayPolicyTable":{ + "shape":"TransitGatewayPolicyTable", + "documentation":"

Provides details about the deleted transit gateway policy table.

", + "locationName":"transitGatewayPolicyTable" + } + } + }, "DeleteTransitGatewayPrefixListReferenceRequest":{ "type":"structure", "required":[ @@ -15221,6 +16888,30 @@ } } }, + "DeleteTransitGatewayRouteTableAnnouncementRequest":{ + "type":"structure", + "required":["TransitGatewayRouteTableAnnouncementId"], + "members":{ + "TransitGatewayRouteTableAnnouncementId":{ + "shape":"TransitGatewayRouteTableAnnouncementId", + "documentation":"

The transit gateway route table ID that's being deleted.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DeleteTransitGatewayRouteTableAnnouncementResult":{ + "type":"structure", + "members":{ + "TransitGatewayRouteTableAnnouncement":{ + "shape":"TransitGatewayRouteTableAnnouncement", + "documentation":"

Provides details about a deleted transit gateway route table.

", + "locationName":"transitGatewayRouteTableAnnouncement" + } + } + }, "DeleteTransitGatewayRouteTableRequest":{ "type":"structure", "required":["TransitGatewayRouteTableId"], @@ -15269,6 +16960,122 @@ } } }, + "DeleteVerifiedAccessEndpointRequest":{ + "type":"structure", + "required":["VerifiedAccessEndpointId"], + "members":{ + "VerifiedAccessEndpointId":{ + "shape":"VerifiedAccessEndpointId", + "documentation":"

The ID of the Amazon Web Services Verified Access endpoint.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DeleteVerifiedAccessEndpointResult":{ + "type":"structure", + "members":{ + "VerifiedAccessEndpoint":{ + "shape":"VerifiedAccessEndpoint", + "documentation":"

The ID of the Amazon Web Services Verified Access endpoint.

", + "locationName":"verifiedAccessEndpoint" + } + } + }, + "DeleteVerifiedAccessGroupRequest":{ + "type":"structure", + "required":["VerifiedAccessGroupId"], + "members":{ + "VerifiedAccessGroupId":{ + "shape":"VerifiedAccessGroupId", + "documentation":"

The ID of the Amazon Web Services Verified Access group.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DeleteVerifiedAccessGroupResult":{ + "type":"structure", + "members":{ + "VerifiedAccessGroup":{ + "shape":"VerifiedAccessGroup", + "documentation":"

The ID of the Amazon Web Services Verified Access group.

", + "locationName":"verifiedAccessGroup" + } + } + }, + "DeleteVerifiedAccessInstanceRequest":{ + "type":"structure", + "required":["VerifiedAccessInstanceId"], + "members":{ + "VerifiedAccessInstanceId":{ + "shape":"VerifiedAccessInstanceId", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + } + } + }, + "DeleteVerifiedAccessInstanceResult":{ + "type":"structure", + "members":{ + "VerifiedAccessInstance":{ + "shape":"VerifiedAccessInstance", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

", + "locationName":"verifiedAccessInstance" + } + } + }, + "DeleteVerifiedAccessTrustProviderRequest":{ + "type":"structure", + "required":["VerifiedAccessTrustProviderId"], + "members":{ + "VerifiedAccessTrustProviderId":{ + "shape":"VerifiedAccessTrustProviderId", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + } + } + }, + "DeleteVerifiedAccessTrustProviderResult":{ + "type":"structure", + "members":{ + "VerifiedAccessTrustProvider":{ + "shape":"VerifiedAccessTrustProvider", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

", + "locationName":"verifiedAccessTrustProvider" + } + } + }, "DeleteVolumeRequest":{ "type":"structure", "required":["VolumeId"], @@ -15688,6 +17495,48 @@ } } }, + "DescribeAddressTransfersMaxResults":{ + "type":"integer", + "max":1000, + "min":5 + }, + "DescribeAddressTransfersRequest":{ + "type":"structure", + "members":{ + "AllocationIds":{ + "shape":"AllocationIdList", + "documentation":"

The allocation IDs of Elastic IP addresses.

", + "locationName":"AllocationId" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

" + }, + "MaxResults":{ + "shape":"DescribeAddressTransfersMaxResults", + "documentation":"

The maximum number of address transfers to return in one page of results.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DescribeAddressTransfersResult":{ + "type":"structure", + "members":{ + "AddressTransfers":{ + "shape":"AddressTransferList", + "documentation":"

The Elastic IP address transfer.

", + "locationName":"addressTransferSet" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "locationName":"nextToken" + } + } + }, "DescribeAddressesAttributeRequest":{ "type":"structure", "members":{ @@ -15827,6 +17676,43 @@ } } }, + "DescribeAwsNetworkPerformanceMetricSubscriptionsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResultsParam", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

One or more filters.

", + "locationName":"Filter" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DescribeAwsNetworkPerformanceMetricSubscriptionsResult":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "locationName":"nextToken" + }, + "Subscriptions":{ + "shape":"SubscriptionList", + "documentation":"

Describes the current Infrastructure Performance subscriptions.

", + "locationName":"subscriptionSet" + } + } + }, "DescribeBundleTasksRequest":{ "type":"structure", "members":{ @@ -16404,7 +18290,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters.

  • bgp-asn - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

  • customer-gateway-id - The ID of the customer gateway.

  • ip-address - The IP address of the customer gateway's Internet-routable external interface.

  • state - The state of the customer gateway (pending | available | deleting | deleted).

  • type - The type of customer gateway. Currently, the only supported type is ipsec.1.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

", + "documentation":"

One or more filters.

  • bgp-asn - The customer gateway's Border Gateway Protocol (BGP) Autonomous System Number (ASN).

  • customer-gateway-id - The ID of the customer gateway.

  • ip-address - The IP address of the customer gateway device's external interface.

  • state - The state of the customer gateway (pending | available | deleting | deleted).

  • type - The type of customer gateway. Currently, the only supported type is ipsec.1.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

", "locationName":"Filter" }, "DryRun":{ @@ -17092,7 +18978,7 @@ }, "Filter":{ "shape":"FilterList", - "documentation":"

One or more filters.

  • deliver-log-status - The status of the logs delivery (SUCCESS | FAILED).

  • log-destination-type - The type of destination to which the flow log publishes data. Possible destination types include cloud-watch-logs and s3.

  • flow-log-id - The ID of the flow log.

  • log-group-name - The name of the log group.

  • resource-id - The ID of the VPC, subnet, or network interface.

  • traffic-type - The type of traffic (ACCEPT | REJECT | ALL).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

" + "documentation":"

One or more filters.

  • deliver-log-status - The status of the logs delivery (SUCCESS | FAILED).

  • log-destination-type - The type of destination for the flow log data (cloud-watch-logs | s3 | kinesis-data-firehose).

  • flow-log-id - The ID of the flow log.

  • log-group-name - The name of the log group.

  • resource-id - The ID of the VPC, subnet, or network interface.

  • traffic-type - The type of traffic (ACCEPT | REJECT | ALL).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

" }, "FlowLogIds":{ "shape":"FlowLogIdList", @@ -17453,7 +19339,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

The filters.

  • architecture - The image architecture (i386 | x86_64 | arm64).

  • block-device-mapping.delete-on-termination - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name specified in the block device mapping (for example, /dev/sdh or xvdh).

  • block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS volume.

  • block-device-mapping.volume-size - The volume size of the Amazon EBS volume, in GiB.

  • block-device-mapping.volume-type - The volume type of the Amazon EBS volume (io1 | io2 | gp2 | gp3 | sc1 | st1 | standard).

  • block-device-mapping.encrypted - A Boolean that indicates whether the Amazon EBS volume is encrypted.

  • creation-date - The time when the image was created, in the ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example, 2021-09-29T11:04:43.305Z. You can use a wildcard (*), for example, 2021-09-29T*, which matches an entire day.

  • description - The description of the image (provided during image creation).

  • ena-support - A Boolean that indicates whether enhanced networking with ENA is enabled.

  • hypervisor - The hypervisor type (ovm | xen).

  • image-id - The ID of the image.

  • image-type - The image type (machine | kernel | ramdisk).

  • is-public - A Boolean that indicates whether the image is public.

  • kernel-id - The kernel ID.

  • manifest-location - The location of the image manifest.

  • name - The name of the AMI (provided during image creation).

  • owner-alias - The owner alias (amazon | aws-marketplace). The valid aliases are defined in an Amazon-maintained list. This is not the Amazon Web Services account alias that can be set using the IAM console. We recommend that you use the Owner request parameter instead of this filter.

  • owner-id - The Amazon Web Services account ID of the owner. We recommend that you use the Owner request parameter instead of this filter.

  • platform - The platform. To only list Windows-based AMIs, use windows.

  • product-code - The product code.

  • product-code.type - The type of the product code (marketplace).

  • ramdisk-id - The RAM disk ID.

  • root-device-name - The device name of the root device volume (for example, /dev/sda1).

  • root-device-type - The type of the root device volume (ebs | instance-store).

  • state - The state of the image (available | pending | failed).

  • state-reason-code - The reason code for the state change.

  • state-reason-message - The message for the state change.

  • sriov-net-support - A value of simple indicates that enhanced networking with the Intel 82599 VF interface is enabled.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • virtualization-type - The virtualization type (paravirtual | hvm).

", + "documentation":"

The filters.

  • architecture - The image architecture (i386 | x86_64 | arm64).

  • block-device-mapping.delete-on-termination - A Boolean value that indicates whether the Amazon EBS volume is deleted on instance termination.

  • block-device-mapping.device-name - The device name specified in the block device mapping (for example, /dev/sdh or xvdh).

  • block-device-mapping.snapshot-id - The ID of the snapshot used for the Amazon EBS volume.

  • block-device-mapping.volume-size - The volume size of the Amazon EBS volume, in GiB.

  • block-device-mapping.volume-type - The volume type of the Amazon EBS volume (io1 | io2 | gp2 | gp3 | sc1 | st1 | standard).

  • block-device-mapping.encrypted - A Boolean that indicates whether the Amazon EBS volume is encrypted.

  • creation-date - The time when the image was created, in the ISO 8601 format in the UTC time zone (YYYY-MM-DDThh:mm:ss.sssZ), for example, 2021-09-29T11:04:43.305Z. You can use a wildcard (*), for example, 2021-09-29T*, which matches an entire day.

  • description - The description of the image (provided during image creation).

  • ena-support - A Boolean that indicates whether enhanced networking with ENA is enabled.

  • hypervisor - The hypervisor type (ovm | xen).

  • image-id - The ID of the image.

  • image-type - The image type (machine | kernel | ramdisk).

  • is-public - A Boolean that indicates whether the image is public.

  • kernel-id - The kernel ID.

  • manifest-location - The location of the image manifest.

  • name - The name of the AMI (provided during image creation).

  • owner-alias - The owner alias (amazon | aws-marketplace). The valid aliases are defined in an Amazon-maintained list. This is not the Amazon Web Services account alias that can be set using the IAM console. We recommend that you use the Owner request parameter instead of this filter.

  • owner-id - The Amazon Web Services account ID of the owner. We recommend that you use the Owner request parameter instead of this filter.

  • platform - The platform. The only supported value is windows.

  • product-code - The product code.

  • product-code.type - The type of the product code (marketplace).

  • ramdisk-id - The RAM disk ID.

  • root-device-name - The device name of the root device volume (for example, /dev/sda1).

  • root-device-type - The type of the root device volume (ebs | instance-store).

  • state - The state of the image (available | pending | failed).

  • state-reason-code - The reason code for the state change.

  • state-reason-message - The message for the state change.

  • sriov-net-support - A value of simple indicates that enhanced networking with the Intel 82599 VF interface is enabled.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • virtualization-type - The virtualization type (paravirtual | hvm).

", "locationName":"Filter" }, "ImageIds":{ @@ -17468,7 +19354,7 @@ }, "IncludeDeprecated":{ "shape":"Boolean", - "documentation":"

If true, all deprecated AMIs are included in the response. If false, no deprecated AMIs are included in the response. If no value is specified, the default value is false.

If you are the AMI owner, all deprecated AMIs appear in the response regardless of the value (true or false) that you set for this parameter.

" + "documentation":"

Specifies whether to include deprecated AMIs.

Default: No deprecated AMIs are included in the response.

If you are the AMI owner, all deprecated AMIs appear in the response regardless of what you specify for this parameter.

" }, "DryRun":{ "shape":"Boolean", @@ -18142,15 +20028,15 @@ }, "LaunchTemplateId":{ "shape":"LaunchTemplateId", - "documentation":"

The ID of the launch template. To describe one or more versions of a specified launch template, you must specify either the launch template ID or the launch template name in the request. To describe all the latest or default launch template versions in your account, you must omit this parameter.

" + "documentation":"

The ID of the launch template.

To describe one or more versions of a specified launch template, you must specify either the LaunchTemplateId or the LaunchTemplateName, but not both.

To describe all the latest or default launch template versions in your account, you must omit this parameter.

" }, "LaunchTemplateName":{ "shape":"LaunchTemplateName", - "documentation":"

The name of the launch template. To describe one or more versions of a specified launch template, you must specify either the launch template ID or the launch template name in the request. To describe all the latest or default launch template versions in your account, you must omit this parameter.

" + "documentation":"

The name of the launch template.

To describe one or more versions of a specified launch template, you must specify either the LaunchTemplateName or the LaunchTemplateId, but not both.

To describe all the latest or default launch template versions in your account, you must omit this parameter.

" }, "Versions":{ "shape":"VersionStringList", - "documentation":"

One or more versions of the launch template. Valid values depend on whether you are describing a specified launch template (by ID or name) or all launch templates in your account.

To describe one or more versions of a specified launch template, valid values are $Latest, $Default, and numbers.

To describe all launch templates in your account that are defined as the latest version, the valid value is $Latest. To describe all launch templates in your account that are defined as the default version, the valid value is $Default. You can specify $Latest and $Default in the same call. You cannot specify numbers.

", + "documentation":"

One or more versions of the launch template. Valid values depend on whether you are describing a specified launch template (by ID or name) or all launch templates in your account.

To describe one or more versions of a specified launch template, valid values are $Latest, $Default, and numbers.

To describe all launch templates in your account that are defined as the latest version, the valid value is $Latest. To describe all launch templates in your account that are defined as the default version, the valid value is $Default. You can specify $Latest and $Default in the same request. You cannot specify numbers.

", "locationName":"LaunchTemplateVersion" }, "MinVersion":{ @@ -18643,7 +20529,7 @@ "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters.

  • association.association-id - The ID of an association ID for the ACL.

  • association.network-acl-id - The ID of the network ACL involved in the association.

  • association.subnet-id - The ID of the subnet involved in the association.

  • default - Indicates whether the ACL is the default network ACL for the VPC.

  • entry.cidr - The IPv4 CIDR range specified in the entry.

  • entry.icmp.code - The ICMP code specified in the entry, if any.

  • entry.icmp.type - The ICMP type specified in the entry, if any.

  • entry.ipv6-cidr - The IPv6 CIDR range specified in the entry.

  • entry.port-range.from - The start of the port range specified in the entry.

  • entry.port-range.to - The end of the port range specified in the entry.

  • entry.protocol - The protocol specified in the entry (tcp | udp | icmp or a protocol number).

  • entry.rule-action - Allows or denies the matching traffic (allow | deny).

  • entry.rule-number - The number of an entry (in other words, rule) in the set of ACL entries.

  • network-acl-id - The ID of the network ACL.

  • owner-id - The ID of the Amazon Web Services account that owns the network ACL.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • vpc-id - The ID of the VPC for the network ACL.

", + "documentation":"

One or more filters.

  • association.association-id - The ID of an association ID for the ACL.

  • association.network-acl-id - The ID of the network ACL involved in the association.

  • association.subnet-id - The ID of the subnet involved in the association.

  • default - Indicates whether the ACL is the default network ACL for the VPC.

  • entry.cidr - The IPv4 CIDR range specified in the entry.

  • entry.icmp.code - The ICMP code specified in the entry, if any.

  • entry.icmp.type - The ICMP type specified in the entry, if any.

  • entry.ipv6-cidr - The IPv6 CIDR range specified in the entry.

  • entry.port-range.from - The start of the port range specified in the entry.

  • entry.port-range.to - The end of the port range specified in the entry.

  • entry.protocol - The protocol specified in the entry (tcp | udp | icmp or a protocol number).

  • entry.rule-action - Allows or denies the matching traffic (allow | deny).

  • entry.egress - A Boolean that indicates the type of rule. Specify true for egress rules, or false for ingress rules.

  • entry.rule-number - The number of an entry (in other words, rule) in the set of ACL entries.

  • network-acl-id - The ID of the network ACL.

  • owner-id - The ID of the Amazon Web Services account that owns the network ACL.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • vpc-id - The ID of the VPC for the network ACL.

", "locationName":"Filter" }, "DryRun":{ @@ -18799,7 +20685,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

The filters. The following are the possible values:

  • PathFound - A Boolean value that indicates whether a feasible path is found.

  • Status - The status of the analysis (running | succeeded | failed).

", + "documentation":"

The filters. The following are the possible values:

  • path-found - A Boolean value that indicates whether a feasible path is found.

  • status - The status of the analysis (running | succeeded | failed).

", "locationName":"Filter" }, "MaxResults":{ @@ -18841,7 +20727,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

The filters. The following are the possible values:

  • Destination - The ID of the resource.

  • DestinationPort - The destination port.

  • Name - The path name.

  • Protocol - The protocol.

  • Source - The ID of the resource.

", + "documentation":"

The filters. The following are the possible values:

  • destination - The ID of the resource.

  • destination-port - The destination port.

  • protocol - The protocol.

  • source - The ID of the resource.

", "locationName":"Filter" }, "MaxResults":{ @@ -18936,7 +20822,7 @@ "members":{ "NetworkInterfacePermissionIds":{ "shape":"NetworkInterfacePermissionIdList", - "documentation":"

One or more network interface permission IDs.

", + "documentation":"

The network interface permission IDs.

", "locationName":"NetworkInterfacePermissionId" }, "Filters":{ @@ -18991,7 +20877,7 @@ }, "NetworkInterfaceIds":{ "shape":"NetworkInterfaceIdList", - "documentation":"

One or more network interface IDs.

Default: Describes all your network interfaces.

", + "documentation":"

The network interface IDs.

Default: Describes all your network interfaces.

", "locationName":"NetworkInterfaceId" }, "NextToken":{ @@ -19026,7 +20912,7 @@ "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

The filters.

  • group-name - The name of the placement group.

  • group-arn - The Amazon Resource Name (ARN) of the placement group.

  • state - The state of the placement group (pending | available | deleting | deleted).

  • strategy - The strategy of the placement group (cluster | spread | partition).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.

", + "documentation":"

The filters.

  • group-name - The name of the placement group.

  • group-arn - The Amazon Resource Name (ARN) of the placement group.

  • spread-level - The spread level for the placement group (host | rack).

  • state - The state of the placement group (pending | available | deleting | deleted).

  • strategy - The strategy of the placement group (cluster | spread | partition).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources that have a tag with a specific key, regardless of the tag value.

", "locationName":"Filter" }, "DryRun":{ @@ -20285,7 +22171,7 @@ "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters.

  • availability-zone - The Availability Zone for the subnet. You can also use availabilityZone as the filter name.

  • availability-zone-id - The ID of the Availability Zone for the subnet. You can also use availabilityZoneId as the filter name.

  • available-ip-address-count - The number of IPv4 addresses in the subnet that are available.

  • cidr-block - The IPv4 CIDR block of the subnet. The CIDR block you specify must exactly match the subnet's CIDR block for information to be returned for the subnet. You can also use cidr or cidrBlock as the filter names.

  • default-for-az - Indicates whether this is the default subnet for the Availability Zone (true | false). You can also use defaultForAz as the filter name.

  • ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR block associated with the subnet.

  • ipv6-cidr-block-association.association-id - An association ID for an IPv6 CIDR block associated with the subnet.

  • ipv6-cidr-block-association.state - The state of an IPv6 CIDR block associated with the subnet.

  • ipv6-native - Indicates whether this is an IPv6 only subnet (true | false).

  • outpost-arn - The Amazon Resource Name (ARN) of the Outpost.

  • owner-id - The ID of the Amazon Web Services account that owns the subnet.

  • state - The state of the subnet (pending | available).

  • subnet-arn - The Amazon Resource Name (ARN) of the subnet.

  • subnet-id - The ID of the subnet.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • vpc-id - The ID of the VPC for the subnet.

", + "documentation":"

One or more filters.

  • availability-zone - The Availability Zone for the subnet. You can also use availabilityZone as the filter name.

  • availability-zone-id - The ID of the Availability Zone for the subnet. You can also use availabilityZoneId as the filter name.

  • available-ip-address-count - The number of IPv4 addresses in the subnet that are available.

  • cidr-block - The IPv4 CIDR block of the subnet. The CIDR block you specify must exactly match the subnet's CIDR block for information to be returned for the subnet. You can also use cidr or cidrBlock as the filter names.

  • customer-owned-ipv4-pool - The customer-owned IPv4 address pool associated with the subnet.

  • default-for-az - Indicates whether this is the default subnet for the Availability Zone (true | false). You can also use defaultForAz as the filter name.

  • enable-dns64 - Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations.

  • enable-lni-at-device-index - Indicates the device position for local network interfaces in this subnet. For example, 1 indicates local network interfaces in this subnet are the secondary network interface (eth1).

  • ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR block associated with the subnet.

  • ipv6-cidr-block-association.association-id - An association ID for an IPv6 CIDR block associated with the subnet.

  • ipv6-cidr-block-association.state - The state of an IPv6 CIDR block associated with the subnet.

  • ipv6-native - Indicates whether this is an IPv6 only subnet (true | false).

  • map-customer-owned-ip-on-launch - Indicates whether a network interface created in this subnet (including a network interface created by RunInstances) receives a customer-owned IPv4 address.

  • map-public-ip-on-launch - Indicates whether instances launched in this subnet receive a public IPv4 address.

  • outpost-arn - The Amazon Resource Name (ARN) of the Outpost.

  • owner-id - The ID of the Amazon Web Services account that owns the subnet.

  • private-dns-name-options-on-launch.hostname-type - The type of hostname to assign to instances in the subnet at launch. For IPv4-only and dual-stack (IPv4 and IPv6) subnets, an instance DNS name can be based on the instance IPv4 address (ip-name) or the instance ID (resource-name). For IPv6 only subnets, an instance DNS name must be based on the instance ID (resource-name).

  • private-dns-name-options-on-launch.enable-resource-name-dns-a-record - Indicates whether to respond to DNS queries for instance hostnames with DNS A records.

  • private-dns-name-options-on-launch.enable-resource-name-dns-aaaa-record - Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records.

  • state - The state of the subnet (pending | available).

  • subnet-arn - The Amazon Resource Name (ARN) of the subnet.

  • subnet-id - The ID of the subnet.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • vpc-id - The ID of the VPC for the subnet.

", "locationName":"Filter" }, "SubnetIds":{ @@ -20694,6 +22580,88 @@ } } }, + "DescribeTransitGatewayPolicyTablesRequest":{ + "type":"structure", + "members":{ + "TransitGatewayPolicyTableIds":{ + "shape":"TransitGatewayPolicyTableIdStringList", + "documentation":"

The IDs of the transit gateway policy tables.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

The filters associated with the transit gateway policy table.

", + "locationName":"Filter" + }, + "MaxResults":{ + "shape":"TransitGatewayMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DescribeTransitGatewayPolicyTablesResult":{ + "type":"structure", + "members":{ + "TransitGatewayPolicyTables":{ + "shape":"TransitGatewayPolicyTableList", + "documentation":"

Describes the transit gateway policy tables.

", + "locationName":"transitGatewayPolicyTables" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

", + "locationName":"nextToken" + } + } + }, + "DescribeTransitGatewayRouteTableAnnouncementsRequest":{ + "type":"structure", + "members":{ + "TransitGatewayRouteTableAnnouncementIds":{ + "shape":"TransitGatewayRouteTableAnnouncementIdStringList", + "documentation":"

The IDs of the transit gateway route tables that are being advertised.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

The filters associated with the transit gateway policy table.

", + "locationName":"Filter" + }, + "MaxResults":{ + "shape":"TransitGatewayMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DescribeTransitGatewayRouteTableAnnouncementsResult":{ + "type":"structure", + "members":{ + "TransitGatewayRouteTableAnnouncements":{ + "shape":"TransitGatewayRouteTableAnnouncementList", + "documentation":"

Describes the transit gateway route table announcement.

", + "locationName":"transitGatewayRouteTableAnnouncements" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

", + "locationName":"nextToken" + } + } + }, "DescribeTransitGatewayRouteTablesRequest":{ "type":"structure", "members":{ @@ -20864,6 +22832,253 @@ } } }, + "DescribeVerifiedAccessEndpointsMaxResults":{ + "type":"integer", + "max":1000, + "min":5 + }, + "DescribeVerifiedAccessEndpointsRequest":{ + "type":"structure", + "members":{ + "VerifiedAccessEndpointIds":{ + "shape":"VerifiedAccessEndpointIdList", + "documentation":"

The ID of the Amazon Web Services Verified Access endpoint.

", + "locationName":"VerifiedAccessEndpointId" + }, + "VerifiedAccessInstanceId":{ + "shape":"VerifiedAccessInstanceId", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

" + }, + "VerifiedAccessGroupId":{ + "shape":"VerifiedAccessGroupId", + "documentation":"

The ID of the Amazon Web Services Verified Access group.

" + }, + "MaxResults":{ + "shape":"DescribeVerifiedAccessEndpointsMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

One or more filters. Filter names and values are case-sensitive.

", + "locationName":"Filter" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DescribeVerifiedAccessEndpointsResult":{ + "type":"structure", + "members":{ + "VerifiedAccessEndpoints":{ + "shape":"VerifiedAccessEndpointList", + "documentation":"

The ID of the Amazon Web Services Verified Access endpoint.

", + "locationName":"verifiedAccessEndpointSet" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "locationName":"nextToken" + } + } + }, + "DescribeVerifiedAccessGroupMaxResults":{ + "type":"integer", + "max":1000, + "min":5 + }, + "DescribeVerifiedAccessGroupsRequest":{ + "type":"structure", + "members":{ + "VerifiedAccessGroupIds":{ + "shape":"VerifiedAccessGroupIdList", + "documentation":"

The ID of the Amazon Web Services Verified Access groups.

", + "locationName":"VerifiedAccessGroupId" + }, + "VerifiedAccessInstanceId":{ + "shape":"VerifiedAccessInstanceId", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

" + }, + "MaxResults":{ + "shape":"DescribeVerifiedAccessGroupMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

One or more filters. Filter names and values are case-sensitive.

", + "locationName":"Filter" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DescribeVerifiedAccessGroupsResult":{ + "type":"structure", + "members":{ + "VerifiedAccessGroups":{ + "shape":"VerifiedAccessGroupList", + "documentation":"

The ID of the Verified Access group.

", + "locationName":"verifiedAccessGroupSet" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "locationName":"nextToken" + } + } + }, + "DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults":{ + "type":"integer", + "max":10, + "min":1 + }, + "DescribeVerifiedAccessInstanceLoggingConfigurationsRequest":{ + "type":"structure", + "members":{ + "VerifiedAccessInstanceIds":{ + "shape":"VerifiedAccessInstanceIdList", + "documentation":"

The IDs of the Amazon Web Services Verified Access instances.

", + "locationName":"VerifiedAccessInstanceId" + }, + "MaxResults":{ + "shape":"DescribeVerifiedAccessInstanceLoggingConfigurationsMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

One or more filters. Filter names and values are case-sensitive.

", + "locationName":"Filter" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DescribeVerifiedAccessInstanceLoggingConfigurationsResult":{ + "type":"structure", + "members":{ + "LoggingConfigurations":{ + "shape":"VerifiedAccessInstanceLoggingConfigurationList", + "documentation":"

The current logging configuration for the Amazon Web Services Verified Access instances.

", + "locationName":"loggingConfigurationSet" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "locationName":"nextToken" + } + } + }, + "DescribeVerifiedAccessInstancesMaxResults":{ + "type":"integer", + "max":200, + "min":5 + }, + "DescribeVerifiedAccessInstancesRequest":{ + "type":"structure", + "members":{ + "VerifiedAccessInstanceIds":{ + "shape":"VerifiedAccessInstanceIdList", + "documentation":"

The IDs of the Amazon Web Services Verified Access instances.

", + "locationName":"VerifiedAccessInstanceId" + }, + "MaxResults":{ + "shape":"DescribeVerifiedAccessInstancesMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

One or more filters. Filter names and values are case-sensitive.

", + "locationName":"Filter" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DescribeVerifiedAccessInstancesResult":{ + "type":"structure", + "members":{ + "VerifiedAccessInstances":{ + "shape":"VerifiedAccessInstanceList", + "documentation":"

The IDs of the Amazon Web Services Verified Access instances.

", + "locationName":"verifiedAccessInstanceSet" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "locationName":"nextToken" + } + } + }, + "DescribeVerifiedAccessTrustProvidersMaxResults":{ + "type":"integer", + "max":200, + "min":5 + }, + "DescribeVerifiedAccessTrustProvidersRequest":{ + "type":"structure", + "members":{ + "VerifiedAccessTrustProviderIds":{ + "shape":"VerifiedAccessTrustProviderIdList", + "documentation":"

The IDs of the Amazon Web Services Verified Access trust providers.

", + "locationName":"VerifiedAccessTrustProviderId" + }, + "MaxResults":{ + "shape":"DescribeVerifiedAccessTrustProvidersMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

One or more filters. Filter names and values are case-sensitive.

", + "locationName":"Filter" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DescribeVerifiedAccessTrustProvidersResult":{ + "type":"structure", + "members":{ + "VerifiedAccessTrustProviders":{ + "shape":"VerifiedAccessTrustProviderList", + "documentation":"

The IDs of the Amazon Web Services Verified Access trust providers.

", + "locationName":"verifiedAccessTrustProviderSet" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "locationName":"nextToken" + } + } + }, "DescribeVolumeAttributeRequest":{ "type":"structure", "required":[ @@ -21075,6 +23290,11 @@ "shape":"AttributeBooleanValue", "documentation":"

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.

", "locationName":"enableDnsSupport" + }, + "EnableNetworkAddressUsageMetrics":{ + "shape":"AttributeBooleanValue", + "documentation":"

Indicates whether Network Address Usage metrics are enabled for your VPC.

", + "locationName":"enableNetworkAddressUsageMetrics" } } }, @@ -21328,7 +23548,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters.

  • service-name - The name of the service.

  • service-type - The type of service (Interface | Gateway).

  • supported-ip-address-types - The IP address type (ipv4 | ipv6).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

", + "documentation":"

One or more filters.

  • owner - The ID or alias of the Amazon Web Services account that owns the service.

  • service-name - The name of the service.

  • service-type - The type of service (Interface | Gateway | GatewayLoadBalancer).

  • supported-ip-address-types - The IP address type (ipv4 | ipv6).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

", "locationName":"Filter" }, "MaxResults":{ @@ -21377,7 +23597,7 @@ }, "Filters":{ "shape":"FilterList", - "documentation":"

One or more filters.

  • ip-address-type - The IP address type (ipv4 | ipv6).

  • service-name - The name of the service.

  • vpc-id - The ID of the VPC in which the endpoint resides.

  • vpc-endpoint-id - The ID of the endpoint.

  • vpc-endpoint-state - The state of the endpoint (pendingAcceptance | pending | available | deleting | deleted | rejected | failed).

  • vpc-endpoint-type - The type of VPC endpoint (Interface | Gateway | GatewayLoadBalancer).

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

", + "documentation":"

One or more filters.

  • ip-address-type - The IP address type (ipv4 | ipv6).

  • service-name - The name of the service.

  • tag:<key> - The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner and the value TeamA, specify tag:Owner for the filter name and TeamA for the filter value.

  • tag-key - The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.

  • vpc-id - The ID of the VPC in which the endpoint resides.

  • vpc-endpoint-id - The ID of the endpoint.

  • vpc-endpoint-state - The state of the endpoint (pendingAcceptance | pending | available | deleting | deleted | rejected | failed).

  • vpc-endpoint-type - The type of VPC endpoint (Interface | Gateway | GatewayLoadBalancer).

", "locationName":"Filter" }, "MaxResults":{ @@ -21693,6 +23913,47 @@ }, "documentation":"

Contains the parameters for DetachNetworkInterface.

" }, + "DetachVerifiedAccessTrustProviderRequest":{ + "type":"structure", + "required":[ + "VerifiedAccessInstanceId", + "VerifiedAccessTrustProviderId" + ], + "members":{ + "VerifiedAccessInstanceId":{ + "shape":"VerifiedAccessInstanceId", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

" + }, + "VerifiedAccessTrustProviderId":{ + "shape":"VerifiedAccessTrustProviderId", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DetachVerifiedAccessTrustProviderResult":{ + "type":"structure", + "members":{ + "VerifiedAccessTrustProvider":{ + "shape":"VerifiedAccessTrustProvider", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

", + "locationName":"verifiedAccessTrustProvider" + }, + "VerifiedAccessInstance":{ + "shape":"VerifiedAccessInstance", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

", + "locationName":"verifiedAccessInstance" + } + } + }, "DetachVolumeRequest":{ "type":"structure", "required":["VolumeId"], @@ -21743,6 +24004,24 @@ }, "documentation":"

Contains the parameters for DetachVpnGateway.

" }, + "DeviceOptions":{ + "type":"structure", + "members":{ + "TenantId":{ + "shape":"String", + "documentation":"

The ID of the tenant application with the device-identity provider.

", + "locationName":"tenantId" + } + }, + "documentation":"

Options for an Amazon Web Services Verified Access device-identity based trust provider.

" + }, + "DeviceTrustProviderType":{ + "type":"string", + "enum":[ + "jamf", + "crowdstrike" + ] + }, "DeviceType":{ "type":"string", "enum":[ @@ -21842,6 +24121,65 @@ }, "documentation":"

Describes the Active Directory to be used for client authentication.

" }, + "DisableAddressTransferRequest":{ + "type":"structure", + "required":["AllocationId"], + "members":{ + "AllocationId":{ + "shape":"AllocationId", + "documentation":"

The allocation ID of an Elastic IP address.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DisableAddressTransferResult":{ + "type":"structure", + "members":{ + "AddressTransfer":{ + "shape":"AddressTransfer", + "documentation":"

An Elastic IP address transfer.

", + "locationName":"addressTransfer" + } + } + }, + "DisableAwsNetworkPerformanceMetricSubscriptionRequest":{ + "type":"structure", + "members":{ + "Source":{ + "shape":"String", + "documentation":"

The source Region or Availability Zone that the metric subscription is disabled for. For example, us-east-1.

" + }, + "Destination":{ + "shape":"String", + "documentation":"

The target Region or Availability Zone that the metric subscription is disabled for. For example, eu-north-1.

" + }, + "Metric":{ + "shape":"MetricType", + "documentation":"

The metric used for the disabled subscription.

" + }, + "Statistic":{ + "shape":"StatisticType", + "documentation":"

The statistic used for the disabled subscription.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DisableAwsNetworkPerformanceMetricSubscriptionResult":{ + "type":"structure", + "members":{ + "Output":{ + "shape":"Boolean", + "documentation":"

Indicates whether the unsubscribe action was successful.

", + "locationName":"output" + } + } + }, "DisableEbsEncryptionByDefaultRequest":{ "type":"structure", "members":{ @@ -22166,10 +24504,7 @@ }, "DisableTransitGatewayRouteTablePropagationRequest":{ "type":"structure", - "required":[ - "TransitGatewayRouteTableId", - "TransitGatewayAttachmentId" - ], + "required":["TransitGatewayRouteTableId"], "members":{ "TransitGatewayRouteTableId":{ "shape":"TransitGatewayRouteTableId", @@ -22182,6 +24517,10 @@ "DryRun":{ "shape":"Boolean", "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "TransitGatewayRouteTableAnnouncementId":{ + "shape":"TransitGatewayRouteTableAnnouncementId", + "documentation":"

The ID of the route table announcement.

" } } }, @@ -22467,6 +24806,37 @@ } } }, + "DisassociateTransitGatewayPolicyTableRequest":{ + "type":"structure", + "required":[ + "TransitGatewayPolicyTableId", + "TransitGatewayAttachmentId" + ], + "members":{ + "TransitGatewayPolicyTableId":{ + "shape":"TransitGatewayPolicyTableId", + "documentation":"

The ID of the disassociated policy table.

" + }, + "TransitGatewayAttachmentId":{ + "shape":"TransitGatewayAttachmentId", + "documentation":"

The ID of the transit gateway attachment to disassociate from the policy table.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "DisassociateTransitGatewayPolicyTableResult":{ + "type":"structure", + "members":{ + "Association":{ + "shape":"TransitGatewayPolicyTableAssociation", + "documentation":"

Returns details about the transit gateway policy table disassociation.

", + "locationName":"association" + } + } + }, "DisassociateTransitGatewayRouteTableRequest":{ "type":"structure", "required":[ @@ -22793,6 +25163,13 @@ "max":99.999, "min":0.001 }, + "DynamicRoutingValue":{ + "type":"string", + "enum":[ + "enable", + "disable" + ] + }, "EbsBlockDevice":{ "type":"structure", "members":{ @@ -22823,7 +25200,8 @@ }, "KmsKeyId":{ "shape":"String", - "documentation":"

Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted.

This parameter is only supported on BlockDeviceMapping objects called by RunInstances, RequestSpotFleet, and RequestSpotInstances.

" + "documentation":"

Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted.

This parameter is only supported on BlockDeviceMapping objects called by RunInstances, RequestSpotFleet, and RequestSpotInstances.

", + "locationName":"kmsKeyId" }, "Throughput":{ "shape":"Integer", @@ -23232,6 +25610,31 @@ } }, "ElasticIpAssociationId":{"type":"string"}, + "EnaSrdSpecification":{ + "type":"structure", + "members":{ + "EnaSrdEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether ENA Express is enabled for the network interface.

" + }, + "EnaSrdUdpSpecification":{ + "shape":"EnaSrdUdpSpecification", + "documentation":"

Configures ENA Express for UDP network traffic.

" + } + }, + "documentation":"

ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.

To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.

" + }, + "EnaSrdSupported":{"type":"boolean"}, + "EnaSrdUdpSpecification":{ + "type":"structure", + "members":{ + "EnaSrdUdpEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether UDP traffic uses ENA Express. To specify this setting, you must first enable ENA Express.

" + } + }, + "documentation":"

ENA Express is compatible with both TCP and UDP transport protocols. When it’s enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.

" + }, "EnaSupport":{ "type":"string", "enum":[ @@ -23240,6 +25643,72 @@ "required" ] }, + "EnableAddressTransferRequest":{ + "type":"structure", + "required":[ + "AllocationId", + "TransferAccountId" + ], + "members":{ + "AllocationId":{ + "shape":"AllocationId", + "documentation":"

The allocation ID of an Elastic IP address.

" + }, + "TransferAccountId":{ + "shape":"String", + "documentation":"

The ID of the account that you want to transfer the Elastic IP address to.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "EnableAddressTransferResult":{ + "type":"structure", + "members":{ + "AddressTransfer":{ + "shape":"AddressTransfer", + "documentation":"

An Elastic IP address transfer.

", + "locationName":"addressTransfer" + } + } + }, + "EnableAwsNetworkPerformanceMetricSubscriptionRequest":{ + "type":"structure", + "members":{ + "Source":{ + "shape":"String", + "documentation":"

The source Region or Availability Zone that the metric subscription is enabled for. For example, us-east-1.

" + }, + "Destination":{ + "shape":"String", + "documentation":"

The target Region or Availability Zone that the metric subscription is enabled for. For example, eu-west-1.

" + }, + "Metric":{ + "shape":"MetricType", + "documentation":"

The metric used for the enabled subscription.

" + }, + "Statistic":{ + "shape":"StatisticType", + "documentation":"

The statistic used for the enabled subscription.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "EnableAwsNetworkPerformanceMetricSubscriptionResult":{ + "type":"structure", + "members":{ + "Output":{ + "shape":"Boolean", + "documentation":"

Indicates whether the subscribe action was successful.

", + "locationName":"output" + } + } + }, "EnableEbsEncryptionByDefaultRequest":{ "type":"structure", "members":{ @@ -23520,7 +25989,7 @@ }, "DeprecateAt":{ "shape":"MillisecondDateTime", - "documentation":"

The date and time to deprecate the AMI, in UTC, in the following format: YYYY-MM-DDTHH:MM:SSZ. If you specify a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

You can’t specify a date in the past. The upper limit for DeprecateAt is 10 years from now.

" + "documentation":"

The date and time to deprecate the AMI, in UTC, in the following format: YYYY-MM-DDTHH:MM:SSZ. If you specify a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

You can’t specify a date in the past. The upper limit for DeprecateAt is 10 years from now, except for public AMIs, where the upper limit is 2 years from the creation date.

" }, "DryRun":{ "shape":"Boolean", @@ -23562,6 +26031,25 @@ } } }, + "EnableReachabilityAnalyzerOrganizationSharingRequest":{ + "type":"structure", + "members":{ + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "EnableReachabilityAnalyzerOrganizationSharingResult":{ + "type":"structure", + "members":{ + "ReturnValue":{ + "shape":"Boolean", + "documentation":"

Returns true if the request succeeds; otherwise, returns an error.

", + "locationName":"returnValue" + } + } + }, "EnableSerialConsoleAccessRequest":{ "type":"structure", "members":{ @@ -23583,10 +26071,7 @@ }, "EnableTransitGatewayRouteTablePropagationRequest":{ "type":"structure", - "required":[ - "TransitGatewayRouteTableId", - "TransitGatewayAttachmentId" - ], + "required":["TransitGatewayRouteTableId"], "members":{ "TransitGatewayRouteTableId":{ "shape":"TransitGatewayRouteTableId", @@ -23599,6 +26084,10 @@ "DryRun":{ "shape":"Boolean", "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "TransitGatewayRouteTableAnnouncementId":{ + "shape":"TransitGatewayRouteTableAnnouncementId", + "documentation":"

The ID of the transit gateway route table announcement.

" } } }, @@ -23766,7 +26255,7 @@ }, "EventSubType":{ "shape":"String", - "documentation":"

The event.

error events:

  • iamFleetRoleInvalid - The EC2 Fleet or Spot Fleet does not have the required permissions either to launch or terminate an instance.

  • allLaunchSpecsTemporarilyBlacklisted - None of the configurations are valid, and several attempts to launch instances have failed. For more information, see the description of the event.

  • spotInstanceCountLimitExceeded - You've reached the limit on the number of Spot Instances that you can launch.

  • spotFleetRequestConfigurationInvalid - The configuration is not valid. For more information, see the description of the event.

fleetRequestChange events:

  • active - The EC2 Fleet or Spot Fleet request has been validated and Amazon EC2 is attempting to maintain the target number of running instances.

  • cancelled - The EC2 Fleet or Spot Fleet request is canceled and has no running instances. The EC2 Fleet or Spot Fleet will be deleted two days after its instances are terminated.

  • cancelled_running - The EC2 Fleet or Spot Fleet request is canceled and does not launch additional instances. Its existing instances continue to run until they are interrupted or terminated. The request remains in this state until all instances are interrupted or terminated.

  • cancelled_terminating - The EC2 Fleet or Spot Fleet request is canceled and its instances are terminating. The request remains in this state until all instances are terminated.

  • expired - The EC2 Fleet or Spot Fleet request has expired. If the request was created with TerminateInstancesWithExpiration set, a subsequent terminated event indicates that the instances are terminated.

  • modify_in_progress - The EC2 Fleet or Spot Fleet request is being modified. The request remains in this state until the modification is fully processed.

  • modify_succeeded - The EC2 Fleet or Spot Fleet request was modified.

  • submitted - The EC2 Fleet or Spot Fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of instances.

  • progress - The EC2 Fleet or Spot Fleet request is in the process of being fulfilled.

instanceChange events:

  • launched - A new instance was launched.

  • terminated - An instance was terminated by the user.

  • termination_notified - An instance termination notification was sent when a Spot Instance was terminated by Amazon EC2 during scale-down, when the target capacity of the fleet was modified down, for example, from a target capacity of 4 to a target capacity of 3.

Information events:

  • fleetProgressHalted - The price in every launch specification is not valid because it is below the Spot price (all the launch specifications have produced launchSpecUnusable events). A launch specification might become valid if the Spot price changes.

  • launchSpecTemporarilyBlacklisted - The configuration is not valid and several attempts to launch instances have failed. For more information, see the description of the event.

  • launchSpecUnusable - The price in a launch specification is not valid because it is below the Spot price.

  • registerWithLoadBalancersFailed - An attempt to register instances with load balancers failed. For more information, see the description of the event.

", + "documentation":"

The event.

error events:

  • iamFleetRoleInvalid - The EC2 Fleet or Spot Fleet does not have the required permissions either to launch or terminate an instance.

  • allLaunchSpecsTemporarilyBlacklisted - None of the configurations are valid, and several attempts to launch instances have failed. For more information, see the description of the event.

  • spotInstanceCountLimitExceeded - You've reached the limit on the number of Spot Instances that you can launch.

  • spotFleetRequestConfigurationInvalid - The configuration is not valid. For more information, see the description of the event.

fleetRequestChange events:

  • active - The EC2 Fleet or Spot Fleet request has been validated and Amazon EC2 is attempting to maintain the target number of running instances.

  • deleted (EC2 Fleet) / cancelled (Spot Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is canceled and has no running instances. The EC2 Fleet or Spot Fleet will be deleted two days after its instances are terminated.

  • deleted_running (EC2 Fleet) / cancelled_running (Spot Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is canceled and does not launch additional instances. Its existing instances continue to run until they are interrupted or terminated. The request remains in this state until all instances are interrupted or terminated.

  • deleted_terminating (EC2 Fleet) / cancelled_terminating (Spot Fleet) - The EC2 Fleet is deleted or the Spot Fleet request is canceled and its instances are terminating. The request remains in this state until all instances are terminated.

  • expired - The EC2 Fleet or Spot Fleet request has expired. If the request was created with TerminateInstancesWithExpiration set, a subsequent terminated event indicates that the instances are terminated.

  • modify_in_progress - The EC2 Fleet or Spot Fleet request is being modified. The request remains in this state until the modification is fully processed.

  • modify_succeeded - The EC2 Fleet or Spot Fleet request was modified.

  • submitted - The EC2 Fleet or Spot Fleet request is being evaluated and Amazon EC2 is preparing to launch the target number of instances.

  • progress - The EC2 Fleet or Spot Fleet request is in the process of being fulfilled.

instanceChange events:

  • launched - A new instance was launched.

  • terminated - An instance was terminated by the user.

  • termination_notified - An instance termination notification was sent when a Spot Instance was terminated by Amazon EC2 during scale-down, when the target capacity of the fleet was modified down, for example, from a target capacity of 4 to a target capacity of 3.

Information events:

  • fleetProgressHalted - The price in every launch specification is not valid because it is below the Spot price (all the launch specifications have produced launchSpecUnusable events). A launch specification might become valid if the Spot price changes.

  • launchSpecTemporarilyBlacklisted - The configuration is not valid and several attempts to launch instances have failed. For more information, see the description of the event.

  • launchSpecUnusable - The price in a launch specification is not valid because it is below the Spot price.

  • registerWithLoadBalancersFailed - An attempt to register instances with load balancers failed. For more information, see the description of the event.

", "locationName":"eventSubType" }, "InstanceId":{ @@ -24062,6 +26551,16 @@ "shape":"AnalysisComponent", "documentation":"

The transit gateway attachment.

", "locationName":"transitGatewayAttachment" + }, + "ComponentAccount":{ + "shape":"ComponentAccount", + "documentation":"

The Amazon Web Services account for the component.

", + "locationName":"componentAccount" + }, + "ComponentRegion":{ + "shape":"ComponentRegion", + "documentation":"

The Region for the component.

", + "locationName":"componentRegion" } }, "documentation":"

Describes an explanation code for an unreachable path. For more information, see Reachability Analyzer explanation codes.

" @@ -24165,7 +26664,7 @@ }, "S3ExportLocation":{ "shape":"ExportTaskS3LocationRequest", - "documentation":"

Information about the destination Amazon S3 bucket. The bucket must exist and grant WRITE and READ_ACP permissions to the Amazon Web Services account vm-import-export@amazon.com.

" + "documentation":"

The Amazon S3 bucket for the destination image. The destination bucket must exist.

" }, "RoleName":{ "shape":"String", @@ -24405,7 +26904,7 @@ }, "S3Bucket":{ "shape":"String", - "documentation":"

The Amazon S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the Amazon Web Services account vm-import-export@amazon.com.

", + "documentation":"

The Amazon S3 bucket for the destination image. The destination bucket must exist and have an access control list (ACL) attached that specifies the Region-specific canonical account ID for the Grantee. For more information about the ACL to your S3 bucket, see Prerequisites in the VM Import/Export User Guide.

", "locationName":"s3Bucket" }, "S3Key":{ @@ -24431,7 +26930,7 @@ }, "S3Bucket":{ "shape":"String", - "documentation":"

The Amazon S3 bucket for the destination image. The destination bucket must exist and grant WRITE and READ_ACP permissions to the Amazon Web Services account vm-import-export@amazon.com.

", + "documentation":"

The Amazon S3 bucket for the destination image. The destination bucket must exist and have an access control list (ACL) attached that specifies the Region-specific canonical account ID for the Grantee. For more information about the ACL to your S3 bucket, see Prerequisites in the VM Import/Export User Guide.

", "locationName":"s3Bucket" }, "S3Prefix":{ @@ -24949,12 +27448,12 @@ "members":{ "InstanceType":{ "shape":"InstanceType", - "documentation":"

The instance type.

If you specify InstanceTypes, you can't specify InstanceRequirements.

", + "documentation":"

The instance type.

If you specify InstanceType, you can't specify InstanceRequirements.

", "locationName":"instanceType" }, "MaxPrice":{ "shape":"String", - "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance.

", + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

", "locationName":"maxPrice" }, "SubnetId":{ @@ -24984,8 +27483,13 @@ }, "InstanceRequirements":{ "shape":"InstanceRequirements", - "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes.

If you specify InstanceRequirements, you can't specify InstanceTypes.

", + "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes.

If you specify InstanceRequirements, you can't specify InstanceType.

", "locationName":"instanceRequirements" + }, + "ImageId":{ + "shape":"ImageId", + "documentation":"

The ID of the AMI. An AMI is required to launch an instance. The AMI ID must be specified here or in the launch template.

", + "locationName":"imageId" } }, "documentation":"

Describes overrides for a launch template.

" @@ -25009,11 +27513,11 @@ "members":{ "InstanceType":{ "shape":"InstanceType", - "documentation":"

The instance type.

If you specify InstanceTypes, you can't specify InstanceRequirements.

" + "documentation":"

The instance type.

If you specify InstanceType, you can't specify InstanceRequirements.

" }, "MaxPrice":{ "shape":"String", - "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance.

" + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

" }, "SubnetId":{ "shape":"SubnetId", @@ -25037,7 +27541,11 @@ }, "InstanceRequirements":{ "shape":"InstanceRequirementsRequest", - "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes.

If you specify InstanceRequirements, you can't specify InstanceTypes.

" + "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes.

If you specify InstanceRequirements, you can't specify InstanceType.

" + }, + "ImageId":{ + "shape":"ImageId", + "documentation":"

The ID of the AMI. An AMI is required to launch an instance. The AMI ID must be specified here or in the launch template.

" } }, "documentation":"

Describes overrides for a launch template.

" @@ -25047,12 +27555,12 @@ "members":{ "LaunchTemplateId":{ "shape":"String", - "documentation":"

The ID of the launch template. If you specify the template ID, you can't specify the template name.

", + "documentation":"

The ID of the launch template.

You must specify the LaunchTemplateId or the LaunchTemplateName, but not both.

", "locationName":"launchTemplateId" }, "LaunchTemplateName":{ "shape":"LaunchTemplateName", - "documentation":"

The name of the launch template. If you specify the template name, you can't specify the template ID.

", + "documentation":"

The name of the launch template.

You must specify the LaunchTemplateName or the LaunchTemplateId, but not both.

", "locationName":"launchTemplateName" }, "Version":{ @@ -25061,25 +27569,25 @@ "locationName":"version" } }, - "documentation":"

Describes the Amazon EC2 launch template and the launch template version that can be used by a Spot Fleet request to configure Amazon EC2 instances. For information about launch templates, see Launching an instance from a launch template in the Amazon EC2 User Guide for Linux Instances.

" + "documentation":"

The Amazon EC2 launch template that can be used by a Spot Fleet to configure Amazon EC2 instances. You must specify either the ID or name of the launch template in the request, but not both.

For information about launch templates, see Launch an instance from a launch template in the Amazon EC2 User Guide.

" }, "FleetLaunchTemplateSpecificationRequest":{ "type":"structure", "members":{ "LaunchTemplateId":{ "shape":"LaunchTemplateId", - "documentation":"

The ID of the launch template. If you specify the template ID, you can't specify the template name.

" + "documentation":"

The ID of the launch template.

You must specify the LaunchTemplateId or the LaunchTemplateName, but not both.

" }, "LaunchTemplateName":{ "shape":"LaunchTemplateName", - "documentation":"

The name of the launch template. If you specify the template name, you can't specify the template ID.

" + "documentation":"

The name of the launch template.

You must specify the LaunchTemplateName or the LaunchTemplateId, but not both.

" }, "Version":{ "shape":"String", "documentation":"

The launch template version number, $Latest, or $Default. You must specify a value, otherwise the request fails.

If the value is $Latest, Amazon EC2 uses the latest version of the launch template.

If the value is $Default, Amazon EC2 uses the default version of the launch template.

" } }, - "documentation":"

Describes the Amazon EC2 launch template and the launch template version that can be used by an EC2 Fleet to configure Amazon EC2 instances. For information about launch templates, see Launching an instance from a launch template in the Amazon EC2 User Guide.

" + "documentation":"

The Amazon EC2 launch template that can be used by an EC2 Fleet to configure Amazon EC2 instances. You must specify either the ID or name of the launch template in the request, but not both.

For information about launch templates, see Launch an instance from a launch template in the Amazon EC2 User Guide.

" }, "FleetOnDemandAllocationStrategy":{ "type":"string", @@ -25189,9 +27697,14 @@ }, "DeliverLogsPermissionArn":{ "shape":"String", - "documentation":"

The ARN of the IAM role that posts logs to CloudWatch Logs.

", + "documentation":"

The ARN of the IAM role allows the service to publish logs to CloudWatch Logs.

", "locationName":"deliverLogsPermissionArn" }, + "DeliverCrossAccountRole":{ + "shape":"String", + "documentation":"

The ARN of the IAM role that allows the service to publish flow logs across accounts.

", + "locationName":"deliverCrossAccountRole" + }, "DeliverLogsStatus":{ "shape":"String", "documentation":"

The status of the logs delivery (SUCCESS | FAILED).

", @@ -25199,7 +27712,7 @@ }, "FlowLogId":{ "shape":"String", - "documentation":"

The flow log ID.

", + "documentation":"

The ID of the flow log.

", "locationName":"flowLogId" }, "FlowLogStatus":{ @@ -25214,7 +27727,7 @@ }, "ResourceId":{ "shape":"String", - "documentation":"

The ID of the resource on which the flow log was created.

", + "documentation":"

The ID of the resource being monitored.

", "locationName":"resourceId" }, "TrafficType":{ @@ -25224,12 +27737,12 @@ }, "LogDestinationType":{ "shape":"LogDestinationType", - "documentation":"

The type of destination to which the flow log data is published. Flow log data can be published to CloudWatch Logs or Amazon S3.

", + "documentation":"

The type of destination for the flow log data.

", "locationName":"logDestinationType" }, "LogDestination":{ "shape":"String", - "documentation":"

The destination to which the flow log data is published. Flow log data can be published to an CloudWatch Logs log group or an Amazon S3 bucket. If the flow log publishes to CloudWatch Logs, this element indicates the Amazon Resource Name (ARN) of the CloudWatch Logs log group to which the data is published. If the flow log publishes to Amazon S3, this element indicates the ARN of the Amazon S3 bucket to which the data is published.

", + "documentation":"

The Amazon Resource Name (ARN) of the destination for the flow log data.

", "locationName":"logDestination" }, "LogFormat":{ @@ -25282,7 +27795,9 @@ "enum":[ "VPC", "Subnet", - "NetworkInterface" + "NetworkInterface", + "TransitGateway", + "TransitGatewayAttachment" ] }, "FpgaDeviceCount":{"type":"integer"}, @@ -25589,6 +28104,51 @@ } } }, + "GetAwsNetworkPerformanceDataRequest":{ + "type":"structure", + "members":{ + "DataQueries":{ + "shape":"DataQueries", + "documentation":"

A list of network performance data queries.

", + "locationName":"DataQuery" + }, + "StartTime":{ + "shape":"MillisecondDateTime", + "documentation":"

The starting time for the performance data request. The starting time must be formatted as yyyy-mm-ddThh:mm:ss. For example, 2022-06-10T12:00:00.000Z.

" + }, + "EndTime":{ + "shape":"MillisecondDateTime", + "documentation":"

The ending time for the performance data request. The end time must be formatted as yyyy-mm-ddThh:mm:ss. For example, 2022-06-12T12:00:00.000Z.

" + }, + "MaxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "GetAwsNetworkPerformanceDataResult":{ + "type":"structure", + "members":{ + "DataResponses":{ + "shape":"DataResponses", + "documentation":"

The list of data responses.

", + "locationName":"dataResponseSet" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", + "locationName":"nextToken" + } + } + }, "GetCapacityReservationUsageRequest":{ "type":"structure", "required":["CapacityReservationId"], @@ -26224,7 +28784,10 @@ "shape":"IpamResourceType", "documentation":"

The resource type.

" }, - "ResourceTag":{"shape":"RequestIpamResourceTag"}, + "ResourceTag":{ + "shape":"RequestIpamResourceTag", + "documentation":"

The resource tag.

" + }, "ResourceOwner":{ "shape":"String", "documentation":"

The ID of the Amazon Web Services account that owns the resource.

" @@ -26744,6 +29307,85 @@ } } }, + "GetTransitGatewayPolicyTableAssociationsRequest":{ + "type":"structure", + "required":["TransitGatewayPolicyTableId"], + "members":{ + "TransitGatewayPolicyTableId":{ + "shape":"TransitGatewayPolicyTableId", + "documentation":"

The ID of the transit gateway policy table.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

The filters associated with the transit gateway policy table.

", + "locationName":"Filter" + }, + "MaxResults":{ + "shape":"TransitGatewayMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "GetTransitGatewayPolicyTableAssociationsResult":{ + "type":"structure", + "members":{ + "Associations":{ + "shape":"TransitGatewayPolicyTableAssociationList", + "documentation":"

Returns details about the transit gateway policy table association.

", + "locationName":"associations" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

", + "locationName":"nextToken" + } + } + }, + "GetTransitGatewayPolicyTableEntriesRequest":{ + "type":"structure", + "required":["TransitGatewayPolicyTableId"], + "members":{ + "TransitGatewayPolicyTableId":{ + "shape":"TransitGatewayPolicyTableId", + "documentation":"

The ID of the transit gateway policy table.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

The filters associated with the transit gateway policy table.

", + "locationName":"Filter" + }, + "MaxResults":{ + "shape":"TransitGatewayMaxResults", + "documentation":"

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next page of results.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "GetTransitGatewayPolicyTableEntriesResult":{ + "type":"structure", + "members":{ + "TransitGatewayPolicyTableEntries":{ + "shape":"TransitGatewayPolicyTableEntryList", + "documentation":"

The entries for the transit gateway policy table.

", + "locationName":"transitGatewayPolicyTableEntries" + } + } + }, "GetTransitGatewayPrefixListReferencesRequest":{ "type":"structure", "required":["TransitGatewayRouteTableId"], @@ -26870,6 +29512,64 @@ } } }, + "GetVerifiedAccessEndpointPolicyRequest":{ + "type":"structure", + "required":["VerifiedAccessEndpointId"], + "members":{ + "VerifiedAccessEndpointId":{ + "shape":"VerifiedAccessEndpointId", + "documentation":"

The ID of the Amazon Web Services Verified Access endpoint.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "GetVerifiedAccessEndpointPolicyResult":{ + "type":"structure", + "members":{ + "PolicyEnabled":{ + "shape":"Boolean", + "documentation":"

The status of the Verified Access policy.

", + "locationName":"policyEnabled" + }, + "PolicyDocument":{ + "shape":"String", + "documentation":"

The Amazon Web Services Verified Access policy document.

", + "locationName":"policyDocument" + } + } + }, + "GetVerifiedAccessGroupPolicyRequest":{ + "type":"structure", + "required":["VerifiedAccessGroupId"], + "members":{ + "VerifiedAccessGroupId":{ + "shape":"VerifiedAccessGroupId", + "documentation":"

The ID of the Amazon Web Services Verified Access group.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "GetVerifiedAccessGroupPolicyResult":{ + "type":"structure", + "members":{ + "PolicyEnabled":{ + "shape":"Boolean", + "documentation":"

The status of the Verified Access policy.

", + "locationName":"policyEnabled" + }, + "PolicyDocument":{ + "shape":"String", + "documentation":"

The Amazon Web Services Verified Access policy document.

", + "locationName":"policyDocument" + } + } + }, "GetVpnConnectionDeviceSampleConfigurationRequest":{ "type":"structure", "required":[ @@ -27687,7 +30387,7 @@ }, "PlatformDetails":{ "shape":"String", - "documentation":"

The platform details associated with the billing code of the AMI. For more information, see Understanding AMI billing in the Amazon Elastic Compute Cloud User Guide.

", + "documentation":"

The platform details associated with the billing code of the AMI. For more information, see Understand AMI billing information in the Amazon Elastic Compute Cloud User Guide.

", "locationName":"platformDetails" }, "UsageOperation":{ @@ -27784,6 +30484,11 @@ "shape":"String", "documentation":"

The date and time to deprecate the AMI, in UTC, in the following format: YYYY-MM-DDTHH:MM:SSZ. If you specified a value for seconds, Amazon EC2 rounds the seconds to the nearest minute.

", "locationName":"deprecationTime" + }, + "ImdsSupport":{ + "shape":"ImdsSupportValues", + "documentation":"

If v2.0, it indicates that IMDSv2 is specified in the AMI. Instances launched from this AMI will have HttpTokens automatically set to required so that, by default, the instance requires that IMDSv2 is used when requesting instance metadata. In addition, HttpPutResponseHopLimit is set to 2. For more information, see Configure the AMI in the Amazon Elastic Compute Cloud User Guide.

", + "locationName":"imdsSupport" } }, "documentation":"

Describes an image.

" @@ -27848,8 +30553,13 @@ }, "LastLaunchedTime":{ "shape":"AttributeValue", - "documentation":"

The date and time, in ISO 8601 date-time format, when the AMI was last used to launch an EC2 instance. When the AMI is used, there is a 24-hour delay before that usage is reported.

lastLaunchedTime data is available starting April 2017.

", + "documentation":"

The date and time, in ISO 8601 date-time format, when the AMI was last used to launch an EC2 instance. When the AMI is used to launch an instance, there is a 24-hour delay before that usage is reported.

lastLaunchedTime data is available starting April 2017.

", "locationName":"lastLaunchedTime" + }, + "ImdsSupport":{ + "shape":"AttributeValue", + "documentation":"

If v2.0, it indicates that IMDSv2 is specified in the AMI. Instances launched from this AMI will have HttpTokens automatically set to required so that, by default, the instance requires that IMDSv2 is used when requesting instance metadata. In addition, HttpPutResponseHopLimit is set to 2. For more information, see Configure the AMI in the Amazon Elastic Compute Cloud User Guide.

", + "locationName":"imdsSupport" } }, "documentation":"

Describes an image attribute.

" @@ -27867,7 +30577,8 @@ "bootMode", "tpmSupport", "uefiData", - "lastLaunchedTime" + "lastLaunchedTime", + "imdsSupport" ] }, "ImageDiskContainer":{ @@ -27987,6 +30698,10 @@ "ramdisk" ] }, + "ImdsSupportValues":{ + "type":"string", + "enum":["v2.0"] + }, "ImportClientVpnClientCertificateRevocationListRequest":{ "type":"structure", "required":[ @@ -28095,7 +30810,7 @@ }, "LicenseType":{ "shape":"String", - "documentation":"

The license type to be used for the Amazon Machine Image (AMI) after importing.

By default, we detect the source-system operating system (OS) and apply the appropriate license. Specify AWS to replace the source-system license with an Amazon Web Services license, if appropriate. Specify BYOL to retain the source-system license, if appropriate.

To use BYOL, you must have existing licenses with rights to use these licenses in a third party cloud, such as Amazon Web Services. For more information, see Prerequisites in the VM Import/Export User Guide.

" + "documentation":"

The license type to be used for the Amazon Machine Image (AMI) after importing.

Specify AWS to replace the source-system license with an Amazon Web Services license or BYOL to retain the source-system license. Leaving this parameter undefined is the same as choosing AWS when importing a Windows Server operating system, and the same as choosing BYOL when importing a Windows client operating system (such as Windows 10) or a Linux operating system.

To use BYOL, you must have existing licenses with rights to use these licenses in a third party cloud, such as Amazon Web Services. For more information, see Prerequisites in the VM Import/Export User Guide.

" }, "Platform":{ "shape":"String", @@ -29292,7 +32007,7 @@ }, "CpuCredits":{ "shape":"String", - "documentation":"

The credit option for CPU usage of the instance. Valid values are standard and unlimited.

", + "documentation":"

The credit option for CPU usage of the instance.

Valid values: standard | unlimited

", "locationName":"cpuCredits" } }, @@ -29321,7 +32036,7 @@ }, "CpuCredits":{ "shape":"String", - "documentation":"

The credit option for CPU usage of the instance. Valid values are standard and unlimited.

T3 instances with host tenancy do not support the unlimited CPU credit option.

" + "documentation":"

The credit option for CPU usage of the instance.

Valid values: standard | unlimited

T3 instances with host tenancy do not support the unlimited CPU credit option.

" } }, "documentation":"

Describes the credit option for CPU usage of a burstable performance instance.

" @@ -29767,7 +32482,7 @@ "members":{ "HttpTokens":{ "shape":"HttpTokensState", - "documentation":"

The state of token usage for your instance metadata requests.

If the state is optional, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned.

If the state is required, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.

Default: optional

" + "documentation":"

The state of token usage for your instance metadata requests.

If the state is optional, you can choose to retrieve instance metadata with or without a session token on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the version 2.0 role credentials are returned.

If the state is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.

Default: optional

" }, "HttpPutResponseHopLimit":{ "shape":"Integer", @@ -29798,7 +32513,7 @@ }, "HttpTokens":{ "shape":"HttpTokensState", - "documentation":"

The state of token usage for your instance metadata requests.

If the state is optional, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned.

If the state is required, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credential always returns the version 2.0 credentials; the version 1.0 credentials are not available.

Default: optional

", + "documentation":"

The state of token usage for your instance metadata requests.

If the state is optional, you can choose to retrieve instance metadata with or without a session token on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the version 2.0 role credentials are returned.

If the state is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.

Default: optional

", "locationName":"httpTokens" }, "HttpPutResponseHopLimit":{ @@ -29888,12 +32603,12 @@ }, "Groups":{ "shape":"GroupIdentifierList", - "documentation":"

One or more security groups.

", + "documentation":"

The security groups.

", "locationName":"groupSet" }, "Ipv6Addresses":{ "shape":"InstanceIpv6AddressList", - "documentation":"

One or more IPv6 addresses associated with the network interface.

", + "documentation":"

The IPv6 addresses associated with the network interface.

", "locationName":"ipv6AddressesSet" }, "MacAddress":{ @@ -29923,7 +32638,7 @@ }, "PrivateIpAddresses":{ "shape":"InstancePrivateIpAddressList", - "documentation":"

One or more private IPv4 addresses associated with the network interface.

", + "documentation":"

The private IPv4 addresses associated with the network interface.

", "locationName":"privateIpAddressesSet" }, "SourceDestCheck":{ @@ -30073,7 +32788,7 @@ }, "Ipv6Addresses":{ "shape":"InstanceIpv6AddressList", - "documentation":"

One or more IPv6 addresses to assign to the network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch.

", + "documentation":"

The IPv6 addresses to assign to the network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you've specified a minimum number of instances to launch.

", "locationName":"ipv6AddressesSet", "queryName":"Ipv6Addresses" }, @@ -30089,7 +32804,7 @@ }, "PrivateIpAddresses":{ "shape":"PrivateIpAddressSpecificationList", - "documentation":"

One or more private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary. You cannot specify this option if you're launching more than one instance in a RunInstances request.

", + "documentation":"

The private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary. You cannot specify this option if you're launching more than one instance in a RunInstances request.

", "locationName":"privateIpAddressesSet", "queryName":"PrivateIpAddresses" }, @@ -30105,7 +32820,7 @@ }, "AssociateCarrierIpAddress":{ "shape":"Boolean", - "documentation":"

Indicates whether to assign a carrier IP address to the network interface.

You can only assign a carrier IP address to a network interface that is in a subnet in a Wavelength Zone. For more information about carrier IP addresses, see Carrier IP addresses in the Amazon Web Services Wavelength Developer Guide.

" + "documentation":"

Indicates whether to assign a carrier IP address to the network interface.

You can only assign a carrier IP address to a network interface that is in a subnet in a Wavelength Zone. For more information about carrier IP addresses, see Carrier IP address in the Amazon Web Services Wavelength Developer Guide.

" }, "InterfaceType":{ "shape":"String", @@ -30117,7 +32832,7 @@ }, "Ipv4Prefixes":{ "shape":"Ipv4PrefixList", - "documentation":"

One or more IPv4 delegated prefixes to be assigned to the network interface. You cannot use this option if you use the Ipv4PrefixCount option.

", + "documentation":"

The IPv4 delegated prefixes to be assigned to the network interface. You cannot use this option if you use the Ipv4PrefixCount option.

", "locationName":"Ipv4Prefix" }, "Ipv4PrefixCount":{ @@ -30126,7 +32841,7 @@ }, "Ipv6Prefixes":{ "shape":"Ipv6PrefixList", - "documentation":"

One or more IPv6 delegated prefixes to be assigned to the network interface. You cannot use this option if you use the Ipv6PrefixCount option.

", + "documentation":"

The IPv6 delegated prefixes to be assigned to the network interface. You cannot use this option if you use the Ipv6PrefixCount option.

", "locationName":"Ipv6Prefix" }, "Ipv6PrefixCount":{ @@ -30201,7 +32916,7 @@ }, "ExcludedInstanceTypes":{ "shape":"ExcludedInstanceTypeSet", - "documentation":"

The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.

Default: No excluded instance types

", + "documentation":"

The instance types to exclude.

You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.

If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes.

Default: No excluded instance types

", "locationName":"excludedInstanceTypeSet" }, "InstanceGenerations":{ @@ -30211,12 +32926,12 @@ }, "SpotMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

To turn off price protection, specify a high value, such as 999999.

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

Default: 100

", + "documentation":"

The price protection threshold for Spot Instances. This is the maximum you’ll pay for a Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

To turn off price protection, specify a high value, such as 999999.

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

Default: 100

", "locationName":"spotMaxPricePercentageOverLowestPrice" }, "OnDemandMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

To turn off price protection, specify a high value, such as 999999.

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

Default: 20

", + "documentation":"

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

To turn off price protection, specify a high value, such as 999999.

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

Default: 20

", "locationName":"onDemandMaxPricePercentageOverLowestPrice" }, "BareMetal":{ @@ -30246,7 +32961,7 @@ }, "LocalStorageTypes":{ "shape":"LocalStorageTypeSet", - "documentation":"

The type of local storage that is required.

  • For instance types with hard disk drive (HDD) storage, specify hdd.

  • For instance types with solid state drive (SDD) storage, specify sdd.

Default: hdd and sdd

", + "documentation":"

The type of local storage that is required.

  • For instance types with hard disk drive (HDD) storage, specify hdd.

  • For instance types with solid state drive (SSD) storage, specify ssd.

Default: hdd and ssd

", "locationName":"localStorageTypeSet" }, "TotalLocalStorageGB":{ @@ -30276,16 +32991,26 @@ }, "AcceleratorNames":{ "shape":"AcceleratorNameSet", - "documentation":"

The accelerators that must be on the instance type.

  • For instance types with NVIDIA A100 GPUs, specify a100.

  • For instance types with NVIDIA V100 GPUs, specify v100.

  • For instance types with NVIDIA K80 GPUs, specify k80.

  • For instance types with NVIDIA T4 GPUs, specify t4.

  • For instance types with NVIDIA M60 GPUs, specify m60.

  • For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.

  • For instance types with Xilinx VU9P FPGAs, specify vu9p.

Default: Any accelerator

", + "documentation":"

The accelerators that must be on the instance type.

  • For instance types with NVIDIA A100 GPUs, specify a100.

  • For instance types with NVIDIA V100 GPUs, specify v100.

  • For instance types with NVIDIA K80 GPUs, specify k80.

  • For instance types with NVIDIA T4 GPUs, specify t4.

  • For instance types with NVIDIA M60 GPUs, specify m60.

  • For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.

  • For instance types with Xilinx VU9P FPGAs, specify vu9p.

  • For instance types with Amazon Web Services Inferentia chips, specify inferentia.

  • For instance types with NVIDIA GRID K520 GPUs, specify k520.

Default: Any accelerator

", "locationName":"acceleratorNameSet" }, "AcceleratorTotalMemoryMiB":{ "shape":"AcceleratorTotalMemoryMiB", "documentation":"

The minimum and maximum amount of total accelerator memory, in MiB.

Default: No minimum or maximum limits

", "locationName":"acceleratorTotalMemoryMiB" + }, + "NetworkBandwidthGbps":{ + "shape":"NetworkBandwidthGbps", + "documentation":"

The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).

Default: No minimum or maximum limits

", + "locationName":"networkBandwidthGbps" + }, + "AllowedInstanceTypes":{ + "shape":"AllowedInstanceTypeSet", + "documentation":"

The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.

You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types.

If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.

Default: All instance types

", + "locationName":"allowedInstanceTypeSet" } }, - "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

When you specify multiple parameters, you get instance types that satisfy all of the specified parameters. If you specify multiple values for a parameter, you get instance types that satisfy any of the specified values.

You must specify VCpuCount and MemoryMiB. All other parameters are optional. Any unspecified optional parameter is set to its default.

For more information, see Attribute-based instance type selection for EC2 Fleet, Attribute-based instance type selection for Spot Fleet, and Spot placement score in the Amazon EC2 User Guide.

" + "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.

To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:

  • AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.

  • ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes.

You must specify VCpuCount and MemoryMiB. All other attributes are optional. Any unspecified optional attribute is set to its default.

For more information, see Attribute-based instance type selection for EC2 Fleet, Attribute-based instance type selection for Spot Fleet, and Spot placement score in the Amazon EC2 User Guide.

" }, "InstanceRequirementsRequest":{ "type":"structure", @@ -30313,7 +33038,7 @@ }, "ExcludedInstanceTypes":{ "shape":"ExcludedInstanceTypeSet", - "documentation":"

The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance family, type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.

Default: No excluded instance types

", + "documentation":"

The instance types to exclude.

You can use strings with one or more wild cards, represented by an asterisk (*), to exclude an instance family, type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

For example, if you specify c5*,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.

If you specify ExcludedInstanceTypes, you can't specify AllowedInstanceTypes.

Default: No excluded instance types

", "locationName":"ExcludedInstanceType" }, "InstanceGenerations":{ @@ -30323,11 +33048,11 @@ }, "SpotMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

The price protection threshold for Spot Instance. This is the maximum you’ll pay for an Spot Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

To turn off price protection, specify a high value, such as 999999.

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

Default: 100

" + "documentation":"

The price protection threshold for Spot Instance. This is the maximum you’ll pay for an Spot Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

To turn off price protection, specify a high value, such as 999999.

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

Default: 100

" }, "OnDemandMaxPricePercentageOverLowestPrice":{ "shape":"Integer", - "documentation":"

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the cheapest M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

To turn off price protection, specify a high value, such as 999999.

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

Default: 20

" + "documentation":"

The price protection threshold for On-Demand Instances. This is the maximum you’ll pay for an On-Demand Instance, expressed as a percentage above the least expensive current generation M, C, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it excludes instance types priced above your threshold.

The parameter accepts an integer, which Amazon EC2 interprets as a percentage.

To turn off price protection, specify a high value, such as 999999.

This parameter is not supported for GetSpotPlacementScores and GetInstanceTypesFromInstanceRequirements.

If you set TargetCapacityUnitType to vcpu or memory-mib, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.

Default: 20

" }, "BareMetal":{ "shape":"BareMetal", @@ -30351,7 +33076,7 @@ }, "LocalStorageTypes":{ "shape":"LocalStorageTypeSet", - "documentation":"

The type of local storage that is required.

  • For instance types with hard disk drive (HDD) storage, specify hdd.

  • For instance types with solid state drive (SDD) storage, specify sdd.

Default: hdd and sdd

", + "documentation":"

The type of local storage that is required.

  • For instance types with hard disk drive (HDD) storage, specify hdd.

  • For instance types with solid state drive (SSD) storage, specify ssd.

Default: hdd and ssd

", "locationName":"LocalStorageType" }, "TotalLocalStorageGB":{ @@ -30378,15 +33103,24 @@ }, "AcceleratorNames":{ "shape":"AcceleratorNameSet", - "documentation":"

The accelerators that must be on the instance type.

  • For instance types with NVIDIA A100 GPUs, specify a100.

  • For instance types with NVIDIA V100 GPUs, specify v100.

  • For instance types with NVIDIA K80 GPUs, specify k80.

  • For instance types with NVIDIA T4 GPUs, specify t4.

  • For instance types with NVIDIA M60 GPUs, specify m60.

  • For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.

  • For instance types with Xilinx VU9P FPGAs, specify vu9p.

Default: Any accelerator

", + "documentation":"

The accelerators that must be on the instance type.

  • For instance types with NVIDIA A100 GPUs, specify a100.

  • For instance types with NVIDIA V100 GPUs, specify v100.

  • For instance types with NVIDIA K80 GPUs, specify k80.

  • For instance types with NVIDIA T4 GPUs, specify t4.

  • For instance types with NVIDIA M60 GPUs, specify m60.

  • For instance types with AMD Radeon Pro V520 GPUs, specify radeon-pro-v520.

  • For instance types with Xilinx VU9P FPGAs, specify vu9p.

  • For instance types with Amazon Web Services Inferentia chips, specify inferentia.

  • For instance types with NVIDIA GRID K520 GPUs, specify k520.

Default: Any accelerator

", "locationName":"AcceleratorName" }, "AcceleratorTotalMemoryMiB":{ "shape":"AcceleratorTotalMemoryMiBRequest", "documentation":"

The minimum and maximum amount of total accelerator memory, in MiB.

Default: No minimum or maximum limits

" + }, + "NetworkBandwidthGbps":{ + "shape":"NetworkBandwidthGbpsRequest", + "documentation":"

The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).

Default: No minimum or maximum limits

" + }, + "AllowedInstanceTypes":{ + "shape":"AllowedInstanceTypeSet", + "documentation":"

The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.

You can use strings with one or more wild cards, represented by an asterisk (*), to allow an instance type, size, or generation. The following are examples: m5.8xlarge, c5*.*, m5a.*, r*, *3*.

For example, if you specify c5*,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify m5a.*, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types.

If you specify AllowedInstanceTypes, you can't specify ExcludedInstanceTypes.

Default: All instance types

", + "locationName":"AllowedInstanceType" } }, - "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

When you specify multiple parameters, you get instance types that satisfy all of the specified parameters. If you specify multiple values for a parameter, you get instance types that satisfy any of the specified values.

You must specify VCpuCount and MemoryMiB. All other parameters are optional. Any unspecified optional parameter is set to its default.

For more information, see Attribute-based instance type selection for EC2 Fleet, Attribute-based instance type selection for Spot Fleet, and Spot placement score in the Amazon EC2 User Guide.

" + "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.

To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:

  • AllowedInstanceTypes - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.

  • ExcludedInstanceTypes - The instance types to exclude from the list, even if they match your specified attributes.

You must specify VCpuCount and MemoryMiB. All other attributes are optional. Any unspecified optional attribute is set to its default.

For more information, see Attribute-based instance type selection for EC2 Fleet, Attribute-based instance type selection for Spot Fleet, and Spot placement score in the Amazon EC2 User Guide.

" }, "InstanceRequirementsWithMetadataRequest":{ "type":"structure", @@ -30418,6 +33152,11 @@ "ExcludeBootVolume":{ "shape":"Boolean", "documentation":"

Excludes the root volume from being snapshotted.

" + }, + "ExcludeDataVolumeIds":{ + "shape":"VolumeIdStringList", + "documentation":"

The IDs of the data (non-root) volumes to exclude from the multi-volume snapshot set. If you specify the ID of the root volume, the request fails. To exclude the root volume, use ExcludeBootVolume.

You can specify up to 40 volume IDs per request.

", + "locationName":"ExcludeDataVolumeId" } }, "documentation":"

The instance details to specify which volumes should be snapshotted.

" @@ -31185,7 +33924,67 @@ "i4i.4xlarge", "i4i.8xlarge", "i4i.16xlarge", - "i4i.32xlarge" + "i4i.32xlarge", + "i4i.metal", + "x2idn.metal", + "x2iedn.metal", + "c7g.medium", + "c7g.large", + "c7g.xlarge", + "c7g.2xlarge", + "c7g.4xlarge", + "c7g.8xlarge", + "c7g.12xlarge", + "c7g.16xlarge", + "mac2.metal", + "c6id.large", + "c6id.xlarge", + "c6id.2xlarge", + "c6id.4xlarge", + "c6id.8xlarge", + "c6id.12xlarge", + "c6id.16xlarge", + "c6id.24xlarge", + "c6id.32xlarge", + "c6id.metal", + "m6id.large", + "m6id.xlarge", + "m6id.2xlarge", + "m6id.4xlarge", + "m6id.8xlarge", + "m6id.12xlarge", + "m6id.16xlarge", + "m6id.24xlarge", + "m6id.32xlarge", + "m6id.metal", + "r6id.large", + "r6id.xlarge", + "r6id.2xlarge", + "r6id.4xlarge", + "r6id.8xlarge", + "r6id.12xlarge", + "r6id.16xlarge", + "r6id.24xlarge", + "r6id.32xlarge", + "r6id.metal", + "r6a.large", + "r6a.xlarge", + "r6a.2xlarge", + "r6a.4xlarge", + "r6a.8xlarge", + "r6a.12xlarge", + "r6a.16xlarge", + "r6a.24xlarge", + "r6a.32xlarge", + "r6a.48xlarge", + "r6a.metal", + "p4de.24xlarge", + "u-3tb1.56xlarge", + "u-18tb1.112xlarge", + "u-24tb1.112xlarge", + "trn1.2xlarge", + "trn1.32xlarge", + "hpc6id.32xlarge" ] }, "InstanceTypeHypervisor":{ @@ -31642,7 +34441,7 @@ }, "ScopeCount":{ "shape":"Integer", - "documentation":"

The number of scopes in the IPAM. The scope quota is 5. For more information on quotas, see Quotas in IPAM in the Amazon VPC IPAM User Guide.

", + "documentation":"

The number of scopes in the IPAM. The scope quota is 5. For more information on quotas, see Quotas in IPAM in the Amazon VPC IPAM User Guide.

", "locationName":"scopeCount" }, "Description":{ @@ -31652,7 +34451,7 @@ }, "OperatingRegions":{ "shape":"IpamOperatingRegionSet", - "documentation":"

The operating Regions for an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

", + "documentation":"

The operating Regions for an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

", "locationName":"operatingRegionSet" }, "State":{ @@ -31666,7 +34465,7 @@ "locationName":"tagSet" } }, - "documentation":"

IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" + "documentation":"

IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across Amazon Web Services Regions and accounts throughout your Amazon Web Services Organization. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.

" }, "IpamAddressHistoryMaxResults":{ "type":"integer", @@ -31708,12 +34507,12 @@ }, "ResourceComplianceStatus":{ "shape":"IpamComplianceStatus", - "documentation":"

The compliance status of a resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "documentation":"

The compliance status of a resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", "locationName":"resourceComplianceStatus" }, "ResourceOverlapStatus":{ "shape":"IpamOverlapStatus", - "documentation":"

The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "documentation":"

The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", "locationName":"resourceOverlapStatus" }, "VpcId":{ @@ -31732,7 +34531,7 @@ "locationName":"sampledEndTime" } }, - "documentation":"

The historical record of a CIDR within an IPAM scope. For more information, see View the history of IP addresses in the Amazon VPC IPAM User Guide.

" + "documentation":"

The historical record of a CIDR within an IPAM scope. For more information, see View the history of IP addresses in the Amazon VPC IPAM User Guide.

" }, "IpamAddressHistoryRecordSet":{ "type":"list", @@ -31802,7 +34601,7 @@ "locationName":"regionName" } }, - "documentation":"

The operating Regions for an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

" + "documentation":"

The operating Regions for an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

" }, "IpamOperatingRegionSet":{ "type":"list", @@ -31869,7 +34668,7 @@ }, "PoolDepth":{ "shape":"Integer", - "documentation":"

The depth of pools in your IPAM pool. The pool depth quota is 10. For more information, see Quotas in IPAM in the Amazon VPC IPAM User Guide.

", + "documentation":"

The depth of pools in your IPAM pool. The pool depth quota is 10. For more information, see Quotas in IPAM in the Amazon VPC IPAM User Guide.

", "locationName":"poolDepth" }, "State":{ @@ -32145,22 +34944,22 @@ }, "IpUsage":{ "shape":"BoxedDouble", - "documentation":"

The IP address space in the IPAM pool that is allocated to this resource. To convert the decimal to a percentage, multiply the decimal by 100.

", + "documentation":"

The percentage of IP address space in use. To convert the decimal to a percentage, multiply the decimal by 100. Note the following:

  • For a resources that are VPCs, this is the percentage of IP address space in the VPC that's taken up by subnet CIDRs.

  • For resources that are subnets, if the subnet has an IPv4 CIDR provisioned to it, this is the percentage of IPv4 address space in the subnet that's in use. If the subnet has an IPv6 CIDR provisioned to it, the percentage of IPv6 address space in use is not represented. The percentage of IPv6 address space in use cannot currently be calculated.

  • For resources that are public IPv4 pools, this is the percentage of IP address space in the pool that's been allocated to Elastic IP addresses (EIPs).

", "locationName":"ipUsage" }, "ComplianceStatus":{ "shape":"IpamComplianceStatus", - "documentation":"

The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "documentation":"

The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", "locationName":"complianceStatus" }, "ManagementState":{ "shape":"IpamManagementState", - "documentation":"

The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "documentation":"

The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", "locationName":"managementState" }, "OverlapStatus":{ "shape":"IpamOverlapStatus", - "documentation":"

The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", + "documentation":"

The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC IPAM User Guide.

", "locationName":"overlapStatus" }, "VpcId":{ @@ -32270,7 +35069,7 @@ "locationName":"tagSet" } }, - "documentation":"

In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.

For more information, see How IPAM works in the Amazon VPC IPAM User Guide.

" + "documentation":"

In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.

For more information, see How IPAM works in the Amazon VPC IPAM User Guide.

" }, "IpamScopeId":{"type":"string"}, "IpamScopeSet":{ @@ -32370,7 +35169,7 @@ "members":{ "Ipv4Prefix":{ "shape":"String", - "documentation":"

One or more IPv4 delegated prefixes assigned to the network interface.

", + "documentation":"

The IPv4 delegated prefixes assigned to the network interface.

", "locationName":"ipv4Prefix" } }, @@ -32519,7 +35318,7 @@ "members":{ "Ipv6Prefix":{ "shape":"String", - "documentation":"

One or more IPv6 delegated prefixes assigned to the network interface.

", + "documentation":"

The IPv6 delegated prefixes assigned to the network interface.

", "locationName":"ipv6Prefix" } }, @@ -33027,7 +35826,7 @@ }, "ThreadsPerCore":{ "shape":"Integer", - "documentation":"

The number of threads per CPU core. To disable multithreading for the instance, specify a value of 1. Otherwise, specify the default value of 2.

" + "documentation":"

The number of threads per CPU core. To disable multithreading for the instance, specify a value of 1. Otherwise, specify the default value of 2.

" } }, "documentation":"

The CPU options for the instance. Both the core count and threads per core must be specified in the request.

" @@ -33355,7 +36154,7 @@ "locationName":"instanceMetadataTags" } }, - "documentation":"

The metadata options for the instance. For more information, see Instance Metadata and User Data in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

The metadata options for the instance. For more information, see Instance metadata and user data in the Amazon Elastic Compute Cloud User Guide.

" }, "LaunchTemplateInstanceMetadataOptionsRequest":{ "type":"structure", @@ -33366,7 +36165,7 @@ }, "HttpPutResponseHopLimit":{ "shape":"Integer", - "documentation":"

The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel.

Default: 1

Possible values: Integers from 1 to 64

" + "documentation":"

The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel.

Default: 1

Possible values: Integers from 1 to 64

" }, "HttpEndpoint":{ "shape":"LaunchTemplateInstanceMetadataEndpointState", @@ -33381,7 +36180,7 @@ "documentation":"

Set to enabled to allow access to instance tags from the instance metadata. Set to disabled to turn off access to instance tags from the instance metadata. For more information, see Work with instance tags using the instance metadata.

Default: disabled

" } }, - "documentation":"

The metadata options for the instance. For more information, see Instance Metadata and User Data in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

The metadata options for the instance. For more information, see Instance metadata and user data in the Amazon Elastic Compute Cloud User Guide.

" }, "LaunchTemplateInstanceMetadataOptionsState":{ "type":"string", @@ -33662,7 +36461,7 @@ }, "SpotPrice":{ "shape":"String", - "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance.

", + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

", "locationName":"spotPrice" }, "SubnetId":{ @@ -33687,7 +36486,7 @@ }, "InstanceRequirements":{ "shape":"InstanceRequirements", - "documentation":"

The instance requirements. When you specify instance requirements, Amazon EC2 will identify instance types with the provided requirements, and then use your On-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of instance types.

If you specify InstanceRequirements, you can't specify InstanceTypes.

", + "documentation":"

The instance requirements. When you specify instance requirements, Amazon EC2 will identify instance types with the provided requirements, and then use your On-Demand and Spot allocation strategies to launch instances from these instance types, in the same way as when you specify a list of instance types.

If you specify InstanceRequirements, you can't specify InstanceType.

", "locationName":"instanceRequirements" } }, @@ -33742,6 +36541,11 @@ "shape":"Integer", "documentation":"

The number of the partition the instance should launch in. Valid only if the placement group strategy is set to partition.

", "locationName":"partitionNumber" + }, + "GroupId":{ + "shape":"PlacementGroupId", + "documentation":"

The Group ID of the placement group. You must specify the Placement Group Group ID to launch an instance in a shared placement group.

", + "locationName":"groupId" } }, "documentation":"

Describes the placement of an instance.

" @@ -33780,6 +36584,10 @@ "PartitionNumber":{ "shape":"Integer", "documentation":"

The number of the partition the instance should launch in. Valid only if the placement group strategy is set to partition.

" + }, + "GroupId":{ + "shape":"PlacementGroupId", + "documentation":"

The Group Id of a placement group. You must specify the Placement Group Group Id to launch an instance in a shared placement group.

" } }, "documentation":"

Describes the placement of an instance.

" @@ -33835,15 +36643,15 @@ "members":{ "LaunchTemplateId":{ "shape":"LaunchTemplateId", - "documentation":"

The ID of the launch template.

" + "documentation":"

The ID of the launch template.

You must specify the LaunchTemplateId or the LaunchTemplateName, but not both.

" }, "LaunchTemplateName":{ "shape":"String", - "documentation":"

The name of the launch template.

" + "documentation":"

The name of the launch template.

You must specify the LaunchTemplateName or the LaunchTemplateId, but not both.

" }, "Version":{ "shape":"String", - "documentation":"

The version number of the launch template.

Default: The default version for the launch template.

" + "documentation":"

The launch template version number, $Latest, or $Default.

If the value is $Latest, Amazon EC2 uses the latest version of the launch template.

If the value is $Default, Amazon EC2 uses the default version of the launch template.

Default: The default version of the launch template.

" } }, "documentation":"

The launch template to use. You must specify either the launch template ID or launch template name in the request, but not both.

" @@ -33853,7 +36661,7 @@ "members":{ "MaxPrice":{ "shape":"String", - "documentation":"

The maximum hourly price you're willing to pay for the Spot Instances.

", + "documentation":"

The maximum hourly price you're willing to pay for the Spot Instances. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.

", "locationName":"maxPrice" }, "SpotInstanceType":{ @@ -33884,7 +36692,7 @@ "members":{ "MaxPrice":{ "shape":"String", - "documentation":"

The maximum hourly price you're willing to pay for the Spot Instances.

" + "documentation":"

The maximum hourly price you're willing to pay for the Spot Instances. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.

" }, "SpotInstanceType":{ "shape":"SpotInstanceType", @@ -33892,11 +36700,11 @@ }, "BlockDurationMinutes":{ "shape":"Integer", - "documentation":"

The required duration for the Spot Instances (also known as Spot blocks), in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360).

" + "documentation":"

Deprecated.

" }, "ValidUntil":{ "shape":"DateTime", - "documentation":"

The end date of the request. For a one-time request, the request remains active until all instances launch, the request is canceled, or this date is reached. If the request is persistent, it remains active until it is canceled or this date and time is reached. The default end date is 7 days from the current date.

" + "documentation":"

The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests.

  • For a persistent request, the request remains active until the ValidUntil date and time is reached. Otherwise, the request remains active until you cancel it.

  • For a one-time request, ValidUntil is not supported. The request remains active until all instances launch or you cancel the request.

Default: 7 days from the current date

" }, "InstanceInterruptionBehavior":{ "shape":"InstanceInterruptionBehavior", @@ -33910,7 +36718,7 @@ "members":{ "ResourceType":{ "shape":"ResourceType", - "documentation":"

The type of resource.

", + "documentation":"

The type of resource to tag.

", "locationName":"resourceType" }, "Tags":{ @@ -33919,7 +36727,7 @@ "locationName":"tagSet" } }, - "documentation":"

The tag specification for the launch template.

" + "documentation":"

The tags specification for the launch template.

" }, "LaunchTemplateTagSpecificationList":{ "type":"list", @@ -33933,7 +36741,7 @@ "members":{ "ResourceType":{ "shape":"ResourceType", - "documentation":"

The type of resource to tag. Currently, the resource types that support tagging on creation are instance, volume, elastic-gpu, network-interface, and spot-instances-request. To tag a resource after it has been created, see CreateTags.

" + "documentation":"

The type of resource to tag.

The Valid Values are all the resource types that can be tagged. However, when creating a launch template, you can specify tags for the following resource types only: instance | volume | elastic-gpu | network-interface | spot-instances-request

To tag a resource after it has been created, see CreateTags.

" }, "Tags":{ "shape":"TagList", @@ -33941,7 +36749,7 @@ "locationName":"Tag" } }, - "documentation":"

The tags specification for the launch template.

" + "documentation":"

The tags specification for the resources that are created during instance launch.

" }, "LaunchTemplateTagSpecificationRequestList":{ "type":"list", @@ -34161,6 +36969,7 @@ "closed" ] }, + "LoadBalancerArn":{"type":"string"}, "LoadBalancersConfig":{ "type":"structure", "members":{ @@ -34316,6 +37125,21 @@ "shape":"String", "documentation":"

The ID of the Amazon Web Services account that owns the local gateway route.

", "locationName":"ownerId" + }, + "SubnetId":{ + "shape":"SubnetId", + "documentation":"

The ID of the subnet.

", + "locationName":"subnetId" + }, + "CoipPoolId":{ + "shape":"CoipPoolId", + "documentation":"

The ID of the customer-owned address pool.

", + "locationName":"coipPoolId" + }, + "NetworkInterfaceId":{ + "shape":"NetworkInterfaceId", + "documentation":"

The ID of the network interface.

", + "locationName":"networkInterfaceId" } }, "documentation":"

Describes a route for a local gateway route table.

" @@ -34374,6 +37198,16 @@ "shape":"TagList", "documentation":"

The tags assigned to the local gateway route table.

", "locationName":"tagSet" + }, + "Mode":{ + "shape":"LocalGatewayRouteTableMode", + "documentation":"

The mode of the local gateway route table.

", + "locationName":"mode" + }, + "StateReason":{ + "shape":"StateReason", + "documentation":"

Information about the state change.

", + "locationName":"stateReason" } }, "documentation":"

Describes a local gateway route table.

" @@ -34385,6 +37219,13 @@ "locationName":"item" } }, + "LocalGatewayRouteTableMode":{ + "type":"string", + "enum":[ + "direct-vpc-routing", + "coip" + ] + }, "LocalGatewayRouteTableSet":{ "type":"list", "member":{ @@ -34676,7 +37517,8 @@ "type":"string", "enum":[ "cloud-watch-logs", - "s3" + "s3", + "kinesis-data-firehose" ] }, "Long":{"type":"long"}, @@ -34751,6 +37593,11 @@ "MaxIpv6AddrPerInterface":{"type":"integer"}, "MaxNetworkInterfaces":{"type":"integer"}, "MaxResults":{"type":"integer"}, + "MaxResultsParam":{ + "type":"integer", + "max":100, + "min":0 + }, "MaximumBandwidthInMbps":{"type":"integer"}, "MaximumEfaInterfaces":{"type":"integer"}, "MaximumIops":{"type":"integer"}, @@ -34836,6 +37683,42 @@ "documentation":"

The minimum and maximum amount of memory, in MiB.

" }, "MemorySize":{"type":"long"}, + "MetricPoint":{ + "type":"structure", + "members":{ + "StartDate":{ + "shape":"MillisecondDateTime", + "documentation":"

The start date for the metric point. The starting date for the metric point. The starting time must be formatted as yyyy-mm-ddThh:mm:ss. For example, 2022-06-10T12:00:00.000Z.

", + "locationName":"startDate" + }, + "EndDate":{ + "shape":"MillisecondDateTime", + "documentation":"

The end date for the metric point. The ending time must be formatted as yyyy-mm-ddThh:mm:ss. For example, 2022-06-12T12:00:00.000Z.

", + "locationName":"endDate" + }, + "Value":{ + "shape":"Float", + "locationName":"value" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of the metric point.

", + "locationName":"status" + } + }, + "documentation":"

Indicates whether the network was healthy or unhealthy at a particular point. The value is aggregated from the startDate to the endDate. Currently only five_minutes is supported.

" + }, + "MetricPoints":{ + "type":"list", + "member":{ + "shape":"MetricPoint", + "locationName":"item" + } + }, + "MetricType":{ + "type":"string", + "enum":["aggregate-latency"] + }, "MillisecondDateTime":{"type":"timestamp"}, "ModifyAddressAttributeRequest":{ "type":"structure", @@ -35367,7 +38250,7 @@ }, "Attribute":{ "shape":"InstanceAttributeName", - "documentation":"

The name of the attribute.

", + "documentation":"

The name of the attribute to modify.

You can modify the following attributes only: disableApiTermination | instanceType | kernel | ramdisk | instanceInitiatedShutdownBehavior | blockDeviceMapping | userData | sourceDestCheck | groupSet | ebsOptimized | sriovNetSupport | enaSupport | nvmeSupport | disableApiStop | enclaveOptions

", "locationName":"attribute" }, "BlockDeviceMappings":{ @@ -35542,6 +38425,7 @@ "members":{ "Event":{ "shape":"InstanceStatusEvent", + "documentation":"

Information about the event.

", "locationName":"event" } } @@ -35626,7 +38510,7 @@ }, "HttpTokens":{ "shape":"HttpTokensState", - "documentation":"

The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is optional.

If the state is optional, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned.

If the state is required, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credential always returns the version 2.0 credentials; the version 1.0 credentials are not available.

" + "documentation":"

The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is optional.

If the state is optional, you can choose to retrieve instance metadata with or without a session token on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid session token, the version 2.0 role credentials are returned.

If the state is required, you must send a session token with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.

" }, "HttpPutResponseHopLimit":{ "shape":"Integer", @@ -35700,6 +38584,10 @@ "HostResourceGroupArn":{ "shape":"String", "documentation":"

The ARN of the host resource group in which to place the instance.

" + }, + "GroupId":{ + "shape":"PlacementGroupId", + "documentation":"

The Group Id of a placement group. You must specify the Placement Group Group Id to launch an instance in a shared placement group.

" } } }, @@ -35751,7 +38639,7 @@ }, "AddAllocationResourceTags":{ "shape":"RequestIpamResourceTagList", - "documentation":"

Add tag allocation rules to a pool. For more information about allocation rules, see Create a top-level pool in the Amazon VPC IPAM User Guide.

", + "documentation":"

Add tag allocation rules to a pool. For more information about allocation rules, see Create a top-level pool in the Amazon VPC IPAM User Guide.

", "locationName":"AddAllocationResourceTag" }, "RemoveAllocationResourceTags":{ @@ -35789,7 +38677,7 @@ }, "AddOperatingRegions":{ "shape":"AddIpamOperatingRegionSet", - "documentation":"

Choose the operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

", + "documentation":"

Choose the operating Regions for the IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.

", "locationName":"AddOperatingRegion" }, "RemoveOperatingRegions":{ @@ -35844,6 +38732,7 @@ "members":{ "IpamResourceCidr":{ "shape":"IpamResourceCidr", + "documentation":"

The CIDR of the resource.

", "locationName":"ipamResourceCidr" } } @@ -35899,11 +38788,11 @@ }, "LaunchTemplateId":{ "shape":"LaunchTemplateId", - "documentation":"

The ID of the launch template. You must specify either the launch template ID or launch template name in the request.

" + "documentation":"

The ID of the launch template.

You must specify either the LaunchTemplateId or the LaunchTemplateName, but not both.

" }, "LaunchTemplateName":{ "shape":"LaunchTemplateName", - "documentation":"

The name of the launch template. You must specify either the launch template ID or launch template name in the request.

" + "documentation":"

The name of the launch template.

You must specify either the LaunchTemplateName or the LaunchTemplateId, but not both.

" }, "DefaultVersion":{ "shape":"String", @@ -35922,6 +38811,45 @@ } } }, + "ModifyLocalGatewayRouteRequest":{ + "type":"structure", + "required":[ + "DestinationCidrBlock", + "LocalGatewayRouteTableId" + ], + "members":{ + "DestinationCidrBlock":{ + "shape":"String", + "documentation":"

The CIDR block used for destination matches. The value that you provide must match the CIDR of an existing route in the table.

" + }, + "LocalGatewayRouteTableId":{ + "shape":"LocalGatewayRoutetableId", + "documentation":"

The ID of the local gateway route table.

" + }, + "LocalGatewayVirtualInterfaceGroupId":{ + "shape":"LocalGatewayVirtualInterfaceGroupId", + "documentation":"

The ID of the virtual interface group.

" + }, + "NetworkInterfaceId":{ + "shape":"NetworkInterfaceId", + "documentation":"

The ID of the network interface.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "ModifyLocalGatewayRouteResult":{ + "type":"structure", + "members":{ + "Route":{ + "shape":"LocalGatewayRoute", + "documentation":"

Information about the local gateway route table.

", + "locationName":"route" + } + } + }, "ModifyManagedPrefixListRequest":{ "type":"structure", "required":["PrefixListId"], @@ -35974,7 +38902,7 @@ "members":{ "Attachment":{ "shape":"NetworkInterfaceAttachmentChanges", - "documentation":"

Information about the interface attachment. If modifying the 'delete on termination' attribute, you must specify the ID of the interface attachment.

", + "documentation":"

Information about the interface attachment. If modifying the delete on termination attribute, you must specify the ID of the interface attachment.

", "locationName":"attachment" }, "Description":{ @@ -36001,6 +38929,10 @@ "shape":"AttributeBooleanValue", "documentation":"

Enable or disable source/destination checks, which ensure that the instance is either the source or the destination of any traffic that it receives. If the value is true, source/destination checks are enabled; otherwise, they are disabled. The default value is true. You must disable source/destination checks if the instance runs services such as network address translation, routing, or firewalls.

", "locationName":"sourceDestCheck" + }, + "EnaSrdSpecification":{ + "shape":"EnaSrdSpecification", + "documentation":"

Updates the ENA Express configuration for the network interface that’s attached to the instance.

" } }, "documentation":"

Contains the parameters for ModifyNetworkInterfaceAttribute.

" @@ -36465,6 +39397,10 @@ "PropagationDefaultRouteTableId":{ "shape":"TransitGatewayRouteTableId", "documentation":"

The ID of the default propagation route table.

" + }, + "AmazonSideAsn":{ + "shape":"Long", + "documentation":"

A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294 for 32-bit ASNs.

The modify ASN operation is not allowed on a transit gateway with active BGP sessions. You must first delete all transit gateway attachments that have BGP configured prior to modifying the ASN on the transit gateway.

" } }, "documentation":"

The transit gateway options.

" @@ -36535,6 +39471,7 @@ "members":{ "TransitGateway":{ "shape":"TransitGateway", + "documentation":"

Information about the transit gateway.

", "locationName":"transitGateway" } } @@ -36593,6 +39530,334 @@ } } }, + "ModifyVerifiedAccessEndpointEniOptions":{ + "type":"structure", + "members":{ + "Protocol":{ + "shape":"VerifiedAccessEndpointProtocol", + "documentation":"

The IP protocol.

" + }, + "Port":{ + "shape":"VerifiedAccessEndpointPortNumber", + "documentation":"

The IP port number.

" + } + }, + "documentation":"

Options for a network-interface type Verified Access endpoint.

" + }, + "ModifyVerifiedAccessEndpointLoadBalancerOptions":{ + "type":"structure", + "members":{ + "SubnetIds":{ + "shape":"ModifyVerifiedAccessEndpointSubnetIdList", + "documentation":"

The IDs of the subnets.

", + "locationName":"SubnetId" + }, + "Protocol":{ + "shape":"VerifiedAccessEndpointProtocol", + "documentation":"

The IP protocol.

" + }, + "Port":{ + "shape":"VerifiedAccessEndpointPortNumber", + "documentation":"

The IP port number.

" + } + }, + "documentation":"

Describes a load balancer when creating an Amazon Web Services Verified Access endpoint using the load-balancer type.

" + }, + "ModifyVerifiedAccessEndpointPolicyRequest":{ + "type":"structure", + "required":[ + "VerifiedAccessEndpointId", + "PolicyEnabled" + ], + "members":{ + "VerifiedAccessEndpointId":{ + "shape":"VerifiedAccessEndpointId", + "documentation":"

The ID of the Amazon Web Services Verified Access endpoint.

" + }, + "PolicyEnabled":{ + "shape":"Boolean", + "documentation":"

The status of the Verified Access policy.

" + }, + "PolicyDocument":{ + "shape":"String", + "documentation":"

The Amazon Web Services Verified Access policy document.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "ModifyVerifiedAccessEndpointPolicyResult":{ + "type":"structure", + "members":{ + "PolicyEnabled":{ + "shape":"Boolean", + "documentation":"

The status of the Verified Access policy.

", + "locationName":"policyEnabled" + }, + "PolicyDocument":{ + "shape":"String", + "documentation":"

The Amazon Web Services Verified Access policy document.

", + "locationName":"policyDocument" + } + } + }, + "ModifyVerifiedAccessEndpointRequest":{ + "type":"structure", + "required":["VerifiedAccessEndpointId"], + "members":{ + "VerifiedAccessEndpointId":{ + "shape":"VerifiedAccessEndpointId", + "documentation":"

The ID of the Amazon Web Services Verified Access endpoint.

" + }, + "VerifiedAccessGroupId":{ + "shape":"VerifiedAccessGroupId", + "documentation":"

The ID of the Amazon Web Services Verified Access group.

" + }, + "LoadBalancerOptions":{ + "shape":"ModifyVerifiedAccessEndpointLoadBalancerOptions", + "documentation":"

The load balancer details if creating the Amazon Web Services Verified Access endpoint as load-balancertype.

" + }, + "NetworkInterfaceOptions":{ + "shape":"ModifyVerifiedAccessEndpointEniOptions", + "documentation":"

The network interface options.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access endpoint.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "ModifyVerifiedAccessEndpointResult":{ + "type":"structure", + "members":{ + "VerifiedAccessEndpoint":{ + "shape":"VerifiedAccessEndpoint", + "documentation":"

The Amazon Web Services Verified Access endpoint details.

", + "locationName":"verifiedAccessEndpoint" + } + } + }, + "ModifyVerifiedAccessEndpointSubnetIdList":{ + "type":"list", + "member":{ + "shape":"SubnetId", + "locationName":"item" + } + }, + "ModifyVerifiedAccessGroupPolicyRequest":{ + "type":"structure", + "required":[ + "VerifiedAccessGroupId", + "PolicyEnabled" + ], + "members":{ + "VerifiedAccessGroupId":{ + "shape":"VerifiedAccessGroupId", + "documentation":"

The ID of the Amazon Web Services Verified Access group.

" + }, + "PolicyEnabled":{ + "shape":"Boolean", + "documentation":"

The status of the Verified Access policy.

" + }, + "PolicyDocument":{ + "shape":"String", + "documentation":"

The Amazon Web Services Verified Access policy document.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "ModifyVerifiedAccessGroupPolicyResult":{ + "type":"structure", + "members":{ + "PolicyEnabled":{ + "shape":"Boolean", + "documentation":"

The status of the Verified Access policy.

", + "locationName":"policyEnabled" + }, + "PolicyDocument":{ + "shape":"String", + "documentation":"

The Amazon Web Services Verified Access policy document.

", + "locationName":"policyDocument" + } + } + }, + "ModifyVerifiedAccessGroupRequest":{ + "type":"structure", + "required":["VerifiedAccessGroupId"], + "members":{ + "VerifiedAccessGroupId":{ + "shape":"VerifiedAccessGroupId", + "documentation":"

The ID of the Amazon Web Services Verified Access group.

" + }, + "VerifiedAccessInstanceId":{ + "shape":"VerifiedAccessInstanceId", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access group.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + } + } + }, + "ModifyVerifiedAccessGroupResult":{ + "type":"structure", + "members":{ + "VerifiedAccessGroup":{ + "shape":"VerifiedAccessGroup", + "documentation":"

Details of Amazon Web Services Verified Access group.

", + "locationName":"verifiedAccessGroup" + } + } + }, + "ModifyVerifiedAccessInstanceLoggingConfigurationRequest":{ + "type":"structure", + "required":[ + "VerifiedAccessInstanceId", + "AccessLogs" + ], + "members":{ + "VerifiedAccessInstanceId":{ + "shape":"VerifiedAccessInstanceId", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

" + }, + "AccessLogs":{ + "shape":"VerifiedAccessLogOptions", + "documentation":"

The configuration options for Amazon Web Services Verified Access instances.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + } + } + }, + "ModifyVerifiedAccessInstanceLoggingConfigurationResult":{ + "type":"structure", + "members":{ + "LoggingConfiguration":{ + "shape":"VerifiedAccessInstanceLoggingConfiguration", + "documentation":"

The logging configuration for Amazon Web Services Verified Access instance.

", + "locationName":"loggingConfiguration" + } + } + }, + "ModifyVerifiedAccessInstanceRequest":{ + "type":"structure", + "required":["VerifiedAccessInstanceId"], + "members":{ + "VerifiedAccessInstanceId":{ + "shape":"VerifiedAccessInstanceId", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access instance.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + } + } + }, + "ModifyVerifiedAccessInstanceResult":{ + "type":"structure", + "members":{ + "VerifiedAccessInstance":{ + "shape":"VerifiedAccessInstance", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

", + "locationName":"verifiedAccessInstance" + } + } + }, + "ModifyVerifiedAccessTrustProviderOidcOptions":{ + "type":"structure", + "members":{ + "Scope":{ + "shape":"String", + "documentation":"

OpenID Connect (OIDC) scopes are used by an application during authentication to authorize access to a user's details. Each scope returns a specific set of user attributes.

" + } + }, + "documentation":"

OpenID Connect options for an oidc-type, user-identity based trust provider.

" + }, + "ModifyVerifiedAccessTrustProviderRequest":{ + "type":"structure", + "required":["VerifiedAccessTrustProviderId"], + "members":{ + "VerifiedAccessTrustProviderId":{ + "shape":"VerifiedAccessTrustProviderId", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

" + }, + "OidcOptions":{ + "shape":"ModifyVerifiedAccessTrustProviderOidcOptions", + "documentation":"

The OpenID Connect details for an oidc-type, user-identity based trust provider.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access trust provider.

" + }, + "DryRun":{ + "shape":"Boolean", + "documentation":"

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

" + }, + "ClientToken":{ + "shape":"String", + "documentation":"

A unique, case-sensitive token that you provide to ensure idempotency of your modification request. For more information, see Ensuring Idempotency.

", + "idempotencyToken":true + } + } + }, + "ModifyVerifiedAccessTrustProviderResult":{ + "type":"structure", + "members":{ + "VerifiedAccessTrustProvider":{ + "shape":"VerifiedAccessTrustProvider", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

", + "locationName":"verifiedAccessTrustProvider" + } + } + }, "ModifyVolumeAttributeRequest":{ "type":"structure", "required":["VolumeId"], @@ -36672,6 +39937,10 @@ "shape":"VpcId", "documentation":"

The ID of the VPC.

", "locationName":"vpcId" + }, + "EnableNetworkAddressUsageMetrics":{ + "shape":"AttributeBooleanValue", + "documentation":"

Indicates whether Network Address Usage metrics are enabled for your VPC.

" } } }, @@ -36904,6 +40173,11 @@ "ModifyVpcEndpointServicePermissionsResult":{ "type":"structure", "members":{ + "AddedPrincipals":{ + "shape":"AddedPrincipalSet", + "documentation":"

Information about the added principals.

", + "locationName":"addedPrincipalSet" + }, "ReturnValue":{ "shape":"Boolean", "documentation":"

Returns true if the request succeeds; otherwise, it returns an error.

", @@ -37014,6 +40288,7 @@ "members":{ "VpnConnection":{ "shape":"VpnConnection", + "documentation":"

Information about the VPN connection.

", "locationName":"vpnConnection" } } @@ -37049,6 +40324,7 @@ "members":{ "VpnConnection":{ "shape":"VpnConnection", + "documentation":"

Information about the VPN connection.

", "locationName":"vpnConnection" } } @@ -37079,6 +40355,7 @@ "members":{ "VpnConnection":{ "shape":"VpnConnection", + "documentation":"

Information about the VPN connection.

", "locationName":"vpnConnection" } } @@ -37114,6 +40391,7 @@ "members":{ "VpnConnection":{ "shape":"VpnConnection", + "documentation":"

Information about the VPN connection.

", "locationName":"vpnConnection" } } @@ -37199,6 +40477,10 @@ "StartupAction":{ "shape":"String", "documentation":"

The action to take when the establishing the tunnel for the VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for Amazon Web Services to initiate the IKE negotiation.

Valid Values: add | start

Default: add

" + }, + "LogOptions":{ + "shape":"VpnTunnelLogOptionsSpecification", + "documentation":"

Options for logging VPN tunnel activity.

" } }, "documentation":"

The Amazon Web Services Site-to-Site VPN tunnel options to modify.

" @@ -37311,6 +40593,7 @@ "members":{ "ByoipCidr":{ "shape":"ByoipCidr", + "documentation":"

The BYOIP CIDR.

", "locationName":"byoipCidr" } } @@ -37336,7 +40619,7 @@ "locationName":"publicIp" } }, - "documentation":"

Describes the status of a moving Elastic IP address.

" + "documentation":"

Describes the status of a moving Elastic IP address.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "MovingAddressStatusSet":{ "type":"list", @@ -37615,6 +40898,36 @@ "locationName":"item" } }, + "NetworkBandwidthGbps":{ + "type":"structure", + "members":{ + "Min":{ + "shape":"Double", + "documentation":"

The minimum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no minimum limit.

", + "locationName":"min" + }, + "Max":{ + "shape":"Double", + "documentation":"

The maximum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no maximum limit.

", + "locationName":"max" + } + }, + "documentation":"

The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).

Setting the minimum bandwidth does not guarantee that your instance will achieve the minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum bandwidth, but the actual bandwidth of your instance might go below the specified minimum at times. For more information, see Available instance bandwidth in the Amazon EC2 User Guide.

" + }, + "NetworkBandwidthGbpsRequest":{ + "type":"structure", + "members":{ + "Min":{ + "shape":"Double", + "documentation":"

The minimum amount of network bandwidth, in Gbps. To specify no minimum limit, omit this parameter.

" + }, + "Max":{ + "shape":"Double", + "documentation":"

The maximum amount of network bandwidth, in Gbps. To specify no maximum limit, omit this parameter.

" + } + }, + "documentation":"

The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).

Setting the minimum bandwidth does not guarantee that your instance will achieve the minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum bandwidth, but the actual bandwidth of your instance might go below the specified minimum at times. For more information, see Available instance bandwidth in the Amazon EC2 User Guide.

" + }, "NetworkCardIndex":{"type":"integer"}, "NetworkCardInfo":{ "type":"structure", @@ -37706,6 +41019,11 @@ "shape":"EncryptionInTransitSupported", "documentation":"

Indicates whether the instance type automatically encrypts in-transit traffic between instances.

", "locationName":"encryptionInTransitSupported" + }, + "EnaSrdSupported":{ + "shape":"EnaSrdSupported", + "documentation":"

Indicates whether the instance type supports ENA Express. ENA Express uses Amazon Web Services Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances.

", + "locationName":"enaSrdSupported" } }, "documentation":"

Describes the networking features of the instance type.

" @@ -37871,6 +41189,11 @@ "documentation":"

The ID of the path.

", "locationName":"networkInsightsPathId" }, + "AdditionalAccounts":{ + "shape":"ValueStringList", + "documentation":"

The member accounts that contain resources that the path can traverse.

", + "locationName":"additionalAccountSet" + }, "FilterInArns":{ "shape":"ArnList", "documentation":"

The Amazon Resource Names (ARN) of the Amazon Web Services resources that the path must traverse.

", @@ -37921,6 +41244,11 @@ "documentation":"

Potential intermediate components.

", "locationName":"alternatePathHintSet" }, + "SuggestedAccounts":{ + "shape":"ValueStringList", + "documentation":"

Potential intermediate accounts.

", + "locationName":"suggestedAccountSet" + }, "Tags":{ "shape":"TagList", "documentation":"

The tags.

", @@ -37977,6 +41305,16 @@ "documentation":"

The Amazon Web Services resource that is the destination of the path.

", "locationName":"destination" }, + "SourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the source.

", + "locationName":"sourceArn" + }, + "DestinationArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the destination.

", + "locationName":"destinationArn" + }, "SourceIp":{ "shape":"IpAddress", "documentation":"

The IP address of the Amazon Web Services resource that is the source of the path.

", @@ -38240,6 +41578,11 @@ "shape":"AttachmentStatus", "documentation":"

The attachment state.

", "locationName":"status" + }, + "EnaSrdSpecification":{ + "shape":"AttachmentEnaSrdSpecification", + "documentation":"

Configures ENA Express for the network interface that this action attaches to the instance.

", + "locationName":"enaSrdSpecification" } }, "documentation":"

Describes a network interface attachment.

" @@ -38534,6 +41877,47 @@ "All Upfront" ] }, + "OidcOptions":{ + "type":"structure", + "members":{ + "Issuer":{ + "shape":"String", + "documentation":"

The OIDC issuer.

", + "locationName":"issuer" + }, + "AuthorizationEndpoint":{ + "shape":"String", + "documentation":"

The OIDC authorization endpoint.

", + "locationName":"authorizationEndpoint" + }, + "TokenEndpoint":{ + "shape":"String", + "documentation":"

The OIDC token endpoint.

", + "locationName":"tokenEndpoint" + }, + "UserInfoEndpoint":{ + "shape":"String", + "documentation":"

The OIDC user info endpoint.

", + "locationName":"userInfoEndpoint" + }, + "ClientId":{ + "shape":"String", + "documentation":"

The client identifier.

", + "locationName":"clientId" + }, + "ClientSecret":{ + "shape":"String", + "documentation":"

The client secret.

", + "locationName":"clientSecret" + }, + "Scope":{ + "shape":"String", + "documentation":"

The OpenID Connect (OIDC) scope specified.

", + "locationName":"scope" + } + }, + "documentation":"

Options for OIDC-based, user-identity type trust provider.

" + }, "OnDemandAllocationStrategy":{ "type":"string", "enum":[ @@ -38800,12 +42184,23 @@ }, "TransitGateway":{ "shape":"AnalysisComponent", + "documentation":"

The transit gateway.

", "locationName":"transitGateway" }, "TransitGatewayRouteTableRoute":{ "shape":"TransitGatewayRouteTableRoute", "documentation":"

The route in a transit gateway route table.

", "locationName":"transitGatewayRouteTableRoute" + }, + "Explanations":{ + "shape":"ExplanationList", + "documentation":"

The explanation codes.

", + "locationName":"explanationSet" + }, + "ElasticLoadBalancerListener":{ + "shape":"AnalysisComponent", + "documentation":"

The load balancer listener.

", + "locationName":"elasticLoadBalancerListener" } }, "documentation":"

Describes a path component.

" @@ -38916,7 +42311,7 @@ "locationName":"allowEgressFromLocalVpcToRemoteClassicLink" } }, - "documentation":"

Describes the VPC peering connection options.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Describes the VPC peering connection options.

" }, "PeeringConnectionOptionsRequest":{ "type":"structure", @@ -38934,7 +42329,7 @@ "documentation":"

If true, enables outbound communication from instances in a local VPC to an EC2-Classic instance that's linked to a peer VPC using ClassicLink.

" } }, - "documentation":"

The VPC peering connection options.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

The VPC peering connection options.

" }, "PeeringTgwInfo":{ "type":"structure", @@ -38944,6 +42339,11 @@ "documentation":"

The ID of the transit gateway.

", "locationName":"transitGatewayId" }, + "CoreNetworkId":{ + "shape":"String", + "documentation":"

The ID of the core network where the transit gateway peer is located.

", + "locationName":"coreNetworkId" + }, "OwnerId":{ "shape":"String", "documentation":"

The ID of the Amazon Web Services account that owns the transit gateway.

", @@ -38957,6 +42357,17 @@ }, "documentation":"

Information about the transit gateway in the peering attachment.

" }, + "PeriodType":{ + "type":"string", + "enum":[ + "five-minutes", + "fifteen-minutes", + "one-hour", + "three-hours", + "one-day", + "one-week" + ] + }, "PermissionGroup":{ "type":"string", "enum":["all"] @@ -39176,43 +42587,48 @@ "members":{ "AvailabilityZone":{ "shape":"String", - "documentation":"

The Availability Zone of the instance.

If not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region.

This parameter is not supported by CreateFleet.

", + "documentation":"

The Availability Zone of the instance.

If not specified, an Availability Zone will be automatically chosen for you based on the load balancing criteria for the Region.

This parameter is not supported for CreateFleet.

", "locationName":"availabilityZone" }, "Affinity":{ "shape":"String", - "documentation":"

The affinity setting for the instance on the Dedicated Host. This parameter is not supported for the ImportInstance command.

This parameter is not supported by CreateFleet.

", + "documentation":"

The affinity setting for the instance on the Dedicated Host.

This parameter is not supported for CreateFleet or ImportInstance.

", "locationName":"affinity" }, "GroupName":{ "shape":"PlacementGroupName", - "documentation":"

The name of the placement group the instance is in.

", + "documentation":"

The name of the placement group that the instance is in. If you specify GroupName, you can't specify GroupId.

", "locationName":"groupName" }, "PartitionNumber":{ "shape":"Integer", - "documentation":"

The number of the partition that the instance is in. Valid only if the placement group strategy is set to partition.

This parameter is not supported by CreateFleet.

", + "documentation":"

The number of the partition that the instance is in. Valid only if the placement group strategy is set to partition.

This parameter is not supported for CreateFleet.

", "locationName":"partitionNumber" }, "HostId":{ "shape":"String", - "documentation":"

The ID of the Dedicated Host on which the instance resides. This parameter is not supported for the ImportInstance command.

This parameter is not supported by CreateFleet.

", + "documentation":"

The ID of the Dedicated Host on which the instance resides.

This parameter is not supported for CreateFleet or ImportInstance.

", "locationName":"hostId" }, "Tenancy":{ "shape":"Tenancy", - "documentation":"

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the ImportInstance command.

This parameter is not supported by CreateFleet.

T3 instances that use the unlimited CPU credit option do not support host tenancy.

", + "documentation":"

The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware.

This parameter is not supported for CreateFleet. The host tenancy is not supported for ImportInstance or for T3 instances that are configured for the unlimited CPU credit option.

", "locationName":"tenancy" }, "SpreadDomain":{ "shape":"String", - "documentation":"

Reserved for future use.

This parameter is not supported by CreateFleet.

", + "documentation":"

Reserved for future use.

", "locationName":"spreadDomain" }, "HostResourceGroupArn":{ "shape":"String", - "documentation":"

The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the Tenancy parameter or set it to host.

This parameter is not supported by CreateFleet.

", + "documentation":"

The ARN of the host resource group in which to launch the instances.

If you specify this parameter, either omit the Tenancy parameter or set it to host.

This parameter is not supported for CreateFleet.

", "locationName":"hostResourceGroupArn" + }, + "GroupId":{ + "shape":"PlacementGroupId", + "documentation":"

The ID of the placement group that the instance is in. If you specify GroupId, you can't specify GroupName.

", + "locationName":"groupId" } }, "documentation":"

Describes the placement of an instance.

" @@ -39254,6 +42670,11 @@ "shape":"String", "documentation":"

The Amazon Resource Name (ARN) of the placement group.

", "locationName":"groupArn" + }, + "SpreadLevel":{ + "shape":"SpreadLevel", + "documentation":"

The spread level for the placement group. Only Outpost placement groups can be spread across hosts.

", + "locationName":"spreadLevel" } }, "documentation":"

Describes a placement group.

" @@ -39366,7 +42787,7 @@ "Port":{ "type":"integer", "max":65535, - "min":1 + "min":0 }, "PortRange":{ "type":"structure", @@ -39764,7 +43185,7 @@ }, "PrivateIpAddress":{ "shape":"String", - "documentation":"

The private IPv4 addresses.

", + "documentation":"

The private IPv4 address.

", "locationName":"privateIpAddress" } }, @@ -39991,6 +43412,7 @@ }, "PoolAddressRange":{ "shape":"PublicIpv4PoolRange", + "documentation":"

Information about the address range of the public IPv4 pool.

", "locationName":"poolAddressRange" } } @@ -40579,6 +44001,10 @@ "UefiData":{ "shape":"StringType", "documentation":"

Base64 representation of the non-volatile UEFI variable store. To retrieve the UEFI data, use the GetInstanceUefiData command. You can inspect and modify the UEFI data by using the python-uefivars tool on GitHub. For more information, see UEFI Secure Boot in the Amazon Elastic Compute Cloud User Guide.

" + }, + "ImdsSupport":{ + "shape":"ImdsSupportValues", + "documentation":"

Set to v2.0 to indicate that IMDSv2 is specified in the AMI. Instances launched from this AMI will have HttpTokens automatically set to required so that, by default, the instance requires that IMDSv2 is used when requesting instance metadata. In addition, HttpPutResponseHopLimit is set to 2. For more information, see Configure the AMI in the Amazon Elastic Compute Cloud User Guide.

If you set the value to v2.0, make sure that your AMI software can support IMDSv2.

" } }, "documentation":"

Contains the parameters for RegisterImage.

" @@ -40720,6 +44146,7 @@ "members":{ "Associations":{ "shape":"TransitGatewayMulticastDomainAssociations", + "documentation":"

Information about the multicast domain associations.

", "locationName":"associations" } } @@ -40922,7 +44349,7 @@ "documentation":"

The name of the operating Region you want to remove.

" } }, - "documentation":"

Remove an operating Region from an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide

" + "documentation":"

Remove an operating Region from an IPAM. Operating Regions are Amazon Web Services Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the Amazon Web Services Regions you select as operating Regions.

For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide

" }, "RemoveIpamOperatingRegionSet":{ "type":"list", @@ -41102,6 +44529,21 @@ "shape":"TagList", "documentation":"

The tags assigned to the task.

", "locationName":"tagSet" + }, + "ImageId":{ + "shape":"ImageId", + "documentation":"

The ID of the AMI used to create the replacement root volume.

", + "locationName":"imageId" + }, + "SnapshotId":{ + "shape":"SnapshotId", + "documentation":"

The ID of the snapshot used to create the replacement root volume.

", + "locationName":"snapshotId" + }, + "DeleteReplacedRootVolume":{ + "shape":"Boolean", + "documentation":"

Indicates whether the original root volume is to be deleted after the root volume replacement task completes.

", + "locationName":"deleteReplacedRootVolume" } }, "documentation":"

Information about a root volume replacement task.

" @@ -41440,7 +44882,7 @@ }, "InstanceType":{ "shape":"InstanceType", - "documentation":"

The instance type. For more information, see Instance types in the Amazon Elastic Compute Cloud User Guide.

If you specify InstanceTypes, you can't specify InstanceRequirements.

" + "documentation":"

The instance type. For more information, see Instance types in the Amazon Elastic Compute Cloud User Guide.

If you specify InstanceType, you can't specify InstanceRequirements.

" }, "KeyName":{ "shape":"KeyPairName", @@ -41472,7 +44914,7 @@ }, "TagSpecifications":{ "shape":"LaunchTemplateTagSpecificationRequestList", - "documentation":"

The tags to apply to the resources during launch. You can only tag instances and volumes on launch. The specified tags are applied to all instances or volumes that are created during launch. To tag a resource after it has been created, see CreateTags.

", + "documentation":"

The tags to apply to the resources that are created during instance launch.

You can specify tags for the following resources only:

  • Instances

  • Volumes

  • Elastic graphics

  • Spot Instance requests

  • Network interfaces

To tag a resource after it has been created, see CreateTags.

To tag the launch template itself, you must use the TagSpecification parameter.

", "locationName":"TagSpecification" }, "ElasticGpuSpecifications":{ @@ -41492,7 +44934,7 @@ }, "SecurityGroups":{ "shape":"SecurityGroupStringList", - "documentation":"

[EC2-Classic, default VPC] One or more security group names. For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request.

", + "documentation":"

One or more security group names. For a nondefault VPC, you must use security group IDs instead. You cannot specify both a security group ID and security name in the same request.

", "locationName":"SecurityGroup" }, "InstanceMarketOptions":{ @@ -41501,7 +44943,7 @@ }, "CreditSpecification":{ "shape":"CreditSpecificationRequest", - "documentation":"

The credit option for CPU usage of the instance. Valid for T2, T3, or T3a instances only.

" + "documentation":"

The credit option for CPU usage of the instance. Valid only for T instances.

" }, "CpuOptions":{ "shape":"LaunchTemplateCpuOptionsRequest", @@ -41530,7 +44972,7 @@ }, "InstanceRequirements":{ "shape":"InstanceRequirementsRequest", - "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

If you specify InstanceRequirements, you can't specify InstanceTypes.

" + "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.

If you specify InstanceRequirements, you can't specify InstanceType.

" }, "PrivateDnsNameOptions":{ "shape":"LaunchTemplatePrivateDnsNameOptionsRequest", @@ -41545,7 +44987,8 @@ "documentation":"

Indicates whether to enable the instance for stop protection. For more information, see Stop Protection.

" } }, - "documentation":"

The information to include in the launch template.

You must specify at least one parameter for the launch template data.

" + "documentation":"

The information to include in the launch template.

You must specify at least one parameter for the launch template data.

", + "sensitive":true }, "RequestSpotFleetRequest":{ "type":"structure", @@ -41614,7 +45057,7 @@ }, "SpotPrice":{ "shape":"String", - "documentation":"

The maximum price per hour that you are willing to pay for a Spot Instance. The default is the On-Demand price.

", + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

", "locationName":"spotPrice" }, "Type":{ @@ -42563,6 +46006,7 @@ "client-vpn-endpoint", "customer-gateway", "carrier-gateway", + "coip-pool", "dedicated-host", "dhcp-options", "egress-only-internet-gateway", @@ -42618,15 +46062,28 @@ "transit-gateway-attachment", "transit-gateway-connect-peer", "transit-gateway-multicast-domain", + "transit-gateway-policy-table", "transit-gateway-route-table", + "transit-gateway-route-table-announcement", "volume", "vpc", "vpc-endpoint", + "vpc-endpoint-connection", "vpc-endpoint-service", + "vpc-endpoint-service-permission", "vpc-peering-connection", "vpn-connection", "vpn-gateway", - "vpc-flow-log" + "vpc-flow-log", + "capacity-reservation-fleet", + "traffic-mirror-filter-rule", + "vpc-endpoint-connection-device-type", + "verified-access-instance", + "verified-access-group", + "verified-access-endpoint", + "verified-access-policy", + "verified-access-trust-provider", + "vpn-connection-device-type" ] }, "ResponseError":{ @@ -42734,7 +46191,7 @@ }, "TagSpecifications":{ "shape":"LaunchTemplateTagSpecificationList", - "documentation":"

The tags.

", + "documentation":"

The tags that are applied to the resources that are created during instance launch.

", "locationName":"tagSpecificationSet" }, "ElasticGpuSpecifications":{ @@ -43164,7 +46621,7 @@ }, "GroupName":{ "shape":"SecurityGroupName", - "documentation":"

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

" + "documentation":"

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

" }, "IpPermissions":{ "shape":"IpPermissionList", @@ -43613,7 +47070,7 @@ }, "TagSpecifications":{ "shape":"TagSpecificationList", - "documentation":"

The tags to apply to the resources during launch. You can only tag instances and volumes on launch. The specified tags are applied to all instances or volumes that are created during launch. To tag a resource after it has been created, see CreateTags.

", + "documentation":"

The tags to apply to the resources that are created during instance launch.

You can specify tags for the following resources only:

  • Instances

  • Volumes

  • Elastic graphics

  • Spot Instance requests

  • Network interfaces

To tag a resource after it has been created, see CreateTags.

", "locationName":"TagSpecification" }, "LaunchTemplate":{ @@ -43626,7 +47083,7 @@ }, "CreditSpecification":{ "shape":"CreditSpecificationRequest", - "documentation":"

The credit option for CPU usage of the burstable performance instance. Valid values are standard and unlimited. To change this attribute after launch, use ModifyInstanceCreditSpecification. For more information, see Burstable performance instances in the Amazon EC2 User Guide.

Default: standard (T2 instances) or unlimited (T3/T3a instances)

For T3 instances with host tenancy, only standard is supported.

" + "documentation":"

The credit option for CPU usage of the burstable performance instance. Valid values are standard and unlimited. To change this attribute after launch, use ModifyInstanceCreditSpecification. For more information, see Burstable performance instances in the Amazon EC2 User Guide.

Default: standard (T2 instances) or unlimited (T3/T3a/T4g instances)

For T3 instances with host tenancy, only standard is supported.

" }, "CpuOptions":{ "shape":"CpuOptionsRequest", @@ -43663,7 +47120,7 @@ }, "DisableApiStop":{ "shape":"Boolean", - "documentation":"

Indicates whether an instance is enabled for stop protection. For more information, see Stop Protection.

" + "documentation":"

Indicates whether an instance is enabled for stop protection. For more information, see Stop protection.

" } } }, @@ -43739,7 +47196,7 @@ "members":{ "AWSAccessKeyId":{ "shape":"String", - "documentation":"

The access key ID of the owner of the bucket. Before you specify a value for your access key ID, review and follow the guidance in Best Practices for Managing Amazon Web Services Access Keys.

" + "documentation":"

The access key ID of the owner of the bucket. Before you specify a value for your access key ID, review and follow the guidance in Best practices for managing Amazon Web Services access keys.

" }, "Bucket":{ "shape":"String", @@ -44432,6 +47889,13 @@ "documentation":"

Describes a security group.

" }, "SecurityGroupId":{"type":"string"}, + "SecurityGroupIdList":{ + "type":"list", + "member":{ + "shape":"SecurityGroupId", + "locationName":"item" + } + }, "SecurityGroupIdStringList":{ "type":"list", "member":{ @@ -44789,7 +48253,7 @@ "members":{ "ServiceName":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the service.

", + "documentation":"

The name of the service.

", "locationName":"serviceName" }, "ServiceId":{ @@ -44824,7 +48288,7 @@ }, "PrivateDnsNames":{ "shape":"PrivateDnsDetailsSet", - "documentation":"

The private DNS names assigned to the VPC endpoint service.

", + "documentation":"

The private DNS names assigned to the VPC endpoint service.

", "locationName":"privateDnsNameSet" }, "VpcEndpointPolicySupported":{ @@ -45394,7 +48858,8 @@ "lowest-price", "diversified", "capacity-optimized", - "capacity-optimized-prioritized" + "capacity-optimized-prioritized", + "price-capacity-optimized" ] }, "SpotCapacityRebalance":{ @@ -45514,7 +48979,7 @@ }, "SpotPrice":{ "shape":"String", - "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. If this value is not specified, the default is the Spot price specified for the fleet. To determine the Spot price per unit hour, divide the Spot price by the value of WeightedCapacity.

", + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

", "locationName":"spotPrice" }, "SubnetId":{ @@ -45539,7 +49004,7 @@ }, "InstanceRequirements":{ "shape":"InstanceRequirements", - "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes.

If you specify InstanceRequirements, you can't specify InstanceTypes.

", + "documentation":"

The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with those attributes.

If you specify InstanceRequirements, you can't specify InstanceType.

", "locationName":"instanceRequirements" } }, @@ -45601,7 +49066,7 @@ "members":{ "AllocationStrategy":{ "shape":"AllocationStrategy", - "documentation":"

Indicates how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the Spot Fleet request.

If the allocation strategy is lowestPrice, Spot Fleet launches instances from the Spot Instance pools with the lowest price. This is the default allocation strategy.

If the allocation strategy is diversified, Spot Fleet launches instances from all the Spot Instance pools that you specify.

If the allocation strategy is capacityOptimized (recommended), Spot Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching. To give certain instance types a higher chance of launching first, use capacityOptimizedPrioritized. Set a priority for each instance type by using the Priority parameter for LaunchTemplateOverrides. You can assign the same priority to different LaunchTemplateOverrides. EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. capacityOptimizedPrioritized is supported only if your Spot Fleet uses a launch template. Note that if the OnDemandAllocationStrategy is set to prioritized, the same priority is applied when fulfilling On-Demand capacity.

", + "documentation":"

The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the Spot Fleet launch configuration. For more information, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide.

priceCapacityOptimized (recommended)

Spot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term. Spot Fleet then requests Spot Instances from the lowest priced of these pools.

capacityOptimized

Spot Fleet identifies the pools with the highest capacity availability for the number of instances that are launching. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term. To give certain instance types a higher chance of launching first, use capacityOptimizedPrioritized. Set a priority for each instance type by using the Priority parameter for LaunchTemplateOverrides. You can assign the same priority to different LaunchTemplateOverrides. EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. capacityOptimizedPrioritized is supported only if your Spot Fleet uses a launch template. Note that if the OnDemandAllocationStrategy is set to prioritized, the same priority is applied when fulfilling On-Demand capacity.

diversified

Spot Fleet requests instances from all of the Spot Instance pools that you specify.

lowestPrice

Spot Fleet requests instances from the lowest priced Spot Instance pool that has available capacity. If the lowest priced pool doesn't have available capacity, the Spot Instances come from the next lowest priced pool that has available capacity. If a pool runs out of capacity before fulfilling your desired capacity, Spot Fleet will continue to fulfill your request by drawing from the next lowest priced pool. To ensure that your desired capacity is met, you might receive Spot Instances from several pools. Because this strategy only considers instance price and not capacity availability, it might lead to high interruption rates.

Default: lowestPrice

", "locationName":"allocationStrategy" }, "OnDemandAllocationStrategy":{ @@ -45636,7 +49101,7 @@ }, "IamFleetRole":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that grants the Spot Fleet the permission to request, launch, terminate, and tag instances on your behalf. For more information, see Spot Fleet prerequisites in the Amazon EC2 User Guide for Linux Instances. Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot Fleet request using CancelSpotFleetRequests or when the Spot Fleet request expires, if you set TerminateInstancesWithExpiration.

", + "documentation":"

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that grants the Spot Fleet the permission to request, launch, terminate, and tag instances on your behalf. For more information, see Spot Fleet prerequisites in the Amazon EC2 User Guide. Spot Fleet can terminate Spot Instances on your behalf when you cancel its Spot Fleet request using CancelSpotFleetRequests or when the Spot Fleet request expires, if you set TerminateInstancesWithExpiration.

", "locationName":"iamFleetRole" }, "LaunchSpecifications":{ @@ -45651,7 +49116,7 @@ }, "SpotPrice":{ "shape":"String", - "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. The default is the On-Demand price.

", + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

", "locationName":"spotPrice" }, "TargetCapacity":{ @@ -45726,7 +49191,7 @@ }, "TagSpecifications":{ "shape":"TagSpecificationList", - "documentation":"

The key-value pair for tagging the Spot Fleet request on creation. The value for ResourceType must be spot-fleet-request, otherwise the Spot Fleet request fails. To tag instances at launch, specify the tags in the launch template (valid only if you use LaunchTemplateConfigs) or in the SpotFleetTagSpecification (valid only if you use LaunchSpecifications). For information about tagging after launch, see Tagging Your Resources.

", + "documentation":"

The key-value pair for tagging the Spot Fleet request on creation. The value for ResourceType must be spot-fleet-request, otherwise the Spot Fleet request fails. To tag instances at launch, specify the tags in the launch template (valid only if you use LaunchTemplateConfigs) or in the SpotFleetTagSpecification (valid only if you use LaunchSpecifications). For information about tagging after launch, see Tagging Your Resources.

", "locationName":"TagSpecification" } }, @@ -45752,7 +49217,7 @@ "members":{ "ResourceType":{ "shape":"ResourceType", - "documentation":"

The type of resource. Currently, the only resource type that is supported is instance. To tag the Spot Fleet request on creation, use the TagSpecifications parameter in SpotFleetRequestConfigData .

", + "documentation":"

The type of resource. Currently, the only resource type that is supported is instance. To tag the Spot Fleet request on creation, use the TagSpecifications parameter in SpotFleetRequestConfigData .

", "locationName":"resourceType" }, "Tags":{ @@ -45838,7 +49303,7 @@ }, "SpotPrice":{ "shape":"String", - "documentation":"

The maximum price per hour that you are willing to pay for a Spot Instance.

", + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

", "locationName":"spotPrice" }, "State":{ @@ -45964,7 +49429,7 @@ "members":{ "MaxPrice":{ "shape":"String", - "documentation":"

The maximum hourly price you're willing to pay for the Spot Instances. The default is the On-Demand price.

" + "documentation":"

The maximum hourly price that you're willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.

" }, "SpotInstanceType":{ "shape":"SpotInstanceType", @@ -45990,7 +49455,7 @@ "members":{ "AllocationStrategy":{ "shape":"SpotAllocationStrategy", - "documentation":"

The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the EC2 Fleet.

lowest-price - EC2 Fleet launches instances from the Spot Instance pools with the lowest price.

diversified - EC2 Fleet launches instances from all of the Spot Instance pools that you specify.

capacity-optimized (recommended) - EC2 Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching. To give certain instance types a higher chance of launching first, use capacity-optimized-prioritized. Set a priority for each instance type by using the Priority parameter for LaunchTemplateOverrides. You can assign the same priority to different LaunchTemplateOverrides. EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. capacity-optimized-prioritized is supported only if your fleet uses a launch template. Note that if the On-Demand AllocationStrategy is set to prioritized, the same priority is applied when fulfilling On-Demand capacity.

Default: lowest-price

", + "documentation":"

The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the EC2 Fleet launch configuration. For more information, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide.

price-capacity-optimized (recommended)

EC2 Fleet identifies the pools with the highest capacity availability for the number of instances that are launching. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term. EC2 Fleet then requests Spot Instances from the lowest priced of these pools.

capacity-optimized

EC2 Fleet identifies the pools with the highest capacity availability for the number of instances that are launching. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term. To give certain instance types a higher chance of launching first, use capacity-optimized-prioritized. Set a priority for each instance type by using the Priority parameter for LaunchTemplateOverrides. You can assign the same priority to different LaunchTemplateOverrides. EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. capacity-optimized-prioritized is supported only if your EC2 Fleet uses a launch template. Note that if the On-Demand AllocationStrategy is set to prioritized, the same priority is applied when fulfilling On-Demand capacity.

diversified

EC2 Fleet requests instances from all of the Spot Instance pools that you specify.

lowest-price

EC2 Fleet requests instances from the lowest priced Spot Instance pool that has available capacity. If the lowest priced pool doesn't have available capacity, the Spot Instances come from the next lowest priced pool that has available capacity. If a pool runs out of capacity before fulfilling your desired capacity, EC2 Fleet will continue to fulfill your request by drawing from the next lowest priced pool. To ensure that your desired capacity is met, you might receive Spot Instances from several pools. Because this strategy only considers instance price and not capacity availability, it might lead to high interruption rates.

Default: lowest-price

", "locationName":"allocationStrategy" }, "MaintenanceStrategies":{ @@ -46025,7 +49490,7 @@ }, "MaxTotalPrice":{ "shape":"String", - "documentation":"

The maximum amount per hour for Spot Instances that you're willing to pay.

", + "documentation":"

The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.

", "locationName":"maxTotalPrice" } }, @@ -46036,7 +49501,7 @@ "members":{ "AllocationStrategy":{ "shape":"SpotAllocationStrategy", - "documentation":"

The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the EC2 Fleet.

lowest-price - EC2 Fleet launches instances from the Spot Instance pools with the lowest price.

diversified - EC2 Fleet launches instances from all of the Spot Instance pools that you specify.

capacity-optimized (recommended) - EC2 Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching. To give certain instance types a higher chance of launching first, use capacity-optimized-prioritized. Set a priority for each instance type by using the Priority parameter for LaunchTemplateOverrides. You can assign the same priority to different LaunchTemplateOverrides. EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. capacity-optimized-prioritized is supported only if your fleet uses a launch template. Note that if the On-Demand AllocationStrategy is set to prioritized, the same priority is applied when fulfilling On-Demand capacity.

Default: lowest-price

" + "documentation":"

The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools specified by the EC2 Fleet launch configuration. For more information, see Allocation strategies for Spot Instances in the Amazon EC2 User Guide.

price-capacity-optimized (recommended)

EC2 Fleet identifies the pools with the highest capacity availability for the number of instances that are launching. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term. EC2 Fleet then requests Spot Instances from the lowest priced of these pools.

capacity-optimized

EC2 Fleet identifies the pools with the highest capacity availability for the number of instances that are launching. This means that we will request Spot Instances from the pools that we believe have the lowest chance of interruption in the near term. To give certain instance types a higher chance of launching first, use capacity-optimized-prioritized. Set a priority for each instance type by using the Priority parameter for LaunchTemplateOverrides. You can assign the same priority to different LaunchTemplateOverrides. EC2 implements the priorities on a best-effort basis, but optimizes for capacity first. capacity-optimized-prioritized is supported only if your EC2 Fleet uses a launch template. Note that if the On-Demand AllocationStrategy is set to prioritized, the same priority is applied when fulfilling On-Demand capacity.

diversified

EC2 Fleet requests instances from all of the Spot Instance pools that you specify.

lowest-price

EC2 Fleet requests instances from the lowest priced Spot Instance pool that has available capacity. If the lowest priced pool doesn't have available capacity, the Spot Instances come from the next lowest priced pool that has available capacity. If a pool runs out of capacity before fulfilling your desired capacity, EC2 Fleet will continue to fulfill your request by drawing from the next lowest priced pool. To ensure that your desired capacity is met, you might receive Spot Instances from several pools. Because this strategy only considers instance price and not capacity availability, it might lead to high interruption rates.

Default: lowest-price

" }, "MaintenanceStrategies":{ "shape":"FleetSpotMaintenanceStrategiesRequest", @@ -46064,7 +49529,7 @@ }, "MaxTotalPrice":{ "shape":"String", - "documentation":"

The maximum amount per hour for Spot Instances that you're willing to pay.

" + "documentation":"

The maximum amount per hour for Spot Instances that you're willing to pay. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.

" } }, "documentation":"

Describes the configuration of Spot Instances in an EC2 Fleet request.

" @@ -46148,7 +49613,7 @@ }, "SpotPrice":{ "shape":"String", - "documentation":"

The maximum price per hour that you are willing to pay for a Spot Instance.

", + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

", "locationName":"spotPrice" }, "Timestamp":{ @@ -46157,7 +49622,7 @@ "locationName":"timestamp" } }, - "documentation":"

Describes the maximum price per hour that you are willing to pay for a Spot Instance.

" + "documentation":"

The maximum price per unit hour that you are willing to pay for a Spot Instance. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.

If you specify a maximum price, your instances will be interrupted more frequently than if you do not specify this parameter.

" }, "SpotPriceHistoryList":{ "type":"list", @@ -46166,6 +49631,13 @@ "locationName":"item" } }, + "SpreadLevel":{ + "type":"string", + "enum":[ + "host", + "rack" + ] + }, "StaleIpPermission":{ "type":"structure", "members":{ @@ -46331,6 +49803,11 @@ "shape":"NetworkInsightsPathId", "documentation":"

The ID of the path.

" }, + "AdditionalAccounts":{ + "shape":"ValueStringList", + "documentation":"

The member accounts that contain resources that the path can traverse.

", + "locationName":"AdditionalAccount" + }, "FilterInArns":{ "shape":"ArnList", "documentation":"

The Amazon Resource Names (ARN) of the resources that the path must traverse.

", @@ -46422,6 +49899,10 @@ "disable" ] }, + "StatisticType":{ + "type":"string", + "enum":["p50"] + }, "Status":{ "type":"string", "enum":[ @@ -46838,6 +50319,44 @@ "available" ] }, + "Subscription":{ + "type":"structure", + "members":{ + "Source":{ + "shape":"String", + "documentation":"

The Region or Availability Zone that's the source for the subscription. For example, us-east-1.

", + "locationName":"source" + }, + "Destination":{ + "shape":"String", + "documentation":"

The Region or Availability Zone that's the target for the subscription. For example, eu-west-1.

", + "locationName":"destination" + }, + "Metric":{ + "shape":"MetricType", + "documentation":"

The metric used for the subscription.

", + "locationName":"metric" + }, + "Statistic":{ + "shape":"StatisticType", + "documentation":"

The statistic used for the subscription.

", + "locationName":"statistic" + }, + "Period":{ + "shape":"PeriodType", + "documentation":"

The data aggregation time for the subscription.

", + "locationName":"period" + } + }, + "documentation":"

Describes an Infrastructure Performance subscription.

" + }, + "SubscriptionList":{ + "type":"list", + "member":{ + "shape":"Subscription", + "locationName":"item" + } + }, "SuccessfulInstanceCreditSpecificationItem":{ "type":"structure", "members":{ @@ -46963,7 +50482,7 @@ "locationName":"Tag" } }, - "documentation":"

The tags to apply to a resource when the resource is being created.

" + "documentation":"

The tags to apply to a resource when the resource is being created.

The Valid Values lists all the resource types that can be tagged. However, the action you're using might not support tagging all of these resource types. If you try to tag a resource type that is unsupported for the action you're using, you'll get an error.

" }, "TagSpecificationList":{ "type":"list", @@ -48581,6 +52100,11 @@ "documentation":"

The ID of the transit gateway peering attachment.

", "locationName":"transitGatewayAttachmentId" }, + "AccepterTransitGatewayAttachmentId":{ + "shape":"String", + "documentation":"

The ID of the accepter transit gateway attachment.

", + "locationName":"accepterTransitGatewayAttachmentId" + }, "RequesterTgwInfo":{ "shape":"PeeringTgwInfo", "documentation":"

Information about the requester transit gateway.

", @@ -48591,6 +52115,11 @@ "documentation":"

Information about the accepter transit gateway.

", "locationName":"accepterTgwInfo" }, + "Options":{ + "shape":"TransitGatewayPeeringAttachmentOptions", + "documentation":"

Details about the transit gateway peering attachment.

", + "locationName":"options" + }, "Status":{ "shape":"PeeringAttachmentStatus", "documentation":"

The status of the transit gateway peering attachment.

", @@ -48621,6 +52150,190 @@ "locationName":"item" } }, + "TransitGatewayPeeringAttachmentOptions":{ + "type":"structure", + "members":{ + "DynamicRouting":{ + "shape":"DynamicRoutingValue", + "documentation":"

Describes whether dynamic routing is enabled or disabled for the transit gateway peering attachment.

", + "locationName":"dynamicRouting" + } + }, + "documentation":"

Describes dynamic routing for the transit gateway peering attachment.

" + }, + "TransitGatewayPolicyRule":{ + "type":"structure", + "members":{ + "SourceCidrBlock":{ + "shape":"String", + "documentation":"

The source CIDR block for the transit gateway policy rule.

", + "locationName":"sourceCidrBlock" + }, + "SourcePortRange":{ + "shape":"String", + "documentation":"

The port range for the transit gateway policy rule. Currently this is set to * (all).

", + "locationName":"sourcePortRange" + }, + "DestinationCidrBlock":{ + "shape":"String", + "documentation":"

The destination CIDR block for the transit gateway policy rule.

", + "locationName":"destinationCidrBlock" + }, + "DestinationPortRange":{ + "shape":"String", + "documentation":"

The port range for the transit gateway policy rule. Currently this is set to * (all).

", + "locationName":"destinationPortRange" + }, + "Protocol":{ + "shape":"String", + "documentation":"

The protocol used by the transit gateway policy rule.

", + "locationName":"protocol" + }, + "MetaData":{ + "shape":"TransitGatewayPolicyRuleMetaData", + "documentation":"

The meta data tags used for the transit gateway policy rule.

", + "locationName":"metaData" + } + }, + "documentation":"

Describes a rule associated with a transit gateway policy.

" + }, + "TransitGatewayPolicyRuleMetaData":{ + "type":"structure", + "members":{ + "MetaDataKey":{ + "shape":"String", + "documentation":"

The key name for the transit gateway policy rule meta data tag.

", + "locationName":"metaDataKey" + }, + "MetaDataValue":{ + "shape":"String", + "documentation":"

The value of the key for the transit gateway policy rule meta data tag.

", + "locationName":"metaDataValue" + } + }, + "documentation":"

Describes the meta data tags associated with a transit gateway policy rule.

" + }, + "TransitGatewayPolicyTable":{ + "type":"structure", + "members":{ + "TransitGatewayPolicyTableId":{ + "shape":"TransitGatewayPolicyTableId", + "documentation":"

The ID of the transit gateway policy table.

", + "locationName":"transitGatewayPolicyTableId" + }, + "TransitGatewayId":{ + "shape":"TransitGatewayId", + "documentation":"

The ID of the transit gateway.

", + "locationName":"transitGatewayId" + }, + "State":{ + "shape":"TransitGatewayPolicyTableState", + "documentation":"

The state of the transit gateway policy table

", + "locationName":"state" + }, + "CreationTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when the transit gateway policy table was created.

", + "locationName":"creationTime" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

he key-value pairs associated with the transit gateway policy table.

", + "locationName":"tagSet" + } + }, + "documentation":"

Describes a transit gateway policy table.

" + }, + "TransitGatewayPolicyTableAssociation":{ + "type":"structure", + "members":{ + "TransitGatewayPolicyTableId":{ + "shape":"TransitGatewayPolicyTableId", + "documentation":"

The ID of the transit gateway policy table.

", + "locationName":"transitGatewayPolicyTableId" + }, + "TransitGatewayAttachmentId":{ + "shape":"TransitGatewayAttachmentId", + "documentation":"

The ID of the transit gateway attachment.

", + "locationName":"transitGatewayAttachmentId" + }, + "ResourceId":{ + "shape":"String", + "documentation":"

The resource ID of the transit gateway attachment.

", + "locationName":"resourceId" + }, + "ResourceType":{ + "shape":"TransitGatewayAttachmentResourceType", + "documentation":"

The resource type for the transit gateway policy table association.

", + "locationName":"resourceType" + }, + "State":{ + "shape":"TransitGatewayAssociationState", + "documentation":"

The state of the transit gateway policy table association.

", + "locationName":"state" + } + }, + "documentation":"

Describes a transit gateway policy table association.

" + }, + "TransitGatewayPolicyTableAssociationList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayPolicyTableAssociation", + "locationName":"item" + } + }, + "TransitGatewayPolicyTableEntry":{ + "type":"structure", + "members":{ + "PolicyRuleNumber":{ + "shape":"String", + "documentation":"

The rule number for the transit gateway policy table entry.

", + "locationName":"policyRuleNumber" + }, + "PolicyRule":{ + "shape":"TransitGatewayPolicyRule", + "documentation":"

The policy rule associated with the transit gateway policy table.

", + "locationName":"policyRule" + }, + "TargetRouteTableId":{ + "shape":"TransitGatewayRouteTableId", + "documentation":"

The ID of the target route table.

", + "locationName":"targetRouteTableId" + } + }, + "documentation":"

Describes a transit gateway policy table entry

" + }, + "TransitGatewayPolicyTableEntryList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayPolicyTableEntry", + "locationName":"item" + } + }, + "TransitGatewayPolicyTableId":{"type":"string"}, + "TransitGatewayPolicyTableIdStringList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayPolicyTableId", + "locationName":"item" + } + }, + "TransitGatewayPolicyTableList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayPolicyTable", + "locationName":"item" + } + }, + "TransitGatewayPolicyTableState":{ + "type":"string", + "enum":[ + "pending", + "available", + "deleting", + "deleted" + ] + }, "TransitGatewayPrefixListAttachment":{ "type":"structure", "members":{ @@ -48721,6 +52434,11 @@ "shape":"TransitGatewayPropagationState", "documentation":"

The state.

", "locationName":"state" + }, + "TransitGatewayRouteTableAnnouncementId":{ + "shape":"TransitGatewayRouteTableAnnouncementId", + "documentation":"

The ID of the transit gateway route table announcement.

", + "locationName":"transitGatewayRouteTableAnnouncementId" } }, "documentation":"

Describes route propagation.

" @@ -48785,6 +52503,11 @@ "documentation":"

The ID of the prefix list used for destination matches.

", "locationName":"prefixListId" }, + "TransitGatewayRouteTableAnnouncementId":{ + "shape":"TransitGatewayRouteTableAnnouncementId", + "documentation":"

The ID of the transit gateway route table announcement.

", + "locationName":"transitGatewayRouteTableAnnouncementId" + }, "TransitGatewayAttachments":{ "shape":"TransitGatewayRouteAttachmentList", "documentation":"

The attachments.

", @@ -48889,6 +52612,100 @@ }, "documentation":"

Describes a transit gateway route table.

" }, + "TransitGatewayRouteTableAnnouncement":{ + "type":"structure", + "members":{ + "TransitGatewayRouteTableAnnouncementId":{ + "shape":"TransitGatewayRouteTableAnnouncementId", + "documentation":"

The ID of the transit gateway route table announcement.

", + "locationName":"transitGatewayRouteTableAnnouncementId" + }, + "TransitGatewayId":{ + "shape":"TransitGatewayId", + "documentation":"

The ID of the transit gateway.

", + "locationName":"transitGatewayId" + }, + "CoreNetworkId":{ + "shape":"String", + "documentation":"

The ID of the core network for the transit gateway route table announcement.

", + "locationName":"coreNetworkId" + }, + "PeerTransitGatewayId":{ + "shape":"TransitGatewayId", + "documentation":"

The ID of the peer transit gateway.

", + "locationName":"peerTransitGatewayId" + }, + "PeerCoreNetworkId":{ + "shape":"String", + "documentation":"

The ID of the core network ID for the peer.

", + "locationName":"peerCoreNetworkId" + }, + "PeeringAttachmentId":{ + "shape":"TransitGatewayAttachmentId", + "documentation":"

The ID of the peering attachment.

", + "locationName":"peeringAttachmentId" + }, + "AnnouncementDirection":{ + "shape":"TransitGatewayRouteTableAnnouncementDirection", + "documentation":"

The direction for the route table announcement.

", + "locationName":"announcementDirection" + }, + "TransitGatewayRouteTableId":{ + "shape":"TransitGatewayRouteTableId", + "documentation":"

The ID of the transit gateway route table.

", + "locationName":"transitGatewayRouteTableId" + }, + "State":{ + "shape":"TransitGatewayRouteTableAnnouncementState", + "documentation":"

The state of the transit gateway announcement.

", + "locationName":"state" + }, + "CreationTime":{ + "shape":"DateTime", + "documentation":"

The timestamp when the transit gateway route table announcement was created.

", + "locationName":"creationTime" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The key-value pairs associated with the route table announcement.

", + "locationName":"tagSet" + } + }, + "documentation":"

Describes a transit gateway route table announcement.

" + }, + "TransitGatewayRouteTableAnnouncementDirection":{ + "type":"string", + "enum":[ + "outgoing", + "incoming" + ] + }, + "TransitGatewayRouteTableAnnouncementId":{"type":"string"}, + "TransitGatewayRouteTableAnnouncementIdStringList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayRouteTableAnnouncementId", + "locationName":"item" + } + }, + "TransitGatewayRouteTableAnnouncementList":{ + "type":"list", + "member":{ + "shape":"TransitGatewayRouteTableAnnouncement", + "locationName":"item" + } + }, + "TransitGatewayRouteTableAnnouncementState":{ + "type":"string", + "enum":[ + "available", + "pending", + "failing", + "failed", + "deleting", + "deleted" + ] + }, "TransitGatewayRouteTableAssociation":{ "type":"structure", "members":{ @@ -48959,6 +52776,11 @@ "shape":"TransitGatewayPropagationState", "documentation":"

The state of the resource.

", "locationName":"state" + }, + "TransitGatewayRouteTableAnnouncementId":{ + "shape":"TransitGatewayRouteTableAnnouncementId", + "documentation":"

The ID of the transit gateway route table announcement.

", + "locationName":"transitGatewayRouteTableAnnouncementId" } }, "documentation":"

Describes a route table propagation.

" @@ -49186,6 +53008,13 @@ "locationName":"item" } }, + "TrustProviderType":{ + "type":"string", + "enum":[ + "user", + "device" + ] + }, "TunnelInsideIpVersion":{ "type":"string", "enum":[ @@ -49290,6 +53119,11 @@ "shape":"String", "documentation":"

The action to take when the establishing the VPN tunnels for a VPN connection.

", "locationName":"startupAction" + }, + "LogOptions":{ + "shape":"VpnTunnelLogOptions", + "documentation":"

Options for logging VPN tunnel activity.

", + "locationName":"logOptions" } }, "documentation":"

The VPN tunnel options.

" @@ -49312,7 +53146,7 @@ }, "Ipv6Prefixes":{ "shape":"IpPrefixList", - "documentation":"

One or more IPv6 prefixes to unassign from the network interface.

", + "documentation":"

The IPv6 prefixes to unassign from the network interface.

", "locationName":"Ipv6Prefix" }, "NetworkInterfaceId":{ @@ -49542,7 +53376,7 @@ }, "GroupName":{ "shape":"SecurityGroupName", - "documentation":"

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request.

" + "documentation":"

[EC2-Classic, default VPC] The name of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

" }, "IpPermissions":{ "shape":"IpPermissionList", @@ -49667,7 +53501,7 @@ "locationName":"vpcPeeringConnectionId" } }, - "documentation":"

Describes a security group and Amazon Web Services account ID pair.

" + "documentation":"

Describes a security group and Amazon Web Services account ID pair.

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

" }, "UserIdGroupPairList":{ "type":"list", @@ -49690,6 +53524,13 @@ "locationName":"UserId" } }, + "UserTrustProviderType":{ + "type":"string", + "enum":[ + "iam-identity-center", + "oidc" + ] + }, "VCpuCount":{"type":"integer"}, "VCpuCountRange":{ "type":"structure", @@ -49747,7 +53588,7 @@ }, "ValidThreadsPerCore":{ "shape":"ThreadsPerCoreList", - "documentation":"

The valid number of threads per core that can be configured for the instance type.

", + "documentation":"

The valid number of threads per core that can be configured for the instance type.

", "locationName":"validThreadsPerCore" } }, @@ -49787,6 +53628,662 @@ "locationName":"item" } }, + "VerifiedAccessEndpoint":{ + "type":"structure", + "members":{ + "VerifiedAccessInstanceId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

", + "locationName":"verifiedAccessInstanceId" + }, + "VerifiedAccessGroupId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Verified Access group.

", + "locationName":"verifiedAccessGroupId" + }, + "VerifiedAccessEndpointId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Verified Access endpoint.

", + "locationName":"verifiedAccessEndpointId" + }, + "ApplicationDomain":{ + "shape":"String", + "documentation":"

The DNS name for users to reach your application.

", + "locationName":"applicationDomain" + }, + "EndpointType":{ + "shape":"VerifiedAccessEndpointType", + "documentation":"

The type of Amazon Web Services Verified Access endpoint. Incoming application requests will be sent to an IP address, load balancer or a network interface depending on the endpoint type specified.

", + "locationName":"endpointType" + }, + "AttachmentType":{ + "shape":"VerifiedAccessEndpointAttachmentType", + "documentation":"

The type of attachment used to provide connectivity between the Amazon Web Services Verified Access endpoint and the application.

", + "locationName":"attachmentType" + }, + "DomainCertificateArn":{ + "shape":"String", + "documentation":"

The ARN of a public TLS/SSL certificate imported into or created with ACM.

", + "locationName":"domainCertificateArn" + }, + "EndpointDomain":{ + "shape":"String", + "documentation":"

A DNS name that is generated for the endpoint.

", + "locationName":"endpointDomain" + }, + "DeviceValidationDomain":{ + "shape":"String", + "documentation":"

Returned if endpoint has a device trust provider attached.

", + "locationName":"deviceValidationDomain" + }, + "SecurityGroupIds":{ + "shape":"SecurityGroupIdList", + "documentation":"

The IDs of the security groups for the endpoint.

", + "locationName":"securityGroupIdSet" + }, + "LoadBalancerOptions":{ + "shape":"VerifiedAccessEndpointLoadBalancerOptions", + "documentation":"

The load balancer details if creating the Amazon Web Services Verified Access endpoint as load-balancertype.

", + "locationName":"loadBalancerOptions" + }, + "NetworkInterfaceOptions":{ + "shape":"VerifiedAccessEndpointEniOptions", + "documentation":"

The options for network-interface type endpoint.

", + "locationName":"networkInterfaceOptions" + }, + "Status":{ + "shape":"VerifiedAccessEndpointStatus", + "documentation":"

The endpoint status.

", + "locationName":"status" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access endpoint.

", + "locationName":"description" + }, + "CreationTime":{ + "shape":"String", + "documentation":"

The creation time.

", + "locationName":"creationTime" + }, + "LastUpdatedTime":{ + "shape":"String", + "documentation":"

The last updated time.

", + "locationName":"lastUpdatedTime" + }, + "DeletionTime":{ + "shape":"String", + "documentation":"

The deletion time.

", + "locationName":"deletionTime" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags.

", + "locationName":"tagSet" + } + }, + "documentation":"

An Amazon Web Services Verified Access endpoint specifies the application that Amazon Web Services Verified Access provides access to. It must be attached to an Amazon Web Services Verified Access group. An Amazon Web Services Verified Access endpoint must also have an attached access policy before you attached it to a group.

" + }, + "VerifiedAccessEndpointAttachmentType":{ + "type":"string", + "enum":["vpc"] + }, + "VerifiedAccessEndpointEniOptions":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{ + "shape":"NetworkInterfaceId", + "documentation":"

The ID of the network interface.

", + "locationName":"networkInterfaceId" + }, + "Protocol":{ + "shape":"VerifiedAccessEndpointProtocol", + "documentation":"

The IP protocol.

", + "locationName":"protocol" + }, + "Port":{ + "shape":"VerifiedAccessEndpointPortNumber", + "documentation":"

The IP port number.

", + "locationName":"port" + } + }, + "documentation":"

Options for a network-interface type endpoint.

" + }, + "VerifiedAccessEndpointId":{"type":"string"}, + "VerifiedAccessEndpointIdList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessEndpointId", + "locationName":"item" + } + }, + "VerifiedAccessEndpointList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessEndpoint", + "locationName":"item" + } + }, + "VerifiedAccessEndpointLoadBalancerOptions":{ + "type":"structure", + "members":{ + "Protocol":{ + "shape":"VerifiedAccessEndpointProtocol", + "documentation":"

The IP protocol.

", + "locationName":"protocol" + }, + "Port":{ + "shape":"VerifiedAccessEndpointPortNumber", + "documentation":"

The IP port number.

", + "locationName":"port" + }, + "LoadBalancerArn":{ + "shape":"String", + "documentation":"

The ARN of the load balancer.

", + "locationName":"loadBalancerArn" + }, + "SubnetIds":{ + "shape":"VerifiedAccessEndpointSubnetIdList", + "documentation":"

The IDs of the subnets.

", + "locationName":"subnetIdSet" + } + }, + "documentation":"

Describes a load balancer when creating an Amazon Web Services Verified Access endpoint using the load-balancer type.

" + }, + "VerifiedAccessEndpointPortNumber":{ + "type":"integer", + "max":65535, + "min":1 + }, + "VerifiedAccessEndpointProtocol":{ + "type":"string", + "enum":[ + "http", + "https" + ] + }, + "VerifiedAccessEndpointStatus":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"VerifiedAccessEndpointStatusCode", + "documentation":"

The status code of the Verified Access endpoint.

", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "documentation":"

The status message of the Verified Access endpoint.

", + "locationName":"message" + } + }, + "documentation":"

Describes the status of a Verified Access endpoint.

" + }, + "VerifiedAccessEndpointStatusCode":{ + "type":"string", + "enum":[ + "pending", + "active", + "updating", + "deleting", + "deleted" + ] + }, + "VerifiedAccessEndpointSubnetIdList":{ + "type":"list", + "member":{ + "shape":"SubnetId", + "locationName":"item" + } + }, + "VerifiedAccessEndpointType":{ + "type":"string", + "enum":[ + "load-balancer", + "network-interface" + ] + }, + "VerifiedAccessGroup":{ + "type":"structure", + "members":{ + "VerifiedAccessGroupId":{ + "shape":"String", + "documentation":"

The ID of the Verified Access group.

", + "locationName":"verifiedAccessGroupId" + }, + "VerifiedAccessInstanceId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

", + "locationName":"verifiedAccessInstanceId" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access group.

", + "locationName":"description" + }, + "Owner":{ + "shape":"String", + "documentation":"

The Amazon Web Services account number that owns the group.

", + "locationName":"owner" + }, + "VerifiedAccessGroupArn":{ + "shape":"String", + "documentation":"

The ARN of the Verified Access group.

", + "locationName":"verifiedAccessGroupArn" + }, + "CreationTime":{ + "shape":"String", + "documentation":"

The creation time.

", + "locationName":"creationTime" + }, + "LastUpdatedTime":{ + "shape":"String", + "documentation":"

The last updated time.

", + "locationName":"lastUpdatedTime" + }, + "DeletionTime":{ + "shape":"String", + "documentation":"

The deletion time.

", + "locationName":"deletionTime" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags.

", + "locationName":"tagSet" + } + }, + "documentation":"

Describes a Verified Access group.

" + }, + "VerifiedAccessGroupId":{"type":"string"}, + "VerifiedAccessGroupIdList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessGroupId", + "locationName":"item" + } + }, + "VerifiedAccessGroupList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessGroup", + "locationName":"item" + } + }, + "VerifiedAccessInstance":{ + "type":"structure", + "members":{ + "VerifiedAccessInstanceId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

", + "locationName":"verifiedAccessInstanceId" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access instance.

", + "locationName":"description" + }, + "VerifiedAccessTrustProviders":{ + "shape":"VerifiedAccessTrustProviderCondensedList", + "documentation":"

The IDs of the Amazon Web Services Verified Access trust providers.

", + "locationName":"verifiedAccessTrustProviderSet" + }, + "CreationTime":{ + "shape":"String", + "documentation":"

The creation time.

", + "locationName":"creationTime" + }, + "LastUpdatedTime":{ + "shape":"String", + "documentation":"

The last updated time.

", + "locationName":"lastUpdatedTime" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags.

", + "locationName":"tagSet" + } + }, + "documentation":"

Describes a Verified Access instance.

" + }, + "VerifiedAccessInstanceId":{"type":"string"}, + "VerifiedAccessInstanceIdList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessInstanceId", + "locationName":"item" + } + }, + "VerifiedAccessInstanceList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessInstance", + "locationName":"item" + } + }, + "VerifiedAccessInstanceLoggingConfiguration":{ + "type":"structure", + "members":{ + "VerifiedAccessInstanceId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Verified Access instance.

", + "locationName":"verifiedAccessInstanceId" + }, + "AccessLogs":{ + "shape":"VerifiedAccessLogs", + "documentation":"

Details about the logging options.

", + "locationName":"accessLogs" + } + }, + "documentation":"

Describes logging options for an Amazon Web Services Verified Access instance.

" + }, + "VerifiedAccessInstanceLoggingConfigurationList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessInstanceLoggingConfiguration", + "locationName":"item" + } + }, + "VerifiedAccessLogCloudWatchLogsDestination":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether logging is enabled.

", + "locationName":"enabled" + }, + "DeliveryStatus":{ + "shape":"VerifiedAccessLogDeliveryStatus", + "documentation":"

The delivery status for access logs.

", + "locationName":"deliveryStatus" + }, + "LogGroup":{ + "shape":"String", + "documentation":"

The ID of the CloudWatch Logs log group.

", + "locationName":"logGroup" + } + }, + "documentation":"

Options for CloudWatch Logs as a logging destination.

" + }, + "VerifiedAccessLogCloudWatchLogsDestinationOptions":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether logging is enabled.

" + }, + "LogGroup":{ + "shape":"String", + "documentation":"

The ID of the CloudWatch Logs log group.

" + } + }, + "documentation":"

Options for CloudWatch Logs as a logging destination.

" + }, + "VerifiedAccessLogDeliveryStatus":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"VerifiedAccessLogDeliveryStatusCode", + "documentation":"

The status code.

", + "locationName":"code" + }, + "Message":{ + "shape":"String", + "documentation":"

The status message.

", + "locationName":"message" + } + }, + "documentation":"

Describes a log delivery status.

" + }, + "VerifiedAccessLogDeliveryStatusCode":{ + "type":"string", + "enum":[ + "success", + "failed" + ] + }, + "VerifiedAccessLogKinesisDataFirehoseDestination":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether logging is enabled.

", + "locationName":"enabled" + }, + "DeliveryStatus":{ + "shape":"VerifiedAccessLogDeliveryStatus", + "documentation":"

The delivery status.

", + "locationName":"deliveryStatus" + }, + "DeliveryStream":{ + "shape":"String", + "documentation":"

The ID of the delivery stream.

", + "locationName":"deliveryStream" + } + }, + "documentation":"

Options for Kinesis as a logging destination.

" + }, + "VerifiedAccessLogKinesisDataFirehoseDestinationOptions":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether logging is enabled.

" + }, + "DeliveryStream":{ + "shape":"String", + "documentation":"

The ID of the delivery stream.

" + } + }, + "documentation":"

Describes Amazon Kinesis Data Firehose logging options.

" + }, + "VerifiedAccessLogOptions":{ + "type":"structure", + "members":{ + "S3":{ + "shape":"VerifiedAccessLogS3DestinationOptions", + "documentation":"

Sends Verified Access logs to Amazon S3.

" + }, + "CloudWatchLogs":{ + "shape":"VerifiedAccessLogCloudWatchLogsDestinationOptions", + "documentation":"

Sends Verified Access logs to CloudWatch Logs.

" + }, + "KinesisDataFirehose":{ + "shape":"VerifiedAccessLogKinesisDataFirehoseDestinationOptions", + "documentation":"

Sends Verified Access logs to Kinesis.

" + } + }, + "documentation":"

Describes the destinations for Verified Access logs.

" + }, + "VerifiedAccessLogS3Destination":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether logging is enabled.

", + "locationName":"enabled" + }, + "DeliveryStatus":{ + "shape":"VerifiedAccessLogDeliveryStatus", + "documentation":"

The delivery status.

", + "locationName":"deliveryStatus" + }, + "BucketName":{ + "shape":"String", + "documentation":"

The bucket name.

", + "locationName":"bucketName" + }, + "Prefix":{ + "shape":"String", + "documentation":"

The bucket prefix.

", + "locationName":"prefix" + }, + "BucketOwner":{ + "shape":"String", + "documentation":"

The Amazon Web Services account number that owns the bucket.

", + "locationName":"bucketOwner" + } + }, + "documentation":"

Options for Amazon S3 as a logging destination.

" + }, + "VerifiedAccessLogS3DestinationOptions":{ + "type":"structure", + "required":["Enabled"], + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether logging is enabled.

" + }, + "BucketName":{ + "shape":"String", + "documentation":"

The bucket name.

" + }, + "Prefix":{ + "shape":"String", + "documentation":"

The bucket prefix.

" + }, + "BucketOwner":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services account that owns the Amazon S3 bucket.

" + } + }, + "documentation":"

Options for Amazon S3 as a logging destination.

" + }, + "VerifiedAccessLogs":{ + "type":"structure", + "members":{ + "S3":{ + "shape":"VerifiedAccessLogS3Destination", + "documentation":"

Amazon S3 logging options.

", + "locationName":"s3" + }, + "CloudWatchLogs":{ + "shape":"VerifiedAccessLogCloudWatchLogsDestination", + "documentation":"

CloudWatch Logs logging destination.

", + "locationName":"cloudWatchLogs" + }, + "KinesisDataFirehose":{ + "shape":"VerifiedAccessLogKinesisDataFirehoseDestination", + "documentation":"

Kinesis logging destination.

", + "locationName":"kinesisDataFirehose" + } + }, + "documentation":"

Describes the destinations for Verified Access logs.

" + }, + "VerifiedAccessTrustProvider":{ + "type":"structure", + "members":{ + "VerifiedAccessTrustProviderId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Verified Access trust provider.

", + "locationName":"verifiedAccessTrustProviderId" + }, + "Description":{ + "shape":"String", + "documentation":"

A description for the Amazon Web Services Verified Access trust provider.

", + "locationName":"description" + }, + "TrustProviderType":{ + "shape":"TrustProviderType", + "documentation":"

The type of Verified Access trust provider.

", + "locationName":"trustProviderType" + }, + "UserTrustProviderType":{ + "shape":"UserTrustProviderType", + "documentation":"

The type of user-based trust provider.

", + "locationName":"userTrustProviderType" + }, + "DeviceTrustProviderType":{ + "shape":"DeviceTrustProviderType", + "documentation":"

The type of device-based trust provider.

", + "locationName":"deviceTrustProviderType" + }, + "OidcOptions":{ + "shape":"OidcOptions", + "documentation":"

The OpenID Connect details for an oidc-type, user-identity based trust provider.

", + "locationName":"oidcOptions" + }, + "DeviceOptions":{ + "shape":"DeviceOptions", + "documentation":"

The options for device-identity type trust provider.

", + "locationName":"deviceOptions" + }, + "PolicyReferenceName":{ + "shape":"String", + "documentation":"

The identifier to be used when working with policy rules.

", + "locationName":"policyReferenceName" + }, + "CreationTime":{ + "shape":"String", + "documentation":"

The creation time.

", + "locationName":"creationTime" + }, + "LastUpdatedTime":{ + "shape":"String", + "documentation":"

The last updated time.

", + "locationName":"lastUpdatedTime" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags.

", + "locationName":"tagSet" + } + }, + "documentation":"

Describes a Verified Access trust provider.

" + }, + "VerifiedAccessTrustProviderCondensed":{ + "type":"structure", + "members":{ + "VerifiedAccessTrustProviderId":{ + "shape":"String", + "documentation":"

The ID of the trust provider.

", + "locationName":"verifiedAccessTrustProviderId" + }, + "Description":{ + "shape":"String", + "documentation":"

The description of trust provider.

", + "locationName":"description" + }, + "TrustProviderType":{ + "shape":"TrustProviderType", + "documentation":"

The type of trust provider (user- or device-based).

", + "locationName":"trustProviderType" + }, + "UserTrustProviderType":{ + "shape":"UserTrustProviderType", + "documentation":"

The type of user-based trust provider.

", + "locationName":"userTrustProviderType" + }, + "DeviceTrustProviderType":{ + "shape":"DeviceTrustProviderType", + "documentation":"

The type of device-based trust provider.

", + "locationName":"deviceTrustProviderType" + } + }, + "documentation":"

Condensed information about a trust provider.

" + }, + "VerifiedAccessTrustProviderCondensedList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessTrustProviderCondensed", + "locationName":"item" + } + }, + "VerifiedAccessTrustProviderId":{"type":"string"}, + "VerifiedAccessTrustProviderIdList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessTrustProviderId", + "locationName":"item" + } + }, + "VerifiedAccessTrustProviderList":{ + "type":"list", + "member":{ + "shape":"VerifiedAccessTrustProvider", + "locationName":"item" + } + }, "VersionDescription":{ "type":"string", "max":255, @@ -50447,7 +54944,8 @@ "type":"string", "enum":[ "enableDnsSupport", - "enableDnsHostnames" + "enableDnsHostnames", + "enableNetworkAddressUsageMetrics" ] }, "VpcCidrAssociationId":{"type":"string"}, @@ -50525,7 +55023,7 @@ "locationName":"vpcId" } }, - "documentation":"

Describes whether a VPC is enabled for ClassicLink.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Describes whether a VPC is enabled for ClassicLink.

" }, "VpcClassicLinkIdList":{ "type":"list", @@ -50689,6 +55187,16 @@ "shape":"IpAddressType", "documentation":"

The IP address type for the endpoint.

", "locationName":"ipAddressType" + }, + "VpcEndpointConnectionId":{ + "shape":"String", + "documentation":"

The ID of the VPC endpoint connection.

", + "locationName":"vpcEndpointConnectionId" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags.

", + "locationName":"tagSet" } }, "documentation":"

Describes a VPC endpoint connection to a service.

" @@ -50850,6 +55358,7 @@ "locationName":"item" } }, + "VpcPeeringConnectionIdWithResolver":{"type":"string"}, "VpcPeeringConnectionList":{ "type":"list", "member":{ @@ -50876,7 +55385,7 @@ "locationName":"allowEgressFromLocalVpcToRemoteClassicLink" } }, - "documentation":"

Describes the VPC peering connection options.

" + "documentation":"

We are retiring EC2-Classic. We recommend that you migrate from EC2-Classic to a VPC. For more information, see Migrate from EC2-Classic to a VPC in the Amazon Elastic Compute Cloud User Guide.

Describes the VPC peering connection options.

" }, "VpcPeeringConnectionStateReason":{ "type":"structure", @@ -51127,6 +55636,16 @@ "documentation":"

The IPv6 CIDR on the Amazon Web Services side of the VPN connection.

", "locationName":"remoteIpv6NetworkCidr" }, + "OutsideIpAddressType":{ + "shape":"String", + "documentation":"

The type of IPv4 address assigned to the outside interface of the customer gateway.

Valid values: PrivateIpv4 | PublicIpv4

Default: PublicIpv4

", + "locationName":"outsideIpAddressType" + }, + "TransportTransitGatewayAttachmentId":{ + "shape":"String", + "documentation":"

The transit gateway attachment ID in use for the VPN tunnel.

", + "locationName":"transportTransitGatewayAttachmentId" + }, "TunnelInsideIpVersion":{ "shape":"TunnelInsideIpVersion", "documentation":"

Indicates whether the VPN tunnels process IPv4 or IPv6 traffic.

", @@ -51175,6 +55694,14 @@ "RemoteIpv6NetworkCidr":{ "shape":"String", "documentation":"

The IPv6 CIDR on the Amazon Web Services side of the VPN connection.

Default: ::/0

" + }, + "OutsideIpAddressType":{ + "shape":"String", + "documentation":"

The type of IPv4 address assigned to the outside interface of the customer gateway device.

Valid values: PrivateIpv4 | PublicIpv4

Default: PublicIpv4

" + }, + "TransportTransitGatewayAttachmentId":{ + "shape":"TransitGatewayAttachmentId", + "documentation":"

The transit gateway attachment ID to use for the VPN tunnel.

Required if OutsideIpAddressType is set to PrivateIpv4.

" } }, "documentation":"

Describes VPN connection options.

" @@ -51287,6 +55814,27 @@ "type":"string", "enum":["Static"] }, + "VpnTunnelLogOptions":{ + "type":"structure", + "members":{ + "CloudWatchLogOptions":{ + "shape":"CloudWatchLogOptions", + "documentation":"

Options for sending VPN tunnel logs to CloudWatch.

", + "locationName":"cloudWatchLogOptions" + } + }, + "documentation":"

Options for logging VPN tunnel activity.

" + }, + "VpnTunnelLogOptionsSpecification":{ + "type":"structure", + "members":{ + "CloudWatchLogOptions":{ + "shape":"CloudWatchLogOptionsSpecification", + "documentation":"

Options for sending VPN tunnel logs to CloudWatch.

" + } + }, + "documentation":"

Options for logging VPN tunnel activity.

" + }, "VpnTunnelOptionsSpecification":{ "type":"structure", "members":{ @@ -51368,6 +55916,10 @@ "StartupAction":{ "shape":"String", "documentation":"

The action to take when the establishing the tunnel for the VPN connection. By default, your customer gateway device must initiate the IKE negotiation and bring up the tunnel. Specify start for Amazon Web Services to initiate the IKE negotiation.

Valid Values: add | start

Default: add

" + }, + "LogOptions":{ + "shape":"VpnTunnelLogOptionsSpecification", + "documentation":"

Options for logging VPN tunnel activity.

" } }, "documentation":"

The tunnel options for a single VPN tunnel.

" diff --git a/botocore/data/ecr-public/2020-10-30/endpoint-rule-set-1.json b/botocore/data/ecr-public/2020-10-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..f49c6499 --- /dev/null +++ b/botocore/data/ecr-public/2020-10-30/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-public-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-public-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-public.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-public.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ecr-public/2020-10-30/examples-1.json b/botocore/data/ecr-public/2020-10-30/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/ecr-public/2020-10-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/ecr/2015-09-21/endpoint-rule-set-1.json b/botocore/data/ecr/2015-09-21/endpoint-rule-set-1.json new file mode 100644 index 00000000..99aba235 --- /dev/null +++ b/botocore/data/ecr/2015-09-21/endpoint-rule-set-1.json @@ -0,0 +1,479 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dkr-us-east-2" + ] + } + ], + "endpoint": { + "url": "https://ecr-fips.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dkr-us-east-1" + ] + } + ], + "endpoint": { + "url": "https://ecr-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dkr-us-west-2" + ] + } + ], + "endpoint": { + "url": "https://ecr-fips.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dkr-us-west-1" + ] + } + ], + "endpoint": { + "url": "https://ecr-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ecr-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dkr-us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://ecr-fips.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dkr-us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://ecr-fips.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ecr-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.ecr.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ecs/2014-11-13/endpoint-rule-set-1.json b/botocore/data/ecs/2014-11-13/endpoint-rule-set-1.json new file mode 100644 index 00000000..626cb0b6 --- /dev/null +++ b/botocore/data/ecs/2014-11-13/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ecs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ecs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ecs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ecs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ecs/2014-11-13/examples-1.json b/botocore/data/ecs/2014-11-13/examples-1.json index c14ba44a..0fbf7b36 100644 --- a/botocore/data/ecs/2014-11-13/examples-1.json +++ b/botocore/data/ecs/2014-11-13/examples-1.json @@ -155,6 +155,51 @@ "title": "To create a new service behind a load balancer" } ], + "DeleteAccountSetting": [ + { + "input": { + "name": "serviceLongArnFormat" + }, + "output": { + "setting": { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::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:::user/principalName" + }, + "output": { + "setting": { + "name": "containerInstanceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::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": { @@ -537,6 +582,75 @@ "title": "To describe a task" } ], + "ListAccountSettings": [ + { + "input": { + "effectiveSettings": true + }, + "output": { + "settings": [ + { + "name": "containerInstanceLongArnFormat", + "value": "disabled", + "principalArn": "arn:aws:iam:::user/principalName" + }, + { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::user/principalName" + }, + { + "name": "taskLongArnFormat", + "value": "disabled", + "principalArn": "arn:aws:iam:::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:::user/principalName" + }, + "output": { + "settings": [ + { + "name": "containerInstanceLongArnFormat", + "value": "disabled", + "principalArn": "arn:aws:iam:::user/principalName" + }, + { + "name": "serviceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::user/principalName" + }, + { + "name": "taskLongArnFormat", + "value": "disabled", + "principalArn": "arn:aws:iam:::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": { @@ -600,6 +714,30 @@ "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": { @@ -732,6 +870,77 @@ "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:::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:::user/principalName" + }, + "output": { + "setting": { + "name": "containerInstanceLongArnFormat", + "value": "enabled", + "principalArn": "arn:aws:iam:::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:::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": { @@ -843,6 +1052,51 @@ "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": { diff --git a/botocore/data/ecs/2014-11-13/paginators-1.json b/botocore/data/ecs/2014-11-13/paginators-1.json index 6aa47513..cd66d4ab 100644 --- a/botocore/data/ecs/2014-11-13/paginators-1.json +++ b/botocore/data/ecs/2014-11-13/paginators-1.json @@ -47,6 +47,12 @@ "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/botocore/data/ecs/2014-11-13/service-2.json b/botocore/data/ecs/2014-11-13/service-2.json index 047a6e13..74984c30 100644 --- a/botocore/data/ecs/2014-11-13/service-2.json +++ b/botocore/data/ecs/2014-11-13/service-2.json @@ -43,7 +43,7 @@ {"shape":"ClientException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

When you call the CreateCluster API operation, Amazon ECS attempts to create the Amazon ECS service-linked role for your account. This is so that it can manage required resources in other Amazon Web Services services on your behalf. However, if the IAM user that makes the call doesn't have permissions to create the service-linked role, it isn't created. For more information, see Using Service-Linked Roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Creates a new Amazon ECS cluster. By default, your account receives a default cluster when you launch your first container instance. However, you can create your own cluster with a unique name with the CreateCluster action.

When you call the CreateCluster API operation, Amazon ECS attempts to create the Amazon ECS service-linked role for your account. This is so that it can manage required resources in other Amazon Web Services services on your behalf. However, if the IAM user that makes the call doesn't have permissions to create the service-linked role, it isn't created. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" }, "CreateService":{ "name":"CreateService", @@ -61,9 +61,10 @@ {"shape":"UnsupportedFeatureException"}, {"shape":"PlatformUnknownException"}, {"shape":"PlatformTaskDefinitionIncompatibilityException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"NamespaceNotFoundException"} ], - "documentation":"

Runs and maintains your desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, see the UpdateService action.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see Service Load Balancing in the Amazon Elastic Container Service Developer Guide.

Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

There are two service scheduler strategies available:

  • REPLICA - The replica scheduling strategy places and maintains your desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see Service Scheduler Concepts in the Amazon Elastic Container Service Developer Guide.

  • DAEMON - The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It also stops tasks that don't meet the placement constraints. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see Service Scheduler Concepts in the Amazon Elastic Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. The deployment is initiated by changing properties. For example, the deployment might be initiated by the task definition or by your desired count of a service. This is done with an UpdateService operation. The default value for a replica service for minimumHealthyPercent is 100%. The default value for a daemon service for minimumHealthyPercent is 0%.

If a service uses the ECS deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING state during a deployment. Specifically, it represents it as a percentage of your desired number of tasks (rounded up to the nearest integer). This happens when any of your container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. Using this parameter, you can deploy without using additional cluster capacity. For example, if you set your service to have desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. If they're in the RUNNING state, tasks for services that don't use a load balancer are considered healthy . If they're in the RUNNING state and reported as healthy by the load balancer, tasks for services that do use a load balancer are considered healthy . The default value for minimum healthy percent is 100%.

If a service uses the ECS deployment controller, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING or PENDING state during a deployment. Specifically, it represents it as a percentage of the desired number of tasks (rounded down to the nearest integer). This happens when any of your container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. Using this parameter, you can define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.

If a service uses either the CODE_DEPLOY or EXTERNAL deployment controller types and tasks that use the EC2 launch type, the minimum healthy percent and maximum percent values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the RUNNING state. This is while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used. This is the case even if they're currently visible when describing your service.

When creating a service that uses the EXTERNAL deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

When the service scheduler launches new tasks, it determines task placement in your cluster using the following logic:

  • Determine which of the container instances in your cluster can support the task definition of your service. For example, they have the required CPU, memory, ports, and container instance attributes.

  • By default, the service scheduler attempts to balance tasks across Availability Zones in this manner. This is the case even if you can choose a different placement strategy with the placementStrategy parameter.

    • Sort the valid container instances, giving priority to instances that have the fewest number of running tasks for this service in their respective Availability Zone. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.

    • Place the new service task on a valid container instance in an optimal Availability Zone based on the previous steps, favoring container instances with the fewest number of running tasks for this service.

" + "documentation":"

Runs and maintains your desired number of tasks from a specified task definition. If the number of tasks running in a service drops below the desiredCount, Amazon ECS runs another copy of the task in the specified cluster. To update an existing service, see the UpdateService action.

In addition to maintaining the desired count of tasks in your service, you can optionally run your service behind one or more load balancers. The load balancers distribute traffic across the tasks that are associated with the service. For more information, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

There are two service scheduler strategies available:

  • REPLICA - The replica scheduling strategy places and maintains your desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

  • DAEMON - The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It also stops tasks that don't meet the placement constraints. When using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

You can optionally specify a deployment configuration for your service. The deployment is initiated by changing properties. For example, the deployment might be initiated by the task definition or by your desired count of a service. This is done with an UpdateService operation. The default value for a replica service for minimumHealthyPercent is 100%. The default value for a daemon service for minimumHealthyPercent is 0%.

If a service uses the ECS deployment controller, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING state during a deployment. Specifically, it represents it as a percentage of your desired number of tasks (rounded up to the nearest integer). This happens when any of your container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. Using this parameter, you can deploy without using additional cluster capacity. For example, if you set your service to have desired number of four tasks and a minimum healthy percent of 50%, the scheduler might stop two existing tasks to free up cluster capacity before starting two new tasks. If they're in the RUNNING state, tasks for services that don't use a load balancer are considered healthy . If they're in the RUNNING state and reported as healthy by the load balancer, tasks for services that do use a load balancer are considered healthy . The default value for minimum healthy percent is 100%.

If a service uses the ECS deployment controller, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING or PENDING state during a deployment. Specifically, it represents it as a percentage of the desired number of tasks (rounded down to the nearest integer). This happens when any of your container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. Using this parameter, you can define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.

If a service uses either the CODE_DEPLOY or EXTERNAL deployment controller types and tasks that use the EC2 launch type, the minimum healthy percent and maximum percent values are used only to define the lower and upper limit on the number of the tasks in the service that remain in the RUNNING state. This is while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the minimum healthy percent and maximum percent values aren't used. This is the case even if they're currently visible when describing your service.

When creating a service that uses the EXTERNAL deployment controller, you can specify only parameters that aren't controlled at the task set level. The only required parameter is the service name. You control your services using the CreateTaskSet operation. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

When the service scheduler launches new tasks, it determines task placement. For information about task placement and task placement strategies, see Amazon ECS task placement in the Amazon Elastic Container Service Developer Guide.

" }, "CreateTaskSet":{ "name":"CreateTaskSet", @@ -83,9 +84,10 @@ {"shape":"PlatformTaskDefinitionIncompatibilityException"}, {"shape":"AccessDeniedException"}, {"shape":"ServiceNotFoundException"}, - {"shape":"ServiceNotActiveException"} + {"shape":"ServiceNotActiveException"}, + {"shape":"NamespaceNotFoundException"} ], - "documentation":"

Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Create a task set in the specified cluster and service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

" }, "DeleteAccountSetting":{ "name":"DeleteAccountSetting", @@ -188,7 +190,7 @@ {"shape":"ServiceNotActiveException"}, {"shape":"TaskSetNotFoundException"} ], - "documentation":"

Deletes a specified task set within a service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Deletes a specified task set within a service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

" }, "DeregisterContainerInstance":{ "name":"DeregisterContainerInstance", @@ -332,7 +334,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ClusterNotFoundException"} ], - "documentation":"

Describes a specified task or tasks.

" + "documentation":"

Describes a specified task or tasks.

Currently, stopped tasks appear in the returned results for at least one hour.

" }, "DiscoverPollEndpoint":{ "name":"DiscoverPollEndpoint", @@ -364,7 +366,26 @@ {"shape":"ClusterNotFoundException"}, {"shape":"TargetNotConnectedException"} ], - "documentation":"

Runs a command remotely on a container within a task.

" + "documentation":"

Runs a command remotely on a container within a task.

If you use a condition key in your IAM policy to refine the conditions for the policy statement, for example limit the actions to a specific cluster, you receive an AccessDeniedException when there is a mismatch between the condition key value and the corresponding parameter value.

" + }, + "GetTaskProtection":{ + "name":"GetTaskProtection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTaskProtectionRequest"}, + "output":{"shape":"GetTaskProtectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ClientException"}, + {"shape":"ClusterNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServerException"}, + {"shape":"UnsupportedFeatureException"} + ], + "documentation":"

Retrieves the protection status of tasks in an Amazon ECS service.

" }, "ListAccountSettings":{ "name":"ListAccountSettings", @@ -442,6 +463,22 @@ ], "documentation":"

Returns a list of services. You can filter the results by cluster, launch type, and scheduling strategy.

" }, + "ListServicesByNamespace":{ + "name":"ListServicesByNamespace", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListServicesByNamespaceRequest"}, + "output":{"shape":"ListServicesByNamespaceResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ClientException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NamespaceNotFoundException"} + ], + "documentation":"

This operation lists all of the services that are associated with a Cloud Map namespace. This list might include services in different clusters. In contrast, ListServices can only list services in one cluster at a time. If you need to filter the list of services in a single cluster by various parameters, use ListServices. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -797,7 +834,7 @@ {"shape":"NoUpdateAvailableException"}, {"shape":"MissingVersionException"} ], - "documentation":"

Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent doesn't interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system.

The UpdateContainerAgent API isn't supported for container instances using the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the container agent, you can update the ecs-init package. This updates the agent. For more information, see Updating the Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

The UpdateContainerAgent API requires an Amazon ECS-optimized AMI or Amazon Linux AMI with the ecs-init service installed and running. For help updating the Amazon ECS container agent on other operating systems, see Manually updating the Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Updates the Amazon ECS container agent on a specified container instance. Updating the Amazon ECS container agent doesn't interrupt running tasks or services on the container instance. The process for updating the agent differs depending on whether your container instance was launched with the Amazon ECS-optimized AMI or another operating system.

The UpdateContainerAgent API isn't supported for container instances using the Amazon ECS-optimized Amazon Linux 2 (arm64) AMI. To update the container agent, you can update the ecs-init package. This updates the agent. For more information, see Updating the Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

Agent updates with the UpdateContainerAgent API operation do not apply to Windows container instances. We recommend that you launch new container instances to update the agent version in your Windows clusters.

The UpdateContainerAgent API requires an Amazon ECS-optimized AMI or Amazon Linux AMI with the ecs-init service installed and running. For help updating the Amazon ECS container agent on other operating systems, see Manually updating the Amazon ECS container agent in the Amazon Elastic Container Service Developer Guide.

" }, "UpdateContainerInstancesState":{ "name":"UpdateContainerInstancesState", @@ -832,9 +869,10 @@ {"shape":"ServiceNotActiveException"}, {"shape":"PlatformUnknownException"}, {"shape":"PlatformTaskDefinitionIncompatibilityException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"NamespaceNotFoundException"} ], - "documentation":"

Updating the task placement strategies and constraints on an Amazon ECS service remains in preview and is a Beta Service as defined by and subject to the Beta Service Participation Service Terms located at https://aws.amazon.com/service-terms (\"Beta Terms\"). These Beta Terms apply to your participation in this preview.

Modifies the parameters of a service.

For services using the rolling update (ECS) you can update the desired count, deployment configuration, network configuration, load balancers, service registries, enable ECS managed tags option, propagate tags option, task placement constraints and strategies, and task definition. When you update any of these parameters, Amazon ECS starts new tasks with the new configuration.

For services using the blue/green (CODE_DEPLOY) deployment controller, only the desired count, deployment configuration, health check grace period, task placement constraints and strategies, enable ECS managed tags option, and propagate tags can be updated using this API. If the network configuration, platform version, task definition, or load balancer need to be updated, create a new CodeDeploy deployment. For more information, see CreateDeployment in the CodeDeploy API Reference.

For services using an external deployment controller, you can update only the desired count, task placement constraints and strategies, health check grace period, enable ECS managed tags option, and propagate tags option, using this API. If the launch type, load balancer, network configuration, platform version, or task definition need to be updated, create a new task set For more information, see CreateTaskSet.

You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter.

If you have updated the Docker image of your application, you can create a new task definition with that image and deploy it to your service. The service scheduler uses the minimum healthy percent and maximum percent parameters (in the service's deployment configuration) to determine the deployment strategy.

If your updated Docker image uses the same tag as what is in the existing task definition for your service (for example, my_image:latest), you don't need to create a new revision of your task definition. You can update the service using the forceNewDeployment option. The new tasks launched by the deployment pull the current image/tag combination from your repository when they start.

You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy.

  • If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during a deployment. For example, if desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

  • The maximumPercent parameter represents an upper limit on the number of running tasks during a deployment. You can use it to define the deployment batch size. For example, if desiredCount is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available).

When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout. After this, SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic.

  • Determine which of the container instances in your cluster can support your service's task definition. For example, they have the required CPU, memory, ports, and container instance attributes.

  • By default, the service scheduler attempts to balance tasks across Availability Zones in this manner even though you can choose a different placement strategy.

    • Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.

    • Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

  • Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination.

  • Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service.

You must have a service-linked role when you update any of the following service properties. If you specified a custom IAM role when you created the service, Amazon ECS automatically replaces the roleARN associated with the service with the ARN of your service-linked role. For more information, see Service-linked roles in the Amazon Elastic Container Service Developer Guide.

  • loadBalancers,

  • serviceRegistries

" + "documentation":"

Modifies the parameters of a service.

For services using the rolling update (ECS) you can update the desired count, deployment configuration, network configuration, load balancers, service registries, enable ECS managed tags option, propagate tags option, task placement constraints and strategies, and task definition. When you update any of these parameters, Amazon ECS starts new tasks with the new configuration.

For services using the blue/green (CODE_DEPLOY) deployment controller, only the desired count, deployment configuration, health check grace period, task placement constraints and strategies, enable ECS managed tags option, and propagate tags can be updated using this API. If the network configuration, platform version, task definition, or load balancer need to be updated, create a new CodeDeploy deployment. For more information, see CreateDeployment in the CodeDeploy API Reference.

For services using an external deployment controller, you can update only the desired count, task placement constraints and strategies, health check grace period, enable ECS managed tags option, and propagate tags option, using this API. If the launch type, load balancer, network configuration, platform version, or task definition need to be updated, create a new task set For more information, see CreateTaskSet.

You can add to or subtract from the number of instantiations of a task definition in a service by specifying the cluster that the service is running in and a new desiredCount parameter.

If you have updated the Docker image of your application, you can create a new task definition with that image and deploy it to your service. The service scheduler uses the minimum healthy percent and maximum percent parameters (in the service's deployment configuration) to determine the deployment strategy.

If your updated Docker image uses the same tag as what is in the existing task definition for your service (for example, my_image:latest), you don't need to create a new revision of your task definition. You can update the service using the forceNewDeployment option. The new tasks launched by the deployment pull the current image/tag combination from your repository when they start.

You can also update the deployment configuration of a service. When a deployment is triggered by updating the task definition of a service, the service scheduler uses the deployment configuration parameters, minimumHealthyPercent and maximumPercent, to determine the deployment strategy.

  • If minimumHealthyPercent is below 100%, the scheduler can ignore desiredCount temporarily during a deployment. For example, if desiredCount is four tasks, a minimum of 50% allows the scheduler to stop two existing tasks before starting two new tasks. Tasks for services that don't use a load balancer are considered healthy if they're in the RUNNING state. Tasks for services that use a load balancer are considered healthy if they're in the RUNNING state and are reported as healthy by the load balancer.

  • The maximumPercent parameter represents an upper limit on the number of running tasks during a deployment. You can use it to define the deployment batch size. For example, if desiredCount is four tasks, a maximum of 200% starts four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available).

When UpdateService stops a task during a deployment, the equivalent of docker stop is issued to the containers running in the task. This results in a SIGTERM and a 30-second timeout. After this, SIGKILL is sent and the containers are forcibly stopped. If the container handles the SIGTERM gracefully and exits within 30 seconds from receiving it, no SIGKILL is sent.

When the service scheduler launches new tasks, it determines task placement in your cluster with the following logic.

  • Determine which of the container instances in your cluster can support your service's task definition. For example, they have the required CPU, memory, ports, and container instance attributes.

  • By default, the service scheduler attempts to balance tasks across Availability Zones in this manner even though you can choose a different placement strategy.

    • Sort the valid container instances by the fewest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have zero, valid container instances in either zone B or C are considered optimal for placement.

    • Place the new service task on a valid container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the fewest number of running tasks for this service.

When the service scheduler stops running tasks, it attempts to maintain balance across the Availability Zones in your cluster using the following logic:

  • Sort the container instances by the largest number of running tasks for this service in the same Availability Zone as the instance. For example, if zone A has one running service task and zones B and C each have two, container instances in either zone B or C are considered optimal for termination.

  • Stop the task on a container instance in an optimal Availability Zone (based on the previous steps), favoring container instances with the largest number of running tasks for this service.

You must have a service-linked role when you update any of the following service properties. If you specified a custom IAM role when you created the service, Amazon ECS automatically replaces the roleARN associated with the service with the ARN of your service-linked role. For more information, see Service-linked roles in the Amazon Elastic Container Service Developer Guide.

  • loadBalancers,

  • serviceRegistries

" }, "UpdateServicePrimaryTaskSet":{ "name":"UpdateServicePrimaryTaskSet", @@ -857,6 +895,25 @@ ], "documentation":"

Modifies which task set in a service is the primary task set. Any parameters that are updated on the primary task set in a service will transition to the service. This is used when a service uses the EXTERNAL deployment controller type. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

" }, + "UpdateTaskProtection":{ + "name":"UpdateTaskProtection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateTaskProtectionRequest"}, + "output":{"shape":"UpdateTaskProtectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ClientException"}, + {"shape":"ClusterNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServerException"}, + {"shape":"UnsupportedFeatureException"} + ], + "documentation":"

Updates the protection status of a task. You can set protectionEnabled to true to protect your task from termination during scale-in events from Service Autoscaling or deployments.

Task-protection, by default, expires after 2 hours at which point Amazon ECS unsets the protectionEnabled property making the task eligible for termination by a subsequent scale-in event.

You can specify a custom expiration period for task protection from 1 minute to up to 2,880 minutes (48 hours). To specify the custom expiration period, set the expiresInMinutes property. The expiresInMinutes property is always reset when you invoke this operation for a task that already has protectionEnabled set to true. You can keep extending the protection expiration period of a task by invoking this operation repeatedly.

To learn more about Amazon ECS task protection, see Task scale-in protection in the Amazon Elastic Container Service Developer Guide .

This operation is only supported for tasks belonging to an Amazon ECS service. Invoking this operation for a standalone task will result in an TASK_NOT_VALID failure. For more information, see API failure reasons.

If you prefer to set task protection from within the container, we recommend using the Task scale-in protection endpoint.

" + }, "UpdateTaskSet":{ "name":"UpdateTaskSet", "http":{ @@ -898,6 +955,14 @@ "FAILED" ] }, + "ApplicationProtocol":{ + "type":"string", + "enum":[ + "http", + "http2", + "grpc" + ] + }, "AssignPublicIp":{ "type":"string", "enum":[ @@ -967,7 +1032,7 @@ }, "value":{ "shape":"String", - "documentation":"

The value of the attribute. The value must contain between 1 and 128 characters. It can contain letters (uppercase and lowercase), numbers, hyphens (-), underscores (_), periods (.), at signs (@), forward slashes (/), back slashes (\\), colons (:), or spaces. The value can't can't start or end with a space.

" + "documentation":"

The value of the attribute. The value must contain between 1 and 128 characters. It can contain letters (uppercase and lowercase), numbers, hyphens (-), underscores (_), periods (.), at signs (@), forward slashes (/), back slashes (\\), colons (:), or spaces. The value can't start or end with a space.

" }, "targetType":{ "shape":"TargetType", @@ -1176,7 +1241,7 @@ "members":{ "clusterArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) that identifies the cluster. The ARN contains the arn:aws:ecs namespace, followed by the Region of the cluster, the Amazon Web Services account ID of the cluster owner, the cluster namespace, and then the cluster name. For example, arn:aws:ecs:region:012345678910:cluster/test.

" + "documentation":"

The Amazon Resource Name (ARN) that identifies the cluster. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" }, "clusterName":{ "shape":"String", @@ -1228,11 +1293,15 @@ }, "attachments":{ "shape":"Attachments", - "documentation":"

The resources attached to a cluster. When using a capacity provider with a cluster, the Auto Scaling plan that's created is returned as a cluster attachment.

" + "documentation":"

The resources attached to a cluster. When using a capacity provider with a cluster, the capacity provider and associated resources are returned as cluster attachments.

" }, "attachmentsStatus":{ "shape":"String", - "documentation":"

The status of the capacity providers associated with the cluster. The following are the states that are returned.

UPDATE_IN_PROGRESS

The available capacity providers for the cluster are updating. This occurs when the Auto Scaling plan is provisioning or deprovisioning.

UPDATE_COMPLETE

The capacity providers have successfully updated.

UPDATE_FAILED

The capacity provider updates failed.

" + "documentation":"

The status of the capacity providers associated with the cluster. The following are the states that are returned.

UPDATE_IN_PROGRESS

The available capacity providers for the cluster are updating.

UPDATE_COMPLETE

The capacity providers have successfully updated.

UPDATE_FAILED

The capacity provider updates failed.

" + }, + "serviceConnectDefaults":{ + "shape":"ClusterServiceConnectDefaults", + "documentation":"

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } }, "documentation":"

A regional grouping of one or more container instances where you can run task requests. Each account receives a default cluster the first time you use the Amazon ECS service, but you may also create other clusters. Clusters may contain more than one instance type simultaneously.

" @@ -1289,6 +1358,27 @@ "documentation":"

The specified cluster wasn't found. You can view your available clusters with ListClusters. Amazon ECS clusters are Region specific.

", "exception":true }, + "ClusterServiceConnectDefaults":{ + "type":"structure", + "members":{ + "namespace":{ + "shape":"String", + "documentation":"

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace. When you create a service and don't specify a Service Connect configuration, this namespace is used.

" + } + }, + "documentation":"

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, + "ClusterServiceConnectDefaultsRequest":{ + "type":"structure", + "required":["namespace"], + "members":{ + "namespace":{ + "shape":"String", + "documentation":"

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace that's used when you create a service and don't specify a Service Connect configuration. The namespace name can include up to 1024 characters. The name is case-sensitive. The name can't include hyphens (-), tilde (~), greater than (>), less than (<), or slash (/).

If you enter an existing namespace name or ARN, then that namespace will be used. Any namespace type is supported. The namespace must be in this account and this Amazon Web Services Region.

If you enter a new name, a Cloud Map namespace will be created. Amazon ECS creates a Cloud Map namespace with the \"API calls\" method of instance discovery only. This instance discovery method is the \"HTTP\" namespace type in the Command Line Interface. Other types of instance discovery aren't used by Service Connect.

If you update the service with an empty string \"\" for the namespace name, the cluster configuration for Service Connect is removed. Note that the namespace will remain in Cloud Map and must be deleted separately.

For more information about Cloud Map, see Working with Services in the Cloud Map Developer Guide.

" + } + }, + "documentation":"

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, "ClusterSetting":{ "type":"structure", "members":{ @@ -1438,11 +1528,11 @@ }, "memory":{ "shape":"BoxedInteger", - "documentation":"

The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task memory value, if one is specified. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If using the Fargate launch type, this parameter is optional.

If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level memory and memoryReservation value, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of memory is used.

The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container, so you should not specify fewer than 6 MiB of memory for your containers.

The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container, so you should not specify fewer than 4 MiB of memory for your containers.

" + "documentation":"

The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task memory value, if one is specified. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If using the Fargate launch type, this parameter is optional.

If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level memory and memoryReservation value, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of memory is used.

The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers.

The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers.

" }, "memoryReservation":{ "shape":"BoxedInteger", - "documentation":"

The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to MemoryReservation in the Create a container section of the Docker Remote API and the --memory-reservation option to docker run.

If a task-level memory value is not specified, you must specify a non-zero integer for one or both of memory or memoryReservation in a container definition. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of memory is used.

For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation of 128 MiB, and a memory hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.

The Docker daemon reserves a minimum of 4 MiB of memory for a container. Therefore, we recommend that you specify fewer than 4 MiB of memory for your containers.

" + "documentation":"

The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the memory parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to MemoryReservation in the Create a container section of the Docker Remote API and the --memory-reservation option to docker run.

If a task-level memory value is not specified, you must specify a non-zero integer for one or both of memory or memoryReservation in a container definition. If you specify both, memory must be greater than memoryReservation. If you specify memoryReservation, then that value is subtracted from the available memory resources for the container instance where the container is placed. Otherwise, the value of memory is used.

For example, if your container normally uses 128 MiB of memory, but occasionally bursts to 256 MiB of memory for short periods of time, you can set a memoryReservation of 128 MiB, and a memory hard limit of 300 MiB. This configuration would allow the container to only reserve 128 MiB of memory from the remaining resources on the container instance, but also allow the container to consume more memory resources when needed.

The Docker 20.10.0 or later daemon reserves a minimum of 6 MiB of memory for a container. So, don't specify less than 6 MiB of memory for your containers.

The Docker 19.03.13-ce or earlier daemon reserves a minimum of 4 MiB of memory for a container. So, don't specify less than 4 MiB of memory for your containers.

" }, "links":{ "shape":"StringList", @@ -1490,7 +1580,7 @@ }, "dependsOn":{ "shape":"ContainerDependencies", - "documentation":"

The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed.

For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

For tasks using the Fargate launch type, the task or service requires the following platforms:

  • Linux platform version 1.3.0 or later.

  • Windows platform version 1.0.0 or later.

" + "documentation":"

The dependencies defined for container startup and shutdown. A container can contain multiple dependencies on other containers in a task definition. When a dependency is defined for container startup, for container shutdown it is reversed.

For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see Updating the Amazon ECS Container Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ecs-init package. If your container instances are launched from version 20190301 or later, then they contain the required versions of the container agent and ecs-init. For more information, see Amazon ECS-optimized Linux AMI in the Amazon Elastic Container Service Developer Guide.

For tasks using the Fargate launch type, the task or service requires the following platforms:

  • Linux platform version 1.3.0 or later.

  • Windows platform version 1.0.0 or later.

" }, "startTimeout":{ "shape":"BoxedInteger", @@ -1554,7 +1644,7 @@ }, "ulimits":{ "shape":"UlimitList", - "documentation":"

A list of ulimits to set in the container. If a ulimit value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and hard limit is 4096.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

This parameter is not supported for Windows containers.

" + "documentation":"

A list of ulimits to set in the container. If a ulimit value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. Valid naming values are displayed in the Ulimit data type.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and hard limit is 4096.

This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: sudo docker version --format '{{.Server.APIVersion}}'

This parameter is not supported for Windows containers.

" }, "logConfiguration":{ "shape":"LogConfiguration", @@ -1610,7 +1700,7 @@ "members":{ "containerInstanceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the Region of the container instance, the Amazon Web Services account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.

" + "documentation":"

The Amazon Resource Name (ARN) of the container instance. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" }, "ec2InstanceId":{ "shape":"String", @@ -1638,7 +1728,7 @@ }, "status":{ "shape":"String", - "documentation":"

The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED, ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.

If your account has opted in to the awsvpcTrunking account setting, then any newly registered container instance will transition to a REGISTERING status while the trunk elastic network interface is provisioned for the instance. If the registration fails, the instance will transition to a REGISTRATION_FAILED status. You can describe the container instance and see the reason for failure in the statusReason parameter. Once the container instance is terminated, the instance transitions to a DEREGISTERING status while the trunk elastic network interface is deprovisioned. The instance then transitions to an INACTIVE status.

The ACTIVE status indicates that the container instance can accept tasks. The DRAINING indicates that new tasks aren't placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see Container Instance Draining in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The status of the container instance. The valid values are REGISTERING, REGISTRATION_FAILED, ACTIVE, INACTIVE, DEREGISTERING, or DRAINING.

If your account has opted in to the awsvpcTrunking account setting, then any newly registered container instance will transition to a REGISTERING status while the trunk elastic network interface is provisioned for the instance. If the registration fails, the instance will transition to a REGISTRATION_FAILED status. You can describe the container instance and see the reason for failure in the statusReason parameter. Once the container instance is terminated, the instance transitions to a DEREGISTERING status while the trunk elastic network interface is deprovisioned. The instance then transitions to an INACTIVE status.

The ACTIVE status indicates that the container instance can accept tasks. The DRAINING indicates that new tasks aren't placed on the container instance and any service tasks running on the container instance are removed if possible. For more information, see Container instance draining in the Amazon Elastic Container Service Developer Guide.

" }, "statusReason":{ "shape":"String", @@ -1646,7 +1736,7 @@ }, "agentConnected":{ "shape":"Boolean", - "documentation":"

This parameter returns true if the agent is connected to Amazon ECS. Registered instances with an agent that may be unhealthy or stopped return false. Only instances connected to an agent can accept placement requests.

" + "documentation":"

This parameter returns true if the agent is connected to Amazon ECS. An instance with an agent that may be unhealthy or stopped return false. Only instances connected to an agent can accept task placement requests.

" }, "runningTasksCount":{ "shape":"Integer", @@ -1670,7 +1760,7 @@ }, "attachments":{ "shape":"Attachments", - "documentation":"

The resources attached to a container instance, such as elastic network interfaces.

" + "documentation":"

The resources attached to a container instance, such as an elastic network interface.

" }, "tags":{ "shape":"Tags", @@ -1681,7 +1771,7 @@ "documentation":"

An object representing the health status of the container instance.

" } }, - "documentation":"

An EC2 instance that's running the Amazon ECS agent and has been registered with a cluster.

" + "documentation":"

An Amazon EC2 or External instance that's running the Amazon ECS agent and has been registered with a cluster.

" }, "ContainerInstanceField":{ "type":"string", @@ -1862,6 +1952,10 @@ "defaultCapacityProviderStrategy":{ "shape":"CapacityProviderStrategy", "documentation":"

The capacity provider strategy to set as the default for the cluster. After a default capacity provider strategy is set for a cluster, when you call the RunTask or CreateService APIs with no capacity provider strategy or launch type specified, the default capacity provider strategy for the cluster is used.

If a default capacity provider strategy isn't defined for a cluster when it was created, it can be defined later with the PutClusterCapacityProviders API operation.

" + }, + "serviceConnectDefaults":{ + "shape":"ClusterServiceConnectDefaultsRequest", + "documentation":"

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } } }, @@ -1892,7 +1986,7 @@ }, "loadBalancers":{ "shape":"LoadBalancers", - "documentation":"

A load balancer object representing the load balancers to use with your service. For more information, see Service Load Balancing in the Amazon Elastic Container Service Developer Guide.

If the service uses the rolling update (ECS) deployment controller and using either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach to the service. The service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If the service uses the CODE_DEPLOY deployment controller, the service is required to use either an Application Load Balancer or Network Load Balancer. When creating an CodeDeploy deployment group, you specify two target groups (referred to as a targetGroupPair). During a deployment, CodeDeploy determines which task set in your service has the status PRIMARY, and it associates one target group with it. Then, it also associates the other target group with the replacement task set. The load balancer can also have up to two listeners: a required listener for production traffic and an optional listener that you can use to perform validation tests with Lambda functions before routing production traffic to it.

If you use the CODE_DEPLOY deployment controller, these values can be changed when updating the service.

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name, and the container port to access from the load balancer. The container name must be as it appears in a container definition. The load balancer name parameter must be omitted. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group that's specified here.

For Classic Load Balancers, this object must contain the load balancer name, the container name , and the container port to access from the load balancer. The container name must be as it appears in a container definition. The target group ARN parameter must be omitted. When a task from this service is placed on a container instance, the container instance is registered with the load balancer that's specified here.

Services with tasks that use the awsvpc network mode (for example, those with the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers aren't supported. Also, when you create any target groups for these services, you must choose ip as the target type, not instance. This is because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.

" + "documentation":"

A load balancer object representing the load balancers to use with your service. For more information, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

If the service uses the rolling update (ECS) deployment controller and using either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach to the service. The service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

If the service uses the CODE_DEPLOY deployment controller, the service is required to use either an Application Load Balancer or Network Load Balancer. When creating an CodeDeploy deployment group, you specify two target groups (referred to as a targetGroupPair). During a deployment, CodeDeploy determines which task set in your service has the status PRIMARY, and it associates one target group with it. Then, it also associates the other target group with the replacement task set. The load balancer can also have up to two listeners: a required listener for production traffic and an optional listener that you can use to perform validation tests with Lambda functions before routing production traffic to it.

If you use the CODE_DEPLOY deployment controller, these values can be changed when updating the service.

For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name, and the container port to access from the load balancer. The container name must be as it appears in a container definition. The load balancer name parameter must be omitted. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group that's specified here.

For Classic Load Balancers, this object must contain the load balancer name, the container name , and the container port to access from the load balancer. The container name must be as it appears in a container definition. The target group ARN parameter must be omitted. When a task from this service is placed on a container instance, the container instance is registered with the load balancer that's specified here.

Services with tasks that use the awsvpc network mode (for example, those with the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers aren't supported. Also, when you create any target groups for these services, you must choose ip as the target type, not instance. This is because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.

" }, "serviceRegistries":{ "shape":"ServiceRegistries", @@ -1940,7 +2034,7 @@ }, "healthCheckGracePeriodSeconds":{ "shape":"BoxedInteger", - "documentation":"

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of 0 is used.

If you do not use an Elastic Load Balancing, we recomend that you use the startPeriod in the task definition healtch check parameters. For more information, see Health check.

If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.

" + "documentation":"

The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of 0 is used.

If you do not use an Elastic Load Balancing, we recommend that you use the startPeriod in the task definition health check parameters. For more information, see Health check.

If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.

" }, "schedulingStrategy":{ "shape":"SchedulingStrategy", @@ -1956,7 +2050,7 @@ }, "enableECSManagedTags":{ "shape":"Boolean", - "documentation":"

Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see Tagging your Amazon ECS resources in the Amazon Elastic Container Service Developer Guide.

" }, "propagateTags":{ "shape":"PropagateTags", @@ -1965,6 +2059,10 @@ "enableExecuteCommand":{ "shape":"Boolean", "documentation":"

Determines whether the execute command functionality is enabled for the service. If true, this enables execute command functionality on all containers in the service tasks.

" + }, + "serviceConnectConfiguration":{ + "shape":"ServiceConnectConfiguration", + "documentation":"

The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } } }, @@ -2011,11 +2109,11 @@ }, "serviceRegistries":{ "shape":"ServiceRegistries", - "documentation":"

The details of the service discovery registries to assign to this task set. For more information, see Service Discovery.

" + "documentation":"

The details of the service discovery registries to assign to this task set. For more information, see Service discovery.

" }, "launchType":{ "shape":"LaunchType", - "documentation":"

The launch type that new tasks in the task set uses. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

" + "documentation":"

The launch type that new tasks in the task set uses. For more information, see Amazon ECS launch types in the Amazon Elastic Container Service Developer Guide.

If a launchType is specified, the capacityProviderStrategy parameter must be omitted.

" }, "capacityProviderStrategy":{ "shape":"CapacityProviderStrategy", @@ -2260,6 +2358,14 @@ "rolloutStateReason":{ "shape":"String", "documentation":"

A description of the rollout state of a deployment.

" + }, + "serviceConnectConfiguration":{ + "shape":"ServiceConnectConfiguration", + "documentation":"

The details of the Service Connect configuration that's used by this deployment. Compare the configuration between multiple deployments when troubleshooting issues with new deployments.

The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, + "serviceConnectResources":{ + "shape":"ServiceConnectServiceResourceList", + "documentation":"

The list of Service Connect resources that are associated with this deployment. Each list entry maps a discovery name to a Cloud Map service name.

" } }, "documentation":"

The details of an Amazon ECS service deployment. This is used only when a service uses the ECS deployment controller type.

" @@ -2291,11 +2397,11 @@ }, "maximumPercent":{ "shape":"BoxedInteger", - "documentation":"

If a service is using the rolling update (ECS) deployment type, the maximum percent parameter represents an upper limit on the number of tasks in a service that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desired number of tasks (rounded down to the nearest integer), and while any container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. This parameter enables you to define the deployment batch size. For example, if your service has a desired number of four tasks and a maximum percent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default value for maximum percent is 200%.

If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and tasks that use the EC2 launch type, the maximum percent value is set to the default value and is used to define the upper limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.

" + "documentation":"

If a service is using the rolling update (ECS) deployment type, the maximumPercent parameter represents an upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount (rounded down to the nearest integer). This parameter enables you to define the deployment batch size. For example, if your service is using the REPLICA service scheduler and has a desiredCount of four tasks and a maximumPercent value of 200%, the scheduler may start four new tasks before stopping the four older tasks (provided that the cluster resources required to do this are available). The default maximumPercent value for a service using the REPLICA service scheduler is 200%.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and tasks that use the EC2 launch type, the maximum percent value is set to the default value and is used to define the upper limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the maximum percent value is not used, although it is returned when describing your service.

" }, "minimumHealthyPercent":{ "shape":"BoxedInteger", - "documentation":"

If a service is using the rolling update (ECS) deployment type, the minimum healthy percent represents a lower limit on the number of tasks in a service that must remain in the RUNNING state during a deployment, as a percentage of the desired number of tasks (rounded up to the nearest integer), and while any container instances are in the DRAINING state if the service contains tasks using the EC2 launch type. This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desired number of four tasks and a minimum healthy percent of 50%, the scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks. Tasks for services that do not use a load balancer are considered healthy if they're in the RUNNING state; tasks for services that do use a load balancer are considered healthy if they're in the RUNNING state and they're reported as healthy by the load balancer. The default value for minimum healthy percent is 100%.

If a service is using the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and tasks that use the EC2 launch type, the minimum healthy percent value is set to the default value and is used to define the lower limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state. If the tasks in the service use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.

" + "documentation":"

If a service is using the rolling update (ECS) deployment type, the minimumHealthyPercent represents a lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount (rounded up to the nearest integer). This parameter enables you to deploy without using additional cluster capacity. For example, if your service has a desiredCount of four tasks and a minimumHealthyPercent of 50%, the service scheduler may stop two existing tasks to free up cluster capacity before starting two new tasks.

For services that do not use a load balancer, the following should be noted:

  • A service is considered healthy if all essential containers within the tasks in the service pass their health checks.

  • If a task has no essential containers with a health check defined, the service scheduler will wait for 40 seconds after a task reaches a RUNNING state before the task is counted towards the minimum healthy percent total.

  • If a task has one or more essential containers with a health check defined, the service scheduler will wait for the task to reach a healthy status before counting it towards the minimum healthy percent total. A task is considered healthy when all essential containers within the task have passed their health checks. The amount of time the service scheduler can wait for is determined by the container health check settings.

For services are that do use a load balancer, the following should be noted:

  • If a task has no essential containers with a health check defined, the service scheduler will wait for the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.

  • If a task has an essential container with a health check defined, the service scheduler will wait for both the task to reach a healthy status and the load balancer target group health check to return a healthy status before counting the task towards the minimum healthy percent total.

If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the EC2 launch type, the minimum healthy percent value is set to the default value and is used to define the lower limit on the number of the tasks in the service that remain in the RUNNING state while the container instances are in the DRAINING state. If a service is using either the blue/green (CODE_DEPLOY) or EXTERNAL deployment types and is running tasks that use the Fargate launch type, the minimum healthy percent value is not used, although it is returned when describing your service.

" } }, "documentation":"

Optional deployment parameters that control how many tasks run during a deployment and the ordering of stopping and starting tasks.

" @@ -2309,7 +2415,7 @@ "documentation":"

The deployment controller type to use.

There are three deployment controller types available:

ECS

The rolling update (ECS) deployment type involves replacing the current running version of the container with the latest version. The number of containers Amazon ECS adds or removes from the service during a rolling update is controlled by adjusting the minimum and maximum number of healthy tasks allowed during a service deployment, as specified in the DeploymentConfiguration.

CODE_DEPLOY

The blue/green (CODE_DEPLOY) deployment type uses the blue/green deployment model powered by CodeDeploy, which allows you to verify a new deployment of a service before sending production traffic to it.

EXTERNAL

The external (EXTERNAL) deployment type enables you to use any third-party deployment controller for full control over the deployment process for an Amazon ECS service.

" } }, - "documentation":"

The deployment controller to use for the service. For more information, see Amazon ECS Deployment Types in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The deployment controller to use for the service. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

" }, "DeploymentControllerType":{ "type":"string", @@ -2341,7 +2447,7 @@ }, "containerInstance":{ "shape":"String", - "documentation":"

The container instance ID or full ARN of the container instance to deregister. The ARN contains the arn:aws:ecs namespace, followed by the Region of the container instance, the Amazon Web Services account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.

" + "documentation":"

The container instance ID or full ARN of the container instance to deregister. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" }, "force":{ "shape":"BoxedBoolean", @@ -2424,7 +2530,7 @@ }, "include":{ "shape":"ClusterFieldList", - "documentation":"

Determines whether to include additional information about the clusters in the response. If this field is omitted, this information isn't included.

If ATTACHMENTS is specified, the attachments for the container instances or tasks within the cluster are included.

If SETTINGS is specified, the settings for the cluster are included.

If CONFIGURATIONS is specified, the configuration for the cluster is included.

If STATISTICS is specified, the task and service count is included, separated by launch type.

If TAGS is specified, the metadata tags associated with the cluster are included.

" + "documentation":"

Determines whether to include additional information about the clusters in the response. If this field is omitted, this information isn't included.

If ATTACHMENTS is specified, the attachments for the container instances or tasks within the cluster are included, for example the capacity providers.

If SETTINGS is specified, the settings for the cluster are included.

If CONFIGURATIONS is specified, the configuration for the cluster is included.

If STATISTICS is specified, the task and service count is included, separated by launch type.

If TAGS is specified, the metadata tags associated with the cluster are included.

" } } }, @@ -2647,7 +2753,7 @@ "members":{ "containerInstance":{ "shape":"String", - "documentation":"

The container instance ID or full ARN of the container instance. The ARN contains the arn:aws:ecs namespace, followed by the Region of the container instance, the Amazon Web Services account ID of the container instance owner, the container-instance namespace, and then the container instance ID. For example, arn:aws:ecs:region:aws_account_id:container-instance/container_instance_ID.

" + "documentation":"

The container instance ID or full ARN of the container instance. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" }, "cluster":{ "shape":"String", @@ -2665,6 +2771,10 @@ "telemetryEndpoint":{ "shape":"String", "documentation":"

The telemetry endpoint for the Amazon ECS agent.

" + }, + "serviceConnectEndpoint":{ + "shape":"String", + "documentation":"

The endpoint for the Amazon ECS agent to poll for Service Connect configuration. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } } }, @@ -2705,11 +2815,11 @@ "members":{ "accessPointId":{ "shape":"String", - "documentation":"

The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the EFSVolumeConfiguration must either be omitted or set to / which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the EFSVolumeConfiguration. For more information, see Working with Amazon EFS Access Points in the Amazon Elastic File System User Guide.

" + "documentation":"

The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the EFSVolumeConfiguration must either be omitted or set to / which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the EFSVolumeConfiguration. For more information, see Working with Amazon EFS access points in the Amazon Elastic File System User Guide.

" }, "iam":{ "shape":"EFSAuthorizationConfigIAM", - "documentation":"

Determines whether to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. If this parameter is omitted, the default value of DISABLED is used. For more information, see Using Amazon EFS Access Points in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Determines whether to use the Amazon ECS task IAM role defined in a task definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. If this parameter is omitted, the default value of DISABLED is used. For more information, see Using Amazon EFS access points in the Amazon Elastic Container Service Developer Guide.

" } }, "documentation":"

The authorization configuration details for the Amazon EFS file system.

" @@ -2742,18 +2852,18 @@ }, "transitEncryption":{ "shape":"EFSTransitEncryption", - "documentation":"

Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of DISABLED is used. For more information, see Encrypting Data in Transit in the Amazon Elastic File System User Guide.

" + "documentation":"

Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of DISABLED is used. For more information, see Encrypting data in transit in the Amazon Elastic File System User Guide.

" }, "transitEncryptionPort":{ "shape":"BoxedInteger", - "documentation":"

The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. For more information, see EFS Mount Helper in the Amazon Elastic File System User Guide.

" + "documentation":"

The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. For more information, see EFS mount helper in the Amazon Elastic File System User Guide.

" }, "authorizationConfig":{ "shape":"EFSAuthorizationConfig", "documentation":"

The authorization configuration details for the Amazon EFS file system.

" } }, - "documentation":"

This parameter is specified when you're using an Amazon Elastic File System file system for task storage. For more information, see Amazon EFS Volumes in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

This parameter is specified when you're using an Amazon Elastic File System file system for task storage. For more information, see Amazon EFS volumes in the Amazon Elastic Container Service Developer Guide.

" }, "EnvironmentFile":{ "type":"structure", @@ -2916,14 +3026,14 @@ "members":{ "credentialsParameter":{ "shape":"String", - "documentation":"

The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an Secrets Manager secret or SSM Parameter Store parameter. The ARNs refer to the stored credentials.

" + "documentation":"

The authorization credential option to use. The authorization credential options can be provided using either the Amazon Resource Name (ARN) of an Secrets Manager secret or SSM Parameter Store parameter. The ARN refers to the stored credentials.

" }, "domain":{ "shape":"String", "documentation":"

A fully qualified domain name hosted by an Directory Service Managed Microsoft AD (Active Directory) or self-hosted AD on Amazon EC2.

" } }, - "documentation":"

The authorization configuration details for Amazon FSx for Windows File Server file system. See FSxWindowsFileServerVolumeConfiguration in the Amazon Elastic Container Service API Reference.

For more information and the input format, see Amazon FSx for Windows File Server Volumes in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The authorization configuration details for Amazon FSx for Windows File Server file system. See FSxWindowsFileServerVolumeConfiguration in the Amazon ECS API Reference.

For more information and the input format, see Amazon FSx for Windows File Server Volumes in the Amazon Elastic Container Service Developer Guide.

" }, "FSxWindowsFileServerVolumeConfiguration":{ "type":"structure", @@ -2946,7 +3056,7 @@ "documentation":"

The authorization configuration details for the Amazon FSx for Windows File Server file system.

" } }, - "documentation":"

This parameter is specified when you're using Amazon FSx for Windows File Server file system for task storage.

For more information and the input format, see Amazon FSx for Windows File Server Volumes in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

This parameter is specified when you're using Amazon FSx for Windows File Server file system for task storage.

For more information and the input format, see Amazon FSx for Windows File Server volumes in the Amazon Elastic Container Service Developer Guide.

" }, "Failure":{ "type":"structure", @@ -2980,10 +3090,10 @@ }, "options":{ "shape":"FirelensConfigurationOptionsMap", - "documentation":"

The options to use when configuring the log router. This field is optional and can be used to specify a custom configuration file or to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, the syntax to use is \"options\":{\"enable-ecs-log-metadata\":\"true|false\",\"config-file-type:\"s3|file\",\"config-file-value\":\"arn:aws:s3:::mybucket/fluent.conf|filepath\"}. For more information, see Creating a Task Definition that Uses a FireLens Configuration in the Amazon Elastic Container Service Developer Guide.

Tasks hosted on Fargate only support the file configuration file type.

" + "documentation":"

The options to use when configuring the log router. This field is optional and can be used to specify a custom configuration file or to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. If specified, the syntax to use is \"options\":{\"enable-ecs-log-metadata\":\"true|false\",\"config-file-type:\"s3|file\",\"config-file-value\":\"arn:aws:s3:::mybucket/fluent.conf|filepath\"}. For more information, see Creating a task definition that uses a FireLens configuration in the Amazon Elastic Container Service Developer Guide.

Tasks hosted on Fargate only support the file configuration file type.

" } }, - "documentation":"

The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see Custom Log Routing in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see Custom log routing in the Amazon Elastic Container Service Developer Guide.

" }, "FirelensConfigurationOptionsMap":{ "type":"map", @@ -2997,6 +3107,33 @@ "fluentbit" ] }, + "GetTaskProtectionRequest":{ + "type":"structure", + "required":["cluster"], + "members":{ + "cluster":{ + "shape":"String", + "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist in.

" + }, + "tasks":{ + "shape":"StringList", + "documentation":"

A list of up to 100 task IDs or full ARN entries.

" + } + } + }, + "GetTaskProtectionResponse":{ + "type":"structure", + "members":{ + "protectedTasks":{ + "shape":"ProtectedTasks", + "documentation":"

A list of tasks with the following information.

  • taskArn: The task ARN.

  • protectionEnabled: The protection status of the task. If scale-in protection is enabled for a task, the value is true. Otherwise, it is false.

  • expirationDate: The epoch time when protection for the task will expire.

" + }, + "failures":{ + "shape":"Failures", + "documentation":"

Any failures associated with the call.

" + } + } + }, "GpuIds":{ "type":"list", "member":{"shape":"String"} @@ -3007,7 +3144,7 @@ "members":{ "command":{ "shape":"StringList", - "documentation":"

A string array representing the command that the container runs to determine if it is healthy. The string array must start with CMD to execute the command arguments directly, or CMD-SHELL to run the command with the container's default shell.

When you use the Amazon Web Services Management Console JSON panel, the Command Line Interface, or the APIs, enclose the list of commands in brackets.

[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]

You don't need to include the brackets when you use the Amazon Web Services Management Console.

\"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\"

An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see HealthCheck in the Create a container section of the Docker Remote API.

" + "documentation":"

A string array representing the command that the container runs to determine if it is healthy. The string array must start with CMD to run the command arguments directly, or CMD-SHELL to run the command with the container's default shell.

When you use the Amazon Web Services Management Console JSON panel, the Command Line Interface, or the APIs, enclose the list of commands in brackets.

[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]

You don't need to include the brackets when you use the Amazon Web Services Management Console.

\"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\"

An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see HealthCheck in the Create a container section of the Docker Remote API.

" }, "interval":{ "shape":"BoxedInteger", @@ -3026,7 +3163,7 @@ "documentation":"

The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the startPeriod is disabled.

If a health check succeeds within the startPeriod, then the container is considered healthy and any subsequent failures count toward the maximum number of retries.

" } }, - "documentation":"

An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile).

The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.

You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.

The following describes the possible healthStatus values for a container:

  • HEALTHY-The container health check has passed successfully.

  • UNHEALTHY-The container health check has failed.

  • UNKNOWN-The container health check is being evaluated or there's no container health check defined.

The following describes the possible healthStatus values for a task. The container health check status of nonessential containers do not have an effect on the health status of a task.

  • HEALTHY-All essential containers within the task have passed their health checks.

  • UNHEALTHY-One or more essential containers have failed their health check.

  • UNKNOWN-The essential containers within the task are still having their health checks evaluated or there are no container health checks defined.

If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.

The following are notes about container health check support:

  • Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see Updating the Amazon ECS Container Agent.

  • Container health checks are supported for Fargate tasks if you're using platform version 1.1.0 or greater. For more information, see Fargate Platform Versions.

  • Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.

" + "documentation":"

An object representing a container health check. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image (such as those specified in a parent image or from the image's Dockerfile).

The Amazon ECS container agent only monitors and reports on the health checks specified in the task definition. Amazon ECS does not monitor Docker health checks that are embedded in a container image and not specified in the container definition. Health check parameters that are specified in a container definition override any Docker health checks that exist in the container image.

You can view the health status of both individual containers and a task with the DescribeTasks API operation or when viewing the task details in the console.

The following describes the possible healthStatus values for a container:

  • HEALTHY-The container health check has passed successfully.

  • UNHEALTHY-The container health check has failed.

  • UNKNOWN-The container health check is being evaluated or there's no container health check defined.

The following describes the possible healthStatus values for a task. The container health check status of nonessential containers only affects the health status of a task if no essential containers have health checks defined.

  • HEALTHY-All essential containers within the task have passed their health checks.

  • UNHEALTHY-One or more essential containers have failed their health check.

  • UNKNOWN-The essential containers within the task are still having their health checks evaluated or there are only nonessential containers with health checks defined.

If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped and the service scheduler will replace it.

For tasks that are a part of a service and the service uses the ECS rolling deployment type, the deployment is paused while the new tasks have the UNKNOWN task health check status. For example, tasks that define health checks for nonessential containers when no essential containers have health checks will have the UNKNOWN health check status indefinitely which prevents the deployment from completing.

The following are notes about container health check support:

  • Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, see Updating the Amazon ECS container agent.

  • Container health checks are supported for Fargate tasks if you're using platform version 1.1.0 or greater. For more information, see Fargate platform versions.

  • Container health checks aren't supported for tasks that are part of a service that's configured to use a Classic Load Balancer.

" }, "HealthStatus":{ "type":"string", @@ -3389,6 +3526,37 @@ } } }, + "ListServicesByNamespaceRequest":{ + "type":"structure", + "required":["namespace"], + "members":{ + "namespace":{ + "shape":"String", + "documentation":"

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace to list the services in.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The nextToken value that's returned from a ListServicesByNamespace request. It indicates that more results are available to fulfill the request and further calls are needed. If maxResults is returned, it is possible the number of results is less than maxResults.

" + }, + "maxResults":{ + "shape":"BoxedInteger", + "documentation":"

The maximum number of service results that ListServicesByNamespace returns in paginated output. When this parameter is used, ListServicesByNamespace only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListServicesByNamespace request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListServicesByNamespace returns up to 10 results and a nextToken value if applicable.

" + } + } + }, + "ListServicesByNamespaceResponse":{ + "type":"structure", + "members":{ + "serviceArns":{ + "shape":"StringList", + "documentation":"

The list of full ARN entries for each service that's associated with the specified namespace.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

The nextToken value to include in a future ListServicesByNamespace request. When the results of a ListServicesByNamespace request exceed maxResults, this value can be used to retrieve the next page of results. When there are no more results to return, this value is null.

" + } + } + }, "ListServicesRequest":{ "type":"structure", "members":{ @@ -3543,7 +3711,7 @@ }, "startedBy":{ "shape":"String", - "documentation":"

The startedBy value to filter the task results with. Specifying a startedBy value limits the results to tasks that were started with that value.

" + "documentation":"

The startedBy value to filter the task results with. Specifying a startedBy value limits the results to tasks that were started with that value.

When you specify startedBy as the filter, it must be the only filter that you use.

" }, "serviceName":{ "shape":"String", @@ -3577,7 +3745,7 @@ "members":{ "targetGroupArn":{ "shape":"String", - "documentation":"

The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.

A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you're using a Classic Load Balancer, omit the target group ARN.

For services using the ECS deployment controller, you can specify one or multiple target groups. For more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service Developer Guide.

For services using the CODE_DEPLOY deployment controller, you're required to define two target groups for the load balancer. For more information, see Blue/Green Deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide.

If your service's task definition uses the awsvpc network mode, you must choose ip as the target type, not instance. Do this when creating your target groups because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance. This network mode is required for the Fargate launch type.

" + "documentation":"

The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.

A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you're using a Classic Load Balancer, omit the target group ARN.

For services using the ECS deployment controller, you can specify one or multiple target groups. For more information, see Registering multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

For services using the CODE_DEPLOY deployment controller, you're required to define two target groups for the load balancer. For more information, see Blue/green deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide.

If your service's task definition uses the awsvpc network mode, you must choose ip as the target type, not instance. Do this when creating your target groups because tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance. This network mode is required for the Fargate launch type.

" }, "loadBalancerName":{ "shape":"String", @@ -3592,7 +3760,7 @@ "documentation":"

The port on the container to associate with the load balancer. This port must correspond to a containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the hostPort of the port mapping.

" } }, - "documentation":"

The load balancer configuration to use with a service or task set.

For specific notes and restrictions regarding the use of load balancers with services and task sets, see the CreateService and CreateTaskSet actions.

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load balancers.

We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.

A service-linked role is required for services that use multiple target groups. For more information, see Service-linked roles in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The load balancer configuration to use with a service or task set.

For specific notes and restrictions regarding the use of load balancers with services and task sets, see the CreateService and CreateTaskSet actions.

When you add, update, or remove a load balancer configuration, Amazon ECS starts a new deployment with the updated Elastic Load Balancing configuration. This causes tasks to register to and deregister from load balancers.

We recommend that you verify this on a test environment before you update the Elastic Load Balancing configuration.

A service-linked role is required for services that use multiple target groups. For more information, see Using service-linked roles in the Amazon Elastic Container Service Developer Guide.

" }, "LoadBalancers":{ "type":"list", @@ -3612,7 +3780,7 @@ }, "secretOptions":{ "shape":"SecretList", - "documentation":"

The secrets to pass to the log configuration. For more information, see Specifying Sensitive Data in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The secrets to pass to the log configuration. For more information, see Specifying sensitive data in the Amazon Elastic Container Service Developer Guide.

" } }, "documentation":"

The log configuration for the container. This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run .

By default, containers use the same logging driver that the Docker daemon uses. However, the container might use a different logging driver than the Docker daemon by specifying a log driver configuration in the container definition. For more information about the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Understand the following when specifying a log configuration for your containers.

  • Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the valid values below). Additional log drivers may be available in future releases of the Amazon ECS container agent.

  • This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.

  • For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container agent must register the available logging drivers with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS container agent configuration in the Amazon Elastic Container Service Developer Guide.

  • For tasks that are on Fargate, because you don't have access to the underlying infrastructure your tasks are hosted on, any additional software needed must be installed outside of the task. For example, the Fluentd output aggregators or a remote host running Logstash to send Gelf logs to.

" @@ -3710,18 +3878,18 @@ }, "minimumScalingStepSize":{ "shape":"ManagedScalingStepSize", - "documentation":"

The minimum number of container instances that Amazon ECS scales in or scales out at one time. If this parameter is omitted, the default value of 1 is used.

" + "documentation":"

The minimum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale in process is not affected by this parameter If this parameter is omitted, the default value of 1 is used.

When additional capacity is required, Amazon ECS will scale up the minimum scaling step size even if the actual demand is less than the minimum scaling step size.

If you use a capacity provider with an Auto Scaling group configured with more than one Amazon EC2 instance type or Availability Zone, Amazon ECS will scale up by the exact minimum scaling step size value and will ignore both the maximum scaling step size as well as the capacity demand.

" }, "maximumScalingStepSize":{ "shape":"ManagedScalingStepSize", - "documentation":"

The maximum number of container instances that Amazon ECS scales in or scales out at one time. If this parameter is omitted, the default value of 10000 is used.

" + "documentation":"

The maximum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale in process is not affected by this parameter. If this parameter is omitted, the default value of 1 is used.

" }, "instanceWarmupPeriod":{ "shape":"ManagedScalingInstanceWarmupPeriod", "documentation":"

The period of time, in seconds, after a newly launched Amazon EC2 instance can contribute to CloudWatch metrics for Auto Scaling group. If this parameter is omitted, the default value of 300 seconds is used.

" } }, - "documentation":"

The managed scaling settings for the Auto Scaling group capacity provider.

When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS managed CloudWatch metric with the specified targetCapacity value as the target value for the metric. For more information, see Using Managed Scaling in the Amazon Elastic Container Service Developer Guide.

If managed scaling is disabled, the user must manage the scaling of the Auto Scaling group.

" + "documentation":"

The managed scaling settings for the Auto Scaling group capacity provider.

When managed scaling is enabled, Amazon ECS manages the scale-in and scale-out actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling policy using an Amazon ECS managed CloudWatch metric with the specified targetCapacity value as the target value for the metric. For more information, see Using managed scaling in the Amazon Elastic Container Service Developer Guide.

If managed scaling is disabled, the user must manage the scaling of the Auto Scaling group.

" }, "ManagedScalingInstanceWarmupPeriod":{ "type":"integer", @@ -3781,6 +3949,13 @@ "type":"list", "member":{"shape":"MountPoint"} }, + "NamespaceNotFoundException":{ + "type":"structure", + "members":{ + }, + "documentation":"

The specified namespace wasn't found.

", + "exception":true + }, "NetworkBinding":{ "type":"structure", "members":{ @@ -3887,7 +4062,7 @@ "documentation":"

A cluster query language expression to apply to the constraint. The expression can have a maximum length of 2000 characters. You can't specify an expression if the constraint type is distinctInstance. For more information, see Cluster query language in the Amazon Elastic Container Service Developer Guide.

" } }, - "documentation":"

An object representing a constraint on task placement. For more information, see Task Placement Constraints in the Amazon Elastic Container Service Developer Guide.

If you're using the Fargate launch type, task placement constraints aren't supported.

" + "documentation":"

An object representing a constraint on task placement. For more information, see Task placement constraints in the Amazon Elastic Container Service Developer Guide.

If you're using the Fargate launch type, task placement constraints aren't supported.

" }, "PlacementConstraintType":{ "type":"string", @@ -3916,7 +4091,7 @@ "documentation":"

The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that's applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used.

" } }, - "documentation":"

The task placement strategy for a task or service. For more information, see Task Placement Strategies in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

The task placement strategy for a task or service. For more information, see Task placement strategies in the Amazon Elastic Container Service Developer Guide.

" }, "PlacementStrategyType":{ "type":"string", @@ -3975,11 +4150,19 @@ }, "hostPort":{ "shape":"BoxedInteger", - "documentation":"

The port number on the container instance to reserve for your container.

If you use containers in a task with the awsvpc or host network mode, the hostPort can either be left blank or set to the same value as the containerPort.

If you use containers in a task with the bridge network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default ephemeral port range from 49153 through 65535 is always used for Docker versions before 1.6.0.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota.

" + "documentation":"

The port number on the container instance to reserve for your container.

If you use containers in a task with the awsvpc or host network mode, the hostPort can either be left blank or set to the same value as the containerPort.

If you use containers in a task with the bridge network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the hostPort (or set it to 0) while specifying a containerPort and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version.

The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under /proc/sys/net/ipv4/ip_local_port_range. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the remainingResources of DescribeContainerInstances output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota.

" }, "protocol":{ "shape":"TransportProtocol", "documentation":"

The protocol used for the port mapping. Valid values are tcp and udp. The default is tcp.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the serviceConnectConfiguration of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, + "appProtocol":{ + "shape":"ApplicationProtocol", + "documentation":"

The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch.

If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } }, "documentation":"

Port mappings allow containers to access ports on the host container instance to send or receive traffic. Port mappings are specified as part of the container definition.

If you use containers in a task with the awsvpc or host network mode, specify the exposed ports using containerPort. The hostPort can be left blank or it must be the same value as the containerPort.

You can't expose the same container port for multiple protocols. If you attempt this, an error is returned.

After a task reaches the RUNNING status, manual and automatic host and container port assignments are visible in the networkBindings section of DescribeTasks API responses.

" @@ -3988,6 +4171,12 @@ "type":"list", "member":{"shape":"PortMapping"} }, + "PortNumber":{ + "type":"integer", + "box":true, + "max":65535, + "min":0 + }, "PropagateTags":{ "type":"string", "enum":[ @@ -3996,6 +4185,28 @@ "NONE" ] }, + "ProtectedTask":{ + "type":"structure", + "members":{ + "taskArn":{ + "shape":"String", + "documentation":"

The task ARN.

" + }, + "protectionEnabled":{ + "shape":"Boolean", + "documentation":"

The protection status of the task. If scale-in protection is enabled for a task, the value is true. Otherwise, it is false.

" + }, + "expirationDate":{ + "shape":"Timestamp", + "documentation":"

The epoch time when protection for the task will expire.

" + } + }, + "documentation":"

An object representing the protection status details for a task. You can set the protection status with the UpdateTaskProtection API and get the status of tasks with the GetTaskProtection API.

" + }, + "ProtectedTasks":{ + "type":"list", + "member":{"shape":"ProtectedTask"} + }, "ProxyConfiguration":{ "type":"structure", "required":["containerName"], @@ -4032,7 +4243,7 @@ "members":{ "name":{ "shape":"SettingName", - "documentation":"

The resource name for which to modify the account setting. If serviceLongArnFormat is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If awsvpcTrunking is specified, the ENI limit for your Amazon ECS container instances is affected. If containerInsights is specified, the default setting for CloudWatch Container Insights for your clusters is affected.

" + "documentation":"

The resource name for which to modify the account setting. If serviceLongArnFormat is specified, the ARN for your Amazon ECS services is affected. If taskLongArnFormat is specified, the ARN and resource ID for your Amazon ECS tasks is affected. If containerInstanceLongArnFormat is specified, the ARN and resource ID for your Amazon ECS container instances is affected. If awsvpcTrunking is specified, the ENI limit for your Amazon ECS container instances is affected. If containerInsights is specified, the default setting for CloudWatch Container Insights for your clusters is affected.

Fargate is transitioning from task count-based quotas to vCPU-based quotas. You can set the name to fargateVCPULimit to opt in or opt out of the vCPU-based quotas. For information about the opt in timeline, see Fargate vCPU-based quotas timeline in the Amazon ECS Developer Guide.

" }, "value":{ "shape":"String", @@ -4224,11 +4435,11 @@ }, "cpu":{ "shape":"String", - "documentation":"

The number of CPU units used by the task. It can be expressed as an integer using CPU units (for example, 1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu) in a task definition. String values are converted to an integer indicating the CPU units when the task definition is registered.

Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level resources for Windows containers.

If you're using the EC2 launch type, this field is optional. Supported values are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).

If you're using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of supported values for the memory parameter:

The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.

  • 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

  • 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

  • 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

  • 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

  • 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

" + "documentation":"

The number of CPU units used by the task. It can be expressed as an integer using CPU units (for example, 1024) or as a string using vCPUs (for example, 1 vCPU or 1 vcpu) in a task definition. String values are converted to an integer indicating the CPU units when the task definition is registered.

Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level resources for Windows containers.

If you're using the EC2 launch type, this field is optional. Supported values are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs). If you do not specify a value, the parameter is ignored.

If you're using the Fargate launch type, this field is required and you must use one of the following values, which determines your range of supported values for the memory parameter:

The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.

  • 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

  • 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

  • 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

  • 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

  • 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

  • 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

    This option requires Linux platform 1.4.0 or later.

  • 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

    This option requires Linux platform 1.4.0 or later.

" }, "memory":{ "shape":"String", - "documentation":"

The amount of memory (in MiB) used by the task. It can be expressed as an integer using MiB (for example ,1024) or as a string using GB (for example, 1GB or 1 GB) in a task definition. String values are converted to an integer indicating the MiB when the task definition is registered.

Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level resources for Windows containers.

If using the EC2 launch type, this field is optional.

If using the Fargate launch type, this field is required and you must use one of the following values. This determines your range of supported values for the cpu parameter.

The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

  • Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

  • Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

" + "documentation":"

The amount of memory (in MiB) used by the task. It can be expressed as an integer using MiB (for example ,1024) or as a string using GB (for example, 1GB or 1 GB) in a task definition. String values are converted to an integer indicating the MiB when the task definition is registered.

Task-level CPU and memory parameters are ignored for Windows containers. We recommend specifying container-level resources for Windows containers.

If using the EC2 launch type, this field is optional.

If using the Fargate launch type, this field is required and you must use one of the following values. This determines your range of supported values for the cpu parameter.

The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

  • Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

  • Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

  • Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    This option requires Linux platform 1.4.0 or later.

  • Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    This option requires Linux platform 1.4.0 or later.

" }, "tags":{ "shape":"Tags", @@ -4252,7 +4463,7 @@ }, "ephemeralStorage":{ "shape":"EphemeralStorage", - "documentation":"

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage in the Amazon ECS User Guide for Fargate.

This parameter is only supported for tasks hosted on Fargate using the following platform versions:

  • Linux platform version 1.4.0 or later.

  • Windows platform version 1.0.0 or later.

" + "documentation":"

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage in the Amazon ECS User Guide for Fargate.

This parameter is only supported for tasks hosted on Fargate using the following platform versions:

  • Linux platform version 1.4.0 or later.

" }, "runtimePlatform":{ "shape":"RuntimePlatform", @@ -4457,14 +4668,14 @@ "members":{ "cpuArchitecture":{ "shape":"CPUArchitecture", - "documentation":"

The CPU architecture.

You can run your Linux tasks on an ARM-based platform by setting the value to ARM64. This option is avaiable for tasks that run on Linuc Amazon EC2 instance or Linux containers on Fargate.

" + "documentation":"

The CPU architecture.

You can run your Linux tasks on an ARM-based platform by setting the value to ARM64. This option is available for tasks that run on Linux Amazon EC2 instance or Linux containers on Fargate.

" }, "operatingSystemFamily":{ "shape":"OSFamily", "documentation":"

The operating system.

" } }, - "documentation":"

Information about the platform for the Amazon ECS service or task.

For more informataion about RuntimePlatform, see RuntimePlatform in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

Information about the platform for the Amazon ECS service or task.

For more information about RuntimePlatform, see RuntimePlatform in the Amazon Elastic Container Service Developer Guide.

" }, "Scale":{ "type":"structure", @@ -4514,7 +4725,7 @@ "documentation":"

The secret to expose to the container. The supported values are either the full ARN of the Secrets Manager secret or the full ARN of the parameter in the SSM Parameter Store.

For information about the require Identity and Access Management permissions, see Required IAM permissions for Amazon ECS secrets (for Secrets Manager) or Required IAM permissions for Amazon ECS secrets (for Systems Manager Parameter store) in the Amazon Elastic Container Service Developer Guide.

If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified.

" } }, - "documentation":"

An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:

  • To inject sensitive data into your containers as environment variables, use the secrets container definition parameter.

  • To reference sensitive information in the log configuration of a container, use the secretOptions container definition parameter.

For more information, see Specifying Sensitive Data in the Amazon Elastic Container Service Developer Guide.

" + "documentation":"

An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:

  • To inject sensitive data into your containers as environment variables, use the secrets container definition parameter.

  • To reference sensitive information in the log configuration of a container, use the secretOptions container definition parameter.

For more information, see Specifying sensitive data in the Amazon Elastic Container Service Developer Guide.

" }, "SecretList":{ "type":"list", @@ -4538,7 +4749,7 @@ "members":{ "serviceArn":{ "shape":"String", - "documentation":"

The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace, followed by the Region of the service, the Amazon Web Services account ID of the service owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.

" + "documentation":"

The ARN that identifies the service. For more information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

" }, "serviceName":{ "shape":"String", @@ -4638,7 +4849,7 @@ }, "deploymentController":{ "shape":"DeploymentController", - "documentation":"

The deployment controller type the service is using. When using the DescribeServices API, this field is omitted if the service uses the ECS deployment controller type.

" + "documentation":"

The deployment controller type the service is using.

" }, "tags":{ "shape":"Tags", @@ -4663,6 +4874,90 @@ }, "documentation":"

Details on a service within a cluster

" }, + "ServiceConnectClientAlias":{ + "type":"structure", + "required":["port"], + "members":{ + "port":{ + "shape":"PortNumber", + "documentation":"

The listening port number for the Service Connect proxy. This port is available inside of all of the tasks within the same namespace.

To avoid changing your applications in client Amazon ECS services, set this to the same port that the client application uses by default. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, + "dnsName":{ + "shape":"String", + "documentation":"

The dnsName is the name that you use in the applications of client tasks to connect to this service. The name must be a valid DNS name but doesn't need to be fully-qualified. The name can include up to 127 characters. The name can include lowercase letters, numbers, underscores (_), hyphens (-), and periods (.). The name can't start with a hyphen.

If this parameter isn't specified, the default value of discoveryName.namespace is used. If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

To avoid changing your applications in client Amazon ECS services, set this to the same name that the client application uses by default. For example, a few common names are database, db, or the lowercase name of a database, such as mysql or redis. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "documentation":"

Each alias (\"endpoint\") is a fully-qualified name and port number that other tasks (\"clients\") can use to connect to this service.

Each name and port mapping must be unique within the namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, + "ServiceConnectClientAliasList":{ + "type":"list", + "member":{"shape":"ServiceConnectClientAlias"} + }, + "ServiceConnectConfiguration":{ + "type":"structure", + "required":["enabled"], + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Specifies whether to use Service Connect with this service.

" + }, + "namespace":{ + "shape":"String", + "documentation":"

The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace for use with Service Connect. The namespace must be in the same Amazon Web Services Region as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For more information about Cloud Map, see Working with Services in the Cloud Map Developer Guide.

" + }, + "services":{ + "shape":"ServiceConnectServiceList", + "documentation":"

The list of Service Connect service objects. These are names and aliases (also known as endpoints) that are used by other Amazon ECS services to connect to this service.

This field is not required for a \"client\" Amazon ECS service that's a member of a namespace only to connect to other services within the namespace. An example of this would be a frontend application that accepts incoming requests from either a load balancer that's attached to the service or by other means.

An object selects a port from the task definition, assigns a name for the Cloud Map service, and a list of aliases (endpoints) and ports for client applications to refer to this service.

" + }, + "logConfiguration":{"shape":"LogConfiguration"} + }, + "documentation":"

The Service Connect configuration of your Amazon ECS service. The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, + "ServiceConnectService":{ + "type":"structure", + "required":["portName"], + "members":{ + "portName":{ + "shape":"String", + "documentation":"

The portName must match the name of one of the portMappings from all the containers in the task definition of this Amazon ECS service.

" + }, + "discoveryName":{ + "shape":"String", + "documentation":"

The discoveryName is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

If this parameter isn't specified, the default value of discoveryName.namespace is used. If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

" + }, + "clientAliases":{ + "shape":"ServiceConnectClientAliasList", + "documentation":"

The list of client aliases for this Service Connect service. You use these to assign names that can be used by client applications. The maximum number of client aliases that you can have in this list is 1.

Each alias (\"endpoint\") is a fully-qualified name and port number that other Amazon ECS tasks (\"clients\") can use to connect to this service.

Each name and port mapping must be unique within the namespace.

For each ServiceConnectService, you must provide at least one clientAlias with one port.

" + }, + "ingressPortOverride":{ + "shape":"PortNumber", + "documentation":"

The port number for the Service Connect proxy to listen on.

Use the value of this field to bypass the proxy for traffic on the port number specified in the named portMapping in the task definition of this application, and then use it in your VPC security groups to allow traffic into the proxy for this Amazon ECS service.

In awsvpc mode and Fargate, the default value is the container port number. The container port number is in the portMapping in the task definition. In bridge mode, the default value is the ephemeral port of the Service Connect proxy.

" + } + }, + "documentation":"

The Service Connect service object configuration. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" + }, + "ServiceConnectServiceList":{ + "type":"list", + "member":{"shape":"ServiceConnectService"} + }, + "ServiceConnectServiceResource":{ + "type":"structure", + "members":{ + "discoveryName":{ + "shape":"String", + "documentation":"

The discovery name of this Service Connect resource.

The discoveryName is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.

If this parameter isn't specified, the default value of discoveryName.namespace is used. If the discoveryName isn't specified, the port mapping name from the task definition is used in portName.namespace.

" + }, + "discoveryArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) for the namespace in Cloud Map that matches the discovery name for this Service Connect resource. You can use this ARN in other integrations with Cloud Map. However, Service Connect can't ensure connectivity outside of Amazon ECS.

" + } + }, + "documentation":"

The Service Connect resource. Each configuration maps a discovery name to a Cloud Map service name. The data is stored in Cloud Map as part of the Service Connect configuration for each discovery name of this Amazon ECS service.

A task can resolve the dnsName for each of the clientAliases of a service. However a task can't resolve the discovery names. If you want to connect to a service, refer to the ServiceConnectConfiguration of that service for the list of clientAliases that you can use.

" + }, + "ServiceConnectServiceResourceList":{ + "type":"list", + "member":{"shape":"ServiceConnectServiceResource"} + }, "ServiceEvent":{ "type":"structure", "members":{ @@ -5170,7 +5465,7 @@ }, "cpu":{ "shape":"String", - "documentation":"

The number of CPU units used by the task as expressed in a task definition. It can be expressed as an integer using CPU units (for example, 1024). It can also be expressed as a string using vCPUs (for example, 1 vCPU or 1 vcpu). String values are converted to an integer that indicates the CPU units when the task definition is registered.

If you use the EC2 launch type, this field is optional. Supported values are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).

If you use the Fargate launch type, this field is required. You must use one of the following values. These values determine the range of supported values for the memory parameter:

The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.

  • 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

  • 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

  • 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

  • 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

  • 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

" + "documentation":"

The number of CPU units used by the task as expressed in a task definition. It can be expressed as an integer using CPU units (for example, 1024). It can also be expressed as a string using vCPUs (for example, 1 vCPU or 1 vcpu). String values are converted to an integer that indicates the CPU units when the task definition is registered.

If you use the EC2 launch type, this field is optional. Supported values are between 128 CPU units (0.125 vCPUs) and 10240 CPU units (10 vCPUs).

If you use the Fargate launch type, this field is required. You must use one of the following values. These values determine the range of supported values for the memory parameter:

The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.

  • 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

  • 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

  • 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

  • 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

  • 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

  • 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

    This option requires Linux platform 1.4.0 or later.

  • 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

    This option requires Linux platform 1.4.0 or later.

" }, "createdAt":{ "shape":"Timestamp", @@ -5210,7 +5505,7 @@ }, "memory":{ "shape":"String", - "documentation":"

The amount of memory (in MiB) that the task uses as expressed in a task definition. It can be expressed as an integer using MiB (for example, 1024). If it's expressed as a string using GB (for example, 1GB or 1 GB), it's converted to an integer indicating the MiB when the task definition is registered.

If you use the EC2 launch type, this field is optional.

If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines the range of supported values for the cpu parameter.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

  • Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

  • Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

" + "documentation":"

The amount of memory (in MiB) that the task uses as expressed in a task definition. It can be expressed as an integer using MiB (for example, 1024). If it's expressed as a string using GB (for example, 1GB or 1 GB), it's converted to an integer indicating the MiB when the task definition is registered.

If you use the EC2 launch type, this field is optional.

If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines the range of supported values for the cpu parameter.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

  • Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

  • Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

  • Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    This option requires Linux platform 1.4.0 or later.

  • Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    This option requires Linux platform 1.4.0 or later.

" }, "overrides":{ "shape":"TaskOverride", @@ -5312,7 +5607,7 @@ }, "volumes":{ "shape":"VolumeList", - "documentation":"

The list of data volume definitions for the task. For more information, see Using data volumes in tasks in the Amazon Elastic Container Service Developer Guide.

The host and sourcePath parameters aren't supported for tasks run on Fargate.

" + "documentation":"

The list of data volume definitions for the task. For more information, see Using data volumes in tasks in the Amazon Elastic Container Service Developer Guide.

The host and sourcePath parameters aren't supported for tasks run on Fargate.

" }, "status":{ "shape":"TaskDefinitionStatus", @@ -5340,11 +5635,11 @@ }, "cpu":{ "shape":"String", - "documentation":"

The number of cpu units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the memory parameter.

The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.

  • 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

  • 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

  • 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

  • 2048 (2 vCPU) - Available memory values: Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

  • 4096 (4 vCPU) - Available memory values: Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

" + "documentation":"

The number of cpu units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the memory parameter.

The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.

  • 256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

  • 512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

  • 1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

  • 2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

  • 4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

  • 8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

    This option requires Linux platform 1.4.0 or later.

  • 16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

    This option requires Linux platform 1.4.0 or later.

" }, "memory":{ "shape":"String", - "documentation":"

The amount (in MiB) of memory used by the task.

If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see ContainerDefinition.

If your tasks runs on Fargate, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the cpu parameter.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

  • Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

  • Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

" + "documentation":"

The amount (in MiB) of memory used by the task.

If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see ContainerDefinition.

If your tasks runs on Fargate, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the cpu parameter.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

  • Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

  • Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

  • Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

    This option requires Linux platform 1.4.0 or later.

  • Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

    This option requires Linux platform 1.4.0 or later.

" }, "inferenceAccelerators":{ "shape":"InferenceAccelerators", @@ -5443,7 +5738,7 @@ }, "cpu":{ "shape":"String", - "documentation":"

The cpu override for the task.

" + "documentation":"

The CPU override for the task.

" }, "inferenceAcceleratorOverrides":{ "shape":"InferenceAcceleratorOverrides", @@ -5489,7 +5784,7 @@ }, "startedBy":{ "shape":"String", - "documentation":"

The tag specified when a task set is started. If an CodeDeploy deployment created the task set, the startedBy parameter is CODE_DEPLOY. If an external deployment created the task set, the startedBy field isn't used.

" + "documentation":"

The tag specified when a task set is started. If an CodeDeploy deployment created the task set, the startedBy parameter is CODE_DEPLOY. If an external deployment created the task set, the startedBy field isn't used.

" }, "externalId":{ "shape":"String", @@ -5557,7 +5852,7 @@ }, "stabilityStatus":{ "shape":"StabilityStatus", - "documentation":"

The stability status. This indicates whether the task set has reached a steady state. If the following conditions are met, the task set sre in STEADY_STATE:

  • The task runningCount is equal to the computedDesiredCount.

  • The pendingCount is 0.

  • There are no tasks that are running on container instances in the DRAINING status.

  • All tasks are reporting a healthy status from the load balancers, service discovery, and container health checks.

If any of those conditions aren't met, the stability status returns STABILIZING.

" + "documentation":"

The stability status. This indicates whether the task set has reached a steady state. If the following conditions are met, the task set are in STEADY_STATE:

  • The task runningCount is equal to the computedDesiredCount.

  • The pendingCount is 0.

  • There are no tasks that are running on container instances in the DRAINING status.

  • All tasks are reporting a healthy status from the load balancers, service discovery, and container health checks.

If any of those conditions aren't met, the stability status returns STABILIZING.

" }, "stabilityStatusAt":{ "shape":"Timestamp", @@ -5594,7 +5889,10 @@ "enum":[ "TaskFailedToStart", "EssentialContainerExited", - "UserInitiated" + "UserInitiated", + "ServiceSchedulerInitiated", + "SpotInterruption", + "TerminationNotice" ] }, "Tasks":{ @@ -5649,11 +5947,11 @@ }, "softLimit":{ "shape":"Integer", - "documentation":"

The soft limit for the ulimit type.

" + "documentation":"

The soft limit for the ulimit type.

" }, "hardLimit":{ "shape":"Integer", - "documentation":"

The hard limit for the ulimit type.

" + "documentation":"

The hard limit for the ulimit type.

" } }, "documentation":"

The ulimit settings to pass to the container.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and hard limit is 4096.

" @@ -5752,6 +6050,10 @@ "configuration":{ "shape":"ClusterConfiguration", "documentation":"

The execute command configuration for the cluster.

" + }, + "serviceConnectDefaults":{ + "shape":"ClusterServiceConnectDefaultsRequest", + "documentation":"

Use this parameter to set a default Service Connect namespace. After you set a default Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as client services in the namespace. This setting only applies to new services that set the enabled parameter to true in the ServiceConnectConfiguration. You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default parameter.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } } }, @@ -5777,7 +6079,7 @@ }, "settings":{ "shape":"ClusterSettings", - "documentation":"

The setting to use by default for a cluster. This parameter is used to turn on CloudWatch Container Insights for a cluster. If this value is specified, it overrides the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

" + "documentation":"

The setting to use by default for a cluster. This parameter is used to turn on CloudWatch Container Insights for a cluster. If this value is specified, it overrides the containerInsights value set with PutAccountSetting or PutAccountSettingDefault.

Currently, if you delete an existing cluster that does not have Container Insights turned on, and then create a new cluster with the same name with Container Insights tuned on, Container Insights will not actually be turned on. If you want to preserve the same name for your existing cluster and turn on Container Insights, you must wait 7 days before you can re-create it.

" } } }, @@ -5881,7 +6183,7 @@ "members":{ "taskSet":{ "shape":"TaskSet", - "documentation":"

etails about the task set.

" + "documentation":"

The details about the task set.

" } } }, @@ -5956,6 +6258,10 @@ "serviceRegistries":{ "shape":"ServiceRegistries", "documentation":"

The details for the service discovery registries to assign to this service. For more information, see Service Discovery.

When you add, update, or remove the service registries configuration, Amazon ECS starts new tasks with the updated service registries configuration, and then stops the old tasks when the new tasks are running.

You can remove existing serviceRegistries by passing an empty list.

" + }, + "serviceConnectConfiguration":{ + "shape":"ServiceConnectConfiguration", + "documentation":"

The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.

Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

" } } }, @@ -5968,6 +6274,45 @@ } } }, + "UpdateTaskProtectionRequest":{ + "type":"structure", + "required":[ + "cluster", + "tasks", + "protectionEnabled" + ], + "members":{ + "cluster":{ + "shape":"String", + "documentation":"

The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task sets exist in.

" + }, + "tasks":{ + "shape":"StringList", + "documentation":"

A list of up to 10 task IDs or full ARN entries.

" + }, + "protectionEnabled":{ + "shape":"Boolean", + "documentation":"

Specify true to mark a task for protection and false to unset protection, making it eligible for termination.

" + }, + "expiresInMinutes":{ + "shape":"BoxedInteger", + "documentation":"

If you set protectionEnabled to true, you can specify the duration for task protection in minutes. You can specify a value from 1 minute to up to 2,880 minutes (48 hours). During this time, your task will not be terminated by scale-in events from Service Auto Scaling or deployments. After this time period lapses, protectionEnabled will be reset to false.

If you don’t specify the time, then the task is automatically protected for 120 minutes (2 hours).

" + } + } + }, + "UpdateTaskProtectionResponse":{ + "type":"structure", + "members":{ + "protectedTasks":{ + "shape":"ProtectedTasks", + "documentation":"

A list of tasks with the following information.

  • taskArn: The task ARN.

  • protectionEnabled: The protection status of the task. If scale-in protection is enabled for a task, the value is true. Otherwise, it is false.

  • expirationDate: The epoch time when protection for the task will expire.

" + }, + "failures":{ + "shape":"Failures", + "documentation":"

Any failures associated with the call.

" + } + } + }, "UpdateTaskSetRequest":{ "type":"structure", "required":[ @@ -6071,5 +6416,5 @@ "member":{"shape":"Volume"} } }, - "documentation":"Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service. It makes it easy to run, stop, and manage Docker containers on a cluster. You can host your cluster on a serverless infrastructure that's managed by Amazon ECS by launching your services or tasks on Fargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage.

Amazon ECS makes it easy to launch and stop container-based applications with simple API calls. This makes it easy to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. With Amazon ECS, you don't need to operate your own cluster management and configuration management systems. You also don't need to worry about scaling your management infrastructure.

" + "documentation":"Amazon Elastic Container Service

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service. It makes it easy to run, stop, and manage Docker containers. You can host your cluster on a serverless infrastructure that's managed by Amazon ECS by launching your services or tasks on Fargate. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) or External (on-premises) instances that you manage.

Amazon ECS makes it easy to launch and stop container-based applications with simple API calls. This makes it easy to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.

You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. With Amazon ECS, you don't need to operate your own cluster management and configuration management systems. You also don't need to worry about scaling your management infrastructure.

" } diff --git a/botocore/data/efs/2015-02-01/endpoint-rule-set-1.json b/botocore/data/efs/2015-02-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..79cfa260 --- /dev/null +++ b/botocore/data/efs/2015-02-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticfilesystem-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticfilesystem-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticfilesystem.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticfilesystem.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/efs/2015-02-01/examples-1.json b/botocore/data/efs/2015-02-01/examples-1.json index b5c988ca..f3c75b34 100644 --- a/botocore/data/efs/2015-02-01/examples-1.json +++ b/botocore/data/efs/2015-02-01/examples-1.json @@ -4,7 +4,9 @@ "CreateFileSystem": [ { "input": { + "Backup": true, "CreationToken": "tokenstring", + "Encrypted": true, "PerformanceMode": "generalPurpose", "Tags": [ { @@ -16,6 +18,7 @@ "output": { "CreationTime": "1481841524.0", "CreationToken": "tokenstring", + "Encrypted": true, "FileSystemId": "fs-01234567", "LifeCycleState": "creating", "NumberOfMountTargets": 0, @@ -37,7 +40,7 @@ "output": { } }, - "description": "This operation creates a new file system with the default generalpurpose performance mode.", + "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" } diff --git a/botocore/data/efs/2015-02-01/service-2.json b/botocore/data/efs/2015-02-01/service-2.json index ceedfc0d..3a76b769 100644 --- a/botocore/data/efs/2015-02-01/service-2.json +++ b/botocore/data/efs/2015-02-01/service-2.json @@ -29,7 +29,7 @@ {"shape":"AccessPointLimitExceeded"}, {"shape":"ThrottlingException"} ], - "documentation":"

Creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in the application's own directory and any subdirectories. To learn more, see Mounting a file system using EFS access points.

This operation requires permissions for the elasticfilesystem:CreateAccessPoint action.

" + "documentation":"

Creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in the application's own directory and any subdirectories. To learn more, see Mounting a file system using EFS access points.

If multiple requests to create access points on the same file system are sent in quick succession, and the file system is near the limit of 120 access points, you may experience a throttling response for these requests. This is to ensure that the file system does not exceed the stated access point limit.

This operation requires permissions for the elasticfilesystem:CreateAccessPoint action.

" }, "CreateFileSystem":{ "name":"CreateFileSystem", @@ -750,7 +750,7 @@ }, "ThroughputMode":{ "shape":"ThroughputMode", - "documentation":"

Specifies the throughput mode for the file system, either bursting or provisioned. If you set ThroughputMode to provisioned, you must also set a value for ProvisionedThroughputInMibps. After you create the file system, you can decrease your file system's throughput in Provisioned Throughput mode or change between the throughput modes, as long as it’s been more than 24 hours since the last decrease or throughput mode change. For more information, see Specifying throughput with provisioned mode in the Amazon EFS User Guide.

Default is bursting.

" + "documentation":"

Specifies the throughput mode for the file system. The mode can be bursting, provisioned, or elastic. If you set ThroughputMode to provisioned, you must also set a value for ProvisionedThroughputInMibps. After you create the file system, you can decrease your file system's throughput in Provisioned Throughput mode or change between the throughput modes, with certain time restrictions. For more information, see Specifying throughput with provisioned mode in the Amazon EFS User Guide.

Default is bursting.

" }, "ProvisionedThroughputInMibps":{ "shape":"ProvisionedThroughputInMibps", @@ -2216,7 +2216,7 @@ "ErrorCode":{"shape":"ErrorCode"}, "Message":{"shape":"ErrorMessage"} }, - "documentation":"

Returned when the CreateAccessPoint API action is called too quickly and the number of Access Points in the account is nearing the limit of 120.

", + "documentation":"

Returned when the CreateAccessPoint API action is called too quickly and the number of Access Points on the file system is nearing the limit of 120.

", "error":{"httpStatusCode":429}, "exception":true }, @@ -2235,7 +2235,8 @@ "type":"string", "enum":[ "bursting", - "provisioned" + "provisioned", + "elastic" ] }, "Timestamp":{"type":"timestamp"}, @@ -2264,7 +2265,8 @@ "AFTER_14_DAYS", "AFTER_30_DAYS", "AFTER_60_DAYS", - "AFTER_90_DAYS" + "AFTER_90_DAYS", + "AFTER_1_DAY" ] }, "TransitionToPrimaryStorageClassRules":{ diff --git a/botocore/data/eks/2017-11-01/endpoint-rule-set-1.json b/botocore/data/eks/2017-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..4b665084 --- /dev/null +++ b/botocore/data/eks/2017-11-01/endpoint-rule-set-1.json @@ -0,0 +1,356 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://eks-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://fips.eks.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://eks.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://eks-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://eks.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://eks.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/eks/2017-11-01/examples-1.json b/botocore/data/eks/2017-11-01/examples-1.json index 6a83da72..8ea25175 100644 --- a/botocore/data/eks/2017-11-01/examples-1.json +++ b/botocore/data/eks/2017-11-01/examples-1.json @@ -109,6 +109,27 @@ "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/botocore/data/eks/2017-11-01/service-2.json b/botocore/data/eks/2017-11-01/service-2.json index be459034..33894827 100644 --- a/botocore/data/eks/2017-11-01/service-2.json +++ b/botocore/data/eks/2017-11-01/service-2.json @@ -65,7 +65,7 @@ {"shape":"ClientException"}, {"shape":"ServerException"} ], - "documentation":"

Creates an Amazon EKS add-on.

Amazon EKS add-ons help to automate the provisioning and lifecycle management of common operational software for Amazon EKS clusters. Amazon EKS add-ons require clusters running version 1.18 or later because Amazon EKS add-ons rely on the Server-side Apply Kubernetes feature, which is only available in Kubernetes 1.18 and later. For more information, see Amazon EKS add-ons in the Amazon EKS User Guide.

" + "documentation":"

Creates an Amazon EKS add-on.

Amazon EKS add-ons help to automate the provisioning and lifecycle management of common operational software for Amazon EKS clusters. For more information, see Amazon EKS add-ons in the Amazon EKS User Guide.

" }, "CreateCluster":{ "name":"CreateCluster", @@ -226,6 +226,21 @@ ], "documentation":"

Describes an Amazon EKS add-on.

" }, + "DescribeAddonConfiguration":{ + "name":"DescribeAddonConfiguration", + "http":{ + "method":"GET", + "requestUri":"/addons/configuration-schemas" + }, + "input":{"shape":"DescribeAddonConfigurationRequest"}, + "output":{"shape":"DescribeAddonConfigurationResponse"}, + "errors":[ + {"shape":"ServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Returns configuration options.

" + }, "DescribeAddonVersions":{ "name":"DescribeAddonVersions", "http":{ @@ -239,7 +254,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Describes the Kubernetes versions that the add-on can be used with.

" + "documentation":"

Describes the versions for an add-on. Information such as the Kubernetes versions that you can use the add-on with, the owner, publisher, and the type of the add-on are returned.

" }, "DescribeCluster":{ "name":"DescribeCluster", @@ -637,7 +652,7 @@ }, "health":{ "shape":"AddonHealth", - "documentation":"

An object that represents the health of the add-on.

" + "documentation":"

An object representing the health of the add-on.

" }, "addonArn":{ "shape":"String", @@ -658,6 +673,22 @@ "tags":{ "shape":"TagMap", "documentation":"

The metadata that you apply to the add-on to assist with categorization and organization. Each tag consists of a key and an optional value. You define both. Add-on tags do not propagate to any other resources associated with the cluster.

" + }, + "publisher":{ + "shape":"String", + "documentation":"

The publisher of the add-on.

" + }, + "owner":{ + "shape":"String", + "documentation":"

The owner of the add-on.

" + }, + "marketplaceInformation":{ + "shape":"MarketplaceInformation", + "documentation":"

Information about an Amazon EKS add-on from the Amazon Web Services Marketplace.

" + }, + "configurationValues":{ + "shape":"String", + "documentation":"

The provided configuration values.

" } }, "documentation":"

An Amazon EKS add-on. For more information, see Amazon EKS add-ons in the Amazon EKS User Guide.

" @@ -667,7 +698,7 @@ "members":{ "issues":{ "shape":"AddonIssueList", - "documentation":"

An object that represents the add-on's health issues.

" + "documentation":"

An object representing the health issues for an add-on.

" } }, "documentation":"

The health of the add-on.

" @@ -685,7 +716,19 @@ }, "addonVersions":{ "shape":"AddonVersionInfoList", - "documentation":"

An object that represents information about available add-on versions and compatible Kubernetes versions.

" + "documentation":"

An object representing information about available add-on versions and compatible Kubernetes versions.

" + }, + "publisher":{ + "shape":"String", + "documentation":"

The publisher of the add-on.

" + }, + "owner":{ + "shape":"String", + "documentation":"

The owner of the add-on.

" + }, + "marketplaceInformation":{ + "shape":"MarketplaceInformation", + "documentation":"

Information about the add-on from the Amazon Web Services Marketplace.

" } }, "documentation":"

Information about an add-on.

" @@ -734,7 +777,8 @@ "UPDATING", "DELETING", "DELETE_FAILED", - "DEGRADED" + "DEGRADED", + "UPDATE_FAILED" ] }, "AddonVersionInfo":{ @@ -750,7 +794,11 @@ }, "compatibilities":{ "shape":"Compatibilities", - "documentation":"

An object that represents the compatibilities of a version.

" + "documentation":"

An object representing the compatibilities of a version.

" + }, + "requiresConfiguration":{ + "shape":"Boolean", + "documentation":"

Whether the add-on requires configuration.

" } }, "documentation":"

Information about an add-on version.

" @@ -808,7 +856,7 @@ }, "oidc":{ "shape":"OidcIdentityProviderConfigRequest", - "documentation":"

An object that represents an OpenID Connect (OIDC) identity provider configuration.

" + "documentation":"

An object representing an OpenID Connect (OIDC) identity provider configuration.

" }, "tags":{ "shape":"TagMap", @@ -973,10 +1021,65 @@ "connectorConfig":{ "shape":"ConnectorConfigResponse", "documentation":"

The configuration used to connect to a cluster for registration.

" + }, + "id":{ + "shape":"String", + "documentation":"

The ID of your local Amazon EKS cluster on an Amazon Web Services Outpost. This property isn't available for an Amazon EKS cluster on the Amazon Web Services cloud.

" + }, + "health":{ + "shape":"ClusterHealth", + "documentation":"

An object representing the health of your local Amazon EKS cluster on an Amazon Web Services Outpost. This object isn't available for clusters on the Amazon Web Services cloud.

" + }, + "outpostConfig":{ + "shape":"OutpostConfigResponse", + "documentation":"

An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services Outpost. This object isn't available for clusters on the Amazon Web Services cloud.

" } }, "documentation":"

An object representing an Amazon EKS cluster.

" }, + "ClusterHealth":{ + "type":"structure", + "members":{ + "issues":{ + "shape":"ClusterIssueList", + "documentation":"

An object representing the health issues of your local Amazon EKS cluster on an Amazon Web Services Outpost.

" + } + }, + "documentation":"

An object representing the health of your local Amazon EKS cluster on an Amazon Web Services Outpost. You can't use this API with an Amazon EKS cluster on the Amazon Web Services cloud.

" + }, + "ClusterIssue":{ + "type":"structure", + "members":{ + "code":{ + "shape":"ClusterIssueCode", + "documentation":"

The error code of the issue.

" + }, + "message":{ + "shape":"String", + "documentation":"

A description of the issue.

" + }, + "resourceIds":{ + "shape":"StringList", + "documentation":"

The resource IDs that the issue relates to.

" + } + }, + "documentation":"

An issue with your local Amazon EKS cluster on an Amazon Web Services Outpost. You can't use this API with an Amazon EKS cluster on the Amazon Web Services cloud.

" + }, + "ClusterIssueCode":{ + "type":"string", + "enum":[ + "AccessDenied", + "ClusterUnreachable", + "ConfigurationConflict", + "InternalFailure", + "ResourceLimitExceeded", + "ResourceNotFound" + ] + }, + "ClusterIssueList":{ + "type":"list", + "member":{"shape":"ClusterIssue"} + }, "ClusterName":{ "type":"string", "max":100, @@ -1074,6 +1177,26 @@ }, "documentation":"

The full description of your connected cluster.

" }, + "ControlPlanePlacementRequest":{ + "type":"structure", + "members":{ + "groupName":{ + "shape":"String", + "documentation":"

The name of the placement group for the Kubernetes control plane instances. This setting can't be changed after cluster creation.

" + } + }, + "documentation":"

The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations in the Amazon EKS User Guide

" + }, + "ControlPlanePlacementResponse":{ + "type":"structure", + "members":{ + "groupName":{ + "shape":"String", + "documentation":"

The name of the placement group for the Kubernetes control plane instances.

" + } + }, + "documentation":"

The placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations in the Amazon EKS User Guide.

" + }, "CreateAddonRequest":{ "type":"structure", "required":[ @@ -1101,7 +1224,7 @@ }, "resolveConflicts":{ "shape":"ResolveConflicts", - "documentation":"

How to resolve parameter value conflicts when migrating an existing add-on to an Amazon EKS add-on.

" + "documentation":"

How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose:

  • None – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail.

  • Overwrite – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value.

  • Preserve – Not supported. You can set this value when updating an add-on though. For more information, see UpdateAddon.

If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify.

" }, "clientRequestToken":{ "shape":"String", @@ -1111,6 +1234,10 @@ "tags":{ "shape":"TagMap", "documentation":"

The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.

" + }, + "configurationValues":{ + "shape":"String", + "documentation":"

The set of configuration values for the add-on being created. Whatever values provided here are validated against the schema from DescribeAddonConfiguration .

" } } }, @@ -1134,7 +1261,7 @@ }, "version":{ "shape":"String", - "documentation":"

The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.

" + "documentation":"

The desired Kubernetes version for your cluster. If you don't specify a value here, the default version available in Amazon EKS is used.

The default version might not be the latest version available.

" }, "roleArn":{ "shape":"String", @@ -1164,6 +1291,10 @@ "encryptionConfig":{ "shape":"EncryptionConfigList", "documentation":"

The encryption configuration for the cluster.

" + }, + "outpostConfig":{ + "shape":"OutpostConfigRequest", + "documentation":"

An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services Outpost. Before creating a local cluster on an Outpost, review Local clusters for Amazon EKS on Amazon Web Services Outposts in the Amazon EKS User Guide. This object isn't available for creating Amazon EKS clusters on the Amazon Web Services cloud.

" } } }, @@ -1342,7 +1473,7 @@ }, "preserve":{ "shape":"Boolean", - "documentation":"

Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it is not removed.

", + "documentation":"

Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed.

", "location":"querystring", "locationName":"preserve" } @@ -1453,6 +1584,44 @@ "cluster":{"shape":"Cluster"} } }, + "DescribeAddonConfigurationRequest":{ + "type":"structure", + "required":[ + "addonName", + "addonVersion" + ], + "members":{ + "addonName":{ + "shape":"String", + "documentation":"

The name of the add-on. The name must match one of the names returned by DescribeAddonVersions .

", + "location":"querystring", + "locationName":"addonName" + }, + "addonVersion":{ + "shape":"String", + "documentation":"

The version of the add-on. The version must match one of the versions returned by DescribeAddonVersions .

", + "location":"querystring", + "locationName":"addonVersion" + } + } + }, + "DescribeAddonConfigurationResponse":{ + "type":"structure", + "members":{ + "addonName":{ + "shape":"String", + "documentation":"

The name of the add-on.

" + }, + "addonVersion":{ + "shape":"String", + "documentation":"

The version of the add-on. The version must match one of the versions returned by DescribeAddonVersions .

" + }, + "configurationSchema":{ + "shape":"String", + "documentation":"

A JSON schema used to validate provided configuration values when creating or updating an addon.

" + } + } + }, "DescribeAddonRequest":{ "type":"structure", "required":[ @@ -1485,7 +1654,7 @@ "members":{ "kubernetesVersion":{ "shape":"String", - "documentation":"

The Kubernetes versions that the add-on can be used with.

", + "documentation":"

The Kubernetes versions that you can use the add-on with.

", "location":"querystring", "locationName":"kubernetesVersion" }, @@ -1506,6 +1675,24 @@ "documentation":"

The name of the add-on. The name must match one of the names returned by ListAddons .

", "location":"querystring", "locationName":"addonName" + }, + "types":{ + "shape":"StringList", + "documentation":"

The type of the add-on. For valid types, don't specify a value for this property.

", + "location":"querystring", + "locationName":"types" + }, + "publishers":{ + "shape":"StringList", + "documentation":"

The publisher of the add-on. For valid publishers, don't specify a value for this property.

", + "location":"querystring", + "locationName":"publishers" + }, + "owners":{ + "shape":"StringList", + "documentation":"

The owner of the add-on. For valid owners, don't specify a value for this property.

", + "location":"querystring", + "locationName":"owners" } } }, @@ -1520,7 +1707,7 @@ "members":{ "addons":{ "shape":"Addons", - "documentation":"

The list of available versions with Kubernetes version compatibility.

" + "documentation":"

The list of available versions with Kubernetes version compatibility and other properties.

" }, "nextToken":{ "shape":"String", @@ -1594,7 +1781,7 @@ }, "identityProviderConfig":{ "shape":"IdentityProviderConfig", - "documentation":"

An object that represents an identity provider configuration.

" + "documentation":"

An object representing an identity provider configuration.

" } } }, @@ -1694,7 +1881,7 @@ }, "identityProviderConfig":{ "shape":"IdentityProviderConfig", - "documentation":"

An object that represents an identity provider configuration.

" + "documentation":"

An object representing an identity provider configuration.

" }, "clientRequestToken":{ "shape":"String", @@ -1886,7 +2073,7 @@ "members":{ "oidc":{ "shape":"OidcIdentityProviderConfig", - "documentation":"

An object that represents an OpenID Connect (OIDC) identity provider configuration.

" + "documentation":"

An object representing an OpenID Connect (OIDC) identity provider configuration.

" } }, "documentation":"

The full description of your identity configuration.

" @@ -1973,11 +2160,11 @@ "members":{ "serviceIpv4Cidr":{ "shape":"String", - "documentation":"

Don't specify a value if you select ipv6 for ipFamily. The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. The block must meet the following requirements:

  • Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16.

  • Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.

  • Between /24 and /12.

You can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created.

" + "documentation":"

Don't specify a value if you select ipv6 for ipFamily. The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. The block must meet the following requirements:

  • Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16.

  • Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.

  • Between /24 and /12.

You can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created.

" }, "ipFamily":{ "shape":"IpFamily", - "documentation":"

Specify which IP family is used to assign Kubernetes pod and service IP addresses. If you don't specify a value, ipv4 is used by default. You can only specify an IP family when you create a cluster and can't change this value once the cluster is created. If you specify ipv6, the VPC and subnets that you specify for cluster creation must have both IPv4 and IPv6 CIDR blocks assigned to them. You can't specify ipv6 for clusters in China Regions.

You can only specify ipv6 for 1.21 and later clusters that use version 1.10.1 or later of the Amazon VPC CNI add-on. If you specify ipv6, then ensure that your VPC meets the requirements listed in the considerations listed in Assigning IPv6 addresses to pods and services in the Amazon EKS User Guide. Kubernetes assigns services IPv6 addresses from the unique local address range (fc00::/7). You can't specify a custom IPv6 CIDR block. Pod addresses are assigned from the subnet's IPv6 CIDR.

" + "documentation":"

Specify which IP family is used to assign Kubernetes pod and service IP addresses. If you don't specify a value, ipv4 is used by default. You can only specify an IP family when you create a cluster and can't change this value once the cluster is created. If you specify ipv6, the VPC and subnets that you specify for cluster creation must have both IPv4 and IPv6 CIDR blocks assigned to them. You can't specify ipv6 for clusters in China Regions.

You can only specify ipv6 for 1.21 and later clusters that use version 1.10.1 or later of the Amazon VPC CNI add-on. If you specify ipv6, then ensure that your VPC meets the requirements listed in the considerations listed in Assigning IPv6 addresses to pods and services in the Amazon EKS User Guide. Kubernetes assigns services IPv6 addresses from the unique local address range (fc00::/7). You can't specify a custom IPv6 CIDR block. Pod addresses are assigned from the subnet's IPv6 CIDR.

" } }, "documentation":"

The Kubernetes network configuration for the cluster.

" @@ -2005,18 +2192,18 @@ "members":{ "name":{ "shape":"String", - "documentation":"

The name of the launch template.

" + "documentation":"

The name of the launch template.

You must specify either the launch template name or the launch template ID in the request, but not both.

" }, "version":{ "shape":"String", - "documentation":"

The version of the launch template to use. If no version is specified, then the template's default version is used.

" + "documentation":"

The version number of the launch template to use. If no version is specified, then the template's default version is used.

" }, "id":{ "shape":"String", - "documentation":"

The ID of the launch template.

" + "documentation":"

The ID of the launch template.

You must specify either the launch template ID or the launch template name in the request, but not both.

" } }, - "documentation":"

An object representing a node group launch template specification. The launch template cannot include SubnetId , IamInstanceProfile , RequestSpotInstances , HibernationOptions , or TerminateInstances , or the node group deployment or update will fail. For more information about launch templates, see CreateLaunchTemplate in the Amazon EC2 API Reference. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

Specify either name or id, but not both.

" + "documentation":"

An object representing a node group launch template specification. The launch template can't include SubnetId , IamInstanceProfile , RequestSpotInstances , HibernationOptions , or TerminateInstances , or the node group deployment or update will fail. For more information about launch templates, see CreateLaunchTemplate in the Amazon EC2 API Reference. For more information about using launch templates with Amazon EKS, see Launch template support in the Amazon EKS User Guide.

You must specify either the launch template ID or the launch template name in the request, but not both.

" }, "ListAddonsRequest":{ "type":"structure", @@ -2344,6 +2531,20 @@ }, "documentation":"

An object representing the logging configuration for resources in your cluster.

" }, + "MarketplaceInformation":{ + "type":"structure", + "members":{ + "productId":{ + "shape":"String", + "documentation":"

The product ID from the Amazon Web Services Marketplace.

" + }, + "productUrl":{ + "shape":"String", + "documentation":"

The product URL from the Amazon Web Services Marketplace.

" + } + }, + "documentation":"

Information about an Amazon EKS add-on from the Amazon Web Services Marketplace.

" + }, "Nodegroup":{ "type":"structure", "members":{ @@ -2610,7 +2811,7 @@ "documentation":"

The status of the OIDC identity provider.

" } }, - "documentation":"

An object that represents the configuration for an OpenID Connect (OIDC) identity provider.

" + "documentation":"

An object representing the configuration for an OpenID Connect (OIDC) identity provider.

" }, "OidcIdentityProviderConfigRequest":{ "type":"structure", @@ -2655,6 +2856,50 @@ }, "documentation":"

An object representing an OpenID Connect (OIDC) configuration. Before associating an OIDC identity provider to your cluster, review the considerations in Authenticating users for your cluster from an OpenID Connect identity provider in the Amazon EKS User Guide.

" }, + "OutpostConfigRequest":{ + "type":"structure", + "required":[ + "outpostArns", + "controlPlaneInstanceType" + ], + "members":{ + "outpostArns":{ + "shape":"StringList", + "documentation":"

The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts. Only a single Outpost ARN is supported.

" + }, + "controlPlaneInstanceType":{ + "shape":"String", + "documentation":"

The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts. Choose an instance type based on the number of nodes that your cluster will have. For more information, see Capacity considerations in the Amazon EKS User Guide.

The instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. The control plane is not automatically scaled by Amazon EKS.

" + }, + "controlPlanePlacement":{ + "shape":"ControlPlanePlacementRequest", + "documentation":"

An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations in the Amazon EKS User Guide.

" + } + }, + "documentation":"

The configuration of your local Amazon EKS cluster on an Amazon Web Services Outpost. Before creating a cluster on an Outpost, review Creating a local cluster on an Outpost in the Amazon EKS User Guide. This API isn't available for Amazon EKS clusters on the Amazon Web Services cloud.

" + }, + "OutpostConfigResponse":{ + "type":"structure", + "required":[ + "outpostArns", + "controlPlaneInstanceType" + ], + "members":{ + "outpostArns":{ + "shape":"StringList", + "documentation":"

The ARN of the Outpost that you specified for use with your local Amazon EKS cluster on Outposts.

" + }, + "controlPlaneInstanceType":{ + "shape":"String", + "documentation":"

The Amazon EC2 instance type used for the control plane. The instance type is the same for all control plane instances.

" + }, + "controlPlanePlacement":{ + "shape":"ControlPlanePlacementResponse", + "documentation":"

An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see Capacity considerations in the Amazon EKS User Guide.

" + } + }, + "documentation":"

An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services Outpost. This API isn't available for Amazon EKS clusters on the Amazon Web Services cloud.

" + }, "PercentCapacity":{ "type":"integer", "box":true, @@ -2708,11 +2953,11 @@ "members":{ "ec2SshKey":{ "shape":"String", - "documentation":"

The Amazon EC2 SSH key that provides access for SSH communication with the nodes in the managed node group. For more information, see Amazon EC2 key pairs and Linux instances in the Amazon Elastic Compute Cloud User Guide for Linux Instances.

" + "documentation":"

The Amazon EC2 SSH key name that provides access for SSH communication with the nodes in the managed node group. For more information, see Amazon EC2 key pairs and Linux instances in the Amazon Elastic Compute Cloud User Guide for Linux Instances.

" }, "sourceSecurityGroups":{ "shape":"StringList", - "documentation":"

The security groups that are allowed SSH access (port 22) to the nodes. If you specify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group, then port 22 on the nodes is opened to the internet (0.0.0.0/0). For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

" + "documentation":"

The security group ids that are allowed SSH access (port 22) to the nodes. If you specify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group, then port 22 on the nodes is opened to the internet (0.0.0.0/0). For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

" } }, "documentation":"

An object representing the remote access configuration for the managed node group.

" @@ -2721,7 +2966,8 @@ "type":"string", "enum":[ "OVERWRITE", - "NONE" + "NONE", + "PRESERVE" ] }, "ResourceInUseException":{ @@ -3008,12 +3254,16 @@ }, "resolveConflicts":{ "shape":"ResolveConflicts", - "documentation":"

How to resolve parameter value conflicts when applying the new version of the add-on to the cluster.

" + "documentation":"

How to resolve field value conflicts for an Amazon EKS add-on if you've changed a value from the Amazon EKS default value. Conflicts are handled based on the option you choose:

  • None – Amazon EKS doesn't change the value. The update might fail.

  • Overwrite – Amazon EKS overwrites the changed value back to the Amazon EKS default value.

  • Preserve – Amazon EKS preserves the value. If you choose this option, we recommend that you test any field and value changes on a non-production cluster before updating the add-on on your production cluster.

" }, "clientRequestToken":{ "shape":"String", "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "idempotencyToken":true + }, + "configurationValues":{ + "shape":"String", + "documentation":"

The set of configuration values for the add-on being created. Whatever values provided here are validated against the schema from DescribeAddonConfiguration

" } } }, @@ -3258,7 +3508,7 @@ }, "removeTaints":{ "shape":"taintsList", - "documentation":"

Kubernetes taints to be removed.

" + "documentation":"

Kubernetes taints to remove.

" } }, "documentation":"

An object representing the details of an update to a taints payload. For more information, see Node taints on managed node groups.

" @@ -3285,7 +3535,7 @@ }, "securityGroupIds":{ "shape":"StringList", - "documentation":"

Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use that allow communication between your nodes and the Kubernetes control plane. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes:

  • 1.14 Amazon EKS platform version eks.2 and earlier

  • 1.14 Amazon EKS platform version eks.3 and later

For more information, see Amazon EKS security group considerations in the Amazon EKS User Guide .

" + "documentation":"

Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use that allow communication between your nodes and the Kubernetes control plane. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes. For more information, see Amazon EKS security group considerations in the Amazon EKS User Guide .

" }, "endpointPublicAccess":{ "shape":"BoxedBoolean", diff --git a/botocore/data/elastic-inference/2017-07-25/endpoint-rule-set-1.json b/botocore/data/elastic-inference/2017-07-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..bad7d86a --- /dev/null +++ b/botocore/data/elastic-inference/2017-07-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.elastic-inference-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.elastic-inference-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.elastic-inference.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.elastic-inference.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/elastic-inference/2017-07-25/examples-1.json b/botocore/data/elastic-inference/2017-07-25/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/elastic-inference/2017-07-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/elasticache/2014-09-30/endpoint-rule-set-1.json b/botocore/data/elasticache/2014-09-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..166cdb1c --- /dev/null +++ b/botocore/data/elasticache/2014-09-30/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticache-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://elasticache.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticache-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticache.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticache.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/elasticache/2015-02-02/endpoint-rule-set-1.json b/botocore/data/elasticache/2015-02-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..166cdb1c --- /dev/null +++ b/botocore/data/elasticache/2015-02-02/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticache-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://elasticache.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticache-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticache.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticache.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/elasticache/2015-02-02/service-2.json b/botocore/data/elasticache/2015-02-02/service-2.json index 15b0b2b3..e1e6a843 100644 --- a/botocore/data/elasticache/2015-02-02/service-2.json +++ b/botocore/data/elasticache/2015-02-02/service-2.json @@ -889,7 +889,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"InvalidParameterCombinationException"} ], - "documentation":"

Used to failover the primary region to a selected secondary region. The selected secondary region will become primary, and all other clusters will become secondary.

" + "documentation":"

Used to failover the primary region to a secondary region. The secondary region will become primary, and all other clusters will become secondary.

" }, "IncreaseNodeGroupsInGlobalReplicationGroup":{ "name":"IncreaseNodeGroupsInGlobalReplicationGroup", @@ -1422,11 +1422,26 @@ }, "documentation":"

Indicates whether the user requires a password to authenticate.

" }, + "AuthenticationMode":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"InputAuthenticationType", + "documentation":"

Specifies the authentication type. Possible options are IAM authentication, password and no password.

" + }, + "Passwords":{ + "shape":"PasswordListInput", + "documentation":"

Specifies the passwords to use for authentication if Type is set to password.

" + } + }, + "documentation":"

Specifies the authentication mode to use.

" + }, "AuthenticationType":{ "type":"string", "enum":[ "password", - "no-password" + "no-password", + "iam" ] }, "AuthorizationAlreadyExistsFault":{ @@ -1565,7 +1580,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The name of the compute and memory capacity node type for the cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types: (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized with data tiering:

    • Current generation:

      R6gd node types (available only for Redis engine version 6.2 onward).

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The name of the compute and memory capacity node type for the cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Engine":{ "shape":"String", @@ -1667,6 +1682,14 @@ "LogDeliveryConfigurations":{ "shape":"LogDeliveryConfigurationList", "documentation":"

Returns the destination, format and type of the logs.

" + }, + "NetworkType":{ + "shape":"NetworkType", + "documentation":"

Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" + }, + "IpDiscovery":{ + "shape":"IpDiscovery", + "documentation":"

The network type associated with the cluster, either ipv4 | ipv6. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" } }, "documentation":"

Contains all of the attributes of a specific cluster.

", @@ -1805,7 +1828,7 @@ "documentation":"

The customer outpost ARN of the cache node.

" } }, - "documentation":"

Represents an individual cache node within a cluster. Each cache node runs its own instance of the cluster's protocol-compliant caching software - either Memcached or Redis.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types: (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized with data tiering:

    • Current generation:

      R6gd node types (available only for Redis engine version 6.2 onward).

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

Represents an individual cache node within a cluster. Each cache node runs its own instance of the cluster's protocol-compliant caching software - either Memcached or Redis.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "CacheNodeIdsList":{ "type":"list", @@ -2200,6 +2223,10 @@ "ARN":{ "shape":"String", "documentation":"

The ARN (Amazon Resource Name) of the cache subnet group.

" + }, + "SupportedNetworkTypes":{ + "shape":"NetworkTypeList", + "documentation":"

Either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" } }, "documentation":"

Represents the output of one of the following operations:

  • CreateCacheSubnetGroup

  • ModifyCacheSubnetGroup

", @@ -2434,7 +2461,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Engine":{ "shape":"String", @@ -2518,7 +2545,15 @@ }, "TransitEncryptionEnabled":{ "shape":"BooleanOptional", - "documentation":"

A flag that enables in-transit encryption when set to true. You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.

Required: Only available when creating a cache cluster in an Amazon VPC using Memcached version 1.6.12 or later.

" + "documentation":"

A flag that enables in-transit encryption when set to true. You cannot modify the value of TransitEncryptionEnabled after the cluster is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled to true when you create a cluster.

Only available when creating a cache cluster in an Amazon VPC using Memcached version 1.6.12 or later.

" + }, + "NetworkType":{ + "shape":"NetworkType", + "documentation":"

Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" + }, + "IpDiscovery":{ + "shape":"IpDiscovery", + "documentation":"

The network type you choose when modifying a cluster, either ipv4 | ipv6. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" } }, "documentation":"

Represents the input of a CreateCacheCluster operation.

" @@ -2703,7 +2738,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized with data tiering:

    • Current generation:

      R6gd node types (available only for Redis engine version 6.2 onward).

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The compute and memory capacity of the nodes in the node group (shard).

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Engine":{ "shape":"String", @@ -2792,6 +2827,14 @@ "DataTieringEnabled":{ "shape":"BooleanOptional", "documentation":"

Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see Data tiering.

" + }, + "NetworkType":{ + "shape":"NetworkType", + "documentation":"

Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" + }, + "IpDiscovery":{ + "shape":"IpDiscovery", + "documentation":"

The network type you choose when creating a replication group, either ipv4 | ipv6. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" } }, "documentation":"

Represents the input of a CreateReplicationGroup operation.

" @@ -2896,6 +2939,10 @@ "Tags":{ "shape":"TagList", "documentation":"

A list of tags to be added to this resource. A tag is a key-value pair. A tag key must be accompanied by a tag value, although null is accepted.

" + }, + "AuthenticationMode":{ + "shape":"AuthenticationMode", + "documentation":"

Specifies how to authenticate the user.

" } } }, @@ -3415,7 +3462,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types: (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized with data tiering:

    • Current generation:

      R6gd node types (available only for Redis engine version 6.2 onward).

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The cache node type filter value. Use this parameter to show only those reservations matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Duration":{ "shape":"String", @@ -3449,7 +3496,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types: (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward) cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized with data tiering:

    • Current generation:

      R6gd node types (available only for Redis engine version 6.2 onward).

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The cache node type filter value. Use this parameter to show only the available offerings matching the specified cache node type.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Duration":{ "shape":"String", @@ -4119,6 +4166,14 @@ "ReplicationGroup":{"shape":"ReplicationGroup"} } }, + "InputAuthenticationType":{ + "type":"string", + "enum":[ + "password", + "no-password-required", + "iam" + ] + }, "InsufficientCacheClusterCapacityFault":{ "type":"structure", "members":{ @@ -4311,6 +4366,13 @@ }, "exception":true }, + "IpDiscovery":{ + "type":"string", + "enum":[ + "ipv4", + "ipv6" + ] + }, "KeyList":{ "type":"list", "member":{"shape":"String"} @@ -4527,6 +4589,10 @@ "LogDeliveryConfigurations":{ "shape":"LogDeliveryConfigurationRequestList", "documentation":"

Specifies the destination, format and type of the logs.

" + }, + "IpDiscovery":{ + "shape":"IpDiscovery", + "documentation":"

The network type you choose when modifying a cluster, either ipv4 | ipv6. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" } }, "documentation":"

Represents the input of a ModifyCacheCluster operation.

" @@ -4727,6 +4793,10 @@ "LogDeliveryConfigurations":{ "shape":"LogDeliveryConfigurationRequestList", "documentation":"

Specifies the destination, format and type of the logs.

" + }, + "IpDiscovery":{ + "shape":"IpDiscovery", + "documentation":"

The network type you choose when modifying a cluster, either ipv4 | ipv6. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" } }, "documentation":"

Represents the input of a ModifyReplicationGroups operation.

" @@ -4819,6 +4889,10 @@ "NoPasswordRequired":{ "shape":"BooleanOptional", "documentation":"

Indicates no password is required for the user.

" + }, + "AuthenticationMode":{ + "shape":"AuthenticationMode", + "documentation":"

Specifies how to authenticate the user.

" } } }, @@ -4829,6 +4903,18 @@ "disabled" ] }, + "NetworkType":{ + "type":"string", + "enum":[ + "ipv4", + "ipv6", + "dual_stack" + ] + }, + "NetworkTypeList":{ + "type":"list", + "member":{"shape":"NetworkType"} + }, "NoOperationFault":{ "type":"structure", "members":{ @@ -5625,6 +5711,18 @@ "DataTiering":{ "shape":"DataTieringStatus", "documentation":"

Enables data tiering. Data tiering is only supported for replication groups using the r6gd node type. This parameter must be set to true when using r6gd nodes. For more information, see Data tiering.

" + }, + "AutoMinorVersionUpgrade":{ + "shape":"Boolean", + "documentation":"

If you are running Redis engine version 6.0 or later, set this parameter to yes if you want to opt-in to the next auto minor version upgrade campaign. This parameter is disabled for previous versions.

" + }, + "NetworkType":{ + "shape":"NetworkType", + "documentation":"

Must be either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" + }, + "IpDiscovery":{ + "shape":"IpDiscovery", + "documentation":"

The network type you choose when modifying a cluster, either ipv4 | ipv6. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" } }, "documentation":"

Contains all of the attributes of a specific Redis replication group.

", @@ -5754,7 +5852,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The cache node type for the reserved cache nodes.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types: (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized with data tiering:

    • Current generation:

      R6gd node types (available only for Redis engine version 6.2 onward).

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The cache node type for the reserved cache nodes.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "StartTime":{ "shape":"TStamp", @@ -5866,7 +5964,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The cache node type for the reserved cache node.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types: (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized with data tiering:

    • Current generation:

      R6gd node types (available only for Redis engine version 6.2 onward).

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The cache node type for the reserved cache node.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Duration":{ "shape":"Integer", @@ -6204,7 +6302,7 @@ }, "CacheNodeType":{ "shape":"String", - "documentation":"

The name of the compute and memory capacity node type for the source cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward):

      cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended)

      C1 node types: cache.c1.xlarge

  • Memory optimized with data tiering:

    • Current generation:

      R6gd node types (available only for Redis engine version 6.2 onward).

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" + "documentation":"

The name of the compute and memory capacity node type for the source cluster.

The following node types are supported by ElastiCache. Generally speaking, the current generation types provide more memory and computational power at lower cost when compared to their equivalent previous generation counterparts.

  • General purpose:

    • Current generation:

      M6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      For region availability, see Supported Node Types

      M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge

      M4 node types: cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge

      T4g node types (available only for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 node types: cache.t3.micro, cache.t3.small, cache.t3.medium

      T2 node types: cache.t2.micro, cache.t2.small, cache.t2.medium

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      T1 node types: cache.t1.micro

      M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge

      M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge

  • Compute optimized:

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      C1 node types: cache.c1.xlarge

  • Memory optimized:

    • Current generation:

      R6g node types (available only for Redis engine version 5.0.6 onward and for Memcached engine version 1.5.16 onward).

      cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge

      For region availability, see Supported Node Types

      R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge

      R4 node types: cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge

    • Previous generation: (not recommended. Existing clusters are still supported but creation of new clusters is not supported for these types.)

      M2 node types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge

      R3 node types: cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge

Additional node type info

  • All current generation instance types are created in Amazon VPC by default.

  • Redis append-only files (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ with automatic failover is not supported on T1 instances.

  • Redis configuration variables appendonly and appendfsync are not supported on Redis version 2.8.22 and later.

" }, "Engine":{ "shape":"String", @@ -6406,6 +6504,10 @@ "SubnetOutpost":{ "shape":"SubnetOutpost", "documentation":"

The outpost ARN of the subnet.

" + }, + "SupportedNetworkTypes":{ + "shape":"NetworkTypeList", + "documentation":"

Either ipv4 | ipv6 | dual_stack. IPv6 is supported for workloads using Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all instances built on the Nitro system.

" } }, "documentation":"

Represents the subnet associated with a cluster. This parameter refers to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with ElastiCache.

" diff --git a/botocore/data/elasticbeanstalk/2010-12-01/endpoint-rule-set-1.json b/botocore/data/elasticbeanstalk/2010-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..dc36bc97 --- /dev/null +++ b/botocore/data/elasticbeanstalk/2010-12-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticbeanstalk-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticbeanstalk-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticbeanstalk.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticbeanstalk.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/elastictranscoder/2012-09-25/endpoint-rule-set-1.json b/botocore/data/elastictranscoder/2012-09-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..8eea7694 --- /dev/null +++ b/botocore/data/elastictranscoder/2012-09-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elastictranscoder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elastictranscoder-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elastictranscoder.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://elastictranscoder.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/elb/2012-06-01/endpoint-rule-set-1.json b/botocore/data/elb/2012-06-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..ed9f2724 --- /dev/null +++ b/botocore/data/elb/2012-06-01/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticloadbalancing-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://elasticloadbalancing.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticloadbalancing-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticloadbalancing.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticloadbalancing.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/elbv2/2015-12-01/endpoint-rule-set-1.json b/botocore/data/elbv2/2015-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..ed9f2724 --- /dev/null +++ b/botocore/data/elbv2/2015-12-01/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticloadbalancing-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://elasticloadbalancing.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticloadbalancing-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticloadbalancing.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticloadbalancing.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/elbv2/2015-12-01/service-2.json b/botocore/data/elbv2/2015-12-01/service-2.json index 52677e56..b424edb8 100644 --- a/botocore/data/elbv2/2015-12-01/service-2.json +++ b/botocore/data/elbv2/2015-12-01/service-2.json @@ -610,7 +610,7 @@ {"shape":"InvalidConfigurationRequestException"}, {"shape":"InvalidSubnetException"} ], - "documentation":"

Sets the type of IP addresses used by the subnets of the specified Application Load Balancer or Network Load Balancer.

" + "documentation":"

Sets the type of IP addresses used by the subnets of the specified load balancer.

" }, "SetRulePriorities":{ "name":"SetRulePriorities", @@ -1111,11 +1111,11 @@ }, "Subnets":{ "shape":"Subnets", - "documentation":"

The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings.

[Application Load Balancers] You must specify subnets from at least two Availability Zones.

[Application Load Balancers on Outposts] You must specify one Outpost subnet.

[Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.

[Network Load Balancers] You can specify subnets from one or more Availability Zones.

[Gateway Load Balancers] You can specify subnets from one or more Availability Zones.

" + "documentation":"

The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.

[Application Load Balancers] You must specify subnets from at least two Availability Zones.

[Application Load Balancers on Outposts] You must specify one Outpost subnet.

[Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.

[Network Load Balancers] You can specify subnets from one or more Availability Zones.

[Gateway Load Balancers] You can specify subnets from one or more Availability Zones.

" }, "SubnetMappings":{ "shape":"SubnetMappings", - "documentation":"

The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings.

[Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.

[Application Load Balancers on Outposts] You must specify one Outpost subnet.

[Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.

[Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.

[Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets.

" + "documentation":"

The IDs of the public subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.

[Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.

[Application Load Balancers on Outposts] You must specify one Outpost subnet.

[Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.

[Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.

[Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets.

" }, "SecurityGroups":{ "shape":"SecurityGroups", @@ -1234,23 +1234,23 @@ }, "HealthCheckIntervalSeconds":{ "shape":"HealthCheckIntervalSeconds", - "documentation":"

The approximate amount of time, in seconds, between health checks of an individual target. If the target group protocol is TCP, TLS, UDP, or TCP_UDP, the supported values are 10 and 30 seconds. If the target group protocol is HTTP or HTTPS, the default is 30 seconds. If the target group protocol is GENEVE, the default is 10 seconds. If the target type is lambda, the default is 35 seconds.

" + "documentation":"

The approximate amount of time, in seconds, between health checks of an individual target. The range is 5-300. If the target group protocol is TCP, TLS, UDP, TCP_UDP, HTTP or HTTPS, the default is 30 seconds. If the target group protocol is GENEVE, the default is 10 seconds. If the target type is lambda, the default is 35 seconds.

" }, "HealthCheckTimeoutSeconds":{ "shape":"HealthCheckTimeoutSeconds", - "documentation":"

The amount of time, in seconds, during which no response from a target means a failed health check. For target groups with a protocol of HTTP, HTTPS, or GENEVE, the default is 5 seconds. For target groups with a protocol of TCP or TLS, this value must be 6 seconds for HTTP health checks and 10 seconds for TCP and HTTPS health checks. If the target type is lambda, the default is 30 seconds.

" + "documentation":"

The amount of time, in seconds, during which no response from a target means a failed health check. The range is 2–120 seconds. For target groups with a protocol of HTTP, the default is 6 seconds. For target groups with a protocol of TCP, TLS or HTTPS, the default is 10 seconds. For target groups with a protocol of GENEVE, the default is 5 seconds. If the target type is lambda, the default is 30 seconds.

" }, "HealthyThresholdCount":{ "shape":"HealthCheckThresholdCount", - "documentation":"

The number of consecutive health checks successes required before considering an unhealthy target healthy. For target groups with a protocol of HTTP or HTTPS, the default is 5. For target groups with a protocol of TCP, TLS, or GENEVE, the default is 3. If the target type is lambda, the default is 5.

" + "documentation":"

The number of consecutive health check successes required before considering a target healthy. The range is 2-10. If the target group protocol is TCP, TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 5. For target groups with a protocol of GENEVE, the default is 3. If the target type is lambda, the default is 5.

" }, "UnhealthyThresholdCount":{ "shape":"HealthCheckThresholdCount", - "documentation":"

The number of consecutive health check failures required before considering a target unhealthy. If the target group protocol is HTTP or HTTPS, the default is 2. If the target group protocol is TCP or TLS, this value must be the same as the healthy threshold count. If the target group protocol is GENEVE, the default is 3. If the target type is lambda, the default is 2.

" + "documentation":"

The number of consecutive health check failures required before considering a target unhealthy. The range is 2-10. If the target group protocol is TCP, TCP_UDP, UDP, TLS, HTTP or HTTPS, the default is 2. For target groups with a protocol of GENEVE, the default is 3. If the target type is lambda, the default is 5.

" }, "Matcher":{ "shape":"Matcher", - "documentation":"

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target.

" + "documentation":"

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target. For target groups with a protocol of TCP, TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of HTTP or HTTPS, the range is 200-499. For target groups with a protocol of GENEVE, the range is 200-399.

" }, "TargetType":{ "shape":"TargetTypeEnum", @@ -1763,7 +1763,7 @@ "members":{ "TargetGroups":{ "shape":"TargetGroupList", - "documentation":"

One or more target groups. For Network Load Balancers, you can specify a single target group.

" + "documentation":"

The target groups. For Network Load Balancers, you can specify a single target group.

" }, "TargetGroupStickinessConfig":{ "shape":"TargetGroupStickinessConfig", @@ -1806,7 +1806,7 @@ "members":{ "Values":{ "shape":"ListOfString", - "documentation":"

One or more host names. The maximum size of each name is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).

If you specify multiple strings, the condition is satisfied if one of the strings matches the host name.

" + "documentation":"

The host names. The maximum size of each name is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).

If you specify multiple strings, the condition is satisfied if one of the strings matches the host name.

" } }, "documentation":"

Information about a host header condition.

" @@ -1821,7 +1821,7 @@ }, "Values":{ "shape":"ListOfString", - "documentation":"

One or more strings to compare against the value of the HTTP header. The maximum size of each string is 128 characters. The comparison strings are case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).

If the same header appears multiple times in the request, we search them in order until a match is found.

If you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header. To require that all of the strings are a match, create one condition per string.

" + "documentation":"

The strings to compare against the value of the HTTP header. The maximum size of each string is 128 characters. The comparison strings are case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).

If the same header appears multiple times in the request, we search them in order until a match is found.

If you specify multiple strings, the condition is satisfied if one of the strings matches the value of the HTTP header. To require that all of the strings are a match, create one condition per string.

" } }, "documentation":"

Information about an HTTP header condition.

There is a set of standard HTTP header fields. You can also define custom HTTP header fields.

" @@ -2106,7 +2106,7 @@ "members":{ "Key":{ "shape":"LoadBalancerAttributeKey", - "documentation":"

The name of the attribute.

The following attribute is supported by all load balancers:

  • deletion_protection.enabled - Indicates whether deletion protection is enabled. The value is true or false. The default is false.

The following attributes are supported by both Application Load Balancers and Network Load Balancers:

  • access_logs.s3.enabled - Indicates whether access logs are enabled. The value is true or false. The default is false.

  • access_logs.s3.bucket - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.

  • access_logs.s3.prefix - The prefix for the location in the S3 bucket for the access logs.

  • ipv6.deny-all-igw-traffic - Blocks internet gateway (IGW) access to the load balancer. It is set to false for internet-facing load balancers and true for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.

The following attributes are supported by only Application Load Balancers:

  • idle_timeout.timeout_seconds - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.

  • routing.http.desync_mitigation_mode - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are monitor, defensive, and strictest. The default is defensive.

  • routing.http.drop_invalid_header_fields.enabled - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (true) or routed to targets (false). The default is false.

  • routing.http.x_amzn_tls_version_and_cipher_suite.enabled - Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The x-amzn-tls-version header has information about the TLS protocol version negotiated with the client, and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are true and false. The default is false.

  • routing.http.xff_client_port.enabled - Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer. The possible values are true and false. The default is false.

  • routing.http2.enabled - Indicates whether HTTP/2 is enabled. The possible values are true and false. The default is true. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.

  • waf.fail_open.enabled - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to Amazon Web Services WAF. The possible values are true and false. The default is false.

The following attribute is supported by Network Load Balancers and Gateway Load Balancers:

  • load_balancing.cross_zone.enabled - Indicates whether cross-zone load balancing is enabled. The possible values are true and false. The default is false.

" + "documentation":"

The name of the attribute.

The following attributes are supported by all load balancers:

  • deletion_protection.enabled - Indicates whether deletion protection is enabled. The value is true or false. The default is false.

  • load_balancing.cross_zone.enabled - Indicates whether cross-zone load balancing is enabled. The possible values are true and false. The default for Network Load Balancers and Gateway Load Balancers is false. The default for Application Load Balancers is true, and cannot be changed.

The following attributes are supported by both Application Load Balancers and Network Load Balancers:

  • access_logs.s3.enabled - Indicates whether access logs are enabled. The value is true or false. The default is false.

  • access_logs.s3.bucket - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.

  • access_logs.s3.prefix - The prefix for the location in the S3 bucket for the access logs.

  • ipv6.deny_all_igw_traffic - Blocks internet gateway (IGW) access to the load balancer. It is set to false for internet-facing load balancers and true for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.

The following attributes are supported by only Application Load Balancers:

  • idle_timeout.timeout_seconds - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.

  • routing.http.desync_mitigation_mode - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are monitor, defensive, and strictest. The default is defensive.

  • routing.http.drop_invalid_header_fields.enabled - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (true) or routed to targets (false). The default is false.

  • routing.http.preserve_host_header.enabled - Indicates whether the Application Load Balancer should preserve the Host header in the HTTP request and send it to the target without any change. The possible values are true and false. The default is false.

  • routing.http.x_amzn_tls_version_and_cipher_suite.enabled - Indicates whether the two headers (x-amzn-tls-version and x-amzn-tls-cipher-suite), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The x-amzn-tls-version header has information about the TLS protocol version negotiated with the client, and the x-amzn-tls-cipher-suite header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are true and false. The default is false.

  • routing.http.xff_client_port.enabled - Indicates whether the X-Forwarded-For header should preserve the source port that the client used to connect to the load balancer. The possible values are true and false. The default is false.

  • routing.http.xff_header_processing.mode - Enables you to modify, preserve, or remove the X-Forwarded-For header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are append, preserve, and remove. The default is append.

    • If the value is append, the Application Load Balancer adds the client IP address (of the last hop) to the X-Forwarded-For header in the HTTP request before it sends it to targets.

    • If the value is preserve the Application Load Balancer preserves the X-Forwarded-For header in the HTTP request, and sends it to targets without any change.

    • If the value is remove, the Application Load Balancer removes the X-Forwarded-For header in the HTTP request before it sends it to targets.

  • routing.http2.enabled - Indicates whether HTTP/2 is enabled. The possible values are true and false. The default is true. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.

  • waf.fail_open.enabled - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to Amazon Web Services WAF. The possible values are true and false. The default is false.

" }, "Value":{ "shape":"LoadBalancerAttributeValue", @@ -2194,7 +2194,7 @@ "members":{ "HttpCode":{ "shape":"HttpCode", - "documentation":"

For Application Load Balancers, you can specify values between 200 and 499, and the default value is 200. You can specify multiple values (for example, \"200,202\") or a range of values (for example, \"200-299\").

For Network Load Balancers and Gateway Load Balancers, this must be \"200–399\".

Note that when using shorthand syntax, some values such as commas need to be escaped.

" + "documentation":"

For Application Load Balancers, you can specify values between 200 and 499, with the default value being 200. You can specify multiple values (for example, \"200,202\") or a range of values (for example, \"200-299\").

For Network Load Balancers, you can specify values between 200 and 599, with the default value being 200-399. You can specify multiple values (for example, \"200,202\") or a range of values (for example, \"200-299\").

For Gateway Load Balancers, this must be \"200–399\".

Note that when using shorthand syntax, some values such as commas need to be escaped.

" }, "GrpcCode":{ "shape":"GrpcCode", @@ -2336,7 +2336,7 @@ }, "HealthCheckProtocol":{ "shape":"ProtocolEnum", - "documentation":"

The protocol the load balancer uses when performing health checks on targets. For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS. It is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks.

With Network Load Balancers, you can't modify this setting.

" + "documentation":"

The protocol the load balancer uses when performing health checks on targets. For Application Load Balancers, the default is HTTP. For Network Load Balancers and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported for health checks if the protocol of the target group is HTTP or HTTPS. It is supported for health checks only if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks.

" }, "HealthCheckPort":{ "shape":"HealthCheckPort", @@ -2352,11 +2352,11 @@ }, "HealthCheckIntervalSeconds":{ "shape":"HealthCheckIntervalSeconds", - "documentation":"

The approximate amount of time, in seconds, between health checks of an individual target. For TCP health checks, the supported values are 10 or 30 seconds.

With Network Load Balancers, you can't modify this setting.

" + "documentation":"

The approximate amount of time, in seconds, between health checks of an individual target.

" }, "HealthCheckTimeoutSeconds":{ "shape":"HealthCheckTimeoutSeconds", - "documentation":"

[HTTP/HTTPS health checks] The amount of time, in seconds, during which no response means a failed health check.

With Network Load Balancers, you can't modify this setting.

" + "documentation":"

[HTTP/HTTPS health checks] The amount of time, in seconds, during which no response means a failed health check.

" }, "HealthyThresholdCount":{ "shape":"HealthCheckThresholdCount", @@ -2364,11 +2364,11 @@ }, "UnhealthyThresholdCount":{ "shape":"HealthCheckThresholdCount", - "documentation":"

The number of consecutive health check failures required before considering the target unhealthy. For target groups with a protocol of TCP or TLS, this value must be the same as the healthy threshold count.

" + "documentation":"

The number of consecutive health check failures required before considering the target unhealthy.

" }, "Matcher":{ "shape":"Matcher", - "documentation":"

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target.

With Network Load Balancers, you can't modify this setting.

" + "documentation":"

[HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for a successful response from a target. For target groups with a protocol of TCP, TCP_UDP, UDP or TLS the range is 200-599. For target groups with a protocol of HTTP or HTTPS, the range is 200-499. For target groups with a protocol of GENEVE, the range is 200-399.

" } } }, @@ -2410,7 +2410,7 @@ "members":{ "Values":{ "shape":"ListOfString", - "documentation":"

One or more path patterns to compare against the request URL. The maximum size of each string is 128 characters. The comparison is case sensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).

If you specify multiple strings, the condition is satisfied if one of them matches the request URL. The path pattern is compared only to the path of the URL, not to its query string. To compare against the query string, use QueryStringConditionConfig.

" + "documentation":"

The path patterns to compare against the request URL. The maximum size of each string is 128 characters. The comparison is case sensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character).

If you specify multiple strings, the condition is satisfied if one of them matches the request URL. The path pattern is compared only to the path of the URL, not to its query string. To compare against the query string, use QueryStringConditionConfig.

" } }, "documentation":"

Information about a path pattern condition.

" @@ -2451,7 +2451,7 @@ "members":{ "Values":{ "shape":"QueryStringKeyValuePairList", - "documentation":"

One or more key/value pairs or values to find in the query string. The maximum size of each string is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). To search for a literal '*' or '?' character in a query string, you must escape these characters in Values using a '\\' character.

If you specify multiple key/value pairs or values, the condition is satisfied if one of them is found in the query string.

" + "documentation":"

The key/value pairs or values to find in the query string. The maximum size of each string is 128 characters. The comparison is case insensitive. The following wildcard characters are supported: * (matches 0 or more characters) and ? (matches exactly 1 character). To search for a literal '*' or '?' character in a query string, you must escape these characters in Values using a '\\' character.

If you specify multiple key/value pairs or values, the condition is satisfied if one of them is found in the query string.

" } }, "documentation":"

Information about a query string condition.

The query string component of a URI starts after the first '?' character and is terminated by either a '#' character or the end of the URI. A typical query string contains key/value pairs separated by '&' characters. The allowed characters are specified by RFC 3986. Any character can be percentage encoded.

" @@ -2682,7 +2682,7 @@ "documentation":"

Information for a source IP condition. Specify only when Field is source-ip.

" } }, - "documentation":"

Information about a condition for a rule.

Each rule can optionally include up to one of each of the following conditions: http-request-method, host-header, path-pattern, and source-ip. Each rule can also optionally include one or more of each of the following conditions: http-header and query-string.

" + "documentation":"

Information about a condition for a rule.

Each rule can optionally include up to one of each of the following conditions: http-request-method, host-header, path-pattern, and source-ip. Each rule can also optionally include one or more of each of the following conditions: http-header and query-string. Note that the value for a condition cannot be empty.

" }, "RuleConditionList":{ "type":"list", @@ -2855,7 +2855,7 @@ "members":{ "Values":{ "shape":"ListOfString", - "documentation":"

One or more source IP addresses, in CIDR format. You can use both IPv4 and IPv6 addresses. Wildcards are not supported.

If you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks. This condition is not satisfied by the addresses in the X-Forwarded-For header. To search for addresses in the X-Forwarded-For header, use HttpHeaderConditionConfig.

" + "documentation":"

The source IP addresses, in CIDR format. You can use both IPv4 and IPv6 addresses. Wildcards are not supported.

If you specify multiple addresses, the condition is satisfied if the source IP address of the request matches one of the CIDR blocks. This condition is not satisfied by the addresses in the X-Forwarded-For header. To search for addresses in the X-Forwarded-For header, use HttpHeaderConditionConfig.

" } }, "documentation":"

Information about a source IP condition.

You can use this condition to route based on the IP address of the source that connects to the load balancer. If a client is behind a proxy, this is the IP address of the proxy not the IP address of the client.

" @@ -3010,7 +3010,7 @@ }, "AvailabilityZone":{ "shape":"ZoneName", - "documentation":"

An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer.

This parameter is not supported if the target type of the target group is instance or alb.

If the target type is ip and the IP address is in a subnet of the VPC for the target group, the Availability Zone is automatically detected and this parameter is optional. If the IP address is outside the VPC, this parameter is required.

With an Application Load Balancer, if the target type is ip and the IP address is outside the VPC for the target group, the only supported value is all.

If the target type is lambda, this parameter is optional and the only supported value is all.

" + "documentation":"

An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer.

For Application Load Balancer target groups, the specified Availability Zone value is only applicable when cross-zone load balancing is off. Otherwise the parameter is ignored and treated as all.

This parameter is not supported if the target type of the target group is instance or alb.

If the target type is ip and the IP address is in a subnet of the VPC for the target group, the Availability Zone is automatically detected and this parameter is optional. If the IP address is outside the VPC, this parameter is required.

For Application Load Balancer target groups with cross-zone load balancing off, if the target type is ip and the IP address is outside of the VPC for the target group, this should be an Availability Zone inside the VPC for the target group.

If the target type is lambda, this parameter is optional and the only supported value is all.

" } }, "documentation":"

Information about a target.

" @@ -3119,7 +3119,7 @@ "members":{ "Key":{ "shape":"TargetGroupAttributeKey", - "documentation":"

The name of the attribute.

The following attribute is supported by all load balancers:

  • deregistration_delay.timeout_seconds - The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds. If the target is a Lambda function, this attribute is not supported.

The following attributes are supported by both Application Load Balancers and Network Load Balancers:

  • stickiness.enabled - Indicates whether sticky sessions are enabled. The value is true or false. The default is false.

  • stickiness.type - The type of sticky sessions. The possible values are lb_cookie and app_cookie for Application Load Balancers or source_ip for Network Load Balancers.

The following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address:

  • load_balancing.algorithm.type - The load balancing algorithm determines how the load balancer selects targets when routing requests. The value is round_robin or least_outstanding_requests. The default is round_robin.

  • slow_start.duration_seconds - The time period, in seconds, during which a newly registered target receives an increasing share of the traffic to the target group. After this time period ends, the target receives its full share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 seconds (disabled).

  • stickiness.app_cookie.cookie_name - Indicates the name of the application-based cookie. Names that start with the following prefixes are not allowed: AWSALB, AWSALBAPP, and AWSALBTG; they're reserved for use by the load balancer.

  • stickiness.app_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the application-based cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

  • stickiness.lb_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

The following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function:

  • lambda.multi_value_headers.enabled - Indicates whether the request and response headers that are exchanged between the load balancer and the Lambda function include arrays of values or strings. The value is true or false. The default is false. If the value is false and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client.

The following attributes are supported only by Network Load Balancers:

  • deregistration_delay.connection_termination.enabled - Indicates whether the load balancer terminates connections at the end of the deregistration timeout. The value is true or false. The default is false.

  • preserve_client_ip.enabled - Indicates whether client IP preservation is enabled. The value is true or false. The default is disabled if the target group type is IP address and the target group protocol is TCP or TLS. Otherwise, the default is enabled. Client IP preservation cannot be disabled for UDP and TCP_UDP target groups.

  • proxy_protocol_v2.enabled - Indicates whether Proxy Protocol version 2 is enabled. The value is true or false. The default is false.

" + "documentation":"

The name of the attribute.

The following attributes are supported by all load balancers:

  • deregistration_delay.timeout_seconds - The amount of time, in seconds, for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds. If the target is a Lambda function, this attribute is not supported.

  • stickiness.enabled - Indicates whether target stickiness is enabled. The value is true or false. The default is false.

  • stickiness.type - Indicates the type of stickiness. The possible values are:

    • lb_cookie and app_cookie for Application Load Balancers.

    • source_ip for Network Load Balancers.

    • source_ip_dest_ip and source_ip_dest_ip_proto for Gateway Load Balancers.

The following attributes are supported by Application Load Balancers and Network Load Balancers:

  • load_balancing.cross_zone.enabled - Indicates whether cross zone load balancing is enabled. The value is true, false or use_load_balancer_configuration. The default is use_load_balancer_configuration.

  • target_group_health.dns_failover.minimum_healthy_targets.count - The minimum number of targets that must be healthy. If the number of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off or an integer from 1 to the maximum number of targets. The default is off.

  • target_group_health.dns_failover.minimum_healthy_targets.percentage - The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, mark the zone as unhealthy in DNS, so that traffic is routed only to healthy zones. The possible values are off or an integer from 1 to 100. The default is off.

  • target_group_health.unhealthy_state_routing.minimum_healthy_targets.count - The minimum number of targets that must be healthy. If the number of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are 1 to the maximum number of targets. The default is 1.

  • target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage - The minimum percentage of targets that must be healthy. If the percentage of healthy targets is below this value, send traffic to all targets, including unhealthy targets. The possible values are off or an integer from 1 to 100. The default is off.

The following attributes are supported only if the load balancer is an Application Load Balancer and the target is an instance or an IP address:

  • load_balancing.algorithm.type - The load balancing algorithm determines how the load balancer selects targets when routing requests. The value is round_robin or least_outstanding_requests. The default is round_robin.

  • slow_start.duration_seconds - The time period, in seconds, during which a newly registered target receives an increasing share of the traffic to the target group. After this time period ends, the target receives its full share of traffic. The range is 30-900 seconds (15 minutes). The default is 0 seconds (disabled).

  • stickiness.app_cookie.cookie_name - Indicates the name of the application-based cookie. Names that start with the following prefixes are not allowed: AWSALB, AWSALBAPP, and AWSALBTG; they're reserved for use by the load balancer.

  • stickiness.app_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the application-based cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

  • stickiness.lb_cookie.duration_seconds - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).

The following attribute is supported only if the load balancer is an Application Load Balancer and the target is a Lambda function:

  • lambda.multi_value_headers.enabled - Indicates whether the request and response headers that are exchanged between the load balancer and the Lambda function include arrays of values or strings. The value is true or false. The default is false. If the value is false and the request contains a duplicate header field name or query parameter key, the load balancer uses the last value sent by the client.

The following attributes are supported only by Network Load Balancers:

  • deregistration_delay.connection_termination.enabled - Indicates whether the load balancer terminates connections at the end of the deregistration timeout. The value is true or false. The default is false.

  • preserve_client_ip.enabled - Indicates whether client IP preservation is enabled. The value is true or false. The default is disabled if the target group type is IP address and the target group protocol is TCP or TLS. Otherwise, the default is enabled. Client IP preservation cannot be disabled for UDP and TCP_UDP target groups.

  • proxy_protocol_v2.enabled - Indicates whether Proxy Protocol version 2 is enabled. The value is true or false. The default is false.

The following attributes are supported only by Gateway Load Balancers:

  • target_failover.on_deregistration - Indicates how the Gateway Load Balancer handles existing flows when a target is deregistered. The possible values are rebalance and no_rebalance. The default is no_rebalance. The two attributes (target_failover.on_deregistration and target_failover.on_unhealthy) can't be set independently. The value you set for both attributes must be the same.

  • target_failover.on_unhealthy - Indicates how the Gateway Load Balancer handles existing flows when a target is unhealthy. The possible values are rebalance and no_rebalance. The default is no_rebalance. The two attributes (target_failover.on_deregistration and target_failover.on_unhealthy) cannot be set independently. The value you set for both attributes must be the same.

" }, "Value":{ "shape":"TargetGroupAttributeValue", diff --git a/botocore/data/emr-containers/2020-10-01/endpoint-rule-set-1.json b/botocore/data/emr-containers/2020-10-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..c5600be2 --- /dev/null +++ b/botocore/data/emr-containers/2020-10-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-containers-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-containers-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-containers.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://emr-containers.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/emr-containers/2020-10-01/examples-1.json b/botocore/data/emr-containers/2020-10-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/emr-containers/2020-10-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/emr-containers/2020-10-01/paginators-1.json b/botocore/data/emr-containers/2020-10-01/paginators-1.json index 48c53c8f..f21b1ed0 100644 --- a/botocore/data/emr-containers/2020-10-01/paginators-1.json +++ b/botocore/data/emr-containers/2020-10-01/paginators-1.json @@ -17,6 +17,12 @@ "output_token": "nextToken", "limit_key": "maxResults", "result_key": "virtualClusters" + }, + "ListJobTemplates": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "templates" } } } diff --git a/botocore/data/emr-containers/2020-10-01/service-2.json b/botocore/data/emr-containers/2020-10-01/service-2.json index 990e55fe..f9aa3493 100644 --- a/botocore/data/emr-containers/2020-10-01/service-2.json +++ b/botocore/data/emr-containers/2020-10-01/service-2.json @@ -26,6 +26,21 @@ ], "documentation":"

Cancels a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

" }, + "CreateJobTemplate":{ + "name":"CreateJobTemplate", + "http":{ + "method":"POST", + "requestUri":"/jobtemplates" + }, + "input":{"shape":"CreateJobTemplateRequest"}, + "output":{"shape":"CreateJobTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

" + }, "CreateManagedEndpoint":{ "name":"CreateManagedEndpoint", "http":{ @@ -56,6 +71,20 @@ ], "documentation":"

Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.

" }, + "DeleteJobTemplate":{ + "name":"DeleteJobTemplate", + "http":{ + "method":"DELETE", + "requestUri":"/jobtemplates/{templateId}" + }, + "input":{"shape":"DeleteJobTemplateRequest"}, + "output":{"shape":"DeleteJobTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

" + }, "DeleteManagedEndpoint":{ "name":"DeleteManagedEndpoint", "http":{ @@ -99,6 +128,21 @@ ], "documentation":"

Displays detailed information about a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

" }, + "DescribeJobTemplate":{ + "name":"DescribeJobTemplate", + "http":{ + "method":"GET", + "requestUri":"/jobtemplates/{templateId}" + }, + "input":{"shape":"DescribeJobTemplateRequest"}, + "output":{"shape":"DescribeJobTemplateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Displays detailed information about a specified job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

" + }, "DescribeManagedEndpoint":{ "name":"DescribeManagedEndpoint", "http":{ @@ -143,6 +187,20 @@ ], "documentation":"

Lists job runs based on a set of parameters. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.

" }, + "ListJobTemplates":{ + "name":"ListJobTemplates", + "http":{ + "method":"GET", + "requestUri":"/jobtemplates" + }, + "input":{"shape":"ListJobTemplatesRequest"}, + "output":{"shape":"ListJobTemplatesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists job templates based on a set of parameters. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

" + }, "ListManagedEndpoints":{ "name":"ListManagedEndpoints", "http":{ @@ -394,6 +452,58 @@ "type":"string", "enum":["EKS"] }, + "CreateJobTemplateRequest":{ + "type":"structure", + "required":[ + "name", + "clientToken", + "jobTemplateData" + ], + "members":{ + "name":{ + "shape":"ResourceNameString", + "documentation":"

The specified name of the job template.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

The client token of the job template.

", + "idempotencyToken":true + }, + "jobTemplateData":{ + "shape":"JobTemplateData", + "documentation":"

The job template data which holds values of StartJobRun API request.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags that are associated with the job template.

" + }, + "kmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

The KMS key ARN used to encrypt the job template.

" + } + } + }, + "CreateJobTemplateResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"ResourceIdString", + "documentation":"

This output display the created job template ID.

" + }, + "name":{ + "shape":"ResourceNameString", + "documentation":"

This output displays the name of the created job template.

" + }, + "arn":{ + "shape":"JobTemplateArn", + "documentation":"

This output display the ARN of the created job template.

" + }, + "createdAt":{ + "shape":"Date", + "documentation":"

This output displays the date and time when the job template was created.

" + } + } + }, "CreateManagedEndpointRequest":{ "type":"structure", "required":[ @@ -429,7 +539,7 @@ }, "certificateArn":{ "shape":"ACMCertArn", - "documentation":"

The certificate ARN provided by users for the managed endpoint. This fiedd is under deprecation and will be removed in future releases.

", + "documentation":"

The certificate ARN provided by users for the managed endpoint. This field is under deprecation and will be removed in future releases.

", "deprecated":true, "deprecatedMessage":"Customer provided certificate-arn is deprecated and would be removed in future." }, @@ -517,6 +627,27 @@ "type":"timestamp", "timestampFormat":"iso8601" }, + "DeleteJobTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ResourceIdString", + "documentation":"

The ID of the job template that will be deleted.

", + "location":"uri", + "locationName":"templateId" + } + } + }, + "DeleteJobTemplateResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"ResourceIdString", + "documentation":"

This output contains the ID of the job template that was deleted.

" + } + } + }, "DeleteManagedEndpointRequest":{ "type":"structure", "required":[ @@ -602,6 +733,27 @@ } } }, + "DescribeJobTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ResourceIdString", + "documentation":"

The ID of the job template that will be described.

", + "location":"uri", + "locationName":"templateId" + } + } + }, + "DescribeJobTemplateResponse":{ + "type":"structure", + "members":{ + "jobTemplate":{ + "shape":"JobTemplate", + "documentation":"

This output displays information about the specified job template.

" + } + } + }, "DescribeManagedEndpointRequest":{ "type":"structure", "required":[ @@ -783,7 +935,7 @@ "type":"string", "max":10280, "min":1, - "pattern":"(?!\\s*$)(^[^';|\\u0026\\u003C\\u003E*?`$(){}\\[\\]!#\\\\]*$)", + "pattern":".*\\S.*", "sensitive":true }, "EntryPointArguments":{ @@ -794,7 +946,7 @@ "type":"string", "max":256, "min":1, - "pattern":"(?!\\s*$)(^[^';|\\u0026\\u003C\\u003E*?`$(){}\\[\\]!#\\\\]*$)", + "pattern":".*\\S.*", "sensitive":true }, "FailureReason":{ @@ -834,9 +986,13 @@ "sparkSubmitJobDriver":{ "shape":"SparkSubmitJobDriver", "documentation":"

The job driver parameters specified for spark submit.

" + }, + "sparkSqlJobDriver":{ + "shape":"SparkSqlJobDriver", + "documentation":"

The job driver for job type.

" } }, - "documentation":"

Specify the driver that the job runs on.

" + "documentation":"

Specify the driver that the job runs on. Exactly one of the two available job drivers is required, either sparkSqlJobDriver or sparkSubmitJobDriver.

" }, "JobRun":{ "type":"structure", @@ -929,6 +1085,97 @@ "type":"list", "member":{"shape":"JobRun"} }, + "JobTemplate":{ + "type":"structure", + "required":["jobTemplateData"], + "members":{ + "name":{ + "shape":"ResourceNameString", + "documentation":"

The name of the job template.

" + }, + "id":{ + "shape":"ResourceIdString", + "documentation":"

The ID of the job template.

" + }, + "arn":{ + "shape":"JobTemplateArn", + "documentation":"

The ARN of the job template.

" + }, + "createdAt":{ + "shape":"Date", + "documentation":"

The date and time when the job template was created.

" + }, + "createdBy":{ + "shape":"RequestIdentityUserArn", + "documentation":"

The user who created the job template.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags assigned to the job template.

" + }, + "jobTemplateData":{ + "shape":"JobTemplateData", + "documentation":"

The job template data which holds values of StartJobRun API request.

" + }, + "kmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

The KMS key ARN used to encrypt the job template.

" + }, + "decryptionError":{ + "shape":"String2048", + "documentation":"

The error message in case the decryption of job template fails.

" + } + }, + "documentation":"

This entity describes a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.

" + }, + "JobTemplateArn":{ + "type":"string", + "max":1024, + "min":60, + "pattern":"^arn:(aws[a-zA-Z0-9-]*):emr-containers:.+:(\\d{12}):\\/jobtemplates\\/[0-9a-zA-Z]+$" + }, + "JobTemplateData":{ + "type":"structure", + "required":[ + "executionRoleArn", + "releaseLabel", + "jobDriver" + ], + "members":{ + "executionRoleArn":{ + "shape":"ParametricIAMRoleArn", + "documentation":"

The execution role ARN of the job run.

" + }, + "releaseLabel":{ + "shape":"ParametricReleaseLabel", + "documentation":"

The release version of Amazon EMR.

" + }, + "configurationOverrides":{ + "shape":"ParametricConfigurationOverrides", + "documentation":"

The configuration settings that are used to override defaults configuration.

" + }, + "jobDriver":{"shape":"JobDriver"}, + "parameterConfiguration":{ + "shape":"TemplateParameterConfigurationMap", + "documentation":"

The configuration of parameters existing in the job template.

" + }, + "jobTags":{ + "shape":"TagMap", + "documentation":"

The tags assigned to jobs started using the job template.

" + } + }, + "documentation":"

The values of StartJobRun API requests used in job runs started using the job template.

" + }, + "JobTemplates":{ + "type":"list", + "member":{"shape":"JobTemplate"} + }, + "KmsKeyArn":{ + "type":"string", + "max":2048, + "min":3, + "pattern":"^(arn:(aws[a-zA-Z0-9-]*):kms:([a-zA-Z0-9]+-?)+:(\\d{12})?:key\\/[(0-9a-zA-Z)-?]+|\\$\\{[a-zA-Z]\\w*\\})$" + }, "KubernetesNamespace":{ "type":"string", "max":63, @@ -996,6 +1243,48 @@ } } }, + "ListJobTemplatesRequest":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"Date", + "documentation":"

The date and time after which the job templates were created.

", + "location":"querystring", + "locationName":"createdAfter" + }, + "createdBefore":{ + "shape":"Date", + "documentation":"

The date and time before which the job templates were created.

", + "location":"querystring", + "locationName":"createdBefore" + }, + "maxResults":{ + "shape":"JavaInteger", + "documentation":"

The maximum number of job templates that can be listed.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of job templates to return.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListJobTemplatesResponse":{ + "type":"structure", + "members":{ + "templates":{ + "shape":"JobTemplates", + "documentation":"

This output lists information about the specified job templates.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

This output displays the token for the next set of job templates.

" + } + } + }, "ListManagedEndpointsRequest":{ "type":"structure", "required":["virtualClusterId"], @@ -1168,6 +1457,74 @@ "min":1, "pattern":".*\\S.*" }, + "ParametricCloudWatchMonitoringConfiguration":{ + "type":"structure", + "members":{ + "logGroupName":{ + "shape":"TemplateParameter", + "documentation":"

The name of the log group for log publishing.

" + }, + "logStreamNamePrefix":{ + "shape":"String256", + "documentation":"

The specified name prefix for log streams.

" + } + }, + "documentation":"

A configuration for CloudWatch monitoring. You can configure your jobs to send log information to CloudWatch Logs. This data type allows job template parameters to be specified within.

" + }, + "ParametricConfigurationOverrides":{ + "type":"structure", + "members":{ + "applicationConfiguration":{ + "shape":"ConfigurationList", + "documentation":"

The configurations for the application running by the job run.

" + }, + "monitoringConfiguration":{ + "shape":"ParametricMonitoringConfiguration", + "documentation":"

The configurations for monitoring.

" + } + }, + "documentation":"

A configuration specification to be used to override existing configurations. This data type allows job template parameters to be specified within.

" + }, + "ParametricIAMRoleArn":{ + "type":"string", + "max":2048, + "min":4, + "pattern":"(^arn:(aws[a-zA-Z0-9-]*):iam::(\\d{12})?:(role((\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F))[\\w+=,.@-]+)$)|([\\.\\-_\\#A-Za-z0-9\\$\\{\\}]+)" + }, + "ParametricMonitoringConfiguration":{ + "type":"structure", + "members":{ + "persistentAppUI":{ + "shape":"TemplateParameter", + "documentation":"

Monitoring configurations for the persistent application UI.

" + }, + "cloudWatchMonitoringConfiguration":{ + "shape":"ParametricCloudWatchMonitoringConfiguration", + "documentation":"

Monitoring configurations for CloudWatch.

" + }, + "s3MonitoringConfiguration":{ + "shape":"ParametricS3MonitoringConfiguration", + "documentation":"

Amazon S3 configuration for monitoring log publishing.

" + } + }, + "documentation":"

Configuration setting for monitoring. This data type allows job template parameters to be specified within.

" + }, + "ParametricReleaseLabel":{ + "type":"string", + "max":64, + "min":1, + "pattern":"([\\.\\-_/A-Za-z0-9]+|\\$\\{[a-zA-Z]\\w*\\})" + }, + "ParametricS3MonitoringConfiguration":{ + "type":"structure", + "members":{ + "logUri":{ + "shape":"UriString", + "documentation":"

Amazon S3 destination URI for log publishing.

" + } + }, + "documentation":"

Amazon S3 configuration for monitoring log publishing. You can configure your jobs to send log information to Amazon S3. This data type allows job template parameters to be specified within.

" + }, "PersistentAppUI":{ "type":"string", "enum":[ @@ -1232,6 +1589,27 @@ "max":100, "sensitive":true }, + "SparkSqlJobDriver":{ + "type":"structure", + "members":{ + "entryPoint":{ + "shape":"EntryPointPath", + "documentation":"

The SQL file to be executed.

" + }, + "sparkSqlParameters":{ + "shape":"SparkSqlParameters", + "documentation":"

The Spark parameters to be included in the Spark SQL command.

" + } + }, + "documentation":"

The job driver for job type.

" + }, + "SparkSqlParameters":{ + "type":"string", + "max":102400, + "min":1, + "pattern":".*\\S.*", + "sensitive":true + }, "SparkSubmitJobDriver":{ "type":"structure", "required":["entryPoint"], @@ -1255,17 +1633,14 @@ "type":"string", "max":102400, "min":1, - "pattern":"(?!\\s*$)(^[^';|\\u0026\\u003C\\u003E*?`$(){}\\[\\]!#\\\\]*$)", + "pattern":".*\\S.*", "sensitive":true }, "StartJobRunRequest":{ "type":"structure", "required":[ "virtualClusterId", - "clientToken", - "executionRoleArn", - "releaseLabel", - "jobDriver" + "clientToken" ], "members":{ "name":{ @@ -1302,6 +1677,14 @@ "tags":{ "shape":"TagMap", "documentation":"

The tags assigned to job runs.

" + }, + "jobTemplateId":{ + "shape":"ResourceIdString", + "documentation":"

The job template ID to be used to start the job run.

" + }, + "jobTemplateParameters":{ + "shape":"TemplateParameterInputMap", + "documentation":"

The values of job template parameters to start a job run.

" } } }, @@ -1338,6 +1721,12 @@ "min":1, "pattern":".*\\S.*" }, + "String2048":{ + "type":"string", + "max":2048, + "min":1, + "pattern":".*\\S.*" + }, "String256":{ "type":"string", "max":256, @@ -1391,6 +1780,51 @@ "members":{ } }, + "TemplateParameter":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\.\\-_/#A-Za-z0-9\\$\\{\\}]+" + }, + "TemplateParameterConfiguration":{ + "type":"structure", + "members":{ + "type":{ + "shape":"TemplateParameterDataType", + "documentation":"

The type of the job template parameter. Allowed values are: ‘String’, ‘Number’.

" + }, + "defaultValue":{ + "shape":"String1024", + "documentation":"

The default value for the job template parameter.

" + } + }, + "documentation":"

The configuration of a job template parameter.

" + }, + "TemplateParameterConfigurationMap":{ + "type":"map", + "key":{"shape":"TemplateParameterName"}, + "value":{"shape":"TemplateParameterConfiguration"}, + "max":20 + }, + "TemplateParameterDataType":{ + "type":"string", + "enum":[ + "NUMBER", + "STRING" + ] + }, + "TemplateParameterInputMap":{ + "type":"map", + "key":{"shape":"TemplateParameterName"}, + "value":{"shape":"String1024"}, + "max":20 + }, + "TemplateParameterName":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\.\\-_\\#A-Za-z0-9]+" + }, "UntagResourceRequest":{ "type":"structure", "required":[ diff --git a/botocore/data/emr-serverless/2021-07-13/endpoint-rule-set-1.json b/botocore/data/emr-serverless/2021-07-13/endpoint-rule-set-1.json new file mode 100644 index 00000000..ee8606e1 --- /dev/null +++ b/botocore/data/emr-serverless/2021-07-13/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-serverless-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-serverless-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://emr-serverless.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://emr-serverless.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/emr-serverless/2021-07-13/paginators-1.json b/botocore/data/emr-serverless/2021-07-13/paginators-1.json new file mode 100644 index 00000000..7193d855 --- /dev/null +++ b/botocore/data/emr-serverless/2021-07-13/paginators-1.json @@ -0,0 +1,16 @@ +{ + "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" + } + } +} diff --git a/botocore/data/emr-serverless/2021-07-13/service-2.json b/botocore/data/emr-serverless/2021-07-13/service-2.json new file mode 100644 index 00000000..13d3611e --- /dev/null +++ b/botocore/data/emr-serverless/2021-07-13/service-2.json @@ -0,0 +1,1721 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-07-13", + "endpointPrefix":"emr-serverless", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"EMR Serverless", + "serviceId":"EMR Serverless", + "signatureVersion":"v4", + "signingName":"emr-serverless", + "uid":"emr-serverless-2021-07-13" + }, + "operations":{ + "CancelJobRun":{ + "name":"CancelJobRun", + "http":{ + "method":"DELETE", + "requestUri":"/applications/{applicationId}/jobruns/{jobRunId}", + "responseCode":200 + }, + "input":{"shape":"CancelJobRunRequest"}, + "output":{"shape":"CancelJobRunResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Cancels a job run.

", + "idempotent":true + }, + "CreateApplication":{ + "name":"CreateApplication", + "http":{ + "method":"POST", + "requestUri":"/applications", + "responseCode":200 + }, + "input":{"shape":"CreateApplicationRequest"}, + "output":{"shape":"CreateApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates an application.

", + "idempotent":true + }, + "DeleteApplication":{ + "name":"DeleteApplication", + "http":{ + "method":"DELETE", + "requestUri":"/applications/{applicationId}", + "responseCode":200 + }, + "input":{"shape":"DeleteApplicationRequest"}, + "output":{"shape":"DeleteApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes an application. An application has to be in a stopped or created state in order to be deleted.

", + "idempotent":true + }, + "GetApplication":{ + "name":"GetApplication", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}", + "responseCode":200 + }, + "input":{"shape":"GetApplicationRequest"}, + "output":{"shape":"GetApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Displays detailed information about a specified application.

" + }, + "GetDashboardForJobRun":{ + "name":"GetDashboardForJobRun", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/jobruns/{jobRunId}/dashboard", + "responseCode":200 + }, + "input":{"shape":"GetDashboardForJobRunRequest"}, + "output":{"shape":"GetDashboardForJobRunResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns a URL to access the job run dashboard.

" + }, + "GetJobRun":{ + "name":"GetJobRun", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/jobruns/{jobRunId}", + "responseCode":200 + }, + "input":{"shape":"GetJobRunRequest"}, + "output":{"shape":"GetJobRunResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Displays detailed information about a job run.

" + }, + "ListApplications":{ + "name":"ListApplications", + "http":{ + "method":"GET", + "requestUri":"/applications", + "responseCode":200 + }, + "input":{"shape":"ListApplicationsRequest"}, + "output":{"shape":"ListApplicationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists applications based on a set of parameters.

" + }, + "ListJobRuns":{ + "name":"ListJobRuns", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/jobruns", + "responseCode":200 + }, + "input":{"shape":"ListJobRunsRequest"}, + "output":{"shape":"ListJobRunsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists job runs based on a set of parameters.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists the tags assigned to the resources.

" + }, + "StartApplication":{ + "name":"StartApplication", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/start", + "responseCode":200 + }, + "input":{"shape":"StartApplicationRequest"}, + "output":{"shape":"StartApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Starts a specified application and initializes initial capacity if configured.

", + "idempotent":true + }, + "StartJobRun":{ + "name":"StartJobRun", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/jobruns", + "responseCode":200 + }, + "input":{"shape":"StartJobRunRequest"}, + "output":{"shape":"StartJobRunResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Starts a job run.

", + "idempotent":true + }, + "StopApplication":{ + "name":"StopApplication", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/stop", + "responseCode":200 + }, + "input":{"shape":"StopApplicationRequest"}, + "output":{"shape":"StopApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Stops a specified application and releases initial capacity if configured. All scheduled and running jobs must be completed or cancelled before stopping an application.

", + "idempotent":true + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Assigns tags to resources. A tag is a label that you assign to an AWS resource. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize your AWS resources by attributes such as purpose, owner, or environment. When you have many resources of the same type, you can quickly identify a specific resource based on the tags you've assigned to it.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Removes tags from resources.

", + "idempotent":true + }, + "UpdateApplication":{ + "name":"UpdateApplication", + "http":{ + "method":"PATCH", + "requestUri":"/applications/{applicationId}", + "responseCode":200 + }, + "input":{"shape":"UpdateApplicationRequest"}, + "output":{"shape":"UpdateApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates a specified application. An application has to be in a stopped or created state in order to be updated.

" + } + }, + "shapes":{ + "Application":{ + "type":"structure", + "required":[ + "applicationId", + "arn", + "releaseLabel", + "type", + "state", + "createdAt", + "updatedAt" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application.

" + }, + "name":{ + "shape":"ApplicationName", + "documentation":"

The name of the application.

" + }, + "arn":{ + "shape":"ApplicationArn", + "documentation":"

The ARN of the application.

" + }, + "releaseLabel":{ + "shape":"ReleaseLabel", + "documentation":"

The EMR release version associated with the application.

" + }, + "type":{ + "shape":"EngineType", + "documentation":"

The type of application, such as Spark or Hive.

" + }, + "state":{ + "shape":"ApplicationState", + "documentation":"

The state of the application.

" + }, + "stateDetails":{ + "shape":"String256", + "documentation":"

The state details of the application.

" + }, + "initialCapacity":{ + "shape":"InitialCapacityConfigMap", + "documentation":"

The initial capacity of the application.

" + }, + "maximumCapacity":{ + "shape":"MaximumAllowedResources", + "documentation":"

The maximum capacity of the application. This is cumulative across all workers at any given point in time during the lifespan of the application is created. No new resources will be created once any one of the defined limits is hit.

" + }, + "createdAt":{ + "shape":"Date", + "documentation":"

The date and time when the application run was created.

" + }, + "updatedAt":{ + "shape":"Date", + "documentation":"

The date and time when the application run was last updated.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags assigned to the application.

" + }, + "autoStartConfiguration":{ + "shape":"AutoStartConfig", + "documentation":"

The configuration for an application to automatically start on job submission.

" + }, + "autoStopConfiguration":{ + "shape":"AutoStopConfig", + "documentation":"

The configuration for an application to automatically stop after a certain amount of time being idle.

" + }, + "networkConfiguration":{ + "shape":"NetworkConfiguration", + "documentation":"

The network configuration for customer VPC connectivity for the application.

" + }, + "architecture":{ + "shape":"Architecture", + "documentation":"

The CPU architecture of an application.

" + } + }, + "documentation":"

Information about an application. EMR Serverless uses applications to run jobs.

" + }, + "ApplicationArn":{ + "type":"string", + "max":1024, + "min":60, + "pattern":"arn:(aws[a-zA-Z0-9-]*):emr-serverless:.+:(\\d{12}):\\/applications\\/[0-9a-zA-Z]+" + }, + "ApplicationId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[0-9a-z]+" + }, + "ApplicationList":{ + "type":"list", + "member":{"shape":"ApplicationSummary"} + }, + "ApplicationName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[A-Za-z0-9._/#-]+" + }, + "ApplicationState":{ + "type":"string", + "enum":[ + "CREATING", + "CREATED", + "STARTING", + "STARTED", + "STOPPING", + "STOPPED", + "TERMINATED" + ] + }, + "ApplicationStateSet":{ + "type":"list", + "member":{"shape":"ApplicationState"}, + "max":7, + "min":1 + }, + "ApplicationSummary":{ + "type":"structure", + "required":[ + "id", + "arn", + "releaseLabel", + "type", + "state", + "createdAt", + "updatedAt" + ], + "members":{ + "id":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application.

" + }, + "name":{ + "shape":"ApplicationName", + "documentation":"

The name of the application.

" + }, + "arn":{ + "shape":"ApplicationArn", + "documentation":"

The ARN of the application.

" + }, + "releaseLabel":{ + "shape":"ReleaseLabel", + "documentation":"

The EMR release version associated with the application.

" + }, + "type":{ + "shape":"EngineType", + "documentation":"

The type of application, such as Spark or Hive.

" + }, + "state":{ + "shape":"ApplicationState", + "documentation":"

The state of the application.

" + }, + "stateDetails":{ + "shape":"String256", + "documentation":"

The state details of the application.

" + }, + "createdAt":{ + "shape":"Date", + "documentation":"

The date and time when the application was created.

" + }, + "updatedAt":{ + "shape":"Date", + "documentation":"

The date and time when the application was last updated.

" + }, + "architecture":{ + "shape":"Architecture", + "documentation":"

The CPU architecture of an application.

" + } + }, + "documentation":"

The summary of attributes associated with an application.

" + }, + "Architecture":{ + "type":"string", + "enum":[ + "ARM64", + "X86_64" + ] + }, + "AutoStartConfig":{ + "type":"structure", + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Enables the application to automatically start on job submission. Defaults to true.

" + } + }, + "documentation":"

The configuration for an application to automatically start on job submission.

" + }, + "AutoStopConfig":{ + "type":"structure", + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Enables the application to automatically stop after a certain amount of time being idle. Defaults to true.

" + }, + "idleTimeoutMinutes":{ + "shape":"AutoStopConfigIdleTimeoutMinutesInteger", + "documentation":"

The amount of idle time in minutes after which your application will automatically stop. Defaults to 15 minutes.

" + } + }, + "documentation":"

The configuration for an application to automatically stop after a certain amount of time being idle.

" + }, + "AutoStopConfigIdleTimeoutMinutesInteger":{ + "type":"integer", + "box":true, + "max":10080, + "min":1 + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CancelJobRunRequest":{ + "type":"structure", + "required":[ + "applicationId", + "jobRunId" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application on which the job run will be canceled.

", + "location":"uri", + "locationName":"applicationId" + }, + "jobRunId":{ + "shape":"JobRunId", + "documentation":"

The ID of the job run to cancel.

", + "location":"uri", + "locationName":"jobRunId" + } + } + }, + "CancelJobRunResponse":{ + "type":"structure", + "required":[ + "applicationId", + "jobRunId" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The output contains the application ID on which the job run is cancelled.

" + }, + "jobRunId":{ + "shape":"JobRunId", + "documentation":"

The output contains the ID of the cancelled job run.

" + } + } + }, + "ClientToken":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[A-Za-z0-9._-]+" + }, + "Configuration":{ + "type":"structure", + "required":["classification"], + "members":{ + "classification":{ + "shape":"String1024", + "documentation":"

The classification within a configuration.

" + }, + "properties":{ + "shape":"SensitivePropertiesMap", + "documentation":"

A set of properties specified within a configuration classification.

" + }, + "configurations":{ + "shape":"ConfigurationList", + "documentation":"

A list of additional configurations to apply within a configuration object.

" + } + }, + "documentation":"

A configuration specification to be used when provisioning an application. A configuration consists of a classification, properties, and optional nested configurations. A classification refers to an application-specific configuration file. Properties are the settings you want to change in that file.

" + }, + "ConfigurationList":{ + "type":"list", + "member":{"shape":"Configuration"}, + "max":100, + "min":0 + }, + "ConfigurationOverrides":{ + "type":"structure", + "members":{ + "applicationConfiguration":{ + "shape":"ConfigurationList", + "documentation":"

The override configurations for the application.

" + }, + "monitoringConfiguration":{ + "shape":"MonitoringConfiguration", + "documentation":"

The override configurations for monitoring.

" + } + }, + "documentation":"

A configuration specification to be used to override existing configurations.

" + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String1024"} + }, + "documentation":"

The request could not be processed because of conflict in the current state of the resource.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CpuSize":{ + "type":"string", + "max":15, + "min":1, + "pattern":"[1-9][0-9]*(\\s)?(vCPU|vcpu|VCPU)?" + }, + "CreateApplicationRequest":{ + "type":"structure", + "required":[ + "releaseLabel", + "type", + "clientToken" + ], + "members":{ + "name":{ + "shape":"ApplicationName", + "documentation":"

The name of the application.

" + }, + "releaseLabel":{ + "shape":"ReleaseLabel", + "documentation":"

The EMR release version associated with the application.

" + }, + "type":{ + "shape":"EngineType", + "documentation":"

The type of application you want to start, such as Spark or Hive.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

The client idempotency token of the application to create. Its value must be unique for each request.

", + "idempotencyToken":true + }, + "initialCapacity":{ + "shape":"InitialCapacityConfigMap", + "documentation":"

The capacity to initialize when the application is created.

" + }, + "maximumCapacity":{ + "shape":"MaximumAllowedResources", + "documentation":"

The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags assigned to the application.

" + }, + "autoStartConfiguration":{ + "shape":"AutoStartConfig", + "documentation":"

The configuration for an application to automatically start on job submission.

" + }, + "autoStopConfiguration":{ + "shape":"AutoStopConfig", + "documentation":"

The configuration for an application to automatically stop after a certain amount of time being idle.

" + }, + "networkConfiguration":{ + "shape":"NetworkConfiguration", + "documentation":"

The network configuration for customer VPC connectivity.

" + }, + "architecture":{ + "shape":"Architecture", + "documentation":"

The CPU architecture of an application.

" + } + } + }, + "CreateApplicationResponse":{ + "type":"structure", + "required":[ + "applicationId", + "arn" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The output contains the application ID.

" + }, + "name":{ + "shape":"ApplicationName", + "documentation":"

The output contains the name of the application.

" + }, + "arn":{ + "shape":"ApplicationArn", + "documentation":"

The output contains the ARN of the application.

" + } + } + }, + "Date":{"type":"timestamp"}, + "DeleteApplicationRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application that will be deleted.

", + "location":"uri", + "locationName":"applicationId" + } + } + }, + "DeleteApplicationResponse":{ + "type":"structure", + "members":{ + } + }, + "DiskSize":{ + "type":"string", + "max":15, + "min":1, + "pattern":"[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)" + }, + "Double":{ + "type":"double", + "box":true + }, + "Duration":{ + "type":"long", + "max":1000000, + "min":0 + }, + "EncryptionKeyArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:(aws[a-zA-Z0-9-]*):kms:[a-zA-Z0-9\\-]*:(\\d{12})?:key\\/[a-zA-Z0-9-]+" + }, + "EngineType":{ + "type":"string", + "max":64, + "min":1 + }, + "EntryPointArgument":{ + "type":"string", + "max":10280, + "min":1, + "pattern":".*\\S.*", + "sensitive":true + }, + "EntryPointArguments":{ + "type":"list", + "member":{"shape":"EntryPointArgument"} + }, + "EntryPointPath":{ + "type":"string", + "max":256, + "min":1, + "pattern":".*\\S.*", + "sensitive":true + }, + "GetApplicationRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application that will be described.

", + "location":"uri", + "locationName":"applicationId" + } + } + }, + "GetApplicationResponse":{ + "type":"structure", + "required":["application"], + "members":{ + "application":{ + "shape":"Application", + "documentation":"

The output displays information about the specified application.

" + } + } + }, + "GetDashboardForJobRunRequest":{ + "type":"structure", + "required":[ + "applicationId", + "jobRunId" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application.

", + "location":"uri", + "locationName":"applicationId" + }, + "jobRunId":{ + "shape":"JobRunId", + "documentation":"

The ID of the job run.

", + "location":"uri", + "locationName":"jobRunId" + } + } + }, + "GetDashboardForJobRunResponse":{ + "type":"structure", + "members":{ + "url":{ + "shape":"Url", + "documentation":"

The URL to view job run's dashboard.

" + } + } + }, + "GetJobRunRequest":{ + "type":"structure", + "required":[ + "applicationId", + "jobRunId" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application on which the job run is submitted.

", + "location":"uri", + "locationName":"applicationId" + }, + "jobRunId":{ + "shape":"JobRunId", + "documentation":"

The ID of the job run.

", + "location":"uri", + "locationName":"jobRunId" + } + } + }, + "GetJobRunResponse":{ + "type":"structure", + "required":["jobRun"], + "members":{ + "jobRun":{ + "shape":"JobRun", + "documentation":"

The output displays information about the job run.

" + } + } + }, + "Hive":{ + "type":"structure", + "required":["query"], + "members":{ + "query":{ + "shape":"Query", + "documentation":"

The query for the Hive job run.

" + }, + "initQueryFile":{ + "shape":"InitScriptPath", + "documentation":"

The query file for the Hive job run.

" + }, + "parameters":{ + "shape":"HiveCliParameters", + "documentation":"

The parameters for the Hive job run.

" + } + }, + "documentation":"

The configurations for the Hive job driver.

" + }, + "HiveCliParameters":{ + "type":"string", + "max":102400, + "min":1, + "pattern":".*\\S.*", + "sensitive":true + }, + "IAMRoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:(aws[a-zA-Z0-9-]*):iam::(\\d{12})?:(role((\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F))[\\w+=,.@-]+)" + }, + "InitScriptPath":{ + "type":"string", + "max":256, + "min":1, + "pattern":".*\\S.*", + "sensitive":true + }, + "InitialCapacityConfig":{ + "type":"structure", + "required":["workerCount"], + "members":{ + "workerCount":{ + "shape":"WorkerCounts", + "documentation":"

The number of workers in the initial capacity configuration.

" + }, + "workerConfiguration":{ + "shape":"WorkerResourceConfig", + "documentation":"

The resource configuration of the initial capacity configuration.

" + } + }, + "documentation":"

The initial capacity configuration per worker.

" + }, + "InitialCapacityConfigMap":{ + "type":"map", + "key":{"shape":"WorkerTypeString"}, + "value":{"shape":"InitialCapacityConfig"}, + "max":10, + "min":0 + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String1024"} + }, + "documentation":"

Request processing failed because of an error or failure with the service.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "JobArn":{ + "type":"string", + "max":1024, + "min":60, + "pattern":"arn:(aws[a-zA-Z0-9-]*):emr-serverless:.+:(\\d{12}):\\/applications\\/[0-9a-zA-Z]+\\/jobruns\\/[0-9a-zA-Z]+" + }, + "JobDriver":{ + "type":"structure", + "members":{ + "sparkSubmit":{ + "shape":"SparkSubmit", + "documentation":"

The job driver parameters specified for Spark.

" + }, + "hive":{ + "shape":"Hive", + "documentation":"

The job driver parameters specified for Hive.

" + } + }, + "documentation":"

The driver that the job runs on.

", + "union":true + }, + "JobRun":{ + "type":"structure", + "required":[ + "applicationId", + "jobRunId", + "arn", + "createdBy", + "createdAt", + "updatedAt", + "executionRole", + "state", + "stateDetails", + "releaseLabel", + "jobDriver" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application the job is running on.

" + }, + "jobRunId":{ + "shape":"JobRunId", + "documentation":"

The ID of the job run.

" + }, + "name":{ + "shape":"String256", + "documentation":"

The optional job run name. This doesn't have to be unique.

" + }, + "arn":{ + "shape":"JobArn", + "documentation":"

The execution role ARN of the job run.

" + }, + "createdBy":{ + "shape":"RequestIdentityUserArn", + "documentation":"

The user who created the job run.

" + }, + "createdAt":{ + "shape":"Date", + "documentation":"

The date and time when the job run was created.

" + }, + "updatedAt":{ + "shape":"Date", + "documentation":"

The date and time when the job run was updated.

" + }, + "executionRole":{ + "shape":"IAMRoleArn", + "documentation":"

The execution role ARN of the job run.

" + }, + "state":{ + "shape":"JobRunState", + "documentation":"

The state of the job run.

" + }, + "stateDetails":{ + "shape":"String256", + "documentation":"

The state details of the job run.

" + }, + "releaseLabel":{ + "shape":"ReleaseLabel", + "documentation":"

The EMR release version associated with the application your job is running on.

" + }, + "configurationOverrides":{ + "shape":"ConfigurationOverrides", + "documentation":"

The configuration settings that are used to override default configuration.

" + }, + "jobDriver":{ + "shape":"JobDriver", + "documentation":"

The job driver for the job run.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags assigned to the job run.

" + }, + "totalResourceUtilization":{ + "shape":"TotalResourceUtilization", + "documentation":"

The aggregate vCPU, memory, and storage resources used from the time job start executing till the time job is terminated, rounded up to the nearest second.

" + }, + "networkConfiguration":{"shape":"NetworkConfiguration"}, + "totalExecutionDurationSeconds":{ + "shape":"Integer", + "documentation":"

The job run total execution duration in seconds. This field is only available for job runs in a COMPLETED, FAILED, or CANCELLED state.

" + } + }, + "documentation":"

Information about a job run. A job run is a unit of work, such as a Spark JAR, Hive query, or SparkSQL query, that you submit to an EMR Serverless application.

" + }, + "JobRunId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[0-9a-z]+" + }, + "JobRunState":{ + "type":"string", + "enum":[ + "SUBMITTED", + "PENDING", + "SCHEDULED", + "RUNNING", + "SUCCESS", + "FAILED", + "CANCELLING", + "CANCELLED" + ] + }, + "JobRunStateSet":{ + "type":"list", + "member":{"shape":"JobRunState"}, + "max":8, + "min":0 + }, + "JobRunSummary":{ + "type":"structure", + "required":[ + "applicationId", + "id", + "arn", + "createdBy", + "createdAt", + "updatedAt", + "executionRole", + "state", + "stateDetails", + "releaseLabel" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application the job is running on.

" + }, + "id":{ + "shape":"JobRunId", + "documentation":"

The ID of the job run.

" + }, + "name":{ + "shape":"String256", + "documentation":"

The optional job run name. This doesn't have to be unique.

" + }, + "arn":{ + "shape":"JobArn", + "documentation":"

The ARN of the job run.

" + }, + "createdBy":{ + "shape":"RequestIdentityUserArn", + "documentation":"

The user who created the job run.

" + }, + "createdAt":{ + "shape":"Date", + "documentation":"

The date and time when the job run was created.

" + }, + "updatedAt":{ + "shape":"Date", + "documentation":"

The date and time when the job run was last updated.

" + }, + "executionRole":{ + "shape":"IAMRoleArn", + "documentation":"

The execution role ARN of the job run.

" + }, + "state":{ + "shape":"JobRunState", + "documentation":"

The state of the job run.

" + }, + "stateDetails":{ + "shape":"String256", + "documentation":"

The state details of the job run.

" + }, + "releaseLabel":{ + "shape":"ReleaseLabel", + "documentation":"

The EMR release version associated with the application your job is running on.

" + }, + "type":{ + "shape":"JobRunType", + "documentation":"

The type of job run, such as Spark or Hive.

" + } + }, + "documentation":"

The summary of attributes associated with a job run.

" + }, + "JobRunType":{"type":"string"}, + "JobRuns":{ + "type":"list", + "member":{"shape":"JobRunSummary"} + }, + "ListApplicationsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of application results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"ListApplicationsRequestMaxResultsInteger", + "documentation":"

The maximum number of applications that can be listed.

", + "location":"querystring", + "locationName":"maxResults" + }, + "states":{ + "shape":"ApplicationStateSet", + "documentation":"

An optional filter for application states. Note that if this filter contains multiple states, the resulting list will be grouped by the state.

", + "location":"querystring", + "locationName":"states" + } + } + }, + "ListApplicationsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "ListApplicationsResponse":{ + "type":"structure", + "required":["applications"], + "members":{ + "applications":{ + "shape":"ApplicationList", + "documentation":"

The output lists the specified applications.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The output displays the token for the next set of application results. This is required for pagination and is available as a response of the previous request.

" + } + } + }, + "ListJobRunsRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application for which to list the job run.

", + "location":"uri", + "locationName":"applicationId" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of job run results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"ListJobRunsRequestMaxResultsInteger", + "documentation":"

The maximum number of job runs that can be listed.

", + "location":"querystring", + "locationName":"maxResults" + }, + "createdAtAfter":{ + "shape":"Date", + "documentation":"

The lower bound of the option to filter by creation date and time.

", + "location":"querystring", + "locationName":"createdAtAfter" + }, + "createdAtBefore":{ + "shape":"Date", + "documentation":"

The upper bound of the option to filter by creation date and time.

", + "location":"querystring", + "locationName":"createdAtBefore" + }, + "states":{ + "shape":"JobRunStateSet", + "documentation":"

An optional filter for job run states. Note that if this filter contains multiple states, the resulting list will be grouped by the state.

", + "location":"querystring", + "locationName":"states" + } + } + }, + "ListJobRunsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "ListJobRunsResponse":{ + "type":"structure", + "required":["jobRuns"], + "members":{ + "jobRuns":{ + "shape":"JobRuns", + "documentation":"

The output lists information about the specified job runs.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The output displays the token for the next set of job run results. This is required for pagination and is available as a response of the previous request.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) that identifies the resource to list the tags for. Currently, the supported resources are Amazon EMR Serverless applications and job runs.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

The tags for the resource.

" + } + } + }, + "ManagedPersistenceMonitoringConfiguration":{ + "type":"structure", + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Enables managed logging and defaults to true. If set to false, managed logging will be turned off.

" + }, + "encryptionKeyArn":{ + "shape":"EncryptionKeyArn", + "documentation":"

The KMS key ARN to encrypt the logs stored in managed log persistence.

" + } + }, + "documentation":"

The managed log persistence configuration for a job run.

" + }, + "MaximumAllowedResources":{ + "type":"structure", + "required":[ + "cpu", + "memory" + ], + "members":{ + "cpu":{ + "shape":"CpuSize", + "documentation":"

The maximum allowed CPU for an application.

" + }, + "memory":{ + "shape":"MemorySize", + "documentation":"

The maximum allowed resources for an application.

" + }, + "disk":{ + "shape":"DiskSize", + "documentation":"

The maximum allowed disk for an application.

" + } + }, + "documentation":"

The maximum allowed cumulative resources for an application. No new resources will be created once the limit is hit.

" + }, + "MemorySize":{ + "type":"string", + "max":15, + "min":1, + "pattern":"[1-9][0-9]*(\\s)?(GB|gb|gB|Gb)?" + }, + "MonitoringConfiguration":{ + "type":"structure", + "members":{ + "s3MonitoringConfiguration":{ + "shape":"S3MonitoringConfiguration", + "documentation":"

The Amazon S3 configuration for monitoring log publishing.

" + }, + "managedPersistenceMonitoringConfiguration":{ + "shape":"ManagedPersistenceMonitoringConfiguration", + "documentation":"

The managed log persistence configuration for a job run.

" + } + }, + "documentation":"

The configuration setting for monitoring.

" + }, + "NetworkConfiguration":{ + "type":"structure", + "members":{ + "subnetIds":{ + "shape":"SubnetIds", + "documentation":"

The array of subnet Ids for customer VPC connectivity.

" + }, + "securityGroupIds":{ + "shape":"SecurityGroupIds", + "documentation":"

The array of security group Ids for customer VPC connectivity.

" + } + }, + "documentation":"

The network configuration for customer VPC connectivity.

" + }, + "NextToken":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[A-Za-z0-9_=-]+" + }, + "Query":{ + "type":"string", + "max":10280, + "min":1, + "pattern":".*\\S.*", + "sensitive":true + }, + "ReleaseLabel":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[A-Za-z0-9._/-]+" + }, + "RequestIdentityUserArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:(aws[a-zA-Z0-9-]*):(iam|sts)::(\\d{12})?:[\\w/+=,.@-]+" + }, + "ResourceArn":{ + "type":"string", + "max":1024, + "min":60, + "pattern":"arn:(aws[a-zA-Z0-9-]*):emr-serverless:.+:(\\d{12}):\\/applications\\/[0-9a-zA-Z]+(\\/jobruns\\/[0-9a-zA-Z]+)?" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String1024"} + }, + "documentation":"

The specified resource was not found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "S3MonitoringConfiguration":{ + "type":"structure", + "members":{ + "logUri":{ + "shape":"UriString", + "documentation":"

The Amazon S3 destination URI for log publishing.

" + }, + "encryptionKeyArn":{ + "shape":"EncryptionKeyArn", + "documentation":"

The KMS key ARN to encrypt the logs published to the given Amazon S3 destination.

" + } + }, + "documentation":"

The Amazon S3 configuration for monitoring log publishing. You can configure your jobs to send log information to Amazon S3.

" + }, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"SecurityGroupString"}, + "max":5, + "min":0 + }, + "SecurityGroupString":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[-0-9a-zA-Z]+.*" + }, + "SensitivePropertiesMap":{ + "type":"map", + "key":{"shape":"String1024"}, + "value":{"shape":"String1024"}, + "max":100, + "min":0, + "sensitive":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String1024"} + }, + "documentation":"

The maximum number of resources per account has been reached.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SparkSubmit":{ + "type":"structure", + "required":["entryPoint"], + "members":{ + "entryPoint":{ + "shape":"EntryPointPath", + "documentation":"

The entry point for the Spark submit job run.

" + }, + "entryPointArguments":{ + "shape":"EntryPointArguments", + "documentation":"

The arguments for the Spark submit job run.

" + }, + "sparkSubmitParameters":{ + "shape":"SparkSubmitParameters", + "documentation":"

The parameters for the Spark submit job run.

" + } + }, + "documentation":"

The configurations for the Spark submit job driver.

" + }, + "SparkSubmitParameters":{ + "type":"string", + "max":102400, + "min":1, + "pattern":".*\\S.*", + "sensitive":true + }, + "StartApplicationRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application to start.

", + "location":"uri", + "locationName":"applicationId" + } + } + }, + "StartApplicationResponse":{ + "type":"structure", + "members":{ + } + }, + "StartJobRunRequest":{ + "type":"structure", + "required":[ + "applicationId", + "clientToken", + "executionRoleArn" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application on which to run the job.

", + "location":"uri", + "locationName":"applicationId" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

The client idempotency token of the job run to start. Its value must be unique for each request.

", + "idempotencyToken":true + }, + "executionRoleArn":{ + "shape":"IAMRoleArn", + "documentation":"

The execution role ARN for the job run.

" + }, + "jobDriver":{ + "shape":"JobDriver", + "documentation":"

The job driver for the job run.

" + }, + "configurationOverrides":{ + "shape":"ConfigurationOverrides", + "documentation":"

The configuration overrides for the job run.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags assigned to the job run.

" + }, + "executionTimeoutMinutes":{ + "shape":"Duration", + "documentation":"

The maximum duration for the job run to run. If the job run runs beyond this duration, it will be automatically cancelled.

", + "box":true + }, + "name":{ + "shape":"String256", + "documentation":"

The optional job run name. This doesn't have to be unique.

" + } + } + }, + "StartJobRunResponse":{ + "type":"structure", + "required":[ + "applicationId", + "jobRunId", + "arn" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

This output displays the application ID on which the job run was submitted.

" + }, + "jobRunId":{ + "shape":"JobRunId", + "documentation":"

The output contains the ID of the started job run.

" + }, + "arn":{ + "shape":"JobArn", + "documentation":"

The output lists the execution role ARN of the job run.

" + } + } + }, + "StopApplicationRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application to stop.

", + "location":"uri", + "locationName":"applicationId" + } + } + }, + "StopApplicationResponse":{ + "type":"structure", + "members":{ + } + }, + "String1024":{ + "type":"string", + "max":1024, + "min":1, + "pattern":".*\\S.*" + }, + "String256":{ + "type":"string", + "max":256, + "min":1, + "pattern":".*\\S.*" + }, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetString"}, + "max":16, + "min":0 + }, + "SubnetString":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[-0-9a-zA-Z]+.*" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[A-Za-z0-9 /_.:=+@-]+" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":1 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) that identifies the resource to list the tags for. Currently, the supported resources are Amazon EMR Serverless applications and job runs.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags to add to the resource. A tag is an array of key-value pairs.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"[A-Za-z0-9 /_.:=+@-]*" + }, + "TotalResourceUtilization":{ + "type":"structure", + "members":{ + "vCPUHour":{ + "shape":"Double", + "documentation":"

The aggregated vCPU used per hour from the time job start executing till the time job is terminated.

" + }, + "memoryGBHour":{ + "shape":"Double", + "documentation":"

The aggregated memory used per hour from the time job start executing till the time job is terminated.

" + }, + "storageGBHour":{ + "shape":"Double", + "documentation":"

The aggregated storage used per hour from the time job start executing till the time job is terminated.

" + } + }, + "documentation":"

The aggregate vCPU, memory, and storage resources used from the time job start executing till the time job is terminated, rounded up to the nearest second.

" + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) that identifies the resource to list the tags for. Currently, the supported resources are Amazon EMR Serverless applications and job runs.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

The keys of the tags to be removed.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateApplicationRequest":{ + "type":"structure", + "required":[ + "applicationId", + "clientToken" + ], + "members":{ + "applicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application to update.

", + "location":"uri", + "locationName":"applicationId" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

The client idempotency token of the application to update. Its value must be unique for each request.

", + "idempotencyToken":true + }, + "initialCapacity":{ + "shape":"InitialCapacityConfigMap", + "documentation":"

The capacity to initialize when the application is updated.

" + }, + "maximumCapacity":{ + "shape":"MaximumAllowedResources", + "documentation":"

The maximum capacity to allocate when the application is updated. This is cumulative across all workers at any given point in time during the lifespan of the application. No new resources will be created once any one of the defined limits is hit.

" + }, + "autoStartConfiguration":{ + "shape":"AutoStartConfig", + "documentation":"

The configuration for an application to automatically start on job submission.

" + }, + "autoStopConfiguration":{ + "shape":"AutoStopConfig", + "documentation":"

The configuration for an application to automatically stop after a certain amount of time being idle.

" + }, + "networkConfiguration":{"shape":"NetworkConfiguration"}, + "architecture":{ + "shape":"Architecture", + "documentation":"

The CPU architecture of an application.

" + } + } + }, + "UpdateApplicationResponse":{ + "type":"structure", + "required":["application"], + "members":{ + "application":{ + "shape":"Application", + "documentation":"

Information about the updated application.

" + } + } + }, + "UriString":{ + "type":"string", + "max":10280, + "min":1, + "pattern":".*[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDBFF-\\uDC00\\uDFFF\\r\\n\\t]*.*" + }, + "Url":{ + "type":"string", + "max":2048, + "min":1 + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String1024"} + }, + "documentation":"

The input fails to satisfy the constraints specified by an AWS service.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "WorkerCounts":{ + "type":"long", + "max":1000000, + "min":1 + }, + "WorkerResourceConfig":{ + "type":"structure", + "required":[ + "cpu", + "memory" + ], + "members":{ + "cpu":{ + "shape":"CpuSize", + "documentation":"

The CPU requirements for every worker instance of the worker type.

" + }, + "memory":{ + "shape":"MemorySize", + "documentation":"

The memory requirements for every worker instance of the worker type.

" + }, + "disk":{ + "shape":"DiskSize", + "documentation":"

The disk requirements for every worker instance of the worker type.

" + } + }, + "documentation":"

The cumulative configuration requirements for every worker instance of the worker type.

" + }, + "WorkerTypeString":{ + "type":"string", + "max":50, + "min":1, + "pattern":"[a-zA-Z]+[-_]*[a-zA-Z]+" + } + }, + "documentation":"

Amazon EMR Serverless is a new deployment option for Amazon EMR. EMR Serverless provides a serverless runtime environment that simplifies running analytics applications using the latest open source frameworks such as Apache Spark and Apache Hive. With EMR Serverless, you don’t have to configure, optimize, secure, or operate clusters to run applications with these frameworks.

The API reference to Amazon EMR Serverless is emr-serverless. The emr-serverless prefix is used in the following scenarios:

  • It is the prefix in the CLI commands for Amazon EMR Serverless. For example, aws emr-serverless start-job-run.

  • It is the prefix before IAM policy actions for Amazon EMR Serverless. For example, \"Action\": [\"emr-serverless:StartJobRun\"]. For more information, see Policy actions for Amazon EMR Serverless.

  • It is the prefix used in Amazon EMR Serverless service endpoints. For example, emr-serverless.us-east-2.amazonaws.com.

" +} diff --git a/botocore/data/emr/2009-03-31/endpoint-rule-set-1.json b/botocore/data/emr/2009-03-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..e0378867 --- /dev/null +++ b/botocore/data/emr/2009-03-31/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticmapreduce-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://elasticmapreduce.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticmapreduce-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://elasticmapreduce.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://elasticmapreduce.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/emr/2009-03-31/service-2.json b/botocore/data/emr/2009-03-31/service-2.json index cbccec30..19d5507a 100644 --- a/botocore/data/emr/2009-03-31/service-2.json +++ b/botocore/data/emr/2009-03-31/service-2.json @@ -786,6 +786,10 @@ "Steps":{ "shape":"StepConfigList", "documentation":"

A list of StepConfig to be executed by the job flow.

" + }, + "ExecutionRoleArn":{ + "shape":"ArnType", + "documentation":"

The Amazon Resource Name (ARN) of the runtime role for a step on the cluster. The runtime role can be a cross-account IAM role. The runtime role ARN is a combination of account ID, role name, and role type using the following format: arn:partition:service:region:account:resource.

For example, arn:aws:iam::1234567890:role/ReadOnly is a correctly formatted runtime role ARN.

" } }, "documentation":"

The input argument to the AddJobFlowSteps operation.

" @@ -1871,7 +1875,7 @@ "members":{ "VolumeSpecification":{ "shape":"VolumeSpecification", - "documentation":"

EBS volume specifications such as volume type, IOPS, and size (GiB) that will be requested for the EBS volume attached to an EC2 instance in the cluster.

" + "documentation":"

EBS volume specifications such as volume type, IOPS, size (GiB) and throughput (MiB/s) that are requested for the EBS volume attached to an EC2 instance in the cluster.

" }, "Device":{ "shape":"String", @@ -1886,14 +1890,14 @@ "members":{ "VolumeSpecification":{ "shape":"VolumeSpecification", - "documentation":"

EBS volume specifications such as volume type, IOPS, and size (GiB) that will be requested for the EBS volume attached to an EC2 instance in the cluster.

" + "documentation":"

EBS volume specifications such as volume type, IOPS, size (GiB) and throughput (MiB/s) that are requested for the EBS volume attached to an EC2 instance in the cluster.

" }, "VolumesPerInstance":{ "shape":"Integer", - "documentation":"

Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group

" + "documentation":"

Number of EBS volumes with a specific volume configuration that are associated with every instance in the instance group

" } }, - "documentation":"

Configuration of requested EBS block device associated with the instance group with count of volumes that will be associated to every instance.

" + "documentation":"

Configuration of requested EBS block device associated with the instance group with count of volumes that are associated to every instance.

" }, "EbsBlockDeviceConfigList":{ "type":"list", @@ -4749,6 +4753,10 @@ "Status":{ "shape":"StepStatus", "documentation":"

The current execution status details of the cluster step.

" + }, + "ExecutionRoleArn":{ + "shape":"OptionalArnType", + "documentation":"

The Amazon Resource Name (ARN) of the runtime role for a step on the cluster. The runtime role can be a cross-account IAM role. The runtime role ARN is a combination of account ID, role name, and role type using the following format: arn:partition:service:region:account:resource.

For example, arn:aws:iam::1234567890:role/ReadOnly is a correctly formatted runtime role ARN.

" } }, "documentation":"

This represents a step in a cluster.

" @@ -5142,6 +5150,10 @@ }, "documentation":"

Input to the TerminateJobFlows operation.

" }, + "ThroughputVal":{ + "type":"integer", + "min":0 + }, "Unit":{ "type":"string", "enum":[ @@ -5248,9 +5260,13 @@ "SizeInGB":{ "shape":"Integer", "documentation":"

The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.

" + }, + "Throughput":{ + "shape":"ThroughputVal", + "documentation":"

The throughput, in mebibyte per second (MiB/s). This optional parameter can be a number from 125 - 1000 and is valid only for gp3 volumes.

" } }, - "documentation":"

EBS volume specifications such as volume type, IOPS, and size (GiB) that will be requested for the EBS volume attached to an EC2 instance in the cluster.

" + "documentation":"

EBS volume specifications such as volume type, IOPS, size (GiB) and throughput (MiB/s) that are requested for the EBS volume attached to an EC2 instance in the cluster.

" }, "WholeNumber":{ "type":"integer", diff --git a/botocore/data/endpoints.json b/botocore/data/endpoints.json index 352dedea..612bff9f 100644 --- a/botocore/data/endpoints.json +++ b/botocore/data/endpoints.json @@ -41,6 +41,9 @@ "ap-south-1" : { "description" : "Asia Pacific (Mumbai)" }, + "ap-south-2" : { + "description" : "Asia Pacific (Hyderabad)" + }, "ap-southeast-1" : { "description" : "Asia Pacific (Singapore)" }, @@ -56,12 +59,18 @@ "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)" }, @@ -71,6 +80,9 @@ "eu-west-3" : { "description" : "Europe (Paris)" }, + "me-central-1" : { + "description" : "Middle East (UAE)" + }, "me-south-1" : { "description" : "Middle East (Bahrain)" }, @@ -104,6 +116,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -114,8 +127,10 @@ } ] }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -154,6 +169,7 @@ "deprecated" : true, "hostname" : "access-analyzer-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -202,6 +218,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -219,11 +236,14 @@ "hostname" : "acm-fips.ca-central-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" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -341,6 +361,7 @@ "deprecated" : true, "hostname" : "acm-pca-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -420,10 +441,15 @@ "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" : { } } }, @@ -448,6 +474,15 @@ "us-west-2" : { } } }, + "aoss" : { + "endpoints" : { + "ap-northeast-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "api.detective" : { "defaults" : { "protocols" : [ "https" ] @@ -567,6 +602,12 @@ }, "hostname" : "api.ecr.ap-south-1.amazonaws.com" }, + "ap-south-2" : { + "credentialScope" : { + "region" : "ap-south-2" + }, + "hostname" : "api.ecr.ap-south-2.amazonaws.com" + }, "ap-southeast-1" : { "credentialScope" : { "region" : "ap-southeast-1" @@ -637,6 +678,12 @@ }, "hostname" : "api.ecr.eu-central-1.amazonaws.com" }, + "eu-central-2" : { + "credentialScope" : { + "region" : "eu-central-2" + }, + "hostname" : "api.ecr.eu-central-2.amazonaws.com" + }, "eu-north-1" : { "credentialScope" : { "region" : "eu-north-1" @@ -649,6 +696,12 @@ }, "hostname" : "api.ecr.eu-south-1.amazonaws.com" }, + "eu-south-2" : { + "credentialScope" : { + "region" : "eu-south-2" + }, + "hostname" : "api.ecr.eu-south-2.amazonaws.com" + }, "eu-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -723,6 +776,12 @@ "deprecated" : true, "hostname" : "ecr-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { + "credentialScope" : { + "region" : "me-central-1" + }, + "hostname" : "api.ecr.me-central-1.amazonaws.com" + }, "me-south-1" : { "credentialScope" : { "region" : "me-south-1" @@ -777,6 +836,22 @@ } } }, + "api.ecr-public" : { + "endpoints" : { + "us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "api.ecr-public.us-east-1.amazonaws.com" + }, + "us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "api.ecr-public.us-west-2.amazonaws.com" + } + } + }, "api.elastic-inference" : { "endpoints" : { "ap-northeast-1" : { @@ -864,6 +939,34 @@ } } }, + "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" : { @@ -878,12 +981,24 @@ }, "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" @@ -936,6 +1051,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -1095,15 +1211,124 @@ "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" : "apigateway-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" : "apigateway-fips.ca-central-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" + }, + "me-central-1" : { }, + "me-south-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" : { }, + "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" : { }, @@ -1112,18 +1337,6 @@ "us-west-2" : { } } }, - "app-integrations" : { - "endpoints" : { - "ap-northeast-1" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ca-central-1" : { }, - "eu-central-1" : { }, - "eu-west-2" : { }, - "us-east-1" : { }, - "us-west-2" : { } - } - }, "appconfigdata" : { "endpoints" : { "af-south-1" : { }, @@ -1180,16 +1393,20 @@ "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" : { }, @@ -1249,6 +1466,12 @@ "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", @@ -1267,12 +1490,31 @@ "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", @@ -1323,27 +1565,79 @@ }, "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" } } }, @@ -1429,6 +1723,7 @@ "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", @@ -1446,6 +1741,7 @@ }, "appsync" : { "endpoints" : { + "af-south-1" : { }, "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, @@ -1453,6 +1749,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -1485,23 +1782,117 @@ "us-west-2" : { } } }, - "athena" : { + "arc-zonal-shift" : { "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" : { }, + "ap-southeast-3" : { }, "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" : { } + } + }, + "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-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" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "athena.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "athena.eu-central-1.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-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-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -1530,30 +1921,52 @@ "deprecated" : true, "hostname" : "athena-fips.us-west-2.amazonaws.com" }, - "me-south-1" : { }, - "sa-east-1" : { }, + "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.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "athena-fips.us-east-2.amazonaws.com", "tags" : [ "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.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "athena-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "athena.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -1585,16 +1998,20 @@ "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" : { }, @@ -1658,6 +2075,39 @@ "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" : { } + } + }, + "backupstorage" : { + "endpoints" : { + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "batch" : { "defaults" : { "variants" : [ { @@ -1674,6 +2124,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -1769,6 +2220,63 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-global" }, + "cases" : { + "endpoints" : { + "us-east-1" : { }, + "us-west-2" : { } + } + }, + "cassandra" : { + "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" : { }, + "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" : { @@ -1830,6 +2338,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -1840,8 +2349,10 @@ } ] }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -1880,6 +2391,7 @@ "deprecated" : true, "hostname" : "cloudcontrolapi-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -1929,16 +2441,20 @@ "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" : { @@ -2028,6 +2544,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -2035,6 +2552,7 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -2065,13 +2583,16 @@ "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" : { }, @@ -2103,6 +2624,7 @@ "deprecated" : true, "hostname" : "cloudtrail-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -2158,6 +2680,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -2221,6 +2744,15 @@ } } }, + "codecatalyst" : { + "endpoints" : { + "aws-global" : { + "hostname" : "codecatalyst.global.api.aws" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-global" + }, "codecommit" : { "endpoints" : { "af-south-1" : { }, @@ -2321,16 +2853,20 @@ "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" : { @@ -2520,6 +3056,28 @@ "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" : { "ap-northeast-1" : { }, @@ -2530,6 +3088,7 @@ "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -2587,6 +3146,7 @@ "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -2765,6 +3325,18 @@ }, "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" @@ -2777,6 +3349,12 @@ }, "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" @@ -2813,6 +3391,12 @@ }, "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-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -2831,6 +3415,12 @@ }, "hostname" : "compute-optimizer.eu-west-3.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" @@ -2871,13 +3461,16 @@ "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" : { }, @@ -2909,6 +3502,7 @@ "deprecated" : true, "hostname" : "config-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -2951,6 +3545,38 @@ "us-west-2" : { } } }, + "connect-campaigns" : { + "endpoints" : { + "ap-southeast-2" : { }, + "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" : { }, @@ -2963,6 +3589,73 @@ "us-west-2" : { } } }, + "controltower" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "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" + }, + "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "eu-west-3" : { }, + "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-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" + } + } + }, "cur" : { "endpoints" : { "us-east-1" : { } @@ -3028,6 +3721,7 @@ "deprecated" : true, "hostname" : "data.iot-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -3255,11 +3949,59 @@ "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" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "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" : { @@ -3344,6 +4086,7 @@ "deprecated" : true, "hostname" : "datasync-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -3394,6 +4137,65 @@ "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" : { }, + "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" : "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-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" : { }, + "us-west-2" : { + "variants" : [ { + "hostname" : "devops-guru-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } + } + }, "directconnect" : { "endpoints" : { "af-south-1" : { }, @@ -3402,13 +4204,16 @@ "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" : { }, @@ -3440,6 +4245,7 @@ "deprecated" : true, "hostname" : "directconnect-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -3479,6 +4285,33 @@ "us-west-2" : { } } }, + "dlm" : { + "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" : { } + } + }, "dms" : { "endpoints" : { "af-south-1" : { }, @@ -3487,6 +4320,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -3509,11 +4343,14 @@ "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" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -3660,14 +4497,27 @@ }, "drs" : { "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" : { } } }, @@ -3681,6 +4531,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "ds-fips.ca-central-1.amazonaws.com", @@ -3728,6 +4579,7 @@ "deprecated" : true, "hostname" : "ds-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -3767,6 +4619,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -3784,8 +4637,10 @@ "hostname" : "dynamodb-fips.ca-central-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" : { }, @@ -3796,6 +4651,7 @@ "hostname" : "localhost:8000", "protocols" : [ "http" ] }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -3910,6 +4766,7 @@ "deprecated" : true, "hostname" : "ebs-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -3954,6 +4811,7 @@ "tags" : [ "dualstack" ] } ] }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -3964,8 +4822,10 @@ } ] }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { "variants" : [ { "hostname" : "ec2.eu-west-1.api.aws", @@ -4009,6 +4869,7 @@ "deprecated" : true, "hostname" : "ec2-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { "variants" : [ { @@ -4059,13 +4920,16 @@ "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" : { }, @@ -4097,6 +4961,7 @@ "deprecated" : true, "hostname" : "ecs-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -4125,6 +4990,16 @@ } } }, + "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" ], @@ -4178,6 +5053,7 @@ "deprecated" : true, "hostname" : "fips.eks.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -4214,13 +5090,16 @@ "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" : { }, @@ -4231,6 +5110,7 @@ "deprecated" : true, "hostname" : "elasticache-fips.us-west-1.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -4297,6 +5177,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -4570,6 +5451,13 @@ "deprecated" : true, "hostname" : "elasticfilesystem-fips.eu-west-3.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" @@ -4612,6 +5500,12 @@ "deprecated" : true, "hostname" : "elasticfilesystem-fips.us-west-2.amazonaws.com" }, + "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", @@ -4661,13 +5555,16 @@ "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" : { }, @@ -4699,6 +5596,7 @@ "deprecated" : true, "hostname" : "elasticloadbalancing-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -4739,6 +5637,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -4751,8 +5650,10 @@ "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" : { }, @@ -4791,6 +5692,7 @@ "deprecated" : true, "hostname" : "elasticmapreduce-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -4841,6 +5743,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -4960,6 +5863,86 @@ } } }, + "emr-serverless" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "ap-southeast-1" : { }, + "ap-southeast-2" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "emr-serverless-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" : "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" + }, + "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" : { @@ -4978,13 +5961,16 @@ "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" : { }, @@ -4995,6 +5981,7 @@ "deprecated" : true, "hostname" : "es-fips.us-west-1.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -5059,13 +6046,16 @@ "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" : { }, @@ -5097,6 +6087,7 @@ "deprecated" : true, "hostname" : "events-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -5220,6 +6211,7 @@ "deprecated" : true, "hostname" : "firehose-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -5624,6 +6616,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "fsx-fips.ca-central-1.amazonaws.com", @@ -5811,9 +6804,23 @@ }, "gamesparks" : { "endpoints" : { + "ap-northeast-1" : { }, "us-east-1" : { } } }, + "geo" : { + "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" : { } + } + }, "glacier" : { "defaults" : { "protocols" : [ "http", "https" ] @@ -5913,6 +6920,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -6064,6 +7072,7 @@ "endpoints" : { "af-south-1" : { }, "ap-northeast-2" : { }, + "ap-southeast-1" : { }, "ap-southeast-2" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -6132,6 +7141,7 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -6195,6 +7205,12 @@ "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" @@ -6320,6 +7336,68 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-global" }, + "ingest.timestream" : { + "endpoints" : { + "ap-northeast-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" : { }, @@ -6466,6 +7544,7 @@ "deprecated" : true, "hostname" : "iot-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -6513,12 +7592,61 @@ "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" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-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" : { @@ -6553,6 +7681,16 @@ }, "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" @@ -6571,26 +7709,78 @@ }, "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" + "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" + "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" + "hostname" : "data.iotevents.us-west-2.amazonaws.com", + "variants" : [ { + "hostname" : "data.iotevents-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] } } }, + "iotfleetwise" : { + "endpoints" : { + "eu-central-1" : { }, + "us-east-1" : { } + } + }, + "iotroborunner" : { + "endpoints" : { + "eu-central-1" : { }, + "us-east-1" : { } + } + }, "iotsecuredtunneling" : { "defaults" : { "variants" : [ { @@ -6686,8 +7876,21 @@ "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" @@ -6695,6 +7898,13 @@ "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" @@ -6708,6 +7918,12 @@ "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", @@ -6788,6 +8004,10 @@ }, "ivschat" : { "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-south-1" : { }, + "eu-central-1" : { }, "eu-west-1" : { }, "us-east-1" : { }, "us-west-2" : { } @@ -6803,6 +8023,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -6893,13 +8114,16 @@ "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" : { }, @@ -6931,6 +8155,7 @@ "deprecated" : true, "hostname" : "kinesis-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -6969,6 +8194,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -6986,6 +8212,7 @@ }, "kinesisvideo" : { "endpoints" : { + "af-south-1" : { }, "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, @@ -7005,6 +8232,13 @@ }, "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", @@ -7083,6 +8317,19 @@ "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", @@ -7148,6 +8395,19 @@ "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", @@ -7174,6 +8434,19 @@ "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", @@ -7213,6 +8486,19 @@ "deprecated" : true, "hostname" : "kms-fips.eu-west-3.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", @@ -7404,6 +8690,12 @@ "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", @@ -7434,6 +8726,12 @@ "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", @@ -7446,6 +8744,12 @@ "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", @@ -7492,6 +8796,12 @@ "deprecated" : true, "hostname" : "lambda-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { + "variants" : [ { + "hostname" : "lambda.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "me-south-1" : { "variants" : [ { "hostname" : "lambda.me-south-1.api.aws", @@ -7616,6 +8926,79 @@ } } }, + "license-manager-user-subscriptions" : { + "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" : { }, + "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" + }, + "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" : { }, @@ -7642,13 +9025,16 @@ "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" : { }, @@ -7680,6 +9066,7 @@ "deprecated" : true, "hostname" : "logs-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -7739,6 +9126,22 @@ "us-west-2" : { } } }, + "m2" : { + "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" : { }, + "eu-west-3" : { }, + "sa-east-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, "machinelearning" : { "endpoints" : { "eu-west-1" : { }, @@ -8132,6 +9535,34 @@ } } }, + "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-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" : { }, @@ -8163,16 +9594,20 @@ "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" : { }, @@ -8202,6 +9637,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -8217,6 +9653,17 @@ "us-west-2" : { } } }, + "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" : { }, @@ -8304,13 +9751,16 @@ "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" : { }, @@ -8342,6 +9792,7 @@ "deprecated" : true, "hostname" : "monitoring-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -8672,8 +10123,44 @@ "us-west-2" : { } } }, + "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" : { }, + "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" : { } + } + }, "oidc" : { "endpoints" : { + "ap-east-1" : { + "credentialScope" : { + "region" : "ap-east-1" + }, + "hostname" : "oidc.ap-east-1.amazonaws.com" + }, "ap-northeast-1" : { "credentialScope" : { "region" : "ap-northeast-1" @@ -8686,6 +10173,12 @@ }, "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" @@ -8722,6 +10215,12 @@ }, "hostname" : "oidc.eu-north-1.amazonaws.com" }, + "eu-south-1" : { + "credentialScope" : { + "region" : "eu-south-1" + }, + "hostname" : "oidc.eu-south-1.amazonaws.com" + }, "eu-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -8740,6 +10239,12 @@ }, "hostname" : "oidc.eu-west-3.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" @@ -8831,6 +10336,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "outposts-fips.ca-central-1.amazonaws.com", @@ -8906,6 +10412,44 @@ } } }, + "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" : { }, @@ -8929,15 +10473,20 @@ "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" : { }, @@ -8958,10 +10507,26 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, - "ca-central-1" : { }, + "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" @@ -8969,6 +10534,13 @@ "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" @@ -8986,6 +10558,16 @@ "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" @@ -8998,6 +10580,33 @@ } } }, + "pipes" : { + "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" : { } + } + }, "polly" : { "endpoints" : { "af-south-1" : { }, @@ -9071,6 +10680,12 @@ }, "portal.sso" : { "endpoints" : { + "ap-east-1" : { + "credentialScope" : { + "region" : "ap-east-1" + }, + "hostname" : "portal.sso.ap-east-1.amazonaws.com" + }, "ap-northeast-1" : { "credentialScope" : { "region" : "ap-northeast-1" @@ -9083,7 +10698,12 @@ }, "hostname" : "portal.sso.ap-northeast-2.amazonaws.com" }, - "ap-northeast-3" : { }, + "ap-northeast-3" : { + "credentialScope" : { + "region" : "ap-northeast-3" + }, + "hostname" : "portal.sso.ap-northeast-3.amazonaws.com" + }, "ap-south-1" : { "credentialScope" : { "region" : "ap-south-1" @@ -9120,6 +10740,12 @@ }, "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-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -9138,6 +10764,12 @@ }, "hostname" : "portal.sso.eu-west-3.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" @@ -9192,7 +10824,13 @@ "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" : { } @@ -9337,6 +10975,7 @@ "deprecated" : true, "hostname" : "ram-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -9375,19 +11014,83 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, - "ca-central-1" : { }, + "ap-southeast-3" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "rbin-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" : "rbin-fips.ca-central-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" + }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "us-east-1" : { + "variants" : [ { + "hostname" : "rbin-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "rbin-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "rbin-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "rbin-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } } }, "rds" : { @@ -9398,6 +11101,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -9415,11 +11119,14 @@ "hostname" : "rds-fips.ca-central-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" : { }, + "me-central-1" : { }, "me-south-1" : { }, "rds-fips.ca-central-1" : { "credentialScope" : { @@ -9562,6 +11269,72 @@ } } }, + "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" : { }, @@ -9570,6 +11343,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -9580,8 +11354,10 @@ } ] }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -9620,6 +11396,7 @@ "deprecated" : true, "hostname" : "redshift-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -9648,6 +11425,21 @@ } } }, + "redshift-serverless" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "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" : { } + } + }, "rekognition" : { "endpoints" : { "ap-northeast-1" : { }, @@ -9834,6 +11626,81 @@ "us-west-2" : { } } }, + "resource-explorer-2" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "af-south-1" : { + "hostname" : "resource-explorer-2.af-south-1.api.aws" + }, + "ap-east-1" : { + "hostname" : "resource-explorer-2.ap-east-1.api.aws" + }, + "ap-northeast-1" : { + "hostname" : "resource-explorer-2.ap-northeast-1.api.aws" + }, + "ap-northeast-2" : { + "hostname" : "resource-explorer-2.ap-northeast-2.api.aws" + }, + "ap-northeast-3" : { + "hostname" : "resource-explorer-2.ap-northeast-3.api.aws" + }, + "ap-south-1" : { + "hostname" : "resource-explorer-2.ap-south-1.api.aws" + }, + "ap-south-2" : { + "hostname" : "resource-explorer-2.ap-south-2.api.aws" + }, + "ap-southeast-1" : { + "hostname" : "resource-explorer-2.ap-southeast-1.api.aws" + }, + "ap-southeast-2" : { + "hostname" : "resource-explorer-2.ap-southeast-2.api.aws" + }, + "ca-central-1" : { + "hostname" : "resource-explorer-2.ca-central-1.api.aws" + }, + "eu-central-1" : { + "hostname" : "resource-explorer-2.eu-central-1.api.aws" + }, + "eu-central-2" : { + "hostname" : "resource-explorer-2.eu-central-2.api.aws" + }, + "eu-north-1" : { + "hostname" : "resource-explorer-2.eu-north-1.api.aws" + }, + "eu-west-1" : { + "hostname" : "resource-explorer-2.eu-west-1.api.aws" + }, + "eu-west-2" : { + "hostname" : "resource-explorer-2.eu-west-2.api.aws" + }, + "eu-west-3" : { + "hostname" : "resource-explorer-2.eu-west-3.api.aws" + }, + "sa-east-1" : { + "hostname" : "resource-explorer-2.sa-east-1.api.aws" + }, + "us-east-1" : { + "hostname" : "resource-explorer-2.us-east-1.api.aws" + }, + "us-east-2" : { + "hostname" : "resource-explorer-2.us-east-2.api.aws" + }, + "us-west-1" : { + "hostname" : "resource-explorer-2.us-west-1.api.aws" + }, + "us-west-2" : { + "hostname" : "resource-explorer-2.us-west-2.api.aws" + } + } + }, "resource-groups" : { "endpoints" : { "af-south-1" : { }, @@ -9880,6 +11747,7 @@ "deprecated" : true, "hostname" : "resource-groups-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -9919,6 +11787,32 @@ "us-west-2" : { } } }, + "rolesanywhere" : { + "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" : { } + } + }, "route53" : { "endpoints" : { "aws-global" : { @@ -10076,6 +11970,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -10192,6 +12087,12 @@ "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" ], @@ -10239,6 +12140,12 @@ "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", @@ -10251,6 +12158,12 @@ "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" ], @@ -10306,6 +12219,12 @@ "deprecated" : true, "hostname" : "s3-fips.us-west-2.amazonaws.com" }, + "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", @@ -10669,6 +12588,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "tags" : [ "fips" ] @@ -10719,6 +12639,11 @@ } } }, + "sagemaker-geospatial" : { + "endpoints" : { + "us-west-2" : { } + } + }, "savingsplans" : { "endpoints" : { "aws-global" : { @@ -10731,6 +12656,19 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-global" }, + "scheduler" : { + "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" : { } + } + }, "schemas" : { "endpoints" : { "ap-east-1" : { }, @@ -10778,6 +12716,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -10795,11 +12734,14 @@ "hostname" : "secretsmanager-fips.ca-central-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" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -10866,6 +12808,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -10929,6 +12872,17 @@ } } }, + "securitylake" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "serverlessrepo" : { "defaults" : { "protocols" : [ "https" ] @@ -11000,6 +12954,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, @@ -11155,9 +13110,11 @@ "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" : "servicediscovery-fips.ca-central-1.amazonaws.com", @@ -11177,6 +13134,7 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "servicediscovery" : { @@ -11357,6 +13315,18 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-global" }, + "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" : { "af-south-1" : { }, @@ -11483,6 +13453,7 @@ "tags" : [ "fips" ] } ] }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "snowball-fips.ca-central-1.amazonaws.com", @@ -11670,13 +13641,16 @@ "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" : { }, @@ -11708,6 +13682,7 @@ "deprecated" : true, "hostname" : "sns-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -11748,13 +13723,16 @@ "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" : { }, @@ -11786,6 +13764,7 @@ "deprecated" : true, "hostname" : "sqs-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -11823,6 +13802,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -11833,8 +13813,10 @@ } ] }, "eu-central-1" : { }, + "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -11873,6 +13855,7 @@ "deprecated" : true, "hostname" : "ssm-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -11921,6 +13904,29 @@ "us-west-2" : { } } }, + "sso" : { + "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-2" : { } + } + }, "states" : { "endpoints" : { "af-south-1" : { }, @@ -11929,13 +13935,16 @@ "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" : { }, @@ -11967,6 +13976,7 @@ "deprecated" : true, "hostname" : "states-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -12032,6 +14042,7 @@ "deprecated" : true, "hostname" : "storagegateway-fips.ca-central-1.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -12102,13 +14113,16 @@ "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" : { }, @@ -12119,6 +14133,7 @@ "hostname" : "localhost:8000", "protocols" : [ "http" ] }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { }, @@ -12135,6 +14150,7 @@ "ap-northeast-2" : { }, "ap-northeast-3" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, @@ -12146,11 +14162,14 @@ }, "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" : { @@ -12219,6 +14238,13 @@ }, "partitionEndpoint" : "aws-global" }, + "supportapp" : { + "endpoints" : { + "eu-west-1" : { }, + "us-east-1" : { }, + "us-west-2" : { } + } + }, "swf" : { "endpoints" : { "af-south-1" : { }, @@ -12227,13 +14253,16 @@ "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" : { }, @@ -12265,6 +14294,7 @@ "deprecated" : true, "hostname" : "swf-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -12301,13 +14331,16 @@ "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" : { }, @@ -12339,6 +14372,7 @@ "deprecated" : true, "hostname" : "synthetics-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -12375,16 +14409,20 @@ "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" : { }, @@ -12653,6 +14691,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "transfer-fips.ca-central-1.amazonaws.com", @@ -12787,15 +14826,89 @@ } } }, + "voice-chime" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-southeast-1" : { }, + "ca-central-1" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "eu-west-2" : { }, + "us-east-1" : { + "variants" : [ { + "hostname" : "fips.voice-chime.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-1-fips" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "fips.voice-chime.us-east-1.amazonaws.com" + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "fips.voice-chime.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2-fips" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "fips.voice-chime.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" : { }, - "us-east-1" : { }, - "us-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" ] + } ] + } } }, "waf" : { @@ -13216,6 +15329,384 @@ } } }, + "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-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" ] + } ] + }, + "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" ] + } ] + }, + "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-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-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-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-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.ca-central-1.amazonaws.com" + }, + "fips-eu-central-1" : { + "credentialScope" : { + "region" : "eu-central-1" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.eu-central-1.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-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-me-south-1" : { + "credentialScope" : { + "region" : "me-south-1" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.me-south-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" + }, + "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" ] + } ] + }, + "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" : { }, @@ -13244,8 +15735,28 @@ "ap-southeast-2" : { }, "eu-central-1" : { }, "eu-west-2" : { }, - "us-east-1" : { }, - "us-west-2" : { } + "fips-us-east-1" : { + "deprecated" : true + }, + "fips-us-west-2" : { + "deprecated" : true + }, + "ui-ap-northeast-1" : { }, + "ui-ap-southeast-2" : { }, + "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" : { @@ -13294,6 +15805,7 @@ }, "workspaces" : { "endpoints" : { + "af-south-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-south-1" : { }, @@ -13334,7 +15846,14 @@ }, "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" : { }, "us-east-1" : { }, "us-west-2" : { } } @@ -13347,13 +15866,16 @@ "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" : { }, @@ -13385,6 +15907,7 @@ "deprecated" : true, "hostname" : "xray-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, "us-east-1" : { @@ -13504,6 +16027,12 @@ "cn-northwest-1" : { } } }, + "appconfig" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "appconfigdata" : { "endpoints" : { "cn-north-1" : { }, @@ -13549,8 +16078,18 @@ }, "athena" : { "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "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" : { @@ -13595,6 +16134,12 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-cn-global" }, + "cassandra" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "ce" : { "endpoints" : { "aws-cn-global" : { @@ -13742,6 +16287,12 @@ "cn-northwest-1" : { } } }, + "dlm" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "dms" : { "endpoints" : { "cn-north-1" : { }, @@ -13883,8 +16434,18 @@ }, "firehose" : { "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "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" : { @@ -13943,10 +16504,20 @@ "isRegionalized" : true }, "health" : { + "defaults" : { + "protocols" : [ "https" ], + "sslCommonName" : "health.cn-northwest-1.amazonaws.com.cn" + }, "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } - } + "aws-cn-global" : { + "credentialScope" : { + "region" : "cn-northwest-1" + }, + "hostname" : "global.health.amazonaws.com.cn" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-cn-global" }, "iam" : { "endpoints" : { @@ -14070,6 +16641,12 @@ } } }, + "memory-db" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "monitoring" : { "defaults" : { "protocols" : [ "http", "https" ] @@ -14135,6 +16712,12 @@ "cn-northwest-1" : { } } }, + "rbin" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "rds" : { "endpoints" : { "cn-north-1" : { }, @@ -14147,6 +16730,24 @@ "cn-northwest-1" : { } } }, + "resource-explorer-2" : { + "defaults" : { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "variants" : [ { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "cn-north-1" : { + "hostname" : "resource-explorer-2.cn-north-1.api.amazonwebservices.com.cn" + }, + "cn-northwest-1" : { + "hostname" : "resource-explorer-2.cn-northwest-1.api.amazonwebservices.com.cn" + } + } + }, "resource-groups" : { "endpoints" : { "cn-north-1" : { }, @@ -14466,6 +17067,44 @@ } } }, + "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" : { } @@ -14778,6 +17417,36 @@ "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" : { "us-gov-east-1" : { }, @@ -14863,12 +17532,18 @@ "variants" : [ { "hostname" : "athena-fips.us-gov-east-1.amazonaws.com", "tags" : [ "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.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -14908,6 +17583,12 @@ "us-gov-west-1" : { } } }, + "backup-gateway" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "batch" : { "defaults" : { "variants" : [ { @@ -14944,6 +17625,22 @@ } } }, + "cassandra" : { + "endpoints" : { + "us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "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" + } + } + }, "cloudcontrolapi" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -15012,6 +17709,12 @@ } }, "cloudtrail" : { + "defaults" : { + "variants" : [ { + "hostname" : "cloudtrail.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "endpoints" : { "fips-us-gov-east-1" : { "credentialScope" : { @@ -15267,6 +17970,12 @@ "us-gov-west-1" : { } } }, + "controltower" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "data-ats.iot" : { "defaults" : { "credentialScope" : { @@ -15420,6 +18129,12 @@ } } }, + "dlm" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "dms" : { "defaults" : { "variants" : [ { @@ -15567,13 +18282,21 @@ "credentialScope" : { "region" : "us-gov-east-1" }, - "hostname" : "ec2.us-gov-east-1.amazonaws.com" + "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" + "hostname" : "ec2.us-gov-west-1.amazonaws.com", + "variants" : [ { + "hostname" : "ec2.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] } } }, @@ -16231,6 +18954,11 @@ } } }, + "ingest.timestream" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, "inspector" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -16298,16 +19026,39 @@ }, "iotevents" : { "endpoints" : { - "us-gov-west-1" : { } + "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" + "hostname" : "data.iotevents.us-gov-west-1.amazonaws.com", + "variants" : [ { + "hostname" : "data.iotevents-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] } } }, @@ -16448,6 +19199,13 @@ }, "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" @@ -16455,6 +19213,12 @@ "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" ] + } ] + }, "us-gov-west-1" : { "variants" : [ { "hostname" : "lakeformation-fips.us-gov-west-1.amazonaws.com", @@ -16483,12 +19247,18 @@ "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" ] } ] } } @@ -16553,6 +19323,11 @@ } } }, + "managedblockchain" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, "mediaconvert" : { "endpoints" : { "us-gov-west-1" : { @@ -16809,6 +19584,16 @@ } } }, + "participant.connect" : { + "endpoints" : { + "us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "participant.connect.us-gov-west-1.amazonaws.com" + } + } + }, "pinpoint" : { "defaults" : { "credentialScope" : { @@ -16890,6 +19675,36 @@ } } }, + "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" ] + } ] + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "rbin-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + } + } + }, "rds" : { "defaults" : { "variants" : [ { @@ -16990,6 +19805,24 @@ } } }, + "resource-explorer-2" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "us-gov-east-1" : { + "hostname" : "resource-explorer-2.us-gov-east-1.api.aws" + }, + "us-gov-west-1" : { + "hostname" : "resource-explorer-2.us-gov-west-1.api.aws" + } + } + }, "resource-groups" : { "defaults" : { "variants" : [ { @@ -17367,32 +20200,8 @@ } ] }, "endpoints" : { - "fips-us-gov-east-1" : { - "credentialScope" : { - "region" : "us-gov-east-1" - }, - "deprecated" : true, - "hostname" : "servicecatalog-appregistry.us-gov-east-1.amazonaws.com" - }, - "fips-us-gov-west-1" : { - "credentialScope" : { - "region" : "us-gov-west-1" - }, - "deprecated" : true, - "hostname" : "servicecatalog-appregistry.us-gov-west-1.amazonaws.com" - }, - "us-gov-east-1" : { - "variants" : [ { - "hostname" : "servicecatalog-appregistry.us-gov-east-1.amazonaws.com", - "tags" : [ "fips" ] - } ] - }, - "us-gov-west-1" : { - "variants" : [ { - "hostname" : "servicecatalog-appregistry.us-gov-west-1.amazonaws.com", - "tags" : [ "fips" ] - } ] - } + "us-gov-east-1" : { }, + "us-gov-west-1" : { } } }, "servicediscovery" : { @@ -17635,6 +20444,22 @@ } } }, + "sso" : { + "endpoints" : { + "us-gov-east-1" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "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" + } + } + }, "states" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -17924,6 +20749,12 @@ } } }, + "transcribestreaming" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "transfer" : { "endpoints" : { "fips-us-gov-east-1" : { @@ -18012,6 +20843,50 @@ } } }, + "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-west-1" : { @@ -18110,8 +20985,15 @@ "us-iso-east-1" : { } } }, + "appconfig" : { + "endpoints" : { + "us-iso-east-1" : { }, + "us-iso-west-1" : { } + } + }, "appconfigdata" : { "endpoints" : { + "us-iso-east-1" : { }, "us-iso-west-1" : { } } }, @@ -18230,7 +21112,8 @@ }, "ds" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "dynamodb" : { @@ -18281,11 +21164,24 @@ "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" ] + } ] } } }, @@ -18307,7 +21203,8 @@ }, "es" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "events" : { @@ -18318,7 +21215,8 @@ }, "firehose" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "glacier" : { @@ -18429,7 +21327,8 @@ }, "ram" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "rds" : { @@ -18506,7 +21405,8 @@ }, "ssm" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "states" : { @@ -18522,7 +21422,8 @@ } }, "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "sts" : { @@ -18550,7 +21451,8 @@ }, "synthetics" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "tagging" : { @@ -18616,6 +21518,16 @@ } } }, + "appconfig" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, + "appconfigdata" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "application-autoscaling" : { "defaults" : { "protocols" : [ "http", "https" ] @@ -18846,6 +21758,16 @@ "us-isob-east-1" : { } } }, + "metering.marketplace" : { + "defaults" : { + "credentialScope" : { + "service" : "aws-marketplace" + } + }, + "endpoints" : { + "us-isob-east-1" : { } + } + }, "monitoring" : { "endpoints" : { "us-isob-east-1" : { } @@ -18866,6 +21788,11 @@ "us-isob-east-1" : { } } }, + "resource-groups" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "route53" : { "endpoints" : { "aws-iso-b-global" : { @@ -18878,6 +21805,11 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-iso-b-global" }, + "route53resolver" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "s3" : { "defaults" : { "protocols" : [ "http", "https" ], @@ -18960,6 +21892,11 @@ "endpoints" : { "us-isob-east-1" : { } } + }, + "workspaces" : { + "endpoints" : { + "us-isob-east-1" : { } + } } } } ], diff --git a/botocore/data/es/2015-01-01/endpoint-rule-set-1.json b/botocore/data/es/2015-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..78b68177 --- /dev/null +++ b/botocore/data/es/2015-01-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://es-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://es-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://es.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://es.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/es/2015-01-01/service-2.json b/botocore/data/es/2015-01-01/service-2.json index 94fbfbf4..33ea6be3 100644 --- a/botocore/data/es/2015-01-01/service-2.json +++ b/botocore/data/es/2015-01-01/service-2.json @@ -58,6 +58,24 @@ ], "documentation":"

Associates a package with an Amazon ES domain.

" }, + "AuthorizeVpcEndpointAccess":{ + "name":"AuthorizeVpcEndpointAccess", + "http":{ + "method":"POST", + "requestUri":"/2015-01-01/es/domain/{DomainName}/authorizeVpcEndpointAccess" + }, + "input":{"shape":"AuthorizeVpcEndpointAccessRequest"}, + "output":{"shape":"AuthorizeVpcEndpointAccessResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"DisabledOperationException"}, + {"shape":"LimitExceededException"}, + {"shape":"ValidationException"}, + {"shape":"InternalException"}, + {"shape":"BaseException"} + ], + "documentation":"

Provides access to an Amazon OpenSearch Service domain through the use of an interface VPC endpoint.

" + }, "CancelElasticsearchServiceSoftwareUpdate":{ "name":"CancelElasticsearchServiceSoftwareUpdate", "http":{ @@ -128,6 +146,24 @@ ], "documentation":"

Create a package for use with Amazon ES domains.

" }, + "CreateVpcEndpoint":{ + "name":"CreateVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/2015-01-01/es/vpcEndpoints" + }, + "input":{"shape":"CreateVpcEndpointRequest"}, + "output":{"shape":"CreateVpcEndpointResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalException"}, + {"shape":"DisabledOperationException"}, + {"shape":"BaseException"} + ], + "documentation":"

Creates an Amazon OpenSearch Service-managed VPC endpoint.

" + }, "DeleteElasticsearchDomain":{ "name":"DeleteElasticsearchDomain", "http":{ @@ -203,6 +239,22 @@ ], "documentation":"

Delete the package.

" }, + "DeleteVpcEndpoint":{ + "name":"DeleteVpcEndpoint", + "http":{ + "method":"DELETE", + "requestUri":"/2015-01-01/es/vpcEndpoints/{VpcEndpointId}" + }, + "input":{"shape":"DeleteVpcEndpointRequest"}, + "output":{"shape":"DeleteVpcEndpointResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"DisabledOperationException"}, + {"shape":"InternalException"}, + {"shape":"BaseException"} + ], + "documentation":"

Deletes an Amazon OpenSearch Service-managed interface VPC endpoint.

" + }, "DescribeDomainAutoTunes":{ "name":"DescribeDomainAutoTunes", "http":{ @@ -377,6 +429,22 @@ ], "documentation":"

Returns information about reserved Elasticsearch instances for this account.

" }, + "DescribeVpcEndpoints":{ + "name":"DescribeVpcEndpoints", + "http":{ + "method":"POST", + "requestUri":"/2015-01-01/es/vpcEndpoints/describe" + }, + "input":{"shape":"DescribeVpcEndpointsRequest"}, + "output":{"shape":"DescribeVpcEndpointsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalException"}, + {"shape":"DisabledOperationException"}, + {"shape":"BaseException"} + ], + "documentation":"

Describes one or more Amazon OpenSearch Service-managed VPC endpoints.

" + }, "DissociatePackage":{ "name":"DissociatePackage", "http":{ @@ -559,6 +627,53 @@ ], "documentation":"

Returns all tags for the given Elasticsearch domain.

" }, + "ListVpcEndpointAccess":{ + "name":"ListVpcEndpointAccess", + "http":{ + "method":"GET", + "requestUri":"/2015-01-01/es/domain/{DomainName}/listVpcEndpointAccess" + }, + "input":{"shape":"ListVpcEndpointAccessRequest"}, + "output":{"shape":"ListVpcEndpointAccessResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"DisabledOperationException"}, + {"shape":"InternalException"}, + {"shape":"BaseException"} + ], + "documentation":"

Retrieves information about each principal that is allowed to access a given Amazon OpenSearch Service domain through the use of an interface VPC endpoint.

" + }, + "ListVpcEndpoints":{ + "name":"ListVpcEndpoints", + "http":{ + "method":"GET", + "requestUri":"/2015-01-01/es/vpcEndpoints" + }, + "input":{"shape":"ListVpcEndpointsRequest"}, + "output":{"shape":"ListVpcEndpointsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"DisabledOperationException"}, + {"shape":"BaseException"} + ], + "documentation":"

Retrieves all Amazon OpenSearch Service-managed VPC endpoints in the current account and Region.

" + }, + "ListVpcEndpointsForDomain":{ + "name":"ListVpcEndpointsForDomain", + "http":{ + "method":"GET", + "requestUri":"/2015-01-01/es/domain/{DomainName}/vpcEndpoints" + }, + "input":{"shape":"ListVpcEndpointsForDomainRequest"}, + "output":{"shape":"ListVpcEndpointsForDomainResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"DisabledOperationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"BaseException"} + ], + "documentation":"

Retrieves all Amazon OpenSearch Service-managed VPC endpoints associated with a particular domain.

" + }, "PurchaseReservedElasticsearchInstanceOffering":{ "name":"PurchaseReservedElasticsearchInstanceOffering", "http":{ @@ -605,6 +720,23 @@ ], "documentation":"

Removes the specified set of tags from the specified Elasticsearch domain.

" }, + "RevokeVpcEndpointAccess":{ + "name":"RevokeVpcEndpointAccess", + "http":{ + "method":"POST", + "requestUri":"/2015-01-01/es/domain/{DomainName}/revokeVpcEndpointAccess" + }, + "input":{"shape":"RevokeVpcEndpointAccessRequest"}, + "output":{"shape":"RevokeVpcEndpointAccessResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"DisabledOperationException"}, + {"shape":"InternalException"}, + {"shape":"BaseException"} + ], + "documentation":"

Revokes access to an Amazon OpenSearch Service domain that was provided through an interface VPC endpoint.

" + }, "StartElasticsearchServiceSoftwareUpdate":{ "name":"StartElasticsearchServiceSoftwareUpdate", "http":{ @@ -657,6 +789,24 @@ ], "documentation":"

Updates a package for use with Amazon ES domains.

" }, + "UpdateVpcEndpoint":{ + "name":"UpdateVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/2015-01-01/es/vpcEndpoints/update" + }, + "input":{"shape":"UpdateVpcEndpointRequest"}, + "output":{"shape":"UpdateVpcEndpointResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"DisabledOperationException"}, + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"BaseException"} + ], + "documentation":"

Modifies an Amazon OpenSearch Service-managed interface VPC endpoint.

" + }, "UpgradeElasticsearchDomain":{ "name":"UpgradeElasticsearchDomain", "http":{ @@ -681,6 +831,10 @@ "type":"string", "documentation":"

The Amazon Resource Name (ARN) of the Elasticsearch domain. See Identifiers for IAM Entities in Using AWS Identity and Access Management for more information.

" }, + "AWSAccount":{ + "type":"string", + "pattern":"^[0-9]+$" + }, "AcceptInboundCrossClusterSearchConnectionRequest":{ "type":"structure", "required":["CrossClusterSearchConnectionId"], @@ -892,6 +1046,55 @@ }, "documentation":"

Container for response returned by AssociatePackage operation.

" }, + "AuthorizeVpcEndpointAccessRequest":{ + "type":"structure", + "required":[ + "DomainName", + "Account" + ], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the OpenSearch Service domain to provide access to.

", + "location":"uri", + "locationName":"DomainName" + }, + "Account":{ + "shape":"AWSAccount", + "documentation":"

The account ID to grant access to.

" + } + }, + "documentation":"

Container for request parameters to the AuthorizeVpcEndpointAccess operation. Specifies the account to be permitted to manage VPC endpoints against the domain.

" + }, + "AuthorizeVpcEndpointAccessResponse":{ + "type":"structure", + "required":["AuthorizedPrincipal"], + "members":{ + "AuthorizedPrincipal":{ + "shape":"AuthorizedPrincipal", + "documentation":"

Information about the account or service that was provided access to the domain.

" + } + }, + "documentation":"

Container for response parameters to the AuthorizeVpcEndpointAccess operation. Contains the account ID and the type of the account being authorized to access the VPC endpoint.

" + }, + "AuthorizedPrincipal":{ + "type":"structure", + "members":{ + "PrincipalType":{ + "shape":"PrincipalType", + "documentation":"

The type of principal.

" + }, + "Principal":{ + "shape":"String", + "documentation":"

The IAM principal that is allowed access to the domain.

" + } + }, + "documentation":"

Information about an account or service that has access to an Amazon OpenSearch Service domain through the use of an interface VPC endpoint.

" + }, + "AuthorizedPrincipalList":{ + "type":"list", + "member":{"shape":"AuthorizedPrincipal"} + }, "AutoTune":{ "type":"structure", "members":{ @@ -1190,6 +1393,11 @@ }, "documentation":"

The progress details of a specific domain configuration change.

" }, + "ClientToken":{ + "type":"string", + "max":64, + "min":1 + }, "CloudWatchLogsLogGroupArn":{ "type":"string", "documentation":"

ARN of the Cloudwatch log group to which log needs to be published.

" @@ -1442,6 +1650,39 @@ }, "documentation":"

Container for response returned by CreatePackage operation.

" }, + "CreateVpcEndpointRequest":{ + "type":"structure", + "required":[ + "DomainArn", + "VpcOptions" + ], + "members":{ + "DomainArn":{ + "shape":"DomainArn", + "documentation":"

The Amazon Resource Name (ARN) of the domain to grant access to.

" + }, + "VpcOptions":{ + "shape":"VPCOptions", + "documentation":"

Options to specify the subnets and security groups for the endpoint.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

" + } + }, + "documentation":"

Container for the parameters to the CreateVpcEndpointRequest operation.

" + }, + "CreateVpcEndpointResponse":{ + "type":"structure", + "required":["VpcEndpoint"], + "members":{ + "VpcEndpoint":{ + "shape":"VpcEndpoint", + "documentation":"

Information about the newly created VPC endpoint.

" + } + }, + "documentation":"

Container for response parameters to the CreateVpcEndpoint operation. Contains the configuration and status of the VPC Endpoint being created.

" + }, "CreatedAt":{"type":"timestamp"}, "CrossClusterSearchConnectionId":{"type":"string"}, "CrossClusterSearchConnectionStatusMessage":{"type":"string"}, @@ -1537,6 +1778,30 @@ }, "documentation":"

Container for response parameters to DeletePackage operation.

" }, + "DeleteVpcEndpointRequest":{ + "type":"structure", + "required":["VpcEndpointId"], + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint to be deleted.

", + "location":"uri", + "locationName":"VpcEndpointId" + } + }, + "documentation":"

Deletes an Amazon OpenSearch Service-managed interface VPC endpoint.

" + }, + "DeleteVpcEndpointResponse":{ + "type":"structure", + "required":["VpcEndpointSummary"], + "members":{ + "VpcEndpointSummary":{ + "shape":"VpcEndpointSummary", + "documentation":"

Information about the deleted endpoint, including its current status (DELETING or DELETE_FAILED).

" + } + }, + "documentation":"

Container for response parameters to the DeleteVpcEndpoint operation. Contains the summarized detail of the VPC Endpoint being deleted.

" + }, "DeploymentCloseDateTimeStamp":{"type":"timestamp"}, "DeploymentStatus":{ "type":"string", @@ -1926,6 +2191,35 @@ }, "documentation":"

Container for results from DescribeReservedElasticsearchInstances

" }, + "DescribeVpcEndpointsRequest":{ + "type":"structure", + "required":["VpcEndpointIds"], + "members":{ + "VpcEndpointIds":{ + "shape":"VpcEndpointIdList", + "documentation":"

The unique identifiers of the endpoints to get information about.

" + } + }, + "documentation":"

Container for request parameters to the DescribeVpcEndpoints operation. Specifies the list of VPC endpoints to be described.

" + }, + "DescribeVpcEndpointsResponse":{ + "type":"structure", + "required":[ + "VpcEndpoints", + "VpcEndpointErrors" + ], + "members":{ + "VpcEndpoints":{ + "shape":"VpcEndpoints", + "documentation":"

Information about each requested VPC endpoint.

" + }, + "VpcEndpointErrors":{ + "shape":"VpcEndpointErrorList", + "documentation":"

Any errors associated with the request.

" + } + }, + "documentation":"

Container for response parameters to the DescribeVpcEndpoints operation. Returns a list containing configuration details and status of the VPC Endpoints as well as a list containing error responses of the endpoints that could not be described

" + }, "Description":{"type":"string"}, "DisableTimestamp":{"type":"timestamp"}, "DisabledOperationException":{ @@ -1968,6 +2262,12 @@ }, "documentation":"

Container for response returned by DissociatePackage operation.

" }, + "DomainArn":{ + "type":"string", + "max":512, + "min":1, + "pattern":"arn:aws[a-z\\-]*:[a-z]+:[a-z0-9\\-]+:[0-9]+:domain\\/[a-z0-9\\-]+" + }, "DomainEndpointOptions":{ "type":"structure", "members":{ @@ -2168,7 +2468,11 @@ }, "Iops":{ "shape":"IntegerClass", - "documentation":"

Specifies the IOPD for a Provisioned IOPS EBS volume (SSD).

" + "documentation":"

Specifies the IOPS for Provisioned IOPS And GP3 EBS volume (SSD).

" + }, + "Throughput":{ + "shape":"IntegerClass", + "documentation":"

Specifies the Throughput for GP3 EBS volume (SSD).

" } }, "documentation":"

Options to enable, disable, and specify the properties of EBS storage volumes. For more information, see Configuring EBS-based Storage.

" @@ -2573,6 +2877,10 @@ }, "documentation":"

Status of the Encryption At Rest options for the specified Elasticsearch domain.

" }, + "Endpoint":{ + "type":"string", + "pattern":"^[A-Za-z0-9\\-\\.]+$" + }, "EndpointsMap":{ "type":"map", "key":{"shape":"String"}, @@ -3080,6 +3388,110 @@ }, "documentation":"

The result of a ListTags operation. Contains tags for all requested Elasticsearch domains.

" }, + "ListVpcEndpointAccessRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the OpenSearch Service domain to retrieve access information for.

", + "location":"uri", + "locationName":"DomainName" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

Provides an identifier to allow retrieval of paginated results.

", + "location":"querystring", + "locationName":"nextToken" + } + }, + "documentation":"

Retrieves information about each principal that is allowed to access a given Amazon OpenSearch Service domain through the use of an interface VPC endpoint

" + }, + "ListVpcEndpointAccessResponse":{ + "type":"structure", + "required":[ + "AuthorizedPrincipalList", + "NextToken" + ], + "members":{ + "AuthorizedPrincipalList":{ + "shape":"AuthorizedPrincipalList", + "documentation":"

List of AuthorizedPrincipal describing the details of the permissions to manage VPC endpoints against the specified domain.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

Provides an identifier to allow retrieval of paginated results.

" + } + }, + "documentation":"

Container for response parameters to the ListVpcEndpointAccess operation. Returns a list of accounts id and account type authorized to manage VPC endpoints.

" + }, + "ListVpcEndpointsForDomainRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

Name of the ElasticSearch domain whose VPC endpoints are to be listed.

", + "location":"uri", + "locationName":"DomainName" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

Provides an identifier to allow retrieval of paginated results.

", + "location":"querystring", + "locationName":"nextToken" + } + }, + "documentation":"

Container for request parameters to the ListVpcEndpointsForDomain operation. Specifies the domain whose VPC endpoints will be listed.

" + }, + "ListVpcEndpointsForDomainResponse":{ + "type":"structure", + "required":[ + "VpcEndpointSummaryList", + "NextToken" + ], + "members":{ + "VpcEndpointSummaryList":{ + "shape":"VpcEndpointSummaryList", + "documentation":"

Provides list of VpcEndpointSummary summarizing details of the VPC endpoints.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

Information about each endpoint associated with the domain.

" + } + }, + "documentation":"

Container for response parameters to the ListVpcEndpointsForDomain operation. Returns a list containing summarized details of the VPC endpoints.

" + }, + "ListVpcEndpointsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

Identifier to allow retrieval of paginated results.

", + "location":"querystring", + "locationName":"nextToken" + } + }, + "documentation":"

Container for request parameters to the ListVpcEndpoints operation.

" + }, + "ListVpcEndpointsResponse":{ + "type":"structure", + "required":[ + "VpcEndpointSummaryList", + "NextToken" + ], + "members":{ + "VpcEndpointSummaryList":{ + "shape":"VpcEndpointSummaryList", + "documentation":"

Information about each endpoint.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

Provides an identifier to allow retrieval of paginated results.

" + } + }, + "documentation":"

Container for response parameters to the ListVpcEndpoints operation. Returns a list containing summarized details of the VPC endpoints.

" + }, "LogPublishingOption":{ "type":"structure", "members":{ @@ -3418,6 +3830,14 @@ "type":"string", "documentation":"

Access policy rules for an Elasticsearch domain service endpoints. For more information, see Configuring Access Policies in the Amazon Elasticsearch Service Developer Guide. The maximum size of a policy document is 100 KB.

" }, + "PrincipalType":{ + "type":"string", + "documentation":"

Specifies the type of AWS account permitted to manage VPC endpoints.:

  • AWS_ACCOUNT: Indicates that the account is owned by an AWS user.
  • AWS_SERVICE: Indicates the the account is owned by an AWS service.

", + "enum":[ + "AWS_ACCOUNT", + "AWS_SERVICE" + ] + }, "PurchaseReservedElasticsearchInstanceOfferingRequest":{ "type":"structure", "required":[ @@ -3648,6 +4068,32 @@ "error":{"httpStatusCode":409}, "exception":true }, + "RevokeVpcEndpointAccessRequest":{ + "type":"structure", + "required":[ + "DomainName", + "Account" + ], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the OpenSearch Service domain.

", + "location":"uri", + "locationName":"DomainName" + }, + "Account":{ + "shape":"AWSAccount", + "documentation":"

The account ID to revoke access from.

" + } + }, + "documentation":"

Revokes access to an Amazon OpenSearch Service domain that was provided through an interface VPC endpoint.

" + }, + "RevokeVpcEndpointAccessResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Container for response parameters to the RevokeVpcEndpointAccess operation. The response body for this operation is empty.

" + }, "RoleArn":{ "type":"string", "max":2048, @@ -3893,7 +4339,7 @@ "StartTimestamp":{"type":"timestamp"}, "StorageSubTypeName":{ "type":"string", - "documentation":"

SubType of the given storage type. List of available sub-storage options: For \"instance\" storageType we wont have any storageSubType, in case of \"ebs\" storageType we will have following valid storageSubTypes

  1. standard
  2. gp2
  3. io1
Refer VolumeType for more information regarding above EBS storage options.

" + "documentation":"

SubType of the given storage type. List of available sub-storage options: For \"instance\" storageType we wont have any storageSubType, in case of \"ebs\" storageType we will have following valid storageSubTypes

  1. standard
  2. gp2
  3. gp3
  4. io1
Refer VolumeType for more information regarding above EBS storage options.

" }, "StorageType":{ "type":"structure", @@ -3912,7 +4358,7 @@ "members":{ "LimitName":{ "shape":"LimitName", - "documentation":"

Name of storage limits that are applicable for given storage type. If StorageType is ebs, following storage options are applicable

  1. MinimumVolumeSize
  2. Minimum amount of volume size that is applicable for given storage type.It can be empty if it is not applicable.
  3. MaximumVolumeSize
  4. Maximum amount of volume size that is applicable for given storage type.It can be empty if it is not applicable.
  5. MaximumIops
  6. Maximum amount of Iops that is applicable for given storage type.It can be empty if it is not applicable.
  7. MinimumIops
  8. Minimum amount of Iops that is applicable for given storage type.It can be empty if it is not applicable.

" + "documentation":"

Name of storage limits that are applicable for given storage type. If StorageType is ebs, following storage options are applicable

  1. MinimumVolumeSize
  2. Minimum amount of volume size that is applicable for given storage type.It can be empty if it is not applicable.
  3. MaximumVolumeSize
  4. Maximum amount of volume size that is applicable for given storage type.It can be empty if it is not applicable.
  5. MaximumIops
  6. Maximum amount of Iops that is applicable for given storage type.It can be empty if it is not applicable.
  7. MinimumIops
  8. Minimum amount of Iops that is applicable for given storage type.It can be empty if it is not applicable.
  9. MaximumThroughput
  10. Maximum amount of Throughput that is applicable for given storage type.It can be empty if it is not applicable.
  11. MinimumThroughput
  12. Minimum amount of Throughput that is applicable for given storage type.It can be empty if it is not applicable.

" }, "LimitValues":{ "shape":"LimitValueList", @@ -4108,6 +4554,35 @@ "documentation":"

Container for response returned by UpdatePackage operation.

" }, "UpdateTimestamp":{"type":"timestamp"}, + "UpdateVpcEndpointRequest":{ + "type":"structure", + "required":[ + "VpcEndpointId", + "VpcOptions" + ], + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

Unique identifier of the VPC endpoint to be updated.

" + }, + "VpcOptions":{ + "shape":"VPCOptions", + "documentation":"

The security groups and/or subnets to add, remove, or modify.

" + } + }, + "documentation":"

Modifies an Amazon OpenSearch Service-managed interface VPC endpoint.

" + }, + "UpdateVpcEndpointResponse":{ + "type":"structure", + "required":["VpcEndpoint"], + "members":{ + "VpcEndpoint":{ + "shape":"VpcEndpoint", + "documentation":"

The endpoint to be updated.

" + } + }, + "documentation":"

Contains the configuration and status of the VPC endpoint being updated.

" + }, "UpgradeElasticsearchDomainRequest":{ "type":"structure", "required":[ @@ -4293,13 +4768,127 @@ }, "VolumeType":{ "type":"string", - "documentation":"

The type of EBS volume, standard, gp2, or io1. See Configuring EBS-based Storagefor more information.

", + "documentation":"

The type of EBS volume, standard, gp2, gp3 or io1. See Configuring EBS-based Storagefor more information.

", "enum":[ "standard", "gp2", - "io1" + "io1", + "gp3" ] }, + "VpcEndpoint":{ + "type":"structure", + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "VpcEndpointOwner":{ + "shape":"AWSAccount", + "documentation":"

The creator of the endpoint.

" + }, + "DomainArn":{ + "shape":"DomainArn", + "documentation":"

The Amazon Resource Name (ARN) of the domain associated with the endpoint.

" + }, + "VpcOptions":{ + "shape":"VPCDerivedInfo", + "documentation":"

Options to specify the subnets and security groups for an Amazon OpenSearch Service VPC endpoint.

" + }, + "Status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status of the endpoint.

" + }, + "Endpoint":{ + "shape":"Endpoint", + "documentation":"

The connection endpoint ID for connecting to the domain.

" + } + }, + "documentation":"

The connection endpoint for connecting to an Amazon OpenSearch Service domain through a proxy.

" + }, + "VpcEndpointError":{ + "type":"structure", + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "ErrorCode":{ + "shape":"VpcEndpointErrorCode", + "documentation":"

The code associated with the error.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

A message describing the error.

" + } + }, + "documentation":"

Error information when attempting to describe an Amazon OpenSearch Service-managed VPC endpoint.

" + }, + "VpcEndpointErrorCode":{ + "type":"string", + "documentation":"

Specifies the error code of the failure encountered while describing the VPC endpoint:

  • ENDPOINT_NOT_FOUND: Indicates that the requested VPC endpoint does not exist.
  • SERVER_ERROR: Indicates the describe endpoint operation failed due to an internal server error.

", + "enum":[ + "ENDPOINT_NOT_FOUND", + "SERVER_ERROR" + ] + }, + "VpcEndpointErrorList":{ + "type":"list", + "member":{"shape":"VpcEndpointError"} + }, + "VpcEndpointId":{ + "type":"string", + "max":256, + "min":5, + "pattern":"^aos-[a-zA-Z0-9]*$" + }, + "VpcEndpointIdList":{ + "type":"list", + "member":{"shape":"VpcEndpointId"} + }, + "VpcEndpointStatus":{ + "type":"string", + "documentation":"

Specifies the current status of the VPC endpoint:

  • CREATING: Indicates that the VPC endpoint is currently being created.
  • CREATE_FAILED: Indicates that the VPC endpoint creation failed.
  • ACTIVE: Indicates that the VPC endpoint is currently active.
  • UPDATING: Indicates that the VPC endpoint is currently being updated.
  • UPDATE_FAILED: Indicates that the VPC endpoint update failed.
  • DELETING: Indicates that the VPC endpoint is currently being deleted.
  • DELETE_FAILED: Indicates that the VPC endpoint deletion failed.

", + "enum":[ + "CREATING", + "CREATE_FAILED", + "ACTIVE", + "UPDATING", + "UPDATE_FAILED", + "DELETING", + "DELETE_FAILED" + ] + }, + "VpcEndpointSummary":{ + "type":"structure", + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "VpcEndpointOwner":{ + "shape":"String", + "documentation":"

The creator of the endpoint.

" + }, + "DomainArn":{ + "shape":"DomainArn", + "documentation":"

The Amazon Resource Name (ARN) of the domain associated with the endpoint.

" + }, + "Status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status of the endpoint.

" + } + }, + "documentation":"

Summary information for an Amazon OpenSearch Service-managed VPC endpoint.

" + }, + "VpcEndpointSummaryList":{ + "type":"list", + "member":{"shape":"VpcEndpointSummary"} + }, + "VpcEndpoints":{ + "type":"list", + "member":{"shape":"VpcEndpoint"} + }, "ZoneAwarenessConfig":{ "type":"structure", "members":{ diff --git a/botocore/data/events/2014-02-03/endpoint-rule-set-1.json b/botocore/data/events/2014-02-03/endpoint-rule-set-1.json new file mode 100644 index 00000000..0e1700ad --- /dev/null +++ b/botocore/data/events/2014-02-03/endpoint-rule-set-1.json @@ -0,0 +1,538 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "EndpointId": { + "required": false, + "documentation": "Operation parameter for EndpointId", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "EndpointId" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "EndpointId" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "events" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "events" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "events" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "EndpointId must be a valid host label.", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://events-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/events/2015-10-07/endpoint-rule-set-1.json b/botocore/data/events/2015-10-07/endpoint-rule-set-1.json new file mode 100644 index 00000000..0e1700ad --- /dev/null +++ b/botocore/data/events/2015-10-07/endpoint-rule-set-1.json @@ -0,0 +1,538 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "EndpointId": { + "required": false, + "documentation": "Operation parameter for EndpointId", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "EndpointId" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "EndpointId" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "events" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "events" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "events" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "EndpointId must be a valid host label.", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://events-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/events/2015-10-07/service-2.json b/botocore/data/events/2015-10-07/service-2.json index 8a317ef7..5cff78a5 100644 --- a/botocore/data/events/2015-10-07/service-2.json +++ b/botocore/data/events/2015-10-07/service-2.json @@ -3628,7 +3628,8 @@ }, "EndpointId":{ "shape":"EndpointId", - "documentation":"

The URL subdomain of the endpoint. For example, if the URL for Endpoint is abcde.veo.endpoints.event.amazonaws.com, then the EndpointId is abcde.veo.

When using Java, you must include auth-crt on the class path.

" + "documentation":"

The URL subdomain of the endpoint. For example, if the URL for Endpoint is abcde.veo.endpoints.event.amazonaws.com, then the EndpointId is abcde.veo.

When using Java, you must include auth-crt on the class path.

", + "contextParam":{"name":"EndpointId"} } } }, diff --git a/botocore/data/evidently/2021-02-01/endpoint-rule-set-1.json b/botocore/data/evidently/2021-02-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..944d4b76 --- /dev/null +++ b/botocore/data/evidently/2021-02-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://evidently-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://evidently-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://evidently.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://evidently.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/evidently/2021-02-01/examples-1.json b/botocore/data/evidently/2021-02-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/evidently/2021-02-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/evidently/2021-02-01/paginators-1.json b/botocore/data/evidently/2021-02-01/paginators-1.json index 4bc764c4..c72d3cba 100644 --- a/botocore/data/evidently/2021-02-01/paginators-1.json +++ b/botocore/data/evidently/2021-02-01/paginators-1.json @@ -23,6 +23,18 @@ "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/botocore/data/evidently/2021-02-01/service-2.json b/botocore/data/evidently/2021-02-01/service-2.json index a4b1e92e..fcca8f2a 100644 --- a/botocore/data/evidently/2021-02-01/service-2.json +++ b/botocore/data/evidently/2021-02-01/service-2.json @@ -46,7 +46,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Creates an Evidently experiment. Before you create an experiment, you must create the feature to use for the experiment.

An experiment helps you make feature design decisions based on evidence and data. An experiment can test as many as five variations at once. Evidently collects experiment data and analyzes it by statistical methods, and provides clear recommendations about which variations perform better.

Don't use this operation to update an existing experiment. Instead, use UpdateExperiment.

", + "documentation":"

Creates an Evidently experiment. Before you create an experiment, you must create the feature to use for the experiment.

An experiment helps you make feature design decisions based on evidence and data. An experiment can test as many as five variations at once. Evidently collects experiment data and analyzes it by statistical methods, and provides clear recommendations about which variations perform better.

You can optionally specify a segment to have the experiment consider only certain audience types in the experiment, such as using only user sessions from a certain location or who use a certain internet browser.

Don't use this operation to update an existing experiment. Instead, use UpdateExperiment.

", "idempotent":true }, "CreateFeature":{ @@ -102,6 +102,23 @@ ], "documentation":"

Creates a project, which is the logical object in Evidently that can contain features, launches, and experiments. Use projects to group similar features together.

To update an existing project, use UpdateProject.

" }, + "CreateSegment":{ + "name":"CreateSegment", + "http":{ + "method":"POST", + "requestUri":"/segments", + "responseCode":200 + }, + "input":{"shape":"CreateSegmentRequest"}, + "output":{"shape":"CreateSegmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Use this operation to define a segment of your audience. A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.

Using a segment in an experiment limits that experiment to evaluate only the users who match the segment criteria. Using one or more segments in a launch allows you to define different traffic splits for the different audience segments.

 <p>For more information about segment pattern syntax, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html#CloudWatch-Evidently-segments-syntax.html"> Segment rule pattern syntax</a>.</p> <p>The pattern that you define for a segment is matched against the value of <code>evaluationContext</code>, which is passed into Evidently in the <a href="https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_EvaluateFeature.html">EvaluateFeature</a> operation, when Evidently assigns a feature variation to a user.</p> 
" + }, "DeleteExperiment":{ "name":"DeleteExperiment", "http":{ @@ -179,6 +196,25 @@ "documentation":"

Deletes an Evidently project. Before you can delete a project, you must delete all the features that the project contains. To delete a feature, use DeleteFeature.

", "idempotent":true }, + "DeleteSegment":{ + "name":"DeleteSegment", + "http":{ + "method":"DELETE", + "requestUri":"/segments/{segment}", + "responseCode":200 + }, + "input":{"shape":"DeleteSegmentRequest"}, + "output":{"shape":"DeleteSegmentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a segment. You can't delete a segment that is being used in a launch or experiment, even if that launch or experiment is not currently running.

", + "idempotent":true + }, "EvaluateFeature":{ "name":"EvaluateFeature", "http":{ @@ -194,7 +230,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

This operation assigns a feature variation to one given user session. You pass in an entityID that represents the user. Evidently then checks the evaluation rules and assigns the variation.

The first rules that are evaluated are the override rules. If the user's entityID matches an override rule, the user is served the variation specified by that rule.

Next, if there is a launch of the feature, the user might be assigned to a variation in the launch. The chance of this depends on the percentage of users that are allocated to that launch. If the user is enrolled in the launch, the variation they are served depends on the allocation of the various feature variations used for the launch.

If the user is not assigned to a launch, and there is an ongoing experiment for this feature, the user might be assigned to a variation in the experiment. The chance of this depends on the percentage of users that are allocated to that experiment. If the user is enrolled in the experiment, the variation they are served depends on the allocation of the various feature variations used for the experiment.

If the user is not assigned to a launch or experiment, they are served the default variation.

", + "documentation":"

This operation assigns a feature variation to one given user session. You pass in an entityID that represents the user. Evidently then checks the evaluation rules and assigns the variation.

The first rules that are evaluated are the override rules. If the user's entityID matches an override rule, the user is served the variation specified by that rule.

 <p>If there is a current launch with this feature that uses segment overrides, and if the user session's <code>evaluationContext</code> matches a segment rule defined in a segment override, the configuration in the segment overrides is used. For more information about segments, see <a href="https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_CreateSegment.html">CreateSegment</a> and <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html">Use segments to focus your audience</a>.</p> <p>If there is a launch with no segment overrides, the user might be assigned to a variation in the launch. The chance of this depends on the percentage of users that are allocated to that launch. If the user is enrolled in the launch, the variation they are served depends on the allocation of the various feature variations used for the launch.</p> <p>If the user is not assigned to a launch, and there is an ongoing experiment for this feature, the user might be assigned to a variation in the experiment. The chance of this depends on the percentage of users that are allocated to that experiment.</p> <p>If the experiment uses a segment, then only user sessions with <code>evaluationContext</code> values that match the segment rule are used in the experiment.</p> <p>If the user is enrolled in the experiment, the variation they are served depends on the allocation of the various feature variations used for the experiment. </p> <p>If the user is not assigned to a launch or experiment, they are served the default variation.</p> 
", "endpoint":{"hostPrefix":"dataplane."} }, "GetExperiment":{ @@ -230,7 +266,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Retrieves the results of a running or completed experiment. No results are available until there have been 100 events for each variation and at least 10 minutes have passed since the start of the experiment.

Experiment results are available up to 63 days after the start of the experiment. They are not available after that because of CloudWatch data retention policies.

" + "documentation":"

Retrieves the results of a running or completed experiment. No results are available until there have been 100 events for each variation and at least 10 minutes have passed since the start of the experiment. To increase the statistical power, Evidently performs an additional offline p-value analysis at the end of the experiment. Offline p-value analysis can detect statistical significance in some cases where the anytime p-values used during the experiment do not find statistical significance.

Experiment results are available up to 63 days after the start of the experiment. They are not available after that because of CloudWatch data retention policies.

" }, "GetFeature":{ "name":"GetFeature", @@ -283,6 +319,23 @@ ], "documentation":"

Returns the details about one launch. You must already know the project name. To retrieve a list of projects in your account, use ListProjects.

" }, + "GetSegment":{ + "name":"GetSegment", + "http":{ + "method":"GET", + "requestUri":"/segments/{segment}", + "responseCode":200 + }, + "input":{"shape":"GetSegmentRequest"}, + "output":{"shape":"GetSegmentResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns information about the specified segment. Specify the segment you want to view by specifying its ARN.

" + }, "ListExperiments":{ "name":"ListExperiments", "http":{ @@ -348,6 +401,39 @@ ], "documentation":"

Returns configuration details about all the projects in the current Region in your account.

" }, + "ListSegmentReferences":{ + "name":"ListSegmentReferences", + "http":{ + "method":"GET", + "requestUri":"/segments/{segment}/references", + "responseCode":200 + }, + "input":{"shape":"ListSegmentReferencesRequest"}, + "output":{"shape":"ListSegmentReferencesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Use this operation to find which experiments or launches are using a specified segment.

" + }, + "ListSegments":{ + "name":"ListSegments", + "http":{ + "method":"GET", + "requestUri":"/segments", + "responseCode":200 + }, + "input":{"shape":"ListSegmentsRequest"}, + "output":{"shape":"ListSegmentsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns a list of audience segments that you have created in your account in this Region.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -473,6 +559,22 @@ "documentation":"

Assigns one or more tags (key-value pairs) to the specified CloudWatch Evidently resource. Projects, features, launches, and experiments can be tagged.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a resource that already has tags. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a resource.

For more information, see Tagging Amazon Web Services resources.

", "idempotent":true }, + "TestSegmentPattern":{ + "name":"TestSegmentPattern", + "http":{ + "method":"POST", + "requestUri":"/test-segment-pattern", + "responseCode":200 + }, + "input":{"shape":"TestSegmentPatternRequest"}, + "output":{"shape":"TestSegmentPatternResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Use this operation to test a rules pattern that you plan to use to create an audience segment. For more information about segments, see CreateSegment.

" + }, "UntagResource":{ "name":"UntagResource", "http":{ @@ -553,6 +655,7 @@ "output":{"shape":"UpdateProjectResponse"}, "errors":[ {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"ServiceQuotaExceededException"}, {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} @@ -591,6 +694,10 @@ }, "exception":true }, + "AppConfigResourceId":{ + "type":"string", + "pattern":"[a-z0-9]{4,7}" + }, "Arn":{ "type":"string", "max":2048, @@ -716,6 +823,10 @@ "documentation":"

The portion of the available audience that you want to allocate to this experiment, in thousandths of a percent. The available audience is the total audience minus the audience that you have allocated to overrides or current launches of this feature.

This is represented in thousandths of a percent. For example, specify 10,000 to allocate 10% of the available audience.

", "box":true }, + "segment":{ + "shape":"SegmentRef", + "documentation":"

Specifies an audience segment to use in the experiment. When a segment is used in an experiment, only user sessions that match the segment pattern are used in the experiment.

" + }, "tags":{ "shape":"TagMap", "documentation":"

Assigns one or more tags (key-value pairs) to the experiment.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

 <p>You can associate as many as 50 tags with an experiment.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a>.</p> 
" @@ -821,7 +932,7 @@ }, "randomizationSalt":{ "shape":"RandomizationSalt", - "documentation":"

When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and randomizationSalt. If you omit randomizationSalt, Evidently uses the launch name as the randomizationsSalt.

" + "documentation":"

When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and randomizationSalt. If you omit randomizationSalt, Evidently uses the launch name as the randomizationSalt.

" }, "scheduledSplitsConfig":{ "shape":"ScheduledSplitsLaunchConfig", @@ -847,6 +958,10 @@ "type":"structure", "required":["name"], "members":{ + "appConfigResource":{ + "shape":"ProjectAppConfigResourceConfig", + "documentation":"

Use this parameter if the project will use client-side evaluation powered by AppConfig. Client-side evaluation allows your application to assign variations to user sessions locally instead of by calling the EvaluateFeature operation. This mitigates the latency and availability risks that come with an API call. For more information, see Client-side evaluation - powered by AppConfig.

This parameter is a structure that contains information about the AppConfig application and environment that will be used as for client-side evaluation.

To create a project that uses client-side evaluation, you must have the evidently:ExportProjectAsConfiguration permission.

" + }, "dataDelivery":{ "shape":"ProjectDataDeliveryConfig", "documentation":"

A structure that contains information about where Evidently is to store evaluation events for longer term storage, if you choose to do so. If you choose not to store these events, Evidently deletes them after using them to produce metrics and other experiment results that you can view.

" @@ -875,6 +990,42 @@ } } }, + "CreateSegmentRequest":{ + "type":"structure", + "required":[ + "name", + "pattern" + ], + "members":{ + "description":{ + "shape":"Description", + "documentation":"

An optional description for this segment.

" + }, + "name":{ + "shape":"SegmentName", + "documentation":"

A name for the segment.

" + }, + "pattern":{ + "shape":"SegmentPattern", + "documentation":"

The pattern to use for the segment. For more information about pattern syntax, see Segment rule pattern syntax.

", + "jsonvalue":true + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Assigns one or more tags (key-value pairs) to the segment.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

 <p>You can associate as many as 50 tags with a segment.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a>.</p> 
" + } + } + }, + "CreateSegmentResponse":{ + "type":"structure", + "required":["segment"], + "members":{ + "segment":{ + "shape":"Segment", + "documentation":"

A structure that contains the complete information about the segment that was just created.

" + } + } + }, "CwDimensionSafeName":{ "type":"string", "max":255, @@ -982,6 +1133,23 @@ "members":{ } }, + "DeleteSegmentRequest":{ + "type":"structure", + "required":["segment"], + "members":{ + "segment":{ + "shape":"SegmentRef", + "documentation":"

Specifies the segment to delete.

", + "location":"uri", + "locationName":"segment" + } + } + }, + "DeleteSegmentResponse":{ + "type":"structure", + "members":{ + } + }, "Description":{ "type":"string", "max":160, @@ -1037,7 +1205,7 @@ }, "evaluationContext":{ "shape":"JsonValue", - "documentation":"

A JSON block of attributes that you can optionally pass in. This JSON block is included in the evaluation events sent to Evidently from the user session.

", + "documentation":"

A JSON object of attributes that you can optionally pass in as part of the evaluation event sent to Evidently from the user session. Evidently can use this value to match user sessions with defined audience segments. For more information, see Use segments to focus your audience.

 <p>If you include this parameter, the value must be a JSON object. A JSON array is not supported.</p> 
", "jsonvalue":true }, "feature":{ @@ -1263,6 +1431,10 @@ "shape":"ExperimentSchedule", "documentation":"

A structure that contains the time and date that Evidently completed the analysis of the experiment.

" }, + "segment":{ + "shape":"SegmentArn", + "documentation":"

The audience segment being used for the experiment, if a segment is being used.

" + }, "status":{ "shape":"ExperimentStatus", "documentation":"

The current state of the experiment.

" @@ -1793,6 +1965,28 @@ } } }, + "GetSegmentRequest":{ + "type":"structure", + "required":["segment"], + "members":{ + "segment":{ + "shape":"SegmentRef", + "documentation":"

The ARN of the segment to return information for.

", + "location":"uri", + "locationName":"segment" + } + } + }, + "GetSegmentResponse":{ + "type":"structure", + "required":["segment"], + "members":{ + "segment":{ + "shape":"Segment", + "documentation":"

A structure that contains the complete information about the segment.

" + } + } + }, "GroupName":{ "type":"string", "max":127, @@ -2164,6 +2358,82 @@ } } }, + "ListSegmentReferencesRequest":{ + "type":"structure", + "required":[ + "segment", + "type" + ], + "members":{ + "maxResults":{ + "shape":"MaxReferences", + "documentation":"

The maximum number of results to include in the response. If you omit this, the default of 50 is used.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token to use when requesting the next set of results. You received this token from a previous ListSegmentReferences operation.

", + "location":"querystring", + "locationName":"nextToken" + }, + "segment":{ + "shape":"SegmentRef", + "documentation":"

The ARN of the segment that you want to view information for.

", + "location":"uri", + "locationName":"segment" + }, + "type":{ + "shape":"SegmentReferenceResourceType", + "documentation":"

Specifies whether to return information about launches or experiments that use this segment.

", + "location":"querystring", + "locationName":"type" + } + } + }, + "ListSegmentReferencesResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token to use in a subsequent ListSegmentReferences operation to return the next set of results.

" + }, + "referencedBy":{ + "shape":"RefResourceList", + "documentation":"

An array of structures, where each structure contains information about one experiment or launch that uses this segment.

" + } + } + }, + "ListSegmentsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxSegments", + "documentation":"

The maximum number of results to include in the response. If you omit this, the default of 50 is used.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token to use when requesting the next set of results. You received this token from a previous ListSegments operation.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListSegmentsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token to use in a subsequent ListSegments operation to return the next set of results.

" + }, + "segments":{ + "shape":"SegmentList", + "documentation":"

An array of structures that contain information about the segments in this Region.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["resourceArn"], @@ -2213,6 +2483,18 @@ "max":50, "min":1 }, + "MaxReferences":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "MaxSegments":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, "MetricDefinition":{ "type":"structure", "members":{ @@ -2399,6 +2681,7 @@ }, "documentation":"

A structure that contains the configuration of which variation to use as the \"control\" version. The \"control\" version is used for comparison with other variations. This structure also specifies how much experiment traffic is allocated to each variation.

" }, + "PrimitiveBoolean":{"type":"boolean"}, "Project":{ "type":"structure", "required":[ @@ -2417,6 +2700,10 @@ "shape":"Long", "documentation":"

The number of ongoing launches currently in the project.

" }, + "appConfigResource":{ + "shape":"ProjectAppConfigResource", + "documentation":"

This structure defines the configuration of how your application integrates with AppConfig to run client-side evaluation.

" + }, "arn":{ "shape":"ProjectArn", "documentation":"

The name or ARN of the project.

" @@ -2464,6 +2751,43 @@ }, "documentation":"

This structure defines a project, which is the logical object in Evidently that can contain features, launches, and experiments. Use projects to group similar features together.

" }, + "ProjectAppConfigResource":{ + "type":"structure", + "required":[ + "applicationId", + "configurationProfileId", + "environmentId" + ], + "members":{ + "applicationId":{ + "shape":"AppConfigResourceId", + "documentation":"

The ID of the AppConfig application to use for client-side evaluation.

" + }, + "configurationProfileId":{ + "shape":"AppConfigResourceId", + "documentation":"

The ID of the AppConfig profile to use for client-side evaluation.

" + }, + "environmentId":{ + "shape":"AppConfigResourceId", + "documentation":"

The ID of the AppConfig environment to use for client-side evaluation. This must be an environment that is within the application that you specify for applicationId.

" + } + }, + "documentation":"

This is a structure that defines the configuration of how your application integrates with AppConfig to run client-side evaluation.

" + }, + "ProjectAppConfigResourceConfig":{ + "type":"structure", + "members":{ + "applicationId":{ + "shape":"AppConfigResourceId", + "documentation":"

The ID of the AppConfig application to use for client-side evaluation.

" + }, + "environmentId":{ + "shape":"AppConfigResourceId", + "documentation":"

The ID of the AppConfig environment to use for client-side evaluation. This must be an environment that is within the application that you specify for applicationId.

" + } + }, + "documentation":"

Use this parameter to configure client-side evaluation for your project. Client-side evaluation allows your application to assign variations to user sessions locally instead of by calling the EvaluateFeature operation to assign the variations. This mitigates the latency and availability risks that come with an API call.

ProjectAppConfigResource is a structure that defines the configuration of how your application integrates with AppConfig to run client-side evaluation.

" + }, "ProjectArn":{ "type":"string", "max":2048, @@ -2508,7 +2832,7 @@ "type":"string", "max":2048, "min":0, - "pattern":"([-a-zA-Z0-9._]*)|(arn:[^:]*:[^:]*:[^:]*:[^:]*:project/[-a-zA-Z0-9._]*)" + "pattern":"(^[a-zA-Z0-9._-]*$)|(arn:[^:]*:[^:]*:[^:]*:[^:]*:project/[a-zA-Z0-9._-]*)" }, "ProjectStatus":{ "type":"string", @@ -2642,6 +2966,48 @@ "min":0, "pattern":".*" }, + "RefResource":{ + "type":"structure", + "required":[ + "name", + "type" + ], + "members":{ + "arn":{ + "shape":"String", + "documentation":"

The ARN of the experiment or launch.

" + }, + "endTime":{ + "shape":"String", + "documentation":"

The day and time that this experiment or launch ended.

" + }, + "lastUpdatedOn":{ + "shape":"String", + "documentation":"

The day and time that this experiment or launch was most recently updated.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the experiment or launch.

" + }, + "startTime":{ + "shape":"String", + "documentation":"

The day and time that this experiment or launch started.

" + }, + "status":{ + "shape":"String", + "documentation":"

The status of the experiment or launch.

" + }, + "type":{ + "shape":"String", + "documentation":"

Specifies whether the resource that this structure contains information about is an experiment or a launch.

" + } + }, + "documentation":"

A structure that contains information about one experiment or launch that uses the specified segment.

" + }, + "RefResourceList":{ + "type":"list", + "member":{"shape":"RefResource"} + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -2723,7 +3089,11 @@ "members":{ "groupWeights":{ "shape":"GroupToWeightMap", - "documentation":"

The traffic allocation percentages among the feature variations during one step of a launch. This is a set of key-value pairs. The keys are variation names. The values represent the percentage of traffic to allocate to that variation during this step.

" + "documentation":"

The traffic allocation percentages among the feature variations during one step of a launch. This is a set of key-value pairs. The keys are variation names. The values represent the percentage of traffic to allocate to that variation during this step.

The values is expressed in thousandths of a percent, so assigning a weight of 50000 assigns 50% of traffic to that variation.

If the sum of the weights for all the variations in a segment override does not add up to 100,000, then the remaining traffic that matches this segment is not assigned by this segment override, and instead moves on to the next segment override or the default traffic split.

" + }, + "segmentOverrides":{ + "shape":"SegmentOverridesList", + "documentation":"

Use this parameter to specify different traffic splits for one or more audience segments. A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.

This parameter is an array of up to six segment override objects. Each of these objects specifies a segment that you have already created, and defines the traffic split for that segment.

" }, "startTime":{ "shape":"Timestamp", @@ -2741,7 +3111,11 @@ "members":{ "groupWeights":{ "shape":"GroupToWeightMap", - "documentation":"

The traffic allocation percentages among the feature variations during one step of a launch. This is a set of key-value pairs. The keys are variation names. The values represent the percentage of traffic to allocate to that variation during this step.

" + "documentation":"

The traffic allocation percentages among the feature variations during one step of a launch. This is a set of key-value pairs. The keys are variation names. The values represent the percentage of traffic to allocate to that variation during this step.

 <p>The values is expressed in thousandths of a percent, so assigning a weight of 50000 assigns 50% of traffic to that variation.</p> <p>If the sum of the weights for all the variations in a segment override does not add up to 100,000, then the remaining traffic that matches this segment is not assigned by this segment override, and instead moves on to the next segment override or the default traffic split.</p> 
" + }, + "segmentOverrides":{ + "shape":"SegmentOverridesList", + "documentation":"

Use this parameter to specify different traffic splits for one or more audience segments. A segment is a portion of your audience that share one or more characteristics. Examples could be Chrome browser users, users in Europe, or Firefox browser users in Europe who also fit other criteria that your application collects, such as age.

This parameter is an array of up to six segment override objects. Each of these objects specifies a segment that you have already created, and defines the traffic split for that segment.

" }, "startTime":{ "shape":"Timestamp", @@ -2783,6 +3157,119 @@ "max":6, "min":1 }, + "Segment":{ + "type":"structure", + "required":[ + "arn", + "createdTime", + "lastUpdatedTime", + "name", + "pattern" + ], + "members":{ + "arn":{ + "shape":"SegmentArn", + "documentation":"

The ARN of the segment.

" + }, + "createdTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that this segment was created.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The customer-created description for this segment.

" + }, + "experimentCount":{ + "shape":"Long", + "documentation":"

The number of experiments that this segment is used in. This count includes all current experiments, not just those that are currently running.

" + }, + "lastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that this segment was most recently updated.

" + }, + "launchCount":{ + "shape":"Long", + "documentation":"

The number of launches that this segment is used in. This count includes all current launches, not just those that are currently running.

" + }, + "name":{ + "shape":"SegmentName", + "documentation":"

The name of the segment.

" + }, + "pattern":{ + "shape":"SegmentPattern", + "documentation":"

The pattern that defines the attributes to use to evalute whether a user session will be in the segment. For more information about the pattern syntax, see Segment rule pattern syntax.

", + "jsonvalue":true + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The list of tag keys and values associated with this launch.

" + } + }, + "documentation":"

This structure contains information about one audience segment. You can use segments in your experiments and launches to narrow the user sessions used for experiment or launch to only the user sessions that match one or more criteria.

" + }, + "SegmentArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:segment/[-a-zA-Z0-9._]*" + }, + "SegmentList":{ + "type":"list", + "member":{"shape":"Segment"} + }, + "SegmentName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[-a-zA-Z0-9._]*$" + }, + "SegmentOverride":{ + "type":"structure", + "required":[ + "evaluationOrder", + "segment", + "weights" + ], + "members":{ + "evaluationOrder":{ + "shape":"Long", + "documentation":"

A number indicating the order to use to evaluate segment overrides, if there are more than one. Segment overrides with lower numbers are evaluated first.

" + }, + "segment":{ + "shape":"SegmentRef", + "documentation":"

The ARN of the segment to use.

" + }, + "weights":{ + "shape":"GroupToWeightMap", + "documentation":"

The traffic allocation percentages among the feature variations to assign to this segment. This is a set of key-value pairs. The keys are variation names. The values represent the amount of traffic to allocate to that variation for this segment. This is expressed in thousandths of a percent, so a weight of 50000 represents 50% of traffic.

" + } + }, + "documentation":"

This structure specifies a segment that you have already created, and defines the traffic split for that segment to be used in a launch.

" + }, + "SegmentOverridesList":{ + "type":"list", + "member":{"shape":"SegmentOverride"}, + "max":6, + "min":0 + }, + "SegmentPattern":{ + "type":"string", + "max":1024, + "min":1 + }, + "SegmentRef":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"(^[-a-zA-Z0-9._]*$)|(arn:[^:]*:[^:]*:[^:]*:[^:]*:segment/[-a-zA-Z0-9._]*)" + }, + "SegmentReferenceResourceType":{ + "type":"string", + "enum":[ + "EXPERIMENT", + "LAUNCH" + ] + }, "ServiceQuotaExceededException":{ "type":"structure", "members":{ @@ -3015,6 +3502,35 @@ "max":256, "min":0 }, + "TestSegmentPatternRequest":{ + "type":"structure", + "required":[ + "pattern", + "payload" + ], + "members":{ + "pattern":{ + "shape":"SegmentPattern", + "documentation":"

The pattern to test.

", + "jsonvalue":true + }, + "payload":{ + "shape":"JsonValue", + "documentation":"

A sample evaluationContext JSON block to test against the specified pattern.

", + "jsonvalue":true + } + } + }, + "TestSegmentPatternResponse":{ + "type":"structure", + "required":["match"], + "members":{ + "match":{ + "shape":"Boolean", + "documentation":"

Returns true if the pattern matches the payload.

" + } + } + }, "ThrottlingException":{ "type":"structure", "members":{ @@ -3178,11 +3694,19 @@ "shape":"RandomizationSalt", "documentation":"

When Evidently assigns a particular user session to an experiment, it must use a randomization ID to determine which variation the user session is served. This randomization ID is a combination of the entity ID and randomizationSalt. If you omit randomizationSalt, Evidently uses the experiment name as the randomizationSalt.

" }, + "removeSegment":{ + "shape":"PrimitiveBoolean", + "documentation":"

Removes a segment from being used in an experiment. You can't use this parameter if the experiment is currently running.

" + }, "samplingRate":{ "shape":"SplitWeight", "documentation":"

The portion of the available audience that you want to allocate to this experiment, in thousandths of a percent. The available audience is the total audience minus the audience that you have allocated to overrides or current launches of this feature.

This is represented in thousandths of a percent. For example, specify 20,000 to allocate 20% of the available audience.

", "box":true }, + "segment":{ + "shape":"SegmentRef", + "documentation":"

Adds an audience segment to an experiment. When a segment is used in an experiment, only user sessions that match the segment pattern are used in the experiment. You can't use this parameter if the experiment is currently running.

" + }, "treatments":{ "shape":"TreatmentConfigList", "documentation":"

An array of structures that define the variations being tested in the experiment.

" @@ -3339,6 +3863,10 @@ "type":"structure", "required":["project"], "members":{ + "appConfigResource":{ + "shape":"ProjectAppConfigResourceConfig", + "documentation":"

Use this parameter if the project will use client-side evaluation powered by AppConfig. Client-side evaluation allows your application to assign variations to user sessions locally instead of by calling the EvaluateFeature operation. This mitigates the latency and availability risks that come with an API call. allows you to

This parameter is a structure that contains information about the AppConfig application that will be used for client-side evaluation.

" + }, "description":{ "shape":"Description", "documentation":"

An optional description of the project.

" diff --git a/botocore/data/finspace-data/2020-07-13/endpoint-rule-set-1.json b/botocore/data/finspace-data/2020-07-13/endpoint-rule-set-1.json new file mode 100644 index 00000000..56ad009e --- /dev/null +++ b/botocore/data/finspace-data/2020-07-13/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://finspace-api-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://finspace-api-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://finspace-api.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://finspace-api.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/finspace-data/2020-07-13/examples-1.json b/botocore/data/finspace-data/2020-07-13/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/finspace-data/2020-07-13/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/finspace-data/2020-07-13/service-2.json b/botocore/data/finspace-data/2020-07-13/service-2.json index 9d531a03..e537e586 100644 --- a/botocore/data/finspace-data/2020-07-13/service-2.json +++ b/botocore/data/finspace-data/2020-07-13/service-2.json @@ -13,6 +13,24 @@ "uid":"finspace-2020-07-13" }, "operations":{ + "AssociateUserToPermissionGroup":{ + "name":"AssociateUserToPermissionGroup", + "http":{ + "method":"POST", + "requestUri":"/permission-group/{permissionGroupId}/users/{userId}" + }, + "input":{"shape":"AssociateUserToPermissionGroupRequest"}, + "output":{"shape":"AssociateUserToPermissionGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Adds a user account to a permission group to grant permissions for actions a user can perform in FinSpace.

" + }, "CreateChangeset":{ "name":"CreateChangeset", "http":{ @@ -161,6 +179,24 @@ ], "documentation":"

Denies access to the FinSpace web application and API for the specified user.

" }, + "DisassociateUserFromPermissionGroup":{ + "name":"DisassociateUserFromPermissionGroup", + "http":{ + "method":"DELETE", + "requestUri":"/permission-group/{permissionGroupId}/users/{userId}" + }, + "input":{"shape":"DisassociateUserFromPermissionGroupRequest"}, + "output":{"shape":"DisassociateUserFromPermissionGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Removes a user account from a permission group.

" + }, "EnableUser":{ "name":"EnableUser", "http":{ @@ -233,6 +269,40 @@ ], "documentation":"

Returns information about a Dataset.

" }, + "GetExternalDataViewAccessDetails":{ + "name":"GetExternalDataViewAccessDetails", + "http":{ + "method":"POST", + "requestUri":"/datasets/{datasetId}/dataviewsv2/{dataviewId}/external-access-details" + }, + "input":{"shape":"GetExternalDataViewAccessDetailsRequest"}, + "output":{"shape":"GetExternalDataViewAccessDetailsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns the credentials to access the external Dataview from an S3 location. To call this API:

  • You must retrieve the programmatic credentials.

  • You must be a member of a FinSpace user group, where the dataset that you want to access has Read Dataset Data permissions.

" + }, + "GetPermissionGroup":{ + "name":"GetPermissionGroup", + "http":{ + "method":"GET", + "requestUri":"/permission-group/{permissionGroupId}" + }, + "input":{"shape":"GetPermissionGroupRequest"}, + "output":{"shape":"GetPermissionGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retrieves the details of a specific permission group.

" + }, "GetProgrammaticAccessCredentials":{ "name":"GetProgrammaticAccessCredentials", "http":{ @@ -350,6 +420,23 @@ ], "documentation":"

Lists all available permission groups in FinSpace.

" }, + "ListPermissionGroupsByUser":{ + "name":"ListPermissionGroupsByUser", + "http":{ + "method":"GET", + "requestUri":"/user/{userId}/permission-groups" + }, + "input":{"shape":"ListPermissionGroupsByUserRequest"}, + "output":{"shape":"ListPermissionGroupsByUserResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists all the permission groups that are associated with a specific user account.

" + }, "ListUsers":{ "name":"ListUsers", "http":{ @@ -366,6 +453,23 @@ ], "documentation":"

Lists all available user accounts in FinSpace.

" }, + "ListUsersByPermissionGroup":{ + "name":"ListUsersByPermissionGroup", + "http":{ + "method":"GET", + "requestUri":"/permission-group/{permissionGroupId}/users" + }, + "input":{"shape":"ListUsersByPermissionGroupRequest"}, + "output":{"shape":"ListUsersByPermissionGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists details of all the users in a specific permission group.

" + }, "ResetUserPassword":{ "name":"ResetUserPassword", "http":{ @@ -467,6 +571,12 @@ "error":{"httpStatusCode":403}, "exception":true }, + "AccessKeyId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\s\\S]*\\S[\\s\\S]*" + }, "AliasString":{ "type":"string", "max":255, @@ -496,6 +606,64 @@ "type":"list", "member":{"shape":"ApplicationPermission"} }, + "AssociateUserToPermissionGroupRequest":{ + "type":"structure", + "required":[ + "permissionGroupId", + "userId" + ], + "members":{ + "permissionGroupId":{ + "shape":"PermissionGroupId", + "documentation":"

The unique identifier for the permission group.

", + "location":"uri", + "locationName":"permissionGroupId" + }, + "userId":{ + "shape":"UserId", + "documentation":"

The unique identifier for the user.

", + "location":"uri", + "locationName":"userId" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A token that ensures idempotency. This token expires in 10 minutes.

", + "idempotencyToken":true + } + } + }, + "AssociateUserToPermissionGroupResponse":{ + "type":"structure", + "members":{ + "statusCode":{ + "shape":"StatusCode", + "documentation":"

The returned status code of the response.

", + "location":"statusCode" + } + } + }, + "AwsCredentials":{ + "type":"structure", + "members":{ + "accessKeyId":{ + "shape":"AccessKeyId", + "documentation":"

The unique identifier for the security credentials.

" + }, + "secretAccessKey":{ + "shape":"SecretAccessKey", + "documentation":"

The secret access key that can be used to sign requests.

" + }, + "sessionToken":{ + "shape":"SessionToken", + "documentation":"

The token that users must pass to use the credentials.

" + }, + "expiration":{ + "shape":"TimestampEpoch", + "documentation":"

The Epoch time when the current credentials expire.

" + } + }, + "documentation":"

The credentials required to access the external Dataview from the S3 location.

" + }, "Boolean":{ "type":"boolean", "documentation":"Common Boolean data type" @@ -645,7 +813,7 @@ "type":"string", "documentation":"Column Description", "max":512, - "pattern":"[\\s\\S]*\\S[\\s\\S]*" + "pattern":"[\\s\\S]*" }, "ColumnList":{ "type":"list", @@ -849,7 +1017,7 @@ }, "applicationPermissions":{ "shape":"ApplicationPermissionList", - "documentation":"

The option to indicate FinSpace application permissions that are granted to a specific group.

  • CreateDataset – Group members can create new datasets.

  • ManageClusters – Group members can manage Apache Spark clusters from FinSpace notebooks.

  • ManageUsersAndGroups – Group members can manage users and permission groups.

  • ManageAttributeSets – Group members can manage attribute sets.

  • ViewAuditData – Group members can view audit data.

  • AccessNotebooks – Group members will have access to FinSpace notebooks.

  • GetTemporaryCredentials – Group members can get temporary API credentials.

" + "documentation":"

The option to indicate FinSpace application permissions that are granted to a specific group.

When assigning application permissions, be aware that the permission ManageUsersAndGroups allows users to grant themselves or others access to any functionality in their FinSpace environment's application. It should only be granted to trusted users.

  • CreateDataset – Group members can create new datasets.

  • ManageClusters – Group members can manage Apache Spark clusters from FinSpace notebooks.

  • ManageUsersAndGroups – Group members can manage users and permission groups. This is a privileged permission that allows users to grant themselves or others access to any functionality in the application. It should only be granted to trusted users.

  • ManageAttributeSets – Group members can manage attribute sets.

  • ViewAuditData – Group members can view audit data.

  • AccessNotebooks – Group members will have access to FinSpace notebooks.

  • GetTemporaryCredentials – Group members can get temporary API credentials.

" }, "clientToken":{ "shape":"ClientToken", @@ -950,7 +1118,7 @@ }, "s3DestinationExportFileFormat":{ "shape":"ExportFileFormat", - "documentation":"

Data view export file format.

  • PARQUET – Parquet export file format.

  • DELIMITED_TEXT – Delimited text export file format.

" + "documentation":"

Dataview export file format.

  • PARQUET – Parquet export file format.

  • DELIMITED_TEXT – Delimited text export file format.

" }, "s3DestinationExportFileFormatOptions":{ "shape":"S3DestinationFormatOptions", @@ -1107,8 +1275,7 @@ "type":"string", "documentation":"Description of a dataset", "max":1000, - "min":1, - "pattern":"[\\s\\S]*\\S[\\s\\S]*" + "pattern":"[\\s\\S]*" }, "DatasetId":{ "type":"string", @@ -1248,6 +1415,44 @@ } } }, + "DisassociateUserFromPermissionGroupRequest":{ + "type":"structure", + "required":[ + "permissionGroupId", + "userId" + ], + "members":{ + "permissionGroupId":{ + "shape":"PermissionGroupId", + "documentation":"

The unique identifier for the permission group.

", + "location":"uri", + "locationName":"permissionGroupId" + }, + "userId":{ + "shape":"UserId", + "documentation":"

The unique identifier for the user.

", + "location":"uri", + "locationName":"userId" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A token that ensures idempotency. This token expires in 10 minutes.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + } + } + }, + "DisassociateUserFromPermissionGroupResponse":{ + "type":"structure", + "members":{ + "statusCode":{ + "shape":"StatusCode", + "documentation":"

The returned status code of the response.

", + "location":"statusCode" + } + } + }, "Email":{ "type":"string", "max":320, @@ -1539,6 +1744,58 @@ }, "documentation":"Response for the GetDataset operation" }, + "GetExternalDataViewAccessDetailsRequest":{ + "type":"structure", + "required":[ + "dataViewId", + "datasetId" + ], + "members":{ + "dataViewId":{ + "shape":"DataViewId", + "documentation":"

The unique identifier for the Dataview that you want to access.

", + "location":"uri", + "locationName":"dataviewId" + }, + "datasetId":{ + "shape":"DatasetId", + "documentation":"

The unique identifier for the Dataset.

", + "location":"uri", + "locationName":"datasetId" + } + } + }, + "GetExternalDataViewAccessDetailsResponse":{ + "type":"structure", + "members":{ + "credentials":{ + "shape":"AwsCredentials", + "documentation":"

The credentials required to access the external Dataview from the S3 location.

" + }, + "s3Location":{ + "shape":"S3Location", + "documentation":"

The location where the external Dataview is stored.

" + } + } + }, + "GetPermissionGroupRequest":{ + "type":"structure", + "required":["permissionGroupId"], + "members":{ + "permissionGroupId":{ + "shape":"PermissionGroupId", + "documentation":"

The unique identifier for the permission group.

", + "location":"uri", + "locationName":"permissionGroupId" + } + } + }, + "GetPermissionGroupResponse":{ + "type":"structure", + "members":{ + "permissionGroup":{"shape":"PermissionGroup"} + } + }, "GetProgrammaticAccessCredentialsRequest":{ "type":"structure", "required":["environmentId"], @@ -1609,7 +1866,7 @@ }, "type":{ "shape":"UserType", - "documentation":"

Indicates the type of user.

  • SUPER_USER – A user with permission to all the functionality and data in FinSpace.

  • APP_USER – A user with specific permissions in FinSpace. The users are assigned permissions by adding them to a permissions group.

" + "documentation":"

Indicates the type of user.

  • SUPER_USER – A user with permission to all the functionality and data in FinSpace.

  • APP_USER – A user with specific permissions in FinSpace. The users are assigned permissions by adding them to a permission group.

" }, "apiAccess":{ "shape":"ApiAccess", @@ -1820,6 +2077,46 @@ }, "documentation":"Response for the ListDatasets operation" }, + "ListPermissionGroupsByUserRequest":{ + "type":"structure", + "required":[ + "userId", + "maxResults" + ], + "members":{ + "userId":{ + "shape":"UserId", + "documentation":"

The unique identifier for the user.

", + "location":"uri", + "locationName":"userId" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

A token that indicates where a results page should begin.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"ResultLimit", + "documentation":"

The maximum number of results per page.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListPermissionGroupsByUserResponse":{ + "type":"structure", + "members":{ + "permissionGroups":{ + "shape":"PermissionGroupByUserList", + "documentation":"

A list of returned permission groups.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

A token that indicates where a results page should begin.

" + } + } + }, "ListPermissionGroupsRequest":{ "type":"structure", "required":["maxResults"], @@ -1851,6 +2148,46 @@ } } }, + "ListUsersByPermissionGroupRequest":{ + "type":"structure", + "required":[ + "permissionGroupId", + "maxResults" + ], + "members":{ + "permissionGroupId":{ + "shape":"PermissionGroupId", + "documentation":"

The unique identifier for the permission group.

", + "location":"uri", + "locationName":"permissionGroupId" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

A token that indicates where a results page should begin.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"ResultLimit", + "documentation":"

The maximum number of results per page.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListUsersByPermissionGroupResponse":{ + "type":"structure", + "members":{ + "users":{ + "shape":"UserByPermissionGroupList", + "documentation":"

Lists details of all users in a specific permission group.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

A token that indicates where a results page should begin.

" + } + } + }, "ListUsersRequest":{ "type":"structure", "required":["maxResults"], @@ -1889,10 +2226,7 @@ "min":1, "pattern":".*\\S.*" }, - "PaginationToken":{ - "type":"string", - "documentation":"Pagination token for list operations" - }, + "PaginationToken":{"type":"string"}, "PartitionColumnList":{ "type":"list", "member":{"shape":"StringValueLength1to255"}, @@ -1922,7 +2256,7 @@ }, "applicationPermissions":{ "shape":"ApplicationPermissionList", - "documentation":"

Indicates the permissions that are granted to a specific group for accessing the FinSpace application.

  • CreateDataset – Group members can create new datasets.

  • ManageClusters – Group members can manage Apache Spark clusters from FinSpace notebooks.

  • ManageUsersAndGroups – Group members can manage users and permission groups.

  • ManageAttributeSets – Group members can manage attribute sets.

  • ViewAuditData – Group members can view audit data.

  • AccessNotebooks – Group members will have access to FinSpace notebooks.

  • GetTemporaryCredentials – Group members can get temporary API credentials.

" + "documentation":"

Indicates the permissions that are granted to a specific group for accessing the FinSpace application.

When assigning application permissions, be aware that the permission ManageUsersAndGroups allows users to grant themselves or others access to any functionality in their FinSpace environment's application. It should only be granted to trusted users.

  • CreateDataset – Group members can create new datasets.

  • ManageClusters – Group members can manage Apache Spark clusters from FinSpace notebooks.

  • ManageUsersAndGroups – Group members can manage users and permission groups. This is a privileged permission that allows users to grant themselves or others access to any functionality in the application. It should only be granted to trusted users.

  • ManageAttributeSets – Group members can manage attribute sets.

  • ViewAuditData – Group members can view audit data.

  • AccessNotebooks – Group members will have access to FinSpace notebooks.

  • GetTemporaryCredentials – Group members can get temporary API credentials.

" }, "createTime":{ "shape":"TimestampEpoch", @@ -1931,15 +2265,41 @@ "lastModifiedTime":{ "shape":"TimestampEpoch", "documentation":"

Describes the last time the permission group was updated. The value is determined as epoch time in milliseconds.

" + }, + "membershipStatus":{ + "shape":"PermissionGroupMembershipStatus", + "documentation":"

Indicates the status of the user account within a permission group.

  • ADDITION_IN_PROGRESS – The user account is currently being added to the permission group.

  • ADDITION_SUCCESS – The user account is successfully added to the permission group.

  • REMOVAL_IN_PROGRESS – The user is currently being removed from the permission group.

" } }, "documentation":"

The structure for a permission group.

" }, + "PermissionGroupByUser":{ + "type":"structure", + "members":{ + "permissionGroupId":{ + "shape":"PermissionGroupId", + "documentation":"

The unique identifier for the permission group.

" + }, + "name":{ + "shape":"PermissionGroupName", + "documentation":"

The name of the permission group.

" + }, + "membershipStatus":{ + "shape":"PermissionGroupMembershipStatus", + "documentation":"

Indicates the status of the user account within a permission group.

  • ADDITION_IN_PROGRESS – The user account is currently being added to the permission group.

  • ADDITION_SUCCESS – The user account is successfully added to the permission group.

  • REMOVAL_IN_PROGRESS – The user is currently being removed from the permission group.

" + } + }, + "documentation":"

The structure of a permission group associated with a user account.

" + }, + "PermissionGroupByUserList":{ + "type":"list", + "member":{"shape":"PermissionGroupByUser"} + }, "PermissionGroupDescription":{ "type":"string", "max":4000, "min":1, - "pattern":".*\\S.*", + "pattern":"[\\s\\S]*", "sensitive":true }, "PermissionGroupId":{ @@ -1952,6 +2312,14 @@ "type":"list", "member":{"shape":"PermissionGroup"} }, + "PermissionGroupMembershipStatus":{ + "type":"string", + "enum":[ + "ADDITION_IN_PROGRESS", + "ADDITION_SUCCESS", + "REMOVAL_IN_PROGRESS" + ] + }, "PermissionGroupName":{ "type":"string", "max":255, @@ -2037,7 +2405,6 @@ }, "ResultLimit":{ "type":"integer", - "documentation":"Maximum number of results to be returned as part of a list operation", "max":100, "min":1 }, @@ -2047,11 +2414,41 @@ "min":20, "pattern":"^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$" }, + "S3BucketName":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^.*\\S.*$" + }, "S3DestinationFormatOptions":{ "type":"map", "key":{"shape":"StringMapKey"}, "value":{"shape":"StringMapValue"} }, + "S3Key":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^.*\\S.*$" + }, + "S3Location":{ + "type":"structure", + "required":[ + "bucket", + "key" + ], + "members":{ + "bucket":{ + "shape":"S3BucketName", + "documentation":"

The name of the S3 bucket.

" + }, + "key":{ + "shape":"S3Key", + "documentation":"

The path of the folder, within the S3 bucket that contains the Dataset.

" + } + }, + "documentation":"

The location of an external Dataview in an S3 bucket.

" + }, "SchemaDefinition":{ "type":"structure", "members":{ @@ -2076,11 +2473,25 @@ }, "documentation":"

A union of schema types.

" }, + "SecretAccessKey":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"[\\s\\S]*\\S[\\s\\S]*", + "sensitive":true + }, "SessionDuration":{ "type":"long", "max":720, "min":60 }, + "SessionToken":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"[\\s\\S]*\\S[\\s\\S]*", + "sensitive":true + }, "SortColumnList":{ "type":"list", "member":{"shape":"StringValueLength1to255"}, @@ -2092,6 +2503,7 @@ "value":{"shape":"StringMapValue"}, "documentation":"Source Parameters of a Changeset" }, + "StatusCode":{"type":"integer"}, "StringMapKey":{ "type":"string", "max":128, @@ -2251,7 +2663,7 @@ }, "applicationPermissions":{ "shape":"ApplicationPermissionList", - "documentation":"

The permissions that are granted to a specific group for accessing the FinSpace application.

  • CreateDataset – Group members can create new datasets.

  • ManageClusters – Group members can manage Apache Spark clusters from FinSpace notebooks.

  • ManageUsersAndGroups – Group members can manage users and permission groups.

  • ManageAttributeSets – Group members can manage attribute sets.

  • ViewAuditData – Group members can view audit data.

  • AccessNotebooks – Group members will have access to FinSpace notebooks.

  • GetTemporaryCredentials – Group members can get temporary API credentials.

" + "documentation":"

The permissions that are granted to a specific group for accessing the FinSpace application.

When assigning application permissions, be aware that the permission ManageUsersAndGroups allows users to grant themselves or others access to any functionality in their FinSpace environment's application. It should only be granted to trusted users.

  • CreateDataset – Group members can create new datasets.

  • ManageClusters – Group members can manage Apache Spark clusters from FinSpace notebooks.

  • ManageUsersAndGroups – Group members can manage users and permission groups. This is a privileged permission that allows users to grant themselves or others access to any functionality in the application. It should only be granted to trusted users.

  • ManageAttributeSets – Group members can manage attribute sets.

  • ViewAuditData – Group members can view audit data.

  • AccessNotebooks – Group members will have access to FinSpace notebooks.

  • GetTemporaryCredentials – Group members can get temporary API credentials.

" }, "clientToken":{ "shape":"ClientToken", @@ -2281,7 +2693,7 @@ }, "type":{ "shape":"UserType", - "documentation":"

The option to indicate the type of user.

  • SUPER_USER– A user with permission to all the functionality and data in FinSpace.

  • APP_USER – A user with specific permissions in FinSpace. The users are assigned permissions by adding them to a permissions group.

" + "documentation":"

The option to indicate the type of user.

  • SUPER_USER– A user with permission to all the functionality and data in FinSpace.

  • APP_USER – A user with specific permissions in FinSpace. The users are assigned permissions by adding them to a permission group.

" }, "firstName":{ "shape":"FirstName", @@ -2340,7 +2752,7 @@ }, "type":{ "shape":"UserType", - "documentation":"

Indicates the type of user.

  • SUPER_USER – A user with permission to all the functionality and data in FinSpace.

  • APP_USER – A user with specific permissions in FinSpace. The users are assigned permissions by adding them to a permissions group.

" + "documentation":"

Indicates the type of user.

  • SUPER_USER – A user with permission to all the functionality and data in FinSpace.

  • APP_USER – A user with specific permissions in FinSpace. The users are assigned permissions by adding them to a permission group.

" }, "apiAccess":{ "shape":"ApiAccess", @@ -2373,6 +2785,52 @@ }, "documentation":"

The details of the user account.

" }, + "UserByPermissionGroup":{ + "type":"structure", + "members":{ + "userId":{ + "shape":"UserId", + "documentation":"

The unique identifier for the user.

" + }, + "status":{ + "shape":"UserStatus", + "documentation":"

The current status of the user account.

  • CREATING – The user account creation is in progress.

  • ENABLED – The user account is created and is currently active.

  • DISABLED – The user account is currently inactive.

" + }, + "firstName":{ + "shape":"FirstName", + "documentation":"

The first name of the user.

" + }, + "lastName":{ + "shape":"LastName", + "documentation":"

The last name of the user.

" + }, + "emailAddress":{ + "shape":"Email", + "documentation":"

The email address of the user. The email address serves as a unique identifier for each user and cannot be changed after it's created.

" + }, + "type":{ + "shape":"UserType", + "documentation":"

Indicates the type of user.

  • SUPER_USER – A user with permission to all the functionality and data in FinSpace.

  • APP_USER – A user with specific permissions in FinSpace. The users are assigned permissions by adding them to a permission group.

" + }, + "apiAccess":{ + "shape":"ApiAccess", + "documentation":"

Indicates whether the user can access FinSpace API operations.

  • ENABLED – The user has permissions to use the API operations.

  • DISABLED – The user does not have permissions to use any API operations.

" + }, + "apiAccessPrincipalArn":{ + "shape":"RoleArn", + "documentation":"

The IAM ARN identifier that is attached to FinSpace API calls.

" + }, + "membershipStatus":{ + "shape":"PermissionGroupMembershipStatus", + "documentation":"

Indicates the status of the user account within a permission group.

  • ADDITION_IN_PROGRESS – The user account is currently being added to the permission group.

  • ADDITION_SUCCESS – The user account is successfully added to the permission group.

  • REMOVAL_IN_PROGRESS – The user is currently being removed from the permission group.

" + } + }, + "documentation":"

The structure of a user account associated with a permission group.

" + }, + "UserByPermissionGroupList":{ + "type":"list", + "member":{"shape":"UserByPermissionGroup"} + }, "UserId":{ "type":"string", "max":26, diff --git a/botocore/data/finspace/2021-03-12/endpoint-rule-set-1.json b/botocore/data/finspace/2021-03-12/endpoint-rule-set-1.json new file mode 100644 index 00000000..7913a9c3 --- /dev/null +++ b/botocore/data/finspace/2021-03-12/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://finspace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://finspace-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://finspace.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://finspace.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/finspace/2021-03-12/examples-1.json b/botocore/data/finspace/2021-03-12/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/finspace/2021-03-12/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/firehose/2015-08-04/endpoint-rule-set-1.json b/botocore/data/firehose/2015-08-04/endpoint-rule-set-1.json new file mode 100644 index 00000000..09b6d78f --- /dev/null +++ b/botocore/data/firehose/2015-08-04/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://firehose-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://firehose-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://firehose.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://firehose.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/firehose/2015-08-04/service-2.json b/botocore/data/firehose/2015-08-04/service-2.json index d1603e02..fb049781 100644 --- a/botocore/data/firehose/2015-08-04/service-2.json +++ b/botocore/data/firehose/2015-08-04/service-2.json @@ -27,7 +27,7 @@ {"shape":"ResourceInUseException"}, {"shape":"InvalidKMSResourceException"} ], - "documentation":"

Creates a Kinesis Data Firehose delivery stream.

By default, you can create up to 50 delivery streams per AWS Region.

This is an asynchronous operation that immediately returns. The initial status of the delivery stream is CREATING. After the delivery stream is created, its status is ACTIVE and it now accepts data. If the delivery stream creation fails, the status transitions to CREATING_FAILED. Attempts to send data to a delivery stream that is not in the ACTIVE state cause an exception. To check the state of a delivery stream, use DescribeDeliveryStream.

If the status of a delivery stream is CREATING_FAILED, this status doesn't change, and you can't invoke CreateDeliveryStream again on it. However, you can invoke the DeleteDeliveryStream operation to delete it.

A Kinesis Data Firehose delivery stream can be configured to receive records directly from providers using PutRecord or PutRecordBatch, or it can be configured to use an existing Kinesis stream as its source. To specify a Kinesis data stream as input, set the DeliveryStreamType parameter to KinesisStreamAsSource, and provide the Kinesis stream Amazon Resource Name (ARN) and role ARN in the KinesisStreamSourceConfiguration parameter.

To create a delivery stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput in your request. This is optional. You can also invoke StartDeliveryStreamEncryption to turn on SSE for an existing delivery stream that doesn't have SSE enabled.

A delivery stream is configured with a single destination: Amazon S3, Amazon ES, Amazon Redshift, or Splunk. You must specify only one of the following destination configuration parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration, ElasticsearchDestinationConfiguration, RedshiftDestinationConfiguration, or SplunkDestinationConfiguration.

When you specify S3DestinationConfiguration, you can also provide the following optional values: BufferingHints, EncryptionConfiguration, and CompressionFormat. By default, if no BufferingHints value is provided, Kinesis Data Firehose buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied first. BufferingHints is a hint, so there are some cases where the service cannot adhere to these conditions strictly. For example, record boundaries might be such that the size is a little over or under the configured buffering size. By default, no encryption is performed. We strongly recommend that you enable encryption to ensure secure data storage in Amazon S3.

A few notes about Amazon Redshift as a destination:

  • An Amazon Redshift destination requires an S3 bucket as intermediate location. Kinesis Data Firehose first delivers data to Amazon S3 and then uses COPY syntax to load data into an Amazon Redshift table. This is specified in the RedshiftDestinationConfiguration.S3Configuration parameter.

  • The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration because the Amazon Redshift COPY operation that reads from the S3 bucket doesn't support these compression formats.

  • We strongly recommend that you use the user name and password you provide exclusively with Kinesis Data Firehose, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions.

Kinesis Data Firehose assumes the IAM role that is configured as part of the destination. The role should allow the Kinesis Data Firehose principal to assume the role, and the role should have permissions that allow the service to deliver the data. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination in the Amazon Kinesis Data Firehose Developer Guide.

" + "documentation":"

Creates a Kinesis Data Firehose delivery stream.

By default, you can create up to 50 delivery streams per Amazon Web Services Region.

This is an asynchronous operation that immediately returns. The initial status of the delivery stream is CREATING. After the delivery stream is created, its status is ACTIVE and it now accepts data. If the delivery stream creation fails, the status transitions to CREATING_FAILED. Attempts to send data to a delivery stream that is not in the ACTIVE state cause an exception. To check the state of a delivery stream, use DescribeDeliveryStream.

If the status of a delivery stream is CREATING_FAILED, this status doesn't change, and you can't invoke CreateDeliveryStream again on it. However, you can invoke the DeleteDeliveryStream operation to delete it.

A Kinesis Data Firehose delivery stream can be configured to receive records directly from providers using PutRecord or PutRecordBatch, or it can be configured to use an existing Kinesis stream as its source. To specify a Kinesis data stream as input, set the DeliveryStreamType parameter to KinesisStreamAsSource, and provide the Kinesis stream Amazon Resource Name (ARN) and role ARN in the KinesisStreamSourceConfiguration parameter.

To create a delivery stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput in your request. This is optional. You can also invoke StartDeliveryStreamEncryption to turn on SSE for an existing delivery stream that doesn't have SSE enabled.

A delivery stream is configured with a single destination: Amazon S3, Amazon ES, Amazon Redshift, or Splunk. You must specify only one of the following destination configuration parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration, ElasticsearchDestinationConfiguration, RedshiftDestinationConfiguration, or SplunkDestinationConfiguration.

When you specify S3DestinationConfiguration, you can also provide the following optional values: BufferingHints, EncryptionConfiguration, and CompressionFormat. By default, if no BufferingHints value is provided, Kinesis Data Firehose buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied first. BufferingHints is a hint, so there are some cases where the service cannot adhere to these conditions strictly. For example, record boundaries might be such that the size is a little over or under the configured buffering size. By default, no encryption is performed. We strongly recommend that you enable encryption to ensure secure data storage in Amazon S3.

A few notes about Amazon Redshift as a destination:

  • An Amazon Redshift destination requires an S3 bucket as intermediate location. Kinesis Data Firehose first delivers data to Amazon S3 and then uses COPY syntax to load data into an Amazon Redshift table. This is specified in the RedshiftDestinationConfiguration.S3Configuration parameter.

  • The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration because the Amazon Redshift COPY operation that reads from the S3 bucket doesn't support these compression formats.

  • We strongly recommend that you use the user name and password you provide exclusively with Kinesis Data Firehose, and that the permissions for the account are restricted for Amazon Redshift INSERT permissions.

Kinesis Data Firehose assumes the IAM role that is configured as part of the destination. The role should allow the Kinesis Data Firehose principal to assume the role, and the role should have permissions that allow the service to deliver the data. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination in the Amazon Kinesis Data Firehose Developer Guide.

" }, "DeleteDeliveryStream":{ "name":"DeleteDeliveryStream", @@ -160,7 +160,7 @@ {"shape":"InvalidArgumentException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Adds or updates tags for the specified delivery stream. A tag is a key-value pair that you can define and assign to AWS resources. If you specify a tag that already exists, the tag value is replaced with the value that you specify in the request. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

Each delivery stream can have up to 50 tags.

This operation has a limit of five transactions per second per account.

" + "documentation":"

Adds or updates tags for the specified delivery stream. A tag is a key-value pair that you can define and assign to Amazon Web Services resources. If you specify a tag that already exists, the tag value is replaced with the value that you specify in the request. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide.

Each delivery stream can have up to 50 tags.

This operation has a limit of five transactions per second per account.

" }, "UntagDeliveryStream":{ "name":"UntagDeliveryStream", @@ -202,12 +202,179 @@ "min":1, "pattern":"arn:.*" }, + "AmazonOpenSearchServerlessBufferingHints":{ + "type":"structure", + "members":{ + "IntervalInSeconds":{ + "shape":"AmazonOpenSearchServerlessBufferingIntervalInSeconds", + "documentation":"

Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes).

" + }, + "SizeInMBs":{ + "shape":"AmazonOpenSearchServerlessBufferingSizeInMBs", + "documentation":"

Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5.

We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.

" + } + }, + "documentation":"

Describes the buffering to perform before delivering data to the Serverless offering for Amazon OpenSearch Service destination.

" + }, + "AmazonOpenSearchServerlessBufferingIntervalInSeconds":{ + "type":"integer", + "max":900, + "min":60 + }, + "AmazonOpenSearchServerlessBufferingSizeInMBs":{ + "type":"integer", + "max":100, + "min":1 + }, + "AmazonOpenSearchServerlessCollectionEndpoint":{ + "type":"string", + "max":512, + "min":1, + "pattern":"https:.*" + }, + "AmazonOpenSearchServerlessDestinationConfiguration":{ + "type":"structure", + "required":[ + "RoleARN", + "IndexName", + "S3Configuration" + ], + "members":{ + "RoleARN":{ + "shape":"RoleARN", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents.

" + }, + "CollectionEndpoint":{ + "shape":"AmazonOpenSearchServerlessCollectionEndpoint", + "documentation":"

The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service.

" + }, + "IndexName":{ + "shape":"AmazonOpenSearchServerlessIndexName", + "documentation":"

The Serverless offering for Amazon OpenSearch Service index name.

" + }, + "BufferingHints":{ + "shape":"AmazonOpenSearchServerlessBufferingHints", + "documentation":"

The buffering options. If no value is specified, the default values for AmazonopensearchserviceBufferingHints are used.

" + }, + "RetryOptions":{ + "shape":"AmazonOpenSearchServerlessRetryOptions", + "documentation":"

The retry behavior in case Kinesis Data Firehose is unable to deliver documents to the Serverless offering for Amazon OpenSearch Service. The default value is 300 (5 minutes).

" + }, + "S3BackupMode":{ + "shape":"AmazonOpenSearchServerlessS3BackupMode", + "documentation":"

Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Kinesis Data Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with AmazonOpenSearchService-failed/ appended to the key prefix. When set to AllDocuments, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents with AmazonOpenSearchService-failed/ appended to the prefix.

" + }, + "S3Configuration":{"shape":"S3DestinationConfiguration"}, + "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, + "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"}, + "VpcConfiguration":{"shape":"VpcConfiguration"} + }, + "documentation":"

Describes the configuration of a destination in the Serverless offering for Amazon OpenSearch Service.

" + }, + "AmazonOpenSearchServerlessDestinationDescription":{ + "type":"structure", + "members":{ + "RoleARN":{ + "shape":"RoleARN", + "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials.

" + }, + "CollectionEndpoint":{ + "shape":"AmazonOpenSearchServerlessCollectionEndpoint", + "documentation":"

The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service.

" + }, + "IndexName":{ + "shape":"AmazonOpenSearchServerlessIndexName", + "documentation":"

The Serverless offering for Amazon OpenSearch Service index name.

" + }, + "BufferingHints":{ + "shape":"AmazonOpenSearchServerlessBufferingHints", + "documentation":"

The buffering options.

" + }, + "RetryOptions":{ + "shape":"AmazonOpenSearchServerlessRetryOptions", + "documentation":"

The Serverless offering for Amazon OpenSearch Service retry options.

" + }, + "S3BackupMode":{ + "shape":"AmazonOpenSearchServerlessS3BackupMode", + "documentation":"

The Amazon S3 backup mode.

" + }, + "S3DestinationDescription":{"shape":"S3DestinationDescription"}, + "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, + "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"}, + "VpcConfigurationDescription":{"shape":"VpcConfigurationDescription"} + }, + "documentation":"

The destination description in the Serverless offering for Amazon OpenSearch Service.

" + }, + "AmazonOpenSearchServerlessDestinationUpdate":{ + "type":"structure", + "members":{ + "RoleARN":{ + "shape":"RoleARN", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Serverless offering for Amazon OpenSearch Service Configuration API and for indexing documents.

" + }, + "CollectionEndpoint":{ + "shape":"AmazonOpenSearchServerlessCollectionEndpoint", + "documentation":"

The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service.

" + }, + "IndexName":{ + "shape":"AmazonOpenSearchServerlessIndexName", + "documentation":"

The Serverless offering for Amazon OpenSearch Service index name.

" + }, + "BufferingHints":{ + "shape":"AmazonOpenSearchServerlessBufferingHints", + "documentation":"

The buffering options. If no value is specified, AmazonopensearchBufferingHints object default values are used.

" + }, + "RetryOptions":{ + "shape":"AmazonOpenSearchServerlessRetryOptions", + "documentation":"

The retry behavior in case Kinesis Data Firehose is unable to deliver documents to the Serverless offering for Amazon OpenSearch Service. The default value is 300 (5 minutes).

" + }, + "S3Update":{"shape":"S3DestinationUpdate"}, + "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, + "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"} + }, + "documentation":"

Describes an update for a destination in the Serverless offering for Amazon OpenSearch Service.

" + }, + "AmazonOpenSearchServerlessIndexName":{ + "type":"string", + "max":80, + "min":1, + "pattern":".*" + }, + "AmazonOpenSearchServerlessRetryDurationInSeconds":{ + "type":"integer", + "max":7200, + "min":0 + }, + "AmazonOpenSearchServerlessRetryOptions":{ + "type":"structure", + "members":{ + "DurationInSeconds":{ + "shape":"AmazonOpenSearchServerlessRetryDurationInSeconds", + "documentation":"

After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time during which Kinesis Data Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

" + } + }, + "documentation":"

Configures retry behavior in case Kinesis Data Firehose is unable to deliver documents to the Serverless offering for Amazon OpenSearch Service.

" + }, + "AmazonOpenSearchServerlessS3BackupMode":{ + "type":"string", + "enum":[ + "FailedDocumentsOnly", + "AllDocuments" + ] + }, "AmazonopensearchserviceBufferingHints":{ "type":"structure", "members":{ - "IntervalInSeconds":{"shape":"AmazonopensearchserviceBufferingIntervalInSeconds"}, - "SizeInMBs":{"shape":"AmazonopensearchserviceBufferingSizeInMBs"} - } + "IntervalInSeconds":{ + "shape":"AmazonopensearchserviceBufferingIntervalInSeconds", + "documentation":"

Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes).

" + }, + "SizeInMBs":{ + "shape":"AmazonopensearchserviceBufferingSizeInMBs", + "documentation":"

Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5.

We recommend setting this parameter to a value greater than the amount of data you typically ingest into the delivery stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.

" + } + }, + "documentation":"

Describes the buffering to perform before delivering data to the Amazon OpenSearch Service destination.

" }, "AmazonopensearchserviceBufferingIntervalInSeconds":{ "type":"integer", @@ -233,54 +400,135 @@ "S3Configuration" ], "members":{ - "RoleARN":{"shape":"RoleARN"}, - "DomainARN":{"shape":"AmazonopensearchserviceDomainARN"}, - "ClusterEndpoint":{"shape":"AmazonopensearchserviceClusterEndpoint"}, - "IndexName":{"shape":"AmazonopensearchserviceIndexName"}, - "TypeName":{"shape":"AmazonopensearchserviceTypeName"}, - "IndexRotationPeriod":{"shape":"AmazonopensearchserviceIndexRotationPeriod"}, - "BufferingHints":{"shape":"AmazonopensearchserviceBufferingHints"}, - "RetryOptions":{"shape":"AmazonopensearchserviceRetryOptions"}, - "S3BackupMode":{"shape":"AmazonopensearchserviceS3BackupMode"}, + "RoleARN":{ + "shape":"RoleARN", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents.

" + }, + "DomainARN":{ + "shape":"AmazonopensearchserviceDomainARN", + "documentation":"

The ARN of the Amazon OpenSearch Service domain. The IAM role must have permissions for DescribeElasticsearchDomain, DescribeElasticsearchDomains, and DescribeElasticsearchDomainConfig after assuming the role specified in RoleARN.

" + }, + "ClusterEndpoint":{ + "shape":"AmazonopensearchserviceClusterEndpoint", + "documentation":"

The endpoint to use when communicating with the cluster. Specify either this ClusterEndpoint or the DomainARN field.

" + }, + "IndexName":{ + "shape":"AmazonopensearchserviceIndexName", + "documentation":"

The ElasticsearAmazon OpenSearch Service index name.

" + }, + "TypeName":{ + "shape":"AmazonopensearchserviceTypeName", + "documentation":"

The Amazon OpenSearch Service type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Kinesis Data Firehose returns an error during run time.

" + }, + "IndexRotationPeriod":{ + "shape":"AmazonopensearchserviceIndexRotationPeriod", + "documentation":"

The Amazon OpenSearch Service index rotation period. Index rotation appends a timestamp to the IndexName to facilitate the expiration of old data.

" + }, + "BufferingHints":{ + "shape":"AmazonopensearchserviceBufferingHints", + "documentation":"

The buffering options. If no value is specified, the default values for AmazonopensearchserviceBufferingHints are used.

" + }, + "RetryOptions":{ + "shape":"AmazonopensearchserviceRetryOptions", + "documentation":"

The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).

" + }, + "S3BackupMode":{ + "shape":"AmazonopensearchserviceS3BackupMode", + "documentation":"

Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Kinesis Data Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with AmazonOpenSearchService-failed/ appended to the key prefix. When set to AllDocuments, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents with AmazonOpenSearchService-failed/ appended to the prefix.

" + }, "S3Configuration":{"shape":"S3DestinationConfiguration"}, "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"}, "VpcConfiguration":{"shape":"VpcConfiguration"} - } + }, + "documentation":"

Describes the configuration of a destination in Amazon OpenSearch Service

" }, "AmazonopensearchserviceDestinationDescription":{ "type":"structure", "members":{ - "RoleARN":{"shape":"RoleARN"}, - "DomainARN":{"shape":"AmazonopensearchserviceDomainARN"}, - "ClusterEndpoint":{"shape":"AmazonopensearchserviceClusterEndpoint"}, - "IndexName":{"shape":"AmazonopensearchserviceIndexName"}, - "TypeName":{"shape":"AmazonopensearchserviceTypeName"}, - "IndexRotationPeriod":{"shape":"AmazonopensearchserviceIndexRotationPeriod"}, - "BufferingHints":{"shape":"AmazonopensearchserviceBufferingHints"}, - "RetryOptions":{"shape":"AmazonopensearchserviceRetryOptions"}, - "S3BackupMode":{"shape":"AmazonopensearchserviceS3BackupMode"}, + "RoleARN":{ + "shape":"RoleARN", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials.

" + }, + "DomainARN":{ + "shape":"AmazonopensearchserviceDomainARN", + "documentation":"

The ARN of the Amazon OpenSearch Service domain.

" + }, + "ClusterEndpoint":{ + "shape":"AmazonopensearchserviceClusterEndpoint", + "documentation":"

The endpoint to use when communicating with the cluster. Kinesis Data Firehose uses either this ClusterEndpoint or the DomainARN field to send data to Amazon OpenSearch Service.

" + }, + "IndexName":{ + "shape":"AmazonopensearchserviceIndexName", + "documentation":"

The Amazon OpenSearch Service index name.

" + }, + "TypeName":{ + "shape":"AmazonopensearchserviceTypeName", + "documentation":"

The Amazon OpenSearch Service type name. This applies to Elasticsearch 6.x and lower versions. For Elasticsearch 7.x and OpenSearch Service 1.x, there's no value for TypeName.

" + }, + "IndexRotationPeriod":{ + "shape":"AmazonopensearchserviceIndexRotationPeriod", + "documentation":"

The Amazon OpenSearch Service index rotation period

" + }, + "BufferingHints":{ + "shape":"AmazonopensearchserviceBufferingHints", + "documentation":"

The buffering options.

" + }, + "RetryOptions":{ + "shape":"AmazonopensearchserviceRetryOptions", + "documentation":"

The Amazon OpenSearch Service retry options.

" + }, + "S3BackupMode":{ + "shape":"AmazonopensearchserviceS3BackupMode", + "documentation":"

The Amazon S3 backup mode.

" + }, "S3DestinationDescription":{"shape":"S3DestinationDescription"}, "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"}, "VpcConfigurationDescription":{"shape":"VpcConfigurationDescription"} - } + }, + "documentation":"

The destination description in Amazon OpenSearch Service.

" }, "AmazonopensearchserviceDestinationUpdate":{ "type":"structure", "members":{ - "RoleARN":{"shape":"RoleARN"}, - "DomainARN":{"shape":"AmazonopensearchserviceDomainARN"}, - "ClusterEndpoint":{"shape":"AmazonopensearchserviceClusterEndpoint"}, - "IndexName":{"shape":"AmazonopensearchserviceIndexName"}, - "TypeName":{"shape":"AmazonopensearchserviceTypeName"}, - "IndexRotationPeriod":{"shape":"AmazonopensearchserviceIndexRotationPeriod"}, - "BufferingHints":{"shape":"AmazonopensearchserviceBufferingHints"}, - "RetryOptions":{"shape":"AmazonopensearchserviceRetryOptions"}, + "RoleARN":{ + "shape":"RoleARN", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents.

" + }, + "DomainARN":{ + "shape":"AmazonopensearchserviceDomainARN", + "documentation":"

The ARN of the Amazon OpenSearch Service domain. The IAM role must have permissions for DescribeDomain, DescribeDomains, and DescribeDomainConfig after assuming the IAM role specified in RoleARN.

" + }, + "ClusterEndpoint":{ + "shape":"AmazonopensearchserviceClusterEndpoint", + "documentation":"

The endpoint to use when communicating with the cluster. Specify either this ClusterEndpoint or the DomainARN field.

" + }, + "IndexName":{ + "shape":"AmazonopensearchserviceIndexName", + "documentation":"

The Amazon OpenSearch Service index name.

" + }, + "TypeName":{ + "shape":"AmazonopensearchserviceTypeName", + "documentation":"

The Amazon OpenSearch Service type name. For Elasticsearch 6.x, there can be only one type per index. If you try to specify a new type for an existing index that already has another type, Kinesis Data Firehose returns an error during runtime.

If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery stream, Kinesis Data Firehose still delivers data to Elasticsearch with the old index name and type name. If you want to update your delivery stream with a new index name, provide an empty string for TypeName.

" + }, + "IndexRotationPeriod":{ + "shape":"AmazonopensearchserviceIndexRotationPeriod", + "documentation":"

The Amazon OpenSearch Service index rotation period. Index rotation appends a timestamp to IndexName to facilitate the expiration of old data.

" + }, + "BufferingHints":{ + "shape":"AmazonopensearchserviceBufferingHints", + "documentation":"

The buffering options. If no value is specified, AmazonopensearchBufferingHints object default values are used.

" + }, + "RetryOptions":{ + "shape":"AmazonopensearchserviceRetryOptions", + "documentation":"

The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).

" + }, "S3Update":{"shape":"S3DestinationUpdate"}, "ProcessingConfiguration":{"shape":"ProcessingConfiguration"}, "CloudWatchLoggingOptions":{"shape":"CloudWatchLoggingOptions"} - } + }, + "documentation":"

Describes an update for a destination in Amazon OpenSearch Service.

" }, "AmazonopensearchserviceDomainARN":{ "type":"string", @@ -312,8 +560,12 @@ "AmazonopensearchserviceRetryOptions":{ "type":"structure", "members":{ - "DurationInSeconds":{"shape":"AmazonopensearchserviceRetryDurationInSeconds"} - } + "DurationInSeconds":{ + "shape":"AmazonopensearchserviceRetryDurationInSeconds", + "documentation":"

After an initial failure to deliver to Amazon OpenSearch Service, the total amount of time during which Kinesis Data Firehose retries delivery (including the first attempt). After this time has elapsed, the failed documents are written to Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero) results in no retries.

" + } + }, + "documentation":"

Configures retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service.

" }, "AmazonopensearchserviceS3BackupMode":{ "type":"string", @@ -441,7 +693,7 @@ "members":{ "DeliveryStreamName":{ "shape":"DeliveryStreamName", - "documentation":"

The name of the delivery stream. This name must be unique per AWS account in the same AWS Region. If the delivery streams are in different accounts or different Regions, you can have multiple delivery streams with the same name.

" + "documentation":"

The name of the delivery stream. This name must be unique per Amazon Web Services account in the same Amazon Web Services Region. If the delivery streams are in different accounts or different Regions, you can have multiple delivery streams with the same name.

" }, "DeliveryStreamType":{ "shape":"DeliveryStreamType", @@ -472,7 +724,10 @@ "shape":"ElasticsearchDestinationConfiguration", "documentation":"

The destination in Amazon ES. You can specify only one destination.

" }, - "AmazonopensearchserviceDestinationConfiguration":{"shape":"AmazonopensearchserviceDestinationConfiguration"}, + "AmazonopensearchserviceDestinationConfiguration":{ + "shape":"AmazonopensearchserviceDestinationConfiguration", + "documentation":"

The destination in Amazon OpenSearch Service. You can specify only one destination.

" + }, "SplunkDestinationConfiguration":{ "shape":"SplunkDestinationConfiguration", "documentation":"

The destination in Splunk. You can specify only one destination.

" @@ -483,7 +738,11 @@ }, "Tags":{ "shape":"TagDeliveryStreamInputTagList", - "documentation":"

A set of tags to assign to the delivery stream. A tag is a key-value pair that you can define and assign to AWS resources. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide.

You can specify up to 50 tags when creating a delivery stream.

" + "documentation":"

A set of tags to assign to the delivery stream. A tag is a key-value pair that you can define and assign to Amazon Web Services resources. Tags are metadata. For example, you can add friendly names and descriptions or other types of information that can help you distinguish the delivery stream. For more information about tags, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide.

You can specify up to 50 tags when creating a delivery stream.

" + }, + "AmazonOpenSearchServerlessDestinationConfiguration":{ + "shape":"AmazonOpenSearchServerlessDestinationConfiguration", + "documentation":"

The destination in the Serverless offering for Amazon OpenSearch Service. You can specify only one destination.

" } } }, @@ -506,7 +765,7 @@ "members":{ "SchemaConfiguration":{ "shape":"SchemaConfiguration", - "documentation":"

Specifies the AWS Glue Data Catalog table that contains the column information. This parameter is required if Enabled is set to true.

" + "documentation":"

Specifies the Amazon Web Services Glue Data Catalog table that contains the column information. This parameter is required if Enabled is set to true.

" }, "InputFormatConfiguration":{ "shape":"InputFormatConfiguration", @@ -521,7 +780,7 @@ "documentation":"

Defaults to true. Set it to false if you want to disable format conversion while preserving the configuration details.

" } }, - "documentation":"

Specifies that you want Kinesis Data Firehose to convert data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. Kinesis Data Firehose uses the serializer and deserializer that you specify, in addition to the column information from the AWS Glue table, to deserialize your input data from JSON and then serialize it to the Parquet or ORC format. For more information, see Kinesis Data Firehose Record Format Conversion.

" + "documentation":"

Specifies that you want Kinesis Data Firehose to convert data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. Kinesis Data Firehose uses the serializer and deserializer that you specify, in addition to the column information from the Amazon Web Services Glue table, to deserialize your input data from JSON and then serialize it to the Parquet or ORC format. For more information, see Kinesis Data Firehose Record Format Conversion.

" }, "DataTableColumns":{ "type":"string", @@ -545,7 +804,7 @@ }, "AllowForceDelete":{ "shape":"BooleanObject", - "documentation":"

Set this to true if you want to delete the delivery stream even if Kinesis Data Firehose is unable to retire the grant for the CMK. Kinesis Data Firehose might be unable to retire the grant due to a customer error, such as when the CMK or the grant are in an invalid state. If you force deletion, you can then use the RevokeGrant operation to revoke the grant you gave to Kinesis Data Firehose. If a failure to retire the grant happens due to an AWS KMS issue, Kinesis Data Firehose keeps retrying the delete operation.

The default value is false.

" + "documentation":"

Set this to true if you want to delete the delivery stream even if Kinesis Data Firehose is unable to retire the grant for the CMK. Kinesis Data Firehose might be unable to retire the grant due to a customer error, such as when the CMK or the grant are in an invalid state. If you force deletion, you can then use the RevokeGrant operation to revoke the grant you gave to Kinesis Data Firehose. If a failure to retire the grant happens due to an Amazon Web Services KMS issue, Kinesis Data Firehose keeps retrying the delete operation.

The default value is false.

" } } }, @@ -579,7 +838,7 @@ }, "DeliveryStreamARN":{ "shape":"DeliveryStreamARN", - "documentation":"

The Amazon Resource Name (ARN) of the delivery stream. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the delivery stream. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "DeliveryStreamStatus":{ "shape":"DeliveryStreamStatus", @@ -629,11 +888,11 @@ "members":{ "KeyARN":{ "shape":"AWSKMSKeyARN", - "documentation":"

If KeyType is CUSTOMER_MANAGED_CMK, this field contains the ARN of the customer managed CMK. If KeyType is AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration doesn't contain a value for KeyARN.

" + "documentation":"

If KeyType is CUSTOMER_MANAGED_CMK, this field contains the ARN of the customer managed CMK. If KeyType is Amazon Web Services_OWNED_CMK, DeliveryStreamEncryptionConfiguration doesn't contain a value for KeyARN.

" }, "KeyType":{ "shape":"KeyType", - "documentation":"

Indicates the type of customer master key (CMK) that is used for encryption. The default setting is AWS_OWNED_CMK. For more information about CMKs, see Customer Master Keys (CMKs).

" + "documentation":"

Indicates the type of customer master key (CMK) that is used for encryption. The default setting is Amazon Web Services_OWNED_CMK. For more information about CMKs, see Customer Master Keys (CMKs).

" }, "Status":{ "shape":"DeliveryStreamEncryptionStatus", @@ -652,11 +911,11 @@ "members":{ "KeyARN":{ "shape":"AWSKMSKeyARN", - "documentation":"

If you set KeyType to CUSTOMER_MANAGED_CMK, you must specify the Amazon Resource Name (ARN) of the CMK. If you set KeyType to AWS_OWNED_CMK, Kinesis Data Firehose uses a service-account CMK.

" + "documentation":"

If you set KeyType to CUSTOMER_MANAGED_CMK, you must specify the Amazon Resource Name (ARN) of the CMK. If you set KeyType to Amazon Web Services_OWNED_CMK, Kinesis Data Firehose uses a service-account CMK.

" }, "KeyType":{ "shape":"KeyType", - "documentation":"

Indicates the type of customer master key (CMK) to use for encryption. The default setting is AWS_OWNED_CMK. For more information about CMKs, see Customer Master Keys (CMKs). When you invoke CreateDeliveryStream or StartDeliveryStreamEncryption with KeyType set to CUSTOMER_MANAGED_CMK, Kinesis Data Firehose invokes the Amazon KMS operation CreateGrant to create a grant that allows the Kinesis Data Firehose service to use the customer managed CMK to perform encryption and decryption. Kinesis Data Firehose manages that grant.

When you invoke StartDeliveryStreamEncryption to change the CMK for a delivery stream that is encrypted with a customer managed CMK, Kinesis Data Firehose schedules the grant it had on the old CMK for retirement.

You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery streams. If a CreateDeliveryStream or StartDeliveryStreamEncryption operation exceeds this limit, Kinesis Data Firehose throws a LimitExceededException.

To encrypt your delivery stream, use symmetric CMKs. Kinesis Data Firehose doesn't support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see About Symmetric and Asymmetric CMKs in the AWS Key Management Service developer guide.

" + "documentation":"

Indicates the type of customer master key (CMK) to use for encryption. The default setting is Amazon Web Services_OWNED_CMK. For more information about CMKs, see Customer Master Keys (CMKs). When you invoke CreateDeliveryStream or StartDeliveryStreamEncryption with KeyType set to CUSTOMER_MANAGED_CMK, Kinesis Data Firehose invokes the Amazon KMS operation CreateGrant to create a grant that allows the Kinesis Data Firehose service to use the customer managed CMK to perform encryption and decryption. Kinesis Data Firehose manages that grant.

When you invoke StartDeliveryStreamEncryption to change the CMK for a delivery stream that is encrypted with a customer managed CMK, Kinesis Data Firehose schedules the grant it had on the old CMK for retirement.

You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery streams. If a CreateDeliveryStream or StartDeliveryStreamEncryption operation exceeds this limit, Kinesis Data Firehose throws a LimitExceededException.

To encrypt your delivery stream, use symmetric CMKs. Kinesis Data Firehose doesn't support asymmetric CMKs. For information about symmetric and asymmetric CMKs, see About Symmetric and Asymmetric CMKs in the Amazon Web Services Key Management Service developer guide.

" } }, "documentation":"

Specifies the type and Amazon Resource Name (ARN) of the CMK to use for Server-Side Encryption (SSE).

" @@ -796,7 +1055,10 @@ "shape":"ElasticsearchDestinationDescription", "documentation":"

The destination in Amazon ES.

" }, - "AmazonopensearchserviceDestinationDescription":{"shape":"AmazonopensearchserviceDestinationDescription"}, + "AmazonopensearchserviceDestinationDescription":{ + "shape":"AmazonopensearchserviceDestinationDescription", + "documentation":"

The destination in Amazon OpenSearch Service.

" + }, "SplunkDestinationDescription":{ "shape":"SplunkDestinationDescription", "documentation":"

The destination in Splunk.

" @@ -804,6 +1066,10 @@ "HttpEndpointDestinationDescription":{ "shape":"HttpEndpointDestinationDescription", "documentation":"

Describes the specified HTTP endpoint destination.

" + }, + "AmazonOpenSearchServerlessDestinationDescription":{ + "shape":"AmazonOpenSearchServerlessDestinationDescription", + "documentation":"

The destination in the Serverless offering for Amazon OpenSearch Service.

" } }, "documentation":"

Describes the destination for a delivery stream.

" @@ -830,7 +1096,7 @@ "documentation":"

Specifies that the dynamic partitioning is enabled for this Kinesis Data Firehose delivery stream.

" } }, - "documentation":"

The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations. For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html

" + "documentation":"

The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations.

" }, "ElasticsearchBufferingHints":{ "type":"structure", @@ -872,11 +1138,11 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "DomainARN":{ "shape":"ElasticsearchDomainARN", - "documentation":"

The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeElasticsearchDomain, DescribeElasticsearchDomains, and DescribeElasticsearchDomainConfig after assuming the role specified in RoleARN. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

Specify either ClusterEndpoint or DomainARN.

" + "documentation":"

The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeDomain, DescribeDomains, and DescribeDomainConfig after assuming the role specified in RoleARN. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

Specify either ClusterEndpoint or DomainARN.

" }, "ClusterEndpoint":{ "shape":"ElasticsearchClusterEndpoint", @@ -904,7 +1170,7 @@ }, "S3BackupMode":{ "shape":"ElasticsearchS3BackupMode", - "documentation":"

Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Kinesis Data Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with elasticsearch-failed/ appended to the key prefix. When set to AllDocuments, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents with elasticsearch-failed/ appended to the prefix. For more information, see Amazon S3 Backup for the Amazon ES Destination. Default value is FailedDocumentsOnly.

You can't change this backup mode after you create the delivery stream.

" + "documentation":"

Defines how documents should be delivered to Amazon S3. When it is set to FailedDocumentsOnly, Kinesis Data Firehose writes any documents that could not be indexed to the configured Amazon S3 destination, with AmazonOpenSearchService-failed/ appended to the key prefix. When set to AllDocuments, Kinesis Data Firehose delivers all incoming records to Amazon S3, and also writes failed documents with AmazonOpenSearchService-failed/ appended to the prefix. For more information, see Amazon S3 Backup for the Amazon ES Destination. Default value is FailedDocumentsOnly.

You can't change this backup mode after you create the delivery stream.

" }, "S3Configuration":{ "shape":"S3DestinationConfiguration", @@ -930,11 +1196,11 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "DomainARN":{ "shape":"ElasticsearchDomainARN", - "documentation":"

The ARN of the Amazon ES domain. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

Kinesis Data Firehose uses either ClusterEndpoint or DomainARN to send data to Amazon ES.

" + "documentation":"

The ARN of the Amazon ES domain. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

Kinesis Data Firehose uses either ClusterEndpoint or DomainARN to send data to Amazon ES.

" }, "ClusterEndpoint":{ "shape":"ElasticsearchClusterEndpoint", @@ -946,7 +1212,7 @@ }, "TypeName":{ "shape":"ElasticsearchTypeName", - "documentation":"

The Elasticsearch type name. This applies to Elasticsearch 6.x and lower versions. For Elasticsearch 7.x, there's no value for TypeName.

" + "documentation":"

The Elasticsearch type name. This applies to Elasticsearch 6.x and lower versions. For Elasticsearch 7.x and OpenSearch Service 1.x, there's no value for TypeName.

" }, "IndexRotationPeriod":{ "shape":"ElasticsearchIndexRotationPeriod", @@ -988,11 +1254,11 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see Grant Kinesis Data Firehose Access to an Amazon S3 Destination and Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "DomainARN":{ "shape":"ElasticsearchDomainARN", - "documentation":"

The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeElasticsearchDomain, DescribeElasticsearchDomains, and DescribeElasticsearchDomainConfig after assuming the IAM role specified in RoleARN. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

Specify either ClusterEndpoint or DomainARN.

" + "documentation":"

The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeDomain, DescribeDomains, and DescribeDomainConfig after assuming the IAM role specified in RoleARN. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

Specify either ClusterEndpoint or DomainARN.

" }, "ClusterEndpoint":{ "shape":"ElasticsearchClusterEndpoint", @@ -1114,11 +1380,11 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "BucketARN":{ "shape":"BucketARN", - "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "Prefix":{ "shape":"Prefix", @@ -1162,7 +1428,7 @@ }, "DynamicPartitioningConfiguration":{ "shape":"DynamicPartitioningConfiguration", - "documentation":"

The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations. For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html

" + "documentation":"

The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations.

" } }, "documentation":"

Describes the configuration of a destination in Amazon S3.

" @@ -1179,11 +1445,11 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "BucketARN":{ "shape":"BucketARN", - "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "Prefix":{ "shape":"Prefix", @@ -1227,7 +1493,7 @@ }, "DynamicPartitioningConfiguration":{ "shape":"DynamicPartitioningConfiguration", - "documentation":"

The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations. For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html

" + "documentation":"

The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations.

" } }, "documentation":"

Describes a destination in Amazon S3.

" @@ -1237,11 +1503,11 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "BucketARN":{ "shape":"BucketARN", - "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "Prefix":{ "shape":"Prefix", @@ -1285,7 +1551,7 @@ }, "DynamicPartitioningConfiguration":{ "shape":"DynamicPartitioningConfiguration", - "documentation":"

The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations. For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html

" + "documentation":"

The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations.

" } }, "documentation":"

Describes an update for a destination in Amazon S3.

" @@ -1637,7 +1903,7 @@ "members":{ "AWSKMSKeyARN":{ "shape":"AWSKMSKeyARN", - "documentation":"

The Amazon Resource Name (ARN) of the encryption key. Must belong to the same AWS Region as the destination Amazon S3 bucket. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" } }, "documentation":"

Describes an encryption key for a destination in Amazon S3.

" @@ -1668,7 +1934,7 @@ }, "RoleARN":{ "shape":"RoleARN", - "documentation":"

The ARN of the role that provides access to the source Kinesis data stream. For more information, see AWS Identity and Access Management (IAM) ARN Format.

" + "documentation":"

The ARN of the role that provides access to the source Kinesis data stream. For more information, see Amazon Web Services Identity and Access Management (IAM) ARN Format.

" } }, "documentation":"

The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream.

" @@ -1682,7 +1948,7 @@ }, "RoleARN":{ "shape":"RoleARN", - "documentation":"

The ARN of the role used by the source Kinesis data stream. For more information, see AWS Identity and Access Management (IAM) ARN Format.

" + "documentation":"

The ARN of the role used by the source Kinesis data stream. For more information, see Amazon Web Services Identity and Access Management (IAM) ARN Format.

" }, "DeliveryStartTimestamp":{ "shape":"DeliveryStartTimestamp", @@ -2028,14 +2294,14 @@ "members":{ "ParameterName":{ "shape":"ProcessorParameterName", - "documentation":"

The name of the parameter.

" + "documentation":"

The name of the parameter. Currently the following default values are supported: 3 for NumberOfRetries and 60 for the BufferIntervalInSeconds. The BufferSizeInMBs ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.

" }, "ParameterValue":{ "shape":"ProcessorParameterValue", "documentation":"

The parameter value.

" } }, - "documentation":"

Describes the processor parameter.

" + "documentation":"

Describes the processor parameter.

" }, "ProcessorParameterList":{ "type":"list", @@ -2202,7 +2468,7 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "ClusterJDBCURL":{ "shape":"ClusterJDBCURL", @@ -2259,7 +2525,7 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "ClusterJDBCURL":{ "shape":"ClusterJDBCURL", @@ -2305,7 +2571,7 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "ClusterJDBCURL":{ "shape":"ClusterJDBCURL", @@ -2431,11 +2697,11 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "BucketARN":{ "shape":"BucketARN", - "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "Prefix":{ "shape":"Prefix", @@ -2476,11 +2742,11 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "BucketARN":{ "shape":"BucketARN", - "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "Prefix":{ "shape":"Prefix", @@ -2514,11 +2780,11 @@ "members":{ "RoleARN":{ "shape":"RoleARN", - "documentation":"

The Amazon Resource Name (ARN) of the AWS credentials. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "BucketARN":{ "shape":"BucketARN", - "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and AWS Service Namespaces.

" + "documentation":"

The ARN of the S3 bucket. For more information, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces.

" }, "Prefix":{ "shape":"Prefix", @@ -2552,23 +2818,23 @@ "members":{ "RoleARN":{ "shape":"NonEmptyStringWithoutWhitespace", - "documentation":"

The role that Kinesis Data Firehose can use to access AWS Glue. This role must be in the same account you use for Kinesis Data Firehose. Cross-account roles aren't allowed.

If the SchemaConfiguration request parameter is used as part of invoking the CreateDeliveryStream API, then the RoleARN property is required and its value must be specified.

" + "documentation":"

The role that Kinesis Data Firehose can use to access Amazon Web Services Glue. This role must be in the same account you use for Kinesis Data Firehose. Cross-account roles aren't allowed.

If the SchemaConfiguration request parameter is used as part of invoking the CreateDeliveryStream API, then the RoleARN property is required and its value must be specified.

" }, "CatalogId":{ "shape":"NonEmptyStringWithoutWhitespace", - "documentation":"

The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS account ID is used by default.

" + "documentation":"

The ID of the Amazon Web Services Glue Data Catalog. If you don't supply this, the Amazon Web Services account ID is used by default.

" }, "DatabaseName":{ "shape":"NonEmptyStringWithoutWhitespace", - "documentation":"

Specifies the name of the AWS Glue database that contains the schema for the output data.

If the SchemaConfiguration request parameter is used as part of invoking the CreateDeliveryStream API, then the DatabaseName property is required and its value must be specified.

" + "documentation":"

Specifies the name of the Amazon Web Services Glue database that contains the schema for the output data.

If the SchemaConfiguration request parameter is used as part of invoking the CreateDeliveryStream API, then the DatabaseName property is required and its value must be specified.

" }, "TableName":{ "shape":"NonEmptyStringWithoutWhitespace", - "documentation":"

Specifies the AWS Glue table that contains the column information that constitutes your data schema.

If the SchemaConfiguration request parameter is used as part of invoking the CreateDeliveryStream API, then the TableName property is required and its value must be specified.

" + "documentation":"

Specifies the Amazon Web Services Glue table that contains the column information that constitutes your data schema.

If the SchemaConfiguration request parameter is used as part of invoking the CreateDeliveryStream API, then the TableName property is required and its value must be specified.

" }, "Region":{ "shape":"NonEmptyStringWithoutWhitespace", - "documentation":"

If you don't specify an AWS Region, the default is the current Region.

" + "documentation":"

If you don't specify an Amazon Web Services Region, the default is the current Region.

" }, "VersionId":{ "shape":"NonEmptyStringWithoutWhitespace", @@ -2939,7 +3205,10 @@ "shape":"ElasticsearchDestinationUpdate", "documentation":"

Describes an update for a destination in Amazon ES.

" }, - "AmazonopensearchserviceDestinationUpdate":{"shape":"AmazonopensearchserviceDestinationUpdate"}, + "AmazonopensearchserviceDestinationUpdate":{ + "shape":"AmazonopensearchserviceDestinationUpdate", + "documentation":"

Describes an update for a destination in Amazon OpenSearch Service.

" + }, "SplunkDestinationUpdate":{ "shape":"SplunkDestinationUpdate", "documentation":"

Describes an update for a destination in Splunk.

" @@ -2947,6 +3216,10 @@ "HttpEndpointDestinationUpdate":{ "shape":"HttpEndpointDestinationUpdate", "documentation":"

Describes an update to the specified HTTP endpoint destination.

" + }, + "AmazonOpenSearchServerlessDestinationUpdate":{ + "shape":"AmazonOpenSearchServerlessDestinationUpdate", + "documentation":"

Describes an update for a destination in the Serverless offering for Amazon OpenSearch Service.

" } } }, @@ -3014,5 +3287,5 @@ "documentation":"

The details of the VPC of the Amazon ES destination.

" } }, - "documentation":"Amazon Kinesis Data Firehose API Reference

Amazon Kinesis Data Firehose is a fully managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon Elasticsearch Service (Amazon ES), Amazon Redshift, and Splunk.

" + "documentation":"Amazon Kinesis Data Firehose API Reference

Amazon Kinesis Data Firehose is a fully managed service that delivers real-time streaming data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon OpenSearch Service, Amazon Redshift, Splunk, and various other supportd destinations.

" } diff --git a/botocore/data/fis/2020-12-01/endpoint-rule-set-1.json b/botocore/data/fis/2020-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..82f7dd18 --- /dev/null +++ b/botocore/data/fis/2020-12-01/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://fis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://fis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://fis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://fis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/fis/2020-12-01/examples-1.json b/botocore/data/fis/2020-12-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/fis/2020-12-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/fms/2018-01-01/endpoint-rule-set-1.json b/botocore/data/fms/2018-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..3851e455 --- /dev/null +++ b/botocore/data/fms/2018-01-01/endpoint-rule-set-1.json @@ -0,0 +1,306 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://fms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://fms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://fms.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://fms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/fms/2018-01-01/service-2.json b/botocore/data/fms/2018-01-01/service-2.json index 4de07c42..0949c599 100644 --- a/botocore/data/fms/2018-01-01/service-2.json +++ b/botocore/data/fms/2018-01-01/service-2.json @@ -45,6 +45,39 @@ ], "documentation":"

Sets the Firewall Manager policy administrator as a tenant administrator of a third-party firewall service. A tenant is an instance of the third-party firewall service that's associated with your Amazon Web Services customer account.

" }, + "BatchAssociateResource":{ + "name":"BatchAssociateResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchAssociateResourceRequest"}, + "output":{"shape":"BatchAssociateResourceResponse"}, + "errors":[ + {"shape":"InvalidOperationException"}, + {"shape":"InternalErrorException"}, + {"shape":"InvalidInputException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Associate resources to a Firewall Manager resource set.

" + }, + "BatchDisassociateResource":{ + "name":"BatchDisassociateResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchDisassociateResourceRequest"}, + "output":{"shape":"BatchDisassociateResourceResponse"}, + "errors":[ + {"shape":"InvalidOperationException"}, + {"shape":"InternalErrorException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Disassociates resources from a Firewall Manager resource set.

" + }, "DeleteAppsList":{ "name":"DeleteAppsList", "http":{ @@ -103,6 +136,21 @@ ], "documentation":"

Permanently deletes an Firewall Manager protocols list.

" }, + "DeleteResourceSet":{ + "name":"DeleteResourceSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteResourceSetRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidOperationException"}, + {"shape":"InternalErrorException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Deletes the specified ResourceSet.

" + }, "DisassociateAdminAccount":{ "name":"DisassociateAdminAccount", "http":{ @@ -240,6 +288,22 @@ ], "documentation":"

Returns information about the specified Firewall Manager protocols list.

" }, + "GetResourceSet":{ + "name":"GetResourceSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourceSetRequest"}, + "output":{"shape":"GetResourceSetResponse"}, + "errors":[ + {"shape":"InvalidOperationException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Gets information about a specific resource set.

" + }, "GetThirdPartyFirewallAssociationStatus":{ "name":"GetThirdPartyFirewallAssociationStatus", "http":{ @@ -301,6 +365,21 @@ ], "documentation":"

Returns an array of PolicyComplianceStatus objects. Use PolicyComplianceStatus to get a summary of which member accounts are protected by the specified policy.

" }, + "ListDiscoveredResources":{ + "name":"ListDiscoveredResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDiscoveredResourcesRequest"}, + "output":{"shape":"ListDiscoveredResourcesResponse"}, + "errors":[ + {"shape":"InvalidOperationException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Returns an array of resources in the organization's accounts that are available to be associated with a resource set.

" + }, "ListMemberAccounts":{ "name":"ListMemberAccounts", "http":{ @@ -346,6 +425,37 @@ ], "documentation":"

Returns an array of ProtocolsListDataSummary objects.

" }, + "ListResourceSetResources":{ + "name":"ListResourceSetResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceSetResourcesRequest"}, + "output":{"shape":"ListResourceSetResourcesResponse"}, + "errors":[ + {"shape":"InvalidOperationException"}, + {"shape":"InternalErrorException"}, + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns an array of resources that are currently associated to a resource set.

" + }, + "ListResourceSets":{ + "name":"ListResourceSets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceSetsRequest"}, + "output":{"shape":"ListResourceSetsResponse"}, + "errors":[ + {"shape":"InvalidOperationException"}, + {"shape":"InvalidInputException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Returns an array of ResourceSetSummary objects.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -444,6 +554,22 @@ ], "documentation":"

Creates an Firewall Manager protocols list.

" }, + "PutResourceSet":{ + "name":"PutResourceSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutResourceSetRequest"}, + "output":{"shape":"PutResourceSetResponse"}, + "errors":[ + {"shape":"InvalidOperationException"}, + {"shape":"InvalidInputException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Creates the resource set.

An Firewall Manager resource set defines the resources to import into an Firewall Manager policy from another Amazon Web Services service.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -485,6 +611,10 @@ "min":1, "pattern":"^[0-9]+$" }, + "AWSAccountIdList":{ + "type":"list", + "member":{"shape":"AWSAccountId"} + }, "AccountRoleStatus":{ "type":"string", "enum":[ @@ -683,11 +813,85 @@ }, "documentation":"

Violation detail for the rule violation in a security group when compared to the primary security group of the Firewall Manager policy.

" }, + "Base62Id":{ + "type":"string", + "max":22, + "min":22, + "pattern":"^[a-z0-9A-Z]{22}$" + }, "BasicInteger":{ "type":"integer", "max":2147483647, "min":-2147483648 }, + "BatchAssociateResourceRequest":{ + "type":"structure", + "required":[ + "ResourceSetIdentifier", + "Items" + ], + "members":{ + "ResourceSetIdentifier":{ + "shape":"Identifier", + "documentation":"

A unique identifier for the resource set, used in a TODO to refer to the resource set.

" + }, + "Items":{ + "shape":"IdentifierList", + "documentation":"

The uniform resource identifiers (URIs) of resources that should be associated to the resource set. The URIs must be Amazon Resource Names (ARNs).

" + } + } + }, + "BatchAssociateResourceResponse":{ + "type":"structure", + "required":[ + "ResourceSetIdentifier", + "FailedItems" + ], + "members":{ + "ResourceSetIdentifier":{ + "shape":"Identifier", + "documentation":"

A unique identifier for the resource set, used in a TODO to refer to the resource set.

" + }, + "FailedItems":{ + "shape":"FailedItemList", + "documentation":"

The resources that failed to associate to the resource set.

" + } + } + }, + "BatchDisassociateResourceRequest":{ + "type":"structure", + "required":[ + "ResourceSetIdentifier", + "Items" + ], + "members":{ + "ResourceSetIdentifier":{ + "shape":"Identifier", + "documentation":"

A unique identifier for the resource set, used in a TODO to refer to the resource set.

" + }, + "Items":{ + "shape":"IdentifierList", + "documentation":"

The uniform resource identifiers (URI) of resources that should be disassociated from the resource set. The URIs must be Amazon Resource Names (ARNs).

" + } + } + }, + "BatchDisassociateResourceResponse":{ + "type":"structure", + "required":[ + "ResourceSetIdentifier", + "FailedItems" + ], + "members":{ + "ResourceSetIdentifier":{ + "shape":"Identifier", + "documentation":"

A unique identifier for the resource set, used in a TODO to refer to the resource set.

" + }, + "FailedItems":{ + "shape":"FailedItemList", + "documentation":"

The resources that failed to disassociate from the resource set.

" + } + } + }, "Boolean":{"type":"boolean"}, "CIDR":{ "type":"string", @@ -787,6 +991,16 @@ } } }, + "DeleteResourceSetRequest":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"Base62Id", + "documentation":"

A unique identifier for the resource set, used in a TODO to refer to the resource set.

" + } + } + }, "DependentServiceName":{ "type":"string", "enum":[ @@ -796,6 +1010,11 @@ "AWSVPC" ] }, + "Description":{ + "type":"string", + "max":256, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, "DestinationType":{ "type":"string", "enum":[ @@ -806,7 +1025,7 @@ }, "DetailedInfo":{ "type":"string", - "max":1024, + "max":4096, "min":1, "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=,+\\-@]*)$" }, @@ -834,6 +1053,32 @@ } } }, + "DiscoveredResource":{ + "type":"structure", + "members":{ + "URI":{ + "shape":"Identifier", + "documentation":"

The universal resource identifier (URI) of the discovered resource.

" + }, + "AccountId":{ + "shape":"AWSAccountId", + "documentation":"

The Amazon Web Services account ID associated with the discovered resource.

" + }, + "Type":{ + "shape":"ResourceType", + "documentation":"

The type of the discovered resource.

" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The name of the discovered resource.

" + } + }, + "documentation":"

A resource in the organization that's available to be associated with a Firewall Manager resource set.

" + }, + "DiscoveredResourceList":{ + "type":"list", + "member":{"shape":"DiscoveredResource"} + }, "DnsDuplicateRuleGroupViolation":{ "type":"structure", "members":{ @@ -1147,6 +1392,35 @@ }, "documentation":"

Contains information about the actions that you can take to remediate scope violations caused by your policy's FirewallCreationConfig. FirewallCreationConfig is an optional configuration that you can use to choose which Availability Zones Firewall Manager creates Network Firewall endpoints in.

" }, + "FailedItem":{ + "type":"structure", + "members":{ + "URI":{ + "shape":"Identifier", + "documentation":"

The univeral resource indicator (URI) of the resource that failed.

" + }, + "Reason":{ + "shape":"FailedItemReason", + "documentation":"

The reason the resource's association could not be updated.

" + } + }, + "documentation":"

Details of a resource that failed when trying to update it's association to a resource set.

" + }, + "FailedItemList":{ + "type":"list", + "member":{"shape":"FailedItem"} + }, + "FailedItemReason":{ + "type":"string", + "enum":[ + "NOT_VALID_ARN", + "NOT_VALID_PARTITION", + "NOT_VALID_REGION", + "NOT_VALID_SERVICE", + "NOT_VALID_RESOURCE_TYPE", + "NOT_VALID_ACCOUNT_ID" + ] + }, "FirewallDeploymentModel":{ "type":"string", "enum":[ @@ -1404,6 +1678,33 @@ } } }, + "GetResourceSetRequest":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"Base62Id", + "documentation":"

A unique identifier for the resource set, used in a TODO to refer to the resource set.

" + } + } + }, + "GetResourceSetResponse":{ + "type":"structure", + "required":[ + "ResourceSet", + "ResourceSetArn" + ], + "members":{ + "ResourceSet":{ + "shape":"ResourceSet", + "documentation":"

Information about the specified resource set.

" + }, + "ResourceSetArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource set.

" + } + } + }, "GetThirdPartyFirewallAssociationStatusRequest":{ "type":"structure", "required":["ThirdPartyFirewall"], @@ -1423,7 +1724,7 @@ }, "MarketplaceOnboardingStatus":{ "shape":"MarketplaceSubscriptionOnboardingStatus", - "documentation":"

The status for subscribing to the third-party firewall vendor in the AWS Marketplace.

  • NO_SUBSCRIPTION - The Firewall Manager policy administrator isn't subscribed to the third-party firewall service in the AWS Marketplace.

  • NOT_COMPLETE - The Firewall Manager policy administrator is in the process of subscribing to the third-party firewall service in the Amazon Web Services Marketplace, but doesn't yet have an active subscription.

  • COMPLETE - The Firewall Manager policy administrator has an active subscription to the third-party firewall service in the Amazon Web Services Marketplace.

" + "documentation":"

The status for subscribing to the third-party firewall vendor in the Amazon Web Services Marketplace.

  • NO_SUBSCRIPTION - The Firewall Manager policy administrator isn't subscribed to the third-party firewall service in the Amazon Web Services Marketplace.

  • NOT_COMPLETE - The Firewall Manager policy administrator is in the process of subscribing to the third-party firewall service in the Amazon Web Services Marketplace, but doesn't yet have an active subscription.

  • COMPLETE - The Firewall Manager policy administrator has an active subscription to the third-party firewall service in the Amazon Web Services Marketplace.

" } } }, @@ -1468,6 +1769,16 @@ "max":65535, "min":0 }, + "Identifier":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "IdentifierList":{ + "type":"list", + "member":{"shape":"Identifier"} + }, "InternalErrorException":{ "type":"structure", "members":{ @@ -1584,6 +1895,44 @@ } } }, + "ListDiscoveredResourcesRequest":{ + "type":"structure", + "required":[ + "MemberAccountIds", + "ResourceType" + ], + "members":{ + "MemberAccountIds":{ + "shape":"AWSAccountIdList", + "documentation":"

The Amazon Web Services account IDs to discover resources in. Only one account is supported per request. The account must be a member of your organization.

" + }, + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

The type of resources to discover.

" + }, + "MaxResults":{ + "shape":"PaginationMaxResults", + "documentation":"

The maximum number of objects that you want Firewall Manager to return for this request. If more objects are available, in the response, Firewall Manager provides a NextToken value that you can use in a subsequent call to get the next batch of objects.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + } + } + }, + "ListDiscoveredResourcesResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"DiscoveredResourceList", + "documentation":"

Details of the resources that were discovered.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + } + } + }, "ListId":{ "type":"string", "max":36, @@ -1673,6 +2022,64 @@ } } }, + "ListResourceSetResourcesRequest":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"ResourceId", + "documentation":"

A unique identifier for the resource set, used in a TODO to refer to the resource set.

" + }, + "MaxResults":{ + "shape":"PaginationMaxResults", + "documentation":"

The maximum number of objects that you want Firewall Manager to return for this request. If more objects are available, in the response, Firewall Manager provides a NextToken value that you can use in a subsequent call to get the next batch of objects.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + } + } + }, + "ListResourceSetResourcesResponse":{ + "type":"structure", + "required":["Items"], + "members":{ + "Items":{ + "shape":"ResourceList", + "documentation":"

An array of the associated resources' uniform resource identifiers (URI).

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + } + } + }, + "ListResourceSetsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + }, + "MaxResults":{ + "shape":"PaginationMaxResults", + "documentation":"

The maximum number of objects that you want Firewall Manager to return for this request. If more objects are available, in the response, Firewall Manager provides a NextToken value that you can use in a subsequent call to get the next batch of objects.

" + } + } + }, + "ListResourceSetsResponse":{ + "type":"structure", + "members":{ + "ResourceSets":{ + "shape":"ResourceSetSummaryList", + "documentation":"

An array of ResourceSetSummary objects.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Firewall Manager returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceArn"], @@ -1744,6 +2151,12 @@ "type":"list", "member":{"shape":"AWSAccountId"} }, + "Name":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, "NetworkFirewallAction":{ "type":"string", "max":128, @@ -2000,6 +2413,10 @@ }, "documentation":"

Violation detail for Network Firewall for an Availability Zone that's missing the expected Firewall Manager managed subnet.

" }, + "NetworkFirewallOverrideAction":{ + "type":"string", + "enum":["DROP_TO_ALERT"] + }, "NetworkFirewallPolicy":{ "type":"structure", "members":{ @@ -2032,6 +2449,14 @@ "StatefulRuleGroups":{ "shape":"StatefulRuleGroupList", "documentation":"

The stateful rule groups that are used in the Network Firewall firewall policy.

" + }, + "StatefulDefaultActions":{ + "shape":"NetworkFirewallActionList", + "documentation":"

The default actions to take on a packet that doesn't match any stateful rules. The stateful default action is optional, and is only valid when using the strict rule order.

Valid values of the stateful default action:

  • aws:drop_strict

  • aws:drop_established

  • aws:alert_strict

  • aws:alert_established

" + }, + "StatefulEngineOptions":{ + "shape":"StatefulEngineOptions", + "documentation":"

Additional options governing how Network Firewall handles stateful rules. The stateful rule groups that you use in your policy must have stateful rule options settings that are compatible with these settings.

" } }, "documentation":"

The definition of the Network Firewall firewall policy.

" @@ -2060,6 +2485,16 @@ "min":1, "pattern":"^[a-zA-Z0-9-]+$" }, + "NetworkFirewallStatefulRuleGroupOverride":{ + "type":"structure", + "members":{ + "Action":{ + "shape":"NetworkFirewallOverrideAction", + "documentation":"

The action that changes the rule group from DROP to ALERT. This only applies to managed rule groups.

" + } + }, + "documentation":"

The setting that allows the policy owner to change the behavior of the rule group within a policy.

" + }, "NetworkFirewallUnexpectedFirewallRoutesViolation":{ "type":"structure", "members":{ @@ -2198,6 +2633,14 @@ "ExcludeMap":{ "shape":"CustomerPolicyScopeMap", "documentation":"

Specifies the Amazon Web Services account IDs and Organizations organizational units (OUs) to exclude from the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time.

You can specify inclusions or exclusions, but not both. If you specify an IncludeMap, Firewall Manager applies the policy to all accounts specified by the IncludeMap, and does not evaluate any ExcludeMap specifications. If you do not specify an IncludeMap, then Firewall Manager applies the policy to all accounts except for those specified by the ExcludeMap.

You can specify account IDs, OUs, or a combination:

  • Specify account IDs by setting the key to ACCOUNT. For example, the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”]}.

  • Specify OUs by setting the key to ORG_UNIT. For example, the following is a valid map: {“ORG_UNIT” : [“ouid111”, “ouid112”]}.

  • Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: {“ACCOUNT” : [“accountID1”, “accountID2”], “ORG_UNIT” : [“ouid111”, “ouid112”]}.

" + }, + "ResourceSetIds":{ + "shape":"ResourceSetIds", + "documentation":"

The unique identifiers of the resource sets used by the policy.

" + }, + "PolicyDescription":{ + "shape":"ResourceDescription", + "documentation":"

The definition of the Network Firewall firewall policy.

" } }, "documentation":"

An Firewall Manager policy.

" @@ -2299,7 +2742,7 @@ "documentation":"

Defines the policy options for a third-party firewall policy.

" } }, - "documentation":"

Contains the Network Firewall firewall policy options to configure a centralized deployment model.

" + "documentation":"

Contains the Network Firewall firewall policy options to configure the policy's deployment model and third-party firewall policy settings.

" }, "PolicySummary":{ "type":"structure", @@ -2398,6 +2841,7 @@ "key":{"shape":"PreviousListVersion"}, "value":{"shape":"ProtocolsList"} }, + "PriorityNumber":{"type":"integer"}, "ProtectionData":{"type":"string"}, "Protocol":{ "type":"string", @@ -2571,6 +3015,37 @@ } } }, + "PutResourceSetRequest":{ + "type":"structure", + "required":["ResourceSet"], + "members":{ + "ResourceSet":{ + "shape":"ResourceSet", + "documentation":"

Details about the resource set to be created or updated.>

" + }, + "TagList":{ + "shape":"TagList", + "documentation":"

Retrieves the tags associated with the specified resource set. Tags are key:value pairs that you can use to categorize and manage your resources, for purposes like billing. For example, you might set the tag key to \"customer\" and the value to the customer name or ID. You can specify one or more tags to add to each Amazon Web Services resource, up to 50 tags for a resource.

" + } + } + }, + "PutResourceSetResponse":{ + "type":"structure", + "required":[ + "ResourceSet", + "ResourceSetArn" + ], + "members":{ + "ResourceSet":{ + "shape":"ResourceSet", + "documentation":"

Details about the resource set.

" + }, + "ResourceSetArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource set.

" + } + } + }, "ReferenceRule":{"type":"string"}, "RemediationAction":{ "type":"structure", @@ -2641,6 +3116,21 @@ }, "documentation":"

An ordered list of actions you can take to remediate a violation.

" }, + "Resource":{ + "type":"structure", + "required":["URI"], + "members":{ + "URI":{ + "shape":"Identifier", + "documentation":"

The resource's universal resource indicator (URI).

" + }, + "AccountId":{ + "shape":"AWSAccountId", + "documentation":"

The Amazon Web Services account ID that the associated resource belongs to.

" + } + }, + "documentation":"

Details of a resource that is associated to an Firewall Manager resource set.

" + }, "ResourceArn":{ "type":"string", "max":1024, @@ -2651,6 +3141,11 @@ "type":"long", "min":0 }, + "ResourceDescription":{ + "type":"string", + "max":256, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, "ResourceId":{ "type":"string", "max":1024, @@ -2661,6 +3156,10 @@ "type":"list", "member":{"shape":"ResourceId"} }, + "ResourceList":{ + "type":"list", + "member":{"shape":"Resource"} + }, "ResourceName":{ "type":"string", "max":128, @@ -2675,6 +3174,70 @@ "documentation":"

The specified resource was not found.

", "exception":true }, + "ResourceSet":{ + "type":"structure", + "required":[ + "Name", + "ResourceTypeList" + ], + "members":{ + "Id":{ + "shape":"Base62Id", + "documentation":"

A unique identifier for the resource set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The descriptive name of the resource set. You can't change the name of a resource set after you create it.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A description of the resource set.

" + }, + "UpdateToken":{ + "shape":"UpdateToken", + "documentation":"

An optional token that you can use for optimistic locking. Firewall Manager returns a token to your requests that access the resource set. The token marks the state of the resource set resource at the time of the request. Update tokens are not allowed when creating a resource set. After creation, each subsequent update call to the resource set requires the update token.

To make an unconditional change to the resource set, omit the token in your update request. Without the token, Firewall Manager performs your updates regardless of whether the resource set has changed since you last retrieved it.

To make a conditional change to the resource set, provide the token in your update request. Firewall Manager uses the token to ensure that the resource set hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the resource set again to get a current copy of it with a new token. Reapply your changes as needed, then try the operation again using the new token.

" + }, + "ResourceTypeList":{ + "shape":"ResourceTypeList", + "documentation":"

Determines the resources that can be associated to the resource set. Depending on your setting for max results and the number of resource sets, a single call might not return the full list.

" + }, + "LastUpdateTime":{ + "shape":"TimeStamp", + "documentation":"

The last time that the resource set was changed.

" + } + }, + "documentation":"

A set of resources to include in a policy.

" + }, + "ResourceSetIds":{ + "type":"list", + "member":{"shape":"Base62Id"} + }, + "ResourceSetSummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"Base62Id", + "documentation":"

A unique identifier for the resource set. This ID is returned in the responses to create and list commands. You provide it to operations like update and delete.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The descriptive name of the resource set. You can't change the name of a resource set after you create it.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A description of the resource set.

" + }, + "LastUpdateTime":{ + "shape":"TimeStamp", + "documentation":"

The last time that the resource set was changed.

" + } + }, + "documentation":"

Summarizes the resource sets used in a policy.

" + }, + "ResourceSetSummaryList":{ + "type":"list", + "member":{"shape":"ResourceSetSummary"} + }, "ResourceTag":{ "type":"structure", "required":["Key"], @@ -2896,6 +3459,13 @@ "type":"list", "member":{"shape":"Route"} }, + "RuleOrder":{ + "type":"string", + "enum":[ + "STRICT_ORDER", + "DEFAULT_ACTION_ORDER" + ] + }, "SecurityGroupRemediationAction":{ "type":"structure", "members":{ @@ -2962,7 +3532,7 @@ }, "ManagedServiceData":{ "shape":"ManagedServiceData", - "documentation":"

Details about the service that are specific to the service type, in JSON format.

  • Example: DNS_FIREWALL

    \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"

    Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000.

  • Example: DNS_FIREWALL

    \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"

    Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000.

  • Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration. With automatic Availbility Zone configuration, Firewall Manager chooses which Availability Zones to create the endpoints in.

    \"{ \\\"type\\\": \\\"NETWORK_FIREWALL\\\", \\\"networkFirewallStatelessRuleGroupReferences\\\": [ { \\\"resourceARN\\\": \\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\", \\\"priority\\\": 1 } ], \\\"networkFirewallStatelessDefaultActions\\\": [ \\\"aws:forward_to_sfe\\\", \\\"customActionName\\\" ], \\\"networkFirewallStatelessFragmentDefaultActions\\\": [ \\\"aws:forward_to_sfe\\\", \\\"customActionName\\\" ], \\\"networkFirewallStatelessCustomActions\\\": [ { \\\"actionName\\\": \\\"customActionName\\\", \\\"actionDefinition\\\": { \\\"publishMetricAction\\\": { \\\"dimensions\\\": [ { \\\"value\\\": \\\"metricdimensionvalue\\\" } ] } } } ], \\\"networkFirewallStatefulRuleGroupReferences\\\": [ { \\\"resourceARN\\\": \\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\" } ], \\\"networkFirewallOrchestrationConfig\\\": { \\\"singleFirewallEndpointPerVPC\\\": false, \\\"allowedIPV4CidrList\\\": [ \\\"10.0.0.0/28\\\", \\\"192.168.0.0/28\\\" ], \\\"routeManagementAction\\\": \\\"OFF\\\" }, \\\"networkFirewallLoggingConfiguration\\\": { \\\"logDestinationConfigs\\\": [ { \\\"logDestinationType\\\": \\\"S3\\\", \\\"logType\\\": \\\"ALERT\\\", \\\"logDestination\\\": { \\\"bucketName\\\": \\\"s3-bucket-name\\\" } }, { \\\"logDestinationType\\\": \\\"S3\\\", \\\"logType\\\": \\\"FLOW\\\", \\\"logDestination\\\": { \\\"bucketName\\\": \\\"s3-bucket-name\\\" } } ], \\\"overrideExistingConfig\\\": true } }\"

    To use the distributed deployment model, you must set PolicyOption to NULL.

  • Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration, and route management.

    \"{ \\\"type\\\": \\\"NETWORK_FIREWALL\\\", \\\"networkFirewallStatelessRuleGroupReferences\\\": [ { \\\"resourceARN\\\": \\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\", \\\"priority\\\": 1 } ], \\\"networkFirewallStatelessDefaultActions\\\": [ \\\"aws:forward_to_sfe\\\", \\\"customActionName\\\" ], \\\"networkFirewallStatelessFragmentDefaultActions\\\": [ \\\"aws:forward_to_sfe\\\", \\\"customActionName\\\" ], \\\"networkFirewallStatelessCustomActions\\\": [ { \\\"actionName\\\": \\\"customActionName\\\", \\\"actionDefinition\\\": { \\\"publishMetricAction\\\": { \\\"dimensions\\\": [ { \\\"value\\\": \\\"metricdimensionvalue\\\" } ] } } } ], \\\"networkFirewallStatefulRuleGroupReferences\\\": [ { \\\"resourceARN\\\": \\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\" } ], \\\"networkFirewallOrchestrationConfig\\\": { \\\"singleFirewallEndpointPerVPC\\\": false, \\\"allowedIPV4CidrList\\\": [ \\\"10.0.0.0/28\\\", \\\"192.168.0.0/28\\\" ], \\\"routeManagementAction\\\": \\\"MONITOR\\\", \\\"routeManagementTargetTypes\\\": [ \\\"InternetGateway\\\" ] }, \\\"networkFirewallLoggingConfiguration\\\": { \\\"logDestinationConfigs\\\": [ { \\\"logDestinationType\\\": \\\"S3\\\", \\\"logType\\\": \\\"ALERT\\\", \\\"logDestination\\\": { \\\"bucketName\\\": \\\"s3-bucket-name\\\" } }, { \\\"logDestinationType\\\": \\\"S3\\\", \\\"logType\\\": \\\"FLOW\\\", \\\"logDestination\\\": { \\\"bucketName\\\": \\\"s3-bucket-name\\\" } } ], \\\"overrideExistingConfig\\\": true } }\"

  • Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration. With custom Availability Zone configuration, you define which specific Availability Zones to create endpoints in by configuring firewallCreationConfig.

    \"{ \\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}], \\\"networkFirewallStatelessDefaultActions\\\":[ \\\"aws:forward_to_sfe\\\", \\\"customActionName\\\" ], \\\"networkFirewallStatelessFragmentDefaultActions\\\":[ \\\"aws:forward_to_sfe\\\", \\\"fragmentcustomactionname\\\" ], \\\"networkFirewallStatelessCustomActions\\\":[ { \\\"actionName\\\":\\\"customActionName\\\", \\\"actionDefinition\\\":{ \\\"publishMetricAction\\\":{ \\\"dimensions\\\":[ { \\\"value\\\":\\\"metricdimensionvalue\\\" } ] } } }, { \\\"actionName\\\":\\\"fragmentcustomactionname\\\", \\\"actionDefinition\\\":{ \\\"publishMetricAction\\\":{ \\\"dimensions\\\":[ { \\\"value\\\":\\\"fragmentmetricdimensionvalue\\\" } ] } } } ], \\\"networkFirewallStatefulRuleGroupReferences\\\":[ { \\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\" } ], \\\"networkFirewallOrchestrationConfig\\\":{ \\\"firewallCreationConfig\\\":{ \\\"endpointLocation\\\":{ \\\"availabilityZoneConfigList\\\":[ { \\\"availabilityZoneId\\\":null, \\\"availabilityZoneName\\\":\\\"us-east-1a\\\", \\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\" ] }, { ¯\\\"availabilityZoneId\\\":null, \\\"availabilityZoneName\\\":\\\"us-east-1b\\\", \\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\" ] } ] } }, \\\"singleFirewallEndpointPerVPC\\\":false, \\\"allowedIPV4CidrList\\\":null, \\\"routeManagementAction\\\":\\\"OFF\\\", \\\"networkFirewallLoggingConfiguration\\\":{ \\\"logDestinationConfigs\\\":[ { \\\"logDestinationType\\\":\\\"S3\\\", \\\"logType\\\":\\\"ALERT\\\", \\\"logDestination\\\":{ \\\"bucketName\\\":\\\"s3-bucket-name\\\" } }, { \\\"logDestinationType\\\":\\\"S3\\\", \\\"logType\\\":\\\"FLOW\\\", \\\"logDestination\\\":{ \\\"bucketName\\\":\\\"s3-bucket-name\\\" } } ], \\\"overrideExistingConfig\\\":boolean } }\"

  • Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration, and route management.

    \"{ \\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}], \\\"networkFirewallStatelessDefaultActions\\\":[ \\\"aws:forward_to_sfe\\\", \\\"customActionName\\\" ], \\\"networkFirewallStatelessFragmentDefaultActions\\\":[ \\\"aws:forward_to_sfe\\\", \\\"fragmentcustomactionname\\\" ], \\\"networkFirewallStatelessCustomActions\\\":[ { \\\"actionName\\\":\\\"customActionName\\\", \\\"actionDefinition\\\":{ \\\"publishMetricAction\\\":{ \\\"dimensions\\\":[ { \\\"value\\\":\\\"metricdimensionvalue\\\" } ] } } }, { \\\"actionName\\\":\\\"fragmentcustomactionname\\\", \\\"actionDefinition\\\":{ \\\"publishMetricAction\\\":{ \\\"dimensions\\\":[ { \\\"value\\\":\\\"fragmentmetricdimensionvalue\\\" } ] } } } ], \\\"networkFirewallStatefulRuleGroupReferences\\\":[ { \\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\" } ], \\\"networkFirewallOrchestrationConfig\\\":{ \\\"firewallCreationConfig\\\":{ \\\"endpointLocation\\\":{ \\\"availabilityZoneConfigList\\\":[ { \\\"availabilityZoneId\\\":null, \\\"availabilityZoneName\\\":\\\"us-east-1a\\\", \\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\" ] }, { ¯\\\"availabilityZoneId\\\":null, \\\"availabilityZoneName\\\":\\\"us-east-1b\\\", \\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\" ] } ] } }, \\\"singleFirewallEndpointPerVPC\\\":false, \\\"allowedIPV4CidrList\\\":null, \\\"routeManagementAction\\\":\\\"MONITOR\\\", \\\"routeManagementTargetTypes\\\":[ \\\"InternetGateway\\\" ], \\\"routeManagementConfig\\\":{ \\\"allowCrossAZTrafficIfNoEndpoint\\\":true } }, \\\"networkFirewallLoggingConfiguration\\\":{ \\\"logDestinationConfigs\\\":[ { \\\"logDestinationType\\\":\\\"S3\\\", \\\"logType\\\":\\\"ALERT\\\", \\\"logDestination\\\":{ \\\"bucketName\\\":\\\"s3-bucket-name\\\" } }, { \\\"logDestinationType\\\":\\\"S3\\\", \\\"logType\\\":\\\"FLOW\\\", \\\"logDestination\\\":{ \\\"bucketName\\\":\\\"s3-bucket-name\\\" } } ], \\\"overrideExistingConfig\\\":boolean } }\"

  • Example: PARTNER_FIREWALL for Firewall Manager

    \"{\\\"type\\\":\\\"THIRD_PARTY_FIREWALL\\\",\\\"thirdPartyrFirewall\\\":\\\"PALO_ALTO_NETWORKS_CLOUD_NGFW\\\",\\\"thirdPartyFirewallConfig\\\":{\\\"thirdPartyFirewallPolicyList\\\":[\\\"global-123456789012-1\\\"],\\\"networkFirewallLoggingConfiguration\\\":null},\\\"firewallDeploymentModel\\\":{\\\"distributedFirewallDeploymentModel\\\":{\\\"distributedFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneId\\\":null,\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.1.0/28\\\"]}]}},\\\"allowedIPV4CidrList\\\":null},\\\"distributedRouteManagementConfig\\\":null},\\\"centralizedFirewallDeploymentModel\\\":null}}\"\"

  • Specification for SHIELD_ADVANCED for Amazon CloudFront distributions

    \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED|IGNORED|DISABLED\\\", \\\"automaticResponseAction\\\":\\\"BLOCK|COUNT\\\"}, \\\"overrideCustomerWebaclClassic\\\":true|false}\"

    For example: \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED\\\", \\\"automaticResponseAction\\\":\\\"COUNT\\\"}}\"

    The default value for automaticResponseStatus is IGNORED. The value for automaticResponseAction is only required when automaticResponseStatus is set to ENABLED. The default value for overrideCustomerWebaclClassic is false.

    For other resource types that you can protect with a Shield Advanced policy, this ManagedServiceData configuration is an empty string.

  • Example: WAFV2

    \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAmazonIpReputationList\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"

    In the loggingConfiguration, you can specify one logDestinationConfigs, you can optionally provide up to 20 redactedFields, and the RedactedFieldType must be one of URI, QUERY_STRING, HEADER, or METHOD.

  • Example: WAF Classic

    \"{\\\"type\\\": \\\"WAF\\\", \\\"ruleGroups\\\": [{\\\"id\\\":\\\"12345678-1bcd-9012-efga-0987654321ab\\\", \\\"overrideAction\\\" : {\\\"type\\\": \\\"COUNT\\\"}}], \\\"defaultAction\\\": {\\\"type\\\": \\\"BLOCK\\\"}}\"

  • Example: WAFV2 - Firewall Manager support for WAF managed rule group versioning

    \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":true,\\\"version\\\":\\\"Version_2.0\\\",\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesCommonRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"

    To use a specific version of a WAF managed rule group in your Firewall Manager policy, you must set versionEnabled to true, and set version to the version you'd like to use. If you don't set versionEnabled to true, or if you omit versionEnabled, then Firewall Manager uses the default version of the WAF managed rule group.

  • Example: SECURITY_GROUPS_COMMON

    \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"

  • Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns

    \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":true,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"

  • Example: SECURITY_GROUPS_CONTENT_AUDIT

    \"{\\\"type\\\":\\\"SECURITY_GROUPS_CONTENT_AUDIT\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"securityGroupAction\\\":{\\\"type\\\":\\\"ALLOW\\\"}}\"

    The security group action for content audit can be ALLOW or DENY. For ALLOW, all in-scope security group rules must be within the allowed range of the policy's security group rules. For DENY, all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group.

  • Example: SECURITY_GROUPS_USAGE_AUDIT

    \"{\\\"type\\\":\\\"SECURITY_GROUPS_USAGE_AUDIT\\\",\\\"deleteUnusedSecurityGroups\\\":true,\\\"coalesceRedundantSecurityGroups\\\":true}\"

" + "documentation":"

Details about the service that are specific to the service type, in JSON format.

  • Example: DNS_FIREWALL

    \"{\\\"type\\\":\\\"DNS_FIREWALL\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-1\\\",\\\"priority\\\":10}],\\\"postProcessRuleGroups\\\":[{\\\"ruleGroupId\\\":\\\"rslvr-frg-2\\\",\\\"priority\\\":9911}]}\"

    Valid values for preProcessRuleGroups are between 1 and 99. Valid values for postProcessRuleGroups are between 9901 and 10000.

  • Example: NETWORK_FIREWALL - Centralized deployment model

    \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"awsNetworkFirewallConfig\\\":{\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}},\\\"firewallDeploymentModel\\\":{\\\"centralizedFirewallDeploymentModel\\\":{\\\"centralizedFirewallOrchestrationConfig\\\":{\\\"inspectionVpcIds\\\":[{\\\"resourceId\\\":\\\"vpc-1234\\\",\\\"accountId\\\":\\\"123456789011\\\"}],\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneId\\\":null,\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"allowedIPV4CidrList\\\":[]}}}}\"

    To use the centralized deployment model, you must set PolicyOption to CENTRALIZED.

  • Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration

    \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"OFF\\\"},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"

    With automatic Availbility Zone configuration, Firewall Manager chooses which Availability Zones to create the endpoints in. To use the distributed deployment model, you must set PolicyOption to NULL.

  • Example: NETWORK_FIREWALL - Distributed deployment model with automatic Availability Zone configuration and route management

    \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\",\\\"192.168.0.0/28\\\"],\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"]},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\": \\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":true}}\"

    To use the distributed deployment model, you must set PolicyOption to NULL.

  • Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration

    \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\", \\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{ \\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[ \\\"10.0.0.0/28\\\"]}]} },\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"OFF\\\",\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"

    With custom Availability Zone configuration, you define which specific Availability Zones to create endpoints in by configuring firewallCreationConfig. To configure the Availability Zones in firewallCreationConfig, specify either the availabilityZoneName or availabilityZoneId parameter, not both parameters.

    To use the distributed deployment model, you must set PolicyOption to NULL.

  • Example: NETWORK_FIREWALL - Distributed deployment model with custom Availability Zone configuration and route management

    \"{\\\"type\\\":\\\"NETWORK_FIREWALL\\\",\\\"networkFirewallStatelessRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\\",\\\"priority\\\":1}],\\\"networkFirewallStatelessDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"customActionName\\\"],\\\"networkFirewallStatelessFragmentDefaultActions\\\":[\\\"aws:forward_to_sfe\\\",\\\"fragmentcustomactionname\\\"],\\\"networkFirewallStatelessCustomActions\\\":[{\\\"actionName\\\":\\\"customActionName\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"metricdimensionvalue\\\"}]}}},{\\\"actionName\\\":\\\"fragmentcustomactionname\\\",\\\"actionDefinition\\\":{\\\"publishMetricAction\\\":{\\\"dimensions\\\":[{\\\"value\\\":\\\"fragmentmetricdimensionvalue\\\"}]}}}],\\\"networkFirewallStatefulRuleGroupReferences\\\":[{\\\"resourceARN\\\":\\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\\"}],\\\"networkFirewallOrchestrationConfig\\\":{\\\"firewallCreationConfig\\\":{\\\"endpointLocation\\\":{\\\"availabilityZoneConfigList\\\":[{\\\"availabilityZoneName\\\":\\\"us-east-1a\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]},{\\\"availabilityZoneName\\\":\\\"us-east-1b\\\",\\\"allowedIPV4CidrList\\\":[\\\"10.0.0.0/28\\\"]}]}},\\\"singleFirewallEndpointPerVPC\\\":false,\\\"allowedIPV4CidrList\\\":null,\\\"routeManagementAction\\\":\\\"MONITOR\\\",\\\"routeManagementTargetTypes\\\":[\\\"InternetGateway\\\"],\\\"routeManagementConfig\\\":{\\\"allowCrossAZTrafficIfNoEndpoint\\\":true}},\\\"networkFirewallLoggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"ALERT\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}},{\\\"logDestinationType\\\":\\\"S3\\\",\\\"logType\\\":\\\"FLOW\\\",\\\"logDestination\\\":{\\\"bucketName\\\":\\\"s3-bucket-name\\\"}}],\\\"overrideExistingConfig\\\":boolean}}\"

    To use the distributed deployment model, you must set PolicyOption to NULL.

  • Example: THIRD_PARTY_FIREWALL

    \"{ \"type\":\"THIRD_PARTY_FIREWALL\", \"thirdPartyFirewall\":\"PALO_ALTO_NETWORKS_CLOUD_NGFW\", \"thirdPartyFirewallConfig\":{ \"thirdPartyFirewallPolicyList\":[\"global-1\"] }, \"firewallDeploymentModel\":{ \"distributedFirewallDeploymentModel\":{ \"distributedFirewallOrchestrationConfig\":{ \"firewallCreationConfig\":{ \"endpointLocation\":{ \"availabilityZoneConfigList\":[ { \"availabilityZoneName\":\"${AvailabilityZone}\" } ] } }, \"allowedIPV4CidrList\":[ ] } } } }\"

  • Example: SECURITY_GROUPS_COMMON

    \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"

  • Example: SECURITY_GROUPS_COMMON - Security group tag distribution

    \"\"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"revertManualSecurityGroupChanges\\\":true,\\\"exclusiveResourceSecurityGroupManagement\\\":false,\\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":false,\\\"enableTagDistribution\\\":true}\"\"

    Firewall Manager automatically distributes tags from the primary group to the security groups created by this policy. To use security group tag distribution, you must also set revertManualSecurityGroupChanges to true, otherwise Firewall Manager won't be able to create the policy. When you enable revertManualSecurityGroupChanges, Firewall Manager identifies and reports when the security groups created by this policy become non-compliant.

    Firewall Manager won't distrubute system tags added by Amazon Web Services services into the replica security groups. System tags begin with the aws: prefix.

  • Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns

    \"{\\\"type\\\":\\\"SECURITY_GROUPS_COMMON\\\",\\\"revertManualSecurityGroupChanges\\\":false,\\\"exclusiveResourceSecurityGroupManagement\\\":false, \\\"applyToAllEC2InstanceENIs\\\":false,\\\"includeSharedVPC\\\":true,\\\"securityGroups\\\":[{\\\"id\\\":\\\" sg-000e55995d61a06bd\\\"}]}\"

  • Example: SECURITY_GROUPS_CONTENT_AUDIT

    \"{\\\"type\\\":\\\"SECURITY_GROUPS_CONTENT_AUDIT\\\",\\\"securityGroups\\\":[{\\\"id\\\":\\\"sg-000e55995d61a06bd\\\"}],\\\"securityGroupAction\\\":{\\\"type\\\":\\\"ALLOW\\\"}}\"

    The security group action for content audit can be ALLOW or DENY. For ALLOW, all in-scope security group rules must be within the allowed range of the policy's security group rules. For DENY, all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group.

  • Example: SECURITY_GROUPS_USAGE_AUDIT

    \"{\\\"type\\\":\\\"SECURITY_GROUPS_USAGE_AUDIT\\\",\\\"deleteUnusedSecurityGroups\\\":true,\\\"coalesceRedundantSecurityGroups\\\":true}\"

  • Specification for SHIELD_ADVANCED for Amazon CloudFront distributions

    \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED|IGNORED|DISABLED\\\", \\\"automaticResponseAction\\\":\\\"BLOCK|COUNT\\\"}, \\\"overrideCustomerWebaclClassic\\\":true|false}\"

    For example: \"{\\\"type\\\":\\\"SHIELD_ADVANCED\\\",\\\"automaticResponseConfiguration\\\": {\\\"automaticResponseStatus\\\":\\\"ENABLED\\\", \\\"automaticResponseAction\\\":\\\"COUNT\\\"}}\"

    The default value for automaticResponseStatus is IGNORED. The value for automaticResponseAction is only required when automaticResponseStatus is set to ENABLED. The default value for overrideCustomerWebaclClassic is false.

    For other resource types that you can protect with a Shield Advanced policy, this ManagedServiceData configuration is an empty string.

  • Example: WAFV2

    \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"version\\\":null,\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesAmazonIpReputationList\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"

    In the loggingConfiguration, you can specify one logDestinationConfigs, you can optionally provide up to 20 redactedFields, and the RedactedFieldType must be one of URI, QUERY_STRING, HEADER, or METHOD.

  • Example: WAFV2 - Firewall Manager support for WAF managed rule group versioning

    \"{\\\"type\\\":\\\"WAFV2\\\",\\\"preProcessRuleGroups\\\":[{\\\"ruleGroupArn\\\":null,\\\"overrideAction\\\":{\\\"type\\\":\\\"NONE\\\"},\\\"managedRuleGroupIdentifier\\\":{\\\"versionEnabled\\\":true,\\\"version\\\":\\\"Version_2.0\\\",\\\"vendorName\\\":\\\"AWS\\\",\\\"managedRuleGroupName\\\":\\\"AWSManagedRulesCommonRuleSet\\\"},\\\"ruleGroupType\\\":\\\"ManagedRuleGroup\\\",\\\"excludeRules\\\":[{\\\"name\\\":\\\"NoUserAgent_HEADER\\\"}]}],\\\"postProcessRuleGroups\\\":[],\\\"defaultAction\\\":{\\\"type\\\":\\\"ALLOW\\\"},\\\"overrideCustomerWebACLAssociation\\\":false,\\\"loggingConfiguration\\\":{\\\"logDestinationConfigs\\\":[\\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\\"],\\\"redactedFields\\\":[{\\\"redactedFieldType\\\":\\\"SingleHeader\\\",\\\"redactedFieldValue\\\":\\\"Cookies\\\"},{\\\"redactedFieldType\\\":\\\"Method\\\"}]}}\"

    To use a specific version of a WAF managed rule group in your Firewall Manager policy, you must set versionEnabled to true, and set version to the version you'd like to use. If you don't set versionEnabled to true, or if you omit versionEnabled, then Firewall Manager uses the default version of the WAF managed rule group.

  • Example: WAF Classic

    \"{\\\"type\\\": \\\"WAF\\\", \\\"ruleGroups\\\": [{\\\"id\\\":\\\"12345678-1bcd-9012-efga-0987654321ab\\\", \\\"overrideAction\\\" : {\\\"type\\\": \\\"COUNT\\\"}}], \\\"defaultAction\\\": {\\\"type\\\": \\\"BLOCK\\\"}}\"

" }, "PolicyOption":{ "shape":"PolicyOption", @@ -2982,9 +3552,20 @@ "SECURITY_GROUPS_USAGE_AUDIT", "NETWORK_FIREWALL", "DNS_FIREWALL", - "THIRD_PARTY_FIREWALL" + "THIRD_PARTY_FIREWALL", + "IMPORT_NETWORK_FIREWALL" ] }, + "StatefulEngineOptions":{ + "type":"structure", + "members":{ + "RuleOrder":{ + "shape":"RuleOrder", + "documentation":"

Indicates how to manage the order of stateful rule evaluation for the policy. DEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

" + } + }, + "documentation":"

Configuration settings for the handling of the stateful rule groups in a Network Firewall firewall policy.

" + }, "StatefulRuleGroup":{ "type":"structure", "members":{ @@ -2995,6 +3576,14 @@ "ResourceId":{ "shape":"ResourceId", "documentation":"

The resource ID of the rule group.

" + }, + "Priority":{ + "shape":"PriorityNumber", + "documentation":"

An integer setting that indicates the order in which to run the stateful rule groups in a single Network Firewall firewall policy. This setting only applies to firewall policies that specify the STRICT_ORDER rule order in the stateful engine options settings.

Network Firewall evalutes each stateful rule group against a packet starting with the group that has the lowest priority setting. You must ensure that the priority settings are unique within each policy. For information about

You can change the priority settings of your rule groups at any time. To make it easier to insert rule groups later, number them so there's a wide range in between, for example use 100, 200, and so on.

" + }, + "Override":{ + "shape":"NetworkFirewallStatefulRuleGroupOverride", + "documentation":"

The action that allows the policy owner to override the behavior of the rule group within a policy.

" } }, "documentation":"

Network Firewall stateful rule group, used in a NetworkFirewallPolicyDescription.

" @@ -3121,7 +3710,10 @@ }, "ThirdPartyFirewall":{ "type":"string", - "enum":["PALO_ALTO_NETWORKS_CLOUD_NGFW"] + "enum":[ + "PALO_ALTO_NETWORKS_CLOUD_NGFW", + "FORTIGATE_CLOUD_NATIVE_FIREWALL" + ] }, "ThirdPartyFirewallAssociationStatus":{ "type":"string", @@ -3149,7 +3741,7 @@ "documentation":"

The name of the specified firewall policy.

" } }, - "documentation":"

Configures the firewall policy deployment model for a third-party firewall. The deployment model can either be distributed or centralized.

" + "documentation":"

Configures the third-party firewall's firewall policy.

" }, "ThirdPartyFirewallMissingExpectedRouteTableViolation":{ "type":"structure", @@ -3226,10 +3818,10 @@ "members":{ "FirewallDeploymentModel":{ "shape":"FirewallDeploymentModel", - "documentation":"

Defines the deployment model to use for the third-party firewall.

" + "documentation":"

Defines the deployment model to use for the third-party firewall policy.

" } }, - "documentation":"

Configures the policy for the third-party firewall.

" + "documentation":"

Configures the deployment model for the third-party firewall.

" }, "TimeStamp":{"type":"timestamp"}, "UntagResourceRequest":{ diff --git a/botocore/data/forecast/2018-06-26/endpoint-rule-set-1.json b/botocore/data/forecast/2018-06-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..c63a9f15 --- /dev/null +++ b/botocore/data/forecast/2018-06-26/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://forecast-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://forecast-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://forecast.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://forecast.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/forecast/2018-06-26/examples-1.json b/botocore/data/forecast/2018-06-26/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/forecast/2018-06-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/forecast/2018-06-26/paginators-1.json b/botocore/data/forecast/2018-06-26/paginators-1.json index 3498dd62..853dee41 100644 --- a/botocore/data/forecast/2018-06-26/paginators-1.json +++ b/botocore/data/forecast/2018-06-26/paginators-1.json @@ -65,6 +65,24 @@ "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/botocore/data/forecast/2018-06-26/service-2.json b/botocore/data/forecast/2018-06-26/service-2.json index 1ddc4c29..5ec873eb 100644 --- a/botocore/data/forecast/2018-06-26/service-2.json +++ b/botocore/data/forecast/2018-06-26/service-2.json @@ -77,7 +77,7 @@ {"shape":"ResourceInUseException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Imports your training data to an Amazon Forecast dataset. You provide the location of your training data in an Amazon Simple Storage Service (Amazon S3) bucket and the Amazon Resource Name (ARN) of the dataset that you want to import the data to.

You must specify a DataSource object that includes an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the data, as Amazon Forecast makes a copy of your data and processes it in an internal AWS system. For more information, see Set up permissions.

The training data must be in CSV format. The delimiter must be a comma (,).

You can specify the path to a specific CSV file, the S3 bucket, or to a folder in the S3 bucket. For the latter two cases, Amazon Forecast imports all files up to the limit of 10,000 files.

Because dataset imports are not aggregated, your most recent dataset import is the one that is used when training a predictor or generating a forecast. Make sure that your most recent dataset import contains all of the data you want to model off of, and not just the new data collected since the previous import.

To get a list of all your dataset import jobs, filtered by specified criteria, use the ListDatasetImportJobs operation.

" + "documentation":"

Imports your training data to an Amazon Forecast dataset. You provide the location of your training data in an Amazon Simple Storage Service (Amazon S3) bucket and the Amazon Resource Name (ARN) of the dataset that you want to import the data to.

You must specify a DataSource object that includes an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the data, as Amazon Forecast makes a copy of your data and processes it in an internal AWS system. For more information, see Set up permissions.

The training data must be in CSV or Parquet format. The delimiter must be a comma (,).

You can specify the path to a specific file, the S3 bucket, or to a folder in the S3 bucket. For the latter two cases, Amazon Forecast imports all files up to the limit of 10,000 files.

Because dataset imports are not aggregated, your most recent dataset import is the one that is used when training a predictor or generating a forecast. Make sure that your most recent dataset import contains all of the data you want to model off of, and not just the new data collected since the previous import.

To get a list of all your dataset import jobs, filtered by specified criteria, use the ListDatasetImportJobs operation.

" }, "CreateExplainability":{ "name":"CreateExplainability", @@ -128,7 +128,7 @@ {"shape":"ResourceInUseException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Creates a forecast for each item in the TARGET_TIME_SERIES dataset that was used to train the predictor. This is known as inference. To retrieve the forecast for a single item at low latency, use the operation. To export the complete forecast into your Amazon Simple Storage Service (Amazon S3) bucket, use the CreateForecastExportJob operation.

The range of the forecast is determined by the ForecastHorizon value, which you specify in the CreatePredictor request. When you query a forecast, you can request a specific date range within the forecast.

To get a list of all your forecasts, use the ListForecasts operation.

The forecasts generated by Amazon Forecast are in the same time zone as the dataset that was used to create the predictor.

For more information, see howitworks-forecast.

The Status of the forecast must be ACTIVE before you can query or export the forecast. Use the DescribeForecast operation to get the status.

" + "documentation":"

Creates a forecast for each item in the TARGET_TIME_SERIES dataset that was used to train the predictor. This is known as inference. To retrieve the forecast for a single item at low latency, use the operation. To export the complete forecast into your Amazon Simple Storage Service (Amazon S3) bucket, use the CreateForecastExportJob operation.

The range of the forecast is determined by the ForecastHorizon value, which you specify in the CreatePredictor request. When you query a forecast, you can request a specific date range within the forecast.

To get a list of all your forecasts, use the ListForecasts operation.

The forecasts generated by Amazon Forecast are in the same time zone as the dataset that was used to create the predictor.

For more information, see howitworks-forecast.

The Status of the forecast must be ACTIVE before you can query or export the forecast. Use the DescribeForecast operation to get the status.

By default, a forecast includes predictions for every item (item_id) in the dataset group that was used to train the predictor. However, you can use the TimeSeriesSelector object to generate a forecast on a subset of time series. Forecast creation is skipped for any time series that you specify that are not in the input dataset. The forecast export file will not contain these time series or their forecasted values.

" }, "CreateForecastExportJob":{ "name":"CreateForecastExportJob", @@ -196,7 +196,58 @@ {"shape":"ResourceInUseException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Exports backtest forecasts and accuracy metrics generated by the CreateAutoPredictor or CreatePredictor operations. Two folders containing CSV files are exported to your specified S3 bucket.

The export file names will match the following conventions:

<ExportJobName>_<ExportTimestamp>_<PartNumber>.csv

The <ExportTimestamp> component is in Java SimpleDate format (yyyy-MM-ddTHH-mm-ssZ).

You must specify a DataDestination object that includes an Amazon S3 bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket. For more information, see aws-forecast-iam-roles.

The Status of the export job must be ACTIVE before you can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

" + "documentation":"

Exports backtest forecasts and accuracy metrics generated by the CreateAutoPredictor or CreatePredictor operations. Two folders containing CSV or Parquet files are exported to your specified S3 bucket.

The export file names will match the following conventions:

<ExportJobName>_<ExportTimestamp>_<PartNumber>.csv

The <ExportTimestamp> component is in Java SimpleDate format (yyyy-MM-ddTHH-mm-ssZ).

You must specify a DataDestination object that includes an Amazon S3 bucket and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket. For more information, see aws-forecast-iam-roles.

The Status of the export job must be ACTIVE before you can access the export in your Amazon S3 bucket. To get the status, use the DescribePredictorBacktestExportJob operation.

" + }, + "CreateWhatIfAnalysis":{ + "name":"CreateWhatIfAnalysis", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWhatIfAnalysisRequest"}, + "output":{"shape":"CreateWhatIfAnalysisResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

What-if analysis is a scenario modeling technique where you make a hypothetical change to a time series and compare the forecasts generated by these changes against the baseline, unchanged time series. It is important to remember that the purpose of a what-if analysis is to understand how a forecast can change given different modifications to the baseline time series.

For example, imagine you are a clothing retailer who is considering an end of season sale to clear space for new styles. After creating a baseline forecast, you can use a what-if analysis to investigate how different sales tactics might affect your goals. You could create a scenario where everything is given a 25% markdown and another where everything is given a fixed dollar markdown. You can create a scenario where the sale lasts for 1 week and another where the sale lasts for 1 month. Your what-if analysis enables you to compare many different scenarios against each other.

Note that a what-if analysis is meant to display what the forecasting model has learned and how it will behave in the scenarios that you are evaluating. Do not blindly use the results of the what-if analysis to make business decisions. For instance, forecasts might not be accurate for novel scenarios where there is no reference available to determine whether a forecast is good.

The TimeSeriesSelector object defines the items that you want in the what-if analysis.

" + }, + "CreateWhatIfForecast":{ + "name":"CreateWhatIfForecast", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWhatIfForecastRequest"}, + "output":{"shape":"CreateWhatIfForecastResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

A what-if forecast is a forecast that is created from a modified version of the baseline forecast. Each what-if forecast incorporates either a replacement dataset or a set of transformations to the original dataset.

" + }, + "CreateWhatIfForecastExport":{ + "name":"CreateWhatIfForecastExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWhatIfForecastExportRequest"}, + "output":{"shape":"CreateWhatIfForecastExportResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Exports a forecast created by the CreateWhatIfForecast operation to your Amazon Simple Storage Service (Amazon S3) bucket. The forecast file name will match the following conventions:

≈<ForecastExportJobName>_<ExportTimestamp>_<PartNumber>

The <ExportTimestamp> component is in Java SimpleDateFormat (yyyy-MM-ddTHH-mm-ssZ).

You must specify a DataDestination object that includes an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the Amazon S3 bucket. For more information, see aws-forecast-iam-roles.

For more information, see howitworks-forecast.

To get a list of all your what-if forecast export jobs, use the ListWhatIfForecastExports operation.

The Status of the forecast export job must be ACTIVE before you can access the forecast in your Amazon S3 bucket. To get the status, use the DescribeWhatIfForecastExport operation.

" }, "DeleteDataset":{ "name":"DeleteDataset", @@ -363,6 +414,51 @@ "documentation":"

Deletes an entire resource tree. This operation will delete the parent resource and its child resources.

Child resources are resources that were created from another resource. For example, when a forecast is generated from a predictor, the forecast is the child resource and the predictor is the parent resource.

Amazon Forecast resources possess the following parent-child resource hierarchies:

  • Dataset: dataset import jobs

  • Dataset Group: predictors, predictor backtest export jobs, forecasts, forecast export jobs

  • Predictor: predictor backtest export jobs, forecasts, forecast export jobs

  • Forecast: forecast export jobs

DeleteResourceTree will only delete Amazon Forecast resources, and will not delete datasets or exported files stored in Amazon S3.

", "idempotent":true }, + "DeleteWhatIfAnalysis":{ + "name":"DeleteWhatIfAnalysis", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteWhatIfAnalysisRequest"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"} + ], + "documentation":"

Deletes a what-if analysis created using the CreateWhatIfAnalysis operation. You can delete only what-if analyses that have a status of ACTIVE or CREATE_FAILED. To get the status, use the DescribeWhatIfAnalysis operation.

You can't delete a what-if analysis while any of its forecasts are being exported.

", + "idempotent":true + }, + "DeleteWhatIfForecast":{ + "name":"DeleteWhatIfForecast", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteWhatIfForecastRequest"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"} + ], + "documentation":"

Deletes a what-if forecast created using the CreateWhatIfForecast operation. You can delete only what-if forecasts that have a status of ACTIVE or CREATE_FAILED. To get the status, use the DescribeWhatIfForecast operation.

You can't delete a what-if forecast while it is being exported. After a what-if forecast is deleted, you can no longer query the what-if analysis.

", + "idempotent":true + }, + "DeleteWhatIfForecastExport":{ + "name":"DeleteWhatIfForecastExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteWhatIfForecastExportRequest"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"} + ], + "documentation":"

Deletes a what-if forecast export created using the CreateWhatIfForecastExport operation. You can delete only what-if forecast exports that have a status of ACTIVE or CREATE_FAILED. To get the status, use the DescribeWhatIfForecastExport operation.

", + "idempotent":true + }, "DescribeAutoPredictor":{ "name":"DescribeAutoPredictor", "http":{ @@ -528,6 +624,51 @@ "documentation":"

Describes a predictor backtest export job created using the CreatePredictorBacktestExportJob operation.

In addition to listing the properties provided by the user in the CreatePredictorBacktestExportJob request, this operation lists the following properties:

  • CreationTime

  • LastModificationTime

  • Status

  • Message (if an error occurred)

", "idempotent":true }, + "DescribeWhatIfAnalysis":{ + "name":"DescribeWhatIfAnalysis", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWhatIfAnalysisRequest"}, + "output":{"shape":"DescribeWhatIfAnalysisResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes the what-if analysis created using the CreateWhatIfAnalysis operation.

In addition to listing the properties provided in the CreateWhatIfAnalysis request, this operation lists the following properties:

  • CreationTime

  • LastModificationTime

  • Message - If an error occurred, information about the error.

  • Status

", + "idempotent":true + }, + "DescribeWhatIfForecast":{ + "name":"DescribeWhatIfForecast", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWhatIfForecastRequest"}, + "output":{"shape":"DescribeWhatIfForecastResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes the what-if forecast created using the CreateWhatIfForecast operation.

In addition to listing the properties provided in the CreateWhatIfForecast request, this operation lists the following properties:

  • CreationTime

  • LastModificationTime

  • Message - If an error occurred, information about the error.

  • Status

", + "idempotent":true + }, + "DescribeWhatIfForecastExport":{ + "name":"DescribeWhatIfForecastExport", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeWhatIfForecastExportRequest"}, + "output":{"shape":"DescribeWhatIfForecastExportResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes the what-if forecast export created using the CreateWhatIfForecastExport operation.

In addition to listing the properties provided in the CreateWhatIfForecastExport request, this operation lists the following properties:

  • CreationTime

  • LastModificationTime

  • Message - If an error occurred, information about the error.

  • Status

", + "idempotent":true + }, "GetAccuracyMetrics":{ "name":"GetAccuracyMetrics", "http":{ @@ -660,7 +801,7 @@ {"shape":"InvalidInputException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Returns a list of the monitoring evaluation results and predictor events collected by the monitor resource during different windows of time.

For information about monitoring see Viewing Monitoring Results. For more information about retrieving monitoring results see Viewing Monitoring Results.

", + "documentation":"

Returns a list of the monitoring evaluation results and predictor events collected by the monitor resource during different windows of time.

For information about monitoring see predictor-monitoring. For more information about retrieving monitoring results see Viewing Monitoring Results.

", "idempotent":true }, "ListMonitors":{ @@ -722,6 +863,51 @@ ], "documentation":"

Lists the tags for an Amazon Forecast resource.

" }, + "ListWhatIfAnalyses":{ + "name":"ListWhatIfAnalyses", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListWhatIfAnalysesRequest"}, + "output":{"shape":"ListWhatIfAnalysesResponse"}, + "errors":[ + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Returns a list of what-if analyses created using the CreateWhatIfAnalysis operation. For each what-if analysis, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the what-if analysis ARN with the DescribeWhatIfAnalysis operation.

", + "idempotent":true + }, + "ListWhatIfForecastExports":{ + "name":"ListWhatIfForecastExports", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListWhatIfForecastExportsRequest"}, + "output":{"shape":"ListWhatIfForecastExportsResponse"}, + "errors":[ + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Returns a list of what-if forecast exports created using the CreateWhatIfForecastExport operation. For each what-if forecast export, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the what-if forecast export ARN with the DescribeWhatIfForecastExport operation.

", + "idempotent":true + }, + "ListWhatIfForecasts":{ + "name":"ListWhatIfForecasts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListWhatIfForecastsRequest"}, + "output":{"shape":"ListWhatIfForecastsResponse"}, + "errors":[ + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Returns a list of what-if forecasts created using the CreateWhatIfForecast operation. For each what-if forecast, this operation returns a summary of its properties, including its Amazon Resource Name (ARN). You can retrieve the complete set of properties by using the what-if forecast ARN with the DescribeWhatIfForecast operation.

", + "idempotent":true + }, "ResumeResource":{ "name":"ResumeResource", "http":{ @@ -800,6 +986,29 @@ } }, "shapes":{ + "Action":{ + "type":"structure", + "required":[ + "AttributeName", + "Operation", + "Value" + ], + "members":{ + "AttributeName":{ + "shape":"Name", + "documentation":"

The related time series that you are modifying. This value is case insensitive.

" + }, + "Operation":{ + "shape":"Operation", + "documentation":"

The operation that is applied to the provided attribute. Operations include:

  • ADD - adds Value to all rows of AttributeName.

  • SUBTRACT - subtracts Value from all rows of AttributeName.

  • MULTIPLY - multiplies all rows of AttributeName by Value.

  • DIVIDE - divides all rows of AttributeName by Value.

" + }, + "Value":{ + "shape":"Double", + "documentation":"

The value that is applied for the chosen Operation.

" + } + }, + "documentation":"

Defines the modifications that you are making to an attribute for a what-if forecast. For example, you can use this operation to create a what-if forecast that investigates a 10% off sale on all shoes. To do this, you specify \"AttributeName\": \"shoes\", \"Operation\": \"MULTIPLY\", and \"Value\": \"0.90\". Pair this operation with the TimeSeriesCondition operation within the CreateWhatIfForecastRequest$TimeSeriesTransformations operation to define a subset of attribute items that are modified.

" + }, "AdditionalDataset":{ "type":"structure", "required":["Name"], @@ -824,7 +1033,7 @@ "Arn":{ "type":"string", "max":256, - "pattern":"^[a-zA-Z0-9\\-\\_\\.\\/\\:]+$" + "pattern":"arn:([a-z\\d-]+):forecast:.*:.*:.+" }, "ArnList":{ "type":"list", @@ -864,6 +1073,11 @@ "geolocation" ] }, + "AttributeValue":{ + "type":"string", + "max":256, + "pattern":".+" + }, "AutoMLOverrideStrategy":{ "type":"string", "enum":[ @@ -924,6 +1138,15 @@ "max":20, "min":1 }, + "Condition":{ + "type":"string", + "enum":[ + "EQUALS", + "NOT_EQUALS", + "LESS_THAN", + "GREATER_THAN" + ] + }, "Configuration":{ "type":"map", "key":{"shape":"Name"}, @@ -1010,6 +1233,10 @@ "MonitorConfig":{ "shape":"MonitorConfig", "documentation":"

The configuration details for predictor monitoring. Provide a name for the monitor resource to enable predictor monitoring.

Predictor monitoring allows you to see how your predictor's performance changes over time. For more information, see Predictor Monitoring.

" + }, + "TimeAlignmentBoundary":{ + "shape":"TimeAlignmentBoundary", + "documentation":"

The time boundary Forecast uses to align and aggregate any data that doesn't align with your forecast frequency. Provide the unit of time and the time boundary as a key value pair. For more information on specifying a time boundary, see Specifying a Time Boundary. If you don't provide a time boundary, Forecast uses a set of Default Time Boundaries.

" } } }, @@ -1095,6 +1322,10 @@ "Tags":{ "shape":"Tags", "documentation":"

The optional metadata that you apply to the dataset import job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50.

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8.

  • Maximum value length - 256 Unicode characters in UTF-8.

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the imported data, CSV or PARQUET. The default value is CSV.

" } } }, @@ -1175,6 +1406,10 @@ "Tags":{ "shape":"Tags", "documentation":"

Optional metadata to help you categorize and organize your resources. Each tag consists of a key and an optional value, both of which you define. Tag keys and values are case sensitive.

The following restrictions apply to tags:

  • For each resource, each tag key must be unique and each tag key must have one value.

  • Maximum number of tags per resource: 50.

  • Maximum key length: 128 Unicode characters in UTF-8.

  • Maximum value length: 256 Unicode characters in UTF-8.

  • Accepted characters: all letters and numbers, spaces representable in UTF-8, and + - = . _ : / @. If your tagging schema is used across other services and resources, the character restrictions of those services also apply.

  • Key prefixes cannot include any upper or lowercase combination of aws: or AWS:. Values can have this prefix. If a tag value has aws as its prefix but the key does not, Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit. You cannot edit or delete tag keys with this prefix.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the exported data, CSV or PARQUET.

" } } }, @@ -1259,6 +1494,10 @@ "Tags":{ "shape":"Tags", "documentation":"

The optional metadata that you apply to the forecast export job to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50.

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8.

  • Maximum value length - 256 Unicode characters in UTF-8.

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the exported data, CSV or PARQUET. The default value is CSV.

" } } }, @@ -1293,6 +1532,10 @@ "Tags":{ "shape":"Tags", "documentation":"

The optional metadata that you apply to the forecast to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50.

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8.

  • Maximum value length - 256 Unicode characters in UTF-8.

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value has aws as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit.

" + }, + "TimeSeriesSelector":{ + "shape":"TimeSeriesSelector", + "documentation":"

Defines the set of time series that are used to create the forecasts in a TimeSeriesIdentifiers object.

The TimeSeriesIdentifiers object needs the following information:

  • DataSource

  • Format

  • Schema

" } } }, @@ -1355,6 +1598,10 @@ "Tags":{ "shape":"Tags", "documentation":"

Optional metadata to help you categorize and organize your backtests. Each tag consists of a key and an optional value, both of which you define. Tag keys and values are case sensitive.

The following restrictions apply to tags:

  • For each resource, each tag key must be unique and each tag key must have one value.

  • Maximum number of tags per resource: 50.

  • Maximum key length: 128 Unicode characters in UTF-8.

  • Maximum value length: 256 Unicode characters in UTF-8.

  • Accepted characters: all letters and numbers, spaces representable in UTF-8, and + - = . _ : / @. If your tagging schema is used across other services and resources, the character restrictions of those services also apply.

  • Key prefixes cannot include any upper or lowercase combination of aws: or AWS:. Values can have this prefix. If a tag value has aws as its prefix but the key does not, Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix of aws do not count against your tags per resource limit. You cannot edit or delete tag keys with this prefix.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the exported data, CSV or PARQUET. The default value is CSV.

" } } }, @@ -1447,6 +1694,117 @@ } } }, + "CreateWhatIfAnalysisRequest":{ + "type":"structure", + "required":[ + "WhatIfAnalysisName", + "ForecastArn" + ], + "members":{ + "WhatIfAnalysisName":{ + "shape":"Name", + "documentation":"

The name of the what-if analysis. Each name must be unique.

" + }, + "ForecastArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the baseline forecast.

" + }, + "TimeSeriesSelector":{ + "shape":"TimeSeriesSelector", + "documentation":"

Defines the set of time series that are used in the what-if analysis with a TimeSeriesIdentifiers object. What-if analyses are performed only for the time series in this object.

The TimeSeriesIdentifiers object needs the following information:

  • DataSource

  • Format

  • Schema

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

A list of tags to apply to the what if forecast.

" + } + } + }, + "CreateWhatIfAnalysisResponse":{ + "type":"structure", + "members":{ + "WhatIfAnalysisArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if analysis.

" + } + } + }, + "CreateWhatIfForecastExportRequest":{ + "type":"structure", + "required":[ + "WhatIfForecastExportName", + "WhatIfForecastArns", + "Destination" + ], + "members":{ + "WhatIfForecastExportName":{ + "shape":"Name", + "documentation":"

The name of the what-if forecast to export.

" + }, + "WhatIfForecastArns":{ + "shape":"WhatIfForecastArnListForExport", + "documentation":"

The list of what-if forecast Amazon Resource Names (ARNs) to export.

" + }, + "Destination":{ + "shape":"DataDestination", + "documentation":"

The location where you want to save the forecast and an AWS Identity and Access Management (IAM) role that Amazon Forecast can assume to access the location. The forecast must be exported to an Amazon S3 bucket.

If encryption is used, Destination must include an AWS Key Management Service (KMS) key. The IAM role must allow Amazon Forecast permission to access the key.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

A list of tags to apply to the what if forecast.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the exported data, CSV or PARQUET.

" + } + } + }, + "CreateWhatIfForecastExportResponse":{ + "type":"structure", + "members":{ + "WhatIfForecastExportArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast.

" + } + } + }, + "CreateWhatIfForecastRequest":{ + "type":"structure", + "required":[ + "WhatIfForecastName", + "WhatIfAnalysisArn" + ], + "members":{ + "WhatIfForecastName":{ + "shape":"Name", + "documentation":"

The name of the what-if forecast. Names must be unique within each what-if analysis.

" + }, + "WhatIfAnalysisArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if analysis.

" + }, + "TimeSeriesTransformations":{ + "shape":"TimeSeriesTransformations", + "documentation":"

The transformations that are applied to the baseline time series. Each transformation contains an action and a set of conditions. An action is applied only when all conditions are met. If no conditions are provided, the action is applied to all items.

" + }, + "TimeSeriesReplacementsDataSource":{ + "shape":"TimeSeriesReplacementsDataSource", + "documentation":"

The replacement time series dataset, which contains the rows that you want to change in the related time series dataset. A replacement time series does not need to contain all rows that are in the baseline related time series. Include only the rows (measure-dimension combinations) that you want to include in the what-if forecast. This dataset is merged with the original time series to create a transformed dataset that is used for the what-if analysis.

This dataset should contain the items to modify (such as item_id or workforce_type), any relevant dimensions, the timestamp column, and at least one of the related time series columns. This file should not contain duplicate timestamps for the same time series.

Timestamps and item_ids not included in this dataset are not included in the what-if analysis.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

A list of tags to apply to the what if forecast.

" + } + } + }, + "CreateWhatIfForecastResponse":{ + "type":"structure", + "members":{ + "WhatIfForecastArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast.

" + } + } + }, "DataConfig":{ "type":"structure", "required":["DatasetGroupArn"], @@ -1594,6 +1952,23 @@ "type":"list", "member":{"shape":"DatasetSummary"} }, + "DayOfMonth":{ + "type":"integer", + "max":28, + "min":1 + }, + "DayOfWeek":{ + "type":"string", + "enum":[ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, "DeleteDatasetGroupRequest":{ "type":"structure", "required":["DatasetGroupArn"], @@ -1704,6 +2079,36 @@ } } }, + "DeleteWhatIfAnalysisRequest":{ + "type":"structure", + "required":["WhatIfAnalysisArn"], + "members":{ + "WhatIfAnalysisArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if analysis that you want to delete.

" + } + } + }, + "DeleteWhatIfForecastExportRequest":{ + "type":"structure", + "required":["WhatIfForecastExportArn"], + "members":{ + "WhatIfForecastExportArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast export that you want to delete.

" + } + } + }, + "DeleteWhatIfForecastRequest":{ + "type":"structure", + "required":["WhatIfForecastArn"], + "members":{ + "WhatIfForecastArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast that you want to delete.

" + } + } + }, "DescribeAutoPredictorRequest":{ "type":"structure", "required":["PredictorArn"], @@ -1785,6 +2190,10 @@ "MonitorInfo":{ "shape":"MonitorInfo", "documentation":"

A object with the Amazon Resource Name (ARN) and status of the monitor resource.

" + }, + "TimeAlignmentBoundary":{ + "shape":"TimeAlignmentBoundary", + "documentation":"

The time boundary Forecast uses when aggregating data.

" } } }, @@ -1903,6 +2312,10 @@ "LastModificationTime":{ "shape":"Timestamp", "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the imported data, CSV or PARQUET.

" } } }, @@ -1984,7 +2397,7 @@ }, "ExplainabilityArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the Explainability.

" + "documentation":"

The Amazon Resource Name (ARN) of the Explainability export.

" }, "Destination":{"shape":"DataDestination"}, "Message":{ @@ -2002,6 +2415,10 @@ "LastModificationTime":{ "shape":"Timestamp", "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the exported data, CSV or PARQUET.

" } } }, @@ -2114,6 +2531,10 @@ "LastModificationTime":{ "shape":"Timestamp", "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the exported data, CSV or PARQUET.

" } } }, @@ -2169,6 +2590,10 @@ "LastModificationTime":{ "shape":"Timestamp", "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + }, + "TimeSeriesSelector":{ + "shape":"TimeSeriesSelector", + "documentation":"

The time series to include in the forecast.

" } } }, @@ -2272,6 +2697,10 @@ "LastModificationTime":{ "shape":"Timestamp", "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the exported data, CSV or PARQUET.

" } } }, @@ -2386,6 +2815,165 @@ } } }, + "DescribeWhatIfAnalysisRequest":{ + "type":"structure", + "required":["WhatIfAnalysisArn"], + "members":{ + "WhatIfAnalysisArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if analysis that you are interested in.

" + } + } + }, + "DescribeWhatIfAnalysisResponse":{ + "type":"structure", + "members":{ + "WhatIfAnalysisName":{ + "shape":"Name", + "documentation":"

The name of the what-if analysis.

" + }, + "WhatIfAnalysisArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if analysis.

" + }, + "ForecastArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast.

" + }, + "EstimatedTimeRemainingInMinutes":{ + "shape":"Long", + "documentation":"

The approximate time remaining to complete the what-if analysis, in minutes.

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of the what-if analysis. States include:

  • ACTIVE

  • CREATE_PENDING, CREATE_IN_PROGRESS, CREATE_FAILED

  • CREATE_STOPPING, CREATE_STOPPED

  • DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED

The Status of the what-if analysis must be ACTIVE before you can access the analysis.

" + }, + "Message":{ + "shape":"ErrorMessage", + "documentation":"

If an error occurred, an informational message about the error.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

When the what-if analysis was created.

" + }, + "LastModificationTime":{ + "shape":"Timestamp", + "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + }, + "TimeSeriesSelector":{"shape":"TimeSeriesSelector"} + } + }, + "DescribeWhatIfForecastExportRequest":{ + "type":"structure", + "required":["WhatIfForecastExportArn"], + "members":{ + "WhatIfForecastExportArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast export that you are interested in.

" + } + } + }, + "DescribeWhatIfForecastExportResponse":{ + "type":"structure", + "members":{ + "WhatIfForecastExportArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast export.

" + }, + "WhatIfForecastExportName":{ + "shape":"Name", + "documentation":"

The name of the what-if forecast export.

" + }, + "WhatIfForecastArns":{ + "shape":"LongArnList", + "documentation":"

An array of Amazon Resource Names (ARNs) that represent all of the what-if forecasts exported in this resource.

" + }, + "Destination":{"shape":"DataDestination"}, + "Message":{ + "shape":"Message", + "documentation":"

If an error occurred, an informational message about the error.

" + }, + "Status":{ + "shape":"Status", + "documentation":"

The status of the what-if forecast. States include:

  • ACTIVE

  • CREATE_PENDING, CREATE_IN_PROGRESS, CREATE_FAILED

  • CREATE_STOPPING, CREATE_STOPPED

  • DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED

The Status of the what-if forecast export must be ACTIVE before you can access the forecast export.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

When the what-if forecast export was created.

" + }, + "EstimatedTimeRemainingInMinutes":{ + "shape":"Long", + "documentation":"

The approximate time remaining to complete the what-if forecast export, in minutes.

" + }, + "LastModificationTime":{ + "shape":"Timestamp", + "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + }, + "Format":{ + "shape":"Format", + "documentation":"

The format of the exported data, CSV or PARQUET.

" + } + } + }, + "DescribeWhatIfForecastRequest":{ + "type":"structure", + "required":["WhatIfForecastArn"], + "members":{ + "WhatIfForecastArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast that you are interested in.

" + } + } + }, + "DescribeWhatIfForecastResponse":{ + "type":"structure", + "members":{ + "WhatIfForecastName":{ + "shape":"Name", + "documentation":"

The name of the what-if forecast.

" + }, + "WhatIfForecastArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast.

" + }, + "WhatIfAnalysisArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if analysis that contains this forecast.

" + }, + "EstimatedTimeRemainingInMinutes":{ + "shape":"Long", + "documentation":"

The approximate time remaining to complete the what-if forecast, in minutes.

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of the what-if forecast. States include:

  • ACTIVE

  • CREATE_PENDING, CREATE_IN_PROGRESS, CREATE_FAILED

  • CREATE_STOPPING, CREATE_STOPPED

  • DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED

The Status of the what-if forecast must be ACTIVE before you can access the forecast.

" + }, + "Message":{ + "shape":"ErrorMessage", + "documentation":"

If an error occurred, an informational message about the error.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

When the what-if forecast was created.

" + }, + "LastModificationTime":{ + "shape":"Timestamp", + "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + }, + "TimeSeriesTransformations":{ + "shape":"TimeSeriesTransformations", + "documentation":"

An array of Action and TimeSeriesConditions elements that describe what transformations were applied to which time series.

" + }, + "TimeSeriesReplacementsDataSource":{ + "shape":"TimeSeriesReplacementsDataSource", + "documentation":"

An array of S3Config, Schema, and Format elements that describe the replacement time series.

" + }, + "ForecastTypes":{ + "shape":"ForecastTypes", + "documentation":"

The quantiles at which probabilistic forecasts are generated. You can specify up to 5 quantiles per what-if forecast in the CreateWhatIfForecast operation. If you didn't specify quantiles, the default values are [\"0.1\", \"0.5\", \"0.9\"].

" + } + } + }, "Detail":{ "type":"string", "max":256 @@ -2504,7 +3092,7 @@ "members":{ "TimeSeriesGranularity":{ "shape":"TimeSeriesGranularity", - "documentation":"

To create an Explainability for all time series in your datasets, use ALL. To create an Explainability for specific time series in your datasets, use SPECIFIC.

Specify time series by uploading a CSV file to an Amazon S3 bucket and set the location within the DataDestination data type.

" + "documentation":"

To create an Explainability for all time series in your datasets, use ALL. To create an Explainability for specific time series in your datasets, use SPECIFIC.

Specify time series by uploading a CSV or Parquet file to an Amazon S3 bucket and set the location within the DataDestination data type.

" }, "TimePointGranularity":{ "shape":"TimePointGranularity", @@ -2813,6 +3401,11 @@ "type":"list", "member":{"shape":"ForecastSummary"} }, + "Format":{ + "type":"string", + "max":7, + "pattern":"^CSV|PARQUET$" + }, "Frequency":{ "type":"string", "max":5, @@ -2855,6 +3448,11 @@ } } }, + "Hour":{ + "type":"integer", + "max":23, + "min":0 + }, "HyperParameterTuningJobConfig":{ "type":"structure", "members":{ @@ -3289,12 +3887,111 @@ } } }, + "ListWhatIfAnalysesRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the result of the previous request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The number of items to return in the response.

" + }, + "Filters":{ + "shape":"Filters", + "documentation":"

An array of filters. For each filter, you provide a condition and a match statement. The condition is either IS or IS_NOT, which specifies whether to include or exclude the what-if analysis jobs that match the statement from the list, respectively. The match statement consists of a key and a value.

Filter properties

  • Condition - The condition to apply. Valid values are IS and IS_NOT. To include the what-if analysis jobs that match the statement, specify IS. To exclude matching what-if analysis jobs, specify IS_NOT.

  • Key - The name of the parameter to filter on. Valid values are WhatIfAnalysisArn and Status.

  • Value - The value to match.

For example, to list all jobs that export a forecast named electricityWhatIf, specify the following filter:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"WhatIfAnalysisArn\", \"Value\": \"arn:aws:forecast:us-west-2:<acct-id>:forecast/electricityWhatIf\" } ]

" + } + } + }, + "ListWhatIfAnalysesResponse":{ + "type":"structure", + "members":{ + "WhatIfAnalyses":{ + "shape":"WhatIfAnalyses", + "documentation":"

An array of WhatIfAnalysisSummary objects that describe the matched analyses.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, Forecast returns this token. To retrieve the next set of results, use the token in the next request.

" + } + } + }, + "ListWhatIfForecastExportsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the result of the previous request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next
 request. Tokens expire after 24 hours.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The number of items to return in the response.

" + }, + "Filters":{ + "shape":"Filters", + "documentation":"

An array of filters. For each filter, you provide a condition and a match statement. The condition is either IS or IS_NOT, which specifies whether to include or exclude the what-if forecast export jobs that match the statement from the list, respectively. The match statement consists of a key and a value.

Filter properties

  • Condition - The condition to apply. Valid values are IS and IS_NOT. To include the forecast export jobs that match the statement, specify IS. To exclude matching forecast export jobs, specify IS_NOT.

  • Key - The name of the parameter to filter on. Valid values are WhatIfForecastExportArn and Status.

  • Value - The value to match.

For example, to list all jobs that export a forecast named electricityWIFExport, specify the following filter:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"WhatIfForecastExportArn\", \"Value\": \"arn:aws:forecast:us-west-2:<acct-id>:forecast/electricityWIFExport\" } ]

" + } + } + }, + "ListWhatIfForecastExportsResponse":{ + "type":"structure", + "members":{ + "WhatIfForecastExports":{ + "shape":"WhatIfForecastExports", + "documentation":"

An array of WhatIfForecastExports objects that describe the matched forecast exports.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, Forecast returns this token. To retrieve the next set of results, use the token in the next request.

" + } + } + }, + "ListWhatIfForecastsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the result of the previous request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next
 request. Tokens expire after 24 hours.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The number of items to return in the response.

" + }, + "Filters":{ + "shape":"Filters", + "documentation":"

An array of filters. For each filter, you provide a condition and a match statement. The condition is either IS or IS_NOT, which specifies whether to include or exclude the what-if forecast export jobs that match the statement from the list, respectively. The match statement consists of a key and a value.

Filter properties

  • Condition - The condition to apply. Valid values are IS and IS_NOT. To include the forecast export jobs that match the statement, specify IS. To exclude matching forecast export jobs, specify IS_NOT.

  • Key - The name of the parameter to filter on. Valid values are WhatIfForecastArn and Status.

  • Value - The value to match.

For example, to list all jobs that export a forecast named electricityWhatIfForecast, specify the following filter:

\"Filters\": [ { \"Condition\": \"IS\", \"Key\": \"WhatIfForecastArn\", \"Value\": \"arn:aws:forecast:us-west-2:<acct-id>:forecast/electricityWhatIfForecast\" } ]

" + } + } + }, + "ListWhatIfForecastsResponse":{ + "type":"structure", + "members":{ + "WhatIfForecasts":{ + "shape":"WhatIfForecasts", + "documentation":"

An array of WhatIfForecasts objects that describe the matched forecasts.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the result of the previous request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next
 request. Tokens expire after 24 hours.

" + } + } + }, "LocalDateTime":{ "type":"string", "max":19, "pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$" }, "Long":{"type":"long"}, + "LongArn":{ + "type":"string", + "max":300, + "pattern":"arn:([a-z\\d-]+):forecast:.*:.*:.+" + }, + "LongArnList":{ + "type":"list", + "member":{"shape":"LongArn"} + }, "MaxResults":{ "type":"integer", "max":100, @@ -3424,6 +4121,23 @@ "type":"list", "member":{"shape":"MonitorSummary"} }, + "Month":{ + "type":"string", + "enum":[ + "JANUARY", + "FEBRUARY", + "MARCH", + "APRIL", + "MAY", + "JUNE", + "JULY", + "AUGUST", + "SEPTEMBER", + "OCTOBER", + "NOVEMBER", + "DECEMBER" + ] + }, "Name":{ "type":"string", "max":63, @@ -3436,6 +4150,15 @@ "min":1, "pattern":".+" }, + "Operation":{ + "type":"string", + "enum":[ + "ADD", + "SUBTRACT", + "MULTIPLY", + "DIVIDE" + ] + }, "OptimizationMetric":{ "type":"string", "enum":[ @@ -3570,8 +4293,14 @@ "PredictorMonitorEvaluation":{ "type":"structure", "members":{ - "ResourceArn":{"shape":"Arn"}, - "MonitorArn":{"shape":"Arn"}, + "ResourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource to monitor.

" + }, + "MonitorArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the monitor resource.

" + }, "EvaluationTime":{ "shape":"Timestamp", "documentation":"

The timestamp that indicates when the monitor evaluation was started.

" @@ -3976,6 +4705,28 @@ "type":"list", "member":{"shape":"WindowSummary"} }, + "TimeAlignmentBoundary":{ + "type":"structure", + "members":{ + "Month":{ + "shape":"Month", + "documentation":"

The month to use for time alignment during aggregation. The month must be in uppercase.

" + }, + "DayOfMonth":{ + "shape":"DayOfMonth", + "documentation":"

The day of the month to use for time alignment during aggregation.

" + }, + "DayOfWeek":{ + "shape":"DayOfWeek", + "documentation":"

The day of week to use for time alignment during aggregation. The day must be in uppercase.

" + }, + "Hour":{ + "shape":"Hour", + "documentation":"

The hour of day to use for time alignment during aggregation.

" + } + }, + "documentation":"

The time boundary Forecast uses to align and aggregate your data to match your forecast frequency. Provide the unit of time and the time boundary as a key value pair. If you don't provide a time boundary, Forecast uses a set of Default Time Boundaries.

For more information about aggregation, see Data Aggregation for Different Forecast Frequencies. For more information setting a custom time boundary, see Specifying a Time Boundary.

" + }, "TimePointGranularity":{ "type":"string", "enum":[ @@ -3983,6 +4734,35 @@ "SPECIFIC" ] }, + "TimeSeriesCondition":{ + "type":"structure", + "required":[ + "AttributeName", + "AttributeValue", + "Condition" + ], + "members":{ + "AttributeName":{ + "shape":"Name", + "documentation":"

The item_id, dimension name, IM name, or timestamp that you are modifying.

" + }, + "AttributeValue":{ + "shape":"AttributeValue", + "documentation":"

The value that is applied for the chosen Condition.

" + }, + "Condition":{ + "shape":"Condition", + "documentation":"

The condition to apply. Valid values are EQUALS, NOT_EQUALS, LESS_THAN and GREATER_THAN.

" + } + }, + "documentation":"

Creates a subset of items within an attribute that are modified. For example, you can use this operation to create a subset of items that cost $5 or less. To do this, you specify \"AttributeName\": \"price\", \"AttributeValue\": \"5\", and \"Condition\": \"LESS_THAN\". Pair this operation with the Action operation within the CreateWhatIfForecastRequest$TimeSeriesTransformations operation to define how the attribute is modified.

" + }, + "TimeSeriesConditions":{ + "type":"list", + "member":{"shape":"TimeSeriesCondition"}, + "max":10, + "min":0 + }, "TimeSeriesGranularity":{ "type":"string", "enum":[ @@ -3990,6 +4770,68 @@ "SPECIFIC" ] }, + "TimeSeriesIdentifiers":{ + "type":"structure", + "members":{ + "DataSource":{"shape":"DataSource"}, + "Schema":{"shape":"Schema"}, + "Format":{ + "shape":"Format", + "documentation":"

The format of the data, either CSV or PARQUET.

" + } + }, + "documentation":"

Details about the import file that contains the time series for which you want to create forecasts.

" + }, + "TimeSeriesReplacementsDataSource":{ + "type":"structure", + "required":[ + "S3Config", + "Schema" + ], + "members":{ + "S3Config":{"shape":"S3Config"}, + "Schema":{"shape":"Schema"}, + "Format":{ + "shape":"Format", + "documentation":"

The format of the replacement data, CSV or PARQUET.

" + }, + "TimestampFormat":{ + "shape":"TimestampFormat", + "documentation":"

The timestamp format of the replacement data.

" + } + }, + "documentation":"

A replacement dataset is a modified version of the baseline related time series that contains only the values that you want to include in a what-if forecast. The replacement dataset must contain the forecast dimensions and item identifiers in the baseline related time series as well as at least 1 changed time series. This dataset is merged with the baseline related time series to create a transformed dataset that is used for the what-if forecast.

" + }, + "TimeSeriesSelector":{ + "type":"structure", + "members":{ + "TimeSeriesIdentifiers":{ + "shape":"TimeSeriesIdentifiers", + "documentation":"

Details about the import file that contains the time series for which you want to create forecasts.

" + } + }, + "documentation":"

Defines the set of time series that are used to create the forecasts in a TimeSeriesIdentifiers object.

The TimeSeriesIdentifiers object needs the following information:

  • DataSource

  • Format

  • Schema

" + }, + "TimeSeriesTransformation":{ + "type":"structure", + "members":{ + "Action":{ + "shape":"Action", + "documentation":"

An array of actions that define a time series and how it is transformed. These transformations create a new time series that is used for the what-if analysis.

" + }, + "TimeSeriesConditions":{ + "shape":"TimeSeriesConditions", + "documentation":"

An array of conditions that define which members of the related time series are transformed.

" + } + }, + "documentation":"

A transformation function is a pair of operations that select and modify the rows in a related time series. You select the rows that you want with a condition operation and you modify the rows with a transformation operation. All conditions are joined with an AND operation, meaning that all conditions must be true for the transformation to be applied. Transformations are applied in the order that they are listed.

" + }, + "TimeSeriesTransformations":{ + "type":"list", + "member":{"shape":"TimeSeriesTransformation"}, + "max":30, + "min":0 + }, "TimeZone":{ "type":"string", "max":256, @@ -4089,6 +4931,130 @@ "type":"list", "member":{"shape":"WeightedQuantileLoss"} }, + "WhatIfAnalyses":{ + "type":"list", + "member":{"shape":"WhatIfAnalysisSummary"} + }, + "WhatIfAnalysisSummary":{ + "type":"structure", + "members":{ + "WhatIfAnalysisArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if analysis.

" + }, + "WhatIfAnalysisName":{ + "shape":"Name", + "documentation":"

The name of the what-if analysis.

" + }, + "ForecastArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the baseline forecast that is being used in this what-if analysis.

" + }, + "Status":{ + "shape":"Status", + "documentation":"

The status of the what-if analysis. States include:

  • ACTIVE

  • CREATE_PENDING, CREATE_IN_PROGRESS, CREATE_FAILED

  • CREATE_STOPPING, CREATE_STOPPED

  • DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED

The Status of the what-if analysis must be ACTIVE before you can access the analysis.

" + }, + "Message":{ + "shape":"ErrorMessage", + "documentation":"

If an error occurred, an informational message about the error.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

When the what-if analysis was created.

" + }, + "LastModificationTime":{ + "shape":"Timestamp", + "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + } + }, + "documentation":"

Provides a summary of the what-if analysis properties used in the ListWhatIfAnalyses operation. To get the complete set of properties, call the DescribeWhatIfAnalysis operation, and provide the WhatIfAnalysisArn that is listed in the summary.

" + }, + "WhatIfForecastArnListForExport":{ + "type":"list", + "member":{"shape":"LongArn"}, + "max":50, + "min":1 + }, + "WhatIfForecastExportSummary":{ + "type":"structure", + "members":{ + "WhatIfForecastExportArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast export.

" + }, + "WhatIfForecastArns":{ + "shape":"WhatIfForecastArnListForExport", + "documentation":"

An array of Amazon Resource Names (ARNs) that define the what-if forecasts included in the export.

" + }, + "WhatIfForecastExportName":{ + "shape":"Name", + "documentation":"

The what-if forecast export name.

" + }, + "Destination":{ + "shape":"DataDestination", + "documentation":"

The path to the Amazon Simple Storage Service (Amazon S3) bucket where the forecast is exported.

" + }, + "Status":{ + "shape":"Status", + "documentation":"

The status of the what-if forecast export. States include:

  • ACTIVE

  • CREATE_PENDING, CREATE_IN_PROGRESS, CREATE_FAILED

  • CREATE_STOPPING, CREATE_STOPPED

  • DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED

The Status of the what-if analysis must be ACTIVE before you can access the analysis.

" + }, + "Message":{ + "shape":"ErrorMessage", + "documentation":"

If an error occurred, an informational message about the error.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

When the what-if forecast export was created.

" + }, + "LastModificationTime":{ + "shape":"Timestamp", + "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + } + }, + "documentation":"

Provides a summary of the what-if forecast export properties used in the ListWhatIfForecastExports operation. To get the complete set of properties, call the DescribeWhatIfForecastExport operation, and provide the WhatIfForecastExportArn that is listed in the summary.

" + }, + "WhatIfForecastExports":{ + "type":"list", + "member":{"shape":"WhatIfForecastExportSummary"} + }, + "WhatIfForecastSummary":{ + "type":"structure", + "members":{ + "WhatIfForecastArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast.

" + }, + "WhatIfForecastName":{ + "shape":"Name", + "documentation":"

The name of the what-if forecast.

" + }, + "WhatIfAnalysisArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if analysis that contains this what-if forecast.

" + }, + "Status":{ + "shape":"Status", + "documentation":"

The status of the what-if forecast. States include:

  • ACTIVE

  • CREATE_PENDING, CREATE_IN_PROGRESS, CREATE_FAILED

  • CREATE_STOPPING, CREATE_STOPPED

  • DELETE_PENDING, DELETE_IN_PROGRESS, DELETE_FAILED

The Status of the what-if analysis must be ACTIVE before you can access the analysis.

" + }, + "Message":{ + "shape":"ErrorMessage", + "documentation":"

If an error occurred, an informational message about the error.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

When the what-if forecast was created.

" + }, + "LastModificationTime":{ + "shape":"Timestamp", + "documentation":"

The last time the resource was modified. The timestamp depends on the status of the job:

  • CREATE_PENDING - The CreationTime.

  • CREATE_IN_PROGRESS - The current timestamp.

  • CREATE_STOPPING - The current timestamp.

  • CREATE_STOPPED - When the job stopped.

  • ACTIVE or CREATE_FAILED - When the job finished or failed.

" + } + }, + "documentation":"

Provides a summary of the what-if forecast properties used in the ListWhatIfForecasts operation. To get the complete set of properties, call the DescribeWhatIfForecast operation, and provide the WhatIfForecastArn that is listed in the summary.

" + }, + "WhatIfForecasts":{ + "type":"list", + "member":{"shape":"WhatIfForecastSummary"} + }, "WindowSummary":{ "type":"structure", "members":{ diff --git a/botocore/data/forecastquery/2018-06-26/endpoint-rule-set-1.json b/botocore/data/forecastquery/2018-06-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..4122195f --- /dev/null +++ b/botocore/data/forecastquery/2018-06-26/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://forecastquery-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://forecastquery-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://forecastquery.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://forecastquery.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/forecastquery/2018-06-26/examples-1.json b/botocore/data/forecastquery/2018-06-26/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/forecastquery/2018-06-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/forecastquery/2018-06-26/service-2.json b/botocore/data/forecastquery/2018-06-26/service-2.json index 67f3c0cb..ed7564c4 100644 --- a/botocore/data/forecastquery/2018-06-26/service-2.json +++ b/botocore/data/forecastquery/2018-06-26/service-2.json @@ -29,6 +29,23 @@ {"shape":"InvalidNextTokenException"} ], "documentation":"

Retrieves a forecast for a single item, filtered by the supplied criteria.

The criteria is a key-value pair. The key is either item_id (or the equivalent non-timestamp, non-target field) from the TARGET_TIME_SERIES dataset, or one of the forecast dimensions specified as part of the FeaturizationConfig object.

By default, QueryForecast returns the complete date range for the filtered forecast. You can request a specific date range.

To get the full forecast, use the CreateForecastExportJob operation.

The forecasts generated by Amazon Forecast are in the same timezone as the dataset that was used to create the predictor.

" + }, + "QueryWhatIfForecast":{ + "name":"QueryWhatIfForecast", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"QueryWhatIfForecastRequest"}, + "output":{"shape":"QueryWhatIfForecastResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"InvalidInputException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidNextTokenException"} + ], + "documentation":"

Retrieves a what-if forecast.

" } }, "shapes":{ @@ -75,7 +92,7 @@ "members":{ "Predictions":{ "shape":"Predictions", - "documentation":"

The forecast.

The string of the string-to-array map is one of the following values:

  • p10

  • p50

  • p90

" + "documentation":"

The forecast.

The string of the string-to-array map is one of the following values:

  • p10

  • p50

  • p90

The default setting is [\"0.1\", \"0.5\", \"0.9\"]. Use the optional ForecastTypes parameter of the CreateForecast operation to change the values. The values will vary depending on how this is set, with a minimum of 1 and a maximum of 5.

" } }, "documentation":"

Provides information about a forecast. Returned as part of the QueryForecast response.

" @@ -104,6 +121,11 @@ "documentation":"

The limit on the number of requests per second has been exceeded.

", "exception":true }, + "LongArn":{ + "type":"string", + "max":300, + "pattern":"arn:([a-z\\d-]+):forecast:.*:.*:.+" + }, "NextToken":{ "type":"string", "max":3000, @@ -152,6 +174,41 @@ } } }, + "QueryWhatIfForecastRequest":{ + "type":"structure", + "required":[ + "WhatIfForecastArn", + "Filters" + ], + "members":{ + "WhatIfForecastArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the what-if forecast to query.

" + }, + "StartDate":{ + "shape":"DateTime", + "documentation":"

The start date for the what-if forecast. Specify the date using this format: yyyy-MM-dd'T'HH:mm:ss (ISO 8601 format). For example, 2015-01-01T08:00:00.

" + }, + "EndDate":{ + "shape":"DateTime", + "documentation":"

The end date for the what-if forecast. Specify the date using this format: yyyy-MM-dd'T'HH:mm:ss (ISO 8601 format). For example, 2015-01-01T20:00:00.

" + }, + "Filters":{ + "shape":"Filters", + "documentation":"

The filtering criteria to apply when retrieving the forecast. For example, to get the forecast for client_21 in the electricity usage dataset, specify the following:

{\"item_id\" : \"client_21\"}

To get the full what-if forecast, use the CreateForecastExportJob operation.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the result of the previous request was truncated, the response includes a NextToken. To retrieve the next set of results, use the token in the next request. Tokens expire after 24 hours.

" + } + } + }, + "QueryWhatIfForecastResponse":{ + "type":"structure", + "members":{ + "Forecast":{"shape":"Forecast"} + } + }, "ResourceInUseException":{ "type":"structure", "members":{ diff --git a/botocore/data/frauddetector/2019-11-15/endpoint-rule-set-1.json b/botocore/data/frauddetector/2019-11-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..cb32c664 --- /dev/null +++ b/botocore/data/frauddetector/2019-11-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://frauddetector-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://frauddetector-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://frauddetector.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://frauddetector.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/frauddetector/2019-11-15/examples-1.json b/botocore/data/frauddetector/2019-11-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/frauddetector/2019-11-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/frauddetector/2019-11-15/service-2.json b/botocore/data/frauddetector/2019-11-15/service-2.json index 30d0118d..e2595d68 100644 --- a/botocore/data/frauddetector/2019-11-15/service-2.json +++ b/botocore/data/frauddetector/2019-11-15/service-2.json @@ -208,7 +208,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Deletes data that was batch imported to Amazon Fraud Detector.

" + "documentation":"

Deletes the specified batch import job ID record. This action does not delete the data that was batch imported.

" }, "DeleteBatchPredictionJob":{ "name":"DeleteBatchPredictionJob", @@ -1112,7 +1112,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"} ], - "documentation":"

Updates the status of a model version.

You can perform the following status updates:

  1. Change the TRAINING_COMPLETE status to ACTIVE.

  2. Change ACTIVE to INACTIVE.

" + "documentation":"

Updates the status of a model version.

You can perform the following status updates:

  1. Change the TRAINING_IN_PROGRESS status to TRAINING_CANCELLED.

  2. Change the TRAINING_COMPLETE status to ACTIVE.

  3. Change ACTIVE to INACTIVE.

" }, "UpdateRuleMetadata":{ "name":"UpdateRuleMetadata", @@ -1170,6 +1170,56 @@ } }, "shapes":{ + "ATIMetricDataPoint":{ + "type":"structure", + "members":{ + "cr":{ + "shape":"float", + "documentation":"

The challenge rate. This indicates the percentage of login events that the model recommends to challenge such as one-time password, multi-factor authentication, and investigations.

" + }, + "adr":{ + "shape":"float", + "documentation":"

The anomaly discovery rate. This metric quantifies the percentage of anomalies that can be detected by the model at the selected score threshold. A lower score threshold increases the percentage of anomalies captured by the model, but would also require challenging a larger percentage of login events, leading to a higher customer friction.

" + }, + "threshold":{ + "shape":"float", + "documentation":"

The model's threshold that specifies an acceptable fraud capture rate. For example, a threshold of 500 means any model score 500 or above is labeled as fraud.

" + }, + "atodr":{ + "shape":"float", + "documentation":"

The account takeover discovery rate. This metric quantifies the percentage of account compromise events that can be detected by the model at the selected score threshold. This metric is only available if 50 or more entities with at-least one labeled account takeover event is present in the ingested dataset.

" + } + }, + "documentation":"

The Account Takeover Insights (ATI) model performance metrics data points.

" + }, + "ATIMetricDataPointsList":{ + "type":"list", + "member":{"shape":"ATIMetricDataPoint"} + }, + "ATIModelPerformance":{ + "type":"structure", + "members":{ + "asi":{ + "shape":"float", + "documentation":"

The anomaly separation index (ASI) score. This metric summarizes the overall ability of the model to separate anomalous activities from the normal behavior. Depending on the business, a large fraction of these anomalous activities can be malicious and correspond to the account takeover attacks. A model with no separability power will have the lowest possible ASI score of 0.5, whereas the a model with a high separability power will have the highest possible ASI score of 1.0

" + } + }, + "documentation":"

The Account Takeover Insights (ATI) model performance score.

" + }, + "ATITrainingMetricsValue":{ + "type":"structure", + "members":{ + "metricDataPoints":{ + "shape":"ATIMetricDataPointsList", + "documentation":"

The model's performance metrics data points.

" + }, + "modelPerformance":{ + "shape":"ATIModelPerformance", + "documentation":"

The model's overall performance scores.

" + } + }, + "documentation":"

The Account Takeover Insights (ATI) model training metric details.

" + }, "AccessDeniedException":{ "type":"structure", "required":["message"], @@ -1179,6 +1229,52 @@ "documentation":"

An exception indicating Amazon Fraud Detector does not have the needed permissions. This can occur if you submit a request, such as PutExternalModel, that specifies a role that is not in your account.

", "exception":true }, + "AggregatedLogOddsMetric":{ + "type":"structure", + "required":[ + "variableNames", + "aggregatedVariablesImportance" + ], + "members":{ + "variableNames":{ + "shape":"ListOfStrings", + "documentation":"

The names of all the variables.

" + }, + "aggregatedVariablesImportance":{ + "shape":"float", + "documentation":"

The relative importance of the variables in the list to the other event variable.

" + } + }, + "documentation":"

The log odds metric details.

Account Takeover Insights (ATI) model uses event variables from the login data you provide to continuously calculate a set of variables (aggregated variables) based on historical events. For example, your ATI model might calculate the number of times an user has logged in using the same IP address. In this case, event variables used to derive the aggregated variables are IP address and user.

" + }, + "AggregatedVariablesImpactExplanation":{ + "type":"structure", + "members":{ + "eventVariableNames":{ + "shape":"ListOfStrings", + "documentation":"

The names of all the event variables that were used to derive the aggregated variables.

" + }, + "relativeImpact":{ + "shape":"string", + "documentation":"

The relative impact of the aggregated variables in terms of magnitude on the prediction scores.

" + }, + "logOddsImpact":{ + "shape":"float", + "documentation":"

The raw, uninterpreted value represented as log-odds of the fraud. These values are usually between -10 to +10, but range from -infinity to +infinity.

  • A positive value indicates that the variables drove the risk score up.

  • A negative value indicates that the variables drove the risk score down.

" + } + }, + "documentation":"

The details of the impact of aggregated variables on the prediction score.

Account Takeover Insights (ATI) model uses the login data you provide to continuously calculate a set of variables (aggregated variables) based on historical events. For example, the model might calculate the number of times an user has logged in using the same IP address. In this case, event variables used to derive the aggregated variables are IP address and user.

" + }, + "AggregatedVariablesImportanceMetrics":{ + "type":"structure", + "members":{ + "logOddsMetrics":{ + "shape":"ListOfAggregatedLogOddsMetrics", + "documentation":"

List of variables' metrics.

" + } + }, + "documentation":"

The details of the relative importance of the aggregated variables.

Account Takeover Insights (ATI) model uses event variables from the login data you provide to continuously calculate a set of variables (aggregated variables) based on historical events. For example, your ATI model might calculate the number of times an user has logged in using the same IP address. In this case, event variables used to derive the aggregated variables are IP address and user.

" + }, "AsyncJobStatus":{ "type":"string", "enum":[ @@ -1480,7 +1576,7 @@ }, "iamRoleArn":{ "shape":"iamRoleArn", - "documentation":"

The ARN of the IAM role created for Amazon S3 bucket that holds your data file. The IAM role must have read and write permissions to both input and output S3 buckets.

" + "documentation":"

The ARN of the IAM role created for Amazon S3 bucket that holds your data file.

The IAM role must have read permissions to your input S3 bucket and write permissions to your output S3 bucket. For more information about bucket permissions, see User policy examples in the Amazon S3 User Guide.

" }, "tags":{ "shape":"tagList", @@ -1530,7 +1626,7 @@ }, "iamRoleArn":{ "shape":"iamRoleArn", - "documentation":"

The ARN of the IAM role to use for this job request.

" + "documentation":"

The ARN of the IAM role to use for this job request.

The IAM Role must have read permissions to your input S3 bucket and write permissions to your output S3 bucket. For more information about bucket permissions, see User policy examples in the Amazon S3 User Guide.

" }, "tags":{ "shape":"tagList", @@ -1812,14 +1908,14 @@ "members":{ "fileLevelMessages":{ "shape":"fileValidationMessageList", - "documentation":"

The file-specific model training validation messages.

" + "documentation":"

The file-specific model training data validation messages.

" }, "fieldLevelMessages":{ "shape":"fieldValidationMessageList", "documentation":"

The field-specific model training validation messages.

" } }, - "documentation":"

The model training validation messages.

" + "documentation":"

The model training data validation metrics.

" }, "DeleteAuditHistory":{"type":"boolean"}, "DeleteBatchImportJobRequest":{ @@ -2926,7 +3022,7 @@ }, "predictionTimestamp":{ "shape":"time", - "documentation":"

The timestamp that defines when the prediction was generated.

" + "documentation":"

The timestamp that defines when the prediction was generated. The timestamp must be specified using ISO 8601 standard in UTC.

We recommend calling ListEventPredictions first, and using the predictionTimestamp value in the response to provide an accurate prediction timestamp value.

" } } }, @@ -3493,7 +3589,6 @@ }, "LabelSchema":{ "type":"structure", - "required":["labelMapper"], "members":{ "labelMapper":{ "shape":"labelMapper", @@ -3556,6 +3651,14 @@ } } }, + "ListOfAggregatedLogOddsMetrics":{ + "type":"list", + "member":{"shape":"AggregatedLogOddsMetric"} + }, + "ListOfAggregatedVariablesImpactExplanations":{ + "type":"list", + "member":{"shape":"AggregatedVariablesImpactExplanation"} + }, "ListOfEvaluatedExternalModels":{ "type":"list", "member":{"shape":"EvaluatedExternalModel"} @@ -3825,7 +3928,8 @@ "type":"string", "enum":[ "ONLINE_FRAUD_INSIGHTS", - "TRANSACTION_FRAUD_INSIGHTS" + "TRANSACTION_FRAUD_INSIGHTS", + "ACCOUNT_TAKEOVER_INSIGHTS" ] }, "ModelVersion":{ @@ -3905,6 +4009,10 @@ "arn":{ "shape":"fraudDetectorArn", "documentation":"

The model version ARN.

" + }, + "trainingResultV2":{ + "shape":"TrainingResultV2", + "documentation":"

The training result details. The details include the relative importance of the variables.

" } }, "documentation":"

The details of the model version.

" @@ -3946,6 +4054,56 @@ "member":{"shape":"string"}, "min":1 }, + "OFIMetricDataPoint":{ + "type":"structure", + "members":{ + "fpr":{ + "shape":"float", + "documentation":"

The false positive rate. This is the percentage of total legitimate events that are incorrectly predicted as fraud.

" + }, + "precision":{ + "shape":"float", + "documentation":"

The percentage of fraud events correctly predicted as fraudulent as compared to all events predicted as fraudulent.

" + }, + "tpr":{ + "shape":"float", + "documentation":"

The true positive rate. This is the percentage of total fraud the model detects. Also known as capture rate.

" + }, + "threshold":{ + "shape":"float", + "documentation":"

The model threshold that specifies an acceptable fraud capture rate. For example, a threshold of 500 means any model score 500 or above is labeled as fraud.

" + } + }, + "documentation":"

The Online Fraud Insights (OFI) model performance metrics data points.

" + }, + "OFIMetricDataPointsList":{ + "type":"list", + "member":{"shape":"OFIMetricDataPoint"} + }, + "OFIModelPerformance":{ + "type":"structure", + "members":{ + "auc":{ + "shape":"float", + "documentation":"

The area under the curve (auc). This summarizes the total positive rate (tpr) and false positive rate (FPR) across all possible model score thresholds.

" + } + }, + "documentation":"

The Online Fraud Insights (OFI) model performance score.

" + }, + "OFITrainingMetricsValue":{ + "type":"structure", + "members":{ + "metricDataPoints":{ + "shape":"OFIMetricDataPointsList", + "documentation":"

The model's performance metrics data points.

" + }, + "modelPerformance":{ + "shape":"OFIModelPerformance", + "documentation":"

The model's overall performance score.

" + } + }, + "documentation":"

The Online Fraud Insights (OFI) model training metric details.

" + }, "Outcome":{ "type":"structure", "members":{ @@ -3988,6 +4146,10 @@ "variableImpactExplanations":{ "shape":"listOfVariableImpactExplanations", "documentation":"

The details of the event variable's impact on the prediction score.

" + }, + "aggregatedVariablesImpactExplanations":{ + "shape":"ListOfAggregatedVariablesImpactExplanations", + "documentation":"

The details of the aggregated variables impact on the prediction score.

Account Takeover Insights (ATI) model uses event variables from the login data you provide to continuously calculate a set of variables (aggregated variables) based on historical events. For example, your ATI model might calculate the number of times an user has logged in using the same IP address. In this case, event variables used to derive the aggregated variables are IP address and user.

" } }, "documentation":"

The prediction explanations that provide insight into how each event variable impacted the model version's fraud prediction score.

" @@ -4158,7 +4320,7 @@ "members":{ "kmsEncryptionKeyArn":{ "shape":"KmsEncryptionKeyArn", - "documentation":"

The KMS encryption key ARN.

" + "documentation":"

The KMS encryption key ARN.

The KMS key must be single-Region key. Amazon Fraud Detector does not support multi-Region KMS key.

" } } }, @@ -4379,6 +4541,56 @@ "members":{ } }, + "TFIMetricDataPoint":{ + "type":"structure", + "members":{ + "fpr":{ + "shape":"float", + "documentation":"

The false positive rate. This is the percentage of total legitimate events that are incorrectly predicted as fraud.

" + }, + "precision":{ + "shape":"float", + "documentation":"

The percentage of fraud events correctly predicted as fraudulent as compared to all events predicted as fraudulent.

" + }, + "tpr":{ + "shape":"float", + "documentation":"

The true positive rate. This is the percentage of total fraud the model detects. Also known as capture rate.

" + }, + "threshold":{ + "shape":"float", + "documentation":"

The model threshold that specifies an acceptable fraud capture rate. For example, a threshold of 500 means any model score 500 or above is labeled as fraud.

" + } + }, + "documentation":"

The performance metrics data points for Transaction Fraud Insights (TFI) model.

" + }, + "TFIMetricDataPointsList":{ + "type":"list", + "member":{"shape":"TFIMetricDataPoint"} + }, + "TFIModelPerformance":{ + "type":"structure", + "members":{ + "auc":{ + "shape":"float", + "documentation":"

The area under the curve (auc). This summarizes the total positive rate (tpr) and false positive rate (FPR) across all possible model score thresholds.

" + } + }, + "documentation":"

The Transaction Fraud Insights (TFI) model performance score.

" + }, + "TFITrainingMetricsValue":{ + "type":"structure", + "members":{ + "metricDataPoints":{ + "shape":"TFIMetricDataPointsList", + "documentation":"

The model's performance metrics data points.

" + }, + "modelPerformance":{ + "shape":"TFIModelPerformance", + "documentation":"

The model performance score.

" + } + }, + "documentation":"

The Transaction Fraud Insights (TFI) model training metric details.

" + }, "Tag":{ "type":"structure", "required":[ @@ -4436,10 +4648,7 @@ }, "TrainingDataSchema":{ "type":"structure", - "required":[ - "modelVariables", - "labelSchema" - ], + "required":["modelVariables"], "members":{ "modelVariables":{ "shape":"ListOfStrings", @@ -4470,6 +4679,24 @@ }, "documentation":"

The training metric details.

" }, + "TrainingMetricsV2":{ + "type":"structure", + "members":{ + "ofi":{ + "shape":"OFITrainingMetricsValue", + "documentation":"

The Online Fraud Insights (OFI) model training metric details.

" + }, + "tfi":{ + "shape":"TFITrainingMetricsValue", + "documentation":"

The Transaction Fraud Insights (TFI) model training metric details.

" + }, + "ati":{ + "shape":"ATITrainingMetricsValue", + "documentation":"

The Account Takeover Insights (ATI) model training metric details.

" + } + }, + "documentation":"

The training metrics details.

" + }, "TrainingResult":{ "type":"structure", "members":{ @@ -4488,6 +4715,22 @@ }, "documentation":"

The training result details.

" }, + "TrainingResultV2":{ + "type":"structure", + "members":{ + "dataValidationMetrics":{"shape":"DataValidationMetrics"}, + "trainingMetricsV2":{ + "shape":"TrainingMetricsV2", + "documentation":"

The training metric details.

" + }, + "variableImportanceMetrics":{"shape":"VariableImportanceMetrics"}, + "aggregatedVariablesImportanceMetrics":{ + "shape":"AggregatedVariablesImportanceMetrics", + "documentation":"

The variable importance metrics of the aggregated variables.

Account Takeover Insights (ATI) model uses event variables from the login data you provide to continuously calculate a set of variables (aggregated variables) based on historical events. For example, your ATI model might calculate the number of times an user has logged in using the same IP address. In this case, event variables used to derive the aggregated variables are IP address and user.

" + } + }, + "documentation":"

The training result details.

" + }, "UnlabeledEventsTreatment":{ "type":"string", "enum":[ @@ -4607,7 +4850,7 @@ }, "status":{ "shape":"DetectorVersionStatus", - "documentation":"

The new status.

" + "documentation":"

The new status.

The only supported values are ACTIVE and INACTIVE

" } } }, @@ -5087,7 +5330,7 @@ "labelMapper":{ "type":"map", "key":{"shape":"string"}, - "value":{"shape":"NonEmptyListOfStrings"} + "value":{"shape":"ListOfStrings"} }, "labelsMaxResults":{ "type":"integer", @@ -5195,7 +5438,7 @@ }, "variableValue":{ "type":"string", - "max":1024, + "max":8192, "min":1, "sensitive":true }, @@ -5206,5 +5449,5 @@ "pattern":"^([1-9][0-9]*)$" } }, - "documentation":"

This is the Amazon Fraud Detector API Reference. This guide is for developers who need detailed information about Amazon Fraud Detector API actions, data types, and errors. For more information about Amazon Fraud Detector features, see the Amazon Fraud Detector User Guide.

" + "documentation":"

This is the Amazon Fraud Detector API Reference. This guide is for developers who need detailed information about Amazon Fraud Detector API actions, data types, and errors. For more information about Amazon Fraud Detector features, see the Amazon Fraud Detector User Guide.

We provide the Query API as well as AWS software development kits (SDK) for Amazon Fraud Detector in Java and Python programming languages.

The Amazon Fraud Detector Query API provides HTTPS requests that use the HTTP verb GET or POST and a Query parameter Action. AWS SDK provides libraries, sample code, tutorials, and other resources for software developers who prefer to build applications using language-specific APIs instead of submitting a request over HTTP or HTTPS. These libraries provide basic functions that automatically take care of tasks such as cryptographically signing your requests, retrying requests, and handling error responses, so that it is easier for you to get started. For more information about the AWS SDKs, see Tools to build on AWS.

" } diff --git a/botocore/data/fsx/2018-03-01/endpoint-rule-set-1.json b/botocore/data/fsx/2018-03-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..13d70560 --- /dev/null +++ b/botocore/data/fsx/2018-03-01/endpoint-rule-set-1.json @@ -0,0 +1,448 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://fsx-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "prod-ca-central-1" + ] + } + ], + "endpoint": { + "url": "https://fsx-fips.ca-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "prod-us-east-1" + ] + } + ], + "endpoint": { + "url": "https://fsx-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "prod-us-east-2" + ] + } + ], + "endpoint": { + "url": "https://fsx-fips.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "prod-us-west-1" + ] + } + ], + "endpoint": { + "url": "https://fsx-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "prod-us-west-2" + ] + } + ], + "endpoint": { + "url": "https://fsx-fips.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "prod-us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://fsx-fips.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "prod-us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://fsx-fips.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://fsx-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://fsx.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://fsx.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/fsx/2018-03-01/examples-1.json b/botocore/data/fsx/2018-03-01/examples-1.json new file mode 100644 index 00000000..1993a235 --- /dev/null +++ b/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/botocore/data/fsx/2018-03-01/service-2.json b/botocore/data/fsx/2018-03-01/service-2.json index 1d750a68..eb8372c6 100644 --- a/botocore/data/fsx/2018-03-01/service-2.json +++ b/botocore/data/fsx/2018-03-01/service-2.json @@ -107,7 +107,7 @@ {"shape":"ServiceLimitExceeded"}, {"shape":"InternalServerError"} ], - "documentation":"

Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported only for file systems with the Persistent_2 deployment type.

Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

", + "documentation":"

Creates an Amazon FSx for Lustre data repository association (DRA). A data repository association is a link between a directory on the file system and an Amazon S3 bucket or prefix. You can have a maximum of 8 data repository associations on a file system. Data repository associations are supported only for file systems with the Persistent_2 deployment type.

Each data repository association must have a unique Amazon FSx file system directory and a unique S3 bucket or prefix associated with it. You can configure a data repository association for automatic import only, for automatic export only, or for both. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

CreateDataRepositoryAssociation isn't supported on Amazon File Cache resources. To create a DRA on Amazon File Cache, use the CreateFileCache operation.

", "idempotent":true }, "CreateDataRepositoryTask":{ @@ -130,6 +130,26 @@ "documentation":"

Creates an Amazon FSx for Lustre data repository task. You use data repository tasks to perform bulk operations between your Amazon FSx file system and its linked data repositories. An example of a data repository task is exporting any data and metadata changes, including POSIX metadata, to files, directories, and symbolic links (symlinks) from your FSx file system to a linked data repository. A CreateDataRepositoryTask operation will fail if a data repository is not linked to the FSx file system. To learn more about data repository tasks, see Data Repository Tasks. To learn more about linking a data repository to your file system, see Linking your file system to an S3 bucket.

", "idempotent":true }, + "CreateFileCache":{ + "name":"CreateFileCache", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateFileCacheRequest"}, + "output":{"shape":"CreateFileCacheResponse"}, + "errors":[ + {"shape":"BadRequest"}, + {"shape":"IncompatibleParameterError"}, + {"shape":"InvalidNetworkSettings"}, + {"shape":"InvalidPerUnitStorageThroughput"}, + {"shape":"ServiceLimitExceeded"}, + {"shape":"InternalServerError"}, + {"shape":"MissingFileCacheConfiguration"} + ], + "documentation":"

Creates a new Amazon File Cache resource.

You can use this operation with a client request token in the request that Amazon File Cache uses to ensure idempotent creation. If a cache with the specified client request token exists and the parameters match, CreateFileCache returns the description of the existing cache. If a cache with the specified client request token exists and the parameters don't match, this call returns IncompatibleParameterError. If a file cache with the specified client request token doesn't exist, CreateFileCache does the following:

  • Creates a new, empty Amazon File Cache resourcewith an assigned ID, and an initial lifecycle state of CREATING.

  • Returns the description of the cache in JSON format.

The CreateFileCache call returns while the cache's lifecycle state is still CREATING. You can check the cache creation status by calling the DescribeFileCaches operation, which returns the cache state along with other information.

", + "idempotent":true + }, "CreateFileSystem":{ "name":"CreateFileSystem", "http":{ @@ -150,7 +170,7 @@ {"shape":"InternalServerError"}, {"shape":"MissingFileSystemConfiguration"} ], - "documentation":"

Creates a new, empty Amazon FSx file system. You can create the following supported Amazon FSx file systems using the CreateFileSystem API operation:

  • Amazon FSx for Lustre

  • Amazon FSx for NetApp ONTAP

  • Amazon FSx for OpenZFS

  • Amazon FSx for Windows File Server

This operation requires a client request token in the request that Amazon FSx uses to ensure idempotent creation. This means that calling the operation multiple times with the same client request token has no effect. By using the idempotent operation, you can retry a CreateFileSystem operation without the risk of creating an extra file system. This approach can be useful when an initial call fails in a way that makes it unclear whether a file system was created. Examples are if a transport level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a file system, the client receives success as long as the parameters are the same.

If a file system with the specified client request token exists and the parameters match, CreateFileSystem returns the description of the existing file system. If a file system with the specified client request token exists and the parameters don't match, this call returns IncompatibleParameterError. If a file system with the specified client request token doesn't exist, CreateFileSystem does the following:

  • Creates a new, empty Amazon FSx file system with an assigned ID, and an initial lifecycle state of CREATING.

  • Returns the description of the file system in JSON format.

This operation requires a client request token in the request that Amazon FSx uses to ensure idempotent creation. This means that calling the operation multiple times with the same client request token has no effect. By using the idempotent operation, you can retry a CreateFileSystem operation without the risk of creating an extra file system. This approach can be useful when an initial call fails in a way that makes it unclear whether a file system was created. Examples are if a transport-level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a file system, the client receives a success message as long as the parameters are the same.

The CreateFileSystem call returns while the file system's lifecycle state is still CREATING. You can check the file-system creation status by calling the DescribeFileSystems operation, which returns the file system state along with other information.

" + "documentation":"

Creates a new, empty Amazon FSx file system. You can create the following supported Amazon FSx file systems using the CreateFileSystem API operation:

  • Amazon FSx for Lustre

  • Amazon FSx for NetApp ONTAP

  • Amazon FSx for OpenZFS

  • Amazon FSx for Windows File Server

This operation requires a client request token in the request that Amazon FSx uses to ensure idempotent creation. This means that calling the operation multiple times with the same client request token has no effect. By using the idempotent operation, you can retry a CreateFileSystem operation without the risk of creating an extra file system. This approach can be useful when an initial call fails in a way that makes it unclear whether a file system was created. Examples are if a transport level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a file system, the client receives success as long as the parameters are the same.

If a file system with the specified client request token exists and the parameters match, CreateFileSystem returns the description of the existing file system. If a file system with the specified client request token exists and the parameters don't match, this call returns IncompatibleParameterError. If a file system with the specified client request token doesn't exist, CreateFileSystem does the following:

  • Creates a new, empty Amazon FSx file system with an assigned ID, and an initial lifecycle state of CREATING.

  • Returns the description of the file system in JSON format.

The CreateFileSystem call returns while the file system's lifecycle state is still CREATING. You can check the file-system creation status by calling the DescribeFileSystems operation, which returns the file system state along with other information.

" }, "CreateFileSystemFromBackup":{ "name":"CreateFileSystemFromBackup", @@ -287,6 +307,24 @@ "documentation":"

Deletes a data repository association on an Amazon FSx for Lustre file system. Deleting the data repository association unlinks the file system from the Amazon S3 bucket. When deleting a data repository association, you have the option of deleting the data in the file system that corresponds to the data repository association. Data repository associations are supported only for file systems with the Persistent_2 deployment type.

", "idempotent":true }, + "DeleteFileCache":{ + "name":"DeleteFileCache", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteFileCacheRequest"}, + "output":{"shape":"DeleteFileCacheResponse"}, + "errors":[ + {"shape":"BadRequest"}, + {"shape":"IncompatibleParameterError"}, + {"shape":"FileCacheNotFound"}, + {"shape":"ServiceLimitExceeded"}, + {"shape":"InternalServerError"} + ], + "documentation":"

Deletes an Amazon File Cache resource. After deletion, the cache no longer exists, and its data is gone.

The DeleteFileCache operation returns while the cache has the DELETING status. You can check the cache deletion status by calling the DescribeFileCaches operation, which returns a list of caches in your account. If you pass the cache ID for a deleted cache, the DescribeFileCaches operation returns a FileCacheNotFound error.

The data in a deleted cache is also deleted and can't be recovered by any means.

", + "idempotent":true + }, "DeleteFileSystem":{ "name":"DeleteFileSystem", "http":{ @@ -385,7 +423,7 @@ {"shape":"InvalidDataRepositoryType"}, {"shape":"InternalServerError"} ], - "documentation":"

Returns the description of specific Amazon FSx for Lustre data repository associations, if one or more AssociationIds values are provided in the request, or if filters are used in the request. Data repository associations are supported only for file systems with the Persistent_2 deployment type.

You can use filters to narrow the response to include just data repository associations for specific file systems (use the file-system-id filter with the ID of the file system) or data repository associations for a specific repository type (use the data-repository-type filter with a value of S3). If you don't use filters, the response returns all data repository associations owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all data repository associations, you can paginate the response by using the optional MaxResults parameter to limit the number of data repository associations returned in a response. If more data repository associations remain, Amazon FSx returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

", + "documentation":"

Returns the description of specific Amazon FSx for Lustre or Amazon File Cache data repository associations, if one or more AssociationIds values are provided in the request, or if filters are used in the request. Data repository associations are supported only for Amazon FSx for Lustre file systems with the Persistent_2 deployment type and for Amazon File Cache resources.

You can use filters to narrow the response to include just data repository associations for specific file systems (use the file-system-id filter with the ID of the file system) or caches (use the file-cache-id filter with the ID of the cache), or data repository associations for a specific repository type (use the data-repository-type filter with a value of S3 or NFS). If you don't use filters, the response returns all data repository associations owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all data repository associations, you can paginate the response by using the optional MaxResults parameter to limit the number of data repository associations returned in a response. If more data repository associations remain, a NextToken value is returned in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

", "idempotent":true }, "DescribeDataRepositoryTasks":{ @@ -402,7 +440,23 @@ {"shape":"DataRepositoryTaskNotFound"}, {"shape":"InternalServerError"} ], - "documentation":"

Returns the description of specific Amazon FSx for Lustre data repository tasks, if one or more TaskIds values are provided in the request, or if filters are used in the request. You can use filters to narrow the response to include just tasks for specific file systems, or tasks in a specific lifecycle state. Otherwise, it returns all data repository tasks owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all tasks, you can paginate the response by using the optional MaxResults parameter to limit the number of tasks returned in a response. If more tasks remain, Amazon FSx returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

" + "documentation":"

Returns the description of specific Amazon FSx for Lustre or Amazon File Cache data repository tasks, if one or more TaskIds values are provided in the request, or if filters are used in the request. You can use filters to narrow the response to include just tasks for specific file systems or caches, or tasks in a specific lifecycle state. Otherwise, it returns all data repository tasks owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all tasks, you can paginate the response by using the optional MaxResults parameter to limit the number of tasks returned in a response. If more tasks remain, a NextToken value is returned in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

" + }, + "DescribeFileCaches":{ + "name":"DescribeFileCaches", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFileCachesRequest"}, + "output":{"shape":"DescribeFileCachesResponse"}, + "errors":[ + {"shape":"BadRequest"}, + {"shape":"FileCacheNotFound"}, + {"shape":"InternalServerError"} + ], + "documentation":"

Returns the description of a specific Amazon File Cache resource, if a FileCacheIds value is provided for that cache. Otherwise, it returns descriptions of all caches owned by your Amazon Web Services account in the Amazon Web Services Region of the endpoint that you're calling.

When retrieving all cache descriptions, you can optionally specify the MaxResults parameter to limit the number of descriptions in a response. If more cache descriptions remain, the operation returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

This operation is used in an iterative process to retrieve a list of your cache descriptions. DescribeFileCaches is called first without a NextTokenvalue. Then the operation continues to be called with the NextToken parameter set to the value of the last NextToken value until a response has no NextToken.

When using this operation, keep the following in mind:

  • The implementation might return fewer than MaxResults cache descriptions while still including a NextToken value.

  • The order of caches returned in the response of one DescribeFileCaches call and the order of caches returned across the responses of a multicall iteration is unspecified.

", + "idempotent":true }, "DescribeFileSystemAliases":{ "name":"DescribeFileSystemAliases", @@ -509,7 +563,7 @@ {"shape":"NotServiceResourceError"}, {"shape":"ResourceDoesNotSupportTagging"} ], - "documentation":"

Lists tags for an Amazon FSx file systems and backups in the case of Amazon FSx for Windows File Server.

When retrieving all tags, you can optionally specify the MaxResults parameter to limit the number of tags in a response. If more tags remain, Amazon FSx returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

This action is used in an iterative process to retrieve a list of your tags. ListTagsForResource is called first without a NextTokenvalue. Then the action continues to be called with the NextToken parameter set to the value of the last NextToken value until a response has no NextToken.

When using this action, keep the following in mind:

  • The implementation might return fewer than MaxResults file system descriptions while still including a NextToken value.

  • The order of tags returned in the response of one ListTagsForResource call and the order of tags returned across the responses of a multi-call iteration is unspecified.

" + "documentation":"

Lists tags for Amazon FSx resources.

When retrieving all tags, you can optionally specify the MaxResults parameter to limit the number of tags in a response. If more tags remain, Amazon FSx returns a NextToken value in the response. In this case, send a later request with the NextToken request parameter set to the value of NextToken from the last response.

This action is used in an iterative process to retrieve a list of your tags. ListTagsForResource is called first without a NextTokenvalue. Then the action continues to be called with the NextToken parameter set to the value of the last NextToken value until a response has no NextToken.

When using this action, keep the following in mind:

  • The implementation might return fewer than MaxResults file system descriptions while still including a NextToken value.

  • The order of tags returned in the response of one ListTagsForResource call and the order of tags returned across the responses of a multi-call iteration is unspecified.

" }, "ReleaseFileSystemNfsV3Locks":{ "name":"ReleaseFileSystemNfsV3Locks", @@ -542,7 +596,7 @@ {"shape":"InternalServerError"}, {"shape":"VolumeNotFound"} ], - "documentation":"

Returns an Amazon FSx for OpenZFS volume to the state saved by the specified snapshot.

", + "documentation":"

Returns an Amazon FSx for OpenZFS volume to the state saved by the specified snapshot.

", "idempotent":true }, "TagResource":{ @@ -599,6 +653,26 @@ "documentation":"

Updates the configuration of an existing data repository association on an Amazon FSx for Lustre file system. Data repository associations are supported only for file systems with the Persistent_2 deployment type.

", "idempotent":true }, + "UpdateFileCache":{ + "name":"UpdateFileCache", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateFileCacheRequest"}, + "output":{"shape":"UpdateFileCacheResponse"}, + "errors":[ + {"shape":"BadRequest"}, + {"shape":"UnsupportedOperation"}, + {"shape":"IncompatibleParameterError"}, + {"shape":"InternalServerError"}, + {"shape":"FileCacheNotFound"}, + {"shape":"MissingFileCacheConfiguration"}, + {"shape":"ServiceLimitExceeded"} + ], + "documentation":"

Updates the configuration of an existing Amazon File Cache resource. You can update multiple properties in a single request.

", + "idempotent":true + }, "UpdateFileSystem":{ "name":"UpdateFileSystem", "http":{ @@ -611,6 +685,7 @@ {"shape":"BadRequest"}, {"shape":"UnsupportedOperation"}, {"shape":"IncompatibleParameterError"}, + {"shape":"InvalidNetworkSettings"}, {"shape":"InternalServerError"}, {"shape":"FileSystemNotFound"}, {"shape":"MissingFileSystemConfiguration"}, @@ -770,7 +845,7 @@ }, "AdministrativeActionType":{ "type":"string", - "documentation":"

Describes the type of administrative action, as follows:

  • FILE_SYSTEM_UPDATE - A file system update administrative action initiated from the Amazon FSx console, API (UpdateFileSystem), or CLI (update-file-system).

  • STORAGE_OPTIMIZATION - After the FILE_SYSTEM_UPDATE task to increase a file system's storage capacity has been completed successfully, a STORAGE_OPTIMIZATION task starts.

    • For Windows and ONTAP, storage optimization is the process of migrating the file system data to newer larger disks.

    • For Lustre, storage optimization consists of rebalancing the data across the existing and newly added file servers.

    You can track the storage-optimization progress using the ProgressPercent property. When STORAGE_OPTIMIZATION has been completed successfully, the parent FILE_SYSTEM_UPDATE action status changes to COMPLETED. For more information, see Managing storage capacity in the Amazon FSx for Windows File Server User Guide, Managing storage and throughput capacity in the Amazon FSx for Lustre User Guide, and Managing storage capacity and provisioned IOPS in the Amazon FSx for NetApp ONTAP User Guide.

  • FILE_SYSTEM_ALIAS_ASSOCIATION - A file system update to associate a new Domain Name System (DNS) alias with the file system. For more information, see AssociateFileSystemAliases.

  • FILE_SYSTEM_ALIAS_DISASSOCIATION - A file system update to disassociate a DNS alias from the file system. For more information, see DisassociateFileSystemAliases.

  • VOLUME_UPDATE - A volume update to an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume initiated from the Amazon FSx console, API (UpdateVolume), or CLI (update-volume).

  • SNAPSHOT_UPDATE - A snapshot update to an Amazon FSx for OpenZFS volume initiated from the Amazon FSx console, API (UpdateSnapshot), or CLI (update-snapshot).

  • RELEASE_NFS_V3_LOCKS - Tracks the release of Network File System (NFS) V3 locks on an Amazon FSx for OpenZFS file system.

", + "documentation":"

Describes the type of administrative action, as follows:

  • FILE_SYSTEM_UPDATE - A file system update administrative action initiated from the Amazon FSx console, API (UpdateFileSystem), or CLI (update-file-system).

  • STORAGE_OPTIMIZATION - After the FILE_SYSTEM_UPDATE task to increase a file system's storage capacity has been completed successfully, a STORAGE_OPTIMIZATION task starts.

    • For Windows and ONTAP, storage optimization is the process of migrating the file system data to newer larger disks.

    • For Lustre, storage optimization consists of rebalancing the data across the existing and newly added file servers.

    You can track the storage-optimization progress using the ProgressPercent property. When STORAGE_OPTIMIZATION has been completed successfully, the parent FILE_SYSTEM_UPDATE action status changes to COMPLETED. For more information, see Managing storage capacity in the Amazon FSx for Windows File Server User Guide, Managing storage and throughput capacity in the Amazon FSx for Lustre User Guide, and Managing storage capacity and provisioned IOPS in the Amazon FSx for NetApp ONTAP User Guide.

  • FILE_SYSTEM_ALIAS_ASSOCIATION - A file system update to associate a new Domain Name System (DNS) alias with the file system. For more information, see AssociateFileSystemAliases.

  • FILE_SYSTEM_ALIAS_DISASSOCIATION - A file system update to disassociate a DNS alias from the file system. For more information, see DisassociateFileSystemAliases.

  • VOLUME_UPDATE - A volume update to an Amazon FSx for NetApp ONTAP or Amazon FSx for OpenZFS volume initiated from the Amazon FSx console, API (UpdateVolume), or CLI (update-volume).

  • VOLUME_RESTORE - An Amazon FSx for OpenZFS volume is returned to the state saved by the specified snapshot, initiated from an API (RestoreVolumeFromSnapshot) or CLI (restore-volume-from-snapshot).

  • SNAPSHOT_UPDATE - A snapshot update to an Amazon FSx for OpenZFS volume initiated from the Amazon FSx console, API (UpdateSnapshot), or CLI (update-snapshot).

  • RELEASE_NFS_V3_LOCKS - Tracks the release of Network File System (NFS) V3 locks on an Amazon FSx for OpenZFS file system.

", "enum":[ "FILE_SYSTEM_UPDATE", "STORAGE_OPTIMIZATION", @@ -778,7 +853,8 @@ "FILE_SYSTEM_ALIAS_DISASSOCIATION", "VOLUME_UPDATE", "SNAPSHOT_UPDATE", - "RELEASE_NFS_V3_LOCKS" + "RELEASE_NFS_V3_LOCKS", + "VOLUME_RESTORE" ] }, "AdministrativeActions":{ @@ -870,10 +946,10 @@ "members":{ "Events":{ "shape":"EventTypes", - "documentation":"

The AutoExportPolicy can have the following event values:

  • NEW - Amazon FSx automatically exports new files and directories to the data repository as they are added to the file system.

  • CHANGED - Amazon FSx automatically exports changes to files and directories on the file system to the data repository.

  • DELETED - Files and directories are automatically deleted on the data repository when they are deleted on the file system.

You can define any combination of event types for your AutoExportPolicy.

" + "documentation":"

The AutoExportPolicy can have the following event values:

  • NEW - New files and directories are automatically exported to the data repository as they are added to the file system.

  • CHANGED - Changes to files and directories on the file system are automatically exported to the data repository.

  • DELETED - Files and directories are automatically deleted on the data repository when they are deleted on the file system.

You can define any combination of event types for your AutoExportPolicy.

" } }, - "documentation":"

Describes a data repository association's automatic export policy. The AutoExportPolicy defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx automatically exports the defined changes asynchronously once your application finishes modifying the file.

This AutoExportPolicy is supported only for file systems with the Persistent_2 deployment type.

" + "documentation":"

Describes a data repository association's automatic export policy. The AutoExportPolicy defines the types of updated objects on the file system that will be automatically exported to the data repository. As you create, modify, or delete files, Amazon FSx for Lustre automatically exports the defined changes asynchronously once your application finishes modifying the file.

This AutoExportPolicy is supported only for Amazon FSx for Lustre file systems with the Persistent_2 deployment type.

" }, "AutoImportPolicy":{ "type":"structure", @@ -883,7 +959,7 @@ "documentation":"

The AutoImportPolicy can have the following event values:

  • NEW - Amazon FSx automatically imports metadata of files added to the linked S3 bucket that do not currently exist in the FSx file system.

  • CHANGED - Amazon FSx automatically updates file metadata and invalidates existing file content on the file system as files change in the data repository.

  • DELETED - Amazon FSx automatically deletes files on the file system as corresponding files are deleted in the data repository.

You can define any combination of event types for your AutoImportPolicy.

" } }, - "documentation":"

Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your file system as you modify objects in a linked S3 bucket.

This AutoImportPolicy is supported only for file systems with the Persistent_2 deployment type.

" + "documentation":"

Describes the data repository association's automatic import policy. The AutoImportPolicy defines how Amazon FSx keeps your file metadata and directory listings up to date by importing changes to your Amazon FSx for Lustre file system as you modify objects in a linked S3 bucket.

The AutoImportPolicy is supported only for Amazon FSx for Lustre file systems with the Persistent_2 deployment type.

" }, "AutoImportPolicyType":{ "type":"string", @@ -1086,6 +1162,11 @@ } } }, + "CapacityToRelease":{ + "type":"long", + "max":2147483647, + "min":1 + }, "ClientRequestToken":{ "type":"string", "documentation":"

(Optional) An idempotency token for resource creation, in a string of up to 64 ASCII characters. This token is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

", @@ -1151,6 +1232,7 @@ "Backup":{"shape":"Backup"} } }, + "CopyTagsToDataRepositoryAssociations":{"type":"boolean"}, "CreateBackupRequest":{ "type":"structure", "members":{ @@ -1188,14 +1270,13 @@ "type":"structure", "required":[ "FileSystemId", - "FileSystemPath", "DataRepositoryPath" ], "members":{ "FileSystemId":{"shape":"FileSystemId"}, "FileSystemPath":{ "shape":"Namespace", - "documentation":"

A path on the file system that points to a high-level directory (such as /ns1/) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path /ns1/, then you cannot link another data repository with file system path /ns1/ns2.

This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

If you specify only a forward slash (/) as the file system path, you can link only 1 data repository to the file system. You can only specify \"/\" as the file system path for the first data repository associated with a file system.

" + "documentation":"

A path on the file system that points to a high-level directory (such as /ns1/) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path /ns1/, then you cannot link another data repository with file system path /ns1/ns2.

This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

If you specify only a forward slash (/) as the file system path, you can link only one data repository to the file system. You can only specify \"/\" as the file system path for the first data repository associated with a file system.

" }, "DataRepositoryPath":{ "shape":"ArchivePath", @@ -1243,7 +1324,7 @@ }, "Paths":{ "shape":"DataRepositoryTaskPaths", - "documentation":"

(Optional) The path or paths on the Amazon FSx file system to use when the data repository task is processed. The default path is the file system root directory. The paths you provide need to be relative to the mount point of the file system. If the mount point is /mnt/fsx and /mnt/fsx/path1 is a directory or file on the file system you want to export, then the path to provide is path1. If a path that you provide isn't valid, the task fails.

" + "documentation":"

A list of paths for the data repository task to use when the task is processed. If a path that you provide isn't valid, the task fails.

  • For export tasks, the list contains paths on the Amazon FSx file system from which the files are exported to the Amazon S3 bucket. The default path is the file system root directory. The paths you provide need to be relative to the mount point of the file system. If the mount point is /mnt/fsx and /mnt/fsx/path1 is a directory or file on the file system you want to export, then the path to provide is path1.

  • For import tasks, the list contains paths in the Amazon S3 bucket from which POSIX metadata changes are imported to the Amazon FSx file system. The path can be an S3 bucket or prefix in the format s3://myBucket/myPrefix (where myPrefix is optional).

" }, "FileSystemId":{"shape":"FileSystemId"}, "Report":{ @@ -1254,7 +1335,11 @@ "shape":"ClientRequestToken", "idempotencyToken":true }, - "Tags":{"shape":"Tags"} + "Tags":{"shape":"Tags"}, + "CapacityToRelease":{ + "shape":"CapacityToRelease", + "documentation":"

Specifies the amount of data to release, in GiB, by an Amazon File Cache AUTO_RELEASE_DATA task that automatically releases files from the cache.

" + } } }, "CreateDataRepositoryTaskResponse":{ @@ -1266,6 +1351,94 @@ } } }, + "CreateFileCacheDataRepositoryAssociations":{ + "type":"list", + "member":{"shape":"FileCacheDataRepositoryAssociation"}, + "max":8 + }, + "CreateFileCacheLustreConfiguration":{ + "type":"structure", + "required":[ + "PerUnitStorageThroughput", + "DeploymentType", + "MetadataConfiguration" + ], + "members":{ + "PerUnitStorageThroughput":{ + "shape":"PerUnitStorageThroughput", + "documentation":"

Provisions the amount of read and write throughput for each 1 tebibyte (TiB) of cache storage capacity, in MB/s/TiB. The only supported value is 1000.

" + }, + "DeploymentType":{ + "shape":"FileCacheLustreDeploymentType", + "documentation":"

Specifies the cache deployment type, which must be CACHE_1.

" + }, + "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"}, + "MetadataConfiguration":{ + "shape":"FileCacheLustreMetadataConfiguration", + "documentation":"

The configuration for a Lustre MDT (Metadata Target) storage volume.

" + } + }, + "documentation":"

The Amazon File Cache configuration for the cache that you are creating.

" + }, + "CreateFileCacheRequest":{ + "type":"structure", + "required":[ + "FileCacheType", + "FileCacheTypeVersion", + "StorageCapacity", + "SubnetIds" + ], + "members":{ + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

An idempotency token for resource creation, in a string of up to 64 ASCII characters. This token is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

By using the idempotent operation, you can retry a CreateFileCache operation without the risk of creating an extra cache. This approach can be useful when an initial call fails in a way that makes it unclear whether a cache was created. Examples are if a transport level timeout occurred, or your connection was reset. If you use the same client request token and the initial call created a cache, the client receives success as long as the parameters are the same.

", + "idempotencyToken":true + }, + "FileCacheType":{ + "shape":"FileCacheType", + "documentation":"

The type of cache that you're creating, which must be LUSTRE.

" + }, + "FileCacheTypeVersion":{ + "shape":"FileSystemTypeVersion", + "documentation":"

Sets the Lustre version for the cache that you're creating, which must be 2.12.

" + }, + "StorageCapacity":{ + "shape":"StorageCapacity", + "documentation":"

The storage capacity of the cache in gibibytes (GiB). Valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.

" + }, + "SubnetIds":{"shape":"SubnetIds"}, + "SecurityGroupIds":{ + "shape":"SecurityGroupIds", + "documentation":"

A list of IDs specifying the security groups to apply to all network interfaces created for Amazon File Cache access. This list isn't returned in later requests to describe the cache.

" + }, + "Tags":{"shape":"Tags"}, + "CopyTagsToDataRepositoryAssociations":{ + "shape":"CopyTagsToDataRepositoryAssociations", + "documentation":"

A boolean flag indicating whether tags for the cache should be copied to data repository associations. This value defaults to false.

" + }, + "KmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

Specifies the ID of the Key Management Service (KMS) key to use for encrypting data on an Amazon File Cache. If a KmsKeyId isn't specified, the Amazon FSx-managed KMS key for your account is used. For more information, see Encrypt in the Key Management Service API Reference.

" + }, + "LustreConfiguration":{ + "shape":"CreateFileCacheLustreConfiguration", + "documentation":"

The configuration for the Amazon File Cache resource being created.

" + }, + "DataRepositoryAssociations":{ + "shape":"CreateFileCacheDataRepositoryAssociations", + "documentation":"

A list of up to 8 configurations for data repository associations (DRAs) to be created during the cache creation. The DRAs link the cache to either an Amazon S3 data repository or a Network File System (NFS) data repository that supports the NFSv3 protocol.

The DRA configurations must meet the following requirements:

  • All configurations on the list must be of the same data repository type, either all S3 or all NFS. A cache can't link to different data repository types at the same time.

  • An NFS DRA must link to an NFS file system that supports the NFSv3 protocol.

DRA automatic import and automatic export is not supported.

" + } + } + }, + "CreateFileCacheResponse":{ + "type":"structure", + "members":{ + "FileCache":{ + "shape":"FileCacheCreating", + "documentation":"

A description of the cache that was created.

" + } + } + }, "CreateFileSystemFromBackupRequest":{ "type":"structure", "required":[ @@ -1308,6 +1481,10 @@ "OpenZFSConfiguration":{ "shape":"CreateFileSystemOpenZFSConfiguration", "documentation":"

The OpenZFS configuration for the file system that's being created.

" + }, + "StorageCapacity":{ + "shape":"StorageCapacity", + "documentation":"

Sets the storage capacity of the OpenZFS file system that you're creating from a backup, in gibibytes (GiB). Valid values are from 64 GiB up to 524,288 GiB (512 TiB). However, the value that you specify must be equal to or greater than the backup's storage capacity value. If you don't use the StorageCapacity parameter, the default is the backup's StorageCapacity value.

If used to create a file system other than OpenZFS, you must provide a value that matches the backup's StorageCapacity value. If you provide any other value, Amazon FSx responds with a 400 Bad Request.

" } }, "documentation":"

The request object for the CreateFileSystemFromBackup operation.

" @@ -1393,7 +1570,7 @@ }, "EndpointIpAddressRange":{ "shape":"IpAddressRange", - "documentation":"

(Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. By default, Amazon FSx selects an unused IP address range for you from the 198.19.* range.

The Endpoint IP address range you select for your file system must exist outside the VPC's CIDR range and must be at least /30 or larger.

" + "documentation":"

(Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the VPC’s primary CIDR range to use as the endpoint IP address range for the file system. You can have overlapping endpoint IP addresses for file systems deployed in the same VPC/route tables.

" }, "FsxAdminPassword":{ "shape":"AdminPassword", @@ -1413,7 +1590,7 @@ }, "ThroughputCapacity":{ "shape":"MegabytesPerSecond", - "documentation":"

Sets the throughput capacity for the file system that you're creating. Valid values are 128, 256, 512, 1024, and 2048 MBps.

" + "documentation":"

Sets the throughput capacity for the file system that you're creating. Valid values are 128, 256, 512, 1024, 2048, and 4096 MBps.

" }, "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"} }, @@ -1433,16 +1610,16 @@ }, "CopyTagsToVolumes":{ "shape":"Flag", - "documentation":"

A Boolean value indicating whether tags for the volume should be copied to snapshots. This value defaults to false. If it's set to true, all tags for the volume are copied to snapshots where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to snapshots. If you specify one or more tags when creating the snapshot, no tags are copied from the volume, regardless of this value.

" + "documentation":"

A Boolean value indicating whether tags for the file system should be copied to volumes. This value defaults to false. If it's set to true, all tags for the file system are copied to volumes where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to volumes. If you specify one or more tags when creating the volume, no tags are copied from the file system, regardless of this value.

" }, "DailyAutomaticBackupStartTime":{"shape":"DailyTime"}, "DeploymentType":{ "shape":"OpenZFSDeploymentType", - "documentation":"

Specifies the file system deployment type. Amazon FSx for OpenZFS supports SINGLE_AZ_1. SINGLE_AZ_1 deployment type is configured for redundancy within a single Availability Zone.

" + "documentation":"

Specifies the file system deployment type. Single AZ deployment types are configured for redundancy within a single Availability Zone in an Amazon Web Services Region . Valid values are the following:

  • SINGLE_AZ_1- (Default) Creates file systems with throughput capacities of 64 - 4,096 MB/s. Single_AZ_1 is available in all Amazon Web Services Regions where Amazon FSx for OpenZFS is available, except US West (Oregon).

  • SINGLE_AZ_2- Creates file systems with throughput capacities of 160 - 10,240 MB/s using an NVMe L2ARC cache. Single_AZ_2 is available only in the US East (N. Virginia), US East (Ohio), US West (Oregon), and Europe (Ireland) Amazon Web Services Regions.

For more information, see: Deployment type availability and File system performancein theAmazon FSx for OpenZFS User Guide.

" }, "ThroughputCapacity":{ "shape":"MegabytesPerSecond", - "documentation":"

Specifies the throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second (MB/s). Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s. You pay for additional throughput capacity that you provision.

" + "documentation":"

Specifies the throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second (MB/s). Valid values depend on the DeploymentType you choose, as follows:

  • For SINGLE_AZ_1, valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s.

  • For SINGLE_AZ_2, valid values are 160, 320, 640, 1280, 2560, 3840, 5120, 7680, or 10240 MB/s.

You pay for additional throughput capacity that you provision.

" }, "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"}, "DiskIopsConfiguration":{"shape":"DiskIopsConfiguration"}, @@ -1569,9 +1746,7 @@ "CreateOntapVolumeConfiguration":{ "type":"structure", "required":[ - "JunctionPath", "SizeInMegabytes", - "StorageEfficiencyEnabled", "StorageVirtualMachineId" ], "members":{ @@ -1581,7 +1756,7 @@ }, "SecurityStyle":{ "shape":"SecurityStyle", - "documentation":"

The security style for the volume. Specify one of the following values:

  • UNIX if the file system is managed by a UNIX administrator, the majority of users are NFS clients, and an application accessing the data uses a UNIX user as the service account. UNIX is the default.

  • NTFS if the file system is managed by a Windows administrator, the majority of users are SMB clients, and an application accessing the data uses a Windows user as the service account.

  • MIXED if the file system is managed by both UNIX and Windows administrators and users consist of both NFS and SMB clients.

" + "documentation":"

Specifies the security style for the volume. If a volume's security style is not specified, it is automatically set to the root volume's security style. The security style determines the type of permissions that FSx for ONTAP uses to control data access. For more information, see Volume security style in the Amazon FSx for NetApp ONTAP User Guide. Specify one of the following values:

  • UNIX if the file system is managed by a UNIX administrator, the majority of users are NFS clients, and an application accessing the data uses a UNIX user as the service account.

  • NTFS if the file system is managed by a Windows administrator, the majority of users are SMB clients, and an application accessing the data uses a Windows user as the service account.

  • MIXED if the file system is managed by both UNIX and Windows administrators and users consist of both NFS and SMB clients.

" }, "SizeInMegabytes":{ "shape":"VolumeCapacity", @@ -1595,7 +1770,19 @@ "shape":"StorageVirtualMachineId", "documentation":"

Specifies the ONTAP SVM in which to create the volume.

" }, - "TieringPolicy":{"shape":"TieringPolicy"} + "TieringPolicy":{"shape":"TieringPolicy"}, + "OntapVolumeType":{ + "shape":"InputOntapVolumeType", + "documentation":"

Specifies the type of volume you are creating. Valid values are the following:

  • RW specifies a read/write volume. RW is the default.

  • DP specifies a data-protection volume. A DP volume is read-only and can be used as the destination of a NetApp SnapMirror relationship.

For more information, see Volume types in the Amazon FSx for NetApp ONTAP User Guide.

" + }, + "SnapshotPolicy":{ + "shape":"SnapshotPolicy", + "documentation":"

Specifies the snapshot policy for the volume. There are three built-in snapshot policies:

  • default: This is the default policy. A maximum of six hourly snapshots taken five minutes past the hour. A maximum of two daily snapshots taken Monday through Saturday at 10 minutes after midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes after midnight.

  • default-1weekly: This policy is the same as the default policy except that it only retains one snapshot from the weekly schedule.

  • none: This policy does not take any snapshots. This policy can be assigned to volumes to prevent automatic snapshots from being taken.

You can also provide the name of a custom policy that you created with the ONTAP CLI or REST API.

For more information, see Snapshot policies in the Amazon FSx for NetApp ONTAP User Guide.

" + }, + "CopyTagsToBackups":{ + "shape":"Flag", + "documentation":"

A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to false. If it's set to true, all tags for the volume are copied to all automatic and user-initiated backups where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the volume, regardless of this value.

" + } }, "documentation":"

Specifies the configuration of the ONTAP volume that you are creating.

" }, @@ -1824,7 +2011,7 @@ "documentation":"

The Domain Name Service (DNS) name for the file system. You can mount your file system using its DNS name.

", "max":275, "min":16, - "pattern":"^(fsi?-[0-9a-f]{8,}\\..{4,253})$" + "pattern":"^((fs|fc)i?-[0-9a-f]{8,}\\..{4,253})$" }, "DailyTime":{ "type":"string", @@ -1851,33 +2038,49 @@ "FileSystemId":{"shape":"FileSystemId"}, "Lifecycle":{ "shape":"DataRepositoryLifecycle", - "documentation":"

Describes the state of a data repository association. The lifecycle can have the following values:

  • CREATING - The data repository association between the FSx file system and the S3 data repository is being created. The data repository is unavailable.

  • AVAILABLE - The data repository association is available for use.

  • MISCONFIGURED - Amazon FSx cannot automatically import updates from the S3 bucket or automatically export updates to the S3 bucket until the data repository association configuration is corrected.

  • UPDATING - The data repository association is undergoing a customer initiated update that might affect its availability.

  • DELETING - The data repository association is undergoing a customer initiated deletion.

  • FAILED - The data repository association is in a terminal state that cannot be recovered.

" + "documentation":"

Describes the state of a data repository association. The lifecycle can have the following values:

  • CREATING - The data repository association between the file system or cache and the data repository is being created. The data repository is unavailable.

  • AVAILABLE - The data repository association is available for use.

  • MISCONFIGURED - The data repository association is misconfigured. Until the configuration is corrected, automatic import and automatic export will not work (only for Amazon FSx for Lustre).

  • UPDATING - The data repository association is undergoing a customer initiated update that might affect its availability.

  • DELETING - The data repository association is undergoing a customer initiated deletion.

  • FAILED - The data repository association is in a terminal state that cannot be recovered.

" }, "FailureDetails":{"shape":"DataRepositoryFailureDetails"}, "FileSystemPath":{ "shape":"Namespace", - "documentation":"

A path on the file system that points to a high-level directory (such as /ns1/) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path /ns1/, then you cannot link another data repository with file system path /ns1/ns2.

This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

If you specify only a forward slash (/) as the file system path, you can link only 1 data repository to the file system. You can only specify \"/\" as the file system path for the first data repository associated with a file system.

" + "documentation":"

A path on the Amazon FSx for Lustre file system that points to a high-level directory (such as /ns1/) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path /ns1/, then you cannot link another data repository with file system path /ns1/ns2.

This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

If you specify only a forward slash (/) as the file system path, you can link only one data repository to the file system. You can only specify \"/\" as the file system path for the first data repository associated with a file system.

" }, "DataRepositoryPath":{ "shape":"ArchivePath", - "documentation":"

The path to the Amazon S3 data repository that will be linked to the file system. The path can be an S3 bucket or prefix in the format s3://myBucket/myPrefix/. This path specifies where in the S3 data repository files will be imported from or exported to.

" + "documentation":"

The path to the data repository that will be linked to the cache or file system.

  • For Amazon File Cache, the path can be an NFS data repository that will be linked to the cache. The path can be in one of two formats:

    • If you are not using the DataRepositorySubdirectories parameter, the path is to an NFS Export directory (or one of its subdirectories) in the format nsf://nfs-domain-name/exportpath. You can therefore link a single NFS Export to a single data repository association.

    • If you are using the DataRepositorySubdirectories parameter, the path is the domain name of the NFS file system in the format nfs://filer-domain-name, which indicates the root of the subdirectories specified with the DataRepositorySubdirectories parameter.

  • For Amazon File Cache, the path can be an S3 bucket or prefix in the format s3://myBucket/myPrefix/.

  • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix in the format s3://myBucket/myPrefix/.

" }, "BatchImportMetaDataOnCreate":{ "shape":"BatchImportMetaDataOnCreate", - "documentation":"

A boolean flag indicating whether an import data repository task to import metadata should run after the data repository association is created. The task runs if this flag is set to true.

" + "documentation":"

A boolean flag indicating whether an import data repository task to import metadata should run after the data repository association is created. The task runs if this flag is set to true.

BatchImportMetaDataOnCreate is not supported for data repositories linked to an Amazon File Cache resource.

" }, "ImportedFileChunkSize":{ "shape":"Megabytes", - "documentation":"

For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system.

The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.

" + "documentation":"

For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system or cache.

The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.

" }, "S3":{ "shape":"S3DataRepositoryConfiguration", - "documentation":"

The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration defines which file events (new, changed, or deleted files or directories) are automatically imported from the linked data repository to the file system or automatically exported from the file system to the data repository.

" + "documentation":"

The configuration for an Amazon S3 data repository linked to an Amazon FSx for Lustre file system with a data repository association.

" }, "Tags":{"shape":"Tags"}, - "CreationTime":{"shape":"CreationTime"} + "CreationTime":{"shape":"CreationTime"}, + "FileCacheId":{ + "shape":"FileCacheId", + "documentation":"

The globally unique ID of the Amazon File Cache resource.

" + }, + "FileCachePath":{ + "shape":"Namespace", + "documentation":"

A path on the Amazon File Cache that points to a high-level directory (such as /ns1/) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the path is required. Two data repository associations cannot have overlapping cache paths. For example, if a data repository is associated with cache path /ns1/, then you cannot link another data repository with cache path /ns1/ns2.

This path specifies the directory in your cache where files will be exported from. This cache directory can be linked to only one data repository (S3 or NFS) and no other data repository can be linked to the directory.

The cache path can only be set to root (/) on an NFS DRA when DataRepositorySubdirectories is specified. If you specify root (/) as the cache path, you can create only one DRA on the cache.

The cache path cannot be set to root (/) for an S3 DRA.

" + }, + "DataRepositorySubdirectories":{ + "shape":"SubDirectoriesPaths", + "documentation":"

For Amazon File Cache, a list of NFS Exports that will be linked with an NFS data repository association. All the subdirectories must be on a single NFS file system. The Export paths are in the format /exportpath1. To use this parameter, you must configure DataRepositoryPath as the domain name of the NFS file system. The NFS file system domain name in effect is the root of the subdirectories. Note that DataRepositorySubdirectories is not supported for S3 data repositories.

" + }, + "NFS":{ + "shape":"NFSDataRepositoryConfiguration", + "documentation":"

The configuration for an NFS data repository linked to an Amazon File Cache resource with a data repository association.

" + } }, - "documentation":"

The configuration of a data repository association that links an Amazon FSx for Lustre file system to an Amazon S3 bucket. The data repository association configuration object is returned in the response of the following operations:

  • CreateDataRepositoryAssociation

  • UpdateDataRepositoryAssociation

  • DescribeDataRepositoryAssociations

Data repository associations are supported only for file systems with the Persistent_2 deployment type.

" + "documentation":"

The configuration of a data repository association that links an Amazon FSx for Lustre file system to an Amazon S3 bucket or an Amazon File Cache resource to an Amazon S3 bucket or an NFS file system. The data repository association configuration object is returned in the response of the following operations:

  • CreateDataRepositoryAssociation

  • UpdateDataRepositoryAssociation

  • DescribeDataRepositoryAssociations

Data repository associations are supported only for an Amazon FSx for Lustre file system with the Persistent_2 deployment type and for an Amazon File Cache resource.

" }, "DataRepositoryAssociationId":{ "type":"string", @@ -1935,7 +2138,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

Provides detailed information about the data respository if its Lifecycle is set to MISCONFIGURED or FAILED.

" + "documentation":"

Provides detailed information about the data repository if its Lifecycle is set to MISCONFIGURED or FAILED.

" }, "DataRepositoryLifecycle":{ "type":"string", @@ -1954,8 +2157,7 @@ "TaskId", "Lifecycle", "Type", - "CreationTime", - "FileSystemId" + "CreationTime" ], "members":{ "TaskId":{ @@ -1964,27 +2166,30 @@ }, "Lifecycle":{ "shape":"DataRepositoryTaskLifecycle", - "documentation":"

The lifecycle status of the data repository task, as follows:

  • PENDING - Amazon FSx has not started the task.

  • EXECUTING - Amazon FSx is processing the task.

  • FAILED - Amazon FSx was not able to complete the task. For example, there may be files the task failed to process. The DataRepositoryTaskFailureDetails property provides more information about task failures.

  • SUCCEEDED - FSx completed the task successfully.

  • CANCELED - Amazon FSx canceled the task and it did not complete.

  • CANCELING - FSx is in process of canceling the task.

You cannot delete an FSx for Lustre file system if there are data repository tasks for the file system in the PENDING or EXECUTING states. Please retry when the data repository task is finished (with a status of CANCELED, SUCCEEDED, or FAILED). You can use the DescribeDataRepositoryTask action to monitor the task status. Contact the FSx team if you need to delete your file system immediately.

" + "documentation":"

The lifecycle status of the data repository task, as follows:

  • PENDING - The task has not started.

  • EXECUTING - The task is in process.

  • FAILED - The task was not able to be completed. For example, there may be files the task failed to process. The DataRepositoryTaskFailureDetails property provides more information about task failures.

  • SUCCEEDED - The task has completed successfully.

  • CANCELED - The task was canceled and it did not complete.

  • CANCELING - The task is in process of being canceled.

You cannot delete an FSx for Lustre file system if there are data repository tasks for the file system in the PENDING or EXECUTING states. Please retry when the data repository task is finished (with a status of CANCELED, SUCCEEDED, or FAILED). You can use the DescribeDataRepositoryTask action to monitor the task status. Contact the FSx team if you need to delete your file system immediately.

" }, "Type":{ "shape":"DataRepositoryTaskType", - "documentation":"

The type of data repository task.

  • The EXPORT_TO_REPOSITORY data repository task exports from your Lustre file system from to a linked S3 bucket.

  • The IMPORT_METADATA_FROM_REPOSITORY data repository task imports metadata changes from a linked S3 bucket to your Lustre file system.

" + "documentation":"

The type of data repository task.

  • EXPORT_TO_REPOSITORY tasks export from your Amazon FSx for Lustre file system to a linked data repository.

  • IMPORT_METADATA_FROM_REPOSITORY tasks import metadata changes from a linked S3 bucket to your Amazon FSx for Lustre file system.

  • AUTO_RELEASE_DATA tasks automatically release files from an Amazon File Cache resource.

" }, "CreationTime":{"shape":"CreationTime"}, "StartTime":{ "shape":"StartTime", - "documentation":"

The time that Amazon FSx began processing the task.

" + "documentation":"

The time the system began processing the task.

" }, "EndTime":{ "shape":"EndTime", - "documentation":"

The time that Amazon FSx completed processing the task, populated after the task is complete.

" + "documentation":"

The time the system completed processing the task, populated after the task is complete.

" }, "ResourceARN":{"shape":"ResourceARN"}, "Tags":{"shape":"Tags"}, - "FileSystemId":{"shape":"FileSystemId"}, + "FileSystemId":{ + "shape":"FileSystemId", + "documentation":"

The globally unique ID of the file system.

" + }, "Paths":{ "shape":"DataRepositoryTaskPaths", - "documentation":"

An array of paths on the Amazon FSx for Lustre file system that specify the data for the data repository task to process. For example, in an EXPORT_TO_REPOSITORY task, the paths specify which data to export to the linked data repository.

(Default) If Paths is not specified, Amazon FSx uses the file system root directory.

" + "documentation":"

An array of paths that specify the data for the data repository task to process. For example, in an EXPORT_TO_REPOSITORY task, the paths specify which data to export to the linked data repository.

(Default) If Paths is not specified, Amazon FSx uses the file system root directory.

" }, "FailureDetails":{ "shape":"DataRepositoryTaskFailureDetails", @@ -1994,9 +2199,17 @@ "shape":"DataRepositoryTaskStatus", "documentation":"

Provides the status of the number of files that the task has processed successfully and failed to process.

" }, - "Report":{"shape":"CompletionReport"} + "Report":{"shape":"CompletionReport"}, + "CapacityToRelease":{ + "shape":"CapacityToRelease", + "documentation":"

Specifies the amount of data to release, in GiB, by an Amazon File Cache AUTO_RELEASE_DATA task that automatically releases files from the cache.

" + }, + "FileCacheId":{ + "shape":"FileCacheId", + "documentation":"

The system-generated, unique ID of the cache.

" + } }, - "documentation":"

A description of the data repository task. You use data repository tasks to perform bulk transfer operations between your Amazon FSx file system and a linked data repository.

" + "documentation":"

A description of the data repository task. You use data repository tasks to perform bulk transfer operations between an Amazon FSx for Lustre file system and a linked data repository. An Amazon File Cache resource uses a task to automatically release files from the cache.

" }, "DataRepositoryTaskEnded":{ "type":"structure", @@ -2040,7 +2253,8 @@ "enum":[ "file-system-id", "task-lifecycle", - "data-repository-association-id" + "data-repository-association-id", + "file-cache-id" ] }, "DataRepositoryTaskFilterValue":{ @@ -2107,6 +2321,10 @@ "LastUpdatedTime":{ "shape":"LastUpdatedTime", "documentation":"

The time at which the task status was last updated.

" + }, + "ReleasedCapacity":{ + "shape":"ReleasedCapacity", + "documentation":"

The total amount of data, in GiB, released by an Amazon File Cache AUTO_RELEASE_DATA task that automatically releases files from the cache.

" } }, "documentation":"

Provides the task status showing a running total of the total number of files to be processed, the number successfully processed, and the number of files the task failed to process.

" @@ -2115,7 +2333,9 @@ "type":"string", "enum":[ "EXPORT_TO_REPOSITORY", - "IMPORT_METADATA_FROM_REPOSITORY" + "IMPORT_METADATA_FROM_REPOSITORY", + "RELEASE_DATA_FROM_FILESYSTEM", + "AUTO_RELEASE_DATA" ] }, "DataRepositoryTasks":{ @@ -2156,10 +2376,7 @@ "DeleteDataInFileSystem":{"type":"boolean"}, "DeleteDataRepositoryAssociationRequest":{ "type":"structure", - "required":[ - "AssociationId", - "DeleteDataInFileSystem" - ], + "required":["AssociationId"], "members":{ "AssociationId":{ "shape":"DataRepositoryAssociationId", @@ -2192,6 +2409,33 @@ } } }, + "DeleteFileCacheRequest":{ + "type":"structure", + "required":["FileCacheId"], + "members":{ + "FileCacheId":{ + "shape":"FileCacheId", + "documentation":"

The ID of the cache that's being deleted.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + } + } + }, + "DeleteFileCacheResponse":{ + "type":"structure", + "members":{ + "FileCacheId":{ + "shape":"FileCacheId", + "documentation":"

The ID of the cache that's being deleted.

" + }, + "Lifecycle":{ + "shape":"FileCacheLifecycle", + "documentation":"

The cache lifecycle for the deletion request. If the DeleteFileCache operation is successful, this status is DELETING.

" + } + } + }, "DeleteFileSystemLustreConfiguration":{ "type":"structure", "members":{ @@ -2512,7 +2756,7 @@ "members":{ "Associations":{ "shape":"DataRepositoryAssociations", - "documentation":"

An array of one ore more data repository association descriptions.

" + "documentation":"

An array of one or more data repository association descriptions.

" }, "NextToken":{"shape":"NextToken"} } @@ -2542,6 +2786,27 @@ "NextToken":{"shape":"NextToken"} } }, + "DescribeFileCachesRequest":{ + "type":"structure", + "members":{ + "FileCacheIds":{ + "shape":"FileCacheIds", + "documentation":"

IDs of the caches whose descriptions you want to retrieve (String).

" + }, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeFileCachesResponse":{ + "type":"structure", + "members":{ + "FileCaches":{ + "shape":"FileCaches", + "documentation":"

The response object for the DescribeFileCaches operation.

" + }, + "NextToken":{"shape":"NextToken"} + } + }, "DescribeFileSystemAliasesRequest":{ "type":"structure", "required":["FileSystemId"], @@ -2792,6 +3057,246 @@ "max":3 }, "FailedCount":{"type":"long"}, + "FileCache":{ + "type":"structure", + "members":{ + "OwnerId":{"shape":"AWSAccountId"}, + "CreationTime":{"shape":"CreationTime"}, + "FileCacheId":{ + "shape":"FileCacheId", + "documentation":"

The system-generated, unique ID of the cache.

" + }, + "FileCacheType":{ + "shape":"FileCacheType", + "documentation":"

The type of cache, which must be LUSTRE.

" + }, + "FileCacheTypeVersion":{ + "shape":"FileSystemTypeVersion", + "documentation":"

The Lustre version of the cache, which must be 2.12.

" + }, + "Lifecycle":{ + "shape":"FileCacheLifecycle", + "documentation":"

The lifecycle status of the cache. The following are the possible values and what they mean:

  • AVAILABLE - The cache is in a healthy state, and is reachable and available for use.

  • CREATING - The new cache is being created.

  • DELETING - An existing cache is being deleted.

  • UPDATING - The cache is undergoing a customer-initiated update.

  • FAILED - An existing cache has experienced an unrecoverable failure. When creating a new cache, the cache was unable to be created.

" + }, + "FailureDetails":{ + "shape":"FileCacheFailureDetails", + "documentation":"

A structure providing details of any failures that occurred.

" + }, + "StorageCapacity":{ + "shape":"StorageCapacity", + "documentation":"

The storage capacity of the cache in gibibytes (GiB).

" + }, + "VpcId":{"shape":"VpcId"}, + "SubnetIds":{"shape":"SubnetIds"}, + "NetworkInterfaceIds":{"shape":"NetworkInterfaceIds"}, + "DNSName":{ + "shape":"DNSName", + "documentation":"

The Domain Name System (DNS) name for the cache.

" + }, + "KmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

Specifies the ID of the Key Management Service (KMS) key to use for encrypting data on an Amazon File Cache. If a KmsKeyId isn't specified, the Amazon FSx-managed KMS key for your account is used. For more information, see Encrypt in the Key Management Service API Reference.

" + }, + "ResourceARN":{"shape":"ResourceARN"}, + "LustreConfiguration":{ + "shape":"FileCacheLustreConfiguration", + "documentation":"

The configuration for the Amazon File Cache resource.

" + }, + "DataRepositoryAssociationIds":{ + "shape":"DataRepositoryAssociationIds", + "documentation":"

A list of IDs of data repository associations that are associated with this cache.

" + } + }, + "documentation":"

A description of a specific Amazon File Cache resource, which is a response object from the DescribeFileCaches operation.

" + }, + "FileCacheCreating":{ + "type":"structure", + "members":{ + "OwnerId":{"shape":"AWSAccountId"}, + "CreationTime":{"shape":"CreationTime"}, + "FileCacheId":{ + "shape":"FileCacheId", + "documentation":"

The system-generated, unique ID of the cache.

" + }, + "FileCacheType":{ + "shape":"FileCacheType", + "documentation":"

The type of cache, which must be LUSTRE.

" + }, + "FileCacheTypeVersion":{ + "shape":"FileSystemTypeVersion", + "documentation":"

The Lustre version of the cache, which must be 2.12.

" + }, + "Lifecycle":{ + "shape":"FileCacheLifecycle", + "documentation":"

The lifecycle status of the cache. The following are the possible values and what they mean:

  • AVAILABLE - The cache is in a healthy state, and is reachable and available for use.

  • CREATING - The new cache is being created.

  • DELETING - An existing cache is being deleted.

  • UPDATING - The cache is undergoing a customer-initiated update.

  • FAILED - An existing cache has experienced an unrecoverable failure. When creating a new cache, the cache was unable to be created.

" + }, + "FailureDetails":{ + "shape":"FileCacheFailureDetails", + "documentation":"

A structure providing details of any failures that occurred.

" + }, + "StorageCapacity":{ + "shape":"StorageCapacity", + "documentation":"

The storage capacity of the cache in gibibytes (GiB).

" + }, + "VpcId":{"shape":"VpcId"}, + "SubnetIds":{"shape":"SubnetIds"}, + "NetworkInterfaceIds":{"shape":"NetworkInterfaceIds"}, + "DNSName":{ + "shape":"DNSName", + "documentation":"

The Domain Name System (DNS) name for the cache.

" + }, + "KmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

Specifies the ID of the Key Management Service (KMS) key to use for encrypting data on an Amazon File Cache. If a KmsKeyId isn't specified, the Amazon FSx-managed KMS key for your account is used. For more information, see Encrypt in the Key Management Service API Reference.

" + }, + "ResourceARN":{"shape":"ResourceARN"}, + "Tags":{"shape":"Tags"}, + "CopyTagsToDataRepositoryAssociations":{ + "shape":"CopyTagsToDataRepositoryAssociations", + "documentation":"

A boolean flag indicating whether tags for the cache should be copied to data repository associations.

" + }, + "LustreConfiguration":{ + "shape":"FileCacheLustreConfiguration", + "documentation":"

The configuration for the Amazon File Cache resource.

" + }, + "DataRepositoryAssociationIds":{ + "shape":"DataRepositoryAssociationIds", + "documentation":"

A list of IDs of data repository associations that are associated with this cache.

" + } + }, + "documentation":"

The response object for the Amazon File Cache resource being created in the CreateFileCache operation.

" + }, + "FileCacheDataRepositoryAssociation":{ + "type":"structure", + "required":[ + "FileCachePath", + "DataRepositoryPath" + ], + "members":{ + "FileCachePath":{ + "shape":"Namespace", + "documentation":"

A path on the cache that points to a high-level directory (such as /ns1/) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the name is required. Two data repository associations cannot have overlapping cache paths. For example, if a data repository is associated with cache path /ns1/, then you cannot link another data repository with cache path /ns1/ns2.

This path specifies where in your cache files will be exported from. This cache directory can be linked to only one data repository, and no data repository other can be linked to the directory.

The cache path can only be set to root (/) on an NFS DRA when DataRepositorySubdirectories is specified. If you specify root (/) as the cache path, you can create only one DRA on the cache.

The cache path cannot be set to root (/) for an S3 DRA.

" + }, + "DataRepositoryPath":{ + "shape":"ArchivePath", + "documentation":"

The path to the S3 or NFS data repository that links to the cache. You must provide one of the following paths:

  • The path can be an NFS data repository that links to the cache. The path can be in one of two formats:

    • If you are not using the DataRepositorySubdirectories parameter, the path is to an NFS Export directory (or one of its subdirectories) in the format nsf://nfs-domain-name/exportpath. You can therefore link a single NFS Export to a single data repository association.

    • If you are using the DataRepositorySubdirectories parameter, the path is the domain name of the NFS file system in the format nfs://filer-domain-name, which indicates the root of the subdirectories specified with the DataRepositorySubdirectories parameter.

  • The path can be an S3 bucket or prefix in the format s3://myBucket/myPrefix/.

" + }, + "DataRepositorySubdirectories":{ + "shape":"SubDirectoriesPaths", + "documentation":"

A list of NFS Exports that will be linked with this data repository association. The Export paths are in the format /exportpath1. To use this parameter, you must configure DataRepositoryPath as the domain name of the NFS file system. The NFS file system domain name in effect is the root of the subdirectories. Note that DataRepositorySubdirectories is not supported for S3 data repositories.

" + }, + "NFS":{ + "shape":"FileCacheNFSConfiguration", + "documentation":"

The configuration for a data repository association that links an Amazon File Cache resource to an NFS data repository.

" + } + }, + "documentation":"

The configuration for a data repository association (DRA) to be created during the Amazon File Cache resource creation. The DRA links the cache to either an Amazon S3 bucket or prefix, or a Network File System (NFS) data repository that supports the NFSv3 protocol.

The DRA does not support automatic import or automatic export.

" + }, + "FileCacheFailureDetails":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"ErrorMessage", + "documentation":"

A message describing any failures that occurred.

" + } + }, + "documentation":"

A structure providing details of any failures that occurred.

" + }, + "FileCacheId":{ + "type":"string", + "max":21, + "min":11, + "pattern":"^(fc-[0-9a-f]{8,})$" + }, + "FileCacheIds":{ + "type":"list", + "member":{"shape":"FileCacheId"}, + "max":50 + }, + "FileCacheLifecycle":{ + "type":"string", + "enum":[ + "AVAILABLE", + "CREATING", + "DELETING", + "UPDATING", + "FAILED" + ] + }, + "FileCacheLustreConfiguration":{ + "type":"structure", + "members":{ + "PerUnitStorageThroughput":{ + "shape":"PerUnitStorageThroughput", + "documentation":"

Per unit storage throughput represents the megabytes per second of read or write throughput per 1 tebibyte of storage provisioned. Cache throughput capacity is equal to Storage capacity (TiB) * PerUnitStorageThroughput (MB/s/TiB). The only supported value is 1000.

" + }, + "DeploymentType":{ + "shape":"FileCacheLustreDeploymentType", + "documentation":"

The deployment type of the Amazon File Cache resource, which must be CACHE_1.

" + }, + "MountName":{ + "shape":"LustreFileSystemMountName", + "documentation":"

You use the MountName value when mounting the cache. If you pass a cache ID to the DescribeFileCaches operation, it returns the the MountName value as part of the cache's description.

" + }, + "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"}, + "MetadataConfiguration":{ + "shape":"FileCacheLustreMetadataConfiguration", + "documentation":"

The configuration for a Lustre MDT (Metadata Target) storage volume.

" + }, + "LogConfiguration":{ + "shape":"LustreLogConfiguration", + "documentation":"

The configuration for Lustre logging used to write the enabled logging events for your Amazon File Cache resource to Amazon CloudWatch Logs.

" + } + }, + "documentation":"

The configuration for the Amazon File Cache resource.

" + }, + "FileCacheLustreDeploymentType":{ + "type":"string", + "enum":["CACHE_1"] + }, + "FileCacheLustreMetadataConfiguration":{ + "type":"structure", + "required":["StorageCapacity"], + "members":{ + "StorageCapacity":{ + "shape":"MetadataStorageCapacity", + "documentation":"

The storage capacity of the Lustre MDT (Metadata Target) storage volume in gibibytes (GiB). The only supported value is 2400 GiB.

" + } + }, + "documentation":"

The configuration for a Lustre MDT (Metadata Target) storage volume. The metadata on Amazon File Cache is managed by a Lustre Metadata Server (MDS) while the actual metadata is persisted on an MDT.

" + }, + "FileCacheNFSConfiguration":{ + "type":"structure", + "required":["Version"], + "members":{ + "Version":{ + "shape":"NfsVersion", + "documentation":"

The version of the NFS (Network File System) protocol of the NFS data repository. The only supported value is NFS3, which indicates that the data repository must support the NFSv3 protocol.

" + }, + "DnsIps":{ + "shape":"RepositoryDnsIps", + "documentation":"

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file system domain name. The provided IP addresses can either be the IP addresses of a DNS forwarder or resolver that the customer manages and runs inside the customer VPC, or the IP addresses of the on-premises DNS servers.

" + } + }, + "documentation":"

The configuration for an NFS data repository association (DRA) created during the creation of the Amazon File Cache resource.

" + }, + "FileCacheNotFound":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

No caches were found based upon supplied parameters.

", + "exception":true + }, + "FileCacheType":{ + "type":"string", + "enum":["LUSTRE"] + }, + "FileCaches":{ + "type":"list", + "member":{"shape":"FileCache"}, + "max":50 + }, "FileSystem":{ "type":"structure", "members":{ @@ -2912,10 +3417,10 @@ "members":{ "Message":{ "shape":"ErrorMessage", - "documentation":"

A message describing any failures that occurred during file system creation.

" + "documentation":"

A message describing any failures that occurred.

" } }, - "documentation":"

A structure providing details of any failures that occurred when creating a file system.

" + "documentation":"

A structure providing details of any failures that occurred.

" }, "FileSystemId":{ "type":"string", @@ -3009,7 +3514,9 @@ "backup-type", "file-system-type", "volume-id", - "data-repository-type" + "data-repository-type", + "file-cache-id", + "file-cache-type" ] }, "FilterValue":{ @@ -3067,6 +3574,13 @@ "documentation":"

Amazon FSx doesn't support Multi-AZ Windows File Server copy backup in the destination Region, so the copied backup can't be restored.

", "exception":true }, + "InputOntapVolumeType":{ + "type":"string", + "enum":[ + "RW", + "DP" + ] + }, "IntegerNoMax":{ "type":"integer", "max":2147483647, @@ -3172,7 +3686,7 @@ }, "Iops":{ "type":"long", - "max":160000, + "max":1000000, "min":0 }, "IpAddress":{ @@ -3321,14 +3835,14 @@ "members":{ "Level":{ "shape":"LustreAccessAuditLogLevel", - "documentation":"

The data repository events that are logged by Amazon FSx.

  • WARN_ONLY - only warning events are logged.

  • ERROR_ONLY - only error events are logged.

  • WARN_ERROR - both warning events and error events are logged.

  • DISABLED - logging of data repository events is turned off.

" + "documentation":"

The data repository events that are logged by Amazon FSx.

  • WARN_ONLY - only warning events are logged.

  • ERROR_ONLY - only error events are logged.

  • WARN_ERROR - both warning events and error events are logged.

  • DISABLED - logging of data repository events is turned off.

Note that Amazon File Cache uses a default setting of WARN_ERROR, which can't be changed.

" }, "Destination":{ "shape":"GeneralARN", "documentation":"

The Amazon Resource Name (ARN) that specifies the destination of the logs. The destination can be any Amazon CloudWatch Logs log group ARN. The destination ARN must be in the same Amazon Web Services partition, Amazon Web Services Region, and Amazon Web Services account as your Amazon FSx file system.

" } }, - "documentation":"

The configuration for Lustre logging used to write the enabled logging events for your file system to Amazon CloudWatch Logs.

When logging is enabled, Lustre logs error and warning events from data repository operations such as automatic export and data repository tasks. To learn more about Lustre logging, see Logging with Amazon CloudWatch Logs.

" + "documentation":"

The configuration for Lustre logging used to write the enabled logging events for your Amazon FSx for Lustre file system or Amazon File Cache resource to Amazon CloudWatch Logs.

" }, "LustreLogCreateConfiguration":{ "type":"structure", @@ -3340,10 +3854,10 @@ }, "Destination":{ "shape":"GeneralARN", - "documentation":"

The Amazon Resource Name (ARN) that specifies the destination of the logs.

The destination can be any Amazon CloudWatch Logs log group ARN, with the following requirements:

  • The destination ARN that you provide must be in the same Amazon Web Services partition, Amazon Web Services Region, and Amazon Web Services account as your Amazon FSx file system.

  • The name of the Amazon CloudWatch Logs log group must begin with the /aws/fsx prefix.

  • If you do not provide a destination, Amazon FSx will create and use a log stream in the CloudWatch Logs /aws/fsx/lustre log group.

  • If Destination is provided and the resource does not exist, the request will fail with a BadRequest error.

  • If Level is set to DISABLED, you cannot specify a destination in Destination.

" + "documentation":"

The Amazon Resource Name (ARN) that specifies the destination of the logs.

The destination can be any Amazon CloudWatch Logs log group ARN, with the following requirements:

  • The destination ARN that you provide must be in the same Amazon Web Services partition, Amazon Web Services Region, and Amazon Web Services account as your Amazon FSx file system.

  • The name of the Amazon CloudWatch Logs log group must begin with the /aws/fsx prefix.

  • If you do not provide a destination, Amazon FSx will create and use a log stream in the CloudWatch Logs /aws/fsx/lustre log group (for Amazon FSx for Lustre) or /aws/fsx/filecache (for Amazon File Cache).

  • If Destination is provided and the resource does not exist, the request will fail with a BadRequest error.

  • If Level is set to DISABLED, you cannot specify a destination in Destination.

" } }, - "documentation":"

The Lustre logging configuration used when creating or updating an Amazon FSx for Lustre file system. Lustre logging writes the enabled logging events for your file system to Amazon CloudWatch Logs.

Error and warning events can be logged from the following data repository operations:

  • Automatic export

  • Data repository tasks

To learn more about Lustre logging, see Logging to Amazon CloudWatch Logs.

" + "documentation":"

The Lustre logging configuration used when creating or updating an Amazon FSx for Lustre file system. An Amazon File Cache is created with Lustre logging enabled by default, with a setting of WARN_ERROR for the logging events. which can't be changed.

Lustre logging writes the enabled logging events for your file system or cache to Amazon CloudWatch Logs.

" }, "LustreNoSquashNid":{ "type":"string", @@ -3390,9 +3904,22 @@ "MegabytesPerSecond":{ "type":"integer", "documentation":"

The sustained throughput of an Amazon FSx file system in Megabytes per second (MBps).

", - "max":4096, + "max":100000, "min":8 }, + "MetadataStorageCapacity":{ + "type":"integer", + "max":2147483647, + "min":0 + }, + "MissingFileCacheConfiguration":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

A cache configuration is required for this operation.

", + "exception":true + }, "MissingFileSystemConfiguration":{ "type":"structure", "members":{ @@ -3409,6 +3936,25 @@ "documentation":"

A volume configuration is required for this operation.

", "exception":true }, + "NFSDataRepositoryConfiguration":{ + "type":"structure", + "required":["Version"], + "members":{ + "Version":{ + "shape":"NfsVersion", + "documentation":"

The version of the NFS (Network File System) protocol of the NFS data repository. Currently, the only supported value is NFS3, which indicates that the data repository must support the NFSv3 protocol.

" + }, + "DnsIps":{ + "shape":"RepositoryDnsIps", + "documentation":"

A list of up to 2 IP addresses of DNS servers used to resolve the NFS file system domain name. The provided IP addresses can either be the IP addresses of a DNS forwarder or resolver that the customer manages and runs inside the customer VPC, or the IP addresses of the on-premises DNS servers.

" + }, + "AutoExportPolicy":{ + "shape":"AutoExportPolicy", + "documentation":"

This parameter is not supported for Amazon File Cache.

" + } + }, + "documentation":"

The configuration for a data repository association that links an Amazon File Cache resource to an NFS data repository.

" + }, "Namespace":{ "type":"string", "max":4096, @@ -3441,6 +3987,10 @@ "min":1, "pattern":"^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$" }, + "NfsVersion":{ + "type":"string", + "enum":["NFS3"] + }, "NotServiceResourceError":{ "type":"structure", "required":["ResourceARN"], @@ -3540,6 +4090,14 @@ "OntapVolumeType":{ "shape":"OntapVolumeType", "documentation":"

Specifies the type of volume. Valid values are the following:

  • RW specifies a read/write volume. RW is the default.

  • DP specifies a data-protection volume. You can protect data by replicating it to data-protection mirror copies. If a disaster occurs, you can use these data-protection mirror copies to recover data.

  • LS specifies a load-sharing mirror volume. A load-sharing mirror reduces the network traffic to a FlexVol volume by providing additional read-only access to clients.

" + }, + "SnapshotPolicy":{ + "shape":"SnapshotPolicy", + "documentation":"

Specifies the snapshot policy for the volume. There are three built-in snapshot policies:

  • default: This is the default policy. A maximum of six hourly snapshots taken five minutes past the hour. A maximum of two daily snapshots taken Monday through Saturday at 10 minutes after midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes after midnight.

  • default-1weekly: This policy is the same as the default policy except that it only retains one snapshot from the weekly schedule.

  • none: This policy does not take any snapshots. This policy can be assigned to volumes to prevent automatic snapshots from being taken.

You can also provide the name of a custom policy that you created with the ONTAP CLI or REST API.

For more information, see Snapshot policies in the Amazon FSx for NetApp ONTAP User Guide.

" + }, + "CopyTagsToBackups":{ + "shape":"Flag", + "documentation":"

A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to false. If it's set to true, all tags for the volume are copied to all automatic and user-initiated backups where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the volume, regardless of this value.

" } }, "documentation":"

The configuration of an Amazon FSx for NetApp ONTAP volume.

" @@ -3628,7 +4186,10 @@ }, "OpenZFSDeploymentType":{ "type":"string", - "enum":["SINGLE_AZ_1"] + "enum":[ + "SINGLE_AZ_1", + "SINGLE_AZ_2" + ] }, "OpenZFSFileSystemConfiguration":{ "type":"structure", @@ -3645,11 +4206,11 @@ "DailyAutomaticBackupStartTime":{"shape":"DailyTime"}, "DeploymentType":{ "shape":"OpenZFSDeploymentType", - "documentation":"

Specifies the file-system deployment type. Amazon FSx for OpenZFS supports SINGLE_AZ_1. SINGLE_AZ_1 is a file system configured for a single Availability Zone (AZ) of redundancy.

" + "documentation":"

Specifies the file-system deployment type. Amazon FSx for OpenZFS supports
 SINGLE_AZ_1 and SINGLE_AZ_2.

" }, "ThroughputCapacity":{ "shape":"MegabytesPerSecond", - "documentation":"

The throughput of an Amazon FSx file system, measured in megabytes per second (MBps). Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s.

" + "documentation":"

The throughput of an Amazon FSx file system, measured in megabytes per second (MBps).

" }, "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"}, "DiskIopsConfiguration":{"shape":"DiskIopsConfiguration"}, @@ -3709,7 +4270,7 @@ "OpenZFSUserAndGroupQuotas":{ "type":"list", "member":{"shape":"OpenZFSUserOrGroupQuota"}, - "max":100 + "max":500 }, "OpenZFSUserOrGroupQuota":{ "type":"structure", @@ -3780,6 +4341,18 @@ "UserAndGroupQuotas":{ "shape":"OpenZFSUserAndGroupQuotas", "documentation":"

An object specifying how much storage users or groups can use on the volume.

" + }, + "RestoreToSnapshot":{ + "shape":"SnapshotId", + "documentation":"

Specifies the ID of the snapshot to which the volume was restored.

" + }, + "DeleteIntermediateSnaphots":{ + "shape":"Flag", + "documentation":"

A Boolean value indicating whether snapshots between the current state and the specified snapshot should be deleted when a volume is restored from snapshot.

" + }, + "DeleteClonedVolumes":{ + "shape":"Flag", + "documentation":"

A Boolean value indicating whether dependent clone volumes created from intermediate snapshots should be deleted when a volume is restored from snapshot.

" } }, "documentation":"

The configuration of an Amazon FSx for OpenZFS volume.

" @@ -3830,6 +4403,7 @@ "FileSystem":{"shape":"FileSystem"} } }, + "ReleasedCapacity":{"type":"long"}, "ReportFormat":{ "type":"string", "enum":["REPORT_CSV_20191124"] @@ -3838,6 +4412,11 @@ "type":"string", "enum":["FAILED_FILES_ONLY"] }, + "RepositoryDnsIps":{ + "type":"list", + "member":{"shape":"IpAddress"}, + "max":10 + }, "RequestTime":{"type":"timestamp"}, "ResourceARN":{ "type":"string", @@ -3912,7 +4491,7 @@ }, "Options":{ "shape":"RestoreOpenZFSVolumeOptions", - "documentation":"

The settings used when restoring the specified volume from snapshot.

  • DELETE_INTERMEDIATE_SNAPSHOTS - Deletes snapshots between the current state and the specified snapshot. If there are intermediate snapshots and this option isn't used, RestoreVolumeFromSnapshot fails.

  • DELETE_CLONED_VOLUMES - Deletes any dependent clone volumes created from intermediate snapshots. If there are any dependent clone volumes and this option isn't used, RestoreVolumeFromSnapshot fails.

" + "documentation":"

The settings used when restoring the specified volume from snapshot.

  • DELETE_INTERMEDIATE_SNAPSHOTS - Deletes snapshots between the current state and the specified snapshot. If there are intermediate snapshots and this option isn't used, RestoreVolumeFromSnapshot fails.

  • DELETE_CLONED_VOLUMES - Deletes any dependent clone volumes created from intermediate snapshots. If there are any dependent clone volumes and this option isn't used, RestoreVolumeFromSnapshot fails.

" } } }, @@ -3926,6 +4505,10 @@ "Lifecycle":{ "shape":"VolumeLifecycle", "documentation":"

The lifecycle state of the volume being restored.

" + }, + "AdministrativeActions":{ + "shape":"AdministrativeActions", + "documentation":"

A list of administrative actions for the file system that are in process or waiting to be processed. Administrative actions describe changes to the Amazon FSx system.

" } } }, @@ -3952,7 +4535,7 @@ "documentation":"

Specifies the type of updated objects (new, changed, deleted) that will be automatically exported from your file system to the linked S3 bucket.

" } }, - "documentation":"

The configuration for an Amazon S3 data repository linked to an Amazon FSx Lustre file system with a data repository association. The configuration consists of an AutoImportPolicy that defines file events on the data repository are automatically imported to the file system and an AutoExportPolicy that defines which file events on the file system are automatically exported to the data repository. File events are when files or directories are added, changed, or deleted on the file system or the data repository.

" + "documentation":"

The configuration for an Amazon S3 data repository linked to an Amazon FSx for Lustre file system with a data repository association. The configuration consists of an AutoImportPolicy that defines which file events on the data repository are automatically imported to the file system and an AutoExportPolicy that defines which file events on the file system are automatically exported to the data repository. File events are when files or directories are added, changed, or deleted on the file system or the data repository.

Data repository associations on Amazon File Cache don't use S3DataRepositoryConfiguration because they don't support automatic import or automatic export.

" }, "SecurityGroupId":{ "type":"string", @@ -3964,7 +4547,7 @@ "SecurityGroupIds":{ "type":"list", "member":{"shape":"SecurityGroupId"}, - "documentation":"

A list of security group IDs.

", + "documentation":"

A list of IDs specifying the security groups to apply to all network interfaces created for file system access. This list isn't returned in later requests to describe the file system.

", "max":50 }, "SecurityStyle":{ @@ -4067,7 +4650,8 @@ "TOTAL_IN_PROGRESS_COPY_BACKUPS", "STORAGE_VIRTUAL_MACHINES_PER_FILE_SYSTEM", "VOLUMES_PER_FILE_SYSTEM", - "TOTAL_SSD_IOPS" + "TOTAL_SSD_IOPS", + "FILE_CACHE_COUNT" ] }, "ServiceLimitExceeded":{ @@ -4184,6 +4768,11 @@ "documentation":"

No Amazon FSx snapshots were found based on the supplied parameters.

", "exception":true }, + "SnapshotPolicy":{ + "type":"string", + "max":255, + "min":1 + }, "Snapshots":{ "type":"list", "member":{"shape":"Snapshot"}, @@ -4255,10 +4844,6 @@ "shape":"StorageVirtualMachineId", "documentation":"

The SVM's system generated unique ID.

" }, - "Subtype":{ - "shape":"StorageVirtualMachineSubtype", - "documentation":"

Describes the SVM's subtype.

" - }, "UUID":{ "shape":"UUID", "documentation":"

The SVM's UUID (universally unique identifier).

" @@ -4353,20 +4938,16 @@ "MIXED" ] }, - "StorageVirtualMachineSubtype":{ - "type":"string", - "enum":[ - "DEFAULT", - "DP_DESTINATION", - "SYNC_DESTINATION", - "SYNC_SOURCE" - ] - }, "StorageVirtualMachines":{ "type":"list", "member":{"shape":"StorageVirtualMachine"}, "max":50 }, + "SubDirectoriesPaths":{ + "type":"list", + "member":{"shape":"Namespace"}, + "max":500 + }, "SubnetId":{ "type":"string", "documentation":"

The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (VPC). For more information, see VPC and subnets in the Amazon VPC User Guide.

", @@ -4377,7 +4958,7 @@ "SubnetIds":{ "type":"list", "member":{"shape":"SubnetId"}, - "documentation":"

A list of subnet IDs. Currently, you can specify only one subnet ID in a call to the CreateFileSystem operation.

", + "documentation":"

A list of subnet IDs that the cache will be accessible from. You can specify only one subnet ID in a call to the CreateFileCache operation.

", "max":50 }, "SucceededCount":{"type":"long"}, @@ -4598,6 +5179,40 @@ } } }, + "UpdateFileCacheLustreConfiguration":{ + "type":"structure", + "members":{ + "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"} + }, + "documentation":"

The configuration update for an Amazon File Cache resource.

" + }, + "UpdateFileCacheRequest":{ + "type":"structure", + "required":["FileCacheId"], + "members":{ + "FileCacheId":{ + "shape":"FileCacheId", + "documentation":"

The ID of the cache that you are updating.

" + }, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "idempotencyToken":true + }, + "LustreConfiguration":{ + "shape":"UpdateFileCacheLustreConfiguration", + "documentation":"

The configuration updates for an Amazon File Cache resource.

" + } + } + }, + "UpdateFileCacheResponse":{ + "type":"structure", + "members":{ + "FileCache":{ + "shape":"FileCache", + "documentation":"

A description of the cache that was updated.

" + } + } + }, "UpdateFileSystemLustreConfiguration":{ "type":"structure", "members":{ @@ -4642,7 +5257,15 @@ }, "ThroughputCapacity":{ "shape":"MegabytesPerSecond", - "documentation":"

Specifies the throughput of an FSx for NetApp ONTAP file system, measured in megabytes per second (MBps). Valid values are 128, 256, 512, 1024, or 2048 MB/s.

" + "documentation":"

Specifies the throughput of an FSx for NetApp ONTAP file system, measured in megabytes per second (MBps). Valid values are 128, 256, 512, 1024, 2048, and 4096 MBps.

" + }, + "AddRouteTableIds":{ + "shape":"RouteTableIds", + "documentation":"

(Multi-AZ only) A list of IDs of new virtual private cloud (VPC) route tables to associate (add) with your Amazon FSx for NetApp ONTAP file system.

" + }, + "RemoveRouteTableIds":{ + "shape":"RouteTableIds", + "documentation":"

(Multi-AZ only) A list of IDs of existing virtual private cloud (VPC) route tables to disassociate (remove) from your Amazon FSx for NetApp ONTAP file system. You can use the API operation to retrieve the list of VPC route table IDs for a file system.

" } }, "documentation":"

The configuration updates for an Amazon FSx for NetApp ONTAP file system.

" @@ -4662,7 +5285,7 @@ "DailyAutomaticBackupStartTime":{"shape":"DailyTime"}, "ThroughputCapacity":{ "shape":"MegabytesPerSecond", - "documentation":"

The throughput of an Amazon FSx file system, measured in megabytes per second (MBps). Valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s.

" + "documentation":"

The throughput of an Amazon FSx for OpenZFS file system, measured in megabytes per second
 (MB/s). Valid values depend on the DeploymentType you choose, as follows:

  • For SINGLE_AZ_1, valid values are 64, 128, 256, 512, 1024, 2048, 3072, or 4096 MB/s.

  • For SINGLE_AZ_2, valid values are 160, 320, 640, 1280, 2560, 3840, 5120, 7680, or 10240 MB/s.

" }, "WeeklyMaintenanceStartTime":{"shape":"WeeklyTime"}, "DiskIopsConfiguration":{"shape":"DiskIopsConfiguration"} @@ -4761,6 +5384,14 @@ "TieringPolicy":{ "shape":"TieringPolicy", "documentation":"

Update the volume's data tiering policy.

" + }, + "SnapshotPolicy":{ + "shape":"SnapshotPolicy", + "documentation":"

Specifies the snapshot policy for the volume. There are three built-in snapshot policies:

  • default: This is the default policy. A maximum of six hourly snapshots taken five minutes past the hour. A maximum of two daily snapshots taken Monday through Saturday at 10 minutes after midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes after midnight.

  • default-1weekly: This policy is the same as the default policy except that it only retains one snapshot from the weekly schedule.

  • none: This policy does not take any snapshots. This policy can be assigned to volumes to prevent automatic snapshots from being taken.

You can also provide the name of a custom policy that you created with the ONTAP CLI or REST API.

For more information, see Snapshot policies in the Amazon FSx for NetApp ONTAP User Guide.

" + }, + "CopyTagsToBackups":{ + "shape":"Flag", + "documentation":"

A boolean flag indicating whether tags for the volume should be copied to backups. This value defaults to false. If it's set to true, all tags for the volume are copied to all automatic and user-initiated backups where the user doesn't specify tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are copied from the volume, regardless of this value.

" } }, "documentation":"

Used to specify changes to the ONTAP configuration for the volume you are updating.

" @@ -4929,7 +5560,7 @@ }, "AdministrativeActions":{ "shape":"AdministrativeActions", - "documentation":"

A list of administrative actions for the file system that are in process or waiting to be processed. Administrative actions describe changes to the Amazon FSx system that you initiated.

" + "documentation":"

A list of administrative actions for the volume that are in process or waiting to be processed. Administrative actions describe changes to the volume that you have initiated using the UpdateVolume action.

" }, "OpenZFSConfiguration":{ "shape":"OpenZFSVolumeConfiguration", diff --git a/botocore/data/gamelift/2015-10-01/endpoint-rule-set-1.json b/botocore/data/gamelift/2015-10-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..e2f1b444 --- /dev/null +++ b/botocore/data/gamelift/2015-10-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://gamelift-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://gamelift-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://gamelift.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://gamelift.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/gamelift/2015-10-01/paginators-1.json b/botocore/data/gamelift/2015-10-01/paginators-1.json index de44df93..d7c0d595 100644 --- a/botocore/data/gamelift/2015-10-01/paginators-1.json +++ b/botocore/data/gamelift/2015-10-01/paginators-1.json @@ -119,6 +119,18 @@ "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" } } } diff --git a/botocore/data/gamelift/2015-10-01/service-2.json b/botocore/data/gamelift/2015-10-01/service-2.json index 37a2dce6..a58039ba 100644 --- a/botocore/data/gamelift/2015-10-01/service-2.json +++ b/botocore/data/gamelift/2015-10-01/service-2.json @@ -26,7 +26,7 @@ {"shape":"InternalServiceException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Registers a player's acceptance or rejection of a proposed FlexMatch match. A matchmaking configuration may require player acceptance; if so, then matches built with that configuration cannot be completed unless all players accept the proposed match within a specified time limit.

When FlexMatch builds a match, all the matchmaking tickets involved in the proposed match are placed into status REQUIRES_ACCEPTANCE. This is a trigger for your game to get acceptance from all players in the ticket. Acceptances are only valid for tickets when they are in this status; all other acceptances result in an error.

To register acceptance, specify the ticket ID, a response, and one or more players. Once all players have registered acceptance, the matchmaking tickets advance to status PLACING, where a new game session is created for the match.

If any player rejects the match, or if acceptances are not received before a specified timeout, the proposed match is dropped. The matchmaking tickets are then handled in one of two ways: For tickets where one or more players rejected the match or failed to respond, the ticket status is set to CANCELLED, and processing is terminated. For tickets where players have accepted or not yet responded, the ticket status is returned to SEARCHING to find a new match. A new matchmaking request for these players can be submitted as needed.

Learn more

Add FlexMatch to a game client

FlexMatch events (reference)

Related actions

StartMatchmaking | DescribeMatchmaking | StopMatchmaking | AcceptMatch | StartMatchBackfill | All APIs by task

" + "documentation":"

Registers a player's acceptance or rejection of a proposed FlexMatch match. A matchmaking configuration may require player acceptance; if so, then matches built with that configuration cannot be completed unless all players accept the proposed match within a specified time limit.

When FlexMatch builds a match, all the matchmaking tickets involved in the proposed match are placed into status REQUIRES_ACCEPTANCE. This is a trigger for your game to get acceptance from all players in the ticket. Acceptances are only valid for tickets when they are in this status; all other acceptances result in an error.

To register acceptance, specify the ticket ID, a response, and one or more players. Once all players have registered acceptance, the matchmaking tickets advance to status PLACING, where a new game session is created for the match.

If any player rejects the match, or if acceptances are not received before a specified timeout, the proposed match is dropped. The matchmaking tickets are then handled in one of two ways: For tickets where one or more players rejected the match or failed to respond, the ticket status is set to CANCELLED, and processing is terminated. For tickets where players have accepted or not yet responded, the ticket status is returned to SEARCHING to find a new match. A new matchmaking request for these players can be submitted as needed.

Learn more

Add FlexMatch to a game client

FlexMatch events (reference)

" }, "ClaimGameServer":{ "name":"ClaimGameServer", @@ -44,7 +44,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Locates an available game server and temporarily reserves it to host gameplay and players. This operation is called from a game client or client service (such as a matchmaker) to request hosting resources for a new game session. In response, GameLift FleetIQ locates an available game server, places it in CLAIMED status for 60 seconds, and returns connection information that players can use to connect to the game server.

To claim a game server, identify a game server group. You can also specify a game server ID, although this approach bypasses GameLift FleetIQ placement optimization. Optionally, include game data to pass to the game server at the start of a game session, such as a game map or player information.

When a game server is successfully claimed, connection information is returned. A claimed game server's utilization status remains AVAILABLE while the claim status is set to CLAIMED for up to 60 seconds. This time period gives the game server time to update its status to UTILIZED (using UpdateGameServer) once players join. If the game server's status is not updated within 60 seconds, the game server reverts to unclaimed status and is available to be claimed by another request. The claim time period is a fixed value and is not configurable.

If you try to claim a specific game server, this request will fail in the following cases:

  • If the game server utilization status is UTILIZED.

  • If the game server claim status is CLAIMED.

When claiming a specific game server, this request will succeed even if the game server is running on an instance in DRAINING status. To avoid this, first check the instance status by calling DescribeGameServerInstances.

Learn more

GameLift FleetIQ Guide

Related actions

RegisterGameServer | ListGameServers | ClaimGameServer | DescribeGameServer | UpdateGameServer | DeregisterGameServer | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Locates an available game server and temporarily reserves it to host gameplay and players. This operation is called from a game client or client service (such as a matchmaker) to request hosting resources for a new game session. In response, GameLift FleetIQ locates an available game server, places it in CLAIMED status for 60 seconds, and returns connection information that players can use to connect to the game server.

To claim a game server, identify a game server group. You can also specify a game server ID, although this approach bypasses GameLift FleetIQ placement optimization. Optionally, include game data to pass to the game server at the start of a game session, such as a game map or player information.

When a game server is successfully claimed, connection information is returned. A claimed game server's utilization status remains AVAILABLE while the claim status is set to CLAIMED for up to 60 seconds. This time period gives the game server time to update its status to UTILIZED after players join. If the game server's status is not updated within 60 seconds, the game server reverts to unclaimed status and is available to be claimed by another request. The claim time period is a fixed value and is not configurable.

If you try to claim a specific game server, this request will fail in the following cases:

  • If the game server utilization status is UTILIZED.

  • If the game server claim status is CLAIMED.

When claiming a specific game server, this request will succeed even if the game server is running on an instance in DRAINING status. To avoid this, first check the instance status by calling DescribeGameServerInstances .

Learn more

GameLift FleetIQ Guide

" }, "CreateAlias":{ "name":"CreateAlias", @@ -62,7 +62,7 @@ {"shape":"LimitExceededException"}, {"shape":"TaggingFailedException"} ], - "documentation":"

Creates an alias for a fleet. In most situations, you can use an alias ID in place of a fleet ID. An alias provides a level of abstraction for a fleet that is useful when redirecting player traffic from one fleet to another, such as when updating your game build.

Amazon GameLift supports two types of routing strategies for aliases: simple and terminal. A simple alias points to an active fleet. A terminal alias is used to display messaging or link to a URL instead of routing players to an active fleet. For example, you might use a terminal alias when a game version is no longer supported and you want to direct players to an upgrade site.

To create a fleet alias, specify an alias name, routing strategy, and optional description. Each simple alias can point to only one fleet, but a fleet can have multiple aliases. If successful, a new alias record is returned, including an alias ID and an ARN. You can reassign an alias to another fleet by calling UpdateAlias.

Related actions

CreateAlias | ListAliases | DescribeAlias | UpdateAlias | DeleteAlias | ResolveAlias | All APIs by task

" + "documentation":"

Creates an alias for a fleet. In most situations, you can use an alias ID in place of a fleet ID. An alias provides a level of abstraction for a fleet that is useful when redirecting player traffic from one fleet to another, such as when updating your game build.

Amazon GameLift supports two types of routing strategies for aliases: simple and terminal. A simple alias points to an active fleet. A terminal alias is used to display messaging or link to a URL instead of routing players to an active fleet. For example, you might use a terminal alias when a game version is no longer supported and you want to direct players to an upgrade site.

To create a fleet alias, specify an alias name, routing strategy, and optional description. Each simple alias can point to only one fleet, but a fleet can have multiple aliases. If successful, a new alias record is returned, including an alias ID and an ARN. You can reassign an alias to another fleet by calling UpdateAlias.

Related actions

All APIs by task

" }, "CreateBuild":{ "name":"CreateBuild", @@ -79,7 +79,7 @@ {"shape":"TaggingFailedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a new Amazon GameLift build resource for your game server binary files. Game server binaries must be combined into a zip file for use with Amazon GameLift.

When setting up a new game build for GameLift, we recommend using the Amazon Web Services CLI command upload-build . This helper command combines two tasks: (1) it uploads your build files from a file directory to a GameLift Amazon S3 location, and (2) it creates a new build resource.

The CreateBuild operation can used in the following scenarios:

  • To create a new game build with build files that are in an Amazon S3 location under an Amazon Web Services account that you control. To use this option, you must first give Amazon GameLift access to the Amazon S3 bucket. With permissions in place, call CreateBuild and specify a build name, operating system, and the Amazon S3 storage location of your game build.

  • To directly upload your build files to a GameLift Amazon S3 location. To use this option, first call CreateBuild and specify a build name and operating system. This operation creates a new build resource and also returns an Amazon S3 location with temporary access credentials. Use the credentials to manually upload your build files to the specified Amazon S3 location. For more information, see Uploading Objects in the Amazon S3 Developer Guide. Build files can be uploaded to the GameLift Amazon S3 location once only; that can't be updated.

If successful, this operation creates a new build resource with a unique build ID and places it in INITIALIZED status. A build must be in READY status before you can create fleets with it.

Learn more

Uploading Your Game

Create a Build with Files in Amazon S3

Related actions

CreateBuild | ListBuilds | DescribeBuild | UpdateBuild | DeleteBuild | All APIs by task

" + "documentation":"

Creates a new Amazon GameLift build resource for your game server binary files. Combine game server binaries into a zip file for use with Amazon GameLift.

When setting up a new game build for GameLift, we recommend using the CLI command upload-build . This helper command combines two tasks: (1) it uploads your build files from a file directory to a GameLift Amazon S3 location, and (2) it creates a new build resource.

You can use the operation in the following scenarios:

  • To create a new game build with build files that are in an Amazon S3 location under an Amazon Web Services account that you control. To use this option, you give Amazon GameLift access to the Amazon S3 bucket. With permissions in place, specify a build name, operating system, and the Amazon S3 storage location of your game build.

  • To directly upload your build files to a GameLift Amazon S3 location. To use this option, specify a build name and operating system. This operation creates a new build resource and also returns an Amazon S3 location with temporary access credentials. Use the credentials to manually upload your build files to the specified Amazon S3 location. For more information, see Uploading Objects in the Amazon S3 Developer Guide. After you upload build files to the GameLift Amazon S3 location, you can't update them.

If successful, this operation creates a new build resource with a unique build ID and places it in INITIALIZED status. A build must be in READY status before you can create fleets with it.

Learn more

Uploading Your Game

Create a Build with Files in Amazon S3

All APIs by task

" }, "CreateFleet":{ "name":"CreateFleet", @@ -99,7 +99,7 @@ {"shape":"TaggingFailedException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Creates a fleet of Amazon Elastic Compute Cloud (Amazon Elastic Compute Cloud) instances to host your custom game server or Realtime Servers. Use this operation to configure the computing resources for your fleet and provide instructions for running game servers on each instance.

Most GameLift fleets can deploy instances to multiple locations, including the home Region (where the fleet is created) and an optional set of remote locations. Fleets that are created in the following Amazon Web Services Regions support multiple locations: us-east-1 (N. Virginia), us-west-2 (Oregon), eu-central-1 (Frankfurt), eu-west-1 (Ireland), ap-southeast-2 (Sydney), ap-northeast-1 (Tokyo), and ap-northeast-2 (Seoul). Fleets that are created in other GameLift Regions can deploy instances in the fleet's home Region only. All fleet instances use the same configuration regardless of location; however, you can adjust capacity settings and turn auto-scaling on/off for each location.

To create a fleet, choose the hardware for your instances, specify a game server build or Realtime script to deploy, and provide a runtime configuration to direct GameLift how to start and run game servers on each instance in the fleet. Set permissions for inbound traffic to your game servers, and enable optional features as needed. When creating a multi-location fleet, provide a list of additional remote locations.

If you need to debug your fleet, fetch logs, view performance metrics or other actions on the fleet, create the development fleet with port 22/3389 open. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished.

If successful, this operation creates a new Fleet resource and places it in NEW status, which prompts GameLift to initiate the fleet creation workflow. You can track fleet creation by checking fleet status using DescribeFleetAttributes and DescribeFleetLocationAttributes/, or by monitoring fleet creation events using DescribeFleetEvents. As soon as the fleet status changes to ACTIVE, you can enable automatic scaling for the fleet with PutScalingPolicy and set capacity for the home Region with UpdateFleetCapacity. When the status of each remote location reaches ACTIVE, you can set capacity by location using UpdateFleetCapacity.

Learn more

Setting up fleets

Debug fleet creation issues

Multi-location fleets

Related actions

CreateFleet | UpdateFleetCapacity | PutScalingPolicy | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetLocationAttributes | UpdateFleetAttributes | StopFleetActions | DeleteFleet | All APIs by task

" + "documentation":"

Creates a fleet of Amazon Elastic Compute Cloud (Amazon Elastic Compute Cloud) instances to host your custom game server or Realtime Servers. Use this operation to configure the computing resources for your fleet and provide instructions for running game servers on each instance.

Most GameLift fleets can deploy instances to multiple locations, including the home Region (where the fleet is created) and an optional set of remote locations. Fleets that are created in the following Amazon Web Services Regions support multiple locations: us-east-1 (N. Virginia), us-west-2 (Oregon), eu-central-1 (Frankfurt), eu-west-1 (Ireland), ap-southeast-2 (Sydney), ap-northeast-1 (Tokyo), and ap-northeast-2 (Seoul). Fleets that are created in other GameLift Regions can deploy instances in the fleet's home Region only. All fleet instances use the same configuration regardless of location; however, you can adjust capacity settings and turn auto-scaling on/off for each location.

To create a fleet, choose the hardware for your instances, specify a game server build or Realtime script to deploy, and provide a runtime configuration to direct GameLift how to start and run game servers on each instance in the fleet. Set permissions for inbound traffic to your game servers, and enable optional features as needed. When creating a multi-location fleet, provide a list of additional remote locations.

If you need to debug your fleet, fetch logs, view performance metrics or other actions on the fleet, create the development fleet with port 22/3389 open. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished.

If successful, this operation creates a new Fleet resource and places it in NEW status, which prompts GameLift to initiate the fleet creation workflow.

Learn more

Setting up fleets

Debug fleet creation issues

Multi-location fleets

" }, "CreateFleetLocations":{ "name":"CreateFleetLocations", @@ -115,9 +115,10 @@ {"shape":"UnauthorizedException"}, {"shape":"NotFoundException"}, {"shape":"InvalidFleetStatusException"}, - {"shape":"UnsupportedRegionException"} + {"shape":"UnsupportedRegionException"}, + {"shape":"ConflictException"} ], - "documentation":"

Adds remote locations to a fleet and begins populating the new locations with EC2 instances. The new instances conform to the fleet's instance type, auto-scaling, and other configuration settings.

This operation cannot be used with fleets that don't support remote locations. Fleets can have multiple locations only if they reside in Amazon Web Services Regions that support this feature (see CreateFleet for the complete list) and were created after the feature was released in March 2021.

To add fleet locations, specify the fleet to be updated and provide a list of one or more locations.

If successful, this operation returns the list of added locations with their status set to NEW. GameLift initiates the process of starting an instance in each added location. You can track the status of each new location by monitoring location creation events using DescribeFleetEvents. Alternatively, you can poll location status by calling DescribeFleetLocationAttributes. After a location status becomes ACTIVE, you can adjust the location's capacity as needed with UpdateFleetCapacity.

Learn more

Setting up fleets

Multi-location fleets

Related actions

CreateFleetLocations | DescribeFleetLocationAttributes | DescribeFleetLocationCapacity | DescribeFleetLocationUtilization | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetUtilization | UpdateFleetCapacity | StopFleetActions | DeleteFleetLocations | All APIs by task

" + "documentation":"

Adds remote locations to a fleet and begins populating the new locations with EC2 instances. The new instances conform to the fleet's instance type, auto-scaling, and other configuration settings.

This operation cannot be used with fleets that don't support remote locations. Fleets can have multiple locations only if they reside in Amazon Web Services Regions that support this feature and were created after the feature was released in March 2021.

To add fleet locations, specify the fleet to be updated and provide a list of one or more locations.

If successful, this operation returns the list of added locations with their status set to NEW. GameLift initiates the process of starting an instance in each added location. You can track the status of each new location by monitoring location creation events using DescribeFleetEvents.

Learn more

Setting up fleets

Multi-location fleets

" }, "CreateGameServerGroup":{ "name":"CreateGameServerGroup", @@ -134,7 +135,7 @@ {"shape":"InternalServiceException"}, {"shape":"LimitExceededException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Creates a GameLift FleetIQ game server group for managing game hosting on a collection of Amazon Elastic Compute Cloud instances for game hosting. This operation creates the game server group, creates an Auto Scaling group in your Amazon Web Services account, and establishes a link between the two groups. You can view the status of your game server groups in the GameLift console. Game server group metrics and events are emitted to Amazon CloudWatch.

Before creating a new game server group, you must have the following:

  • An Amazon Elastic Compute Cloud launch template that specifies how to launch Amazon Elastic Compute Cloud instances with your game server build. For more information, see Launching an Instance from a Launch Template in the Amazon Elastic Compute Cloud User Guide.

  • An IAM role that extends limited access to your Amazon Web Services account to allow GameLift FleetIQ to create and interact with the Auto Scaling group. For more information, see Create IAM roles for cross-service interaction in the GameLift FleetIQ Developer Guide.

To create a new game server group, specify a unique group name, IAM role and Amazon Elastic Compute Cloud launch template, and provide a list of instance types that can be used in the group. You must also set initial maximum and minimum limits on the group's instance count. You can optionally set an Auto Scaling policy with target tracking based on a GameLift FleetIQ metric.

Once the game server group and corresponding Auto Scaling group are created, you have full access to change the Auto Scaling group's configuration as needed. Several properties that are set when creating a game server group, including maximum/minimum size and auto-scaling policy settings, must be updated directly in the Auto Scaling group. Keep in mind that some Auto Scaling group properties are periodically updated by GameLift FleetIQ as part of its balancing activities to optimize for availability and cost.

Learn more

GameLift FleetIQ Guide

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Creates a GameLift FleetIQ game server group for managing game hosting on a collection of Amazon Elastic Compute Cloud instances for game hosting. This operation creates the game server group, creates an Auto Scaling group in your Amazon Web Services account, and establishes a link between the two groups. You can view the status of your game server groups in the GameLift console. Game server group metrics and events are emitted to Amazon CloudWatch.

Before creating a new game server group, you must have the following:

  • An Amazon Elastic Compute Cloud launch template that specifies how to launch Amazon Elastic Compute Cloud instances with your game server build. For more information, see Launching an Instance from a Launch Template in the Amazon Elastic Compute Cloud User Guide.

  • An IAM role that extends limited access to your Amazon Web Services account to allow GameLift FleetIQ to create and interact with the Auto Scaling group. For more information, see Create IAM roles for cross-service interaction in the GameLift FleetIQ Developer Guide.

To create a new game server group, specify a unique group name, IAM role and Amazon Elastic Compute Cloud launch template, and provide a list of instance types that can be used in the group. You must also set initial maximum and minimum limits on the group's instance count. You can optionally set an Auto Scaling policy with target tracking based on a GameLift FleetIQ metric.

Once the game server group and corresponding Auto Scaling group are created, you have full access to change the Auto Scaling group's configuration as needed. Several properties that are set when creating a game server group, including maximum/minimum size and auto-scaling policy settings, must be updated directly in the Auto Scaling group. Keep in mind that some Auto Scaling group properties are periodically updated by GameLift FleetIQ as part of its balancing activities to optimize for availability and cost.

Learn more

GameLift FleetIQ Guide

" }, "CreateGameSession":{ "name":"CreateGameSession", @@ -157,7 +158,7 @@ {"shape":"IdempotentParameterMismatchException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Creates a multiplayer game session for players in a specific fleet location. This operation prompts an available server process to start a game session and retrieves connection information for the new game session. As an alternative, consider using the GameLift game session placement feature with

with StartGameSessionPlacement, which uses FleetIQ algorithms and queues to optimize the placement process.

When creating a game session, you specify exactly where you want to place it and provide a set of game session configuration settings. The fleet must be in ACTIVE status before a game session can be created in it.

This operation can be used in the following ways:

  • To create a game session on an instance in a fleet's home Region, provide a fleet or alias ID along with your game session configuration.

  • To create a game session on an instance in a fleet's remote location, provide a fleet or alias ID and a location name, along with your game session configuration.

If successful, a workflow is initiated to start a new game session. A GameSession object is returned containing the game session configuration and status. When the status is ACTIVE, game session connection information is provided and player sessions can be created for the game session. By default, newly created game sessions are open to new players. You can restrict new player access by using UpdateGameSession to change the game session's player session creation policy.

Game session logs are retained for all active game sessions for 14 days. To access the logs, call GetGameSessionLogUrl to download the log files.

Available in Amazon GameLift Local.

Learn more

Start a game session

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Creates a multiplayer game session for players in a specific fleet location. This operation prompts an available server process to start a game session and retrieves connection information for the new game session. As an alternative, consider using the GameLift game session placement feature with StartGameSessionPlacement , which uses FleetIQ algorithms and queues to optimize the placement process.

When creating a game session, you specify exactly where you want to place it and provide a set of game session configuration settings. The fleet must be in ACTIVE status before a game session can be created in it.

This operation can be used in the following ways:

  • To create a game session on an instance in a fleet's home Region, provide a fleet or alias ID along with your game session configuration.

  • To create a game session on an instance in a fleet's remote location, provide a fleet or alias ID and a location name, along with your game session configuration.

If successful, a workflow is initiated to start a new game session. A GameSession object is returned containing the game session configuration and status. When the status is ACTIVE, game session connection information is provided and player sessions can be created for the game session. By default, newly created game sessions are open to new players. You can restrict new player access by using UpdateGameSession to change the game session's player session creation policy.

Game session logs are retained for all active game sessions for 14 days. To access the logs, call GetGameSessionLogUrl to download the log files.

Available in Amazon GameLift Local.

Learn more

Start a game session

All APIs by task

" }, "CreateGameSessionQueue":{ "name":"CreateGameSessionQueue", @@ -177,6 +178,24 @@ ], "documentation":"

Creates a placement queue that processes requests for new game sessions. A queue uses FleetIQ algorithms to determine the best placement locations and find an available game server there, then prompts the game server process to start a new game session.

A game session queue is configured with a set of destinations (GameLift fleets or aliases), which determine the locations where the queue can place new game sessions. These destinations can span multiple fleet types (Spot and On-Demand), instance types, and Amazon Web Services Regions. If the queue includes multi-location fleets, the queue is able to place game sessions in all of a fleet's remote locations. You can opt to filter out individual locations if needed.

The queue configuration also determines how FleetIQ selects the best available placement for a new game session. Before searching for an available game server, FleetIQ first prioritizes the queue's destinations and locations, with the best placement locations on top. You can set up the queue to use the FleetIQ default prioritization or provide an alternate set of priorities.

To create a new queue, provide a name, timeout value, and a list of destinations. Optionally, specify a sort configuration and/or a filter, and define a set of latency cap policies. You can also include the ARN for an Amazon Simple Notification Service (SNS) topic to receive notifications of game session placement activity. Notifications using SNS or CloudWatch events is the preferred way to track placement activity.

If successful, a new GameSessionQueue object is returned with an assigned queue ARN. New game session requests, which are submitted to queue with StartGameSessionPlacement or StartMatchmaking, reference a queue's name or ARN.

Learn more

Design a game session queue

Create a game session queue

Related actions

CreateGameSessionQueue | DescribeGameSessionQueues | UpdateGameSessionQueue | DeleteGameSessionQueue | All APIs by task

" }, + "CreateLocation":{ + "name":"CreateLocation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLocationInput"}, + "output":{"shape":"CreateLocationOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"LimitExceededException"}, + {"shape":"ConflictException"}, + {"shape":"TaggingFailedException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Creates a custom location for use in an Anywhere fleet.

" + }, "CreateMatchmakingConfiguration":{ "name":"CreateMatchmakingConfiguration", "http":{ @@ -193,7 +212,7 @@ {"shape":"UnsupportedRegionException"}, {"shape":"TaggingFailedException"} ], - "documentation":"

Defines a new matchmaking configuration for use with FlexMatch. Whether your are using FlexMatch with GameLift hosting or as a standalone matchmaking service, the matchmaking configuration sets out rules for matching players and forming teams. If you're also using GameLift hosting, it defines how to start game sessions for each match. Your matchmaking system can use multiple configurations to handle different game scenarios. All matchmaking requests (StartMatchmaking or StartMatchBackfill) identify the matchmaking configuration to use and provide player attributes consistent with that configuration.

To create a matchmaking configuration, you must provide the following: configuration name and FlexMatch mode (with or without GameLift hosting); a rule set that specifies how to evaluate players and find acceptable matches; whether player acceptance is required; and the maximum time allowed for a matchmaking attempt. When using FlexMatch with GameLift hosting, you also need to identify the game session queue to use when starting a game session for the match.

In addition, you must set up an Amazon Simple Notification Service topic to receive matchmaking notifications. Provide the topic ARN in the matchmaking configuration. An alternative method, continuously polling ticket status with DescribeMatchmaking, is only suitable for games in development with low matchmaking usage.

Learn more

Design a FlexMatch matchmaker

Set up FlexMatch event notification

Related actions

CreateMatchmakingConfiguration | DescribeMatchmakingConfigurations | UpdateMatchmakingConfiguration | DeleteMatchmakingConfiguration | CreateMatchmakingRuleSet | DescribeMatchmakingRuleSets | ValidateMatchmakingRuleSet | DeleteMatchmakingRuleSet | All APIs by task

" + "documentation":"

Defines a new matchmaking configuration for use with FlexMatch. Whether your are using FlexMatch with GameLift hosting or as a standalone matchmaking service, the matchmaking configuration sets out rules for matching players and forming teams. If you're also using GameLift hosting, it defines how to start game sessions for each match. Your matchmaking system can use multiple configurations to handle different game scenarios. All matchmaking requests identify the matchmaking configuration to use and provide player attributes consistent with that configuration.

To create a matchmaking configuration, you must provide the following: configuration name and FlexMatch mode (with or without GameLift hosting); a rule set that specifies how to evaluate players and find acceptable matches; whether player acceptance is required; and the maximum time allowed for a matchmaking attempt. When using FlexMatch with GameLift hosting, you also need to identify the game session queue to use when starting a game session for the match.

In addition, you must set up an Amazon Simple Notification Service topic to receive matchmaking notifications. Provide the topic ARN in the matchmaking configuration.

Learn more

Design a FlexMatch matchmaker

Set up FlexMatch event notification

" }, "CreateMatchmakingRuleSet":{ "name":"CreateMatchmakingRuleSet", @@ -205,11 +224,12 @@ "output":{"shape":"CreateMatchmakingRuleSetOutput"}, "errors":[ {"shape":"InvalidRequestException"}, + {"shape":"LimitExceededException"}, {"shape":"InternalServiceException"}, {"shape":"UnsupportedRegionException"}, {"shape":"TaggingFailedException"} ], - "documentation":"

Creates a new rule set for FlexMatch matchmaking. A rule set describes the type of match to create, such as the number and size of teams. It also sets the parameters for acceptable player matches, such as minimum skill level or character type. A rule set is used by a MatchmakingConfiguration.

To create a matchmaking rule set, provide unique rule set name and the rule set body in JSON format. Rule sets must be defined in the same Region as the matchmaking configuration they are used with.

Since matchmaking rule sets cannot be edited, it is a good idea to check the rule set syntax using ValidateMatchmakingRuleSet before creating a new rule set.

Learn more

Related actions

CreateMatchmakingConfiguration | DescribeMatchmakingConfigurations | UpdateMatchmakingConfiguration | DeleteMatchmakingConfiguration | CreateMatchmakingRuleSet | DescribeMatchmakingRuleSets | ValidateMatchmakingRuleSet | DeleteMatchmakingRuleSet | All APIs by task

" + "documentation":"

Creates a new rule set for FlexMatch matchmaking. A rule set describes the type of match to create, such as the number and size of teams. It also sets the parameters for acceptable player matches, such as minimum skill level or character type.

To create a matchmaking rule set, provide unique rule set name and the rule set body in JSON format. Rule sets must be defined in the same Region as the matchmaking configuration they are used with.

Since matchmaking rule sets cannot be edited, it is a good idea to check the rule set syntax using ValidateMatchmakingRuleSet before creating a new rule set.

Learn more

" }, "CreatePlayerSession":{ "name":"CreatePlayerSession", @@ -228,7 +248,7 @@ {"shape":"InvalidRequestException"}, {"shape":"NotFoundException"} ], - "documentation":"

Reserves an open player slot in a game session for a player. New player sessions can be created in any game session with an open slot that is in ACTIVE status and has a player creation policy of ACCEPT_ALL. You can add a group of players to a game session with CreatePlayerSessions.

To create a player session, specify a game session ID, player ID, and optionally a set of player data.

If successful, a slot is reserved in the game session for the player and a new PlayerSession object is returned with a player session ID. The player references the player session ID when sending a connection request to the game session, and the game server can use it to validate the player reservation with the GameLift service. Player sessions cannot be updated.

The maximum number of players per game session is 200. It is not adjustable.

Available in Amazon GameLift Local.

Related actions

CreatePlayerSession | CreatePlayerSessions | DescribePlayerSessions | StartGameSessionPlacement | DescribeGameSessionPlacement | All APIs by task

" + "documentation":"

Reserves an open player slot in a game session for a player. New player sessions can be created in any game session with an open slot that is in ACTIVE status and has a player creation policy of ACCEPT_ALL. You can add a group of players to a game session with CreatePlayerSessions .

To create a player session, specify a game session ID, player ID, and optionally a set of player data.

If successful, a slot is reserved in the game session for the player and a new PlayerSessions object is returned with a player session ID. The player references the player session ID when sending a connection request to the game session, and the game server can use it to validate the player reservation with the GameLift service. Player sessions cannot be updated.

The maximum number of players per game session is 200. It is not adjustable.

Related actions

All APIs by task

" }, "CreatePlayerSessions":{ "name":"CreatePlayerSessions", @@ -247,7 +267,7 @@ {"shape":"InvalidRequestException"}, {"shape":"NotFoundException"} ], - "documentation":"

Reserves open slots in a game session for a group of players. New player sessions can be created in any game session with an open slot that is in ACTIVE status and has a player creation policy of ACCEPT_ALL. To add a single player to a game session, use CreatePlayerSession.

To create player sessions, specify a game session ID and a list of player IDs. Optionally, provide a set of player data for each player ID.

If successful, a slot is reserved in the game session for each player, and new PlayerSession objects are returned with player session IDs. Each player references their player session ID when sending a connection request to the game session, and the game server can use it to validate the player reservation with the GameLift service. Player sessions cannot be updated.

The maximum number of players per game session is 200. It is not adjustable.

Available in Amazon GameLift Local.

Related actions

CreatePlayerSession | CreatePlayerSessions | DescribePlayerSessions | StartGameSessionPlacement | DescribeGameSessionPlacement | All APIs by task

" + "documentation":"

Reserves open slots in a game session for a group of players. New player sessions can be created in any game session with an open slot that is in ACTIVE status and has a player creation policy of ACCEPT_ALL. To add a single player to a game session, use CreatePlayerSession

To create player sessions, specify a game session ID and a list of player IDs. Optionally, provide a set of player data for each player ID.

If successful, a slot is reserved in the game session for each player, and new PlayerSession objects are returned with player session IDs. Each player references their player session ID when sending a connection request to the game session, and the game server can use it to validate the player reservation with the GameLift service. Player sessions cannot be updated.

The maximum number of players per game session is 200. It is not adjustable.

Related actions

All APIs by task

" }, "CreateScript":{ "name":"CreateScript", @@ -264,7 +284,7 @@ {"shape":"TaggingFailedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates a new script record for your Realtime Servers script. Realtime scripts are JavaScript that provide configuration settings and optional custom game logic for your game. The script is deployed when you create a Realtime Servers fleet to host your game sessions. Script logic is executed during an active game session.

To create a new script record, specify a script name and provide the script file(s). The script files and all dependencies must be zipped into a single file. You can pull the zip file from either of these locations:

  • A locally available directory. Use the ZipFile parameter for this option.

  • An Amazon Simple Storage Service (Amazon S3) bucket under your Amazon Web Services account. Use the StorageLocation parameter for this option. You'll need to have an Identity Access Management (IAM) role that allows the Amazon GameLift service to access your S3 bucket.

If the call is successful, a new script record is created with a unique script ID. If the script file is provided as a local file, the file is uploaded to an Amazon GameLift-owned S3 bucket and the script record's storage location reflects this location. If the script file is provided as an S3 bucket, Amazon GameLift accesses the file at this storage location as needed for deployment.

Learn more

Amazon GameLift Realtime Servers

Set Up a Role for Amazon GameLift Access

Related actions

CreateScript | ListScripts | DescribeScript | UpdateScript | DeleteScript | All APIs by task

" + "documentation":"

Creates a new script record for your Realtime Servers script. Realtime scripts are JavaScript that provide configuration settings and optional custom game logic for your game. The script is deployed when you create a Realtime Servers fleet to host your game sessions. Script logic is executed during an active game session.

To create a new script record, specify a script name and provide the script file(s). The script files and all dependencies must be zipped into a single file. You can pull the zip file from either of these locations:

  • A locally available directory. Use the ZipFile parameter for this option.

  • An Amazon Simple Storage Service (Amazon S3) bucket under your Amazon Web Services account. Use the StorageLocation parameter for this option. You'll need to have an Identity Access Management (IAM) role that allows the Amazon GameLift service to access your S3 bucket.

If the call is successful, a new script record is created with a unique script ID. If the script file is provided as a local file, the file is uploaded to an Amazon GameLift-owned S3 bucket and the script record's storage location reflects this location. If the script file is provided as an S3 bucket, Amazon GameLift accesses the file at this storage location as needed for deployment.

Learn more

Amazon GameLift Realtime Servers

Set Up a Role for Amazon GameLift Access

Related actions

All APIs by task

" }, "CreateVpcPeeringAuthorization":{ "name":"CreateVpcPeeringAuthorization", @@ -280,7 +300,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Requests authorization to create or delete a peer connection between the VPC for your Amazon GameLift fleet and a virtual private cloud (VPC) in your Amazon Web Services account. VPC peering enables the game servers on your fleet to communicate directly with other Amazon Web Services resources. Once you've received authorization, call CreateVpcPeeringConnection to establish the peering connection. For more information, see VPC Peering with Amazon GameLift Fleets.

You can peer with VPCs that are owned by any Amazon Web Services account you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different Regions.

To request authorization to create a connection, call this operation from the Amazon Web Services account with the VPC that you want to peer to your Amazon GameLift fleet. For example, to enable your game servers to retrieve data from a DynamoDB table, use the account that manages that DynamoDB resource. Identify the following values: (1) The ID of the VPC that you want to peer with, and (2) the ID of the Amazon Web Services account that you use to manage Amazon GameLift. If successful, VPC peering is authorized for the specified VPC.

To request authorization to delete a connection, call this operation from the Amazon Web Services account with the VPC that is peered with your Amazon GameLift fleet. Identify the following values: (1) VPC ID that you want to delete the peering connection for, and (2) ID of the Amazon Web Services account that you use to manage Amazon GameLift.

The authorization remains valid for 24 hours unless it is canceled by a call to DeleteVpcPeeringAuthorization. You must create or delete the peering connection while the authorization is valid.

Related actions

CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | CreateVpcPeeringConnection | DescribeVpcPeeringConnections | DeleteVpcPeeringConnection | All APIs by task

" + "documentation":"

Requests authorization to create or delete a peer connection between the VPC for your Amazon GameLift fleet and a virtual private cloud (VPC) in your Amazon Web Services account. VPC peering enables the game servers on your fleet to communicate directly with other Amazon Web Services resources. After you've received authorization, use CreateVpcPeeringConnection to establish the peering connection. For more information, see VPC Peering with Amazon GameLift Fleets.

You can peer with VPCs that are owned by any Amazon Web Services account you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different Regions.

To request authorization to create a connection, call this operation from the Amazon Web Services account with the VPC that you want to peer to your Amazon GameLift fleet. For example, to enable your game servers to retrieve data from a DynamoDB table, use the account that manages that DynamoDB resource. Identify the following values: (1) The ID of the VPC that you want to peer with, and (2) the ID of the Amazon Web Services account that you use to manage Amazon GameLift. If successful, VPC peering is authorized for the specified VPC.

To request authorization to delete a connection, call this operation from the Amazon Web Services account with the VPC that is peered with your Amazon GameLift fleet. Identify the following values: (1) VPC ID that you want to delete the peering connection for, and (2) ID of the Amazon Web Services account that you use to manage Amazon GameLift.

The authorization remains valid for 24 hours unless it is canceled. You must create or delete the peering connection while the authorization is valid.

Related actions

All APIs by task

" }, "CreateVpcPeeringConnection":{ "name":"CreateVpcPeeringConnection", @@ -296,7 +316,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Establishes a VPC peering connection between a virtual private cloud (VPC) in an Amazon Web Services account with the VPC for your Amazon GameLift fleet. VPC peering enables the game servers on your fleet to communicate directly with other Amazon Web Services resources. You can peer with VPCs in any Amazon Web Services account that you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different Regions. For more information, see VPC Peering with Amazon GameLift Fleets.

Before calling this operation to establish the peering connection, you first need to call CreateVpcPeeringAuthorization and identify the VPC you want to peer with. Once the authorization for the specified VPC is issued, you have 24 hours to establish the connection. These two operations handle all tasks necessary to peer the two VPCs, including acceptance, updating routing tables, etc.

To establish the connection, call this operation from the Amazon Web Services account that is used to manage the Amazon GameLift fleets. Identify the following values: (1) The ID of the fleet you want to be enable a VPC peering connection for; (2) The Amazon Web Services account with the VPC that you want to peer with; and (3) The ID of the VPC you want to peer with. This operation is asynchronous. If successful, a VpcPeeringConnection request is created. You can use continuous polling to track the request's status using DescribeVpcPeeringConnections, or by monitoring fleet events for success or failure using DescribeFleetEvents.

Related actions

CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | CreateVpcPeeringConnection | DescribeVpcPeeringConnections | DeleteVpcPeeringConnection | All APIs by task

" + "documentation":"

Establishes a VPC peering connection between a virtual private cloud (VPC) in an Amazon Web Services account with the VPC for your Amazon GameLift fleet. VPC peering enables the game servers on your fleet to communicate directly with other Amazon Web Services resources. You can peer with VPCs in any Amazon Web Services account that you have access to, including the account that you use to manage your Amazon GameLift fleets. You cannot peer with VPCs that are in different Regions. For more information, see VPC Peering with Amazon GameLift Fleets.

Before calling this operation to establish the peering connection, you first need to use CreateVpcPeeringAuthorization and identify the VPC you want to peer with. Once the authorization for the specified VPC is issued, you have 24 hours to establish the connection. These two operations handle all tasks necessary to peer the two VPCs, including acceptance, updating routing tables, etc.

To establish the connection, call this operation from the Amazon Web Services account that is used to manage the Amazon GameLift fleets. Identify the following values: (1) The ID of the fleet you want to be enable a VPC peering connection for; (2) The Amazon Web Services account with the VPC that you want to peer with; and (3) The ID of the VPC you want to peer with. This operation is asynchronous. If successful, a connection request is created. You can use continuous polling to track the request's status using DescribeVpcPeeringConnections , or by monitoring fleet events for success or failure using DescribeFleetEvents .

Related actions

All APIs by task

" }, "DeleteAlias":{ "name":"DeleteAlias", @@ -312,7 +332,7 @@ {"shape":"TaggingFailedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Deletes an alias. This operation removes all record of the alias. Game clients attempting to access a server process using the deleted alias receive an error. To delete an alias, specify the alias ID to be deleted.

Related actions

CreateAlias | ListAliases | DescribeAlias | UpdateAlias | DeleteAlias | ResolveAlias | All APIs by task

" + "documentation":"

Deletes an alias. This operation removes all record of the alias. Game clients attempting to access a server process using the deleted alias receive an error. To delete an alias, specify the alias ID to be deleted.

Related actions

All APIs by task

" }, "DeleteBuild":{ "name":"DeleteBuild", @@ -328,7 +348,7 @@ {"shape":"TaggingFailedException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Deletes a build. This operation permanently deletes the build resource and any uploaded build files. Deleting a build does not affect the status of any active fleets using the build, but you can no longer create new fleets with the deleted build.

To delete a build, specify the build ID.

Learn more

Upload a Custom Server Build

Related actions

CreateBuild | ListBuilds | DescribeBuild | UpdateBuild | DeleteBuild | All APIs by task

" + "documentation":"

Deletes a build. This operation permanently deletes the build resource and any uploaded build files. Deleting a build does not affect the status of any active fleets using the build, but you can no longer create new fleets with the deleted build.

To delete a build, specify the build ID.

Learn more

Upload a Custom Server Build

All APIs by task

" }, "DeleteFleet":{ "name":"DeleteFleet", @@ -345,7 +365,7 @@ {"shape":"InvalidRequestException"}, {"shape":"TaggingFailedException"} ], - "documentation":"

Deletes all resources and information related a fleet. Any current fleet instances, including those in remote locations, are shut down. You don't need to call DeleteFleetLocations separately.

If the fleet being deleted has a VPC peering connection, you first need to get a valid authorization (good for 24 hours) by calling CreateVpcPeeringAuthorization. You do not need to explicitly delete the VPC peering connection--this is done as part of the delete fleet process.

To delete a fleet, specify the fleet ID to be terminated. During the deletion process the fleet status is changed to DELETING. When completed, the status switches to TERMINATED and the fleet event FLEET_DELETED is sent.

Learn more

Setting up GameLift Fleets

Related actions

CreateFleetLocations | UpdateFleetAttributes | UpdateFleetCapacity | UpdateFleetPortSettings | UpdateRuntimeConfiguration | StopFleetActions | StartFleetActions | PutScalingPolicy | DeleteFleet | DeleteFleetLocations | DeleteScalingPolicy | All APIs by task

" + "documentation":"

Deletes all resources and information related a fleet. Any current fleet instances, including those in remote locations, are shut down. You don't need to call DeleteFleetLocations separately.

If the fleet being deleted has a VPC peering connection, you first need to get a valid authorization (good for 24 hours) by calling CreateVpcPeeringAuthorization. You do not need to explicitly delete the VPC peering connection.

To delete a fleet, specify the fleet ID to be terminated. During the deletion process the fleet status is changed to DELETING. When completed, the status switches to TERMINATED and the fleet event FLEET_DELETED is sent.

Learn more

Setting up GameLift Fleets

" }, "DeleteFleetLocations":{ "name":"DeleteFleetLocations", @@ -362,7 +382,7 @@ {"shape":"NotFoundException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Removes locations from a multi-location fleet. When deleting a location, all game server process and all instances that are still active in the location are shut down.

To delete fleet locations, identify the fleet ID and provide a list of the locations to be deleted.

If successful, GameLift sets the location status to DELETING, and begins to shut down existing server processes and terminate instances in each location being deleted. When completed, the location status changes to TERMINATED.

Learn more

Setting up GameLift fleets

Related actions

CreateFleetLocations | DescribeFleetLocationAttributes | DescribeFleetLocationCapacity | DescribeFleetLocationUtilization | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetUtilization | UpdateFleetCapacity | StopFleetActions | DeleteFleetLocations | All APIs by task

" + "documentation":"

Removes locations from a multi-location fleet. When deleting a location, all game server process and all instances that are still active in the location are shut down.

To delete fleet locations, identify the fleet ID and provide a list of the locations to be deleted.

If successful, GameLift sets the location status to DELETING, and begins to shut down existing server processes and terminate instances in each location being deleted. When completed, the location status changes to TERMINATED.

Learn more

Setting up GameLift fleets

" }, "DeleteGameServerGroup":{ "name":"DeleteGameServerGroup", @@ -378,7 +398,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Terminates a game server group and permanently deletes the game server group record. You have several options for how these resources are impacted when deleting the game server group. Depending on the type of delete operation selected, this operation might affect these resources:

  • The game server group

  • The corresponding Auto Scaling group

  • All game servers that are currently running in the group

To delete a game server group, identify the game server group to delete and specify the type of delete operation to initiate. Game server groups can only be deleted if they are in ACTIVE or ERROR status.

If the delete request is successful, a series of operations are kicked off. The game server group status is changed to DELETE_SCHEDULED, which prevents new game servers from being registered and stops automatic scaling activity. Once all game servers in the game server group are deregistered, GameLift FleetIQ can begin deleting resources. If any of the delete operations fail, the game server group is placed in ERROR status.

GameLift FleetIQ emits delete events to Amazon CloudWatch.

Learn more

GameLift FleetIQ Guide

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Terminates a game server group and permanently deletes the game server group record. You have several options for how these resources are impacted when deleting the game server group. Depending on the type of delete operation selected, this operation might affect these resources:

  • The game server group

  • The corresponding Auto Scaling group

  • All game servers that are currently running in the group

To delete a game server group, identify the game server group to delete and specify the type of delete operation to initiate. Game server groups can only be deleted if they are in ACTIVE or ERROR status.

If the delete request is successful, a series of operations are kicked off. The game server group status is changed to DELETE_SCHEDULED, which prevents new game servers from being registered and stops automatic scaling activity. Once all game servers in the game server group are deregistered, GameLift FleetIQ can begin deleting resources. If any of the delete operations fail, the game server group is placed in ERROR status.

GameLift FleetIQ emits delete events to Amazon CloudWatch.

Learn more

GameLift FleetIQ Guide

" }, "DeleteGameSessionQueue":{ "name":"DeleteGameSessionQueue", @@ -395,7 +415,23 @@ {"shape":"UnauthorizedException"}, {"shape":"TaggingFailedException"} ], - "documentation":"

Deletes a game session queue. Once a queue is successfully deleted, unfulfilled StartGameSessionPlacement requests that reference the queue will fail. To delete a queue, specify the queue name.

Learn more

Using Multi-Region Queues

Related actions

CreateGameSessionQueue | DescribeGameSessionQueues | UpdateGameSessionQueue | DeleteGameSessionQueue | All APIs by task

" + "documentation":"

Deletes a game session queue. Once a queue is successfully deleted, unfulfilled StartGameSessionPlacement requests that reference the queue will fail. To delete a queue, specify the queue name.

" + }, + "DeleteLocation":{ + "name":"DeleteLocation", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLocationInput"}, + "output":{"shape":"DeleteLocationOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Deletes a custom location.

Before deleting a custom location, review any fleets currently using the custom location and deregister the location if it is in use. For more information see, DeregisterCompute.

" }, "DeleteMatchmakingConfiguration":{ "name":"DeleteMatchmakingConfiguration", @@ -412,7 +448,7 @@ {"shape":"UnsupportedRegionException"}, {"shape":"TaggingFailedException"} ], - "documentation":"

Permanently removes a FlexMatch matchmaking configuration. To delete, specify the configuration name. A matchmaking configuration cannot be deleted if it is being used in any active matchmaking tickets.

Related actions

CreateMatchmakingConfiguration | DescribeMatchmakingConfigurations | UpdateMatchmakingConfiguration | DeleteMatchmakingConfiguration | CreateMatchmakingRuleSet | DescribeMatchmakingRuleSets | ValidateMatchmakingRuleSet | DeleteMatchmakingRuleSet | All APIs by task

" + "documentation":"

Permanently removes a FlexMatch matchmaking configuration. To delete, specify the configuration name. A matchmaking configuration cannot be deleted if it is being used in any active matchmaking tickets.

" }, "DeleteMatchmakingRuleSet":{ "name":"DeleteMatchmakingRuleSet", @@ -429,7 +465,7 @@ {"shape":"NotFoundException"}, {"shape":"TaggingFailedException"} ], - "documentation":"

Deletes an existing matchmaking rule set. To delete the rule set, provide the rule set name. Rule sets cannot be deleted if they are currently being used by a matchmaking configuration.

Learn more

Related actions

CreateMatchmakingConfiguration | DescribeMatchmakingConfigurations | UpdateMatchmakingConfiguration | DeleteMatchmakingConfiguration | CreateMatchmakingRuleSet | DescribeMatchmakingRuleSets | ValidateMatchmakingRuleSet | DeleteMatchmakingRuleSet | All APIs by task

" + "documentation":"

Deletes an existing matchmaking rule set. To delete the rule set, provide the rule set name. Rule sets cannot be deleted if they are currently being used by a matchmaking configuration.

Learn more

" }, "DeleteScalingPolicy":{ "name":"DeleteScalingPolicy", @@ -444,7 +480,7 @@ {"shape":"UnauthorizedException"}, {"shape":"NotFoundException"} ], - "documentation":"

Deletes a fleet scaling policy. Once deleted, the policy is no longer in force and GameLift removes all record of it. To delete a scaling policy, specify both the scaling policy name and the fleet ID it is associated with.

To temporarily suspend scaling policies, call StopFleetActions. This operation suspends all policies for the fleet.

Related actions

DescribeFleetCapacity | UpdateFleetCapacity | DescribeEC2InstanceLimits | PutScalingPolicy | DescribeScalingPolicies | DeleteScalingPolicy | StopFleetActions | StartFleetActions | All APIs by task

" + "documentation":"

Deletes a fleet scaling policy. Once deleted, the policy is no longer in force and GameLift removes all record of it. To delete a scaling policy, specify both the scaling policy name and the fleet ID it is associated with.

To temporarily suspend scaling policies, use StopFleetActions. This operation suspends all policies for the fleet.

" }, "DeleteScript":{ "name":"DeleteScript", @@ -460,7 +496,7 @@ {"shape":"TaggingFailedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Deletes a Realtime script. This operation permanently deletes the script record. If script files were uploaded, they are also deleted (files stored in an S3 bucket are not deleted).

To delete a script, specify the script ID. Before deleting a script, be sure to terminate all fleets that are deployed with the script being deleted. Fleet instances periodically check for script updates, and if the script record no longer exists, the instance will go into an error state and be unable to host game sessions.

Learn more

Amazon GameLift Realtime Servers

Related actions

CreateScript | ListScripts | DescribeScript | UpdateScript | DeleteScript | All APIs by task

" + "documentation":"

Deletes a Realtime script. This operation permanently deletes the script record. If script files were uploaded, they are also deleted (files stored in an S3 bucket are not deleted).

To delete a script, specify the script ID. Before deleting a script, be sure to terminate all fleets that are deployed with the script being deleted. Fleet instances periodically check for script updates, and if the script record no longer exists, the instance will go into an error state and be unable to host game sessions.

Learn more

Amazon GameLift Realtime Servers

Related actions

All APIs by task

" }, "DeleteVpcPeeringAuthorization":{ "name":"DeleteVpcPeeringAuthorization", @@ -476,7 +512,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Cancels a pending VPC peering authorization for the specified VPC. If you need to delete an existing VPC peering connection, call DeleteVpcPeeringConnection.

Related actions

CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | CreateVpcPeeringConnection | DescribeVpcPeeringConnections | DeleteVpcPeeringConnection | All APIs by task

" + "documentation":"

Cancels a pending VPC peering authorization for the specified VPC. If you need to delete an existing VPC peering connection, use DeleteVpcPeeringConnection.

Related actions

All APIs by task

" }, "DeleteVpcPeeringConnection":{ "name":"DeleteVpcPeeringConnection", @@ -492,7 +528,23 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Removes a VPC peering connection. To delete the connection, you must have a valid authorization for the VPC peering connection that you want to delete. You can check for an authorization by calling DescribeVpcPeeringAuthorizations or request a new one using CreateVpcPeeringAuthorization.

Once a valid authorization exists, call this operation from the Amazon Web Services account that is used to manage the Amazon GameLift fleets. Identify the connection to delete by the connection ID and fleet ID. If successful, the connection is removed.

Related actions

CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | CreateVpcPeeringConnection | DescribeVpcPeeringConnections | DeleteVpcPeeringConnection | All APIs by task

" + "documentation":"

Removes a VPC peering connection. To delete the connection, you must have a valid authorization for the VPC peering connection that you want to delete..

Once a valid authorization exists, call this operation from the Amazon Web Services account that is used to manage the Amazon GameLift fleets. Identify the connection to delete by the connection ID and fleet ID. If successful, the connection is removed.

Related actions

All APIs by task

" + }, + "DeregisterCompute":{ + "name":"DeregisterCompute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeregisterComputeInput"}, + "output":{"shape":"DeregisterComputeOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Removes a compute resource from the specified fleet. Deregister your compute resources before you delete the compute.

" }, "DeregisterGameServer":{ "name":"DeregisterGameServer", @@ -507,7 +559,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Removes the game server from a game server group. As a result of this operation, the deregistered game server can no longer be claimed and will not be returned in a list of active game servers.

To deregister a game server, specify the game server group and game server ID. If successful, this operation emits a CloudWatch event with termination timestamp and reason.

Learn more

GameLift FleetIQ Guide

Related actions

RegisterGameServer | ListGameServers | ClaimGameServer | DescribeGameServer | UpdateGameServer | DeregisterGameServer | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Removes the game server from a game server group. As a result of this operation, the deregistered game server can no longer be claimed and will not be returned in a list of active game servers.

To deregister a game server, specify the game server group and game server ID. If successful, this operation emits a CloudWatch event with termination timestamp and reason.

Learn more

GameLift FleetIQ Guide

" }, "DescribeAlias":{ "name":"DescribeAlias", @@ -523,7 +575,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves properties for an alias. This operation returns all alias metadata and settings. To get an alias's target fleet ID only, use ResolveAlias.

To get alias properties, specify the alias ID. If successful, the requested alias record is returned.

Related actions

CreateAlias | ListAliases | DescribeAlias | UpdateAlias | DeleteAlias | ResolveAlias | All APIs by task

" + "documentation":"

Retrieves properties for an alias. This operation returns all alias metadata and settings. To get an alias's target fleet ID only, use ResolveAlias.

To get alias properties, specify the alias ID. If successful, the requested alias record is returned.

Related actions

All APIs by task

" }, "DescribeBuild":{ "name":"DescribeBuild", @@ -539,7 +591,23 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves properties for a custom game build. To request a build resource, specify a build ID. If successful, an object containing the build properties is returned.

Learn more

Upload a Custom Server Build

Related actions

CreateBuild | ListBuilds | DescribeBuild | UpdateBuild | DeleteBuild | All APIs by task

" + "documentation":"

Retrieves properties for a custom game build. To request a build resource, specify a build ID. If successful, an object containing the build properties is returned.

Learn more

Upload a Custom Server Build

All APIs by task

" + }, + "DescribeCompute":{ + "name":"DescribeCompute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeComputeInput"}, + "output":{"shape":"DescribeComputeOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Retrieves properties for a compute resource. To request a compute resource specify the fleet ID and compute name. If successful, GameLift returns an object containing the build properties.

" }, "DescribeEC2InstanceLimits":{ "name":"DescribeEC2InstanceLimits", @@ -555,7 +623,7 @@ {"shape":"UnauthorizedException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves the instance limits and current utilization for an Amazon Web Services Region or location. Instance limits control the number of instances, per instance type, per location, that your Amazon Web Services account can use. Learn more at Amazon EC2 Instance Types. The information returned includes the maximum number of instances allowed and your account's current usage across all fleets. This information can affect your ability to scale your GameLift fleets. You can request a limit increase for your account by using the Service limits page in the GameLift console.

Instance limits differ based on whether the instances are deployed in a fleet's home Region or in a remote location. For remote locations, limits also differ based on the combination of home Region and remote location. All requests must specify an Amazon Web Services Region (either explicitly or as your default settings). To get the limit for a remote location, you must also specify the location. For example, the following requests all return different results:

  • Request specifies the Region ap-northeast-1 with no location. The result is limits and usage data on all instance types that are deployed in us-east-2, by all of the fleets that reside in ap-northeast-1.

  • Request specifies the Region us-east-1 with location ca-central-1. The result is limits and usage data on all instance types that are deployed in ca-central-1, by all of the fleets that reside in us-east-2. These limits do not affect fleets in any other Regions that deploy instances to ca-central-1.

  • Request specifies the Region eu-west-1 with location ca-central-1. The result is limits and usage data on all instance types that are deployed in ca-central-1, by all of the fleets that reside in eu-west-1.

This operation can be used in the following ways:

  • To get limit and usage data for all instance types that are deployed in an Amazon Web Services Region by fleets that reside in the same Region: Specify the Region only. Optionally, specify a single instance type to retrieve information for.

  • To get limit and usage data for all instance types that are deployed to a remote location by fleets that reside in different Amazon Web Services Region: Provide both the Amazon Web Services Region and the remote location. Optionally, specify a single instance type to retrieve information for.

If successful, an EC2InstanceLimits object is returned with limits and usage data for each requested instance type.

Learn more

Setting up GameLift fleets

Related actions

CreateFleet | UpdateFleetCapacity | PutScalingPolicy | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetLocationAttributes | UpdateFleetAttributes | StopFleetActions | DeleteFleet | All APIs by task

" + "documentation":"

Retrieves the instance limits and current utilization for an Amazon Web Services Region or location. Instance limits control the number of instances, per instance type, per location, that your Amazon Web Services account can use. Learn more at Amazon EC2 Instance Types. The information returned includes the maximum number of instances allowed and your account's current usage across all fleets. This information can affect your ability to scale your GameLift fleets. You can request a limit increase for your account by using the Service limits page in the GameLift console.

Instance limits differ based on whether the instances are deployed in a fleet's home Region or in a remote location. For remote locations, limits also differ based on the combination of home Region and remote location. All requests must specify an Amazon Web Services Region (either explicitly or as your default settings). To get the limit for a remote location, you must also specify the location. For example, the following requests all return different results:

  • Request specifies the Region ap-northeast-1 with no location. The result is limits and usage data on all instance types that are deployed in us-east-2, by all of the fleets that reside in ap-northeast-1.

  • Request specifies the Region us-east-1 with location ca-central-1. The result is limits and usage data on all instance types that are deployed in ca-central-1, by all of the fleets that reside in us-east-2. These limits do not affect fleets in any other Regions that deploy instances to ca-central-1.

  • Request specifies the Region eu-west-1 with location ca-central-1. The result is limits and usage data on all instance types that are deployed in ca-central-1, by all of the fleets that reside in eu-west-1.

This operation can be used in the following ways:

  • To get limit and usage data for all instance types that are deployed in an Amazon Web Services Region by fleets that reside in the same Region: Specify the Region only. Optionally, specify a single instance type to retrieve information for.

  • To get limit and usage data for all instance types that are deployed to a remote location by fleets that reside in different Amazon Web Services Region: Provide both the Amazon Web Services Region and the remote location. Optionally, specify a single instance type to retrieve information for.

If successful, an EC2InstanceLimits object is returned with limits and usage data for each requested instance type.

Learn more

Setting up GameLift fleets

" }, "DescribeFleetAttributes":{ "name":"DescribeFleetAttributes", @@ -571,7 +639,7 @@ {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Retrieves core fleet-wide properties, including the computing hardware and deployment configuration for all instances in the fleet.

This operation can be used in the following ways:

  • To get attributes for one or more specific fleets, provide a list of fleet IDs or fleet ARNs.

  • To get attributes for all fleets, do not provide a fleet identifier.

When requesting attributes for multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a FleetAttributes object is returned for each fleet requested, unless the fleet identifier is not found.

Some API operations limit the number of fleet IDs that allowed in one request. If a request exceeds this limit, the request fails and the error message contains the maximum allowed number.

Learn more

Setting up GameLift fleets

Related actions

ListFleets | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetEvents | DescribeFleetLocationAttributes | DescribeFleetPortSettings | DescribeFleetUtilization | DescribeRuntimeConfiguration | DescribeScalingPolicies | All APIs by task

" + "documentation":"

Retrieves core fleet-wide properties, including the computing hardware and deployment configuration for all instances in the fleet.

This operation can be used in the following ways:

  • To get attributes for one or more specific fleets, provide a list of fleet IDs or fleet ARNs.

  • To get attributes for all fleets, do not provide a fleet identifier.

When requesting attributes for multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a FleetAttributes object is returned for each fleet requested, unless the fleet identifier is not found.

Some API operations limit the number of fleet IDs that allowed in one request. If a request exceeds this limit, the request fails and the error message contains the maximum allowed number.

Learn more

Setting up GameLift fleets

" }, "DescribeFleetCapacity":{ "name":"DescribeFleetCapacity", @@ -587,7 +655,7 @@ {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Retrieves the resource capacity settings for one or more fleets. The data returned includes the current fleet capacity (number of EC2 instances), and settings that can control how capacity scaling. For fleets with remote locations, this operation retrieves data for the fleet's home Region only. See DescribeFleetLocationCapacity to get capacity settings for a fleet's remote locations.

This operation can be used in the following ways:

  • To get capacity data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs.

  • To get capacity data for all fleets, do not provide a fleet identifier.

When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a FleetCapacity object is returned for each requested fleet ID. Each FleetCapacity object includes a Location property, which is set to the fleet's home Region. When a list of fleet IDs is provided, attribute objects are returned only for fleets that currently exist.

Some API operations may limit the number of fleet IDs that are allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed.

Learn more

Setting up GameLift fleets

GameLift metrics for fleets

Related actions

ListFleets | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetEvents | DescribeFleetLocationAttributes | DescribeFleetPortSettings | DescribeFleetUtilization | DescribeRuntimeConfiguration | DescribeScalingPolicies | All APIs by task

" + "documentation":"

Retrieves the resource capacity settings for one or more fleets. The data returned includes the current fleet capacity (number of EC2 instances), and settings that can control how capacity scaling. For fleets with remote locations, this operation retrieves data for the fleet's home Region only.

This operation can be used in the following ways:

  • To get capacity data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs.

  • To get capacity data for all fleets, do not provide a fleet identifier.

When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a FleetCapacity object is returned for each requested fleet ID. Each FleetCapacity object includes a Location property, which is set to the fleet's home Region. When a list of fleet IDs is provided, attribute objects are returned only for fleets that currently exist.

Some API operations may limit the number of fleet IDs that are allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed.

Learn more

Setting up GameLift fleets

GameLift metrics for fleets

" }, "DescribeFleetEvents":{ "name":"DescribeFleetEvents", @@ -603,7 +671,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Retrieves entries from a fleet's event log. Fleet events are initiated by changes in status, such as during fleet creation and termination, changes in capacity, etc. If a fleet has multiple locations, events are also initiated by changes to status and capacity in remote locations.

You can specify a time range to limit the result set. Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a collection of event log entries matching the request are returned.

Learn more

Setting up GameLift fleets

Related actions

ListFleets | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetEvents | DescribeFleetLocationAttributes | DescribeFleetPortSettings | DescribeFleetUtilization | DescribeRuntimeConfiguration | DescribeScalingPolicies | All APIs by task

" + "documentation":"

Retrieves entries from a fleet's event log. Fleet events are initiated by changes in status, such as during fleet creation and termination, changes in capacity, etc. If a fleet has multiple locations, events are also initiated by changes to status and capacity in remote locations.

You can specify a time range to limit the result set. Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a collection of event log entries matching the request are returned.

Learn more

Setting up GameLift fleets

" }, "DescribeFleetLocationAttributes":{ "name":"DescribeFleetLocationAttributes", @@ -620,7 +688,7 @@ {"shape":"NotFoundException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves information on a fleet's remote locations, including life-cycle status and any suspended fleet activity.

This operation can be used in the following ways:

  • To get data for specific locations, provide a fleet identifier and a list of locations. Location data is returned in the order that it is requested.

  • To get data for all locations, provide a fleet identifier only. Location data is returned in no particular order.

When requesting attributes for multiple locations, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a LocationAttributes object is returned for each requested location. If the fleet does not have a requested location, no information is returned. This operation does not return the home Region. To get information on a fleet's home Region, call DescribeFleetAttributes.

Learn more

Setting up GameLift fleets

Related actions

CreateFleetLocations | DescribeFleetLocationAttributes | DescribeFleetLocationCapacity | DescribeFleetLocationUtilization | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetUtilization | UpdateFleetCapacity | StopFleetActions | DeleteFleetLocations | All APIs by task

" + "documentation":"

Retrieves information on a fleet's remote locations, including life-cycle status and any suspended fleet activity.

This operation can be used in the following ways:

  • To get data for specific locations, provide a fleet identifier and a list of locations. Location data is returned in the order that it is requested.

  • To get data for all locations, provide a fleet identifier only. Location data is returned in no particular order.

When requesting attributes for multiple locations, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a LocationAttributes object is returned for each requested location. If the fleet does not have a requested location, no information is returned. This operation does not return the home Region. To get information on a fleet's home Region, call DescribeFleetAttributes.

Learn more

Setting up GameLift fleets

" }, "DescribeFleetLocationCapacity":{ "name":"DescribeFleetLocationCapacity", @@ -637,7 +705,7 @@ {"shape":"NotFoundException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves the resource capacity settings for a fleet location. The data returned includes the current capacity (number of EC2 instances) and some scaling settings for the requested fleet location. Use this operation to retrieve capacity information for a fleet's remote location or home Region (you can also retrieve home Region capacity by calling DescribeFleetCapacity).

To retrieve capacity data, identify a fleet and location.

If successful, a FleetCapacity object is returned for the requested fleet location.

Learn more

Setting up GameLift fleets

GameLift metrics for fleets

Related actions

CreateFleetLocations | DescribeFleetLocationAttributes | DescribeFleetLocationCapacity | DescribeFleetLocationUtilization | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetUtilization | UpdateFleetCapacity | StopFleetActions | DeleteFleetLocations | All APIs by task

" + "documentation":"

Retrieves the resource capacity settings for a fleet location. The data returned includes the current capacity (number of EC2 instances) and some scaling settings for the requested fleet location. Use this operation to retrieve capacity information for a fleet's remote location or home Region (you can also retrieve home Region capacity by calling DescribeFleetCapacity).

To retrieve capacity data, identify a fleet and location.

If successful, a FleetCapacity object is returned for the requested fleet location.

Learn more

Setting up GameLift fleets

GameLift metrics for fleets

" }, "DescribeFleetLocationUtilization":{ "name":"DescribeFleetLocationUtilization", @@ -654,7 +722,7 @@ {"shape":"NotFoundException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves current usage data for a fleet location. Utilization data provides a snapshot of current game hosting activity at the requested location. Use this operation to retrieve utilization information for a fleet's remote location or home Region (you can also retrieve home Region utilization by calling DescribeFleetUtilization).

To retrieve utilization data, identify a fleet and location.

If successful, a FleetUtilization object is returned for the requested fleet location.

Learn more

Setting up GameLift fleets

GameLift metrics for fleets

Related actions

CreateFleetLocations | DescribeFleetLocationAttributes | DescribeFleetLocationCapacity | DescribeFleetLocationUtilization | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetUtilization | UpdateFleetCapacity | StopFleetActions | DeleteFleetLocations | All APIs by task

" + "documentation":"

Retrieves current usage data for a fleet location. Utilization data provides a snapshot of current game hosting activity at the requested location. Use this operation to retrieve utilization information for a fleet's remote location or home Region (you can also retrieve home Region utilization by calling DescribeFleetUtilization).

To retrieve utilization data, identify a fleet and location.

If successful, a FleetUtilization object is returned for the requested fleet location.

Learn more

Setting up GameLift fleets

GameLift metrics for fleets

" }, "DescribeFleetPortSettings":{ "name":"DescribeFleetPortSettings", @@ -668,9 +736,10 @@ {"shape":"InternalServiceException"}, {"shape":"NotFoundException"}, {"shape":"InvalidRequestException"}, - {"shape":"UnauthorizedException"} + {"shape":"UnauthorizedException"}, + {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves a fleet's inbound connection permissions. Connection permissions specify the range of IP addresses and port settings that incoming traffic can use to access server processes in the fleet. Game sessions that are running on instances in the fleet must use connections that fall in this range.

This operation can be used in the following ways:

  • To retrieve the inbound connection permissions for a fleet, identify the fleet's unique identifier.

  • To check the status of recent updates to a fleet remote location, specify the fleet ID and a location. Port setting updates can take time to propagate across all locations.

If successful, a set of IpPermission objects is returned for the requested fleet ID. When a location is specified, a pending status is included. If the requested fleet has been deleted, the result set is empty.

Learn more

Setting up GameLift fleets

Related actions

ListFleets | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetEvents | DescribeFleetLocationAttributes | DescribeFleetPortSettings | DescribeFleetUtilization | DescribeRuntimeConfiguration | DescribeScalingPolicies | All APIs by task

" + "documentation":"

Retrieves a fleet's inbound connection permissions. Connection permissions specify the range of IP addresses and port settings that incoming traffic can use to access server processes in the fleet. Game sessions that are running on instances in the fleet must use connections that fall in this range.

This operation can be used in the following ways:

  • To retrieve the inbound connection permissions for a fleet, identify the fleet's unique identifier.

  • To check the status of recent updates to a fleet remote location, specify the fleet ID and a location. Port setting updates can take time to propagate across all locations.

If successful, a set of IpPermission objects is returned for the requested fleet ID. When a location is specified, a pending status is included. If the requested fleet has been deleted, the result set is empty.

Learn more

Setting up GameLift fleets

" }, "DescribeFleetUtilization":{ "name":"DescribeFleetUtilization", @@ -686,7 +755,7 @@ {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Retrieves utilization statistics for one or more fleets. Utilization data provides a snapshot of how the fleet's hosting resources are currently being used. For fleets with remote locations, this operation retrieves data for the fleet's home Region only. See DescribeFleetLocationUtilization to get utilization statistics for a fleet's remote locations.

This operation can be used in the following ways:

  • To get utilization data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs.

  • To get utilization data for all fleets, do not provide a fleet identifier.

When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a FleetUtilization object is returned for each requested fleet ID, unless the fleet identifier is not found. Each fleet utilization object includes a Location property, which is set to the fleet's home Region.

Some API operations may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed.

Learn more

Setting up GameLift Fleets

GameLift Metrics for Fleets

Related actions

ListFleets | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetEvents | DescribeFleetLocationAttributes | DescribeFleetPortSettings | DescribeFleetUtilization | DescribeRuntimeConfiguration | DescribeScalingPolicies | All APIs by task

" + "documentation":"

Retrieves utilization statistics for one or more fleets. Utilization data provides a snapshot of how the fleet's hosting resources are currently being used. For fleets with remote locations, this operation retrieves data for the fleet's home Region only. See DescribeFleetLocationUtilization to get utilization statistics for a fleet's remote locations.

This operation can be used in the following ways:

  • To get utilization data for one or more specific fleets, provide a list of fleet IDs or fleet ARNs.

  • To get utilization data for all fleets, do not provide a fleet identifier.

When requesting multiple fleets, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a FleetUtilization object is returned for each requested fleet ID, unless the fleet identifier is not found. Each fleet utilization object includes a Location property, which is set to the fleet's home Region.

Some API operations may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed.

Learn more

Setting up GameLift Fleets

GameLift Metrics for Fleets

" }, "DescribeGameServer":{ "name":"DescribeGameServer", @@ -702,7 +771,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Retrieves information for a registered game server. Information includes game server status, health check info, and the instance that the game server is running on.

To retrieve game server information, specify the game server ID. If successful, the requested game server object is returned.

Learn more

GameLift FleetIQ Guide

Related actions

RegisterGameServer | ListGameServers | ClaimGameServer | DescribeGameServer | UpdateGameServer | DeregisterGameServer | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Retrieves information for a registered game server. Information includes game server status, health check info, and the instance that the game server is running on.

To retrieve game server information, specify the game server ID. If successful, the requested game server object is returned.

Learn more

GameLift FleetIQ Guide

" }, "DescribeGameServerGroup":{ "name":"DescribeGameServerGroup", @@ -718,7 +787,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Retrieves information on a game server group. This operation returns only properties related to GameLift FleetIQ. To view or update properties for the corresponding Auto Scaling group, such as launch template, auto scaling policies, and maximum/minimum group size, access the Auto Scaling group directly.

To get attributes for a game server group, provide a group name or ARN value. If successful, a GameServerGroup object is returned.

Learn more

GameLift FleetIQ Guide

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Retrieves information on a game server group. This operation returns only properties related to GameLift FleetIQ. To view or update properties for the corresponding Auto Scaling group, such as launch template, auto scaling policies, and maximum/minimum group size, access the Auto Scaling group directly.

To get attributes for a game server group, provide a group name or ARN value. If successful, a GameServerGroup object is returned.

Learn more

GameLift FleetIQ Guide

" }, "DescribeGameServerInstances":{ "name":"DescribeGameServerInstances", @@ -734,7 +803,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Retrieves status information about the Amazon EC2 instances associated with a GameLift FleetIQ game server group. Use this operation to detect when instances are active or not available to host new game servers. If you are looking for instance configuration information, call DescribeGameServerGroup or access the corresponding Auto Scaling group properties.

To request status for all instances in the game server group, provide a game server group ID only. To request status for specific instances, provide the game server group ID and one or more instance IDs. Use the pagination parameters to retrieve results in sequential segments. If successful, a collection of GameServerInstance objects is returned.

This operation is not designed to be called with every game server claim request; this practice can cause you to exceed your API limit, which results in errors. Instead, as a best practice, cache the results and refresh your cache no more than once every 10 seconds.

Learn more

GameLift FleetIQ Guide

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Retrieves status information about the Amazon EC2 instances associated with a GameLift FleetIQ game server group. Use this operation to detect when instances are active or not available to host new game servers.

To request status for all instances in the game server group, provide a game server group ID only. To request status for specific instances, provide the game server group ID and one or more instance IDs. Use the pagination parameters to retrieve results in sequential segments. If successful, a collection of GameServerInstance objects is returned.

This operation is not designed to be called with every game server claim request; this practice can cause you to exceed your API limit, which results in errors. Instead, as a best practice, cache the results and refresh your cache no more than once every 10 seconds.

Learn more

GameLift FleetIQ Guide

" }, "DescribeGameSessionDetails":{ "name":"DescribeGameSessionDetails", @@ -752,7 +821,7 @@ {"shape":"TerminalRoutingStrategyException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves additional game session properties, including the game session protection policy in force, a set of one or more game sessions in a specific fleet location. You can optionally filter the results by current game session status. Alternatively, use SearchGameSessions to request a set of active game sessions that are filtered by certain criteria. To retrieve all game session properties, use DescribeGameSessions.

This operation can be used in the following ways:

  • To retrieve details for all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID, with an optional status filter. This approach returns details from the fleet's home Region and all remote locations.

  • To retrieve details for all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name, with optional status filter. The location can be the fleet's home Region or any remote location.

  • To retrieve details for a specific game session, provide the game session ID. This approach looks for the game session ID in all fleets that reside in the Amazon Web Services Region defined in the request.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a GameSessionDetail object is returned for each game session that matches the request.

Learn more

Find a game session

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Retrieves additional game session properties, including the game session protection policy in force, a set of one or more game sessions in a specific fleet location. You can optionally filter the results by current game session status.

This operation can be used in the following ways:

  • To retrieve details for all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID, with an optional status filter. This approach returns details from the fleet's home Region and all remote locations.

  • To retrieve details for all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name, with optional status filter. The location can be the fleet's home Region or any remote location.

  • To retrieve details for a specific game session, provide the game session ID. This approach looks for the game session ID in all fleets that reside in the Amazon Web Services Region defined in the request.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a GameSessionDetail object is returned for each game session that matches the request.

Learn more

Find a game session

All APIs by task

" }, "DescribeGameSessionPlacement":{ "name":"DescribeGameSessionPlacement", @@ -768,7 +837,7 @@ {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Retrieves information, including current status, about a game session placement request.

To get game session placement details, specify the placement ID.

This operation is not designed to be continually called to track game session status. This practice can cause you to exceed your API limit, which results in errors. Instead, you must configure configure an Amazon Simple Notification Service (SNS) topic to receive notifications from FlexMatch or queues. Continuously polling with DescribeGameSessionPlacement should only be used for games in development with low game session usage.

If successful, a GameSessionPlacement object is returned.

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Retrieves information, including current status, about a game session placement request.

To get game session placement details, specify the placement ID.

This operation is not designed to be continually called to track game session status. This practice can cause you to exceed your API limit, which results in errors. Instead, you must configure configure an Amazon Simple Notification Service (SNS) topic to receive notifications from FlexMatch or queues. Continuously polling with DescribeGameSessionPlacement should only be used for games in development with low game session usage.

" }, "DescribeGameSessionQueues":{ "name":"DescribeGameSessionQueues", @@ -784,7 +853,7 @@ {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Retrieves the properties for one or more game session queues. When requesting multiple queues, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSessionQueue object is returned for each requested queue. When specifying a list of queues, objects are returned only for queues that currently exist in the Region.

Learn more

View Your Queues

Related actions

CreateGameSessionQueue | DescribeGameSessionQueues | UpdateGameSessionQueue | DeleteGameSessionQueue | All APIs by task

" + "documentation":"

Retrieves the properties for one or more game session queues. When requesting multiple queues, use the pagination parameters to retrieve results as a set of sequential pages. When specifying a list of queues, objects are returned only for queues that currently exist in the Region.

Learn more

View Your Queues

" }, "DescribeGameSessions":{ "name":"DescribeGameSessions", @@ -802,7 +871,7 @@ {"shape":"TerminalRoutingStrategyException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves a set of one or more game sessions in a specific fleet location. You can optionally filter the results by current game session status. Alternatively, use SearchGameSessions to request a set of active game sessions that are filtered by certain criteria. To retrieve the protection policy for game sessions, use DescribeGameSessionDetails.

This operation is not designed to be continually called to track game session status. This practice can cause you to exceed your API limit, which results in errors. Instead, you must configure configure an Amazon Simple Notification Service (SNS) topic to receive notifications from FlexMatch or queues. Continuously polling with DescribeGameSessions should only be used for games in development with low game session usage.

This operation can be used in the following ways:

  • To retrieve all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID, with an optional status filter. This approach returns all game sessions in the fleet's home Region and all remote locations.

  • To retrieve all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name, with optional status filter. The location can be the fleet's home Region or any remote location.

  • To retrieve a specific game session, provide the game session ID. This approach looks for the game session ID in all fleets that reside in the Amazon Web Services Region defined in the request.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a GameSession object is returned for each game session that matches the request.

This operation is not designed to be continually called to track matchmaking ticket status. This practice can cause you to exceed your API limit, which results in errors. Instead, as a best practice, set up an Amazon Simple Notification Service to receive notifications, and provide the topic ARN in the matchmaking configuration. Continuously poling ticket status with DescribeGameSessions should only be used for games in development with low matchmaking usage.

Available in Amazon GameLift Local.

Learn more

Find a game session

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Retrieves a set of one or more game sessions in a specific fleet location. You can optionally filter the results by current game session status.

This operation can be used in the following ways:

  • To retrieve all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID, with an optional status filter. This approach returns all game sessions in the fleet's home Region and all remote locations.

  • To retrieve all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name, with optional status filter. The location can be the fleet's home Region or any remote location.

  • To retrieve a specific game session, provide the game session ID. This approach looks for the game session ID in all fleets that reside in the Amazon Web Services Region defined in the request.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a GameSession object is returned for each game session that matches the request.

This operation is not designed to be continually called to track game session status. This practice can cause you to exceed your API limit, which results in errors. Instead, you must configure an Amazon Simple Notification Service (SNS) topic to receive notifications from FlexMatch or queues. Continuously polling with DescribeGameSessions should only be used for games in development with low game session usage.

Available in Amazon GameLift Local.

Learn more

Find a game session

All APIs by task

" }, "DescribeInstances":{ "name":"DescribeInstances", @@ -819,7 +888,7 @@ {"shape":"InternalServiceException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves information about a fleet's instances, including instance IDs, connection data, and status.

This operation can be used in the following ways:

  • To get information on all instances that are deployed to a fleet's home Region, provide the fleet ID.

  • To get information on all instances that are deployed to a fleet's remote location, provide the fleet ID and location name.

  • To get information on a specific instance in a fleet, provide the fleet ID and instance ID.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, an Instance object is returned for each requested instance. Instances are not returned in any particular order.

Learn more

Remotely Access Fleet Instances

Debug Fleet Issues

Related actions

DescribeInstances | GetInstanceAccess | DescribeEC2InstanceLimits | All APIs by task

" + "documentation":"

Retrieves information about a fleet's instances, including instance IDs, connection data, and status.

This operation can be used in the following ways:

  • To get information on all instances that are deployed to a fleet's home Region, provide the fleet ID.

  • To get information on all instances that are deployed to a fleet's remote location, provide the fleet ID and location name.

  • To get information on a specific instance in a fleet, provide the fleet ID and instance ID.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, an Instance object is returned for each requested instance. Instances are not returned in any particular order.

Learn more

Remotely Access Fleet Instances

Debug Fleet Issues

Related actions

All APIs by task

" }, "DescribeMatchmaking":{ "name":"DescribeMatchmaking", @@ -834,7 +903,7 @@ {"shape":"InternalServiceException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves one or more matchmaking tickets. Use this operation to retrieve ticket information, including--after a successful match is made--connection information for the resulting new game session.

To request matchmaking tickets, provide a list of up to 10 ticket IDs. If the request is successful, a ticket object is returned for each requested ID that currently exists.

This operation is not designed to be continually called to track matchmaking ticket status. This practice can cause you to exceed your API limit, which results in errors. Instead, as a best practice, set up an Amazon Simple Notification Service to receive notifications, and provide the topic ARN in the matchmaking configuration. Continuously polling ticket status with DescribeMatchmaking should only be used for games in development with low matchmaking usage.

Learn more

Add FlexMatch to a game client

Set Up FlexMatch event notification

Related actions

StartMatchmaking | DescribeMatchmaking | StopMatchmaking | AcceptMatch | StartMatchBackfill | All APIs by task

" + "documentation":"

Retrieves one or more matchmaking tickets. Use this operation to retrieve ticket information, including--after a successful match is made--connection information for the resulting new game session.

To request matchmaking tickets, provide a list of up to 10 ticket IDs. If the request is successful, a ticket object is returned for each requested ID that currently exists.

This operation is not designed to be continually called to track matchmaking ticket status. This practice can cause you to exceed your API limit, which results in errors. Instead, as a best practice, set up an Amazon Simple Notification Service to receive notifications, and provide the topic ARN in the matchmaking configuration.

Learn more

Add FlexMatch to a game client

Set Up FlexMatch event notification

" }, "DescribeMatchmakingConfigurations":{ "name":"DescribeMatchmakingConfigurations", @@ -849,7 +918,7 @@ {"shape":"InternalServiceException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves the details of FlexMatch matchmaking configurations.

This operation offers the following options: (1) retrieve all matchmaking configurations, (2) retrieve configurations for a specified list, or (3) retrieve all configurations that use a specified rule set name. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a configuration is returned for each requested name. When specifying a list of names, only configurations that currently exist are returned.

Learn more

Setting up FlexMatch matchmakers

Related actions

CreateMatchmakingConfiguration | DescribeMatchmakingConfigurations | UpdateMatchmakingConfiguration | DeleteMatchmakingConfiguration | CreateMatchmakingRuleSet | DescribeMatchmakingRuleSets | ValidateMatchmakingRuleSet | DeleteMatchmakingRuleSet | All APIs by task

" + "documentation":"

Retrieves the details of FlexMatch matchmaking configurations.

This operation offers the following options: (1) retrieve all matchmaking configurations, (2) retrieve configurations for a specified list, or (3) retrieve all configurations that use a specified rule set name. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a configuration is returned for each requested name. When specifying a list of names, only configurations that currently exist are returned.

Learn more

Setting up FlexMatch matchmakers

" }, "DescribeMatchmakingRuleSets":{ "name":"DescribeMatchmakingRuleSets", @@ -865,7 +934,7 @@ {"shape":"NotFoundException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves the details for FlexMatch matchmaking rule sets. You can request all existing rule sets for the Region, or provide a list of one or more rule set names. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a rule set is returned for each requested name.

Learn more

Related actions

CreateMatchmakingConfiguration | DescribeMatchmakingConfigurations | UpdateMatchmakingConfiguration | DeleteMatchmakingConfiguration | CreateMatchmakingRuleSet | DescribeMatchmakingRuleSets | ValidateMatchmakingRuleSet | DeleteMatchmakingRuleSet | All APIs by task

" + "documentation":"

Retrieves the details for FlexMatch matchmaking rule sets. You can request all existing rule sets for the Region, or provide a list of one or more rule set names. When requesting multiple items, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a rule set is returned for each requested name.

Learn more

" }, "DescribePlayerSessions":{ "name":"DescribePlayerSessions", @@ -881,7 +950,7 @@ {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Retrieves properties for one or more player sessions.

This action can be used in the following ways:

  • To retrieve a specific player session, provide the player session ID only.

  • To retrieve all player sessions in a game session, provide the game session ID only.

  • To retrieve all player sessions for a specific player, provide a player ID only.

To request player sessions, specify either a player session ID, game session ID, or player ID. You can filter this request by player session status. Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a PlayerSession object is returned for each session that matches the request.

Available in Amazon GameLift Local.

Related actions

CreatePlayerSession | CreatePlayerSessions | DescribePlayerSessions | StartGameSessionPlacement | DescribeGameSessionPlacement | All APIs by task

" + "documentation":"

Retrieves properties for one or more player sessions.

This action can be used in the following ways:

  • To retrieve a specific player session, provide the player session ID only.

  • To retrieve all player sessions in a game session, provide the game session ID only.

  • To retrieve all player sessions for a specific player, provide a player ID only.

To request player sessions, specify either a player session ID, game session ID, or player ID. You can filter this request by player session status. Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a PlayerSession object is returned for each session that matches the request.

Related actions

All APIs by task

" }, "DescribeRuntimeConfiguration":{ "name":"DescribeRuntimeConfiguration", @@ -897,7 +966,7 @@ {"shape":"InternalServiceException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Retrieves a fleet's runtime configuration settings. The runtime configuration tells GameLift which server processes to run (and how) on each instance in the fleet.

To get the runtime configuration that is currently in forces for a fleet, provide the fleet ID.

If successful, a RuntimeConfiguration object is returned for the requested fleet. If the requested fleet has been deleted, the result set is empty.

Learn more

Setting up GameLift fleets

Running multiple processes on a fleet

Related actions

ListFleets | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetCapacity | DescribeFleetEvents | DescribeFleetLocationAttributes | DescribeFleetPortSettings | DescribeFleetUtilization | DescribeRuntimeConfiguration | DescribeScalingPolicies | All APIs by task

" + "documentation":"

Retrieves a fleet's runtime configuration settings. The runtime configuration tells GameLift which server processes to run (and how) on each instance in the fleet.

To get the runtime configuration that is currently in forces for a fleet, provide the fleet ID.

If successful, a RuntimeConfiguration object is returned for the requested fleet. If the requested fleet has been deleted, the result set is empty.

Learn more

Setting up GameLift fleets

Running multiple processes on a fleet

" }, "DescribeScalingPolicies":{ "name":"DescribeScalingPolicies", @@ -914,7 +983,7 @@ {"shape":"NotFoundException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves all scaling policies applied to a fleet.

To get a fleet's scaling policies, specify the fleet ID. You can filter this request by policy status, such as to retrieve only active scaling policies. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, set of ScalingPolicy objects is returned for the fleet.

A fleet may have all of its scaling policies suspended (StopFleetActions). This operation does not affect the status of the scaling policies, which remains ACTIVE. To see whether a fleet's scaling policies are in force or suspended, call DescribeFleetAttributes and check the stopped actions.

Related actions

DescribeFleetCapacity | UpdateFleetCapacity | DescribeEC2InstanceLimits | PutScalingPolicy | DescribeScalingPolicies | DeleteScalingPolicy | StopFleetActions | StartFleetActions | All APIs by task

" + "documentation":"

Retrieves all scaling policies applied to a fleet.

To get a fleet's scaling policies, specify the fleet ID. You can filter this request by policy status, such as to retrieve only active scaling policies. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, set of ScalingPolicy objects is returned for the fleet.

A fleet may have all of its scaling policies suspended. This operation does not affect the status of the scaling policies, which remains ACTIVE.

" }, "DescribeScript":{ "name":"DescribeScript", @@ -930,7 +999,7 @@ {"shape":"InternalServiceException"}, {"shape":"NotFoundException"} ], - "documentation":"

Retrieves properties for a Realtime script.

To request a script record, specify the script ID. If successful, an object containing the script properties is returned.

Learn more

Amazon GameLift Realtime Servers

Related actions

CreateScript | ListScripts | DescribeScript | UpdateScript | DeleteScript | All APIs by task

" + "documentation":"

Retrieves properties for a Realtime script.

To request a script record, specify the script ID. If successful, an object containing the script properties is returned.

Learn more

Amazon GameLift Realtime Servers

Related actions

All APIs by task

" }, "DescribeVpcPeeringAuthorizations":{ "name":"DescribeVpcPeeringAuthorizations", @@ -945,7 +1014,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves valid VPC peering authorizations that are pending for the Amazon Web Services account. This operation returns all VPC peering authorizations and requests for peering. This includes those initiated and received by this account.

Related actions

CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | CreateVpcPeeringConnection | DescribeVpcPeeringConnections | DeleteVpcPeeringConnection | All APIs by task

" + "documentation":"

Retrieves valid VPC peering authorizations that are pending for the Amazon Web Services account. This operation returns all VPC peering authorizations and requests for peering. This includes those initiated and received by this account.

Related actions

All APIs by task

" }, "DescribeVpcPeeringConnections":{ "name":"DescribeVpcPeeringConnections", @@ -961,7 +1030,39 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves information on VPC peering connections. Use this operation to get peering information for all fleets or for one specific fleet ID.

To retrieve connection information, call this operation from the Amazon Web Services account that is used to manage the Amazon GameLift fleets. Specify a fleet ID or leave the parameter empty to retrieve all connection records. If successful, the retrieved information includes both active and pending connections. Active connections identify the IpV4 CIDR block that the VPC uses to connect.

Related actions

CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | CreateVpcPeeringConnection | DescribeVpcPeeringConnections | DeleteVpcPeeringConnection | All APIs by task

" + "documentation":"

Retrieves information on VPC peering connections. Use this operation to get peering information for all fleets or for one specific fleet ID.

To retrieve connection information, call this operation from the Amazon Web Services account that is used to manage the Amazon GameLift fleets. Specify a fleet ID or leave the parameter empty to retrieve all connection records. If successful, the retrieved information includes both active and pending connections. Active connections identify the IpV4 CIDR block that the VPC uses to connect.

Related actions

All APIs by task

" + }, + "GetComputeAccess":{ + "name":"GetComputeAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetComputeAccessInput"}, + "output":{"shape":"GetComputeAccessOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Requests remote access to a fleet instance. Remote access is useful for debugging, gathering benchmarking data, or observing activity in real time.

To remotely access an instance, you need credentials that match the operating system of the instance. For a Windows instance, GameLift returns a user name and password as strings for use with a Windows Remote Desktop client. For a Linux instance, GameLift returns a user name and RSA private key, also as strings, for use with an SSH client. The private key must be saved in the proper format to a .pem file before using. If you're making this request using the CLI, saving the secret can be handled as part of the GetInstanceAccess request, as shown in one of the examples for this operation.

To request access to a specific instance, specify the IDs of both the instance and the fleet it belongs to.

Learn more

Remotely Access Fleet Instances

Debug Fleet Issues

" + }, + "GetComputeAuthToken":{ + "name":"GetComputeAuthToken", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetComputeAuthTokenInput"}, + "output":{"shape":"GetComputeAuthTokenOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Requests an authorization token from GameLift. The authorization token is used by your game server to authenticate with GameLift. Each authentication token has an expiration token. To continue using the compute resource to host your game server, regularly retrieve a new authorization token.

" }, "GetGameSessionLogUrl":{ "name":"GetGameSessionLogUrl", @@ -977,7 +1078,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Retrieves the location of stored game session logs for a specified game session. When a game session is terminated, GameLift automatically stores the logs in Amazon S3 and retains them for 14 days. Use this URL to download the logs.

See the Amazon Web Services Service Limits page for maximum log file sizes. Log files that exceed this limit are not saved.

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Retrieves the location of stored game session logs for a specified game session. When a game session is terminated, GameLift automatically stores the logs in Amazon S3 and retains them for 14 days. Use this URL to download the logs.

See the Amazon Web Services Service Limits page for maximum log file sizes. Log files that exceed this limit are not saved.

All APIs by task

" }, "GetInstanceAccess":{ "name":"GetInstanceAccess", @@ -993,7 +1094,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Requests remote access to a fleet instance. Remote access is useful for debugging, gathering benchmarking data, or observing activity in real time.

To remotely access an instance, you need credentials that match the operating system of the instance. For a Windows instance, GameLift returns a user name and password as strings for use with a Windows Remote Desktop client. For a Linux instance, GameLift returns a user name and RSA private key, also as strings, for use with an SSH client. The private key must be saved in the proper format to a .pem file before using. If you're making this request using the CLI, saving the secret can be handled as part of the GetInstanceAccess request, as shown in one of the examples for this operation.

To request access to a specific instance, specify the IDs of both the instance and the fleet it belongs to. You can retrieve a fleet's instance IDs by calling DescribeInstances. If successful, an InstanceAccess object is returned that contains the instance's IP address and a set of credentials.

Learn more

Remotely Access Fleet Instances

Debug Fleet Issues

Related actions

DescribeInstances | GetInstanceAccess | DescribeEC2InstanceLimits | All APIs by task

" + "documentation":"

Requests remote access to a fleet instance. Remote access is useful for debugging, gathering benchmarking data, or observing activity in real time.

To remotely access an instance, you need credentials that match the operating system of the instance. For a Windows instance, GameLift returns a user name and password as strings for use with a Windows Remote Desktop client. For a Linux instance, GameLift returns a user name and RSA private key, also as strings, for use with an SSH client. The private key must be saved in the proper format to a .pem file before using. If you're making this request using the CLI, saving the secret can be handled as part of the GetInstanceAccess request, as shown in one of the examples for this operation.

To request access to a specific instance, specify the IDs of both the instance and the fleet it belongs to. You can retrieve a fleet's instance IDs by calling DescribeInstances.

Learn more

Remotely Access Fleet Instances

Debug Fleet Issues

Related actions

All APIs by task

" }, "ListAliases":{ "name":"ListAliases", @@ -1008,7 +1109,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves all aliases for this Amazon Web Services account. You can filter the result set by alias name and/or routing strategy type. Use the pagination parameters to retrieve results in sequential pages.

Returned aliases are not listed in any particular order.

Related actions

CreateAlias | ListAliases | DescribeAlias | UpdateAlias | DeleteAlias | ResolveAlias | All APIs by task

" + "documentation":"

Retrieves all aliases for this Amazon Web Services account. You can filter the result set by alias name and/or routing strategy type. Use the pagination parameters to retrieve results in sequential pages.

Returned aliases are not listed in any particular order.

Related actions

All APIs by task

" }, "ListBuilds":{ "name":"ListBuilds", @@ -1023,7 +1124,22 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves build resources for all builds associated with the Amazon Web Services account in use. You can limit results to builds that are in a specific status by using the Status parameter. Use the pagination parameters to retrieve results in a set of sequential pages.

Build resources are not listed in any particular order.

Learn more

Upload a Custom Server Build

Related actions

CreateBuild | ListBuilds | DescribeBuild | UpdateBuild | DeleteBuild | All APIs by task

" + "documentation":"

Retrieves build resources for all builds associated with the Amazon Web Services account in use. You can limit results to builds that are in a specific status by using the Status parameter. Use the pagination parameters to retrieve results in a set of sequential pages.

Build resources are not listed in any particular order.

Learn more

Upload a Custom Server Build

All APIs by task

" + }, + "ListCompute":{ + "name":"ListCompute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListComputeInput"}, + "output":{"shape":"ListComputeOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Retrieves all compute resources registered to a fleet in your Amazon Web Services account. You can filter the result set by location.

" }, "ListFleets":{ "name":"ListFleets", @@ -1039,7 +1155,7 @@ {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Retrieves a collection of fleet resources in an Amazon Web Services Region. You can call this operation to get fleets in a previously selected default Region (see https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-region.htmlor specify a Region in your request. You can filter the result set to find only those fleets that are deployed with a specific build or script. For fleets that have multiple locations, this operation retrieves fleets based on their home Region only.

This operation can be used in the following ways:

  • To get a list of all fleets in a Region, don't provide a build or script identifier.

  • To get a list of all fleets where a specific custom game build is deployed, provide the build ID.

  • To get a list of all Realtime Servers fleets with a specific configuration script, provide the script ID.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a list of fleet IDs that match the request parameters is returned. A NextToken value is also returned if there are more result pages to retrieve.

Fleet resources are not listed in a particular order.

Learn more

Setting up GameLift fleets

Related actions

CreateFleet | UpdateFleetCapacity | PutScalingPolicy | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetLocationAttributes | UpdateFleetAttributes | StopFleetActions | DeleteFleet | All APIs by task

" + "documentation":"

Retrieves a collection of fleet resources in an Amazon Web Services Region. You can call this operation to get fleets in a previously selected default Region (see https://docs.aws.amazon.com/credref/latest/refdocs/setting-global-region.htmlor specify a Region in your request. You can filter the result set to find only those fleets that are deployed with a specific build or script. For fleets that have multiple locations, this operation retrieves fleets based on their home Region only.

This operation can be used in the following ways:

  • To get a list of all fleets in a Region, don't provide a build or script identifier.

  • To get a list of all fleets where a specific custom game build is deployed, provide the build ID.

  • To get a list of all Realtime Servers fleets with a specific configuration script, provide the script ID.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a list of fleet IDs that match the request parameters is returned. A NextToken value is also returned if there are more result pages to retrieve.

Fleet resources are not listed in a particular order.

Learn more

Setting up GameLift fleets

" }, "ListGameServerGroups":{ "name":"ListGameServerGroups", @@ -1054,7 +1170,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Retrieves information on all game servers groups that exist in the current Amazon Web Services account for the selected Region. Use the pagination parameters to retrieve results in a set of sequential segments.

Learn more

GameLift FleetIQ Guide

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

Lists a game server groups.

" }, "ListGameServers":{ "name":"ListGameServers", @@ -1069,7 +1185,22 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Retrieves information on all game servers that are currently active in a specified game server group. You can opt to sort the list by game server age. Use the pagination parameters to retrieve results in a set of sequential segments.

Learn more

GameLift FleetIQ Guide

Related actions

RegisterGameServer | ListGameServers | ClaimGameServer | DescribeGameServer | UpdateGameServer | DeregisterGameServer | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Retrieves information on all game servers that are currently active in a specified game server group. You can opt to sort the list by game server age. Use the pagination parameters to retrieve results in a set of sequential segments.

Learn more

GameLift FleetIQ Guide

" + }, + "ListLocations":{ + "name":"ListLocations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLocationsInput"}, + "output":{"shape":"ListLocationsOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Lists all custom and Amazon Web Services locations.

" }, "ListScripts":{ "name":"ListScripts", @@ -1084,7 +1215,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves script records for all Realtime scripts that are associated with the Amazon Web Services account in use.

Learn more

Amazon GameLift Realtime Servers

Related actions

CreateScript | ListScripts | DescribeScript | UpdateScript | DeleteScript | All APIs by task

" + "documentation":"

Retrieves script records for all Realtime scripts that are associated with the Amazon Web Services account in use.

Learn more

Amazon GameLift Realtime Servers

Related actions

All APIs by task

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -1100,7 +1231,7 @@ {"shape":"TaggingFailedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves all tags that are assigned to a GameLift resource. Resource tags are used to organize Amazon Web Services resources for a range of purposes. This operation handles the permissions necessary to manage tags for the following GameLift resource types:

  • Build

  • Script

  • Fleet

  • Alias

  • GameSessionQueue

  • MatchmakingConfiguration

  • MatchmakingRuleSet

To list tags for a resource, specify the unique ARN value for the resource.

Learn more

Tagging Amazon Web Services Resources in the Amazon Web Services General Reference

Amazon Web Services Tagging Strategies

Related actions

TagResource | UntagResource | ListTagsForResource | All APIs by task

" + "documentation":"

Retrieves all tags that are assigned to a GameLift resource. Resource tags are used to organize Amazon Web Services resources for a range of purposes. This operation handles the permissions necessary to manage tags for the following GameLift resource types:

  • Build

  • Script

  • Fleet

  • Alias

  • GameSessionQueue

  • MatchmakingConfiguration

  • MatchmakingRuleSet

To list tags for a resource, specify the unique ARN value for the resource.

Learn more

Tagging Amazon Web Services Resources in the Amazon Web Services General Reference

Amazon Web Services Tagging Strategies

Related actions

All APIs by task

" }, "PutScalingPolicy":{ "name":"PutScalingPolicy", @@ -1116,7 +1247,23 @@ {"shape":"UnauthorizedException"}, {"shape":"NotFoundException"} ], - "documentation":"

Creates or updates a scaling policy for a fleet. Scaling policies are used to automatically scale a fleet's hosting capacity to meet player demand. An active scaling policy instructs Amazon GameLift to track a fleet metric and automatically change the fleet's capacity when a certain threshold is reached. There are two types of scaling policies: target-based and rule-based. Use a target-based policy to quickly and efficiently manage fleet scaling; this option is the most commonly used. Use rule-based policies when you need to exert fine-grained control over auto-scaling.

Fleets can have multiple scaling policies of each type in force at the same time; you can have one target-based policy, one or multiple rule-based scaling policies, or both. We recommend caution, however, because multiple auto-scaling policies can have unintended consequences.

You can temporarily suspend all scaling policies for a fleet by calling StopFleetActions with the fleet action AUTO_SCALING. To resume scaling policies, call StartFleetActions with the same fleet action. To stop just one scaling policy--or to permanently remove it, you must delete the policy with DeleteScalingPolicy.

Learn more about how to work with auto-scaling in Set Up Fleet Automatic Scaling.

Target-based policy

A target-based policy tracks a single metric: PercentAvailableGameSessions. This metric tells us how much of a fleet's hosting capacity is ready to host game sessions but is not currently in use. This is the fleet's buffer; it measures the additional player demand that the fleet could handle at current capacity. With a target-based policy, you set your ideal buffer size and leave it to Amazon GameLift to take whatever action is needed to maintain that target.

For example, you might choose to maintain a 10% buffer for a fleet that has the capacity to host 100 simultaneous game sessions. This policy tells Amazon GameLift to take action whenever the fleet's available capacity falls below or rises above 10 game sessions. Amazon GameLift will start new instances or stop unused instances in order to return to the 10% buffer.

To create or update a target-based policy, specify a fleet ID and name, and set the policy type to \"TargetBased\". Specify the metric to track (PercentAvailableGameSessions) and reference a TargetConfiguration object with your desired buffer value. Exclude all other parameters. On a successful request, the policy name is returned. The scaling policy is automatically in force as soon as it's successfully created. If the fleet's auto-scaling actions are temporarily suspended, the new policy will be in force once the fleet actions are restarted.

Rule-based policy

A rule-based policy tracks specified fleet metric, sets a threshold value, and specifies the type of action to initiate when triggered. With a rule-based policy, you can select from several available fleet metrics. Each policy specifies whether to scale up or scale down (and by how much), so you need one policy for each type of action.

For example, a policy may make the following statement: \"If the percentage of idle instances is greater than 20% for more than 15 minutes, then reduce the fleet capacity by 10%.\"

A policy's rule statement has the following structure:

If [MetricName] is [ComparisonOperator] [Threshold] for [EvaluationPeriods] minutes, then [ScalingAdjustmentType] to/by [ScalingAdjustment].

To implement the example, the rule statement would look like this:

If [PercentIdleInstances] is [GreaterThanThreshold] [20] for [15] minutes, then [PercentChangeInCapacity] to/by [10].

To create or update a scaling policy, specify a unique combination of name and fleet ID, and set the policy type to \"RuleBased\". Specify the parameter values for a policy rule statement. On a successful request, the policy name is returned. Scaling policies are automatically in force as soon as they're successfully created. If the fleet's auto-scaling actions are temporarily suspended, the new policy will be in force once the fleet actions are restarted.

Related actions

DescribeFleetCapacity | UpdateFleetCapacity | DescribeEC2InstanceLimits | PutScalingPolicy | DescribeScalingPolicies | DeleteScalingPolicy | StopFleetActions | StartFleetActions | All APIs by task

" + "documentation":"

Creates or updates a scaling policy for a fleet. Scaling policies are used to automatically scale a fleet's hosting capacity to meet player demand. An active scaling policy instructs Amazon GameLift to track a fleet metric and automatically change the fleet's capacity when a certain threshold is reached. There are two types of scaling policies: target-based and rule-based. Use a target-based policy to quickly and efficiently manage fleet scaling; this option is the most commonly used. Use rule-based policies when you need to exert fine-grained control over auto-scaling.

Fleets can have multiple scaling policies of each type in force at the same time; you can have one target-based policy, one or multiple rule-based scaling policies, or both. We recommend caution, however, because multiple auto-scaling policies can have unintended consequences.

Learn more about how to work with auto-scaling in Set Up Fleet Automatic Scaling.

Target-based policy

A target-based policy tracks a single metric: PercentAvailableGameSessions. This metric tells us how much of a fleet's hosting capacity is ready to host game sessions but is not currently in use. This is the fleet's buffer; it measures the additional player demand that the fleet could handle at current capacity. With a target-based policy, you set your ideal buffer size and leave it to Amazon GameLift to take whatever action is needed to maintain that target.

For example, you might choose to maintain a 10% buffer for a fleet that has the capacity to host 100 simultaneous game sessions. This policy tells Amazon GameLift to take action whenever the fleet's available capacity falls below or rises above 10 game sessions. Amazon GameLift will start new instances or stop unused instances in order to return to the 10% buffer.

To create or update a target-based policy, specify a fleet ID and name, and set the policy type to \"TargetBased\". Specify the metric to track (PercentAvailableGameSessions) and reference a TargetConfiguration object with your desired buffer value. Exclude all other parameters. On a successful request, the policy name is returned. The scaling policy is automatically in force as soon as it's successfully created. If the fleet's auto-scaling actions are temporarily suspended, the new policy will be in force once the fleet actions are restarted.

Rule-based policy

A rule-based policy tracks specified fleet metric, sets a threshold value, and specifies the type of action to initiate when triggered. With a rule-based policy, you can select from several available fleet metrics. Each policy specifies whether to scale up or scale down (and by how much), so you need one policy for each type of action.

For example, a policy may make the following statement: \"If the percentage of idle instances is greater than 20% for more than 15 minutes, then reduce the fleet capacity by 10%.\"

A policy's rule statement has the following structure:

If [MetricName] is [ComparisonOperator] [Threshold] for [EvaluationPeriods] minutes, then [ScalingAdjustmentType] to/by [ScalingAdjustment].

To implement the example, the rule statement would look like this:

If [PercentIdleInstances] is [GreaterThanThreshold] [20] for [15] minutes, then [PercentChangeInCapacity] to/by [10].

To create or update a scaling policy, specify a unique combination of name and fleet ID, and set the policy type to \"RuleBased\". Specify the parameter values for a policy rule statement. On a successful request, the policy name is returned. Scaling policies are automatically in force as soon as they're successfully created. If the fleet's auto-scaling actions are temporarily suspended, the new policy will be in force once the fleet actions are restarted.

" + }, + "RegisterCompute":{ + "name":"RegisterCompute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterComputeInput"}, + "output":{"shape":"RegisterComputeOutput"}, + "errors":[ + {"shape":"UnauthorizedException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Registers your compute resources in a fleet you previously created. After you register a compute to your fleet, you can monitor and manage your compute using GameLift. The operation returns the compute resource containing SDK endpoint you can use to connect your game server to GameLift.

Learn more

" }, "RegisterGameServer":{ "name":"RegisterGameServer", @@ -1130,10 +1277,10 @@ {"shape":"InvalidRequestException"}, {"shape":"ConflictException"}, {"shape":"UnauthorizedException"}, - {"shape":"InternalServiceException"}, - {"shape":"LimitExceededException"} + {"shape":"LimitExceededException"}, + {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Creates a new game server resource and notifies GameLift FleetIQ that the game server is ready to host gameplay and players. This operation is called by a game server process that is running on an instance in a game server group. Registering game servers enables GameLift FleetIQ to track available game servers and enables game clients and services to claim a game server for a new game session.

To register a game server, identify the game server group and instance where the game server is running, and provide a unique identifier for the game server. You can also include connection and game server data. When a game client or service requests a game server by calling ClaimGameServer, this information is returned in the response.

Once a game server is successfully registered, it is put in status AVAILABLE. A request to register a game server may fail if the instance it is running on is in the process of shutting down as part of instance balancing or scale-down activity.

Learn more

GameLift FleetIQ Guide

Related actions

RegisterGameServer | ListGameServers | ClaimGameServer | DescribeGameServer | UpdateGameServer | DeregisterGameServer | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Creates a new game server resource and notifies GameLift FleetIQ that the game server is ready to host gameplay and players. This operation is called by a game server process that is running on an instance in a game server group. Registering game servers enables GameLift FleetIQ to track available game servers and enables game clients and services to claim a game server for a new game session.

To register a game server, identify the game server group and instance where the game server is running, and provide a unique identifier for the game server. You can also include connection and game server data.

Once a game server is successfully registered, it is put in status AVAILABLE. A request to register a game server may fail if the instance it is running on is in the process of shutting down as part of instance balancing or scale-down activity.

Learn more

GameLift FleetIQ Guide

" }, "RequestUploadCredentials":{ "name":"RequestUploadCredentials", @@ -1149,7 +1296,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves a fresh set of credentials for use when uploading a new set of game build files to Amazon GameLift's Amazon S3. This is done as part of the build creation process; see CreateBuild.

To request new credentials, specify the build ID as returned with an initial CreateBuild request. If successful, a new set of credentials are returned, along with the S3 storage location associated with the build ID.

Learn more

Create a Build with Files in S3

Related actions

CreateBuild | ListBuilds | DescribeBuild | UpdateBuild | DeleteBuild | All APIs by task

" + "documentation":"

Retrieves a fresh set of credentials for use when uploading a new set of game build files to Amazon GameLift's Amazon S3. This is done as part of the build creation process; see GameSession.

To request new credentials, specify the build ID as returned with an initial CreateBuild request. If successful, a new set of credentials are returned, along with the S3 storage location associated with the build ID.

Learn more

Create a Build with Files in S3

All APIs by task

" }, "ResolveAlias":{ "name":"ResolveAlias", @@ -1166,7 +1313,7 @@ {"shape":"TerminalRoutingStrategyException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Retrieves the fleet ID that an alias is currently pointing to.

Related actions

CreateAlias | ListAliases | DescribeAlias | UpdateAlias | DeleteAlias | ResolveAlias | All APIs by task

" + "documentation":"

Retrieves the fleet ID that an alias is currently pointing to.

Related actions

All APIs by task

" }, "ResumeGameServerGroup":{ "name":"ResumeGameServerGroup", @@ -1182,7 +1329,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Reinstates activity on a game server group after it has been suspended. A game server group might be suspended by theSuspendGameServerGroup operation, or it might be suspended involuntarily due to a configuration problem. In the second case, you can manually resume activity on the group once the configuration problem has been resolved. Refer to the game server group status and status reason for more information on why group activity is suspended.

To resume activity, specify a game server group ARN and the type of activity to be resumed. If successful, a GameServerGroup object is returned showing that the resumed activity is no longer listed in SuspendedActions.

Learn more

GameLift FleetIQ Guide

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Reinstates activity on a game server group after it has been suspended. A game server group might be suspended by the SuspendGameServerGroup operation, or it might be suspended involuntarily due to a configuration problem. In the second case, you can manually resume activity on the group once the configuration problem has been resolved. Refer to the game server group status and status reason for more information on why group activity is suspended.

To resume activity, specify a game server group ARN and the type of activity to be resumed. If successful, a GameServerGroup object is returned showing that the resumed activity is no longer listed in SuspendedActions.

Learn more

GameLift FleetIQ Guide

" }, "SearchGameSessions":{ "name":"SearchGameSessions", @@ -1200,7 +1347,7 @@ {"shape":"TerminalRoutingStrategyException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Retrieves all active game sessions that match a set of search criteria and sorts them into a specified order.

This operation is not designed to be continually called to track game session status. This practice can cause you to exceed your API limit, which results in errors. Instead, you must configure configure an Amazon Simple Notification Service (SNS) topic to receive notifications from FlexMatch or queues. Continuously polling game session status with DescribeGameSessions should only be used for games in development with low game session usage.

When searching for game sessions, you specify exactly where you want to search and provide a search filter expression, a sort expression, or both. A search request can search only one fleet, but it can search all of a fleet's locations.

This operation can be used in the following ways:

  • To search all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID. This approach returns game sessions in the fleet's home Region and all remote locations that fit the search criteria.

  • To search all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name. For location, you can specify a fleet's home Region or any remote location.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a GameSession object is returned for each game session that matches the request. Search finds game sessions that are in ACTIVE status only. To retrieve information on game sessions in other statuses, use DescribeGameSessions.

You can search or sort by the following game session attributes:

  • gameSessionId -- A unique identifier for the game session. You can use either a GameSessionId or GameSessionArn value.

  • gameSessionName -- Name assigned to a game session. This value is set when requesting a new game session with CreateGameSession or updating with UpdateGameSession. Game session names do not need to be unique to a game session.

  • gameSessionProperties -- Custom data defined in a game session's GameProperty parameter. GameProperty values are stored as key:value pairs; the filter expression must indicate the key and a string to search the data values for. For example, to search for game sessions with custom data containing the key:value pair \"gameMode:brawl\", specify the following: gameSessionProperties.gameMode = \"brawl\". All custom data values are searched as strings.

  • maximumSessions -- Maximum number of player sessions allowed for a game session. This value is set when requesting a new game session with CreateGameSession or updating with UpdateGameSession.

  • creationTimeMillis -- Value indicating when a game session was created. It is expressed in Unix time as milliseconds.

  • playerSessionCount -- Number of players currently connected to a game session. This value changes rapidly as players join the session or drop out.

  • hasAvailablePlayerSessions -- Boolean value indicating whether a game session has reached its maximum number of players. It is highly recommended that all search requests include this filter attribute to optimize search performance and return only sessions that players can join.

Returned values for playerSessionCount and hasAvailablePlayerSessions change quickly as players join sessions and others drop out. Results should be considered a snapshot in time. Be sure to refresh search results often, and handle sessions that fill up before a player can join.

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Retrieves all active game sessions that match a set of search criteria and sorts them into a specified order.

This operation is not designed to be continually called to track game session status. This practice can cause you to exceed your API limit, which results in errors. Instead, you must configure configure an Amazon Simple Notification Service (SNS) topic to receive notifications from FlexMatch or queues. Continuously polling game session status with DescribeGameSessions should only be used for games in development with low game session usage.

When searching for game sessions, you specify exactly where you want to search and provide a search filter expression, a sort expression, or both. A search request can search only one fleet, but it can search all of a fleet's locations.

This operation can be used in the following ways:

  • To search all game sessions that are currently running on all locations in a fleet, provide a fleet or alias ID. This approach returns game sessions in the fleet's home Region and all remote locations that fit the search criteria.

  • To search all game sessions that are currently running on a specific fleet location, provide a fleet or alias ID and a location name. For location, you can specify a fleet's home Region or any remote location.

Use the pagination parameters to retrieve results as a set of sequential pages.

If successful, a GameSession object is returned for each game session that matches the request. Search finds game sessions that are in ACTIVE status only. To retrieve information on game sessions in other statuses, use DescribeGameSessions .

You can search or sort by the following game session attributes:

  • gameSessionId -- A unique identifier for the game session. You can use either a GameSessionId or GameSessionArn value.

  • gameSessionName -- Name assigned to a game session. Game session names do not need to be unique to a game session.

  • gameSessionProperties -- Custom data defined in a game session's GameProperty parameter. GameProperty values are stored as key:value pairs; the filter expression must indicate the key and a string to search the data values for. For example, to search for game sessions with custom data containing the key:value pair \"gameMode:brawl\", specify the following: gameSessionProperties.gameMode = \"brawl\". All custom data values are searched as strings.

  • maximumSessions -- Maximum number of player sessions allowed for a game session.

  • creationTimeMillis -- Value indicating when a game session was created. It is expressed in Unix time as milliseconds.

  • playerSessionCount -- Number of players currently connected to a game session. This value changes rapidly as players join the session or drop out.

  • hasAvailablePlayerSessions -- Boolean value indicating whether a game session has reached its maximum number of players. It is highly recommended that all search requests include this filter attribute to optimize search performance and return only sessions that players can join.

Returned values for playerSessionCount and hasAvailablePlayerSessions change quickly as players join sessions and others drop out. Results should be considered a snapshot in time. Be sure to refresh search results often, and handle sessions that fill up before a player can join.

All APIs by task

" }, "StartFleetActions":{ "name":"StartFleetActions", @@ -1217,7 +1364,7 @@ {"shape":"NotFoundException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Resumes certain types of activity on fleet instances that were suspended with StopFleetActions. For multi-location fleets, fleet actions are managed separately for each location. Currently, this operation is used to restart a fleet's auto-scaling activity.

This operation can be used in the following ways:

  • To restart actions on instances in the fleet's home Region, provide a fleet ID and the type of actions to resume.

  • To restart actions on instances in one of the fleet's remote locations, provide a fleet ID, a location name, and the type of actions to resume.

If successful, GameLift once again initiates scaling events as triggered by the fleet's scaling policies. If actions on the fleet location were never stopped, this operation will have no effect. You can view a fleet's stopped actions using DescribeFleetAttributes or DescribeFleetLocationAttributes.

Learn more

Setting up GameLift fleets

Related actions

CreateFleet | UpdateFleetCapacity | PutScalingPolicy | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetLocationAttributes | UpdateFleetAttributes | StopFleetActions | DeleteFleet | All APIs by task

" + "documentation":"

Resumes certain types of activity on fleet instances that were suspended with StopFleetActions. For multi-location fleets, fleet actions are managed separately for each location. Currently, this operation is used to restart a fleet's auto-scaling activity.

This operation can be used in the following ways:

  • To restart actions on instances in the fleet's home Region, provide a fleet ID and the type of actions to resume.

  • To restart actions on instances in one of the fleet's remote locations, provide a fleet ID, a location name, and the type of actions to resume.

If successful, GameLift once again initiates scaling events as triggered by the fleet's scaling policies. If actions on the fleet location were never stopped, this operation will have no effect.

Learn more

Setting up GameLift fleets

" }, "StartGameSessionPlacement":{ "name":"StartGameSessionPlacement", @@ -1233,7 +1380,7 @@ {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Places a request for a new game session in a queue (see CreateGameSessionQueue). When processing a placement request, Amazon GameLift searches for available resources on the queue's destinations, scanning each until it finds resources or the placement request times out.

A game session placement request can also request player sessions. When a new game session is successfully created, Amazon GameLift creates a player session for each player included in the request.

When placing a game session, by default Amazon GameLift tries each fleet in the order they are listed in the queue configuration. Ideally, a queue's destinations are listed in preference order.

Alternatively, when requesting a game session with players, you can also provide latency data for each player in relevant Regions. Latency data indicates the performance lag a player experiences when connected to a fleet in the Region. Amazon GameLift uses latency data to reorder the list of destinations to place the game session in a Region with minimal lag. If latency data is provided for multiple players, Amazon GameLift calculates each Region's average lag for all players and reorders to get the best game play across all players.

To place a new game session request, specify the following:

  • The queue name and a set of game session properties and settings

  • A unique ID (such as a UUID) for the placement. You use this ID to track the status of the placement request

  • (Optional) A set of player data and a unique player ID for each player that you are joining to the new game session (player data is optional, but if you include it, you must also provide a unique ID for each player)

  • Latency data for all players (if you want to optimize game play for the players)

If successful, a new game session placement is created.

To track the status of a placement request, call DescribeGameSessionPlacement and check the request's status. If the status is FULFILLED, a new game session has been created and a game session ARN and Region are referenced. If the placement request times out, you can resubmit the request or retry it with a different queue.

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Places a request for a new game session in a queue. When processing a placement request, Amazon GameLift searches for available resources on the queue's destinations, scanning each until it finds resources or the placement request times out.

A game session placement request can also request player sessions. When a new game session is successfully created, Amazon GameLift creates a player session for each player included in the request.

When placing a game session, by default Amazon GameLift tries each fleet in the order they are listed in the queue configuration. Ideally, a queue's destinations are listed in preference order.

Alternatively, when requesting a game session with players, you can also provide latency data for each player in relevant Regions. Latency data indicates the performance lag a player experiences when connected to a fleet in the Region. Amazon GameLift uses latency data to reorder the list of destinations to place the game session in a Region with minimal lag. If latency data is provided for multiple players, Amazon GameLift calculates each Region's average lag for all players and reorders to get the best game play across all players.

To place a new game session request, specify the following:

  • The queue name and a set of game session properties and settings

  • A unique ID (such as a UUID) for the placement. You use this ID to track the status of the placement request

  • (Optional) A set of player data and a unique player ID for each player that you are joining to the new game session (player data is optional, but if you include it, you must also provide a unique ID for each player)

  • Latency data for all players (if you want to optimize game play for the players)

If successful, a new game session placement is created.

To track the status of a placement request, call DescribeGameSessionPlacement and check the request's status. If the status is FULFILLED, a new game session has been created and a game session ARN and Region are referenced. If the placement request times out, you can resubmit the request or retry it with a different queue.

" }, "StartMatchBackfill":{ "name":"StartMatchBackfill", @@ -1249,7 +1396,7 @@ {"shape":"InternalServiceException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Finds new players to fill open slots in currently running game sessions. The backfill match process is essentially identical to the process of forming new matches. Backfill requests use the same matchmaker that was used to make the original match, and they provide matchmaking data for all players currently in the game session. FlexMatch uses this information to select new players so that backfilled match continues to meet the original match requirements.

When using FlexMatch with GameLift managed hosting, you can request a backfill match from a client service by calling this operation with a GameSession identifier. You also have the option of making backfill requests directly from your game server. In response to a request, FlexMatch creates player sessions for the new players, updates the GameSession resource, and sends updated matchmaking data to the game server. You can request a backfill match at any point after a game session is started. Each game session can have only one active backfill request at a time; a subsequent request automatically replaces the earlier request.

When using FlexMatch as a standalone component, request a backfill match by calling this operation without a game session identifier. As with newly formed matches, matchmaking results are returned in a matchmaking event so that your game can update the game session that is being backfilled.

To request a backfill match, specify a unique ticket ID, the original matchmaking configuration, and matchmaking data for all current players in the game session being backfilled. Optionally, specify the GameSession ARN. If successful, a match backfill ticket is created and returned with status set to QUEUED. Track the status of backfill tickets using the same method for tracking tickets for new matches.

Only game sessions created by FlexMatch are supported for match backfill.

Learn more

Backfill existing games with FlexMatch

Matchmaking events (reference)

How GameLift FlexMatch works

Related actions

StartMatchmaking | DescribeMatchmaking | StopMatchmaking | AcceptMatch | StartMatchBackfill | All APIs by task

" + "documentation":"

Finds new players to fill open slots in currently running game sessions. The backfill match process is essentially identical to the process of forming new matches. Backfill requests use the same matchmaker that was used to make the original match, and they provide matchmaking data for all players currently in the game session. FlexMatch uses this information to select new players so that backfilled match continues to meet the original match requirements.

When using FlexMatch with GameLift managed hosting, you can request a backfill match from a client service by calling this operation with a GameSessions ID. You also have the option of making backfill requests directly from your game server. In response to a request, FlexMatch creates player sessions for the new players, updates the GameSession resource, and sends updated matchmaking data to the game server. You can request a backfill match at any point after a game session is started. Each game session can have only one active backfill request at a time; a subsequent request automatically replaces the earlier request.

When using FlexMatch as a standalone component, request a backfill match by calling this operation without a game session identifier. As with newly formed matches, matchmaking results are returned in a matchmaking event so that your game can update the game session that is being backfilled.

To request a backfill match, specify a unique ticket ID, the original matchmaking configuration, and matchmaking data for all current players in the game session being backfilled. Optionally, specify the GameSession ARN. If successful, a match backfill ticket is created and returned with status set to QUEUED. Track the status of backfill tickets using the same method for tracking tickets for new matches.

Only game sessions created by FlexMatch are supported for match backfill.

Learn more

Backfill existing games with FlexMatch

Matchmaking events (reference)

How GameLift FlexMatch works

" }, "StartMatchmaking":{ "name":"StartMatchmaking", @@ -1265,7 +1412,7 @@ {"shape":"InternalServiceException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Uses FlexMatch to create a game match for a group of players based on custom matchmaking rules. With games that use GameLift managed hosting, this operation also triggers GameLift to find hosting resources and start a new game session for the new match. Each matchmaking request includes information on one or more players and specifies the FlexMatch matchmaker to use. When a request is for multiple players, FlexMatch attempts to build a match that includes all players in the request, placing them in the same team and finding additional players as needed to fill the match.

To start matchmaking, provide a unique ticket ID, specify a matchmaking configuration, and include the players to be matched. You must also include any player attributes that are required by the matchmaking configuration's rule set. If successful, a matchmaking ticket is returned with status set to QUEUED.

Track matchmaking events to respond as needed and acquire game session connection information for successfully completed matches. Ticket status updates are tracked using event notification through Amazon Simple Notification Service, which is defined in the matchmaking configuration.

Learn more

Add FlexMatch to a game client

Set Up FlexMatch event notification

How GameLift FlexMatch works

Related actions

StartMatchmaking | DescribeMatchmaking | StopMatchmaking | AcceptMatch | StartMatchBackfill | All APIs by task

" + "documentation":"

Uses FlexMatch to create a game match for a group of players based on custom matchmaking rules. With games that use GameLift managed hosting, this operation also triggers GameLift to find hosting resources and start a new game session for the new match. Each matchmaking request includes information on one or more players and specifies the FlexMatch matchmaker to use. When a request is for multiple players, FlexMatch attempts to build a match that includes all players in the request, placing them in the same team and finding additional players as needed to fill the match.

To start matchmaking, provide a unique ticket ID, specify a matchmaking configuration, and include the players to be matched. You must also include any player attributes that are required by the matchmaking configuration's rule set. If successful, a matchmaking ticket is returned with status set to QUEUED.

Track matchmaking events to respond as needed and acquire game session connection information for successfully completed matches. Ticket status updates are tracked using event notification through Amazon Simple Notification Service, which is defined in the matchmaking configuration.

Learn more

Add FlexMatch to a game client

Set Up FlexMatch event notification

How GameLift FlexMatch works

" }, "StopFleetActions":{ "name":"StopFleetActions", @@ -1282,7 +1429,7 @@ {"shape":"NotFoundException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Suspends certain types of activity in a fleet location. Currently, this operation is used to stop auto-scaling activity. For multi-location fleets, fleet actions are managed separately for each location.

Stopping fleet actions has several potential purposes. It allows you to temporarily stop auto-scaling activity but retain your scaling policies for use in the future. For multi-location fleets, you can set up fleet-wide auto-scaling, and then opt out of it for certain locations.

This operation can be used in the following ways:

  • To stop actions on instances in the fleet's home Region, provide a fleet ID and the type of actions to suspend.

  • To stop actions on instances in one of the fleet's remote locations, provide a fleet ID, a location name, and the type of actions to suspend.

If successful, GameLift no longer initiates scaling events except in response to manual changes using UpdateFleetCapacity. You can view a fleet's stopped actions using DescribeFleetAttributes or DescribeFleetLocationAttributes. Suspended activity can be restarted using StartFleetActions.

Learn more

Setting up GameLift Fleets

Related actions

CreateFleet | UpdateFleetCapacity | PutScalingPolicy | DescribeEC2InstanceLimits | DescribeFleetAttributes | DescribeFleetLocationAttributes | UpdateFleetAttributes | StopFleetActions | DeleteFleet | All APIs by task

" + "documentation":"

Suspends certain types of activity in a fleet location. Currently, this operation is used to stop auto-scaling activity. For multi-location fleets, fleet actions are managed separately for each location.

Stopping fleet actions has several potential purposes. It allows you to temporarily stop auto-scaling activity but retain your scaling policies for use in the future. For multi-location fleets, you can set up fleet-wide auto-scaling, and then opt out of it for certain locations.

This operation can be used in the following ways:

  • To stop actions on instances in the fleet's home Region, provide a fleet ID and the type of actions to suspend.

  • To stop actions on instances in one of the fleet's remote locations, provide a fleet ID, a location name, and the type of actions to suspend.

If successful, GameLift no longer initiates scaling events except in response to manual changes using UpdateFleetCapacity.

Learn more

Setting up GameLift Fleets

" }, "StopGameSessionPlacement":{ "name":"StopGameSessionPlacement", @@ -1298,7 +1445,7 @@ {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Cancels a game session placement that is in PENDING status. To stop a placement, provide the placement ID values. If successful, the placement is moved to CANCELLED status.

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Cancels a game session placement that is in PENDING status. To stop a placement, provide the placement ID values. If successful, the placement is moved to CANCELLED status.

" }, "StopMatchmaking":{ "name":"StopMatchmaking", @@ -1314,7 +1461,7 @@ {"shape":"InternalServiceException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Cancels a matchmaking ticket or match backfill ticket that is currently being processed. To stop the matchmaking operation, specify the ticket ID. If successful, work on the ticket is stopped, and the ticket status is changed to CANCELLED.

This call is also used to turn off automatic backfill for an individual game session. This is for game sessions that are created with a matchmaking configuration that has automatic backfill enabled. The ticket ID is included in the MatchmakerData of an updated game session object, which is provided to the game server.

If the operation is successful, the service sends back an empty JSON struct with the HTTP 200 response (not an empty HTTP body).

Learn more

Add FlexMatch to a game client

Related actions

StartMatchmaking | DescribeMatchmaking | StopMatchmaking | AcceptMatch | StartMatchBackfill | All APIs by task

" + "documentation":"

Cancels a matchmaking ticket or match backfill ticket that is currently being processed. To stop the matchmaking operation, specify the ticket ID. If successful, work on the ticket is stopped, and the ticket status is changed to CANCELLED.

This call is also used to turn off automatic backfill for an individual game session. This is for game sessions that are created with a matchmaking configuration that has automatic backfill enabled. The ticket ID is included in the MatchmakerData of an updated game session object, which is provided to the game server.

If the operation is successful, the service sends back an empty JSON struct with the HTTP 200 response (not an empty HTTP body).

Learn more

Add FlexMatch to a game client

" }, "SuspendGameServerGroup":{ "name":"SuspendGameServerGroup", @@ -1330,7 +1477,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Temporarily stops activity on a game server group without terminating instances or the game server group. You can restart activity by calling ResumeGameServerGroup. You can suspend the following activity:

  • Instance type replacement - This activity evaluates the current game hosting viability of all Spot instance types that are defined for the game server group. It updates the Auto Scaling group to remove nonviable Spot Instance types, which have a higher chance of game server interruptions. It then balances capacity across the remaining viable Spot Instance types. When this activity is suspended, the Auto Scaling group continues with its current balance, regardless of viability. Instance protection, utilization metrics, and capacity scaling activities continue to be active.

To suspend activity, specify a game server group ARN and the type of activity to be suspended. If successful, a GameServerGroup object is returned showing that the activity is listed in SuspendedActions.

Learn more

GameLift FleetIQ Guide

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Temporarily stops activity on a game server group without terminating instances or the game server group. You can restart activity by calling ResumeGameServerGroup. You can suspend the following activity:

  • Instance type replacement - This activity evaluates the current game hosting viability of all Spot instance types that are defined for the game server group. It updates the Auto Scaling group to remove nonviable Spot Instance types, which have a higher chance of game server interruptions. It then balances capacity across the remaining viable Spot Instance types. When this activity is suspended, the Auto Scaling group continues with its current balance, regardless of viability. Instance protection, utilization metrics, and capacity scaling activities continue to be active.

To suspend activity, specify a game server group ARN and the type of activity to be suspended. If successful, a GameServerGroup object is returned showing that the activity is listed in SuspendedActions.

Learn more

GameLift FleetIQ Guide

" }, "TagResource":{ "name":"TagResource", @@ -1346,7 +1493,7 @@ {"shape":"TaggingFailedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Assigns a tag to a GameLift resource. Amazon Web Services resource tags provide an additional management tool set. You can use tags to organize resources, create IAM permissions policies to manage access to groups of resources, customize Amazon Web Services cost breakdowns, etc. This operation handles the permissions necessary to manage tags for the following GameLift resource types:

  • Build

  • Script

  • Fleet

  • Alias

  • GameSessionQueue

  • MatchmakingConfiguration

  • MatchmakingRuleSet

To add a tag to a resource, specify the unique ARN value for the resource and provide a tag list containing one or more tags. The operation succeeds even if the list includes tags that are already assigned to the specified resource.

Learn more

Tagging Amazon Web Services Resources in the Amazon Web Services General Reference

Amazon Web Services Tagging Strategies

Related actions

TagResource | UntagResource | ListTagsForResource | All APIs by task

" + "documentation":"

Assigns a tag to a GameLift resource. Amazon Web Services resource tags provide an additional management tool set. You can use tags to organize resources, create IAM permissions policies to manage access to groups of resources, customize Amazon Web Services cost breakdowns, etc. This operation handles the permissions necessary to manage tags for the following GameLift resource types:

  • Build

  • Script

  • Fleet

  • Alias

  • GameSessionQueue

  • MatchmakingConfiguration

  • MatchmakingRuleSet

To add a tag to a resource, specify the unique ARN value for the resource and provide a tag list containing one or more tags. The operation succeeds even if the list includes tags that are already assigned to the specified resource.

Learn more

Tagging Amazon Web Services Resources in the Amazon Web Services General Reference

Amazon Web Services Tagging Strategies

Related actions

All APIs by task

" }, "UntagResource":{ "name":"UntagResource", @@ -1362,7 +1509,7 @@ {"shape":"TaggingFailedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Removes a tag that is assigned to a GameLift resource. Resource tags are used to organize Amazon Web Services resources for a range of purposes. This operation handles the permissions necessary to manage tags for the following GameLift resource types:

  • Build

  • Script

  • Fleet

  • Alias

  • GameSessionQueue

  • MatchmakingConfiguration

  • MatchmakingRuleSet

To remove a tag from a resource, specify the unique ARN value for the resource and provide a string list containing one or more tags to be removed. This operation succeeds even if the list includes tags that are not currently assigned to the specified resource.

Learn more

Tagging Amazon Web Services Resources in the Amazon Web Services General Reference

Amazon Web Services Tagging Strategies

Related actions

TagResource | UntagResource | ListTagsForResource | All APIs by task

" + "documentation":"

Removes a tag that is assigned to a GameLift resource. Resource tags are used to organize Amazon Web Services resources for a range of purposes. This operation handles the permissions necessary to manage tags for the following GameLift resource types:

  • Build

  • Script

  • Fleet

  • Alias

  • GameSessionQueue

  • MatchmakingConfiguration

  • MatchmakingRuleSet

To remove a tag from a resource, specify the unique ARN value for the resource and provide a string list containing one or more tags to be removed. This operation succeeds even if the list includes tags that are not currently assigned to the specified resource.

Learn more

Tagging Amazon Web Services Resources in the Amazon Web Services General Reference

Amazon Web Services Tagging Strategies

Related actions

All APIs by task

" }, "UpdateAlias":{ "name":"UpdateAlias", @@ -1378,7 +1525,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates properties for an alias. To update properties, specify the alias ID to be updated and provide the information to be changed. To reassign an alias to another fleet, provide an updated routing strategy. If successful, the updated alias record is returned.

Related actions

CreateAlias | ListAliases | DescribeAlias | UpdateAlias | DeleteAlias | ResolveAlias | All APIs by task

" + "documentation":"

Updates properties for an alias. To update properties, specify the alias ID to be updated and provide the information to be changed. To reassign an alias to another fleet, provide an updated routing strategy. If successful, the updated alias record is returned.

Related actions

All APIs by task

" }, "UpdateBuild":{ "name":"UpdateBuild", @@ -1394,7 +1541,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates metadata in a build resource, including the build name and version. To update the metadata, specify the build ID to update and provide the new values. If successful, a build object containing the updated metadata is returned.

Learn more

Upload a Custom Server Build

Related actions

CreateBuild | ListBuilds | DescribeBuild | UpdateBuild | DeleteBuild | All APIs by task

" + "documentation":"

Updates metadata in a build resource, including the build name and version. To update the metadata, specify the build ID to update and provide the new values. If successful, a build object containing the updated metadata is returned.

Learn more

Upload a Custom Server Build

All APIs by task

" }, "UpdateFleetAttributes":{ "name":"UpdateFleetAttributes", @@ -1413,7 +1560,7 @@ {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Updates a fleet's mutable attributes, including game session protection and resource creation limits.

To update fleet attributes, specify the fleet ID and the property values that you want to change.

If successful, an updated FleetAttributes object is returned.

Learn more

Setting up GameLift fleets

Related actions

CreateFleetLocations | UpdateFleetAttributes | UpdateFleetCapacity | UpdateFleetPortSettings | UpdateRuntimeConfiguration | StopFleetActions | StartFleetActions | PutScalingPolicy | DeleteFleet | DeleteFleetLocations | DeleteScalingPolicy | All APIs by task

" + "documentation":"

Updates a fleet's mutable attributes, including game session protection and resource creation limits.

To update fleet attributes, specify the fleet ID and the property values that you want to change.

If successful, an updated FleetAttributes object is returned.

Learn more

Setting up GameLift fleets

" }, "UpdateFleetCapacity":{ "name":"UpdateFleetCapacity", @@ -1433,7 +1580,7 @@ {"shape":"UnauthorizedException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Updates capacity settings for a fleet. For fleets with multiple locations, use this operation to manage capacity settings in each location individually. Fleet capacity determines the number of game sessions and players that can be hosted based on the fleet configuration. Use this operation to set the following fleet capacity properties:

  • Minimum/maximum size: Set hard limits on fleet capacity. GameLift cannot set the fleet's capacity to a value outside of this range, whether the capacity is changed manually or through automatic scaling.

  • Desired capacity: Manually set the number of Amazon EC2 instances to be maintained in a fleet location. Before changing a fleet's desired capacity, you may want to call DescribeEC2InstanceLimits to get the maximum capacity of the fleet's Amazon EC2 instance type. Alternatively, consider using automatic scaling to adjust capacity based on player demand.

This operation can be used in the following ways:

  • To update capacity for a fleet's home Region, or if the fleet has no remote locations, omit the Location parameter. The fleet must be in ACTIVE status.

  • To update capacity for a fleet's remote location, include the Location parameter set to the location to be updated. The location must be in ACTIVE status.

If successful, capacity settings are updated immediately. In response a change in desired capacity, GameLift initiates steps to start new instances or terminate existing instances in the requested fleet location. This continues until the location's active instance count matches the new desired instance count. You can track a fleet's current capacity by calling DescribeFleetCapacity or DescribeFleetLocationCapacity. If the requested desired instance count is higher than the instance type's limit, the LimitExceeded exception occurs.

Learn more

Scaling fleet capacity

Related actions

CreateFleetLocations | UpdateFleetAttributes | UpdateFleetCapacity | UpdateFleetPortSettings | UpdateRuntimeConfiguration | StopFleetActions | StartFleetActions | PutScalingPolicy | DeleteFleet | DeleteFleetLocations | DeleteScalingPolicy | All APIs by task

" + "documentation":"

Updates capacity settings for a fleet. For fleets with multiple locations, use this operation to manage capacity settings in each location individually. Fleet capacity determines the number of game sessions and players that can be hosted based on the fleet configuration. Use this operation to set the following fleet capacity properties:

  • Minimum/maximum size: Set hard limits on fleet capacity. GameLift cannot set the fleet's capacity to a value outside of this range, whether the capacity is changed manually or through automatic scaling.

  • Desired capacity: Manually set the number of Amazon EC2 instances to be maintained in a fleet location. Before changing a fleet's desired capacity, you may want to call DescribeEC2InstanceLimits to get the maximum capacity of the fleet's Amazon EC2 instance type. Alternatively, consider using automatic scaling to adjust capacity based on player demand.

This operation can be used in the following ways:

  • To update capacity for a fleet's home Region, or if the fleet has no remote locations, omit the Location parameter. The fleet must be in ACTIVE status.

  • To update capacity for a fleet's remote location, include the Location parameter set to the location to be updated. The location must be in ACTIVE status.

If successful, capacity settings are updated immediately. In response a change in desired capacity, GameLift initiates steps to start new instances or terminate existing instances in the requested fleet location. This continues until the location's active instance count matches the new desired instance count. You can track a fleet's current capacity by calling DescribeFleetCapacity or DescribeFleetLocationCapacity. If the requested desired instance count is higher than the instance type's limit, the LimitExceeded exception occurs.

Learn more

Scaling fleet capacity

" }, "UpdateFleetPortSettings":{ "name":"UpdateFleetPortSettings", @@ -1452,7 +1599,7 @@ {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Updates permissions that allow inbound traffic to connect to game sessions that are being hosted on instances in the fleet.

To update settings, specify the fleet ID to be updated and specify the changes to be made. List the permissions you want to add in InboundPermissionAuthorizations, and permissions you want to remove in InboundPermissionRevocations. Permissions to be removed must match existing fleet permissions.

If successful, the fleet ID for the updated fleet is returned. For fleets with remote locations, port setting updates can take time to propagate across all locations. You can check the status of updates in each location by calling DescribeFleetPortSettings with a location name.

Learn more

Setting up GameLift fleets

Related actions

CreateFleetLocations | UpdateFleetAttributes | UpdateFleetCapacity | UpdateFleetPortSettings | UpdateRuntimeConfiguration | StopFleetActions | StartFleetActions | PutScalingPolicy | DeleteFleet | DeleteFleetLocations | DeleteScalingPolicy | All APIs by task

" + "documentation":"

Updates permissions that allow inbound traffic to connect to game sessions that are being hosted on instances in the fleet.

To update settings, specify the fleet ID to be updated and specify the changes to be made. List the permissions you want to add in InboundPermissionAuthorizations, and permissions you want to remove in InboundPermissionRevocations. Permissions to be removed must match existing fleet permissions.

If successful, the fleet ID for the updated fleet is returned. For fleets with remote locations, port setting updates can take time to propagate across all locations. You can check the status of updates in each location by calling DescribeFleetPortSettings with a location name.

Learn more

Setting up GameLift fleets

" }, "UpdateGameServer":{ "name":"UpdateGameServer", @@ -1468,7 +1615,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Updates information about a registered game server to help GameLift FleetIQ to track game server availability. This operation is called by a game server process that is running on an instance in a game server group.

Use this operation to update the following types of game server information. You can make all three types of updates in the same request:

  • To update the game server's utilization status, identify the game server and game server group and specify the current utilization status. Use this status to identify when game servers are currently hosting games and when they are available to be claimed.

  • To report health status, identify the game server and game server group and set health check to HEALTHY. If a game server does not report health status for a certain length of time, the game server is no longer considered healthy. As a result, it will be eventually deregistered from the game server group to avoid affecting utilization metrics. The best practice is to report health every 60 seconds.

  • To change game server metadata, provide updated game server data.

Once a game server is successfully updated, the relevant statuses and timestamps are updated.

Learn more

GameLift FleetIQ Guide

Related actions

RegisterGameServer | ListGameServers | ClaimGameServer | DescribeGameServer | UpdateGameServer | DeregisterGameServer | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Updates information about a registered game server to help GameLift FleetIQ to track game server availability. This operation is called by a game server process that is running on an instance in a game server group.

Use this operation to update the following types of game server information. You can make all three types of updates in the same request:

  • To update the game server's utilization status, identify the game server and game server group and specify the current utilization status. Use this status to identify when game servers are currently hosting games and when they are available to be claimed.

  • To report health status, identify the game server and game server group and set health check to HEALTHY. If a game server does not report health status for a certain length of time, the game server is no longer considered healthy. As a result, it will be eventually deregistered from the game server group to avoid affecting utilization metrics. The best practice is to report health every 60 seconds.

  • To change game server metadata, provide updated game server data.

Once a game server is successfully updated, the relevant statuses and timestamps are updated.

Learn more

GameLift FleetIQ Guide

" }, "UpdateGameServerGroup":{ "name":"UpdateGameServerGroup", @@ -1484,7 +1631,7 @@ {"shape":"UnauthorizedException"}, {"shape":"InternalServiceException"} ], - "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Updates GameLift FleetIQ-specific properties for a game server group. Many Auto Scaling group properties are updated on the Auto Scaling group directly, including the launch template, Auto Scaling policies, and maximum/minimum/desired instance counts.

To update the game server group, specify the game server group ID and provide the updated values. Before applying the updates, the new values are validated to ensure that GameLift FleetIQ can continue to perform instance balancing activity. If successful, a GameServerGroup object is returned.

Learn more

GameLift FleetIQ Guide

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

This operation is used with the GameLift FleetIQ solution and game server groups.

Updates GameLift FleetIQ-specific properties for a game server group. Many Auto Scaling group properties are updated on the Auto Scaling group directly, including the launch template, Auto Scaling policies, and maximum/minimum/desired instance counts.

To update the game server group, specify the game server group ID and provide the updated values. Before applying the updates, the new values are validated to ensure that GameLift FleetIQ can continue to perform instance balancing activity. If successful, a GameServerGroup object is returned.

Learn more

GameLift FleetIQ Guide

" }, "UpdateGameSession":{ "name":"UpdateGameSession", @@ -1502,7 +1649,7 @@ {"shape":"InvalidGameSessionStatusException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Updates the mutable properties of a game session.

To update a game session, specify the game session ID and the values you want to change.

If successful, the updated GameSession object is returned.

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Updates the mutable properties of a game session.

To update a game session, specify the game session ID and the values you want to change.

If successful, the updated GameSession object is returned.

All APIs by task

" }, "UpdateGameSessionQueue":{ "name":"UpdateGameSessionQueue", @@ -1518,7 +1665,7 @@ {"shape":"NotFoundException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Updates the configuration of a game session queue, which determines how the queue processes new game session requests. To update settings, specify the queue name to be updated and provide the new settings. When updating destinations, provide a complete list of destinations.

Learn more

Using Multi-Region Queues

Related actions

CreateGameSessionQueue | DescribeGameSessionQueues | UpdateGameSessionQueue | DeleteGameSessionQueue | All APIs by task

" + "documentation":"

Updates the configuration of a game session queue, which determines how the queue processes new game session requests. To update settings, specify the queue name to be updated and provide the new settings. When updating destinations, provide a complete list of destinations.

Learn more

Using Multi-Region Queues

" }, "UpdateMatchmakingConfiguration":{ "name":"UpdateMatchmakingConfiguration", @@ -1534,7 +1681,7 @@ {"shape":"InternalServiceException"}, {"shape":"UnsupportedRegionException"} ], - "documentation":"

Updates settings for a FlexMatch matchmaking configuration. These changes affect all matches and game sessions that are created after the update. To update settings, specify the configuration name to be updated and provide the new settings.

Learn more

Design a FlexMatch matchmaker

Related actions

CreateMatchmakingConfiguration | DescribeMatchmakingConfigurations | UpdateMatchmakingConfiguration | DeleteMatchmakingConfiguration | CreateMatchmakingRuleSet | DescribeMatchmakingRuleSets | ValidateMatchmakingRuleSet | DeleteMatchmakingRuleSet | All APIs by task

" + "documentation":"

Updates settings for a FlexMatch matchmaking configuration. These changes affect all matches and game sessions that are created after the update. To update settings, specify the configuration name to be updated and provide the new settings.

Learn more

Design a FlexMatch matchmaker

" }, "UpdateRuntimeConfiguration":{ "name":"UpdateRuntimeConfiguration", @@ -1551,7 +1698,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InvalidFleetStatusException"} ], - "documentation":"

Updates the current runtime configuration for the specified fleet, which tells GameLift how to launch server processes on all instances in the fleet. You can update a fleet's runtime configuration at any time after the fleet is created; it does not need to be in ACTIVE status.

To update runtime configuration, specify the fleet ID and provide a RuntimeConfiguration with an updated set of server process configurations.

If successful, the fleet's runtime configuration settings are updated. Each instance in the fleet regularly checks for and retrieves updated runtime configurations. Instances immediately begin complying with the new configuration by launching new server processes or not replacing existing processes when they shut down. Updating a fleet's runtime configuration never affects existing server processes.

Learn more

Setting up GameLift fleets

Related actions

CreateFleetLocations | UpdateFleetAttributes | UpdateFleetCapacity | UpdateFleetPortSettings | UpdateRuntimeConfiguration | StopFleetActions | StartFleetActions | PutScalingPolicy | DeleteFleet | DeleteFleetLocations | DeleteScalingPolicy | All APIs by task

" + "documentation":"

Updates the current runtime configuration for the specified fleet, which tells GameLift how to launch server processes on all instances in the fleet. You can update a fleet's runtime configuration at any time after the fleet is created; it does not need to be in ACTIVE status.

To update runtime configuration, specify the fleet ID and provide a RuntimeConfiguration with an updated set of server process configurations.

If successful, the fleet's runtime configuration settings are updated. Each instance in the fleet regularly checks for and retrieves updated runtime configurations. Instances immediately begin complying with the new configuration by launching new server processes or not replacing existing processes when they shut down. Updating a fleet's runtime configuration never affects existing server processes.

Learn more

Setting up GameLift fleets

" }, "UpdateScript":{ "name":"UpdateScript", @@ -1567,7 +1714,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Updates Realtime script metadata and content.

To update script metadata, specify the script ID and provide updated name and/or version values.

To update script content, provide an updated zip file by pointing to either a local file or an Amazon S3 bucket location. You can use either method regardless of how the original script was uploaded. Use the Version parameter to track updates to the script.

If the call is successful, the updated metadata is stored in the script record and a revised script is uploaded to the Amazon GameLift service. Once the script is updated and acquired by a fleet instance, the new version is used for all new game sessions.

Learn more

Amazon GameLift Realtime Servers

Related actions

CreateScript | ListScripts | DescribeScript | UpdateScript | DeleteScript | All APIs by task

" + "documentation":"

Updates Realtime script metadata and content.

To update script metadata, specify the script ID and provide updated name and/or version values.

To update script content, provide an updated zip file by pointing to either a local file or an Amazon S3 bucket location. You can use either method regardless of how the original script was uploaded. Use the Version parameter to track updates to the script.

If the call is successful, the updated metadata is stored in the script record and a revised script is uploaded to the Amazon GameLift service. Once the script is updated and acquired by a fleet instance, the new version is used for all new game sessions.

Learn more

Amazon GameLift Realtime Servers

Related actions

All APIs by task

" }, "ValidateMatchmakingRuleSet":{ "name":"ValidateMatchmakingRuleSet", @@ -1582,7 +1729,7 @@ {"shape":"UnsupportedRegionException"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Validates the syntax of a matchmaking rule or rule set. This operation checks that the rule set is using syntactically correct JSON and that it conforms to allowed property expressions. To validate syntax, provide a rule set JSON string.

Learn more

Related actions

CreateMatchmakingConfiguration | DescribeMatchmakingConfigurations | UpdateMatchmakingConfiguration | DeleteMatchmakingConfiguration | CreateMatchmakingRuleSet | DescribeMatchmakingRuleSets | ValidateMatchmakingRuleSet | DeleteMatchmakingRuleSet | All APIs by task

" + "documentation":"

Validates the syntax of a matchmaking rule or rule set. This operation checks that the rule set is using syntactically correct JSON and that it conforms to allowed property expressions. To validate syntax, provide a rule set JSON string.

Learn more

" } }, "shapes":{ @@ -1606,8 +1753,7 @@ "shape":"AcceptanceType", "documentation":"

Player response to the proposed match.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "AcceptMatchOutput":{ "type":"structure", @@ -1653,7 +1799,7 @@ "documentation":"

The time that this data object was last modified. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" } }, - "documentation":"

Properties that describe an alias resource.

Related actions

CreateAlias | ListAliases | DescribeAlias | UpdateAlias | DeleteAlias | ResolveAlias | All APIs by task

" + "documentation":"

Properties that describe an alias resource.

Related actions

All APIs by task

" }, "AliasArn":{ "type":"string", @@ -1676,6 +1822,17 @@ "max":1011, "min":1 }, + "AnywhereConfiguration":{ + "type":"structure", + "required":["Cost"], + "members":{ + "Cost":{ + "shape":"NonNegativeLimitedLengthDouble", + "documentation":"

The cost to run your fleet per hour. GameLift uses the provided cost of your fleet to balance usage in queues. For more information about queues, see Setting up queues.

" + } + }, + "documentation":"

GameLift Anywhere configuration options for your Anywhere fleets.

" + }, "ArnStringModel":{ "type":"string", "max":256, @@ -1686,7 +1843,7 @@ "type":"structure", "members":{ "S":{ - "shape":"NonZeroAndMaxString", + "shape":"PlayerAttributeString", "documentation":"

For single string values. Maximum string length is 100 characters.

" }, "N":{ @@ -1694,15 +1851,15 @@ "documentation":"

For number values, expressed as double.

" }, "SL":{ - "shape":"StringList", + "shape":"PlayerAttributeStringList", "documentation":"

For a list of up to 100 strings. Maximum length for each string is 100 characters. Duplicate values are not recognized; all occurrences of the repeated value after the first of a repeated value are ignored.

" }, "SDM":{ - "shape":"StringDoubleMap", + "shape":"PlayerAttributeStringDoubleMap", "documentation":"

For a map of up to 10 data type:value pairs. Maximum length for each string value is 100 characters.

" } }, - "documentation":"

Values for use in Player attribute key-value pairs. This object lets you specify an attribute value using any of the valid data types: string, number, string array, or data map. Each AttributeValue object can use only one of the available properties.

" + "documentation":"

Values for use in player attribute key-value pairs. This object lets you specify an attribute value using any of the valid data types: string, number, string array, or data map. Each AttributeValue object can use only one of the available properties.

" }, "AutoScalingGroupArn":{ "type":"string", @@ -1726,7 +1883,7 @@ "documentation":"

Token used to associate a specific build ID with the files uploaded using these credentials.

" } }, - "documentation":"

Temporary access credentials used for uploading game build files to Amazon GameLift. They are valid for a limited time. If they expire before you upload your game build, get a new set by calling RequestUploadCredentials.

", + "documentation":"

Temporary access credentials used for uploading game build files to Amazon GameLift. They are valid for a limited time. If they expire before you upload your game build, get a new set by calling RequestUploadCredentials.

", "sensitive":true }, "BackfillMode":{ @@ -1754,15 +1911,15 @@ }, "BuildArn":{ "shape":"BuildArn", - "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift build resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::build/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. In a GameLift build ARN, the resource ID matches the BuildId value.

" + "documentation":"

The Amazon Resource Name (ARN) assigned to a GameLift build resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::build/build-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. In a GameLift build ARN, the resource ID matches the BuildId value.

" }, "Name":{ "shape":"FreeText", - "documentation":"

A descriptive label that is associated with a build. Build names do not need to be unique. It can be set using CreateBuild or UpdateBuild.

" + "documentation":"

A descriptive label associated with a build. Build names do not need to be unique. It can be set using CreateBuild or UpdateBuild.

" }, "Version":{ "shape":"FreeText", - "documentation":"

Version information that is associated with a build or script. Version strings do not need to be unique. This value can be set using CreateBuild or UpdateBuild.

" + "documentation":"

Version information associated with a build or script. Version strings do not need to be unique.

" }, "Status":{ "shape":"BuildStatus", @@ -1779,9 +1936,13 @@ "CreationTime":{ "shape":"Timestamp", "documentation":"

A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + }, + "ServerSdkVersion":{ + "shape":"ServerSdkVersion", + "documentation":"

The GameLift Server SDK version used to develop your game server.

" } }, - "documentation":"

Properties describing a custom game build.

Related actions

CreateBuild | ListBuilds | DescribeBuild | UpdateBuild | DeleteBuild | All APIs by task

" + "documentation":"

Properties describing a custom game build.

All APIs by task

" }, "BuildArn":{ "type":"string", @@ -1816,7 +1977,7 @@ "documentation":"

Indicates whether a TLS/SSL certificate is generated for a fleet.

Valid values include:

  • GENERATED - Generate a TLS/SSL certificate for this fleet.

  • DISABLED - (default) Do not generate a TLS/SSL certificate for this fleet.

" } }, - "documentation":"

Determines whether a TLS/SSL certificate is generated for a fleet. This feature must be enabled when creating the fleet. All instances in a fleet share the same certificate. The certificate can be retrieved by calling the GameLift Server SDK operation GetInstanceCertificate.

A fleet's certificate configuration is part of FleetAttributes.

" + "documentation":"

Determines whether a TLS/SSL certificate is generated for a fleet. This feature must be enabled when creating the fleet. All instances in a fleet share the same certificate. The certificate can be retrieved by calling the GameLift Server SDK operation GetInstanceCertificate.

" }, "CertificateType":{ "type":"string", @@ -1831,7 +1992,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group where the game server is running. Use either the GameServerGroup name or ARN value. If you are not specifying a game server to claim, this value identifies where you want GameLift FleetIQ to look for an available game server to claim.

" + "documentation":"

A unique identifier for the game server group where the game server is running. If you are not specifying a game server to claim, this value identifies where you want GameLift FleetIQ to look for an available game server to claim.

" }, "GameServerId":{ "shape":"GameServerId", @@ -1839,7 +2000,7 @@ }, "GameServerData":{ "shape":"GameServerData", - "documentation":"

A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using ListGameServers or ClaimGameServer.

" + "documentation":"

A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers.

" } } }, @@ -1861,12 +2022,107 @@ "LessThanOrEqualToThreshold" ] }, + "Compute":{ + "type":"structure", + "members":{ + "FleetId":{ + "shape":"FleetId", + "documentation":"

A unique identifier for the fleet that the compute is registered to.

" + }, + "FleetArn":{ + "shape":"FleetArn", + "documentation":"

The Amazon Resource Name (ARN) of the fleet that the compute is registered to.

" + }, + "ComputeName":{ + "shape":"ComputeName", + "documentation":"

A descriptive label that is associated with the compute resource registered to your fleet.

" + }, + "ComputeArn":{ + "shape":"ComputeArn", + "documentation":"

The ARN that is assigned to the compute resource and uniquely identifies it. ARNs are unique across locations.

" + }, + "IpAddress":{ + "shape":"IpAddress", + "documentation":"

The IP address of the compute resource. GameLift requires the DNS name or IP address to manage your compute resource.

" + }, + "DnsName":{ + "shape":"DnsName", + "documentation":"

The DNS name of the compute resource. GameLift requires the DNS name or IP address to manage your compute resource.

" + }, + "ComputeStatus":{ + "shape":"ComputeStatus", + "documentation":"

Current status of the compute. A compute must have an ACTIVE status to host game sessions.

" + }, + "Location":{ + "shape":"LocationStringModel", + "documentation":"

The name of the custom location you added to the fleet that this compute resource resides in.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + }, + "OperatingSystem":{ + "shape":"OperatingSystem", + "documentation":"

The type of operating system on your compute resource.

" + }, + "Type":{ + "shape":"EC2InstanceType", + "documentation":"

Which compute type that the fleet uses. A fleet can use Anywhere compute resources owned by you or managed Amazon EC2 instances.

" + }, + "GameLiftServiceSdkEndpoint":{ + "shape":"GameLiftServiceSdkEndpointOutput", + "documentation":"

The endpoint connection details of the GameLift SDK endpoint that your game server connects to.

" + } + }, + "documentation":"

Resources used to host your game servers. A compute resource can be managed GameLift Amazon EC2 instances or your own resources.

" + }, + "ComputeArn":{ + "type":"string", + "max":1024, + "pattern":"^arn:.*:compute\\/[a-zA-Z0-9\\-]+" + }, + "ComputeAuthToken":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z0-9\\-]+" + }, + "ComputeList":{ + "type":"list", + "member":{"shape":"Compute"} + }, + "ComputeName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[a-zA-Z0-9\\-]+" + }, + "ComputeNameOrArn":{ + "type":"string", + "max":1024, + "pattern":"[a-zA-Z0-9\\-]+|^arn:.*:compute\\/[a-zA-Z0-9\\-]+" + }, + "ComputeStatus":{ + "type":"string", + "enum":[ + "PENDING", + "ACTIVE", + "TERMINATING" + ] + }, + "ComputeType":{ + "type":"string", + "enum":[ + "EC2", + "ANYWHERE" + ] + }, "ConflictException":{ "type":"structure", "members":{ "Message":{"shape":"NonEmptyString"} }, - "documentation":"

The requested operation would cause a conflict with the current state of a service resource associated with the request. Resolve the conflict before retrying this request.

", + "documentation":"

The requested operation would cause a conflict with the current state of a service resource associated with the request. Resolve the conflict before retrying this request.

", "exception":true }, "CreateAliasInput":{ @@ -1890,10 +2146,9 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

A list of labels to assign to the new alias resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" + "documentation":"

A list of labels to assign to the new alias resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateAliasOutput":{ "type":"structure", @@ -1902,19 +2157,18 @@ "shape":"Alias", "documentation":"

The newly created alias resource.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreateBuildInput":{ "type":"structure", "members":{ "Name":{ "shape":"NonZeroAndMaxString", - "documentation":"

A descriptive label that is associated with a build. Build names do not need to be unique. You can use UpdateBuild to change this value later.

" + "documentation":"

A descriptive label associated with a build. Build names do not need to be unique. You can change this value later.

" }, "Version":{ "shape":"NonZeroAndMaxString", - "documentation":"

Version information that is associated with a build or script. Version strings do not need to be unique. You can use UpdateBuild to change this value later.

" + "documentation":"

Version information associated with a build or script. Version strings do not need to be unique. You can change this value later.

" }, "StorageLocation":{ "shape":"S3Location", @@ -1922,14 +2176,17 @@ }, "OperatingSystem":{ "shape":"OperatingSystem", - "documentation":"

The operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build. If your game build contains multiple executables, they all must run on the same operating system. If an operating system is not specified when creating a build, Amazon GameLift uses the default value (WINDOWS_2012). This value cannot be changed later.

" + "documentation":"

The operating system that you built the game server binaries to run on. This value determines the type of fleet resources that you can use for this build. If your game build contains multiple executables, they all must run on the same operating system. If an operating system is not specified when creating a build, GameLift uses the default value (WINDOWS_2012). This value cannot be changed later.

" }, "Tags":{ "shape":"TagList", - "documentation":"

A list of labels to assign to the new build resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" + "documentation":"

A list of labels to assign to the new build resource. Tags are developer defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" + }, + "ServerSdkVersion":{ + "shape":"ServerSdkVersion", + "documentation":"

A server SDK version you used when integrating your game server build with GameLift. For more information see Integrate games with custom game servers.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateBuildOutput":{ "type":"structure", @@ -1940,21 +2197,17 @@ }, "UploadCredentials":{ "shape":"AwsCredentials", - "documentation":"

This element is returned only when the operation is called without a storage location. It contains credentials to use when you are uploading a build file to an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these credentials, call RequestUploadCredentials.

" + "documentation":"

This element is returned only when the operation is called without a storage location. It contains credentials to use when you are uploading a build file to an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have a limited life span. To refresh these credentials, call RequestUploadCredentials.

" }, "StorageLocation":{ "shape":"S3Location", "documentation":"

Amazon S3 location for your game build file, including bucket name and key.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreateFleetInput":{ "type":"structure", - "required":[ - "Name", - "EC2InstanceType" - ], + "required":["Name"], "members":{ "Name":{ "shape":"NonZeroAndMaxString", @@ -1962,7 +2215,7 @@ }, "Description":{ "shape":"NonZeroAndMaxString", - "documentation":"

A human-readable description of the fleet.

" + "documentation":"

A description for the fleet.

" }, "BuildId":{ "shape":"BuildIdOrArn", @@ -1982,7 +2235,7 @@ }, "LogPaths":{ "shape":"StringList", - "documentation":"

This parameter is no longer used. To specify where GameLift should store log files once a server process shuts down, use the GameLift server API ProcessReady() and specify one or more directory paths in logParameters. See more information in the Server API Reference.

" + "documentation":"

This parameter is no longer used. To specify where GameLift should store log files once a server process shuts down, use the GameLift server API ProcessReady() and specify one or more directory paths in logParameters. For more information, see Initialize the server process in the GameLift Developer Guide.

" }, "EC2InstanceType":{ "shape":"EC2InstanceType", @@ -1994,7 +2247,7 @@ }, "NewGameSessionProtectionPolicy":{ "shape":"ProtectionPolicy", - "documentation":"

The status of termination protection for active game sessions on the fleet. By default, this property is set to NoProtection. You can also set game session protection for an individual game session by calling UpdateGameSession.

  • NoProtection - Game sessions can be terminated during active gameplay as a result of a scale-down event.

  • FullProtection - Game sessions in ACTIVE status cannot be terminated during a scale-down event.

" + "documentation":"

The status of termination protection for active game sessions on the fleet. By default, this property is set to NoProtection. You can also set game session protection for an individual game session by calling UpdateGameSession.

  • NoProtection - Game sessions can be terminated during active gameplay as a result of a scale-down event.

  • FullProtection - Game sessions in ACTIVE status cannot be terminated during a scale-down event.

" }, "RuntimeConfiguration":{ "shape":"RuntimeConfiguration", @@ -2014,7 +2267,7 @@ }, "PeerVpcId":{ "shape":"NonZeroAndMaxString", - "documentation":"

A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the VPC Dashboard in the Amazon Web Services Management Console. Learn more about VPC peering in VPC Peering with GameLift Fleets.

" + "documentation":"

A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the VPC Dashboard in the Amazon Web Services Management Console. Learn more about VPC peering in VPC Peering with GameLift Fleets.

" }, "FleetType":{ "shape":"FleetType", @@ -2026,7 +2279,7 @@ }, "CertificateConfiguration":{ "shape":"CertificateConfiguration", - "documentation":"

Prompts GameLift to generate a TLS/SSL certificate for the fleet. TLS certificates are used for encrypting traffic between game clients and the game servers that are running on GameLift. By default, the CertificateConfiguration is set to DISABLED. This property cannot be changed after the fleet is created.

Note: This feature requires the Amazon Web Services Certificate Manager (ACM) service, which is not available in all Amazon Web Services regions. When working in a region that does not support this feature, a fleet creation request with certificate generation fails with a 4xx error.

" + "documentation":"

Prompts GameLift to generate a TLS/SSL certificate for the fleet. GameLift uses the certificates to encrypt traffic between game clients and the game servers running on GameLift. By default, the CertificateConfiguration is DISABLED. You can't change this property after you create the fleet.

Certificate Manager (ACM) certificates expire after 13 months. Certificate expiration can cause fleets to fail, preventing players from connecting to instances in the fleet. We recommend you replace fleets before 13 months, consider using fleet aliases for a smooth transition.

ACM isn't available in all Amazon Web Services regions. A fleet creation request with certificate generation enabled in an unsupported Region, fails with a 4xx error. For more information about the supported Regions, see Supported Regions in the Certificate Manager User Guide.

" }, "Locations":{ "shape":"LocationConfigurationList", @@ -2034,10 +2287,17 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

A list of labels to assign to the new fleet resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the fleet is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" + "documentation":"

A list of labels to assign to the new fleet resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference.

" + }, + "ComputeType":{ + "shape":"ComputeType", + "documentation":"

The type of compute resource used to host your game servers. You can use your own compute resources with GameLift Anywhere or use Amazon EC2 instances with managed GameLift.

" + }, + "AnywhereConfiguration":{ + "shape":"AnywhereConfiguration", + "documentation":"

GameLift Anywhere configuration options.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateFleetLocationsInput":{ "type":"structure", @@ -2054,8 +2314,7 @@ "shape":"LocationConfigurationList", "documentation":"

A list of locations to deploy additional instances to and manage as part of the fleet. You can add any GameLift-supported Amazon Web Services Region as a remote location, in the form of an Amazon Web Services Region code such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateFleetLocationsOutput":{ "type":"structure", @@ -2072,8 +2331,7 @@ "shape":"LocationStateList", "documentation":"

The remote locations that are being added to the fleet, and the life-cycle status of each location. For new locations, the status is set to NEW. During location creation, GameLift updates each location's status as instances are deployed there and prepared for game hosting. This list does not include the fleet home Region or any remote locations that were already added to the fleet.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreateFleetOutput":{ "type":"structure", @@ -2086,8 +2344,7 @@ "shape":"LocationStateList", "documentation":"

The fleet's locations and life-cycle status of each location. For new fleets, the status of all locations is set to NEW. During fleet creation, GameLift updates each location status as instances are deployed there and prepared for game hosting. This list includes an entry for the fleet's home Region. For fleets with no remote locations, only one entry, representing the home Region, is returned.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreateGameServerGroupInput":{ "type":"structure", @@ -2142,7 +2399,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

A list of labels to assign to the new game server group resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management, and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags, respectively. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" + "documentation":"

A list of labels to assign to the new game server group resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management, and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference.

" } } }, @@ -2177,7 +2434,7 @@ }, "GameProperties":{ "shape":"GamePropertyList", - "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session).

" + "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process with a request to start a new game session (see Start a Game Session).

" }, "CreatorId":{ "shape":"NonZeroAndMaxString", @@ -2185,7 +2442,7 @@ }, "GameSessionId":{ "shape":"IdStringModel", - "documentation":"

This parameter is no longer preferred. Please use IdempotencyToken instead. Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID.

" + "documentation":"

This parameter is deprecated. Use IdempotencyToken instead.

Custom string that uniquely identifies a request for a new game session. Maximum token length is 48 characters. If provided, this string is included in the new game session's ID.

" }, "IdempotencyToken":{ "shape":"IdStringModel", @@ -2193,14 +2450,13 @@ }, "GameSessionData":{ "shape":"LargeGameSessionData", - "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session).

" + "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session).

" }, "Location":{ "shape":"LocationStringModel", "documentation":"

A fleet's remote location to place the new game session in. If this parameter is not set, the new game session is placed in the fleet's home Region. Specify a remote location with an Amazon Web Services Region code such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateGameSessionOutput":{ "type":"structure", @@ -2209,8 +2465,7 @@ "shape":"GameSession", "documentation":"

Object that describes the newly created game session record.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreateGameSessionQueueInput":{ "type":"structure", @@ -2242,7 +2497,7 @@ }, "CustomEventData":{ "shape":"QueueCustomEventData", - "documentation":"

Information to be added to all events that are related to this game session queue.

" + "documentation":"

Information to be added to all events that are related to this game session queue.

" }, "NotificationTarget":{ "shape":"QueueSnsArnStringModel", @@ -2250,10 +2505,9 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

A list of labels to assign to the new game session queue resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" + "documentation":"

A list of labels to assign to the new game session queue resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateGameSessionQueueOutput":{ "type":"structure", @@ -2262,8 +2516,30 @@ "shape":"GameSessionQueue", "documentation":"

An object that describes the newly created game session queue.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } + }, + "CreateLocationInput":{ + "type":"structure", + "required":["LocationName"], + "members":{ + "LocationName":{ + "shape":"CustomInputLocationStringModel", + "documentation":"

A descriptive name for the custom location.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

A list of labels to assign to the new matchmaking configuration resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Rareference.

" + } + } + }, + "CreateLocationOutput":{ + "type":"structure", + "members":{ + "Location":{ + "shape":"LocationModel", + "documentation":"

The details of the custom location you created.

" + } + } }, "CreateMatchmakingConfigurationInput":{ "type":"structure", @@ -2316,15 +2592,15 @@ }, "GameProperties":{ "shape":"GamePropertyList", - "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used if FlexMatchMode is set to STANDALONE.

" + "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used if FlexMatchMode is set to STANDALONE.

" }, "GameSessionData":{ "shape":"GameSessionData", - "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used if FlexMatchMode is set to STANDALONE.

" + "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used if FlexMatchMode is set to STANDALONE.

" }, "BackfillMode":{ "shape":"BackfillMode", - "documentation":"

The method used to backfill game sessions that are created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a StartMatchBackfill request whenever a game session has one or more open slots. Learn more about manual and automatic backfill in Backfill Existing Games with FlexMatch. Automatic backfill is not available when FlexMatchMode is set to STANDALONE.

" + "documentation":"

The method used to backfill game sessions that are created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a backfill request whenever a game session has one or more open slots. Learn more about manual and automatic backfill in Backfill Existing Games with FlexMatch. Automatic backfill is not available when FlexMatchMode is set to STANDALONE.

" }, "FlexMatchMode":{ "shape":"FlexMatchMode", @@ -2332,10 +2608,9 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

A list of labels to assign to the new matchmaking configuration resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" + "documentation":"

A list of labels to assign to the new matchmaking configuration resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateMatchmakingConfigurationOutput":{ "type":"structure", @@ -2344,8 +2619,7 @@ "shape":"MatchmakingConfiguration", "documentation":"

Object that describes the newly created matchmaking configuration.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreateMatchmakingRuleSetInput":{ "type":"structure", @@ -2364,10 +2638,9 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

A list of labels to assign to the new matchmaking rule set resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" + "documentation":"

A list of labels to assign to the new matchmaking rule set resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateMatchmakingRuleSetOutput":{ "type":"structure", @@ -2377,8 +2650,7 @@ "shape":"MatchmakingRuleSet", "documentation":"

The newly created matchmaking rule set.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreatePlayerSessionInput":{ "type":"structure", @@ -2399,8 +2671,7 @@ "shape":"PlayerData", "documentation":"

Developer-defined information related to a player. GameLift does not use this data, so it can be formatted as needed for use in the game.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreatePlayerSessionOutput":{ "type":"structure", @@ -2409,8 +2680,7 @@ "shape":"PlayerSession", "documentation":"

Object that describes the newly created player session record.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreatePlayerSessionsInput":{ "type":"structure", @@ -2431,8 +2701,7 @@ "shape":"PlayerDataMap", "documentation":"

Map of string pairs, each specifying a player ID and a set of developer-defined information related to the player. Amazon GameLift does not use this data, so it can be formatted as needed for use in the game. Any player data strings for player IDs that are not included in the PlayerIds parameter are ignored.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreatePlayerSessionsOutput":{ "type":"structure", @@ -2441,19 +2710,18 @@ "shape":"PlayerSessionList", "documentation":"

A collection of player session objects created for the added players.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreateScriptInput":{ "type":"structure", "members":{ "Name":{ "shape":"NonZeroAndMaxString", - "documentation":"

A descriptive label that is associated with a script. Script names do not need to be unique. You can use UpdateScript to change this value later.

" + "documentation":"

A descriptive label that is associated with a script. Script names do not need to be unique. You can use UpdateScript to change this value later.

" }, "Version":{ "shape":"NonZeroAndMaxString", - "documentation":"

Version information that is associated with a build or script. Version strings do not need to be unique. You can use UpdateScript to change this value later.

" + "documentation":"

Version information associated with a build or script. Version strings do not need to be unique. You can use UpdateScript to change this value later.

" }, "StorageLocation":{ "shape":"S3Location", @@ -2465,7 +2733,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

A list of labels to assign to the new script resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" + "documentation":"

A list of labels to assign to the new script resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see Tagging Amazon Web Services Resources in the Amazon Web Services General Reference. Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for actual tagging limits.

" } } }, @@ -2493,8 +2761,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the VPC Dashboard in the Amazon Web Services Management Console. Learn more about VPC peering in VPC Peering with GameLift Fleets.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateVpcPeeringAuthorizationOutput":{ "type":"structure", @@ -2503,8 +2770,7 @@ "shape":"VpcPeeringAuthorization", "documentation":"

Details on the requested VPC peering authorization, including expiration.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "CreateVpcPeeringConnectionInput":{ "type":"structure", @@ -2526,8 +2792,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the VPC Dashboard in the Amazon Web Services Management Console. Learn more about VPC peering in VPC Peering with GameLift Fleets.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "CreateVpcPeeringConnectionOutput":{ "type":"structure", @@ -2539,6 +2804,18 @@ "max":256, "min":0 }, + "CustomInputLocationStringModel":{ + "type":"string", + "max":64, + "min":8, + "pattern":"^custom-[A-Za-z0-9\\-]+" + }, + "CustomLocationNameOrArnModel":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^custom-[A-Za-z0-9\\-]+|^arn:.*:location\\/custom-\\S+" + }, "DeleteAliasInput":{ "type":"structure", "required":["AliasId"], @@ -2547,8 +2824,7 @@ "shape":"AliasIdOrArn", "documentation":"

A unique identifier of the alias that you want to delete. You can use either the alias ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteBuildInput":{ "type":"structure", @@ -2558,8 +2834,7 @@ "shape":"BuildIdOrArn", "documentation":"

A unique identifier for the build to delete. You can use either the build ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteFleetInput":{ "type":"structure", @@ -2569,8 +2844,7 @@ "shape":"FleetIdOrArn", "documentation":"

A unique identifier for the fleet to be deleted. You can use either the fleet ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteFleetLocationsInput":{ "type":"structure", @@ -2587,8 +2861,7 @@ "shape":"LocationList", "documentation":"

The list of fleet locations to delete. Specify locations in the form of an Amazon Web Services Region code, such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteFleetLocationsOutput":{ "type":"structure", @@ -2605,8 +2878,7 @@ "shape":"LocationStateList", "documentation":"

The remote locations that are being deleted, with each location status set to DELETING.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DeleteGameServerGroupInput":{ "type":"structure", @@ -2614,7 +2886,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group. Use either the name or ARN value.

" }, "DeleteOption":{ "shape":"GameServerGroupDeleteOption", @@ -2639,14 +2911,28 @@ "shape":"GameSessionQueueNameOrArn", "documentation":"

A descriptive label that is associated with game session queue. Queue names must be unique within each Region. You can use either the queue ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteGameSessionQueueOutput":{ "type":"structure", "members":{ } }, + "DeleteLocationInput":{ + "type":"structure", + "required":["LocationName"], + "members":{ + "LocationName":{ + "shape":"CustomLocationNameOrArnModel", + "documentation":"

The location name of the custom location to be deleted.

" + } + } + }, + "DeleteLocationOutput":{ + "type":"structure", + "members":{ + } + }, "DeleteMatchmakingConfigurationInput":{ "type":"structure", "required":["Name"], @@ -2655,8 +2941,7 @@ "shape":"MatchmakingConfigurationName", "documentation":"

A unique identifier for the matchmaking configuration. You can use either the configuration name or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteMatchmakingConfigurationOutput":{ "type":"structure", @@ -2671,14 +2956,12 @@ "shape":"MatchmakingRuleSetName", "documentation":"

A unique identifier for the matchmaking rule set to be deleted. (Note: The rule set name is different from the optional \"name\" field in the rule set body.) You can use either the rule set name or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteMatchmakingRuleSetOutput":{ "type":"structure", "members":{ - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DeleteScalingPolicyInput":{ "type":"structure", @@ -2695,8 +2978,7 @@ "shape":"FleetIdOrArn", "documentation":"

A unique identifier for the fleet to be deleted. You can use either the fleet ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteScriptInput":{ "type":"structure", @@ -2723,8 +3005,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A unique identifier for a VPC with resources to be accessed by your GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the VPC Dashboard in the Amazon Web Services Management Console. Learn more about VPC peering in VPC Peering with GameLift Fleets.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteVpcPeeringAuthorizationOutput":{ "type":"structure", @@ -2744,16 +3025,37 @@ }, "VpcPeeringConnectionId":{ "shape":"NonZeroAndMaxString", - "documentation":"

A unique identifier for a VPC peering connection. This value is included in the VpcPeeringConnection object, which can be retrieved by calling DescribeVpcPeeringConnections.

" + "documentation":"

A unique identifier for a VPC peering connection.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DeleteVpcPeeringConnectionOutput":{ "type":"structure", "members":{ } }, + "DeregisterComputeInput":{ + "type":"structure", + "required":[ + "FleetId", + "ComputeName" + ], + "members":{ + "FleetId":{ + "shape":"FleetIdOrArn", + "documentation":"

>A unique identifier for the fleet the compute resource is registered to.

" + }, + "ComputeName":{ + "shape":"ComputeNameOrArn", + "documentation":"

The name of the compute resource you want to delete.

" + } + } + }, + "DeregisterComputeOutput":{ + "type":"structure", + "members":{ + } + }, "DeregisterGameServerInput":{ "type":"structure", "required":[ @@ -2763,7 +3065,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group where the game server is running. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group where the game server is running.

" }, "GameServerId":{ "shape":"GameServerId", @@ -2779,8 +3081,7 @@ "shape":"AliasIdOrArn", "documentation":"

The unique identifier for the fleet alias that you want to retrieve. You can use either the alias ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeAliasOutput":{ "type":"structure", @@ -2789,8 +3090,7 @@ "shape":"Alias", "documentation":"

The requested alias resource.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeBuildInput":{ "type":"structure", @@ -2800,8 +3100,7 @@ "shape":"BuildIdOrArn", "documentation":"

A unique identifier for the build to retrieve properties for. You can use either the build ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeBuildOutput":{ "type":"structure", @@ -2810,8 +3109,33 @@ "shape":"Build", "documentation":"

Set of properties describing the requested build.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } + }, + "DescribeComputeInput":{ + "type":"structure", + "required":[ + "FleetId", + "ComputeName" + ], + "members":{ + "FleetId":{ + "shape":"FleetIdOrArn", + "documentation":"

A unique identifier for the fleet the compute is registered to.

" + }, + "ComputeName":{ + "shape":"ComputeNameOrArn", + "documentation":"

A descriptive label that is associated with the compute resource registered to your fleet.

" + } + } + }, + "DescribeComputeOutput":{ + "type":"structure", + "members":{ + "Compute":{ + "shape":"Compute", + "documentation":"

The details of the compute resource you registered to the specified fleet.

" + } + } }, "DescribeEC2InstanceLimitsInput":{ "type":"structure", @@ -2824,8 +3148,7 @@ "shape":"LocationStringModel", "documentation":"

The name of a remote location to request instance limits for, in the form of an Amazon Web Services Region code such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeEC2InstanceLimitsOutput":{ "type":"structure", @@ -2834,8 +3157,7 @@ "shape":"EC2InstanceLimitList", "documentation":"

The maximum number of instances for the specified instance type.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeFleetAttributesInput":{ "type":"structure", @@ -2852,8 +3174,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeFleetAttributesOutput":{ "type":"structure", @@ -2866,15 +3187,14 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeFleetCapacityInput":{ "type":"structure", "members":{ "FleetIds":{ "shape":"FleetIdOrArnList", - "documentation":"

A unique identifier for the fleet(s) to retrieve capacity information for. You can use either the fleet ID or ARN value. Leave this parameter empty to retrieve capacity information for all fleets.

" + "documentation":"

A unique identifier for the fleet to retrieve capacity information for. You can use either the fleet ID or ARN value. Leave this parameter empty to retrieve capacity information for all fleets.

" }, "Limit":{ "shape":"PositiveInteger", @@ -2884,8 +3204,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeFleetCapacityOutput":{ "type":"structure", @@ -2898,8 +3217,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeFleetEventsInput":{ "type":"structure", @@ -2925,8 +3243,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeFleetEventsOutput":{ "type":"structure", @@ -2939,8 +3256,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeFleetLocationAttributesInput":{ "type":"structure", @@ -2956,14 +3272,13 @@ }, "Limit":{ "shape":"PositiveInteger", - "documentation":"

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. This limit is not currently enforced.

" + "documentation":"

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages. This limit is not currently enforced.

" }, "NextToken":{ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeFleetLocationAttributesOutput":{ "type":"structure", @@ -2974,18 +3289,17 @@ }, "FleetArn":{ "shape":"FleetArn", - "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" + "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" }, "LocationAttributes":{ "shape":"LocationAttributesList", - "documentation":"

Location-specific information on the requested fleet's remote locations.

" + "documentation":"

Location-specific information on the requested fleet's remote locations.

" }, "NextToken":{ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeFleetLocationCapacityInput":{ "type":"structure", @@ -3002,8 +3316,7 @@ "shape":"LocationStringModel", "documentation":"

The fleet location to retrieve capacity information for. Specify a location in the form of an Amazon Web Services Region code, such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeFleetLocationCapacityOutput":{ "type":"structure", @@ -3012,8 +3325,7 @@ "shape":"FleetCapacity", "documentation":"

Resource capacity information for the requested fleet location. Capacity objects are returned only for fleets and locations that currently exist.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeFleetLocationUtilizationInput":{ "type":"structure", @@ -3030,8 +3342,7 @@ "shape":"LocationStringModel", "documentation":"

The fleet location to retrieve utilization information for. Specify a location in the form of an Amazon Web Services Region code, such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeFleetLocationUtilizationOutput":{ "type":"structure", @@ -3040,8 +3351,7 @@ "shape":"FleetUtilization", "documentation":"

Utilization information for the requested fleet location. Utilization objects are returned only for fleets and locations that currently exist.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeFleetPortSettingsInput":{ "type":"structure", @@ -3055,8 +3365,7 @@ "shape":"LocationStringModel", "documentation":"

A remote location to check for status of port setting updates. Use the Amazon Web Services Region code format, such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeFleetPortSettingsOutput":{ "type":"structure", @@ -3081,15 +3390,14 @@ "shape":"LocationStringModel", "documentation":"

The requested fleet location, expressed as an Amazon Web Services Region code, such as us-west-2.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeFleetUtilizationInput":{ "type":"structure", "members":{ "FleetIds":{ "shape":"FleetIdOrArnList", - "documentation":"

A unique identifier for the fleet(s) to retrieve utilization data for. You can use either the fleet ID or ARN value. To retrieve attributes for all current fleets, do not include this parameter.

" + "documentation":"

A unique identifier for the fleet to retrieve utilization data for. You can use either the fleet ID or ARN value. To retrieve attributes for all current fleets, do not include this parameter.

" }, "Limit":{ "shape":"PositiveInteger", @@ -3099,8 +3407,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. This parameter is ignored when the request specifies one or a list of fleet IDs.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeFleetUtilizationOutput":{ "type":"structure", @@ -3113,8 +3420,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeGameServerGroupInput":{ "type":"structure", @@ -3122,7 +3428,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group. Use either the name or ARN value.

" } } }, @@ -3144,7 +3450,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group where the game server is running. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group where the game server is running.

" }, "GameServerId":{ "shape":"GameServerId", @@ -3158,7 +3464,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group. Use either the name or ARN value.

" }, "InstanceIds":{ "shape":"GameServerInstanceIds", @@ -3166,11 +3472,11 @@ }, "Limit":{ "shape":"PositiveInteger", - "documentation":"

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" + "documentation":"

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" }, "NextToken":{ "shape":"NonZeroAndMaxString", - "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" + "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } } }, @@ -3179,11 +3485,11 @@ "members":{ "GameServerInstances":{ "shape":"GameServerInstances", - "documentation":"

The collection of requested game server instances.

" + "documentation":"

The collection of requested game server instances.

" }, "NextToken":{ "shape":"NonZeroAndMaxString", - "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" + "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } } }, @@ -3213,7 +3519,7 @@ }, "Location":{ "shape":"LocationStringModel", - "documentation":"

A fleet location to get game sessions for. You can specify a fleet's home Region or a remote location. Use the Amazon Web Services Region code format, such as us-west-2.

" + "documentation":"

A fleet location to get game session details for. You can specify a fleet's home Region or a remote location. Use the Amazon Web Services Region code format, such as us-west-2.

" }, "StatusFilter":{ "shape":"NonZeroAndMaxString", @@ -3227,8 +3533,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeGameSessionDetailsOutput":{ "type":"structure", @@ -3241,8 +3546,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeGameSessionPlacementInput":{ "type":"structure", @@ -3252,8 +3556,7 @@ "shape":"IdStringModel", "documentation":"

A unique identifier for a game session placement to retrieve.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeGameSessionPlacementOutput":{ "type":"structure", @@ -3262,8 +3565,7 @@ "shape":"GameSessionPlacement", "documentation":"

Object that describes the requested game session placement.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeGameSessionQueuesInput":{ "type":"structure", @@ -3280,8 +3582,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeGameSessionQueuesOutput":{ "type":"structure", @@ -3294,8 +3595,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeGameSessionsInput":{ "type":"structure", @@ -3314,7 +3614,7 @@ }, "Location":{ "shape":"LocationStringModel", - "documentation":"

A fleet location to get game session details for. You can specify a fleet's home Region or a remote location. Use the Amazon Web Services Region code format, such as us-west-2.

" + "documentation":"

A fleet location to get game sessions for. You can specify a fleet's home Region or a remote location. Use the Amazon Web Services Region code format, such as us-west-2.

" }, "StatusFilter":{ "shape":"NonZeroAndMaxString", @@ -3328,8 +3628,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeGameSessionsOutput":{ "type":"structure", @@ -3342,8 +3641,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeInstancesInput":{ "type":"structure", @@ -3369,8 +3667,7 @@ "shape":"LocationStringModel", "documentation":"

The name of a location to retrieve instance information for, in the form of an Amazon Web Services Region code such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeInstancesOutput":{ "type":"structure", @@ -3383,8 +3680,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeMatchmakingConfigurationsInput":{ "type":"structure", @@ -3405,8 +3701,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeMatchmakingConfigurationsOutput":{ "type":"structure", @@ -3419,8 +3714,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeMatchmakingInput":{ "type":"structure", @@ -3430,8 +3724,7 @@ "shape":"MatchmakingIdList", "documentation":"

A unique identifier for a matchmaking ticket. You can include up to 10 ID values.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeMatchmakingOutput":{ "type":"structure", @@ -3440,8 +3733,7 @@ "shape":"MatchmakingTicketList", "documentation":"

A collection of existing matchmaking ticket objects matching the request.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeMatchmakingRuleSetsInput":{ "type":"structure", @@ -3458,8 +3750,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeMatchmakingRuleSetsOutput":{ "type":"structure", @@ -3473,8 +3764,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribePlayerSessionsInput":{ "type":"structure", @@ -3493,7 +3783,7 @@ }, "PlayerSessionStatusFilter":{ "shape":"NonZeroAndMaxString", - "documentation":"

Player session status to filter results on.

Possible player session statuses include the following:

  • RESERVED -- The player session request has been received, but the player has not yet connected to the server process and/or been validated.

  • ACTIVE -- The player has been validated by the server process and is currently connected.

  • COMPLETED -- The player connection has been dropped.

  • TIMEDOUT -- A player session request was received, but the player did not connect and/or was not validated within the timeout limit (60 seconds).

" + "documentation":"

Player session status to filter results on. Note that when a PlayerSessionId or PlayerId is provided in a DescribePlayerSessions request, then the PlayerSessionStatusFilter has no effect on the response.

Possible player session statuses include the following:

  • RESERVED -- The player session request has been received, but the player has not yet connected to the server process and/or been validated.

  • ACTIVE -- The player has been validated by the server process and is currently connected.

  • COMPLETED -- The player connection has been dropped.

  • TIMEDOUT -- A player session request was received, but the player did not connect and/or was not validated within the timeout limit (60 seconds).

" }, "Limit":{ "shape":"PositiveInteger", @@ -3503,8 +3793,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value. If a player session ID is specified, this parameter is ignored.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribePlayerSessionsOutput":{ "type":"structure", @@ -3517,8 +3806,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeRuntimeConfigurationInput":{ "type":"structure", @@ -3528,8 +3816,7 @@ "shape":"FleetIdOrArn", "documentation":"

A unique identifier for the fleet to get the runtime configuration for. You can use either the fleet ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeRuntimeConfigurationOutput":{ "type":"structure", @@ -3538,8 +3825,7 @@ "shape":"RuntimeConfiguration", "documentation":"

Instructions that describe how server processes should be launched and maintained on each instance in the fleet.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeScalingPoliciesInput":{ "type":"structure", @@ -3565,8 +3851,7 @@ "shape":"LocationStringModel", "documentation":"

The fleet location. If you don't specify this value, the response contains the scaling policies of every location in the fleet.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeScalingPoliciesOutput":{ "type":"structure", @@ -3579,8 +3864,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DescribeScriptInput":{ "type":"structure", @@ -3622,8 +3906,7 @@ "shape":"FleetId", "documentation":"

A unique identifier for the fleet. You can use either the fleet ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "DescribeVpcPeeringConnectionsOutput":{ "type":"structure", @@ -3632,8 +3915,7 @@ "shape":"VpcPeeringConnectionList", "documentation":"

A collection of VPC peering connection records that match the request.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "DesiredPlayerSession":{ "type":"structure", @@ -3647,13 +3929,19 @@ "documentation":"

Developer-defined information related to a player. GameLift does not use this data, so it can be formatted as needed for use in the game.

" } }, - "documentation":"

Player information for use when creating player sessions using a game session placement request with StartGameSessionPlacement.

" + "documentation":"

Player information for use when creating player sessions using a game session placement request.

" }, "DesiredPlayerSessionList":{ "type":"list", "member":{"shape":"DesiredPlayerSession"} }, "DnsName":{"type":"string"}, + "DnsNameInput":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[0-9a-zA-Z_\\-\\.]+" + }, "Double":{"type":"double"}, "DoubleObject":{"type":"double"}, "EC2InstanceCounts":{ @@ -3688,7 +3976,7 @@ "documentation":"

Number of instances that are no longer active but haven't yet been terminated.

" } }, - "documentation":"

Resource capacity settings. Fleet capacity is measured in Amazon EC2 instances. Pending and terminating counts are non-zero when the fleet capacity is adjusting to a scaling event or if access to resources is temporarily affected.

EC2 instance counts are part of FleetCapacity.

" + "documentation":"

Resource capacity settings. Fleet capacity is measured in Amazon EC2 instances. Pending and terminating counts are non-zero when the fleet capacity is adjusting to a scaling event or if access to resources is temporarily affected.

" }, "EC2InstanceLimit":{ "type":"structure", @@ -3710,7 +3998,7 @@ "documentation":"

An Amazon Web Services Region code, such as us-west-2.

" } }, - "documentation":"

The GameLift service limits for an Amazon EC2 instance type and current utilization. GameLift allows Amazon Web Services accounts a maximum number of instances, per instance type, per Amazon Web Services Region or location, for use with GameLift. You can request an limit increase for your account by using the Service limits page in the GameLift console.

Related actions

DescribeEC2InstanceLimits

" + "documentation":"

The GameLift service limits for an Amazon EC2 instance type and current utilization. GameLift allows Amazon Web Services accounts a maximum number of instances, per instance type, per Amazon Web Services Region or location, for use with GameLift. You can request an limit increase for your account by using the Service limits page in the GameLift console.

" }, "EC2InstanceLimitList":{ "type":"list", @@ -3800,7 +4088,39 @@ "m5a.8xlarge", "m5a.12xlarge", "m5a.16xlarge", - "m5a.24xlarge" + "m5a.24xlarge", + "c5d.large", + "c5d.xlarge", + "c5d.2xlarge", + "c5d.4xlarge", + "c5d.9xlarge", + "c5d.12xlarge", + "c5d.18xlarge", + "c5d.24xlarge", + "c6a.large", + "c6a.xlarge", + "c6a.2xlarge", + "c6a.4xlarge", + "c6a.8xlarge", + "c6a.12xlarge", + "c6a.16xlarge", + "c6a.24xlarge", + "c6i.large", + "c6i.xlarge", + "c6i.2xlarge", + "c6i.4xlarge", + "c6i.8xlarge", + "c6i.12xlarge", + "c6i.16xlarge", + "c6i.24xlarge", + "r5d.large", + "r5d.xlarge", + "r5d.2xlarge", + "r5d.4xlarge", + "r5d.8xlarge", + "r5d.12xlarge", + "r5d.16xlarge", + "r5d.24xlarge" ] }, "Event":{ @@ -3816,7 +4136,7 @@ }, "EventCode":{ "shape":"EventCode", - "documentation":"

The type of event being logged.

Fleet state transition events:

  • FLEET_CREATED -- A fleet resource was successfully created with a status of NEW. Event messaging includes the fleet ID.

  • FLEET_STATE_DOWNLOADING -- Fleet status changed from NEW to DOWNLOADING. The compressed build has started downloading to a fleet instance for installation.

  • FLEET_STATE_VALIDATING -- Fleet status changed from DOWNLOADING to VALIDATING. GameLift has successfully downloaded the build and is now validating the build files.

  • FLEET_STATE_BUILDING -- Fleet status changed from VALIDATING to BUILDING. GameLift has successfully verified the build files and is now running the installation scripts.

  • FLEET_STATE_ACTIVATING -- Fleet status changed from BUILDING to ACTIVATING. GameLift is trying to launch an instance and test the connectivity between the build and the GameLift Service via the Server SDK.

  • FLEET_STATE_ACTIVE -- The fleet's status changed from ACTIVATING to ACTIVE. The fleet is now ready to host game sessions.

  • FLEET_STATE_ERROR -- The Fleet's status changed to ERROR. Describe the fleet event message for more details.

Fleet creation events (ordered by fleet creation activity):

  • FLEET_BINARY_DOWNLOAD_FAILED -- The build failed to download to the fleet instance.

  • FLEET_CREATION_EXTRACTING_BUILD -- The game server build was successfully downloaded to an instance, and the build files are now being extracted from the uploaded build and saved to an instance. Failure at this stage prevents a fleet from moving to ACTIVE status. Logs for this stage display a list of the files that are extracted and saved on the instance. Access the logs by using the URL in PreSignedLogUrl.

  • FLEET_CREATION_RUNNING_INSTALLER -- The game server build files were successfully extracted, and the GameLift is now running the build's install script (if one is included). Failure in this stage prevents a fleet from moving to ACTIVE status. Logs for this stage list the installation steps and whether or not the install completed successfully. Access the logs by using the URL in PreSignedLogUrl.

  • FLEET_CREATION_VALIDATING_RUNTIME_CONFIG -- The build process was successful, and the GameLift is now verifying that the game server launch paths, which are specified in the fleet's runtime configuration, exist. If any listed launch path exists, GameLift tries to launch a game server process and waits for the process to report ready. Failures in this stage prevent a fleet from moving to ACTIVE status. Logs for this stage list the launch paths in the runtime configuration and indicate whether each is found. Access the logs by using the URL in PreSignedLogUrl.

  • FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the runtime configuration failed because the executable specified in a launch path does not exist on the instance.

  • FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the runtime configuration failed because the executable specified in a launch path failed to run on the fleet instance.

  • FLEET_VALIDATION_TIMED_OUT -- Validation of the fleet at the end of creation timed out. Try fleet creation again.

  • FLEET_ACTIVATION_FAILED -- The fleet failed to successfully complete one of the steps in the fleet activation process. This event code indicates that the game build was successfully downloaded to a fleet instance, built, and validated, but was not able to start a server process. For more information, see Debug Fleet Creation Issues.

  • FLEET_ACTIVATION_FAILED_NO_INSTANCES -- Fleet creation was not able to obtain any instances based on the input fleet attributes. Try again at a different time or choose a different combination of fleet attributes such as fleet type, instance type, etc.

  • FLEET_INITIALIZATION_FAILED -- A generic exception occurred during fleet creation. Describe the fleet event message for more details.

VPC peering events:

  • FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been established between the VPC for an GameLift fleet and a VPC in your Amazon Web Services account.

  • FLEET_VPC_PEERING_FAILED -- A requested VPC peering connection has failed. Event details and status information (see DescribeVpcPeeringConnections) provide additional detail. A common reason for peering failure is that the two VPCs have overlapping CIDR blocks of IPv4 addresses. To resolve this, change the CIDR block for the VPC in your Amazon Web Services account. For more information on VPC peering failures, see https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html

  • FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been successfully deleted.

Spot instance events:

  • INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a two-minute notification.

Spot process events:

  • SERVER_PROCESS_INVALID_PATH -- The game server executable or script could not be found based on the Fleet runtime configuration. Check that the launch path is correct based on the operating system of the Fleet.

  • SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT -- The server process did not call InitSDK() within the time expected. Check your game session log to see why InitSDK() was not called in time.

  • SERVER_PROCESS_PROCESS_READY_TIMEOUT -- The server process did not call ProcessReady() within the time expected after calling InitSDK(). Check your game session log to see why ProcessReady() was not called in time.

  • SERVER_PROCESS_CRASHED -- The server process exited without calling ProcessEnding(). Check your game session log to see why ProcessEnding() was not called.

  • SERVER_PROCESS_TERMINATED_UNHEALTHY -- The server process did not report a valid health check for too long and was therefore terminated by GameLift. Check your game session log to see if the thread became stuck processing a synchronous task for too long.

  • SERVER_PROCESS_FORCE_TERMINATED -- The server process did not exit cleanly after OnProcessTerminate() was sent within the time expected. Check your game session log to see why termination took longer than expected.

  • SERVER_PROCESS_PROCESS_EXIT_TIMEOUT -- The server process did not exit cleanly within the time expected after calling ProcessEnding(). Check your game session log to see why termination took longer than expected.

Game session events:

  • GAME_SESSION_ACTIVATION_TIMEOUT -- GameSession failed to activate within the expected time. Check your game session log to see why ActivateGameSession() took longer to complete than expected.

Other fleet events:

  • FLEET_SCALING_EVENT -- A change was made to the fleet's capacity settings (desired instances, minimum/maximum scaling limits). Event messaging includes the new capacity settings.

  • FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made to the fleet's game session protection policy setting. Event messaging includes both the old and new policy setting.

  • FLEET_DELETED -- A request to delete a fleet was initiated.

  • GENERIC_EVENT -- An unspecified event has occurred.

" + "documentation":"

The type of event being logged.

Fleet state transition events:

  • FLEET_CREATED -- A fleet resource was successfully created with a status of NEW. Event messaging includes the fleet ID.

  • FLEET_STATE_DOWNLOADING -- Fleet status changed from NEW to DOWNLOADING. The compressed build has started downloading to a fleet instance for installation.

  • FLEET_STATE_VALIDATING -- Fleet status changed from DOWNLOADING to VALIDATING. GameLift has successfully downloaded the build and is now validating the build files.

  • FLEET_STATE_BUILDING -- Fleet status changed from VALIDATING to BUILDING. GameLift has successfully verified the build files and is now running the installation scripts.

  • FLEET_STATE_ACTIVATING -- Fleet status changed from BUILDING to ACTIVATING. GameLift is trying to launch an instance and test the connectivity between the build and the GameLift Service via the Server SDK.

  • FLEET_STATE_ACTIVE -- The fleet's status changed from ACTIVATING to ACTIVE. The fleet is now ready to host game sessions.

  • FLEET_STATE_ERROR -- The Fleet's status changed to ERROR. Describe the fleet event message for more details.

Fleet creation events (ordered by fleet creation activity):

  • FLEET_BINARY_DOWNLOAD_FAILED -- The build failed to download to the fleet instance.

  • FLEET_CREATION_EXTRACTING_BUILD -- The game server build was successfully downloaded to an instance, and the build files are now being extracted from the uploaded build and saved to an instance. Failure at this stage prevents a fleet from moving to ACTIVE status. Logs for this stage display a list of the files that are extracted and saved on the instance. Access the logs by using the URL in PreSignedLogUrl.

  • FLEET_CREATION_RUNNING_INSTALLER -- The game server build files were successfully extracted, and the GameLift is now running the build's install script (if one is included). Failure in this stage prevents a fleet from moving to ACTIVE status. Logs for this stage list the installation steps and whether or not the install completed successfully. Access the logs by using the URL in PreSignedLogUrl.

  • FLEET_CREATION_VALIDATING_RUNTIME_CONFIG -- The build process was successful, and the GameLift is now verifying that the game server launch paths, which are specified in the fleet's runtime configuration, exist. If any listed launch path exists, GameLift tries to launch a game server process and waits for the process to report ready. Failures in this stage prevent a fleet from moving to ACTIVE status. Logs for this stage list the launch paths in the runtime configuration and indicate whether each is found. Access the logs by using the URL in PreSignedLogUrl.

  • FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the runtime configuration failed because the executable specified in a launch path does not exist on the instance.

  • FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the runtime configuration failed because the executable specified in a launch path failed to run on the fleet instance.

  • FLEET_VALIDATION_TIMED_OUT -- Validation of the fleet at the end of creation timed out. Try fleet creation again.

  • FLEET_ACTIVATION_FAILED -- The fleet failed to successfully complete one of the steps in the fleet activation process. This event code indicates that the game build was successfully downloaded to a fleet instance, built, and validated, but was not able to start a server process. For more information, see Debug Fleet Creation Issues.

  • FLEET_ACTIVATION_FAILED_NO_INSTANCES -- Fleet creation was not able to obtain any instances based on the input fleet attributes. Try again at a different time or choose a different combination of fleet attributes such as fleet type, instance type, etc.

  • FLEET_INITIALIZATION_FAILED -- A generic exception occurred during fleet creation. Describe the fleet event message for more details.

VPC peering events:

  • FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been established between the VPC for an GameLift fleet and a VPC in your Amazon Web Services account.

  • FLEET_VPC_PEERING_FAILED -- A requested VPC peering connection has failed. Event details and status information provide additional detail. A common reason for peering failure is that the two VPCs have overlapping CIDR blocks of IPv4 addresses. To resolve this, change the CIDR block for the VPC in your Amazon Web Services account. For more information on VPC peering failures, see https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html

  • FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been successfully deleted.

Spot instance events:

  • INSTANCE_INTERRUPTED -- A spot instance was interrupted by EC2 with a two-minute notification.

Server process events:

  • SERVER_PROCESS_INVALID_PATH -- The game server executable or script could not be found based on the Fleet runtime configuration. Check that the launch path is correct based on the operating system of the Fleet.

  • SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT -- The server process did not call InitSDK() within the time expected. Check your game session log to see why InitSDK() was not called in time.

  • SERVER_PROCESS_PROCESS_READY_TIMEOUT -- The server process did not call ProcessReady() within the time expected after calling InitSDK(). Check your game session log to see why ProcessReady() was not called in time.

  • SERVER_PROCESS_CRASHED -- The server process exited without calling ProcessEnding(). Check your game session log to see why ProcessEnding() was not called.

  • SERVER_PROCESS_TERMINATED_UNHEALTHY -- The server process did not report a valid health check for too long and was therefore terminated by GameLift. Check your game session log to see if the thread became stuck processing a synchronous task for too long.

  • SERVER_PROCESS_FORCE_TERMINATED -- The server process did not exit cleanly after OnProcessTerminate() was sent within the time expected. Check your game session log to see why termination took longer than expected.

  • SERVER_PROCESS_PROCESS_EXIT_TIMEOUT -- The server process did not exit cleanly within the time expected after calling ProcessEnding(). Check your game session log to see why termination took longer than expected.

Game session events:

  • GAME_SESSION_ACTIVATION_TIMEOUT -- GameSession failed to activate within the expected time. Check your game session log to see why ActivateGameSession() took longer to complete than expected.

Other fleet events:

  • FLEET_SCALING_EVENT -- A change was made to the fleet's capacity settings (desired instances, minimum/maximum scaling limits). Event messaging includes the new capacity settings.

  • FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made to the fleet's game session protection policy setting. Event messaging includes both the old and new policy setting.

  • FLEET_DELETED -- A request to delete a fleet was initiated.

  • GENERIC_EVENT -- An unspecified event has occurred.

" }, "Message":{ "shape":"NonEmptyString", @@ -3831,7 +4151,7 @@ "documentation":"

Location of stored logs with additional detail that is related to the event. This is useful for debugging issues. The URL is valid for 15 minutes. You can also access fleet creation logs through the GameLift console.

" } }, - "documentation":"

Log entry describing an event that involves GameLift resources (such as a fleet). In addition to tracking activity, event codes and messages can provide additional information for troubleshooting and debugging problems.

Related actions

DescribeFleetEvents

" + "documentation":"

Log entry describing an event that involves GameLift resources (such as a fleet). In addition to tracking activity, event codes and messages can provide additional information for troubleshooting and debugging problems.

" }, "EventCode":{ "type":"string", @@ -3868,7 +4188,8 @@ "FLEET_VPC_PEERING_SUCCEEDED", "FLEET_VPC_PEERING_FAILED", "FLEET_VPC_PEERING_DELETED", - "INSTANCE_INTERRUPTED" + "INSTANCE_INTERRUPTED", + "INSTANCE_RECYCLED" ] }, "EventList":{ @@ -3883,7 +4204,7 @@ "documentation":"

A list of locations to allow game session placement in, in the form of Amazon Web Services Region codes such as us-west-2.

" } }, - "documentation":"

A list of fleet locations where a game session queue can place new game sessions. You can use a filter to temporarily turn off placements for specific locations. For queues that have multi-location fleets, you can use a filter configuration allow placement with some, but not all of these locations.

Filter configurations are part of a GameSessionQueue.

" + "documentation":"

A list of fleet locations where a game session queue can place new game sessions. You can use a filter to temporarily turn off placements for specific locations. For queues that have multi-location fleets, you can use a filter configuration allow placement with some, but not all of these locations.

" }, "FleetAction":{ "type":"string", @@ -3912,7 +4233,7 @@ }, "FleetType":{ "shape":"FleetType", - "documentation":"

The kind of instances, On-Demand or Spot, that this fleet uses.

" + "documentation":"

Indicates whether to use On-Demand or Spot instances for this fleet. By default, this property is set to ON_DEMAND. Learn more about when to use On-Demand versus Spot Instances. This property cannot be changed after the fleet is created.

" }, "InstanceType":{ "shape":"EC2InstanceType", @@ -3956,11 +4277,11 @@ }, "ServerLaunchPath":{ "shape":"LaunchPathStringModel", - "documentation":"

This parameter is no longer used. Server launch paths are now defined using the fleet's RuntimeConfiguration parameter. Requests that use this parameter instead continue to be valid.

" + "documentation":"

This parameter is no longer used. Server launch paths are now defined using the fleet's RuntimeConfiguration . Requests that use this parameter instead continue to be valid.

" }, "ServerLaunchParameters":{ "shape":"LaunchParametersStringModel", - "documentation":"

This parameter is no longer used. Server launch parameters are now defined using the fleet's RuntimeConfiguration parameter. Requests that use this parameter instead continue to be valid.

" + "documentation":"

This parameter is no longer used. Server launch parameters are now defined using the fleet's runtime configuration . Requests that use this parameter instead continue to be valid.

" }, "LogPaths":{ "shape":"StringList", @@ -3974,28 +4295,27 @@ "shape":"OperatingSystem", "documentation":"

The operating system of the fleet's computing resources. A fleet's operating system is determined by the OS of the build or script that is deployed on this fleet.

" }, - "ResourceCreationLimitPolicy":{ - "shape":"ResourceCreationLimitPolicy", - "documentation":"

The fleet policy that limits the number of game sessions an individual player can create over a span of time.

" - }, + "ResourceCreationLimitPolicy":{"shape":"ResourceCreationLimitPolicy"}, "MetricGroups":{ "shape":"MetricGroupList", "documentation":"

Name of a metric group that metrics for this fleet are added to. In Amazon CloudWatch, you can view aggregated metrics for fleets that are in a metric group. A fleet can be included in only one metric group at a time.

" }, "StoppedActions":{ "shape":"FleetActionList", - "documentation":"

A list of fleet activity that has been suspended using StopFleetActions. This includes fleet auto-scaling.

" + "documentation":"

A list of fleet activity that has been suspended using StopFleetActions . This includes fleet auto-scaling.

" }, "InstanceRoleArn":{ "shape":"NonEmptyString", "documentation":"

A unique identifier for an IAM role that manages access to your Amazon Web Services services. With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons (background processes). Create a role or look up a role's ARN by using the IAM dashboard in the Amazon Web Services Management Console. Learn more about using on-box credentials for your game servers at Access external resources from a game server.

" }, - "CertificateConfiguration":{ - "shape":"CertificateConfiguration", - "documentation":"

Indicates whether a TLS/SSL certificate was generated for the fleet.

" - } + "CertificateConfiguration":{"shape":"CertificateConfiguration"}, + "ComputeType":{ + "shape":"ComputeType", + "documentation":"

The type of compute resource used to host your game servers. You can use your own compute resources with GameLift Anywhere or use Amazon EC2 instances with managed GameLift.

" + }, + "AnywhereConfiguration":{"shape":"AnywhereConfiguration"} }, - "documentation":"

Describes a GameLift fleet of game hosting resources.

Related actions

CreateFleet | DescribeFleetAttributes

" + "documentation":"

Describes a GameLift fleet of game hosting resources.

Related actions

" }, "FleetAttributesList":{ "type":"list", @@ -4016,10 +4336,7 @@ "shape":"EC2InstanceType", "documentation":"

The Amazon EC2 instance type that is used for all instances in a fleet. The instance type determines the computing resources in use, including CPU, memory, storage, and networking capacity. See Amazon Elastic Compute Cloud Instance Types for detailed descriptions.

" }, - "InstanceCounts":{ - "shape":"EC2InstanceCounts", - "documentation":"

The current instance count and capacity settings for the fleet location.

" - }, + "InstanceCounts":{"shape":"EC2InstanceCounts"}, "Location":{ "shape":"LocationStringModel", "documentation":"

The fleet location for the instance count information, expressed as an Amazon Web Services Region code, such as us-west-2.

" @@ -4068,7 +4385,8 @@ "ACTIVE", "DELETING", "ERROR", - "TERMINATED" + "TERMINATED", + "NOT_FOUND" ] }, "FleetType":{ @@ -4110,7 +4428,7 @@ "documentation":"

The fleet location for the fleet utilization information, expressed as an Amazon Web Services Region code, such as us-west-2.

" } }, - "documentation":"

Current resource utilization statistics in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region.

Related actions

DescribeFleetUtilization | DescribeFleetLocationUtilization

" + "documentation":"

Current resource utilization statistics in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region.

Related actions

" }, "FleetUtilizationList":{ "type":"list", @@ -4125,6 +4443,11 @@ }, "Float":{"type":"float"}, "FreeText":{"type":"string"}, + "GameLiftServiceSdkEndpointOutput":{ + "type":"string", + "max":128, + "min":1 + }, "GameProperty":{ "type":"structure", "required":[ @@ -4161,7 +4484,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupName", - "documentation":"

A unique identifier for the game server group where the game server is running. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group where the game server is running.

" }, "GameServerGroupArn":{ "shape":"GameServerGroupArn", @@ -4181,7 +4504,7 @@ }, "GameServerData":{ "shape":"GameServerData", - "documentation":"

A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using ListGameServers or ClaimGameServer.

" + "documentation":"

A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers.

" }, "ClaimStatus":{ "shape":"GameServerClaimStatus", @@ -4193,18 +4516,18 @@ }, "RegistrationTime":{ "shape":"Timestamp", - "documentation":"

Timestamp that indicates when the game server was created with a RegisterGameServer request. The format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + "documentation":"

Timestamp that indicates when the game server registered. The format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" }, "LastClaimTime":{ "shape":"Timestamp", - "documentation":"

Timestamp that indicates the last time the game server was claimed with a ClaimGameServer request. The format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\"). This value is used to calculate when a claimed game server's status should revert to null.

" + "documentation":"

Timestamp that indicates the last time the game server was claimed. The format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\"). This value is used to calculate when a claimed game server's status should revert to null.

" }, "LastHealthCheckTime":{ "shape":"Timestamp", - "documentation":"

Timestamp that indicates the last time the game server was updated with health status using an UpdateGameServer request. The format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\"). After game server registration, this property is only changed when a game server update specifies a health check value.

" + "documentation":"

Timestamp that indicates the last time the game server was updated with health status. The format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\"). After game server registration, this property is only changed when a game server update specifies a health check value.

" } }, - "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Properties describing a game server that is running on an instance in a GameServerGroup.

A game server is created by a successful call to RegisterGameServer and deleted by calling DeregisterGameServer. A game server is claimed to host a game session by calling ClaimGameServer.

Related actions

RegisterGameServer | ListGameServers | ClaimGameServer | DescribeGameServer | UpdateGameServer | DeregisterGameServer | All APIs by task

" + "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Properties describing a game server that is running on an instance in a game server group.

A game server is created by a successful call to RegisterGameServer and deleted by calling DeregisterGameServer. A game server is claimed to host a game session by calling ClaimGameServer.

" }, "GameServerClaimStatus":{ "type":"string", @@ -4274,7 +4597,7 @@ "documentation":"

A timestamp that indicates when this game server group was last updated.

" } }, - "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Properties that describe a game server group resource. A game server group manages certain properties related to a corresponding Amazon EC2 Auto Scaling group.

A game server group is created by a successful call to CreateGameServerGroup and deleted by calling DeleteGameServerGroup. Game server group activity can be temporarily suspended and resumed by calling SuspendGameServerGroup and ResumeGameServerGroup, respectively.

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Properties that describe a game server group resource. A game server group manages certain properties related to a corresponding Amazon EC2 Auto Scaling group.

A game server group is created by a successful call to CreateGameServerGroup and deleted by calling DeleteGameServerGroup. Game server group activity can be temporarily suspended and resumed by calling SuspendGameServerGroup and ResumeGameServerGroup, respectively.

" }, "GameServerGroupAction":{ "type":"string", @@ -4305,7 +4628,7 @@ "documentation":"

Settings for a target-based scaling policy applied to Auto Scaling group. These settings are used to create a target-based policy that tracks the GameLift FleetIQ metric \"PercentUtilizedGameServers\" and specifies a target value for the metric. As player usage changes, the policy triggers to adjust the game server group capacity so that the metric returns to the target value.

" } }, - "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Configuration settings for intelligent automatic scaling that uses target tracking. These settings are used to add an Auto Scaling policy when creating the corresponding Auto Scaling group with CreateGameServerGroup. After the Auto Scaling group is created, all updates to Auto Scaling policies, including changing this policy and adding or removing other policies, is done directly on the Auto Scaling group.

" + "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Configuration settings for intelligent automatic scaling that uses target tracking. These settings are used to add an Auto Scaling policy when creating the corresponding Auto Scaling group. After the Auto Scaling group is created, all updates to Auto Scaling policies, including changing this policy and adding or removing other policies, is done directly on the Auto Scaling group.

" }, "GameServerGroupDeleteOption":{ "type":"string", @@ -4463,10 +4786,10 @@ }, "InstanceStatus":{ "shape":"GameServerInstanceStatus", - "documentation":"

Current status of the game server instance.

  • ACTIVE -- The instance is viable for hosting game servers.

  • DRAINING -- The instance is not viable for hosting game servers. Existing game servers are in the process of ending, and new game servers are not started on this instance unless no other resources are available. When the instance is put in DRAINING, a new instance is started up to replace it. Once the instance has no UTILIZED game servers, it will be terminated in favor of the new instance.

  • SPOT_TERMINATING -- The instance is in the process of shutting down due to a Spot instance interruption. No new game servers are started on this instance.

" + "documentation":"

Current status of the game server instance

" } }, - "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Additional properties, including status, that describe an EC2 instance in a game server group. Instance configurations are set with game server group properties (see DescribeGameServerGroup and with the EC2 launch template that was used when creating the game server group.

Retrieve game server instances for a game server group by calling DescribeGameServerInstances.

Related actions

CreateGameServerGroup | ListGameServerGroups | DescribeGameServerGroup | UpdateGameServerGroup | DeleteGameServerGroup | ResumeGameServerGroup | SuspendGameServerGroup | DescribeGameServerInstances | All APIs by task

" + "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Additional properties, including status, that describe an EC2 instance in a game server group. Instance configurations are set with game server group properties (see DescribeGameServerGroup and with the EC2 launch template that was used when creating the game server group.

Retrieve game server instances for a game server group by calling DescribeGameServerInstances.

" }, "GameServerInstanceId":{ "type":"string", @@ -4555,7 +4878,7 @@ }, "GameProperties":{ "shape":"GamePropertyList", - "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session). You can search for active game sessions based on this custom data with SearchGameSessions.

" + "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process with a request to start a new game session (see Start a Game Session).

" }, "IpAddress":{ "shape":"IpAddress", @@ -4579,7 +4902,7 @@ }, "GameSessionData":{ "shape":"LargeGameSessionData", - "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session).

" + "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session).

" }, "MatchmakerData":{ "shape":"MatchmakerData", @@ -4590,7 +4913,7 @@ "documentation":"

The fleet location where the game session is running. This value might specify the fleet's home Region or a remote location. Location is expressed as an Amazon Web Services Region code such as us-west-2.

" } }, - "documentation":"

Properties describing a game session.

A game session in ACTIVE status can host players. When a game session ends, its status is set to TERMINATED.

Once the session ends, the game session object is retained for 30 days. This means you can reuse idempotency token values after this time. Game session logs are retained for 14 days.

Related actions

CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Properties describing a game session.

A game session in ACTIVE status can host players. When a game session ends, its status is set to TERMINATED.

Once the session ends, the game session object is retained for 30 days. This means you can reuse idempotency token values after this time. Game session logs are retained for 14 days.

All APIs by task

" }, "GameSessionActivationTimeoutSeconds":{ "type":"integer", @@ -4605,7 +4928,7 @@ "documentation":"

A unique identifier for the game session. Use the game session ID.

" }, "IpAddress":{ - "shape":"StringModel", + "shape":"IpAddress", "documentation":"

The IP address of the game session. To connect to a GameLift game server, an app needs both the IP address and port number.

" }, "DnsName":{ @@ -4621,7 +4944,7 @@ "documentation":"

A collection of player session IDs, one for each player ID that was included in the original matchmaking request.

" } }, - "documentation":"

Connection information for a new game session that is created in response to a StartMatchmaking request. Once a match is made, the FlexMatch engine creates a new game session for it. This information, including the game session endpoint and player sessions for each player in the original matchmaking request, is added to the MatchmakingTicket, which can be retrieved by calling DescribeMatchmaking.

" + "documentation":"

Connection information for a new game session that is created in response to a start matchmaking request. Once a match is made, the FlexMatch engine creates a new game session for it. This information, including the game session endpoint and player sessions for each player in the original matchmaking request, is added to the matchmaking ticket.

" }, "GameSessionData":{ "type":"string", @@ -4671,11 +4994,11 @@ }, "Status":{ "shape":"GameSessionPlacementState", - "documentation":"

Current status of the game session placement request.

  • PENDING -- The placement request is currently in the queue waiting to be processed.

  • FULFILLED -- A new game session and player sessions (if requested) have been successfully created. Values for GameSessionArn and GameSessionRegion are available.

  • CANCELLED -- The placement request was canceled with a call to StopGameSessionPlacement.

  • TIMED_OUT -- A new game session was not successfully created before the time limit expired. You can resubmit the placement request as needed.

  • FAILED -- GameLift is not able to complete the process of placing the game session. Common reasons are the game session terminated before the placement process was completed, or an unexpected internal error.

" + "documentation":"

Current status of the game session placement request.

  • PENDING -- The placement request is currently in the queue waiting to be processed.

  • FULFILLED -- A new game session and player sessions (if requested) have been successfully created. Values for GameSessionArn and GameSessionRegion are available.

  • CANCELLED -- The placement request was canceled.

  • TIMED_OUT -- A new game session was not successfully created before the time limit expired. You can resubmit the placement request as needed.

  • FAILED -- GameLift is not able to complete the process of placing the game session. Common reasons are the game session terminated before the placement process was completed, or an unexpected internal error.

" }, "GameProperties":{ "shape":"GamePropertyList", - "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session).

" + "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process with a request to start a new game session (see Start a Game Session).

" }, "MaximumPlayerSessionCount":{ "shape":"WholeNumber", @@ -4699,7 +5022,7 @@ }, "PlayerLatencies":{ "shape":"PlayerLatencyList", - "documentation":"

A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to @aws; Regions.

" + "documentation":"

A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to Amazon Web Services Regions.

" }, "StartTime":{ "shape":"Timestamp", @@ -4723,18 +5046,18 @@ }, "PlacedPlayerSessions":{ "shape":"PlacedPlayerSessionList", - "documentation":"

A collection of information on player sessions created in response to the game session placement request. These player sessions are created only once a new game session is successfully placed (placement status is FULFILLED). This information includes the player ID (as provided in the placement request) and the corresponding player session ID. Retrieve full player sessions by calling DescribePlayerSessions with the player session ID.

" + "documentation":"

A collection of information on player sessions created in response to the game session placement request. These player sessions are created only once a new game session is successfully placed (placement status is FULFILLED). This information includes the player ID (as provided in the placement request) and the corresponding player session ID.

" }, "GameSessionData":{ "shape":"LargeGameSessionData", - "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session).

" + "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session).

" }, "MatchmakerData":{ "shape":"MatchmakerData", "documentation":"

Information on the matchmaking process for this game. Data is in JSON syntax, formatted as a string. It identifies the matchmaking configuration used to create the match, and contains data on all players assigned to the match, including player attributes and team assignments. For more details on matchmaker data, see Match Data.

" } }, - "documentation":"

Object that describes a StartGameSessionPlacement request. This object includes the full details of the original request plus the current status and start/end time stamps.

Game session placement-related operations include:

" + "documentation":"

This object includes the full details of the original request plus the current status and start/end time stamps.

" }, "GameSessionPlacementState":{ "type":"string", @@ -4779,14 +5102,14 @@ }, "CustomEventData":{ "shape":"QueueCustomEventData", - "documentation":"

Information that is added to all events that are related to this game session queue.

" + "documentation":"

Information that is added to all events that are related to this game session queue.

" }, "NotificationTarget":{ "shape":"QueueSnsArnStringModel", "documentation":"

An SNS topic ARN that is set up to receive game session placement notifications. See Setting up notifications for game session placement.

" } }, - "documentation":"

Configuration for a game session placement mechanism that processes requests for new game sessions. A queue can be used on its own or as part of a matchmaking solution.

Related actions

CreateGameSessionQueue | DescribeGameSessionQueues | UpdateGameSessionQueue

" + "documentation":"

Configuration for a game session placement mechanism that processes requests for new game sessions. A queue can be used on its own or as part of a matchmaking solution.

" }, "GameSessionQueueArn":{ "type":"string", @@ -4799,10 +5122,10 @@ "members":{ "DestinationArn":{ "shape":"ArnStringModel", - "documentation":"

The Amazon Resource Name (ARN) that is assigned to fleet or fleet alias. ARNs, which include a fleet ID or alias ID and a Region name, provide a unique identifier across all Regions.

" + "documentation":"

The Amazon Resource Name (ARN) that is assigned to fleet or fleet alias. ARNs, which include a fleet ID or alias ID and a Region name, provide a unique identifier across all Regions.

" } }, - "documentation":"

A fleet or alias designated in a game session queue. Queues fulfill requests for new game sessions by placing a new game session on any of the queue's destinations.

Destinations are part of a GameSessionQueue.

" + "documentation":"

A fleet or alias designated in a game session queue. Queues fulfill requests for new game sessions by placing a new game session on any of the queue's destinations.

" }, "GameSessionQueueDestinationList":{ "type":"list", @@ -4842,6 +5165,94 @@ "type":"string", "enum":["INTERRUPTED"] }, + "GetComputeAccessInput":{ + "type":"structure", + "required":[ + "FleetId", + "ComputeName" + ], + "members":{ + "FleetId":{ + "shape":"FleetIdOrArn", + "documentation":"

A unique identifier for the fleet that the compute resource is registered to.

" + }, + "ComputeName":{ + "shape":"ComputeNameOrArn", + "documentation":"

The name of the compute resource you are requesting credentials for.

" + } + } + }, + "GetComputeAccessOutput":{ + "type":"structure", + "members":{ + "FleetId":{ + "shape":"FleetIdOrArn", + "documentation":"

The fleet ID of compute resource.

" + }, + "FleetArn":{ + "shape":"FleetArn", + "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" + }, + "ComputeName":{ + "shape":"ComputeNameOrArn", + "documentation":"

The name of the compute resource you requested credentials for.

" + }, + "ComputeArn":{ + "shape":"ComputeArn", + "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift compute resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::compute/compute-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" + }, + "Credentials":{ + "shape":"AwsCredentials", + "documentation":"

The access credentials for the compute resource.

" + } + } + }, + "GetComputeAuthTokenInput":{ + "type":"structure", + "required":[ + "FleetId", + "ComputeName" + ], + "members":{ + "FleetId":{ + "shape":"FleetIdOrArn", + "documentation":"

A unique identifier for the fleet that the compute is registered to.

" + }, + "ComputeName":{ + "shape":"ComputeNameOrArn", + "documentation":"

The name of the compute resource you are requesting the authorization token for.

" + } + } + }, + "GetComputeAuthTokenOutput":{ + "type":"structure", + "members":{ + "FleetId":{ + "shape":"FleetIdOrArn", + "documentation":"

A unique identifier for the fleet that the compute is registered to.

" + }, + "FleetArn":{ + "shape":"FleetArn", + "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" + }, + "ComputeName":{ + "shape":"ComputeNameOrArn", + "documentation":"

The name of the compute resource you are requesting the authorization token for.

" + }, + "ComputeArn":{ + "shape":"ComputeArn", + "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift compute resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::compute/compute-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912

" + }, + "AuthToken":{ + "shape":"ComputeAuthToken", + "documentation":"

The authorization token that your game server uses to authenticate with GameLift.

" + }, + "ExpirationTimestamp":{ + "shape":"Timestamp", + "documentation":"

The amount of time until the authorization token is no longer valid. To continue using the compute resource for game server hosting, renew the authorization token by using this operation again.

" + } + } + }, "GetGameSessionLogUrlInput":{ "type":"structure", "required":["GameSessionId"], @@ -4850,8 +5261,7 @@ "shape":"ArnStringModel", "documentation":"

A unique identifier for the game session to get logs for.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "GetGameSessionLogUrlOutput":{ "type":"structure", @@ -4860,8 +5270,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

Location of the requested game session logs, available for download. This URL is valid for 15 minutes, after which S3 will reject any download request using this URL. You can request a new URL any time within the 14-day period that the logs are retained.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "GetInstanceAccessInput":{ "type":"structure", @@ -4878,8 +5287,7 @@ "shape":"InstanceId", "documentation":"

A unique identifier for the instance you want to get access to. You can access an instance in any status.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "GetInstanceAccessOutput":{ "type":"structure", @@ -4888,8 +5296,7 @@ "shape":"InstanceAccess", "documentation":"

The connection information for a fleet instance, including IP address and access credentials.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "IamRoleArn":{ "type":"string", @@ -4955,7 +5362,7 @@ "documentation":"

The fleet location of the instance, expressed as an Amazon Web Services Region code, such as us-west-2.

" } }, - "documentation":"

Represents an EC2 instance of virtual computing resources that hosts one or more game servers. In GameLift, a fleet can contain zero or more instances.

Related actions

DescribeInstances

" + "documentation":"

Represents an EC2 instance of virtual computing resources that hosts one or more game servers. In GameLift, a fleet can contain zero or more instances.

Related actions

" }, "InstanceAccess":{ "type":"structure", @@ -4981,7 +5388,7 @@ "documentation":"

Credentials required to access the instance.

" } }, - "documentation":"

Information required to remotely connect to a fleet instance. Access is requested by calling GetInstanceAccess.

" + "documentation":"

Information required to remotely connect to a fleet instance.

" }, "InstanceCredentials":{ "type":"structure", @@ -4995,7 +5402,7 @@ "documentation":"

Secret string. For Windows instances, the secret is a password for use with Windows Remote Desktop. For Linux instances, it is a private key (which must be saved as a .pem file) for use with SSH.

" } }, - "documentation":"

Set of credentials required to remotely access a fleet instance. Access credentials are requested by calling GetInstanceAccess and returned in an InstanceAccess object.

", + "documentation":"

Set of credentials required to remotely access a fleet instance.

", "sensitive":true }, "InstanceDefinition":{ @@ -5011,7 +5418,7 @@ "documentation":"

Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options. For detailed information on weighting instance capacity, see Instance Weighting in the Amazon Elastic Compute Cloud Auto Scaling User Guide. Default value is \"1\".

" } }, - "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

An allowed instance type for a GameServerGroup. All game server groups must have at least two instance types defined for it. GameLift FleetIQ periodically evaluates each defined instance type for viability. It then updates the Auto Scaling group with the list of viable instance types.

" + "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

An allowed instance type for a game server group. All game server groups must have at least two instance types defined for it. GameLift FleetIQ periodically evaluates each defined instance type for viability. It then updates the Auto Scaling group with the list of viable instance types.

" }, "InstanceDefinitions":{ "type":"list", @@ -5073,7 +5480,7 @@ "type":"string", "max":128, "min":1, - "pattern":"^(?:[0-9]{1,3}\\.){3}[0-9]{1,3}$" + "pattern":"^[0-9A-Fa-f\\:\\.]+" }, "IpPermission":{ "type":"structure", @@ -5101,7 +5508,7 @@ "documentation":"

The network communication protocol used by the fleet.

" } }, - "documentation":"

A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an instance in a fleet. New game sessions are assigned an IP address/port number combination, which must fall into the fleet's allowed ranges. Fleets with custom game builds must have permissions explicitly set. For Realtime Servers fleets, GameLift automatically opens two port ranges, one for TCP messaging and one for UDP.

Related actions

DescribeFleetPortSettings

" + "documentation":"

A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an instance in a fleet. New game sessions are assigned an IP address/port number combination, which must fall into the fleet's allowed ranges. Fleets with custom game builds must have permissions explicitly set. For Realtime Servers fleets, GameLift automatically opens two port ranges, one for TCP messaging and one for UDP.

" }, "IpPermissionsList":{ "type":"list", @@ -5165,7 +5572,7 @@ "documentation":"

The version of the Amazon EC2 launch template to use. If no version is specified, the default version will be used. With Amazon EC2, you can specify a default version for a launch template. If none is set, the default is the first version created.

" } }, - "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

An Amazon Elastic Compute Cloud launch template that contains configuration settings and game server code to be deployed to all instances in a game server group. The launch template is specified when creating a new game server group with CreateGameServerGroup.

" + "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

An Amazon Elastic Compute Cloud launch template that contains configuration settings and game server code to be deployed to all instances in a game server group. The launch template is specified when creating a new game server group.

" }, "LaunchTemplateVersion":{ "type":"string", @@ -5186,7 +5593,7 @@ "members":{ "RoutingStrategyType":{ "shape":"RoutingStrategyType", - "documentation":"

The routing type to filter results on. Use this parameter to retrieve only aliases with a certain routing type. To retrieve all aliases, leave this parameter empty.

Possible routing types include the following:

  • SIMPLE -- The alias resolves to one specific fleet. Use this type when routing to active fleets.

  • TERMINAL -- The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the RoutingStrategy message embedded.

" + "documentation":"

The routing type to filter results on. Use this parameter to retrieve only aliases with a certain routing type. To retrieve all aliases, leave this parameter empty.

Possible routing types include the following:

  • SIMPLE -- The alias resolves to one specific fleet. Use this type when routing to active fleets.

  • TERMINAL -- The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the RoutingStrategy message embedded.

" }, "Name":{ "shape":"NonEmptyString", @@ -5200,8 +5607,7 @@ "shape":"NonEmptyString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "ListAliasesOutput":{ "type":"structure", @@ -5214,8 +5620,7 @@ "shape":"NonEmptyString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "ListBuildsInput":{ "type":"structure", @@ -5232,8 +5637,7 @@ "shape":"NonEmptyString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "ListBuildsOutput":{ "type":"structure", @@ -5246,8 +5650,42 @@ "shape":"NonEmptyString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } + }, + "ListComputeInput":{ + "type":"structure", + "required":["FleetId"], + "members":{ + "FleetId":{ + "shape":"FleetIdOrArn", + "documentation":"

A unique identifier for the fleet the compute resources are registered to.

" + }, + "Location":{ + "shape":"LocationStringModel", + "documentation":"

The name of the custom location that the compute resources are assigned to.

" + }, + "Limit":{ + "shape":"PositiveInteger", + "documentation":"

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" + }, + "NextToken":{ + "shape":"NonZeroAndMaxString", + "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" + } + } + }, + "ListComputeOutput":{ + "type":"structure", + "members":{ + "ComputeList":{ + "shape":"ComputeList", + "documentation":"

A list of compute resources registered to the fleet you specified.

" + }, + "NextToken":{ + "shape":"NonZeroAndMaxString", + "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" + } + } }, "ListFleetsInput":{ "type":"structure", @@ -5268,33 +5706,31 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "ListFleetsOutput":{ "type":"structure", "members":{ "FleetIds":{ "shape":"FleetIdList", - "documentation":"

A set of fleet IDs that match the list request. You can retrieve additional information about all returned fleets by passing this result set to a DescribeFleetAttributes, DescribeFleetCapacity, or DescribeFleetUtilization call.

" + "documentation":"

A set of fleet IDs that match the list request.

" }, "NextToken":{ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "ListGameServerGroupsInput":{ "type":"structure", "members":{ "Limit":{ "shape":"PositiveInteger", - "documentation":"

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" + "documentation":"

The game server groups' limit.

" }, "NextToken":{ "shape":"NonZeroAndMaxString", - "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

" } } }, @@ -5303,11 +5739,11 @@ "members":{ "GameServerGroups":{ "shape":"GameServerGroups", - "documentation":"

A collection of game server group objects that match the request.

" + "documentation":"

The game server groups' game server groups.

" }, "NextToken":{ "shape":"NonZeroAndMaxString", - "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

" } } }, @@ -5317,7 +5753,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

An identifier for the game server group to retrieve a list of game servers from. Use either the GameServerGroup name or ARN value.

" + "documentation":"

An identifier for the game server group to retrieve a list of game servers from. Use either the name or ARN value.

" }, "SortOrder":{ "shape":"SortOrder", @@ -5346,6 +5782,41 @@ } } }, + "ListLocationsInput":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"LocationFilterList", + "documentation":"

Filters the list for AWS or CUSTOM locations.

" + }, + "Limit":{ + "shape":"ListLocationsLimit", + "documentation":"

The maximum number of results to return. Use this parameter with NextToken to get results as a set of sequential pages.

" + }, + "NextToken":{ + "shape":"NonZeroAndMaxString", + "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" + } + } + }, + "ListLocationsLimit":{ + "type":"integer", + "max":200, + "min":1 + }, + "ListLocationsOutput":{ + "type":"structure", + "members":{ + "Locations":{ + "shape":"LocationModelList", + "documentation":"

A collection of locations.

" + }, + "NextToken":{ + "shape":"NonZeroAndMaxString", + "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" + } + } + }, "ListScriptsInput":{ "type":"structure", "members":{ @@ -5378,7 +5849,7 @@ "members":{ "ResourceARN":{ "shape":"AmazonResourceName", - "documentation":"

The Amazon Resource Name (ARN) that is assigned to and uniquely identifies the GameLift resource that you want to retrieve tags for. GameLift resource ARNs are included in the data object for the resource, which can be retrieved by calling a List or Describe operation for the resource type.

" + "documentation":"

The Amazon Resource Name (ARN) that is assigned to and uniquely identifies the GameLift resource that you want to retrieve tags for. GameLift resource ARNs are included in the data object for the resource, which can be retrieved by calling a List or Describe operation for the resource type.

" } } }, @@ -5387,10 +5858,16 @@ "members":{ "Tags":{ "shape":"TagList", - "documentation":"

The collection of tags that have been assigned to the specified resource.

" + "documentation":"

The collection of tags that have been assigned to the specified resource.

" } } }, + "LocationArnModel":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:.*:location\\/custom-\\S+" + }, "LocationAttributes":{ "type":"structure", "members":{ @@ -5404,10 +5881,10 @@ }, "UpdateStatus":{ "shape":"LocationUpdateStatus", - "documentation":"

The status of fleet activity updates to the location. The status PENDING_UPDATE indicates that StopFleetActions or StartFleetActions has been requested but the update has not yet been completed for the location.

" + "documentation":"

The status of fleet activity updates to the location. The status PENDING_UPDATE indicates that StopFleetActions or StartFleetActions has been requested but the update has not yet been completed for the location.

" } }, - "documentation":"

Represents a location in a multi-location fleet.

Related actions

DescribeFleetLocationAttributes

" + "documentation":"

Details about a location in a multi-location fleet.

" }, "LocationAttributesList":{ "type":"list", @@ -5415,13 +5892,14 @@ }, "LocationConfiguration":{ "type":"structure", + "required":["Location"], "members":{ "Location":{ "shape":"LocationStringModel", "documentation":"

An Amazon Web Services Region code, such as us-west-2.

" } }, - "documentation":"

A remote location where a multi-location fleet can deploy EC2 instances for game hosting.

Related actions

CreateFleet

" + "documentation":"

A remote location where a multi-location fleet can deploy EC2 instances for game hosting.

" }, "LocationConfigurationList":{ "type":"list", @@ -5429,12 +5907,43 @@ "max":100, "min":1 }, + "LocationFilter":{ + "type":"string", + "enum":[ + "AWS", + "CUSTOM" + ] + }, + "LocationFilterList":{ + "type":"list", + "member":{"shape":"LocationFilter"}, + "max":2, + "min":1 + }, "LocationList":{ "type":"list", "member":{"shape":"LocationStringModel"}, "max":100, "min":1 }, + "LocationModel":{ + "type":"structure", + "members":{ + "LocationName":{ + "shape":"LocationStringModel", + "documentation":"

The location's name.

" + }, + "LocationArn":{ + "shape":"LocationArnModel", + "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift location resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::location/location-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" + } + }, + "documentation":"

Properties of a location

" + }, + "LocationModelList":{ + "type":"list", + "member":{"shape":"LocationModel"} + }, "LocationState":{ "type":"structure", "members":{ @@ -5447,7 +5956,7 @@ "documentation":"

The life-cycle status of a fleet location.

" } }, - "documentation":"

A fleet location and its life-cycle state. A location state object might be used to describe a fleet's remote location or home Region. Life-cycle state tracks the progress of launching the first instance in a new location and preparing it for game hosting, and then removing all instances and deleting the location from the fleet.

Related actions

CreateFleet | CreateFleetLocations | DeleteFleetLocations

" + "documentation":"

A fleet location and its life-cycle state. A location state object might be used to describe a fleet's remote location or home Region. Life-cycle state tracks the progress of launching the first instance in a new location and preparing it for game hosting, and then removing all instances and deleting the location from the fleet.

  • NEW -- A new fleet location has been defined and desired instances is set to 1.

  • DOWNLOADING/VALIDATING/BUILDING/ACTIVATING -- GameLift is setting up the new fleet location, creating new instances with the game build or Realtime script and starting server processes.

  • ACTIVE -- Hosts can now accept game sessions.

  • ERROR -- An error occurred when downloading, validating, building, or activating the fleet location.

  • DELETING -- Hosts are responding to a delete fleet location request.

  • TERMINATED -- The fleet location no longer exists.

  • NOT_FOUND -- The fleet location was not found. This could be because the custom location was removed or not created.

" }, "LocationStateList":{ "type":"list", @@ -5457,7 +5966,7 @@ "type":"string", "max":64, "min":1, - "pattern":"^[a-z]+(-([a-z]+|\\d))*" + "pattern":"^[A-Za-z0-9\\-]+" }, "LocationUpdateStatus":{ "type":"string", @@ -5548,15 +6057,15 @@ }, "GameProperties":{ "shape":"GamePropertyList", - "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used when FlexMatchMode is set to STANDALONE.

" + "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used when FlexMatchMode is set to STANDALONE.

" }, "GameSessionData":{ "shape":"GameSessionData", - "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used when FlexMatchMode is set to STANDALONE.

" + "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used when FlexMatchMode is set to STANDALONE.

" }, "BackfillMode":{ "shape":"BackfillMode", - "documentation":"

The method used to backfill game sessions created with this matchmaking configuration. MANUAL indicates that the game makes backfill requests or does not use the match backfill feature. AUTOMATIC indicates that GameLift creates StartMatchBackfill requests whenever a game session has one or more open slots. Learn more about manual and automatic backfill in Backfill existing games with FlexMatch. Automatic backfill is not available when FlexMatchMode is set to STANDALONE.

" + "documentation":"

The method used to backfill game sessions created with this matchmaking configuration. MANUAL indicates that the game makes backfill requests or does not use the match backfill feature. AUTOMATIC indicates that GameLift creates backfill requests whenever a game session has one or more open slots. Learn more about manual and automatic backfill in Backfill existing games with FlexMatch. Automatic backfill is not available when FlexMatchMode is set to STANDALONE.

" }, "FlexMatchMode":{ "shape":"FlexMatchMode", @@ -5632,7 +6141,7 @@ "documentation":"

A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" } }, - "documentation":"

Set of rule statements, used with FlexMatch, that determine how to build your player matches. Each rule set describes a type of group to be created and defines the parameters for acceptable player matches. Rule sets are used in MatchmakingConfiguration objects.

A rule set may define the following elements for a match. For detailed information and examples showing how to construct a rule set, see Build a FlexMatch rule set.

  • Teams -- Required. A rule set must define one or multiple teams for the match and set minimum and maximum team sizes. For example, a rule set might describe a 4x4 match that requires all eight slots to be filled.

  • Player attributes -- Optional. These attributes specify a set of player characteristics to evaluate when looking for a match. Matchmaking requests that use a rule set with player attributes must provide the corresponding attribute values. For example, an attribute might specify a player's skill or level.

  • Rules -- Optional. Rules define how to evaluate potential players for a match based on player attributes. A rule might specify minimum requirements for individual players, teams, or entire matches. For example, a rule might require each player to meet a certain skill level, each team to have at least one player in a certain role, or the match to have a minimum average skill level. or may describe an entire group--such as all teams must be evenly matched or have at least one player in a certain role.

  • Expansions -- Optional. Expansions allow you to relax the rules after a period of time when no acceptable matches are found. This feature lets you balance getting players into games in a reasonable amount of time instead of making them wait indefinitely for the best possible match. For example, you might use an expansion to increase the maximum skill variance between players after 30 seconds.

" + "documentation":"

Set of rule statements, used with FlexMatch, that determine how to build your player matches. Each rule set describes a type of group to be created and defines the parameters for acceptable player matches.

A rule set may define the following elements for a match. For detailed information and examples showing how to construct a rule set, see Build a FlexMatch rule set.

  • Teams -- Required. A rule set must define one or multiple teams for the match and set minimum and maximum team sizes. For example, a rule set might describe a 4x4 match that requires all eight slots to be filled.

  • Player attributes -- Optional. These attributes specify a set of player characteristics to evaluate when looking for a match. Matchmaking requests that use a rule set with player attributes must provide the corresponding attribute values. For example, an attribute might specify a player's skill or level.

  • Rules -- Optional. Rules define how to evaluate potential players for a match based on player attributes. A rule might specify minimum requirements for individual players, teams, or entire matches. For example, a rule might require each player to meet a certain skill level, each team to have at least one player in a certain role, or the match to have a minimum average skill level. or may describe an entire group--such as all teams must be evenly matched or have at least one player in a certain role.

  • Expansions -- Optional. Expansions allow you to relax the rules after a period of time when no acceptable matches are found. This feature lets you balance getting players into games in a reasonable amount of time instead of making them wait indefinitely for the best possible match. For example, you might use an expansion to increase the maximum skill variance between players after 30 seconds.

" }, "MatchmakingRuleSetArn":{ "type":"string", @@ -5664,7 +6173,7 @@ }, "ConfigurationName":{ "shape":"MatchmakingIdStringModel", - "documentation":"

Name of the MatchmakingConfiguration that is used with this ticket. Matchmaking configurations determine how players are grouped into a match and how a new game session is created for the match.

" + "documentation":"

Name of the matchmaking configuration that is used with this ticket. Matchmaking configurations determine how players are grouped into a match and how a new game session is created for the match.

" }, "ConfigurationArn":{ "shape":"MatchmakingConfigurationArn", @@ -5672,7 +6181,7 @@ }, "Status":{ "shape":"MatchmakingConfigurationStatus", - "documentation":"

Current status of the matchmaking request.

  • QUEUED -- The matchmaking request has been received and is currently waiting to be processed.

  • SEARCHING -- The matchmaking request is currently being processed.

  • REQUIRES_ACCEPTANCE -- A match has been proposed and the players must accept the match (see AcceptMatch). This status is used only with requests that use a matchmaking configuration with a player acceptance requirement.

  • PLACING -- The FlexMatch engine has matched players and is in the process of placing a new game session for the match.

  • COMPLETED -- Players have been matched and a game session is ready to host the players. A ticket in this state contains the necessary connection information for players.

  • FAILED -- The matchmaking request was not completed.

  • CANCELLED -- The matchmaking request was canceled. This may be the result of a call to StopMatchmaking or a proposed match that one or more players failed to accept.

  • TIMED_OUT -- The matchmaking request was not successful within the duration specified in the matchmaking configuration.

Matchmaking requests that fail to successfully complete (statuses FAILED, CANCELLED, TIMED_OUT) can be resubmitted as new requests with new ticket IDs.

" + "documentation":"

Current status of the matchmaking request.

  • QUEUED -- The matchmaking request has been received and is currently waiting to be processed.

  • SEARCHING -- The matchmaking request is currently being processed.

  • REQUIRES_ACCEPTANCE -- A match has been proposed and the players must accept the match. This status is used only with requests that use a matchmaking configuration with a player acceptance requirement.

  • PLACING -- The FlexMatch engine has matched players and is in the process of placing a new game session for the match.

  • COMPLETED -- Players have been matched and a game session is ready to host the players. A ticket in this state contains the necessary connection information for players.

  • FAILED -- The matchmaking request was not completed.

  • CANCELLED -- The matchmaking request was canceled. This may be the result of a StopMatchmaking operation or a proposed match that one or more players failed to accept.

  • TIMED_OUT -- The matchmaking request was not successful within the duration specified in the matchmaking configuration.

Matchmaking requests that fail to successfully complete (statuses FAILED, CANCELLED, TIMED_OUT) can be resubmitted as new requests with new ticket IDs.

" }, "StatusReason":{ "shape":"StringModel", @@ -5688,7 +6197,7 @@ }, "EndTime":{ "shape":"Timestamp", - "documentation":"

Time stamp indicating when this matchmaking request stopped being processed due to success, failure, or cancellation. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" + "documentation":"

Time stamp indicating when the matchmaking request stopped being processed due to successful completion, timeout, or cancellation. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" }, "Players":{ "shape":"PlayerList", @@ -5696,14 +6205,14 @@ }, "GameSessionConnectionInfo":{ "shape":"GameSessionConnectionInfo", - "documentation":"

Identifier and connection information of the game session created for the match. This information is added to the ticket only after the matchmaking request has been successfully completed. This parameter is not set when FlexMatch is being used without GameLift hosting.

" + "documentation":"

Connection information for a new game session. Once a match is made, the FlexMatch engine creates a new game session for it. This information is added to the matchmaking ticket, which you can be retrieve by calling DescribeMatchmaking .

" }, "EstimatedWaitTime":{ "shape":"WholeNumber", "documentation":"

Average amount of time (in seconds) that players are currently waiting for a match. If there is not enough recent data, this property may be empty.

" } }, - "documentation":"

Ticket generated to track the progress of a matchmaking request. Each ticket is uniquely identified by a ticket ID, supplied by the requester, when creating a matchmaking request with StartMatchmaking. Tickets can be retrieved by calling DescribeMatchmaking with the ticket ID.

" + "documentation":"

Ticket generated to track the progress of a matchmaking request. Each ticket is uniquely identified by a ticket ID, supplied by the requester, when creating a matchmaking request.

" }, "MatchmakingTicketList":{ "type":"list", @@ -5737,7 +6246,8 @@ "PercentAvailableGameSessions", "PercentIdleInstances", "QueueDepth", - "WaitTime" + "WaitTime", + "ConcurrentActivatableGameSessions" ] }, "NonBlankAndLengthConstraintString":{ @@ -5758,6 +6268,12 @@ "type":"double", "min":0 }, + "NonNegativeLimitedLengthDouble":{ + "type":"string", + "max":11, + "min":1, + "pattern":"^\\d{1,5}(?:\\.\\d{1,5})?$" + }, "NonZeroAndMaxString":{ "type":"string", "max":1024, @@ -5768,7 +6284,7 @@ "members":{ "Message":{"shape":"NonEmptyString"} }, - "documentation":"

A service resource associated with the request could not be found. Clients should not retry such requests.

", + "documentation":"

THe requested resources was not found. The resource was either not created yet or deleted.

", "exception":true }, "OperatingSystem":{ @@ -5784,7 +6300,7 @@ "members":{ "Message":{"shape":"NonEmptyString"} }, - "documentation":"

The specified game server group has no available game servers to fulfill a ClaimGameServer request. Clients can retry such requests immediately or after a waiting period.

", + "documentation":"

The specified game server group has no available game servers to fulfill a ClaimGameServer request. Clients can retry such requests immediately or after a waiting period.

", "exception":true }, "PlacedPlayerSession":{ @@ -5799,7 +6315,7 @@ "documentation":"

A unique identifier for a player session.

" } }, - "documentation":"

Information about a player session that was created as part of a StartGameSessionPlacement request. This object contains only the player ID and player session ID. To retrieve full details on a player session, call DescribePlayerSessions with the player session ID.

Related actions

CreatePlayerSession | CreatePlayerSessions | DescribePlayerSessions | StartGameSessionPlacement | DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task

" + "documentation":"

Information about a player session. This object contains only the player ID and player session ID. To retrieve full details on a player session, call DescribePlayerSessions with the player session ID.

" }, "PlacedPlayerSessionList":{ "type":"list", @@ -5814,7 +6330,7 @@ }, "PlayerAttributes":{ "shape":"PlayerAttributeMap", - "documentation":"

A collection of key:value pairs containing player information for use in matchmaking. Player attribute keys must match the playerAttributes used in a matchmaking rule set. Example: \"PlayerAttributes\": {\"skill\": {\"N\": \"23\"}, \"gameMode\": {\"S\": \"deathmatch\"}}.

" + "documentation":"

A collection of key:value pairs containing player information for use in matchmaking. Player attribute keys must match the playerAttributes used in a matchmaking rule set. Example: \"PlayerAttributes\": {\"skill\": {\"N\": \"23\"}, \"gameMode\": {\"S\": \"deathmatch\"}}.

You can provide up to 10 PlayerAttributes.

" }, "Team":{ "shape":"NonZeroAndMaxString", @@ -5832,6 +6348,20 @@ "key":{"shape":"NonZeroAndMaxString"}, "value":{"shape":"AttributeValue"} }, + "PlayerAttributeString":{ + "type":"string", + "max":100, + "min":1 + }, + "PlayerAttributeStringDoubleMap":{ + "type":"map", + "key":{"shape":"PlayerAttributeString"}, + "value":{"shape":"DoubleObject"} + }, + "PlayerAttributeStringList":{ + "type":"list", + "member":{"shape":"PlayerAttributeString"} + }, "PlayerData":{ "type":"string", "max":2048, @@ -5864,7 +6394,7 @@ "documentation":"

Amount of time that represents the time lag experienced by the player when connected to the specified Region.

" } }, - "documentation":"

Regional latency information for a player, used when requesting a new game session with StartGameSessionPlacement. This value indicates the amount of time lag that exists when the player is connected to a fleet in the specified Region. The relative difference between a player's latency values for multiple Regions are used to determine which fleets are best suited to place a new game session for the player.

" + "documentation":"

Regional latency information for a player, used when requesting a new game session. This value indicates the amount of time lag that exists when the player is connected to a fleet in the specified Region. The relative difference between a player's latency values for multiple Regions are used to determine which fleets are best suited to place a new game session for the player.

" }, "PlayerLatencyList":{ "type":"list", @@ -5882,7 +6412,7 @@ "documentation":"

The length of time, in seconds, that the policy is enforced while placing a new game session. A null value for this property means that the policy is enforced until the queue times out.

" } }, - "documentation":"

Sets a latency cap for individual players when placing a game session. With a latency policy in force, a game session cannot be placed in a fleet location where a player reports latency higher than the cap. Latency policies are used only with placement request that provide player latency information. Player latency policies can be stacked to gradually relax latency requirements over time.

Latency policies are part of a GameSessionQueue.

" + "documentation":"

Sets a latency cap for individual players when placing a game session. With a latency policy in force, a game session cannot be placed in a fleet location where a player reports latency higher than the cap. Latency policies are used only with placement request that provide player latency information. Player latency policies can be stacked to gradually relax latency requirements over time.

" }, "PlayerLatencyPolicyList":{ "type":"list", @@ -5944,7 +6474,7 @@ "documentation":"

Developer-defined information related to a player. GameLift does not use this data, so it can be formatted as needed for use in the game.

" } }, - "documentation":"

Represents a player session. Player sessions are created either for a specific game session, or as part of a game session placement or matchmaking request. A player session can represents a reserved player slot in a game session (when status is RESERVED) or actual player activity in a game session (when status is ACTIVE). A player session object, including player data, is automatically passed to a game session when the player connects to the game session and is validated. After the game session ends, player sessions information is retained for 30 days and then removed.

Related actions

CreatePlayerSession | CreatePlayerSessions | DescribePlayerSessions | StartGameSessionPlacement | DescribeGameSessionPlacement | All APIs by task

" + "documentation":"

Represents a player session. Player sessions are created either for a specific game session, or as part of a game session placement or matchmaking request. A player session can represents a reserved player slot in a game session (when status is RESERVED) or actual player activity in a game session (when status is ACTIVE). A player session object, including player data, is automatically passed to a game session when the player connects to the game session and is validated. After the game session ends, player sessions information is retained for 30 days and then removed.

Related actions

All APIs by task

" }, "PlayerSessionCreationPolicy":{ "type":"string", @@ -6002,7 +6532,7 @@ "documentation":"

The prioritization order to use for fleet locations, when the PriorityOrder property includes LOCATION. Locations are identified by Amazon Web Services Region codes such as us-west-2. Each location can only be listed once.

" } }, - "documentation":"

Custom prioritization settings for use by a game session queue when placing new game sessions with available game servers. When defined, this configuration replaces the default FleetIQ prioritization process, which is as follows:

  • If player latency data is included in a game session request, destinations and locations are prioritized first based on lowest average latency (1), then on lowest hosting cost (2), then on destination list order (3), and finally on location (alphabetical) (4). This approach ensures that the queue's top priority is to place game sessions where average player latency is lowest, and--if latency is the same--where the hosting cost is less, etc.

  • If player latency data is not included, destinations and locations are prioritized first on destination list order (1), and then on location (alphabetical) (2). This approach ensures that the queue's top priority is to place game sessions on the first destination fleet listed. If that fleet has multiple locations, the game session is placed on the first location (when listed alphabetically).

Changing the priority order will affect how game sessions are placed.

Priority configurations are part of a GameSessionQueue.

" + "documentation":"

Custom prioritization settings for use by a game session queue when placing new game sessions with available game servers. When defined, this configuration replaces the default FleetIQ prioritization process, which is as follows:

  • If player latency data is included in a game session request, destinations and locations are prioritized first based on lowest average latency (1), then on lowest hosting cost (2), then on destination list order (3), and finally on location (alphabetical) (4). This approach ensures that the queue's top priority is to place game sessions where average player latency is lowest, and--if latency is the same--where the hosting cost is less, etc.

  • If player latency data is not included, destinations and locations are prioritized first on destination list order (1), and then on location (alphabetical) (2). This approach ensures that the queue's top priority is to place game sessions on the first destination fleet listed. If that fleet has multiple locations, the game session is placed on the first location (when listed alphabetically).

Changing the priority order will affect how game sessions are placed.

" }, "PriorityType":{ "type":"string", @@ -6048,7 +6578,7 @@ }, "ScalingAdjustmentType":{ "shape":"ScalingAdjustmentType", - "documentation":"

The type of adjustment to make to a fleet's instance count (see FleetCapacity):

  • ChangeInCapacity -- add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down.

  • ExactCapacity -- set the instance count to the scaling adjustment value.

  • PercentChangeInCapacity -- increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down; for example, a value of \"-10\" scales the fleet down by 10%.

" + "documentation":"

The type of adjustment to make to a fleet's instance count:

  • ChangeInCapacity -- add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down.

  • ExactCapacity -- set the instance count to the scaling adjustment value.

  • PercentChangeInCapacity -- increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down; for example, a value of \"-10\" scales the fleet down by 10%.

" }, "Threshold":{ "shape":"Double", @@ -6074,8 +6604,7 @@ "shape":"TargetConfiguration", "documentation":"

An object that contains settings for a target-based scaling policy.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "PutScalingPolicyOutput":{ "type":"structure", @@ -6084,8 +6613,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "QueueArnsList":{ "type":"list", @@ -6103,6 +6631,48 @@ "min":0, "pattern":"[a-zA-Z0-9:_-]*(\\.fifo)?" }, + "RegisterComputeInput":{ + "type":"structure", + "required":[ + "FleetId", + "ComputeName" + ], + "members":{ + "FleetId":{ + "shape":"FleetIdOrArn", + "documentation":"

A unique identifier for the fleet to register the compute to. You can use either the fleet ID or ARN value.

" + }, + "ComputeName":{ + "shape":"ComputeName", + "documentation":"

A descriptive label that is associated with the compute resource registered to your fleet.

" + }, + "CertificatePath":{ + "shape":"NonZeroAndMaxString", + "documentation":"

The path to the TLS certificate on your compute resource. The path and certificate are not validated by GameLift.

" + }, + "DnsName":{ + "shape":"DnsNameInput", + "documentation":"

The DNS name of the compute resource. GameLift requires the DNS name or IP address to manage your compute resource.

" + }, + "IpAddress":{ + "shape":"IpAddress", + "documentation":"

The IP address of the compute resource. GameLift requires the DNS name or IP address to manage your compute resource.

" + }, + "Location":{ + "shape":"LocationStringModel", + "documentation":"

The name of the custom location you added to the fleet you are registering this compute resource to.

" + } + } + }, + "RegisterComputeOutput":{ + "type":"structure", + "members":{ + "Compute":{ + "shape":"Compute", + "documentation":"

The details of the compute resource you registered to the specified fleet.

" + } + } + }, "RegisterGameServerInput":{ "type":"structure", "required":[ @@ -6113,7 +6683,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group where the game server is running. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group where the game server is running.

" }, "GameServerId":{ "shape":"GameServerId", @@ -6129,7 +6699,7 @@ }, "GameServerData":{ "shape":"GameServerData", - "documentation":"

A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using ListGameServers or ClaimGameServer.

" + "documentation":"

A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers.

" } } }, @@ -6150,8 +6720,7 @@ "shape":"BuildIdOrArn", "documentation":"

A unique identifier for the build to get credentials for. You can use either the build ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "RequestUploadCredentialsOutput":{ "type":"structure", @@ -6164,8 +6733,7 @@ "shape":"S3Location", "documentation":"

Amazon S3 path and key, identifying where the game build files are stored.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "ResolveAliasInput":{ "type":"structure", @@ -6175,8 +6743,7 @@ "shape":"AliasIdOrArn", "documentation":"

The unique identifier of the alias that you want to retrieve a fleet ID for. You can use either the alias ID or ARN value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "ResolveAliasOutput":{ "type":"structure", @@ -6189,22 +6756,21 @@ "shape":"FleetArn", "documentation":"

The Amazon Resource Name (ARN) associated with the GameLift fleet resource that this alias points to.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "ResourceCreationLimitPolicy":{ "type":"structure", "members":{ "NewGameSessionsPerCreator":{ "shape":"WholeNumber", - "documentation":"

The maximum number of game sessions that an individual can create during the policy period.

" + "documentation":"

A policy that puts limits on the number of game sessions that a player can create within a specified span of time. With this policy, you can control players' ability to consume available resources.

The policy is evaluated when a player tries to create a new game session. On receiving a CreateGameSession request, GameLift checks that the player (identified by CreatorId) has created fewer than game session limit in the specified time period.

" }, "PolicyPeriodInMinutes":{ "shape":"WholeNumber", "documentation":"

The time span used in evaluating the resource creation limit policy.

" } }, - "documentation":"

A policy that puts limits on the number of game sessions that a player can create within a specified span of time. With this policy, you can control players' ability to consume available resources.

The policy is evaluated when a player tries to create a new game session. On receiving a CreateGameSession request, GameLift checks that the player (identified by CreatorId) has created fewer than game session limit in the specified time period.

The resource creation limit policy is included in FleetAttributes.

" + "documentation":"

A policy that puts limits on the number of game sessions that a player can create within a specified span of time. With this policy, you can control players' ability to consume available resources.

The policy is evaluated when a player tries to create a new game session. On receiving a CreateGameSession request, GameLift checks that the player (identified by CreatorId) has created fewer than game session limit in the specified time period.

" }, "ResumeGameServerGroupInput":{ "type":"structure", @@ -6215,7 +6781,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group. Use either the name or ARN value.

" }, "ResumeActions":{ "shape":"GameServerGroupActions", @@ -6237,7 +6803,7 @@ "members":{ "Type":{ "shape":"RoutingStrategyType", - "documentation":"

The type of routing strategy for the alias.

Possible routing types include the following:

  • SIMPLE - The alias resolves to one specific fleet. Use this type when routing to active fleets.

  • TERMINAL - The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the RoutingStrategy message embedded.

" + "documentation":"

The type of routing strategy for the alias.

Possible routing types include the following:

  • SIMPLE - The alias resolves to one specific fleet. Use this type when routing to active fleets.

  • TERMINAL - The alias does not resolve to a fleet but instead can be used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException with the message embedded.

" }, "FleetId":{ "shape":"FleetId", @@ -6248,7 +6814,7 @@ "documentation":"

The message text to be used with a terminal routing strategy.

" } }, - "documentation":"

The routing configuration for a fleet alias.

Related actions

CreateAlias | ListAliases | DescribeAlias | UpdateAlias | DeleteAlias | ResolveAlias | All APIs by task

" + "documentation":"

The routing configuration for a fleet alias.

Related actions

All APIs by task

" }, "RoutingStrategyType":{ "type":"string", @@ -6283,14 +6849,14 @@ "documentation":"

The maximum amount of time (in seconds) allowed to launch a new game session and have it report ready to host players. During this time, the game session is in status ACTIVATING. If the game session does not become active before the timeout, it is ended and the game session status is changed to TERMINATED.

" } }, - "documentation":"

A collection of server process configurations that describe the set of processes to run on each instance in a fleet. Server processes run either an executable in a custom game build or a Realtime Servers script. GameLift launches the configured processes, manages their life cycle, and replaces them as needed. Each instance checks regularly for an updated runtime configuration.

A GameLift instance is limited to 50 processes running concurrently. To calculate the total number of processes in a runtime configuration, add the values of the ConcurrentExecutions parameter for each ServerProcess. Learn more about Running Multiple Processes on a Fleet.

Related actions

DescribeRuntimeConfiguration | UpdateRuntimeConfiguration

" + "documentation":"

A collection of server process configurations that describe the set of processes to run on each instance in a fleet. Server processes run either an executable in a custom game build or a Realtime Servers script. GameLift launches the configured processes, manages their life cycle, and replaces them as needed. Each instance checks regularly for an updated runtime configuration.

A GameLift instance is limited to 50 processes running concurrently. To calculate the total number of processes in a runtime configuration, add the values of the ConcurrentExecutions parameter for each server process. Learn more about Running Multiple Processes on a Fleet.

" }, "S3Location":{ "type":"structure", "members":{ "Bucket":{ "shape":"NonEmptyString", - "documentation":"

An Amazon S3 bucket identifier. This is the name of the S3 bucket.

GameLift currently does not support uploading from Amazon S3 buckets with names that contain a dot (.).

" + "documentation":"

An Amazon S3 bucket identifier. Thename of the S3 bucket.

GameLift doesn't support uploading from Amazon S3 buckets with names that contain a dot (.).

" }, "Key":{ "shape":"NonEmptyString", @@ -6305,7 +6871,7 @@ "documentation":"

The version of the file, if object versioning is turned on for the bucket. Amazon GameLift uses this information when retrieving files from an S3 bucket that you own. Use this parameter to specify a specific version of the file. If not set, the latest version of the file is retrieved.

" } }, - "documentation":"

The location in Amazon S3 where build or script files are stored for access by Amazon GameLift. This location is specified in CreateBuild, CreateScript, and UpdateScript requests.

" + "documentation":"

The location in Amazon S3 where build or script files are stored for access by Amazon GameLift.

" }, "ScalingAdjustmentType":{ "type":"string", @@ -6332,7 +6898,7 @@ }, "Status":{ "shape":"ScalingStatusType", - "documentation":"

Current status of the scaling policy. The scaling policy can be in force only when in an ACTIVE status. Scaling policies can be suspended for individual fleets (see StopFleetActions; if suspended for a fleet, the policy status does not change. View a fleet's stopped actions by calling DescribeFleetCapacity.

  • ACTIVE -- The scaling policy can be used for auto-scaling a fleet.

  • UPDATE_REQUESTED -- A request to update the scaling policy has been received.

  • UPDATING -- A change is being made to the scaling policy.

  • DELETE_REQUESTED -- A request to delete the scaling policy has been received.

  • DELETING -- The scaling policy is being deleted.

  • DELETED -- The scaling policy has been deleted.

  • ERROR -- An error occurred in creating the policy. It should be removed and recreated.

" + "documentation":"

Current status of the scaling policy. The scaling policy can be in force only when in an ACTIVE status. Scaling policies can be suspended for individual fleets. If the policy is suspended for a fleet, the policy status does not change.

  • ACTIVE -- The scaling policy can be used for auto-scaling a fleet.

  • UPDATE_REQUESTED -- A request to update the scaling policy has been received.

  • UPDATING -- A change is being made to the scaling policy.

  • DELETE_REQUESTED -- A request to delete the scaling policy has been received.

  • DELETING -- The scaling policy is being deleted.

  • DELETED -- The scaling policy has been deleted.

  • ERROR -- An error occurred in creating the policy. It should be removed and recreated.

" }, "ScalingAdjustment":{ "shape":"Integer", @@ -6340,7 +6906,7 @@ }, "ScalingAdjustmentType":{ "shape":"ScalingAdjustmentType", - "documentation":"

The type of adjustment to make to a fleet's instance count (see FleetCapacity):

  • ChangeInCapacity -- add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down.

  • ExactCapacity -- set the instance count to the scaling adjustment value.

  • PercentChangeInCapacity -- increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down.

" + "documentation":"

The type of adjustment to make to a fleet's instance count.

  • ChangeInCapacity -- add (or subtract) the scaling adjustment value from the current instance count. Positive values scale up while negative values scale down.

  • ExactCapacity -- set the instance count to the scaling adjustment value.

  • PercentChangeInCapacity -- increase or reduce the current instance count by the scaling adjustment, read as a percentage. Positive values scale up while negative values scale down.

" }, "ComparisonOperator":{ "shape":"ComparisonOperatorType", @@ -6375,7 +6941,7 @@ "documentation":"

The fleet location.

" } }, - "documentation":"

Rule that controls how a fleet is scaled. Scaling policies are uniquely identified by the combination of name and fleet ID.

Related actions

DescribeFleetCapacity | UpdateFleetCapacity | DescribeEC2InstanceLimits | PutScalingPolicy | DescribeScalingPolicies | DeleteScalingPolicy | StopFleetActions | StartFleetActions | All APIs by task

" + "documentation":"

Rule that controls how a fleet is scaled. Scaling policies are uniquely identified by the combination of name and fleet ID.

" }, "ScalingPolicyList":{ "type":"list", @@ -6410,7 +6976,7 @@ }, "Version":{ "shape":"NonZeroAndMaxString", - "documentation":"

Version information that is associated with a build or script. Version strings do not need to be unique.

" + "documentation":"

Version information associated with a build or script. Version strings do not need to be unique.

" }, "SizeOnDisk":{ "shape":"PositiveLong", @@ -6420,9 +6986,12 @@ "shape":"Timestamp", "documentation":"

A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" }, - "StorageLocation":{"shape":"S3Location"} + "StorageLocation":{ + "shape":"S3Location", + "documentation":"

The location of the Amazon S3 bucket where a zipped file containing your Realtime scripts is stored. The storage location must specify the Amazon S3 bucket name, the zip file name (the \"key\"), and a role ARN that allows Amazon GameLift to access the Amazon S3 storage location. The S3 bucket must be in the same Region where you want to create a new script. By default, Amazon GameLift uploads the latest version of the zip file; if you have S3 object versioning turned on, you can use the ObjectVersion parameter to specify an earlier version.

" + } }, - "documentation":"

Properties describing a Realtime script.

Related actions

CreateScript | ListScripts | DescribeScript | UpdateScript | DeleteScript | All APIs by task

" + "documentation":"

Properties describing a Realtime script.

Related actions

All APIs by task

" }, "ScriptArn":{ "type":"string", @@ -6453,7 +7022,7 @@ }, "Location":{ "shape":"LocationStringModel", - "documentation":"

A fleet location to search for game sessions. You can specify a fleet's home Region or a remote location. Use the Amazon Web Services Region code format, such as us-west-2.

" + "documentation":"

A fleet location to search for game sessions. You can specify a fleet's home Region or a remote location. Use the Amazon Web Services Region code format, such as us-west-2.

" }, "FilterExpression":{ "shape":"NonZeroAndMaxString", @@ -6471,8 +7040,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates the start of the next sequential page of results. Use the token that is returned with a previous call to this operation. To start at the beginning of the result set, do not specify a value.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "SearchGameSessionsOutput":{ "type":"structure", @@ -6485,8 +7053,7 @@ "shape":"NonZeroAndMaxString", "documentation":"

A token that indicates where to resume retrieving results on the next call to this operation. If no token is returned, these results represent the end of the list.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "ServerProcess":{ "type":"structure", @@ -6508,7 +7075,7 @@ "documentation":"

The number of server processes using this configuration that run concurrently on each instance.

" } }, - "documentation":"

A set of instructions for launching server processes on each instance in a fleet. Server processes run either an executable in a custom game build or a Realtime Servers script. Server process configurations are part of a fleet's RuntimeConfiguration.

" + "documentation":"

A set of instructions for launching server processes on each instance in a fleet. Server processes run either an executable in a custom game build or a Realtime Servers script. Server process configurations are part of a fleet's runtime configuration.

" }, "ServerProcessList":{ "type":"list", @@ -6516,6 +7083,12 @@ "max":50, "min":1 }, + "ServerSdkVersion":{ + "type":"string", + "documentation":"Data type used for server SDK version.", + "max":128, + "pattern":"^\\d+\\.\\d+\\.\\d+$" + }, "SnsArnStringModel":{ "type":"string", "max":300, @@ -6548,8 +7121,7 @@ "shape":"LocationStringModel", "documentation":"

The fleet location to restart fleet actions for. Specify a location in the form of an Amazon Web Services Region code, such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "StartFleetActionsOutput":{ "type":"structure", @@ -6562,8 +7134,7 @@ "shape":"FleetArn", "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "StartGameSessionPlacementInput":{ "type":"structure", @@ -6575,7 +7146,7 @@ "members":{ "PlacementId":{ "shape":"IdStringModel", - "documentation":"

A unique identifier to assign to the new game session placement. This value is developer-defined. The value must be unique across all Regions and cannot be reused unless you are resubmitting a canceled or timed-out placement request.

" + "documentation":"

A unique identifier to assign to the new game session placement. This value is developer-defined. The value must be unique across all Regions and cannot be reused.

" }, "GameSessionQueueName":{ "shape":"GameSessionQueueNameOrArn", @@ -6583,7 +7154,7 @@ }, "GameProperties":{ "shape":"GamePropertyList", - "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session).

" + "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process with a request to start a new game session (see Start a Game Session).

" }, "MaximumPlayerSessionCount":{ "shape":"WholeNumber", @@ -6595,7 +7166,7 @@ }, "PlayerLatencies":{ "shape":"PlayerLatencyList", - "documentation":"

A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to @aws; Regions. This information is used to try to place the new game session where it can offer the best possible gameplay experience for the players.

" + "documentation":"

A set of values, expressed in milliseconds, that indicates the amount of latency that a player experiences when connected to Amazon Web Services Regions. This information is used to try to place the new game session where it can offer the best possible gameplay experience for the players.

" }, "DesiredPlayerSessions":{ "shape":"DesiredPlayerSessionList", @@ -6603,10 +7174,9 @@ }, "GameSessionData":{ "shape":"LargeGameSessionData", - "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session).

" + "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session).

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "StartGameSessionPlacementOutput":{ "type":"structure", @@ -6615,8 +7185,7 @@ "shape":"GameSessionPlacement", "documentation":"

Object that describes the newly created game session placement. This object includes all the information provided in the request, as well as start/end time stamps and placement status.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "StartMatchBackfillInput":{ "type":"structure", @@ -6631,7 +7200,7 @@ }, "ConfigurationName":{ "shape":"MatchmakingConfigurationName", - "documentation":"

Name of the matchmaker to use for this request. You can use either the configuration name or ARN value. The ARN of the matchmaker that was used with the original game session is listed in the GameSession object, MatchmakerData property.

" + "documentation":"

Name of the matchmaker to use for this request. You can use either the configuration name or ARN value. The ARN of the matchmaker that was used with the original game session is listed in the GameSession object, MatchmakerData property.

" }, "GameSessionArn":{ "shape":"ArnStringModel", @@ -6639,10 +7208,9 @@ }, "Players":{ "shape":"PlayerList", - "documentation":"

Match information on all players that are currently assigned to the game session. This information is used by the matchmaker to find new players and add them to the existing game.

  • PlayerID, PlayerAttributes, Team -- This information is maintained in the GameSession object, MatchmakerData property, for all players who are currently assigned to the game session. The matchmaker data is in JSON syntax, formatted as a string. For more details, see Match Data.

    The backfill request must specify the team membership for every player. Do not specify team if you are not using backfill.

  • LatencyInMs -- If the matchmaker uses player latency, include a latency value, in milliseconds, for the Region that the game session is currently in. Do not include latency values for any other Region.

" + "documentation":"

Match information on all players that are currently assigned to the game session. This information is used by the matchmaker to find new players and add them to the existing game.

You can include up to 199 Players in a StartMatchBackfill request.

  • PlayerID, PlayerAttributes, Team -- This information is maintained in the GameSession object, MatchmakerData property, for all players who are currently assigned to the game session. The matchmaker data is in JSON syntax, formatted as a string. For more details, see Match Data.

    The backfill request must specify the team membership for every player. Do not specify team if you are not using backfill.

  • LatencyInMs -- If the matchmaker uses player latency, include a latency value, in milliseconds, for the Region that the game session is currently in. Do not include latency values for any other Region.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "StartMatchBackfillOutput":{ "type":"structure", @@ -6651,8 +7219,7 @@ "shape":"MatchmakingTicket", "documentation":"

Ticket representing the backfill matchmaking request. This object includes the information in the request, ticket status, and match results as generated during the matchmaking process.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "StartMatchmakingInput":{ "type":"structure", @@ -6671,10 +7238,9 @@ }, "Players":{ "shape":"PlayerList", - "documentation":"

Information on each player to be matched. This information must include a player ID, and may contain player attributes and latency data to be used in the matchmaking process. After a successful match, Player objects contain the name of the team the player is assigned to.

" + "documentation":"

Information on each player to be matched. This information must include a player ID, and may contain player attributes and latency data to be used in the matchmaking process. After a successful match, Player objects contain the name of the team the player is assigned to.

You can include up to 10 Players in a StartMatchmaking request.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "StartMatchmakingOutput":{ "type":"structure", @@ -6683,8 +7249,7 @@ "shape":"MatchmakingTicket", "documentation":"

Ticket representing the matchmaking request. This object include the information included in the request, ticket status, and match results as generated during the matchmaking process.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "StopFleetActionsInput":{ "type":"structure", @@ -6705,8 +7270,7 @@ "shape":"LocationStringModel", "documentation":"

The fleet location to stop fleet actions for. Specify a location in the form of an Amazon Web Services Region code, such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "StopFleetActionsOutput":{ "type":"structure", @@ -6719,8 +7283,7 @@ "shape":"FleetArn", "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "StopGameSessionPlacementInput":{ "type":"structure", @@ -6728,10 +7291,9 @@ "members":{ "PlacementId":{ "shape":"IdStringModel", - "documentation":"

A unique identifier for a game session placement to cancel.

" + "documentation":"

A unique identifier for a game session placement to stop.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "StopGameSessionPlacementOutput":{ "type":"structure", @@ -6740,8 +7302,7 @@ "shape":"GameSessionPlacement", "documentation":"

Object that describes the canceled game session placement, with CANCELLED status and an end time stamp.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "StopMatchmakingInput":{ "type":"structure", @@ -6751,19 +7312,13 @@ "shape":"MatchmakingIdStringModel", "documentation":"

A unique identifier for a matchmaking ticket.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "StopMatchmakingOutput":{ "type":"structure", "members":{ } }, - "StringDoubleMap":{ - "type":"map", - "key":{"shape":"NonZeroAndMaxString"}, - "value":{"shape":"DoubleObject"} - }, "StringList":{ "type":"list", "member":{"shape":"NonZeroAndMaxString"} @@ -6778,7 +7333,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group. Use either the name or ARN value.

" }, "SuspendActions":{ "shape":"GameServerGroupActions", @@ -6804,14 +7359,14 @@ "members":{ "Key":{ "shape":"TagKey", - "documentation":"

The key for a developer-defined key:value pair for tagging an Amazon Web Services resource.

" + "documentation":"

The key for a developer-defined key:value pair for tagging an Amazon Web Services resource.

" }, "Value":{ "shape":"TagValue", - "documentation":"

The value for a developer-defined key:value pair for tagging an Amazon Web Services resource.

" + "documentation":"

The value for a developer-defined key:value pair for tagging an Amazon Web Services resource.

" } }, - "documentation":"

A label that can be assigned to a GameLift resource.

Learn more

Tagging Amazon Web Services Resources in the Amazon Web Services General Reference

Amazon Web Services Tagging Strategies

Related actions

TagResource | UntagResource | ListTagsForResource | All APIs by task

" + "documentation":"

A label that can be assigned to a GameLift resource.

Learn more

Tagging Amazon Web Services Resources in the Amazon Web Services General Reference

Amazon Web Services Tagging Strategies

Related actions

All APIs by task

" }, "TagKey":{ "type":"string", @@ -6839,7 +7394,7 @@ "members":{ "ResourceARN":{ "shape":"AmazonResourceName", - "documentation":"

The Amazon Resource Name (ARN) that is assigned to and uniquely identifies the GameLift resource that you want to assign tags to. GameLift resource ARNs are included in the data object for the resource, which can be retrieved by calling a List or Describe operation for the resource type.

" + "documentation":"

The Amazon Resource Name (ARN) that is assigned to and uniquely identifies the GameLift resource that you want to assign tags to. GameLift resource ARNs are included in the data object for the resource, which can be retrieved by calling a List or Describe operation for the resource type.

" }, "Tags":{ "shape":"TagList", @@ -6862,7 +7417,7 @@ "members":{ "Message":{"shape":"NonEmptyString"} }, - "documentation":"

The requested tagging operation did not succeed. This may be due to invalid tag format or the maximum tag limit may have been exceeded. Resolve the issue before retrying.

", + "documentation":"

The requested tagging operation did not succeed. This may be due to invalid tag format or the maximum tag limit may have been exceeded. Resolve the issue before retrying.

", "exception":true }, "TargetConfiguration":{ @@ -6874,7 +7429,7 @@ "documentation":"

Desired value to use with a target-based scaling policy. The value must be relevant for whatever metric the scaling policy is using. For example, in a policy using the metric PercentAvailableGameSessions, the target value should be the preferred size of the fleet's buffer (the percent of capacity that should be idle and ready for new game sessions).

" } }, - "documentation":"

Settings for a target-based scaling policy (see ScalingPolicy. A target-based policy tracks a particular fleet metric specifies a target value for the metric. As player usage changes, the policy triggers Amazon GameLift to adjust capacity so that the metric returns to the target value. The target configuration specifies settings as needed for the target based policy, including the target value.

Related actions

DescribeFleetCapacity | UpdateFleetCapacity | DescribeEC2InstanceLimits | PutScalingPolicy | DescribeScalingPolicies | DeleteScalingPolicy | StopFleetActions | StartFleetActions | All APIs by task

" + "documentation":"

Settings for a target-based scaling policy. A target-based policy tracks a particular fleet metric specifies a target value for the metric. As player usage changes, the policy triggers Amazon GameLift to adjust capacity so that the metric returns to the target value. The target configuration specifies settings as needed for the target based policy, including the target value.

" }, "TargetTrackingConfiguration":{ "type":"structure", @@ -6885,14 +7440,14 @@ "documentation":"

Desired value to use with a game server group target-based scaling policy.

" } }, - "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Settings for a target-based scaling policy as part of a GameServerGroupAutoScalingPolicy. These settings are used to create a target-based policy that tracks the GameLift FleetIQ metric \"PercentUtilizedGameServers\" and specifies a target value for the metric. As player usage changes, the policy triggers to adjust the game server group capacity so that the metric returns to the target value.

" + "documentation":"

This data type is used with the GameLift FleetIQ and game server groups.

Settings for a target-based scaling policy as part of a GameServerGroupAutoScalingPolicy . These settings are used to create a target-based policy that tracks the GameLift FleetIQ metric \"PercentUtilizedGameServers\" and specifies a target value for the metric. As player usage changes, the policy triggers to adjust the game server group capacity so that the metric returns to the target value.

" }, "TerminalRoutingStrategyException":{ "type":"structure", "members":{ "Message":{"shape":"NonEmptyString"} }, - "documentation":"

The service is unable to resolve the routing for a particular alias because it has a terminal RoutingStrategy associated with it. The message returned in this exception is the message defined in the routing strategy itself. Such requests should only be retried if the routing strategy for the specified alias is modified.

", + "documentation":"

The service is unable to resolve the routing for a particular alias because it has a terminal RoutingStrategy associated with it. The message returned in this exception is the message defined in the routing strategy itself. Such requests should only be retried if the routing strategy for the specified alias is modified.

", "exception":true }, "Timestamp":{"type":"timestamp"}, @@ -6954,8 +7509,7 @@ "shape":"RoutingStrategy", "documentation":"

The routing configuration, including routing type and fleet target, for the alias.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "UpdateAliasOutput":{ "type":"structure", @@ -6964,8 +7518,7 @@ "shape":"Alias", "documentation":"

The updated alias resource.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "UpdateBuildInput":{ "type":"structure", @@ -6977,14 +7530,13 @@ }, "Name":{ "shape":"NonZeroAndMaxString", - "documentation":"

A descriptive label that is associated with a build. Build names do not need to be unique.

" + "documentation":"

A descriptive label associated with a build. Build names do not need to be unique.

" }, "Version":{ "shape":"NonZeroAndMaxString", - "documentation":"

Version information that is associated with a build or script. Version strings do not need to be unique.

" + "documentation":"

Version information associated with a build or script. Version strings do not need to be unique.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "UpdateBuildOutput":{ "type":"structure", @@ -6993,8 +7545,7 @@ "shape":"Build", "documentation":"

The updated build resource.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "UpdateFleetAttributesInput":{ "type":"structure", @@ -7014,7 +7565,7 @@ }, "NewGameSessionProtectionPolicy":{ "shape":"ProtectionPolicy", - "documentation":"

The game session protection policy to apply to all new instances created in this fleet. Instances that already exist are not affected. You can set protection for individual instances using UpdateGameSession.

  • NoProtection -- The game session can be terminated during a scale-down event.

  • FullProtection -- If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event.

" + "documentation":"

The game session protection policy to apply to all new instances created in this fleet. Instances that already exist are not affected. You can set protection for individual instances using UpdateGameSession .

  • NoProtection -- The game session can be terminated during a scale-down event.

  • FullProtection -- If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event.

" }, "ResourceCreationLimitPolicy":{ "shape":"ResourceCreationLimitPolicy", @@ -7023,9 +7574,12 @@ "MetricGroups":{ "shape":"MetricGroupList", "documentation":"

The name of a metric group to add this fleet to. Use a metric group in Amazon CloudWatch to aggregate the metrics from multiple fleets. Provide an existing metric group name, or create a new metric group by providing a new name. A fleet can only be in one metric group at a time.

" + }, + "AnywhereConfiguration":{ + "shape":"AnywhereConfiguration", + "documentation":"

GameLift Anywhere configuration options.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "UpdateFleetAttributesOutput":{ "type":"structure", @@ -7033,9 +7587,12 @@ "FleetId":{ "shape":"FleetId", "documentation":"

A unique identifier for the fleet that was updated.

" + }, + "FleetArn":{ + "shape":"FleetArn", + "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "UpdateFleetCapacityInput":{ "type":"structure", @@ -7061,8 +7618,7 @@ "shape":"LocationStringModel", "documentation":"

The name of a remote location to update fleet capacity settings for, in the form of an Amazon Web Services Region code such as us-west-2.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "UpdateFleetCapacityOutput":{ "type":"structure", @@ -7079,8 +7635,7 @@ "shape":"LocationStringModel", "documentation":"

The remote location being updated, expressed as an Amazon Web Services Region code, such as us-west-2.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "UpdateFleetPortSettingsInput":{ "type":"structure", @@ -7098,8 +7653,7 @@ "shape":"IpPermissionsList", "documentation":"

A collection of port settings to be removed from the fleet resource.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "UpdateFleetPortSettingsOutput":{ "type":"structure", @@ -7107,9 +7661,12 @@ "FleetId":{ "shape":"FleetId", "documentation":"

A unique identifier for the fleet that was updated.

" + }, + "FleetArn":{ + "shape":"FleetArn", + "documentation":"

The Amazon Resource Name (ARN) that is assigned to a GameLift fleet resource and uniquely identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "UpdateGameServerGroupInput":{ "type":"structure", @@ -7117,7 +7674,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group. Use either the name or ARN value.

" }, "RoleArn":{ "shape":"IamRoleArn", @@ -7155,7 +7712,7 @@ "members":{ "GameServerGroupName":{ "shape":"GameServerGroupNameOrArn", - "documentation":"

A unique identifier for the game server group where the game server is running. Use either the GameServerGroup name or ARN value.

" + "documentation":"

A unique identifier for the game server group where the game server is running.

" }, "GameServerId":{ "shape":"GameServerId", @@ -7163,7 +7720,7 @@ }, "GameServerData":{ "shape":"GameServerData", - "documentation":"

A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers using ListGameServers or ClaimGameServer.

" + "documentation":"

A set of custom game server properties, formatted as a single string value. This data is passed to a game client or service when it requests information on game servers.

" }, "UtilizationStatus":{ "shape":"GameServerUtilizationStatus", @@ -7208,8 +7765,7 @@ "shape":"ProtectionPolicy", "documentation":"

Game session protection policy to apply to this game session only.

  • NoProtection -- The game session can be terminated during a scale-down event.

  • FullProtection -- If the game session is in an ACTIVE status, it cannot be terminated during a scale-down event.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "UpdateGameSessionOutput":{ "type":"structure", @@ -7218,8 +7774,7 @@ "shape":"GameSession", "documentation":"

The updated game session properties.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "UpdateGameSessionQueueInput":{ "type":"structure", @@ -7251,14 +7806,13 @@ }, "CustomEventData":{ "shape":"QueueCustomEventData", - "documentation":"

Information to be added to all events that are related to this game session queue.

" + "documentation":"

Information to be added to all events that are related to this game session queue.

" }, "NotificationTarget":{ "shape":"QueueSnsArnStringModel", "documentation":"

An SNS topic ARN that is set up to receive game session placement notifications. See Setting up notifications for game session placement.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "UpdateGameSessionQueueOutput":{ "type":"structure", @@ -7267,8 +7821,7 @@ "shape":"GameSessionQueue", "documentation":"

An object that describes the newly updated game session queue.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "UpdateMatchmakingConfigurationInput":{ "type":"structure", @@ -7280,7 +7833,7 @@ }, "Description":{ "shape":"NonZeroAndMaxString", - "documentation":"

A descriptive label that is associated with matchmaking configuration.

" + "documentation":"

A description for the matchmaking configuration.

" }, "GameSessionQueueArns":{ "shape":"QueueArnsList", @@ -7316,22 +7869,21 @@ }, "GameProperties":{ "shape":"GamePropertyList", - "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used if FlexMatchMode is set to STANDALONE.

" + "documentation":"

A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a game server process with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used if FlexMatchMode is set to STANDALONE.

" }, "GameSessionData":{ "shape":"GameSessionData", - "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process in the GameSession object with a request to start a new game session (see Start a Game Session). This information is added to the new GameSession object that is created for a successful match. This parameter is not used if FlexMatchMode is set to STANDALONE.

" + "documentation":"

A set of custom game session properties, formatted as a single string value. This data is passed to a game server process with a request to start a new game session (see Start a Game Session). This information is added to the game session that is created for a successful match. This parameter is not used if FlexMatchMode is set to STANDALONE.

" }, "BackfillMode":{ "shape":"BackfillMode", - "documentation":"

The method that is used to backfill game sessions created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a StartMatchBackfill request whenever a game session has one or more open slots. Learn more about manual and automatic backfill in Backfill Existing Games with FlexMatch. Automatic backfill is not available when FlexMatchMode is set to STANDALONE.

" + "documentation":"

The method that is used to backfill game sessions created with this matchmaking configuration. Specify MANUAL when your game manages backfill requests manually or does not use the match backfill feature. Specify AUTOMATIC to have GameLift create a match backfill request whenever a game session has one or more open slots. Learn more about manual and automatic backfill in Backfill Existing Games with FlexMatch. Automatic backfill is not available when FlexMatchMode is set to STANDALONE.

" }, "FlexMatchMode":{ "shape":"FlexMatchMode", "documentation":"

Indicates whether this matchmaking configuration is being used with GameLift hosting or as a standalone matchmaking solution.

  • STANDALONE - FlexMatch forms matches and returns match information, including players and team assignments, in a MatchmakingSucceeded event.

  • WITH_QUEUE - FlexMatch forms matches and uses the specified GameLift queue to start a game session for the match.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "UpdateMatchmakingConfigurationOutput":{ "type":"structure", @@ -7340,8 +7892,7 @@ "shape":"MatchmakingConfiguration", "documentation":"

The updated matchmaking configuration.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "UpdateRuntimeConfigurationInput":{ "type":"structure", @@ -7356,10 +7907,9 @@ }, "RuntimeConfiguration":{ "shape":"RuntimeConfiguration", - "documentation":"

Instructions for launching server processes on each instance in the fleet. Server processes run either a custom game build executable or a Realtime Servers script. The runtime configuration lists the types of server processes to run on an instance, how to launch them, and the number of processes to run concurrently.

" + "documentation":"

Instructions for alaunching server processes on each instance in the fleet. Server processes run either a custom game build executable or a Realtime Servers script. The runtime configuration lists the types of server processes to run on an instance, how to launch them, and the number of processes to run concurrently.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "UpdateRuntimeConfigurationOutput":{ "type":"structure", @@ -7368,8 +7918,7 @@ "shape":"RuntimeConfiguration", "documentation":"

The runtime configuration currently in use by all instances in the fleet. If the update was successful, all property changes are shown.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "UpdateScriptInput":{ "type":"structure", @@ -7385,7 +7934,7 @@ }, "Version":{ "shape":"NonZeroAndMaxString", - "documentation":"

Version information that is associated with a build or script. Version strings do not need to be unique.

" + "documentation":"

Version information associated with a build or script. Version strings do not need to be unique.

" }, "StorageLocation":{ "shape":"S3Location", @@ -7414,8 +7963,7 @@ "shape":"RuleSetBody", "documentation":"

A collection of matchmaking rules to validate, formatted as a JSON string.

" } - }, - "documentation":"

Represents the input for a request operation.

" + } }, "ValidateMatchmakingRuleSetOutput":{ "type":"structure", @@ -7424,8 +7972,7 @@ "shape":"BooleanModel", "documentation":"

A response indicating whether the rule set is valid.

" } - }, - "documentation":"

Represents the returned data in response to a request operation.

" + } }, "VpcPeeringAuthorization":{ "type":"structure", @@ -7436,7 +7983,7 @@ }, "PeerVpcAwsAccountId":{ "shape":"NonZeroAndMaxString", - "documentation":"

" + "documentation":"

The authorization's peer VPC Amazon Web Services account ID.

" }, "PeerVpcId":{ "shape":"NonZeroAndMaxString", @@ -7451,7 +7998,7 @@ "documentation":"

Time stamp indicating when this authorization expires (24 hours after issuance). Format is a number expressed in Unix time as milliseconds (for example \"1469498468.057\").

" } }, - "documentation":"

Represents an authorization for a VPC peering connection between the VPC for an Amazon GameLift fleet and another VPC on an account you have access to. This authorization must exist and be valid for the peering connection to be established. Authorizations are valid for 24 hours after they are issued.

Related actions

CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | CreateVpcPeeringConnection | DescribeVpcPeeringConnections | DeleteVpcPeeringConnection | All APIs by task

" + "documentation":"

Represents an authorization for a VPC peering connection between the VPC for an Amazon GameLift fleet and another VPC on an account you have access to. This authorization must exist and be valid for the peering connection to be established. Authorizations are valid for 24 hours after they are issued.

Related actions

All APIs by task

" }, "VpcPeeringAuthorizationList":{ "type":"list", @@ -7466,7 +8013,7 @@ }, "FleetArn":{ "shape":"FleetArn", - "documentation":"

The Amazon Resource Name (ARN) associated with the GameLift fleet resource for this connection.

" + "documentation":"

The Amazon Resource Name (ARN) associated with the GameLift fleet resource for this connection.

" }, "IpV4CidrBlock":{ "shape":"NonZeroAndMaxString", @@ -7474,7 +8021,7 @@ }, "VpcPeeringConnectionId":{ "shape":"NonZeroAndMaxString", - "documentation":"

A unique identifier that is automatically assigned to the connection record. This ID is referenced in VPC peering connection events, and is used when deleting a connection with DeleteVpcPeeringConnection.

" + "documentation":"

A unique identifier that is automatically assigned to the connection record. This ID is referenced in VPC peering connection events, and is used when deleting a connection.

" }, "Status":{ "shape":"VpcPeeringConnectionStatus", @@ -7489,7 +8036,7 @@ "documentation":"

A unique identifier for the VPC that contains the Amazon GameLift fleet for this connection. This VPC is managed by Amazon GameLift and does not appear in your Amazon Web Services account.

" } }, - "documentation":"

Represents a peering connection between a VPC on one of your Amazon Web Services accounts and the VPC for your Amazon GameLift fleets. This record may be for an active peering connection or a pending connection that has not yet been established.

Related actions

CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | CreateVpcPeeringConnection | DescribeVpcPeeringConnections | DeleteVpcPeeringConnection | All APIs by task

" + "documentation":"

Represents a peering connection between a VPC on one of your Amazon Web Services accounts and the VPC for your Amazon GameLift fleets. This record may be for an active peering connection or a pending connection that has not yet been established.

Related actions

All APIs by task

" }, "VpcPeeringConnectionList":{ "type":"list", @@ -7507,7 +8054,7 @@ "documentation":"

Additional messaging associated with the connection status.

" } }, - "documentation":"

Represents status information for a VPC peering connection. Status is associated with a VpcPeeringConnection object. Status codes and messages are provided from EC2 (see VpcPeeringConnectionStateReason). Connection status information is also communicated as a fleet Event.

" + "documentation":"

Represents status information for a VPC peering connection. Status codes and messages are provided from EC2 (see VpcPeeringConnectionStateReason). Connection status information is also communicated as a fleet event.

" }, "VpcSubnet":{ "type":"string", @@ -7536,5 +8083,5 @@ "max":5000000 } }, - "documentation":"GameLift Service

Amazon Web Services provides solutions for hosting session-based multiplayer game servers in the cloud, including tools for deploying, operating, and scaling game servers. Built on Amazon Web Services global computing infrastructure, GameLift helps you deliver high-performance, high-reliability, low-cost game servers while dynamically scaling your resource usage to meet player demand.

About GameLift solutions

Get more information on these GameLift solutions in the GameLift Developer Guide.

  • GameLift managed hosting -- GameLift offers a fully managed service to set up and maintain computing machines for hosting, manage game session and player session life cycle, and handle security, storage, and performance tracking. You can use automatic scaling tools to balance player demand and hosting costs, configure your game session management to minimize player latency, and add FlexMatch for matchmaking.

  • Managed hosting with Realtime Servers -- With GameLift Realtime Servers, you can quickly configure and set up ready-to-go game servers for your game. Realtime Servers provides a game server framework with core GameLift infrastructure already built in. Then use the full range of GameLift managed hosting features, including FlexMatch, for your game.

  • GameLift FleetIQ -- Use GameLift FleetIQ as a standalone service while hosting your games using EC2 instances and Auto Scaling groups. GameLift FleetIQ provides optimizations for game hosting, including boosting the viability of low-cost Spot Instances gaming. For a complete solution, pair the GameLift FleetIQ and FlexMatch standalone services.

  • GameLift FlexMatch -- Add matchmaking to your game hosting solution. FlexMatch is a customizable matchmaking service for multiplayer games. Use FlexMatch as integrated with GameLift managed hosting or incorporate FlexMatch as a standalone service into your own hosting solution.

About this API Reference

This reference guide describes the low-level service API for Amazon Web Services. With each topic in this guide, you can find links to language-specific SDK guides and the Amazon Web Services CLI reference. Useful links:

" + "documentation":"

Amazon GameLift provides solutions for hosting session-based multiplayer game servers in the cloud, including tools for deploying, operating, and scaling game servers. Built on Amazon Web Services global computing infrastructure, GameLift helps you deliver high-performance, high-reliability, low-cost game servers while dynamically scaling your resource usage to meet player demand.

About GameLift solutions

Get more information on these GameLift solutions in the GameLift Developer Guide.

  • GameLift managed hosting -- GameLift offers a fully managed service to set up and maintain computing machines for hosting, manage game session and player session life cycle, and handle security, storage, and performance tracking. You can use automatic scaling tools to balance player demand and hosting costs, configure your game session management to minimize player latency, and add FlexMatch for matchmaking.

  • Managed hosting with Realtime Servers -- With GameLift Realtime Servers, you can quickly configure and set up ready-to-go game servers for your game. Realtime Servers provides a game server framework with core GameLift infrastructure already built in. Then use the full range of GameLift managed hosting features, including FlexMatch, for your game.

  • GameLift FleetIQ -- Use GameLift FleetIQ as a standalone service while hosting your games using EC2 instances and Auto Scaling groups. GameLift FleetIQ provides optimizations for game hosting, including boosting the viability of low-cost Spot Instances gaming. For a complete solution, pair the GameLift FleetIQ and FlexMatch standalone services.

  • GameLift FlexMatch -- Add matchmaking to your game hosting solution. FlexMatch is a customizable matchmaking service for multiplayer games. Use FlexMatch as integrated with GameLift managed hosting or incorporate FlexMatch as a standalone service into your own hosting solution.

About this API Reference

This reference guide describes the low-level service API for Amazon GameLift. With each topic in this guide, you can find links to language-specific SDK guides and the Amazon Web Services CLI reference. Useful links:

" } diff --git a/botocore/data/gamesparks/2021-08-17/endpoint-rule-set-1.json b/botocore/data/gamesparks/2021-08-17/endpoint-rule-set-1.json new file mode 100644 index 00000000..d80f7a88 --- /dev/null +++ b/botocore/data/gamesparks/2021-08-17/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://gamesparks-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://gamesparks-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://gamesparks.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://gamesparks.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/gamesparks/2021-08-17/examples-1.json b/botocore/data/gamesparks/2021-08-17/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/gamesparks/2021-08-17/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/gamesparks/2021-08-17/service-2.json b/botocore/data/gamesparks/2021-08-17/service-2.json index fea6612f..4247cae6 100644 --- a/botocore/data/gamesparks/2021-08-17/service-2.json +++ b/botocore/data/gamesparks/2021-08-17/service-2.json @@ -1101,7 +1101,7 @@ "type":"string", "max":10, "min":5, - "pattern":"^(\\d|[1-9]\\d*)\\.(\\d|[0-9]\\d*)\\.(\\d|[0-9]\\d*)$" + "pattern":"^((\\d|[1-9]\\d*)\\.(\\d|[0-9]\\d*)\\.(\\d|[0-9]\\d*)|LATEST)$" }, "GameState":{ "type":"string", diff --git a/botocore/data/glacier/2012-06-01/endpoint-rule-set-1.json b/botocore/data/glacier/2012-06-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..12ea9ef9 --- /dev/null +++ b/botocore/data/glacier/2012-06-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://glacier-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://glacier-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://glacier.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://glacier.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/globalaccelerator/2018-08-08/endpoint-rule-set-1.json b/botocore/data/globalaccelerator/2018-08-08/endpoint-rule-set-1.json new file mode 100644 index 00000000..66e10dd2 --- /dev/null +++ b/botocore/data/globalaccelerator/2018-08-08/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://globalaccelerator-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://globalaccelerator-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://globalaccelerator.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://globalaccelerator.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/globalaccelerator/2018-08-08/examples-1.json b/botocore/data/globalaccelerator/2018-08-08/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/globalaccelerator/2018-08-08/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/globalaccelerator/2018-08-08/service-2.json b/botocore/data/globalaccelerator/2018-08-08/service-2.json index f6b786e3..0069e900 100644 --- a/botocore/data/globalaccelerator/2018-08-08/service-2.json +++ b/botocore/data/globalaccelerator/2018-08-08/service-2.json @@ -32,6 +32,24 @@ ], "documentation":"

Associate a virtual private cloud (VPC) subnet endpoint with your custom routing accelerator.

The listener port range must be large enough to support the number of IP addresses that can be specified in your subnet. The number of ports required is: subnet size times the number of ports per destination EC2 instances. For example, a subnet defined as /24 requires a listener port range of at least 255 ports.

Note: You must have enough remaining listener ports available to map to the subnet ports, or the call will fail with a LimitExceededException.

By default, all destinations in a subnet in a custom routing accelerator cannot receive traffic. To enable all destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the AllowCustomRoutingTraffic operation.

" }, + "AddEndpoints":{ + "name":"AddEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddEndpointsRequest"}, + "output":{"shape":"AddEndpointsResponse"}, + "errors":[ + {"shape":"TransactionInProgressException"}, + {"shape":"EndpointGroupNotFoundException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"LimitExceededException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Add endpoints to an endpoint group. The AddEndpoints API operation is the recommended option for adding endpoints. The alternative options are to add endpoints when you create an endpoint group (with the CreateEndpointGroup API) or when you update an endpoint group (with the UpdateEndpointGroup API).

There are two advantages to using AddEndpoints to add endpoints:

  • It's faster, because Global Accelerator only has to resolve the new endpoints that you're adding.

  • It's more convenient, because you don't need to specify all of the current endpoints that are already in the endpoint group in addition to the new endpoints that you want to add.

" + }, "AdvertiseByoipCidr":{ "name":"AdvertiseByoipCidr", "http":{ @@ -47,7 +65,7 @@ {"shape":"ByoipCidrNotFoundException"}, {"shape":"IncorrectCidrStateException"} ], - "documentation":"

Advertises an IPv4 address range that is provisioned for use with your AWS resources through bring your own IP addresses (BYOIP). It can take a few minutes before traffic to the specified addresses starts routing to AWS because of propagation delays.

To stop advertising the BYOIP address range, use WithdrawByoipCidr.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Advertises an IPv4 address range that is provisioned for use with your Amazon Web Services resources through bring your own IP addresses (BYOIP). It can take a few minutes before traffic to the specified addresses starts routing to Amazon Web Services because of propagation delays.

To stop advertising the BYOIP address range, use WithdrawByoipCidr.

For more information, see Bring your own IP addresses (BYOIP) in the Global Accelerator Developer Guide.

" }, "AllowCustomRoutingTraffic":{ "name":"AllowCustomRoutingTraffic", @@ -57,6 +75,7 @@ }, "input":{"shape":"AllowCustomRoutingTrafficRequest"}, "errors":[ + {"shape":"EndpointGroupNotFoundException"}, {"shape":"InvalidArgumentException"}, {"shape":"InternalServiceErrorException"} ], @@ -75,7 +94,7 @@ {"shape":"InvalidArgumentException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers.

Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the US West (Oregon) Region to create or update accelerators.

" + "documentation":"

Create an accelerator. An accelerator includes one or more listeners that process inbound connections and direct traffic to one or more endpoint groups, each of which includes endpoints, such as Network Load Balancers.

Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for example, specify --region us-west-2 on AWS CLI commands.

" }, "CreateCustomRoutingAccelerator":{ "name":"CreateCustomRoutingAccelerator", @@ -91,7 +110,7 @@ {"shape":"LimitExceededException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Create a custom routing accelerator. A custom routing accelerator directs traffic to one of possibly thousands of Amazon EC2 instance destinations running in a single or multiple virtual private clouds (VPC) subnet endpoints.

Be aware that, by default, all destination EC2 instances in a VPC subnet endpoint cannot receive traffic. To enable all destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the AllowCustomRoutingTraffic operation.

Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the US West (Oregon) Region to create or update accelerators.

" + "documentation":"

Create a custom routing accelerator. A custom routing accelerator directs traffic to one of possibly thousands of Amazon EC2 instance destinations running in a single or multiple virtual private clouds (VPC) subnet endpoints.

Be aware that, by default, all destination EC2 instances in a VPC subnet endpoint cannot receive traffic. To enable all destinations to receive traffic, or to specify individual port mappings that can receive traffic, see the AllowCustomRoutingTraffic operation.

Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for example, specify --region us-west-2 on AWS CLI commands.

" }, "CreateCustomRoutingEndpointGroup":{ "name":"CreateCustomRoutingEndpointGroup", @@ -111,7 +130,7 @@ {"shape":"LimitExceededException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Create an endpoint group for the specified listener for a custom routing accelerator. An endpoint group is a collection of endpoints in one AWS Region.

" + "documentation":"

Create an endpoint group for the specified listener for a custom routing accelerator. An endpoint group is a collection of endpoints in one Amazon Web Services Region.

" }, "CreateCustomRoutingListener":{ "name":"CreateCustomRoutingListener", @@ -147,7 +166,7 @@ {"shape":"LimitExceededException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Create an endpoint group for the specified listener. An endpoint group is a collection of endpoints in one AWS Region. A resource must be valid and active when you add it as an endpoint.

" + "documentation":"

Create an endpoint group for the specified listener. An endpoint group is a collection of endpoints in one Amazon Web Services Region. A resource must be valid and active when you add it as an endpoint.

" }, "CreateListener":{ "name":"CreateListener", @@ -180,7 +199,7 @@ {"shape":"InternalServiceErrorException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

Delete an accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources (listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

When you create an accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. Alternatively, you can bring your own IP address ranges to Global Accelerator and assign IP addresses from those ranges.

The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see Authentication and Access Control in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Delete an accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources (listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

When you create an accelerator, by default, Global Accelerator provides you with a set of two static IP addresses. Alternatively, you can bring your own IP address ranges to Global Accelerator and assign IP addresses from those ranges.

The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see Identity and access management in the Global Accelerator Developer Guide.

" }, "DeleteCustomRoutingAccelerator":{ "name":"DeleteCustomRoutingAccelerator", @@ -196,7 +215,7 @@ {"shape":"InternalServiceErrorException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

Delete a custom routing accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources (listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

When you create a custom routing accelerator, by default, Global Accelerator provides you with a set of two static IP addresses.

The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see Authentication and Access Control in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Delete a custom routing accelerator. Before you can delete an accelerator, you must disable it and remove all dependent resources (listeners and endpoint groups). To disable the accelerator, update the accelerator to set Enabled to false.

When you create a custom routing accelerator, by default, Global Accelerator provides you with a set of two static IP addresses.

The IP addresses are assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to the accelerator, so you can no longer route traffic by using them. As a best practice, ensure that you have permissions in place to avoid inadvertently deleting accelerators. You can use IAM policies with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see Identity and access management in the Global Accelerator Developer Guide.

" }, "DeleteCustomRoutingEndpointGroup":{ "name":"DeleteCustomRoutingEndpointGroup", @@ -264,6 +283,7 @@ }, "input":{"shape":"DenyCustomRoutingTrafficRequest"}, "errors":[ + {"shape":"EndpointGroupNotFoundException"}, {"shape":"InvalidArgumentException"}, {"shape":"InternalServiceErrorException"} ], @@ -284,7 +304,7 @@ {"shape":"ByoipCidrNotFoundException"}, {"shape":"IncorrectCidrStateException"} ], - "documentation":"

Releases the specified address range that you provisioned to use with your AWS resources through bring your own IP addresses (BYOIP) and deletes the corresponding address pool.

Before you can release an address range, you must stop advertising it by using WithdrawByoipCidr and you must not have any accelerators that are using static IP addresses allocated from its address range.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Releases the specified address range that you provisioned to use with your Amazon Web Services resources through bring your own IP addresses (BYOIP) and deletes the corresponding address pool.

Before you can release an address range, you must stop advertising it by using WithdrawByoipCidr and you must not have any accelerators that are using static IP addresses allocated from its address range.

For more information, see Bring your own IP addresses (BYOIP) in the Global Accelerator Developer Guide.

" }, "DescribeAccelerator":{ "name":"DescribeAccelerator", @@ -419,7 +439,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

List the accelerators for an AWS account.

" + "documentation":"

List the accelerators for an Amazon Web Services account.

" }, "ListByoipCidrs":{ "name":"ListByoipCidrs", @@ -450,7 +470,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

List the custom routing accelerators for an AWS account.

" + "documentation":"

List the custom routing accelerators for an Amazon Web Services account.

" }, "ListCustomRoutingEndpointGroups":{ "name":"ListCustomRoutingEndpointGroups", @@ -562,7 +582,7 @@ {"shape":"InternalServiceErrorException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

List all tags for an accelerator.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

List all tags for an accelerator.

For more information, see Tagging in Global Accelerator in the Global Accelerator Developer Guide.

" }, "ProvisionByoipCidr":{ "name":"ProvisionByoipCidr", @@ -579,7 +599,7 @@ {"shape":"AccessDeniedException"}, {"shape":"IncorrectCidrStateException"} ], - "documentation":"

Provisions an IP address range to use with your AWS resources through bring your own IP addresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, it is ready to be advertised using AdvertiseByoipCidr.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Provisions an IP address range to use with your Amazon Web Services resources through bring your own IP addresses (BYOIP) and creates a corresponding address pool. After the address range is provisioned, it is ready to be advertised using AdvertiseByoipCidr.

For more information, see Bring your own IP addresses (BYOIP) in the Global Accelerator Developer Guide.

" }, "RemoveCustomRoutingEndpoints":{ "name":"RemoveCustomRoutingEndpoints", @@ -598,6 +618,22 @@ ], "documentation":"

Remove endpoints from a custom routing accelerator.

" }, + "RemoveEndpoints":{ + "name":"RemoveEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveEndpointsRequest"}, + "errors":[ + {"shape":"EndpointGroupNotFoundException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"InvalidArgumentException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TransactionInProgressException"} + ], + "documentation":"

Remove endpoints from an endpoint group.

The RemoveEndpoints API operation is the recommended option for removing endpoints. The alternative is to remove endpoints by updating an endpoint group by using the UpdateEndpointGroup API operation. There are two advantages to using AddEndpoints to remove endpoints instead:

  • It's more convenient, because you only need to specify the endpoints that you want to remove. With the UpdateEndpointGroup API operation, you must specify all of the endpoints in the endpoint group except the ones that you want to remove from the group.

  • It's faster, because Global Accelerator doesn't need to resolve any endpoints. With the UpdateEndpointGroup API operation, Global Accelerator must resolve all of the endpoints that remain in the group.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -611,7 +647,7 @@ {"shape":"InternalServiceErrorException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

Add tags to an accelerator resource.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Add tags to an accelerator resource.

For more information, see Tagging in Global Accelerator in the Global Accelerator Developer Guide.

" }, "UntagResource":{ "name":"UntagResource", @@ -626,7 +662,7 @@ {"shape":"InternalServiceErrorException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. The operation succeeds even if you attempt to remove tags from an accelerator that was already removed.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Remove tags from a Global Accelerator resource. When you specify a tag key, the action removes both that key and its associated value. The operation succeeds even if you attempt to remove tags from an accelerator that was already removed.

For more information, see Tagging in Global Accelerator in the Global Accelerator Developer Guide.

" }, "UpdateAccelerator":{ "name":"UpdateAccelerator", @@ -638,10 +674,11 @@ "output":{"shape":"UpdateAcceleratorResponse"}, "errors":[ {"shape":"AcceleratorNotFoundException"}, + {"shape":"AccessDeniedException"}, {"shape":"InternalServiceErrorException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

Update an accelerator.

Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the US West (Oregon) Region to create or update accelerators.

" + "documentation":"

Update an accelerator.

Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for example, specify --region us-west-2 on AWS CLI commands.

" }, "UpdateAcceleratorAttributes":{ "name":"UpdateAcceleratorAttributes", @@ -756,7 +793,7 @@ {"shape":"ByoipCidrNotFoundException"}, {"shape":"IncorrectCidrStateException"} ], - "documentation":"

Stops advertising an address range that is provisioned as an address pool. You can perform this operation at most once every 10 seconds, even if you specify different address ranges each time.

It can take a few minutes before traffic to the specified addresses stops routing to AWS because of propagation delays.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Stops advertising an address range that is provisioned as an address pool. You can perform this operation at most once every 10 seconds, even if you specify different address ranges each time.

It can take a few minutes before traffic to the specified addresses stops routing to Amazon Web Services because of propagation delays.

For more information, see Bring your own IP addresses (BYOIP) in the Global Accelerator Developer Guide.

" } }, "shapes":{ @@ -773,7 +810,7 @@ }, "IpAddressType":{ "shape":"IpAddressType", - "documentation":"

The value for the address type must be IPv4.

" + "documentation":"

The IP address type that an accelerator supports. For a standard accelerator, the value can be IPV4 or DUAL_STACK.

" }, "Enabled":{ "shape":"GenericBoolean", @@ -785,7 +822,7 @@ }, "DnsName":{ "shape":"GenericString", - "documentation":"

The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.

For more information about the default DNS name, see Support for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

The Domain Name System (DNS) name that Global Accelerator creates that points to an accelerator's static IPv4 addresses.

The naming convention for the DNS name for an accelerator is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.

If you have a dual-stack accelerator, you also have a second DNS name, DualStackDnsName, that points to both the A record and the AAAA record for all four static addresses for the accelerator: two IPv4 addresses and two IPv6 addresses.

For more information about the default DNS name, see Support for DNS addressing in Global Accelerator in the Global Accelerator Developer Guide.

" }, "Status":{ "shape":"AcceleratorStatus", @@ -798,6 +835,14 @@ "LastModifiedTime":{ "shape":"Timestamp", "documentation":"

The date and time that the accelerator was last modified.

" + }, + "DualStackDnsName":{ + "shape":"GenericString", + "documentation":"

The Domain Name System (DNS) name that Global Accelerator creates that points to a dual-stack accelerator's four static IP addresses: two IPv4 addresses and two IPv6 addresses.

The naming convention for the dual-stack DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .dualstack.awsglobalaccelerator.com. For example: a1234567890abcdef.dualstack.awsglobalaccelerator.com.

Note: Global Accelerator also assigns a default DNS name, DnsName, to your accelerator that points just to the static IPv4 addresses.

For more information, see Support for DNS addressing in Global Accelerator in the Global Accelerator Developer Guide.

" + }, + "Events":{ + "shape":"AcceleratorEvents", + "documentation":"

A history of changes that you make to an accelerator in Global Accelerator.

" } }, "documentation":"

An accelerator is a complex type that includes one or more listeners that process inbound connections and then direct traffic to one or more endpoint groups, each of which includes endpoints, such as load balancers.

" @@ -807,19 +852,37 @@ "members":{ "FlowLogsEnabled":{ "shape":"GenericBoolean", - "documentation":"

Indicates whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

For more information, see Flow Logs in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Indicates whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

For more information, see Flow logs in the Global Accelerator Developer Guide.

" }, "FlowLogsS3Bucket":{ "shape":"GenericString", - "documentation":"

The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.

" + "documentation":"

The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. The bucket must exist and have a bucket policy that grants Global Accelerator permission to write to the bucket.

" }, "FlowLogsS3Prefix":{ "shape":"GenericString", - "documentation":"

The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true.

If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

s3-bucket_name//AWSLogs/aws_account_id

" + "documentation":"

The prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true.

If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

s3-bucket_name//AWSLogs/aws_account_id

" } }, "documentation":"

Attributes of an accelerator.

" }, + "AcceleratorEvent":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"GenericString", + "documentation":"

A string that contains an Event message describing changes or errors when you update an accelerator in Global Accelerator from IPv4 to dual-stack, or dual-stack to IPv4.

" + }, + "Timestamp":{ + "shape":"Timestamp", + "documentation":"

A timestamp for when you update an accelerator in Global Accelerator from IPv4 to dual-stack, or dual-stack to IPv4.

" + } + }, + "documentation":"

A complex type that contains a Timestamp value and Message for changes that you make to an accelerator in Global Accelerator. Messages stored here provide progress or error information when you update an accelerator from IPv4 to dual-stack, or from dual-stack to IPv4. Global Accelerator stores a maximum of ten event messages.

" + }, + "AcceleratorEvents":{ + "type":"list", + "member":{"shape":"AcceleratorEvent"} + }, "AcceleratorNotDisabledException":{ "type":"structure", "members":{ @@ -885,6 +948,36 @@ } } }, + "AddEndpointsRequest":{ + "type":"structure", + "required":[ + "EndpointConfigurations", + "EndpointGroupArn" + ], + "members":{ + "EndpointConfigurations":{ + "shape":"EndpointConfigurations", + "documentation":"

The list of endpoint objects.

" + }, + "EndpointGroupArn":{ + "shape":"GenericString", + "documentation":"

The Amazon Resource Name (ARN) of the endpoint group.

" + } + } + }, + "AddEndpointsResponse":{ + "type":"structure", + "members":{ + "EndpointDescriptions":{ + "shape":"EndpointDescriptions", + "documentation":"

The list of endpoint objects.

" + }, + "EndpointGroupArn":{ + "shape":"GenericString", + "documentation":"

The Amazon Resource Name (ARN) of the endpoint group.

" + } + } + }, "AdvertiseByoipCidrRequest":{ "type":"structure", "required":["Cidr"], @@ -962,24 +1055,24 @@ }, "Events":{ "shape":"ByoipCidrEvents", - "documentation":"

A history of status changes for an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP).

" + "documentation":"

A history of status changes for an IP address range that you bring to Global Accelerator through bring your own IP address (BYOIP).

" } }, - "documentation":"

Information about an IP address range that is provisioned for use with your AWS resources through bring your own IP address (BYOIP).

The following describes each BYOIP State that your IP address range can be in.

  • PENDING_PROVISIONING — You’ve submitted a request to provision an IP address range but it is not yet provisioned with AWS Global Accelerator.

  • READY — The address range is provisioned with AWS Global Accelerator and can be advertised.

  • PENDING_ADVERTISING — You’ve submitted a request for AWS Global Accelerator to advertise an address range but it is not yet being advertised.

  • ADVERTISING — The address range is being advertised by AWS Global Accelerator.

  • PENDING_WITHDRAWING — You’ve submitted a request to withdraw an address range from being advertised but it is still being advertised by AWS Global Accelerator.

  • PENDING_DEPROVISIONING — You’ve submitted a request to deprovision an address range from AWS Global Accelerator but it is still provisioned.

  • DEPROVISIONED — The address range is deprovisioned from AWS Global Accelerator.

  • FAILED_PROVISION — The request to provision the address range from AWS Global Accelerator was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact AWS support.

  • FAILED_ADVERTISING — The request for AWS Global Accelerator to advertise the address range was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact AWS support.

  • FAILED_WITHDRAW — The request to withdraw the address range from advertising by AWS Global Accelerator was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact AWS support.

  • FAILED_DEPROVISION — The request to deprovision the address range from AWS Global Accelerator was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact AWS support.

" + "documentation":"

Information about an IP address range that is provisioned for use with your Amazon Web Services resources through bring your own IP address (BYOIP).

The following describes each BYOIP State that your IP address range can be in.

  • PENDING_PROVISIONING — You’ve submitted a request to provision an IP address range but it is not yet provisioned with Global Accelerator.

  • READY — The address range is provisioned with Global Accelerator and can be advertised.

  • PENDING_ADVERTISING — You’ve submitted a request for Global Accelerator to advertise an address range but it is not yet being advertised.

  • ADVERTISING — The address range is being advertised by Global Accelerator.

  • PENDING_WITHDRAWING — You’ve submitted a request to withdraw an address range from being advertised but it is still being advertised by Global Accelerator.

  • PENDING_DEPROVISIONING — You’ve submitted a request to deprovision an address range from Global Accelerator but it is still provisioned.

  • DEPROVISIONED — The address range is deprovisioned from Global Accelerator.

  • FAILED_PROVISION — The request to provision the address range from Global Accelerator was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact Amazon Web Services support.

  • FAILED_ADVERTISING — The request for Global Accelerator to advertise the address range was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact Amazon Web Services support.

  • FAILED_WITHDRAW — The request to withdraw the address range from advertising by Global Accelerator was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact Amazon Web Services support.

  • FAILED_DEPROVISION — The request to deprovision the address range from Global Accelerator was not successful. Please make sure that you provide all of the correct information, and try again. If the request fails a second time, contact Amazon Web Services support.

" }, "ByoipCidrEvent":{ "type":"structure", "members":{ "Message":{ "shape":"GenericString", - "documentation":"

A string that contains an Event message describing changes that you make in the status of an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP).

" + "documentation":"

A string that contains an Event message describing changes that you make in the status of an IP address range that you bring to Global Accelerator through bring your own IP address (BYOIP).

" }, "Timestamp":{ "shape":"Timestamp", - "documentation":"

A timestamp when you make a status change for an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP).

" + "documentation":"

A timestamp for when you make a status change for an IP address range that you bring to Global Accelerator through bring your own IP address (BYOIP).

" } }, - "documentation":"

A complex type that contains a Message and a Timestamp value for changes that you make in the status an IP address range that you bring to AWS Global Accelerator through bring your own IP address (BYOIP).

" + "documentation":"

A complex type that contains a Message and a Timestamp value for changes that you make in the status of an IP address range that you bring to Global Accelerator through bring your own IP address (BYOIP).

" }, "ByoipCidrEvents":{ "type":"list", @@ -1029,7 +1122,7 @@ "documentation":"

The signed authorization message for the prefix and account.

" } }, - "documentation":"

Provides authorization for Amazon to bring a specific IP address range to a specific AWS account using bring your own IP addresses (BYOIP).

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Provides authorization for Amazon to bring a specific IP address range to a specific Amazon Web Services account using bring your own IP addresses (BYOIP).

For more information, see Bring your own IP addresses (BYOIP) in the Global Accelerator Developer Guide.

" }, "ClientAffinity":{ "type":"string", @@ -1055,15 +1148,15 @@ "members":{ "Name":{ "shape":"GenericString", - "documentation":"

The name of an accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.

" + "documentation":"

The name of the accelerator. The name can have a maximum of 64 characters, must contain only alphanumeric characters, periods (.), or hyphens (-), and must not begin or end with a hyphen or period.

" }, "IpAddressType":{ "shape":"IpAddressType", - "documentation":"

The value for the address type must be IPv4.

" + "documentation":"

The IP address type that an accelerator supports. For a standard accelerator, the value can be IPV4 or DUAL_STACK.

" }, "IpAddresses":{ "shape":"IpAddresses", - "documentation":"

Optionally, if you've added your own IP address pool to Global Accelerator (BYOIP), you can choose IP addresses from your own pool to use for the accelerator's static IP addresses when you create an accelerator. You can specify one or two addresses, separated by a space. Do not include the /32 suffix.

Only one IP address from each of your IP address ranges can be used for each accelerator. If you specify only one IP address from your IP address range, Global Accelerator assigns a second static IP address for the accelerator from the AWS IP address pool.

Note that you can't update IP addresses for an existing accelerator. To change them, you must create a new accelerator with the new addresses.

For more information, see Bring Your Own IP Addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Optionally, if you've added your own IP address pool to Global Accelerator (BYOIP), you can choose an IPv4 address from your own pool to use for the accelerator's static IPv4 address when you create an accelerator.

After you bring an address range to Amazon Web Services, it appears in your account as an address pool. When you create an accelerator, you can assign one IPv4 address from your range to it. Global Accelerator assigns you a second static IPv4 address from an Amazon IP address range. If you bring two IPv4 address ranges to Amazon Web Services, you can assign one IPv4 address from each range to your accelerator. This restriction is because Global Accelerator assigns each address range to a different network zone, for high availability.

You can specify one or two addresses, separated by a space. Do not include the /32 suffix.

Note that you can't update IP addresses for an existing accelerator. To change them, you must create a new accelerator with the new addresses.

For more information, see Bring your own IP addresses (BYOIP) in the Global Accelerator Developer Guide.

" }, "Enabled":{ "shape":"GenericBoolean", @@ -1076,7 +1169,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

Create tags for an accelerator.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Create tags for an accelerator.

For more information, see Tagging in Global Accelerator in the Global Accelerator Developer Guide.

" } } }, @@ -1102,11 +1195,11 @@ }, "IpAddressType":{ "shape":"IpAddressType", - "documentation":"

The value for the address type must be IPv4.

" + "documentation":"

The IP address type that an accelerator supports. For a custom routing accelerator, the value must be IPV4.

" }, "IpAddresses":{ "shape":"IpAddresses", - "documentation":"

Optionally, if you've added your own IP address pool to Global Accelerator (BYOIP), you can choose IP addresses from your own pool to use for the accelerator's static IP addresses when you create an accelerator. You can specify one or two addresses, separated by a space. Do not include the /32 suffix.

Only one IP address from each of your IP address ranges can be used for each accelerator. If you specify only one IP address from your IP address range, Global Accelerator assigns a second static IP address for the accelerator from the AWS IP address pool.

Note that you can't update IP addresses for an existing accelerator. To change them, you must create a new accelerator with the new addresses.

For more information, see Bring your own IP addresses (BYOIP) in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Optionally, if you've added your own IP address pool to Global Accelerator (BYOIP), you can choose an IPv4 address from your own pool to use for the accelerator's static IPv4 address when you create an accelerator.

After you bring an address range to Amazon Web Services, it appears in your account as an address pool. When you create an accelerator, you can assign one IPv4 address from your range to it. Global Accelerator assigns you a second static IPv4 address from an Amazon IP address range. If you bring two IPv4 address ranges to Amazon Web Services, you can assign one IPv4 address from each range to your accelerator. This restriction is because Global Accelerator assigns each address range to a different network zone, for high availability.

You can specify one or two addresses, separated by a space. Do not include the /32 suffix.

Note that you can't update IP addresses for an existing accelerator. To change them, you must create a new accelerator with the new addresses.

For more information, see Bring your own IP addresses (BYOIP) in the Global Accelerator Developer Guide.

" }, "Enabled":{ "shape":"GenericBoolean", @@ -1119,7 +1212,7 @@ }, "Tags":{ "shape":"Tags", - "documentation":"

Create tags for an accelerator.

For more information, see Tagging in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Create tags for an accelerator.

For more information, see Tagging in Global Accelerator in the Global Accelerator Developer Guide.

" } } }, @@ -1147,7 +1240,7 @@ }, "EndpointGroupRegion":{ "shape":"GenericString", - "documentation":"

The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a specific Region.

" + "documentation":"

The Amazon Web Services Region where the endpoint group is located. A listener can have only one endpoint group in a specific Region.

" }, "DestinationConfigurations":{ "shape":"CustomRoutingDestinationConfigurations", @@ -1215,7 +1308,7 @@ }, "EndpointGroupRegion":{ "shape":"GenericString", - "documentation":"

The AWS Region where the endpoint group is located. A listener can have only one endpoint group in a specific Region.

" + "documentation":"

The Amazon Web Services Region where the endpoint group is located. A listener can have only one endpoint group in a specific Region.

" }, "EndpointConfigurations":{ "shape":"EndpointConfigurations", @@ -1223,15 +1316,15 @@ }, "TrafficDialPercentage":{ "shape":"TrafficDialPercentage", - "documentation":"

The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener.

Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

The default value is 100.

" + "documentation":"

The percentage of traffic to send to an Amazon Web Services Region. Additional traffic is distributed to other endpoint groups for this listener.

Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

The default value is 100.

" }, "HealthCheckPort":{ "shape":"HealthCheckPort", - "documentation":"

The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the first port in the list.

" + "documentation":"

The port that Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the first port in the list.

" }, "HealthCheckProtocol":{ "shape":"HealthCheckProtocol", - "documentation":"

The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.

" + "documentation":"

The protocol that Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.

" }, "HealthCheckPath":{ "shape":"HealthCheckPath", @@ -1252,7 +1345,7 @@ }, "PortOverrides":{ "shape":"PortOverrides", - "documentation":"

Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. For example, you can create a port override in which the listener receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 and 1443, respectively, on the endpoints.

For more information, see Port overrides in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. For example, you can create a port override in which the listener receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 and 1443, respectively, on the endpoints.

For more information, see Overriding listener ports in the Global Accelerator Developer Guide.

" } } }, @@ -1288,7 +1381,7 @@ }, "ClientAffinity":{ "shape":"ClientAffinity", - "documentation":"

Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint.

AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.

If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value.

The default value is NONE.

" + "documentation":"

Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint.

Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.

If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value.

The default value is NONE.

" }, "IdempotencyToken":{ "shape":"IdempotencyToken", @@ -1319,7 +1412,7 @@ }, "IpAddressType":{ "shape":"IpAddressType", - "documentation":"

The value for the address type must be IPv4.

" + "documentation":"

The IP address type that an accelerator supports. For a custom routing accelerator, the value must be IPV4.

" }, "Enabled":{ "shape":"GenericBoolean", @@ -1331,7 +1424,7 @@ }, "DnsName":{ "shape":"GenericString", - "documentation":"

The Domain Name System (DNS) name that Global Accelerator creates that points to your accelerator's static IP addresses.

The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.

For more information about the default DNS name, see Support for DNS Addressing in Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

The Domain Name System (DNS) name that Global Accelerator creates that points to an accelerator's static IPv4 addresses.

The naming convention for the DNS name is the following: A lowercase letter a, followed by a 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: a1234567890abcdef.awsglobalaccelerator.com.

If you have a dual-stack accelerator, you also have a second DNS name, DualStackDnsName, that points to both the A record and the AAAA record for all four static addresses for the accelerator: two IPv4 addresses and two IPv6 addresses.

For more information about the default DNS name, see Support for DNS addressing in Global Accelerator in the Global Accelerator Developer Guide.

" }, "Status":{ "shape":"CustomRoutingAcceleratorStatus", @@ -1353,11 +1446,11 @@ "members":{ "FlowLogsEnabled":{ "shape":"GenericBoolean", - "documentation":"

Indicates whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

For more information, see Flow Logs in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Indicates whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

For more information, see Flow logs in the Global Accelerator Developer Guide.

" }, "FlowLogsS3Bucket":{ "shape":"GenericString", - "documentation":"

The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.

" + "documentation":"

The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. The bucket must exist and have a bucket policy that grants Global Accelerator permission to write to the bucket.

" }, "FlowLogsS3Prefix":{ "shape":"GenericString", @@ -1474,7 +1567,7 @@ }, "EndpointGroupRegion":{ "shape":"GenericString", - "documentation":"

The AWS Region where the endpoint group is located.

" + "documentation":"

The Amazon Web Services Region where the endpoint group is located.

" }, "DestinationDescriptions":{ "shape":"CustomRoutingDestinationDescriptions", @@ -1485,7 +1578,7 @@ "documentation":"

For a custom routing accelerator, describes the endpoints (virtual private cloud subnets) in an endpoint group to accept client traffic on.

" } }, - "documentation":"

A complex type for the endpoint group for a custom routing accelerator. An AWS Region can have only one endpoint group for a specific listener.

" + "documentation":"

A complex type for the endpoint group for a custom routing accelerator. An Amazon Web Services Region can have only one endpoint group for a specific listener.

" }, "CustomRoutingEndpointGroups":{ "type":"list", @@ -1808,7 +1901,7 @@ }, "EndpointGroupRegion":{ "shape":"GenericString", - "documentation":"

The AWS Region for the endpoint group.

" + "documentation":"

The Amazon Web Services Region for the endpoint group.

" }, "DestinationSocketAddress":{ "shape":"SocketAddress", @@ -1816,7 +1909,7 @@ }, "IpAddressType":{ "shape":"IpAddressType", - "documentation":"

The IP address type, which must be IPv4.

" + "documentation":"

The IP address type that an accelerator supports. For a custom routing accelerator, the value must be IPV4.

" }, "DestinationTrafficState":{ "shape":"CustomRoutingDestinationTrafficState", @@ -1851,11 +1944,11 @@ }, "Weight":{ "shape":"EndpointWeight", - "documentation":"

The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic based on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the AWS Global Accelerator Developer Guide.

" + "documentation":"

The weight associated with the endpoint. When you add weights to endpoints, you configure Global Accelerator to route traffic based on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint weights in the Global Accelerator Developer Guide.

" }, "ClientIPPreservationEnabled":{ "shape":"GenericBoolean", - "documentation":"

Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. The value is true or false. The default value is true for new accelerators.

If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as traffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

For more information, see Preserve Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Indicates whether client IP address preservation is enabled for an endpoint. The value is true or false. The default value is true for new accelerators.

If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as traffic travels to applications on the endpoint fronted by the accelerator.

Client IP address preservation is supported, in specific Amazon Web Services Regions, for endpoints that are Application Load Balancers and Amazon EC2 instances.

For more information, see Preserve client IP addresses in Global Accelerator in the Global Accelerator Developer Guide.

" } }, "documentation":"

A complex type for endpoints. A resource must be valid and active when you add it as an endpoint.

" @@ -1875,7 +1968,7 @@ }, "Weight":{ "shape":"EndpointWeight", - "documentation":"

The weight associated with the endpoint. When you add weights to endpoints, you configure AWS Global Accelerator to route traffic based on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint Weights in the AWS Global Accelerator Developer Guide.

" + "documentation":"

The weight associated with the endpoint. When you add weights to endpoints, you configure Global Accelerator to route traffic based on proportions that you specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 (sum=20). The result is that 4/20 of your traffic, on average, is routed to the first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 is routed to the last endpoint. For more information, see Endpoint weights in the Global Accelerator Developer Guide.

" }, "HealthState":{ "shape":"HealthState", @@ -1887,7 +1980,7 @@ }, "ClientIPPreservationEnabled":{ "shape":"GenericBoolean", - "documentation":"

Indicates whether client IP address preservation is enabled for an Application Load Balancer endpoint. The value is true or false. The default value is true for new accelerators.

If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as traffic travels to applications on the Application Load Balancer endpoint fronted by the accelerator.

For more information, see Viewing Client IP Addresses in AWS Global Accelerator in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Indicates whether client IP address preservation is enabled for an endpoint. The value is true or false. The default value is true for new accelerators.

If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as traffic travels to applications on the endpoint fronted by the accelerator.

Client IP address preservation is supported, in specific Amazon Web Services Regions, for endpoints that are Application Load Balancers and Amazon EC2 instances.

For more information, see Preserve client IP addresses in Global Accelerator in the Global Accelerator Developer Guide.

" } }, "documentation":"

A complex type for an endpoint. Each endpoint group can include one or more endpoints, such as load balancers.

" @@ -1905,7 +1998,7 @@ }, "EndpointGroupRegion":{ "shape":"GenericString", - "documentation":"

The AWS Region where the endpoint group is located.

" + "documentation":"

The Amazon Web Services Region where the endpoint group is located.

" }, "EndpointDescriptions":{ "shape":"EndpointDescriptions", @@ -1913,7 +2006,7 @@ }, "TrafficDialPercentage":{ "shape":"TrafficDialPercentage", - "documentation":"

The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener.

Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

The default value is 100.

" + "documentation":"

The percentage of traffic to send to an Amazon Web Services Region. Additional traffic is distributed to other endpoint groups for this listener.

Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

The default value is 100.

" }, "HealthCheckPort":{ "shape":"HealthCheckPort", @@ -1937,10 +2030,10 @@ }, "PortOverrides":{ "shape":"PortOverrides", - "documentation":"

Allows you to override the destination ports used to route traffic to an endpoint. Using a port override lets you to map a list of external destination ports (that your users send traffic to) to a list of internal destination ports that you want an application endpoint to receive traffic on.

" + "documentation":"

Allows you to override the destination ports used to route traffic to an endpoint. Using a port override lets you map a list of external destination ports (that your users send traffic to) to a list of internal destination ports that you want an application endpoint to receive traffic on.

" } }, - "documentation":"

A complex type for the endpoint group. An AWS Region can have only one endpoint group for a specific listener.

" + "documentation":"

A complex type for the endpoint group. An Amazon Web Services Region can have only one endpoint group for a specific listener.

" }, "EndpointGroupAlreadyExistsException":{ "type":"structure", @@ -1962,6 +2055,27 @@ "type":"list", "member":{"shape":"EndpointGroup"} }, + "EndpointIdentifier":{ + "type":"structure", + "required":["EndpointId"], + "members":{ + "EndpointId":{ + "shape":"GenericString", + "documentation":"

An ID for the endpoint. If the endpoint is a Network Load Balancer or Application Load Balancer, this is the Amazon Resource Name (ARN) of the resource. If the endpoint is an Elastic IP address, this is the Elastic IP address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID.

An Application Load Balancer can be either internal or internet-facing.

" + }, + "ClientIPPreservationEnabled":{ + "shape":"GenericBoolean", + "documentation":"

Indicates whether client IP address preservation is enabled for an endpoint. The value is true or false.

If the value is set to true, the client's IP address is preserved in the X-Forwarded-For request header as traffic travels to applications on the endpoint fronted by the accelerator.

" + } + }, + "documentation":"

A complex type for an endpoint. Specifies information about the endpoint to remove from the endpoint group.

" + }, + "EndpointIdentifiers":{ + "type":"list", + "member":{"shape":"EndpointIdentifier"}, + "max":10, + "min":1 + }, "EndpointIds":{ "type":"list", "member":{"shape":"GenericString"} @@ -2033,7 +2147,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

There was an internal error for AWS Global Accelerator.

", + "documentation":"

There was an internal error for Global Accelerator.

", "exception":true }, "InvalidArgumentException":{ @@ -2064,9 +2178,19 @@ "type":"string", "max":45 }, + "IpAddressFamily":{ + "type":"string", + "enum":[ + "IPv4", + "IPv6" + ] + }, "IpAddressType":{ "type":"string", - "enum":["IPV4"] + "enum":[ + "IPV4", + "DUAL_STACK" + ] }, "IpAddresses":{ "type":"list", @@ -2079,11 +2203,17 @@ "members":{ "IpFamily":{ "shape":"GenericString", - "documentation":"

The types of IP addresses included in this IP set.

" + "documentation":"

IpFamily is deprecated and has been replaced by IpAddressFamily.

", + "deprecated":true, + "deprecatedMessage":"IpFamily has been replaced by IpAddressFamily" }, "IpAddresses":{ "shape":"IpAddresses", "documentation":"

The array of IP addresses in the IP address set. An IP address set can have a maximum of two IP addresses.

" + }, + "IpAddressFamily":{ + "shape":"IpAddressFamily", + "documentation":"

The types of IP addresses included in this IP set.

" } }, "documentation":"

A complex type for the set of IP addresses for an accelerator.

" @@ -2097,7 +2227,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

Processing your request would cause you to exceed an AWS Global Accelerator limit.

", + "documentation":"

Processing your request would cause you to exceed an Global Accelerator limit.

", "exception":true }, "ListAcceleratorsRequest":{ @@ -2411,7 +2541,7 @@ }, "ClientAffinity":{ "shape":"ClientAffinity", - "documentation":"

Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint.

AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.

If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value.

The default value is NONE.

" + "documentation":"

Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint.

Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.

If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value.

The default value is NONE.

" } }, "documentation":"

A complex type for a listener.

" @@ -2461,7 +2591,7 @@ "documentation":"

Indicates whether or not a port mapping destination can receive traffic. The value is either ALLOW, if traffic is allowed to the destination, or DENY, if traffic is not allowed to the destination.

" } }, - "documentation":"

Returns the ports and associated IP addresses and ports of Amazon EC2 instances in your virtual private cloud (VPC) subnets. Custom routing is a port mapping protocol in AWS Global Accelerator that statically associates port ranges with VPC subnets, which allows Global Accelerator to route to specific instances and ports within one or more subnets.

" + "documentation":"

Returns the ports and associated IP addresses and ports of Amazon EC2 instances in your virtual private cloud (VPC) subnets. Custom routing is a port mapping protocol in Global Accelerator that statically associates port ranges with VPC subnets, which allows Global Accelerator to route to specific instances and ports within one or more subnets.

" }, "PortMappings":{ "type":"list", @@ -2489,7 +2619,7 @@ "documentation":"

The endpoint port that you want a listener port to be mapped to. This is the port on the endpoint, such as the Application Load Balancer or Amazon EC2 instance.

" } }, - "documentation":"

Override specific listener ports used to route traffic to endpoints that are part of an endpoint group. For example, you can create a port override in which the listener receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 and 1443, respectively, on the endpoints.

For more information, see Port overrides in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Override specific listener ports used to route traffic to endpoints that are part of an endpoint group. For example, you can create a port override in which the listener receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 and 1443, respectively, on the endpoints.

For more information, see Overriding listener ports in the Global Accelerator Developer Guide.

" }, "PortOverrides":{ "type":"list", @@ -2571,6 +2701,23 @@ } } }, + "RemoveEndpointsRequest":{ + "type":"structure", + "required":[ + "EndpointIdentifiers", + "EndpointGroupArn" + ], + "members":{ + "EndpointIdentifiers":{ + "shape":"EndpointIdentifiers", + "documentation":"

The identifiers of the endpoints that you want to remove.

" + }, + "EndpointGroupArn":{ + "shape":"GenericString", + "documentation":"

The Amazon Resource Name (ARN) of the endpoint group.

" + } + } + }, "ResourceArn":{ "type":"string", "max":1011, @@ -2665,6 +2812,14 @@ "max":100, "min":0 }, + "TransactionInProgressException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

There's already a transaction in progress. Another transaction can't be processed.

", + "exception":true + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -2697,15 +2852,15 @@ }, "FlowLogsEnabled":{ "shape":"GenericBoolean", - "documentation":"

Update whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

For more information, see Flow Logs in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Update whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

For more information, see Flow Logs in the Global Accelerator Developer Guide.

" }, "FlowLogsS3Bucket":{ "shape":"GenericString", - "documentation":"

The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.

" + "documentation":"

The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. The bucket must exist and have a bucket policy that grants Global Accelerator permission to write to the bucket.

" }, "FlowLogsS3Prefix":{ "shape":"GenericString", - "documentation":"

Update the prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true.

If you don’t specify a prefix, the flow logs are stored in the root of the bucket. If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

s3-bucket_name//AWSLogs/aws_account_id

" + "documentation":"

Update the prefix for the location in the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true.

If you specify slash (/) for the S3 bucket prefix, the log file bucket folder structure will include a double slash (//), like the following:

s3-bucket_name//AWSLogs/aws_account_id

" } } }, @@ -2728,11 +2883,11 @@ }, "Name":{ "shape":"GenericString", - "documentation":"

The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.

" + "documentation":"

The name of the accelerator. The name can have a maximum of 64 characters, must contain only alphanumeric characters, periods (.), or hyphens (-), and must not begin or end with a hyphen or period.

" }, "IpAddressType":{ "shape":"IpAddressType", - "documentation":"

The IP address type, which must be IPv4.

" + "documentation":"

The IP address type that an accelerator supports. For a standard accelerator, the value can be IPV4 or DUAL_STACK.

" }, "Enabled":{ "shape":"GenericBoolean", @@ -2759,11 +2914,11 @@ }, "FlowLogsEnabled":{ "shape":"GenericBoolean", - "documentation":"

Update whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

For more information, see Flow Logs in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Update whether flow logs are enabled. The default value is false. If the value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified.

For more information, see Flow logs in the Global Accelerator Developer Guide.

" }, "FlowLogsS3Bucket":{ "shape":"GenericString", - "documentation":"

The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. The bucket must exist and have a bucket policy that grants AWS Global Accelerator permission to write to the bucket.

" + "documentation":"

The name of the Amazon S3 bucket for the flow logs. Attribute is required if FlowLogsEnabled is true. The bucket must exist and have a bucket policy that grants Global Accelerator permission to write to the bucket.

" }, "FlowLogsS3Prefix":{ "shape":"GenericString", @@ -2790,11 +2945,11 @@ }, "Name":{ "shape":"GenericString", - "documentation":"

The name of the accelerator. The name can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens (-), and must not begin or end with a hyphen.

" + "documentation":"

The name of the accelerator. The name can have a maximum of 64 characters, must contain only alphanumeric characters, periods (.), or hyphens (-), and must not begin or end with a hyphen or period.

" }, "IpAddressType":{ "shape":"IpAddressType", - "documentation":"

The value for the address type must be IPv4.

" + "documentation":"

The IP address type that an accelerator supports. For a custom routing accelerator, the value must be IPV4.

" }, "Enabled":{ "shape":"GenericBoolean", @@ -2851,15 +3006,15 @@ }, "TrafficDialPercentage":{ "shape":"TrafficDialPercentage", - "documentation":"

The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener.

Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

The default value is 100.

" + "documentation":"

The percentage of traffic to send to an Amazon Web Services Region. Additional traffic is distributed to other endpoint groups for this listener.

Use this action to increase (dial up) or decrease (dial down) traffic to a specific Region. The percentage is applied to the traffic that would otherwise have been routed to the Region based on optimal routing.

The default value is 100.

" }, "HealthCheckPort":{ "shape":"HealthCheckPort", - "documentation":"

The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If the listener port is a list of ports, Global Accelerator uses the first port in the list.

" + "documentation":"

The port that Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If the listener port is a list of ports, Global Accelerator uses the first port in the list.

" }, "HealthCheckProtocol":{ "shape":"HealthCheckProtocol", - "documentation":"

The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.

" + "documentation":"

The protocol that Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.

" }, "HealthCheckPath":{ "shape":"HealthCheckPath", @@ -2875,7 +3030,7 @@ }, "PortOverrides":{ "shape":"PortOverrides", - "documentation":"

Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. For example, you can create a port override in which the listener receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 and 1443, respectively, on the endpoints.

For more information, see Port overrides in the AWS Global Accelerator Developer Guide.

" + "documentation":"

Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. For example, you can create a port override in which the listener receives user traffic on ports 80 and 443, but your accelerator routes that traffic to ports 1080 and 1443, respectively, on the endpoints.

For more information, see Overriding listener ports in the Global Accelerator Developer Guide.

" } } }, @@ -2906,7 +3061,7 @@ }, "ClientAffinity":{ "shape":"ClientAffinity", - "documentation":"

Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint.

AWS Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.

If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value.

The default value is NONE.

" + "documentation":"

Client affinity lets you direct all requests from a user to the same endpoint, if you have stateful applications, regardless of the port and protocol of the client request. Client affinity gives you control over whether to always route each client to the same specific endpoint.

Global Accelerator uses a consistent-flow hashing algorithm to choose the optimal endpoint for a connection. If client affinity is NONE, Global Accelerator uses the \"five-tuple\" (5-tuple) properties—source IP address, source port, destination IP address, destination port, and protocol—to select the hash value, and then chooses the best endpoint. However, with this setting, if someone uses different ports to connect to Global Accelerator, their connections might not be always routed to the same endpoint because the hash value changes.

If you want a given client to always be routed to the same endpoint, set client affinity to SOURCE_IP instead. When you use the SOURCE_IP setting, Global Accelerator uses the \"two-tuple\" (2-tuple) properties— source (client) IP address and destination IP address—to select the hash value.

The default value is NONE.

" } } }, @@ -2939,5 +3094,5 @@ } } }, - "documentation":"AWS Global Accelerator

This is the AWS Global Accelerator API Reference. This guide is for developers who need detailed information about AWS Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the AWS Global Accelerator Developer Guide.

AWS Global Accelerator is a service in which you create accelerators to improve the performance of your applications for local and global users. Depending on the type of accelerator you choose, you can gain additional benefits.

  • By using a standard accelerator, you can improve availability of your internet applications that are used by a global audience. With a standard accelerator, Global Accelerator directs traffic to optimal endpoints over the AWS global network.

  • For other scenarios, you might choose a custom routing accelerator. With a custom routing accelerator, you can use application logic to directly map one or more users to a specific endpoint among many endpoints.

Global Accelerator is a global service that supports endpoints in multiple AWS Regions but you must specify the US West (Oregon) Region to create or update accelerators.

By default, Global Accelerator provides you with two static IP addresses that you associate with your accelerator. With a standard accelerator, instead of using the IP addresses that Global Accelerator provides, you can configure these entry points to be IPv4 addresses from your own IP address ranges that you bring to Global Accelerator. The static IP addresses are anycast from the AWS edge network. For a standard accelerator, they distribute incoming application traffic across multiple endpoint resources in multiple AWS Regions, which increases the availability of your applications. Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses that are located in one AWS Region or multiple Regions. For custom routing accelerators, you map traffic that arrives to the static IP addresses to specific Amazon EC2 servers in endpoints that are virtual private cloud (VPC) subnets.

The static IP addresses remain assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to it, so you can no longer route traffic by using them. You can use IAM policies like tag-based permissions with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see Tag-based policies.

For standard accelerators, Global Accelerator uses the AWS global network to route traffic to the optimal regional endpoint based on health, client location, and policies that you configure. The service reacts instantly to changes in health or configuration to ensure that internet traffic from clients is always directed to healthy endpoints.

For a list of the AWS Regions where Global Accelerator and other services are currently supported, see the AWS Region Table.

AWS Global Accelerator includes the following components:

Static IP addresses

Global Accelerator provides you with a set of two static IP addresses that are anycast from the AWS edge network. If you bring your own IP address range to AWS (BYOIP) to use with a standard accelerator, you can instead assign IP addresses from your own pool to use with your accelerator. For more information, see Bring your own IP addresses (BYOIP) in AWS Global Accelerator.

The IP addresses serve as single fixed entry points for your clients. If you already have Elastic Load Balancing load balancers, Amazon EC2 instances, or Elastic IP address resources set up for your applications, you can easily add those to a standard accelerator in Global Accelerator. This allows Global Accelerator to use static IP addresses to access the resources.

The static IP addresses remain assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to it, so you can no longer route traffic by using them. You can use IAM policies like tag-based permissions with Global Accelerator to delete an accelerator. For more information, see Tag-based policies.

Accelerator

An accelerator directs traffic to endpoints over the AWS global network to improve the performance of your internet applications. Each accelerator includes one or more listeners.

There are two types of accelerators:

  • A standard accelerator directs traffic to the optimal AWS endpoint based on several factors, including the user’s location, the health of the endpoint, and the endpoint weights that you configure. This improves the availability and performance of your applications. Endpoints can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses.

  • A custom routing accelerator directs traffic to one of possibly thousands of Amazon EC2 instances running in a single or multiple virtual private clouds (VPCs). With custom routing, listener ports are mapped to statically associate port ranges with VPC subnets, which allows Global Accelerator to determine an EC2 instance IP address at the time of connection. By default, all port mapping destinations in a VPC subnet can't receive traffic. You can choose to configure all destinations in the subnet to receive traffic, or to specify individual port mappings that can receive traffic.

For more information, see Types of accelerators.

DNS name

Global Accelerator assigns each accelerator a default Domain Name System (DNS) name, similar to a1234567890abcdef.awsglobalaccelerator.com, that points to the static IP addresses that Global Accelerator assigns to you or that you choose from your own IP address range. Depending on the use case, you can use your accelerator's static IP addresses or DNS name to route traffic to your accelerator, or set up DNS records to route traffic using your own custom domain name.

Network zone

A network zone services the static IP addresses for your accelerator from a unique IP subnet. Similar to an AWS Availability Zone, a network zone is an isolated unit with its own set of physical infrastructure. When you configure an accelerator, by default, Global Accelerator allocates two IPv4 addresses for it. If one IP address from a network zone becomes unavailable due to IP address blocking by certain client networks, or network disruptions, then client applications can retry on the healthy static IP address from the other isolated network zone.

Listener

A listener processes inbound connections from clients to Global Accelerator, based on the port (or port range) and protocol (or protocols) that you configure. A listener can be configured for TCP, UDP, or both TCP and UDP protocols. Each listener has one or more endpoint groups associated with it, and traffic is forwarded to endpoints in one of the groups. You associate endpoint groups with listeners by specifying the Regions that you want to distribute traffic to. With a standard accelerator, traffic is distributed to optimal endpoints within the endpoint groups associated with a listener.

Endpoint group

Each endpoint group is associated with a specific AWS Region. Endpoint groups include one or more endpoints in the Region. With a standard accelerator, you can increase or reduce the percentage of traffic that would be otherwise directed to an endpoint group by adjusting a setting called a traffic dial. The traffic dial lets you easily do performance testing or blue/green deployment testing, for example, for new releases across different AWS Regions.

Endpoint

An endpoint is a resource that Global Accelerator directs traffic to.

Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses. An Application Load Balancer endpoint can be internet-facing or internal. Traffic for standard accelerators is routed to endpoints based on the health of the endpoint along with configuration options that you choose, such as endpoint weights. For each endpoint, you can configure weights, which are numbers that you can use to specify the proportion of traffic to route to each one. This can be useful, for example, to do performance testing within a Region.

Endpoints for custom routing accelerators are virtual private cloud (VPC) subnets with one or many EC2 instances.

" + "documentation":"Global Accelerator

This is the Global Accelerator API Reference. This guide is for developers who need detailed information about Global Accelerator API actions, data types, and errors. For more information about Global Accelerator features, see the Global Accelerator Developer Guide.

Global Accelerator is a service in which you create accelerators to improve the performance of your applications for local and global users. Depending on the type of accelerator you choose, you can gain additional benefits.

  • By using a standard accelerator, you can improve availability of your internet applications that are used by a global audience. With a standard accelerator, Global Accelerator directs traffic to optimal endpoints over the Amazon Web Services global network.

  • For other scenarios, you might choose a custom routing accelerator. With a custom routing accelerator, you can use application logic to directly map one or more users to a specific endpoint among many endpoints.

Global Accelerator is a global service that supports endpoints in multiple Amazon Web Services Regions but you must specify the US West (Oregon) Region to create, update, or otherwise work with accelerators. That is, for example, specify --region us-west-2 on AWS CLI commands.

By default, Global Accelerator provides you with static IP addresses that you associate with your accelerator. The static IP addresses are anycast from the Amazon Web Services edge network. For IPv4, Global Accelerator provides two static IPv4 addresses. For dual-stack, Global Accelerator provides a total of four addresses: two static IPv4 addresses and two static IPv6 addresses. With a standard accelerator for IPv4, instead of using the addresses that Global Accelerator provides, you can configure these entry points to be IPv4 addresses from your own IP address ranges that you bring toGlobal Accelerator (BYOIP).

For a standard accelerator, they distribute incoming application traffic across multiple endpoint resources in multiple Amazon Web Services Regions , which increases the availability of your applications. Endpoints for standard accelerators can be Network Load Balancers, Application Load Balancers, Amazon EC2 instances, or Elastic IP addresses that are located in one Amazon Web Services Region or multiple Amazon Web Services Regions. For custom routing accelerators, you map traffic that arrives to the static IP addresses to specific Amazon EC2 servers in endpoints that are virtual private cloud (VPC) subnets.

The static IP addresses remain assigned to your accelerator for as long as it exists, even if you disable the accelerator and it no longer accepts or routes traffic. However, when you delete an accelerator, you lose the static IP addresses that are assigned to it, so you can no longer route traffic by using them. You can use IAM policies like tag-based permissions with Global Accelerator to limit the users who have permissions to delete an accelerator. For more information, see Tag-based policies.

For standard accelerators, Global Accelerator uses the Amazon Web Services global network to route traffic to the optimal regional endpoint based on health, client location, and policies that you configure. The service reacts instantly to changes in health or configuration to ensure that internet traffic from clients is always directed to healthy endpoints.

For more information about understanding and using Global Accelerator, see the Global Accelerator Developer Guide.

" } diff --git a/botocore/data/glue/2017-03-31/endpoint-rule-set-1.json b/botocore/data/glue/2017-03-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..a5c46721 --- /dev/null +++ b/botocore/data/glue/2017-03-31/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://glue-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://glue-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://glue.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://glue.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/glue/2017-03-31/service-2.json b/botocore/data/glue/2017-03-31/service-2.json index a1ff3c44..671d6a6f 100644 --- a/botocore/data/glue/2017-03-31/service-2.json +++ b/botocore/data/glue/2017-03-31/service-2.json @@ -139,6 +139,21 @@ ], "documentation":"

Retrieves the details for the custom patterns specified by a list of names.

" }, + "BatchGetDataQualityResult":{ + "name":"BatchGetDataQualityResult", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetDataQualityResultRequest"}, + "output":{"shape":"BatchGetDataQualityResultResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Retrieves a list of data quality results for the specified result IDs.

" + }, "BatchGetDevEndpoints":{ "name":"BatchGetDevEndpoints", "http":{ @@ -250,6 +265,38 @@ ], "documentation":"

Updates one or more partitions in a batch operation.

" }, + "CancelDataQualityRuleRecommendationRun":{ + "name":"CancelDataQualityRuleRecommendationRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelDataQualityRuleRecommendationRunRequest"}, + "output":{"shape":"CancelDataQualityRuleRecommendationRunResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Cancels the specified recommendation run that was being used to generate rules.

" + }, + "CancelDataQualityRulesetEvaluationRun":{ + "name":"CancelDataQualityRulesetEvaluationRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelDataQualityRulesetEvaluationRunRequest"}, + "output":{"shape":"CancelDataQualityRulesetEvaluationRunResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Cancels a run where a ruleset is being evaluated against a data source.

" + }, "CancelMLTaskRun":{ "name":"CancelMLTaskRun", "http":{ @@ -282,7 +329,7 @@ {"shape":"InvalidInputException"}, {"shape":"IllegalSessionStateException"} ], - "documentation":"

Cancels the statement..

" + "documentation":"

Cancels the statement.

" }, "CheckSchemaVersionValidity":{ "name":"CheckSchemaVersionValidity", @@ -383,6 +430,24 @@ ], "documentation":"

Creates a custom pattern that is used to detect sensitive data across the columns and rows of your structured data.

Each custom pattern you create specifies a regular expression and an optional list of context words. If no context words are passed only a regular expression is checked.

" }, + "CreateDataQualityRuleset":{ + "name":"CreateDataQualityRuleset", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDataQualityRulesetRequest"}, + "output":{"shape":"CreateDataQualityRulesetResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"}, + {"shape":"ResourceNumberLimitExceededException"} + ], + "documentation":"

Creates a data quality ruleset with DQDL rules applied to a specified Glue table.

You create the ruleset using the Data Quality Definition Language (DQDL). For more information, see the Glue developer guide.

", + "idempotent":true + }, "CreateDatabase":{ "name":"CreateDatabase", "http":{ @@ -775,6 +840,22 @@ ], "documentation":"

Deletes a custom pattern by specifying its name.

" }, + "DeleteDataQualityRuleset":{ + "name":"DeleteDataQualityRuleset", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDataQualityRulesetRequest"}, + "output":{"shape":"DeleteDataQualityRulesetResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Deletes a data quality ruleset.

" + }, "DeleteDatabase":{ "name":"DeleteDatabase", "http":{ @@ -1280,6 +1361,70 @@ ], "documentation":"

Retrieves the security configuration for a specified catalog.

" }, + "GetDataQualityResult":{ + "name":"GetDataQualityResult", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDataQualityResultRequest"}, + "output":{"shape":"GetDataQualityResultResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"}, + {"shape":"EntityNotFoundException"} + ], + "documentation":"

Retrieves the result of a data quality rule evaluation.

" + }, + "GetDataQualityRuleRecommendationRun":{ + "name":"GetDataQualityRuleRecommendationRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDataQualityRuleRecommendationRunRequest"}, + "output":{"shape":"GetDataQualityRuleRecommendationRunResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Gets the specified recommendation run that was used to generate rules.

" + }, + "GetDataQualityRuleset":{ + "name":"GetDataQualityRuleset", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDataQualityRulesetRequest"}, + "output":{"shape":"GetDataQualityRulesetResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Returns an existing ruleset by identifier or name.

" + }, + "GetDataQualityRulesetEvaluationRun":{ + "name":"GetDataQualityRulesetEvaluationRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDataQualityRulesetEvaluationRunRequest"}, + "output":{"shape":"GetDataQualityRulesetEvaluationRunResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Retrieves a specific run where a ruleset is evaluated against a data source.

" + }, "GetDatabase":{ "name":"GetDatabase", "http":{ @@ -1358,7 +1503,7 @@ {"shape":"OperationTimeoutException"}, {"shape":"InvalidInputException"} ], - "documentation":"

Retrieves all the development endpoints in this AWS account.

When you create a development endpoint in a virtual private cloud (VPC), Glue returns only a private IP address and the public IP address field is not populated. When you create a non-VPC development endpoint, Glue returns only a public IP address.

" + "documentation":"

Retrieves all the development endpoints in this Amazon Web Services account.

When you create a development endpoint in a virtual private cloud (VPC), Glue returns only a private IP address and the public IP address field is not populated. When you create a non-VPC development endpoint, Glue returns only a public IP address.

" }, "GetJob":{ "name":"GetJob", @@ -1391,7 +1536,7 @@ {"shape":"OperationTimeoutException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns information on a job bookmark entry.

" + "documentation":"

Returns information on a job bookmark entry.

For more information about enabling and using job bookmarks, see:

" }, "GetJobRun":{ "name":"GetJobRun", @@ -2076,6 +2221,21 @@ ], "documentation":"

Retrieves the names of all crawler resources in this Amazon Web Services account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.

This operation takes the optional Tags field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

" }, + "ListCrawls":{ + "name":"ListCrawls", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCrawlsRequest"}, + "output":{"shape":"ListCrawlsResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Returns all the crawls of a specified crawler. Returns only the crawls that have occurred since the launch date of the crawler history feature, and only retains up to 12 months of crawls. Older crawls will not be returned.

You may use this API to:

  • Retrive all the crawls of a specified crawler.

  • Retrieve all the crawls of a specified crawler within a limited count.

  • Retrieve all the crawls of a specified crawler in a specific time range.

  • Retrieve all the crawls of a specified crawler with a particular state, crawl ID, or DPU hour value.

" + }, "ListCustomEntityTypes":{ "name":"ListCustomEntityTypes", "http":{ @@ -2091,6 +2251,67 @@ ], "documentation":"

Lists all the custom patterns that have been created.

" }, + "ListDataQualityResults":{ + "name":"ListDataQualityResults", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDataQualityResultsRequest"}, + "output":{"shape":"ListDataQualityResultsResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Returns all data quality execution results for your account.

" + }, + "ListDataQualityRuleRecommendationRuns":{ + "name":"ListDataQualityRuleRecommendationRuns", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDataQualityRuleRecommendationRunsRequest"}, + "output":{"shape":"ListDataQualityRuleRecommendationRunsResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Lists the recommendation runs meeting the filter criteria.

" + }, + "ListDataQualityRulesetEvaluationRuns":{ + "name":"ListDataQualityRulesetEvaluationRuns", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDataQualityRulesetEvaluationRunsRequest"}, + "output":{"shape":"ListDataQualityRulesetEvaluationRunsResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Lists all the runs meeting the filter criteria, where a ruleset is evaluated against a data source.

" + }, + "ListDataQualityRulesets":{ + "name":"ListDataQualityRulesets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDataQualityRulesetsRequest"}, + "output":{"shape":"ListDataQualityRulesetsResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"} + ], + "documentation":"

Returns a paginated list of rulesets for the specified list of Glue tables.

" + }, "ListDevEndpoints":{ "name":"ListDevEndpoints", "http":{ @@ -2200,7 +2421,7 @@ {"shape":"InternalServiceException"}, {"shape":"OperationTimeoutException"} ], - "documentation":"

Retrieve a session..

" + "documentation":"

Retrieve a list of sessions.

" }, "ListStatements":{ "name":"ListStatements", @@ -2381,7 +2602,7 @@ {"shape":"InternalServiceException"}, {"shape":"OperationTimeoutException"} ], - "documentation":"

Resets a bookmark entry.

" + "documentation":"

Resets a bookmark entry.

For more information about enabling and using job bookmarks, see:

" }, "ResumeWorkflowRun":{ "name":"ResumeWorkflowRun", @@ -2486,6 +2707,41 @@ ], "documentation":"

Changes the schedule state of the specified crawler to SCHEDULED, unless the crawler is already running or the schedule state is already SCHEDULED.

" }, + "StartDataQualityRuleRecommendationRun":{ + "name":"StartDataQualityRuleRecommendationRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartDataQualityRuleRecommendationRunRequest"}, + "output":{"shape":"StartDataQualityRuleRecommendationRunResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Starts a recommendation run that is used to generate rules when you don't know what rules to write. Glue Data Quality analyzes the data and comes up with recommendations for a potential ruleset. You can then triage the ruleset and modify the generated ruleset to your liking.

", + "idempotent":true + }, + "StartDataQualityRulesetEvaluationRun":{ + "name":"StartDataQualityRulesetEvaluationRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartDataQualityRulesetEvaluationRunRequest"}, + "output":{"shape":"StartDataQualityRulesetEvaluationRunResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Once you have a ruleset definition (either recommended or your own), you call this operation to evaluate the ruleset against a data source (Glue table). The evaluation computes results which you can retrieve with the GetDataQualityResult API.

", + "idempotent":true + }, "StartExportLabelsTaskRun":{ "name":"StartExportLabelsTaskRun", "http":{ @@ -2843,6 +3099,25 @@ ], "documentation":"

Updates the schedule of a crawler using a cron expression.

" }, + "UpdateDataQualityRuleset":{ + "name":"UpdateDataQualityRuleset", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDataQualityRulesetRequest"}, + "output":{"shape":"UpdateDataQualityRulesetResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"InvalidInputException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"InternalServiceException"}, + {"shape":"ResourceNumberLimitExceededException"} + ], + "documentation":"

Updates the specified data quality ruleset.

" + }, "UpdateDatabase":{ "name":"UpdateDatabase", "http":{ @@ -2893,7 +3168,26 @@ {"shape":"OperationTimeoutException"}, {"shape":"ConcurrentModificationException"} ], - "documentation":"

Updates an existing job definition.

" + "documentation":"

Updates an existing job definition. The previous job definition is completely overwritten by this information.

" + }, + "UpdateJobFromSourceControl":{ + "name":"UpdateJobFromSourceControl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateJobFromSourceControlRequest"}, + "output":{"shape":"UpdateJobFromSourceControlResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"InvalidInputException"}, + {"shape":"ValidationException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ], + "documentation":"

Synchronizes a job from the source control repository. This operation takes the job artifacts that are located in the remote repository and updates the Glue internal stores with these artifacts.

This API supports optional parameters which take in the repository information.

" }, "UpdateMLTransform":{ "name":"UpdateMLTransform", @@ -2963,6 +3257,25 @@ ], "documentation":"

Updates the description, compatibility setting, or version checkpoint for a schema set.

For updating the compatibility setting, the call will not validate compatibility for the entire set of schema versions with the new compatibility setting. If the value for Compatibility is provided, the VersionNumber (a checkpoint) is also required. The API will validate the checkpoint version number for consistency.

If the value for the VersionNumber (checkpoint) is provided, Compatibility is optional and this can be used to set/reset a checkpoint for the schema.

This update will happen only if the schema is in the AVAILABLE state.

" }, + "UpdateSourceControlFromJob":{ + "name":"UpdateSourceControlFromJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSourceControlFromJobRequest"}, + "output":{"shape":"UpdateSourceControlFromJobResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"AlreadyExistsException"}, + {"shape":"InvalidInputException"}, + {"shape":"ValidationException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"} + ], + "documentation":"

Synchronizes a job to the source control repository. This operation takes the job artifacts from the Glue internal stores and makes a commit to the remote repository that is configured on the job.

This API supports optional parameters which take in the repository information.

" + }, "UpdateTable":{ "name":"UpdateTable", "http":{ @@ -3271,6 +3584,12 @@ "max":2048, "min":0 }, + "AuthTokenString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, "BackfillError":{ "type":"structure", "members":{ @@ -3598,6 +3917,30 @@ } } }, + "BatchGetDataQualityResultRequest":{ + "type":"structure", + "required":["ResultIds"], + "members":{ + "ResultIds":{ + "shape":"DataQualityResultIds", + "documentation":"

A list of unique result IDs for the data quality results.

" + } + } + }, + "BatchGetDataQualityResultResponse":{ + "type":"structure", + "required":["Results"], + "members":{ + "Results":{ + "shape":"DataQualityResultsList", + "documentation":"

A list of DataQualityResult objects representing the data quality results.

" + }, + "ResultsNotFound":{ + "shape":"DataQualityResultIds", + "documentation":"

A list of result IDs for which results were not found.

" + } + } + }, "BatchGetDevEndpointsRequest":{ "type":"structure", "required":["DevEndpointNames"], @@ -4134,6 +4477,36 @@ "box":true, "min":0 }, + "CancelDataQualityRuleRecommendationRunRequest":{ + "type":"structure", + "required":["RunId"], + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + } + } + }, + "CancelDataQualityRuleRecommendationRunResponse":{ + "type":"structure", + "members":{ + } + }, + "CancelDataQualityRulesetEvaluationRunRequest":{ + "type":"structure", + "required":["RunId"], + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + } + } + }, + "CancelDataQualityRulesetEvaluationRunResponse":{ + "type":"structure", + "members":{ + } + }, "CancelMLTaskRunRequest":{ "type":"structure", "required":[ @@ -4394,6 +4767,14 @@ "ConnectionName":{ "shape":"ConnectionName", "documentation":"

The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a Catalog connection type paired with a NETWORK Connection type.

" + }, + "EventQueueArn":{ + "shape":"EventQueueArn", + "documentation":"

A valid Amazon SQS ARN. For example, arn:aws:sqs:region:account:sqs.

" + }, + "DlqEventQueueArn":{ + "shape":"EventQueueArn", + "documentation":"

A valid Amazon dead-letter SQS ARN. For example, arn:aws:sqs:region:account:deadLetterQueue.

" } }, "documentation":"

Specifies an Glue Data Catalog target.

" @@ -4682,6 +5063,14 @@ "PostgreSQLCatalogTarget":{ "shape":"PostgreSQLCatalogTarget", "documentation":"

Specifies a target that uses Postgres SQL.

" + }, + "DynamicTransform":{ + "shape":"DynamicTransform", + "documentation":"

Specifies a custom visual transform created by a user.

" + }, + "EvaluateDataQuality":{ + "shape":"EvaluateDataQuality", + "documentation":"

Specifies your data quality evaluation criteria.

" } }, "documentation":"

CodeGenConfigurationNode enumerates all valid Node types. One and only one of its member variables can be populated.

" @@ -4976,6 +5365,12 @@ "min":0, "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" }, + "CommitIdString":{ + "type":"string", + "max":40, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, "Comparator":{ "type":"string", "enum":[ @@ -5123,7 +5518,7 @@ }, "ConnectionProperties":{ "shape":"ConnectionProperties", - "documentation":"

These key-value pairs define parameters for the connection:

  • HOST - The host URI: either the fully qualified domain name (FQDN) or the IPv4 address of the database host.

  • PORT - The port number, between 1024 and 65535, of the port on which the database host is listening for database connections.

  • USER_NAME - The name under which to log in to the database. The value string for USER_NAME is \"USERNAME\".

  • PASSWORD - A password, if one is used, for the user name.

  • ENCRYPTED_PASSWORD - When you enable connection password protection by setting ConnectionPasswordEncryption in the Data Catalog encryption settings, this field stores the encrypted password.

  • JDBC_DRIVER_JAR_URI - The Amazon Simple Storage Service (Amazon S3) path of the JAR file that contains the JDBC driver to use.

  • JDBC_DRIVER_CLASS_NAME - The class name of the JDBC driver to use.

  • JDBC_ENGINE - The name of the JDBC engine to use.

  • JDBC_ENGINE_VERSION - The version of the JDBC engine to use.

  • CONFIG_FILES - (Reserved for future use.)

  • INSTANCE_ID - The instance ID to use.

  • JDBC_CONNECTION_URL - The URL for connecting to a JDBC data source.

  • JDBC_ENFORCE_SSL - A Boolean string (true, false) specifying whether Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client. The default is false.

  • CUSTOM_JDBC_CERT - An Amazon S3 location specifying the customer's root certificate. Glue uses this root certificate to validate the customer’s certificate when connecting to the customer database. Glue only handles X.509 certificates. The certificate provided must be DER-encoded and supplied in Base64 encoding PEM format.

  • SKIP_CUSTOM_JDBC_CERT_VALIDATION - By default, this is false. Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA, SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length must be at least 2048. You can set the value of this property to true to skip Glue’s validation of the customer certificate.

  • CUSTOM_JDBC_CERT_STRING - A custom JDBC certificate string which is used for domain match or distinguished name match to prevent a man-in-the-middle attack. In Oracle database, this is used as the SSL_SERVER_CERT_DN; in Microsoft SQL Server, this is used as the hostNameInCertificate.

  • CONNECTION_URL - The URL for connecting to a general (non-JDBC) data source.

  • KAFKA_BOOTSTRAP_SERVERS - A comma-separated list of host and port pairs that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka client will connect to and bootstrap itself.

  • KAFKA_SSL_ENABLED - Whether to enable or disable SSL on an Apache Kafka connection. Default value is \"true\".

  • KAFKA_CUSTOM_CERT - The Amazon S3 URL for the private CA cert file (.pem format). The default is an empty string.

  • KAFKA_SKIP_CUSTOM_CERT_VALIDATION - Whether to skip the validation of the CA cert file or not. Glue validates for three algorithms: SHA256withRSA, SHA384withRSA and SHA512withRSA. Default value is \"false\".

  • SECRET_ID - The secret ID used for the secret manager of credentials.

  • CONNECTOR_URL - The connector URL for a MARKETPLACE or CUSTOM connection.

  • CONNECTOR_TYPE - The connector type for a MARKETPLACE or CUSTOM connection.

  • CONNECTOR_CLASS_NAME - The connector class name for a MARKETPLACE or CUSTOM connection.

  • KAFKA_CLIENT_KEYSTORE - The Amazon S3 location of the client keystore file for Kafka client side authentication (Optional).

  • KAFKA_CLIENT_KEYSTORE_PASSWORD - The password to access the provided keystore (Optional).

  • KAFKA_CLIENT_KEY_PASSWORD - A keystore can consist of multiple keys, so this is the password to access the client key to be used with the Kafka server side key (Optional).

  • ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD - The encrypted version of the Kafka client keystore password (if the user has the Glue encrypt passwords setting selected).

  • ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD - The encrypted version of the Kafka client key password (if the user has the Glue encrypt passwords setting selected).

" + "documentation":"

These key-value pairs define parameters for the connection:

  • HOST - The host URI: either the fully qualified domain name (FQDN) or the IPv4 address of the database host.

  • PORT - The port number, between 1024 and 65535, of the port on which the database host is listening for database connections.

  • USER_NAME - The name under which to log in to the database. The value string for USER_NAME is \"USERNAME\".

  • PASSWORD - A password, if one is used, for the user name.

  • ENCRYPTED_PASSWORD - When you enable connection password protection by setting ConnectionPasswordEncryption in the Data Catalog encryption settings, this field stores the encrypted password.

  • JDBC_DRIVER_JAR_URI - The Amazon Simple Storage Service (Amazon S3) path of the JAR file that contains the JDBC driver to use.

  • JDBC_DRIVER_CLASS_NAME - The class name of the JDBC driver to use.

  • JDBC_ENGINE - The name of the JDBC engine to use.

  • JDBC_ENGINE_VERSION - The version of the JDBC engine to use.

  • CONFIG_FILES - (Reserved for future use.)

  • INSTANCE_ID - The instance ID to use.

  • JDBC_CONNECTION_URL - The URL for connecting to a JDBC data source.

  • JDBC_ENFORCE_SSL - A Boolean string (true, false) specifying whether Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client. The default is false.

  • CUSTOM_JDBC_CERT - An Amazon S3 location specifying the customer's root certificate. Glue uses this root certificate to validate the customer’s certificate when connecting to the customer database. Glue only handles X.509 certificates. The certificate provided must be DER-encoded and supplied in Base64 encoding PEM format.

  • SKIP_CUSTOM_JDBC_CERT_VALIDATION - By default, this is false. Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA, SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length must be at least 2048. You can set the value of this property to true to skip Glue’s validation of the customer certificate.

  • CUSTOM_JDBC_CERT_STRING - A custom JDBC certificate string which is used for domain match or distinguished name match to prevent a man-in-the-middle attack. In Oracle database, this is used as the SSL_SERVER_CERT_DN; in Microsoft SQL Server, this is used as the hostNameInCertificate.

  • CONNECTION_URL - The URL for connecting to a general (non-JDBC) data source.

  • SECRET_ID - The secret ID used for the secret manager of credentials.

  • CONNECTOR_URL - The connector URL for a MARKETPLACE or CUSTOM connection.

  • CONNECTOR_TYPE - The connector type for a MARKETPLACE or CUSTOM connection.

  • CONNECTOR_CLASS_NAME - The connector class name for a MARKETPLACE or CUSTOM connection.

  • KAFKA_BOOTSTRAP_SERVERS - A comma-separated list of host and port pairs that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka client will connect to and bootstrap itself.

  • KAFKA_SSL_ENABLED - Whether to enable or disable SSL on an Apache Kafka connection. Default value is \"true\".

  • KAFKA_CUSTOM_CERT - The Amazon S3 URL for the private CA cert file (.pem format). The default is an empty string.

  • KAFKA_SKIP_CUSTOM_CERT_VALIDATION - Whether to skip the validation of the CA cert file or not. Glue validates for three algorithms: SHA256withRSA, SHA384withRSA and SHA512withRSA. Default value is \"false\".

  • KAFKA_CLIENT_KEYSTORE - The Amazon S3 location of the client keystore file for Kafka client side authentication (Optional).

  • KAFKA_CLIENT_KEYSTORE_PASSWORD - The password to access the provided keystore (Optional).

  • KAFKA_CLIENT_KEY_PASSWORD - A keystore can consist of multiple keys, so this is the password to access the client key to be used with the Kafka server side key (Optional).

  • ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD - The encrypted version of the Kafka client keystore password (if the user has the Glue encrypt passwords setting selected).

  • ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD - The encrypted version of the Kafka client key password (if the user has the Glue encrypt passwords setting selected).

  • KAFKA_SASL_MECHANISM - \"SCRAM-SHA-512\" or \"GSSAPI\". These are the two supported SASL Mechanisms.

  • KAFKA_SASL_SCRAM_USERNAME - A plaintext username used to authenticate with the \"SCRAM-SHA-512\" mechanism.

  • KAFKA_SASL_SCRAM_PASSWORD - A plaintext password used to authenticate with the \"SCRAM-SHA-512\" mechanism.

  • ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD - The encrypted version of the Kafka SASL SCRAM password (if the user has the Glue encrypt passwords setting selected).

  • KAFKA_SASL_GSSAPI_KEYTAB - The S3 location of a Kerberos keytab file. A keytab stores long-term keys for one or more principals. For more information, see MIT Kerberos Documentation: Keytab.

  • KAFKA_SASL_GSSAPI_KRB5_CONF - The S3 location of a Kerberos krb5.conf file. A krb5.conf stores Kerberos configuration information, such as the location of the KDC server. For more information, see MIT Kerberos Documentation: krb5.conf.

  • KAFKA_SASL_GSSAPI_SERVICE - The Kerberos service name, as set with sasl.kerberos.service.name in your Kafka Configuration.

  • KAFKA_SASL_GSSAPI_PRINCIPAL - The name of the Kerberos princial used by Glue. For more information, see Kafka Documentation: Configuring Kafka Brokers.

" }, "PhysicalConnectionRequirements":{ "shape":"PhysicalConnectionRequirements", @@ -5299,6 +5694,7 @@ }, "documentation":"

The details of a crawl in the workflow.

" }, + "CrawlId":{"type":"string"}, "CrawlList":{ "type":"list", "member":{"shape":"Crawl"} @@ -5310,7 +5706,8 @@ "CANCELLING", "CANCELLED", "SUCCEEDED", - "FAILED" + "FAILED", + "ERROR" ] }, "Crawler":{ @@ -5386,7 +5783,7 @@ }, "Configuration":{ "shape":"CrawlerConfiguration", - "documentation":"

Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see Include and Exclude Patterns.

" + "documentation":"

Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see Setting crawler configuration options.

" }, "CrawlerSecurityConfiguration":{ "shape":"CrawlerSecurityConfiguration", @@ -5394,12 +5791,71 @@ }, "LakeFormationConfiguration":{ "shape":"LakeFormationConfiguration", - "documentation":"

Specifies whether the crawler should use AWS Lake Formation credentials for the crawler instead of the IAM role credentials.

" + "documentation":"

Specifies whether the crawler should use Lake Formation credentials for the crawler instead of the IAM role credentials.

" } }, "documentation":"

Specifies a crawler program that examines a data source and uses classifiers to try to determine its schema. If successful, the crawler records metadata concerning the data source in the Glue Data Catalog.

" }, "CrawlerConfiguration":{"type":"string"}, + "CrawlerHistory":{ + "type":"structure", + "members":{ + "CrawlId":{ + "shape":"CrawlId", + "documentation":"

A UUID identifier for each crawl.

" + }, + "State":{ + "shape":"CrawlerHistoryState", + "documentation":"

The state of the crawl.

" + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The date and time on which the crawl started.

" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The date and time on which the crawl ended.

" + }, + "Summary":{ + "shape":"NameString", + "documentation":"

A run summary for the specific crawl in JSON. Contains the catalog tables and partitions that were added, updated, or deleted.

" + }, + "ErrorMessage":{ + "shape":"DescriptionString", + "documentation":"

If an error occurred, the error message associated with the crawl.

" + }, + "LogGroup":{ + "shape":"LogGroup", + "documentation":"

The log group associated with the crawl.

" + }, + "LogStream":{ + "shape":"LogStream", + "documentation":"

The log stream associated with the crawl.

" + }, + "MessagePrefix":{ + "shape":"MessagePrefix", + "documentation":"

The prefix for a CloudWatch message about this crawl.

" + }, + "DPUHour":{ + "shape":"NonNegativeDouble", + "documentation":"

The number of data processing units (DPU) used in hours for the crawl.

" + } + }, + "documentation":"

Contains the information for a run of a crawler.

" + }, + "CrawlerHistoryList":{ + "type":"list", + "member":{"shape":"CrawlerHistory"} + }, + "CrawlerHistoryState":{ + "type":"string", + "enum":[ + "RUNNING", + "COMPLETED", + "FAILED", + "STOPPED" + ] + }, "CrawlerLineageSettings":{ "type":"string", "enum":[ @@ -5545,6 +6001,28 @@ }, "documentation":"

Specifies data stores to crawl.

" }, + "CrawlsFilter":{ + "type":"structure", + "members":{ + "FieldName":{ + "shape":"FieldName", + "documentation":"

A key used to filter the crawler runs for a specified crawler. Valid values for each of the field names are:

  • CRAWL_ID: A string representing the UUID identifier for a crawl.

  • STATE: A string representing the state of the crawl.

  • START_TIME and END_TIME: The epoch timestamp in milliseconds.

  • DPU_HOUR: The number of data processing unit (DPU) hours used for the crawl.

" + }, + "FilterOperator":{ + "shape":"FilterOperator", + "documentation":"

A defined comparator that operates on the value. The available operators are:

  • GT: Greater than.

  • GE: Greater than or equal to.

  • LT: Less than.

  • LE: Less than or equal to.

  • EQ: Equal to.

  • NE: Not equal to.

" + }, + "FieldValue":{ + "shape":"GenericString", + "documentation":"

The value provided for comparison on the crawl field.

" + } + }, + "documentation":"

A list of fields, comparators and value that you can use to filter the crawler runs for a specified crawler.

" + }, + "CrawlsFilterList":{ + "type":"list", + "member":{"shape":"CrawlsFilter"} + }, "CreateBlueprintRequest":{ "type":"structure", "required":[ @@ -5680,10 +6158,13 @@ "shape":"LineageConfiguration", "documentation":"

Specifies data lineage configuration settings for the crawler.

" }, - "LakeFormationConfiguration":{"shape":"LakeFormationConfiguration"}, + "LakeFormationConfiguration":{ + "shape":"LakeFormationConfiguration", + "documentation":"

Specifies Lake Formation configuration settings for the crawler.

" + }, "Configuration":{ "shape":"CrawlerConfiguration", - "documentation":"

Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see Configuring a Crawler.

" + "documentation":"

Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see Setting crawler configuration options.

" }, "CrawlerSecurityConfiguration":{ "shape":"CrawlerSecurityConfiguration", @@ -5731,6 +6212,14 @@ "AllowSingleColumn":{ "shape":"NullableBoolean", "documentation":"

Enables the processing of files that contain only one column.

" + }, + "CustomDatatypeConfigured":{ + "shape":"NullableBoolean", + "documentation":"

Enables the configuration of custom datatypes.

" + }, + "CustomDatatypes":{ + "shape":"CustomDatatypes", + "documentation":"

Creates a list of supported custom datatypes.

" } }, "documentation":"

Specifies a custom CSV classifier for CreateClassifier to create.

" @@ -5765,6 +6254,48 @@ } } }, + "CreateDataQualityRulesetRequest":{ + "type":"structure", + "required":[ + "Name", + "Ruleset" + ], + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

A unique name for the data quality ruleset.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

A description of the data quality ruleset.

" + }, + "Ruleset":{ + "shape":"DataQualityRulesetString", + "documentation":"

A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.

" + }, + "Tags":{ + "shape":"TagsMap", + "documentation":"

A list of tags applied to the data quality ruleset.

" + }, + "TargetTable":{ + "shape":"DataQualityTargetTable", + "documentation":"

A target table associated with the data quality ruleset.

" + }, + "ClientToken":{ + "shape":"HashString", + "documentation":"

Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.

" + } + } + }, + "CreateDataQualityRulesetResponse":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

A unique name for the data quality ruleset.

" + } + } + }, "CreateDatabaseRequest":{ "type":"structure", "required":["DatabaseInput"], @@ -5776,6 +6307,10 @@ "DatabaseInput":{ "shape":"DatabaseInput", "documentation":"

The metadata for the database.

" + }, + "Tags":{ + "shape":"TagsMap", + "documentation":"

The tags you assign to the database.

" } } }, @@ -5902,7 +6437,7 @@ }, "AvailabilityZone":{ "shape":"GenericString", - "documentation":"

The AWS Availability Zone where this DevEndpoint is located.

" + "documentation":"

The Amazon Web Services Availability Zone where this DevEndpoint is located.

" }, "VpcId":{ "shape":"GenericString", @@ -5995,7 +6530,7 @@ }, "DefaultArguments":{ "shape":"GenericMap", - "documentation":"

The default arguments for this job.

You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.

For information about how to specify and consume your own Job arguments, see the Calling Glue APIs in Python topic in the developer guide.

For information about the key-value pairs that Glue consumes to set up your job, see the Special Parameters Used by Glue topic in the developer guide.

" + "documentation":"

The default arguments for this job.

You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.

Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job.

For information about how to specify and consume your own Job arguments, see the Calling Glue APIs in Python topic in the developer guide.

For information about the key-value pairs that Glue consumes to set up your job, see the Special Parameters Used by Glue topic in the developer guide.

" }, "NonOverridableArguments":{ "shape":"GenericMap", @@ -6011,7 +6546,7 @@ }, "AllocatedCapacity":{ "shape":"IntegerValue", - "documentation":"

This parameter is deprecated. Use MaxCapacity instead.

The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

", + "documentation":"

This parameter is deprecated. Use MaxCapacity instead.

The number of Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

", "deprecated":true, "deprecatedMessage":"This property is deprecated, use MaxCapacity instead." }, @@ -6021,7 +6556,7 @@ }, "MaxCapacity":{ "shape":"NullableDouble", - "documentation":"

For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job or an Apache Spark ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name=\"gluestreaming\"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity. Instead, you should specify a Worker type and the Number of workers.

" + "documentation":"

For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job or an Apache Spark ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name=\"gluestreaming\"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity. Instead, you should specify a Worker type and the Number of workers.

" }, "SecurityConfiguration":{ "shape":"NameString", @@ -6041,15 +6576,23 @@ }, "NumberOfWorkers":{ "shape":"NullableInteger", - "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

The maximum number of workers you can define are 299 for G.1X, and 149 for G.2X.

" + "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

" }, "WorkerType":{ "shape":"WorkerType", - "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

" + "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

" }, "CodeGenConfigurationNodes":{ "shape":"CodeGenConfigurationNodes", "documentation":"

The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.

" + }, + "ExecutionClass":{ + "shape":"ExecutionClass", + "documentation":"

Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.

Only jobs with Glue version 3.0 and above and command type glueetl will be allowed to set ExecutionClass to FLEX. The flexible execution class is available for Spark jobs.

" + }, + "SourceControlDetails":{ + "shape":"SourceControlDetails", + "documentation":"

The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.

" } } }, @@ -6453,15 +6996,15 @@ }, "MaxCapacity":{ "shape":"NullableDouble", - "documentation":"

The number of AWS Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory.

" + "documentation":"

The number of Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory.

" }, "NumberOfWorkers":{ "shape":"NullableInteger", - "documentation":"

The number of workers to use for the session.

" + "documentation":"

The number of workers of a defined WorkerType to use for the session.

" }, "WorkerType":{ "shape":"WorkerType", - "documentation":"

The Worker Type. Can be one of G.1X, G.2X, Standard

" + "documentation":"

The type of predefined worker that is allocated to use for the session. Accepts a value of Standard, G.1X, G.2X, or G.025X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

" }, "SecurityConfiguration":{ "shape":"NameString", @@ -6469,7 +7012,7 @@ }, "GlueVersion":{ "shape":"GlueVersionString", - "documentation":"

The Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The GlueVersion must be greater than 2.0.

" + "documentation":"

The Glue version determines the versions of Apache Spark and Python that Glue supports. The GlueVersion must be greater than 2.0.

" }, "Tags":{ "shape":"TagsMap", @@ -6712,6 +7255,14 @@ "AllowSingleColumn":{ "shape":"NullableBoolean", "documentation":"

Enables the processing of files that contain only one column.

" + }, + "CustomDatatypeConfigured":{ + "shape":"NullableBoolean", + "documentation":"

Enables the custom datatype to be configured.

" + }, + "CustomDatatypes":{ + "shape":"CustomDatatypes", + "documentation":"

A list of custom datatypes including \"BINARY\", \"BOOLEAN\", \"DATE\", \"DECIMAL\", \"DOUBLE\", \"FLOAT\", \"INT\", \"LONG\", \"SHORT\", \"STRING\", \"TIMESTAMP\".

" } }, "documentation":"

A classifier for custom CSV content.

" @@ -6772,6 +7323,10 @@ }, "documentation":"

Specifies a transform that uses custom code you provide to perform the data transformation. The output is a collection of DynamicFrames.

" }, + "CustomDatatypes":{ + "type":"list", + "member":{"shape":"NameString"} + }, "CustomEntityType":{ "type":"structure", "required":[ @@ -6810,6 +7365,58 @@ "min":0, "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" }, + "DQDLString":{ + "type":"string", + "max":65536, + "min":1, + "pattern":"([\\u0020-\\u007E\\r\\s\\n])*" + }, + "DQResultsPublishingOptions":{ + "type":"structure", + "members":{ + "EvaluationContext":{ + "shape":"GenericLimitedString", + "documentation":"

The context of the evaluation.

" + }, + "ResultsS3Prefix":{ + "shape":"EnclosedInStringProperty", + "documentation":"

The Amazon S3 prefix prepended to the results.

" + }, + "CloudWatchMetricsEnabled":{ + "shape":"BoxedBoolean", + "documentation":"

Enable metrics for your data quality results.

" + }, + "ResultsPublishingEnabled":{ + "shape":"BoxedBoolean", + "documentation":"

Enable publishing for your data quality results.

" + } + }, + "documentation":"

Options to configure how your data quality evaluation results are published.

" + }, + "DQStopJobOnFailureOptions":{ + "type":"structure", + "members":{ + "StopJobOnFailureTiming":{ + "shape":"DQStopJobOnFailureTiming", + "documentation":"

When to stop job if your data quality evaluation fails. Options are Immediate or AfterDataLoad.

" + } + }, + "documentation":"

Options to configure how your job will stop if your data quality evaluation fails.

" + }, + "DQStopJobOnFailureTiming":{ + "type":"string", + "enum":[ + "Immediate", + "AfterDataLoad" + ] + }, + "DQTransformOutput":{ + "type":"string", + "enum":[ + "PrimaryInput", + "EvaluationResults" + ] + }, "DagEdges":{ "type":"list", "member":{"shape":"CodeGenEdge"} @@ -6855,6 +7462,374 @@ "max":255, "min":1 }, + "DataQualityEvaluationRunAdditionalRunOptions":{ + "type":"structure", + "members":{ + "CloudWatchMetricsEnabled":{ + "shape":"NullableBoolean", + "documentation":"

Whether or not to enable CloudWatch metrics.

" + }, + "ResultsS3Prefix":{ + "shape":"UriString", + "documentation":"

Prefix for Amazon S3 to store results.

" + } + }, + "documentation":"

Additional run options you can specify for an evaluation run.

" + }, + "DataQualityResult":{ + "type":"structure", + "members":{ + "ResultId":{ + "shape":"HashString", + "documentation":"

A unique result ID for the data quality result.

" + }, + "Score":{ + "shape":"GenericBoundedDouble", + "documentation":"

An aggregate data quality score. Represents the ratio of rules that passed to the total number of rules.

" + }, + "DataSource":{ + "shape":"DataSource", + "documentation":"

The table associated with the data quality result, if any.

" + }, + "RulesetName":{ + "shape":"NameString", + "documentation":"

The name of the ruleset associated with the data quality result.

" + }, + "EvaluationContext":{ + "shape":"GenericString", + "documentation":"

In the context of a job in Glue Studio, each node in the canvas is typically assigned some sort of name and data quality nodes will have names. In the case of multiple nodes, the evaluationContext can differentiate the nodes.

" + }, + "StartedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when this data quality run started.

" + }, + "CompletedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when this data quality run completed.

" + }, + "JobName":{ + "shape":"NameString", + "documentation":"

The job name associated with the data quality result, if any.

" + }, + "JobRunId":{ + "shape":"HashString", + "documentation":"

The job run ID associated with the data quality result, if any.

" + }, + "RulesetEvaluationRunId":{ + "shape":"HashString", + "documentation":"

The unique run ID for the ruleset evaluation for this data quality result.

" + }, + "RuleResults":{ + "shape":"DataQualityRuleResults", + "documentation":"

A list of DataQualityRuleResult objects representing the results for each rule.

" + } + }, + "documentation":"

Describes a data quality result.

" + }, + "DataQualityResultDescription":{ + "type":"structure", + "members":{ + "ResultId":{ + "shape":"HashString", + "documentation":"

The unique result ID for this data quality result.

" + }, + "DataSource":{ + "shape":"DataSource", + "documentation":"

The table name associated with the data quality result.

" + }, + "JobName":{ + "shape":"NameString", + "documentation":"

The job name associated with the data quality result.

" + }, + "JobRunId":{ + "shape":"HashString", + "documentation":"

The job run ID associated with the data quality result.

" + }, + "StartedOn":{ + "shape":"Timestamp", + "documentation":"

The time that the run started for this data quality result.

" + } + }, + "documentation":"

Describes a data quality result.

" + }, + "DataQualityResultDescriptionList":{ + "type":"list", + "member":{"shape":"DataQualityResultDescription"} + }, + "DataQualityResultFilterCriteria":{ + "type":"structure", + "members":{ + "DataSource":{ + "shape":"DataSource", + "documentation":"

Filter results by the specified data source. For example, retrieving all results for an Glue table.

" + }, + "JobName":{ + "shape":"NameString", + "documentation":"

Filter results by the specified job name.

" + }, + "JobRunId":{ + "shape":"HashString", + "documentation":"

Filter results by the specified job run ID.

" + }, + "StartedAfter":{ + "shape":"Timestamp", + "documentation":"

Filter results by runs that started after this time.

" + }, + "StartedBefore":{ + "shape":"Timestamp", + "documentation":"

Filter results by runs that started before this time.

" + } + }, + "documentation":"

Criteria used to return data quality results.

" + }, + "DataQualityResultIdList":{ + "type":"list", + "member":{"shape":"HashString"}, + "max":10, + "min":1 + }, + "DataQualityResultIds":{ + "type":"list", + "member":{"shape":"HashString"}, + "max":100, + "min":1 + }, + "DataQualityResultsList":{ + "type":"list", + "member":{"shape":"DataQualityResult"} + }, + "DataQualityRuleRecommendationRunDescription":{ + "type":"structure", + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + }, + "Status":{ + "shape":"TaskStatusType", + "documentation":"

The status for this run.

" + }, + "StartedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when this run started.

" + }, + "DataSource":{ + "shape":"DataSource", + "documentation":"

The data source (Glue table) associated with the recommendation run.

" + } + }, + "documentation":"

Describes the result of a data quality rule recommendation run.

" + }, + "DataQualityRuleRecommendationRunFilter":{ + "type":"structure", + "required":["DataSource"], + "members":{ + "DataSource":{ + "shape":"DataSource", + "documentation":"

Filter based on a specified data source (Glue table).

" + }, + "StartedBefore":{ + "shape":"Timestamp", + "documentation":"

Filter based on time for results started before provided time.

" + }, + "StartedAfter":{ + "shape":"Timestamp", + "documentation":"

Filter based on time for results started after provided time.

" + } + }, + "documentation":"

A filter for listing data quality recommendation runs.

" + }, + "DataQualityRuleRecommendationRunList":{ + "type":"list", + "member":{"shape":"DataQualityRuleRecommendationRunDescription"} + }, + "DataQualityRuleResult":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

The name of the data quality rule.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

A description of the data quality rule.

" + }, + "EvaluationMessage":{ + "shape":"DescriptionString", + "documentation":"

An evaluation message.

" + }, + "Result":{ + "shape":"DataQualityRuleResultStatus", + "documentation":"

A pass or fail status for the rule.

" + } + }, + "documentation":"

Describes the result of the evaluation of a data quality rule.

" + }, + "DataQualityRuleResultStatus":{ + "type":"string", + "enum":[ + "PASS", + "FAIL", + "ERROR" + ] + }, + "DataQualityRuleResults":{ + "type":"list", + "member":{"shape":"DataQualityRuleResult"}, + "max":2000, + "min":1 + }, + "DataQualityRulesetEvaluationRunDescription":{ + "type":"structure", + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + }, + "Status":{ + "shape":"TaskStatusType", + "documentation":"

The status for this run.

" + }, + "StartedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when the run started.

" + }, + "DataSource":{ + "shape":"DataSource", + "documentation":"

The data source (an Glue table) associated with the run.

" + } + }, + "documentation":"

Describes the result of a data quality ruleset evaluation run.

" + }, + "DataQualityRulesetEvaluationRunFilter":{ + "type":"structure", + "required":["DataSource"], + "members":{ + "DataSource":{ + "shape":"DataSource", + "documentation":"

Filter based on a data source (an Glue table) associated with the run.

" + }, + "StartedBefore":{ + "shape":"Timestamp", + "documentation":"

Filter results by runs that started before this time.

" + }, + "StartedAfter":{ + "shape":"Timestamp", + "documentation":"

Filter results by runs that started after this time.

" + } + }, + "documentation":"

The filter criteria.

" + }, + "DataQualityRulesetEvaluationRunList":{ + "type":"list", + "member":{"shape":"DataQualityRulesetEvaluationRunDescription"} + }, + "DataQualityRulesetFilterCriteria":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

The name of the ruleset filter criteria.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

The description of the ruleset filter criteria.

" + }, + "CreatedBefore":{ + "shape":"Timestamp", + "documentation":"

Filter on rulesets created before this date.

" + }, + "CreatedAfter":{ + "shape":"Timestamp", + "documentation":"

Filter on rulesets created after this date.

" + }, + "LastModifiedBefore":{ + "shape":"Timestamp", + "documentation":"

Filter on rulesets last modified before this date.

" + }, + "LastModifiedAfter":{ + "shape":"Timestamp", + "documentation":"

Filter on rulesets last modified after this date.

" + }, + "TargetTable":{ + "shape":"DataQualityTargetTable", + "documentation":"

The name and database name of the target table.

" + } + }, + "documentation":"

The criteria used to filter data quality rulesets.

" + }, + "DataQualityRulesetList":{ + "type":"list", + "member":{"shape":"DataQualityRulesetListDetails"} + }, + "DataQualityRulesetListDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

The name of the data quality ruleset.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

A description of the data quality ruleset.

" + }, + "CreatedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time the data quality ruleset was created.

" + }, + "LastModifiedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time the data quality ruleset was last modified.

" + }, + "TargetTable":{ + "shape":"DataQualityTargetTable", + "documentation":"

An object representing an Glue table.

" + }, + "RecommendationRunId":{ + "shape":"HashString", + "documentation":"

When a ruleset was created from a recommendation run, this run ID is generated to link the two together.

" + }, + "RuleCount":{ + "shape":"NullableInteger", + "documentation":"

The number of rules in the ruleset.

" + } + }, + "documentation":"

Describes a data quality ruleset returned by GetDataQualityRuleset.

" + }, + "DataQualityRulesetString":{ + "type":"string", + "max":65536, + "min":1 + }, + "DataQualityTargetTable":{ + "type":"structure", + "required":[ + "TableName", + "DatabaseName" + ], + "members":{ + "TableName":{ + "shape":"NameString", + "documentation":"

The name of the Glue table.

" + }, + "DatabaseName":{ + "shape":"NameString", + "documentation":"

The name of the database where the Glue table exists.

" + } + }, + "documentation":"

An object representing an Glue table.

" + }, + "DataSource":{ + "type":"structure", + "required":["GlueTable"], + "members":{ + "GlueTable":{ + "shape":"GlueTable", + "documentation":"

An Glue table.

" + } + }, + "documentation":"

A data source (an Glue table) for which you want data quality results.

" + }, "Database":{ "type":"structure", "required":["Name"], @@ -7200,6 +8175,21 @@ } } }, + "DeleteDataQualityRulesetRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

A name for the data quality ruleset.

" + } + } + }, + "DeleteDataQualityRulesetResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteDatabaseRequest":{ "type":"structure", "required":["Name"], @@ -7686,7 +8676,7 @@ }, "AvailabilityZone":{ "shape":"GenericString", - "documentation":"

The AWS Availability Zone where this DevEndpoint is located.

" + "documentation":"

The Amazon Web Services Availability Zone where this DevEndpoint is located.

" }, "VpcId":{ "shape":"GenericString", @@ -7942,6 +8932,47 @@ }, "documentation":"

Specifies a transform that removes columns from the dataset if all values in the column are 'null'. By default, Glue Studio will recognize null objects, but some values such as empty strings, strings that are \"null\", -1 integers or other placeholders such as zeros, are not automatically recognized as nulls.

" }, + "DynamicTransform":{ + "type":"structure", + "required":[ + "Name", + "TransformName", + "Inputs", + "FunctionName", + "Path" + ], + "members":{ + "Name":{ + "shape":"EnclosedInStringProperty", + "documentation":"

Specifies the name of the dynamic transform.

" + }, + "TransformName":{ + "shape":"EnclosedInStringProperty", + "documentation":"

Specifies the name of the dynamic transform as it appears in the Glue Studio visual editor.

" + }, + "Inputs":{ + "shape":"OneInput", + "documentation":"

Specifies the inputs for the dynamic transform that are required.

" + }, + "Parameters":{ + "shape":"TransformConfigParameterList", + "documentation":"

Specifies the parameters of the dynamic transform.

" + }, + "FunctionName":{ + "shape":"EnclosedInStringProperty", + "documentation":"

Specifies the name of the function of the dynamic transform.

" + }, + "Path":{ + "shape":"EnclosedInStringProperty", + "documentation":"

Specifies the path of the dynamic transform source and config files.

" + }, + "Version":{ + "shape":"EnclosedInStringProperty", + "documentation":"

This field is not used and will be deprecated in future release.

" + } + }, + "documentation":"

Specifies the set of parameters needed to perform the dynamic transform.

" + }, "DynamoDBCatalogSource":{ "type":"structure", "required":[ @@ -7999,12 +9030,16 @@ "documentation":"

The unique of the node within the workflow where the edge ends.

" } }, - "documentation":"

An edge represents a directed connection between two components on a workflow graph.

" + "documentation":"

An edge represents a directed connection between two Glue components that are part of the workflow the edge belongs to.

" }, "EdgeList":{ "type":"list", "member":{"shape":"Edge"} }, + "EnableAdditionalMetadata":{ + "type":"list", + "member":{"shape":"JdbcMetadataEntry"} + }, "EnableHybridValues":{ "type":"string", "enum":[ @@ -8108,6 +9143,41 @@ }, "ErrorMessageString":{"type":"string"}, "ErrorString":{"type":"string"}, + "EvaluateDataQuality":{ + "type":"structure", + "required":[ + "Name", + "Inputs", + "Ruleset" + ], + "members":{ + "Name":{ + "shape":"NodeName", + "documentation":"

The name of the data quality evaluation.

" + }, + "Inputs":{ + "shape":"OneInput", + "documentation":"

The inputs of your data quality evaluation.

" + }, + "Ruleset":{ + "shape":"DQDLString", + "documentation":"

The ruleset for your data quality evaluation.

" + }, + "Output":{ + "shape":"DQTransformOutput", + "documentation":"

The output of your data quality evaluation.

" + }, + "PublishingOptions":{ + "shape":"DQResultsPublishingOptions", + "documentation":"

Options to configure how your results are published.

" + }, + "StopJobOnFailureOptions":{ + "shape":"DQStopJobOnFailureOptions", + "documentation":"

Options to configure how your job will stop if your data quality evaluation fails.

" + } + }, + "documentation":"

Specifies your data quality evaluation criteria.

" + }, "EvaluationMetrics":{ "type":"structure", "required":["TransformType"], @@ -8139,6 +9209,14 @@ "documentation":"

Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.

" }, "EventQueueArn":{"type":"string"}, + "ExecutionClass":{ + "type":"string", + "enum":[ + "FLEX", + "STANDARD" + ], + "max":16 + }, "ExecutionProperty":{ "type":"structure", "members":{ @@ -8172,6 +9250,16 @@ "type":"string", "pattern":"[\\s\\S]*" }, + "FieldName":{ + "type":"string", + "enum":[ + "CRAWL_ID", + "STATE", + "START_TIME", + "END_TIME", + "DPU_HOUR" + ] + }, "FieldType":{"type":"string"}, "FillMissingValues":{ "type":"structure", @@ -8273,6 +9361,17 @@ "ISNULL" ] }, + "FilterOperator":{ + "type":"string", + "enum":[ + "GT", + "GE", + "LT", + "LE", + "EQ", + "NE" + ] + }, "FilterString":{ "type":"string", "max":2048, @@ -8654,7 +9753,7 @@ }, "HidePassword":{ "shape":"Boolean", - "documentation":"

Allows you to retrieve the connection metadata without returning the password. For instance, the AWS Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.

" + "documentation":"

Allows you to retrieve the connection metadata without returning the password. For instance, the Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.

" } } }, @@ -8694,7 +9793,7 @@ }, "HidePassword":{ "shape":"Boolean", - "documentation":"

Allows you to retrieve the connection metadata without returning the password. For instance, the AWS Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.

" + "documentation":"

Allows you to retrieve the connection metadata without returning the password. For instance, the Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.

" }, "NextToken":{ "shape":"Token", @@ -8839,6 +9938,246 @@ } } }, + "GetDataQualityResultRequest":{ + "type":"structure", + "required":["ResultId"], + "members":{ + "ResultId":{ + "shape":"HashString", + "documentation":"

A unique result ID for the data quality result.

" + } + } + }, + "GetDataQualityResultResponse":{ + "type":"structure", + "members":{ + "ResultId":{ + "shape":"HashString", + "documentation":"

A unique result ID for the data quality result.

" + }, + "Score":{ + "shape":"GenericBoundedDouble", + "documentation":"

An aggregate data quality score. Represents the ratio of rules that passed to the total number of rules.

" + }, + "DataSource":{ + "shape":"DataSource", + "documentation":"

The table associated with the data quality result, if any.

" + }, + "RulesetName":{ + "shape":"NameString", + "documentation":"

The name of the ruleset associated with the data quality result.

" + }, + "EvaluationContext":{ + "shape":"GenericString", + "documentation":"

In the context of a job in Glue Studio, each node in the canvas is typically assigned some sort of name and data quality nodes will have names. In the case of multiple nodes, the evaluationContext can differentiate the nodes.

" + }, + "StartedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when the run for this data quality result started.

" + }, + "CompletedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when the run for this data quality result was completed.

" + }, + "JobName":{ + "shape":"NameString", + "documentation":"

The job name associated with the data quality result, if any.

" + }, + "JobRunId":{ + "shape":"HashString", + "documentation":"

The job run ID associated with the data quality result, if any.

" + }, + "RulesetEvaluationRunId":{ + "shape":"HashString", + "documentation":"

The unique run ID associated with the ruleset evaluation.

" + }, + "RuleResults":{ + "shape":"DataQualityRuleResults", + "documentation":"

A list of DataQualityRuleResult objects representing the results for each rule.

" + } + } + }, + "GetDataQualityRuleRecommendationRunRequest":{ + "type":"structure", + "required":["RunId"], + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + } + } + }, + "GetDataQualityRuleRecommendationRunResponse":{ + "type":"structure", + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + }, + "DataSource":{ + "shape":"DataSource", + "documentation":"

The data source (an Glue table) associated with this run.

" + }, + "Role":{ + "shape":"RoleString", + "documentation":"

An IAM role supplied to encrypt the results of the run.

" + }, + "NumberOfWorkers":{ + "shape":"NullableInteger", + "documentation":"

The number of G.1X workers to be used in the run. The default is 5.

" + }, + "Timeout":{ + "shape":"Timeout", + "documentation":"

The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours).

" + }, + "Status":{ + "shape":"TaskStatusType", + "documentation":"

The status for this run.

" + }, + "ErrorString":{ + "shape":"GenericString", + "documentation":"

The error strings that are associated with the run.

" + }, + "StartedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when this run started.

" + }, + "LastModifiedOn":{ + "shape":"Timestamp", + "documentation":"

A timestamp. The last point in time when this data quality rule recommendation run was modified.

" + }, + "CompletedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when this run was completed.

" + }, + "ExecutionTime":{ + "shape":"ExecutionTime", + "documentation":"

The amount of time (in seconds) that the run consumed resources.

" + }, + "RecommendedRuleset":{ + "shape":"DataQualityRulesetString", + "documentation":"

When a start rule recommendation run completes, it creates a recommended ruleset (a set of rules). This member has those rules in Data Quality Definition Language (DQDL) format.

" + }, + "CreatedRulesetName":{ + "shape":"NameString", + "documentation":"

The name of the ruleset that was created by the run.

" + } + } + }, + "GetDataQualityRulesetEvaluationRunRequest":{ + "type":"structure", + "required":["RunId"], + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + } + } + }, + "GetDataQualityRulesetEvaluationRunResponse":{ + "type":"structure", + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + }, + "DataSource":{ + "shape":"DataSource", + "documentation":"

The data source (an Glue table) associated with this evaluation run.

" + }, + "Role":{ + "shape":"RoleString", + "documentation":"

An IAM role supplied to encrypt the results of the run.

" + }, + "NumberOfWorkers":{ + "shape":"NullableInteger", + "documentation":"

The number of G.1X workers to be used in the run. The default is 5.

" + }, + "Timeout":{ + "shape":"Timeout", + "documentation":"

The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours).

" + }, + "AdditionalRunOptions":{ + "shape":"DataQualityEvaluationRunAdditionalRunOptions", + "documentation":"

Additional run options you can specify for an evaluation run.

" + }, + "Status":{ + "shape":"TaskStatusType", + "documentation":"

The status for this run.

" + }, + "ErrorString":{ + "shape":"GenericString", + "documentation":"

The error strings that are associated with the run.

" + }, + "StartedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when this run started.

" + }, + "LastModifiedOn":{ + "shape":"Timestamp", + "documentation":"

A timestamp. The last point in time when this data quality rule recommendation run was modified.

" + }, + "CompletedOn":{ + "shape":"Timestamp", + "documentation":"

The date and time when this run was completed.

" + }, + "ExecutionTime":{ + "shape":"ExecutionTime", + "documentation":"

The amount of time (in seconds) that the run consumed resources.

" + }, + "RulesetNames":{ + "shape":"RulesetNames", + "documentation":"

A list of ruleset names for the run.

" + }, + "ResultIds":{ + "shape":"DataQualityResultIdList", + "documentation":"

A list of result IDs for the data quality results for the run.

" + } + } + }, + "GetDataQualityRulesetRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

The name of the ruleset.

" + } + } + }, + "GetDataQualityRulesetResponse":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

The name of the ruleset.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

A description of the ruleset.

" + }, + "Ruleset":{ + "shape":"DataQualityRulesetString", + "documentation":"

A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.

" + }, + "TargetTable":{ + "shape":"DataQualityTargetTable", + "documentation":"

The name and database name of the target table.

" + }, + "CreatedOn":{ + "shape":"Timestamp", + "documentation":"

A timestamp. The time and date that this data quality ruleset was created.

" + }, + "LastModifiedOn":{ + "shape":"Timestamp", + "documentation":"

A timestamp. The last point in time when this data quality ruleset was modified.

" + }, + "RecommendationRunId":{ + "shape":"HashString", + "documentation":"

When a ruleset was created from a recommendation run, this run ID is generated to link the two together.

" + } + } + }, "GetDatabaseRequest":{ "type":"structure", "required":["Name"], @@ -10477,7 +11816,7 @@ "documentation":"

Specifies the column definitions that make up a Glue schema.

" } }, - "documentation":"

Specifies a user-defined schema when a schema cannot be determined by AWS Glue.

" + "documentation":"

Specifies a user-defined schema when a schema cannot be determined by Glue.

" }, "GlueSchemas":{ "type":"list", @@ -10534,10 +11873,21 @@ "ConnectionName":{ "shape":"NameString", "documentation":"

The name of the connection to the Glue Data Catalog.

" + }, + "AdditionalOptions":{ + "shape":"GlueTableAdditionalOptions", + "documentation":"

Additional options for the table. Currently there are two keys supported:

  • pushDownPredicate: to filter on partitions without having to list and read all the files in your dataset.

  • catalogPartitionPredicate: to use server-side partition pruning using partition indexes in the Glue Data Catalog.

" } }, "documentation":"

The database and table in the Glue Data Catalog that is used for input or output data.

" }, + "GlueTableAdditionalOptions":{ + "type":"map", + "key":{"shape":"NameString"}, + "value":{"shape":"DescriptionString"}, + "max":10, + "min":1 + }, "GlueTables":{ "type":"list", "member":{"shape":"GlueTable"}, @@ -10688,8 +12038,12 @@ "IllegalBlueprintStateException":{ "type":"structure", "members":{ - "Message":{"shape":"MessageString"} + "Message":{ + "shape":"MessageString", + "documentation":"

A message describing the problem.

" + } }, + "documentation":"

The blueprint is in an invalid state to perform a requested operation.

", "exception":true }, "IllegalSessionStateException":{ @@ -10961,6 +12315,13 @@ "key":{"shape":"JDBCDataType"}, "value":{"shape":"GlueRecordType"} }, + "JdbcMetadataEntry":{ + "type":"string", + "enum":[ + "COMMENTS", + "RAWTYPES" + ] + }, "JdbcTarget":{ "type":"structure", "members":{ @@ -10975,6 +12336,10 @@ "Exclusions":{ "shape":"PathList", "documentation":"

A list of glob patterns used to exclude from the crawl. For more information, see Catalog Tables with a Crawler.

" + }, + "EnableAdditionalMetadata":{ + "shape":"EnableAdditionalMetadata", + "documentation":"

Specify a value of RAWTYPES or COMMENTS to enable additional metadata in table responses. RAWTYPES provides the native-level datatype. COMMENTS provides comments associated with a column or table in the database.

If you do not need additional metadata, keep the field empty.

" } }, "documentation":"

Specifies a JDBC data store to crawl.

" @@ -11036,7 +12401,7 @@ }, "AllocatedCapacity":{ "shape":"IntegerValue", - "documentation":"

This field is deprecated. Use MaxCapacity instead.

The number of Glue data processing units (DPUs) allocated to runs of this job. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

", + "documentation":"

This field is deprecated. Use MaxCapacity instead.

The number of Glue data processing units (DPUs) allocated to runs of this job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

", "deprecated":true, "deprecatedMessage":"This property is deprecated, use MaxCapacity instead." }, @@ -11046,15 +12411,15 @@ }, "MaxCapacity":{ "shape":"NullableDouble", - "documentation":"

For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name=\"gluestreaming\"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity. Instead, you should specify a Worker type and the Number of workers.

" + "documentation":"

For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name=\"gluestreaming\"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity. Instead, you should specify a Worker type and the Number of workers.

" }, "WorkerType":{ "shape":"WorkerType", - "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

" + "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

" }, "NumberOfWorkers":{ "shape":"NullableInteger", - "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

The maximum number of workers you can define are 299 for G.1X, and 149 for G.2X.

" + "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

" }, "SecurityConfiguration":{ "shape":"NameString", @@ -11071,6 +12436,14 @@ "CodeGenConfigurationNodes":{ "shape":"CodeGenConfigurationNodes", "documentation":"

The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.

" + }, + "ExecutionClass":{ + "shape":"ExecutionClass", + "documentation":"

Indicates whether the job is run with a standard or flexible execution class. The standard execution class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.

Only jobs with Glue version 3.0 and above and command type glueetl will be allowed to set ExecutionClass to FLEX. The flexible execution class is available for Spark jobs.

" + }, + "SourceControlDetails":{ + "shape":"SourceControlDetails", + "documentation":"

The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.

" } }, "documentation":"

Specifies a job definition.

" @@ -11230,19 +12603,19 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.

" + "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. This value overrides the timeout value set in the parent job.

Streaming jobs do not have a timeout. The default for non-streaming jobs is 2,880 minutes (48 hours).

" }, "MaxCapacity":{ "shape":"NullableDouble", - "documentation":"

The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job or an Apache Spark ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

" + "documentation":"

The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job or an Apache Spark ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

" }, "WorkerType":{ "shape":"WorkerType", - "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.

  • For the G.2X worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.

" + "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.

  • For the G.2X worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.

  • For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

" }, "NumberOfWorkers":{ "shape":"NullableInteger", - "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

The maximum number of workers you can define are 299 for G.1X, and 149 for G.2X.

" + "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

" }, "SecurityConfiguration":{ "shape":"NameString", @@ -11262,7 +12635,11 @@ }, "DPUSeconds":{ "shape":"NullableDouble", - "documentation":"

This field populates only when an Auto Scaling job run completes, and represents the total time each executor ran during the lifecycle of a job run in seconds, multiplied by a DPU factor (1 for G.1X and 2 for G.2X workers). This value may be different than the executionEngineRuntime * MaxCapacity as in the case of Auto Scaling jobs, as the number of executors running at a given time may be less than the MaxCapacity. Therefore, it is possible that the value of DPUSeconds is less than executionEngineRuntime * MaxCapacity.

" + "documentation":"

This field populates only for Auto Scaling job runs, and represents the total time each executor ran during the lifecycle of a job run in seconds, multiplied by a DPU factor (1 for G.1X, 2 for G.2X, or 0.25 for G.025X workers). This value may be different than the executionEngineRuntime * MaxCapacity as in the case of Auto Scaling jobs, as the number of executors running at a given time may be less than the MaxCapacity. Therefore, it is possible that the value of DPUSeconds is less than executionEngineRuntime * MaxCapacity.

" + }, + "ExecutionClass":{ + "shape":"ExecutionClass", + "documentation":"

Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.

Only jobs with Glue version 3.0 and above and command type glueetl will be allowed to set ExecutionClass to FLEX. The flexible execution class is available for Spark jobs.

" } }, "documentation":"

Contains information about a job run.

" @@ -11280,7 +12657,9 @@ "STOPPED", "SUCCEEDED", "FAILED", - "TIMEOUT" + "TIMEOUT", + "ERROR", + "WAITING" ] }, "JobUpdate":{ @@ -11324,7 +12703,7 @@ }, "AllocatedCapacity":{ "shape":"IntegerValue", - "documentation":"

This field is deprecated. Use MaxCapacity instead.

The number of Glue data processing units (DPUs) to allocate to this job. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

", + "documentation":"

This field is deprecated. Use MaxCapacity instead.

The number of Glue data processing units (DPUs) to allocate to this job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

", "deprecated":true, "deprecatedMessage":"This property is deprecated, use MaxCapacity instead." }, @@ -11334,15 +12713,15 @@ }, "MaxCapacity":{ "shape":"NullableDouble", - "documentation":"

For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job or an Apache Spark ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name=\"gluestreaming\"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity. Instead, you should specify a Worker type and the Number of workers.

" + "documentation":"

For Glue version 1.0 or earlier jobs, using the standard worker type, the number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job or an Apache Spark ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\") or Apache Spark streaming ETL job (JobCommand.Name=\"gluestreaming\"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

For Glue version 2.0 jobs, you cannot instead specify a Maximum capacity. Instead, you should specify a Worker type and the Number of workers.

" }, "WorkerType":{ "shape":"WorkerType", - "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

" + "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.2X worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  • For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

" }, "NumberOfWorkers":{ "shape":"NullableInteger", - "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

The maximum number of workers you can define are 299 for G.1X, and 149 for G.2X.

" + "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

" }, "SecurityConfiguration":{ "shape":"NameString", @@ -11359,6 +12738,14 @@ "CodeGenConfigurationNodes":{ "shape":"CodeGenConfigurationNodes", "documentation":"

The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.

" + }, + "ExecutionClass":{ + "shape":"ExecutionClass", + "documentation":"

Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.

Only jobs with Glue version 3.0 and above and command type glueetl will be allowed to set ExecutionClass to FLEX. The flexible execution class is available for Spark jobs.

" + }, + "SourceControlDetails":{ + "shape":"SourceControlDetails", + "documentation":"

The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.

" } }, "documentation":"

Specifies information used to update an existing job definition. The previous job definition is completely overwritten by this information.

" @@ -11656,14 +13043,14 @@ "members":{ "UseLakeFormationCredentials":{ "shape":"NullableBoolean", - "documentation":"

Specifies whether to use AWS Lake Formation credentials for the crawler instead of the IAM role credentials.

" + "documentation":"

Specifies whether to use Lake Formation credentials for the crawler instead of the IAM role credentials.

" }, "AccountId":{ "shape":"AccountId", "documentation":"

Required for cross account crawls. For same account crawls as the target data, this can be left as null.

" } }, - "documentation":"

Specifies AWS Lake Formation configuration settings for the crawler.

" + "documentation":"

Specifies Lake Formation configuration settings for the crawler.

" }, "Language":{ "type":"string", @@ -11815,6 +13202,41 @@ } } }, + "ListCrawlsRequest":{ + "type":"structure", + "required":["CrawlerName"], + "members":{ + "CrawlerName":{ + "shape":"NameString", + "documentation":"

The name of the crawler whose runs you want to retrieve.

" + }, + "MaxResults":{ + "shape":"PageSize", + "documentation":"

The maximum number of results to return. The default is 20, and maximum is 100.

" + }, + "Filters":{ + "shape":"CrawlsFilterList", + "documentation":"

Filters the crawls by the criteria you specify in a list of CrawlsFilter objects.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

A continuation token, if this is a continuation call.

" + } + } + }, + "ListCrawlsResponse":{ + "type":"structure", + "members":{ + "Crawls":{ + "shape":"CrawlerHistoryList", + "documentation":"

A list of CrawlerHistory objects representing the crawl runs that meet your criteria.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.

" + } + } + }, "ListCustomEntityTypesRequest":{ "type":"structure", "members":{ @@ -11841,6 +13263,131 @@ } } }, + "ListDataQualityResultsRequest":{ + "type":"structure", + "members":{ + "Filter":{ + "shape":"DataQualityResultFilterCriteria", + "documentation":"

The filter criteria.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A paginated token to offset the results.

" + }, + "MaxResults":{ + "shape":"PageSize", + "documentation":"

The maximum number of results to return.

" + } + } + }, + "ListDataQualityResultsResponse":{ + "type":"structure", + "required":["Results"], + "members":{ + "Results":{ + "shape":"DataQualityResultDescriptionList", + "documentation":"

A list of DataQualityResultDescription objects.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A pagination token, if more results are available.

" + } + } + }, + "ListDataQualityRuleRecommendationRunsRequest":{ + "type":"structure", + "members":{ + "Filter":{ + "shape":"DataQualityRuleRecommendationRunFilter", + "documentation":"

The filter criteria.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A paginated token to offset the results.

" + }, + "MaxResults":{ + "shape":"PageSize", + "documentation":"

The maximum number of results to return.

" + } + } + }, + "ListDataQualityRuleRecommendationRunsResponse":{ + "type":"structure", + "members":{ + "Runs":{ + "shape":"DataQualityRuleRecommendationRunList", + "documentation":"

A list of DataQualityRuleRecommendationRunDescription objects.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A pagination token, if more results are available.

" + } + } + }, + "ListDataQualityRulesetEvaluationRunsRequest":{ + "type":"structure", + "members":{ + "Filter":{ + "shape":"DataQualityRulesetEvaluationRunFilter", + "documentation":"

The filter criteria.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A paginated token to offset the results.

" + }, + "MaxResults":{ + "shape":"PageSize", + "documentation":"

The maximum number of results to return.

" + } + } + }, + "ListDataQualityRulesetEvaluationRunsResponse":{ + "type":"structure", + "members":{ + "Runs":{ + "shape":"DataQualityRulesetEvaluationRunList", + "documentation":"

A list of DataQualityRulesetEvaluationRunDescription objects representing data quality ruleset runs.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A pagination token, if more results are available.

" + } + } + }, + "ListDataQualityRulesetsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A paginated token to offset the results.

" + }, + "MaxResults":{ + "shape":"PageSize", + "documentation":"

The maximum number of results to return.

" + }, + "Filter":{ + "shape":"DataQualityRulesetFilterCriteria", + "documentation":"

The filter criteria.

" + }, + "Tags":{ + "shape":"TagsMap", + "documentation":"

A list of key-value pair tags.

" + } + } + }, + "ListDataQualityRulesetsResponse":{ + "type":"structure", + "members":{ + "Rulesets":{ + "shape":"DataQualityRulesetList", + "documentation":"

A paginated list of rulesets for the specified list of Glue tables.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A pagination token, if more results are available.

" + } + } + }, "ListDevEndpointsRequest":{ "type":"structure", "members":{ @@ -12053,7 +13600,7 @@ "members":{ "Ids":{ "shape":"SessionIdList", - "documentation":"

Returns the Id of the session.

" + "documentation":"

Returns the ID of the session.

" }, "Sessions":{ "shape":"SessionList", @@ -12077,7 +13624,10 @@ "shape":"OrchestrationNameString", "documentation":"

The origin of the request to list statements.

" }, - "NextToken":{"shape":"OrchestrationToken"} + "NextToken":{ + "shape":"OrchestrationToken", + "documentation":"

A continuation token, if this is a continuation call.

" + } } }, "ListStatementsResponse":{ @@ -12087,7 +13637,10 @@ "shape":"StatementList", "documentation":"

Returns the list of statements.

" }, - "NextToken":{"shape":"OrchestrationToken"} + "NextToken":{ + "shape":"OrchestrationToken", + "documentation":"

A continuation token, if not all statements have yet been returned.

" + } } }, "ListTriggersRequest":{ @@ -13029,6 +14582,18 @@ "min":1 }, "PaginationToken":{"type":"string"}, + "ParamType":{ + "type":"string", + "enum":[ + "str", + "int", + "float", + "complex", + "bool", + "list", + "null" + ] + }, "ParametersMap":{ "type":"map", "key":{"shape":"KeyString"}, @@ -13589,7 +15154,7 @@ "PythonScript":{"type":"string"}, "PythonVersionString":{ "type":"string", - "pattern":"^[2-3]$" + "pattern":"^([2-3]|3[.]9)$" }, "QuerySchemaVersionMetadataInput":{ "type":"structure", @@ -14066,6 +15631,12 @@ }, "RoleString":{"type":"string"}, "RowTag":{"type":"string"}, + "RulesetNames":{ + "type":"list", + "member":{"shape":"NameString"}, + "max":10, + "min":1 + }, "RunId":{"type":"string"}, "RunStatementRequest":{ "type":"structure", @@ -15036,7 +16607,7 @@ }, "MaxCapacity":{ "shape":"NullableDouble", - "documentation":"

The number of AWS Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory.

" + "documentation":"

The number of Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory.

" }, "SecurityConfiguration":{ "shape":"NameString", @@ -15044,7 +16615,7 @@ }, "GlueVersion":{ "shape":"GlueVersionString", - "documentation":"

The Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The GlueVersion must be greater than 2.0.

" + "documentation":"

The Glue version determines the versions of Apache Spark and Python that Glue supports. The GlueVersion must be greater than 2.0.

" } }, "documentation":"

The period in which a remote Spark runtime environment is running.

" @@ -15054,7 +16625,7 @@ "members":{ "Name":{ "shape":"NameString", - "documentation":"

Specifies the name of the SessionCommand.Can be 'glueetl' or 'gluestreaming'.

" + "documentation":"

Specifies the name of the SessionCommand. Can be 'glueetl' or 'gluestreaming'.

" }, "PythonVersion":{ "shape":"PythonVersionString", @@ -15134,6 +16705,58 @@ "ASCENDING" ] }, + "SourceControlAuthStrategy":{ + "type":"string", + "enum":[ + "PERSONAL_ACCESS_TOKEN", + "AWS_SECRETS_MANAGER" + ] + }, + "SourceControlDetails":{ + "type":"structure", + "members":{ + "Provider":{ + "shape":"SourceControlProvider", + "documentation":"

The provider for the remote repository.

" + }, + "Repository":{ + "shape":"Generic512CharString", + "documentation":"

The name of the remote repository that contains the job artifacts.

" + }, + "Owner":{ + "shape":"Generic512CharString", + "documentation":"

The owner of the remote repository that contains the job artifacts.

" + }, + "Branch":{ + "shape":"Generic512CharString", + "documentation":"

An optional branch in the remote repository.

" + }, + "Folder":{ + "shape":"Generic512CharString", + "documentation":"

An optional folder in the remote repository.

" + }, + "LastCommitId":{ + "shape":"Generic512CharString", + "documentation":"

The last commit ID for a commit in the remote repository.

" + }, + "AuthStrategy":{ + "shape":"SourceControlAuthStrategy", + "documentation":"

The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.

" + }, + "AuthToken":{ + "shape":"Generic512CharString", + "documentation":"

The value of an authorization token.

" + } + }, + "documentation":"

The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.

" + }, + "SourceControlProvider":{ + "type":"string", + "enum":[ + "GITHUB", + "AWS_CODE_COMMIT" + ] + }, "SparkConnectorSource":{ "type":"structure", "required":[ @@ -15383,6 +17006,95 @@ "members":{ } }, + "StartDataQualityRuleRecommendationRunRequest":{ + "type":"structure", + "required":[ + "DataSource", + "Role" + ], + "members":{ + "DataSource":{ + "shape":"DataSource", + "documentation":"

The data source (Glue table) associated with this run.

" + }, + "Role":{ + "shape":"RoleString", + "documentation":"

An IAM role supplied to encrypt the results of the run.

" + }, + "NumberOfWorkers":{ + "shape":"NullableInteger", + "documentation":"

The number of G.1X workers to be used in the run. The default is 5.

" + }, + "Timeout":{ + "shape":"Timeout", + "documentation":"

The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours).

" + }, + "CreatedRulesetName":{ + "shape":"NameString", + "documentation":"

A name for the ruleset.

" + }, + "ClientToken":{ + "shape":"HashString", + "documentation":"

Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.

" + } + } + }, + "StartDataQualityRuleRecommendationRunResponse":{ + "type":"structure", + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + } + } + }, + "StartDataQualityRulesetEvaluationRunRequest":{ + "type":"structure", + "required":[ + "DataSource", + "Role", + "RulesetNames" + ], + "members":{ + "DataSource":{ + "shape":"DataSource", + "documentation":"

The data source (Glue table) associated with this run.

" + }, + "Role":{ + "shape":"RoleString", + "documentation":"

An IAM role supplied to encrypt the results of the run.

" + }, + "NumberOfWorkers":{ + "shape":"NullableInteger", + "documentation":"

The number of G.1X workers to be used in the run. The default is 5.

" + }, + "Timeout":{ + "shape":"Timeout", + "documentation":"

The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours).

" + }, + "ClientToken":{ + "shape":"HashString", + "documentation":"

Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.

" + }, + "AdditionalRunOptions":{ + "shape":"DataQualityEvaluationRunAdditionalRunOptions", + "documentation":"

Additional run options you can specify for an evaluation run.

" + }, + "RulesetNames":{ + "shape":"RulesetNames", + "documentation":"

A list of ruleset names.

" + } + } + }, + "StartDataQualityRulesetEvaluationRunResponse":{ + "type":"structure", + "members":{ + "RunId":{ + "shape":"HashString", + "documentation":"

The unique run identifier associated with this run.

" + } + } + }, "StartExportLabelsTaskRunRequest":{ "type":"structure", "required":[ @@ -15453,21 +17165,21 @@ }, "Arguments":{ "shape":"GenericMap", - "documentation":"

The job arguments specifically for this run. For this job run, they replace the default arguments set in the job definition itself.

You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.

For information about how to specify and consume your own Job arguments, see the Calling Glue APIs in Python topic in the developer guide.

For information about the key-value pairs that Glue consumes to set up your job, see the Special Parameters Used by Glue topic in the developer guide.

" + "documentation":"

The job arguments specifically for this run. For this job run, they replace the default arguments set in the job definition itself.

You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.

Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a Glue Connection, Secrets Manager or other secret management mechanism if you intend to keep them within the Job.

For information about how to specify and consume your own Job arguments, see the Calling Glue APIs in Python topic in the developer guide.

For information about the key-value pairs that Glue consumes to set up your job, see the Special Parameters Used by Glue topic in the developer guide.

" }, "AllocatedCapacity":{ "shape":"IntegerValue", - "documentation":"

This field is deprecated. Use MaxCapacity instead.

The number of Glue data processing units (DPUs) to allocate to this JobRun. From 2 to 100 DPUs can be allocated; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

", + "documentation":"

This field is deprecated. Use MaxCapacity instead.

The number of Glue data processing units (DPUs) to allocate to this JobRun. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

", "deprecated":true, "deprecatedMessage":"This property is deprecated, use MaxCapacity instead." }, "Timeout":{ "shape":"Timeout", - "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.

" + "documentation":"

The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. This value overrides the timeout value set in the parent job.

Streaming jobs do not have a timeout. The default for non-streaming jobs is 2,880 minutes (48 hours).

" }, "MaxCapacity":{ "shape":"NullableDouble", - "documentation":"

The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job, or an Apache Spark ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

" + "documentation":"

The number of Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the Glue pricing page.

Do not set Max Capacity if using WorkerType and NumberOfWorkers.

The value that can be allocated for MaxCapacity depends on whether you are running a Python shell job, or an Apache Spark ETL job:

  • When you specify a Python shell job (JobCommand.Name=\"pythonshell\"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • When you specify an Apache Spark ETL job (JobCommand.Name=\"glueetl\"), you can allocate a minimum of 2 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.

" }, "SecurityConfiguration":{ "shape":"NameString", @@ -15479,11 +17191,15 @@ }, "WorkerType":{ "shape":"WorkerType", - "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, or G.2X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.

  • For the G.2X worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.

" + "documentation":"

The type of predefined worker that is allocated when a job runs. Accepts a value of Standard, G.1X, G.2X, or G.025X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.

  • For the G.2X worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.

  • For the G.025X worker type, each worker maps to 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for Glue version 3.0 streaming jobs.

" }, "NumberOfWorkers":{ "shape":"NullableInteger", - "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

The maximum number of workers you can define are 299 for G.1X, and 149 for G.2X.

" + "documentation":"

The number of workers of a defined workerType that are allocated when a job runs.

" + }, + "ExecutionClass":{ + "shape":"ExecutionClass", + "documentation":"

Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary.

Only jobs with Glue version 3.0 and above and command type glueetl will be allowed to set ExecutionClass to FLEX. The flexible execution class is available for Spark jobs.

" } } }, @@ -15799,7 +17515,10 @@ "shape":"LocationString", "documentation":"

The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.

" }, - "AdditionalLocations":{"shape":"LocationStringList"}, + "AdditionalLocations":{ + "shape":"LocationStringList", + "documentation":"

A list of locations that point to the path where a Delta table is located.

" + }, "InputFormat":{ "shape":"FormatString", "documentation":"

The input format: SequenceFileInputFormat (binary), or TextInputFormat, or a custom format.

" @@ -15973,7 +17692,10 @@ "shape":"CatalogIdString", "documentation":"

The ID of the Data Catalog in which the table resides.

" }, - "VersionId":{"shape":"VersionString"} + "VersionId":{ + "shape":"VersionString", + "documentation":"

The ID of the table version.

" + } }, "documentation":"

Represents a collection of related data organized in columns and rows.

" }, @@ -16348,6 +18070,48 @@ "min":1, "pattern":"[\\p{L}\\p{N}\\p{P}]*" }, + "TransformConfigParameter":{ + "type":"structure", + "required":[ + "Name", + "Type" + ], + "members":{ + "Name":{ + "shape":"EnclosedInStringProperty", + "documentation":"

Specifies the name of the parameter in the config file of the dynamic transform.

" + }, + "Type":{ + "shape":"ParamType", + "documentation":"

Specifies the parameter type in the config file of the dynamic transform.

" + }, + "ValidationRule":{ + "shape":"EnclosedInStringProperty", + "documentation":"

Specifies the validation rule in the config file of the dynamic transform.

" + }, + "ValidationMessage":{ + "shape":"EnclosedInStringProperty", + "documentation":"

Specifies the validation message in the config file of the dynamic transform.

" + }, + "Value":{ + "shape":"EnclosedInStringProperties", + "documentation":"

Specifies the value of the parameter in the config file of the dynamic transform.

" + }, + "ListType":{ + "shape":"ParamType", + "documentation":"

Specifies the list type of the parameter in the config file of the dynamic transform.

" + }, + "IsOptional":{ + "shape":"BoxedBoolean", + "documentation":"

Specifies whether the parameter is optional or not in the config file of the dynamic transform.

" + } + }, + "documentation":"

Specifies the parameters in the config file of the dynamic transform.

" + }, + "TransformConfigParameterList":{ + "type":"list", + "member":{"shape":"TransformConfigParameter"} + }, "TransformEncryption":{ "type":"structure", "members":{ @@ -16895,10 +18659,13 @@ "shape":"LineageConfiguration", "documentation":"

Specifies data lineage configuration settings for the crawler.

" }, - "LakeFormationConfiguration":{"shape":"LakeFormationConfiguration"}, + "LakeFormationConfiguration":{ + "shape":"LakeFormationConfiguration", + "documentation":"

Specifies Lake Formation configuration settings for the crawler.

" + }, "Configuration":{ "shape":"CrawlerConfiguration", - "documentation":"

Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see Configuring a Crawler.

" + "documentation":"

Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see Setting crawler configuration options.

" }, "CrawlerSecurityConfiguration":{ "shape":"CrawlerSecurityConfiguration", @@ -16961,10 +18728,57 @@ "AllowSingleColumn":{ "shape":"NullableBoolean", "documentation":"

Enables the processing of files that contain only one column.

" + }, + "CustomDatatypeConfigured":{ + "shape":"NullableBoolean", + "documentation":"

Specifies the configuration of custom datatypes.

" + }, + "CustomDatatypes":{ + "shape":"CustomDatatypes", + "documentation":"

Specifies a list of supported custom datatypes.

" } }, "documentation":"

Specifies a custom CSV classifier to be updated.

" }, + "UpdateDataQualityRulesetRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

The name of the data quality ruleset.

" + }, + "UpdatedName":{ + "shape":"NameString", + "documentation":"

The new name of the ruleset, if you are renaming it.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

A description of the ruleset.

" + }, + "Ruleset":{ + "shape":"DataQualityRulesetString", + "documentation":"

A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.

" + } + } + }, + "UpdateDataQualityRulesetResponse":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NameString", + "documentation":"

The name of the data quality ruleset.

" + }, + "Description":{ + "shape":"DescriptionString", + "documentation":"

A description of the ruleset.

" + }, + "Ruleset":{ + "shape":"DataQualityRulesetString", + "documentation":"

A Data Quality Definition Language (DQDL) ruleset. For more information, see the Glue developer guide.

" + } + } + }, "UpdateDatabaseRequest":{ "type":"structure", "required":[ @@ -17057,6 +18871,56 @@ }, "documentation":"

Specifies a grok classifier to update when passed to UpdateClassifier.

" }, + "UpdateJobFromSourceControlRequest":{ + "type":"structure", + "members":{ + "JobName":{ + "shape":"NameString", + "documentation":"

The name of the Glue job to be synchronized to or from the remote repository.

" + }, + "Provider":{ + "shape":"SourceControlProvider", + "documentation":"

The provider for the remote repository.

" + }, + "RepositoryName":{ + "shape":"NameString", + "documentation":"

The name of the remote repository that contains the job artifacts.

" + }, + "RepositoryOwner":{ + "shape":"NameString", + "documentation":"

The owner of the remote repository that contains the job artifacts.

" + }, + "BranchName":{ + "shape":"NameString", + "documentation":"

An optional branch in the remote repository.

" + }, + "Folder":{ + "shape":"NameString", + "documentation":"

An optional folder in the remote repository.

" + }, + "CommitId":{ + "shape":"CommitIdString", + "documentation":"

A commit ID for a commit in the remote repository.

" + }, + "AuthStrategy":{ + "shape":"SourceControlAuthStrategy", + "documentation":"

The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.

" + }, + "AuthToken":{ + "shape":"AuthTokenString", + "documentation":"

The value of the authorization token.

" + } + } + }, + "UpdateJobFromSourceControlResponse":{ + "type":"structure", + "members":{ + "JobName":{ + "shape":"NameString", + "documentation":"

The name of the Glue job.

" + } + } + }, "UpdateJobRequest":{ "type":"structure", "required":[ @@ -17070,7 +18934,7 @@ }, "JobUpdate":{ "shape":"JobUpdate", - "documentation":"

Specifies the values with which to update the job definition.

" + "documentation":"

Specifies the values with which to update the job definition. Unspecified configuration is removed or reset to default values.

" } } }, @@ -17262,6 +19126,56 @@ } } }, + "UpdateSourceControlFromJobRequest":{ + "type":"structure", + "members":{ + "JobName":{ + "shape":"NameString", + "documentation":"

The name of the Glue job to be synchronized to or from the remote repository.

" + }, + "Provider":{ + "shape":"SourceControlProvider", + "documentation":"

The provider for the remote repository.

" + }, + "RepositoryName":{ + "shape":"NameString", + "documentation":"

The name of the remote repository that contains the job artifacts.

" + }, + "RepositoryOwner":{ + "shape":"NameString", + "documentation":"

The owner of the remote repository that contains the job artifacts.

" + }, + "BranchName":{ + "shape":"NameString", + "documentation":"

An optional branch in the remote repository.

" + }, + "Folder":{ + "shape":"NameString", + "documentation":"

An optional folder in the remote repository.

" + }, + "CommitId":{ + "shape":"CommitIdString", + "documentation":"

A commit ID for a commit in the remote repository.

" + }, + "AuthStrategy":{ + "shape":"SourceControlAuthStrategy", + "documentation":"

The type of authentication, which can be an authentication token stored in Amazon Web Services Secrets Manager, or a personal access token.

" + }, + "AuthToken":{ + "shape":"AuthTokenString", + "documentation":"

The value of the authorization token.

" + } + } + }, + "UpdateSourceControlFromJobResponse":{ + "type":"structure", + "members":{ + "JobName":{ + "shape":"NameString", + "documentation":"

The name of the Glue job.

" + } + } + }, "UpdateTableRequest":{ "type":"structure", "required":[ @@ -17289,7 +19203,10 @@ "shape":"TransactionIdString", "documentation":"

The transaction ID at which to update the table contents.

" }, - "VersionId":{"shape":"VersionString"} + "VersionId":{ + "shape":"VersionString", + "documentation":"

The version ID at which to update the table contents.

" + } } }, "UpdateTableResponse":{ @@ -17549,7 +19466,8 @@ "enum":[ "Standard", "G.1X", - "G.2X" + "G.2X", + "G.025X" ] }, "Workflow":{ @@ -17695,6 +19613,14 @@ "RunningActions":{ "shape":"IntegerValue", "documentation":"

Total number Actions in running state.

" + }, + "ErroredActions":{ + "shape":"IntegerValue", + "documentation":"

Indicates the count of job runs in the ERROR state in the workflow run.

" + }, + "WaitingActions":{ + "shape":"IntegerValue", + "documentation":"

Indicates the count of job runs in WAITING state in the workflow run.

" } }, "documentation":"

Workflow run statistics provides statistics about the workflow run.

" diff --git a/botocore/data/grafana/2020-08-18/endpoint-rule-set-1.json b/botocore/data/grafana/2020-08-18/endpoint-rule-set-1.json new file mode 100644 index 00000000..270d769e --- /dev/null +++ b/botocore/data/grafana/2020-08-18/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://grafana-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://grafana-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://grafana.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://grafana.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/grafana/2020-08-18/examples-1.json b/botocore/data/grafana/2020-08-18/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/grafana/2020-08-18/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/grafana/2020-08-18/service-2.json b/botocore/data/grafana/2020-08-18/service-2.json index e609f5b4..e244b3b5 100644 --- a/botocore/data/grafana/2020-08-18/service-2.json +++ b/botocore/data/grafana/2020-08-18/service-2.json @@ -68,7 +68,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates an API key for the workspace. This key can be used to authenticate requests sent to the workspace's HTTP API. See https://docs.aws.amazon.com/grafana/latest/userguide/Using-Grafana-APIs.html for available APIs and example requests.

" + "documentation":"

Creates a Grafana API key for the workspace. This key can be used to authenticate requests sent to the workspace's HTTP API. See https://docs.aws.amazon.com/grafana/latest/userguide/Using-Grafana-APIs.html for available APIs and example requests.

" }, "DeleteWorkspace":{ "name":"DeleteWorkspace", @@ -107,7 +107,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Deletes an API key for a workspace.

" + "documentation":"

Deletes a Grafana API key for the workspace.

" }, "DescribeWorkspace":{ "name":"DescribeWorkspace", @@ -145,6 +145,23 @@ ], "documentation":"

Displays information about the authentication methods used in one Amazon Managed Grafana workspace.

" }, + "DescribeWorkspaceConfiguration":{ + "name":"DescribeWorkspaceConfiguration", + "http":{ + "method":"GET", + "requestUri":"/workspaces/{workspaceId}/configuration", + "responseCode":200 + }, + "input":{"shape":"DescribeWorkspaceConfigurationRequest"}, + "output":{"shape":"DescribeWorkspaceConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets the current configuration string for the given workspace.

" + }, "DisassociateLicense":{ "name":"DisassociateLicense", "http":{ @@ -287,7 +304,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Modifies an existing Amazon Managed Grafana workspace. If you use this operation and omit any optional parameters, the existing values of those parameters are not changed.

To modify the user authentication methods that the workspace uses, such as SAML or Amazon Web Services SSO, use UpdateWorkspaceAuthentication.

To modify which users in the workspace have the Admin and Editor Grafana roles, use UpdatePermissions.

" + "documentation":"

Modifies an existing Amazon Managed Grafana workspace. If you use this operation and omit any optional parameters, the existing values of those parameters are not changed.

To modify the user authentication methods that the workspace uses, such as SAML or IAM Identity Center, use UpdateWorkspaceAuthentication.

To modify which users in the workspace have the Admin and Editor Grafana roles, use UpdatePermissions.

" }, "UpdateWorkspaceAuthentication":{ "name":"UpdateWorkspaceAuthentication", @@ -307,6 +324,25 @@ {"shape":"InternalServerException"} ], "documentation":"

Use this operation to define the identity provider (IdP) that this workspace authenticates users from, using SAML. You can also map SAML assertion attributes to workspace user information and define which groups in the assertion attribute are to have the Admin and Editor roles in the workspace.

" + }, + "UpdateWorkspaceConfiguration":{ + "name":"UpdateWorkspaceConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/workspaces/{workspaceId}/configuration", + "responseCode":202 + }, + "input":{"shape":"UpdateWorkspaceConfigurationRequest"}, + "output":{"shape":"UpdateWorkspaceConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates the configuration string for the given workspace

" } }, "shapes":{ @@ -420,11 +456,11 @@ "members":{ "awsSso":{ "shape":"AwsSsoAuthentication", - "documentation":"

A structure containing information about how this workspace works with Amazon Web Services SSO.

" + "documentation":"

A structure containing information about how this workspace works with IAM Identity Center.

" }, "providers":{ "shape":"AuthenticationProviders", - "documentation":"

Specifies whether this workspace uses Amazon Web Services SSO, SAML, or both methods to authenticate users to use the Grafana console in the Amazon Managed Grafana workspace.

" + "documentation":"

Specifies whether this workspace uses IAM Identity Center, SAML, or both methods to authenticate users to use the Grafana console in the Amazon Managed Grafana workspace.

" }, "saml":{ "shape":"SamlAuthentication", @@ -450,24 +486,24 @@ "members":{ "providers":{ "shape":"AuthenticationProviders", - "documentation":"

Specifies whether the workspace uses SAML, Amazon Web Services SSO, or both methods for user authentication.

" + "documentation":"

Specifies whether the workspace uses SAML, IAM Identity Center, or both methods for user authentication.

" }, "samlConfigurationStatus":{ "shape":"SamlConfigurationStatus", "documentation":"

Specifies whether the workplace's user authentication method is fully configured.

" } }, - "documentation":"

A structure that describes whether the workspace uses SAML, Amazon Web Services SSO, or both methods for user authentication, and whether that authentication is fully configured.

" + "documentation":"

A structure that describes whether the workspace uses SAML, IAM Identity Center, or both methods for user authentication, and whether that authentication is fully configured.

" }, "AwsSsoAuthentication":{ "type":"structure", "members":{ "ssoClientId":{ "shape":"SSOClientId", - "documentation":"

The ID of the Amazon Web Services SSO-managed application that is created by Amazon Managed Grafana.

" + "documentation":"

The ID of the IAM Identity Center-managed application that is created by Amazon Managed Grafana.

" } }, - "documentation":"

A structure containing information about how this workspace works with Amazon Web Services SSO.

" + "documentation":"

A structure containing information about how this workspace works with IAM Identity Center.

" }, "Boolean":{ "type":"boolean", @@ -516,11 +552,11 @@ "members":{ "keyName":{ "shape":"ApiKeyName", - "documentation":"

Specifies the name of the key to create. Key names must be unique to the workspace.

" + "documentation":"

Specifies the name of the key. Keynames must be unique to the workspace.

" }, "keyRole":{ "shape":"String", - "documentation":"

Specifies the permission level of the key.

Valid Values: VIEWER | EDITOR | ADMIN

" + "documentation":"

Specifies the permission level of the key.

Valid values: VIEWER|EDITOR|ADMIN

" }, "secondsToLive":{ "shape":"CreateWorkspaceApiKeyRequestSecondsToLiveInteger", @@ -528,7 +564,7 @@ }, "workspaceId":{ "shape":"WorkspaceId", - "documentation":"

The ID of the workspace in which to create an API key.

", + "documentation":"

The ID of the workspace to create an API key.

", "location":"uri", "locationName":"workspaceId" } @@ -550,7 +586,7 @@ "members":{ "key":{ "shape":"ApiKeyToken", - "documentation":"

The key token that was created. Use this value as a bearer token to authenticate HTTP requests to the workspace.

" + "documentation":"

The key token. Use this value as a bearer token to authenticate HTTP requests to the workspace.

" }, "keyName":{ "shape":"ApiKeyName", @@ -576,20 +612,25 @@ }, "authenticationProviders":{ "shape":"AuthenticationProviders", - "documentation":"

Specifies whether this workspace uses SAML 2.0, Amazon Web Services Single Sign On, or both to authenticate users for using the Grafana console within a workspace. For more information, see User authentication in Amazon Managed Grafana.

" + "documentation":"

Specifies whether this workspace uses SAML 2.0, IAM Identity Center (successor to Single Sign-On), or both to authenticate users for using the Grafana console within a workspace. For more information, see User authentication in Amazon Managed Grafana.

" }, "clientToken":{ "shape":"ClientToken", "documentation":"

A unique, case-sensitive, user-provided identifier to ensure the idempotency of the request.

", "idempotencyToken":true }, + "configuration":{ + "shape":"OverridableConfigurationJson", + "documentation":"

The configuration string for the workspace that you create. For more information about the format and configuration options available, see Working in your Grafana workspace.

", + "jsonvalue":true + }, "organizationRoleName":{ "shape":"OrganizationRoleName", "documentation":"

The name of an IAM role that already exists to use with Organizations to access Amazon Web Services data sources and notification channels in other accounts in an organization.

" }, "permissionType":{ "shape":"PermissionType", - "documentation":"

If you specify SERVICE_MANAGED on AWS Grafana console, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels. In CLI mode, the permissionType SERVICE_MANAGED will not create the IAM role for you.

If you specify CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization that is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels.

" + "documentation":"

If you specify SERVICE_MANAGED on AWS Grafana console, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels. In the CLI mode, the permissionType SERVICE_MANAGED will not create the IAM role for you. The ability for the Amazon Managed Grafana to create the IAM role on behalf of the user is supported only in the Amazon Managed Grafana AWS console. Use only the CUSTOMER_MANAGED permission type when creating a workspace in the CLI.

If you specify CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization that is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels.

" }, "stackSetName":{ "shape":"StackSetName", @@ -599,6 +640,10 @@ "shape":"TagMap", "documentation":"

The list of tags associated with the workspace.

" }, + "vpcConfiguration":{ + "shape":"VpcConfiguration", + "documentation":"

The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to.

" + }, "workspaceDataSources":{ "shape":"DataSourceTypesList", "documentation":"

Specify the Amazon Web Services data sources that you want to be queried in this workspace. Specifying these data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to read data from these sources. You must still add them as data sources in the Grafana console in the workspace.

If you don't specify a data source here, you can still add it as a data source in the workspace console later. However, you will then have to manually configure permissions for it.

" @@ -645,7 +690,8 @@ "TIMESTREAM", "SITEWISE", "ATHENA", - "REDSHIFT" + "REDSHIFT", + "TWINMAKER" ] }, "DataSourceTypesList":{ @@ -682,7 +728,7 @@ "members":{ "keyName":{ "shape":"ApiKeyName", - "documentation":"

The name of the API key that was deleted.

" + "documentation":"

The name of the key that was deleted.

" }, "workspaceId":{ "shape":"WorkspaceId", @@ -734,6 +780,29 @@ } } }, + "DescribeWorkspaceConfigurationRequest":{ + "type":"structure", + "required":["workspaceId"], + "members":{ + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The ID of the workspace to get configuration information for.

", + "location":"uri", + "locationName":"workspaceId" + } + } + }, + "DescribeWorkspaceConfigurationResponse":{ + "type":"structure", + "required":["configuration"], + "members":{ + "configuration":{ + "shape":"OverridableConfigurationJson", + "documentation":"

The configuration string for the workspace that you requested. For more information about the format and configuration options available, see Working in your Grafana workspace.

", + "jsonvalue":true + } + } + }, "DescribeWorkspaceRequest":{ "type":"structure", "required":["workspaceId"], @@ -814,14 +883,14 @@ "members":{ "url":{ "shape":"IdpMetadataUrl", - "documentation":"

The URL of the location containing the metadata.

" + "documentation":"

The URL of the location containing the IdP metadata.

" }, "xml":{ "shape":"String", - "documentation":"

The actual full metadata file, in XML format.

" + "documentation":"

The full IdP metadata, in XML format.

" } }, - "documentation":"

A structure containing the identity provider (IdP) metadata used to integrate the identity provider with this workspace. You can specify the metadata either by providing a URL to its location in the url parameter, or by specifying the full metadata in XML format in the xml parameter.

", + "documentation":"

A structure containing the identity provider (IdP) metadata used to integrate the identity provider with this workspace. You can specify the metadata either by providing a URL to its location in the url parameter, or by specifying the full metadata in XML format in the xml parameter. Specifying both will cause an error.

", "union":true }, "IdpMetadataUrl":{ @@ -891,7 +960,7 @@ }, "userType":{ "shape":"UserType", - "documentation":"

(Optional) If you specify SSO_USER, then only the permissions of Amazon Web Services SSO users are returned. If you specify SSO_GROUP, only the permissions of Amazon Web Services SSO groups are returned.

", + "documentation":"

(Optional) If you specify SSO_USER, then only the permissions of IAM Identity Center users are returned. If you specify SSO_GROUP, only the permissions of IAM Identity Center groups are returned.

", "location":"querystring", "locationName":"userType" }, @@ -1002,6 +1071,11 @@ "member":{"shape":"OrganizationalUnit"}, "sensitive":true }, + "OverridableConfigurationJson":{ + "type":"string", + "max":65536, + "min":2 + }, "PaginationToken":{"type":"string"}, "PermissionEntry":{ "type":"structure", @@ -1012,14 +1086,14 @@ "members":{ "role":{ "shape":"Role", - "documentation":"

Specifies whether the user or group has the Admin or Editor role.

" + "documentation":"

Specifies whether the user or group has the Admin, Editor, or Viewer role.

" }, "user":{ "shape":"User", "documentation":"

A structure with the ID of the user or group with this role.

" } }, - "documentation":"

A structure containing the identity of one user or group and the Admin or Editor role that they have.

" + "documentation":"

A structure containing the identity of one user or group and the Admin, Editor, or Viewer role that they have.

" }, "PermissionEntryList":{ "type":"list", @@ -1089,7 +1163,7 @@ "documentation":"

A list of groups from the SAML assertion attribute to grant the Grafana Editor role to.

" } }, - "documentation":"

This structure defines which groups defined in the SAML assertion attribute are to be mapped to the Grafana Admin and Editor roles in the workspace.

" + "documentation":"

This structure defines which groups defined in the SAML assertion attribute are to be mapped to the Grafana Admin and Editor roles in the workspace. SAML authenticated users not part of Admin or Editor role groups have Viewer permission over the workspace.

" }, "SSOClientId":{"type":"string"}, "SamlAuthentication":{ @@ -1141,6 +1215,17 @@ "NOT_CONFIGURED" ] }, + "SecurityGroupId":{ + "type":"string", + "max":255, + "min":0 + }, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":100, + "min":1 + }, "ServiceQuotaExceededException":{ "type":"structure", "required":[ @@ -1186,6 +1271,17 @@ }, "StackSetName":{"type":"string"}, "String":{"type":"string"}, + "SubnetId":{ + "type":"string", + "max":255, + "min":0 + }, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":100, + "min":1 + }, "TagKey":{ "type":"string", "max":128, @@ -1396,7 +1492,7 @@ "members":{ "authenticationProviders":{ "shape":"AuthenticationProviders", - "documentation":"

Specifies whether this workspace uses SAML 2.0, Amazon Web Services Single Sign On, or both to authenticate users for using the Grafana console within a workspace. For more information, see User authentication in Amazon Managed Grafana.

" + "documentation":"

Specifies whether this workspace uses SAML 2.0, IAM Identity Center (successor to Single Sign-On), or both to authenticate users for using the Grafana console within a workspace. For more information, see User authentication in Amazon Managed Grafana.

" }, "samlConfiguration":{ "shape":"SamlConfiguration", @@ -1420,6 +1516,31 @@ } } }, + "UpdateWorkspaceConfigurationRequest":{ + "type":"structure", + "required":[ + "configuration", + "workspaceId" + ], + "members":{ + "configuration":{ + "shape":"OverridableConfigurationJson", + "documentation":"

The new configuration string for the workspace. For more information about the format and configuration options available, see Working in your Grafana workspace.

", + "jsonvalue":true + }, + "workspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The ID of the workspace to update.

", + "location":"uri", + "locationName":"workspaceId" + } + } + }, + "UpdateWorkspaceConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateWorkspaceRequest":{ "type":"structure", "required":["workspaceId"], @@ -1436,10 +1557,18 @@ "shape":"PermissionType", "documentation":"

If you specify Service Managed, Amazon Managed Grafana automatically creates the IAM roles and provisions the permissions that the workspace needs to use Amazon Web Services data sources and notification channels.

If you specify CUSTOMER_MANAGED, you will manage those roles and permissions yourself. If you are creating this workspace in a member account of an organization and that account is not a delegated administrator account, and you want the workspace to access data sources in other Amazon Web Services accounts in the organization, you must choose CUSTOMER_MANAGED.

For more information, see Amazon Managed Grafana permissions and policies for Amazon Web Services data sources and notification channels

" }, + "removeVpcConfiguration":{ + "shape":"Boolean", + "documentation":"

Whether to remove the VPC configuration from the workspace.

Setting this to true and providing a vpcConfiguration to set will return an error.

" + }, "stackSetName":{ "shape":"StackSetName", "documentation":"

The name of the CloudFormation stack set to use to generate IAM roles to be used for this workspace.

" }, + "vpcConfiguration":{ + "shape":"VpcConfiguration", + "documentation":"

The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to.

" + }, "workspaceDataSources":{ "shape":"DataSourceTypesList", "documentation":"

Specify the Amazon Web Services data sources that you want to be queried in this workspace. Specifying these data sources here enables Amazon Managed Grafana to create IAM roles and permissions that allow Amazon Managed Grafana to read data from these sources. You must still add them as data sources in the Grafana console in the workspace.

If you don't specify a data source here, you can still add it as a data source later in the workspace console. However, you will then have to manually configure permissions for it.

" @@ -1569,6 +1698,24 @@ "OTHER" ] }, + "VpcConfiguration":{ + "type":"structure", + "required":[ + "securityGroupIds", + "subnetIds" + ], + "members":{ + "securityGroupIds":{ + "shape":"SecurityGroupIds", + "documentation":"

The list of Amazon EC2 security group IDs attached to the Amazon VPC for your Grafana workspace to connect.

" + }, + "subnetIds":{ + "shape":"SubnetIds", + "documentation":"

The list of Amazon EC2 subnet IDs created in the Amazon VPC for your Grafana workspace to connect.

" + } + }, + "documentation":"

The configuration settings for an Amazon VPC that contains data sources for your Grafana workspace to connect to.

" + }, "WorkspaceDescription":{ "type":"structure", "required":[ @@ -1588,7 +1735,7 @@ }, "authentication":{ "shape":"AuthenticationSummary", - "documentation":"

A structure that describes whether the workspace uses SAML, Amazon Web Services SSO, or both methods for user authentication.

" + "documentation":"

A structure that describes whether the workspace uses SAML, IAM Identity Center, or both methods for user authentication.

" }, "created":{ "shape":"Timestamp", @@ -1666,6 +1813,10 @@ "shape":"TagMap", "documentation":"

The list of tags associated with the workspace.

" }, + "vpcConfiguration":{ + "shape":"VpcConfiguration", + "documentation":"

The configuration for connecting to data sources in a private VPC (Amazon Virtual Private Cloud).

" + }, "workspaceRoleArn":{ "shape":"IamRoleArn", "documentation":"

The IAM role that grants permissions to the Amazon Web Services resources that the workspace will view data from. This role must already exist.

" diff --git a/botocore/data/greengrass/2017-06-07/endpoint-rule-set-1.json b/botocore/data/greengrass/2017-06-07/endpoint-rule-set-1.json new file mode 100644 index 00000000..2ebf0ebe --- /dev/null +++ b/botocore/data/greengrass/2017-06-07/endpoint-rule-set-1.json @@ -0,0 +1,359 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://greengrass-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://greengrass-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://greengrass.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dataplane-us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://greengrass-ats.iot.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dataplane-us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://greengrass-ats.iot.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://greengrass.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/greengrass/2017-06-07/service-2.json b/botocore/data/greengrass/2017-06-07/service-2.json index bd4d9af3..3988e393 100644 --- a/botocore/data/greengrass/2017-06-07/service-2.json +++ b/botocore/data/greengrass/2017-06-07/service-2.json @@ -3361,6 +3361,10 @@ "Timeout" : { "shape" : "__integer", "documentation" : "The allowed function execution time, after which Lambda should terminate the function. This timeout still applies to pinned Lambda functions for each request." + }, + "FunctionRuntimeOverride" : { + "shape" : "__string", + "documentation" : "The Lambda runtime supported by Greengrass which is to be used instead of the one specified in the Lambda function." } }, "documentation" : "The configuration of the Lambda function." diff --git a/botocore/data/greengrassv2/2020-11-30/endpoint-rule-set-1.json b/botocore/data/greengrassv2/2020-11-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..3ce56d53 --- /dev/null +++ b/botocore/data/greengrassv2/2020-11-30/endpoint-rule-set-1.json @@ -0,0 +1,359 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://greengrass-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://greengrass-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://greengrass.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dataplane-us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://greengrass-ats.iot.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "dataplane-us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://greengrass-ats.iot.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://greengrass.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/greengrassv2/2020-11-30/examples-1.json b/botocore/data/greengrassv2/2020-11-30/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/greengrassv2/2020-11-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/greengrassv2/2020-11-30/service-2.json b/botocore/data/greengrassv2/2020-11-30/service-2.json index 407f6b86..90c69eef 100644 --- a/botocore/data/greengrassv2/2020-11-30/service-2.json +++ b/botocore/data/greengrassv2/2020-11-30/service-2.json @@ -220,7 +220,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Gets the recipe for a version of a component. Core devices can call this operation to identify the artifacts and requirements to install a component.

" + "documentation":"

Gets the recipe for a version of a component.

" }, "GetComponentVersionArtifact":{ "name":"GetComponentVersionArtifact", @@ -269,7 +269,7 @@ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Retrieves metadata for a Greengrass core device.

IoT Greengrass relies on individual devices to send status updates to the Amazon Web Services Cloud. If the IoT Greengrass Core software isn't running on the device, or if device isn't connected to the Amazon Web Services Cloud, then the reported status of that device might not reflect its current status. The status timestamp indicates when the device status was last updated.

Core devices send status updates at the following times:

  • When the IoT Greengrass Core software starts

  • When the core device receives a deployment from the Amazon Web Services Cloud

  • When the status of any component on the core device becomes BROKEN

  • At a regular interval that you can configure, which defaults to 24 hours

" + "documentation":"

Retrieves metadata for a Greengrass core device.

IoT Greengrass relies on individual devices to send status updates to the Amazon Web Services Cloud. If the IoT Greengrass Core software isn't running on the device, or if device isn't connected to the Amazon Web Services Cloud, then the reported status of that device might not reflect its current status. The status timestamp indicates when the device status was last updated.

Core devices send status updates at the following times:

  • When the IoT Greengrass Core software starts

  • When the core device receives a deployment from the Amazon Web Services Cloud

  • When the status of any component on the core device becomes BROKEN

  • At a regular interval that you can configure, which defaults to 24 hours

  • For IoT Greengrass Core v2.7.0, the core device sends status updates upon local deployment and cloud deployment

" }, "GetDeployment":{ "name":"GetDeployment", @@ -368,7 +368,7 @@ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Retrieves a paginated list of Greengrass core devices.

IoT Greengrass relies on individual devices to send status updates to the Amazon Web Services Cloud. If the IoT Greengrass Core software isn't running on the device, or if device isn't connected to the Amazon Web Services Cloud, then the reported status of that device might not reflect its current status. The status timestamp indicates when the device status was last updated.

Core devices send status updates at the following times:

  • When the IoT Greengrass Core software starts

  • When the core device receives a deployment from the Amazon Web Services Cloud

  • When the status of any component on the core device becomes BROKEN

  • At a regular interval that you can configure, which defaults to 24 hours

" + "documentation":"

Retrieves a paginated list of Greengrass core devices.

IoT Greengrass relies on individual devices to send status updates to the Amazon Web Services Cloud. If the IoT Greengrass Core software isn't running on the device, or if device isn't connected to the Amazon Web Services Cloud, then the reported status of that device might not reflect its current status. The status timestamp indicates when the device status was last updated.

Core devices send status updates at the following times:

  • When the IoT Greengrass Core software starts

  • When the core device receives a deployment from the Amazon Web Services Cloud

  • When the status of any component on the core device becomes BROKEN

  • At a regular interval that you can configure, which defaults to 24 hours

  • For IoT Greengrass Core v2.7.0, the core device sends status updates upon local deployment and cloud deployment

" }, "ListDeployments":{ "name":"ListDeployments", @@ -418,7 +418,7 @@ {"shape":"InternalServerException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Retrieves a paginated list of the components that a Greengrass core device runs. This list doesn't include components that are deployed from local deployments or components that are deployed as dependencies of other components.

IoT Greengrass relies on individual devices to send status updates to the Amazon Web Services Cloud. If the IoT Greengrass Core software isn't running on the device, or if device isn't connected to the Amazon Web Services Cloud, then the reported status of that device might not reflect its current status. The status timestamp indicates when the device status was last updated.

Core devices send status updates at the following times:

  • When the IoT Greengrass Core software starts

  • When the core device receives a deployment from the Amazon Web Services Cloud

  • When the status of any component on the core device becomes BROKEN

  • At a regular interval that you can configure, which defaults to 24 hours

" + "documentation":"

Retrieves a paginated list of the components that a Greengrass core device runs. By default, this list doesn't include components that are deployed as dependencies of other components. To include dependencies in the response, set the topologyFilter parameter to ALL.

IoT Greengrass relies on individual devices to send status updates to the Amazon Web Services Cloud. If the IoT Greengrass Core software isn't running on the device, or if device isn't connected to the Amazon Web Services Cloud, then the reported status of that device might not reflect its current status. The status timestamp indicates when the device status was last updated.

Core devices send status updates at the following times:

  • When the IoT Greengrass Core software starts

  • When the core device receives a deployment from the Amazon Web Services Cloud

  • When the status of any component on the core device becomes BROKEN

  • At a regular interval that you can configure, which defaults to 24 hours

  • For IoT Greengrass Core v2.7.0, the core device sends status updates upon local deployment and cloud deployment

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -877,7 +877,7 @@ }, "attributes":{ "shape":"PlatformAttributesMap", - "documentation":"

A dictionary of attributes for the platform. The IoT Greengrass Core software defines the os and platform by default. You can specify additional platform attributes for a core device when you deploy the Greengrass nucleus component. For more information, see the Greengrass nucleus component in the IoT Greengrass V2 Developer Guide.

" + "documentation":"

A dictionary of attributes for the platform. The IoT Greengrass Core software defines the os and architecture by default. You can specify additional platform attributes for a core device when you deploy the Greengrass nucleus component. For more information, see the Greengrass nucleus component in the IoT Greengrass V2 Developer Guide.

" } }, "documentation":"

Contains information about a platform that a component supports.

" @@ -1098,10 +1098,10 @@ "members":{ "targetArn":{ "shape":"TargetARN", - "documentation":"

The ARN of the target IoT thing or thing group.

" + "documentation":"

The ARN of the target IoT thing or thing group. When creating a subdeployment, the targetARN can only be a thing group.

" }, "deploymentName":{ - "shape":"NonEmptyString", + "shape":"DeploymentNameString", "documentation":"

The name of the deployment.

" }, "components":{ @@ -1116,6 +1116,10 @@ "shape":"DeploymentPolicies", "documentation":"

The deployment policies for the deployment. These policies define how the deployment updates components and handles failure.

" }, + "parentTargetArn":{ + "shape":"ThingGroupARN", + "documentation":"

The parent deployment's target ARN within a subdeployment.

" + }, "tags":{ "shape":"TagMap", "documentation":"

A list of key-value pairs that contain metadata for the resource. For more information, see Tag your resources in the IoT Greengrass V2 Developer Guide.

" @@ -1190,7 +1194,7 @@ "members":{ "targetArn":{ "shape":"TargetARN", - "documentation":"

The ARN of the target IoT thing or thing group.

" + "documentation":"

The ARN of the target IoT thing or thing group. When creating a subdeployment, the targetARN can only be a thing group.

" }, "revisionId":{ "shape":"NonEmptyString", @@ -1215,6 +1219,10 @@ "isLatestForTarget":{ "shape":"IsLatestForTarget", "documentation":"

Whether or not the deployment is the latest revision for its target.

" + }, + "parentTargetArn":{ + "shape":"ThingGroupARN", + "documentation":"

The parent deployment's target ARN within a subdeployment.

" } }, "documentation":"

Contains information about a deployment.

" @@ -1290,6 +1298,11 @@ "member":{"shape":"Deployment"} }, "DeploymentName":{"type":"string"}, + "DeploymentNameString":{ + "type":"string", + "max":256, + "min":1 + }, "DeploymentPolicies":{ "type":"structure", "members":{ @@ -1482,10 +1495,32 @@ "modifiedTimestamp":{ "shape":"Timestamp", "documentation":"

The time at which the deployment job was last modified, expressed in ISO 8601 format.

" + }, + "statusDetails":{ + "shape":"EffectiveDeploymentStatusDetails", + "documentation":"

The status details that explain why a deployment has an error. This response will be null if the deployment is in a success state.

" } }, "documentation":"

Contains information about a deployment job that IoT Greengrass sends to a Greengrass core device.

" }, + "EffectiveDeploymentErrorCode":{ + "type":"string", + "max":255, + "min":1 + }, + "EffectiveDeploymentErrorStack":{ + "type":"list", + "member":{"shape":"EffectiveDeploymentErrorCode"} + }, + "EffectiveDeploymentErrorType":{ + "type":"string", + "max":255, + "min":1 + }, + "EffectiveDeploymentErrorTypeList":{ + "type":"list", + "member":{"shape":"EffectiveDeploymentErrorType"} + }, "EffectiveDeploymentExecutionStatus":{ "type":"string", "enum":[ @@ -1498,6 +1533,20 @@ "REJECTED" ] }, + "EffectiveDeploymentStatusDetails":{ + "type":"structure", + "members":{ + "errorStack":{ + "shape":"EffectiveDeploymentErrorStack", + "documentation":"

Contains an ordered list of short error codes that range from the most generic error to the most specific one. The error codes describe the reason for failure whenever the coreDeviceExecutionStatus is in a failed state. The response will be an empty list if there is no error.

" + }, + "errorTypes":{ + "shape":"EffectiveDeploymentErrorTypeList", + "documentation":"

Contains tags which describe the error. You can use the error types to classify errors to assist with remediating the failure. The response will be an empty list if there is no error.

" + } + }, + "documentation":"

Contains all error-related information for the deployment record. The status details will be null if the deployment is in a success state.

Greengrass nucleus v2.8.0 or later is required to get an accurate errorStack and errorTypes response. This field will not be returned for earlier Greengrass nucleus versions.

" + }, "EffectiveDeploymentsList":{ "type":"list", "member":{"shape":"EffectiveDeployment"} @@ -1717,6 +1766,10 @@ "shape":"IsLatestForTarget", "documentation":"

Whether or not the deployment is the latest revision for its target.

" }, + "parentTargetArn":{ + "shape":"ThingGroupARN", + "documentation":"

The parent deployment's target ARN within a subdeployment.

" + }, "tags":{ "shape":"TagMap", "documentation":"

A list of key-value pairs that contain metadata for the resource. For more information, see Tag your resources in the IoT Greengrass V2 Developer Guide.

" @@ -1760,11 +1813,27 @@ }, "lifecycleStateDetails":{ "shape":"LifecycleStateDetails", - "documentation":"

The details about the lifecycle state of the component.

" + "documentation":"

A detailed response about the lifecycle state of the component that explains the reason why a component has an error or is broken.

" }, "isRoot":{ "shape":"IsRoot", "documentation":"

Whether or not the component is a root component.

" + }, + "lastStatusChangeTimestamp":{ + "shape":"Timestamp", + "documentation":"

The status of how current the data is.

This response is based off of component state changes. The status reflects component disruptions and deployments. If a component only sees a configuration update during a deployment, it might not undergo a state change and this status would not be updated.

" + }, + "lastReportedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The last time the Greengrass core device sent a message containing a certain component to the Amazon Web Services Cloud.

A component does not need to see a state change for this field to update.

" + }, + "lastInstallationSource":{ + "shape":"NonEmptyString", + "documentation":"

The most recent deployment source that brought the component to the Greengrass core device. For a thing group deployment or thing deployment, the source will be the The ID of the deployment. and for local deployments it will be LOCAL.

" + }, + "lifecycleStatusCodes":{ + "shape":"InstalledComponentLifecycleStatusCodeList", + "documentation":"

The status codes that indicate the reason for failure whenever the lifecycleState has an error or is in a broken state.

Greengrass nucleus v2.8.0 or later is required to get an accurate lifecycleStatusCodes response. This response can be inaccurate in earlier Greengrass nucleus versions.

" } }, "documentation":"

Contains information about a component on a Greengrass core device.

" @@ -1782,10 +1851,26 @@ "FINISHED" ] }, + "InstalledComponentLifecycleStatusCode":{ + "type":"string", + "max":255, + "min":1 + }, + "InstalledComponentLifecycleStatusCodeList":{ + "type":"list", + "member":{"shape":"InstalledComponentLifecycleStatusCode"} + }, "InstalledComponentList":{ "type":"list", "member":{"shape":"InstalledComponent"} }, + "InstalledComponentTopologyFilter":{ + "type":"string", + "enum":[ + "ALL", + "ROOT" + ] + }, "InternalServerException":{ "type":"structure", "required":["message"], @@ -2119,16 +2204,12 @@ "rw" ] }, - "LambdaFunctionARNWithVersionNumber":{ - "type":"string", - "pattern":"arn:[^:]*:lambda:[^:]+:[0-9]+:function:[a-zA-Z0-9-_]+:[0-9]+" - }, "LambdaFunctionRecipeSource":{ "type":"structure", "required":["lambdaArn"], "members":{ "lambdaArn":{ - "shape":"LambdaFunctionARNWithVersionNumber", + "shape":"NonEmptyString", "documentation":"

The ARN of the Lambda function. The ARN must include the version of the function to import. You can't use version aliases like $LATEST.

" }, "componentName":{ @@ -2394,6 +2475,12 @@ "location":"querystring", "locationName":"historyFilter" }, + "parentTargetArn":{ + "shape":"ThingGroupARN", + "documentation":"

The parent deployment's target ARN within a subdeployment.

", + "location":"querystring", + "locationName":"parentTargetArn" + }, "maxResults":{ "shape":"DefaultMaxResults", "documentation":"

The maximum number of results to be returned per paginated request.

", @@ -2485,6 +2572,13 @@ "box":true, "location":"querystring", "locationName":"nextToken" + }, + "topologyFilter":{ + "shape":"InstalledComponentTopologyFilter", + "documentation":"

The filter for the list of components. Choose from the following options:

  • ALL – The list includes all components installed on the core device.

  • ROOT – The list includes only root components, which are components that you specify in a deployment. When you choose this option, the list doesn't include components that the core device installs as dependencies of other components.

Default: ROOT

", + "box":true, + "location":"querystring", + "locationName":"topologyFilter" } } }, @@ -2493,7 +2587,7 @@ "members":{ "installedComponents":{ "shape":"InstalledComponentList", - "documentation":"

A list that summarizes each component on the core device.

" + "documentation":"

A list that summarizes each component on the core device.

Greengrass nucleus v2.7.0 or later is required to get an accurate lastStatusChangeTimestamp response. This response can be inaccurate in earlier Greengrass nucleus versions.

Greengrass nucleus v2.8.0 or later is required to get an accurate lastInstallationSource and lastReportedTimestamp response. This response can be inaccurate or null in earlier Greengrass nucleus versions.

" }, "nextToken":{ "shape":"NextTokenString", diff --git a/botocore/data/groundstation/2019-05-23/endpoint-rule-set-1.json b/botocore/data/groundstation/2019-05-23/endpoint-rule-set-1.json new file mode 100644 index 00000000..24b35d1d --- /dev/null +++ b/botocore/data/groundstation/2019-05-23/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://groundstation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://groundstation-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://groundstation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://groundstation.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/groundstation/2019-05-23/examples-1.json b/botocore/data/groundstation/2019-05-23/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/groundstation/2019-05-23/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/groundstation/2019-05-23/paginators-1.json b/botocore/data/groundstation/2019-05-23/paginators-1.json index 57a762b2..0ead1107 100644 --- a/botocore/data/groundstation/2019-05-23/paginators-1.json +++ b/botocore/data/groundstation/2019-05-23/paginators-1.json @@ -35,6 +35,12 @@ "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/botocore/data/groundstation/2019-05-23/service-2.json b/botocore/data/groundstation/2019-05-23/service-2.json index efcfa748..89e4bc19 100644 --- a/botocore/data/groundstation/2019-05-23/service-2.json +++ b/botocore/data/groundstation/2019-05-23/service-2.json @@ -62,6 +62,22 @@ ], "documentation":"

Creates a DataflowEndpoint group containing the specified list of DataflowEndpoint objects.

The name field in each endpoint is used in your mission profile DataflowEndpointConfig to specify which endpoints to use during a contact.

When a contact uses multiple DataflowEndpointConfig objects, each Config must match a DataflowEndpoint in the same group.

" }, + "CreateEphemeris":{ + "name":"CreateEphemeris", + "http":{ + "method":"POST", + "requestUri":"/ephemeris", + "responseCode":200 + }, + "input":{"shape":"CreateEphemerisRequest"}, + "output":{"shape":"EphemerisIdResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"DependencyException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Creates an Ephemeris with the specified EphemerisData.

" + }, "CreateMissionProfile":{ "name":"CreateMissionProfile", "http":{ @@ -112,6 +128,23 @@ "documentation":"

Deletes a dataflow endpoint group.

", "idempotent":true }, + "DeleteEphemeris":{ + "name":"DeleteEphemeris", + "http":{ + "method":"DELETE", + "requestUri":"/ephemeris/{ephemerisId}", + "responseCode":200 + }, + "input":{"shape":"DeleteEphemerisRequest"}, + "output":{"shape":"EphemerisIdResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"DependencyException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes an ephemeris

", + "idempotent":true + }, "DeleteMissionProfile":{ "name":"DeleteMissionProfile", "http":{ @@ -145,6 +178,22 @@ ], "documentation":"

Describes an existing contact.

" }, + "DescribeEphemeris":{ + "name":"DescribeEphemeris", + "http":{ + "method":"GET", + "requestUri":"/ephemeris/{ephemerisId}", + "responseCode":200 + }, + "input":{"shape":"DescribeEphemerisRequest"}, + "output":{"shape":"DescribeEphemerisResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"DependencyException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes an existing ephemeris.

" + }, "GetConfig":{ "name":"GetConfig", "http":{ @@ -273,6 +322,22 @@ ], "documentation":"

Returns a list of DataflowEndpoint groups.

" }, + "ListEphemerides":{ + "name":"ListEphemerides", + "http":{ + "method":"POST", + "requestUri":"/ephemerides", + "responseCode":200 + }, + "input":{"shape":"ListEphemeridesRequest"}, + "output":{"shape":"ListEphemeridesResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"DependencyException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

List existing ephemerides.

" + }, "ListGroundStations":{ "name":"ListGroundStations", "http":{ @@ -403,6 +468,23 @@ "documentation":"

Updates the Config used when scheduling contacts.

Updating a Config will not update the execution parameters for existing future contacts scheduled with this Config.

", "idempotent":true }, + "UpdateEphemeris":{ + "name":"UpdateEphemeris", + "http":{ + "method":"PUT", + "requestUri":"/ephemeris/{ephemerisId}", + "responseCode":200 + }, + "input":{"shape":"UpdateEphemerisRequest"}, + "output":{"shape":"EphemerisIdResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"DependencyException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Updates an existing ephemeris

", + "idempotent":true + }, "UpdateMissionProfile":{ "name":"UpdateMissionProfile", "http":{ @@ -422,6 +504,12 @@ } }, "shapes":{ + "AWSRegion":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\w-]+$" + }, "AngleUnits":{ "type":"string", "enum":[ @@ -495,6 +583,12 @@ }, "documentation":"

Information about the uplink Config of an antenna.

" }, + "AnyArn":{ + "type":"string", + "max":1024, + "min":5, + "pattern":"^(arn:aws:)[\\s\\S]{0,1024}$" + }, "BandwidthUnits":{ "type":"string", "enum":[ @@ -513,7 +607,7 @@ "required":["contactId"], "members":{ "contactId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a contact.

", "location":"uri", "locationName":"contactId" @@ -633,7 +727,7 @@ "type":"structure", "members":{ "contactId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a contact.

" }, "contactStatus":{ @@ -642,7 +736,7 @@ }, "endTime":{ "shape":"Timestamp", - "documentation":"

End time of a contact.

" + "documentation":"

End time of a contact in UTC.

" }, "errorMessage":{ "shape":"String", @@ -678,7 +772,7 @@ }, "startTime":{ "shape":"Timestamp", - "documentation":"

Start time of a contact.

" + "documentation":"

Start time of a contact in UTC.

" }, "tags":{ "shape":"TagsMap", @@ -691,7 +785,7 @@ "type":"structure", "members":{ "contactId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a contact.

" } }, @@ -756,6 +850,47 @@ }, "documentation":"

" }, + "CreateEphemerisRequest":{ + "type":"structure", + "required":[ + "name", + "satelliteId" + ], + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Whether to set the ephemeris status to ENABLED after validation.

Setting this to false will set the ephemeris status to DISABLED after validation.

" + }, + "ephemeris":{ + "shape":"EphemerisData", + "documentation":"

Ephemeris data.

" + }, + "expirationTime":{ + "shape":"Timestamp", + "documentation":"

An overall expiration time for the ephemeris in UTC, after which it will become EXPIRED.

" + }, + "kmsKeyArn":{ + "shape":"KeyArn", + "documentation":"

The ARN of a KMS key used to encrypt the ephemeris in Ground Station.

" + }, + "name":{ + "shape":"SafeName", + "documentation":"

A name string associated with the ephemeris. Used as a human-readable identifier for the ephemeris.

" + }, + "priority":{ + "shape":"CustomerEphemerisPriority", + "documentation":"

Customer-provided priority score to establish the order in which overlapping ephemerides should be used.

The default for customer-provided ephemeris priority is 1, and higher numbers take precedence.

Priority must be 1 or greater

" + }, + "satelliteId":{ + "shape":"Uuid", + "documentation":"

AWS Ground Station satellite ID for this ephemeris.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

Tags assigned to an ephemeris.

" + } + } + }, "CreateMissionProfileRequest":{ "type":"structure", "required":[ @@ -778,7 +913,7 @@ "documentation":"

A list of lists of ARNs. Each list of ARNs is an edge, with a from Config and a to Config.

" }, "minimumViableContactDurationSeconds":{ - "shape":"DurationInSeconds", + "shape":"PositiveDurationInSeconds", "documentation":"

Smallest amount of time in seconds that you’d like to see for an available contact. AWS Ground Station will not present you with contacts shorter than this duration.

" }, "name":{ @@ -804,6 +939,12 @@ "REQUIRED" ] }, + "CustomerEphemerisPriority":{ + "type":"integer", + "box":true, + "max":99999, + "min":1 + }, "DataflowDetail":{ "type":"structure", "members":{ @@ -824,7 +965,9 @@ }, "DataflowEdgeList":{ "type":"list", - "member":{"shape":"DataflowEdge"} + "member":{"shape":"DataflowEdge"}, + "max":500, + "min":0 }, "DataflowEndpoint":{ "type":"structure", @@ -868,7 +1011,7 @@ "type":"structure", "members":{ "dataflowEndpointGroupId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a dataflow endpoint group.

" } }, @@ -886,7 +1029,7 @@ "documentation":"

ARN of a dataflow endpoint group.

" }, "dataflowEndpointGroupId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a dataflow endpoint group.

" } }, @@ -921,7 +1064,7 @@ ], "members":{ "configId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a Config.

", "location":"uri", "locationName":"configId" @@ -940,7 +1083,7 @@ "required":["dataflowEndpointGroupId"], "members":{ "dataflowEndpointGroupId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a dataflow endpoint group.

", "location":"uri", "locationName":"dataflowEndpointGroupId" @@ -948,12 +1091,24 @@ }, "documentation":"

" }, + "DeleteEphemerisRequest":{ + "type":"structure", + "required":["ephemerisId"], + "members":{ + "ephemerisId":{ + "shape":"Uuid", + "documentation":"

The AWS Ground Station ephemeris ID.

", + "location":"uri", + "locationName":"ephemerisId" + } + } + }, "DeleteMissionProfileRequest":{ "type":"structure", "required":["missionProfileId"], "members":{ "missionProfileId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a mission profile.

", "location":"uri", "locationName":"missionProfileId" @@ -991,7 +1146,7 @@ "required":["contactId"], "members":{ "contactId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a contact.

", "location":"uri", "locationName":"contactId" @@ -1003,7 +1158,7 @@ "type":"structure", "members":{ "contactId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a contact.

" }, "contactStatus":{ @@ -1016,7 +1171,7 @@ }, "endTime":{ "shape":"Timestamp", - "documentation":"

End time of a contact.

" + "documentation":"

End time of a contact in UTC.

" }, "errorMessage":{ "shape":"String", @@ -1052,7 +1207,7 @@ }, "startTime":{ "shape":"Timestamp", - "documentation":"

Start time of a contact.

" + "documentation":"

Start time of a contact in UTC.

" }, "tags":{ "shape":"TagsMap", @@ -1061,6 +1216,63 @@ }, "documentation":"

" }, + "DescribeEphemerisRequest":{ + "type":"structure", + "required":["ephemerisId"], + "members":{ + "ephemerisId":{ + "shape":"Uuid", + "documentation":"

The AWS Ground Station ephemeris ID.

", + "location":"uri", + "locationName":"ephemerisId" + } + } + }, + "DescribeEphemerisResponse":{ + "type":"structure", + "members":{ + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time the ephemeris was uploaded in UTC.

" + }, + "enabled":{ + "shape":"Boolean", + "documentation":"

Whether or not the ephemeris is enabled.

" + }, + "ephemerisId":{ + "shape":"Uuid", + "documentation":"

The AWS Ground Station ephemeris ID.

" + }, + "invalidReason":{ + "shape":"EphemerisInvalidReason", + "documentation":"

Reason that an ephemeris failed validation. Only provided for ephemerides with INVALID status.

" + }, + "name":{ + "shape":"SafeName", + "documentation":"

A name string associated with the ephemeris. Used as a human-readable identifier for the ephemeris.

" + }, + "priority":{ + "shape":"EphemerisPriority", + "documentation":"

Customer-provided priority score to establish the order in which overlapping ephemerides should be used.

The default for customer-provided ephemeris priority is 1, and higher numbers take precedence.

Priority must be 1 or greater

" + }, + "satelliteId":{ + "shape":"Uuid", + "documentation":"

The AWS Ground Station satellite ID associated with ephemeris.

" + }, + "status":{ + "shape":"EphemerisStatus", + "documentation":"

The status of the ephemeris.

" + }, + "suppliedData":{ + "shape":"EphemerisTypeDescription", + "documentation":"

Supplied ephemeris data.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

Tags assigned to an ephemeris.

" + } + } + }, "Destination":{ "type":"structure", "members":{ @@ -1069,7 +1281,7 @@ "documentation":"

Additional details for a Config, if type is dataflow endpoint or antenna demod decode.

" }, "configId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a Config.

" }, "configType":{ @@ -1091,7 +1303,7 @@ "type":"integer", "box":true, "max":21600, - "min":1 + "min":0 }, "Eirp":{ "type":"structure", @@ -1142,14 +1354,16 @@ }, "securityDetails":{ "shape":"SecurityDetails", - "documentation":"

Endpoint security details.

" + "documentation":"

Endpoint security details including a list of subnets, a list of security groups and a role to connect streams to instances.

" } }, "documentation":"

Information about the endpoint details.

" }, "EndpointDetailsList":{ "type":"list", - "member":{"shape":"EndpointDetails"} + "member":{"shape":"EndpointDetails"}, + "max":500, + "min":0 }, "EndpointStatus":{ "type":"string", @@ -1161,6 +1375,150 @@ "failed" ] }, + "EphemeridesList":{ + "type":"list", + "member":{"shape":"EphemerisItem"}, + "max":500, + "min":1 + }, + "EphemerisData":{ + "type":"structure", + "members":{ + "oem":{"shape":"OEMEphemeris"}, + "tle":{"shape":"TLEEphemeris"} + }, + "documentation":"

Ephemeris data.

", + "union":true + }, + "EphemerisDescription":{ + "type":"structure", + "members":{ + "ephemerisData":{ + "shape":"UnboundedString", + "documentation":"

Supplied ephemeris data.

" + }, + "sourceS3Object":{ + "shape":"S3Object", + "documentation":"

Source S3 object used for the ephemeris.

" + } + }, + "documentation":"

Description of ephemeris.

" + }, + "EphemerisIdResponse":{ + "type":"structure", + "members":{ + "ephemerisId":{ + "shape":"Uuid", + "documentation":"

The AWS Ground Station ephemeris ID.

" + } + } + }, + "EphemerisInvalidReason":{ + "type":"string", + "enum":[ + "METADATA_INVALID", + "TIME_RANGE_INVALID", + "TRAJECTORY_INVALID", + "KMS_KEY_INVALID", + "VALIDATION_ERROR" + ] + }, + "EphemerisItem":{ + "type":"structure", + "members":{ + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time the ephemeris was uploaded in UTC.

" + }, + "enabled":{ + "shape":"Boolean", + "documentation":"

Whether or not the ephemeris is enabled.

" + }, + "ephemerisId":{ + "shape":"Uuid", + "documentation":"

The AWS Ground Station ephemeris ID.

" + }, + "name":{ + "shape":"SafeName", + "documentation":"

A name string associated with the ephemeris. Used as a human-readable identifier for the ephemeris.

" + }, + "priority":{ + "shape":"EphemerisPriority", + "documentation":"

Customer-provided priority score to establish the order in which overlapping ephemerides should be used.

The default for customer-provided ephemeris priority is 1, and higher numbers take precedence.

Priority must be 1 or greater

" + }, + "sourceS3Object":{ + "shape":"S3Object", + "documentation":"

Source S3 object used for the ephemeris.

" + }, + "status":{ + "shape":"EphemerisStatus", + "documentation":"

The status of the ephemeris.

" + } + }, + "documentation":"

Ephemeris item.

" + }, + "EphemerisMetaData":{ + "type":"structure", + "required":["source"], + "members":{ + "ephemerisId":{ + "shape":"Uuid", + "documentation":"

UUID of a customer-provided ephemeris.

This field is not populated for default ephemerides from Space Track.

" + }, + "epoch":{ + "shape":"Timestamp", + "documentation":"

The epoch of a default, ephemeris from Space Track in UTC.

This field is not populated for customer-provided ephemerides.

" + }, + "name":{ + "shape":"SafeName", + "documentation":"

A name string associated with the ephemeris. Used as a human-readable identifier for the ephemeris.

A name is only returned for customer-provider ephemerides that have a name associated.

" + }, + "source":{ + "shape":"EphemerisSource", + "documentation":"

The EphemerisSource that generated a given ephemeris.

" + } + }, + "documentation":"

Metadata describing a particular ephemeris.

" + }, + "EphemerisPriority":{ + "type":"integer", + "box":true, + "max":99999, + "min":0 + }, + "EphemerisSource":{ + "type":"string", + "enum":[ + "CUSTOMER_PROVIDED", + "SPACE_TRACK" + ] + }, + "EphemerisStatus":{ + "type":"string", + "enum":[ + "VALIDATING", + "INVALID", + "ERROR", + "ENABLED", + "DISABLED", + "EXPIRED" + ] + }, + "EphemerisStatusList":{ + "type":"list", + "member":{"shape":"EphemerisStatus"}, + "max":500, + "min":0 + }, + "EphemerisTypeDescription":{ + "type":"structure", + "members":{ + "oem":{"shape":"EphemerisDescription"}, + "tle":{"shape":"EphemerisDescription"} + }, + "documentation":"

", + "union":true + }, "Frequency":{ "type":"structure", "required":[ @@ -1213,7 +1571,7 @@ ], "members":{ "configId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a Config.

", "location":"uri", "locationName":"configId" @@ -1268,7 +1626,7 @@ "required":["dataflowEndpointGroupId"], "members":{ "dataflowEndpointGroupId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a dataflow endpoint group.

", "location":"uri", "locationName":"dataflowEndpointGroupId" @@ -1284,7 +1642,7 @@ "documentation":"

ARN of a dataflow endpoint group.

" }, "dataflowEndpointGroupId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a dataflow endpoint group.

" }, "endpointsDetails":{ @@ -1306,11 +1664,11 @@ ], "members":{ "month":{ - "shape":"Integer", + "shape":"Month", "documentation":"

The month being requested, with a value of 1-12.

" }, "year":{ - "shape":"Integer", + "shape":"Year", "documentation":"

The year being requested, in the format of YYYY.

" } }, @@ -1347,7 +1705,7 @@ "required":["missionProfileId"], "members":{ "missionProfileId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a mission profile.

", "location":"uri", "locationName":"missionProfileId" @@ -1371,7 +1729,7 @@ "documentation":"

A list of lists of ARNs. Each list of ARNs is an edge, with a from Config and a to Config.

" }, "minimumViableContactDurationSeconds":{ - "shape":"DurationInSeconds", + "shape":"PositiveDurationInSeconds", "documentation":"

Smallest amount of time in seconds that you’d like to see for an available contact. AWS Ground Station will not present you with contacts shorter than this duration.

" }, "missionProfileArn":{ @@ -1379,15 +1737,15 @@ "documentation":"

ARN of a mission profile.

" }, "missionProfileId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a mission profile.

" }, "name":{ - "shape":"String", + "shape":"SafeName", "documentation":"

Name of a mission profile.

" }, "region":{ - "shape":"String", + "shape":"AWSRegion", "documentation":"

Region of a mission profile.

" }, "tags":{ @@ -1406,7 +1764,7 @@ "required":["satelliteId"], "members":{ "satelliteId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a satellite.

", "location":"uri", "locationName":"satelliteId" @@ -1417,6 +1775,10 @@ "GetSatelliteResponse":{ "type":"structure", "members":{ + "currentEphemeris":{ + "shape":"EphemerisMetaData", + "documentation":"

The current ephemeris being used to compute the trajectory of the satellite.

" + }, "groundStations":{ "shape":"GroundStationIdList", "documentation":"

A list of ground stations to which the satellite is on-boarded.

" @@ -1440,15 +1802,15 @@ "type":"structure", "members":{ "groundStationId":{ - "shape":"String", + "shape":"GroundStationName", "documentation":"

UUID of a ground station.

" }, "groundStationName":{ - "shape":"String", + "shape":"GroundStationName", "documentation":"

Name of a ground station.

" }, "region":{ - "shape":"String", + "shape":"AWSRegion", "documentation":"

Ground station Region.

" } }, @@ -1456,12 +1818,20 @@ }, "GroundStationIdList":{ "type":"list", - "member":{"shape":"String"} + "member":{"shape":"GroundStationName"}, + "max":500, + "min":0 }, "GroundStationList":{ "type":"list", "member":{"shape":"GroundStationData"} }, + "GroundStationName":{ + "type":"string", + "max":500, + "min":4, + "pattern":"^[ a-zA-Z0-9-._:=]{4,256}$" + }, "Integer":{ "type":"integer", "box":true @@ -1488,17 +1858,18 @@ "min":2, "pattern":"^[{}\\[\\]:.,\"0-9A-z\\-_\\s]{2,8192}$" }, + "KeyArn":{"type":"string"}, "ListConfigsRequest":{ "type":"structure", "members":{ "maxResults":{ - "shape":"Integer", + "shape":"PaginationMaxResults", "documentation":"

Maximum number of Configs returned.

", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token returned in the request of a previous ListConfigs call. Used to get the next page of results.

", "location":"querystring", "locationName":"nextToken" @@ -1514,7 +1885,7 @@ "documentation":"

List of Config items.

" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token returned in the response of a previous ListConfigs call. Used to get the next page of results.

" } }, @@ -1530,14 +1901,14 @@ "members":{ "endTime":{ "shape":"Timestamp", - "documentation":"

End time of a contact.

" + "documentation":"

End time of a contact in UTC.

" }, "groundStation":{ - "shape":"String", + "shape":"GroundStationName", "documentation":"

Name of a ground station.

" }, "maxResults":{ - "shape":"Integer", + "shape":"PaginationMaxResults", "documentation":"

Maximum number of contacts returned.

" }, "missionProfileArn":{ @@ -1545,7 +1916,7 @@ "documentation":"

ARN of a mission profile.

" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token returned in the request of a previous ListContacts call. Used to get the next page of results.

" }, "satelliteArn":{ @@ -1554,7 +1925,7 @@ }, "startTime":{ "shape":"Timestamp", - "documentation":"

Start time of a contact.

" + "documentation":"

Start time of a contact in UTC.

" }, "statusList":{ "shape":"StatusList", @@ -1571,7 +1942,7 @@ "documentation":"

List of contacts.

" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token returned in the response of a previous ListContacts call. Used to get the next page of results.

" } }, @@ -1581,13 +1952,13 @@ "type":"structure", "members":{ "maxResults":{ - "shape":"Integer", + "shape":"PaginationMaxResults", "documentation":"

Maximum number of dataflow endpoint groups returned.

", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token returned in the request of a previous ListDataflowEndpointGroups call. Used to get the next page of results.

", "location":"querystring", "locationName":"nextToken" @@ -1603,29 +1974,80 @@ "documentation":"

A list of dataflow endpoint groups.

" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token returned in the response of a previous ListDataflowEndpointGroups call. Used to get the next page of results.

" } }, "documentation":"

" }, + "ListEphemeridesRequest":{ + "type":"structure", + "required":[ + "endTime", + "satelliteId", + "startTime" + ], + "members":{ + "endTime":{ + "shape":"Timestamp", + "documentation":"

The end time to list in UTC. The operation will return an ephemeris if its expiration time is within the time range defined by the startTime and endTime.

" + }, + "maxResults":{ + "shape":"PaginationMaxResults", + "documentation":"

Maximum number of ephemerides to return.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Pagination token.

", + "location":"querystring", + "locationName":"nextToken" + }, + "satelliteId":{ + "shape":"Uuid", + "documentation":"

The AWS Ground Station satellite ID to list ephemeris for.

" + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

The start time to list in UTC. The operation will return an ephemeris if its expiration time is within the time range defined by the startTime and endTime.

" + }, + "statusList":{ + "shape":"EphemerisStatusList", + "documentation":"

The list of ephemeris status to return.

" + } + } + }, + "ListEphemeridesResponse":{ + "type":"structure", + "members":{ + "ephemerides":{ + "shape":"EphemeridesList", + "documentation":"

List of ephemerides.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Pagination token.

" + } + } + }, "ListGroundStationsRequest":{ "type":"structure", "members":{ "maxResults":{ - "shape":"Integer", + "shape":"PaginationMaxResults", "documentation":"

Maximum number of ground stations returned.

", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token that can be supplied in the next call to get the next page of ground stations.

", "location":"querystring", "locationName":"nextToken" }, "satelliteId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

Satellite ID to retrieve on-boarded ground stations.

", "location":"querystring", "locationName":"satelliteId" @@ -1641,7 +2063,7 @@ "documentation":"

List of ground stations.

" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token that can be supplied in the next call to get the next page of ground stations.

" } }, @@ -1651,13 +2073,13 @@ "type":"structure", "members":{ "maxResults":{ - "shape":"Integer", + "shape":"PaginationMaxResults", "documentation":"

Maximum number of mission profiles returned.

", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token returned in the request of a previous ListMissionProfiles call. Used to get the next page of results.

", "location":"querystring", "locationName":"nextToken" @@ -1673,7 +2095,7 @@ "documentation":"

List of mission profiles.

" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token returned in the response of a previous ListMissionProfiles call. Used to get the next page of results.

" } }, @@ -1683,13 +2105,13 @@ "type":"structure", "members":{ "maxResults":{ - "shape":"Integer", + "shape":"PaginationMaxResults", "documentation":"

Maximum number of satellites returned.

", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token that can be supplied in the next call to get the next page of satellites.

", "location":"querystring", "locationName":"nextToken" @@ -1701,7 +2123,7 @@ "type":"structure", "members":{ "nextToken":{ - "shape":"String", + "shape":"PaginationToken", "documentation":"

Next token that can be supplied in the next call to get the next page of satellites.

" }, "satellites":{ @@ -1716,7 +2138,7 @@ "required":["resourceArn"], "members":{ "resourceArn":{ - "shape":"String", + "shape":"AnyArn", "documentation":"

ARN of a resource.

", "location":"uri", "locationName":"resourceArn" @@ -1739,7 +2161,7 @@ "type":"structure", "members":{ "missionProfileId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a mission profile.

" } }, @@ -1757,20 +2179,52 @@ "documentation":"

ARN of a mission profile.

" }, "missionProfileId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a mission profile.

" }, "name":{ - "shape":"String", + "shape":"SafeName", "documentation":"

Name of a mission profile.

" }, "region":{ - "shape":"String", + "shape":"AWSRegion", "documentation":"

Region of a mission profile.

" } }, "documentation":"

Item in a list of mission profiles.

" }, + "Month":{ + "type":"integer", + "box":true, + "max":12, + "min":1 + }, + "OEMEphemeris":{ + "type":"structure", + "members":{ + "oemData":{ + "shape":"UnboundedString", + "documentation":"

The data for an OEM ephemeris, supplied directly in the request rather than through an S3 object.

" + }, + "s3Object":{ + "shape":"S3Object", + "documentation":"

Identifies the S3 object to be used as the ephemeris.

" + } + }, + "documentation":"

Ephemeris data in Orbit Ephemeris Message (OEM) format.

" + }, + "PaginationMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":0 + }, + "PaginationToken":{ + "type":"string", + "max":1000, + "min":3, + "pattern":"^[A-Za-z0-9-/+_.=]+$" + }, "Polarization":{ "type":"string", "enum":[ @@ -1779,6 +2233,12 @@ "RIGHT_HAND" ] }, + "PositiveDurationInSeconds":{ + "type":"integer", + "box":true, + "max":21600, + "min":1 + }, "ReserveContactRequest":{ "type":"structure", "required":[ @@ -1791,10 +2251,10 @@ "members":{ "endTime":{ "shape":"Timestamp", - "documentation":"

End time of a contact.

" + "documentation":"

End time of a contact in UTC.

" }, "groundStation":{ - "shape":"String", + "shape":"GroundStationName", "documentation":"

Name of a ground station.

" }, "missionProfileArn":{ @@ -1807,7 +2267,7 @@ }, "startTime":{ "shape":"Timestamp", - "documentation":"

Start time of a contact.

" + "documentation":"

Start time of a contact in UTC.

" }, "tags":{ "shape":"TagsMap", @@ -1845,12 +2305,42 @@ "exception":true }, "RoleArn":{"type":"string"}, + "S3BucketName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"^[a-z0-9.-]{3,63}$" + }, "S3KeyPrefix":{ "type":"string", "max":900, "min":1, "pattern":"^([a-zA-Z0-9_\\-=/]|\\{satellite_id\\}|\\{config\\-name}|\\{s3\\-config-id}|\\{year\\}|\\{month\\}|\\{day\\}){1,900}$" }, + "S3Object":{ + "type":"structure", + "members":{ + "bucket":{ + "shape":"S3BucketName", + "documentation":"

An Amazon S3 Bucket name.

" + }, + "key":{ + "shape":"S3ObjectKey", + "documentation":"

An Amazon S3 key for the ephemeris.

" + }, + "version":{ + "shape":"S3VersionId", + "documentation":"

For versioned S3 objects, the version to use for the ephemeris.

" + } + }, + "documentation":"

Object stored in S3 containing ephemeris data.

" + }, + "S3ObjectKey":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^[a-zA-Z0-9!*'\\)\\(./_-]{1,1024}$" + }, "S3RecordingConfig":{ "type":"structure", "required":[ @@ -1882,11 +2372,17 @@ }, "keyTemplate":{ "shape":"String", - "documentation":"

Template of the S3 key used.

" + "documentation":"

Key template used for the S3 Recording Configuration

" } }, "documentation":"

Details about an S3 recording Config used in a contact.

" }, + "S3VersionId":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^[\\s\\S]{1,1024}$" + }, "SafeName":{ "type":"string", "max":256, @@ -1900,6 +2396,10 @@ "SatelliteListItem":{ "type":"structure", "members":{ + "currentEphemeris":{ + "shape":"EphemerisMetaData", + "documentation":"

The current ephemeris being used to compute the trajectory of the satellite.

" + }, "groundStations":{ "shape":"GroundStationIdList", "documentation":"

A list of ground stations to which the satellite is on-boarded.

" @@ -1969,7 +2469,7 @@ "members":{ "configDetails":{ "shape":"ConfigDetails", - "documentation":"

Additional details for a Config, if type is dataflow endpoint or antenna demod decode.

" + "documentation":"

Additional details for a Config, if type is dataflow-endpoint or antenna-downlink-demod-decode

" }, "configId":{ "shape":"String", @@ -2010,16 +2510,63 @@ }, "StatusList":{ "type":"list", - "member":{"shape":"ContactStatus"} + "member":{"shape":"ContactStatus"}, + "max":500, + "min":0 }, "String":{"type":"string"}, "SubnetList":{ "type":"list", "member":{"shape":"String"} }, + "TLEData":{ + "type":"structure", + "required":[ + "tleLine1", + "tleLine2", + "validTimeRange" + ], + "members":{ + "tleLine1":{ + "shape":"TleLineOne", + "documentation":"

First line of two-line element set (TLE) data.

" + }, + "tleLine2":{ + "shape":"TleLineTwo", + "documentation":"

Second line of two-line element set (TLE) data.

" + }, + "validTimeRange":{ + "shape":"TimeRange", + "documentation":"

The valid time range for the TLE. Gaps or overlap are not permitted.

" + } + }, + "documentation":"

Two-line element set (TLE) data.

" + }, + "TLEDataList":{ + "type":"list", + "member":{"shape":"TLEData"}, + "max":500, + "min":1 + }, + "TLEEphemeris":{ + "type":"structure", + "members":{ + "s3Object":{ + "shape":"S3Object", + "documentation":"

Identifies the S3 object to be used as the ephemeris.

" + }, + "tleData":{ + "shape":"TLEDataList", + "documentation":"

The data for a TLE ephemeris, supplied directly in the request rather than through an S3 object.

" + } + }, + "documentation":"

Two-line element set (TLE) ephemeris.

" + }, "TagKeys":{ "type":"list", - "member":{"shape":"String"} + "member":{"shape":"UnboundedString"}, + "max":500, + "min":0 }, "TagResourceRequest":{ "type":"structure", @@ -2029,7 +2576,7 @@ ], "members":{ "resourceArn":{ - "shape":"String", + "shape":"AnyArn", "documentation":"

ARN of a resource tag.

", "location":"uri", "locationName":"resourceArn" @@ -2052,7 +2599,37 @@ "key":{"shape":"String"}, "value":{"shape":"String"} }, + "TimeRange":{ + "type":"structure", + "required":[ + "endTime", + "startTime" + ], + "members":{ + "endTime":{ + "shape":"Timestamp", + "documentation":"

Time in UTC at which the time range ends.

" + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

Time in UTC at which the time range starts.

" + } + }, + "documentation":"

A time range with a start and end time.

" + }, "Timestamp":{"type":"timestamp"}, + "TleLineOne":{ + "type":"string", + "max":69, + "min":69, + "pattern":"^1 [ 0-9]{5}[A-Z] [ 0-9]{5}[ A-Z]{3} [ 0-9]{5}[.][ 0-9]{8} (?:(?:[ 0+-][.][ 0-9]{8})|(?: [ +-][.][ 0-9]{7})) [ +-][ 0-9]{5}[+-][ 0-9] [ +-][ 0-9]{5}[+-][ 0-9] [ 0-9] [ 0-9]{4}[ 0-9]$" + }, + "TleLineTwo":{ + "type":"string", + "max":69, + "min":69, + "pattern":"^2 [ 0-9]{5} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{7} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{2}[.][ 0-9]{13}[ 0-9]$" + }, "TrackingConfig":{ "type":"structure", "required":["autotrack"], @@ -2064,6 +2641,11 @@ }, "documentation":"

Object that determines whether tracking should be used during a contact executed with this Config in the mission profile.

" }, + "UnboundedString":{ + "type":"string", + "min":1, + "pattern":"^[\\s\\S]+$" + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -2072,7 +2654,7 @@ ], "members":{ "resourceArn":{ - "shape":"String", + "shape":"AnyArn", "documentation":"

ARN of a resource.

", "location":"uri", "locationName":"resourceArn" @@ -2106,7 +2688,7 @@ "documentation":"

Parameters of a Config.

" }, "configId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a Config.

", "location":"uri", "locationName":"configId" @@ -2124,6 +2706,33 @@ }, "documentation":"

" }, + "UpdateEphemerisRequest":{ + "type":"structure", + "required":[ + "enabled", + "ephemerisId" + ], + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Whether the ephemeris is enabled or not. Changing this value will not require the ephemeris to be re-validated.

" + }, + "ephemerisId":{ + "shape":"Uuid", + "documentation":"

The AWS Ground Station ephemeris ID.

", + "location":"uri", + "locationName":"ephemerisId" + }, + "name":{ + "shape":"SafeName", + "documentation":"

A name string associated with the ephemeris. Used as a human-readable identifier for the ephemeris.

" + }, + "priority":{ + "shape":"EphemerisPriority", + "documentation":"

Customer-provided priority score to establish the order in which overlapping ephemerides should be used.

The default for customer-provided ephemeris priority is 1, and higher numbers take precedence.

Priority must be 1 or greater

" + } + } + }, "UpdateMissionProfileRequest":{ "type":"structure", "required":["missionProfileId"], @@ -2141,11 +2750,11 @@ "documentation":"

A list of lists of ARNs. Each list of ARNs is an edge, with a from Config and a to Config.

" }, "minimumViableContactDurationSeconds":{ - "shape":"DurationInSeconds", + "shape":"PositiveDurationInSeconds", "documentation":"

Smallest amount of time in seconds that you’d like to see for an available contact. AWS Ground Station will not present you with contacts shorter than this duration.

" }, "missionProfileId":{ - "shape":"String", + "shape":"Uuid", "documentation":"

UUID of a mission profile.

", "location":"uri", "locationName":"missionProfileId" @@ -2198,12 +2807,18 @@ "type":"string", "max":128, "min":1, - "pattern":"[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}" + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "Year":{ + "type":"integer", + "box":true, + "max":3000, + "min":2018 }, "noradSatelliteID":{ "type":"integer", "max":99999, - "min":1 + "min":0 }, "satelliteArn":{"type":"string"} }, diff --git a/botocore/data/guardduty/2017-11-28/endpoint-rule-set-1.json b/botocore/data/guardduty/2017-11-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..84044659 --- /dev/null +++ b/botocore/data/guardduty/2017-11-28/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://guardduty-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://guardduty.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://guardduty-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://guardduty.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://guardduty.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/guardduty/2017-11-28/examples-1.json b/botocore/data/guardduty/2017-11-28/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/guardduty/2017-11-28/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/guardduty/2017-11-28/paginators-1.json b/botocore/data/guardduty/2017-11-28/paginators-1.json index d2d3d851..1fbdda3b 100644 --- a/botocore/data/guardduty/2017-11-28/paginators-1.json +++ b/botocore/data/guardduty/2017-11-28/paginators-1.json @@ -47,6 +47,12 @@ "output_token": "NextToken", "limit_key": "MaxResults", "result_key": "AdminAccounts" + }, + "DescribeMalwareScans": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Scans" } } } diff --git a/botocore/data/guardduty/2017-11-28/service-2.json b/botocore/data/guardduty/2017-11-28/service-2.json index 2b1d3336..4f4f7112 100644 --- a/botocore/data/guardduty/2017-11-28/service-2.json +++ b/botocore/data/guardduty/2017-11-28/service-2.json @@ -12,6 +12,21 @@ "uid":"guardduty-2017-11-28" }, "operations":{ + "AcceptAdministratorInvitation":{ + "name":"AcceptAdministratorInvitation", + "http":{ + "method":"POST", + "requestUri":"/detector/{detectorId}/administrator", + "responseCode":200 + }, + "input":{"shape":"AcceptAdministratorInvitationRequest"}, + "output":{"shape":"AcceptAdministratorInvitationResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Accepts the invitation to be a member account and get monitored by a GuardDuty administrator account that sent the invitation.

" + }, "AcceptInvitation":{ "name":"AcceptInvitation", "http":{ @@ -25,7 +40,9 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Accepts the invitation to be monitored by a GuardDuty administrator account.

" + "documentation":"

Accepts the invitation to be monitored by a GuardDuty administrator account.

", + "deprecated":true, + "deprecatedMessage":"This operation is deprecated, use AcceptAdministratorInvitation instead" }, "ArchiveFindings":{ "name":"ArchiveFindings", @@ -267,6 +284,21 @@ ], "documentation":"

Deletes the ThreatIntelSet specified by the ThreatIntelSet ID.

" }, + "DescribeMalwareScans":{ + "name":"DescribeMalwareScans", + "http":{ + "method":"POST", + "requestUri":"/detector/{detectorId}/malware-scans", + "responseCode":200 + }, + "input":{"shape":"DescribeMalwareScansRequest"}, + "output":{"shape":"DescribeMalwareScansResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Returns a list of malware scans. Each member account can view the malware scans for their own accounts. An administrator can view the malware scans for all the member accounts.

" + }, "DescribeOrganizationConfiguration":{ "name":"DescribeOrganizationConfiguration", "http":{ @@ -312,6 +344,21 @@ ], "documentation":"

Disables an Amazon Web Services account within the Organization as the GuardDuty delegated administrator.

" }, + "DisassociateFromAdministratorAccount":{ + "name":"DisassociateFromAdministratorAccount", + "http":{ + "method":"POST", + "requestUri":"/detector/{detectorId}/administrator/disassociate", + "responseCode":200 + }, + "input":{"shape":"DisassociateFromAdministratorAccountRequest"}, + "output":{"shape":"DisassociateFromAdministratorAccountResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Disassociates the current GuardDuty member account from its administrator account.

" + }, "DisassociateFromMasterAccount":{ "name":"DisassociateFromMasterAccount", "http":{ @@ -325,7 +372,9 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Disassociates the current GuardDuty member account from its administrator account.

" + "documentation":"

Disassociates the current GuardDuty member account from its administrator account.

", + "deprecated":true, + "deprecatedMessage":"This operation is deprecated, use DisassociateFromAdministratorAccount instead" }, "DisassociateMembers":{ "name":"DisassociateMembers", @@ -340,7 +389,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Disassociates GuardDuty member accounts (to the current GuardDuty administrator account) specified by the account IDs. Member accounts added through Invitation get deleted from the current GuardDuty administrator account after 30 days of disassociation.

" + "documentation":"

Disassociates GuardDuty member accounts (to the current administrator account) specified by the account IDs.

" }, "EnableOrganizationAdminAccount":{ "name":"EnableOrganizationAdminAccount", @@ -357,6 +406,21 @@ ], "documentation":"

Enables an Amazon Web Services account within the organization as the GuardDuty delegated administrator.

" }, + "GetAdministratorAccount":{ + "name":"GetAdministratorAccount", + "http":{ + "method":"GET", + "requestUri":"/detector/{detectorId}/administrator", + "responseCode":200 + }, + "input":{"shape":"GetAdministratorAccountRequest"}, + "output":{"shape":"GetAdministratorAccountResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Provides the details for the GuardDuty administrator account associated with the current GuardDuty member account.

" + }, "GetDetector":{ "name":"GetDetector", "http":{ @@ -447,6 +511,21 @@ ], "documentation":"

Returns the count of all GuardDuty membership invitations that were sent to the current member account except the currently accepted invitation.

" }, + "GetMalwareScanSettings":{ + "name":"GetMalwareScanSettings", + "http":{ + "method":"GET", + "requestUri":"/detector/{detectorId}/malware-scan-settings", + "responseCode":200 + }, + "input":{"shape":"GetMalwareScanSettingsRequest"}, + "output":{"shape":"GetMalwareScanSettingsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Returns the details of the malware scan settings.

" + }, "GetMasterAccount":{ "name":"GetMasterAccount", "http":{ @@ -460,7 +539,9 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Provides the details for the GuardDuty administrator account associated with the current GuardDuty member account.

" + "documentation":"

Provides the details for the GuardDuty administrator account associated with the current GuardDuty member account.

", + "deprecated":true, + "deprecatedMessage":"This operation is deprecated, use GetAdministratorAccount instead" }, "GetMemberDetectors":{ "name":"GetMemberDetectors", @@ -492,6 +573,21 @@ ], "documentation":"

Retrieves GuardDuty member accounts (of the current GuardDuty administrator account) specified by the account IDs.

" }, + "GetRemainingFreeTrialDays":{ + "name":"GetRemainingFreeTrialDays", + "http":{ + "method":"POST", + "requestUri":"/detector/{detectorId}/freeTrial/daysRemaining", + "responseCode":200 + }, + "input":{"shape":"GetRemainingFreeTrialDaysRequest"}, + "output":{"shape":"GetRemainingFreeTrialDaysResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Provides the number of days left for each data source used in the free trial period.

" + }, "GetThreatIntelSet":{ "name":"GetThreatIntelSet", "http":{ @@ -520,7 +616,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalServerErrorException"} ], - "documentation":"

Lists Amazon GuardDuty usage statistics over the last 30 days for the specified detector ID. For newly enabled detectors or data sources the cost returned will include only the usage so far under 30 days, this may differ from the cost metrics in the console, which projects usage over 30 days to provide a monthly cost estimate. For more information see Understanding How Usage Costs are Calculated.

" + "documentation":"

Lists Amazon GuardDuty usage statistics over the last 30 days for the specified detector ID. For newly enabled detectors or data sources, the cost returned will include only the usage so far under 30 days. This may differ from the cost metrics in the console, which project usage over 30 days to provide a monthly cost estimate. For more information, see Understanding How Usage Costs are Calculated.

" }, "InviteMembers":{ "name":"InviteMembers", @@ -822,6 +918,21 @@ ], "documentation":"

Updates the IPSet specified by the IPSet ID.

" }, + "UpdateMalwareScanSettings":{ + "name":"UpdateMalwareScanSettings", + "http":{ + "method":"POST", + "requestUri":"/detector/{detectorId}/malware-scan-settings", + "responseCode":200 + }, + "input":{"shape":"UpdateMalwareScanSettingsRequest"}, + "output":{"shape":"UpdateMalwareScanSettingsResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServerErrorException"} + ], + "documentation":"

Updates the malware scan settings.

" + }, "UpdateMemberDetectors":{ "name":"UpdateMemberDetectors", "http":{ @@ -884,6 +995,37 @@ } }, "shapes":{ + "AcceptAdministratorInvitationRequest":{ + "type":"structure", + "required":[ + "DetectorId", + "AdministratorId", + "InvitationId" + ], + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the detector of the GuardDuty member account.

", + "location":"uri", + "locationName":"detectorId" + }, + "AdministratorId":{ + "shape":"String", + "documentation":"

The account ID of the GuardDuty administrator account whose invitation you're accepting.

", + "locationName":"administratorId" + }, + "InvitationId":{ + "shape":"String", + "documentation":"

The value that is used to validate the administrator account to the member account.

", + "locationName":"invitationId" + } + } + }, + "AcceptAdministratorInvitationResponse":{ + "type":"structure", + "members":{ + } + }, "AcceptInvitationRequest":{ "type":"structure", "required":[ @@ -908,12 +1050,16 @@ "documentation":"

The value that is used to validate the administrator account to the member account.

", "locationName":"invitationId" } - } + }, + "deprecated":true, + "deprecatedMessage":"This input is deprecated, use AcceptAdministratorInvitationRequest instead" }, "AcceptInvitationResponse":{ "type":"structure", "members":{ - } + }, + "deprecated":true, + "deprecatedMessage":"This output is deprecated, use AcceptAdministratorInvitationResponse instead" }, "AccessControlList":{ "type":"structure", @@ -983,6 +1129,26 @@ "max":50, "min":1 }, + "AccountFreeTrialInfo":{ + "type":"structure", + "members":{ + "AccountId":{ + "shape":"String", + "documentation":"

The account identifier of the GuardDuty member account.

", + "locationName":"accountId" + }, + "DataSources":{ + "shape":"DataSourcesFreeTrial", + "documentation":"

Describes the data source enabled for the GuardDuty member account.

", + "locationName":"dataSources" + } + }, + "documentation":"

Provides details of the GuardDuty member account that uses a free trial service.

" + }, + "AccountFreeTrialInfos":{ + "type":"list", + "member":{"shape":"AccountFreeTrialInfo"} + }, "AccountId":{ "type":"string", "max":12, @@ -1072,6 +1238,37 @@ "max":300, "min":1 }, + "Administrator":{ + "type":"structure", + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

The ID of the account used as the administrator account.

", + "locationName":"accountId" + }, + "InvitationId":{ + "shape":"String", + "documentation":"

The value that is used to validate the administrator account to the member account.

", + "locationName":"invitationId" + }, + "RelationshipStatus":{ + "shape":"String", + "documentation":"

The status of the relationship between the administrator and member accounts.

", + "locationName":"relationshipStatus" + }, + "InvitedAt":{ + "shape":"String", + "documentation":"

The timestamp when the invitation was sent.

", + "locationName":"invitedAt" + } + }, + "documentation":"

Contains information about the administrator account and invitation.

" + }, + "AffectedResources":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, "ArchiveFindingsRequest":{ "type":"structure", "required":[ @@ -1139,6 +1336,11 @@ "shape":"RemoteAccountDetails", "documentation":"

The details of the Amazon Web Services account that made the API call. This field appears if the call was made from outside your account.

", "locationName":"remoteAccountDetails" + }, + "AffectedResources":{ + "shape":"AffectedResources", + "documentation":"

The details of the Amazon Web Services account that made the API call. This field identifies the resources that were affected by this API call.

", + "locationName":"affectedResources" } }, "documentation":"

Contains information about the API action.

" @@ -1430,6 +1632,11 @@ "shape":"DetectorId", "documentation":"

The unique ID of the created detector.

", "locationName":"detectorId" + }, + "UnprocessedDataSources":{ + "shape":"UnprocessedDataSourcesResult", + "documentation":"

Specifies the data sources that couldn't be enabled when GuardDuty was enabled for the first time.

", + "locationName":"unprocessedDataSources" } } }, @@ -1717,6 +1924,17 @@ "key":{"shape":"String"}, "value":{"shape":"Condition"} }, + "CriterionKey":{ + "type":"string", + "enum":[ + "EC2_INSTANCE_ARN", + "SCAN_ID", + "ACCOUNT_ID", + "GUARDDUTY_FINDING_ID", + "SCAN_START_TIME", + "SCAN_STATUS" + ] + }, "DNSLogsConfigurationResult":{ "type":"structure", "required":["Status"], @@ -1736,7 +1954,8 @@ "CLOUD_TRAIL", "DNS_LOGS", "S3_LOGS", - "KUBERNETES_AUDIT_LOGS" + "KUBERNETES_AUDIT_LOGS", + "EC2_MALWARE_SCAN" ] }, "DataSourceConfigurations":{ @@ -1751,6 +1970,11 @@ "shape":"KubernetesConfiguration", "documentation":"

Describes whether any Kubernetes logs are enabled as data sources.

", "locationName":"kubernetes" + }, + "MalwareProtection":{ + "shape":"MalwareProtectionConfiguration", + "documentation":"

Describes whether Malware Protection is enabled as a data source.

", + "locationName":"malwareProtection" } }, "documentation":"

Contains information about which data sources are enabled.

" @@ -1788,10 +2012,26 @@ "shape":"KubernetesConfigurationResult", "documentation":"

An object that contains information on the status of all Kubernetes data sources.

", "locationName":"kubernetes" + }, + "MalwareProtection":{ + "shape":"MalwareProtectionConfigurationResult", + "documentation":"

Describes the configuration of Malware Protection data sources.

", + "locationName":"malwareProtection" } }, "documentation":"

Contains information on the status of data sources for the detector.

" }, + "DataSourceFreeTrial":{ + "type":"structure", + "members":{ + "FreeTrialDaysRemaining":{ + "shape":"Integer", + "documentation":"

A value that specifies the number of days left to use each enabled data source.

", + "locationName":"freeTrialDaysRemaining" + } + }, + "documentation":"

Contains information about which data sources are enabled for the GuardDuty member account.

" + }, "DataSourceList":{ "type":"list", "member":{"shape":"DataSource"} @@ -1805,6 +2045,42 @@ "max":300, "min":1 }, + "DataSourcesFreeTrial":{ + "type":"structure", + "members":{ + "CloudTrail":{ + "shape":"DataSourceFreeTrial", + "documentation":"

Describes whether any Amazon Web Services CloudTrail management event logs are enabled as data sources.

", + "locationName":"cloudTrail" + }, + "DnsLogs":{ + "shape":"DataSourceFreeTrial", + "documentation":"

Describes whether any DNS logs are enabled as data sources.

", + "locationName":"dnsLogs" + }, + "FlowLogs":{ + "shape":"DataSourceFreeTrial", + "documentation":"

Describes whether any VPC Flow logs are enabled as data sources.

", + "locationName":"flowLogs" + }, + "S3Logs":{ + "shape":"DataSourceFreeTrial", + "documentation":"

Describes whether any S3 data event logs are enabled as data sources.

", + "locationName":"s3Logs" + }, + "Kubernetes":{ + "shape":"KubernetesDataSourceFreeTrial", + "documentation":"

Describes whether any Kubernetes logs are enabled as data sources.

", + "locationName":"kubernetes" + }, + "MalwareProtection":{ + "shape":"MalwareProtectionDataSourceFreeTrial", + "documentation":"

Describes whether Malware Protection is enabled as a data source.

", + "locationName":"malwareProtection" + } + }, + "documentation":"

Contains information about which data sources are enabled for the GuardDuty member account.

" + }, "DeclineInvitationsRequest":{ "type":"structure", "required":["AccountIds"], @@ -2017,6 +2293,54 @@ "members":{ } }, + "DescribeMalwareScansRequest":{ + "type":"structure", + "required":["DetectorId"], + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the detector that the request is associated with.

", + "location":"uri", + "locationName":"detectorId" + }, + "NextToken":{ + "shape":"String", + "documentation":"

You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the list action. For subsequent calls to the action, fill nextToken in the request with the value of NextToken from the previous response to continue listing data.

", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"IntegerValueWithMax", + "documentation":"

You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 50. The maximum value is 50.

", + "locationName":"maxResults" + }, + "FilterCriteria":{ + "shape":"FilterCriteria", + "documentation":"

Represents the criteria to be used in the filter for describing scan entries.

", + "locationName":"filterCriteria" + }, + "SortCriteria":{ + "shape":"SortCriteria", + "documentation":"

Represents the criteria used for sorting scan entries.

", + "locationName":"sortCriteria" + } + } + }, + "DescribeMalwareScansResponse":{ + "type":"structure", + "required":["Scans"], + "members":{ + "Scans":{ + "shape":"Scans", + "documentation":"

Contains information about malware scans.

", + "locationName":"scans" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The pagination parameter to be used on the next list operation to retrieve more items.

", + "locationName":"nextToken" + } + } + }, "DescribeOrganizationConfigurationRequest":{ "type":"structure", "required":["DetectorId"], @@ -2199,7 +2523,7 @@ "members":{ } }, - "DisassociateFromMasterAccountRequest":{ + "DisassociateFromAdministratorAccountRequest":{ "type":"structure", "required":["DetectorId"], "members":{ @@ -2211,11 +2535,32 @@ } } }, - "DisassociateFromMasterAccountResponse":{ + "DisassociateFromAdministratorAccountResponse":{ "type":"structure", "members":{ } }, + "DisassociateFromMasterAccountRequest":{ + "type":"structure", + "required":["DetectorId"], + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the detector of the GuardDuty member account.

", + "location":"uri", + "locationName":"detectorId" + } + }, + "deprecated":true, + "deprecatedMessage":"This input is deprecated, use DisassociateFromAdministratorAccountRequest instead" + }, + "DisassociateFromMasterAccountResponse":{ + "type":"structure", + "members":{ + }, + "deprecated":true, + "deprecatedMessage":"This output is deprecated, use DisassociateFromAdministratorAccountResponse instead" + }, "DisassociateMembersRequest":{ "type":"structure", "required":[ @@ -2254,6 +2599,16 @@ "shape":"String", "documentation":"

The domain information for the API request.

", "locationName":"domain" + }, + "Protocol":{ + "shape":"String", + "documentation":"

The network connection protocol observed in the activity that prompted GuardDuty to generate the finding.

", + "locationName":"protocol" + }, + "Blocked":{ + "shape":"Boolean", + "documentation":"

Indicates whether the targeted port is blocked.

", + "locationName":"blocked" } }, "documentation":"

Contains information about the DNS_REQUEST action described in this finding.

" @@ -2270,6 +2625,183 @@ "documentation":"

Contains information about the domain.

" }, "Double":{"type":"double"}, + "EbsSnapshotPreservation":{ + "type":"string", + "enum":[ + "NO_RETENTION", + "RETENTION_WITH_FINDING" + ] + }, + "EbsVolumeDetails":{ + "type":"structure", + "members":{ + "ScannedVolumeDetails":{ + "shape":"VolumeDetails", + "documentation":"

List of EBS volumes that were scanned.

", + "locationName":"scannedVolumeDetails" + }, + "SkippedVolumeDetails":{ + "shape":"VolumeDetails", + "documentation":"

List of EBS volumes that were skipped from the malware scan.

", + "locationName":"skippedVolumeDetails" + } + }, + "documentation":"

Contains list of scanned and skipped EBS volumes with details.

" + }, + "EbsVolumeScanDetails":{ + "type":"structure", + "members":{ + "ScanId":{ + "shape":"String", + "documentation":"

Unique Id of the malware scan that generated the finding.

", + "locationName":"scanId" + }, + "ScanStartedAt":{ + "shape":"Timestamp", + "documentation":"

Returns the start date and time of the malware scan.

", + "locationName":"scanStartedAt" + }, + "ScanCompletedAt":{ + "shape":"Timestamp", + "documentation":"

Returns the completion date and time of the malware scan.

", + "locationName":"scanCompletedAt" + }, + "TriggerFindingId":{ + "shape":"String", + "documentation":"

GuardDuty finding ID that triggered a malware scan.

", + "locationName":"triggerFindingId" + }, + "Sources":{ + "shape":"Sources", + "documentation":"

Contains list of threat intelligence sources used to detect threats.

", + "locationName":"sources" + }, + "ScanDetections":{ + "shape":"ScanDetections", + "documentation":"

Contains a complete view providing malware scan result details.

", + "locationName":"scanDetections" + } + }, + "documentation":"

Contains details from the malware scan that created a finding.

" + }, + "EbsVolumesResult":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"DataSourceStatus", + "documentation":"

Describes whether scanning EBS volumes is enabled as a data source.

", + "locationName":"status" + }, + "Reason":{ + "shape":"String", + "documentation":"

Specifies the reason why scanning EBS volumes (Malware Protection) was not enabled as a data source.

", + "locationName":"reason" + } + }, + "documentation":"

Describes the configuration of scanning EBS volumes as a data source.

" + }, + "EcsClusterDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"String", + "documentation":"

The name of the ECS Cluster.

", + "locationName":"name" + }, + "Arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) that identifies the cluster.

", + "locationName":"arn" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of the ECS cluster.

", + "locationName":"status" + }, + "ActiveServicesCount":{ + "shape":"Integer", + "documentation":"

The number of services that are running on the cluster in an ACTIVE state.

", + "locationName":"activeServicesCount" + }, + "RegisteredContainerInstancesCount":{ + "shape":"Integer", + "documentation":"

The number of container instances registered into the cluster.

", + "locationName":"registeredContainerInstancesCount" + }, + "RunningTasksCount":{ + "shape":"Integer", + "documentation":"

The number of tasks in the cluster that are in the RUNNING state.

", + "locationName":"runningTasksCount" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

The tags of the ECS Cluster.

", + "locationName":"tags" + }, + "TaskDetails":{ + "shape":"EcsTaskDetails", + "documentation":"

Contains information about the details of the ECS Task.

", + "locationName":"taskDetails" + } + }, + "documentation":"

Contains information about the details of the ECS Cluster.

" + }, + "EcsTaskDetails":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the task.

", + "locationName":"arn" + }, + "DefinitionArn":{ + "shape":"String", + "documentation":"

The ARN of the task definition that creates the task.

", + "locationName":"definitionArn" + }, + "Version":{ + "shape":"String", + "documentation":"

The version counter for the task.

", + "locationName":"version" + }, + "TaskCreatedAt":{ + "shape":"Timestamp", + "documentation":"

The Unix timestamp for the time when the task was created.

", + "locationName":"createdAt" + }, + "StartedAt":{ + "shape":"Timestamp", + "documentation":"

The Unix timestamp for the time when the task started.

", + "locationName":"startedAt" + }, + "StartedBy":{ + "shape":"String", + "documentation":"

Contains the tag specified when a task is started.

", + "locationName":"startedBy" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

The tags of the ECS Task.

", + "locationName":"tags" + }, + "Volumes":{ + "shape":"Volumes", + "documentation":"

The list of data volume definitions for the task.

", + "locationName":"volumes" + }, + "Containers":{ + "shape":"Containers", + "documentation":"

The containers that's associated with the task.

", + "locationName":"containers" + }, + "Group":{ + "shape":"String", + "documentation":"

The name of the task group that's associated with the task.

", + "locationName":"group" + } + }, + "documentation":"

Contains information about the task in an ECS cluster.

" + }, "EksClusterDetails":{ "type":"structure", "members":{ @@ -2353,6 +2885,10 @@ "NOT_USEFUL" ] }, + "FilePaths":{ + "type":"list", + "member":{"shape":"ScanFilePath"} + }, "FilterAction":{ "type":"string", "enum":[ @@ -2362,6 +2898,60 @@ "max":300, "min":1 }, + "FilterCondition":{ + "type":"structure", + "members":{ + "EqualsValue":{ + "shape":"NonEmptyString", + "documentation":"

Represents an equal condition to be applied to a single field when querying for scan entries.

", + "locationName":"equalsValue" + }, + "GreaterThan":{ + "shape":"LongValue", + "documentation":"

Represents a greater than condition to be applied to a single field when querying for scan entries.

", + "locationName":"greaterThan" + }, + "LessThan":{ + "shape":"LongValue", + "documentation":"

Represents a less than condition to be applied to a single field when querying for scan entries.

", + "locationName":"lessThan" + } + }, + "documentation":"

Contains information about the condition.

" + }, + "FilterCriteria":{ + "type":"structure", + "members":{ + "FilterCriterion":{ + "shape":"FilterCriterionList", + "documentation":"

Represents a condition that when matched will be added to the response of the operation.

", + "locationName":"filterCriterion" + } + }, + "documentation":"

Represents the criteria to be used in the filter for describing scan entries.

" + }, + "FilterCriterion":{ + "type":"structure", + "members":{ + "CriterionKey":{ + "shape":"CriterionKey", + "documentation":"

An enum value representing possible scan properties to match with given scan entries.

", + "locationName":"criterionKey" + }, + "FilterCondition":{ + "shape":"FilterCondition", + "documentation":"

Contains information about the condition.

", + "locationName":"filterCondition" + } + }, + "documentation":"

Represents a condition that when matched will be added to the response of the operation. Irrespective of using any filter criteria, an administrator account can view the scan entries for all of its member accounts. However, each member account can view the scan entries only for their own account.

" + }, + "FilterCriterionList":{ + "type":"list", + "member":{"shape":"FilterCriterion"}, + "max":1, + "min":0 + }, "FilterDescription":{ "type":"string", "max":512, @@ -2570,6 +3160,29 @@ }, "documentation":"

Contains information about the location of the remote IP address.

" }, + "GetAdministratorAccountRequest":{ + "type":"structure", + "required":["DetectorId"], + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the detector of the GuardDuty member account.

", + "location":"uri", + "locationName":"detectorId" + } + } + }, + "GetAdministratorAccountResponse":{ + "type":"structure", + "required":["Administrator"], + "members":{ + "Administrator":{ + "shape":"Administrator", + "documentation":"

The administrator account details.

", + "locationName":"administrator" + } + } + }, "GetDetectorRequest":{ "type":"structure", "required":["DetectorId"], @@ -2831,6 +3444,33 @@ } } }, + "GetMalwareScanSettingsRequest":{ + "type":"structure", + "required":["DetectorId"], + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the detector that the scan setting is associated with.

", + "location":"uri", + "locationName":"detectorId" + } + } + }, + "GetMalwareScanSettingsResponse":{ + "type":"structure", + "members":{ + "ScanResourceCriteria":{ + "shape":"ScanResourceCriteria", + "documentation":"

Represents the criteria to be used in the filter for scanning resources.

", + "locationName":"scanResourceCriteria" + }, + "EbsSnapshotPreservation":{ + "shape":"EbsSnapshotPreservation", + "documentation":"

An enum value representing possible snapshot preservation settings.

", + "locationName":"ebsSnapshotPreservation" + } + } + }, "GetMasterAccountRequest":{ "type":"structure", "required":["DetectorId"], @@ -2841,7 +3481,9 @@ "location":"uri", "locationName":"detectorId" } - } + }, + "deprecated":true, + "deprecatedMessage":"This input is deprecated, use GetAdministratorAccountRequest instead" }, "GetMasterAccountResponse":{ "type":"structure", @@ -2852,7 +3494,9 @@ "documentation":"

The administrator account details.

", "locationName":"master" } - } + }, + "deprecated":true, + "deprecatedMessage":"This output is deprecated, use GetAdministratorAccountResponse instead" }, "GetMemberDetectorsRequest":{ "type":"structure", @@ -2932,6 +3576,38 @@ } } }, + "GetRemainingFreeTrialDaysRequest":{ + "type":"structure", + "required":["DetectorId"], + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the detector of the GuardDuty member account.

", + "location":"uri", + "locationName":"detectorId" + }, + "AccountIds":{ + "shape":"AccountIds", + "documentation":"

A list of account identifiers of the GuardDuty member account.

", + "locationName":"accountIds" + } + } + }, + "GetRemainingFreeTrialDaysResponse":{ + "type":"structure", + "members":{ + "Accounts":{ + "shape":"AccountFreeTrialInfos", + "documentation":"

The member accounts which were included in a request and were processed successfully.

", + "locationName":"accounts" + }, + "UnprocessedAccounts":{ + "shape":"UnprocessedAccounts", + "documentation":"

The member account that was included in a request but for which the request could not be processed.

", + "locationName":"unprocessedAccounts" + } + } + }, "GetThreatIntelSetRequest":{ "type":"structure", "required":[ @@ -3053,6 +3729,27 @@ "type":"string", "pattern":"^arn:[A-Za-z_.-]{1,20}:guardduty:[A-Za-z0-9_/.-]{0,63}:\\d+:detector/[A-Za-z0-9_/.-]{32,264}$" }, + "HighestSeverityThreatDetails":{ + "type":"structure", + "members":{ + "Severity":{ + "shape":"String", + "documentation":"

Severity level of the highest severity threat detected.

", + "locationName":"severity" + }, + "ThreatName":{ + "shape":"String", + "documentation":"

Threat name of the highest severity threat detected as part of the malware scan.

", + "locationName":"threatName" + }, + "Count":{ + "shape":"Integer", + "documentation":"

Total number of infected files with the highest severity threat detected.

", + "locationName":"count" + } + }, + "documentation":"

Contains details of the highest severity threat detected during scan and number of infected files.

" + }, "HostPath":{ "type":"structure", "members":{ @@ -3080,6 +3777,10 @@ }, "documentation":"

Contains information about the EC2 instance profile.

" }, + "InstanceArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-us-gov):[a-z]+:[a-z]+(-[0-9]+|-[a-z]+)+:([0-9]{12}):[a-z\\-]+\\/[a-zA-Z0-9]*$" + }, "InstanceDetails":{ "type":"structure", "members":{ @@ -3152,6 +3853,11 @@ "documentation":"

Contains information about the details of an instance.

" }, "Integer":{"type":"integer"}, + "IntegerValueWithMax":{ + "type":"integer", + "max":50, + "min":1 + }, "InternalServerErrorException":{ "type":"structure", "members":{ @@ -3368,6 +4074,17 @@ }, "documentation":"

Describes whether any Kubernetes logs will be enabled as a data source.

" }, + "KubernetesDataSourceFreeTrial":{ + "type":"structure", + "members":{ + "AuditLogs":{ + "shape":"DataSourceFreeTrial", + "documentation":"

Describes whether Kubernetes audit logs are enabled as a data source.

", + "locationName":"auditLogs" + } + }, + "documentation":"

Provides details about the Kubernetes resources when it is enabled as a data source.

" + }, "KubernetesDetails":{ "type":"structure", "members":{ @@ -3663,7 +4380,7 @@ }, "OnlyAssociated":{ "shape":"String", - "documentation":"

Specifies whether to only return associated members or to return all members (including members who haven't been invited yet or have been disassociated).

", + "documentation":"

Specifies whether to only return associated members or to return all members (including members who haven't been invited yet or have been disassociated). Member accounts must have been previously associated with the GuardDuty administrator account using Create Members .

", "location":"querystring", "locationName":"onlyAssociated" } @@ -3851,6 +4568,49 @@ "min":1 }, "Long":{"type":"long"}, + "LongValue":{"type":"long"}, + "MalwareProtectionConfiguration":{ + "type":"structure", + "members":{ + "ScanEc2InstanceWithFindings":{ + "shape":"ScanEc2InstanceWithFindings", + "documentation":"

Describes the configuration of Malware Protection for EC2 instances with findings.

", + "locationName":"scanEc2InstanceWithFindings" + } + }, + "documentation":"

Describes whether Malware Protection will be enabled as a data source.

" + }, + "MalwareProtectionConfigurationResult":{ + "type":"structure", + "members":{ + "ScanEc2InstanceWithFindings":{ + "shape":"ScanEc2InstanceWithFindingsResult", + "documentation":"

Describes the configuration of Malware Protection for EC2 instances with findings.

", + "locationName":"scanEc2InstanceWithFindings" + }, + "ServiceRole":{ + "shape":"String", + "documentation":"

The GuardDuty Malware Protection service role.

", + "locationName":"serviceRole" + } + }, + "documentation":"

An object that contains information on the status of all Malware Protection data sources.

" + }, + "MalwareProtectionDataSourceFreeTrial":{ + "type":"structure", + "members":{ + "ScanEc2InstanceWithFindings":{ + "shape":"DataSourceFreeTrial", + "documentation":"

Describes whether Malware Protection for EC2 instances with findings is enabled as a data source.

", + "locationName":"scanEc2InstanceWithFindings" + } + }, + "documentation":"

Provides details about Malware Protection when it is enabled as a data source.

" + }, + "MapEquals":{ + "type":"list", + "member":{"shape":"ScanConditionPair"} + }, "Master":{ "type":"structure", "members":{ @@ -3926,6 +4686,11 @@ "shape":"String", "documentation":"

The last-updated timestamp of the member.

", "locationName":"updatedAt" + }, + "AdministratorId":{ + "shape":"String", + "documentation":"

The administrator account ID.

", + "locationName":"administratorId" } }, "documentation":"

Contains information about the member account.

" @@ -4072,6 +4837,11 @@ "type":"list", "member":{"shape":"NetworkInterface"} }, + "NonEmptyString":{ + "type":"string", + "max":200, + "min":1 + }, "NotEquals":{ "type":"list", "member":{"shape":"String"} @@ -4121,6 +4891,11 @@ "shape":"OrganizationKubernetesConfiguration", "documentation":"

Describes the configuration of Kubernetes data sources for new members of the organization.

", "locationName":"kubernetes" + }, + "MalwareProtection":{ + "shape":"OrganizationMalwareProtectionConfiguration", + "documentation":"

Describes the configuration of Malware Protection for new members of the organization.

", + "locationName":"malwareProtection" } }, "documentation":"

An object that contains information on which data sources will be configured to be automatically enabled for new members within the organization.

" @@ -4138,10 +4913,37 @@ "shape":"OrganizationKubernetesConfigurationResult", "documentation":"

Describes the configuration of Kubernetes data sources.

", "locationName":"kubernetes" + }, + "MalwareProtection":{ + "shape":"OrganizationMalwareProtectionConfigurationResult", + "documentation":"

Describes the configuration of Malware Protection data source for an organization.

", + "locationName":"malwareProtection" } }, "documentation":"

An object that contains information on which data sources are automatically enabled for new members within the organization.

" }, + "OrganizationEbsVolumes":{ + "type":"structure", + "members":{ + "AutoEnable":{ + "shape":"Boolean", + "documentation":"

Whether scanning EBS volumes should be auto-enabled for new members joining the organization.

", + "locationName":"autoEnable" + } + }, + "documentation":"

Organization-wide EBS volumes scan configuration.

" + }, + "OrganizationEbsVolumesResult":{ + "type":"structure", + "members":{ + "AutoEnable":{ + "shape":"Boolean", + "documentation":"

An object that contains the status of whether scanning EBS volumes should be auto-enabled for new members joining the organization.

", + "locationName":"autoEnable" + } + }, + "documentation":"

An object that contains information on the status of whether EBS volumes scanning will be enabled as a data source for an organization.

" + }, "OrganizationKubernetesAuditLogsConfiguration":{ "type":"structure", "required":["AutoEnable"], @@ -4190,6 +4992,28 @@ }, "documentation":"

The current configuration of all Kubernetes data sources for the organization.

" }, + "OrganizationMalwareProtectionConfiguration":{ + "type":"structure", + "members":{ + "ScanEc2InstanceWithFindings":{ + "shape":"OrganizationScanEc2InstanceWithFindings", + "documentation":"

Whether Malware Protection for EC2 instances with findings should be auto-enabled for new members joining the organization.

", + "locationName":"scanEc2InstanceWithFindings" + } + }, + "documentation":"

Organization-wide Malware Protection configurations.

" + }, + "OrganizationMalwareProtectionConfigurationResult":{ + "type":"structure", + "members":{ + "ScanEc2InstanceWithFindings":{ + "shape":"OrganizationScanEc2InstanceWithFindingsResult", + "documentation":"

Describes the configuration for scanning EC2 instances with findings for an organization.

", + "locationName":"scanEc2InstanceWithFindings" + } + }, + "documentation":"

An object that contains information on the status of all Malware Protection data source for an organization.

" + }, "OrganizationS3LogsConfiguration":{ "type":"structure", "required":["AutoEnable"], @@ -4214,6 +5038,28 @@ }, "documentation":"

The current configuration of S3 data event logs as a data source for the organization.

" }, + "OrganizationScanEc2InstanceWithFindings":{ + "type":"structure", + "members":{ + "EbsVolumes":{ + "shape":"OrganizationEbsVolumes", + "documentation":"

Whether scanning EBS volumes should be auto-enabled for new members joining the organization.

", + "locationName":"ebsVolumes" + } + }, + "documentation":"

Organization-wide EC2 instances with findings scan configuration.

" + }, + "OrganizationScanEc2InstanceWithFindingsResult":{ + "type":"structure", + "members":{ + "EbsVolumes":{ + "shape":"OrganizationEbsVolumesResult", + "documentation":"

Describes the configuration for scanning EBS volumes for an organization.

", + "locationName":"ebsVolumes" + } + }, + "documentation":"

An object that contains information on the status of scanning EC2 instances with findings for an organization.

" + }, "Owner":{ "type":"structure", "members":{ @@ -4282,6 +5128,10 @@ "type":"list", "member":{"shape":"PortProbeDetail"} }, + "PositiveLong":{ + "type":"long", + "min":0 + }, "PrivateIpAddressDetails":{ "type":"structure", "members":{ @@ -4308,12 +5158,12 @@ "Code":{ "shape":"String", "documentation":"

The product code information.

", - "locationName":"code" + "locationName":"productCodeId" }, "ProductType":{ "shape":"String", "documentation":"

The product code type.

", - "locationName":"productType" + "locationName":"productCodeType" } }, "documentation":"

Contains information about the product code for the EC2 instance.

" @@ -4444,10 +5294,35 @@ "shape":"String", "documentation":"

The type of Amazon Web Services resource.

", "locationName":"resourceType" + }, + "EbsVolumeDetails":{ + "shape":"EbsVolumeDetails", + "documentation":"

Contains list of scanned and skipped EBS volumes with details.

", + "locationName":"ebsVolumeDetails" + }, + "EcsClusterDetails":{ + "shape":"EcsClusterDetails", + "documentation":"

Contains information about the details of the ECS Cluster.

", + "locationName":"ecsClusterDetails" + }, + "ContainerDetails":{ + "shape":"Container", + "locationName":"containerDetails" } }, "documentation":"

Contains information about the Amazon Web Services resource associated with the activity that prompted GuardDuty to generate a finding.

" }, + "ResourceDetails":{ + "type":"structure", + "members":{ + "InstanceArn":{ + "shape":"InstanceArn", + "documentation":"

InstanceArn that was scanned in the scan entry.

", + "locationName":"instanceArn" + } + }, + "documentation":"

Represents the resources that were scanned in the scan entry.

" + }, "ResourceList":{ "type":"list", "member":{"shape":"String"} @@ -4526,6 +5401,293 @@ }, "documentation":"

Describes whether S3 data event logs will be enabled as a data source.

" }, + "Scan":{ + "type":"structure", + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the detector that the request is associated with.

", + "locationName":"detectorId" + }, + "AdminDetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique detector ID of the administrator account that the request is associated with. Note that this value will be the same as the one used for DetectorId if the account is an administrator.

", + "locationName":"adminDetectorId" + }, + "ScanId":{ + "shape":"NonEmptyString", + "documentation":"

The unique scan ID associated with a scan entry.

", + "locationName":"scanId" + }, + "ScanStatus":{ + "shape":"ScanStatus", + "documentation":"

An enum value representing possible scan statuses.

", + "locationName":"scanStatus" + }, + "FailureReason":{ + "shape":"NonEmptyString", + "documentation":"

Represents the reason for FAILED scan status.

", + "locationName":"failureReason" + }, + "ScanStartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the scan was triggered.

", + "locationName":"scanStartTime" + }, + "ScanEndTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the scan was finished.

", + "locationName":"scanEndTime" + }, + "TriggerDetails":{ + "shape":"TriggerDetails", + "documentation":"

Represents the reason the scan was triggered.

", + "locationName":"triggerDetails" + }, + "ResourceDetails":{ + "shape":"ResourceDetails", + "documentation":"

Represents the resources that were scanned in the scan entry.

", + "locationName":"resourceDetails" + }, + "ScanResultDetails":{ + "shape":"ScanResultDetails", + "documentation":"

Represents the result of the scan.

", + "locationName":"scanResultDetails" + }, + "AccountId":{ + "shape":"AccountId", + "documentation":"

The ID for the account that belongs to the scan.

", + "locationName":"accountId" + }, + "TotalBytes":{ + "shape":"PositiveLong", + "documentation":"

Represents total bytes that were scanned.

", + "locationName":"totalBytes" + }, + "FileCount":{ + "shape":"PositiveLong", + "documentation":"

Represents the number of files that were scanned.

", + "locationName":"fileCount" + }, + "AttachedVolumes":{ + "shape":"VolumeDetails", + "documentation":"

List of volumes that were attached to the original instance to be scanned.

", + "locationName":"attachedVolumes" + } + }, + "documentation":"

Contains information about a malware scan.

" + }, + "ScanCondition":{ + "type":"structure", + "required":["MapEquals"], + "members":{ + "MapEquals":{ + "shape":"MapEquals", + "documentation":"

Represents an mapEqual condition to be applied to a single field when triggering for malware scan.

", + "locationName":"mapEquals" + } + }, + "documentation":"

Contains information about the condition.

" + }, + "ScanConditionPair":{ + "type":"structure", + "required":["Key"], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

Represents key in the map condition.

", + "locationName":"key" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

Represents optional value in the map condition. If not specified, only key will be matched.

", + "locationName":"value" + } + }, + "documentation":"

Represents key, value pair to be matched against given resource property.

" + }, + "ScanCriterion":{ + "type":"map", + "key":{"shape":"ScanCriterionKey"}, + "value":{"shape":"ScanCondition"}, + "documentation":"

Represents a map of resource properties that match specified conditions and values when triggering malware scans.

" + }, + "ScanCriterionKey":{ + "type":"string", + "documentation":"

An enum value representing possible resource properties to match with given scan condition.

", + "enum":["EC2_INSTANCE_TAG"] + }, + "ScanDetections":{ + "type":"structure", + "members":{ + "ScannedItemCount":{ + "shape":"ScannedItemCount", + "documentation":"

Total number of scanned files.

", + "locationName":"scannedItemCount" + }, + "ThreatsDetectedItemCount":{ + "shape":"ThreatsDetectedItemCount", + "documentation":"

Total number of infected files.

", + "locationName":"threatsDetectedItemCount" + }, + "HighestSeverityThreatDetails":{ + "shape":"HighestSeverityThreatDetails", + "documentation":"

Details of the highest severity threat detected during malware scan and number of infected files.

", + "locationName":"highestSeverityThreatDetails" + }, + "ThreatDetectedByName":{ + "shape":"ThreatDetectedByName", + "documentation":"

Contains details about identified threats organized by threat name.

", + "locationName":"threatDetectedByName" + } + }, + "documentation":"

Contains a complete view providing malware scan result details.

" + }, + "ScanEc2InstanceWithFindings":{ + "type":"structure", + "members":{ + "EbsVolumes":{ + "shape":"Boolean", + "documentation":"

Describes the configuration for scanning EBS volumes as data source.

", + "locationName":"ebsVolumes" + } + }, + "documentation":"

Describes whether Malware Protection for EC2 instances with findings will be enabled as a data source.

" + }, + "ScanEc2InstanceWithFindingsResult":{ + "type":"structure", + "members":{ + "EbsVolumes":{ + "shape":"EbsVolumesResult", + "documentation":"

Describes the configuration of scanning EBS volumes as a data source.

", + "locationName":"ebsVolumes" + } + }, + "documentation":"

An object that contains information on the status of whether Malware Protection for EC2 instances with findings will be enabled as a data source.

" + }, + "ScanFilePath":{ + "type":"structure", + "members":{ + "FilePath":{ + "shape":"String", + "documentation":"

The file path of the infected file.

", + "locationName":"filePath" + }, + "VolumeArn":{ + "shape":"String", + "documentation":"

EBS volume Arn details of the infected file.

", + "locationName":"volumeArn" + }, + "Hash":{ + "shape":"String", + "documentation":"

The hash value of the infected file.

", + "locationName":"hash" + }, + "FileName":{ + "shape":"String", + "documentation":"

File name of the infected file.

", + "locationName":"fileName" + } + }, + "documentation":"

Contains details of infected file including name, file path and hash.

" + }, + "ScanResourceCriteria":{ + "type":"structure", + "members":{ + "Include":{ + "shape":"ScanCriterion", + "documentation":"

Represents condition that when matched will allow a malware scan for a certain resource.

", + "locationName":"include" + }, + "Exclude":{ + "shape":"ScanCriterion", + "documentation":"

Represents condition that when matched will prevent a malware scan for a certain resource.

", + "locationName":"exclude" + } + }, + "documentation":"

Contains information about criteria used to filter resources before triggering malware scan.

" + }, + "ScanResult":{ + "type":"string", + "enum":[ + "CLEAN", + "INFECTED" + ] + }, + "ScanResultDetails":{ + "type":"structure", + "members":{ + "ScanResult":{ + "shape":"ScanResult", + "documentation":"

An enum value representing possible scan results.

", + "locationName":"scanResult" + } + }, + "documentation":"

Represents the result of the scan.

" + }, + "ScanStatus":{ + "type":"string", + "enum":[ + "RUNNING", + "COMPLETED", + "FAILED" + ] + }, + "ScanThreatName":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"String", + "documentation":"

The name of the identified threat.

", + "locationName":"name" + }, + "Severity":{ + "shape":"String", + "documentation":"

Severity of threat identified as part of the malware scan.

", + "locationName":"severity" + }, + "ItemCount":{ + "shape":"Integer", + "documentation":"

Total number of files infected with given threat.

", + "locationName":"itemCount" + }, + "FilePaths":{ + "shape":"FilePaths", + "documentation":"

List of infected files in EBS volume with details.

", + "locationName":"filePaths" + } + }, + "documentation":"

Contains files infected with the given threat providing details of malware name and severity.

" + }, + "ScanThreatNames":{ + "type":"list", + "member":{"shape":"ScanThreatName"} + }, + "ScannedItemCount":{ + "type":"structure", + "members":{ + "TotalGb":{ + "shape":"Integer", + "documentation":"

Total GB of files scanned for malware.

", + "locationName":"totalGb" + }, + "Files":{ + "shape":"Integer", + "documentation":"

Number of files scanned.

", + "locationName":"files" + }, + "Volumes":{ + "shape":"Integer", + "documentation":"

Total number of scanned volumes.

", + "locationName":"volumes" + } + }, + "documentation":"

Total number of scanned files.

" + }, + "Scans":{ + "type":"list", + "member":{"shape":"Scan"} + }, "SecurityContext":{ "type":"structure", "members":{ @@ -4609,10 +5771,41 @@ "shape":"String", "documentation":"

Feedback that was submitted about the finding.

", "locationName":"userFeedback" + }, + "AdditionalInfo":{ + "shape":"ServiceAdditionalInfo", + "documentation":"

Contains additional information about the generated finding.

", + "locationName":"additionalInfo" + }, + "FeatureName":{ + "shape":"String", + "documentation":"

The name of the feature that generated a finding.

", + "locationName":"featureName" + }, + "EbsVolumeScanDetails":{ + "shape":"EbsVolumeScanDetails", + "documentation":"

Returns details from the malware scan that created a finding.

", + "locationName":"ebsVolumeScanDetails" } }, "documentation":"

Contains additional information about the generated finding.

" }, + "ServiceAdditionalInfo":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"String", + "documentation":"

This field specifies the value of the additional information.

", + "locationName":"value" + }, + "Type":{ + "shape":"String", + "documentation":"

Describes the type of the additional information.

", + "locationName":"type" + } + }, + "documentation":"

Additional information about the generated finding.

" + }, "SortCriteria":{ "type":"structure", "members":{ @@ -4633,6 +5826,10 @@ "type":"list", "member":{"shape":"String"} }, + "Sources":{ + "type":"list", + "member":{"shape":"String"} + }, "StartMonitoringMembersRequest":{ "type":"structure", "required":[ @@ -4764,6 +5961,32 @@ "type":"list", "member":{"shape":"Tag"} }, + "ThreatDetectedByName":{ + "type":"structure", + "members":{ + "ItemCount":{ + "shape":"Integer", + "documentation":"

Total number of infected files identified.

", + "locationName":"itemCount" + }, + "UniqueThreatNameCount":{ + "shape":"Integer", + "documentation":"

Total number of unique threats by name identified, as part of the malware scan.

", + "locationName":"uniqueThreatNameCount" + }, + "Shortened":{ + "shape":"Boolean", + "documentation":"

Flag to determine if the finding contains every single infected file-path and/or every threat.

", + "locationName":"shortened" + }, + "ThreatNames":{ + "shape":"ScanThreatNames", + "documentation":"

List of identified threats with details, organized by threat name.

", + "locationName":"threatNames" + } + }, + "documentation":"

Contains details about identified threats organized by threat name.

" + }, "ThreatIntelSetFormat":{ "type":"string", "enum":[ @@ -4821,6 +6044,17 @@ "type":"list", "member":{"shape":"String"} }, + "ThreatsDetectedItemCount":{ + "type":"structure", + "members":{ + "Files":{ + "shape":"Integer", + "documentation":"

Total number of infected files.

", + "locationName":"files" + } + }, + "documentation":"

Contains total number of infected files.

" + }, "Timestamp":{"type":"timestamp"}, "Total":{ "type":"structure", @@ -4838,6 +6072,22 @@ }, "documentation":"

Contains the total usage with the corresponding currency unit for that value.

" }, + "TriggerDetails":{ + "type":"structure", + "members":{ + "GuardDutyFindingId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the GuardDuty finding that triggered the BirdDog scan.

", + "locationName":"guardDutyFindingId" + }, + "Description":{ + "shape":"NonEmptyString", + "documentation":"

The description of the scan trigger.

", + "locationName":"description" + } + }, + "documentation":"

Represents the reason the scan was triggered.

" + }, "UnarchiveFindingsRequest":{ "type":"structure", "required":[ @@ -4889,6 +6139,16 @@ "max":50, "min":0 }, + "UnprocessedDataSourcesResult":{ + "type":"structure", + "members":{ + "MalwareProtection":{ + "shape":"MalwareProtectionConfigurationResult", + "locationName":"malwareProtection" + } + }, + "documentation":"

Specifies the names of the data sources that couldn't be enabled.

" + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -5076,6 +6336,33 @@ "members":{ } }, + "UpdateMalwareScanSettingsRequest":{ + "type":"structure", + "required":["DetectorId"], + "members":{ + "DetectorId":{ + "shape":"DetectorId", + "documentation":"

The unique ID of the detector that specifies the GuardDuty service where you want to update scan settings.

", + "location":"uri", + "locationName":"detectorId" + }, + "ScanResourceCriteria":{ + "shape":"ScanResourceCriteria", + "documentation":"

Represents the criteria to be used in the filter for selecting resources to scan.

", + "locationName":"scanResourceCriteria" + }, + "EbsSnapshotPreservation":{ + "shape":"EbsSnapshotPreservation", + "documentation":"

An enum value representing possible snapshot preservation settings.

", + "locationName":"ebsSnapshotPreservation" + } + } + }, + "UpdateMalwareScanSettingsResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateMemberDetectorsRequest":{ "type":"structure", "required":[ @@ -5347,6 +6634,51 @@ }, "documentation":"

Volume used by the Kubernetes workload.

" }, + "VolumeDetail":{ + "type":"structure", + "members":{ + "VolumeArn":{ + "shape":"String", + "documentation":"

EBS volume Arn information.

", + "locationName":"volumeArn" + }, + "VolumeType":{ + "shape":"String", + "documentation":"

The EBS volume type.

", + "locationName":"volumeType" + }, + "DeviceName":{ + "shape":"String", + "documentation":"

The device name for the EBS volume.

", + "locationName":"deviceName" + }, + "VolumeSizeInGB":{ + "shape":"Integer", + "documentation":"

EBS volume size in GB.

", + "locationName":"volumeSizeInGB" + }, + "EncryptionType":{ + "shape":"String", + "documentation":"

EBS volume encryption type.

", + "locationName":"encryptionType" + }, + "SnapshotArn":{ + "shape":"String", + "documentation":"

Snapshot Arn of the EBS volume.

", + "locationName":"snapshotArn" + }, + "KmsKeyArn":{ + "shape":"String", + "documentation":"

KMS key Arn used to encrypt the EBS volume.

", + "locationName":"kmsKeyArn" + } + }, + "documentation":"

Contains EBS volume details.

" + }, + "VolumeDetails":{ + "type":"list", + "member":{"shape":"VolumeDetail"} + }, "VolumeMount":{ "type":"structure", "members":{ @@ -5372,5 +6704,5 @@ "member":{"shape":"Volume"} } }, - "documentation":"

Amazon GuardDuty is a continuous security monitoring service that analyzes and processes the following data sources: VPC Flow Logs, Amazon Web Services CloudTrail event logs, and DNS logs. It uses threat intelligence feeds (such as lists of malicious IPs and domains) and machine learning to identify unexpected, potentially unauthorized, and malicious activity within your Amazon Web Services environment. This can include issues like escalations of privileges, uses of exposed credentials, or communication with malicious IPs, URLs, or domains. For example, GuardDuty can detect compromised EC2 instances that serve malware or mine bitcoin.

GuardDuty also monitors Amazon Web Services account access behavior for signs of compromise. Some examples of this are unauthorized infrastructure deployments such as EC2 instances deployed in a Region that has never been used, or unusual API calls like a password policy change to reduce password strength.

GuardDuty informs you of the status of your Amazon Web Services environment by producing security findings that you can view in the GuardDuty console or through Amazon CloudWatch events. For more information, see the Amazon GuardDuty User Guide .

" + "documentation":"

Amazon GuardDuty is a continuous security monitoring service that analyzes and processes the following data sources: VPC flow logs, Amazon Web Services CloudTrail management event logs, CloudTrail S3 data event logs, EKS audit logs, and DNS logs. It uses threat intelligence feeds (such as lists of malicious IPs and domains) and machine learning to identify unexpected, potentially unauthorized, and malicious activity within your Amazon Web Services environment. This can include issues like escalations of privileges, uses of exposed credentials, or communication with malicious IPs, URLs, or domains. For example, GuardDuty can detect compromised EC2 instances that serve malware or mine bitcoin.

GuardDuty also monitors Amazon Web Services account access behavior for signs of compromise. Some examples of this are unauthorized infrastructure deployments such as EC2 instances deployed in a Region that has never been used, or unusual API calls like a password policy change to reduce password strength.

GuardDuty informs you of the status of your Amazon Web Services environment by producing security findings that you can view in the GuardDuty console or through Amazon CloudWatch events. For more information, see the Amazon GuardDuty User Guide .

" } diff --git a/botocore/data/health/2016-08-04/endpoint-rule-set-1.json b/botocore/data/health/2016-08-04/endpoint-rule-set-1.json new file mode 100644 index 00000000..86fb2b4a --- /dev/null +++ b/botocore/data/health/2016-08-04/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://health-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://health-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://health.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://global.health.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://health-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://health-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://health.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://global.health.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://health-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://health-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://health.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://global.health.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://global.health.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "cn-northwest-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://health.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/healthlake/2017-07-01/endpoint-rule-set-1.json b/botocore/data/healthlake/2017-07-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..d21bd84e --- /dev/null +++ b/botocore/data/healthlake/2017-07-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://healthlake-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://healthlake-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://healthlake.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://healthlake.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/healthlake/2017-07-01/examples-1.json b/botocore/data/healthlake/2017-07-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/healthlake/2017-07-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/honeycode/2020-03-01/endpoint-rule-set-1.json b/botocore/data/honeycode/2020-03-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..ba96d3cb --- /dev/null +++ b/botocore/data/honeycode/2020-03-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://honeycode-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://honeycode-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://honeycode.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://honeycode.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/honeycode/2020-03-01/examples-1.json b/botocore/data/honeycode/2020-03-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/honeycode/2020-03-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iam/2010-05-08/endpoint-rule-set-1.json b/botocore/data/iam/2010-05-08/endpoint-rule-set-1.json new file mode 100644 index 00000000..0695c633 --- /dev/null +++ b/botocore/data/iam/2010-05-08/endpoint-rule-set-1.json @@ -0,0 +1,1491 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "iam" + ] + } + ], + "endpoint": { + "url": "https://iam-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://iam-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "iam-govcloud" + ] + } + ], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iam.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://iam.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://iam.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-north-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://iam.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-iso-global" + ] + } + ], + "endpoint": { + "url": "https://iam.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-iso-b-global" + ] + } + ], + "endpoint": { + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1", + "signingName": "iam" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://iam.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iam/2010-05-08/examples-1.json b/botocore/data/iam/2010-05-08/examples-1.json index f23d8ebf..cd3a94aa 100644 --- a/botocore/data/iam/2010-05-08/examples-1.json +++ b/botocore/data/iam/2010-05-08/examples-1.json @@ -267,7 +267,7 @@ "CreateRole": [ { "input": { - "AssumeRolePolicyDocument": "", + "AssumeRolePolicyDocument": "", "Path": "/", "RoleName": "Test-Role" }, @@ -287,7 +287,7 @@ "output": { } }, - "description": "The following command creates a role named Test-Role and attaches a trust policy to it that is provided as a URL-encoded JSON string.", + "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" } @@ -511,6 +511,44 @@ "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": { @@ -549,6 +587,7 @@ "AttachedPoliciesPerGroupQuota": 10, "AttachedPoliciesPerRoleQuota": 10, "AttachedPoliciesPerUserQuota": 10, + "GlobalEndpointTokenVersion": 2, "GroupPolicySizeQuota": 5120, "Groups": 15, "GroupsPerUserQuota": 10, @@ -637,6 +676,53 @@ "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": { @@ -647,8 +733,13 @@ "Arn": "arn:aws:iam::123456789012:role/Test-Role", "AssumeRolePolicyDocument": "", "CreateDate": "2013-04-18T05:01:58Z", + "MaxSessionDuration": 3600, "Path": "/", - "RoleId": "AIDIODR4TAW7CSEXAMPLE", + "RoleId": "AROADBQP57FF2AEXAMPLE", + "RoleLastUsed": { + "LastUsedDate": "2019-11-18T05:01:58Z", + "Region": "us-east-1" + }, "RoleName": "Test-Role" } }, @@ -663,6 +754,86 @@ "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": { @@ -836,6 +1007,86 @@ "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": { @@ -863,6 +1114,35 @@ "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": { @@ -1011,6 +1291,112 @@ "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": { diff --git a/botocore/data/iam/2010-05-08/service-2.json b/botocore/data/iam/2010-05-08/service-2.json index 0732a4a5..567846ab 100644 --- a/botocore/data/iam/2010-05-08/service-2.json +++ b/botocore/data/iam/2010-05-08/service-2.json @@ -508,7 +508,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Deletes the password for the specified IAM user, which terminates the user's ability to access Amazon Web Services services through the Amazon Web Services Management Console.

You can use the CLI, the Amazon Web Services API, or the Users page in the IAM console to delete a password for any IAM user. You can use ChangePassword to update, but not delete, your own password in the My Security Credentials page in the Amazon Web Services Management Console.

Deleting a user's password does not prevent a user from accessing Amazon Web Services through the command line interface or the API. To prevent all user access, you must also either make any access keys inactive or delete them. For more information about making keys inactive or deleting them, see UpdateAccessKey and DeleteAccessKey.

" + "documentation":"

Deletes the password for the specified IAM user, For more information, see Managing passwords for IAM users.

You can use the CLI, the Amazon Web Services API, or the Users page in the IAM console to delete a password for any IAM user. You can use ChangePassword to update, but not delete, your own password in the My Security Credentials page in the Amazon Web Services Management Console.

Deleting a user's password does not prevent a user from accessing Amazon Web Services through the command line interface or the API. To prevent all user access, you must also either make any access keys inactive or delete them. For more information about making keys inactive or deleting them, see UpdateAccessKey and DeleteAccessKey.

" }, "DeleteOpenIDConnectProvider":{ "name":"DeleteOpenIDConnectProvider", @@ -1297,7 +1297,7 @@ {"shape":"NoSuchEntityException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Returns information about the access key IDs associated with the specified IAM user. If there is none, the operation returns an empty list.

Although each user is limited to a small number of keys, you can still paginate the results using the MaxItems and Marker parameters.

If the UserName field is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root user credentials even if the Amazon Web Services account has no associated users.

To ensure the security of your Amazon Web Services account, the secret access key is accessible only during key and user creation.

" + "documentation":"

Returns information about the access key IDs associated with the specified IAM user. If there is none, the operation returns an empty list.

Although each user is limited to a small number of keys, you can still paginate the results using the MaxItems and Marker parameters.

If the UserName is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. If a temporary access key is used, then UserName is required. If a long-term key is assigned to the user, then UserName is not required. This operation works for access keys under the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root user credentials even if the Amazon Web Services account has no associated users.

To ensure the security of your Amazon Web Services account, the secret access key is accessible only during key and user creation.

" }, "ListAccountAliases":{ "name":"ListAccountAliases", @@ -2326,7 +2326,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceFailureException"} ], - "documentation":"

Changes the status of the specified access key from Active to Inactive, or vice versa. This operation can be used to disable a user's key as part of a key rotation workflow.

If the UserName is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root user credentials even if the Amazon Web Services account has no associated users.

For information about rotating keys, see Managing keys and certificates in the IAM User Guide.

" + "documentation":"

Changes the status of the specified access key from Active to Inactive, or vice versa. This operation can be used to disable a user's key as part of a key rotation workflow.

If the UserName is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. If a temporary access key is used, then UserName is required. If a long-term key is assigned to the user, then UserName is not required. This operation works for access keys under the Amazon Web Services account. Consequently, you can use this operation to manage Amazon Web Services account root user credentials even if the Amazon Web Services account has no associated users.

For information about rotating keys, see Managing keys and certificates in the IAM User Guide.

" }, "UpdateAccountPasswordPolicy":{ "name":"UpdateAccountPasswordPolicy", @@ -2619,19 +2619,19 @@ }, "Region":{ "shape":"stringType", - "documentation":"

The Region where the last service access attempt occurred.

This field is null if no principals in the reported Organizations entity attempted to access the service within the reporting period.

" + "documentation":"

The Region where the last service access attempt occurred.

This field is null if no principals in the reported Organizations entity attempted to access the service within the tracking period.

" }, "EntityPath":{ "shape":"organizationsEntityPathType", - "documentation":"

The path of the Organizations entity (root, organizational unit, or account) from which an authenticated principal last attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no principals (IAM users, IAM roles, or root users) in the reported Organizations entity attempted to access the service within the reporting period.

" + "documentation":"

The path of the Organizations entity (root, organizational unit, or account) from which an authenticated principal last attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no principals (IAM users, IAM roles, or root users) in the reported Organizations entity attempted to access the service within the tracking period.

" }, "LastAuthenticatedTime":{ "shape":"dateType", - "documentation":"

The date and time, in ISO 8601 date-time format, when an authenticated principal most recently attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no principals in the reported Organizations entity attempted to access the service within the reporting period.

" + "documentation":"

The date and time, in ISO 8601 date-time format, when an authenticated principal most recently attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no principals in the reported Organizations entity attempted to access the service within the tracking period.

" }, "TotalAuthenticatedEntities":{ "shape":"integerType", - "documentation":"

The number of accounts with authenticated principals (root users, IAM users, and IAM roles) that attempted to access the service in the reporting period.

" + "documentation":"

The number of accounts with authenticated principals (root users, IAM users, and IAM roles) that attempted to access the service in the tracking period.

" } }, "documentation":"

An object that contains details about when a principal in the reported Organizations entity last attempted to access an Amazon Web Services service. A principal can be an IAM user, an IAM role, or the Amazon Web Services account root user within the reported Organizations entity.

This data type is a response element in the GetOrganizationsAccessReport operation.

" @@ -3196,7 +3196,7 @@ }, "MaxSessionDuration":{ "shape":"roleMaxSessionDurationType", - "documentation":"

The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours.

Anyone who assumes the role from the or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles in the IAM User Guide.

" + "documentation":"

The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default value of one hour is applied. This setting can have a value from 1 hour to 12 hours.

Anyone who assumes the role from the CLI or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles in the IAM User Guide.

" }, "PermissionsBoundary":{ "shape":"arnType", @@ -3869,7 +3869,7 @@ }, "LastAuthenticated":{ "shape":"dateType", - "documentation":"

The date and time, in ISO 8601 date-time format, when the authenticated entity last attempted to access Amazon Web Services. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the reporting period.

" + "documentation":"

The date and time, in ISO 8601 date-time format, when the authenticated entity last attempted to access Amazon Web Services. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the tracking period.

" } }, "documentation":"

An object that contains details about when the IAM entities (users or roles) were last used in an attempt to access the specified Amazon Web Services service.

This data type is a response element in the GetServiceLastAccessedDetailsWithEntities operation.

" @@ -7356,7 +7356,7 @@ }, "LastAuthenticated":{ "shape":"dateType", - "documentation":"

The date and time, in ISO 8601 date-time format, when an authenticated entity most recently attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the reporting period.

" + "documentation":"

The date and time, in ISO 8601 date-time format, when an authenticated entity most recently attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the tracking period.

" }, "ServiceNamespace":{ "shape":"serviceNamespaceType", @@ -7364,19 +7364,19 @@ }, "LastAuthenticatedEntity":{ "shape":"arnType", - "documentation":"

The ARN of the authenticated entity (user or role) that last attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the reporting period.

" + "documentation":"

The ARN of the authenticated entity (user or role) that last attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the tracking period.

" }, "LastAuthenticatedRegion":{ "shape":"stringType", - "documentation":"

The Region from which the authenticated entity (user or role) last attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the reporting period.

" + "documentation":"

The Region from which the authenticated entity (user or role) last attempted to access the service. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the tracking period.

" }, "TotalAuthenticatedEntities":{ "shape":"integerType", - "documentation":"

The total number of authenticated principals (root user, IAM users, or IAM roles) that have attempted to access the service.

This field is null if no principals attempted to access the service within the reporting period.

" + "documentation":"

The total number of authenticated principals (root user, IAM users, or IAM roles) that have attempted to access the service.

This field is null if no principals attempted to access the service within the tracking period.

" }, "TrackedActionsLastAccessed":{ "shape":"TrackedActionsLastAccessed", - "documentation":"

An object that contains details about the most recent attempt to access a tracked action within the service.

This field is null if there no tracked actions or if the principal did not use the tracked actions within the reporting period. This field is also null if the report was generated at the service level and not the action level. For more information, see the Granularity field in GenerateServiceLastAccessedDetails.

" + "documentation":"

An object that contains details about the most recent attempt to access a tracked action within the service.

This field is null if there no tracked actions or if the principal did not use the tracked actions within the tracking period. This field is also null if the report was generated at the service level and not the action level. For more information, see the Granularity field in GenerateServiceLastAccessedDetails.

" } }, "documentation":"

Contains details about the most recent attempt to access the service.

This data type is used as a response element in the GetServiceLastAccessedDetails operation.

" @@ -7583,7 +7583,7 @@ }, "ResourceHandlingOption":{ "shape":"ResourceHandlingOptionType", - "documentation":"

Specifies the type of simulation to run. Different API operations that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation.

Each of the EC2 scenarios requires that you specify instance, image, and security-group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network-interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide.

  • EC2-Classic-InstanceStore

    instance, image, security-group

  • EC2-Classic-EBS

    instance, image, security-group, volume

  • EC2-VPC-InstanceStore

    instance, image, security-group, network-interface

  • EC2-VPC-InstanceStore-Subnet

    instance, image, security-group, network-interface, subnet

  • EC2-VPC-EBS

    instance, image, security-group, network-interface, volume

  • EC2-VPC-EBS-Subnet

    instance, image, security-group, network-interface, subnet, volume

" + "documentation":"

Specifies the type of simulation to run. Different API operations that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation.

Each of the EC2 scenarios requires that you specify instance, image, and security group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide.

  • EC2-VPC-InstanceStore

    instance, image, security group, network interface

  • EC2-VPC-InstanceStore-Subnet

    instance, image, security group, network interface, subnet

  • EC2-VPC-EBS

    instance, image, security group, network interface, volume

  • EC2-VPC-EBS-Subnet

    instance, image, security group, network interface, subnet, volume

" }, "MaxItems":{ "shape":"maxItemsType", @@ -7658,7 +7658,7 @@ }, "ResourceHandlingOption":{ "shape":"ResourceHandlingOptionType", - "documentation":"

Specifies the type of simulation to run. Different API operations that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation.

Each of the EC2 scenarios requires that you specify instance, image, and security group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide.

  • EC2-Classic-InstanceStore

    instance, image, security group

  • EC2-Classic-EBS

    instance, image, security group, volume

  • EC2-VPC-InstanceStore

    instance, image, security group, network interface

  • EC2-VPC-InstanceStore-Subnet

    instance, image, security group, network interface, subnet

  • EC2-VPC-EBS

    instance, image, security group, network interface, volume

  • EC2-VPC-EBS-Subnet

    instance, image, security group, network interface, subnet, volume

" + "documentation":"

Specifies the type of simulation to run. Different API operations that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation.

Each of the EC2 scenarios requires that you specify instance, image, and security group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see Supported platforms in the Amazon EC2 User Guide.

  • EC2-VPC-InstanceStore

    instance, image, security group, network interface

  • EC2-VPC-InstanceStore-Subnet

    instance, image, security group, network interface, subnet

  • EC2-VPC-EBS

    instance, image, security group, network interface, volume

  • EC2-VPC-EBS-Subnet

    instance, image, security group, network interface, subnet, volume

" }, "MaxItems":{ "shape":"maxItemsType", @@ -7864,11 +7864,11 @@ "LastAccessedEntity":{"shape":"arnType"}, "LastAccessedTime":{ "shape":"dateType", - "documentation":"

The date and time, in ISO 8601 date-time format, when an authenticated entity most recently attempted to access the tracked service. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the reporting period.

" + "documentation":"

The date and time, in ISO 8601 date-time format, when an authenticated entity most recently attempted to access the tracked service. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the tracking period.

" }, "LastAccessedRegion":{ "shape":"stringType", - "documentation":"

The Region from which the authenticated entity (user or role) last attempted to access the tracked action. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the reporting period.

" + "documentation":"

The Region from which the authenticated entity (user or role) last attempted to access the tracked action. Amazon Web Services does not report unauthenticated requests.

This field is null if no IAM entities attempted to access the service within the tracking period.

" } }, "documentation":"

Contains details about the most recent attempt to access an action within the service.

This data type is used as a response element in the GetServiceLastAccessedDetails operation.

" @@ -8211,7 +8211,7 @@ }, "MaxSessionDuration":{ "shape":"roleMaxSessionDurationType", - "documentation":"

The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours.

Anyone who assumes the role from the CLI or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles in the IAM User Guide.

" + "documentation":"

The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default value of one hour is applied. This setting can have a value from 1 hour to 12 hours.

Anyone who assumes the role from the CLI or API can use the DurationSeconds API parameter or the duration-seconds CLI parameter to request a longer session. The MaxSessionDuration setting determines the maximum duration that can be requested using the DurationSeconds parameter. If users don't specify a value for the DurationSeconds parameter, their security credentials are valid for one hour by default. This applies when you use the AssumeRole* API operations or the assume-role* CLI operations but does not apply when you use those operations to create a console URL. For more information, see Using IAM roles in the IAM User Guide.

" } } }, diff --git a/botocore/data/identitystore/2020-06-15/endpoint-rule-set-1.json b/botocore/data/identitystore/2020-06-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..740981a6 --- /dev/null +++ b/botocore/data/identitystore/2020-06-15/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identitystore-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://identitystore.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://identitystore-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://identitystore.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://identitystore.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/identitystore/2020-06-15/examples-1.json b/botocore/data/identitystore/2020-06-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/identitystore/2020-06-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/identitystore/2020-06-15/paginators-1.json b/botocore/data/identitystore/2020-06-15/paginators-1.json index ea142457..766e7c46 100644 --- a/botocore/data/identitystore/2020-06-15/paginators-1.json +++ b/botocore/data/identitystore/2020-06-15/paginators-1.json @@ -1,3 +1,28 @@ { - "pagination": {} + "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/botocore/data/identitystore/2020-06-15/service-2.json b/botocore/data/identitystore/2020-06-15/service-2.json index ca781c64..b43f35f9 100644 --- a/botocore/data/identitystore/2020-06-15/service-2.json +++ b/botocore/data/identitystore/2020-06-15/service-2.json @@ -14,6 +14,120 @@ "uid":"identitystore-2020-06-15" }, "operations":{ + "CreateGroup":{ + "name":"CreateGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGroupRequest"}, + "output":{"shape":"CreateGroupResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a group within the specified identity store.

" + }, + "CreateGroupMembership":{ + "name":"CreateGroupMembership", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGroupMembershipRequest"}, + "output":{"shape":"CreateGroupMembershipResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a relationship between a member and a group. The following identifiers must be specified: GroupId, IdentityStoreId, and MemberId.

" + }, + "CreateUser":{ + "name":"CreateUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserRequest"}, + "output":{"shape":"CreateUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a new user within the specified identity store.

" + }, + "DeleteGroup":{ + "name":"DeleteGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGroupRequest"}, + "output":{"shape":"DeleteGroupResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Delete a group within an identity store given GroupId.

", + "idempotent":true + }, + "DeleteGroupMembership":{ + "name":"DeleteGroupMembership", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGroupMembershipRequest"}, + "output":{"shape":"DeleteGroupMembershipResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Delete a membership within a group given MembershipId.

", + "idempotent":true + }, + "DeleteUser":{ + "name":"DeleteUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserRequest"}, + "output":{"shape":"DeleteUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a user within an identity store given UserId.

", + "idempotent":true + }, "DescribeGroup":{ "name":"DescribeGroup", "http":{ @@ -24,13 +138,30 @@ "output":{"shape":"DescribeGroupResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"InternalServerException"} + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} ], "documentation":"

Retrieves the group metadata and attributes from GroupId in an identity store.

" }, + "DescribeGroupMembership":{ + "name":"DescribeGroupMembership", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeGroupMembershipRequest"}, + "output":{"shape":"DescribeGroupMembershipResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Retrieves membership metadata and attributes from MembershipId in an identity store.

" + }, "DescribeUser":{ "name":"DescribeUser", "http":{ @@ -41,12 +172,114 @@ "output":{"shape":"DescribeUserResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"}, - {"shape":"InternalServerException"} + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} ], - "documentation":"

Retrieves the user metadata and attributes from UserId in an identity store.

" + "documentation":"

Retrieves the user metadata and attributes from the UserId in an identity store.

" + }, + "GetGroupId":{ + "name":"GetGroupId", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetGroupIdRequest"}, + "output":{"shape":"GetGroupIdResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Retrieves GroupId in an identity store.

" + }, + "GetGroupMembershipId":{ + "name":"GetGroupMembershipId", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetGroupMembershipIdRequest"}, + "output":{"shape":"GetGroupMembershipIdResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Retrieves the MembershipId in an identity store.

" + }, + "GetUserId":{ + "name":"GetUserId", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserIdRequest"}, + "output":{"shape":"GetUserIdResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Retrieves the UserId in an identity store.

" + }, + "IsMemberInGroups":{ + "name":"IsMemberInGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"IsMemberInGroupsRequest"}, + "output":{"shape":"IsMemberInGroupsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Checks the user's membership in all requested groups and returns if the member exists in all queried groups.

" + }, + "ListGroupMemberships":{ + "name":"ListGroupMemberships", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGroupMembershipsRequest"}, + "output":{"shape":"ListGroupMembershipsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

For the specified group in the specified identity store, returns the list of all GroupMembership objects and returns results in paginated form.

" + }, + "ListGroupMembershipsForMember":{ + "name":"ListGroupMembershipsForMember", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGroupMembershipsForMemberRequest"}, + "output":{"shape":"ListGroupMembershipsForMemberResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

For the specified member in the specified identity store, returns the list of all GroupMembership objects and returns results in paginated form.

" }, "ListGroups":{ "name":"ListGroups", @@ -57,13 +290,13 @@ "input":{"shape":"ListGroupsRequest"}, "output":{"shape":"ListGroupsResponse"}, "errors":[ - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"InternalServerException"} + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} ], - "documentation":"

Lists the attribute name and value of the group that you specified in the search. We only support DisplayName as a valid filter attribute path currently, and filter is required. This API returns minimum attributes, including GroupId and group DisplayName in the response.

" + "documentation":"

Lists all groups in the identity store. Returns a paginated list of complete Group objects. Filtering for a Group by the DisplayName attribute is deprecated. Instead, use the GetGroupId API action.

" }, "ListUsers":{ "name":"ListUsers", @@ -74,33 +307,441 @@ "input":{"shape":"ListUsersRequest"}, "output":{"shape":"ListUsersResponse"}, "errors":[ - {"shape":"ValidationException"}, - {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, - {"shape":"InternalServerException"} + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} ], - "documentation":"

Lists the attribute name and value of the user that you specified in the search. We only support UserName as a valid filter attribute path currently, and filter is required. This API returns minimum attributes, including UserId and UserName in the response.

" + "documentation":"

Lists all users in the identity store. Returns a paginated list of complete User objects. Filtering for a User by the UserName attribute is deprecated. Instead, use the GetUserId API action.

" + }, + "UpdateGroup":{ + "name":"UpdateGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGroupRequest"}, + "output":{"shape":"UpdateGroupResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

For the specified group in the specified identity store, updates the group metadata and attributes.

" + }, + "UpdateUser":{ + "name":"UpdateUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserRequest"}, + "output":{"shape":"UpdateUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

For the specified user in the specified identity store, updates the user metadata and attributes.

" } }, "shapes":{ "AccessDeniedException":{ "type":"structure", "members":{ - "Message":{"shape":"Message"}, + "Message":{"shape":"ExceptionMessage"}, "RequestId":{ "shape":"RequestId", - "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.

" + "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the identity store service for each sent request, and is then returned inside the exception if the request fails.

" } }, "documentation":"

You do not have sufficient access to perform this action.

", "exception":true }, + "Address":{ + "type":"structure", + "members":{ + "StreetAddress":{ + "shape":"SensitiveStringType", + "documentation":"

The street of the address.

" + }, + "Locality":{ + "shape":"SensitiveStringType", + "documentation":"

A string of the address locality.

" + }, + "Region":{ + "shape":"SensitiveStringType", + "documentation":"

The region of the address.

" + }, + "PostalCode":{ + "shape":"SensitiveStringType", + "documentation":"

The postal code of the address.

" + }, + "Country":{ + "shape":"SensitiveStringType", + "documentation":"

The country of the address.

" + }, + "Formatted":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing a formatted version of the address for display.

" + }, + "Type":{ + "shape":"SensitiveStringType", + "documentation":"

A string representing the type of address. For example, \"Home.\"

" + }, + "Primary":{ + "shape":"SensitiveBooleanType", + "documentation":"

A Boolean value representing whether this is the primary address for the associated resource.

" + } + }, + "documentation":"

The address associated with the specified user.

" + }, + "Addresses":{ + "type":"list", + "member":{"shape":"Address"}, + "max":1, + "min":1 + }, + "AlternateIdentifier":{ + "type":"structure", + "members":{ + "ExternalId":{ + "shape":"ExternalId", + "documentation":"

The identifier issued to this resource by an external identity provider.

" + }, + "UniqueAttribute":{ + "shape":"UniqueAttribute", + "documentation":"

An entity attribute that's unique to a specific entity.

" + } + }, + "documentation":"

A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a unique attribute. For example, a unique GroupDisplayName.

", + "union":true + }, + "AttributeOperation":{ + "type":"structure", + "required":["AttributePath"], + "members":{ + "AttributePath":{ + "shape":"AttributePath", + "documentation":"

A string representation of the path to a given attribute or sub-attribute. Supports JMESPath.

" + }, + "AttributeValue":{ + "shape":"AttributeValue", + "documentation":"

The value of the attribute. This is a Document type. This type is not supported by Java V1, Go V1, and older versions of the AWS CLI.

" + } + }, + "documentation":"

An operation that applies to the requested group. This operation might add, replace, or remove an attribute.

" + }, + "AttributeOperations":{ + "type":"list", + "member":{"shape":"AttributeOperation"}, + "max":100, + "min":1 + }, "AttributePath":{ "type":"string", "max":255, "min":1, - "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}  ]+" + "pattern":"\\p{L}+(?:\\.\\p{L}+){0,2}" + }, + "AttributeValue":{ + "type":"structure", + "members":{ + }, + "documentation":"

The value of the attribute. This is a Document type. This type is not supported by Java V1, Go V1, and older versions of the AWS CLI.

", + "document":true + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{ + "shape":"RequestId", + "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the identity store service for each sent request, and is then returned inside the exception if the request fails.

" + }, + "Reason":{ + "shape":"ConflictExceptionReason", + "documentation":"

This request cannot be completed for one of the following reasons:

  • Performing the requested operation would violate an existing uniqueness claim in the identity store. Resolve the conflict before retrying this request.

  • The requested resource was being concurrently modified by another request.

" + } + }, + "documentation":"

This request cannot be completed for one of the following reasons:

  • Performing the requested operation would violate an existing uniqueness claim in the identity store. Resolve the conflict before retrying this request.

  • The requested resource was being concurrently modified by another request.

", + "exception":true + }, + "ConflictExceptionReason":{ + "type":"string", + "enum":[ + "UNIQUENESS_CONSTRAINT_VIOLATION", + "CONCURRENT_MODIFICATION" + ] + }, + "CreateGroupMembershipRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "GroupId", + "MemberId" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a group in the identity store.

" + }, + "MemberId":{ + "shape":"MemberId", + "documentation":"

An object that contains the identifier of a group member. Setting the UserID field to the specific identifier for a user indicates that the user is a member of the group.

" + } + } + }, + "CreateGroupMembershipResponse":{ + "type":"structure", + "required":[ + "MembershipId", + "IdentityStoreId" + ], + "members":{ + "MembershipId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a newly created GroupMembership in an identity store.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + } + } + }, + "CreateGroupRequest":{ + "type":"structure", + "required":["IdentityStoreId"], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "DisplayName":{ + "shape":"GroupDisplayName", + "documentation":"

A string containing the name of the group. This value is commonly displayed when the group is referenced.

" + }, + "Description":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the description of the group.

" + } + } + }, + "CreateGroupResponse":{ + "type":"structure", + "required":[ + "GroupId", + "IdentityStoreId" + ], + "members":{ + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the newly created group in the identity store.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + } + } + }, + "CreateUserRequest":{ + "type":"structure", + "required":["IdentityStoreId"], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "UserName":{ + "shape":"UserName", + "documentation":"

A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

An object containing the user's name.

" + }, + "DisplayName":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's name. This value is typically formatted for display when the user is referenced. For example, \"John Doe.\"

" + }, + "NickName":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing an alternate name for the user.

" + }, + "ProfileUrl":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing a URL that may be associated with the user.

" + }, + "Emails":{ + "shape":"Emails", + "documentation":"

A list of Email objects containing email addresses associated with the user.

" + }, + "Addresses":{ + "shape":"Addresses", + "documentation":"

A list of Address objects containing addresses associated with the user.

" + }, + "PhoneNumbers":{ + "shape":"PhoneNumbers", + "documentation":"

A list of PhoneNumber objects containing phone numbers associated with the user.

" + }, + "UserType":{ + "shape":"SensitiveStringType", + "documentation":"

A string indicating the user's type. Possible values depend on each customer's specific needs, so they are left unspecified.

" + }, + "Title":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's title. Possible values are left unspecified given that they depend on each customer's specific needs.

" + }, + "PreferredLanguage":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the preferred language of the user. For example, \"American English\" or \"en-us.\"

" + }, + "Locale":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's geographical region or location.

" + }, + "Timezone":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's time zone.

" + } + } + }, + "CreateUserResponse":{ + "type":"structure", + "required":[ + "UserId", + "IdentityStoreId" + ], + "members":{ + "UserId":{ + "shape":"ResourceId", + "documentation":"

The identifier of the newly created user in the identity store.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + } + } + }, + "DeleteGroupMembershipRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "MembershipId" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "MembershipId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a GroupMembership in an identity store.

" + } + } + }, + "DeleteGroupMembershipResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteGroupRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "GroupId" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a group in the identity store.

" + } + } + }, + "DeleteGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteUserRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "UserId" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "UserId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a user in the identity store.

" + } + } + }, + "DeleteUserResponse":{ + "type":"structure", + "members":{ + } + }, + "DescribeGroupMembershipRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "MembershipId" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "MembershipId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a GroupMembership in an identity store.

" + } + } + }, + "DescribeGroupMembershipResponse":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "MembershipId", + "GroupId", + "MemberId" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "MembershipId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a GroupMembership in an identity store.

" + }, + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a group in the identity store.

" + }, + "MemberId":{"shape":"MemberId"} + } }, "DescribeGroupRequest":{ "type":"structure", @@ -111,7 +752,7 @@ "members":{ "IdentityStoreId":{ "shape":"IdentityStoreId", - "documentation":"

The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains number and lower case letters. This value is generated at the time that a new identity store is created.

" + "documentation":"

The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains numbers and lower case letters. This value is generated at the time that a new identity store is created.

" }, "GroupId":{ "shape":"ResourceId", @@ -123,7 +764,7 @@ "type":"structure", "required":[ "GroupId", - "DisplayName" + "IdentityStoreId" ], "members":{ "GroupId":{ @@ -132,7 +773,19 @@ }, "DisplayName":{ "shape":"GroupDisplayName", - "documentation":"

Contains the group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. The characters <>;:% are excluded. This value is specified at the time that the group is created and stored as an attribute of the group object in the identity store.

" + "documentation":"

The group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. This value is specified at the time that the group is created and stored as an attribute of the group object in the identity store.

" + }, + "ExternalIds":{ + "shape":"ExternalIds", + "documentation":"

A list of ExternalId objects that contains the identifiers issued to this resource by an external identity provider.

" + }, + "Description":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing a description of the group.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" } } }, @@ -145,7 +798,7 @@ "members":{ "IdentityStoreId":{ "shape":"IdentityStoreId", - "documentation":"

The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains number and lower case letters. This value is generated at the time that a new identity store is created.

" + "documentation":"

The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains numbers and lower case letters. This value is generated at the time that a new identity store is created.

" }, "UserId":{ "shape":"ResourceId", @@ -156,20 +809,139 @@ "DescribeUserResponse":{ "type":"structure", "required":[ - "UserName", - "UserId" + "UserId", + "IdentityStoreId" ], "members":{ "UserName":{ "shape":"UserName", - "documentation":"

Contains the user’s user name value. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. The characters <>;:% are excluded. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.

" + "documentation":"

A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.

" }, "UserId":{ "shape":"ResourceId", "documentation":"

The identifier for a user in the identity store.

" + }, + "ExternalIds":{ + "shape":"ExternalIds", + "documentation":"

A list of ExternalId objects that contains the identifiers issued to this resource by an external identity provider.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the user.

" + }, + "DisplayName":{ + "shape":"SensitiveStringType", + "documentation":"

The user's name value for display.

" + }, + "NickName":{ + "shape":"SensitiveStringType", + "documentation":"

An alternative descriptive name for the user.

" + }, + "ProfileUrl":{ + "shape":"SensitiveStringType", + "documentation":"

A URL link for the user's profile.

" + }, + "Emails":{ + "shape":"Emails", + "documentation":"

The user's email value.

" + }, + "Addresses":{ + "shape":"Addresses", + "documentation":"

The user's physical address.

" + }, + "PhoneNumbers":{ + "shape":"PhoneNumbers", + "documentation":"

A list of PhoneNumber objects associated with a user.

" + }, + "UserType":{ + "shape":"SensitiveStringType", + "documentation":"

A string indicating the user's type.

" + }, + "Title":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's title.

" + }, + "PreferredLanguage":{ + "shape":"SensitiveStringType", + "documentation":"

The preferred language of the user.

" + }, + "Locale":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's geographical region or location.

" + }, + "Timezone":{ + "shape":"SensitiveStringType", + "documentation":"

The time zone for a user.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" } } }, + "Email":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing an email address. For example, \"johndoe@amazon.com.\"

" + }, + "Type":{ + "shape":"SensitiveStringType", + "documentation":"

A string representing the type of address. For example, \"Work.\"

" + }, + "Primary":{ + "shape":"SensitiveBooleanType", + "documentation":"

A Boolean value representing whether this is the primary email address for the associated resource.

" + } + }, + "documentation":"

The email address associated with the user.

" + }, + "Emails":{ + "type":"list", + "member":{"shape":"Email"}, + "max":1, + "min":1 + }, + "ExceptionMessage":{"type":"string"}, + "ExternalId":{ + "type":"structure", + "required":[ + "Issuer", + "Id" + ], + "members":{ + "Issuer":{ + "shape":"ExternalIdIssuer", + "documentation":"

The issuer for an external identifier.

" + }, + "Id":{ + "shape":"ExternalIdIdentifier", + "documentation":"

The identifier issued to this resource by an external identity provider.

" + } + }, + "documentation":"

The identifier issued to this resource by an external identity provider.

" + }, + "ExternalIdIdentifier":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+", + "sensitive":true + }, + "ExternalIdIssuer":{ + "type":"string", + "max":100, + "min":1, + "pattern":"(?!(?i)(arn|aws):)[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+", + "sensitive":true + }, + "ExternalIds":{ + "type":"list", + "member":{"shape":"ExternalId"}, + "max":10, + "min":1 + }, "Filter":{ "type":"structure", "required":[ @@ -186,17 +958,126 @@ "documentation":"

Represents the data for an attribute. Each attribute value is described as a name-value pair.

" } }, - "documentation":"

A query filter used by ListUsers and ListGroup. This filter object provides the attribute name and attribute value to search users or groups.

" + "documentation":"

A query filter used by ListUsers and ListGroups. This filter object provides the attribute name and attribute value to search users or groups.

" }, "Filters":{ "type":"list", - "member":{"shape":"Filter"} + "member":{"shape":"Filter"}, + "max":1, + "min":0 + }, + "GetGroupIdRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "AlternateIdentifier" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "AlternateIdentifier":{ + "shape":"AlternateIdentifier", + "documentation":"

A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a unique attribute. For example, a unique GroupDisplayName.

" + } + } + }, + "GetGroupIdResponse":{ + "type":"structure", + "required":[ + "GroupId", + "IdentityStoreId" + ], + "members":{ + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a group in the identity store.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + } + } + }, + "GetGroupMembershipIdRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "GroupId", + "MemberId" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a group in the identity store.

" + }, + "MemberId":{ + "shape":"MemberId", + "documentation":"

An object that contains the identifier of a group member. Setting the UserID field to the specific identifier for a user indicates that the user is a member of the group.

" + } + } + }, + "GetGroupMembershipIdResponse":{ + "type":"structure", + "required":[ + "MembershipId", + "IdentityStoreId" + ], + "members":{ + "MembershipId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a GroupMembership in an identity store.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + } + } + }, + "GetUserIdRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "AlternateIdentifier" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "AlternateIdentifier":{ + "shape":"AlternateIdentifier", + "documentation":"

A unique identifier for a user or group that is not the primary identifier. This value can be an identifier from an external identity provider (IdP) that is associated with the user, the group, or a unique attribute. For example, a unique UserDisplayName.

" + } + } + }, + "GetUserIdResponse":{ + "type":"structure", + "required":[ + "UserId", + "IdentityStoreId" + ], + "members":{ + "UserId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a user in the identity store.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + } + } }, "Group":{ "type":"structure", "required":[ "GroupId", - "DisplayName" + "IdentityStoreId" ], "members":{ "GroupId":{ @@ -205,16 +1086,84 @@ }, "DisplayName":{ "shape":"GroupDisplayName", - "documentation":"

Contains the group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. The characters <>;:% are excluded. This value is specified at the time the group is created and stored as an attribute of the group object in the identity store.

" + "documentation":"

The group’s display name value. The length limit is 1,024 characters. This value can consist of letters, accented characters, symbols, numbers, punctuation, tab, new line, carriage return, space, and nonbreaking space in this attribute. This value is specified at the time the group is created and stored as an attribute of the group object in the identity store.

" + }, + "ExternalIds":{ + "shape":"ExternalIds", + "documentation":"

A list of ExternalId objects that contains the identifiers issued to this resource by an external identity provider.

" + }, + "Description":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing a description of the specified group.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" } }, - "documentation":"

A group object, which contains a specified group’s metadata and attributes.

" + "documentation":"

A group object that contains a specified group’s metadata and attributes.

" }, "GroupDisplayName":{ "type":"string", "max":1024, "min":1, - "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r  ]+" + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r  ]+", + "sensitive":true + }, + "GroupIds":{ + "type":"list", + "member":{"shape":"ResourceId"}, + "max":100, + "min":1 + }, + "GroupMembership":{ + "type":"structure", + "required":["IdentityStoreId"], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "MembershipId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a GroupMembership object in an identity store.

" + }, + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a group in the identity store.

" + }, + "MemberId":{ + "shape":"MemberId", + "documentation":"

An object that contains the identifier of a group member. Setting the UserID field to the specific identifier for a user indicates that the user is a member of the group.

" + } + }, + "documentation":"

Contains the identifiers for a group, a group member, and a GroupMembership object in the identity store.

" + }, + "GroupMembershipExistenceResult":{ + "type":"structure", + "members":{ + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a group in the identity store.

" + }, + "MemberId":{ + "shape":"MemberId", + "documentation":"

An object that contains the identifier of a group member. Setting the UserID field to the specific identifier for a user indicates that the user is a member of the group.

" + }, + "MembershipExists":{ + "shape":"SensitiveBooleanType", + "documentation":"

Indicates whether a membership relation exists or not.

" + } + }, + "documentation":"

Indicates whether a resource is a member of a group in the identity store.

" + }, + "GroupMembershipExistenceResults":{ + "type":"list", + "member":{"shape":"GroupMembershipExistenceResult"} + }, + "GroupMemberships":{ + "type":"list", + "member":{"shape":"GroupMembership"} }, "Groups":{ "type":"list", @@ -222,22 +1171,137 @@ }, "IdentityStoreId":{ "type":"string", - "max":12, + "max":36, "min":1, - "pattern":"^d-[0-9a-f]{10}$" + "pattern":"d-[0-9a-f]{10}$|^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" }, "InternalServerException":{ "type":"structure", "members":{ - "Message":{"shape":"Message"}, + "Message":{"shape":"ExceptionMessage"}, "RequestId":{ "shape":"RequestId", - "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.

" + "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the identity store service for each sent request, and is then returned inside the exception if the request fails.

" + }, + "RetryAfterSeconds":{ + "shape":"RetryAfterSeconds", + "documentation":"

The number of seconds that you would like to wait before retrying the next request.

" } }, "documentation":"

The request processing has failed because of an unknown error, exception or failure with an internal server.

", "exception":true, - "fault":true + "fault":true, + "retryable":{"throttling":false} + }, + "IsMemberInGroupsRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "MemberId", + "GroupIds" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "MemberId":{ + "shape":"MemberId", + "documentation":"

An object containing the identifier of a group member.

" + }, + "GroupIds":{ + "shape":"GroupIds", + "documentation":"

A list of identifiers for groups in the identity store.

" + } + } + }, + "IsMemberInGroupsResponse":{ + "type":"structure", + "required":["Results"], + "members":{ + "Results":{ + "shape":"GroupMembershipExistenceResults", + "documentation":"

A list containing the results of membership existence checks.

" + } + } + }, + "ListGroupMembershipsForMemberRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "MemberId" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "MemberId":{ + "shape":"MemberId", + "documentation":"

An object that contains the identifier of a group member. Setting the UserID field to the specific identifier for a user indicates that the user is a member of the group.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to be returned per request. This parameter is used in the ListUsers and ListGroups requests to specify how many results to return in one page. The length limit is 50 characters.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token used for the ListUsers, ListGroups, and ListGroupMemberships API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.

" + } + } + }, + "ListGroupMembershipsForMemberResponse":{ + "type":"structure", + "required":["GroupMemberships"], + "members":{ + "GroupMemberships":{ + "shape":"GroupMemberships", + "documentation":"

A list of GroupMembership objects in the group for a specified member.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token used for the ListUsers, ListGroups, and ListGroupMemberships API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.

" + } + } + }, + "ListGroupMembershipsRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "GroupId" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a group in the identity store.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to be returned per request. This parameter is used in all List requests to specify how many results to return in one page.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token used for the ListUsers, ListGroups and ListGroupMemberships API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.

" + } + } + }, + "ListGroupMembershipsResponse":{ + "type":"structure", + "required":["GroupMemberships"], + "members":{ + "GroupMemberships":{ + "shape":"GroupMemberships", + "documentation":"

A list of GroupMembership objects in the group.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token used for the ListUsers, ListGroups, and ListGroupMemberships API operations. This value is generated by the identity store service. It is returned in the API response if the total results are more than the size of one page. This token is also returned when it is used in the API request to search for the next page.

" + } + } }, "ListGroupsRequest":{ "type":"structure", @@ -245,11 +1309,11 @@ "members":{ "IdentityStoreId":{ "shape":"IdentityStoreId", - "documentation":"

The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains number and lower case letters. This value is generated at the time that a new identity store is created.

" + "documentation":"

The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains numbers and lower case letters. This value is generated at the time that a new identity store is created.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of results to be returned per request. This parameter is used in the ListUsers and ListGroups request to specify how many results to return in one page. The length limit is 50 characters.

" + "documentation":"

The maximum number of results to be returned per request. This parameter is used in the ListUsers and ListGroups requests to specify how many results to return in one page. The length limit is 50 characters.

" }, "NextToken":{ "shape":"NextToken", @@ -257,7 +1321,9 @@ }, "Filters":{ "shape":"Filters", - "documentation":"

A list of Filter objects, which is used in the ListUsers and ListGroups request.

" + "documentation":"

A list of Filter objects, which is used in the ListUsers and ListGroups requests.

", + "deprecated":true, + "deprecatedMessage":"Using filters with ListGroups API is deprecated, please use GetGroupId API instead." } } }, @@ -281,11 +1347,11 @@ "members":{ "IdentityStoreId":{ "shape":"IdentityStoreId", - "documentation":"

The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains number and lower case letters. This value is generated at the time that a new identity store is created.

" + "documentation":"

The globally unique identifier for the identity store, such as d-1234567890. In this example, d- is a fixed prefix, and 1234567890 is a randomly generated string that contains numbers and lower case letters. This value is generated at the time that a new identity store is created.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of results to be returned per request. This parameter is used in the ListUsers and ListGroups request to specify how many results to return in one page. The length limit is 50 characters.

" + "documentation":"

The maximum number of results to be returned per request. This parameter is used in the ListUsers and ListGroups requests to specify how many results to return in one page. The length limit is 50 characters.

" }, "NextToken":{ "shape":"NextToken", @@ -293,7 +1359,9 @@ }, "Filters":{ "shape":"Filters", - "documentation":"

A list of Filter objects, which is used in the ListUsers and ListGroups request.

" + "documentation":"

A list of Filter objects, which is used in the ListUsers and ListGroups requests.

", + "deprecated":true, + "deprecatedMessage":"Using filters with ListUsers API is deprecated, please use GetGroupId API instead." } } }, @@ -313,45 +1381,108 @@ }, "MaxResults":{ "type":"integer", - "max":50, + "box":true, + "max":100, "min":1 }, - "Message":{ - "type":"string", - "max":65535, - "min":1 + "MemberId":{ + "type":"structure", + "members":{ + "UserId":{ + "shape":"ResourceId", + "documentation":"

An object containing the identifiers of resources that can be members.

" + } + }, + "documentation":"

An object containing the identifier of a group member.

", + "union":true + }, + "Name":{ + "type":"structure", + "members":{ + "Formatted":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing a formatted version of the name for display.

" + }, + "FamilyName":{ + "shape":"SensitiveStringType", + "documentation":"

The family name of the user.

" + }, + "GivenName":{ + "shape":"SensitiveStringType", + "documentation":"

The given name of the user.

" + }, + "MiddleName":{ + "shape":"SensitiveStringType", + "documentation":"

The middle name of the user.

" + }, + "HonorificPrefix":{ + "shape":"SensitiveStringType", + "documentation":"

The honorific prefix of the user. For example, \"Dr.\"

" + }, + "HonorificSuffix":{ + "shape":"SensitiveStringType", + "documentation":"

The honorific suffix of the user. For example, \"M.D.\"

" + } + }, + "documentation":"

The full name of the user.

" }, "NextToken":{ "type":"string", "max":65535, "min":1, - "pattern":"^[-a-zA-Z0-9+=/:]*" + "pattern":"[-a-zA-Z0-9+=/:]*" + }, + "PhoneNumber":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing a phone number. For example, \"8675309\" or \"+1 (800) 123-4567\".

" + }, + "Type":{ + "shape":"SensitiveStringType", + "documentation":"

A string representing the type of a phone number. For example, \"Mobile.\"

" + }, + "Primary":{ + "shape":"SensitiveBooleanType", + "documentation":"

A Boolean value representing whether this is the primary phone number for the associated resource.

" + } + }, + "documentation":"

The phone number associated with the user.

" + }, + "PhoneNumbers":{ + "type":"list", + "member":{"shape":"PhoneNumber"}, + "max":1, + "min":1 }, "RequestId":{ "type":"string", + "max":36, + "min":1, "pattern":"[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}" }, "ResourceId":{ "type":"string", "max":47, "min":1, - "pattern":"^([0-9a-f]{10}-|)[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}$" + "pattern":"([0-9a-f]{10}-|)[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}" }, "ResourceNotFoundException":{ "type":"structure", "members":{ "ResourceType":{ "shape":"ResourceType", - "documentation":"

The type of resource in the Identity Store service, which is an enum object. Valid values include USER, GROUP, and IDENTITY_STORE.

" + "documentation":"

An enum object indicating the type of resource in the identity store service. Valid values include USER, GROUP, and IDENTITY_STORE.

" }, "ResourceId":{ "shape":"ResourceId", - "documentation":"

The identifier for a resource in the identity store, which can be used as UserId or GroupId. The format for ResourceId is either UUID or 1234567890-UUID, where UUID is a randomly generated value for each resource when it is created and 1234567890 represents the IdentityStoreId string value. In the case that the identity store is migrated from a legacy SSO identity store, the ResourceId for that identity store will be in the format of UUID. Otherwise, it will be in the 1234567890-UUID format.

" + "documentation":"

The identifier for a resource in the identity store that can be used as UserId or GroupId. The format for ResourceId is either UUID or 1234567890-UUID, where UUID is a randomly generated value for each resource when it is created and 1234567890 represents the IdentityStoreId string value. In the case that the identity store is migrated from a legacy SSO identity store, the ResourceId for that identity store will be in the format of UUID. Otherwise, it will be in the 1234567890-UUID format.

" }, - "Message":{"shape":"Message"}, + "Message":{"shape":"ExceptionMessage"}, "RequestId":{ "shape":"RequestId", - "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.

" + "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the identity store service for each sent request, and is then returned inside the exception if the request fails.

" } }, "documentation":"

Indicates that a requested resource is not found.

", @@ -362,45 +1493,196 @@ "enum":[ "GROUP", "USER", - "IDENTITY_STORE" + "IDENTITY_STORE", + "GROUP_MEMBERSHIP" ] }, + "RetryAfterSeconds":{"type":"integer"}, + "SensitiveBooleanType":{ + "type":"boolean", + "sensitive":true + }, "SensitiveStringType":{ "type":"string", "max":1024, "min":1, - "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r  ]+", + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r   ]+", "sensitive":true }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"}, + "RequestId":{ + "shape":"RequestId", + "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the identity store service for each sent request, and is then returned inside the exception if the request fails.

" + } + }, + "documentation":"

The request would cause the number of users or groups in the identity store to exceed the maximum allowed.

", + "exception":true + }, "ThrottlingException":{ "type":"structure", "members":{ - "Message":{"shape":"Message"}, + "Message":{"shape":"ExceptionMessage"}, "RequestId":{ "shape":"RequestId", - "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.

" + "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the identity store service for each sent request, and is then returned inside the exception if the request fails.

" + }, + "RetryAfterSeconds":{ + "shape":"RetryAfterSeconds", + "documentation":"

The number of seconds that you would like to wait before retrying the next request.

" } }, "documentation":"

Indicates that the principal has crossed the throttling limits of the API operations.

", - "exception":true + "exception":true, + "retryable":{"throttling":true} }, - "User":{ + "UniqueAttribute":{ "type":"structure", "required":[ - "UserName", - "UserId" + "AttributePath", + "AttributeValue" ], "members":{ - "UserName":{ - "shape":"UserName", - "documentation":"

Contains the user’s user name value. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. The characters <>;:% are excluded. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.

" + "AttributePath":{ + "shape":"AttributePath", + "documentation":"

A string representation of the path to a given attribute or sub-attribute. Supports JMESPath.

" + }, + "AttributeValue":{ + "shape":"AttributeValue", + "documentation":"

The value of the attribute. This is a Document type. This type is not supported by Java V1, Go V1, and older versions of the AWS CLI.

" + } + }, + "documentation":"

An entity attribute that's unique to a specific entity.

" + }, + "UpdateGroupRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "GroupId", + "Operations" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" + }, + "GroupId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a group in the identity store.

" + }, + "Operations":{ + "shape":"AttributeOperations", + "documentation":"

A list of AttributeOperation objects to apply to the requested group. These operations might add, replace, or remove an attribute.

" + } + } + }, + "UpdateGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateUserRequest":{ + "type":"structure", + "required":[ + "IdentityStoreId", + "UserId", + "Operations" + ], + "members":{ + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" }, "UserId":{ "shape":"ResourceId", "documentation":"

The identifier for a user in the identity store.

" + }, + "Operations":{ + "shape":"AttributeOperations", + "documentation":"

A list of AttributeOperation objects to apply to the requested user. These operations might add, replace, or remove an attribute.

" + } + } + }, + "UpdateUserResponse":{ + "type":"structure", + "members":{ + } + }, + "User":{ + "type":"structure", + "required":[ + "UserId", + "IdentityStoreId" + ], + "members":{ + "UserName":{ + "shape":"UserName", + "documentation":"

A unique string used to identify the user. The length limit is 128 characters. This value can consist of letters, accented characters, symbols, numbers, and punctuation. This value is specified at the time the user is created and stored as an attribute of the user object in the identity store.

" + }, + "UserId":{ + "shape":"ResourceId", + "documentation":"

The identifier for a user in the identity store.

" + }, + "ExternalIds":{ + "shape":"ExternalIds", + "documentation":"

A list of ExternalId objects that contains the identifiers issued to this resource by an external identity provider.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

An object containing the user's name.

" + }, + "DisplayName":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's name that's formatted for display when the user is referenced. For example, \"John Doe.\"

" + }, + "NickName":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing an alternate name for the user.

" + }, + "ProfileUrl":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing a URL that may be associated with the user.

" + }, + "Emails":{ + "shape":"Emails", + "documentation":"

A list of Email objects containing email addresses associated with the user.

" + }, + "Addresses":{ + "shape":"Addresses", + "documentation":"

A list of Address objects containing addresses associated with the user.

" + }, + "PhoneNumbers":{ + "shape":"PhoneNumbers", + "documentation":"

A list of PhoneNumber objects containing phone numbers associated with the user.

" + }, + "UserType":{ + "shape":"SensitiveStringType", + "documentation":"

A string indicating the user's type. Possible values depend on each customer's specific needs, so they are left unspecified.

" + }, + "Title":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's title. Possible values depend on each customer's specific needs, so they are left unspecified.

" + }, + "PreferredLanguage":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the preferred language of the user. For example, \"American English\" or \"en-us.\"

" + }, + "Locale":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's geographical region or location.

" + }, + "Timezone":{ + "shape":"SensitiveStringType", + "documentation":"

A string containing the user's time zone.

" + }, + "IdentityStoreId":{ + "shape":"IdentityStoreId", + "documentation":"

The globally unique identifier for the identity store.

" } }, - "documentation":"

A user object, which contains a specified user’s metadata and attributes.

" + "documentation":"

A user object that contains a specified user’s metadata and attributes.

" }, "UserName":{ "type":"string", @@ -416,15 +1698,15 @@ "ValidationException":{ "type":"structure", "members":{ - "Message":{"shape":"Message"}, + "Message":{"shape":"ExceptionMessage"}, "RequestId":{ "shape":"RequestId", - "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the Identity Store service for each sent request, and is then returned inside the exception if the request fails.

" + "documentation":"

The identifier for each request. This value is a globally unique ID that is generated by the identity store service for each sent request, and is then returned inside the exception if the request fails.

" } }, "documentation":"

The request failed because it contains a syntax error.

", "exception":true } }, - "documentation":"

The AWS Single Sign-On (SSO) Identity Store service provides a single place to retrieve all of your identities (users and groups). For more information about AWS, see the AWS Single Sign-On User Guide.

" + "documentation":"

The Identity Store service used by AWS IAM Identity Center (successor to AWS Single Sign-On) provides a single place to retrieve all of your identities (users and groups). For more information, see the IAM Identity Center User Guide.

 <note> <p>Although AWS Single Sign-On was renamed, the <code>sso</code> and <code>identitystore</code> API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see <a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed">IAM Identity Center rename</a>.</p> </note> <p>This reference guide describes the identity store operations that you can call programatically and includes detailed information on data types and errors.</p> 
" } diff --git a/botocore/data/imagebuilder/2019-12-02/endpoint-rule-set-1.json b/botocore/data/imagebuilder/2019-12-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..bcda3741 --- /dev/null +++ b/botocore/data/imagebuilder/2019-12-02/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://imagebuilder-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://imagebuilder-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://imagebuilder.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://imagebuilder.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/imagebuilder/2019-12-02/examples-1.json b/botocore/data/imagebuilder/2019-12-02/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/imagebuilder/2019-12-02/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/importexport/2010-06-01/endpoint-rule-set-1.json b/botocore/data/importexport/2010-06-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..ff97f00e --- /dev/null +++ b/botocore/data/importexport/2010-06-01/endpoint-rule-set-1.json @@ -0,0 +1,591 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://importexport-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "IngestionService" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://importexport-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "IngestionService" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://importexport.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "IngestionService" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://importexport.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "IngestionService" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://importexport-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://importexport-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://importexport.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://importexport.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "IngestionService" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://importexport.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/inspector/2015-08-18/endpoint-rule-set-1.json b/botocore/data/inspector/2015-08-18/endpoint-rule-set-1.json new file mode 100644 index 00000000..c709083f --- /dev/null +++ b/botocore/data/inspector/2015-08-18/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://inspector-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://inspector-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://inspector.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://inspector.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/inspector/2016-02-16/endpoint-rule-set-1.json b/botocore/data/inspector/2016-02-16/endpoint-rule-set-1.json new file mode 100644 index 00000000..c709083f --- /dev/null +++ b/botocore/data/inspector/2016-02-16/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://inspector-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://inspector-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://inspector.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://inspector.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/inspector2/2020-06-08/endpoint-rule-set-1.json b/botocore/data/inspector2/2020-06-08/endpoint-rule-set-1.json new file mode 100644 index 00000000..9639d655 --- /dev/null +++ b/botocore/data/inspector2/2020-06-08/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://inspector2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://inspector2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://inspector2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://inspector2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/inspector2/2020-06-08/examples-1.json b/botocore/data/inspector2/2020-06-08/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/inspector2/2020-06-08/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/inspector2/2020-06-08/service-2.json b/botocore/data/inspector2/2020-06-08/service-2.json index b0c20115..2f322ab8 100644 --- a/botocore/data/inspector2/2020-06-08/service-2.json +++ b/botocore/data/inspector2/2020-06-08/service-2.json @@ -153,7 +153,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Describe Amazon Inspector configuration settings for an Amazon Web Services organization

" + "documentation":"

Describe Amazon Inspector configuration settings for an Amazon Web Services organization.

" }, "Disable":{ "name":"Disable", @@ -246,6 +246,22 @@ ], "documentation":"

Enables the Amazon Inspector delegated administrator for your Organizations organization.

" }, + "GetConfiguration":{ + "name":"GetConfiguration", + "http":{ + "method":"POST", + "requestUri":"/configuration/get", + "responseCode":200 + }, + "input":{"shape":"GetConfigurationRequest"}, + "output":{"shape":"GetConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves setting configurations for Inspector scans.

" + }, "GetDelegatedAdminAccount":{ "name":"GetDelegatedAdminAccount", "http":{ @@ -502,6 +518,23 @@ ], "documentation":"

Removes tags from a resource.

" }, + "UpdateConfiguration":{ + "name":"UpdateConfiguration", + "http":{ + "method":"POST", + "requestUri":"/configuration/update", + "responseCode":200 + }, + "input":{"shape":"UpdateConfigurationRequest"}, + "output":{"shape":"UpdateConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates setting configurations for your Amazon Inspector account. When you use this API as an Amazon Inspector delegated administrator this updates the setting for all accounts you manage. Member accounts in an organization cannot update this setting.

" + }, "UpdateFilter":{ "name":"UpdateFilter", "http":{ @@ -656,7 +689,7 @@ "documentation":"

An object detailing the status of Amazon Inspector for the account.

" } }, - "documentation":"

An object with details the status of an Amazon Web Services account within your Amazon Inspector environment

" + "documentation":"

An object with details the status of an Amazon Web Services account within your Amazon Inspector environment.

" }, "AccountStateList":{ "type":"list", @@ -699,6 +732,14 @@ "shape":"ImageLayerAggregation", "documentation":"

An object that contains details about an aggregation request based on container image layers.

" }, + "lambdaFunctionAggregation":{ + "shape":"LambdaFunctionAggregation", + "documentation":"

Returns an object with findings aggregated by AWS Lambda function.

" + }, + "lambdaLayerAggregation":{ + "shape":"LambdaLayerAggregation", + "documentation":"

Returns an object with findings aggregated by AWS Lambda layer.

" + }, "packageAggregation":{ "shape":"PackageAggregation", "documentation":"

An object that contains details about an aggregation request based on operating system package type.

" @@ -719,7 +760,8 @@ "type":"string", "enum":[ "AWS_EC2_INSTANCE", - "AWS_ECR_CONTAINER_IMAGE" + "AWS_ECR_CONTAINER_IMAGE", + "AWS_LAMBDA_FUNCTION" ] }, "AggregationResponse":{ @@ -749,6 +791,14 @@ "shape":"ImageLayerAggregationResponse", "documentation":"

An object that contains details about an aggregation response based on container image layers.

" }, + "lambdaFunctionAggregation":{ + "shape":"LambdaFunctionAggregationResponse", + "documentation":"

An aggregation of findings by AWS Lambda function.

" + }, + "lambdaLayerAggregation":{ + "shape":"LambdaLayerAggregationResponse", + "documentation":"

An aggregation of findings by AWS Lambda layer.

" + }, "packageAggregation":{ "shape":"PackageAggregationResponse", "documentation":"

An object that contains details about an aggregation response based on operating system package type.

" @@ -780,7 +830,9 @@ "AWS_EC2_INSTANCE", "AWS_ECR_CONTAINER", "IMAGE_LAYER", - "ACCOUNT" + "ACCOUNT", + "AWS_LAMBDA_FUNCTION", + "LAMBDA_LAYER" ] }, "AmiAggregation":{ @@ -807,7 +859,7 @@ "members":{ "accountId":{ "shape":"AccountId", - "documentation":"

The Amazon Web Services account ID that the AMI belongs.

" + "documentation":"

The Amazon Web Services account ID for the AMI.

" }, "affectedInstances":{ "shape":"Long", @@ -837,6 +889,19 @@ "AFFECTED_INSTANCES" ] }, + "Architecture":{ + "type":"string", + "enum":[ + "X86_64", + "ARM64" + ] + }, + "ArchitectureList":{ + "type":"list", + "member":{"shape":"Architecture"}, + "max":1, + "min":1 + }, "Arn":{ "type":"string", "max":1011, @@ -876,6 +941,10 @@ "ecr":{ "shape":"Boolean", "documentation":"

Represents whether Amazon ECR scans are automatically enabled for new members of your Amazon Inspector organization.

" + }, + "lambda":{ + "shape":"Boolean", + "documentation":"

Represents whether AWS Lambda scans are automatically enabled for new members of your Amazon Inspector organization.

" } }, "documentation":"

Represents which scan types are automatically enabled for new members of your Amazon Inspector organization.

" @@ -1029,7 +1098,7 @@ }, "registry":{ "shape":"NonEmptyString", - "documentation":"

The registry the Amazon ECR container image belongs to.

" + "documentation":"

The registry for the Amazon ECR container image.

" }, "repositoryName":{ "shape":"NonEmptyString", @@ -1046,6 +1115,59 @@ "ALL" ] }, + "AwsLambdaFunctionDetails":{ + "type":"structure", + "required":[ + "codeSha256", + "executionRoleArn", + "functionName", + "runtime", + "version" + ], + "members":{ + "architectures":{ + "shape":"ArchitectureList", + "documentation":"

The instruction set architecture that the AWS Lambda function supports. Architecture is a string array with one of the valid values. The default architecture value is x86_64.

" + }, + "codeSha256":{ + "shape":"NonEmptyString", + "documentation":"

The SHA256 hash of the AWS Lambda function's deployment package.

" + }, + "executionRoleArn":{ + "shape":"ExecutionRoleArn", + "documentation":"

The AWS Lambda function's execution role.

" + }, + "functionName":{ + "shape":"FunctionName", + "documentation":"

The name of the AWS Lambda function.

" + }, + "lastModifiedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that a user last updated the configuration, in ISO 8601 format

" + }, + "layers":{ + "shape":"LayerList", + "documentation":"

The AWS Lambda function's layers. A Lambda function can have up to five layers.

" + }, + "packageType":{ + "shape":"PackageType", + "documentation":"

The type of deployment package. Set to Image for container image and set Zip for .zip file archive.

" + }, + "runtime":{ + "shape":"Runtime", + "documentation":"

The runtime environment for the AWS Lambda function.

" + }, + "version":{ + "shape":"Version", + "documentation":"

The version of the AWS Lambda function.

" + }, + "vpcConfig":{ + "shape":"LambdaVpcConfig", + "documentation":"

The AWS Lambda function's networking configuration.

" + } + }, + "documentation":"

A summary of information about the AWS Lambda function.

" + }, "BadRequestException":{ "type":"structure", "required":["message"], @@ -1210,13 +1332,25 @@ "shape":"CoverageStringFilterList", "documentation":"

The Amazon ECR repository name to filter on.

" }, + "lambdaFunctionName":{ + "shape":"CoverageStringFilterList", + "documentation":"

Returns coverage statistics for AWS Lambda functions filtered by function names.

" + }, + "lambdaFunctionRuntime":{ + "shape":"CoverageStringFilterList", + "documentation":"

Returns coverage statistics for AWS Lambda functions filtered by runtime.

" + }, + "lambdaFunctionTags":{ + "shape":"CoverageMapFilterList", + "documentation":"

Returns coverage statistics for AWS Lambda functions filtered by tag.

" + }, "resourceId":{ "shape":"CoverageStringFilterList", "documentation":"

An array of Amazon Web Services resource IDs to return coverage statistics for.

" }, "resourceType":{ "shape":"CoverageStringFilterList", - "documentation":"

An array of Amazon Web Services resource types to return coverage statistics for.

" + "documentation":"

An array of Amazon Web Services resource types to return coverage statistics for. The values can be AWS_EC2_INSTANCE or AWS_ECR_REPOSITORY.

" }, "scanStatusCode":{ "shape":"CoverageStringFilterList", @@ -1270,7 +1404,8 @@ "enum":[ "AWS_EC2_INSTANCE", "AWS_ECR_CONTAINER_IMAGE", - "AWS_ECR_REPOSITORY" + "AWS_ECR_REPOSITORY", + "AWS_LAMBDA_FUNCTION" ] }, "CoverageStringComparison":{ @@ -1373,6 +1508,10 @@ "shape":"FilterName", "documentation":"

The name of the filter. Minimum length of 3. Maximum length of 64. Valid characters include alphanumeric characters, dot (.), underscore (_), and dash (-). Spaces are not allowed.

" }, + "reason":{ + "shape":"FilterReason", + "documentation":"

The reason for creating the filter.

" + }, "tags":{ "shape":"TagMap", "documentation":"

A list of tags for the filter.

" @@ -1671,7 +1810,7 @@ "DisableResourceTypeList":{ "type":"list", "member":{"shape":"ResourceScanType"}, - "max":2, + "max":3, "min":0 }, "DisableResponse":{ @@ -1748,7 +1887,7 @@ "members":{ "accountId":{ "shape":"String", - "documentation":"

The Amazon Web Services account the Amazon EC2 instance belongs to.

" + "documentation":"

The Amazon Web Services account for the Amazon EC2 instance.

" }, "ami":{ "shape":"AmiId", @@ -1812,6 +1951,27 @@ "UNKNOWN" ] }, + "EcrConfiguration":{ + "type":"structure", + "required":["rescanDuration"], + "members":{ + "rescanDuration":{ + "shape":"EcrRescanDuration", + "documentation":"

The ECR automated re-scan duration defines how long an ECR image will be actively scanned by Amazon Inspector. When the number of days since an image was last pushed exceeds the automated re-scan duration the monitoring state of that image becomes inactive and all associated findings are scheduled for closure.

" + } + }, + "documentation":"

Details about the ECR automated re-scan duration setting for your environment.

" + }, + "EcrConfigurationState":{ + "type":"structure", + "members":{ + "rescanDurationState":{ + "shape":"EcrRescanDurationState", + "documentation":"

An object that contains details about the state of the ECR automated re-scan setting.

" + } + }, + "documentation":"

Details about the state of the ECR scans for your environment.

" + }, "EcrContainerImageMetadata":{ "type":"structure", "members":{ @@ -1836,6 +1996,40 @@ }, "documentation":"

Information on the Amazon ECR repository metadata associated with a finding.

" }, + "EcrRescanDuration":{ + "type":"string", + "enum":[ + "LIFETIME", + "DAYS_30", + "DAYS_180" + ] + }, + "EcrRescanDurationState":{ + "type":"structure", + "members":{ + "rescanDuration":{ + "shape":"EcrRescanDuration", + "documentation":"

The ECR automated re-scan duration defines how long an ECR image will be actively scanned by Amazon Inspector. When the number of days since an image was last pushed exceeds the automated re-scan duration the monitoring state of that image becomes inactive and all associated findings are scheduled for closure.

" + }, + "status":{ + "shape":"EcrRescanDurationStatus", + "documentation":"

The status of changes to the ECR automated re-scan duration.

" + }, + "updatedAt":{ + "shape":"DateTimeTimestamp", + "documentation":"

A timestamp representing when the last time the ECR scan duration setting was changed.

" + } + }, + "documentation":"

Details about the state of any changes to the ECR automated re-scan duration setting.

" + }, + "EcrRescanDurationStatus":{ + "type":"string", + "enum":[ + "SUCCESS", + "PENDING", + "FAILED" + ] + }, "EcrScanFrequency":{ "type":"string", "enum":[ @@ -1891,7 +2085,7 @@ "EnableResourceTypeList":{ "type":"list", "member":{"shape":"ResourceScanType"}, - "max":2, + "max":3, "min":1 }, "EnableResponse":{ @@ -1923,10 +2117,32 @@ "EVENTBRIDGE_UNAVAILABLE", "EVENTBRIDGE_THROTTLED", "RESOURCE_SCAN_NOT_DISABLED", - "DISASSOCIATE_ALL_MEMBERS" + "DISASSOCIATE_ALL_MEMBERS", + "ACCOUNT_IS_ISOLATED" ] }, "ErrorMessage":{"type":"string"}, + "ExecutionRoleArn":{ + "type":"string", + "pattern":"^arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$" + }, + "ExploitAvailable":{ + "type":"string", + "enum":[ + "YES", + "NO" + ] + }, + "ExploitabilityDetails":{ + "type":"structure", + "members":{ + "lastKnownExploitAt":{ + "shape":"DateTimeTimestamp", + "documentation":"

The date and time of the last exploit associated with a finding discovered in your environment.

" + } + }, + "documentation":"

The details of an exploit available for a finding discovered in your environment.

" + }, "ExternalReportStatus":{ "type":"string", "enum":[ @@ -2100,6 +2316,10 @@ "shape":"StringFilterList", "documentation":"

The tags attached to the Amazon ECR container image.

" }, + "exploitAvailable":{ + "shape":"StringFilterList", + "documentation":"

Filters the list of AWS Lambda findings by the availability of exploits.

" + }, "findingArn":{ "shape":"StringFilterList", "documentation":"

Details on the finding ARNs used to filter findings.

" @@ -2116,10 +2336,34 @@ "shape":"DateFilterList", "documentation":"

Details on the date and time a finding was first seen used to filter findings.

" }, + "fixAvailable":{ + "shape":"StringFilterList", + "documentation":"

Details on whether a fix is available through a version update. This value can be YES, NO, or PARTIAL. A PARTIAL fix means that some, but not all, of the packages identified in the finding have fixes available through updated versions.

" + }, "inspectorScore":{ "shape":"NumberFilterList", "documentation":"

The Amazon Inspector score to filter on.

" }, + "lambdaFunctionExecutionRoleArn":{ + "shape":"StringFilterList", + "documentation":"

Filters the list of AWS Lambda functions by execution role.

" + }, + "lambdaFunctionLastModifiedAt":{ + "shape":"DateFilterList", + "documentation":"

Filters the list of AWS Lambda functions by the date and time that a user last updated the configuration, in ISO 8601 format

" + }, + "lambdaFunctionLayers":{ + "shape":"StringFilterList", + "documentation":"

Filters the list of AWS Lambda functions by the function's layers. A Lambda function can have up to five layers.

" + }, + "lambdaFunctionName":{ + "shape":"StringFilterList", + "documentation":"

Filters the list of AWS Lambda functions by the name of the function.

" + }, + "lambdaFunctionRuntime":{ + "shape":"StringFilterList", + "documentation":"

Filters the list of AWS Lambda functions by the runtime environment for the Lambda function.

" + }, "lastObservedAt":{ "shape":"DateFilterList", "documentation":"

Details on the date and time a finding was last seen used to filter findings.

" @@ -2221,6 +2465,14 @@ "shape":"FindingDescription", "documentation":"

The description of the finding.

" }, + "exploitAvailable":{ + "shape":"ExploitAvailable", + "documentation":"

If a finding discovered in your environment has an exploit available.

" + }, + "exploitabilityDetails":{ + "shape":"ExploitabilityDetails", + "documentation":"

The details of an exploit available for a finding discovered in your environment.

" + }, "findingArn":{ "shape":"FindingArn", "documentation":"

The Amazon Resource Number (ARN) of the finding.

" @@ -2229,6 +2481,10 @@ "shape":"DateTimeTimestamp", "documentation":"

The date and time that the finding was first observed.

" }, + "fixAvailable":{ + "shape":"FixAvailable", + "documentation":"

Details on whether a fix is available through a version update. This value can be YES, NO, or PARTIAL. A PARTIAL fix means that some, but not all, of the packages identified in the finding have fixes available through updated versions.

" + }, "inspectorScore":{ "shape":"Double", "documentation":"

The Amazon Inspector score given to the finding.

" @@ -2360,6 +2616,14 @@ "ALL" ] }, + "FixAvailable":{ + "type":"string", + "enum":[ + "YES", + "NO", + "PARTIAL" + ] + }, "FreeTrialAccountInfo":{ "type":"structure", "required":[ @@ -2459,9 +2723,28 @@ "type":"string", "enum":[ "EC2", - "ECR" + "ECR", + "LAMBDA" ] }, + "FunctionName":{ + "type":"string", + "pattern":"^[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$" + }, + "GetConfigurationRequest":{ + "type":"structure", + "members":{ + } + }, + "GetConfigurationResponse":{ + "type":"structure", + "members":{ + "ecrConfiguration":{ + "shape":"EcrConfigurationState", + "documentation":"

Specifies how the ECR automated re-scan duration is currently configured for your environment.

" + } + } + }, "GetDelegatedAdminAccountRequest":{ "type":"structure", "members":{ @@ -2670,6 +2953,195 @@ "type":"list", "member":{"shape":"IpV6Address"} }, + "LambdaFunctionAggregation":{ + "type":"structure", + "members":{ + "functionNames":{ + "shape":"StringFilterList", + "documentation":"

The AWS Lambda function names to include in the aggregation results.

" + }, + "functionTags":{ + "shape":"MapFilterList", + "documentation":"

The tags to include in the aggregation results.

" + }, + "resourceIds":{ + "shape":"StringFilterList", + "documentation":"

The resource IDs to include in the aggregation results.

" + }, + "runtimes":{ + "shape":"StringFilterList", + "documentation":"

Returns findings aggregated by AWS Lambda function runtime environments.

" + }, + "sortBy":{ + "shape":"LambdaFunctionSortBy", + "documentation":"

The finding severity to use for sorting the results.

" + }, + "sortOrder":{ + "shape":"SortOrder", + "documentation":"

The order to use for sorting the results.

" + } + }, + "documentation":"

The details that define a findings aggregation based on AWS Lambda functions.

" + }, + "LambdaFunctionAggregationResponse":{ + "type":"structure", + "required":["resourceId"], + "members":{ + "accountId":{ + "shape":"AccountId", + "documentation":"

The ID of the AWS account that owns the AWS Lambda function.

" + }, + "functionName":{ + "shape":"String", + "documentation":"

The AWS Lambda function names included in the aggregation results.

" + }, + "lambdaTags":{ + "shape":"TagMap", + "documentation":"

The tags included in the aggregation results.

" + }, + "lastModifiedAt":{ + "shape":"DateTimeTimestamp", + "documentation":"

The date that the AWS Lambda function included in the aggregation results was last changed.

" + }, + "resourceId":{ + "shape":"NonEmptyString", + "documentation":"

The resource IDs included in the aggregation results.

" + }, + "runtime":{ + "shape":"String", + "documentation":"

The runtimes included in the aggregation results.

" + }, + "severityCounts":{"shape":"SeverityCounts"} + }, + "documentation":"

A response that contains the results of an AWS Lambda function finding aggregation.

" + }, + "LambdaFunctionMetadata":{ + "type":"structure", + "members":{ + "functionName":{ + "shape":"String", + "documentation":"

The name of a function.

" + }, + "functionTags":{ + "shape":"TagMap", + "documentation":"

The resource tags on an AWS Lambda function.

" + }, + "layers":{ + "shape":"LambdaLayerList", + "documentation":"

The layers for an AWS Lambda function. A Lambda function can have up to five layers.

" + }, + "runtime":{ + "shape":"Runtime", + "documentation":"

An AWS Lambda function's runtime.

" + } + }, + "documentation":"

The AWS Lambda function metadata.

" + }, + "LambdaFunctionSortBy":{ + "type":"string", + "enum":[ + "CRITICAL", + "HIGH", + "ALL" + ] + }, + "LambdaLayerAggregation":{ + "type":"structure", + "members":{ + "functionNames":{ + "shape":"StringFilterList", + "documentation":"

The names of the AWS Lambda functions associated with the layers.

" + }, + "layerArns":{ + "shape":"StringFilterList", + "documentation":"

The Amazon Resource Name (ARN) of the AWS Lambda function layer.

" + }, + "resourceIds":{ + "shape":"StringFilterList", + "documentation":"

The resource IDs for the AWS Lambda function layers.

" + }, + "sortBy":{ + "shape":"LambdaLayerSortBy", + "documentation":"

The finding severity to use for sorting the results.

" + }, + "sortOrder":{ + "shape":"SortOrder", + "documentation":"

The order to use for sorting the results.

" + } + }, + "documentation":"

The details that define a findings aggregation based on an AWS Lambda function's layers.

" + }, + "LambdaLayerAggregationResponse":{ + "type":"structure", + "required":[ + "accountId", + "functionName", + "layerArn", + "resourceId" + ], + "members":{ + "accountId":{ + "shape":"AccountId", + "documentation":"

The account ID of the AWS Lambda function layer.

" + }, + "functionName":{ + "shape":"NonEmptyString", + "documentation":"

The names of the AWS Lambda functions associated with the layers.

" + }, + "layerArn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the AWS Lambda function layer.

" + }, + "resourceId":{ + "shape":"NonEmptyString", + "documentation":"

The Resource ID of the AWS Lambda function layer.

" + }, + "severityCounts":{"shape":"SeverityCounts"} + }, + "documentation":"

A response that contains the results of an AWS Lambda function layer finding aggregation.

" + }, + "LambdaLayerArn":{ + "type":"string", + "pattern":"^arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\\d{12}:layer:[a-zA-Z0-9-_]+:[0-9]+$" + }, + "LambdaLayerList":{ + "type":"list", + "member":{"shape":"String"}, + "max":5, + "min":0 + }, + "LambdaLayerSortBy":{ + "type":"string", + "enum":[ + "CRITICAL", + "HIGH", + "ALL" + ] + }, + "LambdaVpcConfig":{ + "type":"structure", + "members":{ + "securityGroupIds":{ + "shape":"SecurityGroupIdList", + "documentation":"

The VPC security groups and subnets that are attached to an AWS Lambda function. For more information, see VPC Settings.

" + }, + "subnetIds":{ + "shape":"SubnetIdList", + "documentation":"

A list of VPC subnet IDs.

" + }, + "vpcId":{ + "shape":"VpcId", + "documentation":"

The ID of the VPC.

" + } + }, + "documentation":"

The VPC security groups and subnets that are attached to an AWS Lambda function. For more information, see VPC Settings.

" + }, + "LayerList":{ + "type":"list", + "member":{"shape":"LambdaLayerArn"}, + "max":5, + "min":1 + }, "ListAccountPermissionsMaxResults":{ "type":"integer", "box":true, @@ -3270,6 +3742,7 @@ "shape":"StringFilter", "documentation":"

An object that contains details on the package release to filter on.

" }, + "sourceLambdaLayerArn":{"shape":"StringFilter"}, "sourceLayerHash":{ "shape":"StringFilter", "documentation":"

An object that contains details on the source layer hash to filter on.

" @@ -3301,7 +3774,11 @@ "GOBINARY", "GOMOD", "JAR", - "OS" + "OS", + "PIP", + "PYTHONPKG", + "NODEPKG", + "POM" ] }, "PackageName":{ @@ -3322,6 +3799,13 @@ "ALL" ] }, + "PackageType":{ + "type":"string", + "enum":[ + "IMAGE", + "ZIP" + ] + }, "PackageVersion":{ "type":"string", "max":1024, @@ -3331,8 +3815,7 @@ "type":"structure", "required":[ "source", - "vulnerabilityId", - "vulnerablePackages" + "vulnerabilityId" ], "members":{ "cvss":{ @@ -3507,7 +3990,11 @@ "type":"string", "enum":[ "INTERNAL_ERROR", - "INVALID_PERMISSIONS" + "INVALID_PERMISSIONS", + "NO_FINDINGS_FOUND", + "BUCKET_NOT_FOUND", + "INCOMPATIBLE_BUCKET_REGION", + "MALFORMED_KMS_KEY" ] }, "RepositoryAggregation":{ @@ -3604,6 +4091,10 @@ "awsEcrContainerImage":{ "shape":"AwsEcrContainerImageDetails", "documentation":"

An object that contains details about the Amazon ECR container image involved in the finding.

" + }, + "awsLambdaFunction":{ + "shape":"AwsLambdaFunctionDetails", + "documentation":"

A summary of the information about an AWS Lambda function affected by a finding.

" } }, "documentation":"

Contains details about the resource involved in the finding.

" @@ -3612,7 +4103,7 @@ "type":"string", "max":341, "min":10, - "pattern":"(^arn:.*:ecr:.*:\\d{12}:repository\\/(?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*(\\/sha256:[a-z0-9]{64})?$)|(^i-([a-z0-9]{8}|[a-z0-9]{17}|\\\\*)$)" + "pattern":"(^arn:.*:ecr:.*:\\d{12}:repository\\/(?:[a-z0-9]+(?:[._-][a-z0-9]+)*\\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*(\\/sha256:[a-z0-9]{64})?$)|(^i-([a-z0-9]{8}|[a-z0-9]{17}|\\\\*)$|(^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$))" }, "ResourceList":{ "type":"list", @@ -3647,6 +4138,10 @@ "ecrRepository":{ "shape":"EcrRepositoryMetadata", "documentation":"

An object that contains details about the repository an Amazon ECR image resides in.

" + }, + "lambdaFunction":{ + "shape":"LambdaFunctionMetadata", + "documentation":"

An object that contains metadata details for an AWS Lambda function.

" } }, "documentation":"

An object that contains details about the metadata for an Amazon ECR resource.

" @@ -3655,7 +4150,8 @@ "type":"string", "enum":[ "EC2", - "ECR" + "ECR", + "LAMBDA" ] }, "ResourceState":{ @@ -3672,7 +4168,8 @@ "ecr":{ "shape":"State", "documentation":"

An object detailing the state of Amazon Inspector scanning for Amazon ECR resources.

" - } + }, + "lambda":{"shape":"State"} }, "documentation":"

Details the state of Amazon Inspector for each resource type Amazon Inspector scans.

" }, @@ -3690,6 +4187,10 @@ "ecr":{ "shape":"Status", "documentation":"

The status of Amazon Inspector scanning for Amazon ECR resources.

" + }, + "lambda":{ + "shape":"Status", + "documentation":"

The status of Amazon Inspector scanning for AWS Lambda function resources.

" } }, "documentation":"

Details the status of Amazon Inspector for each resource type Amazon Inspector scans.

" @@ -3699,7 +4200,24 @@ "enum":[ "AWS_EC2_INSTANCE", "AWS_ECR_CONTAINER_IMAGE", - "AWS_ECR_REPOSITORY" + "AWS_ECR_REPOSITORY", + "AWS_LAMBDA_FUNCTION" + ] + }, + "Runtime":{ + "type":"string", + "enum":[ + "NODEJS", + "NODEJS_12_X", + "NODEJS_14_X", + "NODEJS_16_X", + "JAVA_8", + "JAVA_8_AL2", + "JAVA_11", + "PYTHON_3_7", + "PYTHON_3_8", + "PYTHON_3_9", + "UNSUPPORTED" ] }, "ScanStatus":{ @@ -3742,7 +4260,12 @@ "IMAGE_SIZE_EXCEEDED", "SCAN_FREQUENCY_MANUAL", "SCAN_FREQUENCY_SCAN_ON_PUSH", - "EC2_INSTANCE_STOPPED" + "EC2_INSTANCE_STOPPED", + "PENDING_DISABLE", + "NO_INVENTORY", + "STALE_INVENTORY", + "EXCLUDED_BY_TAG", + "UNSUPPORTED_RUNTIME" ] }, "ScanType":{ @@ -3752,11 +4275,22 @@ "PACKAGE" ] }, + "SecurityGroupId":{ + "type":"string", + "pattern":"^sg-([a-z0-9]{8}|[a-z0-9]{17}|\\*)$" + }, + "SecurityGroupIdList":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":5, + "min":0 + }, "Service":{ "type":"string", "enum":[ "EC2", - "ECR" + "ECR", + "LAMBDA" ] }, "ServiceQuotaExceededException":{ @@ -3940,7 +4474,7 @@ "members":{ "comparison":{ "shape":"StringComparison", - "documentation":"

The operator to use when comparing values in the filter

" + "documentation":"

The operator to use when comparing values in the filter.

" }, "value":{ "shape":"StringInput", @@ -3964,6 +4498,16 @@ "type":"list", "member":{"shape":"NonEmptyString"} }, + "SubnetId":{ + "type":"string", + "pattern":"^subnet-([a-z0-9]{8}|[a-z0-9]{17}|\\*)$" + }, + "SubnetIdList":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":16, + "min":0 + }, "TagKey":{ "type":"string", "max":128, @@ -4013,14 +4557,21 @@ "type":"structure", "required":["message"], "members":{ - "message":{"shape":"String"} + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds to wait before retrying the request.

", + "location":"header", + "locationName":"Retry-After" + } }, "documentation":"

The limit on the number of requests per second was exceeded.

", "error":{ "httpStatusCode":429, "senderFault":true }, - "exception":true + "exception":true, + "retryable":{"throttling":true} }, "Timestamp":{"type":"timestamp"}, "TitleAggregation":{ @@ -4106,6 +4657,21 @@ "members":{ } }, + "UpdateConfigurationRequest":{ + "type":"structure", + "required":["ecrConfiguration"], + "members":{ + "ecrConfiguration":{ + "shape":"EcrConfiguration", + "documentation":"

Specifies how the ECR automated re-scan will be updated for your environment.

" + } + } + }, + "UpdateConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateFilterRequest":{ "type":"structure", "required":["filterArn"], @@ -4129,6 +4695,10 @@ "name":{ "shape":"FilterName", "documentation":"

The name of the filter.

" + }, + "reason":{ + "shape":"FilterReason", + "documentation":"

The reason the filter was updated.

" } } }, @@ -4191,7 +4761,7 @@ "UsageAccountIdList":{ "type":"list", "member":{"shape":"UsageAccountId"}, - "max":5000, + "max":7000, "min":1 }, "UsageList":{ @@ -4221,7 +4791,8 @@ "enum":[ "EC2_INSTANCE_HOURS", "ECR_INITIAL_SCAN", - "ECR_RESCAN" + "ECR_RESCAN", + "LAMBDA_FUNCTION_HOURS" ] }, "UsageValue":{ @@ -4282,9 +4853,17 @@ "OTHER" ] }, + "Version":{ + "type":"string", + "pattern":"^\\$LATEST|[0-9]+$" + }, + "VpcId":{ + "type":"string", + "pattern":"^vpc-([a-z0-9]{8}|[a-z0-9]{17}|\\*)$" + }, "VulnerabilityId":{ "type":"string", - "max":64, + "max":128, "min":1 }, "VulnerabilityIdList":{ @@ -4326,6 +4905,14 @@ "shape":"PackageRelease", "documentation":"

The release of the vulnerable package.

" }, + "remediation":{ + "shape":"VulnerablePackageRemediation", + "documentation":"

The code to run in your environment to update packages with a fix available.

" + }, + "sourceLambdaLayerArn":{ + "shape":"LambdaLayerArn", + "documentation":"

The Amazon Resource Number (ARN) of the AWS Lambda function affected by a finding.

" + }, "sourceLayerHash":{ "shape":"SourceLayerHash", "documentation":"

The source layer hash of the vulnerable package.

" @@ -4340,6 +4927,11 @@ "VulnerablePackageList":{ "type":"list", "member":{"shape":"VulnerablePackage"} + }, + "VulnerablePackageRemediation":{ + "type":"string", + "max":1024, + "min":1 } }, "documentation":"

Amazon Inspector is a vulnerability discovery service that automates continuous scanning for security vulnerabilities within your Amazon EC2 and Amazon ECR environments.

" diff --git a/botocore/data/iot-data/2015-05-28/endpoint-rule-set-1.json b/botocore/data/iot-data/2015-05-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..637371bc --- /dev/null +++ b/botocore/data/iot-data/2015-05-28/endpoint-rule-set-1.json @@ -0,0 +1,448 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data-ats.iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-2" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ca-central-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.ca-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-west-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-west-2" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://data.iot-fips.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://data-ats.iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data-ats.iot.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://data-ats.iot.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iot-data/2015-05-28/examples-1.json b/botocore/data/iot-data/2015-05-28/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iot-data/2015-05-28/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iot-data/2015-05-28/service-2.json b/botocore/data/iot-data/2015-05-28/service-2.json index f6f3ab66..595039c3 100644 --- a/botocore/data/iot-data/2015-05-28/service-2.json +++ b/botocore/data/iot-data/2015-05-28/service-2.json @@ -118,7 +118,8 @@ {"shape":"InternalFailureException"}, {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"}, - {"shape":"MethodNotAllowedException"} + {"shape":"MethodNotAllowedException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Publishes an MQTT message.

Requires permission to access the Publish action.

For more information about MQTT messages, see MQTT Protocol in the IoT Developer Guide.

For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.

" }, @@ -157,6 +158,8 @@ "error":{"httpStatusCode":409}, "exception":true }, + "ContentType":{"type":"string"}, + "CorrelationData":{"type":"string"}, "DeleteThingShadowRequest":{ "type":"structure", "required":["thingName"], @@ -355,6 +358,7 @@ "max":200, "min":1 }, + "MessageExpiry":{"type":"long"}, "MethodNotAllowedException":{ "type":"structure", "members":{ @@ -378,6 +382,13 @@ "min":1 }, "Payload":{"type":"blob"}, + "PayloadFormatIndicator":{ + "type":"string", + "enum":[ + "UNSPECIFIED_BYTES", + "UTF8_DATA" + ] + }, "PayloadSize":{"type":"long"}, "PublishRequest":{ "type":"structure", @@ -391,7 +402,7 @@ }, "qos":{ "shape":"Qos", - "documentation":"

The Quality of Service (QoS) level.

", + "documentation":"

The Quality of Service (QoS) level. The default QoS level is 0.

", "location":"querystring", "locationName":"qos" }, @@ -404,6 +415,43 @@ "payload":{ "shape":"Payload", "documentation":"

The message body. MQTT accepts text, binary, and empty (null) message payloads.

Publishing an empty (null) payload with retain = true deletes the retained message identified by topic from Amazon Web Services IoT Core.

" + }, + "userProperties":{ + "shape":"UserProperties", + "documentation":"

A JSON string that contains an array of JSON objects. If you don’t use Amazon Web Services SDK or CLI, you must encode the JSON string to base64 format before adding it to the HTTP header. userProperties is an HTTP header value in the API.

The following example userProperties parameter is a JSON string which represents two User Properties. Note that it needs to be base64-encoded:

[{\"deviceName\": \"alpha\"}, {\"deviceCnt\": \"45\"}]

", + "jsonvalue":true, + "location":"header", + "locationName":"x-amz-mqtt5-user-properties" + }, + "payloadFormatIndicator":{ + "shape":"PayloadFormatIndicator", + "documentation":"

An Enum string value that indicates whether the payload is formatted as UTF-8. payloadFormatIndicator is an HTTP header value in the API.

", + "location":"header", + "locationName":"x-amz-mqtt5-payload-format-indicator" + }, + "contentType":{ + "shape":"ContentType", + "documentation":"

A UTF-8 encoded string that describes the content of the publishing message.

", + "location":"querystring", + "locationName":"contentType" + }, + "responseTopic":{ + "shape":"ResponseTopic", + "documentation":"

A UTF-8 encoded string that's used as the topic name for a response message. The response topic is used to describe the topic which the receiver should publish to as part of the request-response flow. The topic must not contain wildcard characters.

", + "location":"querystring", + "locationName":"responseTopic" + }, + "correlationData":{ + "shape":"CorrelationData", + "documentation":"

The base64-encoded binary data used by the sender of the request message to identify which request the response message is for when it's received. correlationData is an HTTP header value in the API.

", + "location":"header", + "locationName":"x-amz-mqtt5-correlation-data" + }, + "messageExpiry":{ + "shape":"MessageExpiry", + "documentation":"

A user-defined integer value that represents the message expiry interval in seconds. If absent, the message doesn't expire. For more information about the limits of messageExpiry, see Amazon Web Services IoT Core message broker and protocol limits and quotas from the Amazon Web Services Reference Guide.

", + "location":"querystring", + "locationName":"messageExpiry" } }, "documentation":"

The input for the Publish operation.

", @@ -438,6 +486,7 @@ "error":{"httpStatusCode":404}, "exception":true }, + "ResponseTopic":{"type":"string"}, "Retain":{"type":"boolean"}, "RetainedMessageList":{ "type":"list", @@ -566,6 +615,7 @@ "documentation":"

The output from the UpdateThingShadow operation.

", "payload":"payload" }, + "UserProperties":{"type":"string"}, "errorMessage":{"type":"string"} }, "documentation":"IoT data

IoT data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the Amazon Web Services cloud. It implements a broker for applications and things to publish messages over HTTP (Publish) and retrieve, update, and delete shadows. A shadow is a persistent representation of your things and their state in the Amazon Web Services cloud.

Find the endpoint address for actions in IoT data by running this CLI command:

aws iot describe-endpoint --endpoint-type iot:Data-ATS

The service name used by Amazon Web ServicesSignature Version 4 to sign requests is: iotdevicegateway.

" diff --git a/botocore/data/iot-jobs-data/2017-09-29/endpoint-rule-set-1.json b/botocore/data/iot-jobs-data/2017-09-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..10396003 --- /dev/null +++ b/botocore/data/iot-jobs-data/2017-09-29/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data.jobs.iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data.jobs.iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data.jobs.iot.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://data.jobs.iot.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iot-roborunner/2018-05-10/endpoint-rule-set-1.json b/botocore/data/iot-roborunner/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..ec4b0d7a --- /dev/null +++ b/botocore/data/iot-roborunner/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotroborunner-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotroborunner-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotroborunner.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iotroborunner.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iot-roborunner/2018-05-10/paginators-1.json b/botocore/data/iot-roborunner/2018-05-10/paginators-1.json new file mode 100644 index 00000000..6d1956a6 --- /dev/null +++ b/botocore/data/iot-roborunner/2018-05-10/paginators-1.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "ListDestinations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "destinations" + }, + "ListSites": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "sites" + }, + "ListWorkerFleets": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "workerFleets" + }, + "ListWorkers": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "workers" + } + } +} diff --git a/botocore/data/iot-roborunner/2018-05-10/service-2.json b/botocore/data/iot-roborunner/2018-05-10/service-2.json new file mode 100644 index 00000000..dd42c75e --- /dev/null +++ b/botocore/data/iot-roborunner/2018-05-10/service-2.json @@ -0,0 +1,1407 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-05-10", + "endpointPrefix":"iotroborunner", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS IoT RoboRunner", + "serviceId":"IoT RoboRunner", + "signatureVersion":"v4", + "signingName":"iotroborunner", + "uid":"iot-roborunner-2018-05-10" + }, + "operations":{ + "CreateDestination":{ + "name":"CreateDestination", + "http":{ + "method":"POST", + "requestUri":"/createDestination", + "responseCode":200 + }, + "input":{"shape":"CreateDestinationRequest"}, + "output":{"shape":"CreateDestinationResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Grants permission to create a destination

", + "idempotent":true + }, + "CreateSite":{ + "name":"CreateSite", + "http":{ + "method":"POST", + "requestUri":"/createSite", + "responseCode":200 + }, + "input":{"shape":"CreateSiteRequest"}, + "output":{"shape":"CreateSiteResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Grants permission to create a site

", + "idempotent":true + }, + "CreateWorker":{ + "name":"CreateWorker", + "http":{ + "method":"POST", + "requestUri":"/createWorker", + "responseCode":200 + }, + "input":{"shape":"CreateWorkerRequest"}, + "output":{"shape":"CreateWorkerResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Grants permission to create a worker

", + "idempotent":true + }, + "CreateWorkerFleet":{ + "name":"CreateWorkerFleet", + "http":{ + "method":"POST", + "requestUri":"/createWorkerFleet", + "responseCode":200 + }, + "input":{"shape":"CreateWorkerFleetRequest"}, + "output":{"shape":"CreateWorkerFleetResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Grants permission to create a worker fleet

", + "idempotent":true + }, + "DeleteDestination":{ + "name":"DeleteDestination", + "http":{ + "method":"POST", + "requestUri":"/deleteDestination", + "responseCode":200 + }, + "input":{"shape":"DeleteDestinationRequest"}, + "output":{"shape":"DeleteDestinationResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to delete a destination

" + }, + "DeleteSite":{ + "name":"DeleteSite", + "http":{ + "method":"POST", + "requestUri":"/deleteSite", + "responseCode":200 + }, + "input":{"shape":"DeleteSiteRequest"}, + "output":{"shape":"DeleteSiteResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to delete a site

" + }, + "DeleteWorker":{ + "name":"DeleteWorker", + "http":{ + "method":"POST", + "requestUri":"/deleteWorker", + "responseCode":200 + }, + "input":{"shape":"DeleteWorkerRequest"}, + "output":{"shape":"DeleteWorkerResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to delete a worker

" + }, + "DeleteWorkerFleet":{ + "name":"DeleteWorkerFleet", + "http":{ + "method":"POST", + "requestUri":"/deleteWorkerFleet", + "responseCode":200 + }, + "input":{"shape":"DeleteWorkerFleetRequest"}, + "output":{"shape":"DeleteWorkerFleetResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to delete a worker fleet

" + }, + "GetDestination":{ + "name":"GetDestination", + "http":{ + "method":"GET", + "requestUri":"/getDestination", + "responseCode":200 + }, + "input":{"shape":"GetDestinationRequest"}, + "output":{"shape":"GetDestinationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to get a destination

" + }, + "GetSite":{ + "name":"GetSite", + "http":{ + "method":"GET", + "requestUri":"/getSite", + "responseCode":200 + }, + "input":{"shape":"GetSiteRequest"}, + "output":{"shape":"GetSiteResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to get a site

" + }, + "GetWorker":{ + "name":"GetWorker", + "http":{ + "method":"GET", + "requestUri":"/getWorker", + "responseCode":200 + }, + "input":{"shape":"GetWorkerRequest"}, + "output":{"shape":"GetWorkerResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to get a worker

" + }, + "GetWorkerFleet":{ + "name":"GetWorkerFleet", + "http":{ + "method":"GET", + "requestUri":"/getWorkerFleet", + "responseCode":200 + }, + "input":{"shape":"GetWorkerFleetRequest"}, + "output":{"shape":"GetWorkerFleetResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to get a worker fleet

" + }, + "ListDestinations":{ + "name":"ListDestinations", + "http":{ + "method":"GET", + "requestUri":"/listDestinations", + "responseCode":200 + }, + "input":{"shape":"ListDestinationsRequest"}, + "output":{"shape":"ListDestinationsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to list destinations

" + }, + "ListSites":{ + "name":"ListSites", + "http":{ + "method":"GET", + "requestUri":"/listSites", + "responseCode":200 + }, + "input":{"shape":"ListSitesRequest"}, + "output":{"shape":"ListSitesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to list sites

" + }, + "ListWorkerFleets":{ + "name":"ListWorkerFleets", + "http":{ + "method":"GET", + "requestUri":"/listWorkerFleets", + "responseCode":200 + }, + "input":{"shape":"ListWorkerFleetsRequest"}, + "output":{"shape":"ListWorkerFleetsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to list worker fleets

" + }, + "ListWorkers":{ + "name":"ListWorkers", + "http":{ + "method":"GET", + "requestUri":"/listWorkers", + "responseCode":200 + }, + "input":{"shape":"ListWorkersRequest"}, + "output":{"shape":"ListWorkersResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to list workers

" + }, + "UpdateDestination":{ + "name":"UpdateDestination", + "http":{ + "method":"POST", + "requestUri":"/updateDestination", + "responseCode":200 + }, + "input":{"shape":"UpdateDestinationRequest"}, + "output":{"shape":"UpdateDestinationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to update a destination

" + }, + "UpdateSite":{ + "name":"UpdateSite", + "http":{ + "method":"POST", + "requestUri":"/updateSite", + "responseCode":200 + }, + "input":{"shape":"UpdateSiteRequest"}, + "output":{"shape":"UpdateSiteResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to update a site

" + }, + "UpdateWorker":{ + "name":"UpdateWorker", + "http":{ + "method":"POST", + "requestUri":"/updateWorker", + "responseCode":200 + }, + "input":{"shape":"UpdateWorkerRequest"}, + "output":{"shape":"UpdateWorkerResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to update a worker

" + }, + "UpdateWorkerFleet":{ + "name":"UpdateWorkerFleet", + "http":{ + "method":"POST", + "requestUri":"/updateWorkerFleet", + "responseCode":200 + }, + "input":{"shape":"UpdateWorkerFleetRequest"}, + "output":{"shape":"UpdateWorkerFleetResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Grants permission to update a worker fleet

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

User does not have sufficient access to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "CartesianCoordinates":{ + "type":"structure", + "required":[ + "x", + "y" + ], + "members":{ + "x":{ + "shape":"Double", + "documentation":"

X coordinate.

" + }, + "y":{ + "shape":"Double", + "documentation":"

Y coordinate.

" + }, + "z":{ + "shape":"Double", + "documentation":"

Z coordinate.

" + } + }, + "documentation":"

Cartesian coordinates in 3D space relative to the RoboRunner origin.

" + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Exception thrown if a resource in a create request already exists.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateDestinationRequest":{ + "type":"structure", + "required":[ + "name", + "site" + ], + "members":{ + "clientToken":{ + "shape":"IdempotencyToken", + "idempotencyToken":true + }, + "name":{"shape":"Name"}, + "site":{"shape":"SiteGenericIdentifier"}, + "state":{ + "shape":"DestinationState", + "documentation":"

The state of the destination. Default used if not specified.

" + }, + "additionalFixedProperties":{"shape":"DestinationAdditionalFixedProperties"} + } + }, + "CreateDestinationResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "createdAt", + "updatedAt", + "state" + ], + "members":{ + "arn":{"shape":"DestinationArn"}, + "id":{"shape":"DestinationId"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "state":{"shape":"DestinationState"} + } + }, + "CreateSiteRequest":{ + "type":"structure", + "required":[ + "name", + "countryCode" + ], + "members":{ + "clientToken":{ + "shape":"IdempotencyToken", + "idempotencyToken":true + }, + "name":{"shape":"Name"}, + "countryCode":{"shape":"SiteCountryCode"}, + "description":{"shape":"SiteDescription"} + } + }, + "CreateSiteResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "createdAt", + "updatedAt" + ], + "members":{ + "arn":{"shape":"SiteArn"}, + "id":{"shape":"SiteId"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"} + } + }, + "CreateWorkerFleetRequest":{ + "type":"structure", + "required":[ + "name", + "site" + ], + "members":{ + "clientToken":{ + "shape":"IdempotencyToken", + "idempotencyToken":true + }, + "name":{"shape":"Name"}, + "site":{"shape":"SiteGenericIdentifier"}, + "additionalFixedProperties":{"shape":"WorkerFleetAdditionalFixedProperties"} + } + }, + "CreateWorkerFleetResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "createdAt", + "updatedAt" + ], + "members":{ + "arn":{"shape":"WorkerFleetArn"}, + "id":{"shape":"WorkerFleetId"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"} + } + }, + "CreateWorkerRequest":{ + "type":"structure", + "required":[ + "name", + "fleet" + ], + "members":{ + "clientToken":{ + "shape":"IdempotencyToken", + "idempotencyToken":true + }, + "name":{"shape":"Name"}, + "fleet":{"shape":"WorkerFleetGenericIdentifier"}, + "additionalTransientProperties":{"shape":"WorkerAdditionalTransientPropertiesJson"}, + "additionalFixedProperties":{"shape":"WorkerAdditionalFixedPropertiesJson"}, + "vendorProperties":{"shape":"VendorProperties"}, + "position":{"shape":"PositionCoordinates"}, + "orientation":{"shape":"Orientation"} + } + }, + "CreateWorkerResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "createdAt", + "updatedAt", + "site" + ], + "members":{ + "arn":{"shape":"WorkerArn"}, + "id":{"shape":"WorkerId"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "site":{"shape":"SiteArn"} + } + }, + "CreatedAtTimestamp":{ + "type":"timestamp", + "documentation":"

Timestamp at which the resource was created.

" + }, + "DeleteDestinationRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{"shape":"DestinationGenericIdentifier"} + } + }, + "DeleteDestinationResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteSiteRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{"shape":"SiteGenericIdentifier"} + } + }, + "DeleteSiteResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteWorkerFleetRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{"shape":"WorkerFleetGenericIdentifier"} + } + }, + "DeleteWorkerFleetResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteWorkerRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{"shape":"WorkerGenericIdentifier"} + } + }, + "DeleteWorkerResponse":{ + "type":"structure", + "members":{ + } + }, + "Destination":{ + "type":"structure", + "required":[ + "arn", + "id", + "name", + "site", + "createdAt", + "updatedAt", + "state" + ], + "members":{ + "arn":{"shape":"DestinationArn"}, + "id":{"shape":"DestinationId"}, + "name":{"shape":"Name"}, + "site":{"shape":"SiteArn"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "state":{"shape":"DestinationState"}, + "additionalFixedProperties":{"shape":"DestinationAdditionalFixedProperties"} + }, + "documentation":"

Area within a facility where work can be performed.

" + }, + "DestinationAdditionalFixedProperties":{ + "type":"string", + "documentation":"

JSON document containing additional fixed properties regarding the destination

", + "max":131072, + "min":1 + }, + "DestinationArn":{ + "type":"string", + "documentation":"

Destination ARN.

", + "max":1011, + "min":1, + "pattern":"arn:aws:iotroborunner:[\\w-]+:\\w+:destination/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$|^arn:aws:iotroborunner:[\\w-]+:\\w+:site/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/destination/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "DestinationGenericIdentifier":{ + "type":"string", + "documentation":"

Destination ARN.

", + "max":1011, + "min":1, + "pattern":"arn:aws:iotroborunner:[\\w-]+:\\w+:destination/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$|^arn:aws:iotroborunner:[\\w-]+:\\w+:site/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/destination/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "DestinationId":{ + "type":"string", + "documentation":"

Filters access by the destination's identifier

", + "max":255, + "min":1 + }, + "DestinationState":{ + "type":"string", + "documentation":"

State of the destination.

", + "enum":[ + "ENABLED", + "DISABLED", + "DECOMMISSIONED" + ] + }, + "Destinations":{ + "type":"list", + "member":{"shape":"Destination"}, + "documentation":"

List of destinations.

" + }, + "Double":{ + "type":"double", + "box":true + }, + "GetDestinationRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"DestinationGenericIdentifier", + "location":"querystring", + "locationName":"id" + } + } + }, + "GetDestinationResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "name", + "site", + "createdAt", + "updatedAt", + "state" + ], + "members":{ + "arn":{"shape":"DestinationArn"}, + "id":{"shape":"DestinationId"}, + "name":{"shape":"Name"}, + "site":{"shape":"SiteArn"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "state":{"shape":"DestinationState"}, + "additionalFixedProperties":{"shape":"DestinationAdditionalFixedProperties"} + } + }, + "GetSiteRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"SiteGenericIdentifier", + "location":"querystring", + "locationName":"id" + } + } + }, + "GetSiteResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "name", + "countryCode", + "createdAt", + "updatedAt" + ], + "members":{ + "arn":{"shape":"SiteArn"}, + "id":{"shape":"SiteId"}, + "name":{"shape":"Name"}, + "countryCode":{"shape":"SiteCountryCode"}, + "description":{"shape":"SiteDescription"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"} + } + }, + "GetWorkerFleetRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"WorkerFleetGenericIdentifier", + "location":"querystring", + "locationName":"id" + } + } + }, + "GetWorkerFleetResponse":{ + "type":"structure", + "required":[ + "id", + "arn", + "name", + "site", + "createdAt", + "updatedAt" + ], + "members":{ + "id":{"shape":"WorkerFleetId"}, + "arn":{"shape":"WorkerFleetArn"}, + "name":{"shape":"Name"}, + "site":{"shape":"SiteArn"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "additionalFixedProperties":{"shape":"WorkerFleetAdditionalFixedProperties"} + } + }, + "GetWorkerRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"WorkerGenericIdentifier", + "location":"querystring", + "locationName":"id" + } + } + }, + "GetWorkerResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "fleet", + "site", + "createdAt", + "updatedAt", + "name" + ], + "members":{ + "arn":{"shape":"WorkerArn"}, + "id":{"shape":"WorkerId"}, + "fleet":{"shape":"WorkerFleetArn"}, + "site":{"shape":"SiteArn"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "name":{"shape":"Name"}, + "additionalTransientProperties":{"shape":"WorkerAdditionalTransientPropertiesJson"}, + "additionalFixedProperties":{"shape":"WorkerAdditionalFixedPropertiesJson"}, + "vendorProperties":{"shape":"VendorProperties"}, + "position":{"shape":"PositionCoordinates"}, + "orientation":{"shape":"Orientation"} + } + }, + "IdempotencyToken":{ + "type":"string", + "documentation":"

Token used for detecting replayed requests. Replayed requests will not be performed multiple times.

", + "max":64, + "min":1, + "pattern":"[!-~]*" + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Exception thrown if something goes wrong within the service.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListDestinationsRequest":{ + "type":"structure", + "required":["site"], + "members":{ + "site":{ + "shape":"SiteGenericIdentifier", + "location":"querystring", + "locationName":"site" + }, + "maxResults":{ + "shape":"PageSize", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "state":{ + "shape":"DestinationState", + "location":"querystring", + "locationName":"state" + } + } + }, + "ListDestinationsResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"PaginationToken"}, + "destinations":{"shape":"Destinations"} + } + }, + "ListSitesPageSize":{ + "type":"integer", + "documentation":"

Maximum number of results to retrieve in a single ListSites call.

", + "box":true, + "max":25, + "min":1 + }, + "ListSitesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListSitesPageSize", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListSitesResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"PaginationToken"}, + "sites":{"shape":"Sites"} + } + }, + "ListWorkerFleetsPageSize":{ + "type":"integer", + "documentation":"

Maximum number of results to retrieve in a single ListWorkerFleets call.

", + "box":true, + "max":25, + "min":1 + }, + "ListWorkerFleetsRequest":{ + "type":"structure", + "required":["site"], + "members":{ + "site":{ + "shape":"SiteGenericIdentifier", + "location":"querystring", + "locationName":"site" + }, + "maxResults":{ + "shape":"ListWorkerFleetsPageSize", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListWorkerFleetsResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"PaginationToken"}, + "workerFleets":{"shape":"WorkerFleets"} + } + }, + "ListWorkersPageSize":{ + "type":"integer", + "documentation":"

Maximum number of results to retrieve in a single ListWorkers call.

", + "box":true, + "max":25, + "min":1 + }, + "ListWorkersRequest":{ + "type":"structure", + "required":["site"], + "members":{ + "site":{ + "shape":"SiteGenericIdentifier", + "location":"querystring", + "locationName":"site" + }, + "maxResults":{ + "shape":"ListWorkersPageSize", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + }, + "fleet":{ + "shape":"WorkerFleetGenericIdentifier", + "location":"querystring", + "locationName":"fleet" + } + } + }, + "ListWorkersResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"PaginationToken"}, + "workers":{"shape":"Workers"} + } + }, + "Name":{ + "type":"string", + "documentation":"

Human friendly name of the resource.

", + "max":255, + "min":1 + }, + "Orientation":{ + "type":"structure", + "members":{ + "degrees":{ + "shape":"OrientationDegreesDouble", + "documentation":"

Degrees, limited on [0, 360)

" + } + }, + "documentation":"

Worker orientation measured in units clockwise from north.

", + "union":true + }, + "OrientationDegreesDouble":{ + "type":"double", + "box":true, + "max":360, + "min":0 + }, + "PageSize":{ + "type":"integer", + "documentation":"

Maximum number of results to retrieve in a single call.

", + "box":true, + "max":1000, + "min":1 + }, + "PaginationToken":{ + "type":"string", + "documentation":"

Pagination token returned when another page of data exists. Provide it in your next call to the API to receive the next page.

", + "max":2048, + "min":1, + "pattern":".*[a-zA-Z0-9_.-/+=]*.*" + }, + "PositionCoordinates":{ + "type":"structure", + "members":{ + "cartesianCoordinates":{ + "shape":"CartesianCoordinates", + "documentation":"

Cartesian coordinates.

" + } + }, + "documentation":"

Supported coordinates for worker position.

", + "union":true + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Exception thrown if a resource referenced in the request doesn't exist.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Exception thrown if the user's AWS account has reached a service limit and the operation cannot proceed.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "Site":{ + "type":"structure", + "required":[ + "arn", + "name", + "countryCode", + "createdAt" + ], + "members":{ + "arn":{"shape":"SiteArn"}, + "name":{ + "shape":"Name", + "documentation":"

The name of the site. Mutable after creation and unique within a given account.

" + }, + "countryCode":{"shape":"SiteCountryCode"}, + "createdAt":{"shape":"CreatedAtTimestamp"} + }, + "documentation":"

Facility containing destinations, workers, activities, and tasks.

" + }, + "SiteArn":{ + "type":"string", + "documentation":"

Site ARN.

", + "max":1011, + "min":1, + "pattern":"arn:aws:iotroborunner:[\\w-]+:\\w+:site/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "SiteCountryCode":{ + "type":"string", + "documentation":"

A valid ISO 3166-1 alpha-2 code for the country in which the site resides. e.g., US.

", + "max":2, + "min":2, + "pattern":"[a-zA-Z]{2}" + }, + "SiteDescription":{ + "type":"string", + "documentation":"

A high-level description of the site.

", + "max":140, + "min":0 + }, + "SiteGenericIdentifier":{ + "type":"string", + "documentation":"

Site ARN.

", + "max":1011, + "min":1, + "pattern":"arn:aws:iotroborunner:[\\w-]+:\\w+:site/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "SiteId":{ + "type":"string", + "documentation":"

Filters access by the site's identifier

", + "max":255, + "min":1 + }, + "Sites":{ + "type":"list", + "member":{"shape":"Site"}, + "documentation":"

List of facilities.

" + }, + "String":{"type":"string"}, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Exception thrown if the api has been called too quickly be the client.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "UpdateDestinationRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{"shape":"DestinationGenericIdentifier"}, + "name":{"shape":"Name"}, + "state":{"shape":"DestinationState"}, + "additionalFixedProperties":{"shape":"DestinationAdditionalFixedProperties"} + } + }, + "UpdateDestinationResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "name", + "updatedAt", + "state" + ], + "members":{ + "arn":{"shape":"DestinationArn"}, + "id":{"shape":"DestinationId"}, + "name":{"shape":"Name"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "state":{"shape":"DestinationState"}, + "additionalFixedProperties":{"shape":"DestinationAdditionalFixedProperties"} + } + }, + "UpdateSiteRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{"shape":"SiteGenericIdentifier"}, + "name":{"shape":"Name"}, + "countryCode":{"shape":"SiteCountryCode"}, + "description":{"shape":"SiteDescription"} + } + }, + "UpdateSiteResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "name", + "updatedAt" + ], + "members":{ + "arn":{"shape":"SiteArn"}, + "id":{"shape":"SiteId"}, + "name":{"shape":"Name"}, + "countryCode":{"shape":"SiteCountryCode"}, + "description":{"shape":"SiteDescription"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"} + } + }, + "UpdateWorkerFleetRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{"shape":"WorkerFleetGenericIdentifier"}, + "name":{"shape":"Name"}, + "additionalFixedProperties":{"shape":"WorkerFleetAdditionalFixedProperties"} + } + }, + "UpdateWorkerFleetResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "name", + "updatedAt" + ], + "members":{ + "arn":{"shape":"WorkerFleetArn"}, + "id":{"shape":"WorkerFleetId"}, + "name":{"shape":"Name"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "additionalFixedProperties":{"shape":"WorkerFleetAdditionalFixedProperties"} + } + }, + "UpdateWorkerRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{"shape":"WorkerGenericIdentifier"}, + "name":{"shape":"Name"}, + "additionalTransientProperties":{"shape":"WorkerAdditionalTransientPropertiesJson"}, + "additionalFixedProperties":{"shape":"WorkerAdditionalFixedPropertiesJson"}, + "vendorProperties":{"shape":"VendorProperties"}, + "position":{"shape":"PositionCoordinates"}, + "orientation":{"shape":"Orientation"} + } + }, + "UpdateWorkerResponse":{ + "type":"structure", + "required":[ + "arn", + "id", + "fleet", + "updatedAt", + "name" + ], + "members":{ + "arn":{"shape":"WorkerArn"}, + "id":{"shape":"WorkerId"}, + "fleet":{"shape":"WorkerFleetArn"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "name":{"shape":"Name"}, + "additionalTransientProperties":{"shape":"WorkerAdditionalTransientPropertiesJson"}, + "additionalFixedProperties":{"shape":"WorkerAdditionalFixedPropertiesJson"}, + "orientation":{"shape":"Orientation"}, + "vendorProperties":{"shape":"VendorProperties"}, + "position":{"shape":"PositionCoordinates"} + } + }, + "UpdatedAtTimestamp":{ + "type":"timestamp", + "documentation":"

Timestamp at which the resource was last updated.

" + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Exception thrown if an invalid parameter is provided to an API.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "VendorAdditionalFixedPropertiesJson":{ + "type":"string", + "documentation":"

JSON blob containing unstructured vendor properties that are fixed and won't change during regular operation.

", + "max":131072, + "min":1 + }, + "VendorAdditionalTransientPropertiesJson":{ + "type":"string", + "documentation":"

JSON blob containing unstructured vendor properties that are transient and may change during regular operation.

", + "max":131072, + "min":1 + }, + "VendorProperties":{ + "type":"structure", + "required":["vendorWorkerId"], + "members":{ + "vendorWorkerId":{"shape":"VendorWorkerId"}, + "vendorWorkerIpAddress":{"shape":"VendorWorkerIpAddress"}, + "vendorAdditionalTransientProperties":{"shape":"VendorAdditionalTransientPropertiesJson"}, + "vendorAdditionalFixedProperties":{"shape":"VendorAdditionalFixedPropertiesJson"} + }, + "documentation":"

Properties of the worker that are provided by the vendor FMS.

" + }, + "VendorWorkerId":{ + "type":"string", + "documentation":"

The worker ID defined by the vendor FMS.

", + "max":255, + "min":1 + }, + "VendorWorkerIpAddress":{ + "type":"string", + "documentation":"

The worker IP address defined by the vendor FMS.

", + "max":45, + "min":1 + }, + "Worker":{ + "type":"structure", + "required":[ + "arn", + "id", + "fleet", + "createdAt", + "updatedAt", + "name", + "site" + ], + "members":{ + "arn":{"shape":"WorkerArn"}, + "id":{"shape":"WorkerId"}, + "fleet":{"shape":"WorkerFleetArn"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "name":{"shape":"Name"}, + "site":{"shape":"SiteArn"}, + "additionalTransientProperties":{"shape":"WorkerAdditionalTransientPropertiesJson"}, + "additionalFixedProperties":{"shape":"WorkerAdditionalFixedPropertiesJson"}, + "vendorProperties":{"shape":"VendorProperties"}, + "position":{"shape":"PositionCoordinates"}, + "orientation":{"shape":"Orientation"} + }, + "documentation":"

A unit capable of performing tasks.

" + }, + "WorkerAdditionalFixedPropertiesJson":{ + "type":"string", + "documentation":"

JSON blob containing unstructured worker properties that are fixed and won't change during regular operation.

", + "max":131072, + "min":1 + }, + "WorkerAdditionalTransientPropertiesJson":{ + "type":"string", + "documentation":"

JSON blob containing unstructured worker properties that are transient and may change during regular operation.

", + "max":131072, + "min":1 + }, + "WorkerArn":{ + "type":"string", + "documentation":"

Full ARN of the worker.

", + "max":1011, + "min":1, + "pattern":"arn:aws:iotroborunner:[\\w-]+:\\w+:site/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/worker-fleet/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/worker/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "WorkerFleet":{ + "type":"structure", + "required":[ + "arn", + "id", + "name", + "site", + "createdAt", + "updatedAt" + ], + "members":{ + "arn":{"shape":"WorkerFleetArn"}, + "id":{"shape":"WorkerFleetId"}, + "name":{"shape":"Name"}, + "site":{"shape":"SiteArn"}, + "createdAt":{"shape":"CreatedAtTimestamp"}, + "updatedAt":{"shape":"UpdatedAtTimestamp"}, + "additionalFixedProperties":{"shape":"WorkerFleetAdditionalFixedProperties"} + }, + "documentation":"

A collection of workers organized within a facility.

" + }, + "WorkerFleetAdditionalFixedProperties":{ + "type":"string", + "documentation":"

JSON blob containing additional fixed properties regarding the worker fleet

", + "max":131072, + "min":1 + }, + "WorkerFleetArn":{ + "type":"string", + "documentation":"

Full ARN of the worker fleet.

", + "max":1011, + "min":1, + "pattern":"arn:aws:iotroborunner:[\\w-]+:\\w+:site/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/worker-fleet/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "WorkerFleetGenericIdentifier":{ + "type":"string", + "documentation":"

Full ARN of the worker fleet.

", + "max":1011, + "min":1, + "pattern":"arn:aws:iotroborunner:[\\w-]+:\\w+:site/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/worker-fleet/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "WorkerFleetId":{ + "type":"string", + "documentation":"

Filters access by the worker fleet's identifier

", + "max":255, + "min":1 + }, + "WorkerFleets":{ + "type":"list", + "member":{"shape":"WorkerFleet"}, + "documentation":"

List of worker fleets.

" + }, + "WorkerGenericIdentifier":{ + "type":"string", + "documentation":"

Full ARN of the worker.

", + "max":1011, + "min":1, + "pattern":"arn:aws:iotroborunner:[\\w-]+:\\w+:site/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/worker-fleet/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/worker/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "WorkerId":{ + "type":"string", + "documentation":"

Filters access by the workers identifier

", + "max":255, + "min":1 + }, + "Workers":{ + "type":"list", + "member":{"shape":"Worker"}, + "documentation":"

List of workers.

" + } + }, + "documentation":"

An example service, deployed with the Octane Service creator, which will echo the string

" +} diff --git a/botocore/data/iot/2015-05-28/endpoint-rule-set-1.json b/botocore/data/iot/2015-05-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..6df9a0b7 --- /dev/null +++ b/botocore/data/iot/2015-05-28/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iot.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iot.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iot/2015-05-28/service-2.json b/botocore/data/iot/2015-05-28/service-2.json index d1aabd8d..9fcc610c 100644 --- a/botocore/data/iot/2015-05-28/service-2.json +++ b/botocore/data/iot/2015-05-28/service-2.json @@ -112,7 +112,7 @@ {"shape":"InternalFailureException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Attaches the specified policy to the specified principal (certificate or other credential).

Note: This action is deprecated. Please use AttachPolicy instead.

Requires permission to access the AttachPrincipalPolicy action.

", + "documentation":"

Attaches the specified policy to the specified principal (certificate or other credential).

Note: This action is deprecated and works as expected for backward compatibility, but we won't add enhancements. Use AttachPolicy instead.

Requires permission to access the AttachPrincipalPolicy action.

", "deprecated":true }, "AttachSecurityProfile":{ @@ -149,7 +149,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Attaches the specified principal to the specified thing. A principal can be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities or federated identities.

Requires permission to access the AttachThingPrincipal action.

" + "documentation":"

Attaches the specified principal to the specified thing. A principal can be X.509 certificates, Amazon Cognito identities or federated identities.

Requires permission to access the AttachThingPrincipal action.

" }, "CancelAuditMitigationActionsTask":{ "name":"CancelAuditMitigationActionsTask", @@ -614,7 +614,7 @@ {"shape":"UnauthorizedException"}, {"shape":"ResourceAlreadyExistsException"} ], - "documentation":"

Creates a fleet provisioning template.

Requires permission to access the CreateProvisioningTemplate action.

" + "documentation":"

Creates a provisioning template.

Requires permission to access the CreateProvisioningTemplate action.

" }, "CreateProvisioningTemplateVersion":{ "name":"CreateProvisioningTemplateVersion", @@ -633,7 +633,7 @@ {"shape":"UnauthorizedException"}, {"shape":"ConflictingResourceUpdateException"} ], - "documentation":"

Creates a new version of a fleet provisioning template.

Requires permission to access the CreateProvisioningTemplateVersion action.

" + "documentation":"

Creates a new version of a provisioning template.

Requires permission to access the CreateProvisioningTemplateVersion action.

" }, "CreateRoleAlias":{ "name":"CreateRoleAlias", @@ -1114,7 +1114,7 @@ {"shape":"ConflictingResourceUpdateException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Deletes a fleet provisioning template.

Requires permission to access the DeleteProvisioningTemplate action.

" + "documentation":"

Deletes a provisioning template.

Requires permission to access the DeleteProvisioningTemplate action.

" }, "DeleteProvisioningTemplateVersion":{ "name":"DeleteProvisioningTemplateVersion", @@ -1133,7 +1133,7 @@ {"shape":"ConflictingResourceUpdateException"}, {"shape":"DeleteConflictException"} ], - "documentation":"

Deletes a fleet provisioning template version.

Requires permission to access the DeleteProvisioningTemplateVersion action.

" + "documentation":"

Deletes a provisioning template version.

Requires permission to access the DeleteProvisioningTemplateVersion action.

" }, "DeleteRegistrationCode":{ "name":"DeleteRegistrationCode", @@ -1733,7 +1733,7 @@ {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Returns information about a fleet provisioning template.

Requires permission to access the DescribeProvisioningTemplate action.

" + "documentation":"

Returns information about a provisioning template.

Requires permission to access the DescribeProvisioningTemplate action.

" }, "DescribeProvisioningTemplateVersion":{ "name":"DescribeProvisioningTemplateVersion", @@ -1750,7 +1750,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Returns information about a fleet provisioning template version.

Requires permission to access the DescribeProvisioningTemplateVersion action.

" + "documentation":"

Returns information about a provisioning template version.

Requires permission to access the DescribeProvisioningTemplateVersion action.

" }, "DescribeRoleAlias":{ "name":"DescribeRoleAlias", @@ -1921,7 +1921,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Removes the specified policy from the specified certificate.

This action is deprecated. Please use DetachPolicy instead.

Requires permission to access the DetachPrincipalPolicy action.

", + "documentation":"

Removes the specified policy from the specified certificate.

Note: This action is deprecated and works as expected for backward compatibility, but we won't add enhancements. Use DetachPolicy instead.

Requires permission to access the DetachPrincipalPolicy action.

", "deprecated":true }, "DetachSecurityProfile":{ @@ -2757,7 +2757,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Lists the principals associated with the specified policy.

Note: This action is deprecated. Please use ListTargetsForPolicy instead.

Requires permission to access the ListPolicyPrincipals action.

", + "documentation":"

Lists the principals associated with the specified policy.

Note: This action is deprecated and works as expected for backward compatibility, but we won't add enhancements. Use ListTargetsForPolicy instead.

Requires permission to access the ListPolicyPrincipals action.

", "deprecated":true }, "ListPolicyVersions":{ @@ -2794,7 +2794,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Lists the policies attached to the specified principal. If you use an Cognito identity, the ID must be in AmazonCognito Identity format.

Note: This action is deprecated. Please use ListAttachedPolicies instead.

Requires permission to access the ListPrincipalPolicies action.

", + "documentation":"

Lists the policies attached to the specified principal. If you use an Cognito identity, the ID must be in AmazonCognito Identity format.

Note: This action is deprecated and works as expected for backward compatibility, but we won't add enhancements. Use ListAttachedPolicies instead.

Requires permission to access the ListPrincipalPolicies action.

", "deprecated":true }, "ListPrincipalThings":{ @@ -2830,7 +2830,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

A list of fleet provisioning template versions.

Requires permission to access the ListProvisioningTemplateVersions action.

" + "documentation":"

A list of provisioning template versions.

Requires permission to access the ListProvisioningTemplateVersions action.

" }, "ListProvisioningTemplates":{ "name":"ListProvisioningTemplates", @@ -2846,7 +2846,23 @@ {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"} ], - "documentation":"

Lists the fleet provisioning templates in your Amazon Web Services account.

Requires permission to access the ListProvisioningTemplates action.

" + "documentation":"

Lists the provisioning templates in your Amazon Web Services account.

Requires permission to access the ListProvisioningTemplates action.

" + }, + "ListRelatedResourcesForAuditFinding":{ + "name":"ListRelatedResourcesForAuditFinding", + "http":{ + "method":"GET", + "requestUri":"/audit/relatedResources" + }, + "input":{"shape":"ListRelatedResourcesForAuditFindingRequest"}, + "output":{"shape":"ListRelatedResourcesForAuditFindingResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

The related resources of an Audit finding. The following resources can be returned from calling this API:

  • DEVICE_CERTIFICATE

  • CA_CERTIFICATE

  • IOT_POLICY

  • COGNITO_IDENTITY_POOL

  • CLIENT_ID

  • ACCOUNT_SETTINGS

  • ROLE_ALIAS

  • IAM_ROLE

  • ISSUER_CERTIFICATE

This API is similar to DescribeAuditFinding's RelatedResources but provides pagination and is not limited to 10 resources. When calling DescribeAuditFinding for the intermediate CA revoked for active device certificates check, RelatedResources will not be populated. You must use this API, ListRelatedResourcesForAuditFinding, to list the certificates.

" }, "ListRoleAliases":{ "name":"ListRoleAliases", @@ -3094,7 +3110,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Lists your things. Use the attributeName and attributeValue parameters to filter your things. For example, calling ListThings with attributeName=Color and attributeValue=Red retrieves all things in the registry that contain an attribute Color with the value Red.

Requires permission to access the ListThings action.

You will not be charged for calling this API if an Access denied error is returned. You will also not be charged if no attributes or pagination token was provided in request and no pagination token and no results were returned.

" + "documentation":"

Lists your things. Use the attributeName and attributeValue parameters to filter your things. For example, calling ListThings with attributeName=Color and attributeValue=Red retrieves all things in the registry that contain an attribute Color with the value Red. For more information, see List Things from the Amazon Web Services IoT Core Developer Guide.

Requires permission to access the ListThings action.

You will not be charged for calling this API if an Access denied error is returned. You will also not be charged if no attributes or pagination token was provided in request and no pagination token and no results were returned.

" }, "ListThingsInBillingGroup":{ "name":"ListThingsInBillingGroup", @@ -3214,6 +3230,7 @@ "input":{"shape":"RegisterCACertificateRequest"}, "output":{"shape":"RegisterCACertificateResponse"}, "errors":[ + {"shape":"ResourceNotFoundException"}, {"shape":"ResourceAlreadyExistsException"}, {"shape":"RegistrationCodeValidationException"}, {"shape":"InvalidRequestException"}, @@ -3224,7 +3241,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Registers a CA certificate with IoT. This CA certificate can then be used to sign device certificates, which can be then registered with IoT. You can register up to 10 CA certificates per Amazon Web Services account that have the same subject field. This enables you to have up to 10 certificate authorities sign your device certificates. If you have more than one CA certificate registered, make sure you pass the CA certificate when you register your device certificates with the RegisterCertificate action.

Requires permission to access the RegisterCACertificate action.

" + "documentation":"

Registers a CA certificate with Amazon Web Services IoT Core. There is no limit to the number of CA certificates you can register in your Amazon Web Services account. You can register up to 10 CA certificates with the same CA subject field per Amazon Web Services account.

Requires permission to access the RegisterCACertificate action.

" }, "RegisterCertificate":{ "name":"RegisterCertificate", @@ -3245,7 +3262,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Registers a device certificate with IoT. If you have more than one CA certificate that has the same subject field, you must specify the CA certificate that was used to sign the device certificate being registered.

Requires permission to access the RegisterCertificate action.

" + "documentation":"

Registers a device certificate with IoT in the same certificate mode as the signing CA. If you have more than one CA certificate that has the same subject field, you must specify the CA certificate that was used to sign the device certificate being registered.

Requires permission to access the RegisterCertificate action.

" }, "RegisterCertificateWithoutCA":{ "name":"RegisterCertificateWithoutCA", @@ -3897,7 +3914,7 @@ {"shape":"UnauthorizedException"}, {"shape":"ConflictingResourceUpdateException"} ], - "documentation":"

Updates a fleet provisioning template.

Requires permission to access the UpdateProvisioningTemplate action.

" + "documentation":"

Updates a provisioning template.

Requires permission to access the UpdateProvisioningTemplate action.

" }, "UpdateRoleAlias":{ "name":"UpdateRoleAlias", @@ -4221,6 +4238,10 @@ "openSearch":{ "shape":"OpenSearchAction", "documentation":"

Write data to an Amazon OpenSearch Service domain.

" + }, + "location":{ + "shape":"LocationAction", + "documentation":"

The Amazon Location Service rule action sends device location updates from an MQTT message to an Amazon Location tracker resource.

" } }, "documentation":"

Describes the actions associated with a rule.

" @@ -5663,6 +5684,10 @@ "validity":{ "shape":"CertificateValidity", "documentation":"

When the CA certificate is valid.

" + }, + "certificateMode":{ + "shape":"CertificateMode", + "documentation":"

The mode of the CA.

All the device certificates that are registered using this CA will be registered in the same mode as the CA. For more information about certificate mode for device certificates, see certificate mode.

" } }, "documentation":"

Describes a CA certificate.

" @@ -5857,7 +5882,7 @@ }, "certificateMode":{ "shape":"CertificateMode", - "documentation":"

The mode of the certificate.

" + "documentation":"

The mode of the certificate.

DEFAULT: A certificate in DEFAULT mode is either generated by Amazon Web Services IoT Core or registered with an issuer certificate authority (CA) in DEFAULT mode. Devices with certificates in DEFAULT mode aren't required to send the Server Name Indication (SNI) extension when connecting to Amazon Web Services IoT Core. However, to use features such as custom domains and VPC endpoints, we recommend that you use the SNI extension when connecting to Amazon Web Services IoT Core.

SNI_ONLY: A certificate in SNI_ONLY mode is registered without an issuer CA. Devices with certificates in SNI_ONLY mode must send the SNI extension when connecting to Amazon Web Services IoT Core.

" }, "creationDate":{ "shape":"DateType", @@ -5936,7 +5961,7 @@ }, "certificateMode":{ "shape":"CertificateMode", - "documentation":"

The mode of the certificate.

" + "documentation":"

The mode of the certificate.

DEFAULT: A certificate in DEFAULT mode is either generated by Amazon Web Services IoT Core or registered with an issuer certificate authority (CA) in DEFAULT mode. Devices with certificates in DEFAULT mode aren't required to send the Server Name Indication (SNI) extension when connecting to Amazon Web Services IoT Core. However, to use features such as custom domains and VPC endpoints, we recommend that you use the SNI extension when connecting to Amazon Web Services IoT Core.

SNI_ONLY: A certificate in SNI_ONLY mode is registered without an issuer CA. Devices with certificates in SNI_ONLY mode must send the SNI extension when connecting to Amazon Web Services IoT Core.

For more information about the value for SNI extension, see Transport security in IoT.

" } }, "documentation":"

Describes a certificate.

" @@ -6276,6 +6301,16 @@ "max":10, "min":1 }, + "ContentType":{ + "type":"string", + "max":1024, + "min":0 + }, + "CorrelationData":{ + "type":"string", + "max":1024, + "min":0 + }, "Count":{"type":"integer"}, "CreateAuditSuppressionRequest":{ "type":"structure", @@ -6780,6 +6815,10 @@ "documentParameters":{ "shape":"ParameterMap", "documentation":"

Parameters of an Amazon Web Services managed template that you can specify to create the job document.

documentParameters can only be used when creating jobs from Amazon Web Services managed templates. This parameter can't be used with custom job templates or to create jobs from them.

" + }, + "schedulingConfig":{ + "shape":"SchedulingConfig", + "documentation":"

The configuration that allows you to schedule a job for a future date and time in addition to specifying the end behavior for each job execution.

" } } }, @@ -7158,31 +7197,35 @@ "members":{ "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template.

" + "documentation":"

The name of the provisioning template.

" }, "description":{ "shape":"TemplateDescription", - "documentation":"

The description of the fleet provisioning template.

" + "documentation":"

The description of the provisioning template.

" }, "templateBody":{ "shape":"TemplateBody", - "documentation":"

The JSON formatted contents of the fleet provisioning template.

" + "documentation":"

The JSON formatted contents of the provisioning template.

" }, "enabled":{ "shape":"Enabled", - "documentation":"

True to enable the fleet provisioning template, otherwise false.

" + "documentation":"

True to enable the provisioning template, otherwise false.

" }, "provisioningRoleArn":{ "shape":"RoleArn", - "documentation":"

The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device.

" + "documentation":"

The role ARN for the role associated with the provisioning template. This IoT role grants permission to provision a device.

" }, "preProvisioningHook":{ "shape":"ProvisioningHook", - "documentation":"

Creates a pre-provisioning hook template.

" + "documentation":"

Creates a pre-provisioning hook template. Only supports template of type FLEET_PROVISIONING. For more information about provisioning template types, see type.

" }, "tags":{ "shape":"TagList", - "documentation":"

Metadata which can be used to manage the fleet provisioning template.

For URI Request parameters use format: ...key1=value1&key2=value2...

For the CLI command-line parameter use format: &&tags \"key1=value1&key2=value2...\"

For the cli-input-json file use format: \"tags\": \"key1=value1&key2=value2...\"

" + "documentation":"

Metadata which can be used to manage the provisioning template.

For URI Request parameters use format: ...key1=value1&key2=value2...

For the CLI command-line parameter use format: &&tags \"key1=value1&key2=value2...\"

For the cli-input-json file use format: \"tags\": \"key1=value1&key2=value2...\"

" + }, + "type":{ + "shape":"TemplateType", + "documentation":"

The type you define in a provisioning template. You can create a template with only one type. You can't change the template type after its creation. The default value is FLEET_PROVISIONING. For more information about provisioning template, see: Provisioning template.

" } } }, @@ -7195,11 +7238,11 @@ }, "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template.

" + "documentation":"

The name of the provisioning template.

" }, "defaultVersionId":{ "shape":"TemplateVersionId", - "documentation":"

The default version of the fleet provisioning template.

" + "documentation":"

The default version of the provisioning template.

" } } }, @@ -7212,13 +7255,13 @@ "members":{ "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template.

", + "documentation":"

The name of the provisioning template.

", "location":"uri", "locationName":"templateName" }, "templateBody":{ "shape":"TemplateBody", - "documentation":"

The JSON formatted contents of the fleet provisioning template.

" + "documentation":"

The JSON formatted contents of the provisioning template.

" }, "setAsDefault":{ "shape":"SetAsDefault", @@ -7237,15 +7280,15 @@ }, "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template.

" + "documentation":"

The name of the provisioning template.

" }, "versionId":{ "shape":"TemplateVersionId", - "documentation":"

The version of the fleet provisioning template.

" + "documentation":"

The version of the provisioning template.

" }, "isDefaultVersion":{ "shape":"IsDefaultVersion", - "documentation":"

True if the fleet provisioning template version is the default version, otherwise false.

" + "documentation":"

True if the provisioning template version is the default version, otherwise false.

" } } }, @@ -8077,13 +8120,13 @@ "members":{ "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template version to delete.

", + "documentation":"

The name of the provisioning template version to delete.

", "location":"uri", "locationName":"templateName" }, "versionId":{ "shape":"TemplateVersionId", - "documentation":"

The fleet provisioning template version ID to delete.

", + "documentation":"

The provisioning template version ID to delete.

", "location":"uri", "locationName":"versionId" } @@ -9135,7 +9178,7 @@ "members":{ "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template.

", + "documentation":"

The name of the provisioning template.

", "location":"uri", "locationName":"templateName" } @@ -9146,23 +9189,23 @@ "members":{ "templateArn":{ "shape":"TemplateArn", - "documentation":"

The ARN of the fleet provisioning template.

" + "documentation":"

The ARN of the provisioning template.

" }, "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template.

" + "documentation":"

The name of the provisioning template.

" }, "description":{ "shape":"TemplateDescription", - "documentation":"

The description of the fleet provisioning template.

" + "documentation":"

The description of the provisioning template.

" }, "creationDate":{ "shape":"DateType", - "documentation":"

The date when the fleet provisioning template was created.

" + "documentation":"

The date when the provisioning template was created.

" }, "lastModifiedDate":{ "shape":"DateType", - "documentation":"

The date when the fleet provisioning template was last modified.

" + "documentation":"

The date when the provisioning template was last modified.

" }, "defaultVersionId":{ "shape":"TemplateVersionId", @@ -9170,11 +9213,11 @@ }, "templateBody":{ "shape":"TemplateBody", - "documentation":"

The JSON formatted contents of the fleet provisioning template.

" + "documentation":"

The JSON formatted contents of the provisioning template.

" }, "enabled":{ "shape":"Enabled", - "documentation":"

True if the fleet provisioning template is enabled, otherwise false.

" + "documentation":"

True if the provisioning template is enabled, otherwise false.

" }, "provisioningRoleArn":{ "shape":"RoleArn", @@ -9183,6 +9226,10 @@ "preProvisioningHook":{ "shape":"ProvisioningHook", "documentation":"

Gets information about a pre-provisioned hook.

" + }, + "type":{ + "shape":"TemplateType", + "documentation":"

The type you define in a provisioning template. You can create a template with only one type. You can't change the template type after its creation. The default value is FLEET_PROVISIONING. For more information about provisioning template, see: Provisioning template.

" } } }, @@ -9201,7 +9248,7 @@ }, "versionId":{ "shape":"TemplateVersionId", - "documentation":"

The fleet provisioning template version ID.

", + "documentation":"

The provisioning template version ID.

", "location":"uri", "locationName":"versionId" } @@ -9212,19 +9259,19 @@ "members":{ "versionId":{ "shape":"TemplateVersionId", - "documentation":"

The fleet provisioning template version ID.

" + "documentation":"

The provisioning template version ID.

" }, "creationDate":{ "shape":"DateType", - "documentation":"

The date when the fleet provisioning template version was created.

" + "documentation":"

The date when the provisioning template version was created.

" }, "templateBody":{ "shape":"TemplateBody", - "documentation":"

The JSON formatted contents of the fleet provisioning template version.

" + "documentation":"

The JSON formatted contents of the provisioning template version.

" }, "isDefaultVersion":{ "shape":"IsDefaultVersion", - "documentation":"

True if the fleet provisioning template version is the default version.

" + "documentation":"

True if the provisioning template version is the default version.

" } } }, @@ -10474,7 +10521,7 @@ }, "maxResults":{ "shape":"TinyMaxResults", - "documentation":"

The maximum number of results to return at one time. The default is 25.

", + "documentation":"

The maximum number of results to return at one time. The default is 10.

", "location":"querystring", "locationName":"maxResults" }, @@ -11137,6 +11184,16 @@ "REBUILDING" ] }, + "IndexingFilter":{ + "type":"structure", + "members":{ + "namedShadowNames":{ + "shape":"NamedShadowNamesFilter", + "documentation":"

The shadow names that you select to index. The default maximum number of shadow names for indexing is 10. To increase the limit, see Amazon Web Services IoT Device Management Quotas in the Amazon Web Services General Reference.

" + } + }, + "documentation":"

Provides additional filters for specific data sources. Named shadow is the only data source that currently supports and requires a filter. To add named shadows to your fleet indexing configuration, set namedShadowIndexingMode to be ON and specify your shadow names in filter.

" + }, "InlineDocument":{"type":"string"}, "InputName":{ "type":"string", @@ -11306,6 +11363,39 @@ "IsDefaultVersion":{"type":"boolean"}, "IsDisabled":{"type":"boolean"}, "IsSuppressed":{"type":"boolean"}, + "IssuerCertificateIdentifier":{ + "type":"structure", + "members":{ + "issuerCertificateSubject":{ + "shape":"IssuerCertificateSubject", + "documentation":"

The subject of the issuer certificate.

" + }, + "issuerId":{ + "shape":"IssuerId", + "documentation":"

The issuer ID.

" + }, + "issuerCertificateSerialNumber":{ + "shape":"IssuerCertificateSerialNumber", + "documentation":"

The issuer certificate serial number.

" + } + }, + "documentation":"

The certificate issuer indentifier.

" + }, + "IssuerCertificateSerialNumber":{ + "type":"string", + "max":20, + "pattern":"[a-fA-F0-9:]+" + }, + "IssuerCertificateSubject":{ + "type":"string", + "max":1000, + "pattern":"[\\p{Graph}\\x20]*" + }, + "IssuerId":{ + "type":"string", + "max":64, + "pattern":"(0x)?[a-fA-F0-9]+" + }, "Job":{ "type":"structure", "members":{ @@ -11393,7 +11483,14 @@ "shape":"ParameterMap", "documentation":"

A key-value map that pairs the patterns that need to be replaced in a managed template job document schema. You can use the description of each key as a guidance to specify the inputs during runtime when creating a job.

documentParameters can only be used when creating jobs from Amazon Web Services managed templates. This parameter can't be used with custom job templates or to create jobs from them.

" }, - "isConcurrent":{"shape":"BooleanWrapperObject"} + "isConcurrent":{ + "shape":"BooleanWrapperObject", + "documentation":"

Indicates whether a job is concurrent. Will be true when a job is rolling out new job executions or canceling previously created executions, otherwise false.

" + }, + "schedulingConfig":{ + "shape":"SchedulingConfig", + "documentation":"

The configuration that allows you to schedule a job for a future date and time in addition to specifying the end behavior for each job execution.

" + } }, "documentation":"

The Job object contains details about a job.

" }, @@ -11412,6 +11509,14 @@ "max":1350, "min":1 }, + "JobEndBehavior":{ + "type":"string", + "enum":[ + "STOP_ROLLOUT", + "CANCEL", + "FORCE_CANCEL" + ] + }, "JobExecution":{ "type":"structure", "members":{ @@ -11639,7 +11744,8 @@ "IN_PROGRESS", "CANCELED", "COMPLETED", - "DELETION_IN_PROGRESS" + "DELETION_IN_PROGRESS", + "SCHEDULED" ] }, "JobSummary":{ @@ -11677,7 +11783,10 @@ "shape":"DateType", "documentation":"

The time, in seconds since the epoch, when the job completed.

" }, - "isConcurrent":{"shape":"BooleanWrapperObject"} + "isConcurrent":{ + "shape":"BooleanWrapperObject", + "documentation":"

Indicates whether a job is concurrent. Will be true when a job is rolling out new job executions or canceling previously created executions, otherwise false.

" + } }, "documentation":"

The job summary.

" }, @@ -12295,6 +12404,12 @@ "documentation":"

Determines the order of the results.

", "location":"querystring", "locationName":"isAscendingOrder" + }, + "templateName":{ + "shape":"TemplateName", + "documentation":"

The name of the provisioning template.

", + "location":"querystring", + "locationName":"templateName" } }, "documentation":"

Input for the ListCACertificates operation.

" @@ -13260,7 +13375,7 @@ "members":{ "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template.

", + "documentation":"

The name of the provisioning template.

", "location":"uri", "locationName":"templateName" }, @@ -13283,7 +13398,7 @@ "members":{ "versions":{ "shape":"ProvisioningTemplateVersionListing", - "documentation":"

The list of fleet provisioning template versions.

" + "documentation":"

The list of provisioning template versions.

" }, "nextToken":{ "shape":"NextToken", @@ -13313,7 +13428,7 @@ "members":{ "templates":{ "shape":"ProvisioningTemplateListing", - "documentation":"

A list of fleet provisioning templates

" + "documentation":"

A list of provisioning templates

" }, "nextToken":{ "shape":"NextToken", @@ -13321,6 +13436,43 @@ } } }, + "ListRelatedResourcesForAuditFindingRequest":{ + "type":"structure", + "required":["findingId"], + "members":{ + "findingId":{ + "shape":"FindingId", + "documentation":"

The finding Id.

", + "location":"querystring", + "locationName":"findingId" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token that can be used to retrieve the next set of results, or null if there are no additional results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return at one time.

", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListRelatedResourcesForAuditFindingResponse":{ + "type":"structure", + "members":{ + "relatedResources":{ + "shape":"RelatedResources", + "documentation":"

The related resources.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token that can be used to retrieve the next set of results, or null for the first API call.

" + } + } + }, "ListRoleAliasesRequest":{ "type":"structure", "members":{ @@ -14185,6 +14337,58 @@ } } }, + "LocationAction":{ + "type":"structure", + "required":[ + "roleArn", + "trackerName", + "deviceId", + "latitude", + "longitude" + ], + "members":{ + "roleArn":{ + "shape":"AwsArn", + "documentation":"

The IAM role that grants permission to write to the Amazon Location resource.

" + }, + "trackerName":{ + "shape":"String", + "documentation":"

The name of the tracker resource in Amazon Location in which the location is updated.

" + }, + "deviceId":{ + "shape":"String", + "documentation":"

The unique ID of the device providing the location data.

" + }, + "timestamp":{ + "shape":"LocationTimestamp", + "documentation":"

The time that the location data was sampled. The default value is the time the MQTT message was processed.

" + }, + "latitude":{ + "shape":"String", + "documentation":"

A string that evaluates to a double value that represents the latitude of the device's location.

" + }, + "longitude":{ + "shape":"String", + "documentation":"

A string that evaluates to a double value that represents the longitude of the device's location.

" + } + }, + "documentation":"

The Amazon Location rule action sends device location updates from an MQTT message to an Amazon Location tracker resource.

" + }, + "LocationTimestamp":{ + "type":"structure", + "required":["value"], + "members":{ + "value":{ + "shape":"String", + "documentation":"

An expression that returns a long epoch time value.

" + }, + "unit":{ + "shape":"String", + "documentation":"

The precision of the timestamp value that results from the expression described in value.

Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default is MILLISECONDS.

" + } + }, + "documentation":"

Describes how to interpret an application-defined timestamp value from an MQTT message payload and the precision of that value.

" + }, "LogGroupName":{"type":"string"}, "LogLevel":{ "type":"string", @@ -14347,6 +14551,11 @@ "max":128, "pattern":"[\\s\\S]*" }, + "MessageExpiry":{ + "type":"string", + "max":1024, + "min":0 + }, "MessageFormat":{ "type":"string", "enum":[ @@ -14596,6 +14805,36 @@ }, "documentation":"

Specifies the MQTT context to use for the test authorizer request

" }, + "MqttHeaders":{ + "type":"structure", + "members":{ + "payloadFormatIndicator":{ + "shape":"PayloadFormatIndicator", + "documentation":"

An Enum string value that indicates whether the payload is formatted as UTF-8.

Valid values are UNSPECIFIED_BYTES and UTF8_DATA.

For more information, see Payload Format Indicator from the MQTT Version 5.0 specification.

Supports substitution templates.

" + }, + "contentType":{ + "shape":"ContentType", + "documentation":"

A UTF-8 encoded string that describes the content of the publishing message.

For more information, see Content Type from the MQTT Version 5.0 specification.

Supports substitution templates.

" + }, + "responseTopic":{ + "shape":"ResponseTopic", + "documentation":"

A UTF-8 encoded string that's used as the topic name for a response message. The response topic is used to describe the topic which the receiver should publish to as part of the request-response flow. The topic must not contain wildcard characters.

For more information, see Response Topic from the MQTT Version 5.0 specification.

Supports substitution templates.

" + }, + "correlationData":{ + "shape":"CorrelationData", + "documentation":"

The base64-encoded binary data used by the sender of the request message to identify which request the response message is for when it's received.

For more information, see Correlation Data from the MQTT Version 5.0 specification.

This binary data must be based64-encoded.

Supports substitution templates.

" + }, + "messageExpiry":{ + "shape":"MessageExpiry", + "documentation":"

A user-defined integer value that will persist a message at the message broker for a specified amount of time to ensure that the message will expire if it's no longer relevant to the subscriber. The value of messageExpiry represents the number of seconds before it expires. For more information about the limits of messageExpiry, see Amazon Web Services IoT Core message broker and protocol limits and quotas from the Amazon Web Services Reference Guide.

Supports substitution templates.

" + }, + "userProperties":{ + "shape":"UserProperties", + "documentation":"

An array of key-value pairs that you define in the MQTT5 header.

" + } + }, + "documentation":"

Specifies MQTT Version 5.0 headers information. For more information, see MQTT from Amazon Web Services IoT Core Developer Guide.

" + }, "MqttPassword":{ "type":"blob", "max":65535, @@ -14614,10 +14853,12 @@ "ON" ] }, + "NamedShadowNamesFilter":{ + "type":"list", + "member":{"shape":"ShadowName"} + }, "NamespaceId":{ "type":"string", - "max":64, - "min":1, "pattern":"[a-zA-Z0-9_-]+" }, "NextToken":{"type":"string"}, @@ -14924,6 +15165,11 @@ }, "PartitionKey":{"type":"string"}, "PayloadField":{"type":"string"}, + "PayloadFormatIndicator":{ + "type":"string", + "max":1024, + "min":0 + }, "PayloadVersion":{ "type":"string", "max":32, @@ -15067,7 +15313,7 @@ "members":{ "roleArn":{ "shape":"RoleArn", - "documentation":"

The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.

" + "documentation":"

The ARN of an IAM role that grants grants permission to download files from the S3 bucket where the job data/updates are stored. The role must also grant permission for IoT to download the files.

For information about addressing the confused deputy problem, see cross-service confused deputy prevention in the Amazon Web Services IoT Core developer guide.

" }, "expiresInSec":{ "shape":"ExpiresInSec", @@ -15136,30 +15382,34 @@ "members":{ "templateArn":{ "shape":"TemplateArn", - "documentation":"

The ARN of the fleet provisioning template.

" + "documentation":"

The ARN of the provisioning template.

" }, "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template.

" + "documentation":"

The name of the provisioning template.

" }, "description":{ "shape":"TemplateDescription", - "documentation":"

The description of the fleet provisioning template.

" + "documentation":"

The description of the provisioning template.

" }, "creationDate":{ "shape":"DateType", - "documentation":"

The date when the fleet provisioning template summary was created.

" + "documentation":"

The date when the provisioning template summary was created.

" }, "lastModifiedDate":{ "shape":"DateType", - "documentation":"

The date when the fleet provisioning template summary was last modified.

" + "documentation":"

The date when the provisioning template summary was last modified.

" }, "enabled":{ "shape":"Enabled", "documentation":"

True if the fleet provision template is enabled, otherwise false.

" + }, + "type":{ + "shape":"TemplateType", + "documentation":"

The type you define in a provisioning template. You can create a template with only one type. You can't change the template type after its creation. The default value is FLEET_PROVISIONING. For more information about provisioning template, see: Provisioning template.

" } }, - "documentation":"

A summary of information about a fleet provisioning template.

" + "documentation":"

A summary of information about a provisioning template.

" }, "ProvisioningTemplateVersionListing":{ "type":"list", @@ -15170,15 +15420,15 @@ "members":{ "versionId":{ "shape":"TemplateVersionId", - "documentation":"

The ID of the fleet privisioning template version.

" + "documentation":"

The ID of the fleet provisioning template version.

" }, "creationDate":{ "shape":"DateType", - "documentation":"

The date when the fleet provisioning template version was created

" + "documentation":"

The date when the provisioning template version was created

" }, "isDefaultVersion":{ "shape":"IsDefaultVersion", - "documentation":"

True if the fleet provisioning template version is the default version, otherwise false.

" + "documentation":"

True if the provisioning template version is the default version, otherwise false.

" } }, "documentation":"

A summary of information about a fleet provision template version.

" @@ -15325,10 +15575,7 @@ "Regex":{"type":"string"}, "RegisterCACertificateRequest":{ "type":"structure", - "required":[ - "caCertificate", - "verificationCertificate" - ], + "required":["caCertificate"], "members":{ "caCertificate":{ "shape":"CertificatePem", @@ -15336,7 +15583,7 @@ }, "verificationCertificate":{ "shape":"CertificatePem", - "documentation":"

The private key verification certificate.

" + "documentation":"

The private key verification certificate. If certificateMode is SNI_ONLY, the verificationCertificate field must be empty. If certificateMode is DEFAULT or not provided, the verificationCertificate field must not be empty.

" }, "setAsActive":{ "shape":"SetAsActive", @@ -15357,6 +15604,10 @@ "tags":{ "shape":"TagList", "documentation":"

Metadata which can be used to manage the CA certificate.

For URI Request parameters use format: ...key1=value1&key2=value2...

For the CLI command-line parameter use format: &&tags \"key1=value1&key2=value2...\"

For the cli-input-json file use format: \"tags\": \"key1=value1&key2=value2...\"

" + }, + "certificateMode":{ + "shape":"CertificateMode", + "documentation":"

Describes the certificate mode in which the Certificate Authority (CA) will be registered. If the verificationCertificate field is not provided, set certificateMode to be SNI_ONLY. If the verificationCertificate field is provided, set certificateMode to be DEFAULT. When certificateMode is not provided, it defaults to DEFAULT. All the device certificates that are registered using this CA will be registered in the same certificate mode as the CA. For more information about certificate mode for device certificates, see certificate mode.

" } }, "documentation":"

The input to the RegisterCACertificate operation.

" @@ -15497,6 +15748,10 @@ "roleArn":{ "shape":"RoleArn", "documentation":"

The ARN of the role.

" + }, + "templateName":{ + "shape":"TemplateName", + "documentation":"

The name of the provisioning template.

" } }, "documentation":"

The registration configuration.

" @@ -15672,6 +15927,10 @@ "qos":{ "shape":"Qos", "documentation":"

The Quality of Service (QoS) level to use when republishing messages. The default value is 0.

" + }, + "headers":{ + "shape":"MqttHeaders", + "documentation":"

MQTT Version 5.0 headers information. For more information, see MQTT from the Amazon Web Services IoT Core Developer Guide.

" } }, "documentation":"

Describes an action to republish to another topic.

" @@ -15747,6 +16006,14 @@ "roleAliasArn":{ "shape":"RoleAliasArn", "documentation":"

The ARN of the role alias that has overly permissive actions.

" + }, + "issuerCertificateIdentifier":{ + "shape":"IssuerCertificateIdentifier", + "documentation":"

The issuer certificate identifier.

" + }, + "deviceCertificateArn":{ + "shape":"CertificateArn", + "documentation":"

The ARN of the identified device certificate.

" } }, "documentation":"

Information that identifies the noncompliant resource.

" @@ -15786,13 +16053,19 @@ "CLIENT_ID", "ACCOUNT_SETTINGS", "ROLE_ALIAS", - "IAM_ROLE" + "IAM_ROLE", + "ISSUER_CERTIFICATE" ] }, "Resources":{ "type":"list", "member":{"shape":"Resource"} }, + "ResponseTopic":{ + "type":"string", + "max":1024, + "min":0 + }, "RetryAttempt":{"type":"integer"}, "RetryCriteria":{ "type":"structure", @@ -16033,6 +16306,24 @@ "min":1, "pattern":"[a-zA-Z0-9_-]+" }, + "SchedulingConfig":{ + "type":"structure", + "members":{ + "startTime":{ + "shape":"StringDateTime", + "documentation":"

The time a job will begin rollout of the job document to all devices in the target group for a job. The startTime can be scheduled up to a year in advance and must be scheduled a minimum of thirty minutes from the current time.

" + }, + "endTime":{ + "shape":"StringDateTime", + "documentation":"

The time a job will stop rollout of the job document to all devices in the target group for a job. The endTime must take place no later than two years from the current time and be scheduled a minimum of thirty minutes from the current time. The minimum duration between startTime and endTime is thirty minutes. The maximum duration between startTime and endTime is two years.

" + }, + "endBehavior":{ + "shape":"JobEndBehavior", + "documentation":"

Specifies the end behavior for all job executions after a job reaches the selected endTime. If endTime is not selected when creating the job, then endBehavior does not apply.

" + } + }, + "documentation":"

Specifies the date and time that a job will begin the rollout of the job document to all devices in the target group. Additionally, you can specify the end behavior for each job execution when it reaches the scheduled end time.

" + }, "SearchIndexRequest":{ "type":"structure", "required":["queryString"], @@ -16043,7 +16334,7 @@ }, "queryString":{ "shape":"QueryString", - "documentation":"

The search query string.

" + "documentation":"

The search query string. For more information about the search query syntax, see Query syntax.

" }, "nextToken":{ "shape":"NextToken", @@ -16312,6 +16603,12 @@ } } }, + "ShadowName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, "SigV4Authorization":{ "type":"structure", "required":[ @@ -16812,6 +17109,11 @@ "member":{"shape":"StreamSummary"} }, "String":{"type":"string"}, + "StringDateTime":{ + "type":"string", + "max":64, + "min":1 + }, "StringList":{ "type":"list", "member":{"shape":"stringValue"} @@ -16888,7 +17190,7 @@ "TagValue":{ "type":"string", "max":256, - "min":1 + "min":0 }, "Target":{"type":"string"}, "TargetArn":{ @@ -17013,6 +17315,13 @@ "min":1, "pattern":"^[0-9A-Za-z_-]+$" }, + "TemplateType":{ + "type":"string", + "enum":[ + "FLEET_PROVISIONING", + "JITP" + ] + }, "TemplateVersionId":{"type":"integer"}, "TermsAggregation":{ "type":"structure", @@ -17272,7 +17581,7 @@ }, "managedFields":{ "shape":"Fields", - "documentation":"

Contains fields that are indexed and whose types are already known by the Fleet Indexing service.

" + "documentation":"

Contains fields that are indexed and whose types are already known by the Fleet Indexing service. This is an optional field. For more information, see Managed fields in the Amazon Web Services IoT Core Developer Guide.

" }, "customFields":{ "shape":"Fields", @@ -17372,6 +17681,10 @@ "customFields":{ "shape":"Fields", "documentation":"

Contains custom field names and their data type.

" + }, + "filter":{ + "shape":"IndexingFilter", + "documentation":"

Provides additional filters for specific data sources. Named shadow is the only data source that currently supports and requires a filter. To add named shadows to your fleet indexing configuration, set namedShadowIndexingMode to be ON and specify your shadow names in filter.

" } }, "documentation":"

The thing indexing configuration. For more information, see Managing Thing Indexing.

" @@ -18485,17 +18798,17 @@ "members":{ "templateName":{ "shape":"TemplateName", - "documentation":"

The name of the fleet provisioning template.

", + "documentation":"

The name of the provisioning template.

", "location":"uri", "locationName":"templateName" }, "description":{ "shape":"TemplateDescription", - "documentation":"

The description of the fleet provisioning template.

" + "documentation":"

The description of the provisioning template.

" }, "enabled":{ "shape":"Enabled", - "documentation":"

True to enable the fleet provisioning template, otherwise false.

" + "documentation":"

True to enable the provisioning template, otherwise false.

" }, "defaultVersionId":{ "shape":"TemplateVersionId", @@ -18507,7 +18820,7 @@ }, "preProvisioningHook":{ "shape":"ProvisioningHook", - "documentation":"

Updates the pre-provisioning hook template.

" + "documentation":"

Updates the pre-provisioning hook template. Only supports template of type FLEET_PROVISIONING. For more information about provisioning template types, see type.

" }, "removePreProvisioningHook":{ "shape":"RemoveHook", @@ -18854,6 +19167,40 @@ "max":2000 }, "UseBase64":{"type":"boolean"}, + "UserProperties":{ + "type":"list", + "member":{"shape":"UserProperty"}, + "max":100, + "min":1 + }, + "UserProperty":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"UserPropertyKey", + "documentation":"

A key to be specified in UserProperty.

" + }, + "value":{ + "shape":"UserPropertyValue", + "documentation":"

A value to be specified in UserProperty.

" + } + }, + "documentation":"

A key-value pair that you define in the header. Both the key and the value are either literal strings or valid substitution templates.

" + }, + "UserPropertyKey":{ + "type":"string", + "max":1024, + "min":0 + }, + "UserPropertyValue":{ + "type":"string", + "max":1024, + "min":0 + }, "Valid":{"type":"boolean"}, "ValidateSecurityProfileBehaviorsRequest":{ "type":"structure", diff --git a/botocore/data/iot1click-devices/2018-05-14/endpoint-rule-set-1.json b/botocore/data/iot1click-devices/2018-05-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..abd13719 --- /dev/null +++ b/botocore/data/iot1click-devices/2018-05-14/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devices.iot1click-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devices.iot1click-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://devices.iot1click.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://devices.iot1click.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iot1click-projects/2018-05-14/endpoint-rule-set-1.json b/botocore/data/iot1click-projects/2018-05-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..7be18d3e --- /dev/null +++ b/botocore/data/iot1click-projects/2018-05-14/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://projects.iot1click-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://projects.iot1click-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://projects.iot1click.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://projects.iot1click.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotanalytics/2017-11-27/endpoint-rule-set-1.json b/botocore/data/iotanalytics/2017-11-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..14219f71 --- /dev/null +++ b/botocore/data/iotanalytics/2017-11-27/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotanalytics-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotanalytics-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotanalytics.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iotanalytics.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotdeviceadvisor/2020-09-18/endpoint-rule-set-1.json b/botocore/data/iotdeviceadvisor/2020-09-18/endpoint-rule-set-1.json new file mode 100644 index 00000000..64953029 --- /dev/null +++ b/botocore/data/iotdeviceadvisor/2020-09-18/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.iotdeviceadvisor.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.iotdeviceadvisor.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotdeviceadvisor/2020-09-18/examples-1.json b/botocore/data/iotdeviceadvisor/2020-09-18/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iotdeviceadvisor/2020-09-18/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iotdeviceadvisor/2020-09-18/service-2.json b/botocore/data/iotdeviceadvisor/2020-09-18/service-2.json index 1cb1ea3d..0d332d4c 100644 --- a/botocore/data/iotdeviceadvisor/2020-09-18/service-2.json +++ b/botocore/data/iotdeviceadvisor/2020-09-18/service-2.json @@ -534,6 +534,7 @@ "exception":true, "fault":true }, + "IsLongDurationTestBoolean":{"type":"boolean"}, "ListSuiteDefinitionsRequest":{ "type":"structure", "members":{ @@ -639,6 +640,13 @@ "min":1 }, "ParallelRun":{"type":"boolean"}, + "Protocol":{ + "type":"string", + "enum":[ + "MqttV3_1_1", + "MqttV5" + ] + }, "QualificationReportDownloadUrl":{"type":"string"}, "ResourceNotFoundException":{ "type":"structure", @@ -769,6 +777,10 @@ "shape":"IntendedForQualificationBoolean", "documentation":"

Gets the tests intended for qualification in a suite.

" }, + "isLongDurationTest":{ + "shape":"IsLongDurationTestBoolean", + "documentation":"

Verifies if the test suite is a long duration test.

" + }, "rootGroup":{ "shape":"RootGroup", "documentation":"

Gets test suite root group.

" @@ -776,6 +788,10 @@ "devicePermissionRoleArn":{ "shape":"AmazonResourceName", "documentation":"

Gets the device permission ARN.

" + }, + "protocol":{ + "shape":"Protocol", + "documentation":"

Gets the MQTT protocol that is configured in the suite definition.

" } }, "documentation":"

Gets Suite Definition Configuration.

" @@ -799,6 +815,14 @@ "shape":"IntendedForQualificationBoolean", "documentation":"

Specifies if the test suite is intended for qualification.

" }, + "isLongDurationTest":{ + "shape":"IsLongDurationTestBoolean", + "documentation":"

Verifies if the test suite is a long duration test.

" + }, + "protocol":{ + "shape":"Protocol", + "documentation":"

Gets the MQTT protocol that is configured in the suite definition.

" + }, "createdAt":{ "shape":"Timestamp", "documentation":"

Date (in Unix epoch time) when the test suite was created.

" @@ -907,6 +931,7 @@ "type":"list", "member":{"shape":"SuiteRunInformation"} }, + "SystemMessage":{"type":"string"}, "TagKeyList":{ "type":"list", "member":{"shape":"String128"}, @@ -983,6 +1008,10 @@ "failure":{ "shape":"Failure", "documentation":"

Provides test case run failure result.

" + }, + "testScenarios":{ + "shape":"TestCaseScenariosList", + "documentation":"

Provides the test scenarios for the test case run.

" } }, "documentation":"

Provides the test case run.

" @@ -992,6 +1021,58 @@ "member":{"shape":"TestCaseRun"}, "documentation":"

Tests under each group result.

" }, + "TestCaseScenario":{ + "type":"structure", + "members":{ + "testCaseScenarioId":{ + "shape":"TestCaseScenarioId", + "documentation":"

Provides test case scenario ID.

" + }, + "testCaseScenarioType":{ + "shape":"TestCaseScenarioType", + "documentation":"

Provides test case scenario type. Type is one of the following:

  • Advanced

  • Basic

" + }, + "status":{ + "shape":"TestCaseScenarioStatus", + "documentation":"

Provides the test case scenario status. Status is one of the following:

  • PASS: Test passed.

  • FAIL: Test failed.

  • PENDING: Test has not started running but is scheduled.

  • RUNNING: Test is running.

  • STOPPING: Test is performing cleanup steps. You will see this status only if you stop a suite run.

  • STOPPED Test is stopped. You will see this status only if you stop a suite run.

  • PASS_WITH_WARNINGS: Test passed with warnings.

  • ERORR: Test faced an error when running due to an internal issue.

" + }, + "failure":{ + "shape":"Failure", + "documentation":"

Provides test case scenario failure result.

" + }, + "systemMessage":{ + "shape":"SystemMessage", + "documentation":"

" + } + }, + "documentation":"

Provides test case scenario.

" + }, + "TestCaseScenarioId":{"type":"string"}, + "TestCaseScenarioStatus":{ + "type":"string", + "enum":[ + "PASS", + "FAIL", + "CANCELED", + "PENDING", + "RUNNING", + "STOPPING", + "STOPPED", + "PASS_WITH_WARNINGS", + "ERROR" + ] + }, + "TestCaseScenarioType":{ + "type":"string", + "enum":[ + "Advanced", + "Basic" + ] + }, + "TestCaseScenariosList":{ + "type":"list", + "member":{"shape":"TestCaseScenario"} + }, "TestResult":{ "type":"structure", "members":{ diff --git a/botocore/data/iotevents-data/2018-10-23/endpoint-rule-set-1.json b/botocore/data/iotevents-data/2018-10-23/endpoint-rule-set-1.json new file mode 100644 index 00000000..5347166b --- /dev/null +++ b/botocore/data/iotevents-data/2018-10-23/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data.iotevents-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data.iotevents-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data.iotevents.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://data.iotevents.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotevents-data/2018-10-23/examples-1.json b/botocore/data/iotevents-data/2018-10-23/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iotevents-data/2018-10-23/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iotevents/2018-07-27/endpoint-rule-set-1.json b/botocore/data/iotevents/2018-07-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..ef5963b1 --- /dev/null +++ b/botocore/data/iotevents/2018-07-27/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotevents-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotevents-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotevents.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iotevents.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotevents/2018-07-27/examples-1.json b/botocore/data/iotevents/2018-07-27/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iotevents/2018-07-27/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iotfleethub/2020-11-03/endpoint-rule-set-1.json b/botocore/data/iotfleethub/2020-11-03/endpoint-rule-set-1.json new file mode 100644 index 00000000..569ef255 --- /dev/null +++ b/botocore/data/iotfleethub/2020-11-03/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.fleethub.iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.fleethub.iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.fleethub.iot.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.fleethub.iot.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotfleethub/2020-11-03/examples-1.json b/botocore/data/iotfleethub/2020-11-03/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iotfleethub/2020-11-03/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iotfleetwise/2021-06-17/endpoint-rule-set-1.json b/botocore/data/iotfleetwise/2021-06-17/endpoint-rule-set-1.json new file mode 100644 index 00000000..e776c332 --- /dev/null +++ b/botocore/data/iotfleetwise/2021-06-17/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotfleetwise-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotfleetwise-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotfleetwise.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iotfleetwise.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotfleetwise/2021-06-17/paginators-1.json b/botocore/data/iotfleetwise/2021-06-17/paginators-1.json new file mode 100644 index 00000000..ff157ff1 --- /dev/null +++ b/botocore/data/iotfleetwise/2021-06-17/paginators-1.json @@ -0,0 +1,82 @@ +{ + "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" + } + } +} diff --git a/botocore/data/iotfleetwise/2021-06-17/service-2.json b/botocore/data/iotfleetwise/2021-06-17/service-2.json new file mode 100644 index 00000000..91fac4bf --- /dev/null +++ b/botocore/data/iotfleetwise/2021-06-17/service-2.json @@ -0,0 +1,4451 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-06-17", + "endpointPrefix":"iotfleetwise", + "jsonVersion":"1.0", + "protocol":"json", + "serviceFullName":"AWS IoT FleetWise", + "serviceId":"IoTFleetWise", + "signatureVersion":"v4", + "signingName":"iotfleetwise", + "targetPrefix":"IoTAutobahnControlPlane", + "uid":"iotfleetwise-2021-06-17" + }, + "operations":{ + "AssociateVehicleFleet":{ + "name":"AssociateVehicleFleet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateVehicleFleetRequest"}, + "output":{"shape":"AssociateVehicleFleetResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Adds, or associates, a vehicle with a fleet.

" + }, + "BatchCreateVehicle":{ + "name":"BatchCreateVehicle", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchCreateVehicleRequest"}, + "output":{"shape":"BatchCreateVehicleResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a group, or batch, of vehicles.

You must specify a decoder manifest and a vehicle model (model manifest) for each vehicle.

For more information, see Create multiple vehicles (AWS CLI) in the Amazon Web Services IoT FleetWise Developer Guide.

" + }, + "BatchUpdateVehicle":{ + "name":"BatchUpdateVehicle", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchUpdateVehicleRequest"}, + "output":{"shape":"BatchUpdateVehicleResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a group, or batch, of vehicles.

You must specify a decoder manifest and a vehicle model (model manifest) for each vehicle.

For more information, see Update multiple vehicles (AWS CLI) in the Amazon Web Services IoT FleetWise Developer Guide.

" + }, + "CreateCampaign":{ + "name":"CreateCampaign", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCampaignRequest"}, + "output":{"shape":"CreateCampaignResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates an orchestration of data collection rules. The Amazon Web Services IoT FleetWise Edge Agent software running in vehicles uses campaigns to decide how to collect and transfer data to the cloud. You create campaigns in the cloud. After you or your team approve campaigns, Amazon Web Services IoT FleetWise automatically deploys them to vehicles.

For more information, see Collect and transfer data with campaigns in the Amazon Web Services IoT FleetWise Developer Guide.

", + "idempotent":true + }, + "CreateDecoderManifest":{ + "name":"CreateDecoderManifest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateDecoderManifestRequest"}, + "output":{"shape":"CreateDecoderManifestResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"DecoderManifestValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates the decoder manifest associated with a model manifest. To create a decoder manifest, the following must be true:

  • Every signal decoder has a unique name.

  • Each signal decoder is associated with a network interface.

  • Each network interface has a unique ID.

  • The signal decoders are specified in the model manifest.

", + "idempotent":true + }, + "CreateFleet":{ + "name":"CreateFleet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateFleetRequest"}, + "output":{"shape":"CreateFleetResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a fleet that represents a group of vehicles.

You must create both a signal catalog and vehicles before you can create a fleet.

For more information, see Fleets in the Amazon Web Services IoT FleetWise Developer Guide.

", + "idempotent":true + }, + "CreateModelManifest":{ + "name":"CreateModelManifest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateModelManifestRequest"}, + "output":{"shape":"CreateModelManifestResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidSignalsException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a vehicle model (model manifest) that specifies signals (attributes, branches, sensors, and actuators).

For more information, see Vehicle models in the Amazon Web Services IoT FleetWise Developer Guide.

", + "idempotent":true + }, + "CreateSignalCatalog":{ + "name":"CreateSignalCatalog", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSignalCatalogRequest"}, + "output":{"shape":"CreateSignalCatalogResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidNodeException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidSignalsException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a collection of standardized signals that can be reused to create vehicle models.

", + "idempotent":true + }, + "CreateVehicle":{ + "name":"CreateVehicle", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVehicleRequest"}, + "output":{"shape":"CreateVehicleResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a vehicle, which is an instance of a vehicle model (model manifest). Vehicles created from the same vehicle model consist of the same signals inherited from the vehicle model.

If you have an existing Amazon Web Services IoT Thing, you can use Amazon Web Services IoT FleetWise to create a vehicle and collect data from your thing.

For more information, see Create a vehicle (AWS CLI) in the Amazon Web Services IoT FleetWise Developer Guide.

", + "idempotent":true + }, + "DeleteCampaign":{ + "name":"DeleteCampaign", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCampaignRequest"}, + "output":{"shape":"DeleteCampaignResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a data collection campaign. Deleting a campaign suspends all data collection and removes it from any vehicles.

", + "idempotent":true + }, + "DeleteDecoderManifest":{ + "name":"DeleteDecoderManifest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDecoderManifestRequest"}, + "output":{"shape":"DeleteDecoderManifestResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a decoder manifest. You can't delete a decoder manifest if it has vehicles associated with it.

If the decoder manifest is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.

", + "idempotent":true + }, + "DeleteFleet":{ + "name":"DeleteFleet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteFleetRequest"}, + "output":{"shape":"DeleteFleetResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a fleet. Before you delete a fleet, all vehicles must be dissociated from the fleet. For more information, see Delete a fleet (AWS CLI) in the Amazon Web Services IoT FleetWise Developer Guide.

If the fleet is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.

", + "idempotent":true + }, + "DeleteModelManifest":{ + "name":"DeleteModelManifest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteModelManifestRequest"}, + "output":{"shape":"DeleteModelManifestResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a vehicle model (model manifest).

If the vehicle model is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.

", + "idempotent":true + }, + "DeleteSignalCatalog":{ + "name":"DeleteSignalCatalog", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSignalCatalogRequest"}, + "output":{"shape":"DeleteSignalCatalogResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a signal catalog.

If the signal catalog is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.

", + "idempotent":true + }, + "DeleteVehicle":{ + "name":"DeleteVehicle", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVehicleRequest"}, + "output":{"shape":"DeleteVehicleResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a vehicle and removes it from any campaigns.

If the vehicle is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.

", + "idempotent":true + }, + "DisassociateVehicleFleet":{ + "name":"DisassociateVehicleFleet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateVehicleFleetRequest"}, + "output":{"shape":"DisassociateVehicleFleetResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Removes, or disassociates, a vehicle from a fleet. Disassociating a vehicle from a fleet doesn't delete the vehicle.

If the vehicle is successfully dissociated from a fleet, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.

" + }, + "GetCampaign":{ + "name":"GetCampaign", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCampaignRequest"}, + "output":{"shape":"GetCampaignResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves information about a campaign.

" + }, + "GetDecoderManifest":{ + "name":"GetDecoderManifest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDecoderManifestRequest"}, + "output":{"shape":"GetDecoderManifestResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves information about a created decoder manifest.

" + }, + "GetFleet":{ + "name":"GetFleet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetFleetRequest"}, + "output":{"shape":"GetFleetResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves information about a fleet.

" + }, + "GetLoggingOptions":{ + "name":"GetLoggingOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLoggingOptionsRequest"}, + "output":{"shape":"GetLoggingOptionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves the logging options.

" + }, + "GetModelManifest":{ + "name":"GetModelManifest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetModelManifestRequest"}, + "output":{"shape":"GetModelManifestResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves information about a vehicle model (model manifest).

" + }, + "GetRegisterAccountStatus":{ + "name":"GetRegisterAccountStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRegisterAccountStatusRequest"}, + "output":{"shape":"GetRegisterAccountStatusResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves information about the status of registering your Amazon Web Services account, IAM, and Amazon Timestream resources so that Amazon Web Services IoT FleetWise can transfer your vehicle data to the Amazon Web Services Cloud.

For more information, including step-by-step procedures, see Setting up Amazon Web Services IoT FleetWise.

This API operation doesn't require input parameters.

" + }, + "GetSignalCatalog":{ + "name":"GetSignalCatalog", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSignalCatalogRequest"}, + "output":{"shape":"GetSignalCatalogResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves information about a signal catalog.

" + }, + "GetVehicle":{ + "name":"GetVehicle", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetVehicleRequest"}, + "output":{"shape":"GetVehicleResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves information about a vehicle.

" + }, + "GetVehicleStatus":{ + "name":"GetVehicleStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetVehicleStatusRequest"}, + "output":{"shape":"GetVehicleStatusResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves information about the status of a vehicle with any associated campaigns.

" + }, + "ImportDecoderManifest":{ + "name":"ImportDecoderManifest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportDecoderManifestRequest"}, + "output":{"shape":"ImportDecoderManifestResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"DecoderManifestValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidSignalsException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a decoder manifest using your existing CAN DBC file from your local device.

" + }, + "ImportSignalCatalog":{ + "name":"ImportSignalCatalog", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportSignalCatalogRequest"}, + "output":{"shape":"ImportSignalCatalogResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidSignalsException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a signal catalog using your existing VSS formatted content from your local device.

", + "idempotent":true + }, + "ListCampaigns":{ + "name":"ListCampaigns", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCampaignsRequest"}, + "output":{"shape":"ListCampaignsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists information about created campaigns.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListDecoderManifestNetworkInterfaces":{ + "name":"ListDecoderManifestNetworkInterfaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDecoderManifestNetworkInterfacesRequest"}, + "output":{"shape":"ListDecoderManifestNetworkInterfacesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the network interfaces specified in a decoder manifest.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListDecoderManifestSignals":{ + "name":"ListDecoderManifestSignals", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDecoderManifestSignalsRequest"}, + "output":{"shape":"ListDecoderManifestSignalsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

A list of information about signal decoders specified in a decoder manifest.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListDecoderManifests":{ + "name":"ListDecoderManifests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDecoderManifestsRequest"}, + "output":{"shape":"ListDecoderManifestsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists decoder manifests.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListFleets":{ + "name":"ListFleets", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFleetsRequest"}, + "output":{"shape":"ListFleetsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves information for each created fleet in an Amazon Web Services account.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListFleetsForVehicle":{ + "name":"ListFleetsForVehicle", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListFleetsForVehicleRequest"}, + "output":{"shape":"ListFleetsForVehicleResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of IDs for all fleets that the vehicle is associated with.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListModelManifestNodes":{ + "name":"ListModelManifestNodes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListModelManifestNodesRequest"}, + "output":{"shape":"ListModelManifestNodesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists information about nodes specified in a vehicle model (model manifest).

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListModelManifests":{ + "name":"ListModelManifests", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListModelManifestsRequest"}, + "output":{"shape":"ListModelManifestsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of vehicle models (model manifests).

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListSignalCatalogNodes":{ + "name":"ListSignalCatalogNodes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSignalCatalogNodesRequest"}, + "output":{"shape":"ListSignalCatalogNodesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"LimitExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists of information about the signals (nodes) specified in a signal catalog.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListSignalCatalogs":{ + "name":"ListSignalCatalogs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSignalCatalogsRequest"}, + "output":{"shape":"ListSignalCatalogsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all the created signal catalogs in an Amazon Web Services account.

You can use to list information about each signal (node) specified in a signal catalog.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the tags (metadata) you have assigned to the resource.

" + }, + "ListVehicles":{ + "name":"ListVehicles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListVehiclesRequest"}, + "output":{"shape":"ListVehiclesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of summaries of created vehicles.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "ListVehiclesInFleet":{ + "name":"ListVehiclesInFleet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListVehiclesInFleetRequest"}, + "output":{"shape":"ListVehiclesInFleetResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of summaries of all vehicles associated with a fleet.

This API operation uses pagination. Specify the nextToken parameter in the request to return more results.

" + }, + "PutLoggingOptions":{ + "name":"PutLoggingOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutLoggingOptionsRequest"}, + "output":{"shape":"PutLoggingOptionsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates or updates the logging option.

", + "idempotent":true + }, + "RegisterAccount":{ + "name":"RegisterAccount", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RegisterAccountRequest"}, + "output":{"shape":"RegisterAccountResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Registers your Amazon Web Services account, IAM, and Amazon Timestream resources so Amazon Web Services IoT FleetWise can transfer your vehicle data to the Amazon Web Services Cloud. For more information, including step-by-step procedures, see Setting up Amazon Web Services IoT FleetWise.

An Amazon Web Services account is not the same thing as a \"user account\". An Amazon Web Services user is an identity that you create using Identity and Access Management (IAM) and takes the form of either an IAM user or an IAM role, both with credentials. A single Amazon Web Services account can, and typically does, contain many users and roles.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource.

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Removes the given tags (metadata) from the resource.

", + "idempotent":true + }, + "UpdateCampaign":{ + "name":"UpdateCampaign", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateCampaignRequest"}, + "output":{"shape":"UpdateCampaignResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a campaign.

" + }, + "UpdateDecoderManifest":{ + "name":"UpdateDecoderManifest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDecoderManifestRequest"}, + "output":{"shape":"UpdateDecoderManifestResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"DecoderManifestValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a decoder manifest.

A decoder manifest can only be updated when the status is DRAFT. Only ACTIVE decoder manifests can be associated with vehicles.

", + "idempotent":true + }, + "UpdateFleet":{ + "name":"UpdateFleet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateFleetRequest"}, + "output":{"shape":"UpdateFleetResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates the description of an existing fleet.

If the fleet is successfully updated, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty HTTP body.

" + }, + "UpdateModelManifest":{ + "name":"UpdateModelManifest", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateModelManifestRequest"}, + "output":{"shape":"UpdateModelManifestResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"InvalidSignalsException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a vehicle model (model manifest). If created vehicles are associated with a vehicle model, it can't be updated.

", + "idempotent":true + }, + "UpdateSignalCatalog":{ + "name":"UpdateSignalCatalog", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSignalCatalogRequest"}, + "output":{"shape":"UpdateSignalCatalogResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidNodeException"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidSignalsException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a signal catalog.

", + "idempotent":true + }, + "UpdateVehicle":{ + "name":"UpdateVehicle", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateVehicleRequest"}, + "output":{"shape":"UpdateVehicleResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a vehicle.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"string"} + }, + "documentation":"

You don't have sufficient permission to perform this action.

", + "exception":true + }, + "Actuator":{ + "type":"structure", + "required":[ + "fullyQualifiedName", + "dataType" + ], + "members":{ + "fullyQualifiedName":{ + "shape":"string", + "documentation":"

The fully qualified name of the actuator. For example, the fully qualified name of an actuator might be Vehicle.Front.Left.Door.Lock.

" + }, + "dataType":{ + "shape":"NodeDataType", + "documentation":"

The specified data type of the actuator.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the actuator.

" + }, + "unit":{ + "shape":"string", + "documentation":"

The scientific unit for the actuator.

" + }, + "allowedValues":{ + "shape":"listOfStrings", + "documentation":"

A list of possible values an actuator can take.

" + }, + "min":{ + "shape":"double", + "documentation":"

The specified possible minimum value of an actuator.

" + }, + "max":{ + "shape":"double", + "documentation":"

The specified possible maximum value of an actuator.

" + }, + "assignedValue":{ + "shape":"string", + "documentation":"

A specified value for the actuator.

", + "deprecated":true, + "deprecatedMessage":"assignedValue is no longer in use" + } + }, + "documentation":"

A signal that represents a vehicle device such as the engine, heater, and door locks. Data from an actuator reports the state of a certain vehicle device.

Updating actuator data can change the state of a device. For example, you can turn on or off the heater by updating its actuator data.

" + }, + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1 + }, + "AssociateVehicleFleetRequest":{ + "type":"structure", + "required":[ + "vehicleName", + "fleetId" + ], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the vehicle to associate with the fleet.

" + }, + "fleetId":{ + "shape":"fleetId", + "documentation":"

The ID of a fleet.

" + } + } + }, + "AssociateVehicleFleetResponse":{ + "type":"structure", + "members":{ + } + }, + "Attribute":{ + "type":"structure", + "required":[ + "fullyQualifiedName", + "dataType" + ], + "members":{ + "fullyQualifiedName":{ + "shape":"string", + "documentation":"

The fully qualified name of the attribute. For example, the fully qualified name of an attribute might be Vehicle.Body.Engine.Type.

" + }, + "dataType":{ + "shape":"NodeDataType", + "documentation":"

The specified data type of the attribute.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the attribute.

" + }, + "unit":{ + "shape":"string", + "documentation":"

The scientific unit for the attribute.

" + }, + "allowedValues":{ + "shape":"listOfStrings", + "documentation":"

A list of possible values an attribute can be assigned.

" + }, + "min":{ + "shape":"double", + "documentation":"

The specified possible minimum value of the attribute.

" + }, + "max":{ + "shape":"double", + "documentation":"

The specified possible maximum value of the attribute.

" + }, + "assignedValue":{ + "shape":"string", + "documentation":"

A specified value for the attribute.

", + "deprecated":true, + "deprecatedMessage":"assignedValue is no longer in use" + }, + "defaultValue":{ + "shape":"string", + "documentation":"

The default value of the attribute.

" + } + }, + "documentation":"

A signal that represents static information about the vehicle, such as engine type or manufacturing date.

" + }, + "BatchCreateVehicleRequest":{ + "type":"structure", + "required":["vehicles"], + "members":{ + "vehicles":{ + "shape":"createVehicleRequestItems", + "documentation":"

A list of information about each vehicle to create. For more information, see the API data type.

" + } + } + }, + "BatchCreateVehicleResponse":{ + "type":"structure", + "members":{ + "vehicles":{ + "shape":"createVehicleResponses", + "documentation":"

A list of information about a batch of created vehicles. For more information, see the API data type.

" + }, + "errors":{ + "shape":"createVehicleErrors", + "documentation":"

A list of information about creation errors, or an empty list if there aren't any errors.

" + } + } + }, + "BatchUpdateVehicleRequest":{ + "type":"structure", + "required":["vehicles"], + "members":{ + "vehicles":{ + "shape":"updateVehicleRequestItems", + "documentation":"

A list of information about the vehicles to update. For more information, see the API data type.

" + } + } + }, + "BatchUpdateVehicleResponse":{ + "type":"structure", + "members":{ + "vehicles":{ + "shape":"updateVehicleResponseItems", + "documentation":"

A list of information about the batch of updated vehicles.

This list contains only unique IDs for the vehicles that were updated.

" + }, + "errors":{ + "shape":"updateVehicleErrors", + "documentation":"

A list of information about errors returned while updating a batch of vehicles, or, if there aren't any errors, an empty list.

" + } + } + }, + "Branch":{ + "type":"structure", + "required":["fullyQualifiedName"], + "members":{ + "fullyQualifiedName":{ + "shape":"string", + "documentation":"

The fully qualified name of the branch. For example, the fully qualified name of a branch might be Vehicle.Body.Engine.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the branch.

" + } + }, + "documentation":"

A group of signals that are defined in a hierarchical structure.

" + }, + "CampaignStatus":{ + "type":"string", + "enum":[ + "CREATING", + "WAITING_FOR_APPROVAL", + "RUNNING", + "SUSPENDED" + ] + }, + "CampaignSummary":{ + "type":"structure", + "required":[ + "creationTime", + "lastModificationTime" + ], + "members":{ + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of a campaign.

" + }, + "name":{ + "shape":"campaignName", + "documentation":"

The name of a campaign.

" + }, + "description":{ + "shape":"description", + "documentation":"

The description of the campaign.

" + }, + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

The ARN of the signal catalog associated with the campaign.

" + }, + "targetArn":{ + "shape":"arn", + "documentation":"

The ARN of a vehicle or fleet to which the campaign is deployed.

" + }, + "status":{ + "shape":"CampaignStatus", + "documentation":"

The state of a campaign. The status can be one of the following:

  • CREATING - Amazon Web Services IoT FleetWise is processing your request to create the campaign.

  • WAITING_FOR_APPROVAL - After a campaign is created, it enters the WAITING_FOR_APPROVAL state. To allow Amazon Web Services IoT FleetWise to deploy the campaign to the target vehicle or fleet, use the API operation to approve the campaign.

  • RUNNING - The campaign is active.

  • SUSPENDED - The campaign is suspended. To resume the campaign, use the API operation.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the campaign was created.

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The last time the campaign was modified.

" + } + }, + "documentation":"

Information about a campaign.

You can use the API operation to return this information about multiple created campaigns.

" + }, + "CanDbcDefinition":{ + "type":"structure", + "required":[ + "networkInterface", + "canDbcFiles" + ], + "members":{ + "networkInterface":{ + "shape":"InterfaceId", + "documentation":"

Contains information about a network interface.

" + }, + "canDbcFiles":{ + "shape":"NetworkFilesList", + "documentation":"

A list of DBC files. You can upload only one DBC file for each network interface and specify up to five (inclusive) files in the list.

" + }, + "signalsMap":{ + "shape":"ModelSignalsMap", + "documentation":"

Pairs every signal specified in your vehicle model with a signal decoder.

" + } + }, + "documentation":"

Configurations used to create a decoder manifest.

" + }, + "CanInterface":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"CanInterfaceName", + "documentation":"

The unique name of the interface.

" + }, + "protocolName":{ + "shape":"ProtocolName", + "documentation":"

The name of the communication protocol for the interface.

" + }, + "protocolVersion":{ + "shape":"ProtocolVersion", + "documentation":"

The version of the communication protocol for the interface.

" + } + }, + "documentation":"

A single controller area network (CAN) device interface.

" + }, + "CanInterfaceName":{ + "type":"string", + "max":100, + "min":1 + }, + "CanSignal":{ + "type":"structure", + "required":[ + "messageId", + "isBigEndian", + "isSigned", + "startBit", + "offset", + "factor", + "length" + ], + "members":{ + "messageId":{ + "shape":"nonNegativeInteger", + "documentation":"

The ID of the message.

" + }, + "isBigEndian":{ + "shape":"boolean", + "documentation":"

Whether the byte ordering of a CAN message is big-endian.

" + }, + "isSigned":{ + "shape":"boolean", + "documentation":"

Whether the message data is specified as a signed value.

" + }, + "startBit":{ + "shape":"nonNegativeInteger", + "documentation":"

Indicates the beginning of the CAN message.

" + }, + "offset":{ + "shape":"double", + "documentation":"

Indicates where data appears in the CAN message.

" + }, + "factor":{ + "shape":"double", + "documentation":"

A multiplier used to decode the CAN message.

" + }, + "length":{ + "shape":"nonNegativeInteger", + "documentation":"

How many bytes of data are in the message.

" + }, + "name":{ + "shape":"CanSignalName", + "documentation":"

The name of the signal.

" + } + }, + "documentation":"

Information about a single controller area network (CAN) signal and the messages it receives and transmits.

" + }, + "CanSignalName":{ + "type":"string", + "max":100, + "min":1 + }, + "CloudWatchLogDeliveryOptions":{ + "type":"structure", + "required":["logType"], + "members":{ + "logType":{ + "shape":"LogType", + "documentation":"

The type of log to send data to Amazon CloudWatch Logs.

" + }, + "logGroupName":{ + "shape":"CloudWatchLogGroupName", + "documentation":"

The Amazon CloudWatch Logs group the operation sends data to.

" + } + }, + "documentation":"

The log delivery option to send data to Amazon CloudWatch Logs.

" + }, + "CloudWatchLogGroupName":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\.\\-_\\/#A-Za-z0-9]+" + }, + "CollectionScheme":{ + "type":"structure", + "members":{ + "timeBasedCollectionScheme":{ + "shape":"TimeBasedCollectionScheme", + "documentation":"

Information about a collection scheme that uses a time period to decide how often to collect data.

" + }, + "conditionBasedCollectionScheme":{ + "shape":"ConditionBasedCollectionScheme", + "documentation":"

Information about a collection scheme that uses a simple logical expression to recognize what data to collect.

" + } + }, + "documentation":"

Specifies what data to collect and how often or when to collect it.

", + "union":true + }, + "Compression":{ + "type":"string", + "enum":[ + "OFF", + "SNAPPY" + ] + }, + "ConditionBasedCollectionScheme":{ + "type":"structure", + "required":["expression"], + "members":{ + "expression":{ + "shape":"eventExpression", + "documentation":"

The logical expression used to recognize what data to collect. For example, $variable.Vehicle.OutsideAirTemperature >= 105.0.

" + }, + "minimumTriggerIntervalMs":{ + "shape":"uint32", + "documentation":"

The minimum duration of time between two triggering events to collect data, in milliseconds.

If a signal changes often, you might want to collect data at a slower rate.

" + }, + "triggerMode":{ + "shape":"TriggerMode", + "documentation":"

Whether to collect data for all triggering events (ALWAYS). Specify (RISING_EDGE), or specify only when the condition first evaluates to false. For example, triggering on \"AirbagDeployed\"; Users aren't interested on triggering when the airbag is already exploded; they only care about the change from not deployed => deployed.

" + }, + "conditionLanguageVersion":{ + "shape":"languageVersion", + "documentation":"

Specifies the version of the conditional expression language.

" + } + }, + "documentation":"

Information about a collection scheme that uses a simple logical expression to recognize what data to collect.

" + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resource", + "resourceType" + ], + "members":{ + "message":{"shape":"string"}, + "resource":{ + "shape":"string", + "documentation":"

The resource on which there are conflicting operations.

" + }, + "resourceType":{ + "shape":"string", + "documentation":"

The type of resource on which there are conflicting operations..

" + } + }, + "documentation":"

The request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time.

", + "exception":true + }, + "CreateCampaignRequest":{ + "type":"structure", + "required":[ + "name", + "signalCatalogArn", + "targetArn", + "collectionScheme" + ], + "members":{ + "name":{ + "shape":"campaignName", + "documentation":"

The name of the campaign to create.

" + }, + "description":{ + "shape":"description", + "documentation":"

An optional description of the campaign to help identify its purpose.

" + }, + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

(Optional) The Amazon Resource Name (ARN) of the signal catalog to associate with the campaign.

" + }, + "targetArn":{ + "shape":"arn", + "documentation":"

The ARN of the vehicle or fleet to deploy a campaign to.

" + }, + "startTime":{ + "shape":"timestamp", + "documentation":"

(Optional) The time, in milliseconds, to deliver a campaign after it was approved. If it's not specified, 0 is used.

Default: 0

" + }, + "expiryTime":{ + "shape":"timestamp", + "documentation":"

(Optional) The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.

Default: 253402243200 (December 31, 9999, 00:00:00 UTC)

" + }, + "postTriggerCollectionDuration":{ + "shape":"uint32", + "documentation":"

(Optional) How long (in milliseconds) to collect raw data after a triggering event initiates the collection. If it's not specified, 0 is used.

Default: 0

" + }, + "diagnosticsMode":{ + "shape":"DiagnosticsMode", + "documentation":"

(Optional) Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. If you want to send diagnostic trouble codes, use SEND_ACTIVE_DTCS. If it's not specified, OFF is used.

Default: OFF

" + }, + "spoolingMode":{ + "shape":"SpoolingMode", + "documentation":"

(Optional) Whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. If you want to store collected data when a vehicle loses connection with the cloud, use TO_DISK. If it's not specified, OFF is used.

Default: OFF

" + }, + "compression":{ + "shape":"Compression", + "documentation":"

(Optional) Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If you don't want to compress the signals, use OFF. If it's not specified, SNAPPY is used.

Default: SNAPPY

" + }, + "priority":{ + "shape":"priority", + "documentation":"

(Optional) A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns. If it's not specified, 0 is used.

Default: 0

" + }, + "signalsToCollect":{ + "shape":"SignalInformationList", + "documentation":"

(Optional) A list of information about signals to collect.

" + }, + "collectionScheme":{ + "shape":"CollectionScheme", + "documentation":"

The data collection scheme associated with the campaign. You can specify a scheme that collects data based on time or an event.

" + }, + "dataExtraDimensions":{ + "shape":"DataExtraDimensionNodePathList", + "documentation":"

(Optional) A list of vehicle attributes to associate with a campaign.

Enrich the data with specified vehicle attributes. For example, add make and model to the campaign, and Amazon Web Services IoT FleetWise will associate the data with those attributes as dimensions in Amazon Timestream. You can then query the data against make and model.

Default: An empty array

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

Metadata that can be used to manage the campaign.

" + } + } + }, + "CreateCampaignResponse":{ + "type":"structure", + "members":{ + "name":{ + "shape":"campaignName", + "documentation":"

The name of the created campaign.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of the created campaign.

" + } + } + }, + "CreateDecoderManifestRequest":{ + "type":"structure", + "required":[ + "name", + "modelManifestArn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The unique name of the decoder manifest to create.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the decoder manifest.

" + }, + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the vehicle model (model manifest).

" + }, + "signalDecoders":{ + "shape":"SignalDecoders", + "documentation":"

A list of information about signal decoders.

" + }, + "networkInterfaces":{ + "shape":"NetworkInterfaces", + "documentation":"

A list of information about available network interfaces.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

Metadata that can be used to manage the decoder manifest.

" + } + } + }, + "CreateDecoderManifestResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the created decoder manifest.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of the created decoder manifest.

" + } + } + }, + "CreateFleetRequest":{ + "type":"structure", + "required":[ + "fleetId", + "signalCatalogArn" + ], + "members":{ + "fleetId":{ + "shape":"fleetId", + "documentation":"

The unique ID of the fleet to create.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the fleet to create.

" + }, + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of a signal catalog.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

Metadata that can be used to manage the fleet.

" + } + } + }, + "CreateFleetResponse":{ + "type":"structure", + "required":[ + "id", + "arn" + ], + "members":{ + "id":{ + "shape":"fleetId", + "documentation":"

The ID of the created fleet.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of the created fleet.

" + } + } + }, + "CreateModelManifestRequest":{ + "type":"structure", + "required":[ + "name", + "nodes", + "signalCatalogArn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the vehicle model to create.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the vehicle model.

" + }, + "nodes":{ + "shape":"listOfStrings", + "documentation":"

A list of nodes, which are a general abstraction of signals.

" + }, + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of a signal catalog.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

Metadata that can be used to manage the vehicle model.

" + } + } + }, + "CreateModelManifestResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the created vehicle model.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of the created vehicle model.

" + } + } + }, + "CreateSignalCatalogRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the signal catalog to create.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the signal catalog.

" + }, + "nodes":{ + "shape":"Nodes", + "documentation":"

A list of information about nodes, which are a general abstraction of signals. For more information, see the API data type.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

Metadata that can be used to manage the signal catalog.

" + } + } + }, + "CreateSignalCatalogResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the created signal catalog.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of the created signal catalog.

" + } + } + }, + "CreateVehicleError":{ + "type":"structure", + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The ID of the vehicle with the error.

" + }, + "code":{ + "shape":"string", + "documentation":"

An HTTP error code.

" + }, + "message":{ + "shape":"string", + "documentation":"

A description of the HTTP error.

" + } + }, + "documentation":"

An HTTP error resulting from creating a vehicle.

" + }, + "CreateVehicleRequest":{ + "type":"structure", + "required":[ + "vehicleName", + "modelManifestArn", + "decoderManifestArn" + ], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the vehicle to create.

" + }, + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name ARN of a vehicle model.

" + }, + "decoderManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of a decoder manifest.

" + }, + "attributes":{ + "shape":"attributesMap", + "documentation":"

Static information about a vehicle in a key-value pair. For example: \"engineType\" : \"1.3 L R2\"

" + }, + "associationBehavior":{ + "shape":"VehicleAssociationBehavior", + "documentation":"

An option to create a new Amazon Web Services IoT thing when creating a vehicle, or to validate an existing Amazon Web Services IoT thing as a vehicle.

Default:

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

Metadata that can be used to manage the vehicle.

" + } + } + }, + "CreateVehicleRequestItem":{ + "type":"structure", + "required":[ + "vehicleName", + "modelManifestArn", + "decoderManifestArn" + ], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the vehicle to create.

" + }, + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of the vehicle model (model manifest) to create the vehicle from.

" + }, + "decoderManifestArn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of a decoder manifest associated with the vehicle to create.

" + }, + "attributes":{ + "shape":"attributesMap", + "documentation":"

Static information about a vehicle in a key-value pair. For example: \"engine Type\" : \"v6\"

" + }, + "associationBehavior":{ + "shape":"VehicleAssociationBehavior", + "documentation":"

An option to create a new Amazon Web Services IoT thing when creating a vehicle, or to validate an existing thing as a vehicle.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

Metadata which can be used to manage the vehicle.

" + } + }, + "documentation":"

Information about the vehicle to create.

" + }, + "CreateVehicleResponse":{ + "type":"structure", + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the created vehicle.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of the created vehicle.

" + }, + "thingArn":{ + "shape":"arn", + "documentation":"

The ARN of a created or validated Amazon Web Services IoT thing.

" + } + } + }, + "CreateVehicleResponseItem":{ + "type":"structure", + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the vehicle to create.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of the created vehicle.

" + }, + "thingArn":{ + "shape":"arn", + "documentation":"

The ARN of a created or validated Amazon Web Services IoT thing.

" + } + }, + "documentation":"

Information about a created vehicle.

" + }, + "DataExtraDimensionNodePathList":{ + "type":"list", + "member":{"shape":"NodePath"}, + "max":5, + "min":0 + }, + "DecoderManifestSummary":{ + "type":"structure", + "required":[ + "creationTime", + "lastModificationTime" + ], + "members":{ + "name":{ + "shape":"string", + "documentation":"

The name of the decoder manifest.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of a vehicle model (model manifest) associated with the decoder manifest.

" + }, + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of a vehicle model (model manifest) associated with the decoder manifest.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the decoder manifest.

" + }, + "status":{ + "shape":"ManifestStatus", + "documentation":"

The state of the decoder manifest. If the status is ACTIVE, the decoder manifest can't be edited. If the status is marked DRAFT, you can edit the decoder manifest.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the decoder manifest was created in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time the decoder manifest was last updated in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + }, + "documentation":"

Information about a created decoder manifest. You can use the API operation to return this information about multiple decoder manifests.

" + }, + "DecoderManifestValidationException":{ + "type":"structure", + "members":{ + "invalidSignals":{ + "shape":"InvalidSignalDecoders", + "documentation":"

The request couldn't be completed because of invalid signals in the request.

" + }, + "invalidNetworkInterfaces":{ + "shape":"InvalidNetworkInterfaces", + "documentation":"

The request couldn't be completed because of invalid network interfaces in the request.

" + }, + "message":{"shape":"string"} + }, + "documentation":"

The request couldn't be completed because it contains signal decoders with one or more validation errors.

", + "exception":true + }, + "DeleteCampaignRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"campaignName", + "documentation":"

The name of the campaign to delete.

" + } + } + }, + "DeleteCampaignResponse":{ + "type":"structure", + "members":{ + "name":{ + "shape":"campaignName", + "documentation":"

The name of the deleted campaign.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the deleted campaign.

The ARN isn’t returned if a campaign doesn’t exist.

" + } + } + }, + "DeleteDecoderManifestRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the decoder manifest to delete.

" + } + } + }, + "DeleteDecoderManifestResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the deleted decoder manifest.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the deleted decoder manifest.

" + } + } + }, + "DeleteFleetRequest":{ + "type":"structure", + "required":["fleetId"], + "members":{ + "fleetId":{ + "shape":"fleetId", + "documentation":"

The ID of the fleet to delete.

" + } + } + }, + "DeleteFleetResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"fleetId", + "documentation":"

The ID of the deleted fleet.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the deleted fleet.

" + } + } + }, + "DeleteModelManifestRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the model manifest to delete.

" + } + } + }, + "DeleteModelManifestResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the deleted model manifest.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the deleted model manifest.

" + } + } + }, + "DeleteSignalCatalogRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the signal catalog to delete.

" + } + } + }, + "DeleteSignalCatalogResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the deleted signal catalog.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the deleted signal catalog.

" + } + } + }, + "DeleteVehicleRequest":{ + "type":"structure", + "required":["vehicleName"], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The ID of the vehicle to delete.

" + } + } + }, + "DeleteVehicleResponse":{ + "type":"structure", + "required":[ + "vehicleName", + "arn" + ], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The ID of the deleted vehicle.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the deleted vehicle.

" + } + } + }, + "DiagnosticsMode":{ + "type":"string", + "enum":[ + "OFF", + "SEND_ACTIVE_DTCS" + ] + }, + "DisassociateVehicleFleetRequest":{ + "type":"structure", + "required":[ + "vehicleName", + "fleetId" + ], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the vehicle to disassociate from the fleet.

" + }, + "fleetId":{ + "shape":"fleetId", + "documentation":"

The unique ID of a fleet.

" + } + } + }, + "DisassociateVehicleFleetResponse":{ + "type":"structure", + "members":{ + } + }, + "FleetSummary":{ + "type":"structure", + "required":[ + "id", + "arn", + "signalCatalogArn", + "creationTime" + ], + "members":{ + "id":{ + "shape":"fleetId", + "documentation":"

The unique ID of the fleet.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the fleet.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the fleet.

" + }, + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

The ARN of the signal catalog associated with the fleet.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the fleet was created, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time the fleet was last updated in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + }, + "documentation":"

Information about a fleet.

You can use the API operation to return this information about multiple fleets.

" + }, + "FormattedVss":{ + "type":"structure", + "members":{ + "vssJson":{ + "shape":"String", + "documentation":"

Provides the VSS in JSON format.

" + } + }, + "documentation":"

Vehicle Signal Specification (VSS) is a precise language used to describe and model signals in vehicle networks. The JSON file collects signal specificiations in a VSS format.

", + "union":true + }, + "Fqns":{ + "type":"list", + "member":{"shape":"FullyQualifiedName"}, + "max":500, + "min":1 + }, + "FullyQualifiedName":{ + "type":"string", + "max":150, + "min":1 + }, + "GetCampaignRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"campaignName", + "documentation":"

The name of the campaign to retrieve information about.

" + } + } + }, + "GetCampaignResponse":{ + "type":"structure", + "members":{ + "name":{ + "shape":"campaignName", + "documentation":"

The name of the campaign.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the campaign.

" + }, + "description":{ + "shape":"description", + "documentation":"

The description of the campaign.

" + }, + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

The ARN of a signal catalog.

" + }, + "targetArn":{ + "shape":"arn", + "documentation":"

The ARN of the vehicle or the fleet targeted by the campaign.

" + }, + "status":{ + "shape":"CampaignStatus", + "documentation":"

The state of the campaign. The status can be one of: CREATING, WAITING_FOR_APPROVAL, RUNNING, and SUSPENDED.

" + }, + "startTime":{ + "shape":"timestamp", + "documentation":"

The time, in milliseconds, to deliver a campaign after it was approved.

" + }, + "expiryTime":{ + "shape":"timestamp", + "documentation":"

The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.

" + }, + "postTriggerCollectionDuration":{ + "shape":"uint32", + "documentation":"

How long (in seconds) to collect raw data after a triggering event initiates the collection.

" + }, + "diagnosticsMode":{ + "shape":"DiagnosticsMode", + "documentation":"

Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise.

" + }, + "spoolingMode":{ + "shape":"SpoolingMode", + "documentation":"

Whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise.

" + }, + "compression":{ + "shape":"Compression", + "documentation":"

Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If OFF is specified, the signals aren't compressed. If it's not specified, SNAPPY is used.

" + }, + "priority":{ + "shape":"priority", + "documentation":"

A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns.

" + }, + "signalsToCollect":{ + "shape":"SignalInformationList", + "documentation":"

Information about a list of signals to collect data on.

" + }, + "collectionScheme":{ + "shape":"CollectionScheme", + "documentation":"

Information about the data collection scheme associated with the campaign.

" + }, + "dataExtraDimensions":{ + "shape":"DataExtraDimensionNodePathList", + "documentation":"

A list of vehicle attributes associated with the campaign.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The last time the campaign was modified.

" + } + } + }, + "GetDecoderManifestRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the decoder manifest to retrieve information about.

" + } + } + }, + "GetDecoderManifestResponse":{ + "type":"structure", + "required":[ + "name", + "arn", + "creationTime", + "lastModificationTime" + ], + "members":{ + "name":{ + "shape":"string", + "documentation":"

The name of the decoder manifest.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the decoder manifest.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the decoder manifest.

" + }, + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of a vehicle model (model manifest) associated with the decoder manifest.

" + }, + "status":{ + "shape":"ManifestStatus", + "documentation":"

The state of the decoder manifest. If the status is ACTIVE, the decoder manifest can't be edited. If the status is marked DRAFT, you can edit the decoder manifest.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the decoder manifest was created in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time the decoder manifest was last updated in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + } + }, + "GetFleetRequest":{ + "type":"structure", + "required":["fleetId"], + "members":{ + "fleetId":{ + "shape":"fleetId", + "documentation":"

The ID of the fleet to retrieve information about.

" + } + } + }, + "GetFleetResponse":{ + "type":"structure", + "required":[ + "id", + "arn", + "signalCatalogArn", + "creationTime", + "lastModificationTime" + ], + "members":{ + "id":{ + "shape":"fleetId", + "documentation":"

The ID of the fleet.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the fleet.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the fleet.

" + }, + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

The ARN of a signal catalog associated with the fleet.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the fleet was created in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time the fleet was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + } + }, + "GetLoggingOptionsRequest":{ + "type":"structure", + "members":{ + } + }, + "GetLoggingOptionsResponse":{ + "type":"structure", + "required":["cloudWatchLogDelivery"], + "members":{ + "cloudWatchLogDelivery":{ + "shape":"CloudWatchLogDeliveryOptions", + "documentation":"

Returns information about log delivery to Amazon CloudWatch Logs.

" + } + } + }, + "GetModelManifestRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the vehicle model to retrieve information about.

" + } + } + }, + "GetModelManifestResponse":{ + "type":"structure", + "required":[ + "name", + "arn", + "creationTime", + "lastModificationTime" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the vehicle model.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the vehicle model.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the vehicle model.

" + }, + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

The ARN of the signal catalog associated with the vehicle model.

" + }, + "status":{ + "shape":"ManifestStatus", + "documentation":"

The state of the vehicle model. If the status is ACTIVE, the vehicle model can't be edited. You can edit the vehicle model if the status is marked DRAFT.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the vehicle model was created, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The last time the vehicle model was modified.

" + } + } + }, + "GetRegisterAccountStatusRequest":{ + "type":"structure", + "members":{ + } + }, + "GetRegisterAccountStatusResponse":{ + "type":"structure", + "required":[ + "customerAccountId", + "accountStatus", + "timestreamRegistrationResponse", + "iamRegistrationResponse", + "creationTime", + "lastModificationTime" + ], + "members":{ + "customerAccountId":{ + "shape":"customerAccountId", + "documentation":"

The unique ID of the Amazon Web Services account, provided at account creation.

" + }, + "accountStatus":{ + "shape":"RegistrationStatus", + "documentation":"

The status of registering your account and resources. The status can be one of:

  • REGISTRATION_SUCCESS - The Amazon Web Services resource is successfully registered.

  • REGISTRATION_PENDING - Amazon Web Services IoT FleetWise is processing the registration request. This process takes approximately five minutes to complete.

  • REGISTRATION_FAILURE - Amazon Web Services IoT FleetWise can't register the AWS resource. Try again later.

" + }, + "timestreamRegistrationResponse":{ + "shape":"TimestreamRegistrationResponse", + "documentation":"

Information about the registered Amazon Timestream resources or errors, if any.

" + }, + "iamRegistrationResponse":{ + "shape":"IamRegistrationResponse", + "documentation":"

Information about the registered IAM resources or errors, if any.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + } + }, + "GetSignalCatalogRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the signal catalog to retrieve information about.

" + } + } + }, + "GetSignalCatalogResponse":{ + "type":"structure", + "required":[ + "name", + "arn", + "creationTime", + "lastModificationTime" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the signal catalog.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the signal catalog.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the signal catalog.

" + }, + "nodeCounts":{ + "shape":"NodeCounts", + "documentation":"

The total number of network nodes specified in a signal catalog.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the signal catalog was created in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The last time the signal catalog was modified.

" + } + } + }, + "GetVehicleRequest":{ + "type":"structure", + "required":["vehicleName"], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The ID of the vehicle to retrieve information about.

" + } + } + }, + "GetVehicleResponse":{ + "type":"structure", + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The ID of the vehicle.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the vehicle to retrieve information about.

" + }, + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of a vehicle model (model manifest) associated with the vehicle.

" + }, + "decoderManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of a decoder manifest associated with the vehicle.

" + }, + "attributes":{ + "shape":"attributesMap", + "documentation":"

Static information about a vehicle in a key-value pair. For example:

\"engineType\" : \"1.3 L R2\"

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the vehicle was created in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time the vehicle was last updated in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + } + }, + "GetVehicleStatusRequest":{ + "type":"structure", + "required":["vehicleName"], + "members":{ + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + }, + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The ID of the vehicle to retrieve information about.

" + } + } + }, + "GetVehicleStatusResponse":{ + "type":"structure", + "members":{ + "campaigns":{ + "shape":"VehicleStatusList", + "documentation":"

Lists information about the state of the vehicle with deployed campaigns.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "IAMRoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:(aws[a-zA-Z0-9-]*):iam::(\\d{12})?:(role((\\u002F)|(\\u002F[\\u0021-\\u007F]+\\u002F))[\\w+=,.@-]+)" + }, + "IamRegistrationResponse":{ + "type":"structure", + "required":[ + "roleArn", + "registrationStatus" + ], + "members":{ + "roleArn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to register.

" + }, + "registrationStatus":{ + "shape":"RegistrationStatus", + "documentation":"

The status of registering your IAM resource. The status can be one of REGISTRATION_SUCCESS, REGISTRATION_PENDING, REGISTRATION_FAILURE.

" + }, + "errorMessage":{ + "shape":"errorMessage", + "documentation":"

A message associated with a registration error.

" + } + }, + "documentation":"

Information about registering an Identity and Access Management (IAM) resource so Amazon Web Services IoT FleetWise edge agent software can transfer your vehicle data to Amazon Timestream.

" + }, + "IamResources":{ + "type":"structure", + "required":["roleArn"], + "members":{ + "roleArn":{ + "shape":"IAMRoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM resource that allows Amazon Web Services IoT FleetWise to send data to Amazon Timestream. For example, arn:aws:iam::123456789012:role/SERVICE-ROLE-ARN.

" + } + }, + "documentation":"

The IAM resource that enables Amazon Web Services IoT FleetWise edge agent software to send data to Amazon Timestream.

For more information, see IAM roles in the Identity and Access Management User Guide.

" + }, + "ImportDecoderManifestRequest":{ + "type":"structure", + "required":[ + "name", + "networkFileDefinitions" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the decoder manifest to import.

" + }, + "networkFileDefinitions":{ + "shape":"NetworkFileDefinitions", + "documentation":"

The file to load into an Amazon Web Services account.

" + } + } + }, + "ImportDecoderManifestResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the imported decoder manifest.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the decoder manifest that was imported.

" + } + } + }, + "ImportSignalCatalogRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the signal catalog to import.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the signal catalog.

" + }, + "vss":{ + "shape":"FormattedVss", + "documentation":"

The contents of the Vehicle Signal Specification (VSS) configuration. VSS is a precise language used to describe and model signals in vehicle networks.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

Metadata that can be used to manage the signal catalog.

" + } + } + }, + "ImportSignalCatalogResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the imported signal catalog.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the imported signal catalog.

" + } + } + }, + "InterfaceId":{ + "type":"string", + "max":50, + "min":1 + }, + "InterfaceIds":{ + "type":"list", + "member":{"shape":"InterfaceId"}, + "max":500, + "min":1 + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"string"}, + "retryAfterSeconds":{ + "shape":"RetryAfterSeconds", + "documentation":"

The number of seconds to wait before retrying the command.

" + } + }, + "documentation":"

The request couldn't be completed because the server temporarily failed.

", + "exception":true, + "fault":true + }, + "InvalidNetworkInterface":{ + "type":"structure", + "members":{ + "interfaceId":{ + "shape":"InterfaceId", + "documentation":"

The ID of the interface that isn't valid.

" + }, + "reason":{ + "shape":"NetworkInterfaceFailureReason", + "documentation":"

A message about why the interface isn't valid.

" + } + }, + "documentation":"

A reason a vehicle network interface isn't valid.

" + }, + "InvalidNetworkInterfaces":{ + "type":"list", + "member":{"shape":"InvalidNetworkInterface"} + }, + "InvalidNodeException":{ + "type":"structure", + "members":{ + "invalidNodes":{ + "shape":"Nodes", + "documentation":"

The specified node type isn't valid.

" + }, + "reason":{ + "shape":"string", + "documentation":"

The reason the node validation failed.

" + }, + "message":{"shape":"string"} + }, + "documentation":"

The specified node type doesn't match the expected node type for a node. You can specify the node type as branch, sensor, actuator, or attribute.

", + "exception":true + }, + "InvalidSignal":{ + "type":"structure", + "members":{ + "name":{ + "shape":"FullyQualifiedName", + "documentation":"

The name of the signal that isn't valid.

" + }, + "reason":{ + "shape":"string", + "documentation":"

A message about why the signal isn't valid.

" + } + }, + "documentation":"

A reason that a signal isn't valid.

" + }, + "InvalidSignalDecoder":{ + "type":"structure", + "members":{ + "name":{ + "shape":"FullyQualifiedName", + "documentation":"

The name of a signal decoder that isn't valid.

" + }, + "reason":{ + "shape":"SignalDecoderFailureReason", + "documentation":"

A message about why the signal decoder isn't valid.

" + } + }, + "documentation":"

A reason that a signal decoder isn't valid.

" + }, + "InvalidSignalDecoders":{ + "type":"list", + "member":{"shape":"InvalidSignalDecoder"} + }, + "InvalidSignals":{ + "type":"list", + "member":{"shape":"InvalidSignal"} + }, + "InvalidSignalsException":{ + "type":"structure", + "members":{ + "message":{"shape":"string"}, + "invalidSignals":{ + "shape":"InvalidSignals", + "documentation":"

The signals which caused the exception.

" + } + }, + "documentation":"

The request couldn't be completed because it contains signals that aren't valid.

", + "exception":true + }, + "LimitExceededException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"string"}, + "resourceId":{ + "shape":"string", + "documentation":"

The identifier of the resource that was exceeded.

" + }, + "resourceType":{ + "shape":"string", + "documentation":"

The type of resource that was exceeded.

" + } + }, + "documentation":"

A service quota was exceeded.

", + "exception":true + }, + "ListCampaignsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + }, + "status":{ + "shape":"status", + "documentation":"

Optional parameter to filter the results by the status of each created campaign in your account. The status can be one of: CREATING, WAITING_FOR_APPROVAL, RUNNING, or SUSPENDED.

" + } + } + }, + "ListCampaignsResponse":{ + "type":"structure", + "members":{ + "campaignSummaries":{ + "shape":"campaignSummaries", + "documentation":"

A summary of information about each campaign.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListDecoderManifestNetworkInterfacesRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the decoder manifest to list information about.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListDecoderManifestNetworkInterfacesResponse":{ + "type":"structure", + "members":{ + "networkInterfaces":{ + "shape":"NetworkInterfaces", + "documentation":"

A list of information about network interfaces.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListDecoderManifestSignalsRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the decoder manifest to list information about.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListDecoderManifestSignalsResponse":{ + "type":"structure", + "members":{ + "signalDecoders":{ + "shape":"SignalDecoders", + "documentation":"

Information about a list of signals to decode.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListDecoderManifestsRequest":{ + "type":"structure", + "members":{ + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of a vehicle model (model manifest) associated with the decoder manifest.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListDecoderManifestsResponse":{ + "type":"structure", + "members":{ + "summaries":{ + "shape":"decoderManifestSummaries", + "documentation":"

A list of information about each decoder manifest.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListFleetsForVehicleRequest":{ + "type":"structure", + "required":["vehicleName"], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The ID of the vehicle to retrieve information about.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListFleetsForVehicleResponse":{ + "type":"structure", + "members":{ + "fleets":{ + "shape":"fleets", + "documentation":"

A list of fleet IDs that the vehicle is associated with.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListFleetsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListFleetsResponse":{ + "type":"structure", + "members":{ + "fleetSummaries":{ + "shape":"fleetSummaries", + "documentation":"

A list of information for each fleet.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListModelManifestNodesRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the vehicle model to list information about.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListModelManifestNodesResponse":{ + "type":"structure", + "members":{ + "nodes":{ + "shape":"Nodes", + "documentation":"

A list of information about nodes.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListModelManifestsRequest":{ + "type":"structure", + "members":{ + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

The ARN of a signal catalog. If you specify a signal catalog, only the vehicle models associated with it are returned.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListModelManifestsResponse":{ + "type":"structure", + "members":{ + "summaries":{ + "shape":"modelManifestSummaries", + "documentation":"

A list of information about vehicle models.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListSignalCatalogNodesRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the signal catalog to list information about.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListSignalCatalogNodesResponse":{ + "type":"structure", + "members":{ + "nodes":{ + "shape":"Nodes", + "documentation":"

A list of information about nodes.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListSignalCatalogsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListSignalCatalogsResponse":{ + "type":"structure", + "members":{ + "summaries":{ + "shape":"signalCatalogSummaries", + "documentation":"

A list of information about each signal catalog.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceARN"], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagList", + "documentation":"

The list of tags assigned to the resource.

" + } + } + }, + "ListVehiclesInFleetRequest":{ + "type":"structure", + "required":["fleetId"], + "members":{ + "fleetId":{ + "shape":"fleetId", + "documentation":"

The ID of a fleet.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"maxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListVehiclesInFleetResponse":{ + "type":"structure", + "members":{ + "vehicles":{ + "shape":"vehicles", + "documentation":"

A list of vehicles associated with the fleet.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "ListVehiclesRequest":{ + "type":"structure", + "members":{ + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of a vehicle model (model manifest). You can use this optional parameter to list only the vehicles created from a certain vehicle model.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

A pagination token for the next set of results.

If the results of a search are large, only a portion of the results are returned, and a nextToken pagination token is returned in the response. To retrieve the next set of results, reissue the search request and include the returned token. When all results have been returned, the response does not contain a pagination token value.

" + }, + "maxResults":{ + "shape":"listVehiclesMaxResults", + "documentation":"

The maximum number of items to return, between 1 and 100, inclusive.

" + } + } + }, + "ListVehiclesResponse":{ + "type":"structure", + "members":{ + "vehicleSummaries":{ + "shape":"vehicleSummaries", + "documentation":"

A list of vehicles and information about them.

" + }, + "nextToken":{ + "shape":"nextToken", + "documentation":"

The token to retrieve the next set of results, or null if there are no more results.

" + } + } + }, + "LogType":{ + "type":"string", + "enum":[ + "OFF", + "ERROR" + ] + }, + "ManifestStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "DRAFT" + ] + }, + "ModelManifestSummary":{ + "type":"structure", + "required":[ + "creationTime", + "lastModificationTime" + ], + "members":{ + "name":{ + "shape":"string", + "documentation":"

The name of the vehicle model.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the vehicle model.

" + }, + "signalCatalogArn":{ + "shape":"arn", + "documentation":"

The ARN of the signal catalog associated with the vehicle model.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the vehicle model.

" + }, + "status":{ + "shape":"ManifestStatus", + "documentation":"

The state of the vehicle model. If the status is ACTIVE, the vehicle model can't be edited. If the status is DRAFT, you can edit the vehicle model.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the vehicle model was created, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time the vehicle model was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + }, + "documentation":"

Information about a vehicle model (model manifest). You can use the API operation to return this information about multiple vehicle models.

" + }, + "ModelSignalsMap":{ + "type":"map", + "key":{"shape":"string"}, + "value":{"shape":"string"} + }, + "NetworkFileBlob":{"type":"blob"}, + "NetworkFileDefinition":{ + "type":"structure", + "members":{ + "canDbc":{ + "shape":"CanDbcDefinition", + "documentation":"

Information, including CAN DBC files, about the configurations used to create a decoder manifest.

" + } + }, + "documentation":"

Specifications for defining a vehicle network.

", + "union":true + }, + "NetworkFileDefinitions":{ + "type":"list", + "member":{"shape":"NetworkFileDefinition"} + }, + "NetworkFilesList":{ + "type":"list", + "member":{"shape":"NetworkFileBlob"}, + "max":5, + "min":1 + }, + "NetworkInterface":{ + "type":"structure", + "required":[ + "interfaceId", + "type" + ], + "members":{ + "interfaceId":{ + "shape":"InterfaceId", + "documentation":"

The ID of the network interface.

" + }, + "type":{ + "shape":"NetworkInterfaceType", + "documentation":"

The network protocol for the vehicle. For example, CAN_SIGNAL specifies a protocol that defines how data is communicated between electronic control units (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic data is communicated between ECUs.

" + }, + "canInterface":{ + "shape":"CanInterface", + "documentation":"

Information about a network interface specified by the Controller Area Network (CAN) protocol.

" + }, + "obdInterface":{ + "shape":"ObdInterface", + "documentation":"

Information about a network interface specified by the On-board diagnostic (OBD) II protocol.

" + } + }, + "documentation":"

Represents a node and its specifications in an in-vehicle communication network. All signal decoders must be associated with a network node.

To return this information about all the network interfaces specified in a decoder manifest, use the API operation.

" + }, + "NetworkInterfaceFailureReason":{ + "type":"string", + "enum":[ + "DUPLICATE_NETWORK_INTERFACE", + "CONFLICTING_NETWORK_INTERFACE", + "NETWORK_INTERFACE_TO_ADD_ALREADY_EXISTS", + "CAN_NETWORK_INTERFACE_INFO_IS_NULL", + "OBD_NETWORK_INTERFACE_INFO_IS_NULL", + "NETWORK_INTERFACE_TO_REMOVE_ASSOCIATED_WITH_SIGNALS" + ] + }, + "NetworkInterfaceType":{ + "type":"string", + "enum":[ + "CAN_INTERFACE", + "OBD_INTERFACE" + ] + }, + "NetworkInterfaces":{ + "type":"list", + "member":{"shape":"NetworkInterface"}, + "max":500, + "min":1 + }, + "Node":{ + "type":"structure", + "members":{ + "branch":{ + "shape":"Branch", + "documentation":"

Information about a node specified as a branch.

A group of signals that are defined in a hierarchical structure.

" + }, + "sensor":{"shape":"Sensor"}, + "actuator":{ + "shape":"Actuator", + "documentation":"

Information about a node specified as an actuator.

An actuator is a digital representation of a vehicle device.

" + }, + "attribute":{ + "shape":"Attribute", + "documentation":"

Information about a node specified as an attribute.

An attribute represents static information about a vehicle.

" + } + }, + "documentation":"

A general abstraction of a signal. A node can be specified as an actuator, attribute, branch, or sensor.

", + "union":true + }, + "NodeCounts":{ + "type":"structure", + "members":{ + "totalNodes":{ + "shape":"number", + "documentation":"

The total number of nodes in a vehicle network.

" + }, + "totalBranches":{ + "shape":"number", + "documentation":"

The total number of nodes in a vehicle network that represent branches.

" + }, + "totalSensors":{ + "shape":"number", + "documentation":"

The total number of nodes in a vehicle network that represent sensors.

" + }, + "totalAttributes":{ + "shape":"number", + "documentation":"

The total number of nodes in a vehicle network that represent attributes.

" + }, + "totalActuators":{ + "shape":"number", + "documentation":"

The total number of nodes in a vehicle network that represent actuators.

" + } + }, + "documentation":"

Information about the number of nodes and node types in a vehicle network.

" + }, + "NodeDataType":{ + "type":"string", + "enum":[ + "INT8", + "UINT8", + "INT16", + "UINT16", + "INT32", + "UINT32", + "INT64", + "UINT64", + "BOOLEAN", + "FLOAT", + "DOUBLE", + "STRING", + "UNIX_TIMESTAMP", + "INT8_ARRAY", + "UINT8_ARRAY", + "INT16_ARRAY", + "UINT16_ARRAY", + "INT32_ARRAY", + "UINT32_ARRAY", + "INT64_ARRAY", + "UINT64_ARRAY", + "BOOLEAN_ARRAY", + "FLOAT_ARRAY", + "DOUBLE_ARRAY", + "STRING_ARRAY", + "UNIX_TIMESTAMP_ARRAY", + "UNKNOWN" + ] + }, + "NodePath":{ + "type":"string", + "max":150, + "min":1, + "pattern":"[a-zA-Z0-9_.]+" + }, + "NodePaths":{ + "type":"list", + "member":{"shape":"NodePath"}, + "max":500, + "min":1 + }, + "Nodes":{ + "type":"list", + "member":{"shape":"Node"}, + "max":500, + "min":0 + }, + "ObdBitmaskLength":{ + "type":"integer", + "box":true, + "max":8, + "min":1 + }, + "ObdByteLength":{ + "type":"integer", + "box":true, + "max":8, + "min":1 + }, + "ObdInterface":{ + "type":"structure", + "required":[ + "name", + "requestMessageId" + ], + "members":{ + "name":{ + "shape":"ObdInterfaceName", + "documentation":"

The name of the interface.

" + }, + "requestMessageId":{ + "shape":"nonNegativeInteger", + "documentation":"

The ID of the message requesting vehicle data.

" + }, + "obdStandard":{ + "shape":"ObdStandard", + "documentation":"

The standard OBD II PID.

" + }, + "pidRequestIntervalSeconds":{ + "shape":"nonNegativeInteger", + "documentation":"

The maximum number message requests per second.

" + }, + "dtcRequestIntervalSeconds":{ + "shape":"nonNegativeInteger", + "documentation":"

The maximum number message requests per diagnostic trouble code per second.

" + }, + "useExtendedIds":{ + "shape":"boolean", + "documentation":"

Whether to use extended IDs in the message.

" + }, + "hasTransmissionEcu":{ + "shape":"boolean", + "documentation":"

Whether the vehicle has a transmission control module (TCM).

" + } + }, + "documentation":"

A network interface that specifies the On-board diagnostic (OBD) II network protocol.

" + }, + "ObdInterfaceName":{ + "type":"string", + "max":100, + "min":1 + }, + "ObdSignal":{ + "type":"structure", + "required":[ + "pidResponseLength", + "serviceMode", + "pid", + "scaling", + "offset", + "startByte", + "byteLength" + ], + "members":{ + "pidResponseLength":{ + "shape":"positiveInteger", + "documentation":"

The length of the requested data.

" + }, + "serviceMode":{ + "shape":"nonNegativeInteger", + "documentation":"

The mode of operation (diagnostic service) in a message.

" + }, + "pid":{ + "shape":"nonNegativeInteger", + "documentation":"

The diagnostic code used to request data from a vehicle for this signal.

" + }, + "scaling":{ + "shape":"double", + "documentation":"

A multiplier used to decode the message.

" + }, + "offset":{ + "shape":"double", + "documentation":"

Indicates where data appears in the message.

" + }, + "startByte":{ + "shape":"nonNegativeInteger", + "documentation":"

Indicates the beginning of the message.

" + }, + "byteLength":{ + "shape":"ObdByteLength", + "documentation":"

The length of a message.

" + }, + "bitRightShift":{ + "shape":"nonNegativeInteger", + "documentation":"

The number of positions to shift bits in the message.

" + }, + "bitMaskLength":{ + "shape":"ObdBitmaskLength", + "documentation":"

The number of bits to mask in a message.

" + } + }, + "documentation":"

Information about signal messages using the on-board diagnostics (OBD) II protocol in a vehicle.

" + }, + "ObdStandard":{ + "type":"string", + "max":50, + "min":1 + }, + "ProtocolName":{ + "type":"string", + "max":50, + "min":1 + }, + "ProtocolVersion":{ + "type":"string", + "max":50, + "min":1 + }, + "PutLoggingOptionsRequest":{ + "type":"structure", + "required":["cloudWatchLogDelivery"], + "members":{ + "cloudWatchLogDelivery":{ + "shape":"CloudWatchLogDeliveryOptions", + "documentation":"

Creates or updates the log delivery option to Amazon CloudWatch Logs.

" + } + } + }, + "PutLoggingOptionsResponse":{ + "type":"structure", + "members":{ + } + }, + "RegisterAccountRequest":{ + "type":"structure", + "required":["timestreamResources"], + "members":{ + "timestreamResources":{"shape":"TimestreamResources"}, + "iamResources":{ + "shape":"IamResources", + "documentation":"

The IAM resource that allows Amazon Web Services IoT FleetWise to send data to Amazon Timestream.

", + "deprecated":true, + "deprecatedMessage":"iamResources is no longer used or needed as input" + } + } + }, + "RegisterAccountResponse":{ + "type":"structure", + "required":[ + "registerAccountStatus", + "timestreamResources", + "iamResources", + "creationTime", + "lastModificationTime" + ], + "members":{ + "registerAccountStatus":{ + "shape":"RegistrationStatus", + "documentation":"

The status of registering your Amazon Web Services account, IAM role, and Timestream resources.

" + }, + "timestreamResources":{"shape":"TimestreamResources"}, + "iamResources":{ + "shape":"IamResources", + "documentation":"

The registered IAM resource that allows Amazon Web Services IoT FleetWise to send data to Amazon Timestream.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the account was registered, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time this registration was last updated, in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + } + }, + "RegistrationStatus":{ + "type":"string", + "enum":[ + "REGISTRATION_PENDING", + "REGISTRATION_SUCCESS", + "REGISTRATION_FAILURE" + ] + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"string"}, + "resourceId":{ + "shape":"string", + "documentation":"

The identifier of the resource that wasn't found.

" + }, + "resourceType":{ + "shape":"string", + "documentation":"

The type of resource that wasn't found.

" + } + }, + "documentation":"

The resource wasn't found.

", + "exception":true + }, + "RetryAfterSeconds":{"type":"integer"}, + "Sensor":{ + "type":"structure", + "required":[ + "fullyQualifiedName", + "dataType" + ], + "members":{ + "fullyQualifiedName":{ + "shape":"string", + "documentation":"

The fully qualified name of the sensor. For example, the fully qualified name of a sensor might be Vehicle.Body.Engine.Battery.

" + }, + "dataType":{ + "shape":"NodeDataType", + "documentation":"

The specified data type of the sensor.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of a sensor.

" + }, + "unit":{ + "shape":"string", + "documentation":"

The scientific unit of measurement for data collected by the sensor.

" + }, + "allowedValues":{ + "shape":"listOfStrings", + "documentation":"

A list of possible values a sensor can take.

" + }, + "min":{ + "shape":"double", + "documentation":"

The specified possible minimum value of the sensor.

" + }, + "max":{ + "shape":"double", + "documentation":"

The specified possible maximum value of the sensor.

" + } + }, + "documentation":"

An input component that reports the environmental condition of a vehicle.

You can collect data about fluid levels, temperatures, vibrations, or battery voltage from sensors.

" + }, + "SignalCatalogSummary":{ + "type":"structure", + "members":{ + "name":{ + "shape":"string", + "documentation":"

The name of the signal catalog.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the signal catalog.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the signal catalog was created in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time the signal catalog was last updated in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + }, + "documentation":"

Information about a collection of standardized signals, which can be attributes, branches, sensors, or actuators.

" + }, + "SignalDecoder":{ + "type":"structure", + "required":[ + "fullyQualifiedName", + "type", + "interfaceId" + ], + "members":{ + "fullyQualifiedName":{ + "shape":"FullyQualifiedName", + "documentation":"

The fully qualified name of a signal decoder as defined in a vehicle model.

" + }, + "type":{ + "shape":"SignalDecoderType", + "documentation":"

The network protocol for the vehicle. For example, CAN_SIGNAL specifies a protocol that defines how data is communicated between electronic control units (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic data is communicated between ECUs.

" + }, + "interfaceId":{ + "shape":"InterfaceId", + "documentation":"

The ID of a network interface that specifies what network protocol a vehicle follows.

" + }, + "canSignal":{ + "shape":"CanSignal", + "documentation":"

Information about signal decoder using the Controller Area Network (CAN) protocol.

" + }, + "obdSignal":{ + "shape":"ObdSignal", + "documentation":"

Information about signal decoder using the On-board diagnostic (OBD) II protocol.

" + } + }, + "documentation":"

Information about a signal decoder.

" + }, + "SignalDecoderFailureReason":{ + "type":"string", + "enum":[ + "DUPLICATE_SIGNAL", + "CONFLICTING_SIGNAL", + "SIGNAL_TO_ADD_ALREADY_EXISTS", + "SIGNAL_NOT_ASSOCIATED_WITH_NETWORK_INTERFACE", + "NETWORK_INTERFACE_TYPE_INCOMPATIBLE_WITH_SIGNAL_DECODER_TYPE", + "SIGNAL_NOT_IN_MODEL", + "CAN_SIGNAL_INFO_IS_NULL", + "OBD_SIGNAL_INFO_IS_NULL", + "NO_DECODER_INFO_FOR_SIGNAL_IN_MODEL" + ] + }, + "SignalDecoderType":{ + "type":"string", + "enum":[ + "CAN_SIGNAL", + "OBD_SIGNAL" + ] + }, + "SignalDecoders":{ + "type":"list", + "member":{"shape":"SignalDecoder"}, + "max":500, + "min":1 + }, + "SignalInformation":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"wildcardSignalName", + "documentation":"

The name of the signal.

" + }, + "maxSampleCount":{ + "shape":"maxSampleCount", + "documentation":"

The maximum number of samples to collect.

" + }, + "minimumSamplingIntervalMs":{ + "shape":"uint32", + "documentation":"

The minimum duration of time (in milliseconds) between two triggering events to collect data.

If a signal changes often, you might want to collect data at a slower rate.

" + } + }, + "documentation":"

Information about a signal.

" + }, + "SignalInformationList":{ + "type":"list", + "member":{"shape":"SignalInformation"}, + "max":1000, + "min":0 + }, + "SpoolingMode":{ + "type":"string", + "enum":[ + "OFF", + "TO_DISK" + ] + }, + "String":{"type":"string"}, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

The tag's key.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

The tag's value.

" + } + }, + "documentation":"

A set of key/value pairs that are used to manage the resource.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "Tags" + ], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The new or modified tags for the resource.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"string"}, + "quotaCode":{ + "shape":"string", + "documentation":"

The quota identifier of the applied throttling rules for this request.

" + }, + "serviceCode":{ + "shape":"string", + "documentation":"

The code for the service that couldn't be completed due to throttling.

" + }, + "retryAfterSeconds":{ + "shape":"RetryAfterSeconds", + "documentation":"

The number of seconds to wait before retrying the command.

" + } + }, + "documentation":"

The request couldn't be completed due to throttling.

", + "exception":true + }, + "TimeBasedCollectionScheme":{ + "type":"structure", + "required":["periodMs"], + "members":{ + "periodMs":{ + "shape":"collectionPeriodMs", + "documentation":"

The time period (in milliseconds) to decide how often to collect data. For example, if the time period is 60000, the Edge Agent software collects data once every minute.

" + } + }, + "documentation":"

Information about a collection scheme that uses a time period to decide how often to collect data.

" + }, + "TimestreamDatabaseName":{ + "type":"string", + "max":255, + "min":3, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "TimestreamRegistrationResponse":{ + "type":"structure", + "required":[ + "timestreamDatabaseName", + "timestreamTableName", + "registrationStatus" + ], + "members":{ + "timestreamDatabaseName":{ + "shape":"TimestreamDatabaseName", + "documentation":"

The name of the Timestream database.

" + }, + "timestreamTableName":{ + "shape":"TimestreamTableName", + "documentation":"

The name of the Timestream database table.

" + }, + "timestreamDatabaseArn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the Timestream database.

" + }, + "timestreamTableArn":{ + "shape":"arn", + "documentation":"

The ARN of the Timestream database table.

" + }, + "registrationStatus":{ + "shape":"RegistrationStatus", + "documentation":"

The status of registering your Amazon Timestream resources. The status can be one of REGISTRATION_SUCCESS, REGISTRATION_PENDING, REGISTRATION_FAILURE.

" + }, + "errorMessage":{ + "shape":"errorMessage", + "documentation":"

A message associated with a registration error.

" + } + }, + "documentation":"

Information about the registered Amazon Timestream resources or errors, if any.

" + }, + "TimestreamResources":{ + "type":"structure", + "required":[ + "timestreamDatabaseName", + "timestreamTableName" + ], + "members":{ + "timestreamDatabaseName":{ + "shape":"TimestreamDatabaseName", + "documentation":"

The name of the registered Amazon Timestream database.

" + }, + "timestreamTableName":{ + "shape":"TimestreamTableName", + "documentation":"

The name of the registered Amazon Timestream database table.

" + } + }, + "documentation":"

The registered Amazon Timestream resources that Amazon Web Services IoT FleetWise edge agent software can transfer your vehicle data to.

" + }, + "TimestreamTableName":{ + "type":"string", + "max":255, + "min":3, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "TriggerMode":{ + "type":"string", + "enum":[ + "ALWAYS", + "RISING_EDGE" + ] + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceARN", + "TagKeys" + ], + "members":{ + "ResourceARN":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource.

" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

A list of the keys of the tags to be removed from the resource.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateCampaignAction":{ + "type":"string", + "enum":[ + "APPROVE", + "SUSPEND", + "RESUME", + "UPDATE" + ] + }, + "UpdateCampaignRequest":{ + "type":"structure", + "required":[ + "name", + "action" + ], + "members":{ + "name":{ + "shape":"campaignName", + "documentation":"

The name of the campaign to update.

" + }, + "description":{ + "shape":"description", + "documentation":"

The description of the campaign.

" + }, + "dataExtraDimensions":{ + "shape":"DataExtraDimensionNodePathList", + "documentation":"

A list of vehicle attributes to associate with a signal.

Default: An empty array

" + }, + "action":{ + "shape":"UpdateCampaignAction", + "documentation":"

Specifies how to update a campaign. The action can be one of the following:

  • APPROVE - To approve delivering a data collection scheme to vehicles.

  • SUSPEND - To suspend collecting signal data.

  • RESUME - To resume collecting signal data.

  • UPDATE - To update a campaign.

" + } + } + }, + "UpdateCampaignResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the campaign.

" + }, + "name":{ + "shape":"campaignName", + "documentation":"

The name of the updated campaign.

" + }, + "status":{ + "shape":"CampaignStatus", + "documentation":"

The state of a campaign. The status can be one of:

  • CREATING - Amazon Web Services IoT FleetWise is processing your request to create the campaign.

  • WAITING_FOR_APPROVAL - After a campaign is created, it enters the WAITING_FOR_APPROVAL state. To allow Amazon Web Services IoT FleetWise to deploy the campaign to the target vehicle or fleet, use the API operation to approve the campaign.

  • RUNNING - The campaign is active.

  • SUSPENDED - The campaign is suspended. To resume the campaign, use the API operation.

" + } + } + }, + "UpdateDecoderManifestRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the decoder manifest to update.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the decoder manifest to update.

" + }, + "signalDecodersToAdd":{ + "shape":"SignalDecoders", + "documentation":"

A list of information about decoding additional signals to add to the decoder manifest.

" + }, + "signalDecodersToUpdate":{ + "shape":"SignalDecoders", + "documentation":"

A list of updated information about decoding signals to update in the decoder manifest.

" + }, + "signalDecodersToRemove":{ + "shape":"Fqns", + "documentation":"

A list of signal decoders to remove from the decoder manifest.

" + }, + "networkInterfacesToAdd":{ + "shape":"NetworkInterfaces", + "documentation":"

A list of information about the network interfaces to add to the decoder manifest.

" + }, + "networkInterfacesToUpdate":{ + "shape":"NetworkInterfaces", + "documentation":"

A list of information about the network interfaces to update in the decoder manifest.

" + }, + "networkInterfacesToRemove":{ + "shape":"InterfaceIds", + "documentation":"

A list of network interfaces to remove from the decoder manifest.

" + }, + "status":{ + "shape":"ManifestStatus", + "documentation":"

The state of the decoder manifest. If the status is ACTIVE, the decoder manifest can't be edited. If the status is DRAFT, you can edit the decoder manifest.

" + } + } + }, + "UpdateDecoderManifestResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the updated decoder manifest.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the updated decoder manifest.

" + } + } + }, + "UpdateFleetRequest":{ + "type":"structure", + "required":["fleetId"], + "members":{ + "fleetId":{ + "shape":"fleetId", + "documentation":"

The ID of the fleet to update.

" + }, + "description":{ + "shape":"description", + "documentation":"

An updated description of the fleet.

" + } + } + }, + "UpdateFleetResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"fleetId", + "documentation":"

The ID of the updated fleet.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the updated fleet.

" + } + } + }, + "UpdateMode":{ + "type":"string", + "enum":[ + "Overwrite", + "Merge" + ] + }, + "UpdateModelManifestRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the vehicle model to update.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the vehicle model.

" + }, + "nodesToAdd":{ + "shape":"NodePaths", + "documentation":"

A list of fullyQualifiedName of nodes, which are a general abstraction of signals, to add to the vehicle model.

" + }, + "nodesToRemove":{ + "shape":"NodePaths", + "documentation":"

A list of fullyQualifiedName of nodes, which are a general abstraction of signals, to remove from the vehicle model.

" + }, + "status":{ + "shape":"ManifestStatus", + "documentation":"

The state of the vehicle model. If the status is ACTIVE, the vehicle model can't be edited. If the status is DRAFT, you can edit the vehicle model.

" + } + } + }, + "UpdateModelManifestResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the updated vehicle model.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the updated vehicle model.

" + } + } + }, + "UpdateSignalCatalogRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the signal catalog to update.

" + }, + "description":{ + "shape":"description", + "documentation":"

A brief description of the signal catalog to update.

" + }, + "nodesToAdd":{ + "shape":"Nodes", + "documentation":"

A list of information about nodes to add to the signal catalog.

" + }, + "nodesToUpdate":{ + "shape":"Nodes", + "documentation":"

A list of information about nodes to update in the signal catalog.

" + }, + "nodesToRemove":{ + "shape":"NodePaths", + "documentation":"

A list of fullyQualifiedName of nodes to remove from the signal catalog.

" + } + } + }, + "UpdateSignalCatalogResponse":{ + "type":"structure", + "required":[ + "name", + "arn" + ], + "members":{ + "name":{ + "shape":"resourceName", + "documentation":"

The name of the updated signal catalog.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of the updated signal catalog.

" + } + } + }, + "UpdateVehicleError":{ + "type":"structure", + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The ID of the vehicle with the error.

" + }, + "code":{ + "shape":"number", + "documentation":"

The relevant HTTP error code (400+).

" + }, + "message":{ + "shape":"string", + "documentation":"

A message associated with the error.

" + } + }, + "documentation":"

An HTTP error resulting from updating the description for a vehicle.

" + }, + "UpdateVehicleRequest":{ + "type":"structure", + "required":["vehicleName"], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the vehicle to update.

" + }, + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of a vehicle model (model manifest) associated with the vehicle.

" + }, + "decoderManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of the decoder manifest associated with this vehicle.

" + }, + "attributes":{ + "shape":"attributesMap", + "documentation":"

Static information about a vehicle in a key-value pair. For example:

\"engineType\" : \"1.3 L R2\"

" + }, + "attributeUpdateMode":{ + "shape":"UpdateMode", + "documentation":"

The method the specified attributes will update the existing attributes on the vehicle. UseOverwite to replace the vehicle attributes with the specified attributes. Or use Merge to combine all attributes.

This is required if attributes are present in the input.

" + } + } + }, + "UpdateVehicleRequestItem":{ + "type":"structure", + "required":["vehicleName"], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the vehicle to update.

" + }, + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of the vehicle model (model manifest) associated with the vehicle to update.

" + }, + "decoderManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of the signal decoder manifest associated with the vehicle to update.

" + }, + "attributes":{ + "shape":"attributesMap", + "documentation":"

Static information about a vehicle in a key-value pair. For example:

\"engineType\" : \"1.3 L R2\"

" + }, + "attributeUpdateMode":{ + "shape":"UpdateMode", + "documentation":"

The method the specified attributes will update the existing attributes on the vehicle. UseOverwite to replace the vehicle attributes with the specified attributes. Or use Merge to combine all attributes.

This is required if attributes are present in the input.

" + } + }, + "documentation":"

Information about the vehicle to update.

" + }, + "UpdateVehicleResponse":{ + "type":"structure", + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The ID of the updated vehicle.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The ARN of the updated vehicle.

" + } + } + }, + "UpdateVehicleResponseItem":{ + "type":"structure", + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the updated vehicle.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the updated vehicle.

" + } + }, + "documentation":"

Information about the updated vehicle.

" + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"string"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

The reason the input failed to satisfy the constraints specified by an Amazon Web Services service.

" + }, + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

The list of fields that fail to satisfy the constraints specified by an Amazon Web Services service.

" + } + }, + "documentation":"

The input fails to satisfy the constraints specified by an Amazon Web Services service.

", + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "name", + "message" + ], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the parameter field with the validation error.

" + }, + "message":{ + "shape":"String", + "documentation":"

A message about the validation error.

" + } + }, + "documentation":"

A validation error due to mismatch between the expected data type, length, or pattern of the parameter and the input.

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + }, + "VehicleAssociationBehavior":{ + "type":"string", + "enum":[ + "CreateIotThing", + "ValidateIotThingExists" + ] + }, + "VehicleState":{ + "type":"string", + "enum":[ + "CREATED", + "READY", + "HEALTHY", + "SUSPENDED", + "DELETING" + ] + }, + "VehicleStatus":{ + "type":"structure", + "members":{ + "campaignName":{ + "shape":"string", + "documentation":"

The name of a campaign.

" + }, + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the vehicle.

" + }, + "status":{ + "shape":"VehicleState", + "documentation":"

The state of a vehicle, which can be one of the following:

  • CREATED - Amazon Web Services IoT FleetWise sucessfully created the vehicle.

  • READY - The vehicle is ready to receive a campaign deployment.

  • HEALTHY - A campaign deployment was delivered to the vehicle.

  • SUSPENDED - A campaign associated with the vehicle was suspended and data collection was paused.

  • DELETING - Amazon Web Services IoT FleetWise is removing a campaign from the vehicle.

" + } + }, + "documentation":"

Information about the state of a vehicle and how it relates to the status of a campaign.

" + }, + "VehicleStatusList":{ + "type":"list", + "member":{"shape":"VehicleStatus"} + }, + "VehicleSummary":{ + "type":"structure", + "required":[ + "vehicleName", + "arn", + "modelManifestArn", + "decoderManifestArn", + "creationTime", + "lastModificationTime" + ], + "members":{ + "vehicleName":{ + "shape":"vehicleName", + "documentation":"

The unique ID of the vehicle.

" + }, + "arn":{ + "shape":"arn", + "documentation":"

The Amazon Resource Name (ARN) of the vehicle.

" + }, + "modelManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of a vehicle model (model manifest) associated with the vehicle.

" + }, + "decoderManifestArn":{ + "shape":"arn", + "documentation":"

The ARN of a decoder manifest associated with the vehicle.

" + }, + "creationTime":{ + "shape":"timestamp", + "documentation":"

The time the vehicle was created in seconds since epoch (January 1, 1970 at midnight UTC time).

" + }, + "lastModificationTime":{ + "shape":"timestamp", + "documentation":"

The time the vehicle was last updated in seconds since epoch (January 1, 1970 at midnight UTC time).

" + } + }, + "documentation":"

Information about a vehicle.

To return this information about vehicles in your account, you can use the API operation.

" + }, + "arn":{"type":"string"}, + "attributeName":{ + "type":"string", + "max":150, + "min":1, + "pattern":"[a-zA-Z0-9_.-]+" + }, + "attributeValue":{"type":"string"}, + "attributesMap":{ + "type":"map", + "key":{"shape":"attributeName"}, + "value":{"shape":"attributeValue"} + }, + "boolean":{"type":"boolean"}, + "campaignName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z\\d\\-_:]+" + }, + "campaignSummaries":{ + "type":"list", + "member":{"shape":"CampaignSummary"} + }, + "collectionPeriodMs":{ + "type":"long", + "box":true, + "max":60000, + "min":10000 + }, + "createVehicleErrors":{ + "type":"list", + "member":{"shape":"CreateVehicleError"} + }, + "createVehicleRequestItems":{ + "type":"list", + "member":{"shape":"CreateVehicleRequestItem"} + }, + "createVehicleResponses":{ + "type":"list", + "member":{"shape":"CreateVehicleResponseItem"} + }, + "customerAccountId":{"type":"string"}, + "decoderManifestSummaries":{ + "type":"list", + "member":{"shape":"DecoderManifestSummary"} + }, + "description":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[^\\u0000-\\u001F\\u007F]+" + }, + "double":{ + "type":"double", + "box":true + }, + "errorMessage":{"type":"string"}, + "eventExpression":{ + "type":"string", + "max":2048, + "min":1 + }, + "fleetId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9:_-]+" + }, + "fleetSummaries":{ + "type":"list", + "member":{"shape":"FleetSummary"} + }, + "fleets":{ + "type":"list", + "member":{"shape":"fleetId"} + }, + "languageVersion":{ + "type":"integer", + "box":true, + "min":1 + }, + "listOfStrings":{ + "type":"list", + "member":{"shape":"string"} + }, + "listVehiclesMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "maxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "maxSampleCount":{ + "type":"long", + "box":true, + "max":4294967295, + "min":1 + }, + "modelManifestSummaries":{ + "type":"list", + "member":{"shape":"ModelManifestSummary"} + }, + "nextToken":{ + "type":"string", + "max":4096, + "min":1 + }, + "nonNegativeInteger":{ + "type":"integer", + "min":0 + }, + "number":{"type":"integer"}, + "positiveInteger":{ + "type":"integer", + "min":1 + }, + "priority":{ + "type":"integer", + "box":true, + "min":0 + }, + "resourceName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z\\d\\-_:]+" + }, + "signalCatalogSummaries":{ + "type":"list", + "member":{"shape":"SignalCatalogSummary"} + }, + "status":{"type":"string"}, + "string":{"type":"string"}, + "timestamp":{"type":"timestamp"}, + "uint32":{ + "type":"long", + "box":true, + "max":4294967295, + "min":0 + }, + "updateVehicleErrors":{ + "type":"list", + "member":{"shape":"UpdateVehicleError"} + }, + "updateVehicleRequestItems":{ + "type":"list", + "member":{"shape":"UpdateVehicleRequestItem"} + }, + "updateVehicleResponseItems":{ + "type":"list", + "member":{"shape":"UpdateVehicleResponseItem"} + }, + "vehicleName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z\\d\\-_:]+" + }, + "vehicleSummaries":{ + "type":"list", + "member":{"shape":"VehicleSummary"} + }, + "vehicles":{ + "type":"list", + "member":{"shape":"vehicleName"} + }, + "wildcardSignalName":{ + "type":"string", + "max":150, + "min":1, + "pattern":"[\\w|*|-]+(\\.[\\w|*|-]+)*" + } + }, + "documentation":"

Amazon Web Services IoT FleetWise is a fully managed service that you can use to collect, model, and transfer vehicle data to the Amazon Web Services cloud at scale. With Amazon Web Services IoT FleetWise, you can standardize all of your vehicle data models, independent of the in-vehicle communication architecture, and define data collection rules to transfer only high-value data to the cloud.

For more information, see What is Amazon Web Services IoT FleetWise? in the Amazon Web Services IoT FleetWise Developer Guide.

" +} diff --git a/botocore/data/iotfleetwise/2021-06-17/waiters-2.json b/botocore/data/iotfleetwise/2021-06-17/waiters-2.json new file mode 100644 index 00000000..13f60ee6 --- /dev/null +++ b/botocore/data/iotfleetwise/2021-06-17/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/botocore/data/iotsecuretunneling/2018-10-05/endpoint-rule-set-1.json b/botocore/data/iotsecuretunneling/2018-10-05/endpoint-rule-set-1.json new file mode 100644 index 00000000..1f3d0b2b --- /dev/null +++ b/botocore/data/iotsecuretunneling/2018-10-05/endpoint-rule-set-1.json @@ -0,0 +1,365 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.tunneling.iot-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://api.tunneling.iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://api.tunneling.iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.tunneling.iot-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.tunneling.iot.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.tunneling.iot.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotsecuretunneling/2018-10-05/examples-1.json b/botocore/data/iotsecuretunneling/2018-10-05/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iotsecuretunneling/2018-10-05/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iotsitewise/2019-12-02/endpoint-rule-set-1.json b/botocore/data/iotsitewise/2019-12-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..fb779a32 --- /dev/null +++ b/botocore/data/iotsitewise/2019-12-02/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotsitewise-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotsitewise-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotsitewise.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iotsitewise.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotsitewise/2019-12-02/examples-1.json b/botocore/data/iotsitewise/2019-12-02/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iotsitewise/2019-12-02/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iotsitewise/2019-12-02/paginators-1.json b/botocore/data/iotsitewise/2019-12-02/paginators-1.json index 0f3fe49a..5c7c0067 100644 --- a/botocore/data/iotsitewise/2019-12-02/paginators-1.json +++ b/botocore/data/iotsitewise/2019-12-02/paginators-1.json @@ -83,6 +83,24 @@ "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" } } } diff --git a/botocore/data/iotsitewise/2019-12-02/service-2.json b/botocore/data/iotsitewise/2019-12-02/service-2.json index 30cce144..e90ff8ff 100644 --- a/botocore/data/iotsitewise/2019-12-02/service-2.json +++ b/botocore/data/iotsitewise/2019-12-02/service-2.json @@ -21,6 +21,7 @@ "input":{"shape":"AssociateAssetsRequest"}, "errors":[ {"shape":"InvalidRequestException"}, + {"shape":"ResourceAlreadyExistsException"}, {"shape":"ResourceNotFoundException"}, {"shape":"InternalFailureException"}, {"shape":"LimitExceededException"}, @@ -171,7 +172,7 @@ {"shape":"ThrottlingException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Creates an access policy that grants the specified identity (Amazon Web Services SSO user, Amazon Web Services SSO group, or IAM user) access to the specified IoT SiteWise Monitor portal or project resource.

", + "documentation":"

Creates an access policy that grants the specified identity (IAM Identity Center user, IAM Identity Center group, or IAM user) access to the specified IoT SiteWise Monitor portal or project resource.

", "endpoint":{"hostPrefix":"monitor."} }, "CreateAsset":{ @@ -216,6 +217,27 @@ "documentation":"

Creates an asset model from specified property and hierarchy definitions. You create assets from asset models. With asset models, you can easily create assets of the same type that have standardized definitions. Each asset created from a model inherits the asset model's property and hierarchy definitions. For more information, see Defining asset models in the IoT SiteWise User Guide.

", "endpoint":{"hostPrefix":"api."} }, + "CreateBulkImportJob":{ + "name":"CreateBulkImportJob", + "http":{ + "method":"POST", + "requestUri":"/jobs", + "responseCode":202 + }, + "input":{"shape":"CreateBulkImportJobRequest"}, + "output":{"shape":"CreateBulkImportJobResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalFailureException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"}, + {"shape":"ConflictingOperationException"} + ], + "documentation":"

Defines a job to ingest data to IoT SiteWise from Amazon S3. For more information, see Create a bulk import job (CLI) in the Amazon Simple Storage Service User Guide.

You must enable IoT SiteWise to export data to Amazon S3 before you create a bulk import job. For more information about how to configure storage settings, see PutStorageConfiguration.

", + "endpoint":{"hostPrefix":"data."} + }, "CreateDashboard":{ "name":"CreateDashboard", "http":{ @@ -270,7 +292,7 @@ {"shape":"ThrottlingException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Creates a portal, which can contain projects and dashboards. IoT SiteWise Monitor uses Amazon Web Services SSO or IAM to authenticate portal users and manage user permissions.

Before you can sign in to a new portal, you must add at least one identity to that portal. For more information, see Adding or removing portal administrators in the IoT SiteWise User Guide.

", + "documentation":"

Creates a portal, which can contain projects and dashboards. IoT SiteWise Monitor uses IAM Identity Center or IAM to authenticate portal users and manage user permissions.

Before you can sign in to a new portal, you must add at least one identity to that portal. For more information, see Adding or removing portal administrators in the IoT SiteWise User Guide.

", "endpoint":{"hostPrefix":"monitor."} }, "CreateProject":{ @@ -505,6 +527,23 @@ "documentation":"

Retrieves information about an asset property.

When you call this operation for an attribute property, this response includes the default attribute value that you define in the asset model. If you update the default value in the model, this operation's response includes the new default value.

This operation doesn't return the value of the asset property. To get the value of an asset property, use GetAssetPropertyValue.

", "endpoint":{"hostPrefix":"api."} }, + "DescribeBulkImportJob":{ + "name":"DescribeBulkImportJob", + "http":{ + "method":"GET", + "requestUri":"/jobs/{jobId}" + }, + "input":{"shape":"DescribeBulkImportJobRequest"}, + "output":{"shape":"DescribeBulkImportJobResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalFailureException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves information about a bulk import job request. For more information, see Describe a bulk import job (CLI) in the Amazon Simple Storage Service User Guide.

", + "endpoint":{"hostPrefix":"data."} + }, "DescribeDashboard":{ "name":"DescribeDashboard", "http":{ @@ -782,9 +821,26 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Retrieves a paginated list of access policies for an identity (an Amazon Web Services SSO user, an Amazon Web Services SSO group, or an IAM user) or an IoT SiteWise Monitor resource (a portal or project).

", + "documentation":"

Retrieves a paginated list of access policies for an identity (an IAM Identity Center user, an IAM Identity Center group, or an IAM user) or an IoT SiteWise Monitor resource (a portal or project).

", "endpoint":{"hostPrefix":"monitor."} }, + "ListAssetModelProperties":{ + "name":"ListAssetModelProperties", + "http":{ + "method":"GET", + "requestUri":"/asset-models/{assetModelId}/properties" + }, + "input":{"shape":"ListAssetModelPropertiesRequest"}, + "output":{"shape":"ListAssetModelPropertiesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves a paginated list of properties associated with an asset model. If you update properties associated with the model before you finish listing all the properties, you need to start all over again.

", + "endpoint":{"hostPrefix":"api."} + }, "ListAssetModels":{ "name":"ListAssetModels", "http":{ @@ -801,6 +857,23 @@ "documentation":"

Retrieves a paginated list of summaries of all asset models.

", "endpoint":{"hostPrefix":"api."} }, + "ListAssetProperties":{ + "name":"ListAssetProperties", + "http":{ + "method":"GET", + "requestUri":"/assets/{assetId}/properties" + }, + "input":{"shape":"ListAssetPropertiesRequest"}, + "output":{"shape":"ListAssetPropertiesResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves a paginated list of properties associated with an asset. If you update properties associated with the model before you finish listing all the properties, you need to start all over again.

", + "endpoint":{"hostPrefix":"api."} + }, "ListAssetRelationships":{ "name":"ListAssetRelationships", "http":{ @@ -852,6 +925,23 @@ "documentation":"

Retrieves a paginated list of associated assets.

You can use this operation to do the following:

  • List child assets associated to a parent asset by a hierarchy that you specify.

  • List an asset's parent asset.

", "endpoint":{"hostPrefix":"api."} }, + "ListBulkImportJobs":{ + "name":"ListBulkImportJobs", + "http":{ + "method":"GET", + "requestUri":"/jobs" + }, + "input":{"shape":"ListBulkImportJobsRequest"}, + "output":{"shape":"ListBulkImportJobsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves a paginated list of bulk import job requests. For more information, see List bulk import jobs (CLI) in the IoT SiteWise User Guide.

", + "endpoint":{"hostPrefix":"data."} + }, "ListDashboards":{ "name":"ListDashboards", "http":{ @@ -1265,7 +1355,7 @@ }, "identity":{ "shape":"Identity", - "documentation":"

The identity (an Amazon Web Services SSO user, an Amazon Web Services SSO group, or an IAM user).

" + "documentation":"

The identity (an IAM Identity Center user, an IAM Identity Center group, or an IAM user).

" }, "resource":{ "shape":"Resource", @@ -1402,6 +1492,10 @@ "properties":{ "shape":"AssetProperties", "documentation":"

The asset properties that this composite model defines.

" + }, + "id":{ + "shape":"ID", + "documentation":"

The ID of the asset composite model.

" } }, "documentation":"

Contains information about a composite model in an asset. This object contains the asset's properties that you define in the composite model.

" @@ -1497,6 +1591,10 @@ "properties":{ "shape":"AssetModelProperties", "documentation":"

The asset property definitions for this composite model.

" + }, + "id":{ + "shape":"ID", + "documentation":"

The ID of the asset model composite model.

" } }, "documentation":"

Contains information about a composite model in an asset model. This object contains the asset property definitions that you define in the composite model.

" @@ -1657,6 +1755,46 @@ "type":"list", "member":{"shape":"AssetModelPropertyDefinition"} }, + "AssetModelPropertySummaries":{ + "type":"list", + "member":{"shape":"AssetModelPropertySummary"} + }, + "AssetModelPropertySummary":{ + "type":"structure", + "required":[ + "name", + "dataType", + "type" + ], + "members":{ + "id":{ + "shape":"ID", + "documentation":"

The ID of the property.

" + }, + "name":{ + "shape":"Name", + "documentation":"

The name of the property.

" + }, + "dataType":{ + "shape":"PropertyDataType", + "documentation":"

The data type of the property.

" + }, + "dataTypeSpec":{ + "shape":"Name", + "documentation":"

The data type of the structure for this property. This parameter exists on properties that have the STRUCT data type.

" + }, + "unit":{ + "shape":"PropertyUnit", + "documentation":"

The unit (such as Newtons or RPM) of the property.

" + }, + "type":{"shape":"PropertyType"}, + "assetModelCompositeModelId":{ + "shape":"ID", + "documentation":"

The ID of the composite model that contains the asset model property.

" + } + }, + "documentation":"

Contains a summary of a property associated with a model.

" + }, "AssetModelState":{ "type":"string", "enum":[ @@ -1779,6 +1917,33 @@ "min":1, "pattern":"[^\\u0000-\\u001F\\u007F]+" }, + "AssetPropertySummaries":{ + "type":"list", + "member":{"shape":"AssetPropertySummary"} + }, + "AssetPropertySummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"ID", + "documentation":"

The ID of the property.

" + }, + "alias":{ + "shape":"PropertyAlias", + "documentation":"

The alias that identifies the property, such as an OPC-UA server data stream path (for example, /company/windfarm/3/turbine/7/temperature). For more information, see Mapping industrial data streams to asset properties in the IoT SiteWise User Guide.

" + }, + "unit":{ + "shape":"PropertyUnit", + "documentation":"

The unit of measure (such as Newtons or RPM) of the asset property.

" + }, + "notification":{"shape":"PropertyNotification"}, + "assetCompositeModelId":{ + "shape":"ID", + "documentation":"

The ID of the composite model that contains the asset property.

" + } + }, + "documentation":"

Contains a summary of a property associated with an asset.

" + }, "AssetPropertyValue":{ "type":"structure", "required":[ @@ -1905,6 +2070,10 @@ "hierarchies":{ "shape":"AssetHierarchies", "documentation":"

A list of asset hierarchies that each contain a hierarchyId. A hierarchy specifies allowed parent/child asset relationships.

" + }, + "description":{ + "shape":"Description", + "documentation":"

A description for the asset.

" } }, "documentation":"

Contains a summary of an asset.

" @@ -2019,6 +2188,10 @@ "hierarchies":{ "shape":"AssetHierarchies", "documentation":"

A list of asset hierarchies that each contain a hierarchyId. A hierarchy specifies allowed parent/child asset relationships.

" + }, + "description":{ + "shape":"Description", + "documentation":"

A description for the asset.

" } }, "documentation":"

Contains a summary of an associated asset.

" @@ -2764,6 +2937,11 @@ } } }, + "Bucket":{ + "type":"string", + "max":63, + "min":3 + }, "CapabilityConfiguration":{ "type":"string", "max":104857600, @@ -2790,6 +2968,23 @@ "min":36, "pattern":"\\S{36,64}" }, + "ColumnName":{ + "type":"string", + "enum":[ + "ALIAS", + "ASSET_ID", + "PROPERTY_ID", + "DATA_TYPE", + "TIMESTAMP_SECONDS", + "TIMESTAMP_NANO_OFFSET", + "QUALITY", + "VALUE" + ] + }, + "ColumnNames":{ + "type":"list", + "member":{"shape":"ColumnName"} + }, "CompositeModelProperty":{ "type":"structure", "required":[ @@ -2806,7 +3001,11 @@ "shape":"Name", "documentation":"

The type of the composite model that defines this property.

" }, - "assetProperty":{"shape":"Property"} + "assetProperty":{"shape":"Property"}, + "id":{ + "shape":"ID", + "documentation":"

The ID of the composite model that contains the property.

" + } }, "documentation":"

Contains information about a composite model property on an asset.

" }, @@ -2895,7 +3094,7 @@ "members":{ "accessPolicyIdentity":{ "shape":"Identity", - "documentation":"

The identity for this access policy. Choose an Amazon Web Services SSO user, an Amazon Web Services SSO group, or an IAM user.

" + "documentation":"

The identity for this access policy. Choose an IAM Identity Center user, an IAM Identity Center group, or an IAM user.

" }, "accessPolicyResource":{ "shape":"Resource", @@ -2999,7 +3198,7 @@ "members":{ "assetName":{ "shape":"Name", - "documentation":"

A unique, friendly name for the asset.

" + "documentation":"

A friendly name for the asset.

" }, "assetModelId":{ "shape":"ID", @@ -3013,6 +3212,10 @@ "tags":{ "shape":"TagMap", "documentation":"

A list of key-value pairs that contain metadata for the asset. For more information, see Tagging your IoT SiteWise resources in the IoT SiteWise User Guide.

" + }, + "assetDescription":{ + "shape":"Description", + "documentation":"

A description for the asset.

" } } }, @@ -3038,6 +3241,60 @@ } } }, + "CreateBulkImportJobRequest":{ + "type":"structure", + "required":[ + "jobName", + "jobRoleArn", + "files", + "errorReportLocation", + "jobConfiguration" + ], + "members":{ + "jobName":{ + "shape":"Name", + "documentation":"

The unique name that helps identify the job request.

" + }, + "jobRoleArn":{ + "shape":"ARN", + "documentation":"

The ARN of the IAM role that allows IoT SiteWise to read Amazon S3 data.

" + }, + "files":{ + "shape":"Files", + "documentation":"

The files in the specified Amazon S3 bucket that contain your data.

" + }, + "errorReportLocation":{ + "shape":"ErrorReportLocation", + "documentation":"

The Amazon S3 destination where errors associated with the job creation request are saved.

" + }, + "jobConfiguration":{ + "shape":"JobConfiguration", + "documentation":"

Contains the configuration information of a job, such as the file format used to save data in Amazon S3.

" + } + } + }, + "CreateBulkImportJobResponse":{ + "type":"structure", + "required":[ + "jobId", + "jobName", + "jobStatus" + ], + "members":{ + "jobId":{ + "shape":"ID", + "documentation":"

The ID of the job.

" + }, + "jobName":{ + "shape":"Name", + "documentation":"

The unique name that helps identify the job request.

" + }, + "jobStatus":{ + "shape":"JobStatus", + "documentation":"

The status of the bulk import job can be one of following values.

  • PENDING – IoT SiteWise is waiting for the current bulk import job to finish.

  • CANCELLED – The bulk import job has been canceled.

  • RUNNING – IoT SiteWise is processing your request to import your data from Amazon S3.

  • COMPLETED – IoT SiteWise successfully completed your request to import data from Amazon S3.

  • FAILED – IoT SiteWise couldn't process your request to import data from Amazon S3. You can use logs saved in the specified error report location in Amazon S3 to troubleshoot issues.

  • COMPLETED_WITH_FAILURES – IoT SiteWise completed your request to import data from Amazon S3 with errors. You can use logs saved in the specified error report location in Amazon S3 to troubleshoot issues.

" + } + } + }, "CreateDashboardRequest":{ "type":"structure", "required":[ @@ -3167,7 +3424,7 @@ }, "portalAuthMode":{ "shape":"AuthMode", - "documentation":"

The service to use to authenticate users to the portal. Choose from the following options:

  • SSO – The portal uses Amazon Web Services Single Sign On to authenticate users and manage user permissions. Before you can create a portal that uses Amazon Web Services SSO, you must enable Amazon Web Services SSO. For more information, see Enabling Amazon Web Services SSO in the IoT SiteWise User Guide. This option is only available in Amazon Web Services Regions other than the China Regions.

  • IAM – The portal uses Identity and Access Management to authenticate users and manage user permissions.

You can't change this value after you create a portal.

Default: SSO

" + "documentation":"

The service to use to authenticate users to the portal. Choose from the following options:

  • SSO – The portal uses IAM Identity Center (successor to Single Sign-On) to authenticate users and manage user permissions. Before you can create a portal that uses IAM Identity Center, you must enable IAM Identity Center. For more information, see Enabling IAM Identity Center in the IoT SiteWise User Guide. This option is only available in Amazon Web Services Regions other than the China Regions.

  • IAM – The portal uses Identity and Access Management to authenticate users and manage user permissions.

You can't change this value after you create a portal.

Default: SSO

" }, "notificationSenderEmail":{ "shape":"Email", @@ -3199,7 +3456,7 @@ }, "portalStartUrl":{ "shape":"Url", - "documentation":"

The URL for the IoT SiteWise Monitor portal. You can use this URL to access portals that use Amazon Web Services SSO for authentication. For portals that use IAM for authentication, you must use the IoT SiteWise console to get a URL that you can use to access the portal.

" + "documentation":"

The URL for the IoT SiteWise Monitor portal. You can use this URL to access portals that use IAM Identity Center for authentication. For portals that use IAM for authentication, you must use the IoT SiteWise console to get a URL that you can use to access the portal.

" }, "portalStatus":{ "shape":"PortalStatus", @@ -3207,7 +3464,7 @@ }, "ssoApplicationId":{ "shape":"SSOApplicationId", - "documentation":"

The associated Amazon Web Services SSO application ID, if the portal uses Amazon Web Services SSO.

" + "documentation":"

The associated IAM Identity Center application ID, if the portal uses IAM Identity Center.

" } } }, @@ -3258,6 +3515,16 @@ } } }, + "Csv":{ + "type":"structure", + "members":{ + "columnNames":{ + "shape":"ColumnNames", + "documentation":"

The column names specified in the .csv file.

" + } + }, + "documentation":"

A .csv file.

" + }, "CustomerManagedS3Storage":{ "type":"structure", "required":[ @@ -3555,7 +3822,7 @@ }, "accessPolicyIdentity":{ "shape":"Identity", - "documentation":"

The identity (Amazon Web Services SSO user, Amazon Web Services SSO group, or IAM user) to which this access policy applies.

" + "documentation":"

The identity (IAM Identity Center user, IAM Identity Center group, or IAM user) to which this access policy applies.

" }, "accessPolicyResource":{ "shape":"Resource", @@ -3584,6 +3851,12 @@ "documentation":"

The ID of the asset model.

", "location":"uri", "locationName":"assetModelId" + }, + "excludeProperties":{ + "shape":"ExcludeProperties", + "documentation":"

Whether or not to exclude asset model properties from the response.

", + "location":"querystring", + "locationName":"excludeProperties" } } }, @@ -3703,6 +3976,12 @@ "documentation":"

The ID of the asset.

", "location":"uri", "locationName":"assetId" + }, + "excludeProperties":{ + "shape":"ExcludeProperties", + "documentation":"

Whether or not to exclude asset properties from the response.

", + "location":"querystring", + "locationName":"excludeProperties" } } }, @@ -3759,6 +4038,74 @@ "assetStatus":{ "shape":"AssetStatus", "documentation":"

The current status of the asset, which contains a state and any error message.

" + }, + "assetDescription":{ + "shape":"Description", + "documentation":"

A description for the asset.

" + } + } + }, + "DescribeBulkImportJobRequest":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"ID", + "documentation":"

The ID of the job.

", + "location":"uri", + "locationName":"jobId" + } + } + }, + "DescribeBulkImportJobResponse":{ + "type":"structure", + "required":[ + "jobId", + "jobName", + "jobStatus", + "jobRoleArn", + "files", + "errorReportLocation", + "jobConfiguration", + "jobCreationDate", + "jobLastUpdateDate" + ], + "members":{ + "jobId":{ + "shape":"ID", + "documentation":"

The ID of the job.

" + }, + "jobName":{ + "shape":"Name", + "documentation":"

The unique name that helps identify the job request.

" + }, + "jobStatus":{ + "shape":"JobStatus", + "documentation":"

The status of the bulk import job can be one of following values.

  • PENDING – IoT SiteWise is waiting for the current bulk import job to finish.

  • CANCELLED – The bulk import job has been canceled.

  • RUNNING – IoT SiteWise is processing your request to import your data from Amazon S3.

  • COMPLETED – IoT SiteWise successfully completed your request to import data from Amazon S3.

  • FAILED – IoT SiteWise couldn't process your request to import data from Amazon S3. You can use logs saved in the specified error report location in Amazon S3 to troubleshoot issues.

  • COMPLETED_WITH_FAILURES – IoT SiteWise completed your request to import data from Amazon S3 with errors. You can use logs saved in the specified error report location in Amazon S3 to troubleshoot issues.

" + }, + "jobRoleArn":{ + "shape":"ARN", + "documentation":"

The ARN of the IAM role that allows IoT SiteWise to read Amazon S3 data.

" + }, + "files":{ + "shape":"Files", + "documentation":"

The files in the specified Amazon S3 bucket that contain your data.

" + }, + "errorReportLocation":{ + "shape":"ErrorReportLocation", + "documentation":"

The Amazon S3 destination where errors associated with the job creation request are saved.

" + }, + "jobConfiguration":{ + "shape":"JobConfiguration", + "documentation":"

Contains the configuration information of a job, such as the file format used to save data in Amazon S3.

" + }, + "jobCreationDate":{ + "shape":"Timestamp", + "documentation":"

The date the job was created, in Unix epoch TIME.

" + }, + "jobLastUpdateDate":{ + "shape":"Timestamp", + "documentation":"

The date the job was last updated, in Unix epoch time.

" } } }, @@ -4006,11 +4353,11 @@ }, "portalClientId":{ "shape":"PortalClientId", - "documentation":"

The Amazon Web Services SSO application generated client ID (used with Amazon Web Services SSO APIs). IoT SiteWise includes portalClientId for only portals that use Amazon Web Services SSO to authenticate users.

" + "documentation":"

The IAM Identity Center application generated client ID (used with IAM Identity Center APIs). IoT SiteWise includes portalClientId for only portals that use IAM Identity Center to authenticate users.

" }, "portalStartUrl":{ "shape":"Url", - "documentation":"

The URL for the IoT SiteWise Monitor portal. You can use this URL to access portals that use Amazon Web Services SSO for authentication. For portals that use IAM for authentication, you must use the IoT SiteWise console to get a URL that you can use to access the portal.

" + "documentation":"

The URL for the IoT SiteWise Monitor portal. You can use this URL to access portals that use IAM Identity Center for authentication. For portals that use IAM for authentication, you must use the IoT SiteWise console to get a URL that you can use to access the portal.

" }, "portalContactEmail":{ "shape":"Email", @@ -4117,7 +4464,7 @@ "members":{ "storageType":{ "shape":"StorageType", - "documentation":"

The storage tier that you specified for your data. The storageType parameter can be one of the following values:

  • SITEWISE_DEFAULT_STORAGE – IoT SiteWise saves your data into the hot tier. The hot tier is a service-managed database.

  • MULTI_LAYER_STORAGE – IoT SiteWise saves your data in both the cold tier and the cold tier. The cold tier is a customer-managed Amazon S3 bucket.

" + "documentation":"

The storage tier that you specified for your data. The storageType parameter can be one of the following values:

  • SITEWISE_DEFAULT_STORAGE – IoT SiteWise saves your data into the hot tier. The hot tier is a service-managed database.

  • MULTI_LAYER_STORAGE – IoT SiteWise saves your data in both the cold tier and the hot tier. The cold tier is a customer-managed Amazon S3 bucket.

" }, "multiLayerStorage":{ "shape":"MultiLayerStorage", @@ -4358,7 +4705,26 @@ "documentation":"

Contains the details of an IoT SiteWise error.

" }, "ErrorMessage":{"type":"string"}, + "ErrorReportLocation":{ + "type":"structure", + "required":[ + "bucket", + "prefix" + ], + "members":{ + "bucket":{ + "shape":"Bucket", + "documentation":"

The name of the Amazon S3 bucket to which errors associated with the bulk import job are sent.

" + }, + "prefix":{ + "shape":"String", + "documentation":"

Amazon S3 uses the prefix as a folder name to organize data in the bucket. Each Amazon S3 object has a key that is its unique identifier in the bucket. Each object in a bucket has exactly one key. The prefix must end with a forward slash (/). For more information, see Organizing objects using prefixes in the Amazon Simple Storage Service User Guide.

" + } + }, + "documentation":"

The Amazon S3 destination where errors associated with the job creation request are saved.

" + }, "ExceptionMessage":{"type":"string"}, + "ExcludeProperties":{"type":"boolean"}, "Expression":{ "type":"string", "max":1024, @@ -4386,6 +4752,42 @@ "type":"list", "member":{"shape":"ExpressionVariable"} }, + "File":{ + "type":"structure", + "required":[ + "bucket", + "key" + ], + "members":{ + "bucket":{ + "shape":"Bucket", + "documentation":"

The name of the Amazon S3 bucket from which data is imported.

" + }, + "key":{ + "shape":"String", + "documentation":"

The key of the Amazon S3 object that contains your data. Each object has a key that is a unique identifier. Each object has exactly one key.

" + }, + "versionId":{ + "shape":"String", + "documentation":"

The version ID to identify a specific version of the Amazon S3 object that contains your data.

" + } + }, + "documentation":"

The file in Amazon S3 where your data is saved.

" + }, + "FileFormat":{ + "type":"structure", + "members":{ + "csv":{ + "shape":"Csv", + "documentation":"

The .csv file format.

" + } + }, + "documentation":"

The file format of the data.

" + }, + "Files":{ + "type":"list", + "member":{"shape":"File"} + }, "ForwardingConfig":{ "type":"structure", "required":["state"], @@ -4805,7 +5207,7 @@ "members":{ "id":{ "shape":"IdentityId", - "documentation":"

The Amazon Web Services SSO ID of the group.

" + "documentation":"

The IAM Identity Center ID of the group.

" } }, "documentation":"

Contains information for a group identity in an access policy.

" @@ -4849,11 +5251,11 @@ "members":{ "user":{ "shape":"UserIdentity", - "documentation":"

An Amazon Web Services SSO user identity.

" + "documentation":"

An IAM Identity Center user identity.

" }, "group":{ "shape":"GroupIdentity", - "documentation":"

An Amazon Web Services SSO group identity.

" + "documentation":"

An IAM Identity Center group identity.

" }, "iamUser":{ "shape":"IAMUserIdentity", @@ -4864,7 +5266,7 @@ "documentation":"

An IAM role identity.

" } }, - "documentation":"

Contains an identity that can access an IoT SiteWise Monitor resource.

Currently, you can't use Amazon Web Services APIs to retrieve Amazon Web Services SSO identity IDs. You can find the Amazon Web Services SSO identity IDs in the URL of user and group pages in the Amazon Web Services SSO console.

" + "documentation":"

Contains an identity that can access an IoT SiteWise Monitor resource.

Currently, you can't use Amazon Web Services APIs to retrieve IAM Identity Center identity IDs. You can find the IAM Identity Center identity IDs in the URL of user and group pages in the IAM Identity Center console.

" }, "IdentityId":{ "type":"string", @@ -4993,6 +5395,55 @@ "error":{"httpStatusCode":400}, "exception":true }, + "JobConfiguration":{ + "type":"structure", + "required":["fileFormat"], + "members":{ + "fileFormat":{ + "shape":"FileFormat", + "documentation":"

The file format of the data in Amazon S3.

" + } + }, + "documentation":"

Contains the configuration information of a job, such as the file format used to save data in Amazon S3.

" + }, + "JobStatus":{ + "type":"string", + "enum":[ + "PENDING", + "CANCELLED", + "RUNNING", + "COMPLETED", + "FAILED", + "COMPLETED_WITH_FAILURES" + ] + }, + "JobSummaries":{ + "type":"list", + "member":{"shape":"JobSummary"} + }, + "JobSummary":{ + "type":"structure", + "required":[ + "id", + "name", + "status" + ], + "members":{ + "id":{ + "shape":"ID", + "documentation":"

The ID of the job.

" + }, + "name":{ + "shape":"Name", + "documentation":"

The unique name that helps identify the job request.

" + }, + "status":{ + "shape":"JobStatus", + "documentation":"

The status of the bulk import job can be one of following values.

  • PENDING – IoT SiteWise is waiting for the current bulk import job to finish.

  • CANCELLED – The bulk import job has been canceled.

  • RUNNING – IoT SiteWise is processing your request to import your data from Amazon S3.

  • COMPLETED – IoT SiteWise successfully completed your request to import data from Amazon S3.

  • FAILED – IoT SiteWise couldn't process your request to import data from Amazon S3. You can use logs saved in the specified error report location in Amazon S3 to troubleshoot issues.

  • COMPLETED_WITH_FAILURES – IoT SiteWise completed your request to import data from Amazon S3 with errors. You can use logs saved in the specified error report location in Amazon S3 to troubleshoot issues.

" + } + }, + "documentation":"

Contains a job summary information.

" + }, "KmsKeyId":{ "type":"string", "max":2048, @@ -5013,7 +5464,7 @@ "members":{ "identityType":{ "shape":"IdentityType", - "documentation":"

The type of identity (Amazon Web Services SSO user, Amazon Web Services SSO group, or IAM user). This parameter is required if you specify identityId.

", + "documentation":"

The type of identity (IAM Identity Center user, IAM Identity Center group, or IAM user). This parameter is required if you specify identityId.

", "location":"querystring", "locationName":"identityType" }, @@ -5069,6 +5520,57 @@ } } }, + "ListAssetModelPropertiesFilter":{ + "type":"string", + "enum":[ + "ALL", + "BASE" + ] + }, + "ListAssetModelPropertiesRequest":{ + "type":"structure", + "required":["assetModelId"], + "members":{ + "assetModelId":{ + "shape":"ID", + "documentation":"

The ID of the asset model.

", + "location":"uri", + "locationName":"assetModelId" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token to be used for the next set of paginated results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return for each paginated request. If not specified, the default value is 50.

", + "location":"querystring", + "locationName":"maxResults" + }, + "filter":{ + "shape":"ListAssetModelPropertiesFilter", + "documentation":"

Filters the requested list of asset model properties. You can choose one of the following options:

  • ALL – The list includes all asset model properties for a given asset model ID.

  • BASE – The list includes only base asset model properties for a given asset model ID.

Default: BASE

", + "location":"querystring", + "locationName":"filter" + } + } + }, + "ListAssetModelPropertiesResponse":{ + "type":"structure", + "required":["assetModelPropertySummaries"], + "members":{ + "assetModelPropertySummaries":{ + "shape":"AssetModelPropertySummaries", + "documentation":"

A list that summarizes the properties associated with the specified asset model.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null if there are no additional results.

" + } + } + }, "ListAssetModelsRequest":{ "type":"structure", "members":{ @@ -5100,6 +5602,57 @@ } } }, + "ListAssetPropertiesFilter":{ + "type":"string", + "enum":[ + "ALL", + "BASE" + ] + }, + "ListAssetPropertiesRequest":{ + "type":"structure", + "required":["assetId"], + "members":{ + "assetId":{ + "shape":"ID", + "documentation":"

The ID of the asset.

", + "location":"uri", + "locationName":"assetId" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token to be used for the next set of paginated results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return for each paginated request. If not specified, the default value is 50.

", + "location":"querystring", + "locationName":"maxResults" + }, + "filter":{ + "shape":"ListAssetPropertiesFilter", + "documentation":"

Filters the requested list of asset properties. You can choose one of the following options:

  • ALL – The list includes all asset properties for a given asset model ID.

  • BASE – The list includes only base asset properties for a given asset model ID.

Default: BASE

", + "location":"querystring", + "locationName":"filter" + } + } + }, + "ListAssetPropertiesResponse":{ + "type":"structure", + "required":["assetPropertySummaries"], + "members":{ + "assetPropertySummaries":{ + "shape":"AssetPropertySummaries", + "documentation":"

A list that summarizes the properties associated with the specified asset.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null if there are no additional results.

" + } + } + }, "ListAssetRelationshipsRequest":{ "type":"structure", "required":[ @@ -5247,6 +5800,55 @@ } } }, + "ListBulkImportJobsFilter":{ + "type":"string", + "enum":[ + "ALL", + "PENDING", + "RUNNING", + "CANCELLED", + "FAILED", + "COMPLETED_WITH_FAILURES", + "COMPLETED" + ] + }, + "ListBulkImportJobsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token to be used for the next set of paginated results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return for each paginated request.

", + "location":"querystring", + "locationName":"maxResults" + }, + "filter":{ + "shape":"ListBulkImportJobsFilter", + "documentation":"

You can use a filter to select the bulk import jobs that you want to retrieve.

", + "location":"querystring", + "locationName":"filter" + } + } + }, + "ListBulkImportJobsResponse":{ + "type":"structure", + "required":["jobSummaries"], + "members":{ + "jobSummaries":{ + "shape":"JobSummaries", + "documentation":"

One or more job summaries to list.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of results, or null if there are no additional results.

" + } + } + }, "ListDashboardsRequest":{ "type":"structure", "required":["projectId"], @@ -5738,7 +6340,7 @@ }, "startUrl":{ "shape":"Url", - "documentation":"

The URL for the IoT SiteWise Monitor portal. You can use this URL to access portals that use Amazon Web Services SSO for authentication. For portals that use IAM for authentication, you must use the IoT SiteWise console to get a URL that you can use to access the portal.

" + "documentation":"

The URL for the IoT SiteWise Monitor portal. You can use this URL to access portals that use IAM Identity Center for authentication. For portals that use IAM for authentication, you must use the IoT SiteWise console to get a URL that you can use to access the portal.

" }, "creationDate":{ "shape":"Timestamp", @@ -6003,7 +6605,7 @@ "members":{ "storageType":{ "shape":"StorageType", - "documentation":"

The storage tier that you specified for your data. The storageType parameter can be one of the following values:

  • SITEWISE_DEFAULT_STORAGE – IoT SiteWise saves your data into the hot tier. The hot tier is a service-managed database.

  • MULTI_LAYER_STORAGE – IoT SiteWise saves your data in both the cold tier and the cold tier. The cold tier is a customer-managed Amazon S3 bucket.

" + "documentation":"

The storage tier that you specified for your data. The storageType parameter can be one of the following values:

  • SITEWISE_DEFAULT_STORAGE – IoT SiteWise saves your data into the hot tier. The hot tier is a service-managed database.

  • MULTI_LAYER_STORAGE – IoT SiteWise saves your data in both the cold tier and the hot tier. The cold tier is a customer-managed Amazon S3 bucket.

" }, "multiLayerStorage":{ "shape":"MultiLayerStorage", @@ -6025,7 +6627,7 @@ "members":{ "storageType":{ "shape":"StorageType", - "documentation":"

The storage tier that you specified for your data. The storageType parameter can be one of the following values:

  • SITEWISE_DEFAULT_STORAGE – IoT SiteWise saves your data into the hot tier. The hot tier is a service-managed database.

  • MULTI_LAYER_STORAGE – IoT SiteWise saves your data in both the cold tier and the cold tier. The cold tier is a customer-managed Amazon S3 bucket.

" + "documentation":"

The storage tier that you specified for your data. The storageType parameter can be one of the following values:

  • SITEWISE_DEFAULT_STORAGE – IoT SiteWise saves your data into the hot tier. The hot tier is a service-managed database.

  • MULTI_LAYER_STORAGE – IoT SiteWise saves your data in both the cold tier and the hot tier. The cold tier is a customer-managed Amazon S3 bucket.

" }, "multiLayerStorage":{ "shape":"MultiLayerStorage", @@ -6152,6 +6754,7 @@ "MULTI_LAYER_STORAGE" ] }, + "String":{"type":"string"}, "TagKey":{ "type":"string", "max":128, @@ -6421,7 +7024,7 @@ }, "accessPolicyIdentity":{ "shape":"Identity", - "documentation":"

The identity for this access policy. Choose an Amazon Web Services SSO user, an Amazon Web Services SSO group, or an IAM user.

" + "documentation":"

The identity for this access policy. Choose an IAM Identity Center user, an IAM Identity Center group, or an IAM user.

" }, "accessPolicyResource":{ "shape":"Resource", @@ -6524,6 +7127,10 @@ "shape":"ClientToken", "documentation":"

A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.

", "idempotencyToken":true + }, + "propertyUnit":{ + "shape":"PropertyUnit", + "documentation":"

The unit of measure (such as Newtons or RPM) of the asset property. If you don't specify a value for this parameter, the service uses the value of the assetModelProperty in the asset model.

" } } }, @@ -6542,12 +7149,16 @@ }, "assetName":{ "shape":"Name", - "documentation":"

A unique, friendly name for the asset.

" + "documentation":"

A friendly name for the asset.

" }, "clientToken":{ "shape":"ClientToken", "documentation":"

A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.

", "idempotencyToken":true + }, + "assetDescription":{ + "shape":"Description", + "documentation":"

A description for the asset.

" } } }, @@ -6761,7 +7372,7 @@ "members":{ "id":{ "shape":"IdentityId", - "documentation":"

The Amazon Web Services SSO ID of the user.

" + "documentation":"

The IAM Identity Center ID of the user.

" } }, "documentation":"

Contains information for a user identity in an access policy.

" diff --git a/botocore/data/iotthingsgraph/2018-09-06/endpoint-rule-set-1.json b/botocore/data/iotthingsgraph/2018-09-06/endpoint-rule-set-1.json new file mode 100644 index 00000000..774d9ea7 --- /dev/null +++ b/botocore/data/iotthingsgraph/2018-09-06/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotthingsgraph-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotthingsgraph-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iotthingsgraph.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iotthingsgraph.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotthingsgraph/2018-09-06/examples-1.json b/botocore/data/iotthingsgraph/2018-09-06/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iotthingsgraph/2018-09-06/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iotthingsgraph/2018-09-06/service-2.json b/botocore/data/iotthingsgraph/2018-09-06/service-2.json index ae9915b8..8fe31872 100644 --- a/botocore/data/iotthingsgraph/2018-09-06/service-2.json +++ b/botocore/data/iotthingsgraph/2018-09-06/service-2.json @@ -27,7 +27,9 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Associates a device with a concrete thing that is in the user's registry.

A thing can be associated with only one device at a time. If you associate a thing with a new device id, its previous association will be removed.

" + "documentation":"

Associates a device with a concrete thing that is in the user's registry.

A thing can be associated with only one device at a time. If you associate a thing with a new device id, its previous association will be removed.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "CreateFlowTemplate":{ "name":"CreateFlowTemplate", @@ -44,7 +46,9 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Creates a workflow template. Workflows can be created only in the user's namespace. (The public namespace contains only entities.) The workflow can contain only entities in the specified namespace. The workflow is validated against the entities in the latest version of the user's namespace unless another namespace version is specified in the request.

" + "documentation":"

Creates a workflow template. Workflows can be created only in the user's namespace. (The public namespace contains only entities.) The workflow can contain only entities in the specified namespace. The workflow is validated against the entities in the latest version of the user's namespace unless another namespace version is specified in the request.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "CreateSystemInstance":{ "name":"CreateSystemInstance", @@ -61,7 +65,9 @@ {"shape":"InternalFailureException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Creates a system instance.

This action validates the system instance, prepares the deployment-related resources. For Greengrass deployments, it updates the Greengrass group that is specified by the greengrassGroupName parameter. It also adds a file to the S3 bucket specified by the s3BucketName parameter. You need to call DeploySystemInstance after running this action.

For Greengrass deployments, since this action modifies and adds resources to a Greengrass group and an S3 bucket on the caller's behalf, the calling identity must have write permissions to both the specified Greengrass group and S3 bucket. Otherwise, the call will fail with an authorization error.

For cloud deployments, this action requires a flowActionsRoleArn value. This is an IAM role that has permissions to access AWS services, such as AWS Lambda and AWS IoT, that the flow uses when it executes.

If the definition document doesn't specify a version of the user's namespace, the latest version will be used by default.

" + "documentation":"

Creates a system instance.

This action validates the system instance, prepares the deployment-related resources. For Greengrass deployments, it updates the Greengrass group that is specified by the greengrassGroupName parameter. It also adds a file to the S3 bucket specified by the s3BucketName parameter. You need to call DeploySystemInstance after running this action.

For Greengrass deployments, since this action modifies and adds resources to a Greengrass group and an S3 bucket on the caller's behalf, the calling identity must have write permissions to both the specified Greengrass group and S3 bucket. Otherwise, the call will fail with an authorization error.

For cloud deployments, this action requires a flowActionsRoleArn value. This is an IAM role that has permissions to access AWS services, such as AWS Lambda and AWS IoT, that the flow uses when it executes.

If the definition document doesn't specify a version of the user's namespace, the latest version will be used by default.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "CreateSystemTemplate":{ "name":"CreateSystemTemplate", @@ -77,7 +83,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Creates a system. The system is validated against the entities in the latest version of the user's namespace unless another namespace version is specified in the request.

" + "documentation":"

Creates a system. The system is validated against the entities in the latest version of the user's namespace unless another namespace version is specified in the request.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "DeleteFlowTemplate":{ "name":"DeleteFlowTemplate", @@ -93,7 +101,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Deletes a workflow. Any new system or deployment that contains this workflow will fail to update or deploy. Existing deployments that contain the workflow will continue to run (since they use a snapshot of the workflow taken at the time of deployment).

" + "documentation":"

Deletes a workflow. Any new system or deployment that contains this workflow will fail to update or deploy. Existing deployments that contain the workflow will continue to run (since they use a snapshot of the workflow taken at the time of deployment).

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "DeleteNamespace":{ "name":"DeleteNamespace", @@ -107,7 +117,9 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Deletes the specified namespace. This action deletes all of the entities in the namespace. Delete the systems and flows that use entities in the namespace before performing this action.

" + "documentation":"

Deletes the specified namespace. This action deletes all of the entities in the namespace. Delete the systems and flows that use entities in the namespace before performing this action. This action takes no request parameters.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "DeleteSystemInstance":{ "name":"DeleteSystemInstance", @@ -123,7 +135,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Deletes a system instance. Only system instances that have never been deployed, or that have been undeployed can be deleted.

Users can create a new system instance that has the same ID as a deleted system instance.

" + "documentation":"

Deletes a system instance. Only system instances that have never been deployed, or that have been undeployed can be deleted.

Users can create a new system instance that has the same ID as a deleted system instance.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "DeleteSystemTemplate":{ "name":"DeleteSystemTemplate", @@ -139,7 +153,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Deletes a system. New deployments can't contain the system after its deletion. Existing deployments that contain the system will continue to work because they use a snapshot of the system that is taken when it is deployed.

" + "documentation":"

Deletes a system. New deployments can't contain the system after its deletion. Existing deployments that contain the system will continue to work because they use a snapshot of the system that is taken when it is deployed.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "DeploySystemInstance":{ "name":"DeploySystemInstance", @@ -156,7 +172,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Greengrass and Cloud Deployments

Deploys the system instance to the target specified in CreateSystemInstance.

Greengrass Deployments

If the system or any workflows and entities have been updated before this action is called, then the deployment will create a new Amazon Simple Storage Service resource file and then deploy it.

Since this action creates a Greengrass deployment on the caller's behalf, the calling identity must have write permissions to the specified Greengrass group. Otherwise, the call will fail with an authorization error.

For information about the artifacts that get added to your Greengrass core device when you use this API, see AWS IoT Things Graph and AWS IoT Greengrass.

" + "documentation":"

Greengrass and Cloud Deployments

Deploys the system instance to the target specified in CreateSystemInstance.

Greengrass Deployments

If the system or any workflows and entities have been updated before this action is called, then the deployment will create a new Amazon Simple Storage Service resource file and then deploy it.

Since this action creates a Greengrass deployment on the caller's behalf, the calling identity must have write permissions to the specified Greengrass group. Otherwise, the call will fail with an authorization error.

For information about the artifacts that get added to your Greengrass core device when you use this API, see AWS IoT Things Graph and AWS IoT Greengrass.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "DeprecateFlowTemplate":{ "name":"DeprecateFlowTemplate", @@ -172,7 +190,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Deprecates the specified workflow. This action marks the workflow for deletion. Deprecated flows can't be deployed, but existing deployments will continue to run.

" + "documentation":"

Deprecates the specified workflow. This action marks the workflow for deletion. Deprecated flows can't be deployed, but existing deployments will continue to run.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "DeprecateSystemTemplate":{ "name":"DeprecateSystemTemplate", @@ -188,7 +208,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Deprecates the specified system.

" + "documentation":"

Deprecates the specified system.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "DescribeNamespace":{ "name":"DescribeNamespace", @@ -204,7 +226,9 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Gets the latest version of the user's namespace and the public version that it is tracking.

" + "documentation":"

Gets the latest version of the user's namespace and the public version that it is tracking.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "DissociateEntityFromThing":{ "name":"DissociateEntityFromThing", @@ -220,7 +244,9 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Dissociates a device entity from a concrete thing. The action takes only the type of the entity that you need to dissociate because only one entity of a particular type can be associated with a thing.

" + "documentation":"

Dissociates a device entity from a concrete thing. The action takes only the type of the entity that you need to dissociate because only one entity of a particular type can be associated with a thing.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "GetEntities":{ "name":"GetEntities", @@ -236,7 +262,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Gets definitions of the specified entities. Uses the latest version of the user's namespace by default. This API returns the following TDM entities.

  • Properties

  • States

  • Events

  • Actions

  • Capabilities

  • Mappings

  • Devices

  • Device Models

  • Services

This action doesn't return definitions for systems, flows, and deployments.

" + "documentation":"

Gets definitions of the specified entities. Uses the latest version of the user's namespace by default. This API returns the following TDM entities.

  • Properties

  • States

  • Events

  • Actions

  • Capabilities

  • Mappings

  • Devices

  • Device Models

  • Services

This action doesn't return definitions for systems, flows, and deployments.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "GetFlowTemplate":{ "name":"GetFlowTemplate", @@ -252,7 +280,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets the latest version of the DefinitionDocument and FlowTemplateSummary for the specified workflow.

" + "documentation":"

Gets the latest version of the DefinitionDocument and FlowTemplateSummary for the specified workflow.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "GetFlowTemplateRevisions":{ "name":"GetFlowTemplateRevisions", @@ -268,7 +298,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets revisions of the specified workflow. Only the last 100 revisions are stored. If the workflow has been deprecated, this action will return revisions that occurred before the deprecation. This action won't work for workflows that have been deleted.

" + "documentation":"

Gets revisions of the specified workflow. Only the last 100 revisions are stored. If the workflow has been deprecated, this action will return revisions that occurred before the deprecation. This action won't work for workflows that have been deleted.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "GetNamespaceDeletionStatus":{ "name":"GetNamespaceDeletionStatus", @@ -283,7 +315,9 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Gets the status of a namespace deletion task.

" + "documentation":"

Gets the status of a namespace deletion task.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "GetSystemInstance":{ "name":"GetSystemInstance", @@ -299,7 +333,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets a system instance.

" + "documentation":"

Gets a system instance.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "GetSystemTemplate":{ "name":"GetSystemTemplate", @@ -315,7 +351,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets a system.

" + "documentation":"

Gets a system.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "GetSystemTemplateRevisions":{ "name":"GetSystemTemplateRevisions", @@ -331,7 +369,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets revisions made to the specified system template. Only the previous 100 revisions are stored. If the system has been deprecated, this action will return the revisions that occurred before its deprecation. This action won't work with systems that have been deleted.

" + "documentation":"

Gets revisions made to the specified system template. Only the previous 100 revisions are stored. If the system has been deprecated, this action will return the revisions that occurred before its deprecation. This action won't work with systems that have been deleted.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "GetUploadStatus":{ "name":"GetUploadStatus", @@ -347,7 +387,9 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Gets the status of the specified upload.

" + "documentation":"

Gets the status of the specified upload.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "ListFlowExecutionMessages":{ "name":"ListFlowExecutionMessages", @@ -363,7 +405,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Returns a list of objects that contain information about events in a flow execution.

" + "documentation":"

Returns a list of objects that contain information about events in a flow execution.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -379,7 +423,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Lists all tags on an AWS IoT Things Graph resource.

" + "documentation":"

Lists all tags on an AWS IoT Things Graph resource.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "SearchEntities":{ "name":"SearchEntities", @@ -394,7 +440,9 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Searches for entities of the specified type. You can search for entities in your namespace and the public namespace that you're tracking.

" + "documentation":"

Searches for entities of the specified type. You can search for entities in your namespace and the public namespace that you're tracking.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "SearchFlowExecutions":{ "name":"SearchFlowExecutions", @@ -410,7 +458,9 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Searches for AWS IoT Things Graph workflow execution instances.

" + "documentation":"

Searches for AWS IoT Things Graph workflow execution instances.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "SearchFlowTemplates":{ "name":"SearchFlowTemplates", @@ -425,7 +475,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Searches for summary information about workflows.

" + "documentation":"

Searches for summary information about workflows.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "SearchSystemInstances":{ "name":"SearchSystemInstances", @@ -440,7 +492,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Searches for system instances in the user's account.

" + "documentation":"

Searches for system instances in the user's account.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "SearchSystemTemplates":{ "name":"SearchSystemTemplates", @@ -455,7 +509,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Searches for summary information about systems in the user's account. You can filter by the ID of a workflow to return only systems that use the specified workflow.

" + "documentation":"

Searches for summary information about systems in the user's account. You can filter by the ID of a workflow to return only systems that use the specified workflow.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "SearchThings":{ "name":"SearchThings", @@ -471,7 +527,9 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Searches for things associated with the specified entity. You can search by both device and device model.

For example, if two different devices, camera1 and camera2, implement the camera device model, the user can associate thing1 to camera1 and thing2 to camera2. SearchThings(camera2) will return only thing2, but SearchThings(camera) will return both thing1 and thing2.

This action searches for exact matches and doesn't perform partial text matching.

" + "documentation":"

Searches for things associated with the specified entity. You can search by both device and device model.

For example, if two different devices, camera1 and camera2, implement the camera device model, the user can associate thing1 to camera1 and thing2 to camera2. SearchThings(camera2) will return only thing2, but SearchThings(camera) will return both thing1 and thing2.

This action searches for exact matches and doesn't perform partial text matching.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "TagResource":{ "name":"TagResource", @@ -487,7 +545,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Creates a tag for the specified resource.

" + "documentation":"

Creates a tag for the specified resource.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "UndeploySystemInstance":{ "name":"UndeploySystemInstance", @@ -504,7 +564,9 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Removes a system instance from its target (Cloud or Greengrass).

" + "documentation":"

Removes a system instance from its target (Cloud or Greengrass).

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "UntagResource":{ "name":"UntagResource", @@ -520,7 +582,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Removes a tag from the specified resource.

" + "documentation":"

Removes a tag from the specified resource.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "UpdateFlowTemplate":{ "name":"UpdateFlowTemplate", @@ -536,7 +600,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Updates the specified workflow. All deployed systems and system instances that use the workflow will see the changes in the flow when it is redeployed. If you don't want this behavior, copy the workflow (creating a new workflow with a different ID), and update the copy. The workflow can contain only entities in the specified namespace.

" + "documentation":"

Updates the specified workflow. All deployed systems and system instances that use the workflow will see the changes in the flow when it is redeployed. If you don't want this behavior, copy the workflow (creating a new workflow with a different ID), and update the copy. The workflow can contain only entities in the specified namespace.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "UpdateSystemTemplate":{ "name":"UpdateSystemTemplate", @@ -552,7 +618,9 @@ {"shape":"ThrottlingException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Updates the specified system. You don't need to run this action after updating a workflow. Any deployment that uses the system will see the changes in the system when it is redeployed.

" + "documentation":"

Updates the specified system. You don't need to run this action after updating a workflow. Any deployment that uses the system will see the changes in the system when it is redeployed.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" }, "UploadEntityDefinitions":{ "name":"UploadEntityDefinitions", @@ -567,7 +635,9 @@ {"shape":"InternalFailureException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Asynchronously uploads one or more entity definitions to the user's namespace. The document parameter is required if syncWithPublicNamespace and deleteExistingEntites are false. If the syncWithPublicNamespace parameter is set to true, the user's namespace will synchronize with the latest version of the public namespace. If deprecateExistingEntities is set to true, all entities in the latest version will be deleted before the new DefinitionDocument is uploaded.

When a user uploads entity definitions for the first time, the service creates a new namespace for the user. The new namespace tracks the public namespace. Currently users can have only one namespace. The namespace version increments whenever a user uploads entity definitions that are backwards-incompatible and whenever a user sets the syncWithPublicNamespace parameter or the deprecateExistingEntities parameter to true.

The IDs for all of the entities should be in URN format. Each entity must be in the user's namespace. Users can't create entities in the public namespace, but entity definitions can refer to entities in the public namespace.

Valid entities are Device, DeviceModel, Service, Capability, State, Action, Event, Property, Mapping, Enum.

" + "documentation":"

Asynchronously uploads one or more entity definitions to the user's namespace. The document parameter is required if syncWithPublicNamespace and deleteExistingEntites are false. If the syncWithPublicNamespace parameter is set to true, the user's namespace will synchronize with the latest version of the public namespace. If deprecateExistingEntities is set to true, all entities in the latest version will be deleted before the new DefinitionDocument is uploaded.

When a user uploads entity definitions for the first time, the service creates a new namespace for the user. The new namespace tracks the public namespace. Currently users can have only one namespace. The namespace version increments whenever a user uploads entity definitions that are backwards-incompatible and whenever a user sets the syncWithPublicNamespace parameter or the deprecateExistingEntities parameter to true.

The IDs for all of the entities should be in URN format. Each entity must be in the user's namespace. Users can't create entities in the public namespace, but entity definitions can refer to entities in the public namespace.

Valid entities are Device, DeviceModel, Service, Capability, State, Action, Event, Property, Mapping, Enum.

", + "deprecated":true, + "deprecatedMessage":"since: 2022-08-30" } }, "shapes":{ @@ -2214,5 +2284,5 @@ }, "Version":{"type":"long"} }, - "documentation":"AWS IoT Things Graph

AWS IoT Things Graph provides an integrated set of tools that enable developers to connect devices and services that use different standards, such as units of measure and communication protocols. AWS IoT Things Graph makes it possible to build IoT applications with little to no code by connecting devices and services and defining how they interact at an abstract level.

For more information about how AWS IoT Things Graph works, see the User Guide.

" + "documentation":"AWS IoT Things Graph

AWS IoT Things Graph provides an integrated set of tools that enable developers to connect devices and services that use different standards, such as units of measure and communication protocols. AWS IoT Things Graph makes it possible to build IoT applications with little to no code by connecting devices and services and defining how they interact at an abstract level.

For more information about how AWS IoT Things Graph works, see the User Guide.

The AWS IoT Things Graph service is discontinued.

" } diff --git a/botocore/data/iottwinmaker/2021-11-29/endpoint-rule-set-1.json b/botocore/data/iottwinmaker/2021-11-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..2d98fd22 --- /dev/null +++ b/botocore/data/iottwinmaker/2021-11-29/endpoint-rule-set-1.json @@ -0,0 +1,306 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iottwinmaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iottwinmaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://iottwinmaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://iottwinmaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iottwinmaker/2021-11-29/examples-1.json b/botocore/data/iottwinmaker/2021-11-29/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iottwinmaker/2021-11-29/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iottwinmaker/2021-11-29/service-2.json b/botocore/data/iottwinmaker/2021-11-29/service-2.json index 3d558014..a3b9fe08 100644 --- a/botocore/data/iottwinmaker/2021-11-29/service-2.json +++ b/botocore/data/iottwinmaker/2021-11-29/service-2.json @@ -90,6 +90,26 @@ "documentation":"

Creates a scene.

", "endpoint":{"hostPrefix":"api."} }, + "CreateSyncJob":{ + "name":"CreateSyncJob", + "http":{ + "method":"POST", + "requestUri":"/workspaces/{workspaceId}/sync-jobs/{syncSource}", + "responseCode":200 + }, + "input":{"shape":"CreateSyncJobRequest"}, + "output":{"shape":"CreateSyncJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

This action creates a SyncJob.

", + "endpoint":{"hostPrefix":"api."} + }, "CreateWorkspace":{ "name":"CreateWorkspace", "http":{ @@ -167,6 +187,26 @@ "documentation":"

Deletes a scene.

", "endpoint":{"hostPrefix":"api."} }, + "DeleteSyncJob":{ + "name":"DeleteSyncJob", + "http":{ + "method":"DELETE", + "requestUri":"/workspaces/{workspaceId}/sync-jobs/{syncSource}", + "responseCode":200 + }, + "input":{"shape":"DeleteSyncJobRequest"}, + "output":{"shape":"DeleteSyncJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Delete the SyncJob.

", + "endpoint":{"hostPrefix":"api."} + }, "DeleteWorkspace":{ "name":"DeleteWorkspace", "http":{ @@ -186,6 +226,26 @@ "documentation":"

Deletes a workspace.

", "endpoint":{"hostPrefix":"api."} }, + "ExecuteQuery":{ + "name":"ExecuteQuery", + "http":{ + "method":"POST", + "requestUri":"/queries/execution", + "responseCode":200 + }, + "input":{"shape":"ExecuteQueryRequest"}, + "output":{"shape":"ExecuteQueryResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"QueryTimeoutException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Run queries to access information from your knowledge graph of entities within individual workspaces.

", + "endpoint":{"hostPrefix":"api."} + }, "GetComponentType":{ "name":"GetComponentType", "http":{ @@ -199,7 +259,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ThrottlingException"} + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} ], "documentation":"

Retrieves information about a component type.

", "endpoint":{"hostPrefix":"api."} @@ -223,6 +284,24 @@ "documentation":"

Retrieves information about an entity.

", "endpoint":{"hostPrefix":"api."} }, + "GetPricingPlan":{ + "name":"GetPricingPlan", + "http":{ + "method":"GET", + "requestUri":"/pricingplan", + "responseCode":200 + }, + "input":{"shape":"GetPricingPlanRequest"}, + "output":{"shape":"GetPricingPlanResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Gets the pricing plan.

", + "endpoint":{"hostPrefix":"api."} + }, "GetPropertyValue":{ "name":"GetPropertyValue", "http":{ @@ -284,6 +363,26 @@ "documentation":"

Retrieves information about a scene.

", "endpoint":{"hostPrefix":"api."} }, + "GetSyncJob":{ + "name":"GetSyncJob", + "http":{ + "method":"GET", + "requestUri":"/sync-jobs/{syncSource}", + "responseCode":200 + }, + "input":{"shape":"GetSyncJobRequest"}, + "output":{"shape":"GetSyncJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Gets the SyncJob.

", + "endpoint":{"hostPrefix":"api."} + }, "GetWorkspace":{ "name":"GetWorkspace", "http":{ @@ -357,6 +456,44 @@ "documentation":"

Lists all scenes in a workspace.

", "endpoint":{"hostPrefix":"api."} }, + "ListSyncJobs":{ + "name":"ListSyncJobs", + "http":{ + "method":"POST", + "requestUri":"/workspaces/{workspaceId}/sync-jobs-list", + "responseCode":200 + }, + "input":{"shape":"ListSyncJobsRequest"}, + "output":{"shape":"ListSyncJobsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

List all SyncJobs.

", + "endpoint":{"hostPrefix":"api."} + }, + "ListSyncResources":{ + "name":"ListSyncResources", + "http":{ + "method":"POST", + "requestUri":"/workspaces/{workspaceId}/sync-jobs/{syncSource}/resources-list", + "responseCode":200 + }, + "input":{"shape":"ListSyncResourcesRequest"}, + "output":{"shape":"ListSyncResourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Lists the sync resources.

", + "endpoint":{"hostPrefix":"api."} + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -465,6 +602,24 @@ "documentation":"

Updates an entity.

", "endpoint":{"hostPrefix":"api."} }, + "UpdatePricingPlan":{ + "name":"UpdatePricingPlan", + "http":{ + "method":"POST", + "requestUri":"/pricingplan", + "responseCode":200 + }, + "input":{"shape":"UpdatePricingPlanRequest"}, + "output":{"shape":"UpdatePricingPlanResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Update the pricing plan.

", + "endpoint":{"hostPrefix":"api."} + }, "UpdateScene":{ "name":"UpdateScene", "http":{ @@ -521,15 +676,11 @@ "BatchPutPropertyError":{ "type":"structure", "required":[ - "entry", "errorCode", - "errorMessage" + "errorMessage", + "entry" ], "members":{ - "entry":{ - "shape":"PropertyValueEntry", - "documentation":"

An object that contains information about errors returned by the BatchPutProperty action.

" - }, "errorCode":{ "shape":"String", "documentation":"

The error code.

" @@ -537,6 +688,10 @@ "errorMessage":{ "shape":"String", "documentation":"

The error message.

" + }, + "entry":{ + "shape":"PropertyValueEntry", + "documentation":"

An object that contains information about errors returned by the BatchPutProperty action.

" } }, "documentation":"

An error returned by the BatchPutProperty action.

" @@ -555,19 +710,19 @@ "BatchPutPropertyValuesRequest":{ "type":"structure", "required":[ - "entries", - "workspaceId" + "workspaceId", + "entries" ], "members":{ - "entries":{ - "shape":"Entries", - "documentation":"

An object that maps strings to the property value entries to set. Each string in the mapping must be unique to this object.

" - }, "workspaceId":{ "shape":"Id", "documentation":"

The ID of the workspace that contains the properties to set.

", "location":"uri", "locationName":"workspaceId" + }, + "entries":{ + "shape":"Entries", + "documentation":"

An object that maps strings to the property value entries to set. Each string in the mapping must be unique to this object.

" } } }, @@ -585,20 +740,126 @@ "type":"boolean", "box":true }, + "BundleInformation":{ + "type":"structure", + "required":["bundleNames"], + "members":{ + "bundleNames":{ + "shape":"PricingBundles", + "documentation":"

The bundle names.

" + }, + "pricingTier":{ + "shape":"PricingTier", + "documentation":"

The pricing tier.

" + } + }, + "documentation":"

Information about pricing bundle.

" + }, + "BundleName":{ + "type":"string", + "max":256, + "min":1, + "pattern":".*" + }, + "ColumnDescription":{ + "type":"structure", + "members":{ + "name":{ + "shape":"ColumnName", + "documentation":"

The name of the column description.

" + }, + "type":{ + "shape":"ColumnType", + "documentation":"

The type of the column description.

" + } + }, + "documentation":"

A description of the column in the query results.

" + }, + "ColumnDescriptions":{ + "type":"list", + "member":{"shape":"ColumnDescription"} + }, + "ColumnName":{ + "type":"string", + "pattern":".*" + }, + "ColumnType":{ + "type":"string", + "enum":[ + "NODE", + "EDGE", + "VALUE" + ] + }, + "ComponentPropertyGroupRequest":{ + "type":"structure", + "members":{ + "groupType":{ + "shape":"GroupType", + "documentation":"

The group type.

" + }, + "propertyNames":{ + "shape":"PropertyNames", + "documentation":"

The property names.

" + }, + "updateType":{ + "shape":"PropertyGroupUpdateType", + "documentation":"

The update type.

" + } + }, + "documentation":"

" + }, + "ComponentPropertyGroupRequests":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"ComponentPropertyGroupRequest"} + }, + "ComponentPropertyGroupResponse":{ + "type":"structure", + "required":[ + "groupType", + "propertyNames", + "isInherited" + ], + "members":{ + "groupType":{ + "shape":"GroupType", + "documentation":"

The group type.

" + }, + "propertyNames":{ + "shape":"PropertyNames", + "documentation":"

The names of properties

" + }, + "isInherited":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the property group is inherited from a parent entity

" + } + }, + "documentation":"

The component property group response.

" + }, + "ComponentPropertyGroupResponses":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"ComponentPropertyGroupResponse"} + }, "ComponentRequest":{ "type":"structure", "members":{ - "componentTypeId":{ - "shape":"ComponentTypeId", - "documentation":"

The ID of the component type.

" - }, "description":{ "shape":"Description", "documentation":"

The description of the component request.

" }, + "componentTypeId":{ + "shape":"ComponentTypeId", + "documentation":"

The ID of the component type.

" + }, "properties":{ "shape":"PropertyRequests", "documentation":"

An object that maps strings to the properties to set in the component type. Each string in the mapping must be unique to this object.

" + }, + "propertyGroups":{ + "shape":"ComponentPropertyGroupRequests", + "documentation":"

The property groups.

" } }, "documentation":"

An object that sets information about a component type create or update request.

" @@ -610,25 +871,33 @@ "shape":"Name", "documentation":"

The name of the component.

" }, + "description":{ + "shape":"Description", + "documentation":"

The description of the component type.

" + }, "componentTypeId":{ "shape":"ComponentTypeId", "documentation":"

The ID of the component type.

" }, + "status":{ + "shape":"Status", + "documentation":"

The status of the component type.

" + }, "definedIn":{ "shape":"String", "documentation":"

The name of the property definition set in the request.

" }, - "description":{ - "shape":"Description", - "documentation":"

The description of the component type.

" - }, "properties":{ "shape":"PropertyResponses", "documentation":"

An object that maps strings to the properties to set in the component type. Each string in the mapping must be unique to this object.

" }, - "status":{ - "shape":"Status", - "documentation":"

The status of the component type.

" + "propertyGroups":{ + "shape":"ComponentPropertyGroupResponses", + "documentation":"

The property groups.

" + }, + "syncSource":{ + "shape":"SyncSource", + "documentation":"

The syncSource of the sync job, if this entity was created by a sync job.

" } }, "documentation":"

An object that returns information about a component type create or update request.

" @@ -639,6 +908,12 @@ "min":1, "pattern":"[a-zA-Z_\\.\\-0-9:]+" }, + "ComponentTypeName":{ + "type":"string", + "max":256, + "min":0, + "pattern":".*[^\\u0000-\\u001F\\u007F]*.*" + }, "ComponentTypeSummaries":{ "type":"list", "member":{"shape":"ComponentTypeSummary"} @@ -664,6 +939,10 @@ "shape":"Timestamp", "documentation":"

The date and time when the component type was created.

" }, + "updateDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time when the component type was last updated.

" + }, "description":{ "shape":"Description", "documentation":"

The description of the component type.

" @@ -672,9 +951,9 @@ "shape":"Status", "documentation":"

The current status of the component type.

" }, - "updateDateTime":{ - "shape":"Timestamp", - "documentation":"

The date and time when the component type was last updated.

" + "componentTypeName":{ + "shape":"ComponentTypeName", + "documentation":"

The component type name.

" } }, "documentation":"

An object that contains information about a component type.

" @@ -682,21 +961,25 @@ "ComponentUpdateRequest":{ "type":"structure", "members":{ - "componentTypeId":{ - "shape":"ComponentTypeId", - "documentation":"

The ID of the component type.

" + "updateType":{ + "shape":"ComponentUpdateType", + "documentation":"

The update type of the component update request.

" }, "description":{ "shape":"Description", "documentation":"

The description of the component type.

" }, + "componentTypeId":{ + "shape":"ComponentTypeId", + "documentation":"

The ID of the component type.

" + }, "propertyUpdates":{ "shape":"PropertyRequests", "documentation":"

An object that maps strings to the properties to set in the component type update. Each string in the mapping must be unique to this object.

" }, - "updateType":{ - "shape":"ComponentUpdateType", - "documentation":"

The update type of the component update request.

" + "propertyGroupUpdates":{ + "shape":"ComponentPropertyGroupRequests", + "documentation":"

The property group updates.

" } }, "documentation":"

The component update request.

" @@ -768,10 +1051,20 @@ "CreateComponentTypeRequest":{ "type":"structure", "required":[ - "componentTypeId", - "workspaceId" + "workspaceId", + "componentTypeId" ], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the component type.

", + "location":"uri", + "locationName":"workspaceId" + }, + "isSingleton":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether an entity can have more than one component of this type.

" + }, "componentTypeId":{ "shape":"ComponentTypeId", "documentation":"

The ID of the component type.

", @@ -782,6 +1075,10 @@ "shape":"Description", "documentation":"

The description of the component type.

" }, + "propertyDefinitions":{ + "shape":"PropertyDefinitionsRequest", + "documentation":"

An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object.

" + }, "extendsFrom":{ "shape":"ExtendsFrom", "documentation":"

Specifies the parent component type to extend.

" @@ -790,23 +1087,17 @@ "shape":"FunctionsRequest", "documentation":"

An object that maps strings to the functions in the component type. Each string in the mapping must be unique to this object.

" }, - "isSingleton":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether an entity can have more than one component of this type.

" - }, - "propertyDefinitions":{ - "shape":"PropertyDefinitionsRequest", - "documentation":"

An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object.

" - }, "tags":{ "shape":"TagMap", "documentation":"

Metadata that you can use to manage the component type.

" }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the component type.

", - "location":"uri", - "locationName":"workspaceId" + "propertyGroups":{ + "shape":"PropertyGroupsRequest", + "documentation":"

" + }, + "componentTypeName":{ + "shape":"ComponentTypeName", + "documentation":"

A friendly name for the component type.

" } } }, @@ -835,17 +1126,15 @@ "CreateEntityRequest":{ "type":"structure", "required":[ - "entityName", - "workspaceId" + "workspaceId", + "entityName" ], "members":{ - "components":{ - "shape":"ComponentsMapRequest", - "documentation":"

An object that maps strings to the components in the entity. Each string in the mapping must be unique to this object.

" - }, - "description":{ - "shape":"Description", - "documentation":"

The description of the entity.

" + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the entity.

", + "location":"uri", + "locationName":"workspaceId" }, "entityId":{ "shape":"EntityId", @@ -855,6 +1144,14 @@ "shape":"EntityName", "documentation":"

The name of the entity.

" }, + "description":{ + "shape":"Description", + "documentation":"

The description of the entity.

" + }, + "components":{ + "shape":"ComponentsMapRequest", + "documentation":"

An object that maps strings to the components in the entity. Each string in the mapping must be unique to this object.

" + }, "parentEntityId":{ "shape":"ParentEntityId", "documentation":"

The ID of the entity's parent entity.

" @@ -862,24 +1159,22 @@ "tags":{ "shape":"TagMap", "documentation":"

Metadata that you can use to manage the entity.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the entity.

", - "location":"uri", - "locationName":"workspaceId" } } }, "CreateEntityResponse":{ "type":"structure", "required":[ + "entityId", "arn", "creationDateTime", - "entityId", "state" ], "members":{ + "entityId":{ + "shape":"EntityId", + "documentation":"

The ID of the entity.

" + }, "arn":{ "shape":"TwinMakerArn", "documentation":"

The ARN of the entity.

" @@ -888,10 +1183,6 @@ "shape":"Timestamp", "documentation":"

The date and time when the entity was created.

" }, - "entityId":{ - "shape":"EntityId", - "documentation":"

The ID of the entity.

" - }, "state":{ "shape":"State", "documentation":"

The current state of the entity.

" @@ -901,14 +1192,20 @@ "CreateSceneRequest":{ "type":"structure", "required":[ - "contentLocation", + "workspaceId", "sceneId", - "workspaceId" + "contentLocation" ], "members":{ - "capabilities":{ - "shape":"SceneCapabilities", - "documentation":"

A list of capabilities that the scene uses to render itself.

" + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the scene.

", + "location":"uri", + "locationName":"workspaceId" + }, + "sceneId":{ + "shape":"Id", + "documentation":"

The ID of the scene.

" }, "contentLocation":{ "shape":"S3Url", @@ -918,19 +1215,13 @@ "shape":"Description", "documentation":"

The description for this scene.

" }, - "sceneId":{ - "shape":"Id", - "documentation":"

The ID of the scene.

" + "capabilities":{ + "shape":"SceneCapabilities", + "documentation":"

A list of capabilities that the scene uses to render itself.

" }, "tags":{ "shape":"TagMap", "documentation":"

Metadata that you can use to manage the scene.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the scene.

", - "location":"uri", - "locationName":"workspaceId" } } }, @@ -951,35 +1242,87 @@ } } }, - "CreateWorkspaceRequest":{ + "CreateSyncJobRequest":{ "type":"structure", "required":[ - "role", - "s3Location", - "workspaceId" + "workspaceId", + "syncSource", + "syncRole" ], "members":{ - "description":{ - "shape":"Description", - "documentation":"

The description of the workspace.

" + "workspaceId":{ + "shape":"Id", + "documentation":"

The workspace Id.

", + "location":"uri", + "locationName":"workspaceId" }, - "role":{ + "syncSource":{ + "shape":"SyncSource", + "documentation":"

The sync source.

Currently the only supported syncSoucre is SITEWISE .

", + "location":"uri", + "locationName":"syncSource" + }, + "syncRole":{ "shape":"RoleArn", - "documentation":"

The ARN of the execution role associated with the workspace.

" - }, - "s3Location":{ - "shape":"S3Location", - "documentation":"

The ARN of the S3 bucket where resources associated with the workspace are stored.

" + "documentation":"

The SyncJob IAM role. This IAM role is used by the sync job to read from the syncSource, and create, update or delete the corresponding resources.

" }, "tags":{ "shape":"TagMap", - "documentation":"

Metadata that you can use to manage the workspace

" + "documentation":"

The SyncJob tags.

" + } + } + }, + "CreateSyncJobResponse":{ + "type":"structure", + "required":[ + "arn", + "creationDateTime", + "state" + ], + "members":{ + "arn":{ + "shape":"TwinMakerArn", + "documentation":"

The SyncJob ARN.

" }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time for the SyncJob creation.

" + }, + "state":{ + "shape":"SyncJobState", + "documentation":"

The SyncJob response state.

" + } + } + }, + "CreateWorkspaceRequest":{ + "type":"structure", + "required":[ + "workspaceId", + "s3Location", + "role" + ], + "members":{ "workspaceId":{ "shape":"Id", "documentation":"

The ID of the workspace.

", "location":"uri", "locationName":"workspaceId" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the workspace.

" + }, + "s3Location":{ + "shape":"S3Location", + "documentation":"

The ARN of the S3 bucket where resources associated with the workspace are stored.

" + }, + "role":{ + "shape":"RoleArn", + "documentation":"

The ARN of the execution role associated with the workspace.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Metadata that you can use to manage the workspace

" } } }, @@ -1003,13 +1346,13 @@ "DataConnector":{ "type":"structure", "members":{ - "isNative":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the data connector is native to IoT TwinMaker.

" - }, "lambda":{ "shape":"LambdaFunction", "documentation":"

The Lambda function associated with this data connector.

" + }, + "isNative":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the data connector is native to IoT TwinMaker.

" } }, "documentation":"

The data connector.

" @@ -1018,25 +1361,25 @@ "type":"structure", "required":["type"], "members":{ - "allowedValues":{ - "shape":"DataValueList", - "documentation":"

The allowed values for this data type.

" + "type":{ + "shape":"Type", + "documentation":"

The underlying type of the data type.

" }, "nestedType":{ "shape":"DataType", "documentation":"

The nested type in the data type.

" }, - "relationship":{ - "shape":"Relationship", - "documentation":"

A relationship that associates a component with another component.

" - }, - "type":{ - "shape":"Type", - "documentation":"

The underlying type of the data type.

" + "allowedValues":{ + "shape":"DataValueList", + "documentation":"

The allowed values for this data type.

" }, "unitOfMeasure":{ "shape":"String", "documentation":"

The unit of measure used in this data type.

" + }, + "relationship":{ + "shape":"Relationship", + "documentation":"

A relationship that associates a component with another component.

" } }, "documentation":"

An object that specifies the data type of a property.

" @@ -1052,22 +1395,22 @@ "shape":"Double", "documentation":"

A double value.

" }, - "expression":{ - "shape":"Expression", - "documentation":"

An expression that produces the value.

" - }, "integerValue":{ "shape":"Integer", "documentation":"

An integer value.

" }, - "listValue":{ - "shape":"DataValueList", - "documentation":"

A list of multiple values.

" - }, "longValue":{ "shape":"Long", "documentation":"

A long value.

" }, + "stringValue":{ + "shape":"String", + "documentation":"

A string value.

" + }, + "listValue":{ + "shape":"DataValueList", + "documentation":"

A list of multiple values.

" + }, "mapValue":{ "shape":"DataValueMap", "documentation":"

An object that maps strings to multiple DataValue objects.

" @@ -1076,9 +1419,9 @@ "shape":"RelationshipValue", "documentation":"

A value that relates a component to another component.

" }, - "stringValue":{ - "shape":"String", - "documentation":"

A string value.

" + "expression":{ + "shape":"Expression", + "documentation":"

An expression that produces the value.

" } }, "documentation":"

An object that specifies a value for a property.

" @@ -1099,21 +1442,21 @@ "DeleteComponentTypeRequest":{ "type":"structure", "required":[ - "componentTypeId", - "workspaceId" + "workspaceId", + "componentTypeId" ], "members":{ - "componentTypeId":{ - "shape":"ComponentTypeId", - "documentation":"

The ID of the component type to delete.

", - "location":"uri", - "locationName":"componentTypeId" - }, "workspaceId":{ "shape":"Id", "documentation":"

The ID of the workspace that contains the component type.

", "location":"uri", "locationName":"workspaceId" + }, + "componentTypeId":{ + "shape":"ComponentTypeId", + "documentation":"

The ID of the component type to delete.

", + "location":"uri", + "locationName":"componentTypeId" } } }, @@ -1130,10 +1473,16 @@ "DeleteEntityRequest":{ "type":"structure", "required":[ - "entityId", - "workspaceId" + "workspaceId", + "entityId" ], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the entity to delete.

", + "location":"uri", + "locationName":"workspaceId" + }, "entityId":{ "shape":"EntityId", "documentation":"

The ID of the entity to delete.

", @@ -1145,12 +1494,6 @@ "documentation":"

A Boolean value that specifies whether the operation deletes child entities.

", "location":"querystring", "locationName":"isRecursive" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the entity to delete.

", - "location":"uri", - "locationName":"workspaceId" } } }, @@ -1167,21 +1510,21 @@ "DeleteSceneRequest":{ "type":"structure", "required":[ - "sceneId", - "workspaceId" + "workspaceId", + "sceneId" ], "members":{ - "sceneId":{ - "shape":"Id", - "documentation":"

The ID of the scene to delete.

", - "location":"uri", - "locationName":"sceneId" - }, "workspaceId":{ "shape":"Id", "documentation":"

The ID of the workspace.

", "location":"uri", "locationName":"workspaceId" + }, + "sceneId":{ + "shape":"Id", + "documentation":"

The ID of the scene to delete.

", + "location":"uri", + "locationName":"sceneId" } } }, @@ -1190,6 +1533,37 @@ "members":{ } }, + "DeleteSyncJobRequest":{ + "type":"structure", + "required":[ + "workspaceId", + "syncSource" + ], + "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The workspace Id.

", + "location":"uri", + "locationName":"workspaceId" + }, + "syncSource":{ + "shape":"SyncSource", + "documentation":"

The sync source.

Currently the only supported syncSoucre is SITEWISE .

", + "location":"uri", + "locationName":"syncSource" + } + } + }, + "DeleteSyncJobResponse":{ + "type":"structure", + "required":["state"], + "members":{ + "state":{ + "shape":"SyncJobState", + "documentation":"

The SyncJob response state.

" + } + } + }, "DeleteWorkspaceRequest":{ "type":"structure", "required":["workspaceId"], @@ -1209,7 +1583,7 @@ }, "Description":{ "type":"string", - "max":512, + "max":2048, "min":0, "pattern":".*" }, @@ -1227,7 +1601,7 @@ "type":"string", "max":256, "min":1, - "pattern":"[a-zA-Z_0-9-.][a-zA-Z_0-9-. ]*[a-zA-Z0-9]+" + "pattern":"[^\\u0000-\\u001F\\u007F]+" }, "EntityPropertyReference":{ "type":"structure", @@ -1237,14 +1611,14 @@ "shape":"Name", "documentation":"

The name of the component.

" }, - "entityId":{ - "shape":"EntityId", - "documentation":"

The ID of the entity.

" - }, "externalIdProperty":{ "shape":"ExternalIdProperty", "documentation":"

A mapping of external IDs to property names. External IDs uniquely identify properties from external data stores.

" }, + "entityId":{ + "shape":"EntityId", + "documentation":"

The ID of the entity.

" + }, "propertyName":{ "shape":"Name", "documentation":"

The name of the property.

" @@ -1259,26 +1633,14 @@ "EntitySummary":{ "type":"structure", "required":[ - "arn", - "creationDateTime", "entityId", "entityName", + "arn", "status", + "creationDateTime", "updateDateTime" ], "members":{ - "arn":{ - "shape":"TwinMakerArn", - "documentation":"

The ARN of the entity.

" - }, - "creationDateTime":{ - "shape":"Timestamp", - "documentation":"

The date and time when the entity was created.

" - }, - "description":{ - "shape":"Description", - "documentation":"

The description of the entity.

" - }, "entityId":{ "shape":"EntityId", "documentation":"

The ID of the entity.

" @@ -1287,9 +1649,9 @@ "shape":"EntityName", "documentation":"

The name of the entity.

" }, - "hasChildEntities":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the entity has child entities or not.

" + "arn":{ + "shape":"TwinMakerArn", + "documentation":"

The ARN of the entity.

" }, "parentEntityId":{ "shape":"ParentEntityId", @@ -1299,6 +1661,18 @@ "shape":"Status", "documentation":"

The current status of the entity.

" }, + "description":{ + "shape":"Description", + "documentation":"

The description of the entity.

" + }, + "hasChildEntities":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the entity has child entities or not.

" + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time when the entity was created.

" + }, "updateDateTime":{ "shape":"Timestamp", "documentation":"

The last date and time when the entity was updated.

" @@ -1316,7 +1690,10 @@ "type":"string", "enum":[ "VALIDATION_ERROR", - "INTERNAL_FAILURE" + "INTERNAL_FAILURE", + "SYNC_INITIALIZING_ERROR", + "SYNC_CREATING_ERROR", + "SYNC_PROCESSING_ERROR" ] }, "ErrorDetails":{ @@ -1351,6 +1728,48 @@ "min":1 }, "ExceptionMessage":{"type":"string"}, + "ExecuteQueryRequest":{ + "type":"structure", + "required":[ + "workspaceId", + "queryStatement" + ], + "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace.

" + }, + "queryStatement":{ + "shape":"QueryStatement", + "documentation":"

The query statement.

" + }, + "maxResults":{ + "shape":"QueryServiceMaxResults", + "documentation":"

The maximum number of results to return at one time. The default is 25.

Valid Range: Minimum value of 1. Maximum value of 250.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + } + } + }, + "ExecuteQueryResponse":{ + "type":"structure", + "members":{ + "columnDescriptions":{ + "shape":"ColumnDescriptions", + "documentation":"

A list of ColumnDescription objects.

" + }, + "rows":{ + "shape":"Rows", + "documentation":"

Represents a single row in the query results.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + } + } + }, "Expression":{ "type":"string", "max":316, @@ -1369,10 +1788,6 @@ "FunctionRequest":{ "type":"structure", "members":{ - "implementedBy":{ - "shape":"DataConnector", - "documentation":"

The data connector.

" - }, "requiredProperties":{ "shape":"RequiredProperties", "documentation":"

The required properties of the function.

" @@ -1380,6 +1795,10 @@ "scope":{ "shape":"Scope", "documentation":"

The scope of the function.

" + }, + "implementedBy":{ + "shape":"DataConnector", + "documentation":"

The data connector.

" } }, "documentation":"

The function request body.

" @@ -1387,14 +1806,6 @@ "FunctionResponse":{ "type":"structure", "members":{ - "implementedBy":{ - "shape":"DataConnector", - "documentation":"

The data connector.

" - }, - "isInherited":{ - "shape":"Boolean", - "documentation":"

Indicates whether this function is inherited.

" - }, "requiredProperties":{ "shape":"RequiredProperties", "documentation":"

The required properties of the function.

" @@ -1402,6 +1813,14 @@ "scope":{ "shape":"Scope", "documentation":"

The scope of the function.

" + }, + "implementedBy":{ + "shape":"DataConnector", + "documentation":"

The data connector.

" + }, + "isInherited":{ + "shape":"Boolean", + "documentation":"

Indicates whether this function is inherited.

" } }, "documentation":"

The function response.

" @@ -1419,50 +1838,54 @@ "GetComponentTypeRequest":{ "type":"structure", "required":[ - "componentTypeId", - "workspaceId" + "workspaceId", + "componentTypeId" ], "members":{ - "componentTypeId":{ - "shape":"ComponentTypeId", - "documentation":"

The ID of the component type.

", - "location":"uri", - "locationName":"componentTypeId" - }, "workspaceId":{ "shape":"Id", "documentation":"

The ID of the workspace that contains the component type.

", "location":"uri", "locationName":"workspaceId" + }, + "componentTypeId":{ + "shape":"ComponentTypeId", + "documentation":"

The ID of the component type.

", + "location":"uri", + "locationName":"componentTypeId" } } }, "GetComponentTypeResponse":{ "type":"structure", "required":[ - "arn", + "workspaceId", "componentTypeId", "creationDateTime", "updateDateTime", - "workspaceId" + "arn" ], "members":{ - "arn":{ - "shape":"TwinMakerArn", - "documentation":"

The ARN of the component type.

" + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the component type.

" + }, + "isSingleton":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether an entity can have more than one component of this type.

" }, "componentTypeId":{ "shape":"ComponentTypeId", "documentation":"

The ID of the component type.

" }, - "creationDateTime":{ - "shape":"Timestamp", - "documentation":"

The date and time when the component type was created.

" - }, "description":{ "shape":"Description", "documentation":"

The description of the component type.

" }, + "propertyDefinitions":{ + "shape":"PropertyDefinitionsResponse", + "documentation":"

An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object.

" + }, "extendsFrom":{ "shape":"ExtendsFrom", "documentation":"

The name of the parent component type that this component type extends.

" @@ -1471,6 +1894,18 @@ "shape":"FunctionsResponse", "documentation":"

An object that maps strings to the functions in the component type. Each string in the mapping must be unique to this object.

" }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time when the component type was created.

" + }, + "updateDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time when the component was last updated.

" + }, + "arn":{ + "shape":"TwinMakerArn", + "documentation":"

The ARN of the component type.

" + }, "isAbstract":{ "shape":"Boolean", "documentation":"

A Boolean value that specifies whether the component type is abstract.

" @@ -1479,79 +1914,59 @@ "shape":"Boolean", "documentation":"

A Boolean value that specifies whether the component type has a schema initializer and that the schema initializer has run.

" }, - "isSingleton":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether an entity can have more than one component of this type.

" - }, - "propertyDefinitions":{ - "shape":"PropertyDefinitionsResponse", - "documentation":"

An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object.

" - }, "status":{ "shape":"Status", "documentation":"

The current status of the component type.

" }, - "updateDateTime":{ - "shape":"Timestamp", - "documentation":"

The date and time when the component was last updated.

" + "propertyGroups":{ + "shape":"PropertyGroupsResponse", + "documentation":"

The maximum number of results to return at one time. The default is 25.

Valid Range: Minimum value of 1. Maximum value of 250.

" }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the component type.

" + "syncSource":{ + "shape":"SyncSource", + "documentation":"

The syncSource of the sync job, if this entity was created by a sync job.

" + }, + "componentTypeName":{ + "shape":"ComponentTypeName", + "documentation":"

The component type name.

" } } }, "GetEntityRequest":{ "type":"structure", "required":[ - "entityId", - "workspaceId" + "workspaceId", + "entityId" ], "members":{ - "entityId":{ - "shape":"EntityId", - "documentation":"

The ID of the entity.

", - "location":"uri", - "locationName":"entityId" - }, "workspaceId":{ "shape":"Id", "documentation":"

The ID of the workspace.

", "location":"uri", "locationName":"workspaceId" + }, + "entityId":{ + "shape":"EntityId", + "documentation":"

The ID of the entity.

", + "location":"uri", + "locationName":"entityId" } } }, "GetEntityResponse":{ "type":"structure", "required":[ - "arn", - "creationDateTime", "entityId", "entityName", - "hasChildEntities", - "parentEntityId", + "arn", "status", - "updateDateTime", - "workspaceId" + "workspaceId", + "parentEntityId", + "hasChildEntities", + "creationDateTime", + "updateDateTime" ], "members":{ - "arn":{ - "shape":"TwinMakerArn", - "documentation":"

The ARN of the entity.

" - }, - "components":{ - "shape":"ComponentsMap", - "documentation":"

An object that maps strings to the components in the entity. Each string in the mapping must be unique to this object.

" - }, - "creationDateTime":{ - "shape":"Timestamp", - "documentation":"

The date and time when the entity was created.

" - }, - "description":{ - "shape":"Description", - "documentation":"

The description of the entity.

" - }, "entityId":{ "shape":"EntityId", "documentation":"

The ID of the entity.

" @@ -1560,35 +1975,84 @@ "shape":"EntityName", "documentation":"

The name of the entity.

" }, - "hasChildEntities":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the entity has associated child entities.

" - }, - "parentEntityId":{ - "shape":"ParentEntityId", - "documentation":"

The ID of the parent entity for this entity.

" + "arn":{ + "shape":"TwinMakerArn", + "documentation":"

The ARN of the entity.

" }, "status":{ "shape":"Status", "documentation":"

The current status of the entity.

" }, + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the entity.

" + }, + "components":{ + "shape":"ComponentsMap", + "documentation":"

An object that maps strings to the components in the entity. Each string in the mapping must be unique to this object.

" + }, + "parentEntityId":{ + "shape":"ParentEntityId", + "documentation":"

The ID of the parent entity for this entity.

" + }, + "hasChildEntities":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the entity has associated child entities.

" + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time when the entity was created.

" + }, "updateDateTime":{ "shape":"Timestamp", "documentation":"

The date and time when the entity was last updated.

" }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace.

" + "syncSource":{ + "shape":"SyncSource", + "documentation":"

The syncSource of the sync job, if this entity was created by a sync job.

" + } + } + }, + "GetPricingPlanRequest":{ + "type":"structure", + "members":{ + } + }, + "GetPricingPlanResponse":{ + "type":"structure", + "required":["currentPricingPlan"], + "members":{ + "currentPricingPlan":{ + "shape":"PricingPlan", + "documentation":"

The chosen pricing plan for the current billing cycle.

" + }, + "pendingPricingPlan":{ + "shape":"PricingPlan", + "documentation":"

The pending pricing plan.

" } } }, "GetPropertyValueHistoryRequest":{ "type":"structure", "required":[ - "selectedProperties", - "workspaceId" + "workspaceId", + "selectedProperties" ], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace.

", + "location":"uri", + "locationName":"workspaceId" + }, + "entityId":{ + "shape":"EntityId", + "documentation":"

The ID of the entity.

" + }, "componentName":{ "shape":"Name", "documentation":"

The name of the component.

" @@ -1597,59 +2061,49 @@ "shape":"ComponentTypeId", "documentation":"

The ID of the component type.

" }, - "endDateTime":{ - "shape":"Timestamp", - "documentation":"

The date and time of the latest property value to return.

", - "deprecated":true, - "deprecatedMessage":"This field is deprecated and will throw an error in the future. Use endTime instead." - }, - "endTime":{ - "shape":"Time", - "documentation":"

The ISO8601 DateTime of the latest property value to return.

For more information about the ISO8601 DateTime format, see the data type PropertyValue.

" - }, - "entityId":{ - "shape":"EntityId", - "documentation":"

The ID of the entity.

" - }, - "interpolation":{ - "shape":"InterpolationParameters", - "documentation":"

An object that specifies the interpolation type and the interval over which to interpolate data.

" - }, - "maxResults":{ - "shape":"MaxResults", - "documentation":"

The maximum number of results to return.

" - }, - "nextToken":{ - "shape":"NextToken", - "documentation":"

The string that specifies the next page of results.

" - }, - "orderByTime":{ - "shape":"OrderByTime", - "documentation":"

The time direction to use in the result order.

" + "selectedProperties":{ + "shape":"SelectedPropertyList", + "documentation":"

A list of properties whose value histories the request retrieves.

" }, "propertyFilters":{ "shape":"PropertyFilters", "documentation":"

A list of objects that filter the property value history request.

" }, - "selectedProperties":{ - "shape":"SelectedPropertyList", - "documentation":"

A list of properties whose value histories the request retrieves.

" - }, "startDateTime":{ "shape":"Timestamp", "documentation":"

The date and time of the earliest property value to return.

", "deprecated":true, "deprecatedMessage":"This field is deprecated and will throw an error in the future. Use startTime instead." }, + "endDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time of the latest property value to return.

", + "deprecated":true, + "deprecatedMessage":"This field is deprecated and will throw an error in the future. Use endTime instead." + }, + "interpolation":{ + "shape":"InterpolationParameters", + "documentation":"

An object that specifies the interpolation type and the interval over which to interpolate data.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return at one time. The default is 25.

Valid Range: Minimum value of 1. Maximum value of 250.

" + }, + "orderByTime":{ + "shape":"OrderByTime", + "documentation":"

The time direction to use in the result order.

" + }, "startTime":{ "shape":"Time", - "documentation":"

The ISO8601 DateTime of the earliest property value to return.

For more information about the ISO8601 DateTime format, see the data type PropertyValue.

" + "documentation":"

The ISO8601 DateTime of the earliest property value to return.

For more information about the ISO8601 DateTime format, see the data type PropertyValue.

" }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace.

", - "location":"uri", - "locationName":"workspaceId" + "endTime":{ + "shape":"Time", + "documentation":"

The ISO8601 DateTime of the latest property value to return.

For more information about the ISO8601 DateTime format, see the data type PropertyValue.

" } } }, @@ -1657,13 +2111,13 @@ "type":"structure", "required":["propertyValues"], "members":{ - "nextToken":{ - "shape":"NextToken", - "documentation":"

The string that specifies the next page of results.

" - }, "propertyValues":{ "shape":"PropertyValueList", "documentation":"

An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" } } }, @@ -1695,82 +2149,165 @@ "documentation":"

The ID of the workspace whose values the operation returns.

", "location":"uri", "locationName":"workspaceId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return at one time. The default is 25.

Valid Range: Minimum value of 1. Maximum value of 250.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + }, + "propertyGroupName":{ + "shape":"Name", + "documentation":"

The property group name.

" + }, + "tabularConditions":{ + "shape":"TabularConditions", + "documentation":"

The tabular conditions.

" } } }, "GetPropertyValueResponse":{ "type":"structure", - "required":["propertyValues"], "members":{ "propertyValues":{ "shape":"PropertyLatestValueMap", "documentation":"

An object that maps strings to the properties and latest property values in the response. Each string in the mapping must be unique to this object.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + }, + "tabularPropertyValues":{ + "shape":"TabularPropertyValues", + "documentation":"

A table of property values.

" } } }, "GetSceneRequest":{ "type":"structure", "required":[ - "sceneId", - "workspaceId" + "workspaceId", + "sceneId" ], "members":{ - "sceneId":{ - "shape":"Id", - "documentation":"

The ID of the scene.

", - "location":"uri", - "locationName":"sceneId" - }, "workspaceId":{ "shape":"Id", "documentation":"

The ID of the workspace that contains the scene.

", "location":"uri", "locationName":"workspaceId" + }, + "sceneId":{ + "shape":"Id", + "documentation":"

The ID of the scene.

", + "location":"uri", + "locationName":"sceneId" } } }, "GetSceneResponse":{ "type":"structure", "required":[ - "arn", - "contentLocation", - "creationDateTime", + "workspaceId", "sceneId", - "updateDateTime", - "workspaceId" + "contentLocation", + "arn", + "creationDateTime", + "updateDateTime" ], "members":{ - "arn":{ - "shape":"TwinMakerArn", - "documentation":"

The ARN of the scene.

" - }, - "capabilities":{ - "shape":"SceneCapabilities", - "documentation":"

A list of capabilities that the scene uses to render.

" - }, - "contentLocation":{ - "shape":"S3Url", - "documentation":"

The relative path that specifies the location of the content definition file.

" - }, - "creationDateTime":{ - "shape":"Timestamp", - "documentation":"

The date and time when the scene was created.

" - }, - "description":{ - "shape":"Description", - "documentation":"

The description of the scene.

" + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the scene.

" }, "sceneId":{ "shape":"Id", "documentation":"

The ID of the scene.

" }, + "contentLocation":{ + "shape":"S3Url", + "documentation":"

The relative path that specifies the location of the content definition file.

" + }, + "arn":{ + "shape":"TwinMakerArn", + "documentation":"

The ARN of the scene.

" + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time when the scene was created.

" + }, "updateDateTime":{ "shape":"Timestamp", "documentation":"

The date and time when the scene was last updated.

" }, + "description":{ + "shape":"Description", + "documentation":"

The description of the scene.

" + }, + "capabilities":{ + "shape":"SceneCapabilities", + "documentation":"

A list of capabilities that the scene uses to render.

" + } + } + }, + "GetSyncJobRequest":{ + "type":"structure", + "required":["syncSource"], + "members":{ + "syncSource":{ + "shape":"SyncSource", + "documentation":"

The sync soucre.

Currently the only supported syncSoucre is SITEWISE .

", + "location":"uri", + "locationName":"syncSource" + }, "workspaceId":{ "shape":"Id", - "documentation":"

The ID of the workspace that contains the scene.

" + "documentation":"

The workspace Id.

", + "location":"querystring", + "locationName":"workspace" + } + } + }, + "GetSyncJobResponse":{ + "type":"structure", + "required":[ + "arn", + "workspaceId", + "syncSource", + "syncRole", + "status", + "creationDateTime", + "updateDateTime" + ], + "members":{ + "arn":{ + "shape":"TwinMakerArn", + "documentation":"

The sync job ARN.

" + }, + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the sync job.

" + }, + "syncSource":{ + "shape":"SyncSource", + "documentation":"

The sync soucre.

Currently the only supported syncSoucre is SITEWISE .

" + }, + "syncRole":{ + "shape":"RoleArn", + "documentation":"

The sync IAM role.

" + }, + "status":{ + "shape":"SyncJobStatus", + "documentation":"

The SyncJob response status.

" + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

The creation date and time.

" + }, + "updateDateTime":{ + "shape":"Timestamp", + "documentation":"

The update date and time.

" } } }, @@ -1789,44 +2326,48 @@ "GetWorkspaceResponse":{ "type":"structure", "required":[ + "workspaceId", "arn", - "creationDateTime", - "role", "s3Location", - "updateDateTime", - "workspaceId" + "role", + "creationDateTime", + "updateDateTime" ], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace.

" + }, "arn":{ "shape":"TwinMakerArn", "documentation":"

The ARN of the workspace.

" }, - "creationDateTime":{ - "shape":"Timestamp", - "documentation":"

The date and time when the workspace was created.

" - }, "description":{ "shape":"Description", "documentation":"

The description of the workspace.

" }, - "role":{ - "shape":"RoleArn", - "documentation":"

The ARN of the execution role associated with the workspace.

" - }, "s3Location":{ "shape":"S3Location", "documentation":"

The ARN of the S3 bucket where resources associated with the workspace are stored.

" }, + "role":{ + "shape":"RoleArn", + "documentation":"

The ARN of the execution role associated with the workspace.

" + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time when the workspace was created.

" + }, "updateDateTime":{ "shape":"Timestamp", "documentation":"

The date and time when the workspace was last updated.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace.

" } } }, + "GroupType":{ + "type":"string", + "enum":["TABULAR"] + }, "Id":{ "type":"string", "max":128, @@ -1899,13 +2440,13 @@ "shape":"ComponentTypeId", "documentation":"

The component type that the component types in the list extend.

" }, - "isAbstract":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the component types in the list are abstract.

" - }, "namespace":{ "shape":"String", "documentation":"

The namespace to which the component types in the list belong.

" + }, + "isAbstract":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the component types in the list are abstract.

" } }, "documentation":"

An object that filters items in a list of component types.

Only one object is accepted as a valid input.

", @@ -1919,54 +2460,58 @@ "type":"structure", "required":["workspaceId"], "members":{ - "filters":{ - "shape":"ListComponentTypesFilters", - "documentation":"

A list of objects that filter the request.

" - }, - "maxResults":{ - "shape":"MaxResults", - "documentation":"

The maximum number of results to display.

" - }, - "nextToken":{ - "shape":"NextToken", - "documentation":"

The string that specifies the next page of results.

" - }, "workspaceId":{ "shape":"Id", "documentation":"

The ID of the workspace.

", "location":"uri", "locationName":"workspaceId" + }, + "filters":{ + "shape":"ListComponentTypesFilters", + "documentation":"

A list of objects that filter the request.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return at one time. The default is 25.

Valid Range: Minimum value of 1. Maximum value of 250.

" } } }, "ListComponentTypesResponse":{ "type":"structure", "required":[ - "componentTypeSummaries", - "workspaceId" + "workspaceId", + "componentTypeSummaries" ], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace.

" + }, "componentTypeSummaries":{ "shape":"ComponentTypeSummaries", "documentation":"

A list of objects that contain information about the component types.

" }, - "maxResults":{ - "shape":"MaxResults", - "documentation":"

Specifies the maximum number of results to display.

" - }, "nextToken":{ "shape":"NextToken", "documentation":"

The string that specifies the next page of results.

" }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace.

" + "maxResults":{ + "shape":"MaxResults", + "documentation":"

Specifies the maximum number of results to display.

" } } }, "ListEntitiesFilter":{ "type":"structure", "members":{ + "parentEntityId":{ + "shape":"ParentEntityId", + "documentation":"

The parent of the entities in the list.

" + }, "componentTypeId":{ "shape":"ComponentTypeId", "documentation":"

The ID of the component type in the entities in the list.

" @@ -1974,10 +2519,6 @@ "externalId":{ "shape":"String", "documentation":"

The external-Id property of a component. The external-Id property is the primary key of an external storage system.

" - }, - "parentEntityId":{ - "shape":"ParentEntityId", - "documentation":"

The parent of the entities in the list.

" } }, "documentation":"

An object that filters items in a list of entities.

", @@ -1991,23 +2532,23 @@ "type":"structure", "required":["workspaceId"], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace.

", + "location":"uri", + "locationName":"workspaceId" + }, "filters":{ "shape":"ListEntitiesFilters", "documentation":"

A list of objects that filter the request.

Only one object is accepted as a valid input.

" }, "maxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of results to display.

" + "documentation":"

The maximum number of results to return at one time. The default is 25.

Valid Range: Minimum value of 1. Maximum value of 250.

" }, "nextToken":{ "shape":"NextToken", "documentation":"

The string that specifies the next page of results.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace.

", - "location":"uri", - "locationName":"workspaceId" } } }, @@ -2028,6 +2569,12 @@ "type":"structure", "required":["workspaceId"], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the scenes.

", + "location":"uri", + "locationName":"workspaceId" + }, "maxResults":{ "shape":"MaxResults", "documentation":"

Specifies the maximum number of results to display.

" @@ -2035,25 +2582,98 @@ "nextToken":{ "shape":"NextToken", "documentation":"

The string that specifies the next page of results.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the scenes.

", - "location":"uri", - "locationName":"workspaceId" } } }, "ListScenesResponse":{ "type":"structure", "members":{ - "nextToken":{ - "shape":"NextToken", - "documentation":"

The string that specifies the next page of results.

" - }, "sceneSummaries":{ "shape":"SceneSummaries", "documentation":"

A list of objects that contain information about the scenes.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + } + } + }, + "ListSyncJobsRequest":{ + "type":"structure", + "required":["workspaceId"], + "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the sync job.

", + "location":"uri", + "locationName":"workspaceId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return at one time. The default is 50.

Valid Range: Minimum value of 0. Maximum value of 200.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + } + } + }, + "ListSyncJobsResponse":{ + "type":"structure", + "members":{ + "syncJobSummaries":{ + "shape":"SyncJobSummaries", + "documentation":"

The listed SyncJob summaries.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + } + } + }, + "ListSyncResourcesRequest":{ + "type":"structure", + "required":[ + "workspaceId", + "syncSource" + ], + "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the sync job.

", + "location":"uri", + "locationName":"workspaceId" + }, + "syncSource":{ + "shape":"SyncSource", + "documentation":"

The sync soucre.

Currently the only supported syncSoucre is SITEWISE .

", + "location":"uri", + "locationName":"syncSource" + }, + "filters":{ + "shape":"SyncResourceFilters", + "documentation":"

A list of objects that filter the request.

" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return at one time. The default is 50.

Valid Range: Minimum value of 0. Maximum value of 200.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" + } + } + }, + "ListSyncResourcesResponse":{ + "type":"structure", + "members":{ + "syncResources":{ + "shape":"SyncResourceSummaries", + "documentation":"

The sync resources.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" } } }, @@ -2061,30 +2681,30 @@ "type":"structure", "required":["resourceARN"], "members":{ + "resourceARN":{ + "shape":"TwinMakerArn", + "documentation":"

The ARN of the resource.

" + }, "maxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of results to display.

" + "documentation":"

The maximum number of results to return at one time. The default is 25.

Valid Range: Minimum value of 1. Maximum value of 250.

" }, "nextToken":{ "shape":"NextToken", "documentation":"

The string that specifies the next page of results.

" - }, - "resourceARN":{ - "shape":"TwinMakerArn", - "documentation":"

The ARN of the resource.

" } } }, "ListTagsForResourceResponse":{ "type":"structure", "members":{ - "nextToken":{ - "shape":"NextToken", - "documentation":"

The string that specifies the next page of results.

" - }, "tags":{ "shape":"TagMap", "documentation":"

Metadata that you can use to manage a resource.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" } } }, @@ -2093,7 +2713,7 @@ "members":{ "maxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of results to display.

" + "documentation":"

The maximum number of results to return at one time. The default is 25.

Valid Range: Minimum value of 1. Maximum value of 250.

" }, "nextToken":{ "shape":"NextToken", @@ -2104,13 +2724,13 @@ "ListWorkspacesResponse":{ "type":"structure", "members":{ - "nextToken":{ - "shape":"NextToken", - "documentation":"

The string that specifies the next page of results.

" - }, "workspaceSummaries":{ "shape":"WorkspaceSummaries", "documentation":"

A list of objects that contain information about the workspaces.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The string that specifies the next page of results.

" } } }, @@ -2136,6 +2756,34 @@ "min":0, "pattern":".*" }, + "Order":{ + "type":"string", + "enum":[ + "ASCENDING", + "DESCENDING" + ] + }, + "OrderBy":{ + "type":"structure", + "required":["propertyName"], + "members":{ + "order":{ + "shape":"Order", + "documentation":"

The set order that filters results.

" + }, + "propertyName":{ + "shape":"String", + "documentation":"

The property name.

" + } + }, + "documentation":"

Filter criteria that orders the return output. It can be sorted in ascending or descending order.

" + }, + "OrderByList":{ + "type":"list", + "member":{"shape":"OrderBy"}, + "max":10, + "min":1 + }, "OrderByTime":{ "type":"string", "enum":[ @@ -2153,13 +2801,13 @@ "type":"structure", "required":["updateType"], "members":{ - "parentEntityId":{ - "shape":"ParentEntityId", - "documentation":"

The ID of the parent entity.

" - }, "updateType":{ "shape":"ParentEntityUpdateType", "documentation":"

The type of the update.

" + }, + "parentEntityId":{ + "shape":"ParentEntityId", + "documentation":"

The ID of the parent entity.

" } }, "documentation":"

The parent entity update request.

" @@ -2171,29 +2819,80 @@ "DELETE" ] }, + "PricingBundles":{ + "type":"list", + "member":{"shape":"BundleName"}, + "max":10, + "min":1 + }, + "PricingMode":{ + "type":"string", + "enum":[ + "BASIC", + "STANDARD", + "TIERED_BUNDLE" + ] + }, + "PricingPlan":{ + "type":"structure", + "required":[ + "effectiveDateTime", + "pricingMode", + "updateDateTime", + "updateReason" + ], + "members":{ + "billableEntityCount":{ + "shape":"Long", + "documentation":"

The billable entity count.

" + }, + "bundleInformation":{ + "shape":"BundleInformation", + "documentation":"

The pricing plan's bundle information.

" + }, + "effectiveDateTime":{ + "shape":"Timestamp", + "documentation":"

The effective date and time of the pricing plan.

" + }, + "pricingMode":{ + "shape":"PricingMode", + "documentation":"

The pricing mode.

" + }, + "updateDateTime":{ + "shape":"Timestamp", + "documentation":"

The set date and time for updating a pricing plan.

" + }, + "updateReason":{ + "shape":"UpdateReason", + "documentation":"

The update reason, for changing a pricing plan.

" + } + }, + "documentation":"

The pricing plan.

" + }, + "PricingTier":{ + "type":"string", + "enum":[ + "TIER_1", + "TIER_2", + "TIER_3", + "TIER_4" + ] + }, "PropertyDefinitionRequest":{ "type":"structure", "members":{ - "configuration":{ - "shape":"Configuration", - "documentation":"

A mapping that specifies configuration information about the property. Use this field to specify information that you read from and write to an external source.

" - }, "dataType":{ "shape":"DataType", "documentation":"

An object that contains information about the data type.

" }, - "defaultValue":{ - "shape":"DataValue", - "documentation":"

An object that contains the default value.

" + "isRequiredInEntity":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the property is required.

" }, "isExternalId":{ "shape":"Boolean", "documentation":"

A Boolean value that specifies whether the property ID comes from an external data store.

" }, - "isRequiredInEntity":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the property is required.

" - }, "isStoredExternally":{ "shape":"Boolean", "documentation":"

A Boolean value that specifies whether the property is stored externally.

" @@ -2201,6 +2900,18 @@ "isTimeSeries":{ "shape":"Boolean", "documentation":"

A Boolean value that specifies whether the property consists of time series data.

" + }, + "defaultValue":{ + "shape":"DataValue", + "documentation":"

An object that contains the default value.

" + }, + "configuration":{ + "shape":"Configuration", + "documentation":"

A mapping that specifies configuration information about the property. Use this field to specify information that you read from and write to an external source.

" + }, + "displayName":{ + "shape":"PropertyDisplayName", + "documentation":"

A friendly name for the property.

" } }, "documentation":"

An object that sets information about a property.

" @@ -2209,54 +2920,58 @@ "type":"structure", "required":[ "dataType", - "isExternalId", - "isFinal", - "isImported", - "isInherited", + "isTimeSeries", "isRequiredInEntity", + "isExternalId", "isStoredExternally", - "isTimeSeries" + "isImported", + "isFinal", + "isInherited" ], "members":{ - "configuration":{ - "shape":"Configuration", - "documentation":"

A mapping that specifies configuration information about the property.

" - }, "dataType":{ "shape":"DataType", "documentation":"

An object that contains information about the data type.

" }, - "defaultValue":{ - "shape":"DataValue", - "documentation":"

An object that contains the default value.

" - }, - "isExternalId":{ + "isTimeSeries":{ "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the property ID comes from an external data store.

" - }, - "isFinal":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the property definition can be updated.

" - }, - "isImported":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the property definition is imported from an external data store.

" - }, - "isInherited":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the property definition is inherited from a parent entity.

" + "documentation":"

A Boolean value that specifies whether the property consists of time series data.

" }, "isRequiredInEntity":{ "shape":"Boolean", "documentation":"

A Boolean value that specifies whether the property is required in an entity.

" }, + "isExternalId":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the property ID comes from an external data store.

" + }, "isStoredExternally":{ "shape":"Boolean", "documentation":"

A Boolean value that specifies whether the property is stored externally.

" }, - "isTimeSeries":{ + "isImported":{ "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether the property consists of time series data.

" + "documentation":"

A Boolean value that specifies whether the property definition is imported from an external data store.

" + }, + "isFinal":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the property definition can be updated.

" + }, + "isInherited":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the property definition is inherited from a parent entity.

" + }, + "defaultValue":{ + "shape":"DataValue", + "documentation":"

An object that contains the default value.

" + }, + "configuration":{ + "shape":"Configuration", + "documentation":"

A mapping that specifies configuration information about the property.

" + }, + "displayName":{ + "shape":"PropertyDisplayName", + "documentation":"

A friendly name for the property.

" } }, "documentation":"

An object that contains response data from a property definition request.

" @@ -2271,17 +2986,23 @@ "key":{"shape":"Name"}, "value":{"shape":"PropertyDefinitionResponse"} }, + "PropertyDisplayName":{ + "type":"string", + "max":256, + "min":0, + "pattern":".*[^\\u0000-\\u001F\\u007F]*.*" + }, "PropertyFilter":{ "type":"structure", "members":{ - "operator":{ - "shape":"String", - "documentation":"

The operator associated with this property filter.

" - }, "propertyName":{ "shape":"String", "documentation":"

The property name associated with this property filter.

" }, + "operator":{ + "shape":"String", + "documentation":"

The operator associated with this property filter.

" + }, "value":{ "shape":"DataValue", "documentation":"

The value associated with this property filter.

" @@ -2295,6 +3016,61 @@ "max":10, "min":1 }, + "PropertyGroupRequest":{ + "type":"structure", + "members":{ + "groupType":{ + "shape":"GroupType", + "documentation":"

The group type.

" + }, + "propertyNames":{ + "shape":"PropertyNames", + "documentation":"

The names of properties.

" + } + }, + "documentation":"

" + }, + "PropertyGroupResponse":{ + "type":"structure", + "required":[ + "groupType", + "propertyNames", + "isInherited" + ], + "members":{ + "groupType":{ + "shape":"GroupType", + "documentation":"

The group types.

" + }, + "propertyNames":{ + "shape":"PropertyNames", + "documentation":"

The names of properties.

" + }, + "isInherited":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether the property group is inherited from a parent entity

" + } + }, + "documentation":"

The property group response

" + }, + "PropertyGroupUpdateType":{ + "type":"string", + "enum":[ + "UPDATE", + "DELETE", + "CREATE" + ] + }, + "PropertyGroupsRequest":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"PropertyGroupRequest"} + }, + "PropertyGroupsResponse":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"PropertyGroupResponse"} + }, "PropertyLatestValue":{ "type":"structure", "required":["propertyReference"], @@ -2315,6 +3091,10 @@ "key":{"shape":"Name"}, "value":{"shape":"PropertyLatestValue"} }, + "PropertyNames":{ + "type":"list", + "member":{"shape":"Name"} + }, "PropertyRequest":{ "type":"structure", "members":{ @@ -2322,13 +3102,13 @@ "shape":"PropertyDefinitionRequest", "documentation":"

An object that specifies information about a property.

" }, - "updateType":{ - "shape":"PropertyUpdateType", - "documentation":"

The update type of the update property request.

" - }, "value":{ "shape":"DataValue", "documentation":"

The value of the property.

" + }, + "updateType":{ + "shape":"PropertyUpdateType", + "documentation":"

The update type of the update property request.

" } }, "documentation":"

An object that sets information about a property.

" @@ -2357,6 +3137,11 @@ "key":{"shape":"Name"}, "value":{"shape":"PropertyResponse"} }, + "PropertyTableValue":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"DataValue"} + }, "PropertyUpdateType":{ "type":"string", "enum":[ @@ -2369,10 +3154,6 @@ "type":"structure", "required":["value"], "members":{ - "time":{ - "shape":"Time", - "documentation":"

ISO8601 DateTime of a value for a time series property.

The time for when the property value was recorded in ISO 8601 format: YYYY-MM-DDThh:mm:ss[.SSSSSSSSS][Z/±HH:mm].

  • [YYYY]: year

  • [MM]: month

  • [DD]: day

  • [hh]: hour

  • [mm]: minute

  • [ss]: seconds

  • [.SSSSSSSSS]: additional precision, where precedence is maintained. For example: [.573123] is equal to 573123000 nanoseconds.

  • Z: default timezone UTC

  • ± HH:mm: time zone offset in Hours and Minutes.

Required sub-fields: YYYY-MM-DDThh:mm:ss and [Z/±HH:mm]

" - }, "timestamp":{ "shape":"Timestamp", "documentation":"

The timestamp of a value for a time series property.

", @@ -2382,6 +3163,10 @@ "value":{ "shape":"DataValue", "documentation":"

An object that specifies a value for a time series property.

" + }, + "time":{ + "shape":"Time", + "documentation":"

ISO8601 DateTime of a value for a time series property.

The time for when the property value was recorded in ISO 8601 format: YYYY-MM-DDThh:mm:ss[.SSSSSSSSS][Z/±HH:mm].

  • [YYYY]: year

  • [MM]: month

  • [DD]: day

  • [hh]: hour

  • [mm]: minute

  • [ss]: seconds

  • [.SSSSSSSSS]: additional precision, where precedence is maintained. For example: [.573123] is equal to 573123000 nanoseconds.

  • Z: default timezone UTC

  • ± HH:mm: time zone offset in Hours and Minutes.

Required sub-fields: YYYY-MM-DDThh:mm:ss and [Z/±HH:mm]

" } }, "documentation":"

An object that contains information about a value for a time series property.

" @@ -2426,16 +3211,47 @@ "max":10, "min":1 }, + "QueryResultValue":{ + "type":"structure", + "members":{ + }, + "document":true + }, + "QueryServiceMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "QueryStatement":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"[\\s\\S]+" + }, + "QueryTimeoutException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"

The query timeout exception.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, "Relationship":{ "type":"structure", "members":{ - "relationshipType":{ - "shape":"String", - "documentation":"

The type of the relationship.

" - }, "targetComponentTypeId":{ "shape":"ComponentTypeId", "documentation":"

The ID of the target component type associated with this relationship.

" + }, + "relationshipType":{ + "shape":"String", + "documentation":"

The type of the relationship.

" } }, "documentation":"

An object that specifies a relationship with another component type.

" @@ -2443,13 +3259,13 @@ "RelationshipValue":{ "type":"structure", "members":{ - "targetComponentName":{ - "shape":"Name", - "documentation":"

The name of the target component associated with the relationship value.

" - }, "targetEntityId":{ "shape":"EntityId", "documentation":"

The ID of the target entity associated with this relationship value.

" + }, + "targetComponentName":{ + "shape":"Name", + "documentation":"

The name of the target component associated with the relationship value.

" } }, "documentation":"

A value that associates a component and an entity.

" @@ -2476,6 +3292,24 @@ "min":20, "pattern":"arn:((aws)|(aws-cn)|(aws-us-gov)):iam::[0-9]{12}:role/.*" }, + "Row":{ + "type":"structure", + "members":{ + "rowData":{ + "shape":"RowData", + "documentation":"

The data in a row of query results.

" + } + }, + "documentation":"

Represents a single row in the query results.

" + }, + "RowData":{ + "type":"list", + "member":{"shape":"QueryResultValue"} + }, + "Rows":{ + "type":"list", + "member":{"shape":"Row"} + }, "S3Location":{ "type":"string", "max":1024, @@ -2507,36 +3341,36 @@ "SceneSummary":{ "type":"structure", "required":[ - "arn", - "contentLocation", - "creationDateTime", "sceneId", + "contentLocation", + "arn", + "creationDateTime", "updateDateTime" ], "members":{ - "arn":{ - "shape":"TwinMakerArn", - "documentation":"

The ARN of the scene.

" + "sceneId":{ + "shape":"Id", + "documentation":"

The ID of the scene.

" }, "contentLocation":{ "shape":"S3Url", "documentation":"

The relative path that specifies the location of the content definition file.

" }, + "arn":{ + "shape":"TwinMakerArn", + "documentation":"

The ARN of the scene.

" + }, "creationDateTime":{ "shape":"Timestamp", "documentation":"

The date and time when the scene was created.

" }, - "description":{ - "shape":"Description", - "documentation":"

The scene description.

" - }, - "sceneId":{ - "shape":"Id", - "documentation":"

The ID of the scene.

" - }, "updateDateTime":{ "shape":"Timestamp", "documentation":"

The date and time when the scene was last updated.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The scene description.

" } }, "documentation":"

An object that contains information about a scene.

" @@ -2579,13 +3413,13 @@ "Status":{ "type":"structure", "members":{ - "error":{ - "shape":"ErrorDetails", - "documentation":"

The error message.

" - }, "state":{ "shape":"State", "documentation":"

The current state of the entity, component, component type, or workspace.

" + }, + "error":{ + "shape":"ErrorDetails", + "documentation":"

The error message.

" } }, "documentation":"

An object that represents the status of an entity, component, component type, or workspace.

" @@ -2596,6 +3430,178 @@ "min":1, "pattern":".*" }, + "SyncJobState":{ + "type":"string", + "enum":[ + "CREATING", + "INITIALIZING", + "ACTIVE", + "DELETING", + "ERROR" + ] + }, + "SyncJobStatus":{ + "type":"structure", + "members":{ + "state":{ + "shape":"SyncJobState", + "documentation":"

The SyncJob status state.

" + }, + "error":{ + "shape":"ErrorDetails", + "documentation":"

The SyncJob error.

" + } + }, + "documentation":"

The SyncJob status.

" + }, + "SyncJobSummaries":{ + "type":"list", + "member":{"shape":"SyncJobSummary"} + }, + "SyncJobSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"TwinMakerArn", + "documentation":"

The SyncJob summary ARN.

" + }, + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the sync job.

" + }, + "syncSource":{ + "shape":"SyncSource", + "documentation":"

The sync source.

" + }, + "status":{ + "shape":"SyncJobStatus", + "documentation":"

The SyncJob summaries status.

" + }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

The creation date and time.

" + }, + "updateDateTime":{ + "shape":"Timestamp", + "documentation":"

The update date and time.

" + } + }, + "documentation":"

The SyncJob summary.

" + }, + "SyncResourceFilter":{ + "type":"structure", + "members":{ + "state":{ + "shape":"SyncResourceState", + "documentation":"

The sync resource filter's state.

" + }, + "resourceType":{ + "shape":"SyncResourceType", + "documentation":"

The sync resource filter resoucre type

" + }, + "resourceId":{ + "shape":"Id", + "documentation":"

The sync resource filter resource Id.

" + }, + "externalId":{ + "shape":"Id", + "documentation":"

The external Id.

" + } + }, + "documentation":"

The sync resource filter.

", + "union":true + }, + "SyncResourceFilters":{ + "type":"list", + "member":{"shape":"SyncResourceFilter"} + }, + "SyncResourceState":{ + "type":"string", + "enum":[ + "INITIALIZING", + "PROCESSING", + "DELETED", + "IN_SYNC", + "ERROR" + ] + }, + "SyncResourceStatus":{ + "type":"structure", + "members":{ + "state":{ + "shape":"SyncResourceState", + "documentation":"

The sync resource status state.

" + }, + "error":{ + "shape":"ErrorDetails", + "documentation":"

The status error.

" + } + }, + "documentation":"

The sync resource status.

" + }, + "SyncResourceSummaries":{ + "type":"list", + "member":{"shape":"SyncResourceSummary"} + }, + "SyncResourceSummary":{ + "type":"structure", + "members":{ + "resourceType":{ + "shape":"SyncResourceType", + "documentation":"

The resource type.

" + }, + "externalId":{ + "shape":"Id", + "documentation":"

The external Id.

" + }, + "resourceId":{ + "shape":"Id", + "documentation":"

The resource Id.

" + }, + "status":{ + "shape":"SyncResourceStatus", + "documentation":"

The sync resource summary status.

" + }, + "updateDateTime":{ + "shape":"Timestamp", + "documentation":"

The update date and time.

" + } + }, + "documentation":"

The sync resource summary.

" + }, + "SyncResourceType":{ + "type":"string", + "enum":[ + "ENTITY", + "COMPONENT_TYPE" + ] + }, + "SyncSource":{ + "type":"string", + "pattern":"[a-zA-Z_0-9]+" + }, + "TabularConditions":{ + "type":"structure", + "members":{ + "orderBy":{ + "shape":"OrderByList", + "documentation":"

Filter criteria that orders the output. It can be sorted in ascending or descending order.

" + }, + "propertyFilters":{ + "shape":"PropertyFilters", + "documentation":"

You can filter the request using various logical operators and a key-value format. For example:

{\"key\": \"serverType\", \"value\": \"webServer\"}

" + } + }, + "documentation":"

The tabular conditions.

" + }, + "TabularPropertyValue":{ + "type":"list", + "member":{"shape":"PropertyTableValue"} + }, + "TabularPropertyValues":{ + "type":"list", + "member":{"shape":"TabularPropertyValue"} + }, "TagKey":{ "type":"string", "max":128, @@ -2725,10 +3731,20 @@ "UpdateComponentTypeRequest":{ "type":"structure", "required":[ - "componentTypeId", - "workspaceId" + "workspaceId", + "componentTypeId" ], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace.

", + "location":"uri", + "locationName":"workspaceId" + }, + "isSingleton":{ + "shape":"Boolean", + "documentation":"

A Boolean value that specifies whether an entity can have more than one component of this type.

" + }, "componentTypeId":{ "shape":"ComponentTypeId", "documentation":"

The ID of the component type.

", @@ -2739,6 +3755,10 @@ "shape":"Description", "documentation":"

The description of the component type.

" }, + "propertyDefinitions":{ + "shape":"PropertyDefinitionsRequest", + "documentation":"

An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object.

" + }, "extendsFrom":{ "shape":"ExtendsFrom", "documentation":"

Specifies the component type that this component type extends.

" @@ -2747,31 +3767,29 @@ "shape":"FunctionsRequest", "documentation":"

An object that maps strings to the functions in the component type. Each string in the mapping must be unique to this object.

" }, - "isSingleton":{ - "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether an entity can have more than one component of this type.

" + "propertyGroups":{ + "shape":"PropertyGroupsRequest", + "documentation":"

The property groups

" }, - "propertyDefinitions":{ - "shape":"PropertyDefinitionsRequest", - "documentation":"

An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the component type.

", - "location":"uri", - "locationName":"workspaceId" + "componentTypeName":{ + "shape":"ComponentTypeName", + "documentation":"

The component type name.

" } } }, "UpdateComponentTypeResponse":{ "type":"structure", "required":[ + "workspaceId", "arn", "componentTypeId", - "state", - "workspaceId" + "state" ], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the component type.

" + }, "arn":{ "shape":"TwinMakerArn", "documentation":"

The ARN of the component type.

" @@ -2783,27 +3801,21 @@ "state":{ "shape":"State", "documentation":"

The current state of the component type.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the component type.

" } } }, "UpdateEntityRequest":{ "type":"structure", "required":[ - "entityId", - "workspaceId" + "workspaceId", + "entityId" ], "members":{ - "componentUpdates":{ - "shape":"ComponentUpdatesMapRequest", - "documentation":"

An object that maps strings to the component updates in the request. Each string in the mapping must be unique to this object.

" - }, - "description":{ - "shape":"Description", - "documentation":"

The description of the entity.

" + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the entity.

", + "location":"uri", + "locationName":"workspaceId" }, "entityId":{ "shape":"EntityId", @@ -2815,45 +3827,93 @@ "shape":"EntityName", "documentation":"

The name of the entity.

" }, + "description":{ + "shape":"Description", + "documentation":"

The description of the entity.

" + }, + "componentUpdates":{ + "shape":"ComponentUpdatesMapRequest", + "documentation":"

An object that maps strings to the component updates in the request. Each string in the mapping must be unique to this object.

" + }, "parentEntityUpdate":{ "shape":"ParentEntityUpdateRequest", "documentation":"

An object that describes the update request for a parent entity.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the entity.

", - "location":"uri", - "locationName":"workspaceId" } } }, "UpdateEntityResponse":{ "type":"structure", "required":[ - "state", - "updateDateTime" + "updateDateTime", + "state" ], "members":{ - "state":{ - "shape":"State", - "documentation":"

The current state of the entity update.

" - }, "updateDateTime":{ "shape":"Timestamp", "documentation":"

The date and time when the entity was last updated.

" + }, + "state":{ + "shape":"State", + "documentation":"

The current state of the entity update.

" } } }, + "UpdatePricingPlanRequest":{ + "type":"structure", + "required":["pricingMode"], + "members":{ + "pricingMode":{ + "shape":"PricingMode", + "documentation":"

The pricing mode.

" + }, + "bundleNames":{ + "shape":"PricingBundles", + "documentation":"

The bundle names.

" + } + } + }, + "UpdatePricingPlanResponse":{ + "type":"structure", + "required":["currentPricingPlan"], + "members":{ + "currentPricingPlan":{ + "shape":"PricingPlan", + "documentation":"

Update the current pricing plan.

" + }, + "pendingPricingPlan":{ + "shape":"PricingPlan", + "documentation":"

Update the pending pricing plan.

" + } + } + }, + "UpdateReason":{ + "type":"string", + "enum":[ + "DEFAULT", + "PRICING_TIER_UPDATE", + "ENTITY_COUNT_UPDATE", + "PRICING_MODE_UPDATE", + "OVERWRITTEN" + ] + }, "UpdateSceneRequest":{ "type":"structure", "required":[ - "sceneId", - "workspaceId" + "workspaceId", + "sceneId" ], "members":{ - "capabilities":{ - "shape":"SceneCapabilities", - "documentation":"

A list of capabilities that the scene uses to render.

" + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace that contains the scene.

", + "location":"uri", + "locationName":"workspaceId" + }, + "sceneId":{ + "shape":"Id", + "documentation":"

The ID of the scene.

", + "location":"uri", + "locationName":"sceneId" }, "contentLocation":{ "shape":"S3Url", @@ -2863,17 +3923,9 @@ "shape":"Description", "documentation":"

The description of this scene.

" }, - "sceneId":{ - "shape":"Id", - "documentation":"

The ID of the scene.

", - "location":"uri", - "locationName":"sceneId" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace that contains the scene.

", - "location":"uri", - "locationName":"workspaceId" + "capabilities":{ + "shape":"SceneCapabilities", + "documentation":"

A list of capabilities that the scene uses to render.

" } } }, @@ -2891,6 +3943,12 @@ "type":"structure", "required":["workspaceId"], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace.

", + "location":"uri", + "locationName":"workspaceId" + }, "description":{ "shape":"Description", "documentation":"

The description of the workspace.

" @@ -2898,12 +3956,6 @@ "role":{ "shape":"RoleArn", "documentation":"

The ARN of the execution role associated with the workspace.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace.

", - "location":"uri", - "locationName":"workspaceId" } } }, @@ -2944,31 +3996,31 @@ "WorkspaceSummary":{ "type":"structure", "required":[ + "workspaceId", "arn", "creationDateTime", - "updateDateTime", - "workspaceId" + "updateDateTime" ], "members":{ + "workspaceId":{ + "shape":"Id", + "documentation":"

The ID of the workspace.

" + }, "arn":{ "shape":"TwinMakerArn", "documentation":"

The ARN of the workspace.

" }, - "creationDateTime":{ - "shape":"Timestamp", - "documentation":"

The date and time when the workspace was created.

" - }, "description":{ "shape":"Description", "documentation":"

The description of the workspace.

" }, + "creationDateTime":{ + "shape":"Timestamp", + "documentation":"

The date and time when the workspace was created.

" + }, "updateDateTime":{ "shape":"Timestamp", "documentation":"

The date and time when the workspace was last updated.

" - }, - "workspaceId":{ - "shape":"Id", - "documentation":"

The ID of the workspace.

" } }, "documentation":"

An object that contains information about a workspace.

" diff --git a/botocore/data/iotwireless/2020-11-22/endpoint-rule-set-1.json b/botocore/data/iotwireless/2020-11-22/endpoint-rule-set-1.json new file mode 100644 index 00000000..6b197b9a --- /dev/null +++ b/botocore/data/iotwireless/2020-11-22/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.iotwireless-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.iotwireless-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.iotwireless.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.iotwireless.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/iotwireless/2020-11-22/examples-1.json b/botocore/data/iotwireless/2020-11-22/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/iotwireless/2020-11-22/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/iotwireless/2020-11-22/service-2.json b/botocore/data/iotwireless/2020-11-22/service-2.json index 57cdcc09..80d30316 100644 --- a/botocore/data/iotwireless/2020-11-22/service-2.json +++ b/botocore/data/iotwireless/2020-11-22/service-2.json @@ -726,7 +726,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get the event configuration by resource types.

" + "documentation":"

Get the event configuration based on resource types.

" }, "GetFuotaTask":{ "name":"GetFuotaTask", @@ -831,6 +831,62 @@ ], "documentation":"

Gets information about a partner account. If PartnerAccountId and PartnerType are null, returns all partner accounts.

" }, + "GetPosition":{ + "name":"GetPosition", + "http":{ + "method":"GET", + "requestUri":"/positions/{ResourceIdentifier}" + }, + "input":{"shape":"GetPositionRequest"}, + "output":{"shape":"GetPositionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Get the position information for a given resource.

This action is no longer supported. Calls to retrieve the position information should use the GetResourcePosition API operation instead.

", + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, + "GetPositionConfiguration":{ + "name":"GetPositionConfiguration", + "http":{ + "method":"GET", + "requestUri":"/position-configurations/{ResourceIdentifier}", + "responseCode":200 + }, + "input":{"shape":"GetPositionConfigurationRequest"}, + "output":{"shape":"GetPositionConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Get position configuration for a given resource.

This action is no longer supported. Calls to retrieve the position configuration should use the GetResourcePosition API operation instead.

", + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, + "GetPositionEstimate":{ + "name":"GetPositionEstimate", + "http":{ + "method":"POST", + "requestUri":"/position-estimate" + }, + "input":{"shape":"GetPositionEstimateRequest"}, + "output":{"shape":"GetPositionEstimateResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Get estimated position information as a payload in GeoJSON format. The payload measurement data is resolved using solvers that are provided by third-party vendors.

" + }, "GetResourceEventConfiguration":{ "name":"GetResourceEventConfiguration", "http":{ @@ -866,6 +922,23 @@ ], "documentation":"

Fetches the log-level override, if any, for a given resource-ID and resource-type. It can be used for a wireless device or a wireless gateway.

" }, + "GetResourcePosition":{ + "name":"GetResourcePosition", + "http":{ + "method":"GET", + "requestUri":"/resource-positions/{ResourceIdentifier}" + }, + "input":{"shape":"GetResourcePositionRequest"}, + "output":{"shape":"GetResourcePositionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Get the position information for a given wireless device or a wireless gateway resource. The postion information uses the World Geodetic System (WGS84).

" + }, "GetServiceEndpoint":{ "name":"GetServiceEndpoint", "http":{ @@ -1166,6 +1239,25 @@ ], "documentation":"

Lists the partner accounts associated with your AWS account.

" }, + "ListPositionConfigurations":{ + "name":"ListPositionConfigurations", + "http":{ + "method":"GET", + "requestUri":"/position-configurations", + "responseCode":200 + }, + "input":{"shape":"ListPositionConfigurationsRequest"}, + "output":{"shape":"ListPositionConfigurationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

List position configurations for a given resource, such as positioning solvers.

This action is no longer supported. Calls to retrieve position information should use the GetResourcePosition API operation instead.

", + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, "ListQueuedMessages":{ "name":"ListQueuedMessages", "http":{ @@ -1264,6 +1356,26 @@ ], "documentation":"

Lists the wireless gateways registered to your AWS account.

" }, + "PutPositionConfiguration":{ + "name":"PutPositionConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/position-configurations/{ResourceIdentifier}", + "responseCode":200 + }, + "input":{"shape":"PutPositionConfigurationRequest"}, + "output":{"shape":"PutPositionConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Put position configuration for a given resource.

This action is no longer supported. Calls to update the position configuration should use the UpdateResourcePosition API operation instead.

", + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, "PutResourceLogLevel":{ "name":"PutResourceLogLevel", "http":{ @@ -1515,7 +1627,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Update the event configuration by resource types.

" + "documentation":"

Update the event configuration based on resource types.

" }, "UpdateFuotaTask":{ "name":"UpdateFuotaTask", @@ -1609,6 +1721,26 @@ ], "documentation":"

Updates properties of a partner account.

" }, + "UpdatePosition":{ + "name":"UpdatePosition", + "http":{ + "method":"PATCH", + "requestUri":"/positions/{ResourceIdentifier}", + "responseCode":204 + }, + "input":{"shape":"UpdatePositionRequest"}, + "output":{"shape":"UpdatePositionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Update the position information of a resource.

This action is no longer supported. Calls to update the position information should use the UpdateResourcePosition API operation instead.

", + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, "UpdateResourceEventConfiguration":{ "name":"UpdateResourceEventConfiguration", "http":{ @@ -1628,6 +1760,24 @@ ], "documentation":"

Update the event configuration for a particular resource identifier.

" }, + "UpdateResourcePosition":{ + "name":"UpdateResourcePosition", + "http":{ + "method":"PATCH", + "requestUri":"/resource-positions/{ResourceIdentifier}", + "responseCode":204 + }, + "input":{"shape":"UpdateResourcePositionRequest"}, + "output":{"shape":"UpdateResourcePositionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Update the position information of a given wireless device or a wireless gateway resource. The postion coordinates are based on the World Geodetic System (WGS84).

" + }, "UpdateWirelessDevice":{ "name":"UpdateWirelessDevice", "http":{ @@ -1712,6 +1862,25 @@ "exception":true }, "AccountLinked":{"type":"boolean"}, + "Accuracy":{ + "type":"structure", + "members":{ + "HorizontalAccuracy":{ + "shape":"HorizontalAccuracy", + "documentation":"

The horizontal accuracy of the estimated position, which is the difference between the estimated location and the actual device location.

" + }, + "VerticalAccuracy":{ + "shape":"VerticalAccuracy", + "documentation":"

The vertical accuracy of the estimated position, which is the difference between the estimated altitude and actual device latitude in meters.

" + } + }, + "documentation":"

The accuracy of the estimated position in meters. An empty value indicates that no position data is available. A value of ‘0.0’ value indicates that position data is available. This data corresponds to the position information that you specified instead of the position computed by solver.

" + }, + "AckModeRetryDurationSecs":{ + "type":"integer", + "max":604800, + "min":0 + }, "AddGwMetadata":{"type":"boolean"}, "AmazonId":{ "type":"string", @@ -1742,6 +1911,35 @@ "pattern":"[a-fA-F0-9]{64}", "sensitive":true }, + "ApplicationConfig":{ + "type":"structure", + "members":{ + "FPort":{"shape":"FPort"}, + "Type":{ + "shape":"ApplicationConfigType", + "documentation":"

Application type, which can be specified to obtain real-time position information of your LoRaWAN device.

" + }, + "DestinationName":{ + "shape":"DestinationName", + "documentation":"

The name of the position data destination that describes the AWS IoT rule that processes the device's position data for use by AWS IoT Core for LoRaWAN.

" + } + }, + "documentation":"

LoRaWAN application configuration, which can be used to perform geolocation.

" + }, + "ApplicationConfigType":{ + "type":"string", + "enum":["SemtechGeolocation"] + }, + "Applications":{ + "type":"list", + "member":{"shape":"ApplicationConfig"} + }, + "AssistPosition":{ + "type":"list", + "member":{"shape":"Coordinate"}, + "max":2, + "min":2 + }, "AssociateAwsAccountWithPartnerAccountRequest":{ "type":"structure", "required":["Sidewalk"], @@ -1911,6 +2109,31 @@ } }, "AutoCreateTasks":{"type":"boolean"}, + "BCCH":{ + "type":"integer", + "max":1023, + "min":0 + }, + "BSIC":{ + "type":"integer", + "max":63, + "min":0 + }, + "BaseLat":{ + "type":"float", + "max":90, + "min":-90 + }, + "BaseLng":{ + "type":"float", + "max":180, + "min":-180 + }, + "BaseStationId":{ + "type":"integer", + "max":65535, + "min":0 + }, "BatteryLevel":{ "type":"string", "documentation":"

Sidewalk device battery level.

", @@ -1920,6 +2143,36 @@ "critical" ] }, + "Beaconing":{ + "type":"structure", + "members":{ + "DataRate":{ + "shape":"BeaconingDataRate", + "documentation":"

The data rate for gateways that are sending the beacons.

" + }, + "Frequencies":{ + "shape":"BeaconingFrequencies", + "documentation":"

The frequency list for the gateways to send the beacons.

" + } + }, + "documentation":"

Beaconing parameters for configuring the wireless gateways.

" + }, + "BeaconingDataRate":{ + "type":"integer", + "max":15, + "min":0 + }, + "BeaconingFrequencies":{ + "type":"list", + "member":{"shape":"BeaconingFrequency"}, + "max":10, + "min":0 + }, + "BeaconingFrequency":{ + "type":"integer", + "max":1000000000, + "min":100000000 + }, "CancelMulticastGroupSessionRequest":{ "type":"structure", "required":["Id"], @@ -1936,6 +2189,146 @@ "members":{ } }, + "CaptureTimeAccuracy":{"type":"float"}, + "CdmaChannel":{ + "type":"integer", + "max":4095, + "min":0 + }, + "CdmaList":{ + "type":"list", + "member":{"shape":"CdmaObj"}, + "max":16, + "min":1 + }, + "CdmaLocalId":{ + "type":"structure", + "required":[ + "PnOffset", + "CdmaChannel" + ], + "members":{ + "PnOffset":{ + "shape":"PnOffset", + "documentation":"

Pseudo-noise offset, which is a characteristic of the signal from a cell on a radio tower.

" + }, + "CdmaChannel":{ + "shape":"CdmaChannel", + "documentation":"

CDMA channel information.

" + } + }, + "documentation":"

CDMA local ID information, which corresponds to the local identification parameters of a CDMA cell.

" + }, + "CdmaNmrList":{ + "type":"list", + "member":{"shape":"CdmaNmrObj"}, + "max":32, + "min":1 + }, + "CdmaNmrObj":{ + "type":"structure", + "required":[ + "PnOffset", + "CdmaChannel" + ], + "members":{ + "PnOffset":{ + "shape":"PnOffset", + "documentation":"

Pseudo-noise offset, which is a characteristic of the signal from a cell on a radio tower.

" + }, + "CdmaChannel":{ + "shape":"CdmaChannel", + "documentation":"

CDMA channel information.

" + }, + "PilotPower":{ + "shape":"PilotPower", + "documentation":"

Transmit power level of the pilot signal, measured in dBm (decibel-milliwatts).

" + }, + "BaseStationId":{ + "shape":"BaseStationId", + "documentation":"

CDMA base station ID (BSID).

" + } + }, + "documentation":"

CDMA object for network measurement reports.

" + }, + "CdmaObj":{ + "type":"structure", + "required":[ + "SystemId", + "NetworkId", + "BaseStationId" + ], + "members":{ + "SystemId":{ + "shape":"SystemId", + "documentation":"

CDMA system ID (SID).

" + }, + "NetworkId":{ + "shape":"NetworkId", + "documentation":"

CDMA network ID (NID).

" + }, + "BaseStationId":{ + "shape":"BaseStationId", + "documentation":"

CDMA base station ID (BSID).

" + }, + "RegistrationZone":{ + "shape":"RegistrationZone", + "documentation":"

CDMA registration zone (RZ).

" + }, + "CdmaLocalId":{ + "shape":"CdmaLocalId", + "documentation":"

CDMA local identification (local ID) parameters.

" + }, + "PilotPower":{ + "shape":"PilotPower", + "documentation":"

Transmit power level of the pilot signal, measured in dBm (decibel-milliwatts).

" + }, + "BaseLat":{ + "shape":"BaseLat", + "documentation":"

CDMA base station latitude in degrees.

" + }, + "BaseLng":{ + "shape":"BaseLng", + "documentation":"

CDMA base station longtitude in degrees.

" + }, + "CdmaNmr":{ + "shape":"CdmaNmrList", + "documentation":"

CDMA network measurement reports.

" + } + }, + "documentation":"

CDMA (Code-division multiple access) object.

" + }, + "CellParams":{ + "type":"integer", + "max":127, + "min":0 + }, + "CellTowers":{ + "type":"structure", + "members":{ + "Gsm":{ + "shape":"GsmList", + "documentation":"

GSM object information.

" + }, + "Wcdma":{ + "shape":"WcdmaList", + "documentation":"

WCDMA object information.

" + }, + "Tdscdma":{ + "shape":"TdscdmaList", + "documentation":"

TD-SCDMA object information.

" + }, + "Lte":{ + "shape":"LteList", + "documentation":"

LTE object information.

" + }, + "Cdma":{ + "shape":"CdmaList", + "documentation":"

CDMA object information.

" + } + }, + "documentation":"

The cell towers that were used to perform the measurements.

" + }, "CertificateList":{ "type":"structure", "required":[ @@ -2020,7 +2413,7 @@ }, "WirelessGatewayIdEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether the wireless gateway id connection status event topic is enabled or disabled .

" + "documentation":"

Denotes whether the wireless gateway ID connection status event topic is enabled or disabled.

" } }, "documentation":"

Connection status event configuration object for enabling or disabling topic.

" @@ -2035,6 +2428,7 @@ }, "documentation":"

Connection status resource type event configuration object for enabling or disabling topic.

" }, + "Coordinate":{"type":"float"}, "Crc":{ "type":"long", "max":4294967295, @@ -2281,6 +2675,10 @@ "Tags":{ "shape":"TagList", "documentation":"

The tags to attach to the new wireless device. Tags are metadata that you can use to manage a resource.

" + }, + "Positioning":{ + "shape":"PositioningConfigStatus", + "documentation":"

FPort values for the GNSS, stream, and ClockSync functions of the positioning information.

" } } }, @@ -2413,6 +2811,7 @@ "type":"timestamp", "documentation":"

Created at timestamp for the resource.

" }, + "CreationDate":{"type":"timestamp"}, "DeleteDestinationRequest":{ "type":"structure", "required":["Name"], @@ -2715,7 +3114,7 @@ }, "WirelessDeviceIdEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether the wireless device id device registration state event topic is enabled or disabled.

" + "documentation":"

Denotes whether the wireless device ID device registration state event topic is enabled or disabled.

" } }, "documentation":"

Device registration state event configuration object for enabling and disabling relevant topics.

" @@ -2925,6 +3324,19 @@ "max":256 }, "Double":{"type":"double"}, + "DownlinkFrequency":{ + "type":"integer", + "max":1000000000, + "min":100000000 + }, + "DownlinkMode":{ + "type":"string", + "enum":[ + "SEQUENTIAL", + "CONCURRENT", + "USING_UPLINK_GATEWAY" + ] + }, "DownlinkQueueMessage":{ "type":"structure", "members":{ @@ -2953,16 +3365,36 @@ "max":15, "min":0 }, + "DrMaxBox":{ + "type":"integer", + "max":15, + "min":0 + }, "DrMin":{ "type":"integer", "max":15, "min":0 }, + "DrMinBox":{ + "type":"integer", + "max":15, + "min":0 + }, + "EARFCN":{ + "type":"integer", + "max":262143, + "min":0 + }, "EndPoint":{ "type":"string", "max":256, "min":1 }, + "EutranCid":{ + "type":"integer", + "max":268435455, + "min":0 + }, "Event":{ "type":"string", "documentation":"

Sidewalk device status notification.

", @@ -3015,6 +3447,10 @@ "ConnectionStatus":{ "shape":"ConnectionStatusEventConfiguration", "documentation":"

Connection status event configuration for an event configuration item.

" + }, + "MessageDeliveryStatus":{ + "shape":"MessageDeliveryStatusEventConfiguration", + "documentation":"

Message delivery status event configuration for an event configuration item.

" } }, "documentation":"

Object of all event configurations and the status of the event topics.

" @@ -3070,7 +3506,15 @@ "members":{ "Fuota":{"shape":"FPort"}, "Multicast":{"shape":"FPort"}, - "ClockSync":{"shape":"FPort"} + "ClockSync":{"shape":"FPort"}, + "Positioning":{ + "shape":"Positioning", + "documentation":"

FPort values for the GNSS, stream, and ClockSync functions of the positioning information.

" + }, + "Applications":{ + "shape":"Applications", + "documentation":"

Optional LoRaWAN application information, which can be used for geolocation.

" + } }, "documentation":"

List of FPort assigned for different LoRaWAN application packages to use

" }, @@ -3156,14 +3600,43 @@ "Delete_Waiting" ] }, + "GPST":{"type":"float"}, "GatewayEui":{ "type":"string", "pattern":"^(([0-9A-Fa-f]{2}-){7}|([0-9A-Fa-f]{2}:){7}|([0-9A-Fa-f]{2}\\s){7}|([0-9A-Fa-f]{2}){7})([0-9A-Fa-f]{2})$" }, + "GatewayList":{ + "type":"list", + "member":{"shape":"GatewayListItem"} + }, + "GatewayListItem":{ + "type":"structure", + "required":[ + "GatewayId", + "DownlinkFrequency" + ], + "members":{ + "GatewayId":{ + "shape":"WirelessGatewayId", + "documentation":"

The ID of the wireless gateways that you want to add to the list of gateways when sending downlink messages.

" + }, + "DownlinkFrequency":{ + "shape":"DownlinkFrequency", + "documentation":"

The frequency to use for the gateways when sending a downlink message to the wireless device.

" + } + }, + "documentation":"

Gateway list item object that specifies the frequency and list of gateways for which the downlink message should be sent.

" + }, "GenAppKey":{ "type":"string", "pattern":"[a-fA-F0-9]{32}" }, + "GeoJsonPayload":{"type":"blob"}, + "GeranCid":{ + "type":"integer", + "max":65535, + "min":0 + }, "GetDestinationRequest":{ "type":"structure", "required":["Name"], @@ -3248,19 +3721,23 @@ "members":{ "DeviceRegistrationState":{ "shape":"DeviceRegistrationStateResourceTypeEventConfiguration", - "documentation":"

Resource type event configuration for the device registration state event

" + "documentation":"

Resource type event configuration for the device registration state event.

" }, "Proximity":{ "shape":"ProximityResourceTypeEventConfiguration", - "documentation":"

Resource type event configuration for the proximity event

" + "documentation":"

Resource type event configuration for the proximity event.

" }, "Join":{ "shape":"JoinResourceTypeEventConfiguration", - "documentation":"

Resource type event configuration for the join event

" + "documentation":"

Resource type event configuration for the join event.

" }, "ConnectionStatus":{ "shape":"ConnectionStatusResourceTypeEventConfiguration", - "documentation":"

Resource type event configuration for the connection status event

" + "documentation":"

Resource type event configuration for the connection status event.

" + }, + "MessageDeliveryStatus":{ + "shape":"MessageDeliveryStatusResourceTypeEventConfiguration", + "documentation":"

Resource type event configuration object for the message delivery status event.

" } } }, @@ -3407,6 +3884,133 @@ } } }, + "GetPositionConfigurationRequest":{ + "type":"structure", + "required":[ + "ResourceIdentifier", + "ResourceType" + ], + "members":{ + "ResourceIdentifier":{ + "shape":"PositionResourceIdentifier", + "documentation":"

Resource identifier used in a position configuration.

", + "location":"uri", + "locationName":"ResourceIdentifier" + }, + "ResourceType":{ + "shape":"PositionResourceType", + "documentation":"

Resource type of the resource for which position configuration is retrieved.

", + "location":"querystring", + "locationName":"resourceType" + } + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, + "GetPositionConfigurationResponse":{ + "type":"structure", + "members":{ + "Solvers":{ + "shape":"PositionSolverDetails", + "documentation":"

The wrapper for the solver configuration details object.

" + }, + "Destination":{ + "shape":"DestinationName", + "documentation":"

The position data destination that describes the AWS IoT rule that processes the device's position data for use by AWS IoT Core for LoRaWAN.

" + } + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, + "GetPositionEstimateRequest":{ + "type":"structure", + "members":{ + "WiFiAccessPoints":{ + "shape":"WiFiAccessPoints", + "documentation":"

Retrieves an estimated device position by resolving WLAN measurement data. The position is resolved using HERE's Wi-Fi based solver.

" + }, + "CellTowers":{ + "shape":"CellTowers", + "documentation":"

Retrieves an estimated device position by resolving measurement data from cellular radio towers. The position is resolved using HERE's cellular-based solver.

" + }, + "Ip":{ + "shape":"Ip", + "documentation":"

Retrieves an estimated device position by resolving the IP address information from the device. The position is resolved using MaxMind's IP-based solver.

" + }, + "Gnss":{ + "shape":"Gnss", + "documentation":"

Retrieves an estimated device position by resolving the global navigation satellite system (GNSS) scan data. The position is resolved using the GNSS solver powered by LoRa Cloud.

" + }, + "Timestamp":{ + "shape":"CreationDate", + "documentation":"

Optional information that specifies the time when the position information will be resolved. It uses the UNIX timestamp format. If not specified, the time at which the request was received will be used.

" + } + } + }, + "GetPositionEstimateResponse":{ + "type":"structure", + "members":{ + "GeoJsonPayload":{ + "shape":"GeoJsonPayload", + "documentation":"

The position information of the resource, displayed as a JSON payload. The payload uses the GeoJSON format, which a format that's used to encode geographic data structures. For more information, see GeoJSON.

" + } + }, + "payload":"GeoJsonPayload" + }, + "GetPositionRequest":{ + "type":"structure", + "required":[ + "ResourceIdentifier", + "ResourceType" + ], + "members":{ + "ResourceIdentifier":{ + "shape":"PositionResourceIdentifier", + "documentation":"

Resource identifier used to retrieve the position information.

", + "location":"uri", + "locationName":"ResourceIdentifier" + }, + "ResourceType":{ + "shape":"PositionResourceType", + "documentation":"

Resource type of the resource for which position information is retrieved.

", + "location":"querystring", + "locationName":"resourceType" + } + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, + "GetPositionResponse":{ + "type":"structure", + "members":{ + "Position":{ + "shape":"PositionCoordinate", + "documentation":"

The position information of the resource.

" + }, + "Accuracy":{ + "shape":"Accuracy", + "documentation":"

The accuracy of the estimated position in meters. An empty value indicates that no position data is available. A value of ‘0.0’ value indicates that position data is available. This data corresponds to the position information that you specified instead of the position computed by solver.

" + }, + "SolverType":{ + "shape":"PositionSolverType", + "documentation":"

The type of solver used to identify the position of the resource.

" + }, + "SolverProvider":{ + "shape":"PositionSolverProvider", + "documentation":"

The vendor of the positioning solver.

" + }, + "SolverVersion":{ + "shape":"PositionSolverVersion", + "documentation":"

The version of the positioning solver.

" + }, + "Timestamp":{ + "shape":"ISODateTimeString", + "documentation":"

The timestamp at which the device's position was determined.

" + } + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, "GetResourceEventConfigurationRequest":{ "type":"structure", "required":[ @@ -3428,7 +4032,7 @@ }, "PartnerType":{ "shape":"EventNotificationPartnerType", - "documentation":"

Partner type of the resource if the identifier type is PartnerAccountId.

", + "documentation":"

Partner type of the resource if the identifier type is PartnerAccountId.

", "location":"querystring", "locationName":"partnerType" } @@ -3439,11 +4043,11 @@ "members":{ "DeviceRegistrationState":{ "shape":"DeviceRegistrationStateEventConfiguration", - "documentation":"

Event configuration for the device registration state event

" + "documentation":"

Event configuration for the device registration state event.

" }, "Proximity":{ "shape":"ProximityEventConfiguration", - "documentation":"

Event configuration for the Proximity event

" + "documentation":"

Event configuration for the proximity event.

" }, "Join":{ "shape":"JoinEventConfiguration", @@ -3452,6 +4056,10 @@ "ConnectionStatus":{ "shape":"ConnectionStatusEventConfiguration", "documentation":"

Event configuration for the connection status event.

" + }, + "MessageDeliveryStatus":{ + "shape":"MessageDeliveryStatusEventConfiguration", + "documentation":"

Event configuration for the message delivery status event.

" } } }, @@ -3481,6 +4089,37 @@ "LogLevel":{"shape":"LogLevel"} } }, + "GetResourcePositionRequest":{ + "type":"structure", + "required":[ + "ResourceIdentifier", + "ResourceType" + ], + "members":{ + "ResourceIdentifier":{ + "shape":"PositionResourceIdentifier", + "documentation":"

The identifier of the resource for which position information is retrieved. It can be the wireless device ID or the wireless gateway ID depending on the resource type.

", + "location":"uri", + "locationName":"ResourceIdentifier" + }, + "ResourceType":{ + "shape":"PositionResourceType", + "documentation":"

The type of resource for which position information is retrieved, which can be a wireless device or a wireless gateway.

", + "location":"querystring", + "locationName":"resourceType" + } + } + }, + "GetResourcePositionResponse":{ + "type":"structure", + "members":{ + "GeoJsonPayload":{ + "shape":"GeoJsonPayload", + "documentation":"

The position information of the resource, displayed as a JSON payload. The payload uses the GeoJSON format, which a format that's used to encode geographic data structures. For more information, see GeoJSON.

" + } + }, + "payload":"GeoJsonPayload" + }, "GetServiceEndpointRequest":{ "type":"structure", "members":{ @@ -3605,6 +4244,10 @@ "Sidewalk":{ "shape":"SidewalkDevice", "documentation":"

Sidewalk device object.

" + }, + "Positioning":{ + "shape":"PositioningConfigStatus", + "documentation":"

FPort values for the GNSS, stream, and ClockSync functions of the positioning information.

" } } }, @@ -3840,7 +4483,170 @@ } } }, + "GlobalIdentity":{ + "type":"structure", + "required":[ + "Lac", + "GeranCid" + ], + "members":{ + "Lac":{ + "shape":"LAC", + "documentation":"

Location area code of the global identity.

" + }, + "GeranCid":{ + "shape":"GeranCid", + "documentation":"

GERAN (GSM EDGE Radio Access Network) cell global identifier.

" + } + }, + "documentation":"

Global identity information.

" + }, + "Gnss":{ + "type":"structure", + "required":["Payload"], + "members":{ + "Payload":{ + "shape":"GnssNav", + "documentation":"

Payload that contains the GNSS scan result, or NAV message, in hexadecimal notation.

" + }, + "CaptureTime":{ + "shape":"GPST", + "documentation":"

Optional parameter that gives an estimate of the time when the GNSS scan information is taken, in seconds GPS time (GPST). If capture time is not specified, the local server time is used.

" + }, + "CaptureTimeAccuracy":{ + "shape":"CaptureTimeAccuracy", + "documentation":"

Optional value that gives the capture time estimate accuracy, in seconds. If capture time accuracy is not specified, default value of 300 is used.

" + }, + "AssistPosition":{ + "shape":"AssistPosition", + "documentation":"

Optional assistance position information, specified using latitude and longitude values in degrees. The co-ordinates are inside the WGS84 reference frame.

" + }, + "AssistAltitude":{ + "shape":"Coordinate", + "documentation":"

Optional assistance altitude, which is the altitude of the device at capture time, specified in meters above the WGS84 reference ellipsoid.

" + }, + "Use2DSolver":{ + "shape":"Use2DSolver", + "documentation":"

Optional parameter that forces 2D solve, which modifies the positioning algorithm to a 2D solution problem. When this parameter is specified, the assistance altitude should have an accuracy of at least 10 meters.

" + } + }, + "documentation":"

Global navigation satellite system (GNSS) object used for positioning.

" + }, + "GnssNav":{ + "type":"string", + "max":2048 + }, + "GsmList":{ + "type":"list", + "member":{"shape":"GsmObj"}, + "max":16, + "min":1 + }, + "GsmLocalId":{ + "type":"structure", + "required":[ + "Bsic", + "Bcch" + ], + "members":{ + "Bsic":{ + "shape":"BSIC", + "documentation":"

GSM base station identity code (BSIC).

" + }, + "Bcch":{ + "shape":"BCCH", + "documentation":"

GSM broadcast control channel.

" + } + }, + "documentation":"

GSM local ID information, which corresponds to the local identification parameters of a GSM cell.

" + }, + "GsmNmrList":{ + "type":"list", + "member":{"shape":"GsmNmrObj"}, + "max":32, + "min":1 + }, + "GsmNmrObj":{ + "type":"structure", + "required":[ + "Bsic", + "Bcch" + ], + "members":{ + "Bsic":{ + "shape":"BSIC", + "documentation":"

GSM base station identity code (BSIC).

" + }, + "Bcch":{ + "shape":"BCCH", + "documentation":"

GSM broadcast control channel.

" + }, + "RxLevel":{ + "shape":"RxLevel", + "documentation":"

Rx level, which is the received signal power, measured in dBm (decibel-milliwatts).

" + }, + "GlobalIdentity":{ + "shape":"GlobalIdentity", + "documentation":"

Global identity information of the GSM object.

" + } + }, + "documentation":"

GSM object for network measurement reports.

" + }, + "GsmObj":{ + "type":"structure", + "required":[ + "Mcc", + "Mnc", + "Lac", + "GeranCid" + ], + "members":{ + "Mcc":{ + "shape":"MCC", + "documentation":"

Mobile Country Code.

" + }, + "Mnc":{ + "shape":"MNC", + "documentation":"

Mobile Network Code.

" + }, + "Lac":{ + "shape":"LAC", + "documentation":"

Location area code.

" + }, + "GeranCid":{ + "shape":"GeranCid", + "documentation":"

GERAN (GSM EDGE Radio Access Network) Cell Global Identifier.

" + }, + "GsmLocalId":{ + "shape":"GsmLocalId", + "documentation":"

GSM local identification (local ID) information.

" + }, + "GsmTimingAdvance":{ + "shape":"GsmTimingAdvance", + "documentation":"

Timing advance value, which corresponds to the length of time a signal takes to reach the base station from a mobile phone.

" + }, + "RxLevel":{ + "shape":"RxLevel", + "documentation":"

Rx level, which is the received signal power, measured in dBm (decibel-milliwatts).

" + }, + "GsmNmr":{ + "shape":"GsmNmrList", + "documentation":"

GSM object for network measurement reports.

" + } + }, + "documentation":"

GSM object.

" + }, + "GsmTimingAdvance":{ + "type":"integer", + "max":63, + "min":0 + }, + "HorizontalAccuracy":{ + "type":"float", + "min":0 + }, "HrAllowed":{"type":"boolean"}, + "IPAddress":{"type":"string"}, "ISODateTimeString":{ "type":"string", "pattern":"^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$" @@ -3874,6 +4680,17 @@ "max":4096, "min":1 }, + "Ip":{ + "type":"structure", + "required":["IpAddress"], + "members":{ + "IpAddress":{ + "shape":"IPAddress", + "documentation":"

IP address information.

" + } + }, + "documentation":"

IP address used for resolving device location.

" + }, "JoinEui":{ "type":"string", "pattern":"[a-fA-F0-9]{16}" @@ -3901,7 +4718,7 @@ }, "WirelessDeviceIdEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether the wireless device id join event topic is enabled or disabled.

" + "documentation":"

Denotes whether the wireless device ID join event topic is enabled or disabled.

" } }, "documentation":"

Join event configuration object for enabling or disabling topic.

" @@ -3916,6 +4733,11 @@ }, "documentation":"

Join resource type event configuration object for enabling or disabling topic.

" }, + "LAC":{ + "type":"integer", + "max":65535, + "min":1 + }, "ListDestinationsRequest":{ "type":"structure", "members":{ @@ -4155,6 +4977,45 @@ } } }, + "ListPositionConfigurationsRequest":{ + "type":"structure", + "members":{ + "ResourceType":{ + "shape":"PositionResourceType", + "documentation":"

Resource type for which position configurations are listed.

", + "location":"querystring", + "locationName":"resourceType" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

To retrieve the next set of results, the nextToken value from a previous response; otherwise null to receive the first set of results.

", + "location":"querystring", + "locationName":"nextToken" + } + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, + "ListPositionConfigurationsResponse":{ + "type":"structure", + "members":{ + "PositionConfigurationList":{ + "shape":"PositionConfigurationList", + "documentation":"

A list of position configurations.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to get the next set of results, or null if there are no additional results.

" + } + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, "ListQueuedMessagesRequest":{ "type":"structure", "required":["Id"], @@ -4384,7 +5245,7 @@ "members":{ "GatewayEuiEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether the gateway eui connection status event topic is enabled or disabled.

" + "documentation":"

Denotes whether the gateway EUI connection status event topic is enabled or disabled.

" } }, "documentation":"

Object for LoRaWAN connection status resource type event configuration.

" @@ -4394,7 +5255,7 @@ "members":{ "WirelessGatewayEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether the wireless gateway connection status event topic is enabled or disabled.

" + "documentation":"

Denotes whether the wireless gateway connection status event topic is enabled or disabled.

" } }, "documentation":"

Object for LoRaWAN connection status resource type event configuration.

" @@ -4574,7 +5435,11 @@ }, "JoinEuiFilters":{"shape":"JoinEuiFilters"}, "NetIdFilters":{"shape":"NetIdFilters"}, - "SubBands":{"shape":"SubBands"} + "SubBands":{"shape":"SubBands"}, + "Beaconing":{ + "shape":"Beaconing", + "documentation":"

Beaconing object information, which consists of the data rate and frequency parameters.

" + } }, "documentation":"

LoRaWANGateway object.

" }, @@ -4715,7 +5580,7 @@ "members":{ "DevEuiEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether the dev eui join event topic is enabled or disabled.

" + "documentation":"

Denotes whether the Dev EUI join event topic is enabled or disabled.

" } }, "documentation":"

Object for LoRaWAN join resource type event configuration.

" @@ -4725,7 +5590,7 @@ "members":{ "WirelessDeviceEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether the wireless device join event topic is enabled or disabled.

" + "documentation":"

Denotes whether the wireless device join event topic is enabled or disabled.

" } }, "documentation":"

Object for LoRaWAN join resource type event configuration.

" @@ -4778,7 +5643,11 @@ "LoRaWANSendDataToDevice":{ "type":"structure", "members":{ - "FPort":{"shape":"FPort"} + "FPort":{"shape":"FPort"}, + "ParticipatingGateways":{ + "shape":"ParticipatingGateways", + "documentation":"

Choose the gateways that you want to use for the downlink data traffic when the wireless device is running in class B or class C mode.

" + } }, "documentation":"

LoRaWAN router info.

" }, @@ -4788,6 +5657,14 @@ "AddGwMetadata":{ "shape":"AddGwMetadata", "documentation":"

The AddGWMetaData value.

" + }, + "DrMin":{ + "shape":"DrMinBox", + "documentation":"

The DrMin value.

" + }, + "DrMax":{ + "shape":"DrMaxBox", + "documentation":"

The DrMax value.

" } }, "documentation":"

LoRaWANServiceProfile object.

" @@ -4817,6 +5694,10 @@ "AbpV1_0_x":{ "shape":"UpdateAbpV1_0_x", "documentation":"

ABP device object for update APIs for v1.0.x

" + }, + "FPorts":{ + "shape":"UpdateFPorts", + "documentation":"

FPorts object for the positioning information of the device.

" } }, "documentation":"

LoRaWAN object for update functions.

" @@ -4866,6 +5747,139 @@ "DISABLED" ] }, + "LteList":{ + "type":"list", + "member":{"shape":"LteObj"}, + "max":16, + "min":1 + }, + "LteLocalId":{ + "type":"structure", + "required":[ + "Pci", + "Earfcn" + ], + "members":{ + "Pci":{ + "shape":"PCI", + "documentation":"

Physical cell ID.

" + }, + "Earfcn":{ + "shape":"EARFCN", + "documentation":"

Evolved universal terrestrial radio access (E-UTRA) absolute radio frequency channel number (FCN).

" + } + }, + "documentation":"

LTE local identification (local ID) information.

" + }, + "LteNmrList":{ + "type":"list", + "member":{"shape":"LteNmrObj"}, + "max":32, + "min":1 + }, + "LteNmrObj":{ + "type":"structure", + "required":[ + "Pci", + "Earfcn", + "EutranCid" + ], + "members":{ + "Pci":{ + "shape":"PCI", + "documentation":"

Physical cell ID.

" + }, + "Earfcn":{ + "shape":"EARFCN", + "documentation":"

E-UTRA (Evolved universal terrestrial Radio Access) absolute radio frequency channel Number (EARFCN).

" + }, + "EutranCid":{ + "shape":"EutranCid", + "documentation":"

E-UTRAN (Evolved Universal Terrestrial Radio Access Network) cell global identifier (EUTRANCID).

" + }, + "Rsrp":{ + "shape":"RSRP", + "documentation":"

Signal power of the reference signal received, measured in dBm (decibel-milliwatts).

" + }, + "Rsrq":{ + "shape":"RSRQ", + "documentation":"

Signal quality of the reference Signal received, measured in decibels (dB).

" + } + }, + "documentation":"

LTE object for network measurement reports.

" + }, + "LteObj":{ + "type":"structure", + "required":[ + "Mcc", + "Mnc", + "EutranCid" + ], + "members":{ + "Mcc":{ + "shape":"MCC", + "documentation":"

Mobile Country Code.

" + }, + "Mnc":{ + "shape":"MNC", + "documentation":"

Mobile Network Code.

" + }, + "EutranCid":{ + "shape":"EutranCid", + "documentation":"

E-UTRAN (Evolved Universal Terrestrial Radio Access Network) Cell Global Identifier.

" + }, + "Tac":{ + "shape":"TAC", + "documentation":"

LTE tracking area code.

" + }, + "LteLocalId":{ + "shape":"LteLocalId", + "documentation":"

LTE local identification (local ID) information.

" + }, + "LteTimingAdvance":{ + "shape":"LteTimingAdvance", + "documentation":"

LTE timing advance.

" + }, + "Rsrp":{ + "shape":"RSRP", + "documentation":"

Signal power of the reference signal received, measured in dBm (decibel-milliwatts).

" + }, + "Rsrq":{ + "shape":"RSRQ", + "documentation":"

Signal quality of the reference Signal received, measured in decibels (dB).

" + }, + "NrCapable":{ + "shape":"NRCapable", + "documentation":"

Parameter that determines whether the LTE object is capable of supporting NR (new radio).

" + }, + "LteNmr":{ + "shape":"LteNmrList", + "documentation":"

LTE object for network measurement reports.

" + } + }, + "documentation":"

LTE object.

" + }, + "LteTimingAdvance":{ + "type":"integer", + "max":1282, + "min":0 + }, + "MCC":{ + "type":"integer", + "max":999, + "min":200 + }, + "MNC":{ + "type":"integer", + "max":999, + "min":0 + }, + "MacAddress":{ + "type":"string", + "max":17, + "min":12, + "pattern":"^([0-9A-Fa-f]{2}[:-]?){5}([0-9A-Fa-f]{2})$" + }, "MacVersion":{ "type":"string", "max":64 @@ -4896,6 +5910,24 @@ "type":"string", "max":2048 }, + "MessageDeliveryStatusEventConfiguration":{ + "type":"structure", + "members":{ + "Sidewalk":{"shape":"SidewalkEventNotificationConfigurations"}, + "WirelessDeviceIdEventTopic":{ + "shape":"EventNotificationTopicStatus", + "documentation":"

Denotes whether the wireless device ID message delivery status event topic is enabled or disabled.

" + } + }, + "documentation":"

Message delivery status event configuration object for enabling and disabling relevant topics.

" + }, + "MessageDeliveryStatusResourceTypeEventConfiguration":{ + "type":"structure", + "members":{ + "Sidewalk":{"shape":"SidewalkResourceTypeEventConfiguration"} + }, + "documentation":"

Message delivery status resource type event configuration object for enabling or disabling relevant topic.

" + }, "MessageId":{"type":"string"}, "MessageType":{ "type":"string", @@ -4979,6 +6011,7 @@ }, "documentation":"

Wireless metadata that is to be sent to multicast group.

" }, + "NRCapable":{"type":"boolean"}, "NetId":{ "type":"string", "documentation":"

LoRaWAN network ID.

", @@ -5017,6 +6050,11 @@ }, "documentation":"

Network analyzer configurations.

" }, + "NetworkId":{ + "type":"integer", + "max":65535, + "min":0 + }, "NextToken":{ "type":"string", "max":4096 @@ -5078,11 +6116,44 @@ }, "documentation":"

OTAA device object for v1.1

" }, + "PCI":{ + "type":"integer", + "max":503, + "min":0 + }, + "PSC":{ + "type":"integer", + "max":511, + "min":0 + }, "PackageVersion":{ "type":"string", "max":32, "min":1 }, + "ParticipatingGateways":{ + "type":"structure", + "required":[ + "DownlinkMode", + "GatewayList", + "TransmissionInterval" + ], + "members":{ + "DownlinkMode":{ + "shape":"DownlinkMode", + "documentation":"

Indicates whether to send the downlink message in sequential mode or concurrent mode, or to use only the chosen gateways from the previous uplink message transmission.

" + }, + "GatewayList":{ + "shape":"GatewayList", + "documentation":"

The list of gateways that you want to use for sending the downlink data traffic.

" + }, + "TransmissionInterval":{ + "shape":"TransmissionInterval", + "documentation":"

The duration of time for which AWS IoT Core for LoRaWAN will wait before transmitting the payload to the next gateway.

" + } + }, + "documentation":"

Specify the list of gateways to which you want to send downlink data traffic when the wireless device is running in class B or class C mode.

" + }, "PartnerAccountArn":{"type":"string"}, "PartnerAccountId":{ "type":"string", @@ -5092,12 +6163,22 @@ "type":"string", "enum":["Sidewalk"] }, + "PathLoss":{ + "type":"integer", + "max":158, + "min":46 + }, "PayloadData":{ "type":"string", "documentation":"

The binary to be sent to the end device, encoded in base64.

", "max":2048, "pattern":"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" }, + "PilotPower":{ + "type":"integer", + "max":-49, + "min":-142 + }, "PingSlotDr":{ "type":"integer", "max":15, @@ -5113,6 +6194,116 @@ "max":4096, "min":128 }, + "PnOffset":{ + "type":"integer", + "max":511, + "min":0 + }, + "PositionConfigurationFec":{ + "type":"string", + "enum":[ + "ROSE", + "NONE" + ] + }, + "PositionConfigurationItem":{ + "type":"structure", + "members":{ + "ResourceIdentifier":{ + "shape":"PositionResourceIdentifier", + "documentation":"

Resource identifier for the position configuration.

" + }, + "ResourceType":{ + "shape":"PositionResourceType", + "documentation":"

Resource type of the resource for the position configuration.

" + }, + "Solvers":{ + "shape":"PositionSolverDetails", + "documentation":"

The details of the positioning solver object used to compute the location.

" + }, + "Destination":{ + "shape":"DestinationName", + "documentation":"

The position data destination that describes the AWS IoT rule that processes the device's position data for use by AWS IoT Core for LoRaWAN.

" + } + }, + "documentation":"

The wrapper for a position configuration.

" + }, + "PositionConfigurationList":{ + "type":"list", + "member":{"shape":"PositionConfigurationItem"} + }, + "PositionConfigurationStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "PositionCoordinate":{ + "type":"list", + "member":{"shape":"PositionCoordinateValue"} + }, + "PositionCoordinateValue":{"type":"float"}, + "PositionResourceIdentifier":{ + "type":"string", + "pattern":"[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}" + }, + "PositionResourceType":{ + "type":"string", + "enum":[ + "WirelessDevice", + "WirelessGateway" + ] + }, + "PositionSolverConfigurations":{ + "type":"structure", + "members":{ + "SemtechGnss":{ + "shape":"SemtechGnssConfiguration", + "documentation":"

The Semtech GNSS solver configuration object.

" + } + }, + "documentation":"

The wrapper for position solver configurations.

" + }, + "PositionSolverDetails":{ + "type":"structure", + "members":{ + "SemtechGnss":{ + "shape":"SemtechGnssDetail", + "documentation":"

The Semtech GNSS solver object details.

" + } + }, + "documentation":"

The wrapper for position solver details.

" + }, + "PositionSolverProvider":{ + "type":"string", + "enum":["Semtech"] + }, + "PositionSolverType":{ + "type":"string", + "enum":["GNSS"] + }, + "PositionSolverVersion":{ + "type":"string", + "max":50, + "min":0 + }, + "Positioning":{ + "type":"structure", + "members":{ + "ClockSync":{"shape":"FPort"}, + "Stream":{"shape":"FPort"}, + "Gnss":{"shape":"FPort"} + }, + "documentation":"

The FPorts for the position information.

" + }, + "PositioningConfigStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, "PrAllowed":{"type":"boolean"}, "PresetFreq":{ "type":"integer", @@ -5128,7 +6319,7 @@ }, "WirelessDeviceIdEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether the wireless device id proximity event topic is enabled or disabled.

" + "documentation":"

Denotes whether the wireless device ID proximity event topic is enabled or disabled.

" } }, "documentation":"

Proximity event configuration object for enabling and disabling relevant topics.

" @@ -5143,6 +6334,44 @@ }, "documentation":"

Proximity resource type event configuration object for enabling or disabling topic.

" }, + "PutPositionConfigurationRequest":{ + "type":"structure", + "required":[ + "ResourceIdentifier", + "ResourceType" + ], + "members":{ + "ResourceIdentifier":{ + "shape":"PositionResourceIdentifier", + "documentation":"

Resource identifier used to update the position configuration.

", + "location":"uri", + "locationName":"ResourceIdentifier" + }, + "ResourceType":{ + "shape":"PositionResourceType", + "documentation":"

Resource type of the resource for which you want to update the position configuration.

", + "location":"querystring", + "locationName":"resourceType" + }, + "Solvers":{ + "shape":"PositionSolverConfigurations", + "documentation":"

The positioning solvers used to update the position configuration of the resource.

" + }, + "Destination":{ + "shape":"DestinationName", + "documentation":"

The position data destination that describes the AWS IoT rule that processes the device's position data for use by AWS IoT Core for LoRaWAN.

" + } + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, + "PutPositionConfigurationResponse":{ + "type":"structure", + "members":{ + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, "PutResourceLogLevelRequest":{ "type":"structure", "required":[ @@ -5175,11 +6404,36 @@ "documentation":"

Query string used to search for wireless devices as part of the bulk associate and disassociate process.

", "max":4096 }, + "RSCP":{ + "type":"integer", + "max":-25, + "min":-120 + }, + "RSRP":{ + "type":"integer", + "max":-44, + "min":-140 + }, + "RSRQ":{ + "type":"float", + "max":-3, + "min":-19.5 + }, + "RSS":{ + "type":"integer", + "max":0, + "min":-128 + }, "RaAllowed":{"type":"boolean"}, "RegParamsRevision":{ "type":"string", "max":64 }, + "RegistrationZone":{ + "type":"integer", + "max":4095, + "min":0 + }, "ReportDevStatusBattery":{"type":"boolean"}, "ReportDevStatusMargin":{"type":"boolean"}, "ResetAllResourceLogLevelsRequest":{ @@ -5275,10 +6529,55 @@ "max":16700000, "min":1000000 }, + "RxLevel":{ + "type":"integer", + "max":-25, + "min":-110 + }, "SNwkSIntKey":{ "type":"string", "pattern":"[a-fA-F0-9]{32}" }, + "SemtechGnssConfiguration":{ + "type":"structure", + "required":[ + "Status", + "Fec" + ], + "members":{ + "Status":{ + "shape":"PositionConfigurationStatus", + "documentation":"

The status indicating whether the solver is enabled.

" + }, + "Fec":{ + "shape":"PositionConfigurationFec", + "documentation":"

Whether forward error correction is enabled.

" + } + }, + "documentation":"

Information about the Semtech GNSS solver configuration.

" + }, + "SemtechGnssDetail":{ + "type":"structure", + "members":{ + "Provider":{ + "shape":"PositionSolverProvider", + "documentation":"

The vendor of the solver object.

" + }, + "Type":{ + "shape":"PositionSolverType", + "documentation":"

The type of positioning solver used.

" + }, + "Status":{ + "shape":"PositionConfigurationStatus", + "documentation":"

The status indicating whether the solver is enabled.

" + }, + "Fec":{ + "shape":"PositionConfigurationFec", + "documentation":"

Whether forward error correction is enabled.

" + } + }, + "documentation":"

Details of the Semtech GNSS solver object.

" + }, "SendDataToMulticastGroupRequest":{ "type":"structure", "required":[ @@ -5501,10 +6800,10 @@ "members":{ "AmazonIdEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether amazon id event topic is enabled or disabled.

" + "documentation":"

Denotes whether the Amazon ID event topic is enabled or disabled.

" } }, - "documentation":"

SidewalkEventNotificationConfigurations object Event configuration object for Sidewalk related event topics.

" + "documentation":"

SidewalkEventNotificationConfigurations object, which is the event configuration object for Sidewalk-related event topics.

" }, "SidewalkId":{ "type":"string", @@ -5542,7 +6841,7 @@ "members":{ "WirelessDeviceEventTopic":{ "shape":"EventNotificationTopicStatus", - "documentation":"

Enum to denote whether the wireless device join event topic is enabled or disabled.

" + "documentation":"

Denotes whether the wireless device join event topic is enabled or disabled.

" } }, "documentation":"

Sidewalk resource type event configuration object for enabling or disabling topic.

" @@ -5554,7 +6853,11 @@ "shape":"Seq", "documentation":"

The sequence number.

" }, - "MessageType":{"shape":"MessageType"} + "MessageType":{"shape":"MessageType"}, + "AckModeRetryDurationSecs":{ + "shape":"AckModeRetryDurationSecs", + "documentation":"

The duration of time in seconds to retry sending the ACK.

" + } }, "documentation":"

Information about a Sidewalk router.

" }, @@ -5686,6 +6989,16 @@ "SupportsClassB":{"type":"boolean"}, "SupportsClassC":{"type":"boolean"}, "SupportsJoin":{"type":"boolean"}, + "SystemId":{ + "type":"integer", + "max":32767, + "min":1 + }, + "TAC":{ + "type":"integer", + "max":65535, + "min":0 + }, "Tag":{ "type":"structure", "required":[ @@ -5756,6 +7069,118 @@ "max":100, "min":0 }, + "TdscdmaList":{ + "type":"list", + "member":{"shape":"TdscdmaObj"}, + "max":16, + "min":1 + }, + "TdscdmaLocalId":{ + "type":"structure", + "required":[ + "Uarfcn", + "CellParams" + ], + "members":{ + "Uarfcn":{ + "shape":"UARFCN", + "documentation":"

TD-SCDMA UTRA (Universal Terrestrial Radio Access Network) absolute RF channel number (UARFCN).

" + }, + "CellParams":{ + "shape":"CellParams", + "documentation":"

Cell parameters for TD-SCDMA.

" + } + }, + "documentation":"

TD-SCDMA local identification (local Id) information.

" + }, + "TdscdmaNmrList":{ + "type":"list", + "member":{"shape":"TdscdmaNmrObj"}, + "max":32, + "min":1 + }, + "TdscdmaNmrObj":{ + "type":"structure", + "required":[ + "Uarfcn", + "CellParams" + ], + "members":{ + "Uarfcn":{ + "shape":"UARFCN", + "documentation":"

TD-SCDMA UTRA (Universal Terrestrial Radio Access Network) absolute RF channel number.

" + }, + "CellParams":{ + "shape":"CellParams", + "documentation":"

Cell parameters for TD-SCDMA network measurement reports object.

" + }, + "UtranCid":{ + "shape":"UtranCid", + "documentation":"

UTRAN (UMTS Terrestrial Radio Access Network) cell global identifier.

" + }, + "Rscp":{ + "shape":"RSCP", + "documentation":"

Code power of the received signal, measured in decibel-milliwatts (dBm).

" + }, + "PathLoss":{ + "shape":"PathLoss", + "documentation":"

Path loss, or path attenuation, is the reduction in power density of an electromagnetic wave as it propagates through space.

" + } + }, + "documentation":"

TD-SCDMA object for network measurement reports.

" + }, + "TdscdmaObj":{ + "type":"structure", + "required":[ + "Mcc", + "Mnc", + "UtranCid" + ], + "members":{ + "Mcc":{ + "shape":"MCC", + "documentation":"

Mobile Country Code.

" + }, + "Mnc":{ + "shape":"MNC", + "documentation":"

Mobile Network Code.

" + }, + "Lac":{ + "shape":"LAC", + "documentation":"

Location Area Code.

" + }, + "UtranCid":{ + "shape":"UtranCid", + "documentation":"

UTRAN (UMTS Terrestrial Radio Access Network) Cell Global Identifier.

" + }, + "TdscdmaLocalId":{ + "shape":"TdscdmaLocalId", + "documentation":"

TD-SCDMA local identification (local ID) information.

" + }, + "TdscdmaTimingAdvance":{ + "shape":"TdscdmaTimingAdvance", + "documentation":"

TD-SCDMA Timing advance.

" + }, + "Rscp":{ + "shape":"RSCP", + "documentation":"

Signal power of the received signal (Received Signal Code Power), measured in decibel-milliwatts (dBm).

" + }, + "PathLoss":{ + "shape":"PathLoss", + "documentation":"

Path loss, or path attenuation, is the reduction in power density of an electromagnetic wave as it propagates through space.

" + }, + "TdscdmaNmr":{ + "shape":"TdscdmaNmrList", + "documentation":"

TD-SCDMA object for network measurement reports.

" + } + }, + "documentation":"

TD-SCDMA object.

" + }, + "TdscdmaTimingAdvance":{ + "type":"integer", + "max":1530, + "min":0 + }, "TestWirelessDeviceRequest":{ "type":"structure", "required":["Id"], @@ -5809,11 +7234,26 @@ }, "documentation":"

Trace content for your wireless gateway and wireless device resources.

" }, + "TransmissionInterval":{ + "type":"integer", + "max":604800, + "min":1 + }, "TransmitMode":{ "type":"integer", "max":1, "min":0 }, + "UARFCN":{ + "type":"integer", + "max":16383, + "min":0 + }, + "UARFCNDL":{ + "type":"integer", + "max":16383, + "min":0 + }, "UlBucketSize":{ "type":"integer", "max":2147483647, @@ -5930,6 +7370,10 @@ "ConnectionStatus":{ "shape":"ConnectionStatusResourceTypeEventConfiguration", "documentation":"

Connection status resource type event configuration object for enabling and disabling wireless gateway topic.

" + }, + "MessageDeliveryStatus":{ + "shape":"MessageDeliveryStatusResourceTypeEventConfiguration", + "documentation":"

Message delivery status resource type event configuration object for enabling and disabling wireless device topic.

" } } }, @@ -5938,6 +7382,20 @@ "members":{ } }, + "UpdateFPorts":{ + "type":"structure", + "members":{ + "Positioning":{ + "shape":"Positioning", + "documentation":"

Positioning FPorts for the ClockSync, Stream, and GNSS functions.

" + }, + "Applications":{ + "shape":"Applications", + "documentation":"

LoRaWAN application, which can be used for geolocation by activating positioning.

" + } + }, + "documentation":"

Object for updating the FPorts information.

" + }, "UpdateFuotaTaskRequest":{ "type":"structure", "required":["Id"], @@ -6056,6 +7514,41 @@ "members":{ } }, + "UpdatePositionRequest":{ + "type":"structure", + "required":[ + "ResourceIdentifier", + "ResourceType", + "Position" + ], + "members":{ + "ResourceIdentifier":{ + "shape":"PositionResourceIdentifier", + "documentation":"

Resource identifier of the resource for which position is updated.

", + "location":"uri", + "locationName":"ResourceIdentifier" + }, + "ResourceType":{ + "shape":"PositionResourceType", + "documentation":"

Resource type of the resource for which position is updated.

", + "location":"querystring", + "locationName":"resourceType" + }, + "Position":{ + "shape":"PositionCoordinate", + "documentation":"

The position information of the resource.

" + } + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, + "UpdatePositionResponse":{ + "type":"structure", + "members":{ + }, + "deprecated":true, + "deprecatedMessage":"This operation is no longer supported." + }, "UpdateResourceEventConfigurationRequest":{ "type":"structure", "required":[ @@ -6077,25 +7570,29 @@ }, "PartnerType":{ "shape":"EventNotificationPartnerType", - "documentation":"

Partner type of the resource if the identifier type is PartnerAccountId

", + "documentation":"

Partner type of the resource if the identifier type is PartnerAccountId

", "location":"querystring", "locationName":"partnerType" }, "DeviceRegistrationState":{ "shape":"DeviceRegistrationStateEventConfiguration", - "documentation":"

Event configuration for the device registration state event

" + "documentation":"

Event configuration for the device registration state event.

" }, "Proximity":{ "shape":"ProximityEventConfiguration", - "documentation":"

Event configuration for the Proximity event

" + "documentation":"

Event configuration for the proximity event.

" }, "Join":{ "shape":"JoinEventConfiguration", - "documentation":"

Event configuration for the join event

" + "documentation":"

Event configuration for the join event.

" }, "ConnectionStatus":{ "shape":"ConnectionStatusEventConfiguration", - "documentation":"

Event configuration for the connection status event

" + "documentation":"

Event configuration for the connection status event.

" + }, + "MessageDeliveryStatus":{ + "shape":"MessageDeliveryStatusEventConfiguration", + "documentation":"

Event configuration for the message delivery status event.

" } } }, @@ -6104,6 +7601,37 @@ "members":{ } }, + "UpdateResourcePositionRequest":{ + "type":"structure", + "required":[ + "ResourceIdentifier", + "ResourceType" + ], + "members":{ + "ResourceIdentifier":{ + "shape":"PositionResourceIdentifier", + "documentation":"

The identifier of the resource for which position information is updated. It can be the wireless device ID or the wireless gateway ID depending on the resource type.

", + "location":"uri", + "locationName":"ResourceIdentifier" + }, + "ResourceType":{ + "shape":"PositionResourceType", + "documentation":"

The type of resource for which position information is updated, which can be a wireless device or a wireless gateway.

", + "location":"querystring", + "locationName":"resourceType" + }, + "GeoJsonPayload":{ + "shape":"GeoJsonPayload", + "documentation":"

The position information of the resource, displayed as a JSON payload. The payload uses the GeoJSON format, which a format that's used to encode geographic data structures. For more information, see GeoJSON.

" + } + }, + "payload":"GeoJsonPayload" + }, + "UpdateResourcePositionResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateSignature":{ "type":"string", "max":4096, @@ -6134,6 +7662,10 @@ "LoRaWAN":{ "shape":"LoRaWANUpdateDevice", "documentation":"

The updated wireless device's configuration.

" + }, + "Positioning":{ + "shape":"PositioningConfigStatus", + "documentation":"

FPort values for the GNSS, stream, and ClockSync functions of the positioning information.

" } } }, @@ -6205,6 +7737,12 @@ }, "documentation":"

UpdateWirelessGatewayTaskEntry object.

" }, + "Use2DSolver":{"type":"boolean"}, + "UtranCid":{ + "type":"integer", + "max":268435455, + "min":0 + }, "ValidationException":{ "type":"structure", "members":{ @@ -6214,6 +7752,136 @@ "error":{"httpStatusCode":400}, "exception":true }, + "VerticalAccuracy":{ + "type":"float", + "min":0 + }, + "WcdmaList":{ + "type":"list", + "member":{"shape":"WcdmaObj"}, + "max":16, + "min":1 + }, + "WcdmaLocalId":{ + "type":"structure", + "required":[ + "Uarfcndl", + "Psc" + ], + "members":{ + "Uarfcndl":{ + "shape":"UARFCNDL", + "documentation":"

WCDMA UTRA Absolute RF Channel Number downlink.

" + }, + "Psc":{ + "shape":"PSC", + "documentation":"

Primary Scrambling Code.

" + } + }, + "documentation":"

WCDMA local identification (local ID) information.

" + }, + "WcdmaNmrList":{ + "type":"list", + "member":{"shape":"WcdmaNmrObj"}, + "max":32, + "min":1 + }, + "WcdmaNmrObj":{ + "type":"structure", + "required":[ + "Uarfcndl", + "Psc", + "UtranCid" + ], + "members":{ + "Uarfcndl":{ + "shape":"UARFCNDL", + "documentation":"

WCDMA UTRA Absolute RF Channel Number downlink.

" + }, + "Psc":{ + "shape":"PSC", + "documentation":"

Primary Scrambling Code.

" + }, + "UtranCid":{ + "shape":"UtranCid", + "documentation":"

UTRAN (UMTS Terrestrial Radio Access Network) Cell Global Identifier.

" + }, + "Rscp":{ + "shape":"RSCP", + "documentation":"

Received Signal Code Power (signal power) (dBm)

" + }, + "PathLoss":{ + "shape":"PathLoss", + "documentation":"

Path loss, or path attenuation, is the reduction in power density of an electromagnetic wave as it propagates through space.

" + } + }, + "documentation":"

Network Measurement Reports.

" + }, + "WcdmaObj":{ + "type":"structure", + "required":[ + "Mcc", + "Mnc", + "UtranCid" + ], + "members":{ + "Mcc":{ + "shape":"MCC", + "documentation":"

Mobile Country Code.

" + }, + "Mnc":{ + "shape":"MNC", + "documentation":"

Mobile Network Code.

" + }, + "Lac":{ + "shape":"LAC", + "documentation":"

Location Area Code.

" + }, + "UtranCid":{ + "shape":"UtranCid", + "documentation":"

UTRAN (UMTS Terrestrial Radio Access Network) Cell Global Identifier.

" + }, + "WcdmaLocalId":{ + "shape":"WcdmaLocalId", + "documentation":"

WCDMA local ID information.

" + }, + "Rscp":{ + "shape":"RSCP", + "documentation":"

Received Signal Code Power (signal power) (dBm).

" + }, + "PathLoss":{ + "shape":"PathLoss", + "documentation":"

Path loss, or path attenuation, is the reduction in power density of an electromagnetic wave as it propagates through space.

" + }, + "WcdmaNmr":{ + "shape":"WcdmaNmrList", + "documentation":"

WCDMA object for network measurement reports.

" + } + }, + "documentation":"

WCDMA.

" + }, + "WiFiAccessPoint":{ + "type":"structure", + "required":[ + "MacAddress", + "Rss" + ], + "members":{ + "MacAddress":{ + "shape":"MacAddress", + "documentation":"

Wi-Fi MAC Address.

" + }, + "Rss":{ + "shape":"RSS", + "documentation":"

Recived signal strength of the WLAN measurement data.

" + } + }, + "documentation":"

Wi-Fi access point.

" + }, + "WiFiAccessPoints":{ + "type":"list", + "member":{"shape":"WiFiAccessPoint"} + }, "WirelessDeviceArn":{"type":"string"}, "WirelessDeviceEvent":{ "type":"string", @@ -6245,7 +7913,7 @@ }, "WirelessDeviceFrameInfo":{ "type":"string", - "documentation":"

FrameInfo of your wireless device resources for the trace content. Use FrameInfo to debug the communication between your LoRaWAN end devices and the network server.

", + "documentation":"

FrameInfo of your wireless device resources for the trace content. Use FrameInfo to debug the communication between your LoRaWAN end devices and the network server.

", "enum":[ "ENABLED", "DISABLED" diff --git a/botocore/data/ivs/2020-07-14/endpoint-rule-set-1.json b/botocore/data/ivs/2020-07-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..6482c75e --- /dev/null +++ b/botocore/data/ivs/2020-07-14/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ivs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ivs/2020-07-14/examples-1.json b/botocore/data/ivs/2020-07-14/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/ivs/2020-07-14/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/ivs/2020-07-14/service-2.json b/botocore/data/ivs/2020-07-14/service-2.json index af0740f9..ff115156 100644 --- a/botocore/data/ivs/2020-07-14/service-2.json +++ b/botocore/data/ivs/2020-07-14/service-2.json @@ -506,7 +506,7 @@ "documentation":"

The expected ingest bitrate (bits per second). This is configured in the encoder.

" } }, - "documentation":"

Object specifying a stream’s audio configuration.

" + "documentation":"

Object specifying a stream’s audio configuration, as set up by the broadcaster (usually in an encoder). This is part of the IngestConfiguration object and used for monitoring stream health.

" }, "BatchError":{ "type":"structure", @@ -610,11 +610,11 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" }, "type":{ "shape":"ChannelType", - "documentation":"

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. Valid values:

  • STANDARD: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions 360p and below; above that, audio is passed through.

  • BASIC: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Resolution can be up to 480p and bitrate can be up to 1.5 Mbps.

" + "documentation":"

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. Valid values:

  • STANDARD: Video is transcoded: multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Transcoding allows higher playback quality across a range of download speeds. Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions 360p and below; above that, audio is passed through. This is the default.

  • BASIC: Video is transmuxed: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Resolution can be up to 1080p and bitrate can be up to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p and 1080p.

" } }, "documentation":"

Object specifying a channel.

" @@ -694,7 +694,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" } }, "documentation":"

Summary information about a channel.

" @@ -746,11 +746,11 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" }, "type":{ "shape":"ChannelType", - "documentation":"

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. Valid values:

  • STANDARD: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions 360p and below; above that, audio is passed through.

  • BASIC: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Resolution can be up to 480p and bitrate can be up to 1.5 Mbps.

" + "documentation":"

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. Valid values:

  • STANDARD: Video is transcoded: multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Transcoding allows higher playback quality across a range of download speeds. Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions 360p and below; above that, audio is passed through. This is the default.

  • BASIC: Video is transmuxed: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Resolution can be up to 1080p and bitrate can be up to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p and 1080p.

" } } }, @@ -779,9 +779,13 @@ "shape":"RecordingConfigurationName", "documentation":"

Recording-configuration name. The value does not need to be unique.

" }, + "recordingReconnectWindowSeconds":{ + "shape":"RecordingReconnectWindowSeconds", + "documentation":"

If a broadcast disconnects and then reconnects within the specified interval, the multiple streams will be considered a single broadcast and merged together. Default: 0.

" + }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" }, "thumbnailConfiguration":{ "shape":"ThumbnailConfiguration", @@ -808,7 +812,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" } } }, @@ -1008,7 +1012,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Any tags provided with the request are added to the playback key pair tags.

" + "documentation":"

Any tags provided with the request are added to the playback key pair tags. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" } } }, @@ -1064,7 +1068,7 @@ }, "maxResults":{ "shape":"MaxChannelResults", - "documentation":"

Maximum number of channels to return. Default: 50.

" + "documentation":"

Maximum number of channels to return. Default: 100.

" }, "nextToken":{ "shape":"PaginationToken", @@ -1091,11 +1095,11 @@ "members":{ "maxResults":{ "shape":"MaxPlaybackKeyPairResults", - "documentation":"

The first key pair to retrieve. This is used for pagination; see the nextToken response field. Default: 50.

" + "documentation":"

Maximum number of key pairs to return. Default: your service quota or 100, whichever is smaller.

" }, "nextToken":{ "shape":"PaginationToken", - "documentation":"

Maximum number of key pairs to return.

" + "documentation":"

The first key pair to retrieve. This is used for pagination; see the nextToken response field.

" } } }, @@ -1118,7 +1122,7 @@ "members":{ "maxResults":{ "shape":"MaxRecordingConfigurationResults", - "documentation":"

Maximum number of recording configurations to return. Default: 50.

" + "documentation":"

Maximum number of recording configurations to return. Default: your service quota or 100, whichever is smaller.

" }, "nextToken":{ "shape":"PaginationToken", @@ -1150,7 +1154,7 @@ }, "maxResults":{ "shape":"MaxStreamKeyResults", - "documentation":"

Maximum number of streamKeys to return. Default: 50.

" + "documentation":"

Maximum number of streamKeys to return. Default: 1.

" }, "nextToken":{ "shape":"PaginationToken", @@ -1182,7 +1186,7 @@ }, "maxResults":{ "shape":"MaxStreamResults", - "documentation":"

Maximum number of streams to return. Default: 50.

" + "documentation":"

Maximum number of streams to return. Default: 100.

" }, "nextToken":{ "shape":"PaginationToken", @@ -1213,7 +1217,7 @@ }, "maxResults":{ "shape":"MaxStreamResults", - "documentation":"

Maximum number of streams to return. Default: 50.

" + "documentation":"

Maximum number of streams to return. Default: 100.

" }, "nextToken":{ "shape":"PaginationToken", @@ -1241,7 +1245,7 @@ "members":{ "resourceArn":{ "shape":"ResourceArn", - "documentation":"

The ARN of the resource to be retrieved.

", + "documentation":"

The ARN of the resource to be retrieved. The ARN must be URL-encoded.

", "location":"uri", "locationName":"resourceArn" } @@ -1259,17 +1263,17 @@ }, "MaxChannelResults":{ "type":"integer", - "max":50, + "max":100, "min":1 }, "MaxPlaybackKeyPairResults":{ "type":"integer", - "max":50, + "max":100, "min":1 }, "MaxRecordingConfigurationResults":{ "type":"integer", - "max":50, + "max":100, "min":1 }, "MaxStreamKeyResults":{ @@ -1279,7 +1283,7 @@ }, "MaxStreamResults":{ "type":"integer", - "max":50, + "max":100, "min":1 }, "PaginationToken":{ @@ -1319,7 +1323,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" } }, "documentation":"

A key pair used to sign and validate a playback authorization token.

" @@ -1354,7 +1358,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" } }, "documentation":"

Summary information about a playback key pair.

" @@ -1398,13 +1402,17 @@ "shape":"RecordingConfigurationName", "documentation":"

Recording-configuration name. The value does not need to be unique.

" }, + "recordingReconnectWindowSeconds":{ + "shape":"RecordingReconnectWindowSeconds", + "documentation":"

If a broadcast disconnects and then reconnects within the specified interval, the multiple streams will be considered a single broadcast and merged together. Default: 0.

" + }, "state":{ "shape":"RecordingConfigurationState", "documentation":"

Indicates the current state of the recording configuration. When the state is ACTIVE, the configuration is ready for recording a channel stream.

" }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" }, "thumbnailConfiguration":{ "shape":"ThumbnailConfiguration", @@ -1463,7 +1471,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" } }, "documentation":"

Summary information about a RecordingConfiguration.

" @@ -1475,6 +1483,11 @@ "INTERVAL" ] }, + "RecordingReconnectWindowSeconds":{ + "type":"integer", + "max":300, + "min":0 + }, "ResourceArn":{ "type":"string", "max":128, @@ -1560,7 +1573,7 @@ }, "startTime":{ "shape":"StreamStartTime", - "documentation":"

Time of the stream’s start. This is an ISO 8601 timestamp returned as a string.

" + "documentation":"

Time of the stream’s start. This is an ISO 8601 timestamp; note that this is returned as a string.

" }, "state":{ "shape":"StreamState", @@ -1582,7 +1595,7 @@ "members":{ "eventTime":{ "shape":"Time", - "documentation":"

UTC ISO-8601 formatted timestamp of when the event occurred.

" + "documentation":"

Time when the event occurred. This is an ISO 8601 timestamp; note that this is returned as a string.

" }, "name":{ "shape":"String", @@ -1638,7 +1651,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" }, "value":{ "shape":"StreamKeyValue", @@ -1676,7 +1689,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of 1-50 maps, each of the form string:string (key:value).

" + "documentation":"

Array of 1-50 maps, each of the form string:string (key:value). See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" } }, "documentation":"

Summary information about a stream key.

" @@ -1707,7 +1720,7 @@ }, "endTime":{ "shape":"Time", - "documentation":"

UTC ISO-8601 formatted timestamp of when the channel went offline. For live streams, this is NULL.

" + "documentation":"

Time when the channel went offline. This is an ISO 8601 timestamp; note that this is returned as a string. For live streams, this is NULL.

" }, "ingestConfiguration":{ "shape":"IngestConfiguration", @@ -1719,7 +1732,7 @@ }, "startTime":{ "shape":"Time", - "documentation":"

UTC ISO-8601 formatted timestamp of when the channel went live.

" + "documentation":"

Time when the channel went live. This is an ISO 8601 timestamp; note that this is returned as a string.

" }, "streamId":{ "shape":"StreamId", @@ -1741,7 +1754,7 @@ "members":{ "endTime":{ "shape":"Time", - "documentation":"

UTC ISO-8601 formatted timestamp of when the channel went offline. For live streams, this is NULL.

" + "documentation":"

Time when the channel went offline. This is an ISO 8601 timestamp; note that this is returned as a string. For live streams, this is NULL.

" }, "hasErrorEvent":{ "shape":"Boolean", @@ -1749,7 +1762,7 @@ }, "startTime":{ "shape":"Time", - "documentation":"

UTC ISO-8601 formatted timestamp of when the channel went live.

" + "documentation":"

Time when the channel went live. This is an ISO 8601 timestamp; note that this is returned as a string.

" }, "streamId":{ "shape":"StreamId", @@ -1782,7 +1795,7 @@ }, "startTime":{ "shape":"StreamStartTime", - "documentation":"

Time of the stream’s start. This is an ISO 8601 timestamp returned as a string.

" + "documentation":"

Time of the stream’s start. This is an ISO 8601 timestamp; note that this is returned as a string.

" }, "state":{ "shape":"StreamState", @@ -1834,13 +1847,13 @@ "members":{ "resourceArn":{ "shape":"ResourceArn", - "documentation":"

ARN of the resource for which tags are to be added or updated.

", + "documentation":"

ARN of the resource for which tags are to be added or updated. The ARN must be URL-encoded.

", "location":"uri", "locationName":"resourceArn" }, "tags":{ "shape":"Tags", - "documentation":"

Array of tags to be added or updated.

" + "documentation":"

Array of tags to be added or updated. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

" } } }, @@ -1908,13 +1921,13 @@ "members":{ "resourceArn":{ "shape":"ResourceArn", - "documentation":"

ARN of the resource for which tags are to be removed.

", + "documentation":"

ARN of the resource for which tags are to be removed. The ARN must be URL-encoded.

", "location":"uri", "locationName":"resourceArn" }, "tagKeys":{ "shape":"TagKeyList", - "documentation":"

Array of tags to be removed.

", + "documentation":"

Array of tags to be removed. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

", "location":"querystring", "locationName":"tagKeys" } @@ -1951,7 +1964,7 @@ }, "type":{ "shape":"ChannelType", - "documentation":"

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Valid values:

  • STANDARD: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions 360p and below; above that, audio is passed through.

  • BASIC: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Resolution can be up to 480p and bitrate can be up to 1.5 Mbps.

" + "documentation":"

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Valid values:

  • STANDARD: Video is transcoded: multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Transcoding allows higher playback quality across a range of download speeds. Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps. Audio is transcoded only for renditions 360p and below; above that, audio is passed through. This is the default.

  • BASIC: Video is transmuxed: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Resolution can be up to 1080p and bitrate can be up to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p and 1080p.

" } } }, @@ -2012,10 +2025,10 @@ "documentation":"

Video-resolution width in pixels.

" } }, - "documentation":"

Object specifying a stream’s video configuration.

" + "documentation":"

Object specifying a stream’s video configuration, as set up by the broadcaster (usually in an encoder). This is part of the IngestConfiguration object and used for monitoring stream health.

" }, "errorCode":{"type":"string"}, "errorMessage":{"type":"string"} }, - "documentation":"

Introduction

The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an Amazon Web Services EventBridge event stream for responses. JSON is used for both requests and responses, including errors.

The API is an Amazon Web Services regional service. For a list of supported regions and Amazon IVS HTTPS service endpoints, see the Amazon IVS page in the Amazon Web Services General Reference.

All API request parameters and URLs are case sensitive.

For a summary of notable documentation changes in each release, see Document History.

Allowed Header Values

  • Accept: application/json

  • Accept-Encoding: gzip, deflate

  • Content-Type: application/json

Resources

The following resources contain information about your IVS live stream (see Getting Started with Amazon IVS):

  • Channel — Stores configuration data related to your live stream. You first create a channel and then use the channel’s stream key to start your live stream. See the Channel endpoints for more information.

  • Stream key — An identifier assigned by Amazon IVS when you create a channel, which is then used to authorize streaming. See the StreamKey endpoints for more information. Treat the stream key like a secret, since it allows anyone to stream to the channel.

  • Playback key pair — Video playback may be restricted using playback-authorization tokens, which use public-key encryption. A playback key pair is the public-private pair of keys used to sign and validate the playback-authorization token. See the PlaybackKeyPair endpoints for more information.

  • Recording configuration — Stores configuration related to recording a live stream and where to store the recorded content. Multiple channels can reference the same recording configuration. See the Recording Configuration endpoints for more information.

Tagging

A tag is a metadata label that you assign to an Amazon Web Services resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature to label a particular video category. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags.

Tags can help you identify and organize your Amazon Web Services resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).

The Amazon IVS API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resources support tagging: Channels, Stream Keys, Playback Key Pairs, and Recording Configurations.

At most 50 tags can be applied to a resource.

Authentication versus Authorization

Note the differences between these concepts:

  • Authentication is about verifying identity. You need to be authenticated to sign Amazon IVS API requests.

  • Authorization is about granting permissions. You need to be authorized to view Amazon IVS private channels. (Private channels are channels that are enabled for \"playback authorization.\")

Authentication

All Amazon IVS API requests must be authenticated with a signature. The Amazon Web Services Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS API directly, it’s your responsibility to sign the requests.

You generate a signature using valid Amazon Web Services credentials that have permission to perform the requested action. For example, you must sign PutMetadata requests with a signature generated from an IAM user account that has the ivs:PutMetadata permission.

For more information:

Channel Endpoints

  • CreateChannel — Creates a new channel and an associated stream key to start streaming.

  • GetChannel — Gets the channel configuration for the specified channel ARN (Amazon Resource Name).

  • BatchGetChannel — Performs GetChannel on multiple ARNs simultaneously.

  • ListChannels — Gets summary information about all channels in your account, in the Amazon Web Services region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 Conflict Exception).

  • UpdateChannel — Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.

  • DeleteChannel — Deletes the specified channel.

StreamKey Endpoints

  • CreateStreamKey — Creates a stream key, used to initiate a stream, for the specified channel ARN.

  • GetStreamKey — Gets stream key information for the specified ARN.

  • BatchGetStreamKey — Performs GetStreamKey on multiple ARNs simultaneously.

  • ListStreamKeys — Gets summary information about stream keys for the specified channel.

  • DeleteStreamKey — Deletes the stream key for the specified ARN, so it can no longer be used to stream.

Stream Endpoints

  • GetStream — Gets information about the active (live) stream on a specified channel.

  • GetStreamSession — Gets metadata on a specified stream.

  • ListStreams — Gets summary information about live streams in your account, in the Amazon Web Services region where the API request is processed.

  • ListStreamSessions — Gets a summary of current and previous streams for a specified channel in your account, in the AWS region where the API request is processed.

  • StopStream — Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with DeleteStreamKey to prevent further streaming to a channel.

  • PutMetadata — Inserts metadata into the active stream of the specified channel. At most 5 requests per second per channel are allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) At most 155 requests per second per account are allowed.

PlaybackKeyPair Endpoints

For more information, see Setting Up Private Channels in the Amazon IVS User Guide.

  • ImportPlaybackKeyPair — Imports the public portion of a new key pair and returns its arn and fingerprint. The privateKey can then be used to generate viewer authorization tokens, to grant viewers access to private channels (channels enabled for playback authorization).

  • GetPlaybackKeyPair — Gets a specified playback authorization key pair and returns the arn and fingerprint. The privateKey held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels.

  • ListPlaybackKeyPairs — Gets summary information about playback key pairs.

  • DeletePlaybackKeyPair — Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s privateKey.

RecordingConfiguration Endpoints

Amazon Web Services Tags Endpoints

  • TagResource — Adds or updates tags for the Amazon Web Services resource with the specified ARN.

  • UntagResource — Removes tags from the resource with the specified ARN.

  • ListTagsForResource — Gets information about Amazon Web Services tags for the specified ARN.

" + "documentation":"

Introduction

The Amazon Interactive Video Service (IVS) API is REST compatible, using a standard HTTP API and an Amazon Web Services EventBridge event stream for responses. JSON is used for both requests and responses, including errors.

The API is an Amazon Web Services regional service. For a list of supported regions and Amazon IVS HTTPS service endpoints, see the Amazon IVS page in the Amazon Web Services General Reference.

All API request parameters and URLs are case sensitive.

For a summary of notable documentation changes in each release, see Document History.

Allowed Header Values

  • Accept: application/json

  • Accept-Encoding: gzip, deflate

  • Content-Type: application/json

Resources

The following resources contain information about your IVS live stream (see Getting Started with Amazon IVS):

  • Channel — Stores configuration data related to your live stream. You first create a channel and then use the channel’s stream key to start your live stream. See the Channel endpoints for more information.

  • Stream key — An identifier assigned by Amazon IVS when you create a channel, which is then used to authorize streaming. See the StreamKey endpoints for more information. Treat the stream key like a secret, since it allows anyone to stream to the channel.

  • Playback key pair — Video playback may be restricted using playback-authorization tokens, which use public-key encryption. A playback key pair is the public-private pair of keys used to sign and validate the playback-authorization token. See the PlaybackKeyPair endpoints for more information.

  • Recording configuration — Stores configuration related to recording a live stream and where to store the recorded content. Multiple channels can reference the same recording configuration. See the Recording Configuration endpoints for more information.

Tagging

A tag is a metadata label that you assign to an Amazon Web Services resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature to label a particular video category. See Tagging Amazon Web Services Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS has no service-specific constraints beyond what is documented there.

Tags can help you identify and organize your Amazon Web Services resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).

The Amazon IVS API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resources support tagging: Channels, Stream Keys, Playback Key Pairs, and Recording Configurations.

At most 50 tags can be applied to a resource.

Authentication versus Authorization

Note the differences between these concepts:

  • Authentication is about verifying identity. You need to be authenticated to sign Amazon IVS API requests.

  • Authorization is about granting permissions. Your IAM roles need to have permissions for Amazon IVS API requests. In addition, authorization is needed to view Amazon IVS private channels. (Private channels are channels that are enabled for \"playback authorization.\")

Authentication

All Amazon IVS API requests must be authenticated with a signature. The Amazon Web Services Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS API directly, it’s your responsibility to sign the requests.

You generate a signature using valid Amazon Web Services credentials that have permission to perform the requested action. For example, you must sign PutMetadata requests with a signature generated from an IAM user account that has the ivs:PutMetadata permission.

For more information:

Amazon Resource Names (ARNs)

ARNs uniquely identify AWS resources. An ARN is required when you need to specify a resource unambiguously across all of AWS, such as in IAM policies and API calls. For more information, see Amazon Resource Names in the AWS General Reference.

Channel Endpoints

  • CreateChannel — Creates a new channel and an associated stream key to start streaming.

  • GetChannel — Gets the channel configuration for the specified channel ARN.

  • BatchGetChannel — Performs GetChannel on multiple ARNs simultaneously.

  • ListChannels — Gets summary information about all channels in your account, in the Amazon Web Services region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 Conflict Exception).

  • UpdateChannel — Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.

  • DeleteChannel — Deletes the specified channel.

StreamKey Endpoints

  • CreateStreamKey — Creates a stream key, used to initiate a stream, for the specified channel ARN.

  • GetStreamKey — Gets stream key information for the specified ARN.

  • BatchGetStreamKey — Performs GetStreamKey on multiple ARNs simultaneously.

  • ListStreamKeys — Gets summary information about stream keys for the specified channel.

  • DeleteStreamKey — Deletes the stream key for the specified ARN, so it can no longer be used to stream.

Stream Endpoints

  • GetStream — Gets information about the active (live) stream on a specified channel.

  • GetStreamSession — Gets metadata on a specified stream.

  • ListStreams — Gets summary information about live streams in your account, in the Amazon Web Services region where the API request is processed.

  • ListStreamSessions — Gets a summary of current and previous streams for a specified channel in your account, in the AWS region where the API request is processed.

  • StopStream — Disconnects the incoming RTMPS stream for the specified channel. Can be used in conjunction with DeleteStreamKey to prevent further streaming to a channel.

  • PutMetadata — Inserts metadata into the active stream of the specified channel. At most 5 requests per second per channel are allowed, each with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend batching your data into a single PutMetadata call.) At most 155 requests per second per account are allowed.

PlaybackKeyPair Endpoints

For more information, see Setting Up Private Channels in the Amazon IVS User Guide.

  • ImportPlaybackKeyPair — Imports the public portion of a new key pair and returns its arn and fingerprint. The privateKey can then be used to generate viewer authorization tokens, to grant viewers access to private channels (channels enabled for playback authorization).

  • GetPlaybackKeyPair — Gets a specified playback authorization key pair and returns the arn and fingerprint. The privateKey held by the caller can be used to generate viewer authorization tokens, to grant viewers access to private channels.

  • ListPlaybackKeyPairs — Gets summary information about playback key pairs.

  • DeletePlaybackKeyPair — Deletes a specified authorization key pair. This invalidates future viewer tokens generated using the key pair’s privateKey.

RecordingConfiguration Endpoints

Amazon Web Services Tags Endpoints

  • TagResource — Adds or updates tags for the Amazon Web Services resource with the specified ARN.

  • UntagResource — Removes tags from the resource with the specified ARN.

  • ListTagsForResource — Gets information about Amazon Web Services tags for the specified ARN.

" } diff --git a/botocore/data/ivschat/2020-07-14/endpoint-rule-set-1.json b/botocore/data/ivschat/2020-07-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..1cf7f036 --- /dev/null +++ b/botocore/data/ivschat/2020-07-14/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivschat-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivschat-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ivschat.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ivschat.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ivschat/2020-07-14/examples-1.json b/botocore/data/ivschat/2020-07-14/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/ivschat/2020-07-14/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/ivschat/2020-07-14/service-2.json b/botocore/data/ivschat/2020-07-14/service-2.json index c5357255..0c5b7fbf 100644 --- a/botocore/data/ivschat/2020-07-14/service-2.json +++ b/botocore/data/ivschat/2020-07-14/service-2.json @@ -28,7 +28,26 @@ {"shape":"PendingVerification"}, {"shape":"ValidationException"} ], - "documentation":"

Creates an encrypted token that is used to establish an individual WebSocket connection to a room. The token is valid for one minute, and a connection (session) established with the token is valid for the specified duration.

Encryption keys are owned by Amazon IVS Chat and never used directly by your application.

" + "documentation":"

Creates an encrypted token that is used by a chat participant to establish an individual WebSocket chat connection to a room. When the token is used to connect to chat, the connection is valid for the session duration specified in the request. The token becomes invalid at the token-expiration timestamp included in the response.

Use the capabilities field to permit an end user to send messages or moderate a room.

The attributes field securely attaches structured data to the chat session; the data is included within each message sent by the end user and received by other participants in the room. Common use cases for attributes include passing end-user profile data like an icon, display name, colors, badges, and other display features.

Encryption keys are owned by Amazon IVS Chat and never used directly by your application.

" + }, + "CreateLoggingConfiguration":{ + "name":"CreateLoggingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/CreateLoggingConfiguration", + "responseCode":200 + }, + "input":{"shape":"CreateLoggingConfigurationRequest"}, + "output":{"shape":"CreateLoggingConfigurationResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"PendingVerification"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates a logging configuration that allows clients to store and record sent messages.

" }, "CreateRoom":{ "name":"CreateRoom", @@ -49,6 +68,23 @@ ], "documentation":"

Creates a room that allows clients to connect and pass messages.

" }, + "DeleteLoggingConfiguration":{ + "name":"DeleteLoggingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/DeleteLoggingConfiguration", + "responseCode":204 + }, + "input":{"shape":"DeleteLoggingConfigurationRequest"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"PendingVerification"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes the specified logging configuration.

" + }, "DeleteMessage":{ "name":"DeleteMessage", "http":{ @@ -62,6 +98,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"PendingVerification"}, {"shape":"ValidationException"} ], "documentation":"

Sends an event to a specific room which directs clients to delete a specific message; that is, unrender it from view and delete it from the client’s chat history. This event’s EventName is aws:DELETE_MESSAGE. This replicates the DeleteMessage WebSocket operation in the Amazon IVS Chat Messaging API.

" @@ -95,10 +132,27 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"PendingVerification"}, {"shape":"ValidationException"} ], "documentation":"

Disconnects all connections using a specified user ID from a room. This replicates the DisconnectUser WebSocket operation in the Amazon IVS Chat Messaging API.

" }, + "GetLoggingConfiguration":{ + "name":"GetLoggingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/GetLoggingConfiguration", + "responseCode":200 + }, + "input":{"shape":"GetLoggingConfigurationRequest"}, + "output":{"shape":"GetLoggingConfigurationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Gets the specified logging configuration.

" + }, "GetRoom":{ "name":"GetRoom", "http":{ @@ -115,6 +169,21 @@ ], "documentation":"

Gets the specified room.

" }, + "ListLoggingConfigurations":{ + "name":"ListLoggingConfigurations", + "http":{ + "method":"POST", + "requestUri":"/ListLoggingConfigurations", + "responseCode":200 + }, + "input":{"shape":"ListLoggingConfigurationsRequest"}, + "output":{"shape":"ListLoggingConfigurationsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Gets summary information about all your logging configurations in the AWS region where the API request is processed.

" + }, "ListRooms":{ "name":"ListRooms", "http":{ @@ -160,6 +229,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, + {"shape":"PendingVerification"}, {"shape":"ValidationException"} ], "documentation":"

Sends an event to a room. Use this within your application’s business logic to send events to clients of a room; e.g., to notify clients to change the way the chat UI is rendered.

" @@ -197,6 +267,23 @@ "documentation":"

Removes tags from the resource with the specified ARN.

", "idempotent":true }, + "UpdateLoggingConfiguration":{ + "name":"UpdateLoggingConfiguration", + "http":{ + "method":"POST", + "requestUri":"/UpdateLoggingConfiguration", + "responseCode":200 + }, + "input":{"shape":"UpdateLoggingConfigurationRequest"}, + "output":{"shape":"UpdateLoggingConfigurationResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"PendingVerification"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates a specified logging configuration.

" + }, "UpdateRoom":{ "name":"UpdateRoom", "http":{ @@ -229,6 +316,12 @@ }, "exception":true }, + "BucketName":{ + "type":"string", + "max":63, + "min":3, + "pattern":"^[a-z0-9-.]+$" + }, "ChatToken":{"type":"string"}, "ChatTokenAttributes":{ "type":"map", @@ -247,6 +340,17 @@ "DELETE_MESSAGE" ] }, + "CloudWatchLogsDestinationConfiguration":{ + "type":"structure", + "required":["logGroupName"], + "members":{ + "logGroupName":{ + "shape":"LogGroupName", + "documentation":"

Name of the Amazon Cloudwatch Logs destination where chat activity will be logged.

" + } + }, + "documentation":"

Specifies a CloudWatch Logs location where chat logs will be stored.

" + }, "ConflictException":{ "type":"structure", "required":[ @@ -318,9 +422,72 @@ } } }, + "CreateLoggingConfigurationRequest":{ + "type":"structure", + "required":["destinationConfiguration"], + "members":{ + "destinationConfiguration":{ + "shape":"DestinationConfiguration", + "documentation":"

A complex type that contains a destination configuration for where chat content will be logged. There can be only one type of destination (cloudWatchLogs, firehose, or s3) in a destinationConfiguration.

" + }, + "name":{ + "shape":"LoggingConfigurationName", + "documentation":"

Logging-configuration name. The value does not need to be unique.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

Tags to attach to the resource. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS Chat has no constraints on tags beyond what is documented there.

" + } + } + }, + "CreateLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"LoggingConfigurationArn", + "documentation":"

Logging-configuration ARN, assigned by the system.

" + }, + "createTime":{ + "shape":"Time", + "documentation":"

Time when the logging configuration was created. This is an ISO 8601 timestamp; note that this is returned as a string.

" + }, + "destinationConfiguration":{ + "shape":"DestinationConfiguration", + "documentation":"

A complex type that contains a destination configuration for where chat content will be logged, from the request. There is only one type of destination (cloudWatchLogs, firehose, or s3) in a destinationConfiguration.

" + }, + "id":{ + "shape":"LoggingConfigurationID", + "documentation":"

Logging-configuration ID, generated by the system. This is a relative identifier, the part of the ARN that uniquely identifies the logging configuration.

" + }, + "name":{ + "shape":"LoggingConfigurationName", + "documentation":"

Logging-configuration name, from the request (if specified).

" + }, + "state":{ + "shape":"CreateLoggingConfigurationState", + "documentation":"

The state of the logging configuration. When the state is ACTIVE, the configuration is ready to log chat content.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

Tags attached to the resource, from the request (if specified). Array of maps, each of the form string:string (key:value).

" + }, + "updateTime":{ + "shape":"Time", + "documentation":"

Time of the logging configuration’s last update. This is an ISO 8601 timestamp; note that this is returned as a string.

" + } + } + }, + "CreateLoggingConfigurationState":{ + "type":"string", + "enum":["ACTIVE"] + }, "CreateRoomRequest":{ "type":"structure", "members":{ + "loggingConfigurationIdentifiers":{ + "shape":"LoggingConfigurationIdentifierList", + "documentation":"

Array of logging-configuration identifiers attached to the room.

" + }, "maximumMessageLength":{ "shape":"RoomMaxMessageLength", "documentation":"

Maximum number of characters in a single message. Messages are expected to be UTF-8 encoded and this limit applies specifically to rune/code-point count, not number of bytes. Default: 500.

" @@ -339,7 +506,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Tags to attach to the resource. Array of maps, each of the form string:string (key:value).

" + "documentation":"

Tags to attach to the resource. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS Chat has no constraints beyond what is documented there.

" } } }, @@ -358,13 +525,17 @@ "shape":"RoomID", "documentation":"

Room ID, generated by the system. This is a relative identifier, the part of the ARN that uniquely identifies the room.

" }, + "loggingConfigurationIdentifiers":{ + "shape":"LoggingConfigurationIdentifierList", + "documentation":"

Array of logging configurations attached to the room, from the request (if specified).

" + }, "maximumMessageLength":{ "shape":"RoomMaxMessageLength", - "documentation":"

Maximum number of characters in a single message, from the request.

" + "documentation":"

Maximum number of characters in a single message, from the request (if specified).

" }, "maximumMessageRatePerSecond":{ "shape":"RoomMaxMessageRatePerSecond", - "documentation":"

Maximum number of messages per second that can be sent to the room (by all clients), from the request.

" + "documentation":"

Maximum number of messages per second that can be sent to the room (by all clients), from the request (if specified).

" }, "messageReviewHandler":{ "shape":"MessageReviewHandler", @@ -376,7 +547,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Tags attached to the resource, from the request.

" + "documentation":"

Tags attached to the resource, from the request (if specified).

" }, "updateTime":{ "shape":"Time", @@ -384,6 +555,16 @@ } } }, + "DeleteLoggingConfigurationRequest":{ + "type":"structure", + "required":["identifier"], + "members":{ + "identifier":{ + "shape":"LoggingConfigurationIdentifier", + "documentation":"

Identifier of the logging configuration to be deleted.

" + } + } + }, "DeleteMessageRequest":{ "type":"structure", "required":[ @@ -424,6 +605,31 @@ } } }, + "DeliveryStreamName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z0-9_.-]+$" + }, + "DestinationConfiguration":{ + "type":"structure", + "members":{ + "cloudWatchLogs":{ + "shape":"CloudWatchLogsDestinationConfiguration", + "documentation":"

An Amazon CloudWatch Logs destination configuration where chat activity will be logged.

" + }, + "firehose":{ + "shape":"FirehoseDestinationConfiguration", + "documentation":"

An Amazon Kinesis Data Firehose destination configuration where chat activity will be logged.

" + }, + "s3":{ + "shape":"S3DestinationConfiguration", + "documentation":"

An Amazon S3 destination configuration where chat activity will be logged.

" + } + }, + "documentation":"

A complex type that describes a location where chat logs will be stored. Each member represents the configuration of one log destination. For logging, you define only one type of destination (for CloudWatch Logs, Kinesis Firehose, or S3).

", + "union":true + }, "DisconnectUserRequest":{ "type":"structure", "required":[ @@ -469,6 +675,64 @@ ] }, "FieldName":{"type":"string"}, + "FirehoseDestinationConfiguration":{ + "type":"structure", + "required":["deliveryStreamName"], + "members":{ + "deliveryStreamName":{ + "shape":"DeliveryStreamName", + "documentation":"

Name of the Amazon Kinesis Firehose delivery stream where chat activity will be logged.

" + } + }, + "documentation":"

Specifies a Kinesis Firehose location where chat logs will be stored.

" + }, + "GetLoggingConfigurationRequest":{ + "type":"structure", + "required":["identifier"], + "members":{ + "identifier":{ + "shape":"LoggingConfigurationIdentifier", + "documentation":"

Identifier of the logging configuration to be retrieved.

" + } + } + }, + "GetLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"LoggingConfigurationArn", + "documentation":"

Logging-configuration ARN, from the request (if identifier was an ARN).

" + }, + "createTime":{ + "shape":"Time", + "documentation":"

Time when the logging configuration was created. This is an ISO 8601 timestamp; note that this is returned as a string.

" + }, + "destinationConfiguration":{ + "shape":"DestinationConfiguration", + "documentation":"

A complex type that contains a destination configuration for where chat content will be logged. There is only one type of destination (cloudWatchLogs, firehose, or s3) in a destinationConfiguration.

" + }, + "id":{ + "shape":"LoggingConfigurationID", + "documentation":"

Logging-configuration ID, generated by the system. This is a relative identifier, the part of the ARN that uniquely identifies the logging configuration.

" + }, + "name":{ + "shape":"LoggingConfigurationName", + "documentation":"

Logging-configuration name. This value does not need to be unique.

" + }, + "state":{ + "shape":"LoggingConfigurationState", + "documentation":"

The state of the logging configuration. When the state is ACTIVE, the configuration is ready to log chat content.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

Tags attached to the resource. Array of maps, each of the form string:string (key:value).

" + }, + "updateTime":{ + "shape":"Time", + "documentation":"

Time of the logging configuration’s last update. This is an ISO 8601 timestamp; note that this is returned as a string.

" + } + } + }, "GetRoomRequest":{ "type":"structure", "required":["identifier"], @@ -494,6 +758,10 @@ "shape":"RoomID", "documentation":"

Room ID, generated by the system. This is a relative identifier, the part of the ARN that uniquely identifies the room.

" }, + "loggingConfigurationIdentifiers":{ + "shape":"LoggingConfigurationIdentifierList", + "documentation":"

Array of logging configurations attached to the room.

" + }, "maximumMessageLength":{ "shape":"RoomMaxMessageLength", "documentation":"

Maximum number of characters in a single message. Messages are expected to be UTF-8 encoded and this limit applies specifically to rune/code-point count, not number of bytes. Default: 500.

" @@ -544,9 +812,40 @@ "pattern":"^$|^arn:aws:lambda:[a-z0-9-]+:[0-9]{12}:function:.+" }, "Limit":{"type":"integer"}, + "ListLoggingConfigurationsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxLoggingConfigurationResults", + "documentation":"

Maximum number of logging configurations to return. Default: 50.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The first logging configurations to retrieve. This is used for pagination; see the nextToken response field.

" + } + } + }, + "ListLoggingConfigurationsResponse":{ + "type":"structure", + "required":["loggingConfigurations"], + "members":{ + "loggingConfigurations":{ + "shape":"LoggingConfigurationList", + "documentation":"

List of the matching logging configurations (summary information only). There is only one type of destination (cloudWatchLogs, firehose, or s3) in a destinationConfiguration.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

If there are more logging configurations than maxResults, use nextToken in the request to get the next set.

" + } + } + }, "ListRoomsRequest":{ "type":"structure", "members":{ + "loggingConfigurationIdentifier":{ + "shape":"LoggingConfigurationIdentifier", + "documentation":"

Logging-configuration identifier.

" + }, "maxResults":{ "shape":"MaxRoomResults", "documentation":"

Maximum number of rooms to return. Default: 50.

" @@ -597,10 +896,105 @@ "members":{ "tags":{ "shape":"Tags", - "documentation":"

Tags to attach to the resource. Array of maps, each of the form string:string (key:value).

" + "documentation":"

Tags attached to the resource. Array of maps, each of the form string:string (key:value).

" } } }, + "LogGroupName":{ + "type":"string", + "max":512, + "min":1, + "pattern":"^[\\.\\-_/#A-Za-z0-9]+$" + }, + "LoggingConfigurationArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:aws:ivschat:[a-z0-9-]+:[0-9]+:logging-configuration/[a-zA-Z0-9-]+$" + }, + "LoggingConfigurationID":{ + "type":"string", + "max":12, + "min":12, + "pattern":"^[a-zA-Z0-9]+$" + }, + "LoggingConfigurationIdentifier":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:aws:ivschat:[a-z0-9-]+:[0-9]+:logging-configuration/[a-zA-Z0-9-]+$" + }, + "LoggingConfigurationIdentifierList":{ + "type":"list", + "member":{"shape":"LoggingConfigurationIdentifier"}, + "max":3, + "min":0 + }, + "LoggingConfigurationList":{ + "type":"list", + "member":{"shape":"LoggingConfigurationSummary"} + }, + "LoggingConfigurationName":{ + "type":"string", + "max":128, + "min":0, + "pattern":"^[a-zA-Z0-9-_]*$" + }, + "LoggingConfigurationState":{ + "type":"string", + "enum":[ + "CREATING", + "CREATE_FAILED", + "DELETING", + "DELETE_FAILED", + "UPDATING", + "UPDATE_FAILED", + "ACTIVE" + ] + }, + "LoggingConfigurationSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"LoggingConfigurationArn", + "documentation":"

Logging-configuration ARN.

" + }, + "createTime":{ + "shape":"Time", + "documentation":"

Time when the logging configuration was created. This is an ISO 8601 timestamp; note that this is returned as a string.

" + }, + "destinationConfiguration":{ + "shape":"DestinationConfiguration", + "documentation":"

A complex type that contains a destination configuration for where chat content will be logged.

" + }, + "id":{ + "shape":"LoggingConfigurationID", + "documentation":"

Logging-configuration ID, generated by the system. This is a relative identifier, the part of the ARN that uniquely identifies the room.

" + }, + "name":{ + "shape":"LoggingConfigurationName", + "documentation":"

Logging-configuration name. The value does not need to be unique.

" + }, + "state":{ + "shape":"LoggingConfigurationState", + "documentation":"

The state of the logging configuration. When this is ACTIVE, the configuration is ready for logging chat content.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

Tags to attach to the resource. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS Chat has no constraints on tags beyond what is documented there.

" + }, + "updateTime":{ + "shape":"Time", + "documentation":"

Time of the logging configuration’s last update. This is an ISO 8601 timestamp; note that this is returned as a string.

" + } + }, + "documentation":"

Summary information about a logging configuration.

" + }, + "MaxLoggingConfigurationResults":{ + "type":"integer", + "max":50, + "min":1 + }, "MaxRoomResults":{ "type":"integer", "max":50, @@ -741,6 +1135,10 @@ "shape":"RoomID", "documentation":"

Room ID, generated by the system. This is a relative identifier, the part of the ARN that uniquely identifies the room.

" }, + "loggingConfigurationIdentifiers":{ + "shape":"LoggingConfigurationIdentifierList", + "documentation":"

List of logging-configuration identifiers attached to the room.

" + }, "messageReviewHandler":{ "shape":"MessageReviewHandler", "documentation":"

Configuration information for optional review of messages.

" @@ -751,7 +1149,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Tags attached to the resource.

" + "documentation":"

Tags attached to the resource. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS Chat has no constraints beyond what is documented there.

" }, "updateTime":{ "shape":"Time", @@ -760,6 +1158,17 @@ }, "documentation":"

Summary information about a room.

" }, + "S3DestinationConfiguration":{ + "type":"structure", + "required":["bucketName"], + "members":{ + "bucketName":{ + "shape":"BucketName", + "documentation":"

Name of the Amazon S3 bucket where chat activity will be logged.

" + } + }, + "documentation":"

Specifies an S3 location where chat logs will be stored.

" + }, "SendEventRequest":{ "type":"structure", "required":[ @@ -852,7 +1261,7 @@ }, "tags":{ "shape":"Tags", - "documentation":"

Array of tags to be added or updated.

" + "documentation":"

Array of tags to be added or updated. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS Chat has no constraints beyond what is documented there.

" } } }, @@ -922,7 +1331,7 @@ }, "tagKeys":{ "shape":"TagKeyList", - "documentation":"

Array of tags to be removed.

", + "documentation":"

Array of tags to be removed. Array of maps, each of the form string:string (key:value). See Tagging AWS Resources for details, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS Chat has no constraints beyond what is documented there.

", "location":"querystring", "locationName":"tagKeys" } @@ -933,6 +1342,65 @@ "members":{ } }, + "UpdateLoggingConfigurationRequest":{ + "type":"structure", + "required":["identifier"], + "members":{ + "destinationConfiguration":{ + "shape":"DestinationConfiguration", + "documentation":"

A complex type that contains a destination configuration for where chat content will be logged. There can be only one type of destination (cloudWatchLogs, firehose, or s3) in a destinationConfiguration.

" + }, + "identifier":{ + "shape":"LoggingConfigurationIdentifier", + "documentation":"

Identifier of the logging configuration to be updated.

" + }, + "name":{ + "shape":"LoggingConfigurationName", + "documentation":"

Logging-configuration name. The value does not need to be unique.

" + } + } + }, + "UpdateLoggingConfigurationResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"LoggingConfigurationArn", + "documentation":"

Logging-configuration ARN, from the request (if identifier was an ARN).

" + }, + "createTime":{ + "shape":"Time", + "documentation":"

Time when the logging configuration was created. This is an ISO 8601 timestamp; note that this is returned as a string.

" + }, + "destinationConfiguration":{ + "shape":"DestinationConfiguration", + "documentation":"

A complex type that contains a destination configuration for where chat content will be logged, from the request. There is only one type of destination (cloudWatchLogs, firehose, or s3) in a destinationConfiguration.

" + }, + "id":{ + "shape":"LoggingConfigurationID", + "documentation":"

Logging-configuration ID, generated by the system. This is a relative identifier, the part of the ARN that uniquely identifies the room.

" + }, + "name":{ + "shape":"LoggingConfigurationName", + "documentation":"

Logging-configuration name, from the request (if specified).

" + }, + "state":{ + "shape":"UpdateLoggingConfigurationState", + "documentation":"

The state of the logging configuration. When the state is ACTIVE, the configuration is ready to log chat content.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

Tags attached to the resource. Array of maps, each of the form string:string (key:value).

" + }, + "updateTime":{ + "shape":"Time", + "documentation":"

Time of the logging configuration’s last update. This is an ISO 8601 timestamp; note that this is returned as a string.

" + } + } + }, + "UpdateLoggingConfigurationState":{ + "type":"string", + "enum":["ACTIVE"] + }, "UpdateRoomRequest":{ "type":"structure", "required":["identifier"], @@ -941,6 +1409,10 @@ "shape":"RoomIdentifier", "documentation":"

Identifier of the room to be updated. Currently this must be an ARN.

" }, + "loggingConfigurationIdentifiers":{ + "shape":"LoggingConfigurationIdentifierList", + "documentation":"

Array of logging-configuration identifiers attached to the room.

" + }, "maximumMessageLength":{ "shape":"RoomMaxMessageLength", "documentation":"

The maximum number of characters in a single message. Messages are expected to be UTF-8 encoded and this limit applies specifically to rune/code-point count, not number of bytes. Default: 500.

" @@ -974,13 +1446,17 @@ "shape":"RoomID", "documentation":"

Room ID, generated by the system. This is a relative identifier, the part of the ARN that uniquely identifies the room.

" }, + "loggingConfigurationIdentifiers":{ + "shape":"LoggingConfigurationIdentifierList", + "documentation":"

Array of logging configurations attached to the room, from the request (if specified).

" + }, "maximumMessageLength":{ "shape":"RoomMaxMessageLength", - "documentation":"

Maximum number of characters in a single message, from the request.

" + "documentation":"

Maximum number of characters in a single message, from the request (if specified).

" }, "maximumMessageRatePerSecond":{ "shape":"RoomMaxMessageRatePerSecond", - "documentation":"

Maximum number of messages per second that can be sent to the room (by all clients), from the request.

" + "documentation":"

Maximum number of messages per second that can be sent to the room (by all clients), from the request (if specified).

" }, "messageReviewHandler":{ "shape":"MessageReviewHandler", @@ -988,11 +1464,11 @@ }, "name":{ "shape":"RoomName", - "documentation":"

Room name, from the request.

" + "documentation":"

Room name, from the request (if specified).

" }, "tags":{ "shape":"Tags", - "documentation":"

Tags attached to the resource.

" + "documentation":"

Tags attached to the resource. Array of maps, each of the form string:string (key:value).

" }, "updateTime":{ "shape":"Time", @@ -1060,5 +1536,5 @@ ] } }, - "documentation":"

Introduction

The Amazon IVS Chat control-plane API enables you to create and manage Amazon IVS Chat resources. You also need to integrate with the Amazon IVS Chat Messaging API, to enable users to interact with chat rooms in real time.

The API is an AWS regional service. For a list of supported regions and Amazon IVS Chat HTTPS service endpoints, see the Amazon IVS Chat information on the Amazon IVS page in the AWS General Reference.

Notes on terminology:

  • You create service applications using the Amazon IVS Chat API. We refer to these as applications.

  • You create front-end client applications (browser and Android/iOS apps) using the Amazon IVS Chat Messaging API. We refer to these as clients.

Resources

The following resource is part of Amazon IVS Chat:

  • Room — The central Amazon IVS Chat resource through which clients connect to and exchange chat messages. See the Room endpoints for more information.

API Access Security

Your Amazon IVS Chat applications (service applications and clients) must be authenticated and authorized to access Amazon IVS Chat resources. Note the differences between these concepts:

  • Authentication is about verifying identity. Requests to the Amazon IVS Chat API must be signed to verify your identity.

  • Authorization is about granting permissions. Your IAM roles need to have permissions for Amazon IVS Chat API requests.

Users (viewers) connect to a room using secure access tokens that you create using the CreateChatToken endpoint through the AWS SDK. You call CreateChatToken for every user’s chat session, passing identity and authorization information about the user.

Signing API Requests

HTTP API requests must be signed with an AWS SigV4 signature using your AWS security credentials. The AWS Command Line Interface (CLI) and the AWS SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS Chat HTTP API directly, it’s your responsibility to sign the requests.

You generate a signature using valid AWS credentials for an IAM role that has permission to perform the requested action. For example, DeleteMessage requests must be made using an IAM role that has the ivschat:DeleteMessage permission.

For more information:

Messaging Endpoints

  • DeleteMessage — Sends an event to a specific room which directs clients to delete a specific message; that is, unrender it from view and delete it from the client’s chat history. This event’s EventName is aws:DELETE_MESSAGE. This replicates the DeleteMessage WebSocket operation in the Amazon IVS Chat Messaging API.

  • DisconnectUser — Disconnects all connections using a specified user ID from a room. This replicates the DisconnectUser WebSocket operation in the Amazon IVS Chat Messaging API.

  • SendEvent — Sends an event to a room. Use this within your application’s business logic to send events to clients of a room; e.g., to notify clients to change the way the chat UI is rendered.

Chat Token Endpoint

  • CreateChatToken — Creates an encrypted token that is used to establish an individual WebSocket connection to a room. The token is valid for one minute, and a connection (session) established with the token is valid for the specified duration.

Room Endpoints

  • CreateRoom — Creates a room that allows clients to connect and pass messages.

  • DeleteRoom — Deletes the specified room.

  • GetRoom — Gets the specified room.

  • ListRooms — Gets summary information about all your rooms in the AWS region where the API request is processed.

  • UpdateRoom — Updates a room’s configuration.

Tags Endpoints

  • ListTagsForResource — Gets information about AWS tags for the specified ARN.

  • TagResource — Adds or updates tags for the AWS resource with the specified ARN.

  • UntagResource — Removes tags from the resource with the specified ARN.

All the above are HTTP operations. There is a separate messaging API for managing Chat resources; see the Amazon IVS Chat Messaging API Reference.

" + "documentation":"

Introduction

The Amazon IVS Chat control-plane API enables you to create and manage Amazon IVS Chat resources. You also need to integrate with the Amazon IVS Chat Messaging API, to enable users to interact with chat rooms in real time.

The API is an AWS regional service. For a list of supported regions and Amazon IVS Chat HTTPS service endpoints, see the Amazon IVS Chat information on the Amazon IVS page in the AWS General Reference.

Notes on terminology:

  • You create service applications using the Amazon IVS Chat API. We refer to these as applications.

  • You create front-end client applications (browser and Android/iOS apps) using the Amazon IVS Chat Messaging API. We refer to these as clients.

Resources

The following resources are part of Amazon IVS Chat:

  • LoggingConfiguration — A configuration that allows customers to store and record sent messages in a chat room. See the Logging Configuration endpoints for more information.

  • Room — The central Amazon IVS Chat resource through which clients connect to and exchange chat messages. See the Room endpoints for more information.

Tagging

A tag is a metadata label that you assign to an AWS resource. A tag comprises a key and a value, both set by you. For example, you might set a tag as topic:nature to label a particular video category. See Tagging AWS Resources for more information, including restrictions that apply to tags and \"Tag naming limits and requirements\"; Amazon IVS Chat has no service-specific constraints beyond what is documented there.

Tags can help you identify and organize your AWS resources. For example, you can use the same tag for different resources to indicate that they are related. You can also use tags to manage access (see Access Tags).

The Amazon IVS Chat API has these tag-related endpoints: TagResource, UntagResource, and ListTagsForResource. The following resource supports tagging: Room.

At most 50 tags can be applied to a resource.

API Access Security

Your Amazon IVS Chat applications (service applications and clients) must be authenticated and authorized to access Amazon IVS Chat resources. Note the differences between these concepts:

  • Authentication is about verifying identity. Requests to the Amazon IVS Chat API must be signed to verify your identity.

  • Authorization is about granting permissions. Your IAM roles need to have permissions for Amazon IVS Chat API requests.

Users (viewers) connect to a room using secure access tokens that you create using the CreateChatToken endpoint through the AWS SDK. You call CreateChatToken for every user’s chat session, passing identity and authorization information about the user.

Signing API Requests

HTTP API requests must be signed with an AWS SigV4 signature using your AWS security credentials. The AWS Command Line Interface (CLI) and the AWS SDKs take care of signing the underlying API calls for you. However, if your application calls the Amazon IVS Chat HTTP API directly, it’s your responsibility to sign the requests.

You generate a signature using valid AWS credentials for an IAM role that has permission to perform the requested action. For example, DeleteMessage requests must be made using an IAM role that has the ivschat:DeleteMessage permission.

For more information:

Amazon Resource Names (ARNs)

ARNs uniquely identify AWS resources. An ARN is required when you need to specify a resource unambiguously across all of AWS, such as in IAM policies and API calls. For more information, see Amazon Resource Names in the AWS General Reference.

Messaging Endpoints

  • DeleteMessage — Sends an event to a specific room which directs clients to delete a specific message; that is, unrender it from view and delete it from the client’s chat history. This event’s EventName is aws:DELETE_MESSAGE. This replicates the DeleteMessage WebSocket operation in the Amazon IVS Chat Messaging API.

  • DisconnectUser — Disconnects all connections using a specified user ID from a room. This replicates the DisconnectUser WebSocket operation in the Amazon IVS Chat Messaging API.

  • SendEvent — Sends an event to a room. Use this within your application’s business logic to send events to clients of a room; e.g., to notify clients to change the way the chat UI is rendered.

Chat Token Endpoint

  • CreateChatToken — Creates an encrypted token that is used by a chat participant to establish an individual WebSocket chat connection to a room. When the token is used to connect to chat, the connection is valid for the session duration specified in the request. The token becomes invalid at the token-expiration timestamp included in the response.

Room Endpoints

  • CreateRoom — Creates a room that allows clients to connect and pass messages.

  • DeleteRoom — Deletes the specified room.

  • GetRoom — Gets the specified room.

  • ListRooms — Gets summary information about all your rooms in the AWS region where the API request is processed.

  • UpdateRoom — Updates a room’s configuration.

Logging Configuration Endpoints

Tags Endpoints

  • ListTagsForResource — Gets information about AWS tags for the specified ARN.

  • TagResource — Adds or updates tags for the AWS resource with the specified ARN.

  • UntagResource — Removes tags from the resource with the specified ARN.

All the above are HTTP operations. There is a separate messaging API for managing Chat resources; see the Amazon IVS Chat Messaging API Reference.

" } diff --git a/botocore/data/kafka/2018-11-14/endpoint-rule-set-1.json b/botocore/data/kafka/2018-11-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..4a40912e --- /dev/null +++ b/botocore/data/kafka/2018-11-14/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kafka-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kafka-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kafka.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kafka.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kafka/2018-11-14/service-2.json b/botocore/data/kafka/2018-11-14/service-2.json index 9f929f44..5f613ed5 100644 --- a/botocore/data/kafka/2018-11-14/service-2.json +++ b/botocore/data/kafka/2018-11-14/service-2.json @@ -1352,6 +1352,44 @@ "documentation" : "\n

The request throughput limit was exceeded.

\n " } ], "documentation" : "\n

Updates the security settings for the cluster. You can use this operation to specify encryption and authentication on existing clusters.

\n " + }, + "UpdateStorage" : { + "name" : "UpdateStorage", + "http" : { + "method" : "PUT", + "requestUri" : "/v1/clusters/{clusterArn}/storage", + "responseCode" : 200 + }, + "input" : { + "shape" : "UpdateStorageRequest" + }, + "output" : { + "shape" : "UpdateStorageResponse", + "documentation" : "HTTP Status Code 200: OK." + }, + "errors" : [ { + "shape" : "BadRequestException", + "documentation" : "HTTP Status Code 400: Bad request due to incorrect input. Correct your request and then retry it." + }, { + "shape" : "UnauthorizedException", + "documentation" : "HTTP Status Code 401: Unauthorized request. The provided credentials couldn't be validated." + }, { + "shape" : "InternalServerErrorException", + "documentation" : "HTTP Status Code 500: Unexpected internal server error. Retrying your request might resolve the issue." + }, { + "shape" : "ForbiddenException", + "documentation" : "HTTP Status Code 403: Access forbidden. Correct your credentials and then retry your request." + }, { + "shape" : "NotFoundException", + "documentation" : "HTTP Status Code 404: Resource not found due to incorrect input. Correct your request and then retry it." + }, { + "shape" : "ServiceUnavailableException", + "documentation" : "HTTP Status Code 503: Service Unavailable. Retrying your request in some time might resolve the issue." + }, { + "shape" : "TooManyRequestsException", + "documentation" : "HTTP Status Code 429: Limit exceeded. Resource limit reached." + } ], + "documentation" : "Updates cluster broker volume size (or) sets cluster storage mode to TIERED." } }, "shapes": { @@ -1426,7 +1464,7 @@ "ProvisionedThroughput" : { "shape" : "ProvisionedThroughput", "locationName" : "provisionedThroughput", - "documentation" : "EBS volume provisioned throughput information." + "documentation" : "\n

EBS volume provisioned throughput information.

\n " }, "VolumeSizeGB": { "shape": "__integer", @@ -1467,7 +1505,7 @@ "ClientSubnets": { "shape": "__listOf__string", "locationName": "clientSubnets", - "documentation": "\n

The list of subnets to connect to in the client virtual private cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client applications use elastic network interfaces to produce and consume data. Client subnets can't be in Availability Zone us-east-1e.

\n " + "documentation": "\n

The list of subnets to connect to in the client virtual private cloud (VPC). AWS creates elastic network interfaces inside these subnets. Client applications use elastic network interfaces to produce and consume data. Client subnets can't occupy the Availability Zone with ID use use1-az3.

\n " }, "InstanceType": { "shape": "__stringMin5Max32", @@ -1698,6 +1736,11 @@ "shape" : "__string", "locationName" : "zookeeperConnectStringTls", "documentation" : "\n

The connection string to use to connect to zookeeper cluster on Tls port.

\n " + }, + "StorageMode" : { + "shape" : "StorageMode", + "locationName" : "storageMode", + "documentation" : "\n

This controls storage mode for supported storage tiers.

\n " } }, "documentation": "\n

Returns information about a cluster.

\n " @@ -1921,6 +1964,11 @@ "shape": "__integerMin1Max15", "locationName": "numberOfBrokerNodes", "documentation": "\n

The number of broker nodes in the cluster.

\n " + }, + "StorageMode" : { + "shape" : "StorageMode", + "locationName" : "storageMode", + "documentation" : "\n

This controls storage mode for supported storage tiers.

\n " } }, "required": [ @@ -1982,6 +2030,11 @@ "shape" : "__string", "locationName" : "zookeeperConnectStringTls", "documentation" : "\n

The connection string to use to connect to the Apache ZooKeeper cluster on a TLS port.

\n " + }, + "StorageMode" : { + "shape" : "StorageMode", + "locationName" : "storageMode", + "documentation" : "\n

This controls storage mode for supported storage tiers.

\n " } }, "required": [ @@ -2281,6 +2334,11 @@ "shape": "__mapOf__string", "locationName": "tags", "documentation": "\n

Create tags when creating the cluster.

\n " + }, + "StorageMode" : { + "shape" : "StorageMode", + "locationName" : "storageMode", + "documentation" : "\n

This controls storage mode for supported storage tiers.

\n " } }, "required": [ @@ -2674,7 +2732,7 @@ "ProvisionedThroughput" : { "shape" : "ProvisionedThroughput", "locationName" : "provisionedThroughput", - "documentation" : "EBS volume provisioned throughput information." + "documentation" : "\n

EBS volume provisioned throughput information.

\n " }, "VolumeSize": { "shape": "__integerMin1Max16384", @@ -3323,6 +3381,11 @@ "shape" : "ConnectivityInfo", "locationName" : "connectivityInfo", "documentation" : "\n

Information about the broker access configuration.

\n " + }, + "StorageMode" : { + "shape" : "StorageMode", + "locationName" : "storageMode", + "documentation" : "\n

This controls storage mode for supported storage tiers.

\n " } }, "documentation": "\n

Information about cluster attributes that can be updated via update APIs.

\n " @@ -3437,15 +3500,15 @@ "Enabled" : { "shape" : "__boolean", "locationName" : "enabled", - "documentation" : "Provisioned throughput is enabled or not." + "documentation" : "\n

Provisioned throughput is enabled or not.

\n " }, "VolumeThroughput" : { "shape" : "__integer", "locationName" : "volumeThroughput", - "documentation" : "Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second." + "documentation" : "\n

Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second.

\n " } }, - "documentation" : "Contains information about provisioned throughput for EBS storage volumes attached to kafka broker nodes." + "documentation" : "\n

Contains information about provisioned throughput for EBS storage volumes attached to kafka broker nodes.

\n " }, "PublicAccess" : { "type" : "structure", @@ -3665,6 +3728,11 @@ }, "documentation": "\n

Contains information about storage volumes attached to MSK broker nodes.

\n " }, + "StorageMode" : { + "type" : "string", + "documentation" : "Controls storage mode for various supported storage tiers.", + "enum" : [ "LOCAL", "TIERED" ] + }, "TagResourceRequest": { "type": "structure", "members": { @@ -4088,6 +4156,54 @@ } } }, + "UpdateStorageRequest" : { + "type" : "structure", + "members" : { + "ClusterArn" : { + "shape" : "__string", + "location" : "uri", + "locationName" : "clusterArn", + "documentation" : "\n

The Amazon Resource Name (ARN) of the cluster to be updated.

\n " + }, + "CurrentVersion" : { + "shape" : "__string", + "locationName" : "currentVersion", + "documentation" : "\n

The version of cluster to update from. A successful operation will then generate a new version.

\n " + }, + "ProvisionedThroughput" : { + "shape" : "ProvisionedThroughput", + "locationName" : "provisionedThroughput", + "documentation" : "\n

EBS volume provisioned throughput information.

\n " + }, + "StorageMode" : { + "shape" : "StorageMode", + "locationName" : "storageMode", + "documentation" : "\n

Controls storage mode for supported storage tiers.

\n " + }, + "VolumeSizeGB" : { + "shape" : "__integer", + "locationName" : "volumeSizeGB", + "documentation" : "\n

size of the EBS volume to update.

\n " + } + }, + "documentation" : "\n

Request object for UpdateStorage api. Its used to update the storage attributes for the cluster.

\n ", + "required" : [ "ClusterArn", "CurrentVersion" ] + }, + "UpdateStorageResponse" : { + "type" : "structure", + "members" : { + "ClusterArn" : { + "shape" : "__string", + "locationName" : "clusterArn", + "documentation" : "\n

The Amazon Resource Name (ARN) of the cluster.

\n " + }, + "ClusterOperationArn" : { + "shape" : "__string", + "locationName" : "clusterOperationArn", + "documentation" : "\n

The Amazon Resource Name (ARN) of the cluster operation.

\n " + } + } + }, "UpdateConfigurationRequest": { "type": "structure", "members": { diff --git a/botocore/data/kafkaconnect/2021-09-14/endpoint-rule-set-1.json b/botocore/data/kafkaconnect/2021-09-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..fe885862 --- /dev/null +++ b/botocore/data/kafkaconnect/2021-09-14/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kafkaconnect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kafkaconnect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kafkaconnect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kafkaconnect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kafkaconnect/2021-09-14/examples-1.json b/botocore/data/kafkaconnect/2021-09-14/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/kafkaconnect/2021-09-14/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/kendra/2019-02-03/endpoint-rule-set-1.json b/botocore/data/kendra/2019-02-03/endpoint-rule-set-1.json new file mode 100644 index 00000000..6ec18879 --- /dev/null +++ b/botocore/data/kendra/2019-02-03/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kendra-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kendra-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kendra.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kendra.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kendra/2019-02-03/examples-1.json b/botocore/data/kendra/2019-02-03/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/kendra/2019-02-03/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/kendra/2019-02-03/service-2.json b/botocore/data/kendra/2019-02-03/service-2.json index 4e8283cc..92cb4e52 100644 --- a/botocore/data/kendra/2019-02-03/service-2.json +++ b/botocore/data/kendra/2019-02-03/service-2.json @@ -30,7 +30,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Grants users or groups in your Amazon Web Services SSO identity source access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" + "documentation":"

Grants users or groups in your IAM Identity Center identity source access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" }, "AssociatePersonasToEntities":{ "name":"AssociatePersonasToEntities", @@ -48,7 +48,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Defines the specific permissions of users or groups in your Amazon Web Services SSO identity source with access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" + "documentation":"

Defines the specific permissions of users or groups in your IAM Identity Center identity source with access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" }, "BatchDeleteDocument":{ "name":"BatchDeleteDocument", @@ -103,7 +103,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"} ], - "documentation":"

Adds one or more documents to an index.

The BatchPutDocument API enables you to ingest inline documents or a set of documents stored in an Amazon S3 bucket. Use this API to ingest your text and unstructured text into an index, add custom attributes to the documents, and to attach an access control list to the documents added to the index.

The documents are indexed asynchronously. You can see the progress of the batch using Amazon Web Services CloudWatch. Any error messages related to processing the batch are sent to your Amazon Web Services CloudWatch log.

" + "documentation":"

Adds one or more documents to an index.

The BatchPutDocument API enables you to ingest inline documents or a set of documents stored in an Amazon S3 bucket. Use this API to ingest your text and unstructured text into an index, add custom attributes to the documents, and to attach an access control list to the documents added to the index.

The documents are indexed asynchronously. You can see the progress of the batch using Amazon Web Services CloudWatch. Any error messages related to processing the batch are sent to your Amazon Web Services CloudWatch log.

For an example of ingesting inline documents using Python and Java SDKs, see Adding files directly to an index.

" }, "ClearQuerySuggestions":{ "name":"ClearQuerySuggestions", @@ -122,6 +122,25 @@ ], "documentation":"

Clears existing query suggestions from an index.

This deletes existing suggestions only, not the queries in the query log. After you clear suggestions, Amazon Kendra learns new suggestions based on new queries added to the query log from the time you cleared suggestions. If you do not see any new suggestions, then please allow Amazon Kendra to collect enough queries to learn new suggestions.

ClearQuerySuggestions is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" }, + "CreateAccessControlConfiguration":{ + "name":"CreateAccessControlConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAccessControlConfigurationRequest"}, + "output":{"shape":"CreateAccessControlConfigurationResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates an access configuration for your documents. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

You can use this to re-configure your existing document level access control without indexing all of your documents again. For example, your index contains top-secret company documents that only certain employees or users should access. One of these users leaves the company or switches to a team that should be blocked from accessing top-secret documents. The user still has access to top-secret documents because the user had access when your documents were previously indexed. You can create a specific access control configuration for the user with deny access. You can later update the access control configuration to allow access if the user returns to the company and re-joins the 'top-secret' team. You can re-configure access control for your documents as circumstances change.

To apply your access control configuration to certain documents, you call the BatchPutDocument API with the AccessControlConfigurationId included in the Document object. If you use an S3 bucket as a data source, you update the .metadata.json with the AccessControlConfigurationId and synchronize your data source. Amazon Kendra currently only supports access control configuration for S3 data sources and documents indexed using the BatchPutDocument API.

" + }, "CreateDataSource":{ "name":"CreateDataSource", "http":{ @@ -140,7 +159,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a data source that you want to use with an Amazon Kendra index.

You specify a name, data source connector type and description for your data source. You also specify configuration information for the data source connector.

CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.

Amazon S3 and custom data sources are the only supported data sources in the Amazon Web Services GovCloud (US-West) region.

" + "documentation":"

Creates a data source connector that you want to use with an Amazon Kendra index.

You specify a name, data source connector type and description for your data source. You also specify configuration information for the data source connector.

CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.

Amazon S3 and custom data sources are the only supported data sources in the Amazon Web Services GovCloud (US-West) region.

For an example of creating an index and data source using the Python SDK, see Getting started with Python SDK. For an example of creating an index and data source using the Java SDK, see Getting started with Java SDK.

" }, "CreateExperience":{ "name":"CreateExperience", @@ -159,7 +178,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" + "documentation":"

Creates an Amazon Kendra experience such as a search application. For more information on creating a search application experience, including using the Python and Java SDKs, see Building a search experience with no code.

" }, "CreateFaq":{ "name":"CreateFaq", @@ -178,7 +197,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates an new set of frequently asked question (FAQ) questions and answers.

Adding FAQs to an index is an asynchronous operation.

" + "documentation":"

Creates an new set of frequently asked question (FAQ) questions and answers.

Adding FAQs to an index is an asynchronous operation.

For an example of adding an FAQ to an index using Python and Java SDKs, see Using your FAQ file.

" }, "CreateIndex":{ "name":"CreateIndex", @@ -197,7 +216,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a new Amazon Kendra index. Index creation is an asynchronous API. To determine if index creation has completed, check the Status field returned from a call to DescribeIndex. The Status field is set to ACTIVE when the index is ready to use.

Once the index is active you can index your documents using the BatchPutDocument API or using one of the supported data sources.

" + "documentation":"

Creates an Amazon Kendra index. Index creation is an asynchronous API. To determine if index creation has completed, check the Status field returned from a call to DescribeIndex. The Status field is set to ACTIVE when the index is ready to use.

Once the index is active you can index your documents using the BatchPutDocument API or using one of the supported data sources.

For an example of creating an index and data source using the Python SDK, see Getting started with Python SDK. For an example of creating an index and data source using the Java SDK, see Getting started with Java SDK.

" }, "CreateQuerySuggestionsBlockList":{ "name":"CreateQuerySuggestionsBlockList", @@ -216,7 +235,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a block list to exlcude certain queries from suggestions.

Any query that contains words or phrases specified in the block list is blocked or filtered out from being shown as a suggestion.

You need to provide the file location of your block list text file in your S3 bucket. In your text file, enter each block word or phrase on a separate line.

For information on the current quota limits for block lists, see Quotas for Amazon Kendra.

CreateQuerySuggestionsBlockList is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" + "documentation":"

Creates a block list to exlcude certain queries from suggestions.

Any query that contains words or phrases specified in the block list is blocked or filtered out from being shown as a suggestion.

You need to provide the file location of your block list text file in your S3 bucket. In your text file, enter each block word or phrase on a separate line.

For information on the current quota limits for block lists, see Quotas for Amazon Kendra.

CreateQuerySuggestionsBlockList is currently not supported in the Amazon Web Services GovCloud (US-West) region.

For an example of creating a block list for query suggestions using the Python SDK, see Query suggestions block list.

" }, "CreateThesaurus":{ "name":"CreateThesaurus", @@ -235,7 +254,25 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a thesaurus for an index. The thesaurus contains a list of synonyms in Solr format.

" + "documentation":"

Creates a thesaurus for an index. The thesaurus contains a list of synonyms in Solr format.

For an example of adding a thesaurus file to an index, see Adding custom synonyms to an index.

" + }, + "DeleteAccessControlConfiguration":{ + "name":"DeleteAccessControlConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAccessControlConfigurationRequest"}, + "output":{"shape":"DeleteAccessControlConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes an access control configuration that you created for your documents in an index. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

" }, "DeleteDataSource":{ "name":"DeleteDataSource", @@ -252,7 +289,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Deletes an Amazon Kendra data source. An exception is not thrown if the data source is already being deleted. While the data source is being deleted, the Status field returned by a call to the DescribeDataSource API is set to DELETING. For more information, see Deleting Data Sources.

" + "documentation":"

Deletes an Amazon Kendra data source connector. An exception is not thrown if the data source is already being deleted. While the data source is being deleted, the Status field returned by a call to the DescribeDataSource API is set to DELETING. For more information, see Deleting Data Sources.

" }, "DeleteExperience":{ "name":"DeleteExperience", @@ -357,6 +394,23 @@ ], "documentation":"

Deletes an existing Amazon Kendra thesaurus.

" }, + "DescribeAccessControlConfiguration":{ + "name":"DescribeAccessControlConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAccessControlConfigurationRequest"}, + "output":{"shape":"DescribeAccessControlConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets information about an access control configuration that you created for your documents in an index. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

" + }, "DescribeDataSource":{ "name":"DescribeDataSource", "http":{ @@ -372,7 +426,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Gets information about an Amazon Kendra data source.

" + "documentation":"

Gets information about an Amazon Kendra data source connector.

" }, "DescribeExperience":{ "name":"DescribeExperience", @@ -423,7 +477,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Describes an existing Amazon Kendra index.

" + "documentation":"

Gets information about an existing Amazon Kendra index.

" }, "DescribePrincipalMapping":{ "name":"DescribePrincipalMapping", @@ -457,7 +511,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Describes a block list used for query suggestions for an index.

This is used to check the current settings that are applied to a block list.

DescribeQuerySuggestionsBlockList is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" + "documentation":"

Gets information about a block list used for query suggestions for an index.

This is used to check the current settings that are applied to a block list.

DescribeQuerySuggestionsBlockList is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" }, "DescribeQuerySuggestionsConfig":{ "name":"DescribeQuerySuggestionsConfig", @@ -474,7 +528,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Describes the settings of query suggestions for an index.

This is used to check the current settings applied to query suggestions.

DescribeQuerySuggestionsConfig is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" + "documentation":"

Gets information on the settings of query suggestions for an index.

This is used to check the current settings applied to query suggestions.

DescribeQuerySuggestionsConfig is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" }, "DescribeThesaurus":{ "name":"DescribeThesaurus", @@ -491,7 +545,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Describes an existing Amazon Kendra thesaurus.

" + "documentation":"

Gets information about an existing Amazon Kendra thesaurus.

" }, "DisassociateEntitiesFromExperience":{ "name":"DisassociateEntitiesFromExperience", @@ -508,7 +562,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Prevents users or groups in your Amazon Web Services SSO identity source from accessing your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" + "documentation":"

Prevents users or groups in your IAM Identity Center identity source from accessing your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" }, "DisassociatePersonasFromEntities":{ "name":"DisassociatePersonasFromEntities", @@ -525,7 +579,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Removes the specific permissions of users or groups in your Amazon Web Services SSO identity source with access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" + "documentation":"

Removes the specific permissions of users or groups in your IAM Identity Center identity source with access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" }, "GetQuerySuggestions":{ "name":"GetQuerySuggestions", @@ -562,6 +616,23 @@ ], "documentation":"

Retrieves search metrics data. The data provides a snapshot of how your users interact with your search application and how effective the application is.

" }, + "ListAccessControlConfigurations":{ + "name":"ListAccessControlConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAccessControlConfigurationsRequest"}, + "output":{"shape":"ListAccessControlConfigurationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists one or more access control configurations for an index. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

" + }, "ListDataSourceSyncJobs":{ "name":"ListDataSourceSyncJobs", "http":{ @@ -578,7 +649,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Gets statistics about synchronizing Amazon Kendra with a data source.

" + "documentation":"

Gets statistics about synchronizing a data source connector.

" }, "ListDataSources":{ "name":"ListDataSources", @@ -595,7 +666,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists the data sources that you have created.

" + "documentation":"

Lists the data source connectors that you have created.

" }, "ListEntityPersonas":{ "name":"ListEntityPersonas", @@ -629,7 +700,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists users or groups in your Amazon Web Services SSO identity source that are granted access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" + "documentation":"

Lists users or groups in your IAM Identity Center identity source that are granted access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" }, "ListExperiences":{ "name":"ListExperiences", @@ -748,7 +819,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists the Amazon Kendra thesauri associated with an index.

" + "documentation":"

Lists the thesauri for an index.

" }, "PutPrincipalMapping":{ "name":"PutPrincipalMapping", @@ -766,7 +837,7 @@ {"shape":"ServiceQuotaExceededException"}, {"shape":"InternalServerException"} ], - "documentation":"

Maps users to their groups so that you only need to provide the user ID when you issue the query.

You can also map sub groups to groups. For example, the group \"Company Intellectual Property Teams\" includes sub groups \"Research\" and \"Engineering\". These sub groups include their own list of users or people who work in these teams. Only users who work in research and engineering, and therefore belong in the intellectual property group, can see top-secret company documents in their search results.

You map users to their groups when you want to filter search results for different users based on their group’s access to documents. For more information on filtering search results for different users, see Filtering on user context.

If more than five PUT actions for a group are currently processing, a validation exception is thrown.

PutPrincipalMapping is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" + "documentation":"

Maps users to their groups so that you only need to provide the user ID when you issue the query.

You can also map sub groups to groups. For example, the group \"Company Intellectual Property Teams\" includes sub groups \"Research\" and \"Engineering\". These sub groups include their own list of users or people who work in these teams. Only users who work in research and engineering, and therefore belong in the intellectual property group, can see top-secret company documents in their search results.

This is useful for user context filtering, where search results are filtered based on the user or their group access to documents. For more information, see Filtering on user context.

If more than five PUT actions for a group are currently processing, a validation exception is thrown.

PutPrincipalMapping is currently not supported in the Amazon Web Services GovCloud (US-West) region.

" }, "Query":{ "name":"Query", @@ -804,7 +875,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Starts a synchronization job for a data source. If a synchronization job is already in progress, Amazon Kendra returns a ResourceInUseException exception.

" + "documentation":"

Starts a synchronization job for a data source connector. If a synchronization job is already in progress, Amazon Kendra returns a ResourceInUseException exception.

" }, "StopDataSourceSyncJob":{ "name":"StopDataSourceSyncJob", @@ -873,6 +944,25 @@ ], "documentation":"

Removes a tag from an index, FAQ, or a data source.

" }, + "UpdateAccessControlConfiguration":{ + "name":"UpdateAccessControlConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAccessControlConfigurationRequest"}, + "output":{"shape":"UpdateAccessControlConfigurationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates an access control configuration for your documents in an index. This includes user and group access information for your documents. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

You can update an access control configuration you created without indexing all of your documents again. For example, your index contains top-secret company documents that only certain employees or users should access. You created an 'allow' access control configuration for one user who recently joined the 'top-secret' team, switching from a team with 'deny' access to top-secret documents. However, the user suddenly returns to their previous team and should no longer have access to top secret documents. You can update the access control configuration to re-configure access control for your documents as circumstances change.

You call the BatchPutDocument API to apply the updated access control configuration, with the AccessControlConfigurationId included in the Document object. If you use an S3 bucket as a data source, you synchronize your data source to apply the AccessControlConfigurationId in the .metadata.json file. Amazon Kendra currently only supports access control configuration for S3 data sources and documents indexed using the BatchPutDocument API.

" + }, "UpdateDataSource":{ "name":"UpdateDataSource", "http":{ @@ -888,7 +978,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Updates an existing Amazon Kendra data source.

" + "documentation":"

Updates an existing Amazon Kendra data source connector.

" }, "UpdateExperience":{ "name":"UpdateExperience", @@ -974,16 +1064,43 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Updates a thesaurus file associated with an index.

" + "documentation":"

Updates a thesaurus for an index.

" } }, "shapes":{ + "AccessControlConfigurationId":{ + "type":"string", + "max":36, + "min":1, + "pattern":"[a-zA-Z0-9-]+" + }, + "AccessControlConfigurationName":{ + "type":"string", + "max":200, + "min":1, + "pattern":"[\\S\\s]*" + }, + "AccessControlConfigurationSummary":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"AccessControlConfigurationId", + "documentation":"

The identifier of the access control configuration.

" + } + }, + "documentation":"

Summary information on an access control configuration that you created for your documents in an index.

" + }, + "AccessControlConfigurationSummaryList":{ + "type":"list", + "member":{"shape":"AccessControlConfigurationSummary"} + }, "AccessControlListConfiguration":{ "type":"structure", "members":{ "KeyPath":{ "shape":"S3ObjectKey", - "documentation":"

Path to the Amazon Web Services S3 bucket that contains the ACL files.

" + "documentation":"

Path to the Amazon S3 bucket that contains the ACL files.

" } }, "documentation":"

Access Control List files for the documents in a data source. For the format of the file, see Access control for S3 data sources.

" @@ -993,7 +1110,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

You don't have sufficient access to perform this action. Please ensure you have the required permission policies and user accounts and try again.

", "exception":true }, "AclConfiguration":{ @@ -1048,6 +1165,78 @@ "type":"string", "enum":["TEXT_WITH_HIGHLIGHTS_VALUE"] }, + "AlfrescoConfiguration":{ + "type":"structure", + "required":[ + "SiteUrl", + "SiteId", + "SecretArn", + "SslCertificateS3Path" + ], + "members":{ + "SiteUrl":{ + "shape":"SiteUrl", + "documentation":"

The URL of the Alfresco site. For example, https://hostname:8080.

" + }, + "SiteId":{ + "shape":"SiteId", + "documentation":"

The identifier of the Alfresco site. For example, my-site.

" + }, + "SecretArn":{ + "shape":"SecretArn", + "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the key-value pairs required to connect to your Alfresco data source. The secret must contain a JSON structure with the following keys:

  • username—The user name of the Alfresco account.

  • password—The password of the Alfresco account.

" + }, + "SslCertificateS3Path":{ + "shape":"S3Path", + "documentation":"

The path to the SSL certificate stored in an Amazon S3 bucket. You use this to connect to Alfresco if you require a secure SSL connection.

You can simply generate a self-signed X509 certificate on any computer using OpenSSL. For an example of using OpenSSL to create an X509 certificate, see Create and sign an X509 certificate.

" + }, + "CrawlSystemFolders":{ + "shape":"Boolean", + "documentation":"

TRUE to index shared files.

" + }, + "CrawlComments":{ + "shape":"Boolean", + "documentation":"

TRUE to index comments of blogs and other content.

" + }, + "EntityFilter":{ + "shape":"EntityFilter", + "documentation":"

Specify whether to index document libraries, wikis, or blogs. You can specify one or more of these options.

" + }, + "DocumentLibraryFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of Alfresco document libraries to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Alfresco fields. For more information, see Mapping data source fields. The Alfresco data source field names must exist in your Alfresco custom metadata.

" + }, + "BlogFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of Alfresco blogs to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Alfresco fields. For more information, see Mapping data source fields. The Alfresco data source field names must exist in your Alfresco custom metadata.

" + }, + "WikiFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of Alfresco wikis to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Alfresco fields. For more information, see Mapping data source fields. The Alfresco data source field names must exist in your Alfresco custom metadata.

" + }, + "InclusionPatterns":{ + "shape":"DataSourceInclusionsExclusionsStrings", + "documentation":"

A list of regular expression patterns to include certain files in your Alfresco data source. Files that match the patterns are included in the index. Files that don't match the patterns are excluded from the index. If a file matches both an inclusion pattern and an exclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

" + }, + "ExclusionPatterns":{ + "shape":"DataSourceInclusionsExclusionsStrings", + "documentation":"

A list of regular expression patterns to exclude certain files in your Alfresco data source. Files that match the patterns are excluded from the index. Files that don't match the patterns are included in the index. If a file matches both an inclusion pattern and an exclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

" + }, + "VpcConfiguration":{ + "shape":"DataSourceVpcConfiguration", + "documentation":"

Configuration information for an Amazon Virtual Private Cloud to connect to your Alfresco. For more information, see Configuring a VPC.

" + } + }, + "documentation":"

Provides the configuration information to connect to Alfresco as your data source.

Alfresco data source connector is currently in preview mode. Basic authentication is currently supported. If you would like to use Alfresco connector in production, contact Support.

" + }, + "AlfrescoEntity":{ + "type":"string", + "enum":[ + "wiki", + "blog", + "documentLibrary" + ] + }, "AmazonResourceName":{ "type":"string", "max":1011, @@ -1077,7 +1266,7 @@ }, "EntityList":{ "shape":"AssociateEntityList", - "documentation":"

Lists users or groups in your Amazon Web Services SSO identity source.

" + "documentation":"

Lists users or groups in your IAM Identity Center identity source.

" } } }, @@ -1086,7 +1275,7 @@ "members":{ "FailedEntityList":{ "shape":"AssociateEntitiesToExperienceFailedEntityList", - "documentation":"

Lists the users or groups in your Amazon Web Services SSO identity source that failed to properly configure with your Amazon Kendra experience.

" + "documentation":"

Lists the users or groups in your IAM Identity Center identity source that failed to properly configure with your Amazon Kendra experience.

" } } }, @@ -1114,7 +1303,7 @@ }, "Personas":{ "shape":"EntityPersonaConfigurationList", - "documentation":"

The personas that define the specific permissions of users or groups in your Amazon Web Services SSO identity source. The available personas or access roles are Owner and Viewer. For more information on these personas, see Providing access to your search page.

" + "documentation":"

The personas that define the specific permissions of users or groups in your IAM Identity Center identity source. The available personas or access roles are Owner and Viewer. For more information on these personas, see Providing access to your search page.

" } } }, @@ -1123,7 +1312,7 @@ "members":{ "FailedEntityList":{ "shape":"FailedEntityList", - "documentation":"

Lists the users or groups in your Amazon Web Services SSO identity source that failed to properly configure with your Amazon Kendra experience.

" + "documentation":"

Lists the users or groups in your IAM Identity Center identity source that failed to properly configure with your Amazon Kendra experience.

" } } }, @@ -1144,34 +1333,34 @@ }, "EqualsTo":{ "shape":"DocumentAttribute", - "documentation":"

Performs an equals operation on two document attributes.

" + "documentation":"

Performs an equals operation on two document attributes or metadata fields.

" }, "ContainsAll":{ "shape":"DocumentAttribute", - "documentation":"

Returns true when a document contains all of the specified document attributes. This filter is only applicable to StringListValue metadata.

" + "documentation":"

Returns true when a document contains all of the specified document attributes or metadata fields. This filter is only applicable to StringListValue metadata.

" }, "ContainsAny":{ "shape":"DocumentAttribute", - "documentation":"

Returns true when a document contains any of the specified document attributes. This filter is only applicable to StringListValue metadata.

" + "documentation":"

Returns true when a document contains any of the specified document attributes or metadata fields. This filter is only applicable to StringListValue metadata.

" }, "GreaterThan":{ "shape":"DocumentAttribute", - "documentation":"

Performs a greater than operation on two document attributes. Use with a document attribute of type Date or Long.

" + "documentation":"

Performs a greater than operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long.

" }, "GreaterThanOrEquals":{ "shape":"DocumentAttribute", - "documentation":"

Performs a greater or equals than operation on two document attributes. Use with a document attribute of type Date or Long.

" + "documentation":"

Performs a greater or equals than operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long.

" }, "LessThan":{ "shape":"DocumentAttribute", - "documentation":"

Performs a less than operation on two document attributes. Use with a document attribute of type Date or Long.

" + "documentation":"

Performs a less than operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long.

" }, "LessThanOrEquals":{ "shape":"DocumentAttribute", - "documentation":"

Performs a less than or equals operation on two document attributes. Use with a document attribute of type Date or Long.

" + "documentation":"

Performs a less than or equals operation on two document attributes or metadata fields. Use with a document attribute of type Date or Long.

" } }, - "documentation":"

Provides filtering the query results based on document attributes.

When you use the AndAllFilters or OrAllFilters, filters you can use 2 layers under the first attribute filter. For example, you can use:

<AndAllFilters>

  1. <OrAllFilters>

  2. <EqualsTo>

If you use more than 2 layers, you receive a ValidationException exception with the message \"AttributeFilter cannot have a depth of more than 2.\"

If you use more than 10 attribute filters in a given list for AndAllFilters or OrAllFilters, you receive a ValidationException with the message \"AttributeFilter cannot have a length of more than 10\".

" + "documentation":"

Provides filtering the query results based on document attributes or metadata fields.

When you use the AndAllFilters or OrAllFilters, filters you can use 2 layers under the first attribute filter. For example, you can use:

<AndAllFilters>

  1. <OrAllFilters>

  2. <EqualsTo>

If you use more than 2 layers, you receive a ValidationException exception with the message \"AttributeFilter cannot have a depth of more than 2.\"

If you use more than 10 attribute filters in a given list for AndAllFilters or OrAllFilters, you receive a ValidationException with the message \"AttributeFilter cannot have a length of more than 10\".

" }, "AttributeFilterList":{ "type":"list", @@ -1300,7 +1489,7 @@ "members":{ "DocumentId":{ "shape":"DocumentId", - "documentation":"

The unique identifier of the document whose status could not be retrieved.

" + "documentation":"

The identifier of the document whose status could not be retrieved.

" }, "ErrorCode":{ "shape":"ErrorCode", @@ -1356,7 +1545,7 @@ "members":{ "Id":{ "shape":"DocumentId", - "documentation":"

The unique identifier of the document.

" + "documentation":"

The identifier of the document.

" }, "ErrorCode":{ "shape":"ErrorCode", @@ -1388,7 +1577,7 @@ }, "SecretArn":{ "shape":"SecretArn", - "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the key-value pairs required to connect to your Box platform. The secret must contain a JSON structure with the following keys:

  • clientID—The identifier of the client OAuth 2.0 authentication application created in Box.

  • clientSecret—A set of characters known only to the OAuth 2.0 authentication application created in Box.

  • publicKeyId—The identifier of the public key contained within an identity certificate.

  • privateKey—A set of characters that make up an encryption key.

  • passphrase—A set of characters that act like a password.

You create an application in Box to generate the keys or credentials required for the secret. For more information, see Authentication for a Box data source.

" + "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the key-value pairs required to connect to your Box platform. The secret must contain a JSON structure with the following keys:

  • clientID—The identifier of the client OAuth 2.0 authentication application created in Box.

  • clientSecret—A set of characters known only to the OAuth 2.0 authentication application created in Box.

  • publicKeyId—The identifier of the public key contained within an identity certificate.

  • privateKey—A set of characters that make up an encryption key.

  • passphrase—A set of characters that act like a password.

You create an application in Box to generate the keys or credentials required for the secret. For more information, see Using a Box data source.

" }, "UseChangeLog":{ "shape":"Boolean", @@ -1446,11 +1635,11 @@ "members":{ "StorageCapacityUnits":{ "shape":"StorageCapacityUnit", - "documentation":"

The amount of extra storage capacity for an index. A single capacity unit provides 30 GB of storage space or 100,000 documents, whichever is reached first.

" + "documentation":"

The amount of extra storage capacity for an index. A single capacity unit provides 30 GB of storage space or 100,000 documents, whichever is reached first. You can add up to 100 extra capacity units.

" }, "QueryCapacityUnits":{ "shape":"QueryCapacityUnit", - "documentation":"

The amount of extra query capacity for an index and GetQuerySuggestions capacity.

A single extra capacity unit for an index provides 0.1 queries per second or approximately 8,000 queries per day.

GetQuerySuggestions capacity is five times the provisioned query capacity for an index, or the base capacity of 2.5 calls per second, whichever is higher. For example, the base capacity for an index is 0.1 queries per second, and GetQuerySuggestions capacity has a base of 2.5 calls per second. If you add another 0.1 queries per second to total 0.2 queries per second for an index, the GetQuerySuggestions capacity is 2.5 calls per second (higher than five times 0.2 queries per second).

" + "documentation":"

The amount of extra query capacity for an index and GetQuerySuggestions capacity.

A single extra capacity unit for an index provides 0.1 queries per second or approximately 8,000 queries per day. You can add up to 100 extra capacity units.

GetQuerySuggestions capacity is five times the provisioned query capacity for an index, or the base capacity of 2.5 calls per second, whichever is higher. For example, the base capacity for an index is 0.1 queries per second, and GetQuerySuggestions capacity has a base of 2.5 calls per second. If you add another 0.1 queries per second to total 0.2 queries per second for an index, the GetQuerySuggestions capacity is 2.5 calls per second (higher than five times 0.2 queries per second).

" } }, "documentation":"

Specifies additional capacity units configured for your Enterprise Edition index. You can add and remove capacity units to fit your usage requirements.

" @@ -1486,7 +1675,7 @@ "members":{ "ResultId":{ "shape":"ResultId", - "documentation":"

The unique identifier of the search result that was clicked.

" + "documentation":"

The identifier of the search result that was clicked.

" }, "ClickTime":{ "shape":"Timestamp", @@ -1514,7 +1703,7 @@ "members":{ "DocumentIdColumnName":{ "shape":"ColumnName", - "documentation":"

The column that provides the document's unique identifier.

" + "documentation":"

The column that provides the document's identifier.

" }, "DocumentDataColumnName":{ "shape":"ColumnName", @@ -1562,7 +1751,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

A conflict occurred with the request. Please fix any inconsistences with your resources and try again.

", "exception":true }, "ConfluenceAttachmentConfiguration":{ @@ -1570,7 +1759,7 @@ "members":{ "CrawlAttachments":{ "shape":"Boolean", - "documentation":"

Indicates whether Amazon Kendra indexes attachments to the pages and blogs in the Confluence data source.

" + "documentation":"

TRUE to index attachments of pages and blogs in Confluence.

" }, "AttachmentFieldMappings":{ "shape":"ConfluenceAttachmentFieldMappingsList", @@ -1619,6 +1808,13 @@ }, "documentation":"

Maps attributes or field names of Confluence attachments to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Confluence fields. For more information, see Mapping data source fields. The Confuence data source field names must exist in your Confluence custom metadata.

" }, + "ConfluenceAuthenticationType":{ + "type":"string", + "enum":[ + "HTTP_BASIC", + "PAT" + ] + }, "ConfluenceBlogConfiguration":{ "type":"structure", "members":{ @@ -1681,11 +1877,11 @@ }, "SecretArn":{ "shape":"SecretArn", - "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the key-value pairs required to connect to your Confluence server. The secret must contain a JSON structure with the following keys:

  • username—The user name or email address of a user with administrative privileges for the Confluence server.

  • password—The password associated with the user logging in to the Confluence server.

" + "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the user name and password required to connect to the Confluence instance. If you use Confluence Cloud, you use a generated API token as the password.

You can also provide authentication credentials in the form of a personal access token. For more information, see Using a Confluence data source.

" }, "Version":{ "shape":"ConfluenceVersion", - "documentation":"

Specifies the version of the Confluence installation that you are connecting to.

" + "documentation":"

The version or the type of Confluence installation to connect to.

" }, "SpaceConfiguration":{ "shape":"ConfluenceSpaceConfiguration", @@ -1713,7 +1909,15 @@ }, "ExclusionPatterns":{ "shape":"DataSourceInclusionsExclusionsStrings", - "documentation":"

>A list of regular expression patterns to exclude certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are excluded from the index. Content that doesn't match the patterns is included in the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.

" + "documentation":"

A list of regular expression patterns to exclude certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are excluded from the index. Content that doesn't match the patterns is included in the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.

" + }, + "ProxyConfiguration":{ + "shape":"ProxyConfiguration", + "documentation":"

Configuration information to connect to your Confluence URL instance via a web proxy. You can use this option for Confluence Server.

You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is \"a.example.com\" and the port is 443, the standard port for HTTPS.

Web proxy credentials are optional and you can use them to connect to a web proxy server that requires basic authentication of user name and password. To store web proxy credentials, you use a secret in Secrets Manager.

It is recommended that you follow best security practices when configuring your web proxy. This includes setting up throttling, setting up logging and monitoring, and applying security patches on a regular basis. If you use your web proxy with multiple data sources, sync jobs that occur at the same time could strain the load on your proxy. It is recommended you prepare your proxy beforehand for any security and load requirements.

" + }, + "AuthenticationType":{ + "shape":"ConfluenceAuthenticationType", + "documentation":"

Whether you want to connect to Confluence using basic authentication of user name and password, or a personal access token. You can use a personal access token for Confluence Server.

" } }, "documentation":"

Provides the configuration information to connect to Confluence as your data source.

" @@ -1723,7 +1927,7 @@ "members":{ "PageFieldMappings":{ "shape":"ConfluencePageFieldMappingsList", - "documentation":"

>Maps attributes or field names of Confluence pages to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Confluence fields. For more information, see Mapping data source fields. The Confluence data source field names must exist in your Confluence custom metadata.

If you specify the PageFieldMappings parameter, you must specify at least one field mapping.

" + "documentation":"

Maps attributes or field names of Confluence pages to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to Confluence fields. For more information, see Mapping data source fields. The Confluence data source field names must exist in your Confluence custom metadata.

If you specify the PageFieldMappings parameter, you must specify at least one field mapping.

" } }, "documentation":"

Configuration of the page settings for the Confluence data source.

" @@ -1774,11 +1978,11 @@ "members":{ "CrawlPersonalSpaces":{ "shape":"Boolean", - "documentation":"

Specifies whether Amazon Kendra should index personal spaces. Users can add restrictions to items in personal spaces. If personal spaces are indexed, queries without user context information may return restricted items from a personal space in their results. For more information, see Filtering on user context.

" + "documentation":"

TRUE to index personal spaces. You can add restrictions to items in personal spaces. If personal spaces are indexed, queries without user context information may return restricted items from a personal space in their results. For more information, see Filtering on user context.

" }, "CrawlArchivedSpaces":{ "shape":"Boolean", - "documentation":"

Specifies whether Amazon Kendra should index archived spaces.

" + "documentation":"

TRUE to index archived spaces.

" }, "IncludeSpaces":{ "shape":"ConfluenceSpaceList", @@ -1938,6 +2142,50 @@ "max":10, "min":0 }, + "CreateAccessControlConfigurationRequest":{ + "type":"structure", + "required":[ + "IndexId", + "Name" + ], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index to create an access control configuration for your documents.

" + }, + "Name":{ + "shape":"AccessControlConfigurationName", + "documentation":"

A name for the access control configuration.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A description for the access control configuration.

" + }, + "AccessControlList":{ + "shape":"PrincipalList", + "documentation":"

Information on principals (users and/or groups) and which documents they should have access to. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

" + }, + "HierarchicalAccessControlList":{ + "shape":"HierarchicalPrincipalList", + "documentation":"

The list of principal lists that define the hierarchy for which documents users should have access to.

" + }, + "ClientToken":{ + "shape":"ClientTokenName", + "documentation":"

A token that you provide to identify the request to create an access control configuration. Multiple calls to the CreateAccessControlConfiguration API with the same client token will create only one access control configuration.

", + "idempotencyToken":true + } + } + }, + "CreateAccessControlConfigurationResponse":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"AccessControlConfigurationId", + "documentation":"

The identifier of the access control configuration for your documents in an index.

" + } + } + }, "CreateDataSourceRequest":{ "type":"structure", "required":[ @@ -1948,48 +2196,52 @@ "members":{ "Name":{ "shape":"DataSourceName", - "documentation":"

A unique name for the data source. A data source name can't be changed without deleting and recreating the data source.

" + "documentation":"

A name for the data source connector.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that should be associated with this data source.

" + "documentation":"

The identifier of the index you want to use with the data source connector.

" }, "Type":{ "shape":"DataSourceType", - "documentation":"

The type of repository that contains the data source.

" + "documentation":"

The type of data source repository. For example, SHAREPOINT.

" }, "Configuration":{ "shape":"DataSourceConfiguration", - "documentation":"

Configuration information that is required to access the data source repository.

You can't specify the Configuration parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

The Configuration parameter is required for all other data sources.

" + "documentation":"

Configuration information to connect to your data source repository.

You can't specify the Configuration parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

The Configuration parameter is required for all other data sources.

" + }, + "VpcConfiguration":{ + "shape":"DataSourceVpcConfiguration", + "documentation":"

Configuration information for an Amazon Virtual Private Cloud to connect to your data source. For more information, see Configuring a VPC.

" }, "Description":{ "shape":"Description", - "documentation":"

A description for the data source.

" + "documentation":"

A description for the data source connector.

" }, "Schedule":{ "shape":"ScanSchedule", - "documentation":"

Sets the frequency for Amazon Kendra to check the documents in your repository and update the index. If you don't set a schedule Amazon Kendra will not periodically update the index. You can call the StartDataSourceSyncJob API to update the index.

You can't specify the Schedule parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

" + "documentation":"

Sets the frequency for Amazon Kendra to check the documents in your data source repository and update the index. If you don't set a schedule Amazon Kendra will not periodically update the index. You can call the StartDataSourceSyncJob API to update the index.

You can't specify the Schedule parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

" }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access the data source. For more information, see IAM Roles for Amazon Kendra.

You can't specify the RoleArn parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

The RoleArn parameter is required for all other data sources.

" + "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access the data source and required resources. For more information, see IAM roles for Amazon Kendra.

You can't specify the RoleArn parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

The RoleArn parameter is required for all other data sources.

" }, "Tags":{ "shape":"TagList", - "documentation":"

A list of key-value pairs that identify the data source. You can use the tags to identify and organize your resources and to control access to resources.

" + "documentation":"

A list of key-value pairs that identify the data source connector. You can use the tags to identify and organize your resources and to control access to resources.

" }, "ClientToken":{ "shape":"ClientTokenName", - "documentation":"

A token that you provide to identify the request to create a data source. Multiple calls to the CreateDataSource API with the same client token will create only one data source.

", + "documentation":"

A token that you provide to identify the request to create a data source connector. Multiple calls to the CreateDataSource API with the same client token will create only one data source connector.

", "idempotencyToken":true }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The code for a language. This allows you to support a language for all documents when creating the data source. English is supported by default. For more information on supported languages, including their codes, see Adding documents in languages other than English.

" + "documentation":"

The code for a language. This allows you to support a language for all documents when creating the data source connector. English is supported by default. For more information on supported languages, including their codes, see Adding documents in languages other than English.

" }, "CustomDocumentEnrichmentConfiguration":{ "shape":"CustomDocumentEnrichmentConfiguration", - "documentation":"

Configuration information for altering document metadata and content during the document ingestion process when you create a data source.

For more information on how to create, modify and delete document metadata, or make other content alterations when you ingest documents into Amazon Kendra, see Customizing document metadata during the ingestion process.

" + "documentation":"

Configuration information for altering document metadata and content during the document ingestion process.

For more information on how to create, modify and delete document metadata, or make other content alterations when you ingest documents into Amazon Kendra, see Customizing document metadata during the ingestion process.

" } } }, @@ -1999,7 +2251,7 @@ "members":{ "Id":{ "shape":"DataSourceId", - "documentation":"

A unique identifier for the data source.

" + "documentation":"

The identifier of the data source connector.

" } } }, @@ -2020,7 +2272,7 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access Query API, QuerySuggestions API, SubmitFeedback API, and Amazon Web Services SSO that stores your user and group information. For more information, see IAM roles for Amazon Kendra.

" + "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access Query API, QuerySuggestions API, SubmitFeedback API, and IAM Identity Center that stores your user and group information. For more information, see IAM roles for Amazon Kendra.

" }, "Configuration":{ "shape":"ExperienceConfiguration", @@ -2058,19 +2310,19 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the FAQ.

" + "documentation":"

The identifier of the index for the FAQ.

" }, "Name":{ "shape":"FaqName", - "documentation":"

The name that should be associated with the FAQ.

" + "documentation":"

A name for the FAQ.

" }, "Description":{ "shape":"Description", - "documentation":"

A description of the FAQ.

" + "documentation":"

A description for the FAQ.

" }, "S3Path":{ "shape":"S3Path", - "documentation":"

The S3 location of the FAQ input data.

" + "documentation":"

The path to the FAQ file in S3.

" }, "RoleArn":{ "shape":"RoleArn", @@ -2082,7 +2334,7 @@ }, "FileFormat":{ "shape":"FaqFileFormat", - "documentation":"

The format of the input file. You can choose between a basic CSV format, a CSV format that includes customs attributes in a header, and a JSON format that includes custom attributes.

The format must match the format of the file stored in the S3 bucket identified in the S3Path parameter.

For more information, see Adding questions and answers.

" + "documentation":"

The format of the FAQ input file. You can choose between a basic CSV format, a CSV format that includes customs attributes in a header, and a JSON format that includes custom attributes.

The format must match the format of the file stored in the S3 bucket identified in the S3Path parameter.

For more information, see Adding questions and answers.

" }, "ClientToken":{ "shape":"ClientTokenName", @@ -2100,7 +2352,7 @@ "members":{ "Id":{ "shape":"FaqId", - "documentation":"

The unique identifier of the FAQ.

" + "documentation":"

The identifier of the FAQ.

" } } }, @@ -2113,7 +2365,7 @@ "members":{ "Name":{ "shape":"IndexName", - "documentation":"

The name for the new index.

" + "documentation":"

A name for the index.

" }, "Edition":{ "shape":"IndexEdition", @@ -2150,7 +2402,7 @@ }, "UserGroupResolutionConfiguration":{ "shape":"UserGroupResolutionConfiguration", - "documentation":"

Enables fetching access levels of groups and users from an Amazon Web Services Single Sign On identity source. To configure this, see UserGroupResolutionConfiguration.

" + "documentation":"

Enables fetching access levels of groups and users from an IAM Identity Center (successor to Single Sign-On) identity source. To configure this, see UserGroupResolutionConfiguration.

" } } }, @@ -2159,7 +2411,7 @@ "members":{ "Id":{ "shape":"IndexId", - "documentation":"

The unique identifier of the index. Use this identifier when you query an index, set up a data source, or index a document.

" + "documentation":"

The identifier of the index. Use this identifier when you query an index, set up a data source, or index a document.

" } } }, @@ -2208,7 +2460,7 @@ "members":{ "Id":{ "shape":"QuerySuggestionsBlockListId", - "documentation":"

The unique identifier of the created block list.

" + "documentation":"

The identifier of the created block list.

" } } }, @@ -2223,15 +2475,15 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

The unique identifier of the index for the new thesaurus.

" + "documentation":"

The identifier of the index for the thesaurus.

" }, "Name":{ "shape":"ThesaurusName", - "documentation":"

The name for the new thesaurus.

" + "documentation":"

A name for the thesaurus.

" }, "Description":{ "shape":"Description", - "documentation":"

The description for the new thesaurus.

" + "documentation":"

A description for the thesaurus.

" }, "RoleArn":{ "shape":"RoleArn", @@ -2243,7 +2495,7 @@ }, "SourceS3Path":{ "shape":"S3Path", - "documentation":"

The thesaurus file Amazon S3 source path.

" + "documentation":"

The path to the thesaurus file in S3.

" }, "ClientToken":{ "shape":"ClientTokenName", @@ -2257,7 +2509,7 @@ "members":{ "Id":{ "shape":"ThesaurusId", - "documentation":"

The unique identifier of the thesaurus.

" + "documentation":"

The identifier of the thesaurus.

" } } }, @@ -2342,6 +2594,18 @@ "JiraConfiguration":{ "shape":"JiraConfiguration", "documentation":"

Provides the configuration information to connect to Jira as your data source.

" + }, + "GitHubConfiguration":{ + "shape":"GitHubConfiguration", + "documentation":"

Provides the configuration information to connect to GitHub as your data source.

" + }, + "AlfrescoConfiguration":{ + "shape":"AlfrescoConfiguration", + "documentation":"

Provides the configuration information to connect to Alfresco as your data source.

" + }, + "TemplateConfiguration":{ + "shape":"TemplateConfiguration", + "documentation":"

Provides a template for the configuration information to connect to your data source.

" } }, "documentation":"

Provides the configuration information for an Amazon Kendra data source.

" @@ -2430,7 +2694,7 @@ }, "Id":{ "shape":"DataSourceId", - "documentation":"

The unique identifier for the data source.

" + "documentation":"

The identifier for the data source.

" }, "Type":{ "shape":"DataSourceType", @@ -2453,7 +2717,7 @@ "documentation":"

The code for a language. This shows a supported language for all documents in the data source. English is supported by default. For more information on supported languages, including their codes, see Adding documents in languages other than English.

" } }, - "documentation":"

Summary information for an Amazon Kendra data source. Returned in a call to the DescribeDataSource API.

" + "documentation":"

Summary information for a Amazon Kendra data source.

" }, "DataSourceSummaryList":{ "type":"list", @@ -2464,7 +2728,7 @@ "members":{ "ExecutionId":{ "shape":"String", - "documentation":"

A unique identifier for the synchronization job.

" + "documentation":"

A identifier for the synchronization job.

" }, "StartTime":{ "shape":"Timestamp", @@ -2606,7 +2870,10 @@ "SLACK", "BOX", "QUIP", - "JIRA" + "JIRA", + "GITHUB", + "ALFRESCO", + "TEMPLATE" ] }, "DataSourceVpcConfiguration":{ @@ -2684,6 +2951,28 @@ "max":65535, "min":1 }, + "DeleteAccessControlConfigurationRequest":{ + "type":"structure", + "required":[ + "IndexId", + "Id" + ], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index for an access control configuration.

" + }, + "Id":{ + "shape":"AccessControlConfigurationId", + "documentation":"

The identifier of the access control configuration you want to delete.

" + } + } + }, + "DeleteAccessControlConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteDataSourceRequest":{ "type":"structure", "required":[ @@ -2693,11 +2982,11 @@ "members":{ "Id":{ "shape":"DataSourceId", - "documentation":"

The unique identifier of the data source to delete.

" + "documentation":"

The identifier of the data source connector you want to delete.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The unique identifier of the index associated with the data source.

" + "documentation":"

The identifier of the index used with the data source connector.

" } } }, @@ -2714,7 +3003,7 @@ }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index for your Amazon Kendra experience you want to delete.

" + "documentation":"

The identifier of the index for your Amazon Kendra experience.

" } } }, @@ -2732,11 +3021,11 @@ "members":{ "Id":{ "shape":"FaqId", - "documentation":"

The identifier of the FAQ to remove.

" + "documentation":"

The identifier of the FAQ you want to remove.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The index to remove the FAQ from.

" + "documentation":"

The identifier of the index for the FAQ.

" } } }, @@ -2746,7 +3035,7 @@ "members":{ "Id":{ "shape":"IndexId", - "documentation":"

The identifier of the index to delete.

" + "documentation":"

The identifier of the index you want to delete.

" } } }, @@ -2763,7 +3052,7 @@ }, "DataSourceId":{ "shape":"DataSourceId", - "documentation":"

The identifier of the data source you want to delete a group from.

This is useful if a group is tied to multiple data sources and you want to delete a group from accessing documents in a certain data source. For example, the groups \"Research\", \"Engineering\", and \"Sales and Marketing\" are all tied to the company's documents stored in the data sources Confluence and Salesforce. You want to delete \"Research\" and \"Engineering\" groups from Salesforce, so that these groups cannot access customer-related documents stored in Salesforce. Only \"Sales and Marketing\" should access documents in the Salesforce data source.

" + "documentation":"

The identifier of the data source you want to delete a group from.

A group can be tied to multiple data sources. You can delete a group from accessing documents in a certain data source. For example, the groups \"Research\", \"Engineering\", and \"Sales and Marketing\" are all tied to the company's documents stored in the data sources Confluence and Salesforce. You want to delete \"Research\" and \"Engineering\" groups from Salesforce, so that these groups cannot access customer-related documents stored in Salesforce. Only \"Sales and Marketing\" should access documents in the Salesforce data source.

" }, "GroupId":{ "shape":"GroupId", @@ -2784,11 +3073,11 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the you want to delete a block list from.

" + "documentation":"

The identifier of the index for the block list.

" }, "Id":{ "shape":"QuerySuggestionsBlockListId", - "documentation":"

The unique identifier of the block list that needs to be deleted.

" + "documentation":"

The identifier of the block list you want to delete.

" } } }, @@ -2801,11 +3090,54 @@ "members":{ "Id":{ "shape":"ThesaurusId", - "documentation":"

The identifier of the thesaurus to delete.

" + "documentation":"

The identifier of the thesaurus you want to delete.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index associated with the thesaurus to delete.

" + "documentation":"

The identifier of the index for the thesaurus.

" + } + } + }, + "DescribeAccessControlConfigurationRequest":{ + "type":"structure", + "required":[ + "IndexId", + "Id" + ], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index for an access control configuration.

" + }, + "Id":{ + "shape":"AccessControlConfigurationId", + "documentation":"

The identifier of the access control configuration you want to get information on.

" + } + } + }, + "DescribeAccessControlConfigurationResponse":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"AccessControlConfigurationName", + "documentation":"

The name for the access control configuration.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The description for the access control configuration.

" + }, + "ErrorMessage":{ + "shape":"ErrorMessage", + "documentation":"

The error message containing details if there are issues processing the access control configuration.

" + }, + "AccessControlList":{ + "shape":"PrincipalList", + "documentation":"

Information on principals (users and/or groups) and which documents they should have access to. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

" + }, + "HierarchicalAccessControlList":{ + "shape":"HierarchicalPrincipalList", + "documentation":"

The list of principal lists that define the hierarchy for which documents users should have access to.

" } } }, @@ -2818,11 +3150,11 @@ "members":{ "Id":{ "shape":"DataSourceId", - "documentation":"

The unique identifier of the data source to describe.

" + "documentation":"

The identifier of the data source connector.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the data source.

" + "documentation":"

The identifier of the index used with the data source connector.

" } } }, @@ -2831,39 +3163,43 @@ "members":{ "Id":{ "shape":"DataSourceId", - "documentation":"

The identifier of the data source.

" + "documentation":"

The identifier of the data source connector.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the data source.

" + "documentation":"

The identifier of the index used with the data source connector.

" }, "Name":{ "shape":"DataSourceName", - "documentation":"

The name that you gave the data source when it was created.

" + "documentation":"

The name for the data source connector.

" }, "Type":{ "shape":"DataSourceType", - "documentation":"

The type of the data source.

" + "documentation":"

The type of the data source. For example, SHAREPOINT.

" }, "Configuration":{ "shape":"DataSourceConfiguration", - "documentation":"

Describes how the data source is configured. The specific information in the description depends on the data source provider.

" + "documentation":"

Configuration details for the data source connector. This shows how the data source is configured. The configuration options for a data source depend on the data source provider.

" + }, + "VpcConfiguration":{ + "shape":"DataSourceVpcConfiguration", + "documentation":"

Configuration information for an Amazon Virtual Private Cloud to connect to your data source. For more information, see Configuring a VPC.

" }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix timestamp of when the data source was created.

" + "documentation":"

The Unix timestamp of when the data source connector was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

The Unix timestamp of when the data source was last updated.

" + "documentation":"

The Unix timestamp of when the data source connector was last updated.

" }, "Description":{ "shape":"Description", - "documentation":"

The description of the data source.

" + "documentation":"

The description for the data source connector.

" }, "Status":{ "shape":"DataSourceStatus", - "documentation":"

The current status of the data source. When the status is ACTIVE the data source is ready to use. When the status is FAILED, the ErrorMessage field contains the reason that the data source failed.

" + "documentation":"

The current status of the data source connector. When the status is ACTIVE the data source is ready to use. When the status is FAILED, the ErrorMessage field contains the reason that the data source failed.

" }, "Schedule":{ "shape":"ScanSchedule", @@ -2871,7 +3207,7 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the role that enables the data source to access its resources.

" + "documentation":"

The Amazon Resource Name (ARN) of the role with permission to access the data source and required resources.

" }, "ErrorMessage":{ "shape":"ErrorMessage", @@ -2900,7 +3236,7 @@ }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index for your Amazon Kendra experience you want to get information on.

" + "documentation":"

The identifier of the index for your Amazon Kendra experience.

" } } }, @@ -2945,7 +3281,7 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

Shows the Amazon Resource Name (ARN) of a role with permission to access Query API, QuerySuggestions API, SubmitFeedback API, and Amazon Web Services SSO that stores your user and group information.

" + "documentation":"

Shows the Amazon Resource Name (ARN) of a role with permission to access Query API, QuerySuggestions API, SubmitFeedback API, and IAM Identity Center that stores your user and group information.

" }, "ErrorMessage":{ "shape":"ErrorMessage", @@ -2962,11 +3298,11 @@ "members":{ "Id":{ "shape":"FaqId", - "documentation":"

The unique identifier of the FAQ.

" + "documentation":"

The identifier of the FAQ you want to get information on.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the FAQ.

" + "documentation":"

The identifier of the index for the FAQ.

" } } }, @@ -2979,7 +3315,7 @@ }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the FAQ.

" + "documentation":"

The identifier of the index for the FAQ.

" }, "Name":{ "shape":"FaqName", @@ -3026,7 +3362,7 @@ "members":{ "Id":{ "shape":"IndexId", - "documentation":"

The identifier of the index to describe.

" + "documentation":"

The identifier of the index you want to get information on.

" } } }, @@ -3071,7 +3407,7 @@ }, "DocumentMetadataConfigurations":{ "shape":"DocumentMetadataConfigurationList", - "documentation":"

Configuration settings for any metadata applied to the documents in the index.

" + "documentation":"

Configuration information for document metadata or fields. Document metadata are fields or attributes associated with your documents. For example, the company department name associated with each document.

" }, "IndexStatistics":{ "shape":"IndexStatistics", @@ -3095,7 +3431,7 @@ }, "UserGroupResolutionConfiguration":{ "shape":"UserGroupResolutionConfiguration", - "documentation":"

Shows whether you have enabled the configuration for fetching access levels of groups and users from an Amazon Web Services Single Sign On identity source.

" + "documentation":"

Whether you have enabled the configuration for fetching access levels of groups and users from an IAM Identity Center (successor to Single Sign-On) identity source.

" } } }, @@ -3154,7 +3490,7 @@ }, "Id":{ "shape":"QuerySuggestionsBlockListId", - "documentation":"

The unique identifier of the block list.

" + "documentation":"

The identifier of the block list you want to get information on.

" } } }, @@ -3163,35 +3499,35 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

Shows the identifier of the index for the block list.

" + "documentation":"

The identifier of the index for the block list.

" }, "Id":{ "shape":"QuerySuggestionsBlockListId", - "documentation":"

Shows the unique identifier of the block list.

" + "documentation":"

The identifier of the block list.

" }, "Name":{ "shape":"QuerySuggestionsBlockListName", - "documentation":"

Shows the name of the block list.

" + "documentation":"

The name of the block list.

" }, "Description":{ "shape":"Description", - "documentation":"

Shows the description for the block list.

" + "documentation":"

The description for the block list.

" }, "Status":{ "shape":"QuerySuggestionsBlockListStatus", - "documentation":"

Shows whether the current status of the block list is ACTIVE or INACTIVE.

" + "documentation":"

The current status of the block list. When the value is ACTIVE, the block list is ready for use.

" }, "ErrorMessage":{ "shape":"ErrorMessage", - "documentation":"

Shows the error message with details when there are issues in processing the block list.

" + "documentation":"

The error message containing details if there are issues processing the block list.

" }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

Shows the date-time a block list for query suggestions was created.

" + "documentation":"

The date-time a block list for query suggestions was created.

" }, "UpdatedAt":{ "shape":"Timestamp", - "documentation":"

Shows the date-time a block list for query suggestions was last updated.

" + "documentation":"

The date-time a block list for query suggestions was last updated.

" }, "SourceS3Path":{ "shape":"S3Path", @@ -3199,15 +3535,15 @@ }, "ItemCount":{ "shape":"Integer", - "documentation":"

Shows the current number of valid, non-empty words or phrases in the block list text file.

" + "documentation":"

The current number of valid, non-empty words or phrases in the block list text file.

" }, "FileSizeBytes":{ "shape":"Long", - "documentation":"

Shows the current size of the block list text file in S3.

" + "documentation":"

The current size of the block list text file in S3.

" }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

Shows the current IAM (Identity and Access Management) role used by Amazon Kendra to access the block list text file in S3.

The role needs S3 read permissions to your file in S3 and needs to give STS (Security Token Service) assume role permissions to Amazon Kendra.

" + "documentation":"

The IAM (Identity and Access Management) role used by Amazon Kendra to access the block list text file in S3.

The role needs S3 read permissions to your file in S3 and needs to give STS (Security Token Service) assume role permissions to Amazon Kendra.

" } } }, @@ -3217,7 +3553,7 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index you want to describe query suggestions settings for.

" + "documentation":"

The identifier of the index with query suggestions that you want to get information on.

" } } }, @@ -3226,39 +3562,39 @@ "members":{ "Mode":{ "shape":"Mode", - "documentation":"

Shows whether query suggestions are currently in ENABLED mode or LEARN_ONLY mode.

By default, Amazon Kendra enables query suggestions.LEARN_ONLY turns off query suggestions for your users. You can change the mode using the UpdateQuerySuggestionsConfig API.

" + "documentation":"

Whether query suggestions are currently in ENABLED mode or LEARN_ONLY mode.

By default, Amazon Kendra enables query suggestions.LEARN_ONLY turns off query suggestions for your users. You can change the mode using the UpdateQuerySuggestionsConfig API.

" }, "Status":{ "shape":"QuerySuggestionsStatus", - "documentation":"

Shows whether the status of query suggestions settings is currently Active or Updating.

Active means the current settings apply and Updating means your changed settings are in the process of applying.

" + "documentation":"

Whether the status of query suggestions settings is currently ACTIVE or UPDATING.

Active means the current settings apply and Updating means your changed settings are in the process of applying.

" }, "QueryLogLookBackWindowInDays":{ "shape":"Integer", - "documentation":"

Shows how recent your queries are in your query log time window (in days).

" + "documentation":"

How recent your queries are in your query log time window (in days).

" }, "IncludeQueriesWithoutUserInformation":{ "shape":"ObjectBoolean", - "documentation":"

Shows whether Amazon Kendra uses all queries or only uses queries that include user information to generate query suggestions.

" + "documentation":"

TRUE to use all queries, otherwise use only queries that include user information to generate the query suggestions.

" }, "MinimumNumberOfQueryingUsers":{ "shape":"MinimumNumberOfQueryingUsers", - "documentation":"

Shows the minimum number of unique users who must search a query in order for the query to be eligible to suggest to your users.

" + "documentation":"

The minimum number of unique users who must search a query in order for the query to be eligible to suggest to your users.

" }, "MinimumQueryCount":{ "shape":"MinimumQueryCount", - "documentation":"

Shows the minimum number of times a query must be searched in order for the query to be eligible to suggest to your users.

" + "documentation":"

The minimum number of times a query must be searched in order for the query to be eligible to suggest to your users.

" }, "LastSuggestionsBuildTime":{ "shape":"Timestamp", - "documentation":"

Shows the date-time query suggestions for an index was last updated.

" + "documentation":"

The date-time query suggestions for an index was last updated.

" }, "LastClearTime":{ "shape":"Timestamp", - "documentation":"

Shows the date-time query suggestions for an index was last cleared.

After you clear suggestions, Amazon Kendra learns new suggestions based on new queries added to the query log from the time you cleared suggestions. Amazon Kendra only considers re-occurences of a query from the time you cleared suggestions.

" + "documentation":"

The date-time query suggestions for an index was last cleared.

After you clear suggestions, Amazon Kendra learns new suggestions based on new queries added to the query log from the time you cleared suggestions. Amazon Kendra only considers re-occurences of a query from the time you cleared suggestions.

" }, "TotalSuggestionsCount":{ "shape":"Integer", - "documentation":"

Shows the current total count of query suggestions for an index.

This count can change when you update your query suggestions settings, if you filter out certain queries from suggestions using a block list, and as the query log accumulates more queries for Amazon Kendra to learn from.

" + "documentation":"

The current total count of query suggestions for an index.

This count can change when you update your query suggestions settings, if you filter out certain queries from suggestions using a block list, and as the query log accumulates more queries for Amazon Kendra to learn from.

" } } }, @@ -3271,11 +3607,11 @@ "members":{ "Id":{ "shape":"ThesaurusId", - "documentation":"

The identifier of the thesaurus to describe.

" + "documentation":"

The identifier of the thesaurus you want to get information on.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index associated with the thesaurus to describe.

" + "documentation":"

The identifier of the index for the thesaurus.

" } } }, @@ -3288,7 +3624,7 @@ }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index associated with the thesaurus to describe.

" + "documentation":"

The identifier of the index for the thesaurus.

" }, "Name":{ "shape":"ThesaurusName", @@ -3357,7 +3693,7 @@ }, "EntityList":{ "shape":"DisassociateEntityList", - "documentation":"

Lists users or groups in your Amazon Web Services SSO identity source.

" + "documentation":"

Lists users or groups in your IAM Identity Center identity source.

" } } }, @@ -3366,7 +3702,7 @@ "members":{ "FailedEntityList":{ "shape":"FailedEntityList", - "documentation":"

Lists the users or groups in your Amazon Web Services SSO identity source that failed to properly remove access to your Amazon Kendra experience.

" + "documentation":"

Lists the users or groups in your IAM Identity Center identity source that failed to properly remove access to your Amazon Kendra experience.

" } } }, @@ -3394,7 +3730,7 @@ }, "EntityIds":{ "shape":"EntityIdsList", - "documentation":"

The identifiers of users or groups in your Amazon Web Services SSO identity source. For example, user IDs could be user emails.

" + "documentation":"

The identifiers of users or groups in your IAM Identity Center identity source. For example, user IDs could be user emails.

" } } }, @@ -3403,7 +3739,7 @@ "members":{ "FailedEntityList":{ "shape":"FailedEntityList", - "documentation":"

Lists the users or groups in your Amazon Web Services SSO identity source that failed to properly remove access to your Amazon Kendra experience.

" + "documentation":"

Lists the users or groups in your IAM Identity Center identity source that failed to properly remove access to your Amazon Kendra experience.

" } } }, @@ -3413,7 +3749,7 @@ "members":{ "Id":{ "shape":"DocumentId", - "documentation":"

A unique identifier of the document in the index.

" + "documentation":"

A identifier of the document in the index.

Note, each document ID must be unique per index. You cannot create a data source to index your documents with their unique IDs and then use the BatchPutDocument API to index the same documents, or vice versa. You can delete a data source and then use the BatchPutDocument API to index the same documents, or vice versa.

" }, "Title":{ "shape":"Title", @@ -3430,7 +3766,7 @@ }, "AccessControlList":{ "shape":"PrincipalList", - "documentation":"

Information on user and group access rights, which is used for user context filtering.

" + "documentation":"

Information on principals (users and/or groups) and which documents they should have access to. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

" }, "HierarchicalAccessControlList":{ "shape":"HierarchicalPrincipalList", @@ -3439,6 +3775,10 @@ "ContentType":{ "shape":"ContentType", "documentation":"

The file type of the document in the Blob field.

" + }, + "AccessControlConfigurationId":{ + "shape":"AccessControlConfigurationId", + "documentation":"

The identifier of the access control configuration that you want to apply to the document.

" } }, "documentation":"

A document in an index.

" @@ -3535,7 +3875,7 @@ }, "StringListValue":{ "shape":"DocumentAttributeStringListValue", - "documentation":"

A list of strings.

" + "documentation":"

A list of strings. The default maximum length or number of strings is 10.

" }, "LongValue":{ "shape":"Long", @@ -3596,7 +3936,7 @@ "members":{ "DocumentId":{ "shape":"DocumentId", - "documentation":"

The unique identifier of the document.

" + "documentation":"

The identifier of the document.

" }, "Attributes":{ "shape":"DocumentAttributeList", @@ -3635,14 +3975,14 @@ }, "Relevance":{ "shape":"Relevance", - "documentation":"

Provides manual tuning parameters to determine how the field affects the search results.

" + "documentation":"

Provides tuning parameters to determine how the field affects the search results.

" }, "Search":{ "shape":"Search", "documentation":"

Provides information about how the field is used during a search.

" } }, - "documentation":"

Specifies the properties of a custom index field.

" + "documentation":"

Specifies the properties, such as relevance tuning and searchability, of an index field.

" }, "DocumentMetadataConfigurationList":{ "type":"list", @@ -3664,9 +4004,12 @@ "members":{ "Name":{ "shape":"DocumentMetadataConfigurationName", - "documentation":"

The name of the tuning configuration to override document relevance at the index level.

" + "documentation":"

The name of the index field.

" }, - "Relevance":{"shape":"Relevance"} + "Relevance":{ + "shape":"Relevance", + "documentation":"

Provides information for tuning the relevance of a field in a search. When a query includes terms that match the field, the results are given a boost in the response based on these tuning parameters.

" + } }, "documentation":"

Overrides the document relevance properties of a custom index field.

" }, @@ -3738,14 +4081,14 @@ "members":{ "EntityId":{ "shape":"EntityId", - "documentation":"

The identifier of a user or group in your Amazon Web Services SSO identity source. For example, a user ID could be an email.

" + "documentation":"

The identifier of a user or group in your IAM Identity Center identity source. For example, a user ID could be an email.

" }, "EntityType":{ "shape":"EntityType", "documentation":"

Specifies whether you are configuring a User or a Group.

" } }, - "documentation":"

Provides the configuration information for users or groups in your Amazon Web Services SSO identity source to grant access your Amazon Kendra experience.

" + "documentation":"

Provides the configuration information for users or groups in your IAM Identity Center identity source to grant access your Amazon Kendra experience.

" }, "EntityDisplayData":{ "type":"structure", @@ -3773,6 +4116,12 @@ }, "documentation":"

Information about the user entity.

" }, + "EntityFilter":{ + "type":"list", + "member":{"shape":"AlfrescoEntity"}, + "max":3, + "min":1 + }, "EntityId":{ "type":"string", "max":47, @@ -3794,14 +4143,14 @@ "members":{ "EntityId":{ "shape":"EntityId", - "documentation":"

The identifier of a user or group in your Amazon Web Services SSO identity source. For example, a user ID could be an email.

" + "documentation":"

The identifier of a user or group in your IAM Identity Center identity source. For example, a user ID could be an email.

" }, "Persona":{ "shape":"Persona", - "documentation":"

The persona that defines the specific permissions of the user or group in your Amazon Web Services SSO identity source. The available personas or access roles are Owner and Viewer. For more information on these personas, see Providing access to your search page.

" + "documentation":"

The persona that defines the specific permissions of the user or group in your IAM Identity Center identity source. The available personas or access roles are Owner and Viewer. For more information on these personas, see Providing access to your search page.

" } }, - "documentation":"

Provides the configuration information for users or groups in your Amazon Web Services SSO identity source for access to your Amazon Kendra experience. Specific permissions are defined for each user or group once they are granted access to your Amazon Kendra experience.

" + "documentation":"

Provides the configuration information for users or groups in your IAM Identity Center identity source for access to your Amazon Kendra experience. Specific permissions are defined for each user or group once they are granted access to your Amazon Kendra experience.

" }, "EntityPersonaConfigurationList":{ "type":"list", @@ -3856,7 +4205,7 @@ }, "UserIdentityConfiguration":{ "shape":"UserIdentityConfiguration", - "documentation":"

The Amazon Web Services SSO field name that contains the identifiers of your users, such as their emails.

" + "documentation":"

The IAM Identity Center field name that contains the identifiers of your users, such as their emails.

" } }, "documentation":"

Provides the configuration information for your Amazon Kendra experience. This includes the data source IDs and/or FAQ IDs, and user or group information to grant access to your Amazon Kendra experience.

" @@ -3886,7 +4235,7 @@ "members":{ "EntityId":{ "shape":"EntityId", - "documentation":"

The identifier of a user or group in your Amazon Web Services SSO identity source. For example, a user ID could be an email.

" + "documentation":"

The identifier of a user or group in your IAM Identity Center identity source. For example, a user ID could be an email.

" }, "EntityType":{ "shape":"EntityType", @@ -3897,7 +4246,7 @@ "documentation":"

Information about the user entity.

" } }, - "documentation":"

Summary information for users or groups in your Amazon Web Services SSO identity source with granted access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" + "documentation":"

Summary information for users or groups in your IAM Identity Center identity source with granted access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" }, "ExperienceEntitiesSummaryList":{ "type":"list", @@ -4003,14 +4352,14 @@ "members":{ "EntityId":{ "shape":"EntityId", - "documentation":"

The identifier of the user or group in your Amazon Web Services SSO identity source. For example, a user ID could be an email.

" + "documentation":"

The identifier of the user or group in your IAM Identity Center identity source. For example, a user ID could be an email.

" }, "ErrorMessage":{ "shape":"ErrorMessage", - "documentation":"

The reason the user or group in your Amazon Web Services SSO identity source failed to properly configure with your Amazon Kendra experience.

" + "documentation":"

The reason the user or group in your IAM Identity Center identity source failed to properly configure with your Amazon Kendra experience.

" } }, - "documentation":"

Information on the users or groups in your Amazon Web Services SSO identity source that failed to properly configure with your Amazon Kendra experience.

" + "documentation":"

Information on the users or groups in your IAM Identity Center identity source that failed to properly configure with your Amazon Kendra experience.

" }, "FailedEntityList":{ "type":"list", @@ -4076,7 +4425,7 @@ "members":{ "Id":{ "shape":"FaqId", - "documentation":"

The unique identifier of the FAQ.

" + "documentation":"

The identifier of the FAQ.

" }, "Name":{ "shape":"FaqName", @@ -4103,7 +4452,7 @@ "documentation":"

The code for a language. This shows a supported language for the FAQ document as part of the summary information for FAQs. English is supported by default. For more information on supported languages, including their codes, see Adding documents in languages other than English.

" } }, - "documentation":"

Provides information about a frequently asked questions and answer contained in an index.

" + "documentation":"

Summary information for frequently asked questions and answers included in an index.

" }, "FaqSummaryItems":{ "type":"list", @@ -4199,7 +4548,7 @@ "members":{ "QuerySuggestionsId":{ "shape":"QuerySuggestionsId", - "documentation":"

The unique identifier for a list of query suggestions for an index.

" + "documentation":"

The identifier for a list of query suggestions for an index.

" }, "Suggestions":{ "shape":"SuggestionList", @@ -4258,6 +4607,135 @@ } } }, + "GitHubConfiguration":{ + "type":"structure", + "required":["SecretArn"], + "members":{ + "SaaSConfiguration":{ + "shape":"SaaSConfiguration", + "documentation":"

Configuration information to connect to GitHub Enterprise Cloud (SaaS).

" + }, + "OnPremiseConfiguration":{ + "shape":"OnPremiseConfiguration", + "documentation":"

Configuration information to connect to GitHub Enterprise Server (on premises).

" + }, + "Type":{ + "shape":"Type", + "documentation":"

The type of GitHub service you want to connect to—GitHub Enterprise Cloud (SaaS) or GitHub Enterprise Server (on premises).

" + }, + "SecretArn":{ + "shape":"SecretArn", + "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the key-value pairs required to connect to your GitHub. The secret must contain a JSON structure with the following keys:

  • personalToken—The access token created in GitHub. For more information on creating a token in GitHub, see Using a GitHub data source.

" + }, + "UseChangeLog":{ + "shape":"Boolean", + "documentation":"

TRUE to use the GitHub change log to determine which documents require updating in the index. Depending on the GitHub change log's size, it may take longer for Amazon Kendra to use the change log than to scan all of your documents in GitHub.

" + }, + "GitHubDocumentCrawlProperties":{ + "shape":"GitHubDocumentCrawlProperties", + "documentation":"

Configuration information to include certain types of GitHub content. You can configure to index repository files only, or also include issues and pull requests, comments, and comment attachments.

" + }, + "RepositoryFilter":{ + "shape":"RepositoryNames", + "documentation":"

A list of names of the specific repositories you want to index.

" + }, + "InclusionFolderNamePatterns":{ + "shape":"StringList", + "documentation":"

A list of regular expression patterns to include certain folder names in your GitHub repository or repositories. Folder names that match the patterns are included in the index. Folder names that don't match the patterns are excluded from the index. If a folder matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the folder isn't included in the index.

" + }, + "InclusionFileTypePatterns":{ + "shape":"StringList", + "documentation":"

A list of regular expression patterns to include certain file types in your GitHub repository or repositories. File types that match the patterns are included in the index. File types that don't match the patterns are excluded from the index. If a file matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

" + }, + "InclusionFileNamePatterns":{ + "shape":"StringList", + "documentation":"

A list of regular expression patterns to include certain file names in your GitHub repository or repositories. File names that match the patterns are included in the index. File names that don't match the patterns are excluded from the index. If a file matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

" + }, + "ExclusionFolderNamePatterns":{ + "shape":"StringList", + "documentation":"

A list of regular expression patterns to exclude certain folder names in your GitHub repository or repositories. Folder names that match the patterns are excluded from the index. Folder names that don't match the patterns are included in the index. If a folder matches both an exclusion and inclusion pattern, the exclusion pattern takes precedence and the folder isn't included in the index.

" + }, + "ExclusionFileTypePatterns":{ + "shape":"StringList", + "documentation":"

A list of regular expression patterns to exclude certain file types in your GitHub repository or repositories. File types that match the patterns are excluded from the index. File types that don't match the patterns are included in the index. If a file matches both an exclusion and inclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

" + }, + "ExclusionFileNamePatterns":{ + "shape":"StringList", + "documentation":"

A list of regular expression patterns to exclude certain file names in your GitHub repository or repositories. File names that match the patterns are excluded from the index. File names that don't match the patterns are included in the index. If a file matches both an exclusion and inclusion pattern, the exclusion pattern takes precedence and the file isn't included in the index.

" + }, + "VpcConfiguration":{ + "shape":"DataSourceVpcConfiguration", + "documentation":"

Configuration information of an Amazon Virtual Private Cloud to connect to your GitHub. For more information, see Configuring a VPC.

" + }, + "GitHubRepositoryConfigurationFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map GitHub repository attributes or field names to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to GitHub fields. For more information, see Mapping data source fields. The GitHub data source field names must exist in your GitHub custom metadata.

" + }, + "GitHubCommitConfigurationFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of GitHub commits to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to GitHub fields. For more information, see Mapping data source fields. The GitHub data source field names must exist in your GitHub custom metadata.

" + }, + "GitHubIssueDocumentConfigurationFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of GitHub issues to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to GitHub fields. For more information, see Mapping data source fields. The GitHub data source field names must exist in your GitHub custom metadata.

" + }, + "GitHubIssueCommentConfigurationFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of GitHub issue comments to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to GitHub fields. For more information, see Mapping data source fields. The GitHub data source field names must exist in your GitHub custom metadata.

" + }, + "GitHubIssueAttachmentConfigurationFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of GitHub issue attachments to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to GitHub fields. For more information, see Mapping data source fields. The GitHub data source field names must exist in your GitHub custom metadata.

" + }, + "GitHubPullRequestCommentConfigurationFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of GitHub pull request comments to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to GitHub fields. For more information, see Mapping data source fields. The GitHub data source field names must exist in your GitHub custom metadata.

" + }, + "GitHubPullRequestDocumentConfigurationFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of GitHub pull requests to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to GitHub fields. For more information, see Mapping data source fields. The GitHub data source field names must exist in your GitHub custom metadata.

" + }, + "GitHubPullRequestDocumentAttachmentConfigurationFieldMappings":{ + "shape":"DataSourceToIndexFieldMappingList", + "documentation":"

A list of DataSourceToIndexFieldMapping objects that map attributes or field names of GitHub pull request attachments to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to GitHub fields. For more information, see Mapping data source fields. The GitHub data source field names must exist in your GitHub custom metadata.

" + } + }, + "documentation":"

Provides the configuration information to connect to GitHub as your data source.

" + }, + "GitHubDocumentCrawlProperties":{ + "type":"structure", + "members":{ + "CrawlRepositoryDocuments":{ + "shape":"Boolean", + "documentation":"

TRUE to index all files with a repository.

" + }, + "CrawlIssue":{ + "shape":"Boolean", + "documentation":"

TRUE to index all issues within a repository.

" + }, + "CrawlIssueComment":{ + "shape":"Boolean", + "documentation":"

TRUE to index all comments on issues.

" + }, + "CrawlIssueCommentAttachment":{ + "shape":"Boolean", + "documentation":"

TRUE to include all comment attachments for issues.

" + }, + "CrawlPullRequest":{ + "shape":"Boolean", + "documentation":"

TRUE to index all pull requests within a repository.

" + }, + "CrawlPullRequestComment":{ + "shape":"Boolean", + "documentation":"

TRUE to index all comments on pull requests.

" + }, + "CrawlPullRequestCommentAttachment":{ + "shape":"Boolean", + "documentation":"

TRUE to include all comment attachments for pull requests.

" + } + }, + "documentation":"

Provides the configuration information to include certain types of GitHub content. You can configure to index repository files only, or also include issues and pull requests, comments, and comment attachments.

" + }, "GoogleDriveConfiguration":{ "type":"structure", "required":["SecretArn"], @@ -4321,7 +4799,7 @@ "documentation":"

If you have more than 1000 users and/or sub groups for a single group, you need to provide the path to the S3 file that lists your users and sub groups for a group. Your sub groups can contain more than 1000 users, but the list of sub groups that belong to a group (and/or users) must be no more than 1000.

You can download this example S3 file that uses the correct format for listing group members. Note, dataSourceId is optional. The value of type for a group is always GROUP and for a user it is always USER.

" } }, - "documentation":"

A list of users or sub groups that belong to a group. Users and groups are useful for filtering search results to different users based on their group's access to documents.

" + "documentation":"

A list of users or sub groups that belong to a group. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

" }, "GroupOrderingIdSummaries":{ "type":"list", @@ -4352,21 +4830,21 @@ "documentation":"

The reason an action could not be processed. An action can be a PUT or DELETE action for mapping users to their groups.

" } }, - "documentation":"

Information on the processing of PUT and DELETE actions for mapping users to their groups.

" + "documentation":"

Summary information on the processing of PUT and DELETE actions for mapping users to their groups.

" }, "GroupSummary":{ "type":"structure", "members":{ "GroupId":{ "shape":"GroupId", - "documentation":"

The identifier of the group you want group summary information on.

" + "documentation":"

The identifier of the group you want group summary information on.

" }, "OrderingId":{ "shape":"PrincipalOrderingId", - "documentation":"

The timestamp identifier used for the latest PUT or DELETE action.

" + "documentation":"

The timestamp identifier used for the latest PUT or DELETE action.

" } }, - "documentation":"

Group summary information.

" + "documentation":"

Summary information for groups.

" }, "Groups":{ "type":"list", @@ -4478,15 +4956,15 @@ "members":{ "Name":{ "shape":"IndexName", - "documentation":"

The identifier of the index.

" + "documentation":"

The name of the index.

" }, "Id":{ "shape":"IndexId", - "documentation":"

A unique identifier for the index. Use this to identify the index when you are using APIs such as Query, DescribeIndex, UpdateIndex, and DeleteIndex.

" + "documentation":"

A identifier for the index. Use this to identify the index when you are using APIs such as Query, DescribeIndex, UpdateIndex, and DeleteIndex.

" }, "Edition":{ "shape":"IndexEdition", - "documentation":"

Indicates whether the index is a enterprise edition index or a developer edition index.

" + "documentation":"

Indicates whether the index is a Enterprise Edition index or a Developer Edition index.

" }, "CreatedAt":{ "shape":"Timestamp", @@ -4501,7 +4979,7 @@ "documentation":"

The current status of the index. When the status is ACTIVE, the index is ready to search.

" } }, - "documentation":"

A summary of information on the configuration of an index.

" + "documentation":"

Summary information on the configuration of an index.

" }, "IndexConfigurationSummaryList":{ "type":"list", @@ -4603,7 +5081,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

An issue occurred with the internal server used for your Amazon Kendra service. Please wait a few minutes and try again, or contact Support for help.

", "exception":true, "fault":true }, @@ -4623,7 +5101,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

The input to the request is not valid.

", + "documentation":"

The input to the request is not valid. Please provide the correct input and try again.

", "exception":true }, "IssueSubEntity":{ @@ -4665,15 +5143,15 @@ "members":{ "JiraAccountUrl":{ "shape":"JiraAccountUrl", - "documentation":"

The URL of the Jira account. For example, company.attlassian.net or https://jira.company.com. You can find your Jira account URL in the URL of your profile page for Jira desktop.

" + "documentation":"

The URL of the Jira account. For example, company.atlassian.net or https://jira.company.com. You can find your Jira account URL in the URL of your profile page for Jira desktop.

" }, "SecretArn":{ "shape":"SecretArn", - "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the key-value pairs required to connect to your Jira data source. The secret must contain a JSON structure with the following keys:

  • jira-id—The Active Directory user name, along with the Domain Name System (DNS) domain name. For example, user@corp.example.com.

  • jiraCredentials—The password of the Jira account user.

" + "documentation":"

The Amazon Resource Name (ARN) of a secret in Secrets Manager contains the key-value pairs required to connect to your Jira data source. The secret must contain a JSON structure with the following keys:

  • jiraId—The Jira username.

  • jiraCredentials—The Jira API token. For more information on creating an API token in Jira, see Using a Jira data source.

" }, "UseChangeLog":{ "shape":"Boolean", - "documentation":"

Specify to use the change log option to update your index.

" + "documentation":"

TRUE to use the Jira change log to determine which documents require updating in the index. Depending on the change log's size, it may take longer for Amazon Kendra to use the change log than to scan all of your documents in Jira.

" }, "Project":{ "shape":"Project", @@ -4723,7 +5201,8 @@ "shape":"DataSourceVpcConfiguration", "documentation":"

Configuration information for an Amazon Virtual Private Cloud to connect to your Jira. Your Jira account must reside inside your VPC.

" } - } + }, + "documentation":"

Provides the configuration information to connect to Jira as your data source.

" }, "JiraStatus":{ "type":"list", @@ -4808,6 +5287,38 @@ "min":2, "pattern":"[a-zA-Z-]*" }, + "ListAccessControlConfigurationsRequest":{ + "type":"structure", + "required":["IndexId"], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index for the access control configuration.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If the previous response was incomplete (because there's more data to retrieve), Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of access control configurations.

" + }, + "MaxResults":{ + "shape":"MaxResultsIntegerForListAccessControlConfigurationsRequest", + "documentation":"

The maximum number of access control configurations to return.

" + } + } + }, + "ListAccessControlConfigurationsResponse":{ + "type":"structure", + "required":["AccessControlConfigurations"], + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

If the response is truncated, Amazon Kendra returns this token, which you can use in the subsequent request to retrieve the next set of access control configurations.

" + }, + "AccessControlConfigurations":{ + "shape":"AccessControlConfigurationSummaryList", + "documentation":"

The details of your access control configurations.

" + } + } + }, "ListDataSourceSyncJobsRequest":{ "type":"structure", "required":[ @@ -4817,11 +5328,11 @@ "members":{ "Id":{ "shape":"DataSourceId", - "documentation":"

The identifier of the data source.

" + "documentation":"

The identifier of the data source connector.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the data source.

" + "documentation":"

The identifier of the index used with the data source connector.

" }, "NextToken":{ "shape":"NextToken", @@ -4833,11 +5344,11 @@ }, "StartTimeFilter":{ "shape":"TimeRange", - "documentation":"

When specified, the synchronization jobs returned in the list are limited to jobs between the specified dates.

" + "documentation":"

When specified, the synchronization jobs returned in the list are limited to jobs between the specified dates.

" }, "StatusFilter":{ "shape":"DataSourceSyncJobStatus", - "documentation":"

When specified, only returns synchronization jobs with the Status field equal to the specified status.

" + "documentation":"

Only returns synchronization jobs with the Status field equal to the specified status.

" } } }, @@ -4846,7 +5357,7 @@ "members":{ "History":{ "shape":"DataSourceSyncJobHistoryList", - "documentation":"

A history of synchronization jobs for the data source.

" + "documentation":"

A history of synchronization jobs for the data source connector.

" }, "NextToken":{ "shape":"NextToken", @@ -4860,15 +5371,15 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the data source.

" + "documentation":"

The identifier of the index used with one or more data source connectors.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If the previous response was incomplete (because there is more data to retrieve), Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of data sources (DataSourceSummaryItems).

" + "documentation":"

If the previous response was incomplete (because there is more data to retrieve), Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of data source connectors.

" }, "MaxResults":{ "shape":"MaxResultsIntegerForListDataSourcesRequest", - "documentation":"

The maximum number of data sources to return.

" + "documentation":"

The maximum number of data source connectors to return.

" } } }, @@ -4877,11 +5388,11 @@ "members":{ "SummaryItems":{ "shape":"DataSourceSummaryList", - "documentation":"

An array of summary information for one or more data sources.

" + "documentation":"

An array of summary information for one or more data source connector.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If the response is truncated, Amazon Kendra returns this token that you can use in the subsequent request to retrieve the next set of data sources.

" + "documentation":"

If the response is truncated, Amazon Kendra returns this token that you can use in the subsequent request to retrieve the next set of data source connectors.

" } } }, @@ -5066,11 +5577,11 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

If the previous response was incomplete (because there is more data to retrieve), Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of indexes (DataSourceSummaryItems).

" + "documentation":"

If the previous response was incomplete (because there is more data to retrieve), Amazon Kendra returns a pagination token in the response. You can use this pagination token to retrieve the next set of indexes.

" }, "MaxResults":{ "shape":"MaxResultsIntegerForListIndicesRequest", - "documentation":"

The maximum number of data sources to return.

" + "documentation":"

The maximum number of indices to return.

" } } }, @@ -5147,7 +5658,7 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index associated with the thesaurus to list.

" + "documentation":"

The identifier of the index with one or more thesauri.

" }, "NextToken":{ "shape":"NextToken", @@ -5188,6 +5699,11 @@ "max":1000, "min":1 }, + "MaxResultsIntegerForListAccessControlConfigurationsRequest":{ + "type":"integer", + "max":100, + "min":1 + }, "MaxResultsIntegerForListDataSourceSyncJobsRequest":{ "type":"integer", "max":10, @@ -5327,6 +5843,29 @@ "min":1 }, "ObjectBoolean":{"type":"boolean"}, + "OnPremiseConfiguration":{ + "type":"structure", + "required":[ + "HostUrl", + "OrganizationName", + "SslCertificateS3Path" + ], + "members":{ + "HostUrl":{ + "shape":"Url", + "documentation":"

The GitHub host URL or API endpoint URL. For example, https://on-prem-host-url/api/v3/

" + }, + "OrganizationName":{ + "shape":"OrganizationName", + "documentation":"

The name of the organization of the GitHub Enterprise Server (in-premise) account you want to connect to. You can find your organization name by logging into GitHub desktop and selecting Your organizations under your profile picture dropdown.

" + }, + "SslCertificateS3Path":{ + "shape":"S3Path", + "documentation":"

The path to the SSL certificate stored in an Amazon S3 bucket. You use this to connect to GitHub if you require a secure SSL connection.

You can simply generate a self-signed X509 certificate on any computer using OpenSSL. For an example of using OpenSSL to create an X509 certificate, see Create and sign an X509 certificate.

" + } + }, + "documentation":"

Provides the configuration information to connect to GitHub Enterprise Server (on premises).

" + }, "OneDriveConfiguration":{ "type":"structure", "required":[ @@ -5361,7 +5900,7 @@ }, "DisableLocalGroups":{ "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether local groups are disabled (True) or enabled (False).

" + "documentation":"

TRUE to disable local groups information.

" } }, "documentation":"

Provides the configuration information to connect to OneDrive as your data source.

" @@ -5405,6 +5944,12 @@ "min":12, "pattern":"d-[0-9a-fA-F]{10}" }, + "OrganizationName":{ + "type":"string", + "max":60, + "min":1, + "pattern":"^[A-Za-z0-9_.-]+$" + }, "Persona":{ "type":"string", "enum":[ @@ -5417,11 +5962,11 @@ "members":{ "EntityId":{ "shape":"EntityId", - "documentation":"

The identifier of a user or group in your Amazon Web Services SSO identity source. For example, a user ID could be an email.

" + "documentation":"

The identifier of a user or group in your IAM Identity Center identity source. For example, a user ID could be an email.

" }, "Persona":{ "shape":"Persona", - "documentation":"

The persona that defines the specific permissions of the user or group in your Amazon Web Services SSO identity source. The available personas or access roles are Owner and Viewer. For more information on these personas, see Providing access to your search page.

" + "documentation":"

The persona that defines the specific permissions of the user or group in your IAM Identity Center identity source. The available personas or access roles are Owner and Viewer. For more information on these personas, see Providing access to your search page.

" }, "CreatedAt":{ "shape":"Timestamp", @@ -5432,7 +5977,7 @@ "documentation":"

The date-time the summary information was last updated.

" } }, - "documentation":"

Summary information for users or groups in your Amazon Web Services SSO identity source. This applies to users and groups with specific permissions that define their level of access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" + "documentation":"

Summary information for users or groups in your IAM Identity Center identity source. This applies to users and groups with specific permissions that define their level of access to your Amazon Kendra experience. You can create an Amazon Kendra experience such as a search application. For more information on creating a search application experience, see Building a search experience with no code.

" }, "PersonasSummaryList":{ "type":"list", @@ -5461,14 +6006,14 @@ }, "Access":{ "shape":"ReadAccessType", - "documentation":"

Whether to allow or deny access to the principal.

" + "documentation":"

Whether to allow or deny document access to the principal.

" }, "DataSourceId":{ "shape":"DataSourceId", "documentation":"

The identifier of the data source the principal should access documents from.

" } }, - "documentation":"

Provides user and group information for document access filtering.

" + "documentation":"

Provides user and group information for user context filtering.

" }, "PrincipalList":{ "type":"list", @@ -5593,11 +6138,11 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

The unique identifier of the index to search. The identifier is returned in the response from the CreateIndex API.

" + "documentation":"

The identifier of the index to search. The identifier is returned in the response from the CreateIndex API.

" }, "QueryText":{ "shape":"QueryText", - "documentation":"

The text to search for.

" + "documentation":"

The input query text for the search. Amazon Kendra truncates queries at 30 token words, which excludes punctuation and stop words. Truncation still applies if you use Boolean or more advanced, complex queries.

" }, "AttributeFilter":{ "shape":"AttributeFilter", @@ -5650,7 +6195,7 @@ "members":{ "QueryId":{ "shape":"QueryId", - "documentation":"

The unique identifier for the search. You use QueryId to identify the search when using the feedback API.

" + "documentation":"

The identifier for the search. You use QueryId to identify the search when using the feedback API.

" }, "ResultItems":{ "shape":"QueryResultItemList", @@ -5674,16 +6219,27 @@ } } }, + "QueryResultFormat":{ + "type":"string", + "enum":[ + "TABLE", + "TEXT" + ] + }, "QueryResultItem":{ "type":"structure", "members":{ "Id":{ "shape":"ResultId", - "documentation":"

The unique identifier for the query result.

" + "documentation":"

The identifier for the query result.

" }, "Type":{ "shape":"QueryResultType", - "documentation":"

The type of document.

" + "documentation":"

The type of document within the response. For example, a response could include a question-answer that's relevant to the query.

" + }, + "Format":{ + "shape":"QueryResultFormat", + "documentation":"

If the Type of document within the response is ANSWER, then it is either a TABLE answer or TEXT answer. If it's a table answer, a table excerpt is returned in TableExcerpt. If it's a text answer, a text excerpt is returned in DocumentExcerpt.

" }, "AdditionalAttributes":{ "shape":"AdditionalResultAttributeList", @@ -5691,7 +6247,7 @@ }, "DocumentId":{ "shape":"DocumentId", - "documentation":"

The unique identifier for the document.

" + "documentation":"

The identifier for the document.

" }, "DocumentTitle":{ "shape":"TextWithHighlights", @@ -5715,7 +6271,11 @@ }, "FeedbackToken":{ "shape":"FeedbackToken", - "documentation":"

A token that identifies a particular result from a particular query. Use this token to provide click-through feedback for the result. For more information, see Submitting feedback .

" + "documentation":"

A token that identifies a particular result from a particular query. Use this token to provide click-through feedback for the result. For more information, see Submitting feedback .

" + }, + "TableExcerpt":{ + "shape":"TableExcerpt", + "documentation":"

An excerpt from a table within a document.

" } }, "documentation":"

A single query result.

A query result contains information about a document returned by the query. This includes the original location of the document, a list of attributes assigned to the document, and relevant text from the document that satisfies the query.

" @@ -5815,27 +6375,27 @@ "members":{ "Domain":{ "shape":"Domain", - "documentation":"

The Quip site domain.

" + "documentation":"

The Quip site domain. For example, https://quip-company.quipdomain.com/browse. The domain in this example is \"quipdomain\".

" }, "SecretArn":{ "shape":"SecretArn", - "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the key-value pairs that are required to connect to your Quip. The secret must contain a JSON structure with the following keys:

" + "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the key-value pairs that are required to connect to your Quip. The secret must contain a JSON structure with the following keys:

" }, "CrawlFileComments":{ "shape":"Boolean", - "documentation":"

Specify whether to crawl file comments in Quip. You can specify one or more of these options.

" + "documentation":"

TRUE to index file comments.

" }, "CrawlChatRooms":{ "shape":"Boolean", - "documentation":"

Specify whether to crawl chat rooms in Quip. You can specify one or more of these options.

" + "documentation":"

TRUE to index the contents of chat rooms.

" }, "CrawlAttachments":{ "shape":"Boolean", - "documentation":"

Specify whether to crawl attachments in Quip. You can specify one or more of these options.

" + "documentation":"

TRUE to index attachments.

" }, "FolderIds":{ "shape":"FolderIdList", - "documentation":"

The identifier of the Quip folder IDs to index.

" + "documentation":"

The identifiers of the Quip folders you want to index. You can find the folder ID in your browser URL when you access your folder in Quip. For example, https://quip-company.quipdomain.com/zlLuOVNSarTL/folder-name. The folder ID in this example is \"zlLuOVNSarTL\".

" }, "ThreadFieldMappings":{ "shape":"DataSourceToIndexFieldMappingList", @@ -5895,7 +6455,7 @@ "documentation":"

A list of values that should be given a different boost when they appear in the result list. For example, if you are boosting a field called \"department,\" query terms that match the department field are boosted in the result. However, you can add entries from the department field to boost documents with those values higher.

For example, you can add entries to the map with names of departments. If you add \"HR\",5 and \"Legal\",3 those departments are given special attention when they appear in the metadata of a document. When those terms appear they are given the specified importance instead of the regular importance for the boost.

" } }, - "documentation":"

Provides information for manually tuning the relevance of a field in a search. When a query includes terms that match the field, the results are given a boost in the response based on these tuning parameters.

" + "documentation":"

Provides information for tuning the relevance of a field in a search. When a query includes terms that match the field, the results are given a boost in the response based on these tuning parameters.

" }, "RelevanceFeedback":{ "type":"structure", @@ -5906,7 +6466,7 @@ "members":{ "ResultId":{ "shape":"ResultId", - "documentation":"

The unique identifier of the search result that the user provided relevance feedback for.

" + "documentation":"

The identifier of the search result that the user provided relevance feedback for.

" }, "RelevanceValue":{ "shape":"RelevanceType", @@ -5926,12 +6486,22 @@ "NOT_RELEVANT" ] }, + "RepositoryName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[A-Za-z0-9_.-]+$" + }, + "RepositoryNames":{ + "type":"list", + "member":{"shape":"RepositoryName"} + }, "ResourceAlreadyExistException":{ "type":"structure", "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

The resource you want to use already exists. Please check you have provided the correct resource and try again.

", "exception":true }, "ResourceInUseException":{ @@ -5939,7 +6509,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

The resource you want to use is currently in use. Please check you have provided the correct resource and try again.

", "exception":true }, "ResourceNotFoundException":{ @@ -5947,7 +6517,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

The resource you want to use doesn’t exist. Please check you have provided the correct resource and try again.

", "exception":true }, "ResourceUnavailableException":{ @@ -5955,7 +6525,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

The resource you want to use isn't available. Please check you have provided the correct resource and try again.

", "exception":true }, "ResultId":{ @@ -6026,6 +6596,24 @@ }, "documentation":"

Information required to find a specific file in an Amazon S3 bucket.

" }, + "SaaSConfiguration":{ + "type":"structure", + "required":[ + "OrganizationName", + "HostUrl" + ], + "members":{ + "OrganizationName":{ + "shape":"OrganizationName", + "documentation":"

The name of the organization of the GitHub Enterprise Cloud (SaaS) account you want to connect to. You can find your organization name by logging into GitHub desktop and selecting Your organizations under your profile picture dropdown.

" + }, + "HostUrl":{ + "shape":"Url", + "documentation":"

The GitHub host URL or API endpoint URL. For example, https://api.github.com.

" + } + }, + "documentation":"

Provides the configuration information to connect to GitHub Enterprise Cloud (SaaS).

" + }, "SalesforceChatterFeedConfiguration":{ "type":"structure", "required":["DocumentDataFieldName"], @@ -6354,10 +6942,10 @@ "members":{ "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

The identifier of the KMScustomer master key (CMK). Amazon Kendra doesn't support asymmetric CMKs.

" + "documentation":"

The identifier of the KMS key. Amazon Kendra doesn't support asymmetric keys.

" } }, - "documentation":"

Provides the identifier of the KMScustomer master key (CMK) used to encrypt data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric CMKs.

" + "documentation":"

Provides the identifier of the KMS key used to encrypt data indexed by Amazon Kendra. Amazon Kendra doesn't support asymmetric keys.

" }, "ServiceNowAuthenticationType":{ "type":"string", @@ -6387,7 +6975,7 @@ }, "SecretArn":{ "shape":"SecretArn", - "documentation":"

The Amazon Resource Name (ARN) of the Secrets Manager secret that contains the user name and password required to connect to the ServiceNow instance.

" + "documentation":"

The Amazon Resource Name (ARN) of the Secrets Manager secret that contains the user name and password required to connect to the ServiceNow instance. You can also provide OAuth authentication credentials of user name, password, client ID, and client secret. For more information, see Using a ServiceNow data source.

" }, "ServiceNowBuildVersion":{ "shape":"ServiceNowBuildVersionType", @@ -6403,7 +6991,7 @@ }, "AuthenticationType":{ "shape":"ServiceNowAuthenticationType", - "documentation":"

The type of authentication used to connect to the ServiceNow instance. If you choose HTTP_BASIC, Amazon Kendra is authenticated using the user name and password provided in the Secrets Manager secret in the SecretArn field. When you choose OAUTH2, Amazon Kendra is authenticated using the OAuth token and secret provided in the Secrets Manager secret, and the user name and password are used to determine which information Amazon Kendra has access to.

When you use OAUTH2 authentication, you must generate a token and a client secret using the ServiceNow console. For more information, see Using a ServiceNow data source.

" + "documentation":"

The type of authentication used to connect to the ServiceNow instance. If you choose HTTP_BASIC, Amazon Kendra is authenticated using the user name and password provided in the Secrets Manager secret in the SecretArn field. If you choose OAUTH2, Amazon Kendra is authenticated using the credentials of client ID, client secret, user name and password.

When you use OAUTH2 authentication, you must generate a token and a client secret using the ServiceNow console. For more information, see Using a ServiceNow data source.

" } }, "documentation":"

Provides the configuration information to connect to ServiceNow as your data source.

" @@ -6420,7 +7008,7 @@ "members":{ "CrawlAttachments":{ "shape":"Boolean", - "documentation":"

Indicates whether Amazon Kendra should index attachments to knowledge articles.

" + "documentation":"

TRUE to index attachments to knowledge articles.

" }, "IncludeAttachmentFilePatterns":{ "shape":"DataSourceInclusionsExclusionsStrings", @@ -6461,7 +7049,7 @@ "members":{ "CrawlAttachments":{ "shape":"Boolean", - "documentation":"

Indicates whether Amazon Kendra should crawl attachments to the service catalog items.

" + "documentation":"

TRUE to index attachments to service catalog items.

" }, "IncludeAttachmentFilePatterns":{ "shape":"DataSourceInclusionsExclusionsStrings", @@ -6491,7 +7079,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

You have exceeded the set limits for your Amazon Kendra service. Please see Quotas[hyperlink Kendra Quotas pg] for more information, or contact Support to inquire about an increase of limits.

", "exception":true }, "SharePointConfiguration":{ @@ -6504,19 +7092,19 @@ "members":{ "SharePointVersion":{ "shape":"SharePointVersion", - "documentation":"

The version of Microsoft SharePoint that you are using as a data source.

" + "documentation":"

The version of Microsoft SharePoint that you use.

" }, "Urls":{ "shape":"SharePointUrlList", - "documentation":"

The URLs of the Microsoft SharePoint site that contains the documents that should be indexed.

" + "documentation":"

The Microsoft SharePoint site URLs for the documents you want to index.

" }, "SecretArn":{ "shape":"SecretArn", - "documentation":"

The Amazon Resource Name (ARN) of credentials stored in Secrets Manager. The credentials should be a user/password pair. If you use SharePoint Server, you also need to provide the sever domain name as part of the credentials. For more information, see Using a Microsoft SharePoint Data Source. For more information about Secrets Manager see What Is Secrets Manager in the Secrets Manager user guide.

" + "documentation":"

The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the user name and password required to connect to the SharePoint instance. If you use SharePoint Server, you also need to provide the sever domain name as part of the credentials. For more information, see Using a Microsoft SharePoint Data Source.

You can also provide OAuth authentication credentials of user name, password, client ID, and client secret. For more information, see Using a SharePoint data source.

" }, "CrawlAttachments":{ "shape":"Boolean", - "documentation":"

TRUE to include attachments to documents stored in your Microsoft SharePoint site in the index; otherwise, FALSE.

" + "documentation":"

TRUE to index document attachments.

" }, "UseChangeLog":{ "shape":"Boolean", @@ -6524,13 +7112,16 @@ }, "InclusionPatterns":{ "shape":"DataSourceInclusionsExclusionsStrings", - "documentation":"

A list of regular expression patterns to include certain documents in your SharePoint. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the document isn't included in the index.

The regex is applied to the display URL of the SharePoint document.

" + "documentation":"

A list of regular expression patterns to include certain documents in your SharePoint. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the document isn't included in the index.

The regex applies to the display URL of the SharePoint document.

" }, "ExclusionPatterns":{ "shape":"DataSourceInclusionsExclusionsStrings", - "documentation":"

A list of regular expression patterns to exclude certain documents in your SharePoint. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the document isn't included in the index.

The regex is applied to the display URL of the SharePoint document.

" + "documentation":"

A list of regular expression patterns to exclude certain documents in your SharePoint. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the document isn't included in the index.

The regex applies to the display URL of the SharePoint document.

" + }, + "VpcConfiguration":{ + "shape":"DataSourceVpcConfiguration", + "documentation":"

Configuration information for an Amazon Virtual Private Cloud to connect to your Microsoft SharePoint. For more information, see Configuring a VPC.

" }, - "VpcConfiguration":{"shape":"DataSourceVpcConfiguration"}, "FieldMappings":{ "shape":"DataSourceToIndexFieldMappingList", "documentation":"

A list of DataSourceToIndexFieldMapping objects that map SharePoint data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the UpdateIndex API before you map to SharePoint fields. For more information, see Mapping data source fields. The SharePoint data source field names must exist in your SharePoint custom metadata.

" @@ -6541,12 +7132,30 @@ }, "DisableLocalGroups":{ "shape":"Boolean", - "documentation":"

A Boolean value that specifies whether local groups are disabled (True) or enabled (False).

" + "documentation":"

TRUE to disable local groups information.

" }, - "SslCertificateS3Path":{"shape":"S3Path"} + "SslCertificateS3Path":{ + "shape":"S3Path", + "documentation":"

The path to the SSL certificate stored in an Amazon S3 bucket. You use this to connect to SharePoint Server if you require a secure SSL connection.

You can simply generate a self-signed X509 certificate on any computer using OpenSSL. For an example of using OpenSSL to create an X509 certificate, see Create and sign an X509 certificate.

" + }, + "AuthenticationType":{ + "shape":"SharePointOnlineAuthenticationType", + "documentation":"

Whether you want to connect to SharePoint using basic authentication of user name and password, or OAuth authentication of user name, password, client ID, and client secret. You can use OAuth authentication for SharePoint Online.

" + }, + "ProxyConfiguration":{ + "shape":"ProxyConfiguration", + "documentation":"

Configuration information to connect to your Microsoft SharePoint site URLs via instance via a web proxy. You can use this option for SharePoint Server.

You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is \"a.example.com\" and the port is 443, the standard port for HTTPS.

Web proxy credentials are optional and you can use them to connect to a web proxy server that requires basic authentication of user name and password. To store web proxy credentials, you use a secret in Secrets Manager.

It is recommended that you follow best security practices when configuring your web proxy. This includes setting up throttling, setting up logging and monitoring, and applying security patches on a regular basis. If you use your web proxy with multiple data sources, sync jobs that occur at the same time could strain the load on your proxy. It is recommended you prepare your proxy beforehand for any security and load requirements.

" + } }, "documentation":"

Provides the configuration information to connect to Microsoft SharePoint as your data source.

" }, + "SharePointOnlineAuthenticationType":{ + "type":"string", + "enum":[ + "HTTP_BASIC", + "OAUTH2" + ] + }, "SharePointUrlList":{ "type":"list", "member":{"shape":"Url"}, @@ -6558,7 +7167,8 @@ "enum":[ "SHAREPOINT_2013", "SHAREPOINT_2016", - "SHAREPOINT_ONLINE" + "SHAREPOINT_ONLINE", + "SHAREPOINT_2019" ] }, "SharedDriveId":{ @@ -6573,6 +7183,12 @@ "min":10, "pattern":"(20\\d{2})-(0?[1-9]|1[0-2])-(0?[1-9]|1\\d|2\\d|3[01])" }, + "SiteId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[A-Za-z0-9-]+$" + }, "SiteMap":{ "type":"string", "max":2048, @@ -6596,6 +7212,12 @@ "max":3, "min":0 }, + "SiteUrl":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^https:\\/\\/[a-zA-Z0-9_\\-\\.]+$" + }, "SlackConfiguration":{ "type":"structure", "required":[ @@ -6764,11 +7386,11 @@ "members":{ "Id":{ "shape":"DataSourceId", - "documentation":"

The identifier of the data source to synchronize.

" + "documentation":"

The identifier of the data source connector to synchronize.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the data source.

" + "documentation":"

The identifier of the index used with the data source connector.

" } } }, @@ -6786,7 +7408,7 @@ "members":{ "DocumentId":{ "shape":"DocumentId", - "documentation":"

The unique identifier of the document.

" + "documentation":"

The identifier of the document.

" }, "DocumentStatus":{ "shape":"DocumentStatus", @@ -6812,11 +7434,11 @@ "members":{ "Id":{ "shape":"DataSourceId", - "documentation":"

The identifier of the data source for which to stop the synchronization jobs.

" + "documentation":"

The identifier of the data source connector for which to stop the synchronization jobs.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the data source.

" + "documentation":"

The identifier of the index used with the data source connector.

" } } }, @@ -6829,6 +7451,10 @@ "max":2048, "min":1 }, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, "SubmitFeedbackRequest":{ "type":"structure", "required":[ @@ -6876,11 +7502,11 @@ "members":{ "Id":{ "shape":"ResultId", - "documentation":"

The unique UUID (universally unique identifier) of a single query suggestion.

" + "documentation":"

The UUID (universally unique identifier) of a single query suggestion.

" }, "Value":{ "shape":"SuggestionValue", - "documentation":"

The value for the unique UUID (universally unique identifier) of a single query suggestion.

The value is the text string of a suggestion.

" + "documentation":"

The value for the UUID (universally unique identifier) of a single query suggestion.

The value is the text string of a suggestion.

" } }, "documentation":"

A single query suggestion.

" @@ -6935,12 +7561,66 @@ }, "documentation":"

The SuggestionTextWithHighlights structure information.

" }, + "TableCell":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"String", + "documentation":"

The actual value or content within a table cell. A table cell could contain a date value of a year, or a string value of text, for example.

" + }, + "TopAnswer":{ + "shape":"Boolean", + "documentation":"

TRUE if the response of the table cell is the top answer. This is the cell value or content with the highest confidence score or is the most relevant to the query.

" + }, + "Highlighted":{ + "shape":"Boolean", + "documentation":"

TRUE means that the table cell has a high enough confidence and is relevant to the query, so the value or content should be highlighted.

" + }, + "Header":{ + "shape":"Boolean", + "documentation":"

TRUE means that the table cell should be treated as a header.

" + } + }, + "documentation":"

Provides information about a table cell in a table excerpt.

" + }, + "TableCellList":{ + "type":"list", + "member":{"shape":"TableCell"} + }, + "TableExcerpt":{ + "type":"structure", + "members":{ + "Rows":{ + "shape":"TableRowList", + "documentation":"

A list of rows in the table excerpt.

" + }, + "TotalNumberOfRows":{ + "shape":"Integer", + "documentation":"

A count of the number of rows in the original table within the document.

" + } + }, + "documentation":"

An excerpt from a table within a document. The table excerpt displays up to five columns and three rows, depending on how many table cells are relevant to the query and how many columns are available in the original table. The top most relevant cell is displayed in the table excerpt, along with the next most relevant cells.

" + }, "TableName":{ "type":"string", "max":100, "min":1, "pattern":"^[a-zA-Z][a-zA-Z0-9_]*$" }, + "TableRow":{ + "type":"structure", + "members":{ + "Cells":{ + "shape":"TableCellList", + "documentation":"

A list of table cells in a row.

" + } + }, + "documentation":"

Information about a row in a table excerpt.

" + }, + "TableRowList":{ + "type":"list", + "member":{"shape":"TableRow"} + }, "Tag":{ "type":"structure", "required":[ @@ -7009,6 +7689,23 @@ "min":1, "pattern":"[A-Z0-9]*" }, + "Template":{ + "type":"structure", + "members":{ + }, + "documentation":"

The template schema used for the data source, where templates schemas are supported.

See Data source template schemas.

", + "document":true + }, + "TemplateConfiguration":{ + "type":"structure", + "members":{ + "Template":{ + "shape":"Template", + "documentation":"

The template schema used for the data source, where templates schemas are supported.

See Data source template schemas.

" + } + }, + "documentation":"

Provides a template for the configuration information to connect to your data source.

" + }, "TenantDomain":{ "type":"string", "max":256, @@ -7105,7 +7802,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

The request was denied due to request throttling. Please reduce the number of requests and try again.

", "exception":true }, "TimeRange":{ @@ -7135,6 +7832,13 @@ "max":5000, "min":0 }, + "Type":{ + "type":"string", + "enum":[ + "SAAS", + "ON_PREMISE" + ] + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -7157,6 +7861,44 @@ "members":{ } }, + "UpdateAccessControlConfigurationRequest":{ + "type":"structure", + "required":[ + "IndexId", + "Id" + ], + "members":{ + "IndexId":{ + "shape":"IndexId", + "documentation":"

The identifier of the index for an access control configuration.

" + }, + "Id":{ + "shape":"AccessControlConfigurationId", + "documentation":"

The identifier of the access control configuration you want to update.

" + }, + "Name":{ + "shape":"AccessControlConfigurationName", + "documentation":"

A new name for the access control configuration.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A new description for the access control configuration.

" + }, + "AccessControlList":{ + "shape":"PrincipalList", + "documentation":"

Information you want to update on principals (users and/or groups) and which documents they should have access to. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents.

" + }, + "HierarchicalAccessControlList":{ + "shape":"HierarchicalPrincipalList", + "documentation":"

The updated list of principal lists that define the hierarchy for which documents users should have access to.

" + } + } + }, + "UpdateAccessControlConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateDataSourceRequest":{ "type":"structure", "required":[ @@ -7166,39 +7908,43 @@ "members":{ "Id":{ "shape":"DataSourceId", - "documentation":"

The unique identifier of the data source to update.

" + "documentation":"

The identifier of the data source connector you want to update.

" }, "Name":{ "shape":"DataSourceName", - "documentation":"

The name of the data source to update. The name of the data source can't be updated. To rename a data source you must delete the data source and re-create it.

" + "documentation":"

A new name for the data source connector.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index that contains the data source to update.

" + "documentation":"

The identifier of the index used with the data source connector.

" }, "Configuration":{ "shape":"DataSourceConfiguration", - "documentation":"

Configuration information for an Amazon Kendra data source you want to update.

" + "documentation":"

Configuration information you want to update for the data source connector.

" + }, + "VpcConfiguration":{ + "shape":"DataSourceVpcConfiguration", + "documentation":"

Configuration information for an Amazon Virtual Private Cloud to connect to your data source. For more information, see Configuring a VPC.

" }, "Description":{ "shape":"Description", - "documentation":"

The new description for the data source.

" + "documentation":"

A new description for the data source connector.

" }, "Schedule":{ "shape":"ScanSchedule", - "documentation":"

The new update schedule for the data source.

" + "documentation":"

The sync schedule you want to update for the data source connector.

" }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the new role to use when the data source is accessing resources on your behalf.

" + "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access the data source and required resources. For more information, see IAM roles for Amazon Kendra.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The code for a language. This allows you to support a language for all documents when updating the data source. English is supported by default. For more information on supported languages, including their codes, see Adding documents in languages other than English.

" + "documentation":"

The code for a language you want to update for the data source connector. This allows you to support a language for all documents when updating the data source. English is supported by default. For more information on supported languages, including their codes, see Adding documents in languages other than English.

" }, "CustomDocumentEnrichmentConfiguration":{ "shape":"CustomDocumentEnrichmentConfiguration", - "documentation":"

Configuration information for altering document metadata and content during the document ingestion process when you update a data source.

For more information on how to create, modify and delete document metadata, or make other content alterations when you ingest documents into Amazon Kendra, see Customizing document metadata during the ingestion process.

" + "documentation":"

Configuration information you want to update for altering document metadata and content during the document ingestion process.

For more information on how to create, modify and delete document metadata, or make other content alterations when you ingest documents into Amazon Kendra, see Customizing document metadata during the ingestion process.

" } } }, @@ -7215,23 +7961,23 @@ }, "Name":{ "shape":"ExperienceName", - "documentation":"

The name of your Amazon Kendra experience you want to update.

" + "documentation":"

A new name for your Amazon Kendra experience.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index for your Amazon Kendra experience you want to update.

" + "documentation":"

The identifier of the index for your Amazon Kendra experience.

" }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access Query API, QuerySuggestions API, SubmitFeedback API, and Amazon Web Services SSO that stores your user and group information. For more information, see IAM roles for Amazon Kendra.

" + "documentation":"

The Amazon Resource Name (ARN) of a role with permission to access Query API, QuerySuggestions API, SubmitFeedback API, and IAM Identity Center that stores your user and group information. For more information, see IAM roles for Amazon Kendra.

" }, "Configuration":{ "shape":"ExperienceConfiguration", - "documentation":"

Configuration information for your Amazon Kendra you want to update.

" + "documentation":"

Configuration information you want to update for your Amazon Kendra experience.

" }, "Description":{ "shape":"Description", - "documentation":"

The description of your Amazon Kendra experience you want to update.

" + "documentation":"

A new description for your Amazon Kendra experience.

" } } }, @@ -7241,15 +7987,15 @@ "members":{ "Id":{ "shape":"IndexId", - "documentation":"

The identifier of the index to update.

" + "documentation":"

The identifier of the index you want to update.

" }, "Name":{ "shape":"IndexName", - "documentation":"

The name of the index to update.

" + "documentation":"

The name of the index you want to update.

" }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

A new IAM role that gives Amazon Kendra permission to access your Amazon CloudWatch logs.

" + "documentation":"

An Identity and Access Management (IAM) role that gives Amazon Kendra permission to access Amazon CloudWatch logs and metrics.

" }, "Description":{ "shape":"Description", @@ -7257,7 +8003,7 @@ }, "DocumentMetadataConfigurationUpdates":{ "shape":"DocumentMetadataConfigurationList", - "documentation":"

The document metadata you want to update.

" + "documentation":"

The document metadata configuration you want to update for the index. Document metadata are fields or attributes associated with your documents. For example, the company department name associated with each document.

" }, "CapacityUnits":{ "shape":"CapacityUnitsConfiguration", @@ -7273,7 +8019,7 @@ }, "UserGroupResolutionConfiguration":{ "shape":"UserGroupResolutionConfiguration", - "documentation":"

Enables fetching access levels of groups and users from an Amazon Web Services Single Sign On identity source. To configure this, see UserGroupResolutionConfiguration.

" + "documentation":"

Enables fetching access levels of groups and users from an IAM Identity Center (successor to Single Sign-On) identity source. To configure this, see UserGroupResolutionConfiguration.

" } } }, @@ -7286,19 +8032,19 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index for a block list.

" + "documentation":"

The identifier of the index for the block list.

" }, "Id":{ "shape":"QuerySuggestionsBlockListId", - "documentation":"

The unique identifier of a block list.

" + "documentation":"

The identifier of the block list you want to update.

" }, "Name":{ "shape":"QuerySuggestionsBlockListName", - "documentation":"

The name of a block list.

" + "documentation":"

A new name for the block list.

" }, "Description":{ "shape":"Description", - "documentation":"

The description for a block list.

" + "documentation":"

A new description for the block list.

" }, "SourceS3Path":{ "shape":"S3Path", @@ -7316,7 +8062,7 @@ "members":{ "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index you want to update query suggestions settings for.

" + "documentation":"

The identifier of the index with query suggestions you want to update.

" }, "Mode":{ "shape":"Mode", @@ -7349,23 +8095,23 @@ "members":{ "Id":{ "shape":"ThesaurusId", - "documentation":"

The identifier of the thesaurus to update.

" + "documentation":"

The identifier of the thesaurus you want to update.

" }, "Name":{ "shape":"ThesaurusName", - "documentation":"

The updated name of the thesaurus.

" + "documentation":"

A new name for the thesaurus.

" }, "IndexId":{ "shape":"IndexId", - "documentation":"

The identifier of the index associated with the thesaurus to update.

" + "documentation":"

The identifier of the index for the thesaurus.

" }, "Description":{ "shape":"Description", - "documentation":"

The updated description of the thesaurus.

" + "documentation":"

A new description for the thesaurus.

" }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The updated role ARN of the thesaurus.

" + "documentation":"

An IAM role that gives Amazon Kendra permissions to access thesaurus file specified in SourceS3Path.

" }, "SourceS3Path":{"shape":"S3Path"} } @@ -7416,7 +8162,7 @@ "documentation":"

The list of data source groups you want to filter search results based on groups' access to documents in that data source.

" } }, - "documentation":"

Provides information about the user context for an Amazon Kendra index.

This is used for filtering search results for different users based on their access to documents.

You provide one of the following:

  • User token

  • User ID, the groups the user belongs to, and any data sources the groups can access.

If you provide both, an exception is thrown.

" + "documentation":"

Provides information about the user context for an Amazon Kendra index.

User context filtering is a kind of personalized search with the benefit of controlling access to documents. For example, not all teams that search the company portal for information should access top-secret company documents, nor are these documents relevant to all users. Only specific users or groups of teams given access to top-secret documents should see these documents in their search results.

You provide one of the following:

  • User token

  • User ID, the groups the user belongs to, and any data sources the groups can access.

If you provide both, an exception is thrown.

" }, "UserContextPolicy":{ "type":"string", @@ -7431,10 +8177,10 @@ "members":{ "UserGroupResolutionMode":{ "shape":"UserGroupResolutionMode", - "documentation":"

The identity store provider (mode) you want to use to fetch access levels of groups and users. Amazon Web Services Single Sign On is currently the only available mode. Your users and groups must exist in an Amazon Web Services SSO identity source in order to use this mode.

" + "documentation":"

The identity store provider (mode) you want to use to fetch access levels of groups and users. IAM Identity Center (successor to Single Sign-On) is currently the only available mode. Your users and groups must exist in an IAM Identity Center identity source in order to use this mode.

" } }, - "documentation":"

Provides the configuration information to fetch access levels of groups and users from an Amazon Web Services Single Sign On identity source. This is useful for setting up user context filtering, where Amazon Kendra filters search results for different users based on their group's access to documents. You can also map your users to their groups for user context filtering using the PutPrincipalMapping API.

To set up an Amazon Web Services SSO identity source in the console to use with Amazon Kendra, see Getting started with an Amazon Web Services SSO identity source. You must also grant the required permissions to use Amazon Web Services SSO with Amazon Kendra. For more information, see IAM roles for Amazon Web Services SSO.

Amazon Kendra currently does not support using UserGroupResolutionConfiguration with an Amazon Web Services organization member account for your Amazon Web Services SSO identify source. You must create your index in the management account for the organization in order to use UserGroupResolutionConfiguration.

" + "documentation":"

Provides the configuration information to fetch access levels of groups and users from an IAM Identity Center (successor to Single Sign-On) identity source. This is useful for user context filtering, where search results are filtered based on the user or their group access to documents. You can also use the PutPrincipalMapping API to map users to their groups so that you only need to provide the user ID when you issue the query.

To set up an IAM Identity Center identity source in the console to use with Amazon Kendra, see Getting started with an IAM Identity Center identity source. You must also grant the required permissions to use IAM Identity Center with Amazon Kendra. For more information, see IAM roles for IAM Identity Center.

Amazon Kendra currently does not support using UserGroupResolutionConfiguration with an Amazon Web Services organization member account for your IAM Identity Center identify source. You must create your index in the management account for the organization in order to use UserGroupResolutionConfiguration.

" }, "UserGroupResolutionMode":{ "type":"string", @@ -7454,7 +8200,7 @@ "members":{ "IdentityAttributeName":{ "shape":"IdentityAttributeName", - "documentation":"

The Amazon Web Services SSO field name that contains the identifiers of your users, such as their emails. This is used for user context filtering and for granting access to your Amazon Kendra experience. You must set up Amazon Web Services SSO with Amazon Kendra. You must include your users and groups in your Access Control List when you ingest documents into your index. For more information, see Getting started with an Amazon Web Services SSO identity source.

" + "documentation":"

The IAM Identity Center field name that contains the identifiers of your users, such as their emails. This is used for user context filtering and for granting access to your Amazon Kendra experience. You must set up IAM Identity Center with Amazon Kendra. You must include your users and groups in your Access Control List when you ingest documents into your index. For more information, see Getting started with an IAM Identity Center identity source.

" } }, "documentation":"

Provides the configuration information for the identifiers of your users.

" @@ -7489,7 +8235,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

", + "documentation":"

The input fails to satisfy the constraints set by the Amazon Kendra service. Please provide the correct input and try again.

", "exception":true }, "ValueImportanceMap":{ @@ -7582,7 +8328,7 @@ }, "AuthenticationConfiguration":{ "shape":"AuthenticationConfiguration", - "documentation":"

Configuration information required to connect to websites using authentication.

You can connect to websites using basic authentication of user name and password.

You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is \"a.example.com\" and the port is 443, the standard port for HTTPS. You use a secret in Secrets Manager to store your authentication credentials.

" + "documentation":"

Configuration information required to connect to websites using authentication.

You can connect to websites using basic authentication of user name and password. You use a secret in Secrets Manager to store your authentication credentials.

You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is \"a.example.com\" and the port is 443, the standard port for HTTPS.

" } }, "documentation":"

Provides the configuration information required for Amazon Kendra Web Crawler.

" diff --git a/botocore/data/keyspaces/2022-02-10/endpoint-rule-set-1.json b/botocore/data/keyspaces/2022-02-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..c0d46569 --- /dev/null +++ b/botocore/data/keyspaces/2022-02-10/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cassandra-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cassandra-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cassandra.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cassandra.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/keyspaces/2022-02-10/examples-1.json b/botocore/data/keyspaces/2022-02-10/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/keyspaces/2022-02-10/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/kinesis-video-archived-media/2017-09-30/endpoint-rule-set-1.json b/botocore/data/kinesis-video-archived-media/2017-09-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..33f59063 --- /dev/null +++ b/botocore/data/kinesis-video-archived-media/2017-09-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kinesis-video-media/2017-09-30/endpoint-rule-set-1.json b/botocore/data/kinesis-video-media/2017-09-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..33f59063 --- /dev/null +++ b/botocore/data/kinesis-video-media/2017-09-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kinesis-video-signaling/2019-12-04/endpoint-rule-set-1.json b/botocore/data/kinesis-video-signaling/2019-12-04/endpoint-rule-set-1.json new file mode 100644 index 00000000..33f59063 --- /dev/null +++ b/botocore/data/kinesis-video-signaling/2019-12-04/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kinesis-video-signaling/2019-12-04/examples-1.json b/botocore/data/kinesis-video-signaling/2019-12-04/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/kinesis-video-signaling/2019-12-04/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/kinesis/2013-12-02/endpoint-rule-set-1.json b/botocore/data/kinesis/2013-12-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..2d257431 --- /dev/null +++ b/botocore/data/kinesis/2013-12-02/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesis-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesis-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesis.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesis.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kinesisanalytics/2015-08-14/endpoint-rule-set-1.json b/botocore/data/kinesisanalytics/2015-08-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..add11307 --- /dev/null +++ b/botocore/data/kinesisanalytics/2015-08-14/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisanalytics-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisanalytics-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisanalytics.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesisanalytics.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kinesisanalyticsv2/2018-05-23/endpoint-rule-set-1.json b/botocore/data/kinesisanalyticsv2/2018-05-23/endpoint-rule-set-1.json new file mode 100644 index 00000000..add11307 --- /dev/null +++ b/botocore/data/kinesisanalyticsv2/2018-05-23/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisanalytics-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisanalytics-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisanalytics.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesisanalytics.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kinesisanalyticsv2/2018-05-23/examples-1.json b/botocore/data/kinesisanalyticsv2/2018-05-23/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/kinesisanalyticsv2/2018-05-23/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/kinesisanalyticsv2/2018-05-23/service-2.json b/botocore/data/kinesisanalyticsv2/2018-05-23/service-2.json index bf305854..39bf0931 100644 --- a/botocore/data/kinesisanalyticsv2/2018-05-23/service-2.json +++ b/botocore/data/kinesisanalyticsv2/2018-05-23/service-2.json @@ -151,7 +151,7 @@ {"shape":"ResourceInUseException"}, {"shape":"InvalidArgumentException"} ], - "documentation":"

Creates and returns a URL that you can use to connect to an application's extension. Currently, the only available extension is the Apache Flink dashboard.

The IAM role or user used to call this API defines the permissions to access the extension. After the presigned URL is created, no additional permission is required to access this URL. IAM authorization policies for this API are also enforced for every HTTP request that attempts to connect to the extension.

You control the amount of time that the URL will be valid using the SessionExpirationDurationInSeconds parameter. If you do not provide this parameter, the returned URL is valid for twelve hours.

The URL that you get from a call to CreateApplicationPresignedUrl must be used within 3 minutes to be valid. If you first try to use the URL after the 3-minute limit expires, the service returns an HTTP 403 Forbidden error.

" + "documentation":"

Creates and returns a URL that you can use to connect to an application's extension.

The IAM role or user used to call this API defines the permissions to access the extension. After the presigned URL is created, no additional permission is required to access this URL. IAM authorization policies for this API are also enforced for every HTTP request that attempts to connect to the extension.

You control the amount of time that the URL will be valid using the SessionExpirationDurationInSeconds parameter. If you do not provide this parameter, the returned URL is valid for twelve hours.

The URL that you get from a call to CreateApplicationPresignedUrl must be used within 3 minutes to be valid. If you first try to use the URL after the 3-minute limit expires, the service returns an HTTP 403 Forbidden error.

" }, "CreateApplicationSnapshot":{ "name":"CreateApplicationSnapshot", @@ -272,7 +272,8 @@ {"shape":"InvalidArgumentException"}, {"shape":"UnsupportedOperationException"}, {"shape":"InvalidRequestException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ConcurrentModificationException"} ], "documentation":"

Deletes a snapshot of application state.

" }, @@ -967,7 +968,7 @@ }, "RuntimeEnvironment":{ "shape":"RuntimeEnvironment", - "documentation":"

The runtime environment for the application (SQL-1_0, FLINK-1_6, FLINK-1_8, or FLINK-1_11).

" + "documentation":"

The runtime environment for the application.

" }, "ServiceExecutionRole":{ "shape":"RoleARN", @@ -1574,7 +1575,7 @@ }, "RuntimeEnvironment":{ "shape":"RuntimeEnvironment", - "documentation":"

The runtime environment for the application (SQL-1_0, FLINK-1_6, FLINK-1_8, or FLINK-1_11).

" + "documentation":"

The runtime environment for the application.

" }, "ServiceExecutionRole":{ "shape":"RoleARN", @@ -1594,7 +1595,7 @@ }, "ApplicationMode":{ "shape":"ApplicationMode", - "documentation":"

Use the STREAMING mode to create a Kinesis Data Analytics Studio notebook. To create a Kinesis Data Analytics Studio notebook, use the INTERACTIVE mode.

" + "documentation":"

Use the STREAMING mode to create a Kinesis Data Analytics For Flink application. To create a Kinesis Data Analytics Studio notebook, use the INTERACTIVE mode.

" } } }, @@ -3520,7 +3521,8 @@ "ZEPPELIN-FLINK-1_0", "FLINK-1_11", "FLINK-1_13", - "ZEPPELIN-FLINK-2_0" + "ZEPPELIN-FLINK-2_0", + "FLINK-1_15" ] }, "S3ApplicationCodeLocationDescription":{ diff --git a/botocore/data/kinesisvideo/2017-09-30/endpoint-rule-set-1.json b/botocore/data/kinesisvideo/2017-09-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..33f59063 --- /dev/null +++ b/botocore/data/kinesisvideo/2017-09-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kinesisvideo.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kms/2014-11-01/endpoint-rule-set-1.json b/botocore/data/kms/2014-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..7e3838f6 --- /dev/null +++ b/botocore/data/kms/2014-11-01/endpoint-rule-set-1.json @@ -0,0 +1,306 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://kms.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://kms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/kms/2014-11-01/examples-1.json b/botocore/data/kms/2014-11-01/examples-1.json index b0a17a5b..c770d0ed 100644 --- a/botocore/data/kms/2014-11-01/examples-1.json +++ b/botocore/data/kms/2014-11-01/examples-1.json @@ -11,15 +11,34 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose deletion you are canceling. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK whose deletion you canceled." + "KeyId": "The ARN of the KMS key whose deletion you canceled." } }, - "description": "The following example cancels deletion of the specified CMK.", + "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 customer master key (CMK)" + "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 DescribeCustomKeyStores 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": [ @@ -31,14 +50,41 @@ "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 CMK whose alias you are creating. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 customer master key (CMK).", + "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": "" + }, + "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": { @@ -56,7 +102,7 @@ "comments": { "input": { "GranteePrincipal": "The identity that is given permission to perform the operations specified in the grant.", - "KeyId": "The identifier of the CMK to which the grant applies. You can use the key ID or the Amazon Resource Name (ARN) of the CMK.", + "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": { @@ -64,7 +110,7 @@ "GrantToken": "The grant token." } }, - "description": "The following example creates a grant that allows the specified IAM role to encrypt data with the specified customer master key (CMK).", + "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" } @@ -72,24 +118,24 @@ "CreateKey": [ { "input": { - "Tags": [ - { - "TagKey": "CreatedBy", - "TagValue": "ExampleUser" - } - ] }, "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" } }, @@ -98,18 +144,256 @@ "Tags": "One or more tags. Each tag consists of a tag key and a tag value." }, "output": { - "KeyMetadata": "An object that contains information about the CMK created by this operation." + "KeyMetadata": "Detailed information about the KMS key that this operation creates." } }, - "description": "The following example creates a CMK.", + "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 customer master key (CMK)" + "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": "" + "CiphertextBlob": "", + "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", @@ -117,14 +401,15 @@ }, "comments": { "input": { - "CiphertextBlob": "The encrypted data (ciphertext)." + "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 CMK that was used to decrypt the data.", + "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 customer master key (CMK) in AWS KMS.", + "description": "The following example decrypts data that was encrypted with a KMS key.", "id": "to-decrypt-data-1478281622886", "title": "To decrypt data" } @@ -144,6 +429,25 @@ "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": { @@ -151,14 +455,63 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose imported key material you are deleting. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 customer master key (CMK).", + "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": "" + } + ] + }, + "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": { @@ -169,26 +522,164 @@ "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": "The identifier of the CMK that you want information about. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK." + "KeyMetadata": "An object that contains information about the specified KMS key." } }, - "description": "The following example returns information (metadata) about the specified CMK.", - "id": "to-obtain-information-about-a-cmk-1478565820907", - "title": "To obtain information about a customer master key (CMK)" + "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": [ @@ -198,12 +689,12 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK to disable. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "description": "The following example disables the specified KMS key.", "id": "to-disable-a-cmk-1478566583659", - "title": "To disable a customer master key (CMK)" + "title": "To disable a KMS key" } ], "DisableKeyRotation": [ @@ -213,14 +704,33 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose key material will no longer be rotated. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "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 DescribeCustomKeyStores 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": { @@ -228,12 +738,12 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK to enable. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "description": "The following example enables the specified KMS key.", "id": "to-enable-a-cmk-1478627501129", - "title": "To enable a customer master key (CMK)" + "title": "To enable a KMS key" } ], "EnableKeyRotation": [ @@ -243,10 +753,10 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose key material will be rotated annually. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "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" } @@ -263,15 +773,15 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK to use for encryption. You can use the key ID or Amazon Resource Name (ARN) of the CMK, or the name or ARN of an alias that refers to the CMK.", + "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 CMK that was used to encrypt the data." + "KeyId": "The ARN of the KMS key that was used to encrypt the data." } }, - "description": "The following example encrypts data with the specified customer master key (CMK).", + "description": "The following example encrypts data with the specified KMS key.", "id": "to-encrypt-data-1478906026012", "title": "To encrypt data" } @@ -289,20 +799,80 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK to use to encrypt the data key. You can use the key ID or Amazon Resource Name (ARN) of the CMK, or the name or ARN of an alias that refers to the CMK.", + "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 CMK that was used to encrypt the 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 customer master key (CMK).", + "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": "", + "PrivateKeyPlaintext": "", + "PublicKey": "" + }, + "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": "", + "PublicKey": "" + }, + "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": { @@ -315,19 +885,48 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK to use to encrypt the data key. You can use the key ID or Amazon Resource Name (ARN) of the CMK, or the name or ARN of an alias that refers to the CMK.", + "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 CMK that was used to encrypt the 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 customer master key (CMK).", + "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": "", + "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": { @@ -344,7 +943,7 @@ "Plaintext": "The random data." } }, - "description": "The following example uses AWS KMS to generate 32 bytes of random data.", + "description": "The following example generates 32 bytes of random data.", "id": "to-generate-random-data-1479163645600", "title": "To generate random data" } @@ -360,14 +959,14 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose key policy you want to retrieve. You can use the key ID or the Amazon Resource Name (ARN) of the CMK.", + "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 customer master key (CMK).", + "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" } @@ -382,15 +981,15 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose key material rotation status you want to retrieve. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "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 customer master key (CMK)" + "title": "To retrieve the rotation status for a KMS key" } ], "GetParametersForImport": [ @@ -408,20 +1007,52 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK for which to retrieve the public key and import token. You can use the key ID or the Amazon Resource Name (ARN) of the CMK.", + "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 CMK for which you are retrieving the public key and import token. This is the same CMK specified in the 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 CMK.", + "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 customer master key (CMK)" + "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": "" + }, + "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": [ @@ -437,12 +1068,12 @@ "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 CMK to import the key material into. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "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 customer master key (CMK)" + "title": "To import key material into a KMS key" } ], "ListAliases": [ @@ -494,7 +1125,7 @@ }, "comments": { "output": { - "Aliases": "A list of aliases, including the key ID of the customer master key (CMK) that each alias refers to.", + "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." } }, @@ -566,16 +1197,16 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose grants you want to list. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "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 customer master key (CMK)" + "title": "To list grants for a KMS key" } ], "ListKeyPolicies": [ @@ -591,16 +1222,16 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose key policies you want to list. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "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 customer master key (CMK)" + "title": "To list key policies for a KMS key" } ], "ListKeys": [ @@ -640,13 +1271,13 @@ }, "comments": { "output": { - "Keys": "A list of CMKs, including the key ID and Amazon Resource Name (ARN) of each one.", + "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 CMKs.", + "description": "The following example lists KMS keys.", "id": "to-list-cmks-1481071643069", - "title": "To list customer master keys (CMKs)" + "title": "To list KMS keys" } ], "ListResourceTags": [ @@ -673,16 +1304,16 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose tags you are listing. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "description": "The following example lists tags for a KMS key.", "id": "to-list-tags-for-a-cmk-1483996855796", - "title": "To list tags for a customer master key (CMK)" + "title": "To list tags for a KMS key" } ], "ListRetirableGrants": [ @@ -709,7 +1340,7 @@ }, "comments": { "input": { - "RetiringPrincipal": "The retiring principal whose grants you want to list. Use the Amazon Resource Name (ARN) of an AWS principal such as an AWS account (root), IAM user, federated user, or assumed role user." + "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.", @@ -730,14 +1361,14 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK to attach the key policy to. You can use the key ID or the Amazon Resource Name (ARN) of the CMK.", + "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 CMK.", + "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 customer master key (CMK)" + "title": "To attach a key policy to a KMS key" } ], "ReEncrypt": [ @@ -754,19 +1385,78 @@ "comments": { "input": { "CiphertextBlob": "The data to reencrypt.", - "DestinationKeyId": "The identifier of the CMK to use to reencrypt the data. You can use the key ID or Amazon Resource Name (ARN) of the CMK, or the name or ARN of an alias that refers to the CMK." + "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 CMK that was used to reencrypt the data.", - "SourceKeyId": "The ARN of the CMK that was used to originally encrypt the 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 CMK.", + "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": { @@ -776,7 +1466,7 @@ "comments": { "input": { "GrantId": "The identifier of the grant to retire.", - "KeyId": "The Amazon Resource Name (ARN) of the customer master key (CMK) associated with the grant." + "KeyId": "The Amazon Resource Name (ARN) of the KMS key associated with the grant." } }, "description": "The following example retires a grant.", @@ -793,7 +1483,7 @@ "comments": { "input": { "GrantId": "The identifier of the grant to revoke.", - "KeyId": "The identifier of the customer master key (CMK) associated with the grant. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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.", @@ -813,17 +1503,48 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK to schedule for deletion. You can use the key ID or the Amazon Resource Name (ARN) of the CMK.", - "PendingWindowInDays": "The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the CMK." + "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 AWS KMS deletes the CMK.", - "KeyId": "The ARN of the CMK that is scheduled for deletion." + "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 CMK 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 customer master key (CMK) for deletion" + "title": "To schedule a KMS key for deletion" + } + ], + "Sign": [ + { + "input": { + "KeyId": "alias/ECC_signing_key", + "Message": "", + "MessageType": "RAW", + "SigningAlgorithm": "ECDSA_SHA_384" + }, + "output": { + "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", + "Signature": "", + "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": [ @@ -839,13 +1560,13 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK you are tagging. You can use the key ID or the Amazon Resource Name (ARN) of the CMK.", + "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 CMK.", + "description": "The following example tags a KMS key.", "id": "to-tag-a-cmk-1483997246518", - "title": "To tag a customer master key (CMK)" + "title": "To tag a KMS key" } ], "UntagResource": [ @@ -859,13 +1580,13 @@ }, "comments": { "input": { - "KeyId": "The identifier of the CMK whose tags you are removing.", + "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 CMK.", + "description": "The following example removes tags from a KMS key.", "id": "to-remove-tags-from-a-cmk-1483997590962", - "title": "To remove tags from a customer master key (CMK)" + "title": "To remove tags from a KMS key" } ], "UpdateAlias": [ @@ -877,29 +1598,152 @@ "comments": { "input": { "AliasName": "The alias to update.", - "TargetKeyId": "The identifier of the CMK that the alias will refer to after this operation succeeds. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 customer master key (CMK).", + "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 CMK.", + "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 CMK whose description you are updating. You can use the key ID or the Amazon Resource Name (ARN) of the CMK." + "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 CMK.", + "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 customer master key (CMK)" + "title": "To update the description of a KMS key" + } + ], + "Verify": [ + { + "input": { + "KeyId": "alias/ECC_signing_key", + "Message": "", + "MessageType": "RAW", + "Signature": "", + "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": "", + "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/botocore/data/kms/2014-11-01/paginators-1.json b/botocore/data/kms/2014-11-01/paginators-1.json index 522d171f..dc6690f5 100644 --- a/botocore/data/kms/2014-11-01/paginators-1.json +++ b/botocore/data/kms/2014-11-01/paginators-1.json @@ -27,6 +27,27 @@ "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" } } } diff --git a/botocore/data/kms/2014-11-01/service-2.json b/botocore/data/kms/2014-11-01/service-2.json index b2e95ef1..36cbf7bf 100644 --- a/botocore/data/kms/2014-11-01/service-2.json +++ b/botocore/data/kms/2014-11-01/service-2.json @@ -45,7 +45,7 @@ {"shape":"KMSInternalException"}, {"shape":"CloudHsmClusterInvalidConfigurationException"} ], - "documentation":"

Connects or reconnects a custom key store to its associated CloudHSM cluster.

The custom key store must be connected before you can create KMS keys in the key store or use the KMS keys it contains. You can disconnect and reconnect a custom key store at any time.

To connect a custom key store, its associated CloudHSM cluster must have at least one active HSM. To get the number of active HSMs in a cluster, use the DescribeClusters operation. To add HSMs to the cluster, use the CreateHsm operation. Also, the kmsuser crypto user (CU) must not be logged into the cluster. This prevents KMS from using this account to log in.

The connection process can take an extended amount of time to complete; up to 20 minutes. This operation starts the connection process, but it does not wait for it to complete. When it succeeds, this operation quickly returns an HTTP 200 response and a JSON object with no properties. However, this response does not indicate that the custom key store is connected. To get the connection state of the custom key store, use the DescribeCustomKeyStores operation.

During the connection process, KMS finds the CloudHSM cluster that is associated with the custom key store, creates the connection infrastructure, connects to the cluster, logs into the CloudHSM client as the kmsuser CU, and rotates its password.

The ConnectCustomKeyStore operation might fail for various reasons. To find the reason, use the DescribeCustomKeyStores operation and see the ConnectionErrorCode in the response. For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.

To fix the failure, use the DisconnectCustomKeyStore operation to disconnect the custom key store, correct the error, use the UpdateCustomKeyStore operation if necessary, and then use ConnectCustomKeyStore again.

If you are having trouble connecting or disconnecting a custom key store, see Troubleshooting a Custom Key Store in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:ConnectCustomKeyStore (IAM policy)

Related operations

" + "documentation":"

Connects or reconnects a custom key store to its backing key store. For an CloudHSM key store, ConnectCustomKeyStore connects the key store to its associated CloudHSM cluster. For an external key store, ConnectCustomKeyStore connects the key store to the external key store proxy that communicates with your external key manager.

The custom key store must be connected before you can create KMS keys in the key store or use the KMS keys it contains. You can disconnect and reconnect a custom key store at any time.

The connection process for a custom key store can take an extended amount of time to complete. This operation starts the connection process, but it does not wait for it to complete. When it succeeds, this operation quickly returns an HTTP 200 response and a JSON object with no properties. However, this response does not indicate that the custom key store is connected. To get the connection state of the custom key store, use the DescribeCustomKeyStores operation.

This operation is part of the custom key stores feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a key store that you own and manage.

The ConnectCustomKeyStore operation might fail for various reasons. To find the reason, use the DescribeCustomKeyStores operation and see the ConnectionErrorCode in the response. For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.

To fix the failure, use the DisconnectCustomKeyStore operation to disconnect the custom key store, correct the error, use the UpdateCustomKeyStore operation if necessary, and then use ConnectCustomKeyStore again.

CloudHSM key store

During the connection process for an CloudHSM key store, KMS finds the CloudHSM cluster that is associated with the custom key store, creates the connection infrastructure, connects to the cluster, logs into the CloudHSM client as the kmsuser CU, and rotates its password.

To connect an CloudHSM key store, its associated CloudHSM cluster must have at least one active HSM. To get the number of active HSMs in a cluster, use the DescribeClusters operation. To add HSMs to the cluster, use the CreateHsm operation. Also, the kmsuser crypto user (CU) must not be logged into the cluster. This prevents KMS from using this account to log in.

If you are having trouble connecting or disconnecting a CloudHSM key store, see Troubleshooting an CloudHSM key store in the Key Management Service Developer Guide.

External key store

When you connect an external key store that uses public endpoint connectivity, KMS tests its ability to communicate with your external key manager by sending a request via the external key store proxy.

When you connect to an external key store that uses VPC endpoint service connectivity, KMS establishes the networking elements that it needs to communicate with your external key manager via the external key store proxy. This includes creating an interface endpoint to the VPC endpoint service and a private hosted zone for traffic between KMS and the VPC endpoint service.

To connect an external key store, KMS must be able to connect to the external key store proxy, the external key store proxy must be able to communicate with your external key manager, and the external key manager must be available for cryptographic operations.

If you are having trouble connecting or disconnecting an external key store, see Troubleshooting an external key store in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:ConnectCustomKeyStore (IAM policy)

Related operations

" }, "CreateAlias":{ "name":"CreateAlias", @@ -63,7 +63,7 @@ {"shape":"LimitExceededException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Creates a friendly name for a KMS key.

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC in KMS in the Key Management Service Developer Guide.

You can use an alias to identify a KMS key in the KMS console, in the DescribeKey operation and in cryptographic operations, such as Encrypt and GenerateDataKey. You can also change the KMS key that's associated with the alias (UpdateAlias) or delete the alias (DeleteAlias) at any time. These operations don't affect the underlying KMS key.

You can associate the alias with any customer managed key in the same Amazon Web Services Region. Each alias is associated with only one KMS key at a time, but a KMS key can have multiple aliases. A valid KMS key is required. You can't create an alias without a KMS key.

The alias must be unique in the account and Region, but you can have aliases with the same name in different Regions. For detailed information about aliases, see Using aliases in the Key Management Service Developer Guide.

This operation does not return a response. To get the alias that you created, use the ListAliases operation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

Required permissions

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

Related operations:

" + "documentation":"

Creates a friendly name for a KMS key.

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

You can use an alias to identify a KMS key in the KMS console, in the DescribeKey operation and in cryptographic operations, such as Encrypt and GenerateDataKey. You can also change the KMS key that's associated with the alias (UpdateAlias) or delete the alias (DeleteAlias) at any time. These operations don't affect the underlying KMS key.

You can associate the alias with any customer managed key in the same Amazon Web Services Region. Each alias is associated with only one KMS key at a time, but a KMS key can have multiple aliases. A valid KMS key is required. You can't create an alias without a KMS key.

The alias must be unique in the account and Region, but you can have aliases with the same name in different Regions. For detailed information about aliases, see Using aliases in the Key Management Service Developer Guide.

This operation does not return a response. To get the alias that you created, use the ListAliases operation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

Required permissions

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

Related operations:

" }, "CreateCustomKeyStore":{ "name":"CreateCustomKeyStore", @@ -80,9 +80,19 @@ {"shape":"KMSInternalException"}, {"shape":"CloudHsmClusterNotActiveException"}, {"shape":"IncorrectTrustAnchorException"}, - {"shape":"CloudHsmClusterInvalidConfigurationException"} + {"shape":"CloudHsmClusterInvalidConfigurationException"}, + {"shape":"LimitExceededException"}, + {"shape":"XksProxyUriInUseException"}, + {"shape":"XksProxyUriEndpointInUseException"}, + {"shape":"XksProxyUriUnreachableException"}, + {"shape":"XksProxyIncorrectAuthenticationCredentialException"}, + {"shape":"XksProxyVpcEndpointServiceInUseException"}, + {"shape":"XksProxyVpcEndpointServiceNotFoundException"}, + {"shape":"XksProxyVpcEndpointServiceInvalidConfigurationException"}, + {"shape":"XksProxyInvalidResponseException"}, + {"shape":"XksProxyInvalidConfigurationException"} ], - "documentation":"

Creates a custom key store that is associated with an CloudHSM cluster that you own and manage.

This operation is part of the Custom Key Store feature feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a single-tenant key store.

Before you create the custom key store, you must assemble the required elements, including an CloudHSM cluster that fulfills the requirements for a custom key store. For details about the required elements, see Assemble the Prerequisites in the Key Management Service Developer Guide.

When the operation completes successfully, it returns the ID of the new custom key store. Before you can use your new custom key store, you need to use the ConnectCustomKeyStore operation to connect the new key store to its CloudHSM cluster. Even if you are not going to use your custom key store immediately, you might want to connect it to verify that all settings are correct and then disconnect it until you are ready to use it.

For help with failures, see Troubleshooting a Custom Key Store in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:CreateCustomKeyStore (IAM policy).

Related operations:

" + "documentation":"

Creates a custom key store backed by a key store that you own and manage. When you use a KMS key in a custom key store for a cryptographic operation, the cryptographic operation is actually performed in your key store using your keys. KMS supports CloudHSM key stores backed by an CloudHSM cluster and external key stores backed by an external key store proxy and external key manager outside of Amazon Web Services.

This operation is part of the custom key stores feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a key store that you own and manage.

Before you create the custom key store, the required elements must be in place and operational. We recommend that you use the test tools that KMS provides to verify the configuration your external key store proxy. For details about the required elements and verification tests, see Assemble the prerequisites (for CloudHSM key stores) or Assemble the prerequisites (for external key stores) in the Key Management Service Developer Guide.

To create a custom key store, use the following parameters.

  • To create an CloudHSM key store, specify the CustomKeyStoreName, CloudHsmClusterId, KeyStorePassword, and TrustAnchorCertificate. The CustomKeyStoreType parameter is optional for CloudHSM key stores. If you include it, set it to the default value, AWS_CLOUDHSM. For help with failures, see Troubleshooting an CloudHSM key store in the Key Management Service Developer Guide.

  • To create an external key store, specify the CustomKeyStoreName and a CustomKeyStoreType of EXTERNAL_KEY_STORE. Also, specify values for XksProxyConnectivity, XksProxyAuthenticationCredential, XksProxyUriEndpoint, and XksProxyUriPath. If your XksProxyConnectivity value is VPC_ENDPOINT_SERVICE, specify the XksProxyVpcEndpointServiceName parameter. For help with failures, see Troubleshooting an external key store in the Key Management Service Developer Guide.

For external key stores:

Some external key managers provide a simpler method for creating an external key store. For details, see your external key manager documentation.

When creating an external key store in the KMS console, you can upload a JSON-based proxy configuration file with the desired values. You cannot use a proxy configuration with the CreateCustomKeyStore operation. However, you can use the values in the file to help you determine the correct values for the CreateCustomKeyStore parameters.

When the operation completes successfully, it returns the ID of the new custom key store. Before you can use your new custom key store, you need to use the ConnectCustomKeyStore operation to connect a new CloudHSM key store to its CloudHSM cluster, or to connect a new external key store to the external key store proxy for your external key manager. Even if you are not going to use your custom key store immediately, you might want to connect it to verify that all settings are correct and then disconnect it until you are ready to use it.

For help with failures, see Troubleshooting a custom key store in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:CreateCustomKeyStore (IAM policy).

Related operations:

" }, "CreateGrant":{ "name":"CreateGrant", @@ -122,9 +132,12 @@ {"shape":"TagException"}, {"shape":"CustomKeyStoreNotFoundException"}, {"shape":"CustomKeyStoreInvalidStateException"}, - {"shape":"CloudHsmClusterInvalidConfigurationException"} + {"shape":"CloudHsmClusterInvalidConfigurationException"}, + {"shape":"XksKeyInvalidConfigurationException"}, + {"shape":"XksKeyAlreadyInUseException"}, + {"shape":"XksKeyNotFoundException"} ], - "documentation":"

Creates a unique customer managed KMS key in your Amazon Web Services account and Region.

In addition to the required parameters, you can use the optional parameters to specify a key policy, description, tags, and other useful elements for any key type.

KMS is replacing the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

To create different types of KMS keys, use the following guidance:

Symmetric encryption KMS key

To create a symmetric encryption KMS key, you aren't required to specify any parameters. The default value for KeySpec, SYMMETRIC_DEFAULT, and the default value for KeyUsage, ENCRYPT_DECRYPT, create a symmetric encryption KMS key.

If you need a key for basic encryption and decryption or you are creating a KMS key to protect your resources in an Amazon Web Services service, create a symmetric encryption KMS key. The key material in a symmetric encryption key never leaves KMS unencrypted. You can use a symmetric encryption KMS key to encrypt and decrypt data up to 4,096 bytes, but they are typically used to generate data keys and data keys pairs. For details, see GenerateDataKey and GenerateDataKeyPair.

Asymmetric KMS keys

To create an asymmetric KMS key, use the KeySpec parameter to specify the type of key material in the KMS key. Then, use the KeyUsage parameter to determine whether the KMS key will be used to encrypt and decrypt or sign and verify. You can't change these properties after the KMS key is created.

Asymmetric KMS keys contain an RSA key pair or an Elliptic Curve (ECC) key pair. The private key in an asymmetric KMS key never leaves KMS unencrypted. However, you can use the GetPublicKey operation to download the public key so it can be used outside of KMS. KMS keys with RSA key pairs can be used to encrypt or decrypt data or sign and verify messages (but not both). KMS keys with ECC key pairs can be used only to sign and verify messages. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

HMAC KMS key

To create an HMAC KMS key, set the KeySpec parameter to a key spec value for HMAC KMS keys. Then set the KeyUsage parameter to GENERATE_VERIFY_MAC. You must set the key usage even though GENERATE_VERIFY_MAC is the only valid key usage value for HMAC KMS keys. You can't change these properties after the KMS key is created.

HMAC KMS keys are symmetric keys that never leave KMS unencrypted. You can use HMAC keys to generate (GenerateMac) and verify (VerifyMac) HMAC codes for messages up to 4096 bytes.

HMAC KMS keys are not supported in all Amazon Web Services Regions. If you try to create an HMAC KMS key in an Amazon Web Services Region in which HMAC keys are not supported, the CreateKey operation returns an UnsupportedOperationException. For a list of Regions in which HMAC KMS keys are supported, see HMAC keys in KMS in the Key Management Service Developer Guide.

Multi-Region primary keys
Imported key material

To create a multi-Region primary key in the local Amazon Web Services Region, use the MultiRegion parameter with a value of True. To create a multi-Region replica key, that is, a KMS key with the same key ID and key material as a primary key, but in a different Amazon Web Services Region, use the ReplicateKey operation. To change a replica key to a primary key, and its primary key to a replica key, use the UpdatePrimaryRegion operation.

You can create multi-Region KMS keys for all supported KMS key types: symmetric encryption KMS keys, HMAC KMS keys, asymmetric encryption KMS keys, and asymmetric signing KMS keys. You can also create multi-Region keys with imported key material. However, you can't create multi-Region keys in a custom key store.

This operation supports multi-Region keys, an KMS feature that lets you create multiple interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

To import your own key material, begin by creating a symmetric encryption KMS key with no key material. To do this, use the Origin parameter of CreateKey with a value of EXTERNAL. Next, use GetParametersForImport operation to get a public key and import token, and use the public key to encrypt your key material. Then, use ImportKeyMaterial with your import token to import the key material. For step-by-step instructions, see Importing Key Material in the Key Management Service Developer Guide .

This feature supports only symmetric encryption KMS keys, including multi-Region symmetric encryption KMS keys. You cannot import key material into any other type of KMS key.

To create a multi-Region primary key with imported key material, use the Origin parameter of CreateKey with a value of EXTERNAL and the MultiRegion parameter with a value of True. To create replicas of the multi-Region primary key, use the ReplicateKey operation. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

Custom key store

To create a symmetric encryption KMS key in a custom key store, use the CustomKeyStoreId parameter to specify the custom key store. You must also use the Origin parameter with a value of AWS_CLOUDHSM. The CloudHSM cluster that is associated with the custom key store must have at least two active HSMs in different Availability Zones in the Amazon Web Services Region.

Custom key stores support only symmetric encryption KMS keys. You cannot create an HMAC KMS key or an asymmetric KMS key in a custom key store. For information about custom key stores in KMS see Custom key stores in KMS in the Key Management Service Developer Guide .

Cross-account use: No. You cannot use this operation to create a KMS key in a different Amazon Web Services account.

Required permissions: kms:CreateKey (IAM policy). To use the Tags parameter, kms:TagResource (IAM policy). For examples and information about related permissions, see Allow a user to create KMS keys in the Key Management Service Developer Guide.

Related operations:

" + "documentation":"

Creates a unique customer managed KMS key in your Amazon Web Services account and Region. You can use a KMS key in cryptographic operations, such as encryption and signing. Some Amazon Web Services services let you use KMS keys that you create and manage to protect your service resources.

A KMS key is a logical representation of a cryptographic key. In addition to the key material used in cryptographic operations, a KMS key includes metadata, such as the key ID, key policy, creation date, description, and key state. For details, see Managing keys in the Key Management Service Developer Guide

Use the parameters of CreateKey to specify the type of KMS key, the source of its key material, its key policy, description, tags, and other properties.

KMS has replaced the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

To create different types of KMS keys, use the following guidance:

Symmetric encryption KMS key

By default, CreateKey creates a symmetric encryption KMS key with key material that KMS generates. This is the basic and most widely used type of KMS key, and provides the best performance.

To create a symmetric encryption KMS key, you don't need to specify any parameters. The default value for KeySpec, SYMMETRIC_DEFAULT, the default value for KeyUsage, ENCRYPT_DECRYPT, and the default value for Origin, AWS_KMS, create a symmetric encryption KMS key with KMS key material.

If you need a key for basic encryption and decryption or you are creating a KMS key to protect your resources in an Amazon Web Services service, create a symmetric encryption KMS key. The key material in a symmetric encryption key never leaves KMS unencrypted. You can use a symmetric encryption KMS key to encrypt and decrypt data up to 4,096 bytes, but they are typically used to generate data keys and data keys pairs. For details, see GenerateDataKey and GenerateDataKeyPair.

Asymmetric KMS keys

To create an asymmetric KMS key, use the KeySpec parameter to specify the type of key material in the KMS key. Then, use the KeyUsage parameter to determine whether the KMS key will be used to encrypt and decrypt or sign and verify. You can't change these properties after the KMS key is created.

Asymmetric KMS keys contain an RSA key pair, Elliptic Curve (ECC) key pair, or an SM2 key pair (China Regions only). The private key in an asymmetric KMS key never leaves KMS unencrypted. However, you can use the GetPublicKey operation to download the public key so it can be used outside of KMS. KMS keys with RSA or SM2 key pairs can be used to encrypt or decrypt data or sign and verify messages (but not both). KMS keys with ECC key pairs can be used only to sign and verify messages. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

HMAC KMS key

To create an HMAC KMS key, set the KeySpec parameter to a key spec value for HMAC KMS keys. Then set the KeyUsage parameter to GENERATE_VERIFY_MAC. You must set the key usage even though GENERATE_VERIFY_MAC is the only valid key usage value for HMAC KMS keys. You can't change these properties after the KMS key is created.

HMAC KMS keys are symmetric keys that never leave KMS unencrypted. You can use HMAC keys to generate (GenerateMac) and verify (VerifyMac) HMAC codes for messages up to 4096 bytes.

HMAC KMS keys are not supported in all Amazon Web Services Regions. If you try to create an HMAC KMS key in an Amazon Web Services Region in which HMAC keys are not supported, the CreateKey operation returns an UnsupportedOperationException. For a list of Regions in which HMAC KMS keys are supported, see HMAC keys in KMS in the Key Management Service Developer Guide.

Multi-Region primary keys
Imported key material

To create a multi-Region primary key in the local Amazon Web Services Region, use the MultiRegion parameter with a value of True. To create a multi-Region replica key, that is, a KMS key with the same key ID and key material as a primary key, but in a different Amazon Web Services Region, use the ReplicateKey operation. To change a replica key to a primary key, and its primary key to a replica key, use the UpdatePrimaryRegion operation.

You can create multi-Region KMS keys for all supported KMS key types: symmetric encryption KMS keys, HMAC KMS keys, asymmetric encryption KMS keys, and asymmetric signing KMS keys. You can also create multi-Region keys with imported key material. However, you can't create multi-Region keys in a custom key store.

This operation supports multi-Region keys, an KMS feature that lets you create multiple interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

To import your own key material into a KMS key, begin by creating a symmetric encryption KMS key with no key material. To do this, use the Origin parameter of CreateKey with a value of EXTERNAL. Next, use GetParametersForImport operation to get a public key and import token, and use the public key to encrypt your key material. Then, use ImportKeyMaterial with your import token to import the key material. For step-by-step instructions, see Importing Key Material in the Key Management Service Developer Guide .

This feature supports only symmetric encryption KMS keys, including multi-Region symmetric encryption KMS keys. You cannot import key material into any other type of KMS key.

To create a multi-Region primary key with imported key material, use the Origin parameter of CreateKey with a value of EXTERNAL and the MultiRegion parameter with a value of True. To create replicas of the multi-Region primary key, use the ReplicateKey operation. For instructions, see Importing key material into multi-Region keys. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

Custom key store

A custom key store lets you protect your Amazon Web Services resources using keys in a backing key store that you own and manage. When you request a cryptographic operation with a KMS key in a custom key store, the operation is performed in the backing key store using its cryptographic keys.

KMS supports CloudHSM key stores backed by an CloudHSM cluster and external key stores backed by an external key manager outside of Amazon Web Services. When you create a KMS key in an CloudHSM key store, KMS generates an encryption key in the CloudHSM cluster and associates it with the KMS key. When you create a KMS key in an external key store, you specify an existing encryption key in the external key manager.

Some external key managers provide a simpler method for creating a KMS key in an external key store. For details, see your external key manager documentation.

Before you create a KMS key in a custom key store, the ConnectionState of the key store must be CONNECTED. To connect the custom key store, use the ConnectCustomKeyStore operation. To find the ConnectionState, use the DescribeCustomKeyStores operation.

To create a KMS key in a custom key store, use the CustomKeyStoreId. Use the default KeySpec value, SYMMETRIC_DEFAULT, and the default KeyUsage value, ENCRYPT_DECRYPT to create a symmetric encryption key. No other key type is supported in a custom key store.

To create a KMS key in an CloudHSM key store, use the Origin parameter with a value of AWS_CLOUDHSM. The CloudHSM cluster that is associated with the custom key store must have at least two active HSMs in different Availability Zones in the Amazon Web Services Region.

To create a KMS key in an external key store, use the Origin parameter with a value of EXTERNAL_KEY_STORE and an XksKeyId parameter that identifies an existing external key.

Some external key managers provide a simpler method for creating a KMS key in an external key store. For details, see your external key manager documentation.

Cross-account use: No. You cannot use this operation to create a KMS key in a different Amazon Web Services account.

Required permissions: kms:CreateKey (IAM policy). To use the Tags parameter, kms:TagResource (IAM policy). For examples and information about related permissions, see Allow a user to create KMS keys in the Key Management Service Developer Guide.

Related operations:

" }, "Decrypt":{ "name":"Decrypt", @@ -146,7 +159,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Decrypts ciphertext that was encrypted by a KMS key using any of the following operations:

You can use this operation to decrypt ciphertext that was encrypted under a symmetric encryption KMS key or an asymmetric encryption KMS key. When the KMS key is asymmetric, you must specify the KMS key and the encryption algorithm that was used to encrypt the ciphertext. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

The Decrypt operation also decrypts ciphertext that was encrypted outside of KMS by the public key in an KMS asymmetric KMS key. However, it cannot decrypt ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with KMS.

If the ciphertext was encrypted under a symmetric encryption KMS key, the KeyId parameter is optional. KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the key ID. However, specifying the KMS key is always recommended as a best practice. When you use the KeyId parameter to specify a KMS key, KMS only uses the KMS key you specify. If the ciphertext was encrypted under a different KMS key, the Decrypt operation fails. This practice ensures that you use the KMS key that you intend.

Whenever possible, use key policies to give users permission to call the Decrypt operation on a particular KMS key, instead of using IAM policies. Otherwise, you might create an IAM user policy that gives the user Decrypt permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys in other accounts if the key policy for the cross-account KMS key permits it. If you must use an IAM policy for Decrypt permissions, limit the user to particular KMS keys or particular trusted accounts. For details, see Best practices for IAM policies in the Key Management Service Developer Guide.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Decrypt (key policy)

Related operations:

" + "documentation":"

Decrypts ciphertext that was encrypted by a KMS key using any of the following operations:

You can use this operation to decrypt ciphertext that was encrypted under a symmetric encryption KMS key or an asymmetric encryption KMS key. When the KMS key is asymmetric, you must specify the KMS key and the encryption algorithm that was used to encrypt the ciphertext. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

The Decrypt operation also decrypts ciphertext that was encrypted outside of KMS by the public key in an KMS asymmetric KMS key. However, it cannot decrypt symmetric ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with KMS.

If the ciphertext was encrypted under a symmetric encryption KMS key, the KeyId parameter is optional. KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the key ID. However, specifying the KMS key is always recommended as a best practice. When you use the KeyId parameter to specify a KMS key, KMS only uses the KMS key you specify. If the ciphertext was encrypted under a different KMS key, the Decrypt operation fails. This practice ensures that you use the KMS key that you intend.

Whenever possible, use key policies to give users permission to call the Decrypt operation on a particular KMS key, instead of using IAM policies. Otherwise, you might create an IAM user policy that gives the user Decrypt permission on all KMS keys. This user could decrypt ciphertext that was encrypted by KMS keys in other accounts if the key policy for the cross-account KMS key permits it. If you must use an IAM policy for Decrypt permissions, limit the user to particular KMS keys or particular trusted accounts. For details, see Best practices for IAM policies in the Key Management Service Developer Guide.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Decrypt (key policy)

Related operations:

" }, "DeleteAlias":{ "name":"DeleteAlias", @@ -161,7 +174,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Deletes the specified alias.

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC in KMS in the Key Management Service Developer Guide.

Because an alias is not a property of a KMS key, you can delete and change the aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all KMS keys, use the ListAliases operation.

Each KMS key can have multiple aliases. To change the alias of a KMS key, use DeleteAlias to delete the current alias and CreateAlias to create a new alias. To associate an existing alias with a different KMS key, call UpdateAlias.

Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

Required permissions

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

Related operations:

" + "documentation":"

Deletes the specified alias.

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

Because an alias is not a property of a KMS key, you can delete and change the aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all KMS keys, use the ListAliases operation.

Each KMS key can have multiple aliases. To change the alias of a KMS key, use DeleteAlias to delete the current alias and CreateAlias to create a new alias. To associate an existing alias with a different KMS key, call UpdateAlias.

Cross-account use: No. You cannot perform this operation on an alias in a different Amazon Web Services account.

Required permissions

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

Related operations:

" }, "DeleteCustomKeyStore":{ "name":"DeleteCustomKeyStore", @@ -177,7 +190,7 @@ {"shape":"CustomKeyStoreNotFoundException"}, {"shape":"KMSInternalException"} ], - "documentation":"

Deletes a custom key store. This operation does not delete the CloudHSM cluster that is associated with the custom key store, or affect any users or keys in the cluster.

The custom key store that you delete cannot contain any KMS KMS keys. Before deleting the key store, verify that you will never need to use any of the KMS keys in the key store for any cryptographic operations. Then, use ScheduleKeyDeletion to delete the KMS keys from the key store. When the scheduled waiting period expires, the ScheduleKeyDeletion operation deletes the KMS keys. Then it makes a best effort to delete the key material from the associated cluster. However, you might need to manually delete the orphaned key material from the cluster and its backups.

After all KMS keys are deleted from KMS, use DisconnectCustomKeyStore to disconnect the key store from KMS. Then, you can delete the custom key store.

Instead of deleting the custom key store, consider using DisconnectCustomKeyStore to disconnect it from KMS. While the key store is disconnected, you cannot create or use the KMS keys in the key store. But, you do not need to delete KMS keys and you can reconnect a disconnected custom key store at any time.

If the operation succeeds, it returns a JSON object with no properties.

This operation is part of the Custom Key Store feature feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a single-tenant key store.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:DeleteCustomKeyStore (IAM policy)

Related operations:

" + "documentation":"

Deletes a custom key store. This operation does not affect any backing elements of the custom key store. It does not delete the CloudHSM cluster that is associated with an CloudHSM key store, or affect any users or keys in the cluster. For an external key store, it does not affect the external key store proxy, external key manager, or any external keys.

This operation is part of the custom key stores feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a key store that you own and manage.

The custom key store that you delete cannot contain any KMS keys. Before deleting the key store, verify that you will never need to use any of the KMS keys in the key store for any cryptographic operations. Then, use ScheduleKeyDeletion to delete the KMS keys from the key store. After the required waiting period expires and all KMS keys are deleted from the custom key store, use DisconnectCustomKeyStore to disconnect the key store from KMS. Then, you can delete the custom key store.

For keys in an CloudHSM key store, the ScheduleKeyDeletion operation makes a best effort to delete the key material from the associated cluster. However, you might need to manually delete the orphaned key material from the cluster and its backups. KMS never creates, manages, or deletes cryptographic keys in the external key manager associated with an external key store. You must manage them using your external key manager tools.

Instead of deleting the custom key store, consider using the DisconnectCustomKeyStore operation to disconnect the custom key store from its backing key store. While the key store is disconnected, you cannot create or use the KMS keys in the key store. But, you do not need to delete KMS keys and you can reconnect a disconnected custom key store at any time.

If the operation succeeds, it returns a JSON object with no properties.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:DeleteCustomKeyStore (IAM policy)

Related operations:

" }, "DeleteImportedKeyMaterial":{ "name":"DeleteImportedKeyMaterial", @@ -209,7 +222,7 @@ {"shape":"InvalidMarkerException"}, {"shape":"KMSInternalException"} ], - "documentation":"

Gets information about custom key stores in the account and Region.

This operation is part of the Custom Key Store feature feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a single-tenant key store.

By default, this operation returns information about all custom key stores in the account and Region. To get only information about a particular custom key store, use either the CustomKeyStoreName or CustomKeyStoreId parameter (but not both).

To determine whether the custom key store is connected to its CloudHSM cluster, use the ConnectionState element in the response. If an attempt to connect the custom key store failed, the ConnectionState value is FAILED and the ConnectionErrorCode element in the response indicates the cause of the failure. For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.

Custom key stores have a DISCONNECTED connection state if the key store has never been connected or you use the DisconnectCustomKeyStore operation to disconnect it. If your custom key store state is CONNECTED but you are having trouble using it, make sure that its associated CloudHSM cluster is active and contains the minimum number of HSMs required for the operation, if any.

For help repairing your custom key store, see the Troubleshooting Custom Key Stores topic in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:DescribeCustomKeyStores (IAM policy)

Related operations:

" + "documentation":"

Gets information about custom key stores in the account and Region.

This operation is part of the custom key stores feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a key store that you own and manage.

By default, this operation returns information about all custom key stores in the account and Region. To get only information about a particular custom key store, use either the CustomKeyStoreName or CustomKeyStoreId parameter (but not both).

To determine whether the custom key store is connected to its CloudHSM cluster or external key store proxy, use the ConnectionState element in the response. If an attempt to connect the custom key store failed, the ConnectionState value is FAILED and the ConnectionErrorCode element in the response indicates the cause of the failure. For help interpreting the ConnectionErrorCode, see CustomKeyStoresListEntry.

Custom key stores have a DISCONNECTED connection state if the key store has never been connected or you used the DisconnectCustomKeyStore operation to disconnect it. Otherwise, the connection state is CONNECTED. If your custom key store connection state is CONNECTED but you are having trouble using it, verify that the backing store is active and available. For an CloudHSM key store, verify that the associated CloudHSM cluster is active and contains the minimum number of HSMs required for the operation, if any. For an external key store, verify that the external key store proxy and its associated external key manager are reachable and enabled.

For help repairing your CloudHSM key store, see the Troubleshooting CloudHSM key stores. For help repairing your external key store, see the Troubleshooting external key stores. Both topics are in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:DescribeCustomKeyStores (IAM policy)

Related operations:

" }, "DescribeKey":{ "name":"DescribeKey", @@ -225,7 +238,7 @@ {"shape":"DependencyTimeoutException"}, {"shape":"KMSInternalException"} ], - "documentation":"

Provides detailed information about a KMS key. You can run DescribeKey on a customer managed key or an Amazon Web Services managed key.

This detailed information includes the key ARN, creation date (and deletion date, if applicable), the key state, and the origin and expiration date (if any) of the key material. It includes fields, like KeySpec, that help you distinguish different types of KMS keys. It also displays the key usage (encryption, signing, or generating and verifying MACs) and the algorithms that the KMS key supports. For KMS keys in custom key stores, it includes information about the custom key store, such as the key store ID and the CloudHSM cluster ID. For multi-Region keys, it displays the primary key and all related replica keys.

DescribeKey does not return the following information:

  • Aliases associated with the KMS key. To get this information, use ListAliases.

  • Whether automatic key rotation is enabled on the KMS key. To get this information, use GetKeyRotationStatus. Also, some key states prevent a KMS key from being automatically rotated. For details, see How Automatic Key Rotation Works in Key Management Service Developer Guide.

  • Tags on the KMS key. To get this information, use ListResourceTags.

  • Key policies and grants on the KMS key. To get this information, use GetKeyPolicy and ListGrants.

In general, DescribeKey is a non-mutating operation. It returns data about KMS keys, but doesn't change them. However, Amazon Web Services services use DescribeKey to create Amazon Web Services managed keys from a predefined Amazon Web Services alias with no key ID.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:DescribeKey (key policy)

Related operations:

" + "documentation":"

Provides detailed information about a KMS key. You can run DescribeKey on a customer managed key or an Amazon Web Services managed key.

This detailed information includes the key ARN, creation date (and deletion date, if applicable), the key state, and the origin and expiration date (if any) of the key material. It includes fields, like KeySpec, that help you distinguish different types of KMS keys. It also displays the key usage (encryption, signing, or generating and verifying MACs) and the algorithms that the KMS key supports.

For multi-Region keys, DescribeKey displays the primary key and all related replica keys. For KMS keys in CloudHSM key stores, it includes information about the key store, such as the key store ID and the CloudHSM cluster ID. For KMS keys in external key stores, it includes the custom key store ID and the ID of the external key.

DescribeKey does not return the following information:

  • Aliases associated with the KMS key. To get this information, use ListAliases.

  • Whether automatic key rotation is enabled on the KMS key. To get this information, use GetKeyRotationStatus. Also, some key states prevent a KMS key from being automatically rotated. For details, see How Automatic Key Rotation Works in the Key Management Service Developer Guide.

  • Tags on the KMS key. To get this information, use ListResourceTags.

  • Key policies and grants on the KMS key. To get this information, use GetKeyPolicy and ListGrants.

In general, DescribeKey is a non-mutating operation. It returns data about KMS keys, but doesn't change them. However, Amazon Web Services services use DescribeKey to create Amazon Web Services managed keys from a predefined Amazon Web Services alias with no key ID.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:DescribeKey (key policy)

Related operations:

" }, "DisableKey":{ "name":"DisableKey", @@ -259,7 +272,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Disables automatic rotation of the key material of the specified symmetric encryption KMS key.

Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable or disable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. The key rotation status of these KMS keys is always false. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

You can enable (EnableKeyRotation) and disable automatic rotation of the key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not configurable. KMS always rotates the key material for every year. Rotation of Amazon Web Services owned KMS keys varies.

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years to every year. For details, see EnableKeyRotation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:DisableKeyRotation (key policy)

Related operations:

" + "documentation":"

Disables automatic rotation of the key material of the specified symmetric encryption KMS key.

Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

You can enable (EnableKeyRotation) and disable automatic rotation of the key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not configurable. KMS always rotates the key material for every year. Rotation of Amazon Web Services owned KMS keys varies.

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years to every year. For details, see EnableKeyRotation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:DisableKeyRotation (key policy)

Related operations:

" }, "DisconnectCustomKeyStore":{ "name":"DisconnectCustomKeyStore", @@ -274,7 +287,7 @@ {"shape":"CustomKeyStoreNotFoundException"}, {"shape":"KMSInternalException"} ], - "documentation":"

Disconnects the custom key store from its associated CloudHSM cluster. While a custom key store is disconnected, you can manage the custom key store and its KMS keys, but you cannot create or use KMS keys in the custom key store. You can reconnect the custom key store at any time.

While a custom key store is disconnected, all attempts to create KMS keys in the custom key store or to use existing KMS keys in cryptographic operations will fail. This action can prevent users from storing and accessing sensitive data.

To find the connection state of a custom key store, use the DescribeCustomKeyStores operation. To reconnect a custom key store, use the ConnectCustomKeyStore operation.

If the operation succeeds, it returns a JSON object with no properties.

This operation is part of the Custom Key Store feature feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a single-tenant key store.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:DisconnectCustomKeyStore (IAM policy)

Related operations:

" + "documentation":"

Disconnects the custom key store from its backing key store. This operation disconnects an CloudHSM key store from its associated CloudHSM cluster or disconnects an external key store from the external key store proxy that communicates with your external key manager.

This operation is part of the custom key stores feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a key store that you own and manage.

While a custom key store is disconnected, you can manage the custom key store and its KMS keys, but you cannot create or use its KMS keys. You can reconnect the custom key store at any time.

While a custom key store is disconnected, all attempts to create KMS keys in the custom key store or to use existing KMS keys in cryptographic operations will fail. This action can prevent users from storing and accessing sensitive data.

When you disconnect a custom key store, its ConnectionState changes to Disconnected. To find the connection state of a custom key store, use the DescribeCustomKeyStores operation. To reconnect a custom key store, use the ConnectCustomKeyStore operation.

If the operation succeeds, it returns a JSON object with no properties.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:DisconnectCustomKeyStore (IAM policy)

Related operations:

" }, "EnableKey":{ "name":"EnableKey", @@ -309,7 +322,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Enables automatic rotation of the key material of the specified symmetric encryption KMS key.

When you enable automatic rotation of acustomer managed KMS key, KMS rotates the key material of the KMS key one year (approximately 365 days) from the enable date and every year thereafter. You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch. To disable rotation of the key material in a customer managed KMS key, use the DisableKeyRotation operation.

Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable or disable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. The key rotation status of these KMS keys is always false. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

You cannot enable or disable automatic rotation Amazon Web Services managed KMS keys. KMS always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS keys varies.

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years (approximately 1,095 days) to every year (approximately 365 days).

New Amazon Web Services managed keys are automatically rotated one year after they are created, and approximately every year thereafter.

Existing Amazon Web Services managed keys are automatically rotated one year after their most recent rotation, and every year thereafter.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:EnableKeyRotation (key policy)

Related operations:

" + "documentation":"

Enables automatic rotation of the key material of the specified symmetric encryption KMS key.

When you enable automatic rotation of acustomer managed KMS key, KMS rotates the key material of the KMS key one year (approximately 365 days) from the enable date and every year thereafter. You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch. To disable rotation of the key material in a customer managed KMS key, use the DisableKeyRotation operation.

Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

You cannot enable or disable automatic rotation Amazon Web Services managed KMS keys. KMS always rotates the key material of Amazon Web Services managed keys every year. Rotation of Amazon Web Services owned KMS keys varies.

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years (approximately 1,095 days) to every year (approximately 365 days).

New Amazon Web Services managed keys are automatically rotated one year after they are created, and approximately every year thereafter.

Existing Amazon Web Services managed keys are automatically rotated one year after their most recent rotation, and every year thereafter.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:EnableKeyRotation (key policy)

Related operations:

" }, "Encrypt":{ "name":"Encrypt", @@ -329,7 +342,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a symmetric or asymmetric KMS key with a KeyUsage of ENCRYPT_DECRYPT.

You can use this operation to encrypt small amounts of arbitrary data, such as a personal identifier or database password, or other sensitive information. You don't need to use the Encrypt operation to encrypt a data key. The GenerateDataKey and GenerateDataKeyPair operations return a plaintext data key and an encrypted copy of that data key.

If you use a symmetric encryption KMS key, you can use an encryption context to add additional security to your encryption operation. If you specify an EncryptionContext when encrypting data, you must specify the same encryption context (a case-sensitive exact match) when decrypting the data. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

If you specify an asymmetric KMS key, you must also specify the encryption algorithm. The algorithm must be compatible with the KMS key type.

When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

The maximum size of the data that you can encrypt varies with the type of KMS key and the encryption algorithm that you choose.

  • Symmetric encryption KMS keys

    • SYMMETRIC_DEFAULT: 4096 bytes

  • RSA_2048

    • RSAES_OAEP_SHA_1: 214 bytes

    • RSAES_OAEP_SHA_256: 190 bytes

  • RSA_3072

    • RSAES_OAEP_SHA_1: 342 bytes

    • RSAES_OAEP_SHA_256: 318 bytes

  • RSA_4096

    • RSAES_OAEP_SHA_1: 470 bytes

    • RSAES_OAEP_SHA_256: 446 bytes

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Encrypt (key policy)

Related operations:

" + "documentation":"

Encrypts plaintext of up to 4,096 bytes using a KMS key. You can use a symmetric or asymmetric KMS key with a KeyUsage of ENCRYPT_DECRYPT.

You can use this operation to encrypt small amounts of arbitrary data, such as a personal identifier or database password, or other sensitive information. You don't need to use the Encrypt operation to encrypt a data key. The GenerateDataKey and GenerateDataKeyPair operations return a plaintext data key and an encrypted copy of that data key.

If you use a symmetric encryption KMS key, you can use an encryption context to add additional security to your encryption operation. If you specify an EncryptionContext when encrypting data, you must specify the same encryption context (a case-sensitive exact match) when decrypting the data. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

If you specify an asymmetric KMS key, you must also specify the encryption algorithm. The algorithm must be compatible with the KMS key spec.

When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

The maximum size of the data that you can encrypt varies with the type of KMS key and the encryption algorithm that you choose.

  • Symmetric encryption KMS keys

    • SYMMETRIC_DEFAULT: 4096 bytes

  • RSA_2048

    • RSAES_OAEP_SHA_1: 214 bytes

    • RSAES_OAEP_SHA_256: 190 bytes

  • RSA_3072

    • RSAES_OAEP_SHA_1: 342 bytes

    • RSAES_OAEP_SHA_256: 318 bytes

  • RSA_4096

    • RSAES_OAEP_SHA_1: 470 bytes

    • RSAES_OAEP_SHA_256: 446 bytes

  • SM2PKE: 1024 bytes (China Regions only)

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Encrypt (key policy)

Related operations:

" }, "GenerateDataKey":{ "name":"GenerateDataKey", @@ -349,7 +362,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Returns a unique symmetric data key for use outside of KMS. This operation returns a plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS key that you specify. The bytes in the plaintext key are random; they are not related to the caller or the KMS key. You can use the plaintext key to encrypt your data outside of KMS and store the encrypted data key with the encrypted data.

To generate a data key, specify the symmetric encryption KMS key that will be used to encrypt the data key. You cannot use an asymmetric KMS key to encrypt data keys. To get the type of your KMS key, use the DescribeKey operation. You must also specify the length of the data key. Use either the KeySpec or NumberOfBytes parameters (but not both). For 128-bit and 256-bit data keys, use the KeySpec parameter.

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure random byte string, use GenerateRandom.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

How to use your data key

We recommend that you use the following pattern to encrypt data locally in your application. You can write your own code or use a client-side encryption library, such as the Amazon Web Services Encryption SDK, the Amazon DynamoDB Encryption Client, or Amazon S3 client-side encryption to do these tasks for you.

To encrypt data outside of KMS:

  1. Use the GenerateDataKey operation to get a data key.

  2. Use the plaintext data key (in the Plaintext field of the response) to encrypt your data outside of KMS. Then erase the plaintext data key from memory.

  3. Store the encrypted data key (in the CiphertextBlob field of the response) with the encrypted data.

To decrypt data outside of KMS:

  1. Use the Decrypt operation to decrypt the encrypted data key. The operation returns a plaintext copy of the data key.

  2. Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext data key from memory.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKey (key policy)

Related operations:

" + "documentation":"

Returns a unique symmetric data key for use outside of KMS. This operation returns a plaintext copy of the data key and a copy that is encrypted under a symmetric encryption KMS key that you specify. The bytes in the plaintext key are random; they are not related to the caller or the KMS key. You can use the plaintext key to encrypt your data outside of KMS and store the encrypted data key with the encrypted data.

To generate a data key, specify the symmetric encryption KMS key that will be used to encrypt the data key. You cannot use an asymmetric KMS key to encrypt data keys. To get the type of your KMS key, use the DescribeKey operation.

You must also specify the length of the data key. Use either the KeySpec or NumberOfBytes parameters (but not both). For 128-bit and 256-bit data keys, use the KeySpec parameter.

To generate an SM4 data key (China Regions only), specify a KeySpec value of AES_128 or NumberOfBytes value of 128. The symmetric encryption key used in China Regions to encrypt your data key is an SM4 encryption key.

To get only an encrypted copy of the data key, use GenerateDataKeyWithoutPlaintext. To generate an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operation. To get a cryptographically secure random byte string, use GenerateRandom.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

How to use your data key

We recommend that you use the following pattern to encrypt data locally in your application. You can write your own code or use a client-side encryption library, such as the Amazon Web Services Encryption SDK, the Amazon DynamoDB Encryption Client, or Amazon S3 client-side encryption to do these tasks for you.

To encrypt data outside of KMS:

  1. Use the GenerateDataKey operation to get a data key.

  2. Use the plaintext data key (in the Plaintext field of the response) to encrypt your data outside of KMS. Then erase the plaintext data key from memory.

  3. Store the encrypted data key (in the CiphertextBlob field of the response) with the encrypted data.

To decrypt data outside of KMS:

  1. Use the Decrypt operation to decrypt the encrypted data key. The operation returns a plaintext copy of the data key.

  2. Use the plaintext data key to decrypt data outside of KMS, then erase the plaintext data key from memory.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKey (key policy)

Related operations:

" }, "GenerateDataKeyPair":{ "name":"GenerateDataKeyPair", @@ -370,7 +383,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Returns a unique asymmetric data key pair for use outside of KMS. This operation returns a plaintext public key, a plaintext private key, and a copy of the private key that is encrypted under the symmetric encryption KMS key you specify. You can use the data key pair to perform asymmetric cryptography and implement digital signatures outside of KMS. The bytes in the keys are random; they not related to the caller or to the KMS key that is used to encrypt the private key.

You can use the public key that GenerateDataKeyPair returns to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key with the data. When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data key pair. KMS recommends that your use ECC key pairs for signing, and use RSA key pairs for either encryption or signing, but not both. However, KMS cannot enforce any restrictions on the use of data key pairs outside of KMS.

If you are using the data key pair to encrypt data, or for any operation where you don't immediately need a private key, consider using the GenerateDataKeyPairWithoutPlaintext operation. GenerateDataKeyPairWithoutPlaintext returns a plaintext public key and an encrypted private key, but omits the plaintext private key that you need only to decrypt ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use the Decrypt operation to decrypt the encrypted private key in the data key pair.

GenerateDataKeyPair returns a unique data key pair for each request. The bytes in the keys are random; they are not related to the caller or the KMS key that is used to encrypt the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in RFC 5280. The private key is a DER-encoded PKCS8 PrivateKeyInfo, as specified in RFC 5958.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKeyPair (key policy)

Related operations:

" + "documentation":"

Returns a unique asymmetric data key pair for use outside of KMS. This operation returns a plaintext public key, a plaintext private key, and a copy of the private key that is encrypted under the symmetric encryption KMS key you specify. You can use the data key pair to perform asymmetric cryptography and implement digital signatures outside of KMS. The bytes in the keys are random; they not related to the caller or to the KMS key that is used to encrypt the private key.

You can use the public key that GenerateDataKeyPair returns to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key with the data. When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data key pair. In China Regions, you can also choose an SM2 data key pair. KMS recommends that you use ECC key pairs for signing, and use RSA and SM2 key pairs for either encryption or signing, but not both. However, KMS cannot enforce any restrictions on the use of data key pairs outside of KMS.

If you are using the data key pair to encrypt data, or for any operation where you don't immediately need a private key, consider using the GenerateDataKeyPairWithoutPlaintext operation. GenerateDataKeyPairWithoutPlaintext returns a plaintext public key and an encrypted private key, but omits the plaintext private key that you need only to decrypt ciphertext or sign a message. Later, when you need to decrypt the data or sign a message, use the Decrypt operation to decrypt the encrypted private key in the data key pair.

GenerateDataKeyPair returns a unique data key pair for each request. The bytes in the keys are random; they are not related to the caller or the KMS key that is used to encrypt the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in RFC 5280. The private key is a DER-encoded PKCS8 PrivateKeyInfo, as specified in RFC 5958.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKeyPair (key policy)

Related operations:

" }, "GenerateDataKeyPairWithoutPlaintext":{ "name":"GenerateDataKeyPairWithoutPlaintext", @@ -391,7 +404,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Returns a unique asymmetric data key pair for use outside of KMS. This operation returns a plaintext public key and a copy of the private key that is encrypted under the symmetric encryption KMS key you specify. Unlike GenerateDataKeyPair, this operation does not return a plaintext private key. The bytes in the keys are random; they are not related to the caller or to the KMS key that is used to encrypt the private key.

You can use the public key that GenerateDataKeyPairWithoutPlaintext returns to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key with the data. When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data key pair. KMS recommends that your use ECC key pairs for signing, and use RSA key pairs for either encryption or signing, but not both. However, KMS cannot enforce any restrictions on the use of data key pairs outside of KMS.

GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each request. The bytes in the key are not related to the caller or KMS key that is used to encrypt the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in RFC 5280.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKeyPairWithoutPlaintext (key policy)

Related operations:

" + "documentation":"

Returns a unique asymmetric data key pair for use outside of KMS. This operation returns a plaintext public key and a copy of the private key that is encrypted under the symmetric encryption KMS key you specify. Unlike GenerateDataKeyPair, this operation does not return a plaintext private key. The bytes in the keys are random; they are not related to the caller or to the KMS key that is used to encrypt the private key.

You can use the public key that GenerateDataKeyPairWithoutPlaintext returns to encrypt data or verify a signature outside of KMS. Then, store the encrypted private key with the data. When you are ready to decrypt data or sign a message, you can use the Decrypt operation to decrypt the encrypted private key.

To generate a data key pair, you must specify a symmetric encryption KMS key to encrypt the private key in a data key pair. You cannot use an asymmetric KMS key or a KMS key in a custom key store. To get the type and origin of your KMS key, use the DescribeKey operation.

Use the KeyPairSpec parameter to choose an RSA or Elliptic Curve (ECC) data key pair. In China Regions, you can also choose an SM2 data key pair. KMS recommends that you use ECC key pairs for signing, and use RSA and SM2 key pairs for either encryption or signing, but not both. However, KMS cannot enforce any restrictions on the use of data key pairs outside of KMS.

GenerateDataKeyPairWithoutPlaintext returns a unique data key pair for each request. The bytes in the key are not related to the caller or KMS key that is used to encrypt the private key. The public key is a DER-encoded X.509 SubjectPublicKeyInfo, as specified in RFC 5280.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKeyPairWithoutPlaintext (key policy)

Related operations:

" }, "GenerateDataKeyWithoutPlaintext":{ "name":"GenerateDataKeyWithoutPlaintext", @@ -411,7 +424,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Returns a unique symmetric data key for use outside of KMS. This operation returns a data key that is encrypted under a symmetric encryption KMS key that you specify. The bytes in the key are random; they are not related to the caller or to the KMS key.

GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation except that it does not return a plaintext copy of the data key.

This operation is useful for systems that need to encrypt data at some point, but not immediately. When you need to encrypt the data, you call the Decrypt operation on the encrypted copy of the key.

It's also useful in distributed systems with different levels of trust. For example, you might store encrypted data in containers. One component of your system creates new containers and stores an encrypted data key with each container. Then, a different component puts the data into the containers. That component first decrypts the data key, uses the plaintext data key to encrypt data, puts the encrypted data into the container, and then destroys the plaintext data key. In this system, the component that creates the containers never sees the plaintext data key.

To request an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operations.

To generate a data key, you must specify the symmetric encryption KMS key that is used to encrypt the data key. You cannot use an asymmetric KMS key or a key in a custom key store to generate a data key. To get the type of your KMS key, use the DescribeKey operation.

If the operation succeeds, you will find the encrypted copy of the data key in the CiphertextBlob field.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKeyWithoutPlaintext (key policy)

Related operations:

" + "documentation":"

Returns a unique symmetric data key for use outside of KMS. This operation returns a data key that is encrypted under a symmetric encryption KMS key that you specify. The bytes in the key are random; they are not related to the caller or to the KMS key.

GenerateDataKeyWithoutPlaintext is identical to the GenerateDataKey operation except that it does not return a plaintext copy of the data key.

This operation is useful for systems that need to encrypt data at some point, but not immediately. When you need to encrypt the data, you call the Decrypt operation on the encrypted copy of the key.

It's also useful in distributed systems with different levels of trust. For example, you might store encrypted data in containers. One component of your system creates new containers and stores an encrypted data key with each container. Then, a different component puts the data into the containers. That component first decrypts the data key, uses the plaintext data key to encrypt data, puts the encrypted data into the container, and then destroys the plaintext data key. In this system, the component that creates the containers never sees the plaintext data key.

To request an asymmetric data key pair, use the GenerateDataKeyPair or GenerateDataKeyPairWithoutPlaintext operations.

To generate a data key, you must specify the symmetric encryption KMS key that is used to encrypt the data key. You cannot use an asymmetric KMS key or a key in a custom key store to generate a data key. To get the type of your KMS key, use the DescribeKey operation.

You must also specify the length of the data key. Use either the KeySpec or NumberOfBytes parameters (but not both). For 128-bit and 256-bit data keys, use the KeySpec parameter.

To generate an SM4 data key (China Regions only), specify a KeySpec value of AES_128 or NumberOfBytes value of 128. The symmetric encryption key used in China Regions to encrypt your data key is an SM4 encryption key.

If the operation succeeds, you will find the encrypted copy of the data key in the CiphertextBlob field.

You can use an optional encryption context to add additional security to the encryption operation. If you specify an EncryptionContext, you must specify the same encryption context (a case-sensitive exact match) when decrypting the encrypted data key. Otherwise, the request to decrypt fails with an InvalidCiphertextException. For more information, see Encryption Context in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateDataKeyWithoutPlaintext (key policy)

Related operations:

" }, "GenerateMac":{ "name":"GenerateMac", @@ -430,7 +443,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Generates a hash-based message authentication code (HMAC) for a message using an HMAC KMS key and a MAC algorithm that the key supports. The MAC algorithm computes the HMAC for the message and the key as described in RFC 2104.

You can use the HMAC that this operation generates with the VerifyMac operation to demonstrate that the original message has not changed. Also, because a secret key is used to create the hash, you can verify that the party that generated the hash has the required secret key. This operation is part of KMS support for HMAC KMS keys. For details, see HMAC keys in KMS in the Key Management Service Developer Guide .

Best practices recommend that you limit the time during which any signing mechanism, including an HMAC, is effective. This deters an attack where the actor uses a signed message to establish validity repeatedly or long after the message is superseded. HMAC tags do not include a timestamp, but you can include a timestamp in the token or message to help you detect when its time to refresh the HMAC.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateMac (key policy)

Related operations: VerifyMac

" + "documentation":"

Generates a hash-based message authentication code (HMAC) for a message using an HMAC KMS key and a MAC algorithm that the key supports. HMAC KMS keys and the HMAC algorithms that KMS uses conform to industry standards defined in RFC 2104.

You can use value that GenerateMac returns in the VerifyMac operation to demonstrate that the original message has not changed. Also, because a secret key is used to create the hash, you can verify that the party that generated the hash has the required secret key. You can also use the raw result to implement HMAC-based algorithms such as key derivation functions. This operation is part of KMS support for HMAC KMS keys. For details, see HMAC keys in KMS in the Key Management Service Developer Guide .

Best practices recommend that you limit the time during which any signing mechanism, including an HMAC, is effective. This deters an attack where the actor uses a signed message to establish validity repeatedly or long after the message is superseded. HMAC tags do not include a timestamp, but you can include a timestamp in the token or message to help you detect when its time to refresh the HMAC.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GenerateMac (key policy)

Related operations: VerifyMac

" }, "GenerateRandom":{ "name":"GenerateRandom", @@ -443,10 +456,11 @@ "errors":[ {"shape":"DependencyTimeoutException"}, {"shape":"KMSInternalException"}, + {"shape":"UnsupportedOperationException"}, {"shape":"CustomKeyStoreNotFoundException"}, {"shape":"CustomKeyStoreInvalidStateException"} ], - "documentation":"

Returns a random byte string that is cryptographically secure.

By default, the random byte string is generated in KMS. To generate the byte string in the CloudHSM cluster that is associated with a custom key store, specify the custom key store ID.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

For more information about entropy and random number generation, see Key Management Service Cryptographic Details.

Required permissions: kms:GenerateRandom (IAM policy)

" + "documentation":"

Returns a random byte string that is cryptographically secure.

You must use the NumberOfBytes parameter to specify the length of the random byte string. There is no default value for string length.

By default, the random byte string is generated in KMS. To generate the byte string in the CloudHSM cluster associated with an CloudHSM key store, use the CustomKeyStoreId parameter.

Applications in Amazon Web Services Nitro Enclaves can call this operation by using the Amazon Web Services Nitro Enclaves Development Kit. For information about the supporting parameters, see How Amazon Web Services Nitro Enclaves use KMS in the Key Management Service Developer Guide.

For more information about entropy and random number generation, see Key Management Service Cryptographic Details.

Cross-account use: Not applicable. GenerateRandom does not use any account-specific resources, such as KMS keys.

Required permissions: kms:GenerateRandom (IAM policy)

" }, "GetKeyPolicy":{ "name":"GetKeyPolicy", @@ -481,7 +495,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Gets a Boolean value that indicates whether automatic rotation of the key material is enabled for the specified KMS key.

When you enable automatic rotation for customer managed KMS keys, KMS rotates the key material of the KMS key one year (approximately 365 days) from the enable date and every year thereafter. You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch.

Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable or disable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. The key rotation status of these KMS keys is always false. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key..

You can enable (EnableKeyRotation) and disable automatic rotation (DisableKeyRotation) of the key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not configurable. KMS always rotates the key material in Amazon Web Services managed KMS keys every year. The key rotation status for Amazon Web Services managed KMS keys is always true.

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years to every year. For details, see EnableKeyRotation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

  • Disabled: The key rotation status does not change when you disable a KMS key. However, while the KMS key is disabled, KMS does not rotate the key material. When you re-enable the KMS key, rotation resumes. If the key material in the re-enabled KMS key hasn't been rotated in one year, KMS rotates it immediately, and every year thereafter. If it's been less than a year since the key material in the re-enabled KMS key was rotated, the KMS key resumes its prior rotation schedule.

  • Pending deletion: While a KMS key is pending deletion, its key rotation status is false and KMS does not rotate the key material. If you cancel the deletion, the original key rotation status returns to true.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:GetKeyRotationStatus (key policy)

Related operations:

" + "documentation":"

Gets a Boolean value that indicates whether automatic rotation of the key material is enabled for the specified KMS key.

When you enable automatic rotation for customer managed KMS keys, KMS rotates the key material of the KMS key one year (approximately 365 days) from the enable date and every year thereafter. You can monitor rotation of the key material for your KMS keys in CloudTrail and Amazon CloudWatch.

Automatic key rotation is supported only on symmetric encryption KMS keys. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key..

You can enable (EnableKeyRotation) and disable automatic rotation (DisableKeyRotation) of the key material in customer managed KMS keys. Key material rotation of Amazon Web Services managed KMS keys is not configurable. KMS always rotates the key material in Amazon Web Services managed KMS keys every year. The key rotation status for Amazon Web Services managed KMS keys is always true.

In May 2022, KMS changed the rotation schedule for Amazon Web Services managed keys from every three years to every year. For details, see EnableKeyRotation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

  • Disabled: The key rotation status does not change when you disable a KMS key. However, while the KMS key is disabled, KMS does not rotate the key material. When you re-enable the KMS key, rotation resumes. If the key material in the re-enabled KMS key hasn't been rotated in one year, KMS rotates it immediately, and every year thereafter. If it's been less than a year since the key material in the re-enabled KMS key was rotated, the KMS key resumes its prior rotation schedule.

  • Pending deletion: While a KMS key is pending deletion, its key rotation status is false and KMS does not rotate the key material. If you cancel the deletion, the original key rotation status returns to true.

Cross-account use: Yes. To perform this operation on a KMS key in a different Amazon Web Services account, specify the key ARN in the value of the KeyId parameter.

Required permissions: kms:GetKeyRotationStatus (key policy)

Related operations:

" }, "GetParametersForImport":{ "name":"GetParametersForImport", @@ -499,7 +513,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Returns the items you need to import key material into a symmetric encryption KMS key. For more information about importing key material into KMS, see Importing key material in the Key Management Service Developer Guide.

This operation returns a public key and an import token. Use the public key to encrypt the symmetric key material. Store the import token to send with a subsequent ImportKeyMaterial request.

You must specify the key ID of the symmetric encryption KMS key into which you will import key material. This KMS key's Origin must be EXTERNAL. You must also specify the wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key material. You cannot perform this operation on an asymmetric KMS key, an HMAC KMS key, or on any KMS key in a different Amazon Web Services account.

To import key material, you must use the public key and import token from the same response. These items are valid for 24 hours. The expiration date and time appear in the GetParametersForImport response. You cannot use an expired token in an ImportKeyMaterial request. If your key and token expire, send another GetParametersForImport request.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:GetParametersForImport (key policy)

Related operations:

" + "documentation":"

Returns the items you need to import key material into a symmetric encryption KMS key. For more information about importing key material into KMS, see Importing key material in the Key Management Service Developer Guide.

This operation returns a public key and an import token. Use the public key to encrypt the symmetric key material. Store the import token to send with a subsequent ImportKeyMaterial request.

You must specify the key ID of the symmetric encryption KMS key into which you will import key material. The KMS key Origin must be EXTERNAL. You must also specify the wrapping algorithm and type of wrapping key (public key) that you will use to encrypt the key material. You cannot perform this operation on an asymmetric KMS key, an HMAC KMS key, or on any KMS key in a different Amazon Web Services account.

To import key material, you must use the public key and import token from the same response. These items are valid for 24 hours. The expiration date and time appear in the GetParametersForImport response. You cannot use an expired token in an ImportKeyMaterial request. If your key and token expire, send another GetParametersForImport request.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:GetParametersForImport (key policy)

Related operations:

" }, "GetPublicKey":{ "name":"GetPublicKey", @@ -521,7 +535,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Returns the public key of an asymmetric KMS key. Unlike the private key of a asymmetric KMS key, which never leaves KMS unencrypted, callers with kms:GetPublicKey permission can download the public key of an asymmetric KMS key. You can share the public key to allow others to encrypt messages and verify signatures outside of KMS. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

You do not need to download the public key. Instead, you can use the public key within KMS by calling the Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric KMS key. When you use the public key within KMS, you benefit from the authentication, authorization, and logging that are part of every KMS operation. You also reduce of risk of encrypting data that cannot be decrypted. These features are not effective outside of KMS. For details, see Special Considerations for Downloading Public Keys.

To help you use the public key safely outside of KMS, GetPublicKey returns important information about the public key in the response, including:

  • KeySpec: The type of key material in the public key, such as RSA_4096 or ECC_NIST_P521.

  • KeyUsage: Whether the key is used for encryption or signing.

  • EncryptionAlgorithms or SigningAlgorithms: A list of the encryption algorithms or the signing algorithms for the key.

Although KMS cannot enforce these restrictions on external operations, it is crucial that you use this information to prevent the public key from being used improperly. For example, you can prevent a public signing key from being used encrypt data, or prevent a public key from being used with an encryption algorithm that is not supported by KMS. You can also avoid errors, such as using the wrong signing algorithm in a verification operation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GetPublicKey (key policy)

Related operations: CreateKey

" + "documentation":"

Returns the public key of an asymmetric KMS key. Unlike the private key of a asymmetric KMS key, which never leaves KMS unencrypted, callers with kms:GetPublicKey permission can download the public key of an asymmetric KMS key. You can share the public key to allow others to encrypt messages and verify signatures outside of KMS. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

You do not need to download the public key. Instead, you can use the public key within KMS by calling the Encrypt, ReEncrypt, or Verify operations with the identifier of an asymmetric KMS key. When you use the public key within KMS, you benefit from the authentication, authorization, and logging that are part of every KMS operation. You also reduce of risk of encrypting data that cannot be decrypted. These features are not effective outside of KMS.

To help you use the public key safely outside of KMS, GetPublicKey returns important information about the public key in the response, including:

  • KeySpec: The type of key material in the public key, such as RSA_4096 or ECC_NIST_P521.

  • KeyUsage: Whether the key is used for encryption or signing.

  • EncryptionAlgorithms or SigningAlgorithms: A list of the encryption algorithms or the signing algorithms for the key.

Although KMS cannot enforce these restrictions on external operations, it is crucial that you use this information to prevent the public key from being used improperly. For example, you can prevent a public signing key from being used encrypt data, or prevent a public key from being used with an encryption algorithm that is not supported by KMS. You can also avoid errors, such as using the wrong signing algorithm in a verification operation.

To verify a signature outside of KMS with an SM2 public key (China Regions only), you must specify the distinguishing ID. By default, KMS uses 1234567812345678 as the distinguishing ID. For more information, see Offline verification with SM2 key pairs.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:GetPublicKey (key policy)

Related operations: CreateKey

" }, "ImportKeyMaterial":{ "name":"ImportKeyMaterial", @@ -543,7 +557,7 @@ {"shape":"ExpiredImportTokenException"}, {"shape":"InvalidImportTokenException"} ], - "documentation":"

Imports key material into an existing symmetric encryption KMS key that was created without key material. After you successfully import key material into a KMS key, you can reimport the same key material into that KMS key, but you cannot import different key material.

You cannot perform this operation on an asymmetric KMS key, an HMAC KMS key, or on any KMS key in a different Amazon Web Services account. For more information about creating KMS keys with no key material and then importing key material, see Importing Key Material in the Key Management Service Developer Guide.

Before using this operation, call GetParametersForImport. Its response includes a public key and an import token. Use the public key to encrypt the key material. Then, submit the import token from the same GetParametersForImport response.

When calling this operation, you must specify the following values:

  • The key ID or key ARN of a KMS key with no key material. Its Origin must be EXTERNAL.

    To create a KMS key with no key material, call CreateKey and set the value of its Origin parameter to EXTERNAL. To get the Origin of a KMS key, call DescribeKey.)

  • The encrypted key material. To get the public key to encrypt the key material, call GetParametersForImport.

  • The import token that GetParametersForImport returned. You must use a public key and token from the same GetParametersForImport response.

  • Whether the key material expires and if so, when. If you set an expiration date, KMS deletes the key material from the KMS key on the specified date, and the KMS key becomes unusable. To use the KMS key again, you must reimport the same key material. The only way to change an expiration date is by reimporting the same key material and specifying a new expiration date.

When this operation is successful, the key state of the KMS key changes from PendingImport to Enabled, and you can use the KMS key.

If this operation fails, use the exception to help determine the problem. If the error is related to the key material, the import token, or wrapping key, use GetParametersForImport to get a new public key and import token for the KMS key and repeat the import procedure. For help, see How To Import Key Material in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:ImportKeyMaterial (key policy)

Related operations:

" + "documentation":"

Imports key material into an existing symmetric encryption KMS key that was created without key material. After you successfully import key material into a KMS key, you can reimport the same key material into that KMS key, but you cannot import different key material.

You cannot perform this operation on an asymmetric KMS key, an HMAC KMS key, or on any KMS key in a different Amazon Web Services account. For more information about creating KMS keys with no key material and then importing key material, see Importing Key Material in the Key Management Service Developer Guide.

Before using this operation, call GetParametersForImport. Its response includes a public key and an import token. Use the public key to encrypt the key material. Then, submit the import token from the same GetParametersForImport response.

When calling this operation, you must specify the following values:

  • The key ID or key ARN of a KMS key with no key material. Its Origin must be EXTERNAL.

    To create a KMS key with no key material, call CreateKey and set the value of its Origin parameter to EXTERNAL. To get the Origin of a KMS key, call DescribeKey.)

  • The encrypted key material. To get the public key to encrypt the key material, call GetParametersForImport.

  • The import token that GetParametersForImport returned. You must use a public key and token from the same GetParametersForImport response.

  • Whether the key material expires (ExpirationModel) and, if so, when (ValidTo). If you set an expiration date, on the specified date, KMS deletes the key material from the KMS key, making the KMS key unusable. To use the KMS key in cryptographic operations again, you must reimport the same key material. The only way to change the expiration model or expiration date is by reimporting the same key material and specifying a new expiration date.

When this operation is successful, the key state of the KMS key changes from PendingImport to Enabled, and you can use the KMS key.

If this operation fails, use the exception to help determine the problem. If the error is related to the key material, the import token, or wrapping key, use GetParametersForImport to get a new public key and import token for the KMS key and repeat the import procedure. For help, see How To Import Key Material in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:ImportKeyMaterial (key policy)

Related operations:

" }, "ListAliases":{ "name":"ListAliases", @@ -685,7 +699,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this operation to change the KMS key under which data is encrypted, such as when you manually rotate a KMS key or change the KMS key that protects a ciphertext. You can also use it to reencrypt ciphertext under the same KMS key, such as to change the encryption context of a ciphertext.

The ReEncrypt operation can decrypt ciphertext that was encrypted by using a KMS key in an KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the public key of an asymmetric KMS key outside of KMS. However, it cannot decrypt ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with KMS.

When you use the ReEncrypt operation, you need to provide information for the decrypt operation and the subsequent encrypt operation.

  • If your ciphertext was encrypted under an asymmetric KMS key, you must use the SourceKeyId parameter to identify the KMS key that encrypted the ciphertext. You must also supply the encryption algorithm that was used. This information is required to decrypt the data.

  • If your ciphertext was encrypted under a symmetric encryption KMS key, the SourceKeyId parameter is optional. KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the key ID. However, specifying the source KMS key is always recommended as a best practice. When you use the SourceKeyId parameter to specify a KMS key, KMS uses only the KMS key you specify. If the ciphertext was encrypted under a different KMS key, the ReEncrypt operation fails. This practice ensures that you use the KMS key that you intend.

  • To reencrypt the data, you must use the DestinationKeyId parameter specify the KMS key that re-encrypts the data after it is decrypted. If the destination KMS key is an asymmetric KMS key, you must also provide the encryption algorithm. The algorithm that you choose must be compatible with the KMS key.

    When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

    You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. The source KMS key and destination KMS key can be in different Amazon Web Services accounts. Either or both KMS keys can be in a different account than the caller. To specify a KMS key in a different account, you must use its key ARN or alias ARN.

Required permissions:

To permit reencryption from or to a KMS key, include the \"kms:ReEncrypt*\" permission in your key policy. This permission is automatically included in the key policy when you use the console to create a KMS key. But you must include it manually when you create a KMS key programmatically or when you use the PutKeyPolicy operation to set a key policy.

Related operations:

" + "documentation":"

Decrypts ciphertext and then reencrypts it entirely within KMS. You can use this operation to change the KMS key under which data is encrypted, such as when you manually rotate a KMS key or change the KMS key that protects a ciphertext. You can also use it to reencrypt ciphertext under the same KMS key, such as to change the encryption context of a ciphertext.

The ReEncrypt operation can decrypt ciphertext that was encrypted by using a KMS key in an KMS operation, such as Encrypt or GenerateDataKey. It can also decrypt ciphertext that was encrypted by using the public key of an asymmetric KMS key outside of KMS. However, it cannot decrypt ciphertext produced by other libraries, such as the Amazon Web Services Encryption SDK or Amazon S3 client-side encryption. These libraries return a ciphertext format that is incompatible with KMS.

When you use the ReEncrypt operation, you need to provide information for the decrypt operation and the subsequent encrypt operation.

  • If your ciphertext was encrypted under an asymmetric KMS key, you must use the SourceKeyId parameter to identify the KMS key that encrypted the ciphertext. You must also supply the encryption algorithm that was used. This information is required to decrypt the data.

  • If your ciphertext was encrypted under a symmetric encryption KMS key, the SourceKeyId parameter is optional. KMS can get this information from metadata that it adds to the symmetric ciphertext blob. This feature adds durability to your implementation by ensuring that authorized users can decrypt ciphertext decades after it was encrypted, even if they've lost track of the key ID. However, specifying the source KMS key is always recommended as a best practice. When you use the SourceKeyId parameter to specify a KMS key, KMS uses only the KMS key you specify. If the ciphertext was encrypted under a different KMS key, the ReEncrypt operation fails. This practice ensures that you use the KMS key that you intend.

  • To reencrypt the data, you must use the DestinationKeyId parameter to specify the KMS key that re-encrypts the data after it is decrypted. If the destination KMS key is an asymmetric KMS key, you must also provide the encryption algorithm. The algorithm that you choose must be compatible with the KMS key.

    When you use an asymmetric KMS key to encrypt or reencrypt data, be sure to record the KMS key and encryption algorithm that you choose. You will be required to provide the same KMS key and encryption algorithm when you decrypt the data. If the KMS key and algorithm do not match the values used to encrypt the data, the decrypt operation fails.

    You are not required to supply the key ID and encryption algorithm when you decrypt with symmetric encryption KMS keys because KMS stores this information in the ciphertext blob. KMS cannot store metadata in ciphertext generated with asymmetric keys. The standard format for asymmetric key ciphertext does not include configurable fields.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. The source KMS key and destination KMS key can be in different Amazon Web Services accounts. Either or both KMS keys can be in a different account than the caller. To specify a KMS key in a different account, you must use its key ARN or alias ARN.

Required permissions:

To permit reencryption from or to a KMS key, include the \"kms:ReEncrypt*\" permission in your key policy. This permission is automatically included in the key policy when you use the console to create a KMS key. But you must include it manually when you create a KMS key programmatically or when you use the PutKeyPolicy operation to set a key policy.

Related operations:

" }, "ReplicateKey":{ "name":"ReplicateKey", @@ -759,7 +773,7 @@ {"shape":"KMSInternalException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is successful, the key state of the KMS key changes to PendingDeletion and the key can't be used in any cryptographic operations. It remains in this state for the duration of the waiting period. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key, its key material, and all KMS data associated with it, including all aliases that refer to it.

Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is a multi-Region replica key.) To prevent the use of a KMS key without deleting it, use DisableKey.

If you schedule deletion of a KMS key from a custom key store, when the waiting period expires, ScheduleKeyDeletion deletes the KMS key from KMS. Then KMS makes a best effort to delete the key material from the associated CloudHSM cluster. However, you might need to manually delete the orphaned key material from the cluster and its backups.

You can schedule the deletion of a multi-Region primary key and its replica keys at any time. However, KMS will not delete a multi-Region primary key with existing replica keys. If you schedule the deletion of a primary key with replicas, its key state changes to PendingReplicaDeletion and it cannot be replicated or used in cryptographic operations. This status can continue indefinitely. When the last of its replicas keys is deleted (not just scheduled), the key state of the primary key changes to PendingDeletion and its waiting period (PendingWindowInDays) begins. For details, see Deleting multi-Region keys in the Key Management Service Developer Guide.

For more information about scheduling a KMS key for deletion, see Deleting KMS keys in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:ScheduleKeyDeletion (key policy)

Related operations

" + "documentation":"

Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is successful, the key state of the KMS key changes to PendingDeletion and the key can't be used in any cryptographic operations. It remains in this state for the duration of the waiting period. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key, its key material, and all KMS data associated with it, including all aliases that refer to it.

Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is a multi-Region replica key.) To prevent the use of a KMS key without deleting it, use DisableKey.

You can schedule the deletion of a multi-Region primary key and its replica keys at any time. However, KMS will not delete a multi-Region primary key with existing replica keys. If you schedule the deletion of a primary key with replicas, its key state changes to PendingReplicaDeletion and it cannot be replicated or used in cryptographic operations. This status can continue indefinitely. When the last of its replicas keys is deleted (not just scheduled), the key state of the primary key changes to PendingDeletion and its waiting period (PendingWindowInDays) begins. For details, see Deleting multi-Region keys in the Key Management Service Developer Guide.

When KMS deletes a KMS key from an CloudHSM key store, it makes a best effort to delete the associated key material from the associated CloudHSM cluster. However, you might need to manually delete the orphaned key material from the cluster and its backups. Deleting a KMS key from an external key store has no effect on the associated external key. However, for both types of custom key stores, deleting a KMS key is destructive and irreversible. You cannot decrypt ciphertext encrypted under the KMS key by using only its associated external key or CloudHSM key. Also, you cannot recreate a KMS key in an external key store by creating a new KMS key with the same key material.

For more information about scheduling a KMS key for deletion, see Deleting KMS keys in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:ScheduleKeyDeletion (key policy)

Related operations

" }, "Sign":{ "name":"Sign", @@ -796,7 +810,7 @@ {"shape":"LimitExceededException"}, {"shape":"TagException"} ], - "documentation":"

Adds or edits tags on a customer managed key.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC in KMS in the Key Management Service Developer Guide.

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value.

You can use this operation to tag a customer managed key, but you cannot tag an Amazon Web Services managed key, an Amazon Web Services owned key, a custom key store, or an alias.

You can also add tags to a KMS key while creating it (CreateKey) or replicating it (ReplicateKey).

For information about using tags in KMS, see Tagging keys. For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:TagResource (key policy)

Related operations

" + "documentation":"

Adds or edits tags on a customer managed key.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

Each tag consists of a tag key and a tag value, both of which are case-sensitive strings. The tag value can be an empty (null) string. To add a tag, specify a new tag key and a tag value. To edit a tag, specify an existing tag key and a new tag value.

You can use this operation to tag a customer managed key, but you cannot tag an Amazon Web Services managed key, an Amazon Web Services owned key, a custom key store, or an alias.

You can also add tags to a KMS key while creating it (CreateKey) or replicating it (ReplicateKey).

For information about using tags in KMS, see Tagging keys. For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:TagResource (key policy)

Related operations

" }, "UntagResource":{ "name":"UntagResource", @@ -812,7 +826,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"TagException"} ], - "documentation":"

Deletes tags from a customer managed key. To delete a tag, specify the tag key and the KMS key.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC in KMS in the Key Management Service Developer Guide.

When it succeeds, the UntagResource operation doesn't return any output. Also, if the specified tag key isn't found on the KMS key, it doesn't throw an exception or return a response. To confirm that the operation worked, use the ListResourceTags operation.

For information about using tags in KMS, see Tagging keys. For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:UntagResource (key policy)

Related operations

" + "documentation":"

Deletes tags from a customer managed key. To delete a tag, specify the tag key and the KMS key.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

When it succeeds, the UntagResource operation doesn't return any output. Also, if the specified tag key isn't found on the KMS key, it doesn't throw an exception or return a response. To confirm that the operation worked, use the ListResourceTags operation.

For information about using tags in KMS, see Tagging keys. For general information about tags, including the format and syntax, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions: kms:UntagResource (key policy)

Related operations

" }, "UpdateAlias":{ "name":"UpdateAlias", @@ -828,7 +842,7 @@ {"shape":"LimitExceededException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Associates an existing KMS alias with a different KMS key. Each alias is associated with only one KMS key at a time, although a KMS key can have multiple aliases. The alias and the KMS key must be in the same Amazon Web Services account and Region.

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC in KMS in the Key Management Service Developer Guide.

The current and new KMS key must be the same type (both symmetric or both asymmetric), and they must have the same key usage (ENCRYPT_DECRYPT or SIGN_VERIFY). This restriction prevents errors in code that uses aliases. If you must assign an alias to a different type of KMS key, use DeleteAlias to delete the old alias and CreateAlias to create a new alias.

You cannot use UpdateAlias to change an alias name. To change an alias name, use DeleteAlias to delete the old alias and CreateAlias to create a new alias.

Because an alias is not a property of a KMS key, you can create, update, and delete the aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all KMS keys in the account, use the ListAliases operation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

Related operations:

" + "documentation":"

Associates an existing KMS alias with a different KMS key. Each alias is associated with only one KMS key at a time, although a KMS key can have multiple aliases. The alias and the KMS key must be in the same Amazon Web Services account and Region.

Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

The current and new KMS key must be the same type (both symmetric or both asymmetric or both HMAC), and they must have the same key usage. This restriction prevents errors in code that uses aliases. If you must assign an alias to a different type of KMS key, use DeleteAlias to delete the old alias and CreateAlias to create a new alias.

You cannot use UpdateAlias to change an alias name. To change an alias name, use DeleteAlias to delete the old alias and CreateAlias to create a new alias.

Because an alias is not a property of a KMS key, you can create, update, and delete the aliases of a KMS key without affecting the KMS key. Also, aliases do not appear in the response from the DescribeKey operation. To get the aliases of all KMS keys in the account, use the ListAliases operation.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account.

Required permissions

For details, see Controlling access to aliases in the Key Management Service Developer Guide.

Related operations:

" }, "UpdateCustomKeyStore":{ "name":"UpdateCustomKeyStore", @@ -846,9 +860,18 @@ {"shape":"CustomKeyStoreInvalidStateException"}, {"shape":"KMSInternalException"}, {"shape":"CloudHsmClusterNotActiveException"}, - {"shape":"CloudHsmClusterInvalidConfigurationException"} + {"shape":"CloudHsmClusterInvalidConfigurationException"}, + {"shape":"XksProxyUriInUseException"}, + {"shape":"XksProxyUriEndpointInUseException"}, + {"shape":"XksProxyUriUnreachableException"}, + {"shape":"XksProxyIncorrectAuthenticationCredentialException"}, + {"shape":"XksProxyVpcEndpointServiceInUseException"}, + {"shape":"XksProxyVpcEndpointServiceNotFoundException"}, + {"shape":"XksProxyVpcEndpointServiceInvalidConfigurationException"}, + {"shape":"XksProxyInvalidResponseException"}, + {"shape":"XksProxyInvalidConfigurationException"} ], - "documentation":"

Changes the properties of a custom key store. Use the CustomKeyStoreId parameter to identify the custom key store you want to edit. Use the remaining parameters to change the properties of the custom key store.

You can only update a custom key store that is disconnected. To disconnect the custom key store, use DisconnectCustomKeyStore. To reconnect the custom key store after the update completes, use ConnectCustomKeyStore. To find the connection state of a custom key store, use the DescribeCustomKeyStores operation.

The CustomKeyStoreId parameter is required in all commands. Use the other parameters of UpdateCustomKeyStore to edit your key store settings.

  • Use the NewCustomKeyStoreName parameter to change the friendly name of the custom key store to the value that you specify.

  • Use the KeyStorePassword parameter tell KMS the current password of the kmsuser crypto user (CU) in the associated CloudHSM cluster. You can use this parameter to fix connection failures that occur when KMS cannot log into the associated cluster because the kmsuser password has changed. This value does not change the password in the CloudHSM cluster.

  • Use the CloudHsmClusterId parameter to associate the custom key store with a different, but related, CloudHSM cluster. You can use this parameter to repair a custom key store if its CloudHSM cluster becomes corrupted or is deleted, or when you need to create or restore a cluster from a backup.

If the operation succeeds, it returns a JSON object with no properties.

This operation is part of the Custom Key Store feature feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a single-tenant key store.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:UpdateCustomKeyStore (IAM policy)

Related operations:

" + "documentation":"

Changes the properties of a custom key store. You can use this operation to change the properties of an CloudHSM key store or an external key store.

Use the required CustomKeyStoreId parameter to identify the custom key store. Use the remaining optional parameters to change its properties. This operation does not return any property values. To verify the updated property values, use the DescribeCustomKeyStores operation.

This operation is part of the custom key stores feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a key store that you own and manage.

When updating the properties of an external key store, verify that the updated settings connect your key store, via the external key store proxy, to the same external key manager as the previous settings, or to a backup or snapshot of the external key manager with the same cryptographic keys. If the updated connection settings fail, you can fix them and retry, although an extended delay might disrupt Amazon Web Services services. However, if KMS permanently loses its access to cryptographic keys, ciphertext encrypted under those keys is unrecoverable.

For external key stores:

Some external key managers provide a simpler method for updating an external key store. For details, see your external key manager documentation.

When updating an external key store in the KMS console, you can upload a JSON-based proxy configuration file with the desired values. You cannot upload the proxy configuration file to the UpdateCustomKeyStore operation. However, you can use the file to help you determine the correct values for the UpdateCustomKeyStore parameters.

For an CloudHSM key store, you can use this operation to change the custom key store friendly name (NewCustomKeyStoreName), to tell KMS about a change to the kmsuser crypto user password (KeyStorePassword), or to associate the custom key store with a different, but related, CloudHSM cluster (CloudHsmClusterId). To update any property of an CloudHSM key store, the ConnectionState of the CloudHSM key store must be DISCONNECTED.

For an external key store, you can use this operation to change the custom key store friendly name (NewCustomKeyStoreName), or to tell KMS about a change to the external key store proxy authentication credentials (XksProxyAuthenticationCredential), connection method (XksProxyConnectivity), external proxy endpoint (XksProxyUriEndpoint) and path (XksProxyUriPath). For external key stores with an XksProxyConnectivity of VPC_ENDPOINT_SERVICE, you can also update the Amazon VPC endpoint service name (XksProxyVpcEndpointServiceName). To update most properties of an external key store, the ConnectionState of the external key store must be DISCONNECTED. However, you can update the CustomKeyStoreName, XksProxyAuthenticationCredential, and XksProxyUriPath of an external key store when it is in the CONNECTED or DISCONNECTED state.

If your update requires a DISCONNECTED state, before using UpdateCustomKeyStore, use the DisconnectCustomKeyStore operation to disconnect the custom key store. After the UpdateCustomKeyStore operation completes, use the ConnectCustomKeyStore to reconnect the custom key store. To find the ConnectionState of the custom key store, use the DescribeCustomKeyStores operation.

Before updating the custom key store, verify that the new values allow KMS to connect the custom key store to its backing key store. For example, before you change the XksProxyUriPath value, verify that the external key store proxy is reachable at the new path.

If the operation succeeds, it returns a JSON object with no properties.

Cross-account use: No. You cannot perform this operation on a custom key store in a different Amazon Web Services account.

Required permissions: kms:UpdateCustomKeyStore (IAM policy)

Related operations:

" }, "UpdateKeyDescription":{ "name":"UpdateKeyDescription", @@ -902,7 +925,7 @@ {"shape":"KMSInvalidStateException"}, {"shape":"KMSInvalidSignatureException"} ], - "documentation":"

Verifies a digital signature that was generated by the Sign operation.

Verification confirms that an authorized user signed the message with the specified KMS key and signing algorithm, and the message hasn't changed since it was signed. If the signature is verified, the value of the SignatureValid field in the response is True. If the signature verification fails, the Verify operation fails with an KMSInvalidSignatureException exception.

A digital signature is generated by using the private key in an asymmetric KMS key. The signature is verified by using the public key in the same asymmetric KMS key. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

To verify a digital signature, you can use the Verify operation. Specify the same asymmetric KMS key, message, and signing algorithm that were used to produce the signature.

You can also verify the digital signature by using the public key of the KMS key outside of KMS. Use the GetPublicKey operation to download the public key in the asymmetric KMS key and then use the public key to verify the signature outside of KMS. The advantage of using the Verify operation is that it is performed within KMS. As a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use the KMS key to verify signatures.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Verify (key policy)

Related operations: Sign

" + "documentation":"

Verifies a digital signature that was generated by the Sign operation.

Verification confirms that an authorized user signed the message with the specified KMS key and signing algorithm, and the message hasn't changed since it was signed. If the signature is verified, the value of the SignatureValid field in the response is True. If the signature verification fails, the Verify operation fails with an KMSInvalidSignatureException exception.

A digital signature is generated by using the private key in an asymmetric KMS key. The signature is verified by using the public key in the same asymmetric KMS key. For information about asymmetric KMS keys, see Asymmetric KMS keys in the Key Management Service Developer Guide.

To verify a digital signature, you can use the Verify operation. Specify the same asymmetric KMS key, message, and signing algorithm that were used to produce the signature.

You can also verify the digital signature by using the public key of the KMS key outside of KMS. Use the GetPublicKey operation to download the public key in the asymmetric KMS key and then use the public key to verify the signature outside of KMS. The advantage of using the Verify operation is that it is performed within KMS. As a result, it's easy to call, the operation is performed within the FIPS boundary, it is logged in CloudTrail, and you can use key policy and IAM policy to determine who is authorized to use the KMS key to verify signatures.

To verify a signature outside of KMS with an SM2 public key (China Regions only), you must specify the distinguishing ID. By default, KMS uses 1234567812345678 as the distinguishing ID. For more information, see Offline verification with SM2 key pairs.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:Verify (key policy)

Related operations: Sign

" }, "VerifyMac":{ "name":"VerifyMac", @@ -922,7 +945,7 @@ {"shape":"KMSInvalidMacException"}, {"shape":"KMSInvalidStateException"} ], - "documentation":"

Verifies the hash-based message authentication code (HMAC) for a specified message, HMAC KMS key, and MAC algorithm. To verify the HMAC, VerifyMac computes an HMAC using the message, HMAC KMS key, and MAC algorithm that you specify, and compares the computed HMAC to the HMAC that you specify. If the HMACs are identical, the verification succeeds; otherwise, it fails.

Verification indicates that the message hasn't changed since the HMAC was calculated, and the specified key was used to generate and verify the HMAC.

This operation is part of KMS support for HMAC KMS keys. For details, see HMAC keys in KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:VerifyMac (key policy)

Related operations: GenerateMac

" + "documentation":"

Verifies the hash-based message authentication code (HMAC) for a specified message, HMAC KMS key, and MAC algorithm. To verify the HMAC, VerifyMac computes an HMAC using the message, HMAC KMS key, and MAC algorithm that you specify, and compares the computed HMAC to the HMAC that you specify. If the HMACs are identical, the verification succeeds; otherwise, it fails. Verification indicates that the message hasn't changed since the HMAC was calculated, and the specified key was used to generate and verify the HMAC.

HMAC KMS keys and the HMAC algorithms that KMS uses conform to industry standards defined in RFC 2104.

This operation is part of KMS support for HMAC KMS keys. For details, see HMAC keys in KMS in the Key Management Service Developer Guide.

The KMS key that you use for this operation must be in a compatible key state. For details, see Key states of KMS keys in the Key Management Service Developer Guide.

Cross-account use: Yes. To perform this operation with a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN in the value of the KeyId parameter.

Required permissions: kms:VerifyMac (key policy)

Related operations: GenerateMac

" } }, "shapes":{ @@ -1019,7 +1042,7 @@ "members":{ "message":{"shape":"ErrorMessageType"} }, - "documentation":"

The request was rejected because the specified CloudHSM cluster is already associated with a custom key store or it shares a backup history with a cluster that is associated with a custom key store. Each custom key store must be associated with a different CloudHSM cluster.

Clusters that share a backup history have the same cluster certificate. To view the cluster certificate of a cluster, use the DescribeClusters operation.

", + "documentation":"

The request was rejected because the specified CloudHSM cluster is already associated with an CloudHSM key store in the account, or it shares a backup history with an CloudHSM key store in the account. Each CloudHSM key store in the account must be associated with a different CloudHSM cluster.

CloudHSM clusters that share a backup history have the same cluster certificate. To view the cluster certificate of an CloudHSM cluster, use the DescribeClusters operation.

", "exception":true }, "CloudHsmClusterInvalidConfigurationException":{ @@ -1027,7 +1050,7 @@ "members":{ "message":{"shape":"ErrorMessageType"} }, - "documentation":"

The request was rejected because the associated CloudHSM cluster did not meet the configuration requirements for a custom key store.

  • The cluster must be configured with private subnets in at least two different Availability Zones in the Region.

  • The security group for the cluster (cloudhsm-cluster-<cluster-id>-sg) must include inbound rules and outbound rules that allow TCP traffic on ports 2223-2225. The Source in the inbound rules and the Destination in the outbound rules must match the security group ID. These rules are set by default when you create the cluster. Do not delete or change them. To get information about a particular security group, use the DescribeSecurityGroups operation.

  • The cluster must contain at least as many HSMs as the operation requires. To add HSMs, use the CloudHSM CreateHsm operation.

    For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey operations, the CloudHSM cluster must have at least two active HSMs, each in a different Availability Zone. For the ConnectCustomKeyStore operation, the CloudHSM must contain at least one active HSM.

For information about the requirements for an CloudHSM cluster that is associated with a custom key store, see Assemble the Prerequisites in the Key Management Service Developer Guide. For information about creating a private subnet for an CloudHSM cluster, see Create a Private Subnet in the CloudHSM User Guide. For information about cluster security groups, see Configure a Default Security Group in the CloudHSM User Guide .

", + "documentation":"

The request was rejected because the associated CloudHSM cluster did not meet the configuration requirements for an CloudHSM key store.

  • The CloudHSM cluster must be configured with private subnets in at least two different Availability Zones in the Region.

  • The security group for the cluster (cloudhsm-cluster-<cluster-id>-sg) must include inbound rules and outbound rules that allow TCP traffic on ports 2223-2225. The Source in the inbound rules and the Destination in the outbound rules must match the security group ID. These rules are set by default when you create the CloudHSM cluster. Do not delete or change them. To get information about a particular security group, use the DescribeSecurityGroups operation.

  • The CloudHSM cluster must contain at least as many HSMs as the operation requires. To add HSMs, use the CloudHSM CreateHsm operation.

    For the CreateCustomKeyStore, UpdateCustomKeyStore, and CreateKey operations, the CloudHSM cluster must have at least two active HSMs, each in a different Availability Zone. For the ConnectCustomKeyStore operation, the CloudHSM must contain at least one active HSM.

For information about the requirements for an CloudHSM cluster that is associated with an CloudHSM key store, see Assemble the Prerequisites in the Key Management Service Developer Guide. For information about creating a private subnet for an CloudHSM cluster, see Create a Private Subnet in the CloudHSM User Guide. For information about cluster security groups, see Configure a Default Security Group in the CloudHSM User Guide .

", "exception":true }, "CloudHsmClusterNotActiveException":{ @@ -1035,7 +1058,7 @@ "members":{ "message":{"shape":"ErrorMessageType"} }, - "documentation":"

The request was rejected because the CloudHSM cluster that is associated with the custom key store is not active. Initialize and activate the cluster and try the command again. For detailed instructions, see Getting Started in the CloudHSM User Guide.

", + "documentation":"

The request was rejected because the CloudHSM cluster associated with the CloudHSM key store is not active. Initialize and activate the cluster and try the command again. For detailed instructions, see Getting Started in the CloudHSM User Guide.

", "exception":true }, "CloudHsmClusterNotFoundException":{ @@ -1051,7 +1074,7 @@ "members":{ "message":{"shape":"ErrorMessageType"} }, - "documentation":"

The request was rejected because the specified CloudHSM cluster has a different cluster certificate than the original cluster. You cannot use the operation to specify an unrelated cluster.

Specify a cluster that shares a backup history with the original cluster. This includes clusters that were created from a backup of the current cluster, and clusters that were created from the same backup that produced the current cluster.

Clusters that share a backup history have the same cluster certificate. To view the cluster certificate of a cluster, use the DescribeClusters operation.

", + "documentation":"

The request was rejected because the specified CloudHSM cluster has a different cluster certificate than the original cluster. You cannot use the operation to specify an unrelated cluster for an CloudHSM key store.

Specify an CloudHSM cluster that shares a backup history with the original cluster. This includes clusters that were created from a backup of the current cluster, and clusters that were created from the same backup that produced the current cluster.

CloudHSM clusters that share a backup history have the same cluster certificate. To view the cluster certificate of an CloudHSM cluster, use the DescribeClusters operation.

", "exception":true }, "ConnectCustomKeyStoreRequest":{ @@ -1080,7 +1103,16 @@ "USER_LOCKED_OUT", "USER_NOT_FOUND", "USER_LOGGED_IN", - "SUBNET_NOT_FOUND" + "SUBNET_NOT_FOUND", + "INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET", + "XKS_PROXY_ACCESS_DENIED", + "XKS_PROXY_NOT_REACHABLE", + "XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND", + "XKS_PROXY_INVALID_RESPONSE", + "XKS_PROXY_INVALID_CONFIGURATION", + "XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION", + "XKS_PROXY_TIMED_OUT", + "XKS_PROXY_INVALID_TLS_CONFIGURATION" ] }, "ConnectionStateType":{ @@ -1112,28 +1144,47 @@ }, "CreateCustomKeyStoreRequest":{ "type":"structure", - "required":[ - "CustomKeyStoreName", - "CloudHsmClusterId", - "TrustAnchorCertificate", - "KeyStorePassword" - ], + "required":["CustomKeyStoreName"], "members":{ "CustomKeyStoreName":{ "shape":"CustomKeyStoreNameType", - "documentation":"

Specifies a friendly name for the custom key store. The name must be unique in your Amazon Web Services account.

" + "documentation":"

Specifies a friendly name for the custom key store. The name must be unique in your Amazon Web Services account and Region. This parameter is required for all custom key stores.

" }, "CloudHsmClusterId":{ "shape":"CloudHsmClusterIdType", - "documentation":"

Identifies the CloudHSM cluster for the custom key store. Enter the cluster ID of any active CloudHSM cluster that is not already associated with a custom key store. To find the cluster ID, use the DescribeClusters operation.

" + "documentation":"

Identifies the CloudHSM cluster for an CloudHSM key store. This parameter is required for custom key stores with CustomKeyStoreType of AWS_CLOUDHSM.

Enter the cluster ID of any active CloudHSM cluster that is not already associated with a custom key store. To find the cluster ID, use the DescribeClusters operation.

" }, "TrustAnchorCertificate":{ "shape":"TrustAnchorCertificateType", - "documentation":"

Enter the content of the trust anchor certificate for the cluster. This is the content of the customerCA.crt file that you created when you initialized the cluster.

" + "documentation":"

Specifies the certificate for an CloudHSM key store. This parameter is required for custom key stores with a CustomKeyStoreType of AWS_CLOUDHSM.

Enter the content of the trust anchor certificate for the CloudHSM cluster. This is the content of the customerCA.crt file that you created when you initialized the cluster.

" }, "KeyStorePassword":{ "shape":"KeyStorePasswordType", - "documentation":"

Enter the password of the kmsuser crypto user (CU) account in the specified CloudHSM cluster. KMS logs into the cluster as this user to manage key material on your behalf.

The password must be a string of 7 to 32 characters. Its value is case sensitive.

This parameter tells KMS the kmsuser account password; it does not change the password in the CloudHSM cluster.

" + "documentation":"

Specifies the kmsuser password for an CloudHSM key store. This parameter is required for custom key stores with a CustomKeyStoreType of AWS_CLOUDHSM.

Enter the password of the kmsuser crypto user (CU) account in the specified CloudHSM cluster. KMS logs into the cluster as this user to manage key material on your behalf.

The password must be a string of 7 to 32 characters. Its value is case sensitive.

This parameter tells KMS the kmsuser account password; it does not change the password in the CloudHSM cluster.

" + }, + "CustomKeyStoreType":{ + "shape":"CustomKeyStoreType", + "documentation":"

Specifies the type of custom key store. The default value is AWS_CLOUDHSM.

For a custom key store backed by an CloudHSM cluster, omit the parameter or enter AWS_CLOUDHSM. For a custom key store backed by an external key manager outside of Amazon Web Services, enter EXTERNAL_KEY_STORE. You cannot change this property after the key store is created.

" + }, + "XksProxyUriEndpoint":{ + "shape":"XksProxyUriEndpointType", + "documentation":"

Specifies the endpoint that KMS uses to send requests to the external key store proxy (XKS proxy). This parameter is required for custom key stores with a CustomKeyStoreType of EXTERNAL_KEY_STORE.

The protocol must be HTTPS. KMS communicates on port 443. Do not specify the port in the XksProxyUriEndpoint value.

For external key stores with XksProxyConnectivity value of VPC_ENDPOINT_SERVICE, specify https:// followed by the private DNS name of the VPC endpoint service.

For external key stores with PUBLIC_ENDPOINT connectivity, this endpoint must be reachable before you create the custom key store. KMS connects to the external key store proxy while creating the custom key store. For external key stores with VPC_ENDPOINT_SERVICE connectivity, KMS connects when you call the ConnectCustomKeyStore operation.

The value of this parameter must begin with https://. The remainder can contain upper and lower case letters (A-Z and a-z), numbers (0-9), dots (.), and hyphens (-). Additional slashes (/ and \\) are not permitted.

Uniqueness requirements:

  • The combined XksProxyUriEndpoint and XksProxyUriPath values must be unique in the Amazon Web Services account and Region.

  • An external key store with PUBLIC_ENDPOINT connectivity cannot use the same XksProxyUriEndpoint value as an external key store with VPC_ENDPOINT_SERVICE connectivity in the same Amazon Web Services Region.

  • Each external key store with VPC_ENDPOINT_SERVICE connectivity must have its own private DNS name. The XksProxyUriEndpoint value for external key stores with VPC_ENDPOINT_SERVICE connectivity (private DNS name) must be unique in the Amazon Web Services account and Region.

" + }, + "XksProxyUriPath":{ + "shape":"XksProxyUriPathType", + "documentation":"

Specifies the base path to the proxy APIs for this external key store. To find this value, see the documentation for your external key store proxy. This parameter is required for all custom key stores with a CustomKeyStoreType of EXTERNAL_KEY_STORE.

The value must start with / and must end with /kms/xks/v1 where v1 represents the version of the KMS external key store proxy API. This path can include an optional prefix between the required elements such as /prefix/kms/xks/v1.

Uniqueness requirements:

  • The combined XksProxyUriEndpoint and XksProxyUriPath values must be unique in the Amazon Web Services account and Region.

" + }, + "XksProxyVpcEndpointServiceName":{ + "shape":"XksProxyVpcEndpointServiceNameType", + "documentation":"

Specifies the name of the Amazon VPC endpoint service for interface endpoints that is used to communicate with your external key store proxy (XKS proxy). This parameter is required when the value of CustomKeyStoreType is EXTERNAL_KEY_STORE and the value of XksProxyConnectivity is VPC_ENDPOINT_SERVICE.

The Amazon VPC endpoint service must fulfill all requirements for use with an external key store.

Uniqueness requirements:

  • External key stores with VPC_ENDPOINT_SERVICE connectivity can share an Amazon VPC, but each external key store must have its own VPC endpoint service and private DNS name.

" + }, + "XksProxyAuthenticationCredential":{ + "shape":"XksProxyAuthenticationCredentialType", + "documentation":"

Specifies an authentication credential for the external key store proxy (XKS proxy). This parameter is required for all custom key stores with a CustomKeyStoreType of EXTERNAL_KEY_STORE.

The XksProxyAuthenticationCredential has two required elements: RawSecretAccessKey, a secret key, and AccessKeyId, a unique identifier for the RawSecretAccessKey. For character requirements, see XksProxyAuthenticationCredentialType.

KMS uses this authentication credential to sign requests to the external key store proxy on your behalf. This credential is unrelated to Identity and Access Management (IAM) and Amazon Web Services credentials.

This parameter doesn't set or change the authentication credentials on the XKS proxy. It just tells KMS the credential that you established on your external key store proxy. If you rotate your proxy authentication credential, use the UpdateCustomKeyStore operation to provide the new credential to KMS.

" + }, + "XksProxyConnectivity":{ + "shape":"XksProxyConnectivityType", + "documentation":"

Indicates how KMS communicates with the external key store proxy. This parameter is required for custom key stores with a CustomKeyStoreType of EXTERNAL_KEY_STORE.

If the external key store proxy uses a public endpoint, specify PUBLIC_ENDPOINT. If the external key store proxy uses a Amazon VPC endpoint service for communication with KMS, specify VPC_ENDPOINT_SERVICE. For help making this choice, see Choosing a connectivity option in the Key Management Service Developer Guide.

An Amazon VPC endpoint service keeps your communication with KMS in a private address space entirely within Amazon Web Services, but it requires more configuration, including establishing a Amazon VPC with multiple subnets, a VPC endpoint service, a network load balancer, and a verified private DNS name. A public endpoint is simpler to set up, but it might be slower and might not fulfill your security requirements. You might consider testing with a public endpoint, and then establishing a VPC endpoint service for production tasks. Note that this choice does not determine the location of the external key store proxy. Even if you choose a VPC endpoint service, the proxy can be hosted within the VPC or outside of Amazon Web Services such as in your corporate data center.

" } } }, @@ -1202,7 +1253,7 @@ "members":{ "Policy":{ "shape":"PolicyType", - "documentation":"

The key policy to attach to the KMS key. If you do not specify a key policy, KMS attaches a default key policy to the KMS key. For more information, see Default key policy in the Key Management Service Developer Guide.

If you provide a key policy, it must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to True, the key policy must allow the principal that is making the CreateKey request to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide .

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Amazon Web Services Identity and Access Management User Guide.

A key policy document must conform to the following rules.

  • Up to 32 kilobytes (32768 bytes)

  • Must be UTF-8 encoded

  • The only Unicode characters that are permitted in a key policy document are the horizontal tab (U+0009), linefeed (U+000A), carriage return (U+000D), and characters in the range U+0020 to U+00FF.

  • The Sid element in a key policy statement can include spaces. (Spaces are prohibited in the Sid element of an IAM policy document.)

For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" + "documentation":"

The key policy to attach to the KMS key.

If you provide a key policy, it must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must allow the principal that is making the CreateKey request to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide .

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Amazon Web Services Identity and Access Management User Guide.

If you do not provide a key policy, KMS attaches a default key policy to the KMS key. For more information, see Default Key Policy in the Key Management Service Developer Guide.

The key policy size quota is 32 kilobytes (32768 bytes).

For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" }, "Description":{ "shape":"DescriptionType", @@ -1210,25 +1261,25 @@ }, "KeyUsage":{ "shape":"KeyUsageType", - "documentation":"

Determines the cryptographic operations for which you can use the KMS key. The default value is ENCRYPT_DECRYPT. This parameter is optional when you are creating a symmetric encryption KMS key; otherwise, it is required. You can't change the KeyUsage value after the KMS key is created.

Select only one valid value.

  • For symmetric encryption KMS keys, omit the parameter or specify ENCRYPT_DECRYPT.

  • For HMAC KMS keys (symmetric), specify GENERATE_VERIFY_MAC.

  • For asymmetric KMS keys with RSA key material, specify ENCRYPT_DECRYPT or SIGN_VERIFY.

  • For asymmetric KMS keys with ECC key material, specify SIGN_VERIFY.

" + "documentation":"

Determines the cryptographic operations for which you can use the KMS key. The default value is ENCRYPT_DECRYPT. This parameter is optional when you are creating a symmetric encryption KMS key; otherwise, it is required. You can't change the KeyUsage value after the KMS key is created.

Select only one valid value.

  • For symmetric encryption KMS keys, omit the parameter or specify ENCRYPT_DECRYPT.

  • For HMAC KMS keys (symmetric), specify GENERATE_VERIFY_MAC.

  • For asymmetric KMS keys with RSA key material, specify ENCRYPT_DECRYPT or SIGN_VERIFY.

  • For asymmetric KMS keys with ECC key material, specify SIGN_VERIFY.

  • For asymmetric KMS keys with SM2 key material (China Regions only), specify ENCRYPT_DECRYPT or SIGN_VERIFY.

" }, "CustomerMasterKeySpec":{ "shape":"CustomerMasterKeySpec", - "documentation":"

Instead, use the KeySpec parameter.

The KeySpec and CustomerMasterKeySpec parameters work the same way. Only the names differ. We recommend that you use KeySpec parameter in your code. However, to avoid breaking changes, KMS will support both parameters.

", + "documentation":"

Instead, use the KeySpec parameter.

The KeySpec and CustomerMasterKeySpec parameters work the same way. Only the names differ. We recommend that you use KeySpec parameter in your code. However, to avoid breaking changes, KMS supports both parameters.

", "deprecated":true, "deprecatedMessage":"This parameter has been deprecated. Instead, use the KeySpec parameter." }, "KeySpec":{ "shape":"KeySpec", - "documentation":"

Specifies the type of KMS key to create. The default value, SYMMETRIC_DEFAULT, creates a KMS key with a 256-bit symmetric key for encryption and decryption. For help choosing a key spec for your KMS key, see Choosing a KMS key type in the Key Management Service Developer Guide .

The KeySpec determines whether the KMS key contains a symmetric key or an asymmetric key pair. It also determines the cryptographic algorithms that the KMS key supports. You can't change the KeySpec after the KMS key is created. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see kms:EncryptionAlgorithm, kms:MacAlgorithm or kms:Signing Algorithm in the Key Management Service Developer Guide .

Amazon Web Services services that are integrated with KMS use symmetric encryption KMS keys to protect your data. These services do not support asymmetric KMS keys or HMAC KMS keys.

KMS supports the following key specs for KMS keys:

  • Symmetric encryption key (default)

    • SYMMETRIC_DEFAULT (AES-256-GCM)

  • HMAC keys (symmetric)

    • HMAC_224

    • HMAC_256

    • HMAC_384

    • HMAC_512

  • Asymmetric RSA key pairs

    • RSA_2048

    • RSA_3072

    • RSA_4096

  • Asymmetric NIST-recommended elliptic curve key pairs

    • ECC_NIST_P256 (secp256r1)

    • ECC_NIST_P384 (secp384r1)

    • ECC_NIST_P521 (secp521r1)

  • Other asymmetric elliptic curve key pairs

    • ECC_SECG_P256K1 (secp256k1), commonly used for cryptocurrencies.

" + "documentation":"

Specifies the type of KMS key to create. The default value, SYMMETRIC_DEFAULT, creates a KMS key with a 256-bit AES-GCM key that is used for encryption and decryption, except in China Regions, where it creates a 128-bit symmetric key that uses SM4 encryption. For help choosing a key spec for your KMS key, see Choosing a KMS key type in the Key Management Service Developer Guide .

The KeySpec determines whether the KMS key contains a symmetric key or an asymmetric key pair. It also determines the algorithms that the KMS key supports. You can't change the KeySpec after the KMS key is created. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see kms:EncryptionAlgorithm, kms:MacAlgorithm or kms:Signing Algorithm in the Key Management Service Developer Guide .

Amazon Web Services services that are integrated with KMS use symmetric encryption KMS keys to protect your data. These services do not support asymmetric KMS keys or HMAC KMS keys.

KMS supports the following key specs for KMS keys:

  • Symmetric encryption key (default)

    • SYMMETRIC_DEFAULT

  • HMAC keys (symmetric)

    • HMAC_224

    • HMAC_256

    • HMAC_384

    • HMAC_512

  • Asymmetric RSA key pairs

    • RSA_2048

    • RSA_3072

    • RSA_4096

  • Asymmetric NIST-recommended elliptic curve key pairs

    • ECC_NIST_P256 (secp256r1)

    • ECC_NIST_P384 (secp384r1)

    • ECC_NIST_P521 (secp521r1)

  • Other asymmetric elliptic curve key pairs

    • ECC_SECG_P256K1 (secp256k1), commonly used for cryptocurrencies.

  • SM2 key pairs (China Regions only)

    • SM2

" }, "Origin":{ "shape":"OriginType", - "documentation":"

The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is AWS_KMS, which means that KMS creates the key material.

To create a KMS key with no key material (for imported key material), set the value to EXTERNAL. For more information about importing key material into KMS, see Importing Key Material in the Key Management Service Developer Guide. This value is valid only for symmetric encryption KMS keys.

To create a KMS key in an KMS custom key store and create its key material in the associated CloudHSM cluster, set this value to AWS_CLOUDHSM. You must also use the CustomKeyStoreId parameter to identify the custom key store. This value is valid only for symmetric encryption KMS keys.

" + "documentation":"

The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is AWS_KMS, which means that KMS creates the key material.

To create a KMS key with no key material (for imported key material), set this value to EXTERNAL. For more information about importing key material into KMS, see Importing Key Material in the Key Management Service Developer Guide. The EXTERNAL origin value is valid only for symmetric KMS keys.

To create a KMS key in an CloudHSM key store and create its key material in the associated CloudHSM cluster, set this value to AWS_CLOUDHSM. You must also use the CustomKeyStoreId parameter to identify the CloudHSM key store. The KeySpec value must be SYMMETRIC_DEFAULT.

To create a KMS key in an external key store, set this value to EXTERNAL_KEY_STORE. You must also use the CustomKeyStoreId parameter to identify the external key store and the XksKeyId parameter to identify the associated external key. The KeySpec value must be SYMMETRIC_DEFAULT.

" }, "CustomKeyStoreId":{ "shape":"CustomKeyStoreIdType", - "documentation":"

Creates the KMS key in the specified custom key store and the key material in its associated CloudHSM cluster. To create a KMS key in a custom key store, you must also specify the Origin parameter with a value of AWS_CLOUDHSM. The CloudHSM cluster that is associated with the custom key store must have at least two active HSMs, each in a different Availability Zone in the Region.

This parameter is valid only for symmetric encryption KMS keys in a single Region. You cannot create any other type of KMS key in a custom key store.

To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

The response includes the custom key store ID and the ID of the CloudHSM cluster.

This operation is part of the Custom Key Store feature feature in KMS, which combines the convenience and extensive integration of KMS with the isolation and control of a single-tenant key store.

" + "documentation":"

Creates the KMS key in the specified custom key store. The ConnectionState of the custom key store must be CONNECTED. To find the CustomKeyStoreID and ConnectionState use the DescribeCustomKeyStores operation.

This parameter is valid only for symmetric encryption KMS keys in a single Region. You cannot create any other type of KMS key in a custom key store.

When you create a KMS key in an CloudHSM key store, KMS generates a non-exportable 256-bit symmetric key in its associated CloudHSM cluster and associates it with the KMS key. When you create a KMS key in an external key store, you must use the XksKeyId parameter to specify an external key that serves as key material for the KMS key.

" }, "BypassPolicyLockoutSafetyCheck":{ "shape":"BooleanType", @@ -1236,11 +1287,15 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Assigns one or more tags to the KMS key. Use this parameter to tag the KMS key when it is created. To tag an existing KMS key, use the TagResource operation.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC in KMS in the Key Management Service Developer Guide.

To use this parameter, you must have kms:TagResource permission in an IAM policy.

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You cannot have more than one tag on a KMS key with the same tag key. If you specify an existing tag key with a different tag value, KMS replaces the current tag value with the specified one.

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details, see Tagging Keys.

" + "documentation":"

Assigns one or more tags to the KMS key. Use this parameter to tag the KMS key when it is created. To tag an existing KMS key, use the TagResource operation.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

To use this parameter, you must have kms:TagResource permission in an IAM policy.

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You cannot have more than one tag on a KMS key with the same tag key. If you specify an existing tag key with a different tag value, KMS replaces the current tag value with the specified one.

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details, see Tagging Keys.

" }, "MultiRegion":{ "shape":"NullableBooleanType", - "documentation":"

Creates a multi-Region primary key that you can replicate into other Amazon Web Services Regions. You cannot change this value after you create the KMS key.

For a multi-Region key, set this parameter to True. For a single-Region KMS key, omit this parameter or set it to False. The default value is False.

This operation supports multi-Region keys, an KMS feature that lets you create multiple interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

This value creates a primary key, not a replica. To create a replica key, use the ReplicateKey operation.

You can create a multi-Region version of a symmetric encryption KMS key, an HMAC KMS key, an asymmetric KMS key, or a KMS key with imported key material. However, you cannot create a multi-Region key in a custom key store.

" + "documentation":"

Creates a multi-Region primary key that you can replicate into other Amazon Web Services Regions. You cannot change this value after you create the KMS key.

For a multi-Region key, set this parameter to True. For a single-Region KMS key, omit this parameter or set it to False. The default value is False.

This operation supports multi-Region keys, an KMS feature that lets you create multiple interoperable KMS keys in different Amazon Web Services Regions. Because these KMS keys have the same key ID, key material, and other metadata, you can use them interchangeably to encrypt data in one Amazon Web Services Region and decrypt it in a different Amazon Web Services Region without re-encrypting the data or making a cross-Region call. For more information about multi-Region keys, see Multi-Region keys in KMS in the Key Management Service Developer Guide.

This value creates a primary key, not a replica. To create a replica key, use the ReplicateKey operation.

You can create a symmetric or asymmetric multi-Region key, and you can create a multi-Region key with imported key material. However, you cannot create a multi-Region key in a custom key store.

" + }, + "XksKeyId":{ + "shape":"XksKeyIdType", + "documentation":"

Identifies the external key that serves as key material for the KMS key in an external key store. Specify the ID that the external key store proxy uses to refer to the external key. For help, see the documentation for your external key store proxy.

This parameter is required for a KMS key with an Origin value of EXTERNAL_KEY_STORE. It is not valid for KMS keys with any other Origin value.

The external key must be an existing 256-bit AES symmetric encryption key hosted outside of Amazon Web Services in an external key manager associated with the external key store specified by the CustomKeyStoreId parameter. This key must be enabled and configured to perform encryption and decryption. Each KMS key in an external key store must use a different external key. For details, see Requirements for a KMS key in an external key store in the Key Management Service Developer Guide.

Each KMS key in an external key store is associated two backing keys. One is key material that KMS generates. The other is the external key specified by this parameter. When you use the KMS key in an external key store to encrypt data, the encryption operation is performed first by KMS using the KMS key material, and then by the external key manager using the specified external key, a process known as double encryption. For details, see Double encryption in the Key Management Service Developer Guide.

" } } }, @@ -1271,7 +1326,7 @@ "members":{ "message":{"shape":"ErrorMessageType"} }, - "documentation":"

The request was rejected because of the ConnectionState of the custom key store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores operation.

This exception is thrown under the following conditions:

  • You requested the CreateKey or GenerateRandom operation in a custom key store that is not connected. These operations are valid only when the custom key store ConnectionState is CONNECTED.

  • You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation on a custom key store that is not disconnected. This operation is valid only when the custom key store ConnectionState is DISCONNECTED.

  • You requested the ConnectCustomKeyStore operation on a custom key store with a ConnectionState of DISCONNECTING or FAILED. This operation is valid for all other ConnectionState values.

", + "documentation":"

The request was rejected because of the ConnectionState of the custom key store. To get the ConnectionState of a custom key store, use the DescribeCustomKeyStores operation.

This exception is thrown under the following conditions:

  • You requested the ConnectCustomKeyStore operation on a custom key store with a ConnectionState of DISCONNECTING or FAILED. This operation is valid for all other ConnectionState values. To reconnect a custom key store in a FAILED state, disconnect it (DisconnectCustomKeyStore), then connect it (ConnectCustomKeyStore).

  • You requested the CreateKey operation in a custom key store that is not connected. This operations is valid only when the custom key store ConnectionState is CONNECTED.

  • You requested the DisconnectCustomKeyStore operation on a custom key store with a ConnectionState of DISCONNECTING or DISCONNECTED. This operation is valid for all other ConnectionState values.

  • You requested the UpdateCustomKeyStore or DeleteCustomKeyStore operation on a custom key store that is not disconnected. This operation is valid only when the custom key store ConnectionState is DISCONNECTED.

  • You requested the GenerateRandom operation in an CloudHSM key store that is not connected. This operation is valid only when the CloudHSM key store ConnectionState is CONNECTED.

", "exception":true }, "CustomKeyStoreNameInUseException":{ @@ -1295,6 +1350,13 @@ "documentation":"

The request was rejected because KMS cannot find a custom key store with the specified key store name or ID.

", "exception":true }, + "CustomKeyStoreType":{ + "type":"string", + "enum":[ + "AWS_CLOUDHSM", + "EXTERNAL_KEY_STORE" + ] + }, "CustomKeyStoresList":{ "type":"list", "member":{"shape":"CustomKeyStoresListEntry"} @@ -1312,23 +1374,31 @@ }, "CloudHsmClusterId":{ "shape":"CloudHsmClusterIdType", - "documentation":"

A unique identifier for the CloudHSM cluster that is associated with the custom key store.

" + "documentation":"

A unique identifier for the CloudHSM cluster that is associated with an CloudHSM key store. This field appears only when the CustomKeyStoreType is AWS_CLOUDHSM.

" }, "TrustAnchorCertificate":{ "shape":"TrustAnchorCertificateType", - "documentation":"

The trust anchor certificate of the associated CloudHSM cluster. When you initialize the cluster, you create this certificate and save it in the customerCA.crt file.

" + "documentation":"

The trust anchor certificate of the CloudHSM cluster associated with an CloudHSM key store. When you initialize the cluster, you create this certificate and save it in the customerCA.crt file.

This field appears only when the CustomKeyStoreType is AWS_CLOUDHSM.

" }, "ConnectionState":{ "shape":"ConnectionStateType", - "documentation":"

Indicates whether the custom key store is connected to its CloudHSM cluster.

You can create and use KMS keys in your custom key stores only when its connection state is CONNECTED.

The value is DISCONNECTED if the key store has never been connected or you use the DisconnectCustomKeyStore operation to disconnect it. If the value is CONNECTED but you are having trouble using the custom key store, make sure that its associated CloudHSM cluster is active and contains at least one active HSM.

A value of FAILED indicates that an attempt to connect was unsuccessful. The ConnectionErrorCode field in the response indicates the cause of the failure. For help resolving a connection failure, see Troubleshooting a Custom Key Store in the Key Management Service Developer Guide.

" + "documentation":"

Indicates whether the custom key store is connected to its backing key store. For an CloudHSM key store, the ConnectionState indicates whether it is connected to its CloudHSM cluster. For an external key store, the ConnectionState indicates whether it is connected to the external key store proxy that communicates with your external key manager.

You can create and use KMS keys in your custom key stores only when its ConnectionState is CONNECTED.

The ConnectionState value is DISCONNECTED only if the key store has never been connected or you use the DisconnectCustomKeyStore operation to disconnect it. If the value is CONNECTED but you are having trouble using the custom key store, make sure that the backing key store is reachable and active. For an CloudHSM key store, verify that its associated CloudHSM cluster is active and contains at least one active HSM. For an external key store, verify that the external key store proxy and external key manager are connected and enabled.

A value of FAILED indicates that an attempt to connect was unsuccessful. The ConnectionErrorCode field in the response indicates the cause of the failure. For help resolving a connection failure, see Troubleshooting a custom key store in the Key Management Service Developer Guide.

" }, "ConnectionErrorCode":{ "shape":"ConnectionErrorCodeType", - "documentation":"

Describes the connection error. This field appears in the response only when the ConnectionState is FAILED. For help resolving these errors, see How to Fix a Connection Failure in Key Management Service Developer Guide.

Valid values are:

  • CLUSTER_NOT_FOUND - KMS cannot find the CloudHSM cluster with the specified cluster ID.

  • INSUFFICIENT_CLOUDHSM_HSMS - The associated CloudHSM cluster does not contain any active HSMs. To connect a custom key store to its CloudHSM cluster, the cluster must contain at least one active HSM.

  • INTERNAL_ERROR - KMS could not complete the request due to an internal error. Retry the request. For ConnectCustomKeyStore requests, disconnect the custom key store before trying to connect again.

  • INVALID_CREDENTIALS - KMS does not have the correct password for the kmsuser crypto user in the CloudHSM cluster. Before you can connect your custom key store to its CloudHSM cluster, you must change the kmsuser account password and update the key store password value for the custom key store.

  • NETWORK_ERRORS - Network errors are preventing KMS from connecting to the custom key store.

  • SUBNET_NOT_FOUND - A subnet in the CloudHSM cluster configuration was deleted. If KMS cannot find all of the subnets in the cluster configuration, attempts to connect the custom key store to the CloudHSM cluster fail. To fix this error, create a cluster from a recent backup and associate it with your custom key store. (This process creates a new cluster configuration with a VPC and private subnets.) For details, see How to Fix a Connection Failure in the Key Management Service Developer Guide.

  • USER_LOCKED_OUT - The kmsuser CU account is locked out of the associated CloudHSM cluster due to too many failed password attempts. Before you can connect your custom key store to its CloudHSM cluster, you must change the kmsuser account password and update the key store password value for the custom key store.

  • USER_LOGGED_IN - The kmsuser CU account is logged into the the associated CloudHSM cluster. This prevents KMS from rotating the kmsuser account password and logging into the cluster. Before you can connect your custom key store to its CloudHSM cluster, you must log the kmsuser CU out of the cluster. If you changed the kmsuser password to log into the cluster, you must also and update the key store password value for the custom key store. For help, see How to Log Out and Reconnect in the Key Management Service Developer Guide.

  • USER_NOT_FOUND - KMS cannot find a kmsuser CU account in the associated CloudHSM cluster. Before you can connect your custom key store to its CloudHSM cluster, you must create a kmsuser CU account in the cluster, and then update the key store password value for the custom key store.

" + "documentation":"

Describes the connection error. This field appears in the response only when the ConnectionState is FAILED.

Many failures can be resolved by updating the properties of the custom key store. To update a custom key store, disconnect it (DisconnectCustomKeyStore), correct the errors (UpdateCustomKeyStore), and try to connect again (ConnectCustomKeyStore). For additional help resolving these errors, see How to Fix a Connection Failure in Key Management Service Developer Guide.

All custom key stores:

  • INTERNAL_ERROR — KMS could not complete the request due to an internal error. Retry the request. For ConnectCustomKeyStore requests, disconnect the custom key store before trying to connect again.

  • NETWORK_ERRORS — Network errors are preventing KMS from connecting the custom key store to its backing key store.

CloudHSM key stores:

  • CLUSTER_NOT_FOUND — KMS cannot find the CloudHSM cluster with the specified cluster ID.

  • INSUFFICIENT_CLOUDHSM_HSMS — The associated CloudHSM cluster does not contain any active HSMs. To connect a custom key store to its CloudHSM cluster, the cluster must contain at least one active HSM.

  • INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET — At least one private subnet associated with the CloudHSM cluster doesn't have any available IP addresses. A CloudHSM key store connection requires one free IP address in each of the associated private subnets, although two are preferable. For details, see How to Fix a Connection Failure in the Key Management Service Developer Guide.

  • INVALID_CREDENTIALS — The KeyStorePassword for the custom key store doesn't match the current password of the kmsuser crypto user in the CloudHSM cluster. Before you can connect your custom key store to its CloudHSM cluster, you must change the kmsuser account password and update the KeyStorePassword value for the custom key store.

  • SUBNET_NOT_FOUND — A subnet in the CloudHSM cluster configuration was deleted. If KMS cannot find all of the subnets in the cluster configuration, attempts to connect the custom key store to the CloudHSM cluster fail. To fix this error, create a cluster from a recent backup and associate it with your custom key store. (This process creates a new cluster configuration with a VPC and private subnets.) For details, see How to Fix a Connection Failure in the Key Management Service Developer Guide.

  • USER_LOCKED_OUT — The kmsuser CU account is locked out of the associated CloudHSM cluster due to too many failed password attempts. Before you can connect your custom key store to its CloudHSM cluster, you must change the kmsuser account password and update the key store password value for the custom key store.

  • USER_LOGGED_IN — The kmsuser CU account is logged into the associated CloudHSM cluster. This prevents KMS from rotating the kmsuser account password and logging into the cluster. Before you can connect your custom key store to its CloudHSM cluster, you must log the kmsuser CU out of the cluster. If you changed the kmsuser password to log into the cluster, you must also and update the key store password value for the custom key store. For help, see How to Log Out and Reconnect in the Key Management Service Developer Guide.

  • USER_NOT_FOUND — KMS cannot find a kmsuser CU account in the associated CloudHSM cluster. Before you can connect your custom key store to its CloudHSM cluster, you must create a kmsuser CU account in the cluster, and then update the key store password value for the custom key store.

External key stores:

  • INVALID_CREDENTIALS — One or both of the XksProxyAuthenticationCredential values is not valid on the specified external key store proxy.

  • XKS_PROXY_ACCESS_DENIED — KMS requests are denied access to the external key store proxy. If the external key store proxy has authorization rules, verify that they permit KMS to communicate with the proxy on your behalf.

  • XKS_PROXY_INVALID_CONFIGURATION — A configuration error is preventing the external key store from connecting to its proxy. Verify the value of the XksProxyUriPath.

  • XKS_PROXY_INVALID_RESPONSE — KMS cannot interpret the response from the external key store proxy. If you see this connection error code repeatedly, notify your external key store proxy vendor.

  • XKS_PROXY_INVALID_TLS_CONFIGURATION — KMS cannot connect to the external key store proxy because the TLS configuration is invalid. Verify that the XKS proxy supports TLS 1.2 or 1.3. Also, verify that the TLS certificate is not expired, and that it matches the hostname in the XksProxyUriEndpoint value, and that it is signed by a certificate authority included in the Trusted Certificate Authorities list.

  • XKS_PROXY_NOT_REACHABLE — KMS can't communicate with your external key store proxy. Verify that the XksProxyUriEndpoint and XksProxyUriPath are correct. Use the tools for your external key store proxy to verify that the proxy is active and available on its network. Also, verify that your external key manager instances are operating properly. Connection attempts fail with this connection error code if the proxy reports that all external key manager instances are unavailable.

  • XKS_PROXY_TIMED_OUT — KMS can connect to the external key store proxy, but the proxy does not respond to KMS in the time allotted. If you see this connection error code repeatedly, notify your external key store proxy vendor.

  • XKS_VPC_ENDPOINT_SERVICE_INVALID_CONFIGURATION — The Amazon VPC endpoint service configuration doesn't conform to the requirements for an KMS external key store.

    • The VPC endpoint service must be an endpoint service for interface endpoints in the caller's Amazon Web Services account.

    • It must have a network load balancer (NLB) connected to at least two subnets, each in a different Availability Zone.

    • The Allow principals list must include the KMS service principal for the Region, cks.kms.<region>.amazonaws.com, such as cks.kms.us-east-1.amazonaws.com.

    • It must not require acceptance of connection requests.

    • It must have a private DNS name. The private DNS name for an external key store with VPC_ENDPOINT_SERVICE connectivity must be unique in its Amazon Web Services Region.

    • The domain of the private DNS name must have a verification status of verified.

    • The TLS certificate specifies the private DNS hostname at which the endpoint is reachable.

  • XKS_VPC_ENDPOINT_SERVICE_NOT_FOUND — KMS can't find the VPC endpoint service that it uses to communicate with the external key store proxy. Verify that the XksProxyVpcEndpointServiceName is correct and the KMS service principal has service consumer permissions on the Amazon VPC endpoint service.

" }, "CreationDate":{ "shape":"DateType", "documentation":"

The date and time when the custom key store was created.

" + }, + "CustomKeyStoreType":{ + "shape":"CustomKeyStoreType", + "documentation":"

Indicates the type of the custom key store. AWS_CLOUDHSM indicates a custom key store backed by an CloudHSM cluster. EXTERNAL_KEY_STORE indicates a custom key store backed by an external key store proxy and external key manager outside of Amazon Web Services.

" + }, + "XksProxyConfiguration":{ + "shape":"XksProxyConfigurationType", + "documentation":"

Configuration settings for the external key store proxy (XKS proxy). The external key store proxy translates KMS requests into a format that your external key manager can understand. The proxy configuration includes connection information that KMS requires.

This field appears only when the CustomKeyStoreType is EXTERNAL_KEY_STORE.

" } }, "documentation":"

Contains information about each custom key store in the custom key store list.

" @@ -1349,7 +1419,8 @@ "HMAC_224", "HMAC_256", "HMAC_384", - "HMAC_512" + "HMAC_512", + "SM2" ] }, "DataKeyPairSpec":{ @@ -1361,7 +1432,8 @@ "ECC_NIST_P256", "ECC_NIST_P384", "ECC_NIST_P521", - "ECC_SECG_P256K1" + "ECC_SECG_P256K1", + "SM2" ] }, "DataKeySpec":{ @@ -1455,7 +1527,7 @@ "members":{ "message":{"shape":"ErrorMessageType"} }, - "documentation":"

The system timed out while trying to fulfill the request. The request can be retried.

", + "documentation":"

The system timed out while trying to fulfill the request. You can retry the request.

", "exception":true, "fault":true }, @@ -1464,11 +1536,11 @@ "members":{ "CustomKeyStoreId":{ "shape":"CustomKeyStoreIdType", - "documentation":"

Gets only information about the specified custom key store. Enter the key store ID.

By default, this operation gets information about all custom key stores in the account and Region. To limit the output to a particular custom key store, you can use either the CustomKeyStoreId or CustomKeyStoreName parameter, but not both.

" + "documentation":"

Gets only information about the specified custom key store. Enter the key store ID.

By default, this operation gets information about all custom key stores in the account and Region. To limit the output to a particular custom key store, provide either the CustomKeyStoreId or CustomKeyStoreName parameter, but not both.

" }, "CustomKeyStoreName":{ "shape":"CustomKeyStoreNameType", - "documentation":"

Gets only information about the specified custom key store. Enter the friendly name of the custom key store.

By default, this operation gets information about all custom key stores in the account and Region. To limit the output to a particular custom key store, you can use either the CustomKeyStoreId or CustomKeyStoreName parameter, but not both.

" + "documentation":"

Gets only information about the specified custom key store. Enter the friendly name of the custom key store.

By default, this operation gets information about all custom key stores in the account and Region. To limit the output to a particular custom key store, provide either the CustomKeyStoreId or CustomKeyStoreName parameter, but not both.

" }, "Limit":{ "shape":"LimitType", @@ -1584,7 +1656,7 @@ "members":{ "KeyId":{ "shape":"KeyIdType", - "documentation":"

Identifies a symmetric encryption KMS key. You cannot enable or disable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. The key rotation status of these KMS keys is always false. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

Specify the key ID or key ARN of the KMS key.

For example:

  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

" + "documentation":"

Identifies a symmetric encryption KMS key. You cannot enable automatic rotation of asymmetric KMS keys, HMAC KMS keys, KMS keys with imported key material, or KMS keys in a custom key store. To enable or disable automatic rotation of a set of related multi-Region keys, set the property on the primary key.

Specify the key ID or key ARN of the KMS key.

For example:

  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

" } } }, @@ -1613,7 +1685,7 @@ }, "EncryptionAlgorithm":{ "shape":"EncryptionAlgorithmSpec", - "documentation":"

Specifies the encryption algorithm that KMS will use to encrypt the plaintext message. The algorithm must be compatible with the KMS key that you specify.

This parameter is required only for asymmetric KMS keys. The default value, SYMMETRIC_DEFAULT, is the algorithm used for symmetric encryption KMS keys. If you are using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.

" + "documentation":"

Specifies the encryption algorithm that KMS will use to encrypt the plaintext message. The algorithm must be compatible with the KMS key that you specify.

This parameter is required only for asymmetric KMS keys. The default value, SYMMETRIC_DEFAULT, is the algorithm used for symmetric encryption KMS keys. If you are using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256.

The SM2PKE algorithm is only available in China Regions.

" } } }, @@ -1639,7 +1711,8 @@ "enum":[ "SYMMETRIC_DEFAULT", "RSAES_OAEP_SHA_1", - "RSAES_OAEP_SHA_256" + "RSAES_OAEP_SHA_256", + "SM2PKE" ] }, "EncryptionAlgorithmSpecList":{ @@ -1686,7 +1759,7 @@ }, "KeyPairSpec":{ "shape":"DataKeyPairSpec", - "documentation":"

Determines the type of data key pair that is generated.

The KMS rule that restricts the use of asymmetric RSA KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS.

" + "documentation":"

Determines the type of data key pair that is generated.

The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS. The SM2 key spec is only available in China Regions.

" }, "GrantTokens":{ "shape":"GrantTokenList", @@ -1736,7 +1809,7 @@ }, "KeyPairSpec":{ "shape":"DataKeyPairSpec", - "documentation":"

Determines the type of data key pair that is generated.

The KMS rule that restricts the use of asymmetric RSA KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS.

" + "documentation":"

Determines the type of data key pair that is generated.

The KMS rule that restricts the use of asymmetric RSA and SM2 KMS keys to encrypt and decrypt or to sign and verify (but not both), and the rule that permits you to use ECC KMS keys only to sign and verify, are not effective on data key pairs, which are used outside of KMS. The SM2 key spec is only available in China Regions.

" }, "GrantTokens":{ "shape":"GrantTokenList", @@ -1878,7 +1951,7 @@ "members":{ "Mac":{ "shape":"CiphertextType", - "documentation":"

The hash-based message authentication code (HMAC) for the given message, key, and MAC algorithm.

" + "documentation":"

The hash-based message authentication code (HMAC) that was generated for the specified message, HMAC KMS key, and MAC algorithm.

This is the standard, raw HMAC defined in RFC 2104.

" }, "MacAlgorithm":{ "shape":"MacAlgorithmSpec", @@ -1895,11 +1968,11 @@ "members":{ "NumberOfBytes":{ "shape":"NumberOfBytesType", - "documentation":"

The length of the byte string.

" + "documentation":"

The length of the random byte string. This parameter is required.

" }, "CustomKeyStoreId":{ "shape":"CustomKeyStoreIdType", - "documentation":"

Generates the random byte string in the CloudHSM cluster that is associated with the specified custom key store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

" + "documentation":"

Generates the random byte string in the CloudHSM cluster that is associated with the specified CloudHSM key store. To find the ID of a custom key store, use the DescribeCustomKeyStores operation.

External key store IDs are not valid for this parameter. If you specify the ID of an external key store, GenerateRandom throws an UnsupportedOperationException.

" } } }, @@ -2027,7 +2100,7 @@ }, "CustomerMasterKeySpec":{ "shape":"CustomerMasterKeySpec", - "documentation":"

Instead, use the KeySpec field in the GetPublicKey response.

The KeySpec and CustomerMasterKeySpec fields have the same value. We recommend that you use the KeySpec field in your code. However, to avoid breaking changes, KMS will support both fields.

", + "documentation":"

Instead, use the KeySpec field in the GetPublicKey response.

The KeySpec and CustomerMasterKeySpec fields have the same value. We recommend that you use the KeySpec field in your code. However, to avoid breaking changes, KMS supports both fields.

", "deprecated":true, "deprecatedMessage":"This field has been deprecated. Instead, use the KeySpec field." }, @@ -2061,7 +2134,7 @@ "documentation":"

A list of key-value pairs that must match the encryption context in the cryptographic operation request. The grant allows the operation only when the encryption context in the request is the same as the encryption context specified in this constraint.

" } }, - "documentation":"

Use this structure to allow cryptographic operations in the grant only when the operation request includes the specified encryption context.

KMS applies the grant constraints only to cryptographic operations that support an encryption context, that is, all cryptographic operations with a symmetric encryption KMS key. Grant constraints are not applied to operations that do not support an encryption context, such as cryptographic operations with HMAC KMS keys or asymmetric KMS keys, and management operations, such as DescribeKey or RetireGrant.

In a cryptographic operation, the encryption context in the decryption operation must be an exact, case-sensitive match for the keys and values in the encryption context of the encryption operation. Only the order of the pairs can vary.

However, in a grant constraint, the key in each key-value pair is not case sensitive, but the value is case sensitive.

To avoid confusion, do not use multiple encryption context pairs that differ only by case. To require a fully case-sensitive encryption context, use the kms:EncryptionContext: and kms:EncryptionContextKeys conditions in an IAM or key policy. For details, see kms:EncryptionContext: in the Key Management Service Developer Guide .

" + "documentation":"

Use this structure to allow cryptographic operations in the grant only when the operation request includes the specified encryption context.

KMS applies the grant constraints only to cryptographic operations that support an encryption context, that is, all cryptographic operations with a symmetric KMS key. Grant constraints are not applied to operations that do not support an encryption context, such as cryptographic operations with asymmetric KMS keys and management operations, such as DescribeKey or RetireGrant.

In a cryptographic operation, the encryption context in the decryption operation must be an exact, case-sensitive match for the keys and values in the encryption context of the encryption operation. Only the order of the pairs can vary.

However, in a grant constraint, the key in each key-value pair is not case sensitive, but the value is case sensitive.

To avoid confusion, do not use multiple encryption context pairs that differ only by case. To require a fully case-sensitive encryption context, use the kms:EncryptionContext: and kms:EncryptionContextKeys conditions in an IAM or key policy. For details, see kms:EncryptionContext: in the Key Management Service Developer Guide .

" }, "GrantIdType":{ "type":"string", @@ -2178,11 +2251,11 @@ }, "ValidTo":{ "shape":"DateType", - "documentation":"

The time at which the imported key material expires. When the key material expires, KMS deletes the key material and the KMS key becomes unusable. You must omit this parameter when the ExpirationModel parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE. Otherwise it is required.

" + "documentation":"

The date and time when the imported key material expires. This parameter is required when the value of the ExpirationModel parameter is KEY_MATERIAL_EXPIRES. Otherwise it is not valid.

The value of this parameter must be a future date and time. The maximum value is 365 days from the request date.

When the key material expires, KMS deletes the key material from the KMS key. Without its key material, the KMS key is unusable. To use the KMS key in cryptographic operations, you must reimport the same key material.

You cannot change the ExpirationModel or ValidTo values for the current import after the request completes. To change either value, you must delete (DeleteImportedKeyMaterial) and reimport the key material.

" }, "ExpirationModel":{ "shape":"ExpirationModelType", - "documentation":"

Specifies whether the key material expires. The default is KEY_MATERIAL_EXPIRES, in which case you must include the ValidTo parameter. When this parameter is set to KEY_MATERIAL_DOES_NOT_EXPIRE, you must omit the ValidTo parameter.

" + "documentation":"

Specifies whether the key material expires. The default is KEY_MATERIAL_EXPIRES.

When the value of ExpirationModel is KEY_MATERIAL_EXPIRES, you must specify a value for the ValidTo parameter. When value is KEY_MATERIAL_DOES_NOT_EXPIRE, you must omit the ValidTo parameter.

You cannot change the ExpirationModel or ValidTo values for the current import after the request completes. To change either value, you must delete (DeleteImportedKeyMaterial) and reimport the key material.

" } } }, @@ -2212,7 +2285,7 @@ "members":{ "message":{"shape":"ErrorMessageType"} }, - "documentation":"

The request was rejected because the trust anchor certificate in the request is not the trust anchor certificate for the specified CloudHSM cluster.

When you initialize the cluster, you create the trust anchor certificate and save it in the customerCA.crt file.

", + "documentation":"

The request was rejected because the trust anchor certificate in the request to create an CloudHSM key store is not the trust anchor certificate for the specified CloudHSM cluster.

When you initialize the CloudHSM cluster, you create the trust anchor certificate and save it in the customerCA.crt file.

", "exception":true }, "InvalidAliasNameException":{ @@ -2309,7 +2382,7 @@ "members":{ "message":{"shape":"ErrorMessageType"} }, - "documentation":"

The request was rejected because the state of the specified resource is not valid for this request.

For more information about how key state affects the use of a KMS key, see Key states of KMS keys in the Key Management Service Developer Guide .

", + "documentation":"

The request was rejected because the state of the specified resource is not valid for this request.

This exceptions means one of the following:

  • The key state of the KMS key is not compatible with the operation.

    To find the key state, use the DescribeKey operation. For more information about which key states are compatible with each KMS operation, see Key states of KMS keys in the Key Management Service Developer Guide .

  • For cryptographic operations on KMS keys in custom key stores, this exception represents a general failure with many possible causes. To identify the cause, see the error message that accompanies the exception.

", "exception":true }, "KeyIdType":{ @@ -2392,11 +2465,11 @@ }, "CustomKeyStoreId":{ "shape":"CustomKeyStoreIdType", - "documentation":"

A unique identifier for the custom key store that contains the KMS key. This value is present only when the KMS key is created in a custom key store.

" + "documentation":"

A unique identifier for the custom key store that contains the KMS key. This field is present only when the KMS key is created in a custom key store.

" }, "CloudHsmClusterId":{ "shape":"CloudHsmClusterIdType", - "documentation":"

The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a KMS key in a custom key store, KMS creates the key material for the KMS key in the associated CloudHSM cluster. This value is present only when the KMS key is created in a custom key store.

" + "documentation":"

The cluster ID of the CloudHSM cluster that contains the key material for the KMS key. When you create a KMS key in an CloudHSM custom key store, KMS creates the key material for the KMS key in the associated CloudHSM cluster. This field is present only when the KMS key is created in an CloudHSM key store.

" }, "ExpirationModel":{ "shape":"ExpirationModelType", @@ -2408,7 +2481,7 @@ }, "CustomerMasterKeySpec":{ "shape":"CustomerMasterKeySpec", - "documentation":"

Instead, use the KeySpec field.

The KeySpec and CustomerMasterKeySpec fields have the same value. We recommend that you use the KeySpec field in your code. However, to avoid breaking changes, KMS will support both fields.

", + "documentation":"

Instead, use the KeySpec field.

The KeySpec and CustomerMasterKeySpec fields have the same value. We recommend that you use the KeySpec field in your code. However, to avoid breaking changes, KMS supports both fields.

", "deprecated":true, "deprecatedMessage":"This field has been deprecated. Instead, use the KeySpec field." }, @@ -2439,9 +2512,13 @@ "MacAlgorithms":{ "shape":"MacAlgorithmSpecList", "documentation":"

The message authentication code (MAC) algorithm that the HMAC KMS key supports.

This value is present only when the KeyUsage of the KMS key is GENERATE_VERIFY_MAC.

" + }, + "XksKeyConfiguration":{ + "shape":"XksKeyConfigurationType", + "documentation":"

Information about the external key that is associated with a KMS key in an external key store.

For more information, see External key in the Key Management Service Developer Guide.

" } }, - "documentation":"

Contains metadata about a KMS key.

This data type is used as a response element for the CreateKey and DescribeKey operations.

" + "documentation":"

Contains metadata about a KMS key.

This data type is used as a response element for the CreateKey, DescribeKey, and ReplicateKey operations.

" }, "KeySpec":{ "type":"string", @@ -2457,7 +2534,8 @@ "HMAC_224", "HMAC_256", "HMAC_384", - "HMAC_512" + "HMAC_512", + "SM2" ] }, "KeyState":{ @@ -2674,7 +2752,7 @@ "members":{ "Tags":{ "shape":"TagList", - "documentation":"

A list of tags. Each tag consists of a tag key and a tag value.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC in KMS in the Key Management Service Developer Guide.

" + "documentation":"

A list of tags. Each tag consists of a tag key and a tag value.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

" }, "NextMarker":{ "shape":"MarkerType", @@ -2800,7 +2878,8 @@ "enum":[ "AWS_KMS", "EXTERNAL", - "AWS_CLOUDHSM" + "AWS_CLOUDHSM", + "EXTERNAL_KEY_STORE" ] }, "PendingWindowInDaysType":{ @@ -2859,7 +2938,7 @@ }, "Policy":{ "shape":"PolicyType", - "documentation":"

The key policy to attach to the KMS key.

The key policy must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must allow the principal that is making the PutKeyPolicy request to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide.

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Amazon Web Services Identity and Access Management User Guide.

A key policy document must conform to the following rules.

  • Up to 32 kilobytes (32768 bytes)

  • Must be UTF-8 encoded

  • The only Unicode characters that are permitted in a key policy document are the horizontal tab (U+0009), linefeed (U+000A), carriage return (U+000D), and characters in the range U+0020 to U+00FF.

  • The Sid element in a key policy statement can include spaces. (Spaces are prohibited in the Sid element of an IAM policy document.)

" + "documentation":"

The key policy to attach to the KMS key.

The key policy must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must allow the principal that is making the PutKeyPolicy request to make a subsequent PutKeyPolicy request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide.

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Amazon Web Services Identity and Access Management User Guide.

A key policy document can include only the following characters:

  • Printable ASCII characters from the space character (\\u0020) through the end of the ASCII character range.

  • Printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF).

  • The tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) special characters

For information about key policies, see Key policies in KMS in the Key Management Service Developer Guide.For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" }, "BypassPolicyLockoutSafetyCheck":{ "shape":"BooleanType", @@ -2956,7 +3035,7 @@ }, "Policy":{ "shape":"PolicyType", - "documentation":"

The key policy to attach to the KMS key. This parameter is optional. If you do not provide a key policy, KMS attaches the default key policy to the KMS key.

The key policy is not a shared property of multi-Region keys. You can specify the same key policy or a different key policy for each key in a set of related multi-Region keys. KMS does not synchronize this property.

If you provide a key policy, it must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must give the caller kms:PutKeyPolicy permission on the replica key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide .

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Identity and Access Management User Guide .

A key policy document must conform to the following rules.

  • Up to 32 kilobytes (32768 bytes)

  • Must be UTF-8 encoded

  • The only Unicode characters that are permitted in a key policy document are the horizontal tab (U+0009), linefeed (U+000A), carriage return (U+000D), and characters in the range U+0020 to U+00FF.

  • The Sid element in a key policy statement can include spaces. (Spaces are prohibited in the Sid element of an IAM policy document.)

" + "documentation":"

The key policy to attach to the KMS key. This parameter is optional. If you do not provide a key policy, KMS attaches the default key policy to the KMS key.

The key policy is not a shared property of multi-Region keys. You can specify the same key policy or a different key policy for each key in a set of related multi-Region keys. KMS does not synchronize this property.

If you provide a key policy, it must meet the following criteria:

  • If you don't set BypassPolicyLockoutSafetyCheck to true, the key policy must give the caller kms:PutKeyPolicy permission on the replica key. This reduces the risk that the KMS key becomes unmanageable. For more information, refer to the scenario in the Default Key Policy section of the Key Management Service Developer Guide .

  • Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new Amazon Web Services principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see Changes that I make are not always immediately visible in the Identity and Access Management User Guide .

A key policy document can include only the following characters:

  • Printable ASCII characters from the space character (\\u0020) through the end of the ASCII character range.

  • Printable characters in the Basic Latin and Latin-1 Supplement character set (through \\u00FF).

  • The tab (\\u0009), line feed (\\u000A), and carriage return (\\u000D) special characters

For information about key policies, see Key policies in KMS in the Key Management Service Developer Guide. For help writing and formatting a JSON policy document, see the IAM JSON Policy Reference in the Identity and Access Management User Guide .

" }, "BypassPolicyLockoutSafetyCheck":{ "shape":"BooleanType", @@ -2968,7 +3047,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

Assigns one or more tags to the replica key. Use this parameter to tag the KMS key when it is created. To tag an existing KMS key, use the TagResource operation.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC in KMS in the Key Management Service Developer Guide.

To use this parameter, you must have kms:TagResource permission in an IAM policy.

Tags are not a shared property of multi-Region keys. You can specify the same tags or different tags for each key in a set of related multi-Region keys. KMS does not synchronize this property.

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You cannot have more than one tag on a KMS key with the same tag key. If you specify an existing tag key with a different tag value, KMS replaces the current tag value with the specified one.

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details, see Tagging Keys.

" + "documentation":"

Assigns one or more tags to the replica key. Use this parameter to tag the KMS key when it is created. To tag an existing KMS key, use the TagResource operation.

Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see ABAC for KMS in the Key Management Service Developer Guide.

To use this parameter, you must have kms:TagResource permission in an IAM policy.

Tags are not a shared property of multi-Region keys. You can specify the same tags or different tags for each key in a set of related multi-Region keys. KMS does not synchronize this property.

Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You cannot have more than one tag on a KMS key with the same tag key. If you specify an existing tag key with a different tag value, KMS replaces the current tag value with the specified one.

When you add tags to an Amazon Web Services resource, Amazon Web Services generates a cost allocation report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details, see Tagging Keys.

" } } }, @@ -3116,7 +3195,8 @@ "RSASSA_PKCS1_V1_5_SHA_512", "ECDSA_SHA_256", "ECDSA_SHA_384", - "ECDSA_SHA_512" + "ECDSA_SHA_512", + "SM2DSA" ] }, "SigningAlgorithmSpecList":{ @@ -3223,11 +3303,11 @@ "members":{ "AliasName":{ "shape":"AliasNameType", - "documentation":"

Identifies the alias that is changing its KMS key. This value must begin with alias/ followed by the alias name, such as alias/ExampleAlias. You cannot use UpdateAlias to change the alias name.

" + "documentation":"

Identifies the alias that is changing its KMS key. This value must begin with alias/ followed by the alias name, such as alias/ExampleAlias. You cannot use UpdateAlias to change the alias name.

" }, "TargetKeyId":{ "shape":"KeyIdType", - "documentation":"

Identifies the customer managed key to associate with the alias. You don't have permission to associate an alias with an Amazon Web Services managed key.

The KMS key must be in the same Amazon Web Services account and Region as the alias. Also, the new target KMS key must be the same type as the current target KMS key (both symmetric or both asymmetric) and they must have the same key usage.

Specify the key ID or key ARN of the KMS key.

For example:

  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

To verify that the alias is mapped to the correct KMS key, use ListAliases.

" + "documentation":"

Identifies the customer managed key to associate with the alias. You don't have permission to associate an alias with an Amazon Web Services managed key.

The KMS key must be in the same Amazon Web Services account and Region as the alias. Also, the new target KMS key must be the same type as the current target KMS key (both symmetric or both asymmetric or both HMAC) and they must have the same key usage.

Specify the key ID or key ARN of the KMS key.

For example:

  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

To get the key ID and key ARN for a KMS key, use ListKeys or DescribeKey.

To verify that the alias is mapped to the correct KMS key, use ListAliases.

" } } }, @@ -3241,15 +3321,35 @@ }, "NewCustomKeyStoreName":{ "shape":"CustomKeyStoreNameType", - "documentation":"

Changes the friendly name of the custom key store to the value that you specify. The custom key store name must be unique in the Amazon Web Services account.

" + "documentation":"

Changes the friendly name of the custom key store to the value that you specify. The custom key store name must be unique in the Amazon Web Services account.

To change this value, an CloudHSM key store must be disconnected. An external key store can be connected or disconnected.

" }, "KeyStorePassword":{ "shape":"KeyStorePasswordType", - "documentation":"

Enter the current password of the kmsuser crypto user (CU) in the CloudHSM cluster that is associated with the custom key store.

This parameter tells KMS the current password of the kmsuser crypto user (CU). It does not set or change the password of any users in the CloudHSM cluster.

" + "documentation":"

Enter the current password of the kmsuser crypto user (CU) in the CloudHSM cluster that is associated with the custom key store. This parameter is valid only for custom key stores with a CustomKeyStoreType of AWS_CLOUDHSM.

This parameter tells KMS the current password of the kmsuser crypto user (CU). It does not set or change the password of any users in the CloudHSM cluster.

To change this value, the CloudHSM key store must be disconnected.

" }, "CloudHsmClusterId":{ "shape":"CloudHsmClusterIdType", - "documentation":"

Associates the custom key store with a related CloudHSM cluster.

Enter the cluster ID of the cluster that you used to create the custom key store or a cluster that shares a backup history and has the same cluster certificate as the original cluster. You cannot use this parameter to associate a custom key store with an unrelated cluster. In addition, the replacement cluster must fulfill the requirements for a cluster associated with a custom key store. To view the cluster certificate of a cluster, use the DescribeClusters operation.

" + "documentation":"

Associates the custom key store with a related CloudHSM cluster. This parameter is valid only for custom key stores with a CustomKeyStoreType of AWS_CLOUDHSM.

Enter the cluster ID of the cluster that you used to create the custom key store or a cluster that shares a backup history and has the same cluster certificate as the original cluster. You cannot use this parameter to associate a custom key store with an unrelated cluster. In addition, the replacement cluster must fulfill the requirements for a cluster associated with a custom key store. To view the cluster certificate of a cluster, use the DescribeClusters operation.

To change this value, the CloudHSM key store must be disconnected.

" + }, + "XksProxyUriEndpoint":{ + "shape":"XksProxyUriEndpointType", + "documentation":"

Changes the URI endpoint that KMS uses to connect to your external key store proxy (XKS proxy). This parameter is valid only for custom key stores with a CustomKeyStoreType of EXTERNAL_KEY_STORE.

For external key stores with an XksProxyConnectivity value of PUBLIC_ENDPOINT, the protocol must be HTTPS.

For external key stores with an XksProxyConnectivity value of VPC_ENDPOINT_SERVICE, specify https:// followed by the private DNS name associated with the VPC endpoint service. Each external key store must use a different private DNS name.

The combined XksProxyUriEndpoint and XksProxyUriPath values must be unique in the Amazon Web Services account and Region.

To change this value, the external key store must be disconnected.

" + }, + "XksProxyUriPath":{ + "shape":"XksProxyUriPathType", + "documentation":"

Changes the base path to the proxy APIs for this external key store. To find this value, see the documentation for your external key manager and external key store proxy (XKS proxy). This parameter is valid only for custom key stores with a CustomKeyStoreType of EXTERNAL_KEY_STORE.

The value must start with / and must end with /kms/xks/v1, where v1 represents the version of the KMS external key store proxy API. You can include an optional prefix between the required elements such as /example/kms/xks/v1.

The combined XksProxyUriEndpoint and XksProxyUriPath values must be unique in the Amazon Web Services account and Region.

You can change this value when the external key store is connected or disconnected.

" + }, + "XksProxyVpcEndpointServiceName":{ + "shape":"XksProxyVpcEndpointServiceNameType", + "documentation":"

Changes the name that KMS uses to identify the Amazon VPC endpoint service for your external key store proxy (XKS proxy). This parameter is valid when the CustomKeyStoreType is EXTERNAL_KEY_STORE and the XksProxyConnectivity is VPC_ENDPOINT_SERVICE.

To change this value, the external key store must be disconnected.

" + }, + "XksProxyAuthenticationCredential":{ + "shape":"XksProxyAuthenticationCredentialType", + "documentation":"

Changes the credentials that KMS uses to sign requests to the external key store proxy (XKS proxy). This parameter is valid only for custom key stores with a CustomKeyStoreType of EXTERNAL_KEY_STORE.

You must specify both the AccessKeyId and SecretAccessKey value in the authentication credential, even if you are only updating one value.

This parameter doesn't establish or change your authentication credentials on the proxy. It just tells KMS the credential that you established with your external key store proxy. For example, if you rotate the credential on your external key store proxy, you can use this parameter to update the credential in KMS.

You can change this value when the external key store is connected or disconnected.

" + }, + "XksProxyConnectivity":{ + "shape":"XksProxyConnectivityType", + "documentation":"

Changes the connectivity setting for the external key store. To indicate that the external key store proxy uses a Amazon VPC endpoint service to communicate with KMS, specify VPC_ENDPOINT_SERVICE. Otherwise, specify PUBLIC_ENDPOINT.

If you change the XksProxyConnectivity to VPC_ENDPOINT_SERVICE, you must also change the XksProxyUriEndpoint and add an XksProxyVpcEndpointServiceName value.

If you change the XksProxyConnectivity to PUBLIC_ENDPOINT, you must also change the XksProxyUriEndpoint and specify a null or empty string for the XksProxyVpcEndpointServiceName value.

To change this value, the external key store must be disconnected.

" } } }, @@ -3395,7 +3495,202 @@ "WrappingKeySpec":{ "type":"string", "enum":["RSA_2048"] + }, + "XksKeyAlreadyInUseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because the (XksKeyId) is already associated with a KMS key in this external key store. Each KMS key in an external key store must be associated with a different external key.

", + "exception":true + }, + "XksKeyConfigurationType":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"XksKeyIdType", + "documentation":"

The ID of the external key in its external key manager. This is the ID that the external key store proxy uses to identify the external key.

" + } + }, + "documentation":"

Information about the external key that is associated with a KMS key in an external key store.

This element appears in a CreateKey or DescribeKey response only for a KMS key in an external key store.

The external key is a symmetric encryption key that is hosted by an external key manager outside of Amazon Web Services. When you use the KMS key in an external key store in a cryptographic operation, the cryptographic operation is performed in the external key manager using the specified external key. For more information, see External key in the Key Management Service Developer Guide.

" + }, + "XksKeyIdType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[a-zA-Z0-9-_.]+$" + }, + "XksKeyInvalidConfigurationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because the external key specified by the XksKeyId parameter did not meet the configuration requirements for an external key store.

The external key must be an AES-256 symmetric key that is enabled and performs encryption and decryption.

", + "exception":true + }, + "XksKeyNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because the external key store proxy could not find the external key. This exception is thrown when the value of the XksKeyId parameter doesn't identify a key in the external key manager associated with the external key proxy.

Verify that the XksKeyId represents an existing key in the external key manager. Use the key identifier that the external key store proxy uses to identify the key. For details, see the documentation provided with your external key store proxy or key manager.

", + "exception":true + }, + "XksProxyAuthenticationAccessKeyIdType":{ + "type":"string", + "max":30, + "min":20, + "pattern":"^[A-Z2-7]+$", + "sensitive":true + }, + "XksProxyAuthenticationCredentialType":{ + "type":"structure", + "required":[ + "AccessKeyId", + "RawSecretAccessKey" + ], + "members":{ + "AccessKeyId":{ + "shape":"XksProxyAuthenticationAccessKeyIdType", + "documentation":"

A unique identifier for the raw secret access key.

" + }, + "RawSecretAccessKey":{ + "shape":"XksProxyAuthenticationRawSecretAccessKeyType", + "documentation":"

A secret string of 43-64 characters. Valid characters are a-z, A-Z, 0-9, /, +, and =.

" + } + }, + "documentation":"

KMS uses the authentication credential to sign requests that it sends to the external key store proxy (XKS proxy) on your behalf. You establish these credentials on your external key store proxy and report them to KMS.

The XksProxyAuthenticationCredential includes two required elements.

" + }, + "XksProxyAuthenticationRawSecretAccessKeyType":{ + "type":"string", + "max":64, + "min":43, + "pattern":"^[a-zA-Z0-9\\/+=]+$", + "sensitive":true + }, + "XksProxyConfigurationType":{ + "type":"structure", + "members":{ + "Connectivity":{ + "shape":"XksProxyConnectivityType", + "documentation":"

Indicates whether the external key store proxy uses a public endpoint or an Amazon VPC endpoint service to communicate with KMS.

" + }, + "AccessKeyId":{ + "shape":"XksProxyAuthenticationAccessKeyIdType", + "documentation":"

The part of the external key store proxy authentication credential that uniquely identifies the secret access key.

" + }, + "UriEndpoint":{ + "shape":"XksProxyUriEndpointType", + "documentation":"

The URI endpoint for the external key store proxy.

If the external key store proxy has a public endpoint, it is displayed here.

If the external key store proxy uses an Amazon VPC endpoint service name, this field displays the private DNS name associated with the VPC endpoint service.

" + }, + "UriPath":{ + "shape":"XksProxyUriPathType", + "documentation":"

The path to the external key store proxy APIs.

" + }, + "VpcEndpointServiceName":{ + "shape":"XksProxyVpcEndpointServiceNameType", + "documentation":"

The Amazon VPC endpoint service used to communicate with the external key store proxy. This field appears only when the external key store proxy uses an Amazon VPC endpoint service to communicate with KMS.

" + } + }, + "documentation":"

Detailed information about the external key store proxy (XKS proxy). Your external key store proxy translates KMS requests into a format that your external key manager can understand. These fields appear in a DescribeCustomKeyStores response only when the CustomKeyStoreType is EXTERNAL_KEY_STORE.

" + }, + "XksProxyConnectivityType":{ + "type":"string", + "enum":[ + "PUBLIC_ENDPOINT", + "VPC_ENDPOINT_SERVICE" + ] + }, + "XksProxyIncorrectAuthenticationCredentialException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because the proxy credentials failed to authenticate to the specified external key store proxy. The specified external key store proxy rejected a status request from KMS due to invalid credentials. This can indicate an error in the credentials or in the identification of the external key store proxy.

", + "exception":true + }, + "XksProxyInvalidConfigurationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because the Amazon VPC endpoint service configuration does not fulfill the requirements for an external key store proxy. For details, see the exception message.

", + "exception":true + }, + "XksProxyInvalidResponseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

KMS cannot interpret the response it received from the external key store proxy. The problem might be a poorly constructed response, but it could also be a transient network issue. If you see this error repeatedly, report it to the proxy vendor.

", + "exception":true + }, + "XksProxyUriEndpointInUseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because the concatenation of the XksProxyUriEndpoint is already associated with an external key store in the Amazon Web Services account and Region. Each external key store in an account and Region must use a unique external key store proxy address.

", + "exception":true + }, + "XksProxyUriEndpointType":{ + "type":"string", + "max":128, + "min":10, + "pattern":"^https://[a-zA-Z0-9.-]+$" + }, + "XksProxyUriInUseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because the concatenation of the XksProxyUriEndpoint and XksProxyUriPath is already associated with an external key store in the Amazon Web Services account and Region. Each external key store in an account and Region must use a unique external key store proxy API address.

", + "exception":true + }, + "XksProxyUriPathType":{ + "type":"string", + "max":128, + "min":10, + "pattern":"^(/[a-zA-Z0-9\\/_-]+/kms/xks/v\\d{1,2})$|^(/kms/xks/v\\d{1,2})$" + }, + "XksProxyUriUnreachableException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

KMS was unable to reach the specified XksProxyUriPath. The path must be reachable before you create the external key store or update its settings.

This exception is also thrown when the external key store proxy response to a GetHealthStatus request indicates that all external key manager instances are unavailable.

", + "exception":true + }, + "XksProxyVpcEndpointServiceInUseException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because the specified Amazon VPC endpoint service is already associated with an external key store in the Amazon Web Services account and Region. Each external key store in an Amazon Web Services account and Region must use a different Amazon VPC endpoint service.

", + "exception":true + }, + "XksProxyVpcEndpointServiceInvalidConfigurationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because the Amazon VPC endpoint service configuration does not fulfill the requirements for an external key store proxy. For details, see the exception message and review the requirements for Amazon VPC endpoint service connectivity for an external key store.

", + "exception":true + }, + "XksProxyVpcEndpointServiceNameType":{ + "type":"string", + "max":64, + "min":20, + "pattern":"^com\\.amazonaws\\.vpce\\.([a-z]+-){2,3}\\d+\\.vpce-svc-[0-9a-z]+$" + }, + "XksProxyVpcEndpointServiceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessageType"} + }, + "documentation":"

The request was rejected because KMS could not find the specified VPC endpoint service. Use DescribeCustomKeyStores to verify the VPC endpoint service name for the external key store. Also, confirm that the Allow principals list for the VPC endpoint service includes the KMS service principal for the Region, such as cks.kms.us-east-1.amazonaws.com.

", + "exception":true } }, - "documentation":"Key Management Service

Key Management Service (KMS) is an encryption and key management web service. This guide describes the KMS operations that you can call programmatically. For general information about KMS, see the Key Management Service Developer Guide .

KMS is replacing the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

Amazon Web Services provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to KMS and other Amazon Web Services services. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to download and install them, see Tools for Amazon Web Services.

We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS.

If you need to use FIPS 140-2 validated cryptographic modules when communicating with Amazon Web Services, use the FIPS endpoint in your preferred Amazon Web Services Region. For more information about the available FIPS endpoints, see Service endpoints in the Key Management Service topic of the Amazon Web Services General Reference.

All KMS API calls must be signed and be transmitted using Transport Layer Security (TLS). KMS recommends you always use the latest supported TLS version. Clients must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes.

Signing Requests

Requests must be signed by using an access key ID and a secret access key. We strongly recommend that you do not use your Amazon Web Services account (root) access key ID and secret key for everyday work with KMS. Instead, use the access key ID and secret access key for an IAM user. You can also use the Amazon Web Services Security Token Service to generate temporary security credentials that you can use to sign requests.

All KMS operations require Signature Version 4.

Logging API Requests

KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can determine what requests were made to KMS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the CloudTrail User Guide.

Additional Resources

For more information about credentials and request signing, see the following:

Commonly Used API Operations

Of the API operations discussed in this guide, the following will prove the most useful for most applications. You will likely perform operations other than these, such as creating keys and assigning policies, by using the console.

" + "documentation":"Key Management Service

Key Management Service (KMS) is an encryption and key management web service. This guide describes the KMS operations that you can call programmatically. For general information about KMS, see the Key Management Service Developer Guide .

KMS has replaced the term customer master key (CMK) with KMS key and KMS key. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.

Amazon Web Services provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, macOS, Android, etc.). The SDKs provide a convenient way to create programmatic access to KMS and other Amazon Web Services services. For example, the SDKs take care of tasks such as signing requests (see below), managing errors, and retrying requests automatically. For more information about the Amazon Web Services SDKs, including how to download and install them, see Tools for Amazon Web Services.

We recommend that you use the Amazon Web Services SDKs to make programmatic API calls to KMS.

If you need to use FIPS 140-2 validated cryptographic modules when communicating with Amazon Web Services, use the FIPS endpoint in your preferred Amazon Web Services Region. For more information about the available FIPS endpoints, see Service endpoints in the Key Management Service topic of the Amazon Web Services General Reference.

All KMS API calls must be signed and be transmitted using Transport Layer Security (TLS). KMS recommends you always use the latest supported TLS version. Clients must also support cipher suites with Perfect Forward Secrecy (PFS) such as Ephemeral Diffie-Hellman (DHE) or Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Most modern systems such as Java 7 and later support these modes.

Signing Requests

Requests must be signed by using an access key ID and a secret access key. We strongly recommend that you do not use your Amazon Web Services account (root) access key ID and secret access key for everyday work with KMS. Instead, use the access key ID and secret access key for an IAM user. You can also use the Amazon Web Services Security Token Service to generate temporary security credentials that you can use to sign requests.

All KMS operations require Signature Version 4.

Logging API Requests

KMS supports CloudTrail, a service that logs Amazon Web Services API calls and related events for your Amazon Web Services account and delivers them to an Amazon S3 bucket that you specify. By using the information collected by CloudTrail, you can determine what requests were made to KMS, who made the request, when it was made, and so on. To learn more about CloudTrail, including how to turn it on and find your log files, see the CloudTrail User Guide.

Additional Resources

For more information about credentials and request signing, see the following:

Commonly Used API Operations

Of the API operations discussed in this guide, the following will prove the most useful for most applications. You will likely perform operations other than these, such as creating keys and assigning policies, by using the console.

" } diff --git a/botocore/data/lakeformation/2017-03-31/endpoint-rule-set-1.json b/botocore/data/lakeformation/2017-03-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..63ae5f85 --- /dev/null +++ b/botocore/data/lakeformation/2017-03-31/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lakeformation-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lakeformation-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lakeformation.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://lakeformation.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lakeformation/2017-03-31/examples-1.json b/botocore/data/lakeformation/2017-03-31/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/lakeformation/2017-03-31/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/lakeformation/2017-03-31/service-2.json b/botocore/data/lakeformation/2017-03-31/service-2.json index b411f813..5163d72c 100644 --- a/botocore/data/lakeformation/2017-03-31/service-2.json +++ b/botocore/data/lakeformation/2017-03-31/service-2.json @@ -30,6 +30,23 @@ ], "documentation":"

Attaches one or more LF-tags to an existing resource.

" }, + "AssumeDecoratedRoleWithSAML":{ + "name":"AssumeDecoratedRoleWithSAML", + "http":{ + "method":"POST", + "requestUri":"/AssumeDecoratedRoleWithSAML" + }, + "input":{"shape":"AssumeDecoratedRoleWithSAMLRequest"}, + "output":{"shape":"AssumeDecoratedRoleWithSAMLResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InternalServiceException"}, + {"shape":"OperationTimeoutException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Allows a caller to assume an IAM role decorated as the SAML user specified in the SAML assertion included in the request. This decoration allows Lake Formation to enforce access policies against the SAML users and groups. This API operation requires SAML federation setup in the caller’s account as it can only be called with valid SAML assertions. Lake Formation does not scope down the permission of the assumed role. All permissions attached to the role via the SAML federation setup will be included in the role session.

This decorated role is expected to access data in Amazon S3 by getting temporary access from Lake Formation which is authorized via the virtual API GetDataAccess. Therefore, all SAML roles that can be assumed via AssumeDecoratedRoleWithSAML must at a minimum include lakeformation:GetDataAccess in their role policies. A typical IAM policy attached to such a role would look as follows:

" + }, "BatchGrantPermissions":{ "name":"BatchGrantPermissions", "http":{ @@ -164,7 +181,7 @@ {"shape":"OperationTimeoutException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Deletes the specified LF-tag key name. If the attribute key does not exist or the LF-tag does not exist, then the operation will not do anything. If the attribute key exists, then the operation checks if any resources are tagged with this attribute key, if yes, the API throws a 400 Exception with the message \"Delete not allowed\" as the LF-tag key is still attached with resources. You can consider untagging resources with this LF-tag key.

" + "documentation":"

Deletes the specified LF-tag given a key name. If the input parameter tag key was not found, then the operation will throw an exception. When you delete an LF-tag, the LFTagPolicy attached to the LF-tag becomes invalid. If the deleted LF-tag was still assigned to any resource, the tag policy attach to the deleted LF-tag will no longer be applied to the resource.

" }, "DeleteObjectsOnCancel":{ "name":"DeleteObjectsOnCancel", @@ -856,6 +873,53 @@ "documentation":"

A resource to be created or added already exists.

", "exception":true }, + "AssumeDecoratedRoleWithSAMLRequest":{ + "type":"structure", + "required":[ + "SAMLAssertion", + "RoleArn", + "PrincipalArn" + ], + "members":{ + "SAMLAssertion":{ + "shape":"SAMLAssertionString", + "documentation":"

A SAML assertion consisting of an assertion statement for the user who needs temporary credentials. This must match the SAML assertion that was issued to IAM. This must be Base64 encoded.

" + }, + "RoleArn":{ + "shape":"IAMRoleArn", + "documentation":"

The role that represents an IAM principal whose scope down policy allows it to call credential vending APIs such as GetTemporaryTableCredentials. The caller must also have iam:PassRole permission on this role.

" + }, + "PrincipalArn":{ + "shape":"IAMSAMLProviderArn", + "documentation":"

The Amazon Resource Name (ARN) of the SAML provider in IAM that describes the IdP.

" + }, + "DurationSeconds":{ + "shape":"CredentialTimeoutDurationSecondInteger", + "documentation":"

The time period, between 900 and 43,200 seconds, for the timeout of the temporary credentials.

" + } + } + }, + "AssumeDecoratedRoleWithSAMLResponse":{ + "type":"structure", + "members":{ + "AccessKeyId":{ + "shape":"AccessKeyIdString", + "documentation":"

The access key ID for the temporary credentials. (The access key consists of an access key ID and a secret key).

" + }, + "SecretAccessKey":{ + "shape":"SecretAccessKeyString", + "documentation":"

The secret key for the temporary credentials. (The access key consists of an access key ID and a secret key).

" + }, + "SessionToken":{ + "shape":"SessionTokenString", + "documentation":"

The session token for the temporary credentials.

" + }, + "Expiration":{ + "shape":"ExpirationTimestamp", + "documentation":"

The date and time when the temporary credentials expire.

" + } + } + }, "AuditContext":{ "type":"structure", "members":{ @@ -1203,7 +1267,7 @@ "DataLakePrincipalList":{ "type":"list", "member":{"shape":"DataLakePrincipal"}, - "max":10, + "max":30, "min":0 }, "DataLakePrincipalString":{ @@ -1233,12 +1297,16 @@ }, "CreateDatabaseDefaultPermissions":{ "shape":"PrincipalPermissionsList", - "documentation":"

Specifies whether access control on newly created database is managed by Lake Formation permissions or exclusively by IAM permissions. You can override this default setting when you create a database.

A null value indicates access control by Lake Formation permissions. A value that assigns ALL to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is referred to as the setting \"Use only IAM access control,\" and is for backward compatibility with the Glue permission model implemented by IAM permissions.

The only permitted values are an empty array or an array that contains a single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more information, see Changing the Default Security Settings for Your Data Lake.

" + "documentation":"

Specifies whether access control on newly created database is managed by Lake Formation permissions or exclusively by IAM permissions.

A null value indicates access control by Lake Formation permissions. A value that assigns ALL to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is referred to as the setting \"Use only IAM access control,\" and is for backward compatibility with the Glue permission model implemented by IAM permissions.

The only permitted values are an empty array or an array that contains a single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more information, see Changing the Default Security Settings for Your Data Lake.

" }, "CreateTableDefaultPermissions":{ "shape":"PrincipalPermissionsList", "documentation":"

Specifies whether access control on newly created table is managed by Lake Formation permissions or exclusively by IAM permissions.

A null value indicates access control by Lake Formation permissions. A value that assigns ALL to IAM_ALLOWED_PRINCIPALS indicates access control by IAM permissions. This is referred to as the setting \"Use only IAM access control,\" and is for backward compatibility with the Glue permission model implemented by IAM permissions.

The only permitted values are an empty array or an array that contains a single JSON object that grants ALL to IAM_ALLOWED_PRINCIPALS.

For more information, see Changing the Default Security Settings for Your Data Lake.

" }, + "Parameters":{ + "shape":"ParametersMap", + "documentation":"

A key-value map that provides an additional configuration on your data lake. CrossAccountVersion is the key you can configure in the Parameters field. Accepted values for the CrossAccountVersion key are 1, 2, and 3.

" + }, "TrustedResourceOwners":{ "shape":"TrustedResourceOwners", "documentation":"

A list of the resource-owning account IDs that the caller's account can use to share their user access details (user ARNs). The user ARNs can be logged in the resource owner's CloudTrail log.

You may want to specify this property when you are in a high-trust boundary, such as the same team or company.

" @@ -2060,6 +2128,10 @@ "type":"string", "pattern":"arn:aws:iam::[0-9]*:role/.*" }, + "IAMSAMLProviderArn":{ + "type":"string", + "pattern":"arn:aws:iam::[0-9]*:saml-provider/.*" + }, "Identifier":{ "type":"string", "max":255, @@ -2097,6 +2169,12 @@ }, "exception":true }, + "KeyString":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\t]*" + }, "LFTag":{ "type":"structure", "required":[ @@ -2478,6 +2556,15 @@ "max":1000, "min":1 }, + "ParametersMap":{ + "type":"map", + "key":{"shape":"KeyString"}, + "value":{"shape":"ParametersMapValue"} + }, + "ParametersMapValue":{ + "type":"string", + "max":512000 + }, "PartitionObjects":{ "type":"structure", "members":{ @@ -2716,7 +2803,7 @@ }, "UseServiceLinkedRole":{ "shape":"NullableBoolean", - "documentation":"

Designates an Identity and Access Management (IAM) service-linked role by registering this role with the Data Catalog. A service-linked role is a unique type of IAM role that is linked directly to Lake Formation.

For more information, see Using Service-Linked Roles for Lake Formation.

" + "documentation":"

Designates an Identity and Access Management (IAM) service-linked role by registering this role with the Data Catalog. A service-linked role is a unique type of IAM role that is linked directly to Lake Formation.

For more information, see Using Service-Linked Roles for Lake Formation.

" }, "RoleArn":{ "shape":"IAMRoleArn", @@ -2915,6 +3002,11 @@ }, "documentation":"

A PartiQL predicate.

" }, + "SAMLAssertionString":{ + "type":"string", + "max":100000, + "min":4 + }, "SearchDatabasesByLFTagsRequest":{ "type":"structure", "required":["Expression"], @@ -2924,7 +3016,7 @@ "documentation":"

A continuation token, if this is not the first call to retrieve this list.

" }, "MaxResults":{ - "shape":"PageSize", + "shape":"SearchPageSize", "documentation":"

The maximum number of results to return.

" }, "CatalogId":{ @@ -2950,6 +3042,12 @@ } } }, + "SearchPageSize":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, "SearchTablesByLFTagsRequest":{ "type":"structure", "required":["Expression"], @@ -2959,7 +3057,7 @@ "documentation":"

A continuation token, if this is not the first call to retrieve this list.

" }, "MaxResults":{ - "shape":"PageSize", + "shape":"SearchPageSize", "documentation":"

The maximum number of results to return.

" }, "CatalogId":{ diff --git a/botocore/data/lambda/2014-11-11/endpoint-rule-set-1.json b/botocore/data/lambda/2014-11-11/endpoint-rule-set-1.json new file mode 100644 index 00000000..84fb834f --- /dev/null +++ b/botocore/data/lambda/2014-11-11/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://lambda.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lambda/2015-03-31/endpoint-rule-set-1.json b/botocore/data/lambda/2015-03-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..1c2cb6b0 --- /dev/null +++ b/botocore/data/lambda/2015-03-31/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lambda-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lambda-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lambda.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://lambda.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lambda/2015-03-31/service-2.json b/botocore/data/lambda/2015-03-31/service-2.json index 6f5341cf..94c948c5 100644 --- a/botocore/data/lambda/2015-03-31/service-2.json +++ b/botocore/data/lambda/2015-03-31/service-2.json @@ -48,7 +48,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"PreconditionFailedException"} ], - "documentation":"

Grants an Amazon Web Services service, account, or organization permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function. Note: Lambda does not support adding policies to version $LATEST.

To grant permission to another account, specify the account ID as the Principal. To grant permission to an organization defined in Organizations, specify the organization ID as the PrincipalOrgID. For Amazon Web Services services, the principal is a domain-style identifier defined by the service, like s3.amazonaws.com or sns.amazonaws.com. For Amazon Web Services services, you can also specify the ARN of the associated resource as the SourceArn. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function.

This action adds a statement to a resource-based permissions policy for the function. For more information about function policies, see Lambda Function Policies.

" + "documentation":"

Grants an Amazon Web Service, Amazon Web Services account, or Amazon Web Services organization permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function. Note: Lambda does not support adding policies to version $LATEST.

To grant permission to another account, specify the account ID as the Principal. To grant permission to an organization defined in Organizations, specify the organization ID as the PrincipalOrgID. For Amazon Web Services, the principal is a domain-style identifier that the service defines, such as s3.amazonaws.com or sns.amazonaws.com. For Amazon Web Services, you can also specify the ARN of the associated resource as the SourceArn. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function.

This operation adds a statement to a resource-based permissions policy for the function. For more information about function policies, see Using resource-based policies for Lambda.

" }, "CreateAlias":{ "name":"CreateAlias", @@ -81,7 +81,7 @@ {"shape":"ServiceException"}, {"shape":"InvalidParameterValueException"} ], - "documentation":"

Creates a code signing configuration. A code signing configuration defines a list of allowed signing profiles and defines the code-signing validation policy (action to be taken if deployment validation checks fail).

" + "documentation":"

Creates a code signing configuration. A code signing configuration defines a list of allowed signing profiles and defines the code-signing validation policy (action to be taken if deployment validation checks fail).

" }, "CreateEventSourceMapping":{ "name":"CreateEventSourceMapping", @@ -99,7 +99,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and triggers the function.

For details about how to configure different event sources, see the following topics.

The following error handling options are only available for stream sources (DynamoDB and Kinesis):

  • BisectBatchOnFunctionError - If the function returns an error, split the batch in two and retry.

  • DestinationConfig - Send discarded records to an Amazon SQS queue or Amazon SNS topic.

  • MaximumRecordAgeInSeconds - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • ParallelizationFactor - Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

" + "documentation":"

Creates a mapping between an event source and an Lambda function. Lambda reads items from the event source and invokes the function.

For details about how to configure different event sources, see the following topics.

The following error handling options are available only for stream sources (DynamoDB and Kinesis):

  • BisectBatchOnFunctionError - If the function returns an error, split the batch in two and retry.

  • DestinationConfig - Send discarded records to an Amazon SQS queue or Amazon SNS topic.

  • MaximumRecordAgeInSeconds - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • ParallelizationFactor - Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

" }, "CreateFunction":{ "name":"CreateFunction", @@ -121,7 +121,7 @@ {"shape":"InvalidCodeSignatureException"}, {"shape":"CodeSigningConfigNotFoundException"} ], - "documentation":"

Creates a Lambda function. To create a function, you need a deployment package and an execution role. The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use Amazon Web Services services, such as Amazon CloudWatch Logs for log streaming and X-Ray for request tracing.

You set the package type to Image if the deployment package is a container image. For a container image, the code property must include the URI of a container image in the Amazon ECR registry. You do not need to specify the handler and runtime properties.

You set the package type to Zip if the deployment package is a .zip file archive. For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. The code in the deployment package must be compatible with the target instruction set architecture of the function (x86-64 or arm64). If you do not specify the architecture, the default value is x86-64.

When you create a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute or so. During this time, you can't invoke or modify the function. The State, StateReason, and StateReasonCode fields in the response from GetFunctionConfiguration indicate when the function is ready to invoke. For more information, see Function States.

A function has an unpublished version, and can have published versions and aliases. The unpublished version changes when you update your function's code and configuration. A published version is a snapshot of your function code and configuration that can't be changed. An alias is a named resource that maps to a version, and can be changed to map to a different version. Use the Publish parameter to create version 1 of your function from its initial configuration.

The other parameters let you configure version-specific and function-level settings. You can modify version-specific settings later with UpdateFunctionConfiguration. Function-level settings apply to both the unpublished and published versions of the function, and include tags (TagResource) and per-function concurrency limits (PutFunctionConcurrency).

You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes set set of signing profiles, which define the trusted publishers for this function.

If another account or an Amazon Web Services service invokes your function, use AddPermission to grant permission by creating a resource-based IAM policy. You can grant permissions at the function level, on a version, or on an alias.

To invoke your function directly, use Invoke. To invoke your function in response to events in other Amazon Web Services services, create an event source mapping (CreateEventSourceMapping), or configure a function trigger in the other service. For more information, see Invoking Functions.

" + "documentation":"

Creates a Lambda function. To create a function, you need a deployment package and an execution role. The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use Amazon Web Services, such as Amazon CloudWatch Logs for log streaming and X-Ray for request tracing.

If the deployment package is a container image, then you set the package type to Image. For a container image, the code property must include the URI of a container image in the Amazon ECR registry. You do not need to specify the handler and runtime properties.

If the deployment package is a .zip file archive, then you set the package type to Zip. For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. The code in the deployment package must be compatible with the target instruction set architecture of the function (x86-64 or arm64). If you do not specify the architecture, then the default value is x86-64.

When you create a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute or so. During this time, you can't invoke or modify the function. The State, StateReason, and StateReasonCode fields in the response from GetFunctionConfiguration indicate when the function is ready to invoke. For more information, see Lambda function states.

A function has an unpublished version, and can have published versions and aliases. The unpublished version changes when you update your function's code and configuration. A published version is a snapshot of your function code and configuration that can't be changed. An alias is a named resource that maps to a version, and can be changed to map to a different version. Use the Publish parameter to create version 1 of your function from its initial configuration.

The other parameters let you configure version-specific and function-level settings. You can modify version-specific settings later with UpdateFunctionConfiguration. Function-level settings apply to both the unpublished and published versions of the function, and include tags (TagResource) and per-function concurrency limits (PutFunctionConcurrency).

You can use code signing if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes set of signing profiles, which define the trusted publishers for this function.

If another Amazon Web Services account or an Amazon Web Service invokes your function, use AddPermission to grant permission by creating a resource-based Identity and Access Management (IAM) policy. You can grant permissions at the function level, on a version, or on an alias.

To invoke your function directly, use Invoke. To invoke your function in response to events in other Amazon Web Services, create an event source mapping (CreateEventSourceMapping), or configure a function trigger in the other service. For more information, see Invoking Lambda functions.

" }, "CreateFunctionUrlConfig":{ "name":"CreateFunctionUrlConfig", @@ -207,7 +207,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Deletes a Lambda function. To delete a specific function version, use the Qualifier parameter. Otherwise, all versions and aliases are deleted.

To delete Lambda event source mappings that invoke a function, use DeleteEventSourceMapping. For Amazon Web Services services and resources that invoke your function directly, delete the trigger in the service where you originally configured it.

" + "documentation":"

Deletes a Lambda function. To delete a specific function version, use the Qualifier parameter. Otherwise, all versions and aliases are deleted.

To delete Lambda event source mappings that invoke a function, use DeleteEventSourceMapping. For Amazon Web Services and resources that invoke your function directly, delete the trigger in the service where you originally configured it.

" }, "DeleteFunctionCodeSigningConfig":{ "name":"DeleteFunctionCodeSigningConfig", @@ -584,6 +584,9 @@ {"shape":"EFSMountFailureException"}, {"shape":"EFSMountTimeoutException"}, {"shape":"EFSIOException"}, + {"shape":"SnapStartException"}, + {"shape":"SnapStartTimeoutException"}, + {"shape":"SnapStartNotReadyException"}, {"shape":"EC2ThrottledException"}, {"shape":"EC2AccessDeniedException"}, {"shape":"InvalidSubnetIDException"}, @@ -597,7 +600,7 @@ {"shape":"ResourceConflictException"}, {"shape":"ResourceNotReadyException"} ], - "documentation":"

Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. To invoke a function asynchronously, set InvocationType to Event.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Retry Behavior.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, limit errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if executing the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might be disconnected during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action.

" + "documentation":"

Invokes a Lambda function. You can invoke a function synchronously (and wait for the response), or asynchronously. To invoke a function asynchronously, set InvocationType to Event.

For synchronous invocation, details about the function response, including errors, are included in the response body and headers. For either invocation type, you can find more information in the execution log and trace.

When an error occurs, your function may be invoked multiple times. Retry behavior varies by error type, client, event source, and invocation type. For example, if you invoke a function asynchronously and it returns an error, Lambda executes the function up to two more times. For more information, see Error handling and automatic retries in Lambda.

For asynchronous invocation, Lambda adds events to a queue before sending them to your function. If your function does not have enough capacity to keep up with the queue, events may be lost. Occasionally, your function may receive the same event multiple times, even if no error occurs. To retain events that were not processed, configure your function with a dead-letter queue.

The status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your function from executing, such as permissions errors, quota errors, or issues with your function's code and configuration. For example, Lambda returns TooManyRequestsException if running the function would cause you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded) or function level (ReservedFunctionConcurrentInvocationLimitExceeded).

For functions with a long timeout, your client might disconnect during synchronous invocation while it waits for a response. Configure your HTTP client, SDK, firewall, proxy, or operating system to allow for long connections with timeout or keep-alive settings.

This operation requires permission for the lambda:InvokeFunction action. For details on how to set up permissions for cross-account invocations, see Granting function access to other accounts.

" }, "InvokeAsync":{ "name":"InvokeAsync", @@ -665,7 +668,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Lists event source mappings. Specify an EventSourceArn to only show event source mappings for a single event source.

" + "documentation":"

Lists event source mappings. Specify an EventSourceArn to show only event source mappings for a single event source.

" }, "ListFunctionEventInvokeConfigs":{ "name":"ListFunctionEventInvokeConfigs", @@ -715,7 +718,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"InvalidParameterValueException"} ], - "documentation":"

Returns a list of Lambda functions, with the version-specific configuration of each. Lambda returns up to 50 functions per call.

Set FunctionVersion to ALL to include all published versions of each function in addition to the unpublished version.

The ListFunctions action returns a subset of the FunctionConfiguration fields. To get the additional fields (State, StateReasonCode, StateReason, LastUpdateStatus, LastUpdateStatusReason, LastUpdateStatusReasonCode) for a function or version, use GetFunction.

" + "documentation":"

Returns a list of Lambda functions, with the version-specific configuration of each. Lambda returns up to 50 functions per call.

Set FunctionVersion to ALL to include all published versions of each function in addition to the unpublished version.

The ListFunctions operation returns a subset of the FunctionConfiguration fields. To get the additional fields (State, StateReasonCode, StateReason, LastUpdateStatus, LastUpdateStatusReason, LastUpdateStatusReasonCode) for a function or version, use GetFunction.

" }, "ListFunctionsByCodeSigningConfig":{ "name":"ListFunctionsByCodeSigningConfig", @@ -889,7 +892,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"ResourceConflictException"} ], - "documentation":"

Sets the maximum number of simultaneous executions for a function, and reserves capacity for that concurrency level.

Concurrency settings apply to the function as a whole, including all published versions and the unpublished version. Reserving concurrency both ensures that your function has capacity to process the specified number of events simultaneously, and prevents it from scaling beyond that level. Use GetFunction to see the current setting for a function.

Use GetAccountSettings to see your Regional concurrency limit. You can reserve concurrency for as many functions as you like, as long as you leave at least 100 simultaneous executions unreserved for functions that aren't configured with a per-function limit. For more information, see Managing Concurrency.

" + "documentation":"

Sets the maximum number of simultaneous executions for a function, and reserves capacity for that concurrency level.

Concurrency settings apply to the function as a whole, including all published versions and the unpublished version. Reserving concurrency both ensures that your function has capacity to process the specified number of events simultaneously, and prevents it from scaling beyond that level. Use GetFunction to see the current setting for a function.

Use GetAccountSettings to see your Regional concurrency limit. You can reserve concurrency for as many functions as you like, as long as you leave at least 100 simultaneous executions unreserved for functions that aren't configured with a per-function limit. For more information, see Lambda function scaling.

" }, "PutFunctionEventInvokeConfig":{ "name":"PutFunctionEventInvokeConfig", @@ -959,7 +962,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"PreconditionFailedException"} ], - "documentation":"

Revokes function-use permission from an Amazon Web Services service or another account. You can get the ID of the statement from the output of GetPolicy.

" + "documentation":"

Revokes function-use permission from an Amazon Web Service or another Amazon Web Services account. You can get the ID of the statement from the output of GetPolicy.

" }, "TagResource":{ "name":"TagResource", @@ -1047,7 +1050,7 @@ {"shape":"ResourceConflictException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

Updates an event source mapping. You can change the function that Lambda invokes, or pause invocation and resume later from the same location.

For details about how to configure different event sources, see the following topics.

The following error handling options are only available for stream sources (DynamoDB and Kinesis):

  • BisectBatchOnFunctionError - If the function returns an error, split the batch in two and retry.

  • DestinationConfig - Send discarded records to an Amazon SQS queue or Amazon SNS topic.

  • MaximumRecordAgeInSeconds - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • ParallelizationFactor - Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

" + "documentation":"

Updates an event source mapping. You can change the function that Lambda invokes, or pause invocation and resume later from the same location.

For details about how to configure different event sources, see the following topics.

The following error handling options are available only for stream sources (DynamoDB and Kinesis):

  • BisectBatchOnFunctionError - If the function returns an error, split the batch in two and retry.

  • DestinationConfig - Send discarded records to an Amazon SQS queue or Amazon SNS topic.

  • MaximumRecordAgeInSeconds - Discard records older than the specified age. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires

  • MaximumRetryAttempts - Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

  • ParallelizationFactor - Process multiple batches from each shard concurrently.

For information about which configuration parameters apply to each event source, see the following topics.

" }, "UpdateFunctionCode":{ "name":"UpdateFunctionCode", @@ -1070,7 +1073,7 @@ {"shape":"InvalidCodeSignatureException"}, {"shape":"CodeSigningConfigNotFoundException"} ], - "documentation":"

Updates a Lambda function's code. If code signing is enabled for the function, the code package must be signed by a trusted publisher. For more information, see Configuring code signing.

If the function's package type is Image, you must specify the code package in ImageUri as the URI of a container image in the Amazon ECR registry.

If the function's package type is Zip, you must specify the deployment package as a .zip file archive. Enter the Amazon S3 bucket and key of the code .zip file location. You can also provide the function code inline using the ZipFile field.

The code in the deployment package must be compatible with the target instruction set architecture of the function (x86-64 or arm64).

The function's code is locked when you publish a version. You can't modify the code of a published version, only the unpublished version.

For a function defined as a container image, Lambda resolves the image tag to an image digest. In Amazon ECR, if you update the image tag to a new image, Lambda does not automatically update the function.

" + "documentation":"

Updates a Lambda function's code. If code signing is enabled for the function, the code package must be signed by a trusted publisher. For more information, see Configuring code signing for Lambda.

If the function's package type is Image, then you must specify the code package in ImageUri as the URI of a container image in the Amazon ECR registry.

If the function's package type is Zip, then you must specify the deployment package as a .zip file archive. Enter the Amazon S3 bucket and key of the code .zip file location. You can also provide the function code inline using the ZipFile field.

The code in the deployment package must be compatible with the target instruction set architecture of the function (x86-64 or arm64).

The function's code is locked when you publish a version. You can't modify the code of a published version, only the unpublished version.

For a function defined as a container image, Lambda resolves the image tag to an image digest. In Amazon ECR, if you update the image tag to a new image, Lambda does not automatically update the function.

" }, "UpdateFunctionConfiguration":{ "name":"UpdateFunctionConfiguration", @@ -1092,7 +1095,7 @@ {"shape":"InvalidCodeSignatureException"}, {"shape":"CodeSigningConfigNotFoundException"} ], - "documentation":"

Modify the version-specific settings of a Lambda function.

When you update a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute. During this time, you can't modify the function, but you can still invoke it. The LastUpdateStatus, LastUpdateStatusReason, and LastUpdateStatusReasonCode fields in the response from GetFunctionConfiguration indicate when the update is complete and the function is processing events with the new configuration. For more information, see Function States.

These settings can vary between versions of a function and are locked when you publish a version. You can't modify the configuration of a published version, only the unpublished version.

To configure function concurrency, use PutFunctionConcurrency. To grant invoke permissions to an account or Amazon Web Services service, use AddPermission.

" + "documentation":"

Modify the version-specific settings of a Lambda function.

When you update a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute. During this time, you can't modify the function, but you can still invoke it. The LastUpdateStatus, LastUpdateStatusReason, and LastUpdateStatusReasonCode fields in the response from GetFunctionConfiguration indicate when the update is complete and the function is processing events with the new configuration. For more information, see Lambda function states.

These settings can vary between versions of a function and are locked when you publish a version. You can't modify the configuration of a published version, only the unpublished version.

To configure function concurrency, use PutFunctionConcurrency. To grant invoke permissions to an Amazon Web Services account or Amazon Web Service, use AddPermission.

" }, "UpdateFunctionEventInvokeConfig":{ "name":"UpdateFunctionEventInvokeConfig", @@ -1246,7 +1249,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function name - my-function (name-only), my-function:v1 (with alias).

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function namemy-function (name-only), my-function:v1 (with alias).

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -1260,19 +1263,19 @@ }, "Principal":{ "shape":"Principal", - "documentation":"

The Amazon Web Services service or account that invokes the function. If you specify a service, use SourceArn or SourceAccount to limit who can invoke the function through that service.

" + "documentation":"

The Amazon Web Service or Amazon Web Services account that invokes the function. If you specify a service, use SourceArn or SourceAccount to limit who can invoke the function through that service.

" }, "SourceArn":{ "shape":"Arn", - "documentation":"

For Amazon Web Services services, the ARN of the Amazon Web Services resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic.

Note that Lambda configures the comparison using the StringLike operator.

" + "documentation":"

For Amazon Web Services, the ARN of the Amazon Web Services resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic.

Note that Lambda configures the comparison using the StringLike operator.

" }, "SourceAccount":{ "shape":"SourceOwner", - "documentation":"

For Amazon S3, the ID of the account that owns the resource. Use this together with SourceArn to ensure that the resource is owned by the specified account. It is possible for an Amazon S3 bucket to be deleted by its owner and recreated by another account.

" + "documentation":"

For Amazon Web Service, the ID of the Amazon Web Services account that owns the resource. Use this together with SourceArn to ensure that the specified account owns the resource. It is possible for an Amazon S3 bucket to be deleted by its owner and recreated by another account.

" }, "EventSourceToken":{ "shape":"EventSourceToken", - "documentation":"

For Alexa Smart Home functions, a token that must be supplied by the invoker.

" + "documentation":"

For Alexa Smart Home functions, a token that the invoker must supply.

" }, "Qualifier":{ "shape":"Qualifier", @@ -1282,7 +1285,7 @@ }, "RevisionId":{ "shape":"String", - "documentation":"

Only update the policy if the revision ID matches the ID that's specified. Use this option to avoid modifying a policy that has changed since you last read it.

" + "documentation":"

Update the policy only if the revision ID matches the ID that's specified. Use this option to avoid modifying a policy that has changed since you last read it.

" }, "PrincipalOrgID":{ "shape":"PrincipalOrgID", @@ -1290,7 +1293,7 @@ }, "FunctionUrlAuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" } } }, @@ -1386,6 +1389,16 @@ }, "documentation":"

List of signing profiles that can sign a code package.

" }, + "AmazonManagedKafkaEventSourceConfig":{ + "type":"structure", + "members":{ + "ConsumerGroupId":{ + "shape":"URI", + "documentation":"

The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see Customizable consumer group ID.

" + } + }, + "documentation":"

Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.

" + }, "Architecture":{ "type":"string", "enum":[ @@ -1504,7 +1517,7 @@ }, "message":{"shape":"String"} }, - "documentation":"

You have exceeded your maximum total code size per account. Learn more

", + "documentation":"

Your Amazon Web Services account has exceeded its maximum total code size. For more information, see Lambda quotas.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -1514,7 +1527,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

The code signature failed one or more of the validation checks for signature mismatch or expiry, and the code signing policy is set to ENFORCE. Lambda blocks the deployment.

", + "documentation":"

The code signature failed one or more of the validation checks for signature mismatch or expiry, and the code signing policy is set to ENFORCE. Lambda blocks the deployment.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -1533,7 +1546,7 @@ "members":{ "ReservedConcurrentExecutions":{ "shape":"ReservedConcurrentExecutions", - "documentation":"

The number of concurrent executions that are reserved for this function. For more information, see Managing Concurrency.

" + "documentation":"

The number of concurrent executions that are reserved for this function. For more information, see Managing Lambda reserved concurrency.

" } } }, @@ -1633,7 +1646,7 @@ "members":{ "EventSourceArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the event source.

  • Amazon Kinesis - The ARN of the data stream or a stream consumer.

  • Amazon DynamoDB Streams - The ARN of the stream.

  • Amazon Simple Queue Service - The ARN of the queue.

  • Amazon Managed Streaming for Apache Kafka - The ARN of the cluster.

" + "documentation":"

The Amazon Resource Name (ARN) of the event source.

  • Amazon Kinesis - The ARN of the data stream or a stream consumer.

  • Amazon DynamoDB Streams - The ARN of the stream.

  • Amazon Simple Queue Service - The ARN of the queue.

  • Amazon Managed Streaming for Apache Kafka - The ARN of the cluster.

  • Amazon MQ - The ARN of the broker.

" }, "FunctionName":{ "shape":"FunctionName", @@ -1645,15 +1658,15 @@ }, "BatchSize":{ "shape":"BatchSize", - "documentation":"

The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).

  • Amazon Kinesis - Default 100. Max 10,000.

  • Amazon DynamoDB Streams - Default 100. Max 10,000.

  • Amazon Simple Queue Service - Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

  • Amazon Managed Streaming for Apache Kafka - Default 100. Max 10,000.

  • Self-Managed Apache Kafka - Default 100. Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) - Default 100. Max 10,000.

" + "documentation":"

The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).

  • Amazon Kinesis - Default 100. Max 10,000.

  • Amazon DynamoDB Streams - Default 100. Max 10,000.

  • Amazon Simple Queue Service - Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

  • Amazon Managed Streaming for Apache Kafka - Default 100. Max 10,000.

  • Self-managed Apache Kafka - Default 100. Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) - Default 100. Max 10,000.

" }, "FilterCriteria":{ "shape":"FilterCriteria", - "documentation":"

(Streams and Amazon SQS) An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see Lambda event filtering.

" + "documentation":"

An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see Lambda event filtering.

" }, "MaximumBatchingWindowInSeconds":{ "shape":"MaximumBatchingWindowInSeconds", - "documentation":"

(Streams and Amazon SQS standard queues) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.

Default: 0

Related setting: When you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" + "documentation":"

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For streams and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, and Amazon MQ event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For streams and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" }, "ParallelizationFactor":{ "shape":"ParallelizationFactor", @@ -1661,7 +1674,7 @@ }, "StartingPosition":{ "shape":"EventSourcePosition", - "documentation":"

The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. AT_TIMESTAMP is only supported for Amazon Kinesis streams.

" + "documentation":"

The position in a stream from which to start reading. Required for Amazon Kinesis, Amazon DynamoDB, and Amazon MSK Streams sources. AT_TIMESTAMP is supported only for Amazon Kinesis streams.

" }, "StartingPositionTimestamp":{ "shape":"Date", @@ -1681,11 +1694,11 @@ }, "MaximumRetryAttempts":{ "shape":"MaximumRetryAttemptsEventSourceMapping", - "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records will be retried until the record expires.

" + "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

" }, "TumblingWindowInSeconds":{ "shape":"TumblingWindowInSeconds", - "documentation":"

(Streams only) The duration in seconds of a processing window. The range is between 1 second up to 900 seconds.

" + "documentation":"

(Streams only) The duration in seconds of a processing window. The range is between 1 second and 900 seconds.

" }, "Topics":{ "shape":"Topics", @@ -1701,11 +1714,19 @@ }, "SelfManagedEventSource":{ "shape":"SelfManagedEventSource", - "documentation":"

The Self-Managed Apache Kafka cluster to send records.

" + "documentation":"

The self-managed Apache Kafka cluster to receive records from.

" }, "FunctionResponseTypes":{ "shape":"FunctionResponseTypeList", "documentation":"

(Streams and Amazon SQS) A list of current response type enums applied to the event source mapping.

" + }, + "AmazonManagedKafkaEventSourceConfig":{ + "shape":"AmazonManagedKafkaEventSourceConfig", + "documentation":"

Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.

" + }, + "SelfManagedKafkaEventSourceConfig":{ + "shape":"SelfManagedKafkaEventSourceConfig", + "documentation":"

Specific configuration settings for a self-managed Apache Kafka event source.

" } } }, @@ -1719,7 +1740,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

" + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

" }, "Runtime":{ "shape":"Runtime", @@ -1731,7 +1752,7 @@ }, "Handler":{ "shape":"Handler", - "documentation":"

The name of the method within your code that Lambda calls to execute your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see Programming Model.

" + "documentation":"

The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see Lambda programming model.

" }, "Code":{ "shape":"FunctionCode", @@ -1743,11 +1764,11 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For additional information, see Lambda execution environment.

" + "documentation":"

The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see Lambda execution environment.

" }, "MemorySize":{ "shape":"MemorySize", - "documentation":"

The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB.

" + "documentation":"

The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB.

" }, "Publish":{ "shape":"Boolean", @@ -1755,15 +1776,15 @@ }, "VpcConfig":{ "shape":"VpcConfig", - "documentation":"

For network connectivity to Amazon Web Services resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can only access resources and the internet through that VPC. For more information, see VPC Settings.

" + "documentation":"

For network connectivity to Amazon Web Services resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see Configuring a Lambda function to access resources in a VPC.

" }, "PackageType":{ "shape":"PackageType", - "documentation":"

The type of deployment package. Set to Image for container image and set Zip for ZIP archive.

" + "documentation":"

The type of deployment package. Set to Image for container image and set to Zip for .zip file archive.

" }, "DeadLetterConfig":{ "shape":"DeadLetterConfig", - "documentation":"

A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see Dead Letter Queues.

" + "documentation":"

A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see Dead-letter queues.

" }, "Environment":{ "shape":"Environment", @@ -1771,7 +1792,7 @@ }, "KMSKeyArn":{ "shape":"KMSKeyArn", - "documentation":"

The ARN of the Amazon Web Services Key Management Service (KMS) key that's used to encrypt your function's environment variables. If it's not provided, Lambda uses a default service key.

" + "documentation":"

The ARN of the Key Management Service (KMS) key that's used to encrypt your function's environment variables. If it's not provided, Lambda uses a default service key.

" }, "TracingConfig":{ "shape":"TracingConfig", @@ -1803,7 +1824,11 @@ }, "EphemeralStorage":{ "shape":"EphemeralStorage", - "documentation":"

The size of the function’s /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10240 MB.

" + "documentation":"

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB.

" + }, + "SnapStart":{ + "shape":"SnapStart", + "documentation":"

The function's SnapStart setting.

" } } }, @@ -1816,7 +1841,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -1828,7 +1853,7 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", @@ -1855,7 +1880,7 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", @@ -1946,7 +1971,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" } @@ -1976,13 +2001,13 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function or version.

Name formats

  • Function name - my-function (name-only), my-function:1 (with version).

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function or version.

Name formats

  • Function namemy-function (name-only), my-function:1 (with version).

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, "Qualifier":{ "shape":"Qualifier", - "documentation":"

Specify a version to delete. You can't delete a version that's referenced by an alias.

", + "documentation":"

Specify a version to delete. You can't delete a version that an alias references.

", "location":"querystring", "locationName":"Qualifier" } @@ -1994,7 +2019,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -2036,7 +2061,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -2089,7 +2114,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

Lambda was throttled by Amazon EC2 during Lambda function initialization using the execution role provided for the Lambda function.

", + "documentation":"

Amazon EC2 throttled Lambda during Lambda function initialization using the execution role provided for the function.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -2100,7 +2125,7 @@ "Message":{"shape":"String"}, "EC2ErrorCode":{"shape":"String"} }, - "documentation":"

Lambda received an unexpected EC2 client exception while setting up for the Lambda function.

", + "documentation":"

Lambda received an unexpected Amazon EC2 client exception while setting up for the Lambda function.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -2120,7 +2145,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

The function couldn't make a network connection to the configured file system.

", + "documentation":"

The Lambda function couldn't make a network connection to the configured file system.

", "error":{"httpStatusCode":408}, "exception":true }, @@ -2130,7 +2155,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

The function couldn't mount the configured file system due to a permission or configuration issue.

", + "documentation":"

The Lambda function couldn't mount the configured file system due to a permission or configuration issue.

", "error":{"httpStatusCode":403}, "exception":true }, @@ -2140,7 +2165,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

The function was able to make a network connection to the configured file system, but the mount operation timed out.

", + "documentation":"

The Lambda function made a network connection to the configured file system, but the mount operation timed out.

", "error":{"httpStatusCode":408}, "exception":true }, @@ -2150,7 +2175,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

Lambda was not able to create an elastic network interface in the VPC, specified as part of Lambda function configuration, because the limit for network interfaces has been reached.

", + "documentation":"

Lambda couldn't create an elastic network interface in the VPC, specified as part of Lambda function configuration, because the limit for network interfaces has been reached. For more information, see Lambda quotas.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -2186,7 +2211,7 @@ "documentation":"

Environment variable key-value pairs. For more information, see Using Lambda environment variables.

" } }, - "documentation":"

A function's environment variable settings. You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.

" + "documentation":"

A function's environment variable settings. You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.

" }, "EnvironmentError":{ "type":"structure", @@ -2207,14 +2232,14 @@ "members":{ "Variables":{ "shape":"EnvironmentVariables", - "documentation":"

Environment variable key-value pairs.

" + "documentation":"

Environment variable key-value pairs. Omitted from CloudTrail logs.

" }, "Error":{ "shape":"EnvironmentError", "documentation":"

Error messages for environment variables that couldn't be applied.

" } }, - "documentation":"

The results of an operation to update or read environment variables. If the operation is successful, the response contains the environment variables. If it failed, the response contains details about the error.

" + "documentation":"

The results of an operation to update or read environment variables. If the operation succeeds, the response contains the environment variables. If it fails, the response contains details about the error.

" }, "EnvironmentVariableName":{ "type":"string", @@ -2237,10 +2262,10 @@ "members":{ "Size":{ "shape":"EphemeralStorageSize", - "documentation":"

The size of the function’s /tmp directory.

" + "documentation":"

The size of the function's /tmp directory.

" } }, - "documentation":"

The size of the function’s /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10240 MB.

" + "documentation":"

The size of the function's /tmp directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.

" }, "EphemeralStorageSize":{ "type":"integer", @@ -2268,7 +2293,7 @@ }, "MaximumBatchingWindowInSeconds":{ "shape":"MaximumBatchingWindowInSeconds", - "documentation":"

(Streams and Amazon SQS standard queues) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.

Default: 0

Related setting: When you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" + "documentation":"

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For streams and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, and Amazon MQ event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For streams and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" }, "ParallelizationFactor":{ "shape":"ParallelizationFactor", @@ -2280,7 +2305,7 @@ }, "FilterCriteria":{ "shape":"FilterCriteria", - "documentation":"

(Streams and Amazon SQS) An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see Lambda event filtering.

" + "documentation":"

An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see Lambda event filtering.

" }, "FunctionArn":{ "shape":"FunctionArn", @@ -2341,6 +2366,14 @@ "FunctionResponseTypes":{ "shape":"FunctionResponseTypeList", "documentation":"

(Streams and Amazon SQS) A list of current response type enums applied to the event source mapping.

" + }, + "AmazonManagedKafkaEventSourceConfig":{ + "shape":"AmazonManagedKafkaEventSourceConfig", + "documentation":"

Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.

" + }, + "SelfManagedKafkaEventSourceConfig":{ + "shape":"SelfManagedKafkaEventSourceConfig", + "documentation":"

Specific configuration settings for a self-managed Apache Kafka event source.

" } }, "documentation":"

A mapping between an Amazon Web Services resource and a Lambda function. For details, see CreateEventSourceMapping.

" @@ -2428,7 +2461,7 @@ "members":{ "ZipFile":{ "shape":"Blob", - "documentation":"

The base64-encoded contents of the deployment package. Amazon Web Services SDK and Amazon Web Services CLI clients handle the encoding for you.

" + "documentation":"

The base64-encoded contents of the deployment package. Amazon Web Services SDK and CLI clients handle the encoding for you.

" }, "S3Bucket":{ "shape":"S3Bucket", @@ -2447,7 +2480,7 @@ "documentation":"

URI of a container image in the Amazon ECR registry.

" } }, - "documentation":"

The code for the Lambda function. You can specify either an object in Amazon S3, upload a .zip file archive deployment package directly, or specify the URI of a container image.

" + "documentation":"

The code for the Lambda function. You can either specify an object in Amazon S3, upload a .zip file archive deployment package directly, or specify the URI of a container image.

" }, "FunctionCodeLocation":{ "type":"structure", @@ -2492,7 +2525,7 @@ }, "Handler":{ "shape":"Handler", - "documentation":"

The function that Lambda calls to begin executing your function.

" + "documentation":"

The function that Lambda calls to begin running your function.

" }, "CodeSize":{ "shape":"Long", @@ -2508,7 +2541,7 @@ }, "MemorySize":{ "shape":"MemorySize", - "documentation":"

The amount of memory available to the function at runtime.

" + "documentation":"

The amount of memory available to the function at runtime.

" }, "LastModified":{ "shape":"Timestamp", @@ -2532,11 +2565,11 @@ }, "Environment":{ "shape":"EnvironmentResponse", - "documentation":"

The function's environment variables.

" + "documentation":"

The function's environment variables. Omitted from CloudTrail logs.

" }, "KMSKeyArn":{ "shape":"KMSKeyArn", - "documentation":"

The KMS key that's used to encrypt the function's environment variables. This key is only returned if you've configured a customer managed key.

" + "documentation":"

The KMS key that's used to encrypt the function's environment variables. This key is returned only if you've configured a customer managed key.

" }, "TracingConfig":{ "shape":"TracingConfigResponse", @@ -2552,7 +2585,7 @@ }, "Layers":{ "shape":"LayersReferenceList", - "documentation":"

The function's layers.

" + "documentation":"

The function's layers.

" }, "State":{ "shape":"State", @@ -2604,7 +2637,11 @@ }, "EphemeralStorage":{ "shape":"EphemeralStorage", - "documentation":"

The size of the function’s /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10240 MB.

" + "documentation":"

The size of the function’s /tmp directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.

" + }, + "SnapStart":{ + "shape":"SnapStartResponse", + "documentation":"

Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see Reducing startup time with Lambda SnapStart.

" } }, "documentation":"

Details about a function's configuration.

" @@ -2702,7 +2739,7 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" } }, "documentation":"

Details about a Lambda function URL.

" @@ -2829,7 +2866,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" } @@ -2850,7 +2887,7 @@ "members":{ "FunctionName":{ "shape":"NamespacedFunctionName", - "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function name - my-function (name-only), my-function:v1 (with alias).

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function namemy-function (name-only), my-function:v1 (with alias).

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -2886,7 +2923,7 @@ "members":{ "FunctionName":{ "shape":"NamespacedFunctionName", - "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function name - my-function (name-only), my-function:v1 (with alias).

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function namemy-function (name-only), my-function:v1 (with alias).

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -2925,7 +2962,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -2957,7 +2994,7 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", @@ -3087,7 +3124,7 @@ "members":{ "FunctionName":{ "shape":"NamespacedFunctionName", - "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function name - my-function (name-only), my-function:v1 (with alias).

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function namemy-function (name-only), my-function:v1 (with alias).

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -3121,7 +3158,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -3146,7 +3183,7 @@ }, "AllocatedProvisionedConcurrentExecutions":{ "shape":"NonNegativeInteger", - "documentation":"

The amount of provisioned concurrency allocated.

" + "documentation":"

The amount of provisioned concurrency allocated. When a weighted alias is used during linear and canary deployments, this value fluctuates depending on the amount of concurrency that is provisioned for the function versions.

" }, "Status":{ "shape":"ProvisionedConcurrencyStatusEnum", @@ -3187,14 +3224,14 @@ }, "Command":{ "shape":"StringList", - "documentation":"

Specifies parameters that you want to pass in with ENTRYPOINT.

" + "documentation":"

Specifies parameters that you want to pass in with ENTRYPOINT.

" }, "WorkingDirectory":{ "shape":"WorkingDirectory", "documentation":"

Specifies the working directory.

" } }, - "documentation":"

Configuration values that override the container image Dockerfile settings. See Container settings.

" + "documentation":"

Configuration values that override the container image Dockerfile settings. For more information, see Container image settings.

" }, "ImageConfigError":{ "type":"structure", @@ -3208,7 +3245,7 @@ "documentation":"

Error message.

" } }, - "documentation":"

Error response to GetFunctionConfiguration.

" + "documentation":"

Error response to GetFunctionConfiguration.

" }, "ImageConfigResponse":{ "type":"structure", @@ -3219,10 +3256,10 @@ }, "Error":{ "shape":"ImageConfigError", - "documentation":"

Error response to GetFunctionConfiguration.

" + "documentation":"

Error response to GetFunctionConfiguration.

" } }, - "documentation":"

Response to GetFunctionConfiguration request.

" + "documentation":"

Response to a GetFunctionConfiguration request.

" }, "Integer":{"type":"integer"}, "InvalidCodeSignatureException":{ @@ -3231,7 +3268,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

The code signature failed the integrity check. Lambda always blocks deployment if the integrity check fails, even if code signing policy is set to WARN.

", + "documentation":"

The code signature failed the integrity check. If the integrity check fails, then Lambda blocks deployment, even if the code signing policy is set to WARN.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -3247,7 +3284,7 @@ "documentation":"

The exception message.

" } }, - "documentation":"

One of the parameters in the request is invalid.

", + "documentation":"

One of the parameters in the request is not valid.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -3283,7 +3320,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

The Security Group ID provided in the Lambda function VPC configuration is invalid.

", + "documentation":"

The security group ID provided in the Lambda function VPC configuration is not valid.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -3293,7 +3330,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

The Subnet ID provided in the Lambda function VPC configuration is invalid.

", + "documentation":"

The subnet ID provided in the Lambda function VPC configuration is not valid.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -3313,13 +3350,13 @@ "members":{ "FunctionName":{ "shape":"NamespacedFunctionName", - "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function name - my-function (name-only), my-function:v1 (with alias).

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function namemy-function (name-only), my-function:v1 (with alias).

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, "InvocationType":{ "shape":"InvocationType", - "documentation":"

Choose from the following options.

  • RequestResponse (default) - Invoke the function synchronously. Keep the connection open until the function returns a response or times out. The API response includes the function response and additional data.

  • Event - Invoke the function asynchronously. Send events that fail multiple times to the function's dead-letter queue (if it's configured). The API response only includes a status code.

  • DryRun - Validate parameter values and verify that the user or role has permission to invoke the function.

", + "documentation":"

Choose from the following options.

  • RequestResponse (default) – Invoke the function synchronously. Keep the connection open until the function returns a response or times out. The API response includes the function response and additional data.

  • Event – Invoke the function asynchronously. Send events that fail multiple times to the function's dead-letter queue (if one is configured). The API response only includes a status code.

  • DryRun – Validate parameter values and verify that the user or role has permission to invoke the function.

", "location":"header", "locationName":"X-Amz-Invocation-Type" }, @@ -3331,13 +3368,13 @@ }, "ClientContext":{ "shape":"String", - "documentation":"

Up to 3583 bytes of base64-encoded data about the invoking client to pass to the function in the context object.

", + "documentation":"

Up to 3,583 bytes of base64-encoded data about the invoking client to pass to the function in the context object.

", "location":"header", "locationName":"X-Amz-Client-Context" }, "Payload":{ "shape":"Blob", - "documentation":"

The JSON that you want to provide to your Lambda function as input.

You can enter the JSON directly. For example, --payload '{ \"key\": \"value\" }'. You can also specify a file path. For example, --payload file://payload.json.

" + "documentation":"

The JSON that you want to provide to your Lambda function as input.

You can enter the JSON directly. For example, --payload '{ \"key\": \"value\" }'. You can also specify a file path. For example, --payload file://payload.json.

" }, "Qualifier":{ "shape":"Qualifier", @@ -3364,7 +3401,7 @@ }, "LogResult":{ "shape":"String", - "documentation":"

The last 4 KB of the execution log, which is base64 encoded.

", + "documentation":"

The last 4 KB of the execution log, which is base64-encoded.

", "location":"header", "locationName":"X-Amz-Log-Result" }, @@ -3398,7 +3435,7 @@ "members":{ "FunctionName":{ "shape":"NamespacedFunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -3419,7 +3456,7 @@ "location":"statusCode" } }, - "documentation":"

A success response (202 Accepted) indicates that the request is queued for invocation.

", + "documentation":"

A success response (202 Accepted) indicates that the request is queued for invocation.

", "deprecated":true }, "KMSAccessDeniedException":{ @@ -3428,7 +3465,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

Lambda was unable to decrypt the environment variables because KMS access was denied. Check the Lambda function's KMS permissions.

", + "documentation":"

Lambda couldn't decrypt the environment variables because KMS access was denied. Check the Lambda function's KMS permissions.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -3438,7 +3475,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

Lambda was unable to decrypt the environment variables because the KMS key used is disabled. Check the Lambda function's KMS key settings.

", + "documentation":"

Lambda couldn't decrypt the environment variables because the KMS key used is disabled. Check the Lambda function's KMS key settings.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -3448,7 +3485,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

Lambda was unable to decrypt the environment variables because the KMS key used is in an invalid state for Decrypt. Check the function's KMS key settings.

", + "documentation":"

Lambda couldn't decrypt the environment variables because the state of the KMS key used is not valid for Decrypt. Check the function's KMS key settings.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -3462,7 +3499,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

Lambda was unable to decrypt the environment variables because the KMS key was not found. Check the function's KMS key settings.

", + "documentation":"

Lambda couldn't decrypt the environment variables because the KMS key was not found. Check the function's KMS key settings.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -3487,7 +3524,18 @@ "InvalidSecurityGroup", "ImageDeleted", "ImageAccessDenied", - "InvalidImage" + "InvalidImage", + "KMSKeyAccessDenied", + "KMSKeyNotFound", + "InvalidStateKMSKey", + "DisabledKMSKey", + "EFSIOError", + "EFSMountConnectivityError", + "EFSMountFailure", + "EFSMountTimeout", + "InvalidRuntime", + "InvalidZipFileException", + "FunctionError" ] }, "Layer":{ @@ -3738,7 +3786,7 @@ "members":{ "EventSourceArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the event source.

  • Amazon Kinesis - The ARN of the data stream or a stream consumer.

  • Amazon DynamoDB Streams - The ARN of the stream.

  • Amazon Simple Queue Service - The ARN of the queue.

  • Amazon Managed Streaming for Apache Kafka - The ARN of the cluster.

", + "documentation":"

The Amazon Resource Name (ARN) of the event source.

  • Amazon Kinesis - The ARN of the data stream or a stream consumer.

  • Amazon DynamoDB Streams - The ARN of the stream.

  • Amazon Simple Queue Service - The ARN of the queue.

  • Amazon Managed Streaming for Apache Kafka - The ARN of the cluster.

  • Amazon MQ - The ARN of the broker.

", "location":"querystring", "locationName":"EventSourceArn" }, @@ -3818,7 +3866,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -3892,7 +3940,7 @@ "members":{ "MasterRegion":{ "shape":"MasterRegion", - "documentation":"

For Lambda@Edge functions, the Amazon Web Services Region of the master function. For example, us-east-1 filters the list of functions to only include Lambda@Edge functions replicated from a master function in US East (N. Virginia). If specified, you must set FunctionVersion to ALL.

", + "documentation":"

For Lambda@Edge functions, the Amazon Web Services Region of the master function. For example, us-east-1 filters the list of functions to include only Lambda@Edge functions replicated from a master function in US East (N. Virginia). If specified, you must set FunctionVersion to ALL.

", "location":"querystring", "locationName":"MasterRegion" }, @@ -4027,7 +4075,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -4273,7 +4321,7 @@ "Type":{"shape":"String"}, "message":{"shape":"String"} }, - "documentation":"

The permissions policy for the resource is too large. Learn more

", + "documentation":"

The permissions policy for the resource is too large. For more information, see Lambda quotas.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -4293,7 +4341,7 @@ "documentation":"

The exception message.

" } }, - "documentation":"

The RevisionId provided does not match the latest RevisionId for the Lambda function or alias. Call the GetFunction or the GetAlias API to retrieve the latest RevisionId for your resource.

", + "documentation":"

The RevisionId provided does not match the latest RevisionId for the Lambda function or alias. Call the GetFunction or the GetAlias API operation to retrieve the latest RevisionId for your resource.

", "error":{"httpStatusCode":412}, "exception":true }, @@ -4328,7 +4376,7 @@ }, "AllocatedProvisionedConcurrentExecutions":{ "shape":"NonNegativeInteger", - "documentation":"

The amount of provisioned concurrency allocated.

" + "documentation":"

The amount of provisioned concurrency allocated. When a weighted alias is used during linear and canary deployments, this value fluctuates depending on the amount of concurrency that is provisioned for the function versions.

" }, "Status":{ "shape":"ProvisionedConcurrencyStatusEnum", @@ -4508,7 +4556,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -4558,7 +4606,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -4587,7 +4635,7 @@ }, "AllocatedProvisionedConcurrentExecutions":{ "shape":"NonNegativeInteger", - "documentation":"

The amount of provisioned concurrency allocated.

" + "documentation":"

The amount of provisioned concurrency allocated. When a weighted alias is used during linear and canary deployments, this value fluctuates depending on the amount of concurrency that is provisioned for the function versions.

" }, "Status":{ "shape":"ProvisionedConcurrencyStatusEnum", @@ -4664,7 +4712,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function name - my-function (name-only), my-function:v1 (with alias).

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function, version, or alias.

Name formats

  • Function namemy-function (name-only), my-function:v1 (with alias).

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -4682,7 +4730,7 @@ }, "RevisionId":{ "shape":"String", - "documentation":"

Only update the policy if the revision ID matches the ID that's specified. Use this option to avoid modifying a policy that has changed since you last read it.

", + "documentation":"

Update the policy only if the revision ID matches the ID that's specified. Use this option to avoid modifying a policy that has changed since you last read it.

", "location":"querystring", "locationName":"RevisionId" } @@ -4694,7 +4742,7 @@ "Type":{"shape":"String"}, "message":{"shape":"String"} }, - "documentation":"

The request payload exceeded the Invoke request body JSON input limit. For more information, see Limits.

", + "documentation":"

The request payload exceeded the Invoke request body JSON input quota. For more information, see Lambda quotas.

", "error":{"httpStatusCode":413}, "exception":true }, @@ -4728,7 +4776,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

The operation conflicts with the resource's availability. For example, you attempted to update an EventSource Mapping in CREATING, or tried to delete a EventSource mapping currently in the UPDATING state.

", + "documentation":"

The operation conflicts with the resource's availability. For example, you tried to update an event source mapping in the CREATING state, or you tried to delete an event source mapping currently UPDATING.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -4791,7 +4839,8 @@ "ruby2.5", "ruby2.7", "provided", - "provided.al2" + "provided.al2", + "nodejs18.x" ] }, "S3Bucket":{ @@ -4826,6 +4875,16 @@ }, "documentation":"

The self-managed Apache Kafka cluster for your event source.

" }, + "SelfManagedKafkaEventSourceConfig":{ + "type":"structure", + "members":{ + "ConsumerGroupId":{ + "shape":"URI", + "documentation":"

The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see Customizable consumer group ID.

" + } + }, + "documentation":"

Specific configuration settings for a self-managed Apache Kafka event source.

" + }, "SensitiveString":{ "type":"string", "sensitive":true @@ -4846,12 +4905,80 @@ "max":20, "min":1 }, + "SnapStart":{ + "type":"structure", + "members":{ + "ApplyOn":{ + "shape":"SnapStartApplyOn", + "documentation":"

Set to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version.

" + } + }, + "documentation":"

The function's SnapStart setting. Set ApplyOn to PublishedVersions to create a snapshot of the initialized execution environment when you publish a function version. For more information, see Reducing startup time with Lambda SnapStart.

" + }, + "SnapStartApplyOn":{ + "type":"string", + "enum":[ + "PublishedVersions", + "None" + ] + }, + "SnapStartException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "Message":{"shape":"String"} + }, + "documentation":"

The runtime restore hook encountered an error. For more information, check the Amazon CloudWatch logs.

", + "error":{"httpStatusCode":400}, + "exception":true + }, + "SnapStartNotReadyException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "Message":{"shape":"String"} + }, + "documentation":"

Lambda is initializing your function. You can invoke the function when the function state becomes Active.

", + "error":{"httpStatusCode":409}, + "exception":true + }, + "SnapStartOptimizationStatus":{ + "type":"string", + "enum":[ + "On", + "Off" + ] + }, + "SnapStartResponse":{ + "type":"structure", + "members":{ + "ApplyOn":{ + "shape":"SnapStartApplyOn", + "documentation":"

When set to PublishedVersions, Lambda creates a snapshot of the execution environment when you publish a function version.

" + }, + "OptimizationStatus":{ + "shape":"SnapStartOptimizationStatus", + "documentation":"

When you provide a qualified Amazon Resource Name (ARN), this response element indicates whether SnapStart is activated for the specified function version.

" + } + }, + "documentation":"

The function's SnapStart setting.

" + }, + "SnapStartTimeoutException":{ + "type":"structure", + "members":{ + "Type":{"shape":"String"}, + "Message":{"shape":"String"} + }, + "documentation":"

The runtime restore hook failed to complete within the timeout limit (2 seconds).

", + "error":{"httpStatusCode":408}, + "exception":true + }, "SourceAccessConfiguration":{ "type":"structure", "members":{ "Type":{ "shape":"SourceAccessType", - "documentation":"

The type of authentication protocol, VPC components, or virtual host for your event source. For example: \"Type\":\"SASL_SCRAM_512_AUTH\".

  • BASIC_AUTH - (Amazon MQ) The Secrets Manager secret that stores your broker credentials.

  • BASIC_AUTH - (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.

  • VPC_SUBNET - The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.

  • VPC_SECURITY_GROUP - The VPC security group used to manage access to your self-managed Apache Kafka brokers.

  • SASL_SCRAM_256_AUTH - The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.

  • SASL_SCRAM_512_AUTH - The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.

  • VIRTUAL_HOST - (Amazon MQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.

  • CLIENT_CERTIFICATE_TLS_AUTH - (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.

  • SERVER_ROOT_CA_CERTIFICATE - (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.

" + "documentation":"

The type of authentication protocol, VPC components, or virtual host for your event source. For example: \"Type\":\"SASL_SCRAM_512_AUTH\".

  • BASIC_AUTH - (Amazon MQ) The Secrets Manager secret that stores your broker credentials.

  • BASIC_AUTH - (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.

  • VPC_SUBNET - (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.

  • VPC_SECURITY_GROUP - (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.

  • SASL_SCRAM_256_AUTH - (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.

  • SASL_SCRAM_512_AUTH - (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.

  • VIRTUAL_HOST - (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.

  • CLIENT_CERTIFICATE_TLS_AUTH - (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.

  • SERVER_ROOT_CA_CERTIFICATE - (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.

" }, "URI":{ "shape":"URI", @@ -4909,7 +5036,18 @@ "InvalidSecurityGroup", "ImageDeleted", "ImageAccessDenied", - "InvalidImage" + "InvalidImage", + "KMSKeyAccessDenied", + "KMSKeyNotFound", + "InvalidStateKMSKey", + "DisabledKMSKey", + "EFSIOError", + "EFSMountConnectivityError", + "EFSMountFailure", + "EFSMountTimeout", + "InvalidRuntime", + "InvalidZipFileException", + "FunctionError" ] }, "StatementId":{ @@ -4930,7 +5068,7 @@ "Type":{"shape":"String"}, "Message":{"shape":"String"} }, - "documentation":"

Lambda was not able to set up VPC access for the Lambda function because one or more configured subnets has no available IP addresses.

", + "documentation":"

Lambda couldn't set up VPC access for the Lambda function because one or more configured subnets has no available IP addresses.

", "error":{"httpStatusCode":502}, "exception":true }, @@ -4977,7 +5115,8 @@ "FunctionInvocationRateLimitExceeded", "ReservedFunctionConcurrentInvocationLimitExceeded", "ReservedFunctionInvocationRateLimitExceeded", - "CallerRateLimitExceeded" + "CallerRateLimitExceeded", + "ConcurrentSnapshotCreateLimitExceeded" ] }, "Timeout":{ @@ -4998,7 +5137,7 @@ "message":{"shape":"String"}, "Reason":{"shape":"ThrottleReason"} }, - "documentation":"

The request throughput limit was exceeded.

", + "documentation":"

The request throughput limit was exceeded. For more information, see Lambda quotas.

", "error":{"httpStatusCode":429}, "exception":true }, @@ -5178,15 +5317,15 @@ }, "BatchSize":{ "shape":"BatchSize", - "documentation":"

The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).

  • Amazon Kinesis - Default 100. Max 10,000.

  • Amazon DynamoDB Streams - Default 100. Max 10,000.

  • Amazon Simple Queue Service - Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

  • Amazon Managed Streaming for Apache Kafka - Default 100. Max 10,000.

  • Self-Managed Apache Kafka - Default 100. Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) - Default 100. Max 10,000.

" + "documentation":"

The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).

  • Amazon Kinesis - Default 100. Max 10,000.

  • Amazon DynamoDB Streams - Default 100. Max 10,000.

  • Amazon Simple Queue Service - Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.

  • Amazon Managed Streaming for Apache Kafka - Default 100. Max 10,000.

  • Self-managed Apache Kafka - Default 100. Max 10,000.

  • Amazon MQ (ActiveMQ and RabbitMQ) - Default 100. Max 10,000.

" }, "FilterCriteria":{ "shape":"FilterCriteria", - "documentation":"

(Streams and Amazon SQS) An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see Lambda event filtering.

" + "documentation":"

An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see Lambda event filtering.

" }, "MaximumBatchingWindowInSeconds":{ "shape":"MaximumBatchingWindowInSeconds", - "documentation":"

(Streams and Amazon SQS standard queues) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.

Default: 0

Related setting: When you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" + "documentation":"

The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. You can configure MaximumBatchingWindowInSeconds to any value from 0 seconds to 300 seconds in increments of seconds.

For streams and Amazon SQS event sources, the default batching window is 0 seconds. For Amazon MSK, Self-managed Apache Kafka, and Amazon MQ event sources, the default batching window is 500 ms. Note that because you can only change MaximumBatchingWindowInSeconds in increments of seconds, you cannot revert back to the 500 ms default batching window after you have changed it. To restore the default batching window, you must create a new event source mapping.

Related setting: For streams and Amazon SQS event sources, when you set BatchSize to a value greater than 10, you must set MaximumBatchingWindowInSeconds to at least 1.

" }, "DestinationConfig":{ "shape":"DestinationConfig", @@ -5202,7 +5341,7 @@ }, "MaximumRetryAttempts":{ "shape":"MaximumRetryAttemptsEventSourceMapping", - "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records will be retried until the record expires.

" + "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is infinite (-1). When set to infinite (-1), failed records are retried until the record expires.

" }, "ParallelizationFactor":{ "shape":"ParallelizationFactor", @@ -5214,7 +5353,7 @@ }, "TumblingWindowInSeconds":{ "shape":"TumblingWindowInSeconds", - "documentation":"

(Streams only) The duration in seconds of a processing window. The range is between 1 second up to 900 seconds.

" + "documentation":"

(Streams only) The duration in seconds of a processing window. The range is between 1 second and 900 seconds.

" }, "FunctionResponseTypes":{ "shape":"FunctionResponseTypeList", @@ -5228,13 +5367,13 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, "ZipFile":{ "shape":"Blob", - "documentation":"

The base64-encoded contents of the deployment package. Amazon Web Services SDK and Amazon Web Services CLI clients handle the encoding for you. Use only with a function defined with a .zip file archive deployment package.

" + "documentation":"

The base64-encoded contents of the deployment package. Amazon Web Services SDK and CLI clients handle the encoding for you. Use only with a function defined with a .zip file archive deployment package.

" }, "S3Bucket":{ "shape":"S3Bucket", @@ -5262,7 +5401,7 @@ }, "RevisionId":{ "shape":"String", - "documentation":"

Only update the function if the revision ID matches the ID that's specified. Use this option to avoid modifying a function that has changed since you last read it.

" + "documentation":"

Update the function only if the revision ID matches the ID that's specified. Use this option to avoid modifying a function that has changed since you last read it.

" }, "Architectures":{ "shape":"ArchitecturesList", @@ -5276,7 +5415,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -5286,7 +5425,7 @@ }, "Handler":{ "shape":"Handler", - "documentation":"

The name of the method within your code that Lambda calls to execute your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see Programming Model.

" + "documentation":"

The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see Lambda programming model.

" }, "Description":{ "shape":"Description", @@ -5294,15 +5433,15 @@ }, "Timeout":{ "shape":"Timeout", - "documentation":"

The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For additional information, see Lambda execution environment.

" + "documentation":"

The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see Lambda execution environment.

" }, "MemorySize":{ "shape":"MemorySize", - "documentation":"

The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB.

" + "documentation":"

The amount of memory available to the function at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB.

" }, "VpcConfig":{ "shape":"VpcConfig", - "documentation":"

For network connectivity to Amazon Web Services resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can only access resources and the internet through that VPC. For more information, see VPC Settings.

" + "documentation":"

For network connectivity to Amazon Web Services resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see Configuring a Lambda function to access resources in a VPC.

" }, "Environment":{ "shape":"Environment", @@ -5314,11 +5453,11 @@ }, "DeadLetterConfig":{ "shape":"DeadLetterConfig", - "documentation":"

A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see Dead Letter Queues.

" + "documentation":"

A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see Dead-letter queues.

" }, "KMSKeyArn":{ "shape":"KMSKeyArn", - "documentation":"

The ARN of the Amazon Web Services Key Management Service (KMS) key that's used to encrypt your function's environment variables. If it's not provided, Lambda uses a default service key.

" + "documentation":"

The ARN of the Key Management Service (KMS) key that's used to encrypt your function's environment variables. If it's not provided, Lambda uses a default service key.

" }, "TracingConfig":{ "shape":"TracingConfig", @@ -5326,7 +5465,7 @@ }, "RevisionId":{ "shape":"String", - "documentation":"

Only update the function if the revision ID matches the ID that's specified. Use this option to avoid modifying a function that has changed since you last read it.

" + "documentation":"

Update the function only if the revision ID matches the ID that's specified. Use this option to avoid modifying a function that has changed since you last read it.

" }, "Layers":{ "shape":"LayerList", @@ -5342,7 +5481,11 @@ }, "EphemeralStorage":{ "shape":"EphemeralStorage", - "documentation":"

The size of the function’s /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10240 MB.

" + "documentation":"

The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB.

" + }, + "SnapStart":{ + "shape":"SnapStart", + "documentation":"

The function's SnapStart setting.

" } } }, @@ -5382,7 +5525,7 @@ "members":{ "FunctionName":{ "shape":"FunctionName", - "documentation":"

The name of the Lambda function.

Name formats

  • Function name - my-function.

  • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN - 123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", + "documentation":"

The name of the Lambda function.

Name formats

  • Function namemy-function.

  • Function ARNarn:aws:lambda:us-west-2:123456789012:function:my-function.

  • Partial ARN123456789012:function:my-function.

The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

", "location":"uri", "locationName":"FunctionName" }, @@ -5394,7 +5537,7 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", @@ -5422,7 +5565,7 @@ }, "AuthType":{ "shape":"FunctionUrlAuthType", - "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" + "documentation":"

The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated IAM users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. For more information, see Security and auth model for Lambda function URLs.

" }, "Cors":{ "shape":"Cors", @@ -5453,10 +5596,10 @@ }, "SecurityGroupIds":{ "shape":"SecurityGroupIds", - "documentation":"

A list of VPC security groups IDs.

" + "documentation":"

A list of VPC security group IDs.

" } }, - "documentation":"

The VPC security groups and subnets that are attached to a Lambda function. For more information, see VPC Settings.

" + "documentation":"

The VPC security groups and subnets that are attached to a Lambda function. For more information, see Configuring a Lambda function to access resources in a VPC.

" }, "VpcConfigResponse":{ "type":"structure", @@ -5467,7 +5610,7 @@ }, "SecurityGroupIds":{ "shape":"SecurityGroupIds", - "documentation":"

A list of VPC security groups IDs.

" + "documentation":"

A list of VPC security group IDs.

" }, "VpcId":{ "shape":"VpcId", diff --git a/botocore/data/lambda/2015-03-31/waiters-2.json b/botocore/data/lambda/2015-03-31/waiters-2.json index b4c18f64..86e24b0c 100644 --- a/botocore/data/lambda/2015-03-31/waiters-2.json +++ b/botocore/data/lambda/2015-03-31/waiters-2.json @@ -121,6 +121,32 @@ "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/botocore/data/lex-models/2017-04-19/endpoint-rule-set-1.json b/botocore/data/lex-models/2017-04-19/endpoint-rule-set-1.json new file mode 100644 index 00000000..a6c1d141 --- /dev/null +++ b/botocore/data/lex-models/2017-04-19/endpoint-rule-set-1.json @@ -0,0 +1,365 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://models.lex-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://models-fips.lex.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://models-fips.lex.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://models.lex-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://models.lex.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://models.lex.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lex-models/2017-04-19/examples-1.json b/botocore/data/lex-models/2017-04-19/examples-1.json index 4a56e6e1..0982d973 100644 --- a/botocore/data/lex-models/2017-04-19/examples-1.json +++ b/botocore/data/lex-models/2017-04-19/examples-1.json @@ -364,7 +364,7 @@ "maxAttempts": 1, "messages": [ { - "content": "I'm sorry, I didn't hear that. Can you repeate what you just said?", + "content": "I'm sorry, I didn't hear that. Can you repeat what you just said?", "contentType": "PlainText" }, { diff --git a/botocore/data/lex-runtime/2016-11-28/endpoint-rule-set-1.json b/botocore/data/lex-runtime/2016-11-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..21b015f6 --- /dev/null +++ b/botocore/data/lex-runtime/2016-11-28/endpoint-rule-set-1.json @@ -0,0 +1,365 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime.lex-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://runtime-fips.lex.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://runtime-fips.lex.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://runtime.lex-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime.lex.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://runtime.lex.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lexv2-models/2020-08-07/endpoint-rule-set-1.json b/botocore/data/lexv2-models/2020-08-07/endpoint-rule-set-1.json new file mode 100644 index 00000000..f4f8af19 --- /dev/null +++ b/botocore/data/lexv2-models/2020-08-07/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://models-v2-lex-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://models-v2-lex-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://models-v2-lex.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://models-v2-lex.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lexv2-models/2020-08-07/examples-1.json b/botocore/data/lexv2-models/2020-08-07/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/lexv2-models/2020-08-07/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/lexv2-models/2020-08-07/service-2.json b/botocore/data/lexv2-models/2020-08-07/service-2.json index 1738ad91..2bbd51c1 100644 --- a/botocore/data/lexv2-models/2020-08-07/service-2.json +++ b/botocore/data/lexv2-models/2020-08-07/service-2.json @@ -13,6 +13,60 @@ "uid":"models.lex.v2-2020-08-07" }, "operations":{ + "BatchCreateCustomVocabularyItem":{ + "name":"BatchCreateCustomVocabularyItem", + "http":{ + "method":"PUT", + "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/batchcreate", + "responseCode":200 + }, + "input":{"shape":"BatchCreateCustomVocabularyItemRequest"}, + "output":{"shape":"BatchCreateCustomVocabularyItemResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Batch create custom vocabulary item for the specified locale in the specified bot.

" + }, + "BatchDeleteCustomVocabularyItem":{ + "name":"BatchDeleteCustomVocabularyItem", + "http":{ + "method":"POST", + "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/batchdelete", + "responseCode":200 + }, + "input":{"shape":"BatchDeleteCustomVocabularyItemRequest"}, + "output":{"shape":"BatchDeleteCustomVocabularyItemResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Batch delete custom vocabulary item for the specified locale in the specified bot.

" + }, + "BatchUpdateCustomVocabularyItem":{ + "name":"BatchUpdateCustomVocabularyItem", + "http":{ + "method":"PUT", + "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/batchupdate", + "responseCode":200 + }, + "input":{"shape":"BatchUpdateCustomVocabularyItemRequest"}, + "output":{"shape":"BatchUpdateCustomVocabularyItemResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Batch update custom vocabulary item for the specified locale in the specified bot.

" + }, "BuildBotLocale":{ "name":"BuildBotLocale", "http":{ @@ -823,6 +877,24 @@ ], "documentation":"

Gets a list of built-in slot types that meet the specified criteria.

" }, + "ListCustomVocabularyItems":{ + "name":"ListCustomVocabularyItems", + "http":{ + "method":"POST", + "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/list", + "responseCode":200 + }, + "input":{"shape":"ListCustomVocabularyItemsRequest"}, + "output":{"shape":"ListCustomVocabularyItemsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

List custom vocabulary items for the specified locale in the specified bot.

" + }, "ListExports":{ "name":"ListExports", "http":{ @@ -888,7 +960,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Gets a list of recommended intents provided by the bot recommendation that you can use in your bot.

" + "documentation":"

Gets a list of recommended intents provided by the bot recommendation that you can use in your bot. Intents in the response are ordered by relevance.

" }, "ListSlotTypes":{ "name":"ListSlotTypes", @@ -999,6 +1071,27 @@ ], "documentation":"

Starts importing a bot, bot locale, or custom vocabulary from a zip archive that you uploaded to an S3 bucket.

" }, + "StopBotRecommendation":{ + "name":"StopBotRecommendation", + "http":{ + "method":"PUT", + "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/botrecommendations/{botRecommendationId}/stopbotrecommendation", + "responseCode":202 + }, + "input":{"shape":"StopBotRecommendationRequest"}, + "output":{"shape":"StopBotRecommendationResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"PreconditionFailedException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Stop an already running Bot Recommendation request.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -1317,6 +1410,24 @@ "type":"list", "member":{"shape":"AggregatedUtterancesSummary"} }, + "AllowedInputTypes":{ + "type":"structure", + "required":[ + "allowAudioInput", + "allowDTMFInput" + ], + "members":{ + "allowAudioInput":{ + "shape":"BoxedBoolean", + "documentation":"

Indicates whether audio input is allowed.

" + }, + "allowDTMFInput":{ + "shape":"BoxedBoolean", + "documentation":"

Indicates whether DTMF input is allowed.

" + } + }, + "documentation":"

Specifies the allowed input types.

" + }, "AmazonResourceName":{ "type":"string", "max":1011, @@ -1327,7 +1438,7 @@ "members":{ "transcript":{ "shape":"Transcript", - "documentation":"

The content of the transcript that meets the search filter criteria. For the JSON format of the transcript, see Output transcript format.

" + "documentation":"

The content of the transcript that meets the search filter criteria. For the JSON format of the transcript, see Output transcript format.

" } }, "documentation":"

The object containing information that associates the recommended intent/slot type with a conversation.

" @@ -1377,6 +1488,25 @@ "max":250, "min":1 }, + "AudioAndDTMFInputSpecification":{ + "type":"structure", + "required":["startTimeoutMs"], + "members":{ + "startTimeoutMs":{ + "shape":"TimeInMilliSeconds", + "documentation":"

Time for which a bot waits before assuming that the customer isn't going to speak or press a key. This timeout is shared between Audio and DTMF inputs.

" + }, + "audioSpecification":{ + "shape":"AudioSpecification", + "documentation":"

Specifies the settings on audio input.

" + }, + "dtmfSpecification":{ + "shape":"DTMFSpecification", + "documentation":"

Specifies the settings on DTMF input.

" + } + }, + "documentation":"

Specifies the audio and DTMF input specification.

" + }, "AudioLogDestination":{ "type":"structure", "required":["s3Bucket"], @@ -1413,6 +1543,198 @@ "type":"string", "enum":["UseSlotValuesAsCustomVocabulary"] }, + "AudioSpecification":{ + "type":"structure", + "required":[ + "maxLengthMs", + "endTimeoutMs" + ], + "members":{ + "maxLengthMs":{ + "shape":"TimeInMilliSeconds", + "documentation":"

Time for how long Amazon Lex waits before speech input is truncated and the speech is returned to application.

" + }, + "endTimeoutMs":{ + "shape":"TimeInMilliSeconds", + "documentation":"

Time for which a bot waits after the customer stops speaking to assume the utterance is finished.

" + } + }, + "documentation":"

Specifies the audio input specifications.

" + }, + "BatchCreateCustomVocabularyItemRequest":{ + "type":"structure", + "required":[ + "botId", + "botVersion", + "localeId", + "customVocabularyItemList" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot to batch create the custom vocabulary item for.

", + "location":"uri", + "locationName":"botId" + }, + "botVersion":{ + "shape":"BotVersion", + "documentation":"

The bot version of the bot to batch create the custom vocabulary item for.

", + "location":"uri", + "locationName":"botVersion" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The unique locale identifier of the bot to batch create the custom vocabulary item for.

", + "location":"uri", + "locationName":"localeId" + }, + "customVocabularyItemList":{ + "shape":"CreateCustomVocabularyItemsList", + "documentation":"

The custom vocabulary item list of the bot to batch create the custom vocabulary item for.

" + } + } + }, + "BatchCreateCustomVocabularyItemResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot to batch create response for the custom vocabulary item.

" + }, + "botVersion":{ + "shape":"BotVersion", + "documentation":"

The bot version of the bot to batch create the custom vocabulary item response for.

" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The unique locale identifier of the bot to batch create the custom vocabulary item response for.

" + }, + "errors":{ + "shape":"FailedCustomVocabularyItems", + "documentation":"

The errors of the action to batch create the custom vocabulary item response for a bot.

" + }, + "resources":{ + "shape":"CustomVocabularyItems", + "documentation":"

The resources of the action to batch create the custom vocabulary item response for a bot.

" + } + } + }, + "BatchDeleteCustomVocabularyItemRequest":{ + "type":"structure", + "required":[ + "botId", + "botVersion", + "localeId", + "customVocabularyItemList" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot to batch delete request for the custom vocabulary item.

", + "location":"uri", + "locationName":"botId" + }, + "botVersion":{ + "shape":"BotVersion", + "documentation":"

The version of the bot to batch delete request for the custom vocabulary item.

", + "location":"uri", + "locationName":"botVersion" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The locale identifier of the bot to batch delete request for the custom vocabulary item.

", + "location":"uri", + "locationName":"localeId" + }, + "customVocabularyItemList":{ + "shape":"DeleteCustomVocabularyItemsList", + "documentation":"

The custom vocabulary list to batch delete request for the custom vocabulary item.

" + } + } + }, + "BatchDeleteCustomVocabularyItemResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot to batch delete response for the custom vocabulary item.

" + }, + "botVersion":{ + "shape":"BotVersion", + "documentation":"

The version of the bot to batch delete response for the custom vocabulary item.

" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The locale identifier of the bot to batch delete response for the custom vocabulary item.

" + }, + "errors":{ + "shape":"FailedCustomVocabularyItems", + "documentation":"

The errors of the action to batch delete response for the custom vocabulary item.

" + }, + "resources":{ + "shape":"CustomVocabularyItems", + "documentation":"

The resources of the action to batch delete response for the custom vocabulary item.

" + } + } + }, + "BatchUpdateCustomVocabularyItemRequest":{ + "type":"structure", + "required":[ + "botId", + "botVersion", + "localeId", + "customVocabularyItemList" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot to the batch update request for the custom vocabulary item.

", + "location":"uri", + "locationName":"botId" + }, + "botVersion":{ + "shape":"BotVersion", + "documentation":"

The bot version of the bot to the batch update request for the custom vocabulary item.

", + "location":"uri", + "locationName":"botVersion" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The locale identifier of the bot to the batch update request for the custom vocabulary item.

", + "location":"uri", + "locationName":"localeId" + }, + "customVocabularyItemList":{ + "shape":"UpdateCustomVocabularyItemsList", + "documentation":"

The custom vocabulary item list of the bot to the batch update request for the custom vocabulary item.

" + } + } + }, + "BatchUpdateCustomVocabularyItemResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot to the batch update response for the custom vocabulary item.

" + }, + "botVersion":{ + "shape":"BotVersion", + "documentation":"

The bot version of the bot to the batch update response for the custom vocabulary item.

" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The locale identifier of the bot to the batch update response for the custom vocabulary item.

" + }, + "errors":{ + "shape":"FailedCustomVocabularyItems", + "documentation":"

The errors of the action to batch update response for the custom vocabulary item.

" + }, + "resources":{ + "shape":"CustomVocabularyItems", + "documentation":"

The resources of the action to batch update response for the custom vocabulary item.

" + } + } + }, "Boolean":{"type":"boolean"}, "BotAliasHistoryEvent":{ "type":"structure", @@ -1814,7 +2136,7 @@ "documentation":"

The statistical summary of the bot recommendation results.

" } }, - "documentation":"

The object representing the URL of the bot definition, the URL of the associated transcript and a statistical summary of the bot recommendation results.

" + "documentation":"

The object representing the URL of the bot definition, the URL of the associated transcript, and a statistical summary of the bot recommendation results.

" }, "BotRecommendationStatus":{ "type":"string", @@ -1825,7 +2147,9 @@ "Downloading", "Updating", "Available", - "Failed" + "Failed", + "Stopping", + "Stopped" ] }, "BotRecommendationSummary":{ @@ -2222,6 +2546,32 @@ }, "documentation":"

Contains information about code hooks that Amazon Lex calls during a conversation.

" }, + "CompositeSlotTypeSetting":{ + "type":"structure", + "members":{ + "subSlots":{ + "shape":"SubSlotTypeList", + "documentation":"

Subslots in the composite slot.

" + } + }, + "documentation":"

A composite slot is a combination of two or more slots that capture multiple pieces of information in a single user input.

" + }, + "Condition":{ + "type":"structure", + "required":["expressionString"], + "members":{ + "expressionString":{ + "shape":"ConditionExpression", + "documentation":"

The expression string that is evaluated.

" + } + }, + "documentation":"

Provides an expression that evaluates to true or false.

" + }, + "ConditionExpression":{ + "type":"string", + "max":1024, + "min":1 + }, "ConditionKey":{ "type":"string", "max":1024, @@ -2250,6 +2600,59 @@ "max":1024, "min":1 }, + "ConditionalBranch":{ + "type":"structure", + "required":[ + "name", + "condition", + "nextStep" + ], + "members":{ + "name":{ + "shape":"Name", + "documentation":"

The name of the branch.

" + }, + "condition":{ + "shape":"Condition", + "documentation":"

Contains the expression to evaluate. If the condition is true, the branch's actions are taken.

" + }, + "nextStep":{ + "shape":"DialogState", + "documentation":"

The next step in the conversation.

" + }, + "response":{"shape":"ResponseSpecification"} + }, + "documentation":"

A set of actions that Amazon Lex should run if the condition is matched.

" + }, + "ConditionalBranches":{ + "type":"list", + "member":{"shape":"ConditionalBranch"}, + "max":4, + "min":1 + }, + "ConditionalSpecification":{ + "type":"structure", + "required":[ + "active", + "conditionalBranches", + "defaultBranch" + ], + "members":{ + "active":{ + "shape":"BoxedBoolean", + "documentation":"

Determines whether a conditional branch is active. When active is false, the conditions are not evaluated.

" + }, + "conditionalBranches":{ + "shape":"ConditionalBranches", + "documentation":"

A list of conditional branches. A conditional branch is made up of a condition, a response and a next step. The response and next step are executed when the condition is true.

" + }, + "defaultBranch":{ + "shape":"DefaultConditionalBranch", + "documentation":"

The conditional branch that should be followed when the conditions for other branches are not satisfied. A conditional branch is made up of a condition, a response and a next step.

" + } + }, + "documentation":"

Provides a list of conditional branches. Branches are evaluated in the order that they are entered in the list. The first branch with a condition that evaluates to true is executed. The last branch in the list is the default branch. The default branch should not have any condition expression. The default branch is executed if no other branch has a matching condition.

" + }, "ConfidenceThreshold":{ "type":"double", "max":1, @@ -2591,6 +2994,12 @@ } } }, + "CreateCustomVocabularyItemsList":{ + "type":"list", + "member":{"shape":"NewCustomVocabularyItem"}, + "max":10, + "min":1 + }, "CreateExportRequest":{ "type":"structure", "required":[ @@ -2629,7 +3038,7 @@ }, "exportStatus":{ "shape":"ExportStatus", - "documentation":"

The status of the export. When the status is Completed, you can use the DescribeExport operation to get the pre-signed S3 URL link to your exported bot or bot locale.

" + "documentation":"

The status of the export. When the status is Completed, you can use the DescribeExport operation to get the pre-signed S3 URL link to your exported bot or bot locale.

" }, "creationDateTime":{ "shape":"Timestamp", @@ -2707,6 +3116,10 @@ "documentation":"

The identifier of the language and locale where this intent is used. All of the bots, slot types, and slots used by the intent must have the same locale. For more information, see Supported languages.

", "location":"uri", "locationName":"localeId" + }, + "initialResponseSetting":{ + "shape":"InitialResponseSetting", + "documentation":"

Configuration settings for the response that is sent to the user at the beginning of a conversation, before eliciting slot values.

" } } }, @@ -2776,6 +3189,10 @@ "creationDateTime":{ "shape":"Timestamp", "documentation":"

A timestamp of the date and time that the intent was created.

" + }, + "initialResponseSetting":{ + "shape":"InitialResponseSetting", + "documentation":"

Configuration settings for the response that is sent to the user at the beginning of a conversation, before eliciting slot values.

" } } }, @@ -2926,6 +3343,10 @@ "multipleValuesSetting":{ "shape":"MultipleValuesSetting", "documentation":"

Indicates whether the slot returns multiple values in one response. Multi-value slots are only available in the en-US locale. If you set this value to true in any other locale, Amazon Lex throws a ValidationException.

If the multipleValuesSetting is not set, the default value is false.

" + }, + "subSlotSetting":{ + "shape":"SubSlotSetting", + "documentation":"

Specifications for the constituent sub slots and the expression for the composite slot.

" } } }, @@ -2979,6 +3400,10 @@ "multipleValuesSetting":{ "shape":"MultipleValuesSetting", "documentation":"

Indicates whether the slot returns multiple values in one response.

" + }, + "subSlotSetting":{ + "shape":"SubSlotSetting", + "documentation":"

Specifications for the constituent sub slots and the expression for the composite slot.

" } } }, @@ -3032,6 +3457,10 @@ "externalSourceSetting":{ "shape":"ExternalSourceSetting", "documentation":"

Sets the type of external information used to create the slot type.

" + }, + "compositeSlotTypeSetting":{ + "shape":"CompositeSlotTypeSetting", + "documentation":"

Specifications for a composite slot type.

" } } }, @@ -3081,6 +3510,10 @@ "externalSourceSetting":{ "shape":"ExternalSourceSetting", "documentation":"

The type of external information used to create the slot type.

" + }, + "compositeSlotTypeSetting":{ + "shape":"CompositeSlotTypeSetting", + "documentation":"

Specifications for a composite slot type.

" } } }, @@ -3118,6 +3551,17 @@ "max":1000, "min":1 }, + "CustomVocabularyEntryId":{ + "type":"structure", + "required":["itemId"], + "members":{ + "itemId":{ + "shape":"ItemId", + "documentation":"

The unique item identifier for the custom vocabulary items.

" + } + }, + "documentation":"

The unique entry identifier for the custom vocabulary items.

" + }, "CustomVocabularyExportSpecification":{ "type":"structure", "required":[ @@ -3164,6 +3608,36 @@ }, "documentation":"

Provides the parameters required for importing a custom vocabulary.

" }, + "CustomVocabularyItem":{ + "type":"structure", + "required":[ + "itemId", + "phrase" + ], + "members":{ + "itemId":{ + "shape":"ItemId", + "documentation":"

The unique item identifer for the custom vocabulary item from the custom vocabulary list.

" + }, + "phrase":{ + "shape":"Phrase", + "documentation":"

The unique phrase for the custom vocabulary item from the custom vocabulary list.

" + }, + "weight":{ + "shape":"Weight", + "documentation":"

The weight assigned for the custom vocabulary item from the custom vocabulary list.

" + }, + "displayAs":{ + "shape":"Phrase", + "documentation":"

The display as value for the custom vocabulary item from the custom vocabulary list.

" + } + }, + "documentation":"

The unique custom vocabulary item from the custom vocabulary list.

" + }, + "CustomVocabularyItems":{ + "type":"list", + "member":{"shape":"CustomVocabularyItem"} + }, "CustomVocabularyStatus":{ "type":"string", "enum":[ @@ -3174,6 +3648,38 @@ "Creating" ] }, + "DTMFCharacter":{ + "type":"string", + "pattern":"^[A-D0-9#*]{1}$" + }, + "DTMFSpecification":{ + "type":"structure", + "required":[ + "maxLength", + "endTimeoutMs", + "deletionCharacter", + "endCharacter" + ], + "members":{ + "maxLength":{ + "shape":"MaxUtteranceDigits", + "documentation":"

The maximum number of DTMF digits allowed in an utterance.

" + }, + "endTimeoutMs":{ + "shape":"TimeInMilliSeconds", + "documentation":"

How long the bot should wait after the last DTMF character input before assuming that the input has concluded.

" + }, + "deletionCharacter":{ + "shape":"DTMFCharacter", + "documentation":"

The DTMF character that clears the accumulated DTMF digits and immediately ends the input.

" + }, + "endCharacter":{ + "shape":"DTMFCharacter", + "documentation":"

The DTMF character that immediately ends input. If the user does not press this character, the input ends after the end timeout.

" + } + }, + "documentation":"

Specifies the DTMF input specifications.

" + }, "DataPrivacy":{ "type":"structure", "required":["childDirected"], @@ -3203,6 +3709,17 @@ }, "documentation":"

The object used for specifying the data range that the customer wants Amazon Lex to read through in the input transcripts.

" }, + "DefaultConditionalBranch":{ + "type":"structure", + "members":{ + "nextStep":{ + "shape":"DialogState", + "documentation":"

The next step in the conversation.

" + }, + "response":{"shape":"ResponseSpecification"} + }, + "documentation":"

A set of actions that Amazon Lex should run if none of the other conditions are met.

" + }, "DeleteBotAliasRequest":{ "type":"structure", "required":[ @@ -3371,6 +3888,12 @@ } } }, + "DeleteCustomVocabularyItemsList":{ + "type":"list", + "member":{"shape":"CustomVocabularyEntryId"}, + "max":10, + "min":1 + }, "DeleteCustomVocabularyRequest":{ "type":"structure", "required":[ @@ -4327,6 +4850,10 @@ "lastUpdatedDateTime":{ "shape":"Timestamp", "documentation":"

A timestamp of the date and time that the intent was last updated.

" + }, + "initialResponseSetting":{ + "shape":"InitialResponseSetting", + "documentation":"

" } } }, @@ -4455,6 +4982,10 @@ "multipleValuesSetting":{ "shape":"MultipleValuesSetting", "documentation":"

Indicates whether the slot accepts multiple values in a single utterance.

If the multipleValuesSetting is not set, the default value is false.

" + }, + "subSlotSetting":{ + "shape":"SubSlotSetting", + "documentation":"

Specifications for the constituent sub slots and the expression for the composite slot.

" } } }, @@ -4540,7 +5071,11 @@ "shape":"Timestamp", "documentation":"

A timestamp of the date and time that the slot type was last updated.

" }, - "externalSourceSetting":{"shape":"ExternalSourceSetting"} + "externalSourceSetting":{"shape":"ExternalSourceSetting"}, + "compositeSlotTypeSetting":{ + "shape":"CompositeSlotTypeSetting", + "documentation":"

Specifications for a composite slot type.

" + } } }, "Description":{ @@ -4548,6 +5083,66 @@ "max":200, "min":0 }, + "DialogAction":{ + "type":"structure", + "required":["type"], + "members":{ + "type":{ + "shape":"DialogActionType", + "documentation":"

The action that the bot should execute.

" + }, + "slotToElicit":{ + "shape":"Name", + "documentation":"

If the dialog action is ElicitSlot, defines the slot to elicit from the user.

" + }, + "suppressNextMessage":{ + "shape":"BoxedBoolean", + "documentation":"

When true the next message for the intent is not used.

" + } + }, + "documentation":"

Defines the action that the bot executes at runtime when the conversation reaches this step.

" + }, + "DialogActionType":{ + "type":"string", + "enum":[ + "ElicitIntent", + "StartIntent", + "ElicitSlot", + "EvaluateConditional", + "InvokeDialogCodeHook", + "ConfirmIntent", + "FulfillIntent", + "CloseIntent", + "EndConversation" + ] + }, + "DialogCodeHookInvocationSetting":{ + "type":"structure", + "required":[ + "enableCodeHookInvocation", + "active", + "postCodeHookSpecification" + ], + "members":{ + "enableCodeHookInvocation":{ + "shape":"BoxedBoolean", + "documentation":"

Indicates whether a Lambda function should be invoked for the dialog.

" + }, + "active":{ + "shape":"BoxedBoolean", + "documentation":"

Determines whether a dialog code hook is used when the intent is activated.

" + }, + "invocationLabel":{ + "shape":"Name", + "documentation":"

A label that indicates the dialog step from which the dialog code hook is happening.

" + }, + "postCodeHookSpecification":{ + "shape":"PostDialogCodeHookInvocationSpecification", + "documentation":"

Contains the responses and actions that Amazon Lex takes after the Lambda function is complete.

" + } + }, + "documentation":"

Settings that specify the dialog code hook that is called by Amazon Lex at a step of the conversation.

" + }, "DialogCodeHookSettings":{ "type":"structure", "required":["enabled"], @@ -4559,6 +5154,18 @@ }, "documentation":"

Settings that determine the Lambda function that Amazon Lex uses for processing user responses.

" }, + "DialogState":{ + "type":"structure", + "members":{ + "dialogAction":{"shape":"DialogAction"}, + "intent":{"shape":"IntentOverride"}, + "sessionAttributes":{ + "shape":"StringMap", + "documentation":"

Map of key/value pairs representing session-specific context information. It contains application information passed between Amazon Lex and a client application.

" + } + }, + "documentation":"

The current state of the conversation with the user.

" + }, "DraftBotVersion":{ "type":"string", "max":5, @@ -4572,6 +5179,21 @@ "Deny" ] }, + "ElicitationCodeHookInvocationSetting":{ + "type":"structure", + "required":["enableCodeHookInvocation"], + "members":{ + "enableCodeHookInvocation":{ + "shape":"BoxedBoolean", + "documentation":"

Indicates whether a Lambda function should be invoked for the dialog.

" + }, + "invocationLabel":{ + "shape":"Name", + "documentation":"

A label that indicates the dialog step from which the dialog code hook is happening.

" + } + }, + "documentation":"

Settings that specify the dialog code hook that is called by Amazon Lex between eliciting slot values.

" + }, "EncryptionSetting":{ "type":"structure", "members":{ @@ -4590,6 +5212,16 @@ }, "documentation":"

The object representing the passwords that were used to encrypt the data related to the bot recommendation, as well as the KMS key ARN used to encrypt the associated metadata.

" }, + "ErrorCode":{ + "type":"string", + "enum":[ + "DUPLICATE_INPUT", + "RESOURCE_DOES_NOT_EXIST", + "RESOURCE_ALREADY_EXISTS", + "INTERNAL_SERVER_FAILURE" + ] + }, + "ErrorMessage":{"type":"string"}, "ExceptionMessage":{"type":"string"}, "ExportFilter":{ "type":"structure", @@ -4724,6 +5356,28 @@ }, "documentation":"

Provides information about the external source of the slot type's definition.

" }, + "FailedCustomVocabularyItem":{ + "type":"structure", + "members":{ + "itemId":{ + "shape":"ItemId", + "documentation":"

The unique item identifer for the failed custom vocabulary item from the custom vocabulary list.

" + }, + "errorMessage":{ + "shape":"ErrorMessage", + "documentation":"

The error message for the failed custom vocabulary item from the custom vocabulary list.

" + }, + "errorCode":{ + "shape":"ErrorCode", + "documentation":"

The unique error code for the failed custom vocabulary item from the custom vocabulary list.

" + } + }, + "documentation":"

The unique failed custom vocabulary item from the custom vocabulary list.

" + }, + "FailedCustomVocabularyItems":{ + "type":"list", + "member":{"shape":"FailedCustomVocabularyItem"} + }, "FailureReason":{"type":"string"}, "FailureReasons":{ "type":"list", @@ -4762,6 +5416,10 @@ "fulfillmentUpdatesSpecification":{ "shape":"FulfillmentUpdatesSpecification", "documentation":"

Provides settings for update messages sent to the user for long-running Lambda fulfillment functions. Fulfillment updates can be used only with streaming conversations.

" + }, + "active":{ + "shape":"BoxedBoolean", + "documentation":"

Determines whether the fulfillment code hook is used. When active is false, the code hook doesn't run.

" } }, "documentation":"

Determines if a Lambda function should be invoked for a specific intent.

" @@ -5065,6 +5723,19 @@ "min":5, "pattern":"^([0-9a-zA-Z_])+$" }, + "InitialResponseSetting":{ + "type":"structure", + "members":{ + "initialResponse":{"shape":"ResponseSpecification"}, + "nextStep":{ + "shape":"DialogState", + "documentation":"

The next step in the conversation.

" + }, + "conditional":{"shape":"ConditionalSpecification"}, + "codeHook":{"shape":"DialogCodeHookInvocationSetting"} + }, + "documentation":"

Configuration setting for a response sent to the user before Amazon Lex starts eliciting slots.

" + }, "InputContext":{ "type":"structure", "required":["name"], @@ -5084,7 +5755,6 @@ }, "IntentClosingSetting":{ "type":"structure", - "required":["closingResponse"], "members":{ "closingResponse":{ "shape":"ResponseSpecification", @@ -5093,16 +5763,21 @@ "active":{ "shape":"BoxedBoolean", "documentation":"

Specifies whether an intent's closing response is used. When this field is false, the closing response isn't sent to the user. If the active field isn't specified, the default is true.

" + }, + "nextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step that the bot executes after playing the intent's closing response.

" + }, + "conditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches associated with the intent's closing response. These branches are executed when the nextStep attribute is set to EvalutateConditional.

" } }, "documentation":"

Provides a statement the Amazon Lex conveys to the user when the intent is successfully fulfilled.

" }, "IntentConfirmationSetting":{ "type":"structure", - "required":[ - "promptSpecification", - "declinationResponse" - ], + "required":["promptSpecification"], "members":{ "promptSpecification":{ "shape":"PromptSpecification", @@ -5115,6 +5790,37 @@ "active":{ "shape":"BoxedBoolean", "documentation":"

Specifies whether the intent's confirmation is sent to the user. When this field is false, confirmation and declination responses aren't sent. If the active field isn't specified, the default is true.

" + }, + "confirmationResponse":{"shape":"ResponseSpecification"}, + "confirmationNextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step that the bot executes when the customer confirms the intent.

" + }, + "confirmationConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate after the intent is closed.

" + }, + "declinationNextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step that the bot executes when the customer declines the intent.

" + }, + "declinationConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate after the intent is declined.

" + }, + "failureResponse":{"shape":"ResponseSpecification"}, + "failureNextStep":{ + "shape":"DialogState", + "documentation":"

The next step to take in the conversation if the confirmation step fails.

" + }, + "failureConditional":{"shape":"ConditionalSpecification"}, + "codeHook":{ + "shape":"DialogCodeHookInvocationSetting", + "documentation":"

The DialogCodeHookInvocationSetting object associated with intent's confirmation step. The dialog code hook is triggered based on these invocation settings when the confirmation next step or declination next step or failure next step is InvokeDialogCodeHook.

" + }, + "elicitationCodeHook":{ + "shape":"ElicitationCodeHookInvocationSetting", + "documentation":"

The DialogCodeHookInvocationSetting used when the code hook is invoked during confirmation prompt retries.

" } }, "documentation":"

Provides a prompt for making sure that the user is ready for the intent to be fulfilled.

" @@ -5159,6 +5865,20 @@ "max":1, "min":1 }, + "IntentOverride":{ + "type":"structure", + "members":{ + "name":{ + "shape":"Name", + "documentation":"

The name of the intent. Only required when you're switching intents.

" + }, + "slots":{ + "shape":"SlotValueOverrideMap", + "documentation":"

A map of all of the slot value overrides for the intent. The name of the slot maps to the value of the slot. Slots that are not included in the map aren't overridden.,

" + } + }, + "documentation":"

Override settings to configure the intent state.

" + }, "IntentSignature":{"type":"string"}, "IntentSortAttribute":{ "type":"string", @@ -5243,6 +5963,11 @@ "exception":true, "fault":true }, + "ItemId":{ + "type":"string", + "max":32, + "min":1 + }, "KendraConfiguration":{ "type":"structure", "required":["kendraIndex"], @@ -5714,6 +6439,67 @@ } } }, + "ListCustomVocabularyItemsRequest":{ + "type":"structure", + "required":[ + "botId", + "botVersion", + "localeId" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot to the list custom vocabulary request.

", + "location":"uri", + "locationName":"botId" + }, + "botVersion":{ + "shape":"BotVersion", + "documentation":"

The bot version of the bot to the list custom vocabulary request.

", + "location":"uri", + "locationName":"botVersion" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The locale identifier of the bot to the list custom vocabulary request.

", + "location":"uri", + "locationName":"localeId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum results to the list custom vocabulary request.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The nextToken identifier to the list custom vocabulary request.

" + } + } + }, + "ListCustomVocabularyItemsResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot to the list custom vocabulary response.

" + }, + "botVersion":{ + "shape":"BotVersion", + "documentation":"

The bot version of the bot to the list custom vocabulary response.

" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The locale identifier of the bot to the list custom vocabulary response.

" + }, + "customVocabularyItems":{ + "shape":"CustomVocabularyItems", + "documentation":"

The custom vocabulary items from the list custom vocabulary response.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The nextToken identifier to the list custom vocabulary response.

" + } + } + }, "ListExportsRequest":{ "type":"structure", "members":{ @@ -6153,6 +6939,11 @@ "max":1000, "min":1 }, + "MaxUtteranceDigits":{ + "type":"integer", + "max":1024, + "min":1 + }, "MergeStrategy":{ "type":"string", "enum":[ @@ -6204,6 +6995,13 @@ "max":5, "min":1 }, + "MessageSelectionStrategy":{ + "type":"string", + "enum":[ + "Random", + "Ordered" + ] + }, "MessageVariationsList":{ "type":"list", "member":{"shape":"Message"}, @@ -6227,6 +7025,25 @@ "min":1, "pattern":"^([0-9a-zA-Z][_-]?)+$" }, + "NewCustomVocabularyItem":{ + "type":"structure", + "required":["phrase"], + "members":{ + "phrase":{ + "shape":"Phrase", + "documentation":"

The unique phrase for the new custom vocabulary item from the custom vocabulary list.

" + }, + "weight":{ + "shape":"Weight", + "documentation":"

The weight assigned to the new custom vocabulary item from the custom vocabulary list.

" + }, + "displayAs":{ + "shape":"Phrase", + "documentation":"

The display as value assigned to the new custom vocabulary item from the custom vocabulary list.

" + } + }, + "documentation":"

The new custom vocabulary item from the custom vocabulary list.

" + }, "NextIndex":{ "type":"integer", "box":true, @@ -6234,6 +7051,10 @@ "min":0 }, "NextToken":{"type":"string"}, + "NonEmptyString":{ + "type":"string", + "min":1 + }, "NumericalBotVersion":{ "type":"string", "max":5, @@ -6318,6 +7139,11 @@ }, "documentation":"

The object that contains a path format that will be applied when Amazon Lex reads the transcript file in the bucket you provide. Specify this object if you only want Lex to read a subset of files in your Amazon S3 bucket.

" }, + "Phrase":{ + "type":"string", + "max":100, + "min":1 + }, "PlainTextMessage":{ "type":"structure", "required":["value"], @@ -6338,12 +7164,69 @@ "type":"string", "min":2 }, + "PostDialogCodeHookInvocationSpecification":{ + "type":"structure", + "members":{ + "successResponse":{"shape":"ResponseSpecification"}, + "successNextStep":{ + "shape":"DialogState", + "documentation":"

Specifics the next step the bot runs after the dialog code hook finishes successfully.

" + }, + "successConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate after the dialog code hook finishes successfully.

" + }, + "failureResponse":{"shape":"ResponseSpecification"}, + "failureNextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step the bot runs after the dialog code hook throws an exception or returns with the State field of the Intent object set to Failed.

" + }, + "failureConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate after the dialog code hook throws an exception or returns with the State field of the Intent object set to Failed.

" + }, + "timeoutResponse":{"shape":"ResponseSpecification"}, + "timeoutNextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step that the bot runs when the code hook times out.

" + }, + "timeoutConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate if the code hook times out.

" + } + }, + "documentation":"

Specifies next steps to run after the dialog code hook finishes.

" + }, "PostFulfillmentStatusSpecification":{ "type":"structure", "members":{ "successResponse":{"shape":"ResponseSpecification"}, "failureResponse":{"shape":"ResponseSpecification"}, - "timeoutResponse":{"shape":"ResponseSpecification"} + "timeoutResponse":{"shape":"ResponseSpecification"}, + "successNextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step in the conversation that Amazon Lex invokes when the fulfillment code hook completes successfully.

" + }, + "successConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate after the fulfillment code hook finishes successfully.

" + }, + "failureNextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step the bot runs after the fulfillment code hook throws an exception or returns with the State field of the Intent object set to Failed.

" + }, + "failureConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate after the fulfillment code hook throws an exception or returns with the State field of the Intent object set to Failed.

" + }, + "timeoutNextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step that the bot runs when the fulfillment code hook times out.

" + }, + "timeoutConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate if the fulfillment code hook times out.

" + } }, "documentation":"

Provides a setting that determines whether the post-fulfillment response is sent to the user. For more information, see https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete

" }, @@ -6390,6 +7273,46 @@ "max":100, "min":0 }, + "PromptAttempt":{ + "type":"string", + "documentation":"

The attempt name of attempts of a prompt.

", + "enum":[ + "Initial", + "Retry1", + "Retry2", + "Retry3", + "Retry4", + "Retry5" + ] + }, + "PromptAttemptSpecification":{ + "type":"structure", + "required":["allowedInputTypes"], + "members":{ + "allowInterrupt":{ + "shape":"BoxedBoolean", + "documentation":"

Indicates whether the user can interrupt a speech prompt attempt from the bot.

" + }, + "allowedInputTypes":{ + "shape":"AllowedInputTypes", + "documentation":"

Indicates the allowed input types of the prompt attempt.

" + }, + "audioAndDTMFInputSpecification":{ + "shape":"AudioAndDTMFInputSpecification", + "documentation":"

Specifies the settings on audio and DTMF input.

" + }, + "textInputSpecification":{ + "shape":"TextInputSpecification", + "documentation":"

Specifies the settings on text input.

" + } + }, + "documentation":"

Specifies the settings on a prompt attempt.

" + }, + "PromptAttemptsSpecificationMap":{ + "type":"map", + "key":{"shape":"PromptAttempt"}, + "value":{"shape":"PromptAttemptSpecification"} + }, "PromptMaxRetries":{ "type":"integer", "max":5, @@ -6413,6 +7336,14 @@ "allowInterrupt":{ "shape":"BoxedBoolean", "documentation":"

Indicates whether the user can interrupt a speech prompt from the bot.

" + }, + "messageSelectionStrategy":{ + "shape":"MessageSelectionStrategy", + "documentation":"

Indicates how a message is selected from a message group among retries.

" + }, + "promptAttemptsSpecification":{ + "shape":"PromptAttemptsSpecificationMap", + "documentation":"

Specifies the advanced settings on each attempt of the prompt.

" } }, "documentation":"

Specifies a list of message groups that Amazon Lex sends to a user to elicit a response.

" @@ -6753,6 +7684,38 @@ "min":60 }, "SkipResourceInUseCheck":{"type":"boolean"}, + "SlotCaptureSetting":{ + "type":"structure", + "members":{ + "captureResponse":{"shape":"ResponseSpecification"}, + "captureNextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step that the bot runs when the slot value is captured before the code hook times out.

" + }, + "captureConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate after the slot value is captured.

" + }, + "failureResponse":{"shape":"ResponseSpecification"}, + "failureNextStep":{ + "shape":"DialogState", + "documentation":"

Specifies the next step that the bot runs when the slot value code is not recognized.

" + }, + "failureConditional":{ + "shape":"ConditionalSpecification", + "documentation":"

A list of conditional branches to evaluate when the slot value isn't captured.

" + }, + "codeHook":{ + "shape":"DialogCodeHookInvocationSetting", + "documentation":"

Code hook called after Amazon Lex successfully captures a slot value.

" + }, + "elicitationCodeHook":{ + "shape":"ElicitationCodeHookInvocationSetting", + "documentation":"

Code hook called when Amazon Lex doesn't capture a slot value.

" + } + }, + "documentation":"

Settings used when Amazon Lex successfully captures a slot value from a user.

" + }, "SlotConstraint":{ "type":"string", "enum":[ @@ -6855,6 +7818,13 @@ }, "documentation":"

Sets the priority that Amazon Lex should use when eliciting slot values from a user.

" }, + "SlotShape":{ + "type":"string", + "enum":[ + "Scalar", + "List" + ] + }, "SlotSortAttribute":{ "type":"string", "enum":[ @@ -6923,7 +7893,8 @@ "enum":[ "Custom", "Extended", - "ExternalGrammar" + "ExternalGrammar", + "Composite" ] }, "SlotTypeFilter":{ @@ -7059,6 +8030,16 @@ "max":10000, "min":1 }, + "SlotValue":{ + "type":"structure", + "members":{ + "interpretedValue":{ + "shape":"NonEmptyString", + "documentation":"

The value that Amazon Lex determines for the slot. The actual value depends on the setting of the value selection strategy for the bot. You can choose to use the value entered by the user, or you can have Amazon Lex choose the first value in the resolvedValues list.

" + } + }, + "documentation":"

The value to set in a slot.

" + }, "SlotValueElicitationSetting":{ "type":"structure", "required":["slotConstraint"], @@ -7079,9 +8060,36 @@ "shape":"SampleUtterancesList", "documentation":"

If you know a specific pattern that users might respond to an Amazon Lex request for a slot value, you can provide those utterances to improve accuracy. This is optional. In most cases, Amazon Lex is capable of understanding user utterances.

" }, - "waitAndContinueSpecification":{"shape":"WaitAndContinueSpecification"} + "waitAndContinueSpecification":{"shape":"WaitAndContinueSpecification"}, + "slotCaptureSetting":{ + "shape":"SlotCaptureSetting", + "documentation":"

Specifies the settings that Amazon Lex uses when a slot value is successfully entered by a user.

" + } }, - "documentation":"

Settings that you can use for eliciting a slot value.

" + "documentation":"

Specifies the elicitation setting details for constituent sub slots of a composite slot.

" + }, + "SlotValueOverride":{ + "type":"structure", + "members":{ + "shape":{ + "shape":"SlotShape", + "documentation":"

When the shape value is List, it indicates that the values field contains a list of slot values. When the value is Scalar, it indicates that the value field contains a single value.

" + }, + "value":{ + "shape":"SlotValue", + "documentation":"

The current value of the slot.

" + }, + "values":{ + "shape":"SlotValues", + "documentation":"

A list of one or more values that the user provided for the slot. For example, for a slot that elicits pizza toppings, the values might be \"pepperoni\" and \"pineapple.\"

" + } + }, + "documentation":"

The slot values that Amazon Lex uses when it sets slot values in a dialog step.

" + }, + "SlotValueOverrideMap":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"SlotValueOverride"} }, "SlotValueRegexFilter":{ "type":"structure", @@ -7098,7 +8106,8 @@ "type":"string", "enum":[ "OriginalValue", - "TopResolution" + "TopResolution", + "Concatenation" ] }, "SlotValueSelectionSetting":{ @@ -7120,6 +8129,10 @@ }, "documentation":"

Contains settings used by Amazon Lex to select a slot value.

" }, + "SlotValues":{ + "type":"list", + "member":{"shape":"SlotValueOverride"} + }, "SortOrder":{ "type":"string", "enum":[ @@ -7127,6 +8140,24 @@ "Descending" ] }, + "Specifications":{ + "type":"structure", + "required":[ + "slotTypeId", + "valueElicitationSetting" + ], + "members":{ + "slotTypeId":{ + "shape":"BuiltInOrCustomSlotTypeId", + "documentation":"

The unique identifier assigned to the slot type.

" + }, + "valueElicitationSetting":{ + "shape":"SubSlotValueElicitationSetting", + "documentation":"

Specifies the elicitation setting details for constituent sub slots of a composite slot.

" + } + }, + "documentation":"

Subslot specifications.

" + }, "StartBotRecommendationRequest":{ "type":"structure", "required":[ @@ -7289,6 +8320,137 @@ "max":900, "min":1 }, + "StopBotRecommendationRequest":{ + "type":"structure", + "required":[ + "botId", + "botVersion", + "localeId", + "botRecommendationId" + ], + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot containing the bot recommendation to be stopped.

", + "location":"uri", + "locationName":"botId" + }, + "botVersion":{ + "shape":"DraftBotVersion", + "documentation":"

The version of the bot containing the bot recommendation.

", + "location":"uri", + "locationName":"botVersion" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The identifier of the language and locale of the bot recommendation to stop. The string must match one of the supported locales. For more information, see Supported languages

", + "location":"uri", + "locationName":"localeId" + }, + "botRecommendationId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot recommendation to be stopped.

", + "location":"uri", + "locationName":"botRecommendationId" + } + } + }, + "StopBotRecommendationResponse":{ + "type":"structure", + "members":{ + "botId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot containing the bot recommendation that is being stopped.

" + }, + "botVersion":{ + "shape":"DraftBotVersion", + "documentation":"

The version of the bot containing the recommendation that is being stopped.

" + }, + "localeId":{ + "shape":"LocaleId", + "documentation":"

The identifier of the language and locale of the bot response to stop. The string must match one of the supported locales. For more information, see Supported languages

" + }, + "botRecommendationStatus":{ + "shape":"BotRecommendationStatus", + "documentation":"

The status of the bot recommendation. If the status is Failed, then the reasons for the failure are listed in the failureReasons field.

" + }, + "botRecommendationId":{ + "shape":"Id", + "documentation":"

The unique identifier of the bot recommendation that is being stopped.

" + } + } + }, + "String":{"type":"string"}, + "StringMap":{ + "type":"map", + "key":{"shape":"NonEmptyString"}, + "value":{"shape":"String"} + }, + "SubSlotExpression":{ + "type":"string", + "max":640, + "min":0, + "pattern":"[0-9A-Za-z_\\-\\s\\(\\)]+" + }, + "SubSlotSetting":{ + "type":"structure", + "members":{ + "expression":{ + "shape":"SubSlotExpression", + "documentation":"

The expression text for defining the constituent sub slots in the composite slot using logical AND and OR operators.

" + }, + "slotSpecifications":{ + "shape":"SubSlotSpecificationMap", + "documentation":"

Specifications for the constituent sub slots of a composite slot.

" + } + }, + "documentation":"

Specifications for the constituent sub slots and the expression for the composite slot.

" + }, + "SubSlotSpecificationMap":{ + "type":"map", + "key":{"shape":"Name"}, + "value":{"shape":"Specifications"}, + "max":6, + "min":0 + }, + "SubSlotTypeComposition":{ + "type":"structure", + "required":[ + "name", + "slotTypeId" + ], + "members":{ + "name":{ + "shape":"Name", + "documentation":"

Name of a constituent sub slot inside a composite slot.

" + }, + "slotTypeId":{ + "shape":"BuiltInOrCustomSlotTypeId", + "documentation":"

The unique identifier assigned to a slot type. This refers to either a built-in slot type or the unique slotTypeId of a custom slot type.

" + } + }, + "documentation":"

Subslot type composition.

" + }, + "SubSlotTypeList":{ + "type":"list", + "member":{"shape":"SubSlotTypeComposition"}, + "max":6, + "min":0 + }, + "SubSlotValueElicitationSetting":{ + "type":"structure", + "required":["promptSpecification"], + "members":{ + "defaultValueSpecification":{"shape":"SlotDefaultValueSpecification"}, + "promptSpecification":{"shape":"PromptSpecification"}, + "sampleUtterances":{ + "shape":"SampleUtterancesList", + "documentation":"

If you know a specific pattern that users might respond to an Amazon Lex request for a sub slot value, you can provide those utterances to improve accuracy. This is optional. In most cases Amazon Lex is capable of understanding user utterances. This is similar to SampleUtterances for slots.

" + }, + "waitAndContinueSpecification":{"shape":"WaitAndContinueSpecification"} + }, + "documentation":"

Subslot elicitation settings.

DefaultValueSpecification is a list of default values for a constituent sub slot in a composite slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, session attributes, and defined values. This is similar to DefaultValueSpecification for slots.

PromptSpecification is the prompt that Amazon Lex uses to elicit the sub slot value from the user. This is similar to PromptSpecification for slots.

" + }, "SynonymList":{ "type":"list", "member":{"shape":"SampleValue"}, @@ -7342,6 +8504,17 @@ "max":256, "min":0 }, + "TextInputSpecification":{ + "type":"structure", + "required":["startTimeoutMs"], + "members":{ + "startTimeoutMs":{ + "shape":"TimeInMilliSeconds", + "documentation":"

Time for which a bot waits before re-prompting a customer for text input.

" + } + }, + "documentation":"

Specifies the text input specifications.

" + }, "TextLogDestination":{ "type":"structure", "required":["cloudWatch"], @@ -7396,6 +8569,10 @@ "Weeks" ] }, + "TimeInMilliSeconds":{ + "type":"integer", + "min":1 + }, "TimeValue":{ "type":"integer", "max":24, @@ -7801,6 +8978,12 @@ } } }, + "UpdateCustomVocabularyItemsList":{ + "type":"list", + "member":{"shape":"CustomVocabularyItem"}, + "max":10, + "min":1 + }, "UpdateExportRequest":{ "type":"structure", "required":["exportId"], @@ -7927,6 +9110,10 @@ "documentation":"

The identifier of the language and locale where this intent is used. The string must match one of the supported locales. For more information, see Supported languages.

", "location":"uri", "locationName":"localeId" + }, + "initialResponseSetting":{ + "shape":"InitialResponseSetting", + "documentation":"

" } } }, @@ -8004,6 +9191,10 @@ "lastUpdatedDateTime":{ "shape":"Timestamp", "documentation":"

A timestamp of the last time that the intent was modified.

" + }, + "initialResponseSetting":{ + "shape":"InitialResponseSetting", + "documentation":"

" } } }, @@ -8110,6 +9301,10 @@ "multipleValuesSetting":{ "shape":"MultipleValuesSetting", "documentation":"

Determines whether the slot accepts multiple values in one response. Multiple value slots are only available in the en-US locale. If you set this value to true in any other locale, Amazon Lex throws a ValidationException.

If the multipleValuesSetting is not set, the default value is false.

" + }, + "subSlotSetting":{ + "shape":"SubSlotSetting", + "documentation":"

Specifications for the constituent sub slots and the expression for the composite slot.

" } } }, @@ -8167,6 +9362,10 @@ "multipleValuesSetting":{ "shape":"MultipleValuesSetting", "documentation":"

Indicates whether the slot accepts multiple values in one response.

" + }, + "subSlotSetting":{ + "shape":"SubSlotSetting", + "documentation":"

Specifications for the constituent sub slots and the expression for the composite slot.

" } } }, @@ -8224,7 +9423,11 @@ "location":"uri", "locationName":"localeId" }, - "externalSourceSetting":{"shape":"ExternalSourceSetting"} + "externalSourceSetting":{"shape":"ExternalSourceSetting"}, + "compositeSlotTypeSetting":{ + "shape":"CompositeSlotTypeSetting", + "documentation":"

Specifications for a composite slot type.

" + } } }, "UpdateSlotTypeResponse":{ @@ -8274,7 +9477,11 @@ "shape":"Timestamp", "documentation":"

A timestamp of the date and time that the slot type was last updated.

" }, - "externalSourceSetting":{"shape":"ExternalSourceSetting"} + "externalSourceSetting":{"shape":"ExternalSourceSetting"}, + "compositeSlotTypeSetting":{ + "shape":"CompositeSlotTypeSetting", + "documentation":"

Specifications for a composite slot type.

" + } } }, "Utterance":{"type":"string"}, @@ -8351,6 +9558,12 @@ } }, "documentation":"

Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input.

" + }, + "Weight":{ + "type":"integer", + "box":true, + "max":3, + "min":1 } }, "documentation":"

" diff --git a/botocore/data/lexv2-runtime/2020-08-07/endpoint-rule-set-1.json b/botocore/data/lexv2-runtime/2020-08-07/endpoint-rule-set-1.json new file mode 100644 index 00000000..466bbdab --- /dev/null +++ b/botocore/data/lexv2-runtime/2020-08-07/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime-v2-lex-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime-v2-lex-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime-v2-lex.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://runtime-v2-lex.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lexv2-runtime/2020-08-07/examples-1.json b/botocore/data/lexv2-runtime/2020-08-07/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/lexv2-runtime/2020-08-07/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/lexv2-runtime/2020-08-07/service-2.json b/botocore/data/lexv2-runtime/2020-08-07/service-2.json index ae9bd175..82330877 100644 --- a/botocore/data/lexv2-runtime/2020-08-07/service-2.json +++ b/botocore/data/lexv2-runtime/2020-08-07/service-2.json @@ -343,7 +343,7 @@ "sessionState":{"shape":"SessionState"}, "welcomeMessages":{ "shape":"Messages", - "documentation":"

A list of messages to send to the user.

" + "documentation":"

A list of messages to send to the user.

If you set the welcomeMessage field, you must also set the DialogAction structure's type field.

" }, "disablePlayback":{ "shape":"Boolean", @@ -485,7 +485,7 @@ "members":{ "type":{ "shape":"DialogActionType", - "documentation":"

The next action that the bot should take in its interaction with the user. The possible values are:

  • Close - Indicates that there will not be a response from the user. For example, the statement \"Your order has been placed\" does not require a response.

  • ConfirmIntent - The next action is asking the user if the intent is complete and ready to be fulfilled. This is a yes/no question such as \"Place the order?\"

  • Delegate - The next action is determined by Amazon Lex V2.

  • ElicitSlot - The next action is to elicit a slot value from the user.

" + "documentation":"

The next action that the bot should take in its interaction with the user. The possible values are:

  • Close - Indicates that there will not be a response from the user. For example, the statement \"Your order has been placed\" does not require a response.

  • ConfirmIntent - The next action is asking the user if the intent is complete and ready to be fulfilled. This is a yes/no question such as \"Place the order?\"

  • Delegate - The next action is determined by Amazon Lex V2.

  • ElicitIntent - The next action is to elicit an intent from the user.

  • ElicitSlot - The next action is to elicit a slot value from the user.

" }, "slotToElicit":{ "shape":"NonEmptyString", @@ -494,6 +494,10 @@ "slotElicitationStyle":{ "shape":"StyleType", "documentation":"

Configures the slot to use spell-by-letter or spell-by-word style. When you use a style on a slot, users can spell out their input to make it clear to your bot.

  • Spell by letter - \"b\" \"o\" \"b\"

  • Spell by word - \"b as in boy\" \"o as in oscar\" \"b as in boy\"

For more information, see Using spelling to enter slot values .

" + }, + "subSlotToElicit":{ + "shape":"ElicitSubSlot", + "documentation":"

The name of the constituent sub slot of the composite slot specified in slotToElicit that should be elicited from the user.

" } }, "documentation":"

The next action that Amazon Lex V2 should take.

" @@ -525,6 +529,21 @@ "event":true }, "Double":{"type":"double"}, + "ElicitSubSlot":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"NonEmptyString", + "documentation":"

The name of the slot that should be elicited from the user.

" + }, + "subSlotToElicit":{ + "shape":"ElicitSubSlot", + "documentation":"

The field is not supported.

" + } + }, + "documentation":"

The specific constituent sub slot of the composite slot to elicit in dialog action.

" + }, "EpochMillis":{"type":"long"}, "EventId":{ "type":"string", @@ -1119,11 +1138,14 @@ }, "RuntimeHintDetails":{ "type":"structure", - "required":["runtimeHintValues"], "members":{ "runtimeHintValues":{ "shape":"RuntimeHintValuesList", "documentation":"

One or more strings that Amazon Lex V2 should look for in the input to the bot. Each phrase is given preference when deciding on slot values.

" + }, + "subSlotHints":{ + "shape":"SlotHintsSlotMap", + "documentation":"

A map of constituent sub slot names inside a composite slot in the intent and the phrases that should be added for each sub slot. Inside each composite slot hints, this structure provides a mechanism to add granular sub slot phrases. Only sub slot hints are supported for composite slots. The intent name, composite slot name and the constituent sub slot names must exist.

" } }, "documentation":"

Provides an array of phrases that should be given preference when resolving values for a slot.

" @@ -1155,10 +1177,10 @@ "members":{ "slotHints":{ "shape":"SlotHintsIntentMap", - "documentation":"

A list of the slots in the intent that should have runtime hints added, and the phrases that should be added for each slot.

The first level of the slotHints map is the name of the intent. The second level is the name of the slot within the intent. For more information, see Using hints to improve accuracy.

The intent name and slot name must exist.

" + "documentation":"

A list of the slots in the intent that should have runtime hints added, and the phrases that should be added for each slot.

The first level of the slotHints map is the name of the intent. The second level is the name of the slot within the intent. For more information, see Using hints to improve accuracy.

The intent name and slot name must exist.

" } }, - "documentation":"

You can provide Amazon Lex V2 with hints to the phrases that a customer is likely to use for a slot. When a slot with hints is resolved, the phrases in the runtime hints are preferred in the resolution. You can provide hints for a maximum of 100 intents. You can provide a maximum of 100 slots.

Before you can use runtime hints with an existing bot, you must first rebuild the bot.

For more information, see Using hints to improve accuracy.

" + "documentation":"

You can provide Amazon Lex V2 with hints to the phrases that a customer is likely to use for a slot. When a slot with hints is resolved, the phrases in the runtime hints are preferred in the resolution. You can provide hints for a maximum of 100 intents. You can provide a maximum of 100 slots.

Before you can use runtime hints with an existing bot, you must first rebuild the bot.

For more information, see Using runtime hints to improve recognition of slot values.

" }, "SensitiveNonEmptyString":{ "type":"string", @@ -1246,7 +1268,8 @@ "type":"string", "enum":[ "Scalar", - "List" + "List", + "Composite" ] }, "Slot":{ @@ -1263,6 +1286,10 @@ "values":{ "shape":"Values", "documentation":"

A list of one or more values that the user provided for the slot. For example, if a for a slot that elicits pizza toppings, the values might be \"pepperoni\" and \"pineapple.\"

" + }, + "subSlots":{ + "shape":"Slots", + "documentation":"

The constituent sub slots of a composite slot.

" } }, "documentation":"

A value that Amazon Lex V2 uses to fulfill an intent.

" diff --git a/botocore/data/license-manager-user-subscriptions/2018-05-10/endpoint-rule-set-1.json b/botocore/data/license-manager-user-subscriptions/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..cce231cf --- /dev/null +++ b/botocore/data/license-manager-user-subscriptions/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://license-manager-user-subscriptions.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://license-manager-user-subscriptions.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/license-manager-user-subscriptions/2018-05-10/paginators-1.json b/botocore/data/license-manager-user-subscriptions/2018-05-10/paginators-1.json new file mode 100644 index 00000000..a212681a --- /dev/null +++ b/botocore/data/license-manager-user-subscriptions/2018-05-10/paginators-1.json @@ -0,0 +1,28 @@ +{ + "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" + } + } +} diff --git a/botocore/data/license-manager-user-subscriptions/2018-05-10/service-2.json b/botocore/data/license-manager-user-subscriptions/2018-05-10/service-2.json new file mode 100644 index 00000000..6ee109c1 --- /dev/null +++ b/botocore/data/license-manager-user-subscriptions/2018-05-10/service-2.json @@ -0,0 +1,950 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-05-10", + "endpointPrefix":"license-manager-user-subscriptions", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS License Manager User Subscriptions", + "serviceId":"License Manager User Subscriptions", + "signatureVersion":"v4", + "signingName":"license-manager-user-subscriptions", + "uid":"license-manager-user-subscriptions-2018-05-10" + }, + "operations":{ + "AssociateUser":{ + "name":"AssociateUser", + "http":{ + "method":"POST", + "requestUri":"/user/AssociateUser", + "responseCode":200 + }, + "input":{"shape":"AssociateUserRequest"}, + "output":{"shape":"AssociateUserResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Associates the user to an EC2 instance to utilize user-based subscriptions.

Your estimated bill for charges on the number of users and related costs will take 48 hours to appear for billing periods that haven't closed (marked as Pending billing status) in Amazon Web Services Billing. For more information, see Viewing your monthly charges in the Amazon Web Services Billing User Guide.

", + "idempotent":true + }, + "DeregisterIdentityProvider":{ + "name":"DeregisterIdentityProvider", + "http":{ + "method":"POST", + "requestUri":"/identity-provider/DeregisterIdentityProvider", + "responseCode":200 + }, + "input":{"shape":"DeregisterIdentityProviderRequest"}, + "output":{"shape":"DeregisterIdentityProviderResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deregisters the identity provider from providing user-based subscriptions.

", + "idempotent":true + }, + "DisassociateUser":{ + "name":"DisassociateUser", + "http":{ + "method":"POST", + "requestUri":"/user/DisassociateUser", + "responseCode":200 + }, + "input":{"shape":"DisassociateUserRequest"}, + "output":{"shape":"DisassociateUserResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Disassociates the user from an EC2 instance providing user-based subscriptions.

", + "idempotent":true + }, + "ListIdentityProviders":{ + "name":"ListIdentityProviders", + "http":{ + "method":"POST", + "requestUri":"/identity-provider/ListIdentityProviders", + "responseCode":200 + }, + "input":{"shape":"ListIdentityProvidersRequest"}, + "output":{"shape":"ListIdentityProvidersResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the identity providers for user-based subscriptions.

" + }, + "ListInstances":{ + "name":"ListInstances", + "http":{ + "method":"POST", + "requestUri":"/instance/ListInstances", + "responseCode":200 + }, + "input":{"shape":"ListInstancesRequest"}, + "output":{"shape":"ListInstancesResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the EC2 instances providing user-based subscriptions.

" + }, + "ListProductSubscriptions":{ + "name":"ListProductSubscriptions", + "http":{ + "method":"POST", + "requestUri":"/user/ListProductSubscriptions", + "responseCode":200 + }, + "input":{"shape":"ListProductSubscriptionsRequest"}, + "output":{"shape":"ListProductSubscriptionsResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the user-based subscription products available from an identity provider.

" + }, + "ListUserAssociations":{ + "name":"ListUserAssociations", + "http":{ + "method":"POST", + "requestUri":"/user/ListUserAssociations", + "responseCode":200 + }, + "input":{"shape":"ListUserAssociationsRequest"}, + "output":{"shape":"ListUserAssociationsResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists user associations for an identity provider.

" + }, + "RegisterIdentityProvider":{ + "name":"RegisterIdentityProvider", + "http":{ + "method":"POST", + "requestUri":"/identity-provider/RegisterIdentityProvider", + "responseCode":200 + }, + "input":{"shape":"RegisterIdentityProviderRequest"}, + "output":{"shape":"RegisterIdentityProviderResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Registers an identity provider for user-based subscriptions.

", + "idempotent":true + }, + "StartProductSubscription":{ + "name":"StartProductSubscription", + "http":{ + "method":"POST", + "requestUri":"/user/StartProductSubscription", + "responseCode":200 + }, + "input":{"shape":"StartProductSubscriptionRequest"}, + "output":{"shape":"StartProductSubscriptionResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Starts a product subscription for a user with the specified identity provider.

Your estimated bill for charges on the number of users and related costs will take 48 hours to appear for billing periods that haven't closed (marked as Pending billing status) in Amazon Web Services Billing. For more information, see Viewing your monthly charges in the Amazon Web Services Billing User Guide.

" + }, + "StopProductSubscription":{ + "name":"StopProductSubscription", + "http":{ + "method":"POST", + "requestUri":"/user/StopProductSubscription", + "responseCode":200 + }, + "input":{"shape":"StopProductSubscriptionRequest"}, + "output":{"shape":"StopProductSubscriptionResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Stops a product subscription for a user with the specified identity provider.

" + }, + "UpdateIdentityProviderSettings":{ + "name":"UpdateIdentityProviderSettings", + "http":{ + "method":"POST", + "requestUri":"/identity-provider/UpdateIdentityProviderSettings", + "responseCode":200 + }, + "input":{"shape":"UpdateIdentityProviderSettingsRequest"}, + "output":{"shape":"UpdateIdentityProviderSettingsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates additional product configuration settings for the registered identity provider.

", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You don't have sufficient access to perform this action.

", + "exception":true + }, + "ActiveDirectoryIdentityProvider":{ + "type":"structure", + "members":{ + "DirectoryId":{ + "shape":"String", + "documentation":"

The directory ID for an Active Directory identity provider.

" + } + }, + "documentation":"

Details about an Active Directory identity provider.

" + }, + "AssociateUserRequest":{ + "type":"structure", + "required":[ + "IdentityProvider", + "InstanceId", + "Username" + ], + "members":{ + "Domain":{ + "shape":"String", + "documentation":"

The domain name of the user.

" + }, + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

The identity provider of the user.

" + }, + "InstanceId":{ + "shape":"String", + "documentation":"

The ID of the EC2 instance, which provides user-based subscriptions.

" + }, + "Username":{ + "shape":"String", + "documentation":"

The user name from the identity provider for the user.

" + } + } + }, + "AssociateUserResponse":{ + "type":"structure", + "required":["InstanceUserSummary"], + "members":{ + "InstanceUserSummary":{ + "shape":"InstanceUserSummary", + "documentation":"

Metadata that describes the associate user operation.

" + } + } + }, + "BoxInteger":{ + "type":"integer", + "box":true + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request couldn't be completed because it conflicted with the current state of the resource.

", + "exception":true, + "fault":true + }, + "DeregisterIdentityProviderRequest":{ + "type":"structure", + "required":[ + "IdentityProvider", + "Product" + ], + "members":{ + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "Product":{ + "shape":"String", + "documentation":"

The name of the user-based subscription product.

" + } + } + }, + "DeregisterIdentityProviderResponse":{ + "type":"structure", + "required":["IdentityProviderSummary"], + "members":{ + "IdentityProviderSummary":{ + "shape":"IdentityProviderSummary", + "documentation":"

Metadata that describes the results of an identity provider operation.

" + } + } + }, + "DisassociateUserRequest":{ + "type":"structure", + "required":[ + "IdentityProvider", + "InstanceId", + "Username" + ], + "members":{ + "Domain":{ + "shape":"String", + "documentation":"

The domain name of the user.

" + }, + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "InstanceId":{ + "shape":"String", + "documentation":"

The ID of the EC2 instance, which provides user-based subscriptions.

" + }, + "Username":{ + "shape":"String", + "documentation":"

The user name from the identity provider for the user.

" + } + } + }, + "DisassociateUserResponse":{ + "type":"structure", + "required":["InstanceUserSummary"], + "members":{ + "InstanceUserSummary":{ + "shape":"InstanceUserSummary", + "documentation":"

Metadata that describes the associate user operation.

" + } + } + }, + "Filter":{ + "type":"structure", + "members":{ + "Attribute":{ + "shape":"String", + "documentation":"

The name of an attribute to use as a filter.

" + }, + "Operation":{ + "shape":"String", + "documentation":"

The type of search (For example, eq, geq, leq)

" + }, + "Value":{ + "shape":"String", + "documentation":"

Value of the filter.

" + } + }, + "documentation":"

A filter name and value pair that is used to return more specific results from a describe operation. Filters can be used to match a set of resources by specific criteria, such as tags, attributes, or IDs.

" + }, + "FilterList":{ + "type":"list", + "member":{"shape":"Filter"} + }, + "IdentityProvider":{ + "type":"structure", + "members":{ + "ActiveDirectoryIdentityProvider":{ + "shape":"ActiveDirectoryIdentityProvider", + "documentation":"

An object that details an Active Directory identity provider.

" + } + }, + "documentation":"

Details about an identity provider.

", + "union":true + }, + "IdentityProviderSummary":{ + "type":"structure", + "required":[ + "IdentityProvider", + "Product", + "Settings", + "Status" + ], + "members":{ + "FailureMessage":{ + "shape":"String", + "documentation":"

The failure message associated with an identity provider.

" + }, + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "Product":{ + "shape":"String", + "documentation":"

The name of the user-based subscription product.

" + }, + "Settings":{ + "shape":"Settings", + "documentation":"

An object that details the registered identity provider’s product related configuration settings such as the subnets to provision VPC endpoints.

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of an identity provider.

" + } + }, + "documentation":"

Describes an identity provider.

" + }, + "IdentityProviderSummaryList":{ + "type":"list", + "member":{"shape":"IdentityProviderSummary"} + }, + "InstanceSummary":{ + "type":"structure", + "required":[ + "InstanceId", + "Products", + "Status" + ], + "members":{ + "InstanceId":{ + "shape":"String", + "documentation":"

The ID of the EC2 instance, which provides user-based subscriptions.

" + }, + "LastStatusCheckDate":{ + "shape":"String", + "documentation":"

The date of the last status check.

" + }, + "Products":{ + "shape":"StringList", + "documentation":"

A list of provided user-based subscription products.

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of an EC2 instance resource.

" + }, + "StatusMessage":{ + "shape":"String", + "documentation":"

The status message for an EC2 instance.

" + } + }, + "documentation":"

Describes an EC2 instance providing user-based subscriptions.

" + }, + "InstanceSummaryList":{ + "type":"list", + "member":{"shape":"InstanceSummary"} + }, + "InstanceUserSummary":{ + "type":"structure", + "required":[ + "IdentityProvider", + "InstanceId", + "Status", + "Username" + ], + "members":{ + "AssociationDate":{ + "shape":"String", + "documentation":"

The date a user was associated with an EC2 instance.

" + }, + "DisassociationDate":{ + "shape":"String", + "documentation":"

The date a user was disassociated from an EC2 instance.

" + }, + "Domain":{ + "shape":"String", + "documentation":"

The domain name of the user.

" + }, + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "InstanceId":{ + "shape":"String", + "documentation":"

The ID of the EC2 instance, which provides user-based subscriptions.

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of a user associated with an EC2 instance.

" + }, + "StatusMessage":{ + "shape":"String", + "documentation":"

The status message for users of an EC2 instance.

" + }, + "Username":{ + "shape":"String", + "documentation":"

The user name from the identity provider for the user.

" + } + }, + "documentation":"

Describes users of an EC2 instance providing user-based subscriptions.

" + }, + "InstanceUserSummaryList":{ + "type":"list", + "member":{"shape":"InstanceUserSummary"} + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

An exception occurred with the service.

", + "exception":true, + "fault":true + }, + "ListIdentityProvidersRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"BoxInteger", + "documentation":"

Maximum number of results to return in a single call.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + } + } + }, + "ListIdentityProvidersResponse":{ + "type":"structure", + "required":["IdentityProviderSummaries"], + "members":{ + "IdentityProviderSummaries":{ + "shape":"IdentityProviderSummaryList", + "documentation":"

Metadata that describes the list identity providers operation.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + } + } + }, + "ListInstancesRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

An array of structures that you can use to filter the results to those that match one or more sets of key-value pairs that you specify.

" + }, + "MaxResults":{ + "shape":"BoxInteger", + "documentation":"

Maximum number of results to return in a single call.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + } + } + }, + "ListInstancesResponse":{ + "type":"structure", + "members":{ + "InstanceSummaries":{ + "shape":"InstanceSummaryList", + "documentation":"

Metadata that describes the list instances operation.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + } + } + }, + "ListProductSubscriptionsRequest":{ + "type":"structure", + "required":[ + "IdentityProvider", + "Product" + ], + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

An array of structures that you can use to filter the results to those that match one or more sets of key-value pairs that you specify.

" + }, + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "MaxResults":{ + "shape":"BoxInteger", + "documentation":"

Maximum number of results to return in a single call.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + }, + "Product":{ + "shape":"String", + "documentation":"

The name of the user-based subscription product.

" + } + } + }, + "ListProductSubscriptionsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + }, + "ProductUserSummaries":{ + "shape":"ProductUserSummaryList", + "documentation":"

Metadata that describes the list product subscriptions operation.

" + } + } + }, + "ListUserAssociationsRequest":{ + "type":"structure", + "required":[ + "IdentityProvider", + "InstanceId" + ], + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

An array of structures that you can use to filter the results to those that match one or more sets of key-value pairs that you specify.

" + }, + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "InstanceId":{ + "shape":"String", + "documentation":"

The ID of the EC2 instance, which provides user-based subscriptions.

" + }, + "MaxResults":{ + "shape":"BoxInteger", + "documentation":"

Maximum number of results to return in a single call.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + } + } + }, + "ListUserAssociationsResponse":{ + "type":"structure", + "members":{ + "InstanceUserSummaries":{ + "shape":"InstanceUserSummaryList", + "documentation":"

Metadata that describes the list user association operation.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + } + } + }, + "ProductUserSummary":{ + "type":"structure", + "required":[ + "IdentityProvider", + "Product", + "Status", + "Username" + ], + "members":{ + "Domain":{ + "shape":"String", + "documentation":"

The domain name of the user.

" + }, + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "Product":{ + "shape":"String", + "documentation":"

The name of the user-based subscription product.

" + }, + "Status":{ + "shape":"String", + "documentation":"

The status of a product for a user.

" + }, + "StatusMessage":{ + "shape":"String", + "documentation":"

The status message for a product for a user.

" + }, + "SubscriptionEndDate":{ + "shape":"String", + "documentation":"

The end date of a subscription.

" + }, + "SubscriptionStartDate":{ + "shape":"String", + "documentation":"

The start date of a subscription.

" + }, + "Username":{ + "shape":"String", + "documentation":"

The user name from the identity provider of the user.

" + } + }, + "documentation":"

The summary of the user-based subscription products for a user.

" + }, + "ProductUserSummaryList":{ + "type":"list", + "member":{"shape":"ProductUserSummary"} + }, + "RegisterIdentityProviderRequest":{ + "type":"structure", + "required":[ + "IdentityProvider", + "Product" + ], + "members":{ + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "Product":{ + "shape":"String", + "documentation":"

The name of the user-based subscription product.

" + }, + "Settings":{ + "shape":"Settings", + "documentation":"

The registered identity provider’s product related configuration settings such as the subnets to provision VPC endpoints.

" + } + } + }, + "RegisterIdentityProviderResponse":{ + "type":"structure", + "required":["IdentityProviderSummary"], + "members":{ + "IdentityProviderSummary":{ + "shape":"IdentityProviderSummary", + "documentation":"

Metadata that describes the results of an identity provider operation.

" + } + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The resource couldn't be found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SecurityGroup":{ + "type":"string", + "max":200, + "min":5, + "pattern":"^sg-(([0-9a-z]{8})|([0-9a-z]{17}))$" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request failed because a service quota is exceeded.

", + "exception":true + }, + "Settings":{ + "type":"structure", + "required":[ + "SecurityGroupId", + "Subnets" + ], + "members":{ + "SecurityGroupId":{ + "shape":"SecurityGroup", + "documentation":"

A security group ID that allows inbound TCP port 1688 communication between resources in your VPC and the VPC endpoint for activation servers.

" + }, + "Subnets":{ + "shape":"SettingsSubnetsList", + "documentation":"

The subnets defined for the registered identity provider.

" + } + }, + "documentation":"

The registered identity provider’s product related configuration settings such as the subnets to provision VPC endpoints, and the security group ID that is associated with the VPC endpoints. The security group should permit inbound TCP port 1688 communication from resources in the VPC.

" + }, + "SettingsSubnetsList":{ + "type":"list", + "member":{"shape":"Subnet"}, + "min":1 + }, + "StartProductSubscriptionRequest":{ + "type":"structure", + "required":[ + "IdentityProvider", + "Product", + "Username" + ], + "members":{ + "Domain":{ + "shape":"String", + "documentation":"

The domain name of the user.

" + }, + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "Product":{ + "shape":"String", + "documentation":"

The name of the user-based subscription product.

" + }, + "Username":{ + "shape":"String", + "documentation":"

The user name from the identity provider of the user.

" + } + } + }, + "StartProductSubscriptionResponse":{ + "type":"structure", + "required":["ProductUserSummary"], + "members":{ + "ProductUserSummary":{ + "shape":"ProductUserSummary", + "documentation":"

Metadata that describes the start product subscription operation.

" + } + } + }, + "StopProductSubscriptionRequest":{ + "type":"structure", + "required":[ + "IdentityProvider", + "Product", + "Username" + ], + "members":{ + "Domain":{ + "shape":"String", + "documentation":"

The domain name of the user.

" + }, + "IdentityProvider":{ + "shape":"IdentityProvider", + "documentation":"

An object that specifies details for the identity provider.

" + }, + "Product":{ + "shape":"String", + "documentation":"

The name of the user-based subscription product.

" + }, + "Username":{ + "shape":"String", + "documentation":"

The user name from the identity provider for the user.

" + } + } + }, + "StopProductSubscriptionResponse":{ + "type":"structure", + "required":["ProductUserSummary"], + "members":{ + "ProductUserSummary":{ + "shape":"ProductUserSummary", + "documentation":"

Metadata that describes the start product subscription operation.

" + } + } + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "Subnet":{ + "type":"string", + "pattern":"subnet-[a-z0-9]{8,17}" + }, + "Subnets":{ + "type":"list", + "member":{"shape":"Subnet"} + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied because of request throttling. Retry the request.

", + "exception":true + }, + "UpdateIdentityProviderSettingsRequest":{ + "type":"structure", + "required":[ + "IdentityProvider", + "Product", + "UpdateSettings" + ], + "members":{ + "IdentityProvider":{"shape":"IdentityProvider"}, + "Product":{ + "shape":"String", + "documentation":"

The name of the user-based subscription product.

" + }, + "UpdateSettings":{ + "shape":"UpdateSettings", + "documentation":"

Updates the registered identity provider’s product related configuration settings. You can update any combination of settings in a single operation such as the:

  • Subnets which you want to add to provision VPC endpoints.

  • Subnets which you want to remove the VPC endpoints from.

  • Security group ID which permits traffic to the VPC endpoints.

" + } + } + }, + "UpdateIdentityProviderSettingsResponse":{ + "type":"structure", + "required":["IdentityProviderSummary"], + "members":{ + "IdentityProviderSummary":{"shape":"IdentityProviderSummary"} + } + }, + "UpdateSettings":{ + "type":"structure", + "required":[ + "AddSubnets", + "RemoveSubnets" + ], + "members":{ + "AddSubnets":{ + "shape":"Subnets", + "documentation":"

The ID of one or more subnets in which License Manager will create a VPC endpoint for products that require connectivity to activation servers.

" + }, + "RemoveSubnets":{ + "shape":"Subnets", + "documentation":"

The ID of one or more subnets to remove.

" + }, + "SecurityGroupId":{ + "shape":"SecurityGroup", + "documentation":"

A security group ID that allows inbound TCP port 1688 communication between resources in your VPC and the VPC endpoints for activation servers.

" + } + }, + "documentation":"

Updates the registered identity provider’s product related configuration settings such as the subnets to provision VPC endpoints.

" + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

A parameter is not valid.

", + "exception":true + } + }, + "documentation":"

With License Manager, you can create user-based subscriptions to utilize licensed software with a per user subscription fee on Amazon EC2 instances.

" +} diff --git a/botocore/data/license-manager/2018-08-01/endpoint-rule-set-1.json b/botocore/data/license-manager/2018-08-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..dc19c346 --- /dev/null +++ b/botocore/data/license-manager/2018-08-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://license-manager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://license-manager-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://license-manager.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://license-manager.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/license-manager/2018-08-01/examples-1.json b/botocore/data/license-manager/2018-08-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/license-manager/2018-08-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/license-manager/2018-08-01/service-2.json b/botocore/data/license-manager/2018-08-01/service-2.json index 7f33eadc..5fdfee3e 100644 --- a/botocore/data/license-manager/2018-08-01/service-2.json +++ b/botocore/data/license-manager/2018-08-01/service-2.json @@ -94,7 +94,7 @@ {"shape":"RateLimitExceededException"}, {"shape":"ServerInternalException"} ], - "documentation":"

Checks out the specified license.

" + "documentation":"

Checks out the specified license.

If the account that created the license is the same that is performing the check out, you must specify the account as the beneficiary.

" }, "CreateGrant":{ "name":"CreateGrant", @@ -685,6 +685,25 @@ ], "documentation":"

Lists grants that are received but not accepted.

" }, + "ListReceivedGrantsForOrganization":{ + "name":"ListReceivedGrantsForOrganization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListReceivedGrantsForOrganizationRequest"}, + "output":{"shape":"ListReceivedGrantsForOrganizationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServerInternalException"}, + {"shape":"AuthorizationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RateLimitExceededException"} + ], + "documentation":"

Lists the grants received for all accounts in the organization.

" + }, "ListReceivedLicenses":{ "name":"ListReceivedLicenses", "http":{ @@ -704,6 +723,25 @@ ], "documentation":"

Lists received licenses.

" }, + "ListReceivedLicensesForOrganization":{ + "name":"ListReceivedLicensesForOrganization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListReceivedLicensesForOrganizationRequest"}, + "output":{"shape":"ListReceivedLicensesForOrganizationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"ServerInternalException"}, + {"shape":"AuthorizationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RateLimitExceededException"} + ], + "documentation":"

Lists the licenses received for all accounts in the organization.

" + }, "ListResourceInventory":{ "name":"ListResourceInventory", "http":{ @@ -1260,7 +1298,7 @@ }, "Principals":{ "shape":"PrincipalArnList", - "documentation":"

The grant principals.

" + "documentation":"

The grant principals. This value should be specified as an Amazon Resource Name (ARN).

" }, "HomeRegion":{ "shape":"String", @@ -1411,11 +1449,11 @@ }, "SourceLicenseContext":{ "shape":"LicenseConversionContext", - "documentation":"

Information that identifies the license type you are converting from. For the structure of the source license, see Convert a license type using the AWS CLI in the License Manager User Guide.

" + "documentation":"

Information that identifies the license type you are converting from. For the structure of the source license, see Convert a license type using the Amazon Web Services CLI in the License Manager User Guide.

" }, "DestinationLicenseContext":{ "shape":"LicenseConversionContext", - "documentation":"

Information that identifies the license type you are converting to. For the structure of the destination license, see Convert a license type using the AWS CLI in the License Manager User Guide.

" + "documentation":"

Information that identifies the license type you are converting to. For the structure of the destination license, see Convert a license type using the Amazon Web Services CLI in the License Manager User Guide.

" } } }, @@ -3235,6 +3273,41 @@ } } }, + "ListReceivedGrantsForOrganizationRequest":{ + "type":"structure", + "required":["LicenseArn"], + "members":{ + "LicenseArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the received license.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

Filters to scope the results. The following filters are supported:

  • ParentArn

  • GranteePrincipalArn

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxSize100", + "documentation":"

Maximum number of results to return in a single call.

" + } + } + }, + "ListReceivedGrantsForOrganizationResponse":{ + "type":"structure", + "members":{ + "Grants":{ + "shape":"GrantList", + "documentation":"

Lists the grants the organization has received.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + } + } + }, "ListReceivedGrantsRequest":{ "type":"structure", "members":{ @@ -3269,6 +3342,36 @@ } } }, + "ListReceivedLicensesForOrganizationRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

Filters to scope the results. The following filters are supported:

  • Beneficiary

  • ProductSKU

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxSize100", + "documentation":"

Maximum number of results to return in a single call.

" + } + } + }, + "ListReceivedLicensesForOrganizationResponse":{ + "type":"structure", + "members":{ + "Licenses":{ + "shape":"GrantedLicenseList", + "documentation":"

Lists the licenses the organization has received.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Token for the next set of results.

" + } + } + }, "ListReceivedLicensesRequest":{ "type":"structure", "members":{ diff --git a/botocore/data/lightsail/2016-11-28/endpoint-rule-set-1.json b/botocore/data/lightsail/2016-11-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..0efdd091 --- /dev/null +++ b/botocore/data/lightsail/2016-11-28/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lightsail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lightsail-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lightsail.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://lightsail.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lightsail/2016-11-28/service-2.json b/botocore/data/lightsail/2016-11-28/service-2.json index 55668bb8..98c987f7 100644 --- a/botocore/data/lightsail/2016-11-28/service-2.json +++ b/botocore/data/lightsail/2016-11-28/service-2.json @@ -1380,7 +1380,7 @@ {"shape":"AccessDeniedException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Returns the log events of a container of your Amazon Lightsail container service.

If your container service has more than one node (i.e., a scale greater than 1), then the log events that are returned for the specified container are merged from all nodes on your container service.

Container logs are retained for a certain amount of time. For more information, see Amazon Lightsail endpoints and quotas in the AWS General Reference.

" + "documentation":"

Returns the log events of a container of your Amazon Lightsail container service.

If your container service has more than one node (i.e., a scale greater than 1), then the log events that are returned for the specified container are merged from all nodes on your container service.

Container logs are retained for a certain amount of time. For more information, see Amazon Lightsail endpoints and quotas in the Amazon Web Services General Reference.

" }, "GetContainerServiceDeployments":{ "name":"GetContainerServiceDeployments", @@ -1397,7 +1397,7 @@ {"shape":"AccessDeniedException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Returns the deployments for your Amazon Lightsail container service

A deployment specifies the settings, such as the ports and launch command, of containers that are deployed to your container service.

The deployments are ordered by version in ascending order. The newest version is listed at the top of the response.

A set number of deployments are kept before the oldest one is replaced with the newest one. For more information, see Amazon Lightsail endpoints and quotas in the AWS General Reference.

" + "documentation":"

Returns the deployments for your Amazon Lightsail container service

A deployment specifies the settings, such as the ports and launch command, of containers that are deployed to your container service.

The deployments are ordered by version in ascending order. The newest version is listed at the top of the response.

A set number of deployments are kept before the oldest one is replaced with the newest one. For more information, see Amazon Lightsail endpoints and quotas in the Amazon Web Services General Reference.

" }, "GetContainerServiceMetricData":{ "name":"GetContainerServiceMetricData", @@ -2722,7 +2722,7 @@ {"shape":"ServiceException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Updates the bundle, or storage plan, of an existing Amazon Lightsail bucket.

A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a bucket. You can update a bucket's bundle only one time within a monthly AWS billing cycle. To determine if you can update a bucket's bundle, use the GetBuckets action. The ableToUpdateBundle parameter in the response will indicate whether you can currently update a bucket's bundle.

Update a bucket's bundle if it's consistently going over its storage space or data transfer quota, or if a bucket's usage is consistently in the lower range of its storage space or data transfer quota. Due to the unpredictable usage fluctuations that a bucket might experience, we strongly recommend that you update a bucket's bundle only as a long-term strategy, instead of as a short-term, monthly cost-cutting measure. Choose a bucket bundle that will provide the bucket with ample storage space and data transfer for a long time to come.

" + "documentation":"

Updates the bundle, or storage plan, of an existing Amazon Lightsail bucket.

A bucket bundle specifies the monthly cost, storage space, and data transfer quota for a bucket. You can update a bucket's bundle only one time within a monthly Amazon Web Services billing cycle. To determine if you can update a bucket's bundle, use the GetBuckets action. The ableToUpdateBundle parameter in the response will indicate whether you can currently update a bucket's bundle.

Update a bucket's bundle if it's consistently going over its storage space or data transfer quota, or if a bucket's usage is consistently in the lower range of its storage space or data transfer quota. Due to the unpredictable usage fluctuations that a bucket might experience, we strongly recommend that you update a bucket's bundle only as a long-term strategy, instead of as a short-term, monthly cost-cutting measure. Choose a bucket bundle that will provide the bucket with ample storage space and data transfer for a long time to come.

" }, "UpdateContainerService":{ "name":"UpdateContainerService", @@ -2775,7 +2775,7 @@ {"shape":"AccessDeniedException"}, {"shape":"UnauthenticatedException"} ], - "documentation":"

Updates the bundle of your Amazon Lightsail content delivery network (CDN) distribution.

A distribution bundle specifies the monthly network transfer quota and monthly cost of your distribution.

Update your distribution's bundle if your distribution is going over its monthly network transfer quota and is incurring an overage fee.

You can update your distribution's bundle only one time within your monthly AWS billing cycle. To determine if you can update your distribution's bundle, use the GetDistributions action. The ableToUpdateBundle parameter in the result will indicate whether you can currently update your distribution's bundle.

" + "documentation":"

Updates the bundle of your Amazon Lightsail content delivery network (CDN) distribution.

A distribution bundle specifies the monthly network transfer quota and monthly cost of your distribution.

Update your distribution's bundle if your distribution is going over its monthly network transfer quota and is incurring an overage fee.

You can update your distribution's bundle only one time within your monthly Amazon Web Services billing cycle. To determine if you can update your distribution's bundle, use the GetDistributions action. The ableToUpdateBundle parameter in the result will indicate whether you can currently update your distribution's bundle.

" }, "UpdateDomainEntry":{ "name":"UpdateDomainEntry", @@ -2796,6 +2796,25 @@ ], "documentation":"

Updates a domain recordset after it is created.

The update domain entry operation supports tag-based access control via resource tags applied to the resource identified by domain name. For more information, see the Amazon Lightsail Developer Guide.

" }, + "UpdateInstanceMetadataOptions":{ + "name":"UpdateInstanceMetadataOptions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateInstanceMetadataOptionsRequest"}, + "output":{"shape":"UpdateInstanceMetadataOptionsResult"}, + "errors":[ + {"shape":"ServiceException"}, + {"shape":"InvalidInputException"}, + {"shape":"NotFoundException"}, + {"shape":"OperationFailureException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountSetupInProgressException"}, + {"shape":"UnauthenticatedException"} + ], + "documentation":"

Modifies the Amazon Lightsail instance metadata parameters on a running or stopped instance. When you modify the parameters on a running instance, the GetInstance or GetInstances API operation initially responds with a state of pending. After the parameter modifications are successfully applied, the state changes to applied in subsequent GetInstance or GetInstances API calls. For more information, see Use IMDSv2 with an Amazon Lightsail instance in the Amazon Lightsail Developer Guide.

" + }, "UpdateLoadBalancerAttribute":{ "name":"UpdateLoadBalancerAttribute", "http":{ @@ -2908,11 +2927,11 @@ }, "region":{ "shape":"string", - "documentation":"

The AWS Region where this access key was most recently used.

This value is N/A if the access key has not been used.

" + "documentation":"

The Amazon Web Services Region where this access key was most recently used.

This value is N/A if the access key has not been used.

" }, "serviceName":{ "shape":"string", - "documentation":"

The name of the AWS service with which this access key was most recently used.

This value is N/A if the access key has not been used.

" + "documentation":"

The name of the Amazon Web Services service with which this access key was most recently used.

This value is N/A if the access key has not been used.

" } }, "documentation":"

Describes the last time an access key was used.

This object does not include data in the response of a CreateBucketAccessKey action.

" @@ -3774,7 +3793,7 @@ }, "requestFailureReason":{ "shape":"RequestFailureReason", - "documentation":"

The validation failure reason, if any, of the certificate.

The following failure reasons are possible:

  • NO_AVAILABLE_CONTACTS - This failure applies to email validation, which is not available for Lightsail certificates.

  • ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires additional information to process this certificate request. This can happen as a fraud-protection measure, such as when the domain ranks within the Alexa top 1000 websites. To provide the required information, use the AWS Support Center to contact AWS Support.

    You cannot request a certificate for Amazon-owned domain names such as those ending in amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • DOMAIN_NOT_ALLOWED - One or more of the domain names in the certificate request was reported as an unsafe domain by VirusTotal. To correct the problem, search for your domain name on the VirusTotal website. If your domain is reported as suspicious, see Google Help for Hacked Websites to learn what you can do.

    If you believe that the result is a false positive, notify the organization that is reporting the domain. VirusTotal is an aggregate of several antivirus and URL scanners and cannot remove your domain from a block list itself. After you correct the problem and the VirusTotal registry has been updated, request a new certificate.

    If you see this error and your domain is not included in the VirusTotal list, visit the AWS Support Center and create a case.

  • INVALID_PUBLIC_DOMAIN - One or more of the domain names in the certificate request is not valid. Typically, this is because a domain name in the request is not a valid top-level domain. Try to request a certificate again, correcting any spelling errors or typos that were in the failed request, and ensure that all domain names in the request are for valid top-level domains. For example, you cannot request a certificate for example.invalidpublicdomain because invalidpublicdomain is not a valid top-level domain.

  • OTHER - Typically, this failure occurs when there is a typographical error in one or more of the domain names in the certificate request. Try to request a certificate again, correcting any spelling errors or typos that were in the failed request.

" + "documentation":"

The validation failure reason, if any, of the certificate.

The following failure reasons are possible:

  • NO_AVAILABLE_CONTACTS - This failure applies to email validation, which is not available for Lightsail certificates.

  • ADDITIONAL_VERIFICATION_REQUIRED - Lightsail requires additional information to process this certificate request. This can happen as a fraud-protection measure, such as when the domain ranks within the Alexa top 1000 websites. To provide the required information, use the Amazon Web Services Support Center to contact Amazon Web Services Support.

    You cannot request a certificate for Amazon-owned domain names such as those ending in amazonaws.com, cloudfront.net, or elasticbeanstalk.com.

  • DOMAIN_NOT_ALLOWED - One or more of the domain names in the certificate request was reported as an unsafe domain by VirusTotal. To correct the problem, search for your domain name on the VirusTotal website. If your domain is reported as suspicious, see Google Help for Hacked Websites to learn what you can do.

    If you believe that the result is a false positive, notify the organization that is reporting the domain. VirusTotal is an aggregate of several antivirus and URL scanners and cannot remove your domain from a block list itself. After you correct the problem and the VirusTotal registry has been updated, request a new certificate.

    If you see this error and your domain is not included in the VirusTotal list, visit the Amazon Web Services Support Center and create a case.

  • INVALID_PUBLIC_DOMAIN - One or more of the domain names in the certificate request is not valid. Typically, this is because a domain name in the request is not a valid top-level domain. Try to request a certificate again, correcting any spelling errors or typos that were in the failed request, and ensure that all domain names in the request are for valid top-level domains. For example, you cannot request a certificate for example.invalidpublicdomain because invalidpublicdomain is not a valid top-level domain.

  • OTHER - Typically, this failure occurs when there is a typographical error in one or more of the domain names in the certificate request. Try to request a certificate again, correcting any spelling errors or typos that were in the failed request.

" }, "inUseResourceCount":{ "shape":"InUseResourceCount", @@ -3831,6 +3850,14 @@ }, "documentation":"

Describes the full details of an Amazon Lightsail SSL/TLS certificate.

To get a summary of a certificate, use the GetCertificates action and ommit includeCertificateDetails from your request. The response will include only the certificate Amazon Resource Name (ARN), certificate name, domain name, and tags.

" }, + "CertificateDomainValidationStatus":{ + "type":"string", + "enum":[ + "PENDING_VALIDATION", + "FAILED", + "SUCCESS" + ] + }, "CertificateName":{"type":"string"}, "CertificateStatus":{ "type":"string", @@ -4185,6 +4212,10 @@ "url":{ "shape":"string", "documentation":"

The publicly accessible URL of the container service.

If no public endpoint is specified in the currentDeployment, this URL returns a 404 response.

" + }, + "privateRegistryAccess":{ + "shape":"PrivateRegistryAccess", + "documentation":"

An object that describes the configuration for the container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories.

For more information, see Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service in the Amazon Lightsail Developer Guide.

" } }, "documentation":"

Describes an Amazon Lightsail container service.

" @@ -4242,6 +4273,30 @@ "FAILED" ] }, + "ContainerServiceECRImagePullerRole":{ + "type":"structure", + "members":{ + "isActive":{ + "shape":"boolean", + "documentation":"

A Boolean value that indicates whether the role is activated.

" + }, + "principalArn":{ + "shape":"string", + "documentation":"

The Amazon Resource Name (ARN) of the role, if it is activated.

" + } + }, + "documentation":"

Describes the activation status of the role that you can use to grant an Amazon Lightsail container service access to Amazon Elastic Container Registry (Amazon ECR) private repositories.

When activated, Lightsail creates an Identity and Access Management (IAM) role for the specified Lightsail container service. You can use the ARN of the role to create a trust relationship between your Lightsail container service and an Amazon ECR private repository in your Amazon Web Services account. This allows your container service to pull images from Amazon ECR private repositories. For more information, see Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service in the Amazon Lightsail Developer Guide.

" + }, + "ContainerServiceECRImagePullerRoleRequest":{ + "type":"structure", + "members":{ + "isActive":{ + "shape":"boolean", + "documentation":"

A Boolean value that indicates whether to activate the role.

" + } + }, + "documentation":"

Describes a request to activate or deactivate the role that you can use to grant an Amazon Lightsail container service access to Amazon Elastic Container Registry (Amazon ECR) private repositories.

When activated, Lightsail creates an Identity and Access Management (IAM) role for the specified Lightsail container service. You can use the ARN of the role to create a trust relationship between your Lightsail container service and an Amazon ECR private repository in your Amazon Web Services account. This allows your container service to pull images from Amazon ECR private repositories. For more information, see Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service in the Amazon Lightsail Developer Guide.

" + }, "ContainerServiceEndpoint":{ "type":"structure", "members":{ @@ -4724,7 +4779,7 @@ "members":{ "serviceName":{ "shape":"ContainerServiceName", - "documentation":"

The name for the container service.

The name that you specify for your container service will make up part of its default domain. The default domain of a container service is typically https://<ServiceName>.<RandomGUID>.<AWSRegion>.cs.amazonlightsail.com. If the name of your container service is container-service-1, and it's located in the US East (Ohio) AWS region (us-east-2), then the domain for your container service will be like the following example: https://container-service-1.ur4EXAMPLE2uq.us-east-2.cs.amazonlightsail.com

The following are the requirements for container service names:

  • Must be unique within each Amazon Web Services Region in your Lightsail account.

  • Must contain 1 to 63 characters.

  • Must contain only alphanumeric characters and hyphens.

  • A hyphen (-) can separate words but cannot be at the start or end of the name.

" + "documentation":"

The name for the container service.

The name that you specify for your container service will make up part of its default domain. The default domain of a container service is typically https://<ServiceName>.<RandomGUID>.<AWSRegion>.cs.amazonlightsail.com. If the name of your container service is container-service-1, and it's located in the US East (Ohio) Amazon Web Services Region (us-east-2), then the domain for your container service will be like the following example: https://container-service-1.ur4EXAMPLE2uq.us-east-2.cs.amazonlightsail.com

The following are the requirements for container service names:

  • Must be unique within each Amazon Web Services Region in your Lightsail account.

  • Must contain 1 to 63 characters.

  • Must contain only alphanumeric characters and hyphens.

  • A hyphen (-) can separate words but cannot be at the start or end of the name.

" }, "power":{ "shape":"ContainerServicePowerName", @@ -4745,6 +4800,10 @@ "deployment":{ "shape":"ContainerServiceDeploymentRequest", "documentation":"

An object that describes a deployment for the container service.

A deployment specifies the containers that will be launched on the container service and their settings, such as the ports to open, the environment variables to apply, and the launch command to run. It also specifies the container that will serve as the public endpoint of the deployment and its settings, such as the HTTP or HTTPS port to use, and the health check configuration.

" + }, + "privateRegistryAccess":{ + "shape":"PrivateRegistryAccessRequest", + "documentation":"

An object to describe the configuration for the container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories.

For more information, see Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service in the Amazon Lightsail Developer Guide.

" } } }, @@ -5368,7 +5427,7 @@ }, "preferredBackupWindow":{ "shape":"string", - "documentation":"

The daily time range during which automated backups are created for your new database if automated backups are enabled.

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. For more information about the preferred backup window time blocks for each region, see the Working With Backups guide in the Amazon Relational Database Service (Amazon RDS) documentation.

Constraints:

  • Must be in the hh24:mi-hh24:mi format.

    Example: 16:00-16:30

  • Specified in Coordinated Universal Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" + "documentation":"

The daily time range during which automated backups are created for your new database if automated backups are enabled.

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region. For more information about the preferred backup window time blocks for each region, see the Working With Backups guide in the Amazon Relational Database Service documentation.

Constraints:

  • Must be in the hh24:mi-hh24:mi format.

    Example: 16:00-16:30

  • Specified in Coordinated Universal Time (UTC).

  • Must not conflict with the preferred maintenance window.

  • Must be at least 30 minutes.

" }, "preferredMaintenanceWindow":{ "shape":"string", @@ -6267,6 +6326,28 @@ "Http5xxErrorRate" ] }, + "DnsRecordCreationState":{ + "type":"structure", + "members":{ + "code":{ + "shape":"DnsRecordCreationStateCode", + "documentation":"

The status code for the automated DNS record creation.

Following are the possible values:

  • SUCCEEDED - The validation records were successfully added to the domain.

  • STARTED - The automatic DNS record creation has started.

  • FAILED - The validation records failed to be added to the domain.

" + }, + "message":{ + "shape":"string", + "documentation":"

The message that describes the reason for the status code.

" + } + }, + "documentation":"

Describes the creation state of the canonical name (CNAME) records that are automatically added by Amazon Lightsail to the DNS of a domain to validate domain ownership for an SSL/TLS certificate.

When you create an SSL/TLS certificate for a Lightsail resource, you must add a set of CNAME records to the DNS of the domains for the certificate to validate that you own the domains. Lightsail can automatically add the CNAME records to the DNS of the domain if the DNS zone for the domain exists within your Lightsail account. If automatic record addition fails, or if you manage the DNS of your domain using a third-party service, then you must manually add the CNAME records to the DNS of your domain. For more information, see Verify an SSL/TLS certificate in Amazon Lightsail in the Amazon Lightsail Developer Guide.

" + }, + "DnsRecordCreationStateCode":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "STARTED", + "FAILED" + ] + }, "Domain":{ "type":"structure", "members":{ @@ -6301,6 +6382,10 @@ "domainEntries":{ "shape":"DomainEntryList", "documentation":"

An array of key-value pairs containing information about the domain entries.

" + }, + "registeredDomainDelegationInfo":{ + "shape":"RegisteredDomainDelegationInfo", + "documentation":"

An object that describes the state of the Route 53 domain delegation to a Lightsail DNS zone.

" } }, "documentation":"

Describes a domain where you are storing recordsets.

" @@ -6366,9 +6451,17 @@ "resourceRecord":{ "shape":"ResourceRecord", "documentation":"

An object that describes the DNS records to add to your domain's DNS to validate it for the certificate.

" + }, + "dnsRecordCreationState":{ + "shape":"DnsRecordCreationState", + "documentation":"

An object that describes the state of the canonical name (CNAME) records that are automatically added by Lightsail to the DNS of the domain to validate domain ownership.

" + }, + "validationStatus":{ + "shape":"CertificateDomainValidationStatus", + "documentation":"

The validation status of the record.

" } }, - "documentation":"

Describes the domain validation records of an Amazon Lightsail SSL/TLS certificate.

" + "documentation":"

Describes the domain name system (DNS) records that you must add to the DNS of your registered domain to validate ownership for an Amazon Lightsail SSL/TLS certificate.

" }, "DomainValidationRecordList":{ "type":"list", @@ -7361,7 +7454,7 @@ }, "metricName":{ "shape":"InstanceMetricName", - "documentation":"

The metric for which you want to return information.

Valid instance metric names are listed below, along with the most useful statistics to include in your request, and the published unit value.

  • BurstCapacityPercentage - The percentage of CPU performance available for your instance to burst above its baseline. Your instance continuously accrues and consumes burst capacity. Burst capacity stops accruing when your instance's BurstCapacityPercentage reaches 100%. For more information, see Viewing instance burst capacity in Amazon Lightsail.

    Statistics: The most useful statistics are Maximum and Average.

    Unit: The published unit is Percent.

  • BurstCapacityTime - The available amount of time for your instance to burst at 100% CPU utilization. Your instance continuously accrues and consumes burst capacity. Burst capacity time stops accruing when your instance's BurstCapacityPercentage metric reaches 100%.

    Burst capacity time is consumed at the full rate only when your instance operates at 100% CPU utilization. For example, if your instance operates at 50% CPU utilization in the burstable zone for a 5-minute period, then it consumes CPU burst capacity minutes at a 50% rate in that period. Your instance consumed 2 minutes and 30 seconds of CPU burst capacity minutes in the 5-minute period. For more information, see Viewing instance burst capacity in Amazon Lightsail.

    Statistics: The most useful statistics are Maximum and Average.

    Unit: The published unit is Seconds.

  • CPUUtilization - The percentage of allocated compute units that are currently in use on the instance. This metric identifies the processing power to run the applications on the instance. Tools in your operating system can show a lower percentage than Lightsail when the instance is not allocated a full processor core.

    Statistics: The most useful statistics are Maximum and Average.

    Unit: The published unit is Percent.

  • NetworkIn - The number of bytes received on all network interfaces by the instance. This metric identifies the volume of incoming network traffic to the instance. The number reported is the number of bytes received during the period. Because this metric is reported in 5-minute intervals, divide the reported number by 300 to find Bytes/second.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Bytes.

  • NetworkOut - The number of bytes sent out on all network interfaces by the instance. This metric identifies the volume of outgoing network traffic from the instance. The number reported is the number of bytes sent during the period. Because this metric is reported in 5-minute intervals, divide the reported number by 300 to find Bytes/second.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Bytes.

  • StatusCheckFailed - Reports whether the instance passed or failed both the instance status check and the system status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • StatusCheckFailed_Instance - Reports whether the instance passed or failed the instance status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • StatusCheckFailed_System - Reports whether the instance passed or failed the system status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

" + "documentation":"

The metric for which you want to return information.

Valid instance metric names are listed below, along with the most useful statistics to include in your request, and the published unit value.

  • BurstCapacityPercentage - The percentage of CPU performance available for your instance to burst above its baseline. Your instance continuously accrues and consumes burst capacity. Burst capacity stops accruing when your instance's BurstCapacityPercentage reaches 100%. For more information, see Viewing instance burst capacity in Amazon Lightsail.

    Statistics: The most useful statistics are Maximum and Average.

    Unit: The published unit is Percent.

  • BurstCapacityTime - The available amount of time for your instance to burst at 100% CPU utilization. Your instance continuously accrues and consumes burst capacity. Burst capacity time stops accruing when your instance's BurstCapacityPercentage metric reaches 100%.

    Burst capacity time is consumed at the full rate only when your instance operates at 100% CPU utilization. For example, if your instance operates at 50% CPU utilization in the burstable zone for a 5-minute period, then it consumes CPU burst capacity minutes at a 50% rate in that period. Your instance consumed 2 minutes and 30 seconds of CPU burst capacity minutes in the 5-minute period. For more information, see Viewing instance burst capacity in Amazon Lightsail.

    Statistics: The most useful statistics are Maximum and Average.

    Unit: The published unit is Seconds.

  • CPUUtilization - The percentage of allocated compute units that are currently in use on the instance. This metric identifies the processing power to run the applications on the instance. Tools in your operating system can show a lower percentage than Lightsail when the instance is not allocated a full processor core.

    Statistics: The most useful statistics are Maximum and Average.

    Unit: The published unit is Percent.

  • NetworkIn - The number of bytes received on all network interfaces by the instance. This metric identifies the volume of incoming network traffic to the instance. The number reported is the number of bytes received during the period. Because this metric is reported in 5-minute intervals, divide the reported number by 300 to find Bytes/second.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Bytes.

  • NetworkOut - The number of bytes sent out on all network interfaces by the instance. This metric identifies the volume of outgoing network traffic from the instance. The number reported is the number of bytes sent during the period. Because this metric is reported in 5-minute intervals, divide the reported number by 300 to find Bytes/second.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Bytes.

  • StatusCheckFailed - Reports whether the instance passed or failed both the instance status check and the system status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • StatusCheckFailed_Instance - Reports whether the instance passed or failed the instance status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • StatusCheckFailed_System - Reports whether the instance passed or failed the system status check. This metric can be either 0 (passed) or 1 (failed). This metric data is available in 1-minute (60 seconds) granularity.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

  • MetadataNoToken - Reports the number of times that the instance metadata service was successfully accessed without a token. This metric determines if there are any processes accessing instance metadata by using Instance Metadata Service Version 1, which doesn't use a token. If all requests use token-backed sessions, such as Instance Metadata Service Version 2, then the value is 0.

    Statistics: The most useful statistic is Sum.

    Unit: The published unit is Count.

" }, "period":{ "shape":"MetricPeriod", @@ -8251,6 +8344,27 @@ "type":"list", "member":{"shape":"HostKeyAttributes"} }, + "HttpEndpoint":{ + "type":"string", + "enum":[ + "disabled", + "enabled" + ] + }, + "HttpProtocolIpv6":{ + "type":"string", + "enum":[ + "disabled", + "enabled" + ] + }, + "HttpTokens":{ + "type":"string", + "enum":[ + "optional", + "required" + ] + }, "IAMAccessKeyId":{ "type":"string", "max":20, @@ -8390,6 +8504,10 @@ "sshKeyName":{ "shape":"ResourceName", "documentation":"

The name of the SSH key being used to connect to the instance (e.g., LightsailDefaultKeyPair).

" + }, + "metadataOptions":{ + "shape":"InstanceMetadataOptions", + "documentation":"

The metadata options for the Amazon Lightsail instance.

" } }, "documentation":"

Describes an instance (a virtual private server).

" @@ -8554,6 +8672,39 @@ "type":"list", "member":{"shape":"Instance"} }, + "InstanceMetadataOptions":{ + "type":"structure", + "members":{ + "state":{ + "shape":"InstanceMetadataState", + "documentation":"

The state of the metadata option changes.

The following states are possible:

  • pending - The metadata options are being updated. The instance is not yet ready to process metadata traffic with the new selection.

  • applied - The metadata options have been successfully applied to the instance.

" + }, + "httpTokens":{ + "shape":"HttpTokens", + "documentation":"

The state of token usage for your instance metadata requests.

If the state is optional, you can choose whether to retrieve instance metadata with a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials by using a valid signed token, the version 2.0 role credentials are returned.

If the state is required, you must send a signed token header with all instance metadata retrieval requests. In this state, retrieving the IAM role credential always returns the version 2.0 credentials. The version 1.0 credentials are not available.

Not all instance blueprints in Lightsail support version 2.0 credentials. Use the MetadataNoToken instance metric to track the number of calls to the instance metadata service that are using version 1.0 credentials. For more information, see Viewing instance metrics in Amazon Lightsail in the Amazon Lightsail Developer Guide.

" + }, + "httpEndpoint":{ + "shape":"HttpEndpoint", + "documentation":"

Indicates whether the HTTP metadata endpoint on your instances is enabled or disabled.

If the value is disabled, you cannot access your instance metadata.

" + }, + "httpPutResponseHopLimit":{ + "shape":"integer", + "documentation":"

The desired HTTP PUT response hop limit for instance metadata requests. A larger number means that the instance metadata requests can travel farther.

" + }, + "httpProtocolIpv6":{ + "shape":"HttpProtocolIpv6", + "documentation":"

Indicates whether the IPv6 endpoint for the instance metadata service is enabled or disabled.

" + } + }, + "documentation":"

The metadata options for the instance.

" + }, + "InstanceMetadataState":{ + "type":"string", + "enum":[ + "pending", + "applied" + ] + }, "InstanceMetricName":{ "type":"string", "enum":[ @@ -8564,7 +8715,8 @@ "StatusCheckFailed_Instance", "StatusCheckFailed_System", "BurstCapacityTime", - "BurstCapacityPercentage" + "BurstCapacityPercentage", + "MetadataNoToken" ] }, "InstanceNetworking":{ @@ -9125,7 +9277,7 @@ }, "location":{ "shape":"ResourceLocation", - "documentation":"

The AWS Region and Availability Zone where you created your certificate.

" + "documentation":"

The Amazon Web Services Region and Availability Zone where you created your certificate.

" }, "resourceType":{ "shape":"ResourceType", @@ -9210,6 +9362,28 @@ }, "documentation":"

Describes a load balancer SSL/TLS certificate.

TLS is just an updated, more secure version of Secure Socket Layer (SSL).

" }, + "LoadBalancerTlsCertificateDnsRecordCreationState":{ + "type":"structure", + "members":{ + "code":{ + "shape":"LoadBalancerTlsCertificateDnsRecordCreationStateCode", + "documentation":"

The status code for the automated DNS record creation.

Following are the possible values:

  • SUCCEEDED - The validation records were successfully added.

  • STARTED - The automatic DNS record creation has started.

  • FAILED - The validation record addition failed.

" + }, + "message":{ + "shape":"string", + "documentation":"

The message that describes the reason for the status code.

" + } + }, + "documentation":"

An object that describes the state of the canonical name (CNAME) records that are automatically added by Lightsail to the DNS of the domain to validate domain ownership.

" + }, + "LoadBalancerTlsCertificateDnsRecordCreationStateCode":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "STARTED", + "FAILED" + ] + }, "LoadBalancerTlsCertificateDomainStatus":{ "type":"string", "enum":[ @@ -9258,6 +9432,10 @@ "domainName":{ "shape":"DomainName", "documentation":"

The domain name against which your SSL/TLS certificate was validated.

" + }, + "dnsRecordCreationState":{ + "shape":"LoadBalancerTlsCertificateDnsRecordCreationState", + "documentation":"

An object that describes the state of the canonical name (CNAME) records that are automatically added by Lightsail to the DNS of a domain to validate domain ownership.

" } }, "documentation":"

Describes the validation record of each domain name in the SSL/TLS certificate.

" @@ -9544,6 +9722,29 @@ }, "documentation":"

Describes the monthly data transfer in and out of your virtual private server (or instance).

" }, + "NameServersUpdateState":{ + "type":"structure", + "members":{ + "code":{ + "shape":"NameServersUpdateStateCode", + "documentation":"

The status code for the name servers update.

Following are the possible values:

  • SUCCEEDED - The name server records were successfully updated.

  • PENDING - The name server record update is in progress.

  • FAILED - The name server record update failed.

  • STARTED - The automatic name server record update started.

" + }, + "message":{ + "shape":"string", + "documentation":"

The message that describes the reason for the status code.

" + } + }, + "documentation":"

Describes the state of the name server records update made by Amazon Lightsail to an Amazon Route 53 registered domain.

For more information, see DNS in Amazon Lightsail in the Amazon Lightsail Developer Guide.

" + }, + "NameServersUpdateStateCode":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "PENDING", + "FAILED", + "STARTED" + ] + }, "NetworkProtocol":{ "type":"string", "enum":[ @@ -9758,7 +9959,8 @@ "DeleteBucketAccessKey", "UpdateBucketBundle", "UpdateBucket", - "SetResourceAccessForBucket" + "SetResourceAccessForBucket", + "UpdateInstanceMetadataOptions" ] }, "Origin":{ @@ -9934,6 +10136,26 @@ "closed" ] }, + "PrivateRegistryAccess":{ + "type":"structure", + "members":{ + "ecrImagePullerRole":{ + "shape":"ContainerServiceECRImagePullerRole", + "documentation":"

An object that describes the activation status of the role that you can use to grant a Lightsail container service access to Amazon ECR private repositories. If the role is activated, the Amazon Resource Name (ARN) of the role is also listed.

" + } + }, + "documentation":"

Describes the configuration for an Amazon Lightsail container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories.

For more information, see Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service in the Amazon Lightsail Developer Guide.

" + }, + "PrivateRegistryAccessRequest":{ + "type":"structure", + "members":{ + "ecrImagePullerRole":{ + "shape":"ContainerServiceECRImagePullerRoleRequest", + "documentation":"

An object to describe a request to activate or deactivate the role that you can use to grant an Amazon Lightsail container service access to Amazon Elastic Container Registry (Amazon ECR) private repositories.

" + } + }, + "documentation":"

Describes a request to configure an Amazon Lightsail container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories.

For more information, see Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service in the Amazon Lightsail Developer Guide.

" + }, "PutAlarmRequest":{ "type":"structure", "required":[ @@ -10040,6 +10262,29 @@ }, "documentation":"

Describes the query string parameters that an Amazon Lightsail content delivery network (CDN) distribution to bases caching on.

For the query strings that you specify, your distribution caches separate versions of the specified content based on the query string values in viewer requests.

" }, + "R53HostedZoneDeletionState":{ + "type":"structure", + "members":{ + "code":{ + "shape":"R53HostedZoneDeletionStateCode", + "documentation":"

The status code for the deletion state.

Following are the possible values:

  • SUCCEEDED - The hosted zone was successfully deleted.

  • PENDING - The hosted zone deletion is in progress.

  • FAILED - The hosted zone deletion failed.

  • STARTED - The hosted zone deletion started.

" + }, + "message":{ + "shape":"string", + "documentation":"

The message that describes the reason for the status code.

" + } + }, + "documentation":"

Describes the deletion state of an Amazon Route 53 hosted zone for a domain that is being automatically delegated to an Amazon Lightsail DNS zone.

" + }, + "R53HostedZoneDeletionStateCode":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "PENDING", + "FAILED", + "STARTED" + ] + }, "RebootInstanceRequest":{ "type":"structure", "required":["instanceName"], @@ -10095,7 +10340,7 @@ }, "description":{ "shape":"string", - "documentation":"

The description of the AWS Region (e.g., This region is recommended to serve users in the eastern United States and eastern Canada).

" + "documentation":"

The description of the Amazon Web Services Region (e.g., This region is recommended to serve users in the eastern United States and eastern Canada).

" }, "displayName":{ "shape":"string", @@ -10114,7 +10359,7 @@ "documentation":"

The Availability Zones for databases. Follows the format us-east-2a (case-sensitive).

" } }, - "documentation":"

Describes the AWS Region.

" + "documentation":"

Describes the Amazon Web Services Region.

" }, "RegionList":{ "type":"list", @@ -10171,6 +10416,17 @@ } } }, + "RegisteredDomainDelegationInfo":{ + "type":"structure", + "members":{ + "nameServersUpdateState":{ + "shape":"NameServersUpdateState", + "documentation":"

An object that describes the state of the name server records that are automatically added to the Route 53 domain by Lightsail.

" + }, + "r53HostedZoneDeletionState":{"shape":"R53HostedZoneDeletionState"} + }, + "documentation":"

Describes the delegation state of an Amazon Route 53 registered domain to Amazon Lightsail.

When you delegate an Amazon Route 53 registered domain to Lightsail, you can manage the DNS of the domain using a Lightsail DNS zone. You no longer use the Route 53 hosted zone to manage the DNS of the domain. To delegate the domain, Lightsail automatically updates the domain's name servers in Route 53 to the name servers of the Lightsail DNS zone. Then, Lightsail automatically deletes the Route 53 hosted zone for the domain.

All of the following conditions must be true for automatic domain delegation to be successful:

  • The registered domain must be in the same Amazon Web Services account as the Lightsail account making the request.

  • The user or entity making the request must have permission to manage domains in Route 53.

  • The Route 53 hosted zone for the domain must be empty. It cannot contain DNS records other than start of authority (SOA) and name server records.

If automatic domain delegation fails, or if you manage the DNS of your domain using a service other than Route 53, then you must manually add the Lightsail DNS zone name servers to your domain in order to delegate management of its DNS to Lightsail. For more information, see Creating a DNS zone to manage your domain’s records in Amazon Lightsail in the Amazon Lightsail Developer Guide.

" + }, "RelationalDatabase":{ "type":"structure", "members":{ @@ -10656,7 +10912,7 @@ }, "regionName":{ "shape":"RegionName", - "documentation":"

The AWS Region name.

" + "documentation":"

The Amazon Web Services Region name.

" } }, "documentation":"

Describes the resource location.

" @@ -11211,6 +11467,10 @@ "publicDomainNames":{ "shape":"ContainerServicePublicDomains", "documentation":"

The public domain names to use with the container service, such as example.com and www.example.com.

You can specify up to four public domain names for a container service. The domain names that you specify are used when you create a deployment with a container configured as the public endpoint of your container service.

If you don't specify public domain names, then you can use the default domain of the container service.

You must create and validate an SSL/TLS certificate before you can use public domain names with your container service. Use the CreateCertificate action to create a certificate for the public domain names you want to use with your container service.

You can specify public domain names using a string to array map as shown in the example later on this page.

" + }, + "privateRegistryAccess":{ + "shape":"PrivateRegistryAccessRequest", + "documentation":"

An object to describe the configuration for the container service to access private container image repositories, such as Amazon Elastic Container Registry (Amazon ECR) private repositories.

For more information, see Configuring access to an Amazon ECR private repository for an Amazon Lightsail container service in the Amazon Lightsail Developer Guide.

" } } }, @@ -11310,6 +11570,38 @@ } } }, + "UpdateInstanceMetadataOptionsRequest":{ + "type":"structure", + "required":["instanceName"], + "members":{ + "instanceName":{ + "shape":"ResourceName", + "documentation":"

The name of the instance for which to update metadata parameters.

" + }, + "httpTokens":{ + "shape":"HttpTokens", + "documentation":"

The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is optional.

If the state is optional, you can choose whether to retrieve instance metadata with a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials by using a valid signed token, the version 2.0 role credentials are returned.

If the state is required, you must send a signed token header with all instance metadata retrieval requests. In this state, retrieving the IAM role credential always returns the version 2.0 credentials. The version 1.0 credentials are not available.

" + }, + "httpEndpoint":{ + "shape":"HttpEndpoint", + "documentation":"

Enables or disables the HTTP metadata endpoint on your instances. If this parameter is not specified, the existing state is maintained.

If you specify a value of disabled, you cannot access your instance metadata.

" + }, + "httpPutResponseHopLimit":{ + "shape":"integer", + "documentation":"

The desired HTTP PUT response hop limit for instance metadata requests. A larger number means that the instance metadata requests can travel farther. If no parameter is specified, the existing state is maintained.

" + }, + "httpProtocolIpv6":{ + "shape":"HttpProtocolIpv6", + "documentation":"

Enables or disables the IPv6 endpoint for the instance metadata service. This setting applies only when the HTTP metadata endpoint is enabled.

This parameter is available only for instances in the Europe (Stockholm) Amazon Web Services Region (eu-north-1).

" + } + } + }, + "UpdateInstanceMetadataOptionsResult":{ + "type":"structure", + "members":{ + "operation":{"shape":"Operation"} + } + }, "UpdateLoadBalancerAttributeRequest":{ "type":"structure", "required":[ @@ -11389,7 +11681,7 @@ }, "preferredMaintenanceWindow":{ "shape":"string", - "documentation":"

The weekly time range during which system maintenance can occur on your database.

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.

Constraints:

  • Must be in the ddd:hh24:mi-ddd:hh24:mi format.

  • Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.

  • Must be at least 30 minutes.

  • Specified in Coordinated Universal Time (UTC).

  • Example: Tue:17:00-Tue:17:30

" + "documentation":"

The weekly time range during which system maintenance can occur on your database.

The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Web Services Region, occurring on a random day of the week.

Constraints:

  • Must be in the ddd:hh24:mi-ddd:hh24:mi format.

  • Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.

  • Must be at least 30 minutes.

  • Specified in Coordinated Universal Time (UTC).

  • Example: Tue:17:00-Tue:17:30

" }, "enableBackupRetention":{ "shape":"boolean", @@ -11430,5 +11722,5 @@ "string":{"type":"string"}, "timestamp":{"type":"timestamp"} }, - "documentation":"

Amazon Lightsail is the easiest way to get started with Amazon Web Services (Amazon Web Services) for developers who need to build websites or web applications. It includes everything you need to launch your project quickly - instances (virtual private servers), container services, storage buckets, managed databases, SSD-based block storage, static IP addresses, load balancers, content delivery network (CDN) distributions, DNS management of registered domains, and resource snapshots (backups) - for a low, predictable monthly price.

You can manage your Lightsail resources using the Lightsail console, Lightsail API, AWS Command Line Interface (AWS CLI), or SDKs. For more information about Lightsail concepts and tasks, see the Amazon Lightsail Developer Guide.

This API Reference provides detailed information about the actions, data types, parameters, and errors of the Lightsail service. For more information about the supported Amazon Web Services Regions, endpoints, and service quotas of the Lightsail service, see Amazon Lightsail Endpoints and Quotas in the Amazon Web Services General Reference.

" + "documentation":"

Amazon Lightsail is the easiest way to get started with Amazon Web Services (Amazon Web Services) for developers who need to build websites or web applications. It includes everything you need to launch your project quickly - instances (virtual private servers), container services, storage buckets, managed databases, SSD-based block storage, static IP addresses, load balancers, content delivery network (CDN) distributions, DNS management of registered domains, and resource snapshots (backups) - for a low, predictable monthly price.

You can manage your Lightsail resources using the Lightsail console, Lightsail API, Command Line Interface (CLI), or SDKs. For more information about Lightsail concepts and tasks, see the Amazon Lightsail Developer Guide.

This API Reference provides detailed information about the actions, data types, parameters, and errors of the Lightsail service. For more information about the supported Amazon Web Services Regions, endpoints, and service quotas of the Lightsail service, see Amazon Lightsail Endpoints and Quotas in the Amazon Web Services General Reference.

" } diff --git a/botocore/data/location/2020-11-19/endpoint-rule-set-1.json b/botocore/data/location/2020-11-19/endpoint-rule-set-1.json new file mode 100644 index 00000000..674c9321 --- /dev/null +++ b/botocore/data/location/2020-11-19/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://geo.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://geo.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/location/2020-11-19/examples-1.json b/botocore/data/location/2020-11-19/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/location/2020-11-19/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/location/2020-11-19/service-2.json b/botocore/data/location/2020-11-19/service-2.json index 86fc3e89..d0644131 100644 --- a/botocore/data/location/2020-11-19/service-2.json +++ b/botocore/data/location/2020-11-19/service-2.json @@ -163,7 +163,7 @@ {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Calculates a route given the following required parameters: DeparturePosition and DestinationPosition. Requires that you first create a route calculator resource.

By default, a request that doesn't specify a departure time uses the best time of day to travel with the best traffic conditions when calculating the route.

Additional options include:

  • Specifying a departure time using either DepartureTime or DepartNow. This calculates a route based on predictive traffic data at the given time.

    You can't specify both DepartureTime and DepartNow in a single request. Specifying both parameters returns a validation error.

  • Specifying a travel mode using TravelMode sets the transportation mode used to calculate the routes. This also lets you specify additional route preferences in CarModeOptions if traveling by Car, or TruckModeOptions if traveling by Truck.

", + "documentation":"

Calculates a route given the following required parameters: DeparturePosition and DestinationPosition. Requires that you first create a route calculator resource.

By default, a request that doesn't specify a departure time uses the best time of day to travel with the best traffic conditions when calculating the route.

Additional options include:

  • Specifying a departure time using either DepartureTime or DepartNow. This calculates a route based on predictive traffic data at the given time.

    You can't specify both DepartureTime and DepartNow in a single request. Specifying both parameters returns a validation error.

  • Specifying a travel mode using TravelMode sets the transportation mode used to calculate the routes. This also lets you specify additional route preferences in CarModeOptions if traveling by Car, or TruckModeOptions if traveling by Truck.

    If you specify walking for the travel mode and your data provider is Esri, the start and destination must be within 40km.

", "endpoint":{"hostPrefix":"routes."} }, "CalculateRouteMatrix":{ @@ -632,6 +632,25 @@ "documentation":"

Retrieves a vector data tile from the map resource. Map tiles are used by clients to render a map. they're addressed using a grid arrangement with an X coordinate, Y coordinate, and Z (zoom) level.

The origin (0, 0) is the top left of the map. Increasing the zoom level by 1 doubles both the X and Y dimensions, so a tile containing data for the entire world at (0/0/0) will be split into 4 tiles at zoom 1 (1/0/0, 1/0/1, 1/1/0, 1/1/1).

", "endpoint":{"hostPrefix":"maps."} }, + "GetPlace":{ + "name":"GetPlace", + "http":{ + "method":"GET", + "requestUri":"/places/v0/indexes/{IndexName}/places/{PlaceId}", + "responseCode":200 + }, + "input":{"shape":"GetPlaceRequest"}, + "output":{"shape":"GetPlaceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Finds a place by its unique ID. A PlaceId is returned by other search operations.

A PlaceId is valid only if all of the following are the same in the original search request and the call to GetPlace.

  • Customer AWS account

  • AWS Region

  • Data provider specified in the place index resource

", + "endpoint":{"hostPrefix":"places."} + }, "ListDevicePositions":{ "name":"ListDevicePositions", "http":{ @@ -1392,7 +1411,7 @@ }, "Geometry":{ "shape":"GeofenceGeometry", - "documentation":"

Contains the polygon details to specify the position of the geofence.

Each geofence polygon can have a maximum of 1,000 vertices.

" + "documentation":"

Contains the details of the position of the geofence. Can be either a polygon or a circle. Including both will return a validation error.

Each geofence polygon can have a maximum of 1,000 vertices.

" } }, "documentation":"

Contains geofence geometry details.

" @@ -1711,7 +1730,7 @@ }, "TravelMode":{ "shape":"TravelMode", - "documentation":"

Specifies the mode of transport when calculating a route. Used in estimating the speed of travel and road compatibility.

The TravelMode you specify also determines how you specify route preferences:

  • If traveling by Car use the CarModeOptions parameter.

  • If traveling by Truck use the TruckModeOptions parameter.

Default Value: Car

" + "documentation":"

Specifies the mode of transport when calculating a route. Used in estimating the speed of travel and road compatibility. You can choose Car, Truck, or Walking as options for the TravelMode.

The TravelMode you specify also determines how you specify route preferences:

  • If traveling by Car use the CarModeOptions parameter.

  • If traveling by Truck use the TruckModeOptions parameter.

Default Value: Car

" }, "TruckModeOptions":{ "shape":"CalculateRouteTruckModeOptions", @@ -1812,6 +1831,25 @@ }, "documentation":"

Contains details about additional route preferences for requests that specify TravelMode as Truck.

" }, + "Circle":{ + "type":"structure", + "required":[ + "Center", + "Radius" + ], + "members":{ + "Center":{ + "shape":"Position", + "documentation":"

A single point geometry, specifying the center of the circle, using WGS 84 coordinates, in the form [longitude, latitude].

" + }, + "Radius":{ + "shape":"Double", + "documentation":"

The radius of the circle in meters. Must be greater than zero and no larger than 100,000 (100 kilometers).

" + } + }, + "documentation":"

A circle on the earth, as defined by a center point and a radius.

", + "sensitive":true + }, "ConflictException":{ "type":"structure", "required":["Message"], @@ -1903,7 +1941,7 @@ "members":{ "Configuration":{ "shape":"MapConfiguration", - "documentation":"

Specifies the map style selected from an available data provider.

" + "documentation":"

Specifies the MapConfiguration, including the map style, for the map resource that you create. The map style defines the look of maps and the data provider for your map resource.

" }, "Description":{ "shape":"ResourceDescription", @@ -1938,8 +1976,8 @@ "documentation":"

The timestamp for when the map resource was created in ISO 8601 format: YYYY-MM-DDThh:mm:ss.sssZ.

" }, "MapArn":{ - "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the map resource. Used to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:maps/ExampleMap

" + "shape":"GeoArn", + "documentation":"

The Amazon Resource Name (ARN) for the map resource. Used to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:map/ExampleMap

" }, "MapName":{ "shape":"ResourceName", @@ -2317,8 +2355,8 @@ "documentation":"

The optional description for the map resource.

" }, "MapArn":{ - "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) for the map resource. Used to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:maps/ExampleMap

" + "shape":"GeoArn", + "documentation":"

The Amazon Resource Name (ARN) for the map resource. Used to specify a resource across all AWS.

  • Format example: arn:aws:geo:region:account-id:map/ExampleMap

" }, "MapName":{ "shape":"ResourceName", @@ -2645,15 +2683,25 @@ "type":"double", "box":true }, + "GeoArn":{ + "type":"string", + "max":1600, + "min":0, + "pattern":"^arn(:[a-z0-9]+([.-][a-z0-9]+)*):geo(:([a-z0-9]+([.-][a-z0-9]+)*))(:[0-9]+):((\\*)|([-a-z]+[/][*-._\\w]+))$" + }, "GeofenceGeometry":{ "type":"structure", "members":{ + "Circle":{ + "shape":"Circle", + "documentation":"

A circle on the earth, as defined by a center point and a radius.

" + }, "Polygon":{ "shape":"LinearRings", - "documentation":"

An array of 1 or more linear rings. A linear ring is an array of 4 or more vertices, where the first and last vertex are the same to form a closed boundary. Each vertex is a 2-dimensional point of the form: [longitude, latitude].

The first linear ring is an outer ring, describing the polygon's boundary. Subsequent linear rings may be inner or outer rings to describe holes and islands. Outer rings must list their vertices in counter-clockwise order around the ring's center, where the left side is the polygon's exterior. Inner rings must list their vertices in clockwise order, where the left side is the polygon's interior.

" + "documentation":"

A polygon is a list of linear rings which are each made up of a list of vertices.

Each vertex is a 2-dimensional point of the form: [longitude, latitude]. This is represented as an array of doubles of length 2 (so [double, double]).

An array of 4 or more vertices, where the first and last vertex are the same (to form a closed boundary), is called a linear ring. The linear ring vertices must be listed in counter-clockwise order around the ring’s interior. The linear ring is represented as an array of vertices, or an array of arrays of doubles ([[double, double], ...]).

A geofence consists of a single linear ring. To allow for future expansion, the Polygon parameter takes an array of linear rings, which is represented as an array of arrays of arrays of doubles ([[[double, double], ...], ...]).

A linear ring for use in geofences can consist of between 4 and 1,000 vertices.

" } }, - "documentation":"

Contains the geofence geometry details.

Amazon Location doesn't currently support polygons with holes, multipolygons, polygons that are wound clockwise, or that cross the antimeridian.

" + "documentation":"

Contains the geofence geometry details.

A geofence geometry is made up of either a polygon or a circle. Can be either a polygon or a circle. Including both will return a validation error.

Amazon Location doesn't currently support polygons with holes, multipolygons, polygons that are wound clockwise, or that cross the antimeridian.

" }, "GetDevicePositionHistoryRequest":{ "type":"structure", @@ -2808,7 +2856,7 @@ }, "Geometry":{ "shape":"GeofenceGeometry", - "documentation":"

Contains the geofence geometry details describing a polygon.

" + "documentation":"

Contains the geofence geometry details describing a polygon or a circle.

" }, "Status":{ "shape":"String", @@ -2830,7 +2878,7 @@ "members":{ "FontStack":{ "shape":"String", - "documentation":"

A comma-separated list of fonts to load glyphs from in order of preference. For example, Noto Sans Regular, Arial Unicode.

Valid fonts stacks for Esri styles:

  • VectorEsriDarkGrayCanvas – Ubuntu Medium Italic | Ubuntu Medium | Ubuntu Italic | Ubuntu Regular | Ubuntu Bold

  • VectorEsriLightGrayCanvas – Ubuntu Italic | Ubuntu Regular | Ubuntu Light | Ubuntu Bold

  • VectorEsriTopographic – Noto Sans Italic | Noto Sans Regular | Noto Sans Bold | Noto Serif Regular | Roboto Condensed Light Italic

  • VectorEsriStreets – Arial Regular | Arial Italic | Arial Bold

  • VectorEsriNavigation – Arial Regular | Arial Italic | Arial Bold

Valid font stacks for HERE Technologies styles:

  • VectorHereBerlin – Fira GO Regular | Fira GO Bold

  • VectorHereExplore, VectorHereExploreTruck – Firo GO Italic | Fira GO Map | Fira GO Map Bold | Noto Sans CJK JP Bold | Noto Sans CJK JP Light | Noto Sans CJK JP Regular

", + "documentation":"

A comma-separated list of fonts to load glyphs from in order of preference. For example, Noto Sans Regular, Arial Unicode.

Valid fonts stacks for Esri styles:

  • VectorEsriDarkGrayCanvas – Ubuntu Medium Italic | Ubuntu Medium | Ubuntu Italic | Ubuntu Regular | Ubuntu Bold

  • VectorEsriLightGrayCanvas – Ubuntu Italic | Ubuntu Regular | Ubuntu Light | Ubuntu Bold

  • VectorEsriTopographic – Noto Sans Italic | Noto Sans Regular | Noto Sans Bold | Noto Serif Regular | Roboto Condensed Light Italic

  • VectorEsriStreets – Arial Regular | Arial Italic | Arial Bold

  • VectorEsriNavigation – Arial Regular | Arial Italic | Arial Bold

Valid font stacks for HERE Technologies styles:

  • VectorHereContrast – Fira GO Regular | Fira GO Bold

  • VectorHereExplore, VectorHereExploreTruck, HybridHereExploreSatellite – Fira GO Italic | Fira GO Map | Fira GO Map Bold | Noto Sans CJK JP Bold | Noto Sans CJK JP Light | Noto Sans CJK JP Regular

", "location":"uri", "locationName":"FontStack" }, @@ -2877,7 +2925,7 @@ "members":{ "FileName":{ "shape":"GetMapSpritesRequestFileNameString", - "documentation":"

The name of the sprite file. Use the following file names for the sprite sheet:

  • sprites.png

  • sprites@2x.png for high pixel density displays

For the JSON document contain image offsets. Use the following file names:

  • sprites.json

  • sprites@2x.json for high pixel density displays

", + "documentation":"

The name of the sprite file. Use the following file names for the sprite sheet:

  • sprites.png

  • sprites@2x.png for high pixel density displays

For the JSON document containing image offsets. Use the following file names:

  • sprites.json

  • sprites@2x.json for high pixel density displays

", "location":"uri", "locationName":"FileName" }, @@ -3000,6 +3048,43 @@ }, "payload":"Blob" }, + "GetPlaceRequest":{ + "type":"structure", + "required":[ + "IndexName", + "PlaceId" + ], + "members":{ + "IndexName":{ + "shape":"ResourceName", + "documentation":"

The name of the place index resource that you want to use for the search.

", + "location":"uri", + "locationName":"IndexName" + }, + "Language":{ + "shape":"LanguageTag", + "documentation":"

The preferred language used to return results. The value must be a valid BCP 47 language tag, for example, en for English.

This setting affects the languages used in the results, but not the results themselves. If no language is specified, or not supported for a particular result, the partner automatically chooses a language for the result.

For an example, we'll use the Greek language. You search for a location around Athens, Greece, with the language parameter set to en. The city in the results will most likely be returned as Athens.

If you set the language parameter to el, for Greek, then the city in the results will more likely be returned as Αθήνα.

If the data provider does not have a value for Greek, the result will be in a language that the provider does support.

", + "location":"querystring", + "locationName":"language" + }, + "PlaceId":{ + "shape":"PlaceId", + "documentation":"

The identifier of the place to find.

", + "location":"uri", + "locationName":"PlaceId" + } + } + }, + "GetPlaceResponse":{ + "type":"structure", + "required":["Place"], + "members":{ + "Place":{ + "shape":"Place", + "documentation":"

Details about the result, such as its address and position.

" + } + } + }, "Id":{ "type":"string", "max":100, @@ -3290,7 +3375,7 @@ }, "Geometry":{ "shape":"GeofenceGeometry", - "documentation":"

Contains the geofence geometry details describing a polygon.

" + "documentation":"

Contains the geofence geometry details describing a polygon or a circle.

" }, "Status":{ "shape":"String", @@ -3719,7 +3804,7 @@ "members":{ "Style":{ "shape":"MapStyle", - "documentation":"

Specifies the map style selected from an available data provider.

Valid Esri map styles:

  • VectorEsriDarkGrayCanvas – The Esri Dark Gray Canvas map style. A vector basemap with a dark gray, neutral background with minimal colors, labels, and features that's designed to draw attention to your thematic content.

  • RasterEsriImagery – The Esri Imagery map style. A raster basemap that provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide.

  • VectorEsriLightGrayCanvas – The Esri Light Gray Canvas map style, which provides a detailed vector basemap with a light gray, neutral background style with minimal colors, labels, and features that's designed to draw attention to your thematic content.

  • VectorEsriTopographic – The Esri Light map style, which provides a detailed vector basemap with a classic Esri map style.

  • VectorEsriStreets – The Esri World Streets map style, which provides a detailed vector basemap for the world symbolized with a classic Esri street map style. The vector tile layer is similar in content and style to the World Street Map raster map.

  • VectorEsriNavigation – The Esri World Navigation map style, which provides a detailed basemap for the world symbolized with a custom navigation map style that's designed for use during the day in mobile devices.

Valid HERE Technologies map styles:

  • VectorHereBerlin – The HERE Berlin map style is a high contrast detailed base map of the world that blends 3D and 2D rendering.

  • VectorHereExplore – A default HERE map style containing a neutral, global map and its features including roads, buildings, landmarks, and water features. It also now includes a fully designed map of Japan.

  • VectorHereExploreTruck – A global map containing truck restrictions and attributes (e.g. width / height / HAZMAT) symbolized with highlighted segments and icons on top of HERE Explore to support use cases within transport and logistics.

" + "documentation":"

Specifies the map style selected from an available data provider.

Valid Esri map styles:

  • VectorEsriDarkGrayCanvas – The Esri Dark Gray Canvas map style. A vector basemap with a dark gray, neutral background with minimal colors, labels, and features that's designed to draw attention to your thematic content.

  • RasterEsriImagery – The Esri Imagery map style. A raster basemap that provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide.

  • VectorEsriLightGrayCanvas – The Esri Light Gray Canvas map style, which provides a detailed vector basemap with a light gray, neutral background style with minimal colors, labels, and features that's designed to draw attention to your thematic content.

  • VectorEsriTopographic – The Esri Light map style, which provides a detailed vector basemap with a classic Esri map style.

  • VectorEsriStreets – The Esri World Streets map style, which provides a detailed vector basemap for the world symbolized with a classic Esri street map style. The vector tile layer is similar in content and style to the World Street Map raster map.

  • VectorEsriNavigation – The Esri World Navigation map style, which provides a detailed basemap for the world symbolized with a custom navigation map style that's designed for use during the day in mobile devices.

Valid HERE Technologies map styles:

  • VectorHereContrast – The HERE Contrast (Berlin) map style is a high contrast detailed base map of the world that blends 3D and 2D rendering.

    The VectorHereContrast style has been renamed from VectorHereBerlin. VectorHereBerlin has been deprecated, but will continue to work in applications that use it.

  • VectorHereExplore – A default HERE map style containing a neutral, global map and its features including roads, buildings, landmarks, and water features. It also now includes a fully designed map of Japan.

  • VectorHereExploreTruck – A global map containing truck restrictions and attributes (e.g. width / height / HAZMAT) symbolized with highlighted segments and icons on top of HERE Explore to support use cases within transport and logistics.

  • RasterHereExploreSatellite – A global map containing high resolution satellite imagery.

  • HybridHereExploreSatellite – A global map displaying the road network, street names, and city labels over satellite imagery. This style will automatically retrieve both raster and vector tiles, and your charges will be based on total tiles retrieved.

    Hybrid styles use both vector and raster tiles when rendering the map that you see. This means that more tiles are retrieved than when using either vector or raster tiles alone. Your charges will include all tiles retrieved.

" } }, "documentation":"

Specifies the map tile style selected from an available provider.

" @@ -3777,7 +3862,15 @@ }, "TimeZone":{ "shape":"TimeZone", - "documentation":"

The time zone in which the Place is located. Returned only when using Here as the selected partner.

" + "documentation":"

The time zone in which the Place is located. Returned only when using HERE as the selected partner.

" + }, + "UnitNumber":{ + "shape":"String", + "documentation":"

For addresses with multiple units, the unit identifier. Can include numbers and letters, for example 3B or Unit 123.

Returned only for a place index that uses Esri as a data provider. Is not returned for SearchPlaceIndexForPosition.

" + }, + "UnitType":{ + "shape":"String", + "documentation":"

For addresses with a UnitNumber, the type of unit. For example, Apartment.

" } }, "documentation":"

Contains details about addresses or points of interest that match the search criteria.

Not all details are included with all responses. Some details may only be returned by specific data partners.

" @@ -3792,6 +3885,7 @@ }, "documentation":"

Places uses a point geometry to specify a location or a Place.

" }, + "PlaceId":{"type":"string"}, "PlaceIndexSearchResultLimit":{ "type":"integer", "max":50, @@ -3877,7 +3971,7 @@ }, "Geometry":{ "shape":"GeofenceGeometry", - "documentation":"

Contains the polygon details to specify the position of the geofence.

Each geofence polygon can have a maximum of 1,000 vertices.

" + "documentation":"

Contains the details to specify the position of the geofence. Can be either a polygon or a circle. Including both will return a validation error.

Each geofence polygon can have a maximum of 1,000 vertices.

" } } }, @@ -4006,6 +4100,10 @@ "Place":{ "shape":"Place", "documentation":"

Details about the search result, such as its address and position.

" + }, + "PlaceId":{ + "shape":"PlaceId", + "documentation":"

The unique identifier of the place. You can use this with the GetPlace operation to find the place again later.

For SearchPlaceIndexForPosition operations, the PlaceId is returned only by place indexes that use HERE as a data provider.

" } }, "documentation":"

Contains a search result from a position search query that is run on a place index resource.

" @@ -4023,6 +4121,10 @@ "type":"structure", "required":["Text"], "members":{ + "PlaceId":{ + "shape":"PlaceId", + "documentation":"

The unique identifier of the place. You can use this with the GetPlace operation to find the place again later.

For SearchPlaceIndexForSuggestions operations, the PlaceId is returned by place indexes that use HERE or Esri as data providers.

" + }, "Text":{ "shape":"String", "documentation":"

The text of the place suggestion, typically formatted as an address string.

" @@ -4046,6 +4148,10 @@ "shape":"Place", "documentation":"

Details about the search result, such as its address and position.

" }, + "PlaceId":{ + "shape":"PlaceId", + "documentation":"

The unique identifier of the place. You can use this with the GetPlace operation to find the place again later.

For SearchPlaceIndexForText operations, the PlaceId is returned only by place indexes that use HERE as a data provider.

" + }, "Relevance":{ "shape":"SearchForTextResultRelevanceDouble", "documentation":"

The relative confidence in the match for a result among the results returned. For example, if more fields for an address match (including house number, street, city, country/region, and postal code), the relevance score is closer to 1.

Returned only when the partner selected is Esri.

" @@ -4524,11 +4630,11 @@ "members":{ "Height":{ "shape":"TruckDimensionsHeightDouble", - "documentation":"

The height of the truck.

  • For example, 4.5.

" + "documentation":"

The height of the truck.

  • For example, 4.5.

For routes calculated with a HERE resource, this value must be between 0 and 50 meters.

" }, "Length":{ "shape":"TruckDimensionsLengthDouble", - "documentation":"

The length of the truck.

  • For example, 15.5.

" + "documentation":"

The length of the truck.

  • For example, 15.5.

For routes calculated with a HERE resource, this value must be between 0 and 300 meters.

" }, "Unit":{ "shape":"DimensionUnit", @@ -4536,7 +4642,7 @@ }, "Width":{ "shape":"TruckDimensionsWidthDouble", - "documentation":"

The width of the truck.

  • For example, 4.5.

" + "documentation":"

The width of the truck.

  • For example, 4.5.

For routes calculated with a HERE resource, this value must be between 0 and 50 meters.

" } }, "documentation":"

Contains details about the truck dimensions in the unit of measurement that you specify. Used to filter out roads that can't support or allow the specified dimensions for requests that specify TravelMode as Truck.

" @@ -4682,8 +4788,8 @@ ], "members":{ "MapArn":{ - "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the updated map resource. Used to specify a resource across AWS.

  • Format example: arn:aws:geo:region:account-id:maps/ExampleMap

" + "shape":"GeoArn", + "documentation":"

The Amazon Resource Name (ARN) of the updated map resource. Used to specify a resource across AWS.

  • Format example: arn:aws:geo:region:account-id:map/ExampleMap

" }, "MapName":{ "shape":"ResourceName", @@ -4913,5 +5019,5 @@ ] } }, - "documentation":"

Suite of geospatial services including Maps, Places, Routes, Tracking, and Geofencing

" + "documentation":"

\"Suite of geospatial services including Maps, Places, Routes, Tracking, and Geofencing\"

" } diff --git a/botocore/data/logs/2014-03-28/endpoint-rule-set-1.json b/botocore/data/logs/2014-03-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..856fd2b6 --- /dev/null +++ b/botocore/data/logs/2014-03-28/endpoint-rule-set-1.json @@ -0,0 +1,344 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://logs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://logs.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://logs.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://logs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://logs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://logs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/logs/2014-03-28/service-2.json b/botocore/data/logs/2014-03-28/service-2.json index 724a788f..5bcca6d8 100644 --- a/botocore/data/logs/2014-03-28/service-2.json +++ b/botocore/data/logs/2014-03-28/service-2.json @@ -25,7 +25,7 @@ {"shape":"OperationAbortedException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Associates the specified Key Management Service customer master key (CMK) with the specified log group.

Associating an KMS CMK with a log group overrides any existing associations between the log group and a CMK. After a CMK is associated with a log group, all newly ingested data for the log group is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

CloudWatch Logs supports only symmetric CMKs. Do not use an associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys.

It can take up to 5 minutes for this operation to take effect.

If you attempt to associate a CMK with a log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error.

" + "documentation":"

Associates the specified KMS key with the specified log group.

Associating a KMS key with a log group overrides any existing associations between the log group and a KMS key. After a KMS key is associated with a log group, all newly ingested data for the log group is encrypted using the KMS key. This association is stored as long as the data encrypted with the KMS keyis still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

CloudWatch Logs supports only symmetric KMS keys. Do not use an associate an asymmetric KMS key with your log group. For more information, see Using Symmetric and Asymmetric Keys.

It can take up to 5 minutes for this operation to take effect.

If you attempt to associate a KMS key with a log group but the KMS key does not exist or the KMS key is disabled, you receive an InvalidParameterException error.

" }, "CancelExportTask":{ "name":"CancelExportTask", @@ -58,7 +58,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ResourceAlreadyExistsException"} ], - "documentation":"

Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination.

Exporting log data to Amazon S3 buckets that are encrypted by KMS is not supported. Exporting log data to Amazon S3 buckets that have S3 Object Lock enabled with a retention period is not supported.

Exporting to S3 buckets that are encrypted with AES-256 is supported.

This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask.

You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects.

Time-based sorting on chunks of log data inside an exported file is not guaranteed. You can sort the exported log fild data by using Linux utilities.

" + "documentation":"

Creates an export task so that you can efficiently export data from a log group to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination.

Exporting log data to S3 buckets that are encrypted by KMS is supported. Exporting log data to Amazon S3 buckets that have S3 Object Lock enabled with a retention period is also supported.

Exporting to S3 buckets that are encrypted with AES-256 is supported.

This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask.

You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate log data for each export task, specify a prefix to be used as the Amazon S3 key prefix for all exported objects.

Time-based sorting on chunks of log data inside an exported file is not guaranteed. You can sort the exported log field data by using Linux utilities.

" }, "CreateLogGroup":{ "name":"CreateLogGroup", @@ -74,7 +74,7 @@ {"shape":"OperationAbortedException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Creates a log group with the specified name. You can create up to 20,000 log groups per account.

You must use the following guidelines when naming a log group:

  • Log group names must be unique within a region for an Amazon Web Services account.

  • Log group names can be between 1 and 512 characters long.

  • Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and '#' (number sign)

When you create a log group, by default the log events in the log group never expire. To set a retention policy so that events expire and are deleted after a specified time, use PutRetentionPolicy.

If you associate a Key Management Service customer master key (CMK) with the log group, ingested data is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

If you attempt to associate a CMK with the log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error.

CloudWatch Logs supports only symmetric CMKs. Do not associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys.

" + "documentation":"

Creates a log group with the specified name. You can create up to 20,000 log groups per account.

You must use the following guidelines when naming a log group:

  • Log group names must be unique within a Region for an Amazon Web Services account.

  • Log group names can be between 1 and 512 characters long.

  • Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and '#' (number sign)

When you create a log group, by default the log events in the log group do not expire. To set a retention policy so that events expire and are deleted after a specified time, use PutRetentionPolicy.

If you associate an KMS key with the log group, ingested data is encrypted using the KMS key. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested.

If you attempt to associate a KMS key with the log group but the KMS keydoes not exist or the KMS key is disabled, you receive an InvalidParameterException error.

CloudWatch Logs supports only symmetric KMS keys. Do not associate an asymmetric KMS key with your log group. For more information, see Using Symmetric and Asymmetric Keys.

" }, "CreateLogStream":{ "name":"CreateLogStream", @@ -89,7 +89,22 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Creates a log stream for the specified log group. A log stream is a sequence of log events that originate from a single source, such as an application instance or a resource that is being monitored.

There is no limit on the number of log streams that you can create for a log group. There is a limit of 50 TPS on CreateLogStream operations, after which transactions are throttled.

You must use the following guidelines when naming a log stream:

  • Log stream names must be unique within the log group.

  • Log stream names can be between 1 and 512 characters long.

  • The ':' (colon) and '*' (asterisk) characters are not allowed.

" + "documentation":"

Creates a log stream for the specified log group. A log stream is a sequence of log events that originate from a single source, such as an application instance or a resource that is being monitored.

There is no limit on the number of log streams that you can create for a log group. There is a limit of 50 TPS on CreateLogStream operations, after which transactions are throttled.

You must use the following guidelines when naming a log stream:

  • Log stream names must be unique within the log group.

  • Log stream names can be between 1 and 512 characters long.

  • Don't use ':' (colon) or '*' (asterisk) characters.

" + }, + "DeleteDataProtectionPolicy":{ + "name":"DeleteDataProtectionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteDataProtectionPolicyRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OperationAbortedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

Deletes the data protection policy from the specified log group.

For more information about data protection policies, see PutDataProtectionPolicy.

" }, "DeleteDestination":{ "name":"DeleteDestination", @@ -250,7 +265,7 @@ {"shape":"InvalidParameterException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Lists the specified log groups. You can list all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name.

CloudWatch Logs doesn’t support IAM policies that control access to the DescribeLogGroups action by using the aws:ResourceTag/key-name condition key. Other CloudWatch Logs actions do support the use of the aws:ResourceTag/key-name condition key to control access. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

" + "documentation":"

Lists the specified log groups. You can list all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name.

CloudWatch Logs doesn’t support IAM policies that control access to the DescribeLogGroups action by using the aws:ResourceTag/key-name condition key. Other CloudWatch Logs actions do support the use of the aws:ResourceTag/key-name condition key to control access. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see CloudWatch cross-account observability.

" }, "DescribeLogStreams":{ "name":"DescribeLogStreams", @@ -265,7 +280,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered.

This operation has a limit of five transactions per second, after which transactions are throttled.

" + "documentation":"

Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered.

This operation has a limit of five transactions per second, after which transactions are throttled.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see CloudWatch cross-account observability.

" }, "DescribeMetricFilters":{ "name":"DescribeMetricFilters", @@ -295,7 +310,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Returns a list of CloudWatch Logs Insights queries that are scheduled, executing, or have been executed recently in this account. You can request all queries or limit it to queries of a specific log group or queries with a certain status.

" + "documentation":"

Returns a list of CloudWatch Logs Insights queries that are scheduled, running, or have been run recently in this account. You can request all queries or limit it to queries of a specific log group or queries with a certain status.

" }, "DescribeQueryDefinitions":{ "name":"DescribeQueryDefinitions", @@ -353,7 +368,7 @@ {"shape":"OperationAbortedException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Disassociates the associated Key Management Service customer master key (CMK) from the specified log group.

After the KMS CMK is disassociated from the log group, CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and CloudWatch Logs requires permissions for the CMK whenever the encrypted data is requested.

Note that it can take up to 5 minutes for this operation to take effect.

" + "documentation":"

Disassociates the associated KMS key from the specified log group.

After the KMS key is disassociated from the log group, CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and CloudWatch Logs requires permissions for the KMS key whenever the encrypted data is requested.

Note that it can take up to 5 minutes for this operation to take effect.

" }, "FilterLogEvents":{ "name":"FilterLogEvents", @@ -368,7 +383,23 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream.

By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token.

The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request.

" + "documentation":"

Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream.

You must have the logs;FilterLogEvents permission to perform this operation.

By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the specified time range. If the results include a token, that means there are more log events available. You can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token.

The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see CloudWatch cross-account observability.

" + }, + "GetDataProtectionPolicy":{ + "name":"GetDataProtectionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDataProtectionPolicyRequest"}, + "output":{"shape":"GetDataProtectionPolicyResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OperationAbortedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

Returns information about a log group data protection policy.

" }, "GetLogEvents":{ "name":"GetLogEvents", @@ -383,7 +414,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Lists log events from the specified log stream. You can list all of the log events or filter using a time range.

By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token.

" + "documentation":"

Lists log events from the specified log stream. You can list all of the log events or filter using a time range.

By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see CloudWatch cross-account observability.

" }, "GetLogGroupFields":{ "name":"GetLogGroupFields", @@ -399,7 +430,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Returns a list of the fields that are included in log events in the specified log group, along with the percentage of log events that contain each field. The search is limited to a time period that you specify.

In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see Supported Logs and Discovered Fields.

The response results are sorted by the frequency percentage, starting with the highest percentage.

" + "documentation":"

Returns a list of the fields that are included in log events in the specified log group. Includes the percentage of log events that contain each field. The search is limited to a time period that you specify.

In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see Supported Logs and Discovered Fields.

The response results are sorted by the frequency percentage, starting with the highest percentage.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see CloudWatch cross-account observability.

" }, "GetLogRecord":{ "name":"GetLogRecord", @@ -430,7 +461,22 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Returns the results from the specified query.

Only the fields requested in the query are returned, along with a @ptr field, which is the identifier for the log record. You can use the value of @ptr in a GetLogRecord operation to get the full log record.

GetQueryResults does not start a query execution. To run a query, use StartQuery.

If the value of the Status field in the output is Running, this operation returns only partial results. If you see a value of Scheduled or Running for the status, you can retry the operation later to see the final results.

" + "documentation":"

Returns the results from the specified query.

Only the fields requested in the query are returned, along with a @ptr field, which is the identifier for the log record. You can use the value of @ptr in a GetLogRecord operation to get the full log record.

GetQueryResults does not start running a query. To run a query, use StartQuery.

If the value of the Status field in the output is Running, this operation returns only partial results. If you see a value of Scheduled or Running for the status, you can retry the operation later to see the final results.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start queries in linked source accounts. For more information, see CloudWatch cross-account observability.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

Displays the tags associated with a CloudWatch Logs resource. Currently, log groups and destinations support tagging.

" }, "ListTagsLogGroup":{ "name":"ListTagsLogGroup", @@ -444,7 +490,26 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Lists the tags for the specified log group.

" + "documentation":"

The ListTagsLogGroup operation is on the path to deprecation. We recommend that you use ListTagsForResource instead.

Lists the tags for the specified log group.

", + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API ListTagsForResource" + }, + "PutDataProtectionPolicy":{ + "name":"PutDataProtectionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutDataProtectionPolicyRequest"}, + "output":{"shape":"PutDataProtectionPolicyResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"}, + {"shape":"OperationAbortedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

Creates a data protection policy for the specified log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data.

Sensitive data is detected and masked when it is ingested into the log group. When you set a data protection policy, log events ingested into the log group before that time are not masked.

By default, when a user views a log event that includes masked data, the sensitive data is replaced by asterisks. A user who has the logs:Unmask permission can use a GetLogEvents or FilterLogEvents operation with the unmask parameter set to true to view the unmasked log events. Users with the logs:Unmask can also view unmasked data in the CloudWatch Logs console by running a CloudWatch Logs Insights query with the unmask query command.

For more information, including a list of types of data that can be audited and masked, see Protect sensitive log data with masking.

" }, "PutDestination":{ "name":"PutDestination", @@ -459,7 +524,7 @@ {"shape":"OperationAbortedException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Creates or updates a destination. This operation is used only to create destinations for cross-account subscriptions.

A destination encapsulates a physical resource (such as an Amazon Kinesis stream) and enables you to subscribe to a real-time stream of log events for a different account, ingested using PutLogEvents.

Through an access policy, a destination controls what is written to it. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination.

To perform a PutDestination operation, you must also have the iam:PassRole permission.

" + "documentation":"

Creates or updates a destination. This operation is used only to create destinations for cross-account subscriptions.

A destination encapsulates a physical resource (such as an Amazon Kinesis stream). With a destination, you can subscribe to a real-time stream of log events for a different account, ingested using PutLogEvents.

Through an access policy, a destination controls what is written to it. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination.

To perform a PutDestination operation, you must also have the iam:PassRole permission.

" }, "PutDestinationPolicy":{ "name":"PutDestinationPolicy", @@ -491,7 +556,7 @@ {"shape":"ServiceUnavailableException"}, {"shape":"UnrecognizedClientException"} ], - "documentation":"

Uploads a batch of log events to the specified log stream.

You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token in the expectedSequenceToken field from InvalidSequenceTokenException. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls might be successful or one might be rejected.

The batch of events must satisfy the following constraints:

  • The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event.

  • None of the log events in the batch can be more than 2 hours in the future.

  • None of the log events in the batch can be older than 14 days or older than the retention period of the log group.

  • The log events in the batch must be in chronological order by their timestamp. The timestamp is the time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. (In Amazon Web Services Tools for PowerShell and the Amazon Web Services SDK for .NET, the timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss. For example, 2017-09-15T13:45:30.)

  • A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails.

  • The maximum number of log events in a batch is 10,000.

  • There is a quota of 5 requests per second per log stream. Additional requests are throttled. This quota can't be changed.

If a call to PutLogEvents returns \"UnrecognizedClientException\" the most likely cause is an invalid Amazon Web Services access key ID or secret key.

" + "documentation":"

Uploads a batch of log events to the specified log stream.

You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token in the expectedSequenceToken field from InvalidSequenceTokenException. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls might be successful or one might be rejected.

The batch of events must satisfy the following constraints:

  • The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event.

  • None of the log events in the batch can be more than 2 hours in the future.

  • None of the log events in the batch can be more than 14 days in the past. Also, none of the log events can be from earlier than the retention period of the log group.

  • The log events in the batch must be in chronological order by their timestamp. The timestamp is the time that the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. (In Amazon Web Services Tools for PowerShell and the Amazon Web Services SDK for .NET, the timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss. For example, 2017-09-15T13:45:30.)

  • A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails.

  • The maximum number of log events in a batch is 10,000.

  • There is a quota of five requests per second per log stream. Additional requests are throttled. This quota can't be changed.

If a call to PutLogEvents returns \"UnrecognizedClientException\" the most likely cause is a non-valid Amazon Web Services access key ID or secret key.

" }, "PutMetricFilter":{ "name":"PutMetricFilter", @@ -507,7 +572,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Creates or updates a metric filter and associates it with the specified log group. Metric filters allow you to configure rules to extract metric data from log events ingested through PutLogEvents.

The maximum number of metric filters that can be associated with a log group is 100.

When you create a metric filter, you can also optionally assign a unit and dimensions to the metric that is created.

Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric.

To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time.

You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges.

" + "documentation":"

Creates or updates a metric filter and associates it with the specified log group. With metric filters, you can configure rules to extract metric data from log events ingested through PutLogEvents.

The maximum number of metric filters that can be associated with a log group is 100.

When you create a metric filter, you can also optionally assign a unit and dimensions to the metric that is created.

Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric.

CloudWatch Logs disables a metric filter if it generates 1,000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges.

You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges.

" }, "PutQueryDefinition":{ "name":"PutQueryDefinition", @@ -523,7 +588,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Creates or updates a query definition for CloudWatch Logs Insights. For more information, see Analyzing Log Data with CloudWatch Logs Insights.

To update a query definition, specify its queryDefinitionId in your request. The values of name, queryString, and logGroupNames are changed to the values that you specify in your update operation. No current values are retained from the current query definition. For example, if you update a current query definition that includes log groups, and you don't specify the logGroupNames parameter in your update operation, the query definition changes to contain no log groups.

You must have the logs:PutQueryDefinition permission to be able to perform this operation.

" + "documentation":"

Creates or updates a query definition for CloudWatch Logs Insights. For more information, see Analyzing Log Data with CloudWatch Logs Insights.

To update a query definition, specify its queryDefinitionId in your request. The values of name, queryString, and logGroupNames are changed to the values that you specify in your update operation. No current values are retained from the current query definition. For example, imagine updating a current query definition that includes log groups. If you don't specify the logGroupNames parameter in your update operation, the query definition changes to contain no log groups.

You must have the logs:PutQueryDefinition permission to be able to perform this operation.

" }, "PutResourcePolicy":{ "name":"PutResourcePolicy", @@ -553,7 +618,7 @@ {"shape":"OperationAbortedException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Sets the retention of the specified log group. A retention policy allows you to configure the number of days for which to retain log events in the specified log group.

" + "documentation":"

Sets the retention of the specified log group. With a retention policy, you can configure the number of days for which to retain log events in the specified log group.

CloudWatch Logs doesn’t immediately delete log events when they reach their retention setting. It typically takes up to 72 hours after that before log events are deleted, but in rare situations might take longer.

To illustrate, imagine that you change a log group to have a longer retention setting when it contains log events that are past the expiration date, but haven’t been deleted. Those log events will take up to 72 hours to be deleted after the new retention date is reached. To make sure that log data is deleted permanently, keep a log group at its lower retention setting until 72 hours after the previous retention period ends. Alternatively, wait to change the retention setting until you confirm that the earlier log events are deleted.

" }, "PutSubscriptionFilter":{ "name":"PutSubscriptionFilter", @@ -569,7 +634,7 @@ {"shape":"LimitExceededException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. When log events are sent to the receiving service, they are Base64 encoded and compressed with the gzip format.

The following destinations are supported for subscription filters:

  • An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery.

  • A logical destination that belongs to a different account, for cross-account delivery.

  • An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.

  • An Lambda function that belongs to the same account as the subscription filter, for same-account delivery.

Each log group can have up to two subscription filters associated with it. If you are updating an existing filter, you must specify the correct name in filterName.

To perform a PutSubscriptionFilter operation, you must also have the iam:PassRole permission.

" + "documentation":"

Creates or updates a subscription filter and associates it with the specified log group. With subscription filters, you can subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. When log events are sent to the receiving service, they are Base64 encoded and compressed with the GZIP format.

The following destinations are supported for subscription filters:

  • An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.

  • A logical destination that belongs to a different account, for cross-account delivery.

  • An Amazon Kinesis Data Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.

  • An Lambda function that belongs to the same account as the subscription filter, for same-account delivery.

Each log group can have up to two subscription filters associated with it. If you are updating an existing filter, you must specify the correct name in filterName.

To perform a PutSubscriptionFilter operation, you must also have the iam:PassRole permission.

" }, "StartQuery":{ "name":"StartQuery", @@ -586,7 +651,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use.

For more information, see CloudWatch Logs Insights Query Syntax.

Queries time out after 15 minutes of execution. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries.

" + "documentation":"

Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use.

For more information, see CloudWatch Logs Insights Query Syntax.

Queries time out after 15 minutes of runtime. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries.

If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start a query in a linked source account. For more information, see CloudWatch cross-account observability. For a cross-account StartQuery operation, the query definition must be defined in the monitoring account.

You can have up to 20 concurrent CloudWatch Logs insights queries, including queries that have been added to dashboards.

" }, "StopQuery":{ "name":"StopQuery", @@ -614,7 +679,24 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Adds or updates the specified tags for the specified log group.

To list the tags for a log group, use ListTagsLogGroup. To remove tags, use UntagLogGroup.

For more information about tags, see Tag Log Groups in Amazon CloudWatch Logs in the Amazon CloudWatch Logs User Guide.

CloudWatch Logs doesn’t support IAM policies that prevent users from assigning specified tags to log groups using the aws:Resource/key-name or aws:TagKeys condition keys. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

" + "documentation":"

The TagLogGroup operation is on the path to deprecation. We recommend that you use TagResource instead.

Adds or updates the specified tags for the specified log group.

To list the tags for a log group, use ListTagsForResource. To remove tags, use UntagResource.

For more information about tags, see Tag Log Groups in Amazon CloudWatch Logs in the Amazon CloudWatch Logs User Guide.

CloudWatch Logs doesn’t support IAM policies that prevent users from assigning specified tags to log groups using the aws:Resource/key-name or aws:TagKeys condition keys. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

", + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API TagResource" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"}, + {"shape":"TooManyTagsException"} + ], + "documentation":"

Assigns one or more tags (key-value pairs) to the specified CloudWatch Logs resource. Currently, the only CloudWatch Logs resources that can be tagged are log groups and destinations.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a resource that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a CloudWatch Logs resource.

" }, "TestMetricFilter":{ "name":"TestMetricFilter", @@ -640,7 +722,23 @@ "errors":[ {"shape":"ResourceNotFoundException"} ], - "documentation":"

Removes the specified tags from the specified log group.

To list the tags for a log group, use ListTagsLogGroup. To add tags, use TagLogGroup.

CloudWatch Logs doesn’t support IAM policies that prevent users from assigning specified tags to log groups using the aws:Resource/key-name or aws:TagKeys condition keys.

" + "documentation":"

The UntagLogGroup operation is on the path to deprecation. We recommend that you use UntagResource instead.

Removes the specified tags from the specified log group.

To list the tags for a log group, use ListTagsForResource. To add tags, use TagResource.

CloudWatch Logs doesn’t support IAM policies that prevent users from assigning specified tags to log groups using the aws:Resource/key-name or aws:TagKeys condition keys.

", + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API UntagResource" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceUnavailableException"} + ], + "documentation":"

Removes one or more tags from the specified resource.

" } }, "shapes":{ @@ -648,6 +746,24 @@ "type":"string", "min":1 }, + "AccountId":{ + "type":"string", + "max":12, + "min":12, + "pattern":"^\\d{12}$" + }, + "AccountIds":{ + "type":"list", + "member":{"shape":"AccountId"}, + "max":20, + "min":0 + }, + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"[\\w+=/:,.@-]*" + }, "Arn":{"type":"string"}, "AssociateKmsKeyRequest":{ "type":"structure", @@ -662,7 +778,7 @@ }, "kmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. This must be a symmetric CMK. For more information, see Amazon Resource Names - Key Management Service and Using Symmetric and Asymmetric Keys.

" + "documentation":"

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. This must be a symmetric KMS key. For more information, see Amazon Resource Names and Using Symmetric and Asymmetric Keys.

" } } }, @@ -699,15 +815,15 @@ }, "from":{ "shape":"Timestamp", - "documentation":"

The start time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time are not exported.

" + "documentation":"

The start time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time are not exported.

" }, "to":{ "shape":"Timestamp", - "documentation":"

The end time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.

" + "documentation":"

The end time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.

You must specify a time that is not earlier than when this log group was created.

" }, "destination":{ "shape":"ExportDestinationBucket", - "documentation":"

The name of S3 bucket for the exported log data. The bucket must be in the same Amazon Web Services region.

" + "documentation":"

The name of S3 bucket for the exported log data. The bucket must be in the same Amazon Web Services Region.

" }, "destinationPrefix":{ "shape":"ExportDestinationPrefix", @@ -734,11 +850,11 @@ }, "kmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. For more information, see Amazon Resource Names - Key Management Service.

" + "documentation":"

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. For more information, see Amazon Resource Names.

" }, "tags":{ "shape":"Tags", - "documentation":"

The key-value pairs to use for the tags.

CloudWatch Logs doesn’t support IAM policies that prevent users from assigning specified tags to log groups using the aws:Resource/key-name or aws:TagKeys condition keys. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

" + "documentation":"

The key-value pairs to use for the tags.

You can grant users access to certain log groups while preventing them from accessing other log groups. To do so, tag your groups and use IAM policies that refer to those tags. To assign tags when you create a log group, you must have either the logs:TagResource or logs:TagLogGroup permission. For more information about tagging, see Tagging Amazon Web Services resources. For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

" } } }, @@ -767,11 +883,31 @@ "documentation":"

The event was already logged.

", "exception":true }, + "DataProtectionPolicyDocument":{"type":"string"}, + "DataProtectionStatus":{ + "type":"string", + "enum":[ + "ACTIVATED", + "DELETED", + "ARCHIVED", + "DISABLED" + ] + }, "Days":{ "type":"integer", - "documentation":"

The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, and 3653.

To set a log group to never have log events expire, use DeleteRetentionPolicy.

" + "documentation":"

The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, and 3653.

To set a log group so that its log events do not expire, use DeleteRetentionPolicy.

" }, "DefaultValue":{"type":"double"}, + "DeleteDataProtectionPolicyRequest":{ + "type":"structure", + "required":["logGroupIdentifier"], + "members":{ + "logGroupIdentifier":{ + "shape":"LogGroupIdentifier", + "documentation":"

The name or ARN of the log group that you want to delete the data protection policy for.

" + } + } + }, "DeleteDestinationRequest":{ "type":"structure", "required":["destinationName"], @@ -895,7 +1031,7 @@ }, "limit":{ "shape":"DescribeLimit", - "documentation":"

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

" + "documentation":"

The maximum number of items returned. If you don't specify a value, the default maximum value of 50 items is used.

" } } }, @@ -914,7 +1050,7 @@ "members":{ "taskId":{ "shape":"ExportTaskId", - "documentation":"

The ID of the export task. Specifying a task ID filters the results to zero or one export tasks.

" + "documentation":"

The ID of the export task. Specifying a task ID filters the results to one or zero export tasks.

" }, "statusCode":{ "shape":"ExportTaskStatusCode", @@ -948,9 +1084,17 @@ "DescribeLogGroupsRequest":{ "type":"structure", "members":{ + "accountIdentifiers":{ + "shape":"AccountIds", + "documentation":"

When includeLinkedAccounts is set to True, use this parameter to specify the list of accounts to search. You can specify as many as 20 account IDs in the array.

" + }, "logGroupNamePrefix":{ "shape":"LogGroupName", - "documentation":"

The prefix to match.

" + "documentation":"

The prefix to match.

logGroupNamePrefix and logGroupNamePattern are mutually exclusive. Only one of these parameters can be passed.

" + }, + "logGroupNamePattern":{ + "shape":"LogGroupNamePattern", + "documentation":"

If you specify a string for this parameter, the operation returns only log groups that have names that match the string based on a case-sensitive substring search. For example, if you specify Foo, log groups named FooBar, aws/Foo, and GroupFoo would match, but foo, F/o/o and Froo would not match.

logGroupNamePattern and logGroupNamePrefix are mutually exclusive. Only one of these parameters can be passed.

" }, "nextToken":{ "shape":"NextToken", @@ -959,6 +1103,10 @@ "limit":{ "shape":"DescribeLimit", "documentation":"

The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

" + }, + "includeLinkedAccounts":{ + "shape":"IncludeLinkedAccounts", + "documentation":"

If you are using a monitoring account, set this to True to have the operation return log groups in the accounts listed in accountIdentifiers.

If this parameter is set to true and accountIdentifiers contains a null value, the operation returns all log groups in the monitoring account and all log groups in all source accounts that are linked to the monitoring account.

If you specify includeLinkedAccounts in your request, then metricFilterCount, retentionInDays, and storedBytes are not included in the response.

" } } }, @@ -967,7 +1115,7 @@ "members":{ "logGroups":{ "shape":"LogGroups", - "documentation":"

The log groups.

If the retentionInDays value is not included for a log group, then that log group is set to have its events never expire.

" + "documentation":"

The log groups.

If the retentionInDays value is not included for a log group, then that log group's events do not expire.

" }, "nextToken":{"shape":"NextToken"} } @@ -978,7 +1126,11 @@ "members":{ "logGroupName":{ "shape":"LogGroupName", - "documentation":"

The name of the log group.

" + "documentation":"

The name of the log group.

If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error.

" + }, + "logGroupIdentifier":{ + "shape":"LogGroupIdentifier", + "documentation":"

Specify either the name or ARN of the log group to view. If the log group is in a source account and you are using a monitoring account, you must use the log group ARN.

If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error.

" }, "logStreamNamePrefix":{ "shape":"LogStreamName", @@ -986,7 +1138,7 @@ }, "orderBy":{ "shape":"OrderBy", - "documentation":"

If the value is LogStreamName, the results are ordered by log stream name. If the value is LastEventTime, the results are ordered by the event time. The default value is LogStreamName.

If you order the results by event time, you cannot specify the logStreamNamePrefix parameter.

lastEventTimestamp represents the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. lastEventTimestamp updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but in rare situations might take longer.

" + "documentation":"

If the value is LogStreamName, the results are ordered by log stream name. If the value is LastEventTime, the results are ordered by the event time. The default value is LogStreamName.

If you order the results by event time, you cannot specify the logStreamNamePrefix parameter.

lastEventTimestamp represents the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. lastEventTimestamp updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but in rare situations might take longer.

" }, "descending":{ "shape":"Descending", @@ -1021,7 +1173,7 @@ }, "filterNamePrefix":{ "shape":"FilterName", - "documentation":"

The prefix to match. CloudWatch Logs uses the value you set here only if you also include the logGroupName parameter in your request.

" + "documentation":"

The prefix to match. CloudWatch Logs uses the value that you set here only if you also include the logGroupName parameter in your request.

" }, "nextToken":{ "shape":"NextToken", @@ -1269,11 +1421,11 @@ }, "from":{ "shape":"Timestamp", - "documentation":"

The start time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp before this time are not exported.

" + "documentation":"

The start time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp before this time are not exported.

" }, "to":{ "shape":"Timestamp", - "documentation":"

The end time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.

" + "documentation":"

The end time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported.

" }, "destination":{ "shape":"ExportDestinationBucket", @@ -1299,11 +1451,11 @@ "members":{ "creationTime":{ "shape":"Timestamp", - "documentation":"

The creation time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The creation time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" }, "completionTime":{ "shape":"Timestamp", - "documentation":"

The completion time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The completion time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" } }, "documentation":"

Represents the status of an export task.

" @@ -1361,7 +1513,11 @@ "members":{ "logGroupName":{ "shape":"LogGroupName", - "documentation":"

The name of the log group to search.

" + "documentation":"

The name of the log group to search.

If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error.

" + }, + "logGroupIdentifier":{ + "shape":"LogGroupIdentifier", + "documentation":"

Specify either the name or ARN of the log group to view log events from. If the log group is in a source account and you are using a monitoring account, you must use the log group ARN.

If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error.

" }, "logStreamNames":{ "shape":"InputLogStreamNames", @@ -1373,11 +1529,11 @@ }, "startTime":{ "shape":"Timestamp", - "documentation":"

The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp before this time are not returned.

" + "documentation":"

The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp before this time are not returned.

" }, "endTime":{ "shape":"Timestamp", - "documentation":"

The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not returned.

" + "documentation":"

The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not returned.

" }, "filterPattern":{ "shape":"FilterPattern", @@ -1393,9 +1549,13 @@ }, "interleaved":{ "shape":"Interleaved", - "documentation":"

If the value is true, the operation makes a best effort to provide responses that contain events from multiple log streams within the log group, interleaved in a single response. If the value is false, all the matched log events in the first log stream are searched first, then those in the next log stream, and so on. The default is false.

Important: Starting on June 17, 2019, this parameter is ignored and the value is assumed to be true. The response from this operation always interleaves events from multiple log streams within a log group.

", + "documentation":"

If the value is true, the operation attempts to provide responses that contain events from multiple log streams within the log group, interleaved in a single response. If the value is false, all the matched log events in the first log stream are searched first, then those in the next log stream, and so on.

Important As of June 17, 2019, this parameter is ignored and the value is assumed to be true. The response from this operation always interleaves events from multiple log streams within a log group.

", "deprecated":true, "deprecatedMessage":"Starting on June 17, 2019, this parameter will be ignored and the value will be assumed to be true. The response from this operation will always interleave events from multiple log streams within a log group." + }, + "unmask":{ + "shape":"Unmask", + "documentation":"

Specify true to display the log event fields with all sensitive data unmasked and visible. The default is false.

To use this operation with this parameter, you must be signed into an account with the logs:Unmask permission.

" } } }, @@ -1408,7 +1568,7 @@ }, "searchedLogStreams":{ "shape":"SearchedLogStreams", - "documentation":"

IMPORTANT Starting on May 15, 2020, this parameter will be deprecated. This parameter will be an empty list after the deprecation occurs.

Indicates which log streams have been searched and whether each has been searched completely.

" + "documentation":"

Important As of May 15, 2020, this parameter is no longer supported. This parameter returns an empty list.

Indicates which log streams have been searched and whether each has been searched completely.

" }, "nextToken":{ "shape":"NextToken", @@ -1437,7 +1597,7 @@ }, "timestamp":{ "shape":"Timestamp", - "documentation":"

The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" }, "message":{ "shape":"EventMessage", @@ -1445,7 +1605,7 @@ }, "ingestionTime":{ "shape":"Timestamp", - "documentation":"

The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" }, "eventId":{ "shape":"EventId", @@ -1459,6 +1619,33 @@ "member":{"shape":"FilteredLogEvent"} }, "ForceUpdate":{"type":"boolean"}, + "GetDataProtectionPolicyRequest":{ + "type":"structure", + "required":["logGroupIdentifier"], + "members":{ + "logGroupIdentifier":{ + "shape":"LogGroupIdentifier", + "documentation":"

The name or ARN of the log group that contains the data protection policy that you want to see.

" + } + } + }, + "GetDataProtectionPolicyResponse":{ + "type":"structure", + "members":{ + "logGroupIdentifier":{ + "shape":"LogGroupIdentifier", + "documentation":"

The log group name or ARN that you specified in your request.

" + }, + "policyDocument":{ + "shape":"DataProtectionPolicyDocument", + "documentation":"

The data protection policy document for this log group.

" + }, + "lastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that this policy was most recently updated.

" + } + } + }, "GetLogEventsRequest":{ "type":"structure", "required":[ @@ -1468,7 +1655,11 @@ "members":{ "logGroupName":{ "shape":"LogGroupName", - "documentation":"

The name of the log group.

" + "documentation":"

The name of the log group.

If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error.

" + }, + "logGroupIdentifier":{ + "shape":"LogGroupIdentifier", + "documentation":"

Specify either the name or ARN of the log group to view events from. If the log group is in a source account and you are using a monitoring account, you must use the log group ARN.

If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error.

" }, "logStreamName":{ "shape":"LogStreamName", @@ -1476,11 +1667,11 @@ }, "startTime":{ "shape":"Timestamp", - "documentation":"

The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp equal to this time or later than this time are included. Events with a timestamp earlier than this time are not included.

" + "documentation":"

The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp equal to this time or later than this time are included. Events with a timestamp earlier than this time are not included.

" }, "endTime":{ "shape":"Timestamp", - "documentation":"

The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp equal to or later than this time are not included.

" + "documentation":"

The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp equal to or later than this time are not included.

" }, "nextToken":{ "shape":"NextToken", @@ -1488,11 +1679,15 @@ }, "limit":{ "shape":"EventsLimit", - "documentation":"

The maximum number of log events returned. If you don't specify a value, the maximum is as many log events as can fit in a response size of 1 MB, up to 10,000 log events.

" + "documentation":"

The maximum number of log events returned. If you don't specify a limit, the default is as many log events as can fit in a response size of 1 MB (up to 10,000 log events).

" }, "startFromHead":{ "shape":"StartFromHead", "documentation":"

If the value is true, the earliest log events are returned first. If the value is false, the latest log events are returned first. The default value is false.

If you are using a previous nextForwardToken value as the nextToken in this operation, you must specify true for startFromHead.

" + }, + "unmask":{ + "shape":"Unmask", + "documentation":"

Specify true to display the log event fields with all sensitive data unmasked and visible. The default is false.

To use this operation with this parameter, you must be signed into an account with the logs:Unmask permission.

" } } }, @@ -1509,7 +1704,7 @@ }, "nextBackwardToken":{ "shape":"NextToken", - "documentation":"

The token for the next set of items in the backward direction. The token expires after 24 hours. This token is never null. If you have reached the end of the stream, it returns the same token you passed in.

" + "documentation":"

The token for the next set of items in the backward direction. The token expires after 24 hours. This token is not null. If you have reached the end of the stream, it returns the same token you passed in.

" } } }, @@ -1519,11 +1714,15 @@ "members":{ "logGroupName":{ "shape":"LogGroupName", - "documentation":"

The name of the log group to search.

" + "documentation":"

The name of the log group to search.

If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error.

" }, "time":{ "shape":"Timestamp", - "documentation":"

The time to set as the center of the query. If you specify time, the 15 minutes before this time are queries. If you omit time the 8 minutes before and 8 minutes after this time are searched.

The time value is specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC.

" + "documentation":"

The time to set as the center of the query. If you specify time, the 15 minutes before this time are queries. If you omit time, the 8 minutes before and 8 minutes after this time are searched.

The time value is specified as epoch time, which is the number of seconds since January 1, 1970, 00:00:00 UTC.

" + }, + "logGroupIdentifier":{ + "shape":"LogGroupIdentifier", + "documentation":"

Specify either the name or ARN of the log group to view. If the log group is in a source account and you are using a monitoring account, you must specify the ARN.

If you specify values for both logGroupName and logGroupIdentifier, the action returns an InvalidParameterException error.

" } } }, @@ -1543,6 +1742,10 @@ "logRecordPointer":{ "shape":"LogRecordPointer", "documentation":"

The pointer corresponding to the log event record you want to retrieve. You get this from the response of a GetQueryResults operation. In that response, the value of the @ptr field for a log event is the value to use as logRecordPointer to retrieve that complete log event record.

" + }, + "unmask":{ + "shape":"Unmask", + "documentation":"

Specify true to display the log event fields with all sensitive data unmasked and visible. The default is false.

To use this operation with this parameter, you must be signed into an account with the logs:Unmask permission.

" } } }, @@ -1578,10 +1781,11 @@ }, "status":{ "shape":"QueryStatus", - "documentation":"

The status of the most recent running of the query. Possible values are Cancelled, Complete, Failed, Running, Scheduled, Timeout, and Unknown.

Queries time out after 15 minutes of execution. To avoid having your queries time out, reduce the time range being searched or partition your query into a number of queries.

" + "documentation":"

The status of the most recent running of the query. Possible values are Cancelled, Complete, Failed, Running, Scheduled, Timeout, and Unknown.

Queries time out after 15 minutes of runtime. To avoid having your queries time out, reduce the time range being searched or partition your query into a number of queries.

" } } }, + "IncludeLinkedAccounts":{"type":"boolean"}, "InputLogEvent":{ "type":"structure", "required":[ @@ -1591,7 +1795,7 @@ "members":{ "timestamp":{ "shape":"Timestamp", - "documentation":"

The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" }, "message":{ "shape":"EventMessage", @@ -1646,6 +1850,25 @@ "documentation":"

You have reached the maximum number of resources that can be created.

", "exception":true }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource that you want to view tags for.

The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name

The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name

For more information about ARN format, see CloudWatch Logs resources and operations.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"Tags", + "documentation":"

The list of tags associated with the requested resource.>

" + } + } + }, "ListTagsLogGroupRequest":{ "type":"structure", "required":["logGroupName"], @@ -1654,7 +1877,9 @@ "shape":"LogGroupName", "documentation":"

The name of the log group.

" } - } + }, + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse" }, "ListTagsLogGroupResponse":{ "type":"structure", @@ -1663,7 +1888,9 @@ "shape":"Tags", "documentation":"

The tags for the log group.

" } - } + }, + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API model ListTagsForResourceRequest and ListTagsForResourceResponse" }, "LogEventIndex":{"type":"integer"}, "LogGroup":{ @@ -1692,7 +1919,11 @@ }, "kmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

The Amazon Resource Name (ARN) of the CMK to use when encrypting log data.

" + "documentation":"

The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data.

" + }, + "dataProtectionStatus":{ + "shape":"DataProtectionStatus", + "documentation":"

Displays whether this log group has a protection policy, or whether it had one in the past. For more information, see PutDataProtectionPolicy.

" } }, "documentation":"

Represents a log group.

" @@ -1715,12 +1946,28 @@ "type":"list", "member":{"shape":"LogGroupField"} }, + "LogGroupIdentifier":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[\\w#+=/:,.@-]*" + }, + "LogGroupIdentifiers":{ + "type":"list", + "member":{"shape":"LogGroupIdentifier"} + }, "LogGroupName":{ "type":"string", "max":512, "min":1, "pattern":"[\\.\\-_/#A-Za-z0-9]+" }, + "LogGroupNamePattern":{ + "type":"string", + "max":512, + "min":0, + "pattern":"[\\.\\-_/#A-Za-z0-9]*" + }, "LogGroupNames":{ "type":"list", "member":{"shape":"LogGroupName"} @@ -1744,19 +1991,19 @@ }, "creationTime":{ "shape":"Timestamp", - "documentation":"

The creation time of the stream, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The creation time of the stream, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" }, "firstEventTimestamp":{ "shape":"Timestamp", - "documentation":"

The time of the first event, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The time of the first event, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" }, "lastEventTimestamp":{ "shape":"Timestamp", - "documentation":"

The time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. The lastEventTime value updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but in rare situations might take longer.

" + "documentation":"

The time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. The lastEventTime value updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but in rare situations might take longer.

" }, "lastIngestionTime":{ "shape":"Timestamp", - "documentation":"

The ingestion time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The ingestion time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" }, "uploadSequenceToken":{ "shape":"SequenceToken", @@ -1768,7 +2015,7 @@ }, "storedBytes":{ "shape":"StoredBytes", - "documentation":"

The number of bytes stored.

Important: On June 17, 2019, this parameter was deprecated for log streams, and is always reported as zero. This change applies only to log streams. The storedBytes parameter for log groups is not affected.

", + "documentation":"

The number of bytes stored.

Important: As of June 17, 2019, this parameter is no longer supported for log streams, and is always reported as zero. This change applies only to log streams. The storedBytes parameter for log groups is not affected.

", "deprecated":true, "deprecatedMessage":"Starting on June 17, 2019, this parameter will be deprecated for log streams, and will be reported as zero. This change applies only to log streams. The storedBytes parameter for log groups is not affected." } @@ -1809,7 +2056,7 @@ }, "creationTime":{ "shape":"Timestamp", - "documentation":"

The creation time of the metric filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The creation time of the metric filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" }, "logGroupName":{ "shape":"LogGroupName", @@ -1881,7 +2128,7 @@ }, "dimensions":{ "shape":"Dimensions", - "documentation":"

The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions.

Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric.

To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time.

You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges.

" + "documentation":"

The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions.

Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric.

CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges.

You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services Charges.

" }, "unit":{ "shape":"StandardUnit", @@ -1898,7 +2145,7 @@ }, "MetricValue":{ "type":"string", - "documentation":"

The value to publish to the CloudWatch metric. For example, if you're counting the occurrences of a term like \"Error\", the value is \"1\" for each occurrence. If you're counting the bytes transferred, the value is the value in the log event.

", + "documentation":"

The value to publish to the CloudWatch metric. For example, if you're counting the occurrences of a term like Error, the value is 1 for each occurrence. If you're counting the bytes transferred, the value is the value in the log event.

", "max":100 }, "NextToken":{ @@ -1925,7 +2172,7 @@ "members":{ "timestamp":{ "shape":"Timestamp", - "documentation":"

The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" }, "message":{ "shape":"EventMessage", @@ -1933,7 +2180,7 @@ }, "ingestionTime":{ "shape":"Timestamp", - "documentation":"

The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" } }, "documentation":"

Represents a log event.

" @@ -1953,6 +2200,40 @@ "min":1 }, "PolicyName":{"type":"string"}, + "PutDataProtectionPolicyRequest":{ + "type":"structure", + "required":[ + "logGroupIdentifier", + "policyDocument" + ], + "members":{ + "logGroupIdentifier":{ + "shape":"LogGroupIdentifier", + "documentation":"

Specify either the log group name or log group ARN.

" + }, + "policyDocument":{ + "shape":"DataProtectionPolicyDocument", + "documentation":"

Specify the data protection policy, in JSON.

This policy must include two JSON blocks:

  • The first block must include both a DataIdentifer array and an Operation property with an Audit action. The DataIdentifer array lists the types of sensitive data that you want to mask. For more information about the available options, see Types of data that you can mask.

    The Operation property with an Audit action is required to find the sensitive data terms. This Audit action must contain a FindingsDestination object. You can optionally use that FindingsDestination object to list one or more destinations to send audit findings to. If you specify destinations such as log groups, Kinesis Data Firehose streams, and S3 buckets, they must already exist.

  • The second block must include both a DataIdentifer array and an Operation property with an Deidentify action. The DataIdentifer array must exactly match the DataIdentifer array in the first block of the policy.

    The Operation property with the Deidentify action is what actually masks the data, and it must contain the \"MaskConfig\": {} object. The \"MaskConfig\": {} object must be empty.

For an example data protection policy, see the Examples section on this page.

The contents of two DataIdentifer arrays must match exactly.

" + } + } + }, + "PutDataProtectionPolicyResponse":{ + "type":"structure", + "members":{ + "logGroupIdentifier":{ + "shape":"LogGroupIdentifier", + "documentation":"

The log group name or ARN that you specified in your request.

" + }, + "policyDocument":{ + "shape":"DataProtectionPolicyDocument", + "documentation":"

The data protection policy used for this log group.

" + }, + "lastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that this policy was most recently updated.

" + } + } + }, "PutDestinationPolicyRequest":{ "type":"structure", "required":[ @@ -1993,6 +2274,10 @@ "roleArn":{ "shape":"RoleArn", "documentation":"

The ARN of an IAM role that grants CloudWatch Logs permissions to call the Amazon Kinesis PutRecord operation on the destination stream.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

An optional list of key-value pairs to associate with the resource.

For more information about tagging, see Tagging Amazon Web Services resources

" } } }, @@ -2080,7 +2365,7 @@ "members":{ "name":{ "shape":"QueryDefinitionName", - "documentation":"

A name for the query definition. If you are saving a lot of query definitions, we recommend that you name them so that you can easily find the ones you want by using the first part of the name as a filter in the queryDefinitionNamePrefix parameter of DescribeQueryDefinitions.

" + "documentation":"

A name for the query definition. If you are saving numerous query definitions, we recommend that you name them. This way, you can find the ones you want by using the first part of the name as a filter in the queryDefinitionNamePrefix parameter of DescribeQueryDefinitions.

" }, "queryDefinitionId":{ "shape":"QueryId", @@ -2114,7 +2399,7 @@ }, "policyDocument":{ "shape":"PolicyDocument", - "documentation":"

Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. This parameter is required.

The following example creates a resource policy enabling the Route 53 service to put DNS query logs in to the specified log group. Replace \"logArn\" with the ARN of your CloudWatch Logs resource, such as a log group or log stream.

CloudWatch Logs also supports aws:SourceArn and aws:SourceAccount condition context keys.

In the example resource policy, you would replace the value of SourceArn with the resource making the call from Route 53 to CloudWatch Logs and replace the value of SourceAccount with the Amazon Web Services account ID making that call.

{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Sid\": \"Route53LogsToCloudWatchLogs\", \"Effect\": \"Allow\", \"Principal\": { \"Service\": [ \"route53.amazonaws.com\" ] }, \"Action\": \"logs:PutLogEvents\", \"Resource\": \"logArn\", \"Condition\": { \"ArnLike\": { \"aws:SourceArn\": \"myRoute53ResourceArn\" }, \"StringEquals\": { \"aws:SourceAccount\": \"myAwsAccountId\" } } } ] }

" + "documentation":"

Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. This parameter is required.

The following example creates a resource policy enabling the Route 53 service to put DNS query logs in to the specified log group. Replace \"logArn\" with the ARN of your CloudWatch Logs resource, such as a log group or log stream.

CloudWatch Logs also supports aws:SourceArn and aws:SourceAccount condition context keys.

In the example resource policy, you would replace the value of SourceArn with the resource making the call from Route 53 to CloudWatch Logs. You would also replace the value of SourceAccount with the Amazon Web Services account ID making that call.

{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Sid\": \"Route53LogsToCloudWatchLogs\", \"Effect\": \"Allow\", \"Principal\": { \"Service\": [ \"route53.amazonaws.com\" ] }, \"Action\": \"logs:PutLogEvents\", \"Resource\": \"logArn\", \"Condition\": { \"ArnLike\": { \"aws:SourceArn\": \"myRoute53ResourceArn\" }, \"StringEquals\": { \"aws:SourceAccount\": \"myAwsAccountId\" } } } ] }

" } } }, @@ -2164,7 +2449,7 @@ }, "destinationArn":{ "shape":"DestinationArn", - "documentation":"

The ARN of the destination to deliver matching log events to. Currently, the supported destinations are:

  • An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery.

  • A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery.

    If you are setting up a cross-account subscription, the destination must have an IAM policy associated with it that allows the sender to send logs to the destination. For more information, see PutDestinationPolicy.

  • An Amazon Kinesis Firehose delivery stream belonging to the same account as the subscription filter, for same-account delivery.

  • A Lambda function belonging to the same account as the subscription filter, for same-account delivery.

" + "documentation":"

The ARN of the destination to deliver matching log events to. Currently, the supported destinations are:

  • An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery.

  • A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery.

    If you're setting up a cross-account subscription, the destination must have an IAM policy associated with it. The IAM policy must allow the sender to send logs to the destination. For more information, see PutDestinationPolicy.

  • A Kinesis Data Firehose delivery stream belonging to the same account as the subscription filter, for same-account delivery.

  • A Lambda function belonging to the same account as the subscription filter, for same-account delivery.

" }, "roleArn":{ "shape":"RoleArn", @@ -2172,7 +2457,7 @@ }, "distribution":{ "shape":"Distribution", - "documentation":"

The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream.

" + "documentation":"

The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis data stream.

" } } }, @@ -2334,7 +2619,7 @@ }, "tooOldLogEventEndIndex":{ "shape":"LogEventIndex", - "documentation":"

The log events that are too old.

" + "documentation":"

The log events that are dated too far in the past.

" }, "expiredLogEventEndIndex":{ "shape":"LogEventIndex", @@ -2374,7 +2659,7 @@ }, "lastUpdatedTime":{ "shape":"Timestamp", - "documentation":"

Timestamp showing when this policy was last updated, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

Timestamp showing when this policy was last updated, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" } }, "documentation":"

A policy enabling one or more entities to put logs to a log group in this account.

" @@ -2474,19 +2759,23 @@ "members":{ "logGroupName":{ "shape":"LogGroupName", - "documentation":"

The log group on which to perform the query.

A StartQuery operation must include a logGroupNames or a logGroupName parameter, but not both.

" + "documentation":"

The log group on which to perform the query.

A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames or logGroupIdentifiers.

" }, "logGroupNames":{ "shape":"LogGroupNames", - "documentation":"

The list of log groups to be queried. You can include up to 20 log groups.

A StartQuery operation must include a logGroupNames or a logGroupName parameter, but not both.

" + "documentation":"

The list of log groups to be queried. You can include up to 50 log groups.

A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames or logGroupIdentifiers.

" + }, + "logGroupIdentifiers":{ + "shape":"LogGroupIdentifiers", + "documentation":"

The list of log groups to query. You can include up to 50 log groups.

You can specify them by the log group name or ARN. If a log group that you're querying is in a source account and you're using a monitoring account, you must specify the ARN of the log group here. The query definition must also be defined in the monitoring account.

If you specify an ARN, the ARN can't end with an asterisk (*).

A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames or logGroupIdentifiers.

" }, "startTime":{ "shape":"Timestamp", - "documentation":"

The beginning of the time range to query. The range is inclusive, so the specified start time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC.

" + "documentation":"

The beginning of the time range to query. The range is inclusive, so the specified start time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC.

" }, "endTime":{ "shape":"Timestamp", - "documentation":"

The end of the time range to query. The range is inclusive, so the specified end time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC.

" + "documentation":"

The end of the time range to query. The range is inclusive, so the specified end time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC.

" }, "queryString":{ "shape":"QueryString", @@ -2554,7 +2843,7 @@ "distribution":{"shape":"Distribution"}, "creationTime":{ "shape":"Timestamp", - "documentation":"

The creation time of the subscription filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + "documentation":"

The creation time of the subscription filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" } }, "documentation":"

Represents a subscription filter.

" @@ -2570,6 +2859,12 @@ "min":1, "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]+)$" }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, "TagList":{ "type":"list", "member":{"shape":"TagKey"}, @@ -2590,6 +2885,25 @@ "shape":"Tags", "documentation":"

The key-value pairs to use for the tags.

" } + }, + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API model TagResourceRequest" + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource that you're adding tags to.

The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name

The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name

For more information about ARN format, see CloudWatch Logs resources and operations.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

The list of key-value pairs to associate with the resource.

" + } } }, "TagValue":{ @@ -2642,11 +2956,24 @@ "min":0 }, "Token":{"type":"string"}, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "message":{"shape":"Message"}, + "resourceName":{ + "shape":"AmazonResourceName", + "documentation":"

The name of the resource.

" + } + }, + "documentation":"

A resource can have no more than 50 tags.

", + "exception":true + }, + "Unmask":{"type":"boolean"}, "UnrecognizedClientException":{ "type":"structure", "members":{ }, - "documentation":"

The most likely cause is an invalid Amazon Web Services access key ID or secret key.

", + "documentation":"

The most likely cause is an Amazon Web Services access key ID or secret key that's not valid.

", "exception":true }, "UntagLogGroupRequest":{ @@ -2664,9 +2991,28 @@ "shape":"TagList", "documentation":"

The tag keys. The corresponding tags are removed from the log group.

" } + }, + "deprecated":true, + "deprecatedMessage":"Please use the generic tagging API model UntagResourceRequest" + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the CloudWatch Logs resource that you're removing tags from.

The ARN format of a log group is arn:aws:logs:Region:account-id:log-group:log-group-name

The ARN format of a destination is arn:aws:logs:Region:account-id:destination:destination-name

For more information about ARN format, see CloudWatch Logs resources and operations.

" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

The list of tag keys to remove from the resource.

" + } } }, "Value":{"type":"string"} }, - "documentation":"

You can use Amazon CloudWatch Logs to monitor, store, and access your log files from EC2 instances, CloudTrail, and other sources. You can then retrieve the associated log data from CloudWatch Logs using the CloudWatch console, CloudWatch Logs commands in the Amazon Web Services CLI, CloudWatch Logs API, or CloudWatch Logs SDK.

You can use CloudWatch Logs to:

  • Monitor logs from EC2 instances in real-time: You can use CloudWatch Logs to monitor applications and systems using log data. For example, CloudWatch Logs can track the number of errors that occur in your application logs and send you a notification whenever the rate of errors exceeds a threshold that you specify. CloudWatch Logs uses your log data for monitoring so no code changes are required. For example, you can monitor application logs for specific literal terms (such as \"NullReferenceException\") or count the number of occurrences of a literal term at a particular position in log data (such as \"404\" status codes in an Apache access log). When the term you are searching for is found, CloudWatch Logs reports the data to a CloudWatch metric that you specify.

  • Monitor CloudTrail logged events: You can create alarms in CloudWatch and receive notifications of particular API activity as captured by CloudTrail. You can use the notification to perform troubleshooting.

  • Archive log data: You can use CloudWatch Logs to store your log data in highly durable storage. You can change the log retention setting so that any log events older than this setting are automatically deleted. The CloudWatch Logs agent makes it easy to quickly send both rotated and non-rotated log data off of a host and into the log service. You can then access the raw log data when you need it.

" + "documentation":"

You can use Amazon CloudWatch Logs to monitor, store, and access your log files from EC2 instances, CloudTrail, and other sources. You can then retrieve the associated log data from CloudWatch Logs using the CloudWatch console. Alternatively, you can use CloudWatch Logs commands in the Amazon Web Services CLI, CloudWatch Logs API, or CloudWatch Logs SDK.

You can use CloudWatch Logs to:

  • Monitor logs from EC2 instances in real time: You can use CloudWatch Logs to monitor applications and systems using log data. For example, CloudWatch Logs can track the number of errors that occur in your application logs. Then, it can send you a notification whenever the rate of errors exceeds a threshold that you specify. CloudWatch Logs uses your log data for monitoring so no code changes are required. For example, you can monitor application logs for specific literal terms (such as \"NullReferenceException\"). You can also count the number of occurrences of a literal term at a particular position in log data (such as \"404\" status codes in an Apache access log). When the term you are searching for is found, CloudWatch Logs reports the data to a CloudWatch metric that you specify.

  • Monitor CloudTrail logged events: You can create alarms in CloudWatch and receive notifications of particular API activity as captured by CloudTrail. You can use the notification to perform troubleshooting.

  • Archive log data: You can use CloudWatch Logs to store your log data in highly durable storage. You can change the log retention setting so that any log events earlier than this setting are automatically deleted. The CloudWatch Logs agent helps to quickly send both rotated and non-rotated log data off of a host and into the log service. You can then access the raw log data when you need it.

" } diff --git a/botocore/data/lookoutequipment/2020-12-15/endpoint-rule-set-1.json b/botocore/data/lookoutequipment/2020-12-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..0183f652 --- /dev/null +++ b/botocore/data/lookoutequipment/2020-12-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lookoutequipment-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lookoutequipment-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lookoutequipment.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://lookoutequipment.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lookoutequipment/2020-12-15/examples-1.json b/botocore/data/lookoutequipment/2020-12-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/lookoutequipment/2020-12-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/lookoutequipment/2020-12-15/service-2.json b/botocore/data/lookoutequipment/2020-12-15/service-2.json index 5eb9be6c..bb9f5b42 100644 --- a/botocore/data/lookoutequipment/2020-12-15/service-2.json +++ b/botocore/data/lookoutequipment/2020-12-15/service-2.json @@ -50,6 +50,43 @@ ], "documentation":"

Creates a scheduled inference. Scheduling an inference is setting up a continuous real-time inference plan to analyze new measurement data. When setting up the schedule, you provide an S3 bucket location for the input data, assign it a delimiter between separate entries in the data, set an offset delay if desired, and set the frequency of inferencing. You must also provide an S3 bucket location for the output data.

" }, + "CreateLabel":{ + "name":"CreateLabel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLabelRequest"}, + "output":{"shape":"CreateLabelResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a label for an event.

" + }, + "CreateLabelGroup":{ + "name":"CreateLabelGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateLabelGroupRequest"}, + "output":{"shape":"CreateLabelGroupResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a group of labels.

" + }, "CreateModel":{ "name":"CreateModel", "http":{ @@ -102,6 +139,38 @@ ], "documentation":"

Deletes an inference scheduler that has been set up. Already processed output results are not affected.

" }, + "DeleteLabel":{ + "name":"DeleteLabel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLabelRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes a label.

" + }, + "DeleteLabelGroup":{ + "name":"DeleteLabelGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteLabelGroupRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes a group of labels.

" + }, "DeleteModel":{ "name":"DeleteModel", "http":{ @@ -169,6 +238,40 @@ ], "documentation":"

Specifies information about the inference scheduler being used, including name, model, status, and associated metadata

" }, + "DescribeLabel":{ + "name":"DescribeLabel", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLabelRequest"}, + "output":{"shape":"DescribeLabelResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns the name of the label.

" + }, + "DescribeLabelGroup":{ + "name":"DescribeLabelGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeLabelGroupRequest"}, + "output":{"shape":"DescribeLabelGroupResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about the label group.

" + }, "DescribeModel":{ "name":"DescribeModel", "http":{ @@ -218,6 +321,23 @@ ], "documentation":"

Lists all datasets currently available in your account, filtering on the dataset name.

" }, + "ListInferenceEvents":{ + "name":"ListInferenceEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListInferenceEventsRequest"}, + "output":{"shape":"ListInferenceEventsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists all inference events that have been found for the specified inference scheduler.

" + }, "ListInferenceExecutions":{ "name":"ListInferenceExecutions", "http":{ @@ -251,6 +371,38 @@ ], "documentation":"

Retrieves a list of all inference schedulers currently available for your account.

" }, + "ListLabelGroups":{ + "name":"ListLabelGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLabelGroupsRequest"}, + "output":{"shape":"ListLabelGroupsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns a list of the label groups.

" + }, + "ListLabels":{ + "name":"ListLabels", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLabelsRequest"}, + "output":{"shape":"ListLabelsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Provides a list of labels.

" + }, "ListModels":{ "name":"ListModels", "http":{ @@ -407,6 +559,23 @@ {"shape":"InternalServerException"} ], "documentation":"

Updates an inference scheduler.

" + }, + "UpdateLabelGroup":{ + "name":"UpdateLabelGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateLabelGroupRequest"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates the label group.

" } }, "shapes":{ @@ -446,6 +615,12 @@ }, "documentation":"

Entity that comprises information on categorical values in data.

" }, + "Comments":{ + "type":"string", + "max":2560, + "min":1, + "pattern":"[\\P{M}\\p{M}]{1,2560}" + }, "ComponentName":{ "type":"string", "max":200, @@ -554,11 +729,11 @@ }, "DataDelayOffsetInMinutes":{ "shape":"DataDelayOffsetInMinutes", - "documentation":"

A period of time (in minutes) by which inference on the data is delayed after the data starts. For instance, if you select an offset delay time of five minutes, inference will not begin on the data until the first data measurement after the five minute mark. For example, if five minutes is selected, the inference scheduler will wake up at the configured frequency with the additional five minute delay time to check the customer S3 bucket. The customer can upload data at the same frequency and they don't need to stop and restart the scheduler when uploading new data.

" + "documentation":"

The interval (in minutes) of planned delay at the start of each inference segment. For example, if inference is set to run every ten minutes, the delay is set to five minutes and the time is 09:08. The inference scheduler will wake up at the configured interval (which, without a delay configured, would be 09:10) plus the additional five minute delay time (so 09:15) to check your Amazon S3 bucket. The delay provides a buffer for you to upload data at the same frequency, so that you don't have to stop and restart the scheduler when uploading new data.

For more information, see Understanding the inference process.

" }, "DataUploadFrequency":{ "shape":"DataUploadFrequency", - "documentation":"

How often data is uploaded to the source S3 bucket for the input data. The value chosen is the length of time between data uploads. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real-time data to the source bucket once every 5 minutes. This frequency also determines how often Amazon Lookout for Equipment starts a scheduled inference on your data. In this example, it starts once every 5 minutes.

" + "documentation":"

How often data is uploaded to the source Amazon S3 bucket for the input data. The value chosen is the length of time between data uploads. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real-time data to the source bucket once every 5 minutes. This frequency also determines how often Amazon Lookout for Equipment runs inference on your data.

For more information, see Understanding the inference process.

" }, "DataInputConfiguration":{ "shape":"InferenceInputConfiguration", @@ -604,6 +779,99 @@ } } }, + "CreateLabelGroupRequest":{ + "type":"structure", + "required":[ + "LabelGroupName", + "ClientToken" + ], + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

Names a group of labels.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "FaultCodes":{ + "shape":"FaultCodes", + "documentation":"

The acceptable fault codes (indicating the type of anomaly associated with the label) that can be used with this label group.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "ClientToken":{ + "shape":"IdempotenceToken", + "documentation":"

A unique identifier for the request to create a label group. If you do not set the client request token, Lookout for Equipment generates one.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Tags that provide metadata about the label group you are creating.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + } + } + }, + "CreateLabelGroupResponse":{ + "type":"structure", + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of the label group that you have created. Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "LabelGroupArn":{ + "shape":"LabelGroupArn", + "documentation":"

The ARN of the label group that you have created.

" + } + } + }, + "CreateLabelRequest":{ + "type":"structure", + "required":[ + "LabelGroupName", + "StartTime", + "EndTime", + "Rating", + "ClientToken" + ], + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of a group of labels.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The start time of the labeled event.

" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The end time of the labeled event.

" + }, + "Rating":{ + "shape":"LabelRating", + "documentation":"

Indicates whether a labeled event represents an anomaly.

" + }, + "FaultCode":{ + "shape":"FaultCode", + "documentation":"

Provides additional information about the label. The fault code must be defined in the FaultCodes attribute of the label group.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "Notes":{ + "shape":"Comments", + "documentation":"

Metadata providing additional information about the label.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "Equipment":{ + "shape":"Equipment", + "documentation":"

Indicates that a label pertains to a particular piece of equipment.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "ClientToken":{ + "shape":"IdempotenceToken", + "documentation":"

A unique identifier for the request to create a label. If you do not set the client request token, Lookout for Equipment generates one.

", + "idempotencyToken":true + } + } + }, + "CreateLabelResponse":{ + "type":"structure", + "members":{ + "LabelId":{ + "shape":"LabelId", + "documentation":"

The ID of the label that you have created.

" + } + } + }, "CreateModelRequest":{ "type":"structure", "required":[ @@ -859,6 +1127,33 @@ } } }, + "DeleteLabelGroupRequest":{ + "type":"structure", + "required":["LabelGroupName"], + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of the label group that you want to delete. Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + } + } + }, + "DeleteLabelRequest":{ + "type":"structure", + "required":[ + "LabelGroupName", + "LabelId" + ], + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of the label group that contains the label that you want to delete. Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "LabelId":{ + "shape":"LabelId", + "documentation":"

The ID of the label that you want to delete.

" + } + } + }, "DeleteModelRequest":{ "type":"structure", "required":["ModelName"], @@ -956,7 +1251,7 @@ }, "CreatedAt":{ "shape":"Timestamp", - "documentation":"

Specifies the time the dataset was created in Amazon Lookout for Equipment.

" + "documentation":"

Specifies the time the dataset was created in Lookout for Equipment.

" }, "LastUpdatedAt":{ "shape":"Timestamp", @@ -1065,6 +1360,107 @@ "ServerSideKmsKeyId":{ "shape":"KmsKeyArn", "documentation":"

Provides the identifier of the KMS key used to encrypt inference scheduler data by Amazon Lookout for Equipment.

" + }, + "LatestInferenceResult":{ + "shape":"LatestInferenceResult", + "documentation":"

Indicates whether the latest execution for the inference scheduler was Anomalous (anomalous events found) or Normal (no anomalous events found).

" + } + } + }, + "DescribeLabelGroupRequest":{ + "type":"structure", + "required":["LabelGroupName"], + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

Returns the name of the label group.

" + } + } + }, + "DescribeLabelGroupResponse":{ + "type":"structure", + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of the label group.

" + }, + "LabelGroupArn":{ + "shape":"LabelGroupArn", + "documentation":"

The ARN of the label group.

" + }, + "FaultCodes":{ + "shape":"FaultCodes", + "documentation":"

Codes indicating the type of anomaly associated with the labels in the lagbel group.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the label group was created.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the label group was updated.

" + } + } + }, + "DescribeLabelRequest":{ + "type":"structure", + "required":[ + "LabelGroupName", + "LabelId" + ], + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

Returns the name of the group containing the label.

" + }, + "LabelId":{ + "shape":"LabelId", + "documentation":"

Returns the ID of the label.

" + } + } + }, + "DescribeLabelResponse":{ + "type":"structure", + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of the requested label group.

" + }, + "LabelGroupArn":{ + "shape":"LabelGroupArn", + "documentation":"

The ARN of the requested label group.

" + }, + "LabelId":{ + "shape":"LabelId", + "documentation":"

The ID of the requested label.

" + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The start time of the requested label.

" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The end time of the requested label.

" + }, + "Rating":{ + "shape":"LabelRating", + "documentation":"

Indicates whether a labeled event represents an anomaly.

" + }, + "FaultCode":{ + "shape":"FaultCode", + "documentation":"

Indicates the type of anomaly associated with the label.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "Notes":{ + "shape":"Comments", + "documentation":"

Metadata providing additional information about the label.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "Equipment":{ + "shape":"Equipment", + "documentation":"

Indicates that a label pertains to a particular piece of equipment.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the label was created.

" } } }, @@ -1180,6 +1576,28 @@ }, "documentation":"

Entity that comprises information abount duplicate timestamps in the dataset.

" }, + "Equipment":{ + "type":"string", + "max":200, + "min":1, + "pattern":"[\\P{M}\\p{M}]{1,200}" + }, + "EventDurationInSeconds":{ + "type":"long", + "min":0 + }, + "FaultCode":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[\\P{M}\\p{M}]{1,100}" + }, + "FaultCodes":{ + "type":"list", + "member":{"shape":"FaultCode"}, + "max":50, + "min":0 + }, "FileNameTimestampFormat":{ "type":"string", "pattern":"^EPOCH|yyyy-MM-dd-HH-mm-ss|yyyyMMddHHmmss$" @@ -1197,6 +1615,40 @@ "min":1, "pattern":"\\p{ASCII}{1,256}" }, + "InferenceEventSummaries":{ + "type":"list", + "member":{"shape":"InferenceEventSummary"} + }, + "InferenceEventSummary":{ + "type":"structure", + "members":{ + "InferenceSchedulerArn":{ + "shape":"InferenceSchedulerArn", + "documentation":"

The Amazon Resource Name (ARN) of the inference scheduler being used for the inference event.

" + }, + "InferenceSchedulerName":{ + "shape":"InferenceSchedulerName", + "documentation":"

The name of the inference scheduler being used for the inference events.

" + }, + "EventStartTime":{ + "shape":"Timestamp", + "documentation":"

Indicates the starting time of an inference event.

" + }, + "EventEndTime":{ + "shape":"Timestamp", + "documentation":"

Indicates the ending time of an inference event.

" + }, + "Diagnostics":{ + "shape":"ModelMetrics", + "documentation":"

An array which specifies the names and values of all sensors contributing to an inference event.

" + }, + "EventDurationInSeconds":{ + "shape":"EventDurationInSeconds", + "documentation":"

Indicates the size of an inference event in seconds.

" + } + }, + "documentation":"

Contains information about the specific inference event, including start and end time, diagnostics information, event duration and so on.

" + }, "InferenceExecutionStatus":{ "type":"string", "enum":[ @@ -1401,6 +1853,10 @@ "DataUploadFrequency":{ "shape":"DataUploadFrequency", "documentation":"

How often data is uploaded to the source S3 bucket for the input data. This value is the length of time between data uploads. For instance, if you select 5 minutes, Amazon Lookout for Equipment will upload the real-time data to the source bucket once every 5 minutes. This frequency also determines how often Amazon Lookout for Equipment starts a scheduled inference on your data. In this example, it starts once every 5 minutes.

" + }, + "LatestInferenceResult":{ + "shape":"LatestInferenceResult", + "documentation":"

Indicates whether the latest execution for the inference scheduler was Anomalous (anomalous events found) or Normal (no anomalous events found).

" } }, "documentation":"

Contains information about the specific inference scheduler, including data delay offset, model name and ARN, status, and so on.

" @@ -1533,13 +1989,113 @@ "min":1, "pattern":"arn:aws[a-z\\-]*:kms:[a-z0-9\\-]*:\\d{12}:[\\w\\-\\/]+" }, + "LabelGroupArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:aws(-[^:]+)?:lookoutequipment:[a-zA-Z0-9\\-]*:[0-9]{12}:label-group\\/.+" + }, + "LabelGroupName":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^[0-9a-zA-Z_-]{1,200}$" + }, + "LabelGroupSummaries":{ + "type":"list", + "member":{"shape":"LabelGroupSummary"} + }, + "LabelGroupSummary":{ + "type":"structure", + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of the label group.

" + }, + "LabelGroupArn":{ + "shape":"LabelGroupArn", + "documentation":"

The ARN of the label group.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the label group was created.

" + }, + "UpdatedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the label group was updated.

" + } + }, + "documentation":"

Contains information about the label group.

" + }, + "LabelId":{ + "type":"string", + "max":32, + "pattern":"[A-Fa-f0-9]{0,32}" + }, + "LabelRating":{ + "type":"string", + "enum":[ + "ANOMALY", + "NO_ANOMALY", + "NEUTRAL" + ] + }, + "LabelSummaries":{ + "type":"list", + "member":{"shape":"LabelSummary"} + }, + "LabelSummary":{ + "type":"structure", + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of the label group.

" + }, + "LabelId":{ + "shape":"LabelId", + "documentation":"

The ID of the label.

" + }, + "LabelGroupArn":{ + "shape":"LabelGroupArn", + "documentation":"

The ARN of the label group.

" + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp indicating the start of the label.

" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp indicating the end of the label.

" + }, + "Rating":{ + "shape":"LabelRating", + "documentation":"

Indicates whether a labeled event represents an anomaly.

" + }, + "FaultCode":{ + "shape":"FaultCode", + "documentation":"

Indicates the type of anomaly associated with the label.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + }, + "Equipment":{ + "shape":"Equipment", + "documentation":"

Indicates that a label pertains to a particular piece of equipment.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The time at which the label was created.

" + } + }, + "documentation":"

Information about the label.

" + }, "LabelsInputConfiguration":{ "type":"structure", - "required":["S3InputConfiguration"], "members":{ "S3InputConfiguration":{ "shape":"LabelsS3InputConfiguration", "documentation":"

Contains location information for the S3 location being used for label data.

" + }, + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of the label group to be used for label data.

" } }, "documentation":"

Contains the configuration information for the S3 location being used to hold label data.

" @@ -1578,6 +2134,13 @@ }, "documentation":"

Entity that comprises information on large gaps between consecutive timestamps in data.

" }, + "LatestInferenceResult":{ + "type":"string", + "enum":[ + "ANOMALOUS", + "NORMAL" + ] + }, "ListDataIngestionJobsRequest":{ "type":"structure", "members":{ @@ -1587,7 +2150,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

An opaque pagination token indicating where to continue the listing of data ingestion jobs.

" + "documentation":"

An opaque pagination token indicating where to continue the listing of data ingestion jobs.

" }, "MaxResults":{ "shape":"MaxResults", @@ -1642,6 +2205,49 @@ } } }, + "ListInferenceEventsRequest":{ + "type":"structure", + "required":[ + "InferenceSchedulerName", + "IntervalStartTime", + "IntervalEndTime" + ], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

An opaque pagination token indicating where to continue the listing of inference events.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

Specifies the maximum number of inference events to list.

" + }, + "InferenceSchedulerName":{ + "shape":"InferenceSchedulerIdentifier", + "documentation":"

The name of the inference scheduler for the inference events listed.

" + }, + "IntervalStartTime":{ + "shape":"Timestamp", + "documentation":"

Lookout for Equipment will return all the inference events with an end time equal to or greater than the start time given.

" + }, + "IntervalEndTime":{ + "shape":"Timestamp", + "documentation":"

Returns all the inference events with an end start time equal to or greater than less than the end time given

" + } + } + }, + "ListInferenceEventsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

An opaque pagination token indicating where to continue the listing of inference executions.

" + }, + "InferenceEventSummaries":{ + "shape":"InferenceEventSummaries", + "documentation":"

Provides an array of information about the individual inference events returned from the ListInferenceEvents operation, including scheduler used, event start time, event end time, diagnostics, and so on.

" + } + } + }, "ListInferenceExecutionsRequest":{ "type":"structure", "required":["InferenceSchedulerName"], @@ -1719,6 +2325,83 @@ } } }, + "ListLabelGroupsRequest":{ + "type":"structure", + "members":{ + "LabelGroupNameBeginsWith":{ + "shape":"LabelGroupName", + "documentation":"

The beginning of the name of the label groups to be listed.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

An opaque pagination token indicating where to continue the listing of label groups.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

Specifies the maximum number of label groups to list.

" + } + } + }, + "ListLabelGroupsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

An opaque pagination token indicating where to continue the listing of label groups.

" + }, + "LabelGroupSummaries":{ + "shape":"LabelGroupSummaries", + "documentation":"

A summary of the label groups.

" + } + } + }, + "ListLabelsRequest":{ + "type":"structure", + "required":["LabelGroupName"], + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

Retruns the name of the label group.

" + }, + "IntervalStartTime":{ + "shape":"Timestamp", + "documentation":"

Returns all the labels with a end time equal to or later than the start time given.

" + }, + "IntervalEndTime":{ + "shape":"Timestamp", + "documentation":"

Returns all labels with a start time earlier than the end time given.

" + }, + "FaultCode":{ + "shape":"FaultCode", + "documentation":"

Returns labels with a particular fault code.

" + }, + "Equipment":{ + "shape":"Equipment", + "documentation":"

Lists the labels that pertain to a particular piece of equipment.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

An opaque pagination token indicating where to continue the listing of label groups.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

Specifies the maximum number of labels to list.

" + } + } + }, + "ListLabelsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

An opaque pagination token indicating where to continue the listing of datasets.

" + }, + "LabelSummaries":{ + "shape":"LabelSummaries", + "documentation":"

A summary of the items in the label group.

" + } + } + }, "ListModelsRequest":{ "type":"structure", "members":{ @@ -1776,11 +2459,11 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Specifies the maximum number of sensors for which to retrieve statistics.

" + "documentation":"

Specifies the maximum number of sensors for which to retrieve statistics.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

An opaque pagination token indicating where to continue the listing of sensor statistics.

" + "documentation":"

An opaque pagination token indicating where to continue the listing of sensor statistics.

" } } }, @@ -1789,11 +2472,11 @@ "members":{ "SensorStatisticsSummaries":{ "shape":"SensorStatisticsSummaries", - "documentation":"

Provides ingestion-based statistics regarding the specified sensor with respect to various validation types, such as whether data exists, the number and percentage of missing values, and the number and percentage of duplicate timestamps.

" + "documentation":"

Provides ingestion-based statistics regarding the specified sensor with respect to various validation types, such as whether data exists, the number and percentage of missing values, and the number and percentage of duplicate timestamps.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

An opaque pagination token indicating where to continue the listing of sensor statistics.

" + "documentation":"

An opaque pagination token indicating where to continue the listing of sensor statistics.

" } } }, @@ -2002,7 +2685,7 @@ "type":"string", "max":1024, "min":0, - "pattern":"(^$)|([\\P{M}\\p{M}]{1,1023}/$)" + "pattern":"(^$)|([\\u0009\\u000A\\u000D\\u0020-\\u00FF]{1,1023}/$)" }, "SensorName":{ "type":"string", @@ -2367,6 +3050,20 @@ } } }, + "UpdateLabelGroupRequest":{ + "type":"structure", + "required":["LabelGroupName"], + "members":{ + "LabelGroupName":{ + "shape":"LabelGroupName", + "documentation":"

The name of the label group to be updated.

" + }, + "FaultCodes":{ + "shape":"FaultCodes", + "documentation":"

Updates the code indicating the type of anomaly associated with the label.

Data in this field will be retained for service usage. Follow best practices for the security of your data.

" + } + } + }, "ValidationException":{ "type":"structure", "required":["Message"], diff --git a/botocore/data/lookoutmetrics/2017-07-25/endpoint-rule-set-1.json b/botocore/data/lookoutmetrics/2017-07-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..4492e3f9 --- /dev/null +++ b/botocore/data/lookoutmetrics/2017-07-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lookoutmetrics-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lookoutmetrics-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lookoutmetrics.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://lookoutmetrics.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lookoutmetrics/2017-07-25/examples-1.json b/botocore/data/lookoutmetrics/2017-07-25/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/lookoutmetrics/2017-07-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/lookoutmetrics/2017-07-25/service-2.json b/botocore/data/lookoutmetrics/2017-07-25/service-2.json index c16cbc91..903ac54d 100644 --- a/botocore/data/lookoutmetrics/2017-07-25/service-2.json +++ b/botocore/data/lookoutmetrics/2017-07-25/service-2.json @@ -260,6 +260,23 @@ ], "documentation":"

Returns details about a group of anomalous metrics.

" }, + "GetDataQualityMetrics":{ + "name":"GetDataQualityMetrics", + "http":{ + "method":"POST", + "requestUri":"/GetDataQualityMetrics" + }, + "input":{"shape":"GetDataQualityMetricsRequest"}, + "output":{"shape":"GetDataQualityMetricsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns details about the requested data quality metrics.

" + }, "GetFeedback":{ "name":"GetFeedback", "http":{ @@ -461,6 +478,23 @@ ], "documentation":"

Removes tags from a detector, dataset, or alert.

" }, + "UpdateAlert":{ + "name":"UpdateAlert", + "http":{ + "method":"POST", + "requestUri":"/UpdateAlert" + }, + "input":{"shape":"UpdateAlertRequest"}, + "output":{"shape":"UpdateAlertResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Make changes to an existing alert.

" + }, "UpdateAnomalyDetector":{ "name":"UpdateAnomalyDetector", "http":{ @@ -586,6 +620,10 @@ "CreationTime":{ "shape":"Timestamp", "documentation":"

The time at which the alert was created.

" + }, + "AlertFilters":{ + "shape":"AlertFilters", + "documentation":"

The configuration of the alert filters, containing MetricList and DimensionFilter.

" } }, "documentation":"

A configuration for Amazon SNS-integrated notifications.

" @@ -595,6 +633,20 @@ "max":256, "pattern":".*\\S.*" }, + "AlertFilters":{ + "type":"structure", + "members":{ + "MetricList":{ + "shape":"MetricNameList", + "documentation":"

The list of measures that you want to get alerts for.

" + }, + "DimensionFilterList":{ + "shape":"DimensionFilterList", + "documentation":"

The list of DimensionFilter objects that are used for dimension-based filtering.

" + } + }, + "documentation":"

The configuration of the alert filters.

" + }, "AlertName":{ "type":"string", "max":63, @@ -697,6 +749,24 @@ }, "documentation":"

Contains information about a detector's configuration.

" }, + "AnomalyDetectorDataQualityMetric":{ + "type":"structure", + "members":{ + "StartTimestamp":{ + "shape":"Timestamp", + "documentation":"

The start time for the data quality metrics collection.

" + }, + "MetricSetDataQualityMetricList":{ + "shape":"MetricSetDataQualityMetricList", + "documentation":"

An array of DataQualityMetricList objects. Each object in the array contains information about a data quality metric.

" + } + }, + "documentation":"

Aggregated details about the data quality metrics collected for the AnomalyDetectorArn provided in the GetDataQualityMetrics object.

" + }, + "AnomalyDetectorDataQualityMetricList":{ + "type":"list", + "member":{"shape":"AnomalyDetectorDataQualityMetric"} + }, "AnomalyDetectorDescription":{ "type":"string", "max":256, @@ -1074,6 +1144,10 @@ "RoleArn":{ "shape":"Arn", "documentation":"

An IAM role that gives Amazon Lookout for Metrics permission to access data in Amazon CloudWatch.

" + }, + "BackTestConfiguration":{ + "shape":"BackTestConfiguration", + "documentation":"

Settings for backtest mode.

" } }, "documentation":"

Details about an Amazon CloudWatch datasource.

" @@ -1124,7 +1198,6 @@ "type":"structure", "required":[ "AlertName", - "AlertSensitivityThreshold", "AnomalyDetectorArn", "Action" ], @@ -1152,6 +1225,10 @@ "Tags":{ "shape":"TagMap", "documentation":"

A list of tags to apply to the alert.

" + }, + "AlertFilters":{ + "shape":"AlertFilters", + "documentation":"

The configuration of the alert filters, containing MetricList and DimensionFilterList.

" } } }, @@ -1229,7 +1306,7 @@ }, "Offset":{ "shape":"Offset", - "documentation":"

After an interval ends, the amount of seconds that the detector waits before importing data. Offset is only supported for S3 and Redshift datasources.

", + "documentation":"

After an interval ends, the amount of seconds that the detector waits before importing data. Offset is only supported for S3, Redshift, Athena and datasources.

", "box":true }, "TimestampColumn":{ @@ -1255,6 +1332,10 @@ "Tags":{ "shape":"TagMap", "documentation":"

A list of tags to apply to the dataset.

" + }, + "DimensionFilterList":{ + "shape":"MetricSetDimensionFilterList", + "documentation":"

A list of filters that specify which data is kept for anomaly detection.

" } } }, @@ -1298,6 +1379,53 @@ "documentation":"

Contains information about how a source CSV data file should be analyzed.

" }, "DataItem":{"type":"string"}, + "DataQualityMetric":{ + "type":"structure", + "members":{ + "MetricType":{ + "shape":"DataQualityMetricType", + "documentation":"

The name of the data quality metric.

" + }, + "MetricDescription":{ + "shape":"DataQualityMetricDescription", + "documentation":"

A description of the data quality metric.

" + }, + "RelatedColumnName":{ + "shape":"RelatedColumnName", + "documentation":"

The column that is being monitored.

" + }, + "MetricValue":{ + "shape":"Double", + "documentation":"

The value of the data quality metric.

" + } + }, + "documentation":"

An array that describes a data quality metric. Each DataQualityMetric object contains the data quality metric name, its value, a description of the metric, and the affected column.

" + }, + "DataQualityMetricDescription":{ + "type":"string", + "max":256, + "min":1, + "pattern":".*\\S.*" + }, + "DataQualityMetricList":{ + "type":"list", + "member":{"shape":"DataQualityMetric"} + }, + "DataQualityMetricType":{ + "type":"string", + "enum":[ + "COLUMN_COMPLETENESS", + "DIMENSION_UNIQUENESS", + "TIME_SERIES_COUNT", + "ROWS_PROCESSED", + "ROWS_PARTIAL_COMPLIANCE", + "INVALID_ROWS_COMPLIANCE", + "BACKTEST_TRAINING_DATA_START_TIME_STAMP", + "BACKTEST_TRAINING_DATA_END_TIME_STAMP", + "BACKTEST_INFERENCE_DATA_START_TIME_STAMP", + "BACKTEST_INFERENCE_DATA_END_TIME_STAMP" + ] + }, "DatabaseHost":{ "type":"string", "max":253, @@ -1513,7 +1641,7 @@ }, "Offset":{ "shape":"Offset", - "documentation":"

The offset in seconds. Only supported for S3 and Redshift datasources.

", + "documentation":"

After an interval ends, the amount of seconds that the detector waits before importing data. Offset is only supported for S3, Redshift, Athena and datasources.

", "box":true }, "MetricList":{ @@ -1539,6 +1667,10 @@ "MetricSource":{ "shape":"MetricSource", "documentation":"

Contains information about the dataset's source data.

" + }, + "DimensionFilterList":{ + "shape":"MetricSetDimensionFilterList", + "documentation":"

The dimensions and their values that were used to filter the dataset.

" } } }, @@ -1700,6 +1832,26 @@ "type":"list", "member":{"shape":"DimensionContribution"} }, + "DimensionFilter":{ + "type":"structure", + "members":{ + "DimensionName":{ + "shape":"ColumnName", + "documentation":"

The name of the dimension to filter on.

" + }, + "DimensionValueList":{ + "shape":"DimensionValueList", + "documentation":"

The list of values for the dimension specified in DimensionName that you want to filter on.

" + } + }, + "documentation":"

The dimension filter, containing DimensionName and DimensionValueList.

" + }, + "DimensionFilterList":{ + "type":"list", + "member":{"shape":"DimensionFilter"}, + "max":5, + "min":1 + }, "DimensionList":{ "type":"list", "member":{"shape":"ColumnName"}, @@ -1746,6 +1898,13 @@ "type":"list", "member":{"shape":"DimensionValueContribution"} }, + "DimensionValueList":{ + "type":"list", + "member":{"shape":"DimensionValue"}, + "max":10, + "min":1 + }, + "Double":{"type":"double"}, "ErrorMessage":{ "type":"string", "max":256 @@ -1787,6 +1946,29 @@ }, "documentation":"

Contains information about a source file's formatting.

" }, + "Filter":{ + "type":"structure", + "members":{ + "DimensionValue":{ + "shape":"DimensionValue", + "documentation":"

The value that you want to include in the filter.

" + }, + "FilterOperation":{ + "shape":"FilterOperation", + "documentation":"

The condition to apply.

" + } + }, + "documentation":"

Describes a filter for choosing a subset of dimension values. Each filter consists of the dimension that you want to include and the condition statement. The condition statement is specified in the FilterOperation object.

" + }, + "FilterList":{ + "type":"list", + "member":{"shape":"Filter"}, + "min":1 + }, + "FilterOperation":{ + "type":"string", + "enum":["EQUALS"] + }, "FlowName":{ "type":"string", "max":256, @@ -1827,6 +2009,29 @@ } } }, + "GetDataQualityMetricsRequest":{ + "type":"structure", + "required":["AnomalyDetectorArn"], + "members":{ + "AnomalyDetectorArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the anomaly detector that you want to investigate.

" + }, + "MetricSetArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of a specific data quality metric set.

" + } + } + }, + "GetDataQualityMetricsResponse":{ + "type":"structure", + "members":{ + "AnomalyDetectorDataQualityMetricList":{ + "shape":"AnomalyDetectorDataQualityMetricList", + "documentation":"

A list of the data quality metrics for the AnomalyDetectorArn that you requested.

" + } + } + }, "GetFeedbackRequest":{ "type":"structure", "required":[ @@ -2327,12 +2532,54 @@ "max":256, "pattern":"^[a-zA-Z0-9][a-zA-Z0-9\\-_]*" }, + "MetricNameList":{ + "type":"list", + "member":{"shape":"MetricName"}, + "max":5, + "min":1 + }, + "MetricSetDataQualityMetric":{ + "type":"structure", + "members":{ + "MetricSetArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the data quality metric array.

" + }, + "DataQualityMetricList":{ + "shape":"DataQualityMetricList", + "documentation":"

The array of data quality metrics contained in the data quality metric set.

" + } + }, + "documentation":"

An array of DataQualityMetric objects that describes one or more data quality metrics.

" + }, + "MetricSetDataQualityMetricList":{ + "type":"list", + "member":{"shape":"MetricSetDataQualityMetric"} + }, "MetricSetDescription":{ "type":"string", "max":256, "min":1, "pattern":".*\\S.*" }, + "MetricSetDimensionFilter":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"ColumnName", + "documentation":"

The dimension that you want to filter on.

" + }, + "FilterList":{ + "shape":"FilterList", + "documentation":"

The list of filters that you are applying.

" + } + }, + "documentation":"

Describes a list of filters for choosing a subset of dimension values. Each filter consists of the dimension and one of its values that you want to include. When multiple dimensions or values are specified, the dimensions are joined with an AND operation and the values are joined with an OR operation.

" + }, + "MetricSetDimensionFilterList":{ + "type":"list", + "member":{"shape":"MetricSetDimensionFilter"} + }, "MetricSetName":{ "type":"string", "max":63, @@ -2566,6 +2813,12 @@ }, "documentation":"

Provides information about the Amazon Redshift database configuration.

" }, + "RelatedColumnName":{ + "type":"string", + "max":256, + "min":1, + "pattern":".*\\S.*" + }, "RelationshipType":{ "type":"string", "enum":[ @@ -2632,7 +2885,7 @@ }, "SnsFormat":{ "shape":"SnsFormat", - "documentation":"

The format of the SNS topic.

" + "documentation":"

The format of the SNS topic.

  • JSON – Send JSON alerts with an anomaly ID and a link to the anomaly detail page. This is the default.

  • LONG_TEXT – Send human-readable alerts with information about the impacted timeseries and a link to the anomaly detail page. We recommend this for email.

  • SHORT_TEXT – Send human-readable alerts with a link to the anomaly detail page. We recommend this for SMS.

" } }, "documentation":"

Contains information about the SNS topic to which you want to send your alerts and the IAM role that has access to that topic.

" @@ -2921,6 +3174,41 @@ "members":{ } }, + "UpdateAlertRequest":{ + "type":"structure", + "required":["AlertArn"], + "members":{ + "AlertArn":{ + "shape":"Arn", + "documentation":"

The ARN of the alert to update.

" + }, + "AlertDescription":{ + "shape":"AlertDescription", + "documentation":"

A description of the alert.

" + }, + "AlertSensitivityThreshold":{ + "shape":"SensitivityThreshold", + "documentation":"

An integer from 0 to 100 specifying the alert sensitivity threshold.

" + }, + "Action":{ + "shape":"Action", + "documentation":"

Action that will be triggered when there is an alert.

" + }, + "AlertFilters":{ + "shape":"AlertFilters", + "documentation":"

The configuration of the alert filters, containing MetricList and DimensionFilterList.

" + } + } + }, + "UpdateAlertResponse":{ + "type":"structure", + "members":{ + "AlertArn":{ + "shape":"Arn", + "documentation":"

The ARN of the updated alert.

" + } + } + }, "UpdateAnomalyDetectorRequest":{ "type":"structure", "required":["AnomalyDetectorArn"], @@ -2970,7 +3258,7 @@ }, "Offset":{ "shape":"Offset", - "documentation":"

After an interval ends, the amount of seconds that the detector waits before importing data. Offset is only supported for S3 and Redshift datasources.

", + "documentation":"

After an interval ends, the amount of seconds that the detector waits before importing data. Offset is only supported for S3, Redshift, Athena and datasources.

", "box":true }, "TimestampColumn":{ @@ -2985,7 +3273,11 @@ "shape":"Frequency", "documentation":"

The dataset's interval.

" }, - "MetricSource":{"shape":"MetricSource"} + "MetricSource":{"shape":"MetricSource"}, + "DimensionFilterList":{ + "shape":"MetricSetDimensionFilterList", + "documentation":"

Describes a list of filters for choosing specific dimensions and specific values. Each filter consists of the dimension and one of its values that you want to include. When multiple dimensions or values are specified, the dimensions are joined with an AND operation and the values are joined with an OR operation.

" + } } }, "UpdateMetricSetResponse":{ diff --git a/botocore/data/lookoutvision/2020-11-20/endpoint-rule-set-1.json b/botocore/data/lookoutvision/2020-11-20/endpoint-rule-set-1.json new file mode 100644 index 00000000..9f42e394 --- /dev/null +++ b/botocore/data/lookoutvision/2020-11-20/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lookoutvision-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lookoutvision-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://lookoutvision.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://lookoutvision.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/lookoutvision/2020-11-20/examples-1.json b/botocore/data/lookoutvision/2020-11-20/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/lookoutvision/2020-11-20/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/lookoutvision/2020-11-20/service-2.json b/botocore/data/lookoutvision/2020-11-20/service-2.json index 5f913715..9112a4a7 100644 --- a/botocore/data/lookoutvision/2020-11-20/service-2.json +++ b/botocore/data/lookoutvision/2020-11-20/service-2.json @@ -214,7 +214,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Detects anomalies in an image that you supply.

The response from DetectAnomalies includes a boolean prediction that the image contains one or more anomalies and a confidence value for the prediction.

Before calling DetectAnomalies, you must first start your model with the StartModel operation. You are charged for the amount of time, in minutes, that a model runs and for the number of anomaly detection units that your model uses. If you are not using a model, use the StopModel operation to stop your model.

This operation requires permissions to perform the lookoutvision:DetectAnomalies operation.

" + "documentation":"

Detects anomalies in an image that you supply.

The response from DetectAnomalies includes a boolean prediction that the image contains one or more anomalies and a confidence value for the prediction. If the model is an image segmentation model, the response also includes segmentation information for each type of anomaly found in the image.

Before calling DetectAnomalies, you must first start your model with the StartModel operation. You are charged for the amount of time, in minutes, that a model runs and for the number of anomaly detection units that your model uses. If you are not using a model, use the StopModel operation to stop your model.

For more information, see Detecting anomalies in an image in the Amazon Lookout for Vision developer guide.

This operation requires permissions to perform the lookoutvision:DetectAnomalies operation.

" }, "ListDatasetEntries":{ "name":"ListDatasetEntries", @@ -285,7 +285,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Lists the Amazon Lookout for Vision projects in your AWS account.

The ListProjects operation is eventually consistent. Recent calls to CreateProject and DeleteProject might take a while to appear in the response from ListProjects.

This operation requires permissions to perform the lookoutvision:ListProjects operation.

" + "documentation":"

Lists the Amazon Lookout for Vision projects in your AWS account that are in the AWS Region in which you call ListProjects.

The ListProjects operation is eventually consistent. Recent calls to CreateProject and DeleteProject might take a while to appear in the response from ListProjects.

This operation requires permissions to perform the lookoutvision:ListProjects operation.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -431,12 +431,41 @@ "error":{"httpStatusCode":403}, "exception":true }, + "Anomaly":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"AnomalyName", + "documentation":"

The name of an anomaly type found in an image. Name maps to an anomaly type in the training dataset, apart from the anomaly type background. The service automatically inserts the background anomaly type into the response from DetectAnomalies.

" + }, + "PixelAnomaly":{ + "shape":"PixelAnomaly", + "documentation":"

Information about the pixel mask that covers an anomaly type.

" + } + }, + "documentation":"

Information about an anomaly type found on an image by an image segmentation model. For more information, see DetectAnomalies.

" + }, "AnomalyClassFilter":{ "type":"string", "max":10, "min":1, "pattern":"(normal|anomaly)" }, + "AnomalyList":{ + "type":"list", + "member":{"shape":"Anomaly"} + }, + "AnomalyMask":{ + "type":"blob", + "max":5242880, + "min":1 + }, + "AnomalyName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9]*" + }, "Boolean":{"type":"boolean"}, "ClientToken":{ "type":"string", @@ -444,6 +473,12 @@ "min":1, "pattern":"^[a-zA-Z0-9-]+$" }, + "Color":{ + "type":"string", + "max":7, + "min":7, + "pattern":"\\#[a-zA-Z0-9]{6}" + }, "CompilerOptions":{ "type":"string", "max":1024, @@ -1013,14 +1048,22 @@ }, "IsAnomalous":{ "shape":"Boolean", - "documentation":"

True if the image contains an anomaly, otherwise false.

" + "documentation":"

True if Amazon Lookout for Vision classifies the image as containing an anomaly, otherwise false.

" }, "Confidence":{ "shape":"Float", - "documentation":"

The confidence that Amazon Lookout for Vision has in the accuracy of the prediction.

" + "documentation":"

The confidence that Lookout for Vision has in the accuracy of the classification in IsAnomalous.

" + }, + "Anomalies":{ + "shape":"AnomalyList", + "documentation":"

If the model is an image segmentation model, Anomalies contains a list of anomaly types found in the image. There is one entry for each type of anomaly found (even if multiple instances of an anomaly type exist on the image). The first element in the list is always an anomaly type representing the image background ('background') and shouldn't be considered an anomaly. Amazon Lookout for Vision automatically add the background anomaly type to the response, and you don't need to declare a background anomaly type in your dataset.

If the list has one entry ('background'), no anomalies were found on the image.

An image classification model doesn't return an Anomalies list.

" + }, + "AnomalyMask":{ + "shape":"AnomalyMask", + "documentation":"

If the model is an image segmentation model, AnomalyMask contains pixel masks that covers all anomaly types found on the image. Each anomaly type has a different mask color. To map a color to an anomaly type, see the color field of the PixelAnomaly object.

An image classification model doesn't return an Anomalies list.

" } }, - "documentation":"

The prediction results from a call to DetectAnomalies.

" + "documentation":"

The prediction results from a call to DetectAnomalies. DetectAnomalyResult includes classification information for the prediction (IsAnomalous and Confidence). If the model you use is an image segementation model, DetectAnomalyResult also includes segmentation information (Anomalies and AnomalyMask). Classification information is calculated separately from segmentation information and you shouldn't assume a relationship between them.

" }, "ExceptionString":{"type":"string"}, "Float":{"type":"float"}, @@ -1033,7 +1076,7 @@ "members":{ "CompilerOptions":{ "shape":"CompilerOptions", - "documentation":"

Additional compiler options for the Greengrass component. Currently, only NVIDIA Graphics Processing Units (GPU) are supported. If you specify TargetPlatform, you must specify CompilerOptions. If you specify TargetDevice, don't specify CompilerOptions.

For more information, see Compiler options in the Amazon Lookout for Vision Developer Guide.

" + "documentation":"

Additional compiler options for the Greengrass component. Currently, only NVIDIA Graphics Processing Units (GPU) and CPU accelerators are supported. If you specify TargetDevice, don't specify CompilerOptions.

For more information, see Compiler options in the Amazon Lookout for Vision Developer Guide.

" }, "TargetDevice":{ "shape":"TargetDevice", @@ -1401,6 +1444,14 @@ "KmsKeyId":{ "shape":"KmsKeyId", "documentation":"

The identifer for the AWS Key Management Service (AWS KMS) key that was used to encrypt the model during training.

" + }, + "MinInferenceUnits":{ + "shape":"InferenceUnits", + "documentation":"

The minimum number of inference units used by the model. For more information, see StartModel

" + }, + "MaxInferenceUnits":{ + "shape":"InferenceUnits", + "documentation":"

The maximum number of inference units Amazon Lookout for Vision uses to auto-scale the model. For more information, see StartModel.

" } }, "documentation":"

Describes an Amazon Lookout for Vision model.

" @@ -1688,6 +1739,20 @@ "max":2048, "pattern":"^[a-zA-Z0-9\\/\\+\\=]{0,2048}$" }, + "PixelAnomaly":{ + "type":"structure", + "members":{ + "TotalPercentageArea":{ + "shape":"Float", + "documentation":"

The percentage area of the image that the anomaly type covers.

" + }, + "Color":{ + "shape":"Color", + "documentation":"

A hex color value for the mask that covers an anomaly type. Each anomaly type has a different mask color. The color maps to the color of the anomaly type used in the training dataset.

" + } + }, + "documentation":"

Information about the pixels in an anomaly mask. For more information, see Anomaly. PixelAnomaly is only returned by image segmentation models.

" + }, "ProjectArn":{"type":"string"}, "ProjectDescription":{ "type":"structure", @@ -1924,6 +1989,10 @@ "idempotencyToken":true, "location":"header", "locationName":"X-Amzn-Client-Token" + }, + "MaxInferenceUnits":{ + "shape":"InferenceUnits", + "documentation":"

The maximum number of inference units to use for auto-scaling the model. If you don't specify a value, Amazon Lookout for Vision doesn't auto-scale the model.

" } } }, @@ -2057,8 +2126,7 @@ "type":"structure", "required":[ "Os", - "Arch", - "Accelerator" + "Arch" ], "members":{ "Os":{ @@ -2071,7 +2139,7 @@ }, "Accelerator":{ "shape":"TargetPlatformAccelerator", - "documentation":"

The target accelerator for the model. NVIDIA (Nvidia graphics processing unit) is the only accelerator that is currently supported. You must also specify the gpu-code, trt-ver, and cuda-ver compiler options.

" + "documentation":"

The target accelerator for the model. Currently, Amazon Lookout for Vision only supports NVIDIA (Nvidia graphics processing unit) and CPU accelerators. If you specify NVIDIA as an accelerator, you must also specify the gpu-code, trt-ver, and cuda-ver compiler options. If you don't specify an accelerator, Lookout for Vision uses the CPU for compilation and we highly recommend that you use the GreengrassConfiguration$CompilerOptions field. For example, you can use the following compiler options for CPU:

  • mcpu: CPU micro-architecture. For example, {'mcpu': 'skylake-avx512'}

  • mattr: CPU flags. For example, {'mattr': ['+neon', '+vfpv4']}

" } }, "documentation":"

The platform on which a model runs on an AWS IoT Greengrass core device.

" diff --git a/botocore/data/m2/2021-04-28/endpoint-rule-set-1.json b/botocore/data/m2/2021-04-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..2d62e66f --- /dev/null +++ b/botocore/data/m2/2021-04-28/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://m2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://m2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://m2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://m2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/m2/2021-04-28/paginators-1.json b/botocore/data/m2/2021-04-28/paginators-1.json new file mode 100644 index 00000000..e7cd269f --- /dev/null +++ b/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/botocore/data/m2/2021-04-28/service-2.json b/botocore/data/m2/2021-04-28/service-2.json new file mode 100644 index 00000000..73e9966a --- /dev/null +++ b/botocore/data/m2/2021-04-28/service-2.json @@ -0,0 +1,3320 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-04-28", + "endpointPrefix":"m2", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWSMainframeModernization", + "serviceId":"m2", + "signatureVersion":"v4", + "signingName":"m2", + "uid":"m2-2021-04-28" + }, + "operations":{ + "CancelBatchJobExecution":{ + "name":"CancelBatchJobExecution", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/batch-job-executions/{executionId}/cancel", + "responseCode":200 + }, + "input":{"shape":"CancelBatchJobExecutionRequest"}, + "output":{"shape":"CancelBatchJobExecutionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Cancels the running of a specific batch job execution.

" + }, + "CreateApplication":{ + "name":"CreateApplication", + "http":{ + "method":"POST", + "requestUri":"/applications", + "responseCode":200 + }, + "input":{"shape":"CreateApplicationRequest"}, + "output":{"shape":"CreateApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates a new application with given parameters. Requires an existing environment and application definition file.

", + "idempotent":true + }, + "CreateDataSetImportTask":{ + "name":"CreateDataSetImportTask", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/dataset-import-task", + "responseCode":200 + }, + "input":{"shape":"CreateDataSetImportTaskRequest"}, + "output":{"shape":"CreateDataSetImportTaskResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Starts a data set import task for a specific application.

", + "idempotent":true + }, + "CreateDeployment":{ + "name":"CreateDeployment", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/deployments", + "responseCode":200 + }, + "input":{"shape":"CreateDeploymentRequest"}, + "output":{"shape":"CreateDeploymentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Creates and starts a deployment to deploy an application into an environment.

", + "idempotent":true + }, + "CreateEnvironment":{ + "name":"CreateEnvironment", + "http":{ + "method":"POST", + "requestUri":"/environments", + "responseCode":200 + }, + "input":{"shape":"CreateEnvironmentRequest"}, + "output":{"shape":"CreateEnvironmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates a runtime environment for a given runtime engine.

", + "idempotent":true + }, + "DeleteApplication":{ + "name":"DeleteApplication", + "http":{ + "method":"DELETE", + "requestUri":"/applications/{applicationId}", + "responseCode":200 + }, + "input":{"shape":"DeleteApplicationRequest"}, + "output":{"shape":"DeleteApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deletes a specific application. You cannot delete a running application.

", + "idempotent":true + }, + "DeleteApplicationFromEnvironment":{ + "name":"DeleteApplicationFromEnvironment", + "http":{ + "method":"DELETE", + "requestUri":"/applications/{applicationId}/environment/{environmentId}", + "responseCode":200 + }, + "input":{"shape":"DeleteApplicationFromEnvironmentRequest"}, + "output":{"shape":"DeleteApplicationFromEnvironmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes a specific application from a specified environment where it has been previously deployed. You cannot delete an environment using DeleteEnvironment, if any application has ever been deployed to it. This API removes the association of the application with the environment so you can delete the environment smoothly.

" + }, + "DeleteEnvironment":{ + "name":"DeleteEnvironment", + "http":{ + "method":"DELETE", + "requestUri":"/environments/{environmentId}", + "responseCode":200 + }, + "input":{"shape":"DeleteEnvironmentRequest"}, + "output":{"shape":"DeleteEnvironmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deletes a specific environment. The environment cannot contain deployed applications. If it does, you must delete those applications before you delete the environment.

", + "idempotent":true + }, + "GetApplication":{ + "name":"GetApplication", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}", + "responseCode":200 + }, + "input":{"shape":"GetApplicationRequest"}, + "output":{"shape":"GetApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes the details of a specific application.

" + }, + "GetApplicationVersion":{ + "name":"GetApplicationVersion", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/versions/{applicationVersion}", + "responseCode":200 + }, + "input":{"shape":"GetApplicationVersionRequest"}, + "output":{"shape":"GetApplicationVersionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns details about a specific version of a specific application.

" + }, + "GetBatchJobExecution":{ + "name":"GetBatchJobExecution", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/batch-job-executions/{executionId}", + "responseCode":200 + }, + "input":{"shape":"GetBatchJobExecutionRequest"}, + "output":{"shape":"GetBatchJobExecutionResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets the details of a specific batch job execution for a specific application.

" + }, + "GetDataSetDetails":{ + "name":"GetDataSetDetails", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/datasets/{dataSetName}", + "responseCode":200 + }, + "input":{"shape":"GetDataSetDetailsRequest"}, + "output":{"shape":"GetDataSetDetailsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets the details of a specific data set.

" + }, + "GetDataSetImportTask":{ + "name":"GetDataSetImportTask", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/dataset-import-tasks/{taskId}", + "responseCode":200 + }, + "input":{"shape":"GetDataSetImportTaskRequest"}, + "output":{"shape":"GetDataSetImportTaskResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets the status of a data set import task initiated with the CreateDataSetImportTask operation.

" + }, + "GetDeployment":{ + "name":"GetDeployment", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/deployments/{deploymentId}", + "responseCode":200 + }, + "input":{"shape":"GetDeploymentRequest"}, + "output":{"shape":"GetDeploymentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets details of a specific deployment with a given deployment identifier.

" + }, + "GetEnvironment":{ + "name":"GetEnvironment", + "http":{ + "method":"GET", + "requestUri":"/environments/{environmentId}", + "responseCode":200 + }, + "input":{"shape":"GetEnvironmentRequest"}, + "output":{"shape":"GetEnvironmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes a specific runtime environment.

" + }, + "ListApplicationVersions":{ + "name":"ListApplicationVersions", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/versions", + "responseCode":200 + }, + "input":{"shape":"ListApplicationVersionsRequest"}, + "output":{"shape":"ListApplicationVersionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a list of the application versions for a specific application.

" + }, + "ListApplications":{ + "name":"ListApplications", + "http":{ + "method":"GET", + "requestUri":"/applications", + "responseCode":200 + }, + "input":{"shape":"ListApplicationsRequest"}, + "output":{"shape":"ListApplicationsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists the applications associated with a specific Amazon Web Services account. You can provide the unique identifier of a specific environment in a query parameter to see all applications associated with that environment.

" + }, + "ListBatchJobDefinitions":{ + "name":"ListBatchJobDefinitions", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/batch-job-definitions", + "responseCode":200 + }, + "input":{"shape":"ListBatchJobDefinitionsRequest"}, + "output":{"shape":"ListBatchJobDefinitionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists all the available batch job definitions based on the batch job resources uploaded during the application creation. The listed batch job definitions can then be used to start a batch job.

" + }, + "ListBatchJobExecutions":{ + "name":"ListBatchJobExecutions", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/batch-job-executions", + "responseCode":200 + }, + "input":{"shape":"ListBatchJobExecutionsRequest"}, + "output":{"shape":"ListBatchJobExecutionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists historical, current, and scheduled batch job executions for a specific application.

" + }, + "ListDataSetImportHistory":{ + "name":"ListDataSetImportHistory", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/dataset-import-tasks", + "responseCode":200 + }, + "input":{"shape":"ListDataSetImportHistoryRequest"}, + "output":{"shape":"ListDataSetImportHistoryResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists the data set imports for the specified application.

" + }, + "ListDataSets":{ + "name":"ListDataSets", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/datasets", + "responseCode":200 + }, + "input":{"shape":"ListDataSetsRequest"}, + "output":{"shape":"ListDataSetsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists the data sets imported for a specific application. In Amazon Web Services Mainframe Modernization, data sets are associated with applications deployed on environments. This is known as importing data sets. Currently, Amazon Web Services Mainframe Modernization can import data sets into catalogs using CreateDataSetImportTask.

" + }, + "ListDeployments":{ + "name":"ListDeployments", + "http":{ + "method":"GET", + "requestUri":"/applications/{applicationId}/deployments", + "responseCode":200 + }, + "input":{"shape":"ListDeploymentsRequest"}, + "output":{"shape":"ListDeploymentsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a list of all deployments of a specific application. A deployment is a combination of a specific application and a specific version of that application. Each deployment is mapped to a particular application version.

" + }, + "ListEngineVersions":{ + "name":"ListEngineVersions", + "http":{ + "method":"GET", + "requestUri":"/engine-versions", + "responseCode":200 + }, + "input":{"shape":"ListEngineVersionsRequest"}, + "output":{"shape":"ListEngineVersionsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists the available engine versions.

" + }, + "ListEnvironments":{ + "name":"ListEnvironments", + "http":{ + "method":"GET", + "requestUri":"/environments", + "responseCode":200 + }, + "input":{"shape":"ListEnvironmentsRequest"}, + "output":{"shape":"ListEnvironmentsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists the runtime environments.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists the tags for the specified resource.

" + }, + "StartApplication":{ + "name":"StartApplication", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/start", + "responseCode":200 + }, + "input":{"shape":"StartApplicationRequest"}, + "output":{"shape":"StartApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Starts an application that is currently stopped.

" + }, + "StartBatchJob":{ + "name":"StartBatchJob", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/batch-job", + "responseCode":200 + }, + "input":{"shape":"StartBatchJobRequest"}, + "output":{"shape":"StartBatchJobResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Starts a batch job and returns the unique identifier of this execution of the batch job. The associated application must be running in order to start the batch job.

" + }, + "StopApplication":{ + "name":"StopApplication", + "http":{ + "method":"POST", + "requestUri":"/applications/{applicationId}/stop", + "responseCode":200 + }, + "input":{"shape":"StopApplicationRequest"}, + "output":{"shape":"StopApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Stops a running application.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Adds one or more tags to the specified resource.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Removes one or more tags from the specified resource.

" + }, + "UpdateApplication":{ + "name":"UpdateApplication", + "http":{ + "method":"PATCH", + "requestUri":"/applications/{applicationId}", + "responseCode":200 + }, + "input":{"shape":"UpdateApplicationRequest"}, + "output":{"shape":"UpdateApplicationResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Updates an application and creates a new version.

" + }, + "UpdateEnvironment":{ + "name":"UpdateEnvironment", + "http":{ + "method":"PATCH", + "requestUri":"/environments/{environmentId}", + "responseCode":200 + }, + "input":{"shape":"UpdateEnvironmentRequest"}, + "output":{"shape":"UpdateEnvironmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Updates the configuration details for a specific environment.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The account or role doesn't have the right permissions to make the request.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AlternateKey":{ + "type":"structure", + "required":[ + "length", + "offset" + ], + "members":{ + "allowDuplicates":{ + "shape":"Boolean", + "documentation":"

Indicates whether the alternate key values are supposed to be unique for the given data set.

" + }, + "length":{ + "shape":"Integer", + "documentation":"

A strictly positive integer value representing the length of the alternate key.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the alternate key.

" + }, + "offset":{ + "shape":"Integer", + "documentation":"

A positive integer value representing the offset to mark the start of the alternate key part in the record byte array.

" + } + }, + "documentation":"

Defines an alternate key. This value is optional. A legacy data set might not have any alternate key defined but if those alternate keys definitions exist, provide them, as some applications will make use of them.

" + }, + "AlternateKeyList":{ + "type":"list", + "member":{"shape":"AlternateKey"} + }, + "ApplicationDeploymentLifecycle":{ + "type":"string", + "enum":[ + "Deploying", + "Deployed" + ] + }, + "ApplicationLifecycle":{ + "type":"string", + "enum":[ + "Creating", + "Created", + "Available", + "Ready", + "Starting", + "Running", + "Stopping", + "Stopped", + "Failed", + "Deleting" + ] + }, + "ApplicationSummary":{ + "type":"structure", + "required":[ + "applicationArn", + "applicationId", + "applicationVersion", + "creationTime", + "engineType", + "name", + "status" + ], + "members":{ + "applicationArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the application.

" + }, + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application.

" + }, + "applicationVersion":{ + "shape":"Version", + "documentation":"

The version of the application.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the application was created.

" + }, + "deploymentStatus":{ + "shape":"ApplicationDeploymentLifecycle", + "documentation":"

Indicates whether there is an ongoing deployment or if the application has ever deployed successfully.

" + }, + "description":{ + "shape":"EntityDescription", + "documentation":"

The description of the application.

" + }, + "engineType":{ + "shape":"EngineType", + "documentation":"

The type of the target platform for this application.

" + }, + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the runtime environment that hosts this application.

" + }, + "lastStartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the application was last started. Null until the application has started running for the first time.

" + }, + "name":{ + "shape":"EntityName", + "documentation":"

The name of the application.

" + }, + "status":{ + "shape":"ApplicationLifecycle", + "documentation":"

The status of the application.

" + }, + "versionStatus":{ + "shape":"ApplicationVersionLifecycle", + "documentation":"

Indicates the status of the latest version of the application.

" + } + }, + "documentation":"

A subset of the possible application attributes. Used in the application list.

" + }, + "ApplicationSummaryList":{ + "type":"list", + "member":{"shape":"ApplicationSummary"} + }, + "ApplicationVersionLifecycle":{ + "type":"string", + "enum":[ + "Creating", + "Available", + "Failed" + ] + }, + "ApplicationVersionSummary":{ + "type":"structure", + "required":[ + "applicationVersion", + "creationTime", + "status" + ], + "members":{ + "applicationVersion":{ + "shape":"Version", + "documentation":"

The application version.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the application version was created.

" + }, + "status":{ + "shape":"ApplicationVersionLifecycle", + "documentation":"

The status of the application.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the reported status.

" + } + }, + "documentation":"

Defines an application version summary.

" + }, + "ApplicationVersionSummaryList":{ + "type":"list", + "member":{"shape":"ApplicationVersionSummary"} + }, + "Arn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+=,@.-]{0,1023}$" + }, + "ArnList":{ + "type":"list", + "member":{"shape":"Arn"}, + "min":1 + }, + "BatchJobDefinition":{ + "type":"structure", + "members":{ + "fileBatchJobDefinition":{ + "shape":"FileBatchJobDefinition", + "documentation":"

Specifies a file containing a batch job definition.

" + }, + "scriptBatchJobDefinition":{ + "shape":"ScriptBatchJobDefinition", + "documentation":"

A script containing a batch job definition.

" + } + }, + "documentation":"

Defines the details of a batch job.

", + "union":true + }, + "BatchJobDefinitions":{ + "type":"list", + "member":{"shape":"BatchJobDefinition"} + }, + "BatchJobExecutionStatus":{ + "type":"string", + "enum":[ + "Submitting", + "Holding", + "Dispatching", + "Running", + "Cancelling", + "Cancelled", + "Succeeded", + "Failed", + "Succeeded With Warning" + ] + }, + "BatchJobExecutionSummary":{ + "type":"structure", + "required":[ + "applicationId", + "executionId", + "startTime", + "status" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application that hosts this batch job.

" + }, + "endTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when this batch job execution ended.

" + }, + "executionId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of this execution of the batch job.

" + }, + "jobId":{ + "shape":"String100", + "documentation":"

The unique identifier of a particular batch job.

" + }, + "jobName":{ + "shape":"String100", + "documentation":"

The name of a particular batch job.

" + }, + "jobType":{ + "shape":"BatchJobType", + "documentation":"

The type of a particular batch job execution.

" + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when a particular batch job execution started.

" + }, + "status":{ + "shape":"BatchJobExecutionStatus", + "documentation":"

The status of a particular batch job execution.

" + } + }, + "documentation":"

A subset of the possible batch job attributes. Used in the batch job list.

" + }, + "BatchJobExecutionSummaryList":{ + "type":"list", + "member":{"shape":"BatchJobExecutionSummary"} + }, + "BatchJobIdentifier":{ + "type":"structure", + "members":{ + "fileBatchJobIdentifier":{ + "shape":"FileBatchJobIdentifier", + "documentation":"

Specifies a file associated with a specific batch job.

" + }, + "scriptBatchJobIdentifier":{ + "shape":"ScriptBatchJobIdentifier", + "documentation":"

A batch job identifier in which the batch job to run is identified by the script name.

" + } + }, + "documentation":"

Identifies a specific batch job.

", + "union":true + }, + "BatchJobParametersMap":{ + "type":"map", + "key":{"shape":"BatchParamKey"}, + "value":{"shape":"BatchParamValue"}, + "documentation":"

Job parameters are optional. Can contain up to 500 entries.

", + "max":500, + "min":0 + }, + "BatchJobType":{ + "type":"string", + "enum":[ + "VSE", + "JES2", + "JES3" + ] + }, + "BatchParamKey":{ + "type":"string", + "documentation":"

Parameter key: the first character must be alphabetic. Can be of up to 8 alphanumeric characters.

", + "max":8, + "min":1, + "pattern":"^[A-Za-z][A-Za-z0-9]{1,7}$" + }, + "BatchParamValue":{ + "type":"string", + "documentation":"

Parameter value can be of up to 44 alphanumeric characters.

", + "max":44, + "min":0 + }, + "Boolean":{"type":"boolean"}, + "CancelBatchJobExecutionRequest":{ + "type":"structure", + "required":[ + "applicationId", + "executionId" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application.

", + "location":"uri", + "locationName":"applicationId" + }, + "executionId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the batch job execution.

", + "location":"uri", + "locationName":"executionId" + } + } + }, + "CancelBatchJobExecutionResponse":{ + "type":"structure", + "members":{ + } + }, + "CapacityValue":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

The ID of the conflicting resource.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of the conflicting resource.

" + } + }, + "documentation":"

The parameters provided in the request conflict with existing resources.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateApplicationRequest":{ + "type":"structure", + "required":[ + "definition", + "engineType", + "name" + ], + "members":{ + "clientToken":{ + "shape":"String", + "documentation":"

Unique, case-sensitive identifier the service generates to ensure the idempotency of the request to create an application. The service generates the clientToken when the API call is triggered. The token expires after one hour, so if you retry the API within this timeframe with the same clientToken, you will get the same response. The service also handles deleting the clientToken after it expires.

", + "idempotencyToken":true + }, + "definition":{ + "shape":"Definition", + "documentation":"

The application definition for this application. You can specify either inline JSON or an S3 bucket location.

" + }, + "description":{ + "shape":"EntityDescription", + "documentation":"

The description of the application.

" + }, + "engineType":{ + "shape":"EngineType", + "documentation":"

The type of the target platform for this application.

" + }, + "name":{ + "shape":"EntityName", + "documentation":"

The unique identifier of the application.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

A list of tags to apply to the application.

" + } + } + }, + "CreateApplicationResponse":{ + "type":"structure", + "required":[ + "applicationArn", + "applicationId", + "applicationVersion" + ], + "members":{ + "applicationArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the application.

" + }, + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique application identifier.

" + }, + "applicationVersion":{ + "shape":"Version", + "documentation":"

The version number of the application.

" + } + } + }, + "CreateDataSetImportTaskRequest":{ + "type":"structure", + "required":[ + "applicationId", + "importConfig" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application for which you want to import data sets.

", + "location":"uri", + "locationName":"applicationId" + }, + "clientToken":{ + "shape":"String", + "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request to create a data set import. The service generates the clientToken when the API call is triggered. The token expires after one hour, so if you retry the API within this timeframe with the same clientToken, you will get the same response. The service also handles deleting the clientToken after it expires.

", + "idempotencyToken":true + }, + "importConfig":{ + "shape":"DataSetImportConfig", + "documentation":"

The data set import task configuration.

" + } + } + }, + "CreateDataSetImportTaskResponse":{ + "type":"structure", + "required":["taskId"], + "members":{ + "taskId":{ + "shape":"Identifier", + "documentation":"

The task identifier. This operation is asynchronous. Use this identifier with the GetDataSetImportTask operation to obtain the status of this task.

" + } + } + }, + "CreateDeploymentRequest":{ + "type":"structure", + "required":[ + "applicationId", + "applicationVersion", + "environmentId" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The application identifier.

", + "location":"uri", + "locationName":"applicationId" + }, + "applicationVersion":{ + "shape":"Version", + "documentation":"

The version of the application to deploy.

" + }, + "clientToken":{ + "shape":"String", + "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request to create a deployment. The service generates the clientToken when the API call is triggered. The token expires after one hour, so if you retry the API within this timeframe with the same clientToken, you will get the same response. The service also handles deleting the clientToken after it expires.

", + "idempotencyToken":true + }, + "environmentId":{ + "shape":"Identifier", + "documentation":"

The identifier of the environment where this application will be deployed.

" + } + } + }, + "CreateDeploymentResponse":{ + "type":"structure", + "required":["deploymentId"], + "members":{ + "deploymentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the deployment.

" + } + } + }, + "CreateEnvironmentRequest":{ + "type":"structure", + "required":[ + "engineType", + "instanceType", + "name" + ], + "members":{ + "clientToken":{ + "shape":"String", + "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request to create an environment. The service generates the clientToken when the API call is triggered. The token expires after one hour, so if you retry the API within this timeframe with the same clientToken, you will get the same response. The service also handles deleting the clientToken after it expires.

", + "idempotencyToken":true + }, + "description":{ + "shape":"EntityDescription", + "documentation":"

The description of the environment.

" + }, + "engineType":{ + "shape":"EngineType", + "documentation":"

The engine type for the environment.

" + }, + "engineVersion":{ + "shape":"EngineVersion", + "documentation":"

The version of the engine type for the environment.

" + }, + "highAvailabilityConfig":{ + "shape":"HighAvailabilityConfig", + "documentation":"

The details of a high availability configuration for this runtime environment.

" + }, + "instanceType":{ + "shape":"String20", + "documentation":"

The type of instance for the environment.

" + }, + "name":{ + "shape":"EntityName", + "documentation":"

The unique identifier of the environment.

" + }, + "preferredMaintenanceWindow":{ + "shape":"String50", + "documentation":"

Configures a desired maintenance window for the environment. If you do not provide a value, a random system-generated value will be assigned.

" + }, + "publiclyAccessible":{ + "shape":"Boolean", + "documentation":"

Specifies whether the environment is publicly accessible.

" + }, + "securityGroupIds":{ + "shape":"String50List", + "documentation":"

The list of security groups for the VPC associated with this environment.

" + }, + "storageConfigurations":{ + "shape":"StorageConfigurationList", + "documentation":"

Optional. The storage configurations for this environment.

" + }, + "subnetIds":{ + "shape":"String50List", + "documentation":"

The list of subnets associated with the VPC for this environment.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags for the environment.

" + } + } + }, + "CreateEnvironmentResponse":{ + "type":"structure", + "required":["environmentId"], + "members":{ + "environmentId":{ + "shape":"Identifier", + "documentation":"

The identifier of this environment.

" + } + } + }, + "DataSet":{ + "type":"structure", + "required":[ + "datasetName", + "datasetOrg", + "recordLength" + ], + "members":{ + "datasetName":{ + "shape":"String", + "documentation":"

The logical identifier for a specific data set (in mainframe format).

" + }, + "datasetOrg":{ + "shape":"DatasetOrgAttributes", + "documentation":"

The type of dataset. Possible values include VSAM, IS, PS, GDG, PO, PS, UNKNOWN etc.

" + }, + "recordLength":{ + "shape":"RecordLength", + "documentation":"

The length of a record.

" + }, + "relativePath":{ + "shape":"String", + "documentation":"

The relative location of the data set in the database or file system.

" + }, + "storageType":{ + "shape":"String", + "documentation":"

The storage type of the data set: database or file system. For Micro Focus, database corresponds to datastore and file system corresponds to EFS/FSX. For Blu Age, there is no support of file system and database corresponds to Blusam.

" + } + }, + "documentation":"

Defines a data set.

" + }, + "DataSetImportConfig":{ + "type":"structure", + "members":{ + "dataSets":{ + "shape":"DataSetImportList", + "documentation":"

The data sets.

" + }, + "s3Location":{ + "shape":"String2000", + "documentation":"

The Amazon S3 location of the data sets.

" + } + }, + "documentation":"

Identifies one or more data sets you want to import with the CreateDataSetImportTask operation.

", + "union":true + }, + "DataSetImportItem":{ + "type":"structure", + "required":[ + "dataSet", + "externalLocation" + ], + "members":{ + "dataSet":{ + "shape":"DataSet", + "documentation":"

The data set.

" + }, + "externalLocation":{ + "shape":"ExternalLocation", + "documentation":"

The location of the data set.

" + } + }, + "documentation":"

Identifies a specific data set to import from an external location.

" + }, + "DataSetImportList":{ + "type":"list", + "member":{"shape":"DataSetImportItem"}, + "max":100, + "min":1 + }, + "DataSetImportSummary":{ + "type":"structure", + "required":[ + "failed", + "inProgress", + "pending", + "succeeded", + "total" + ], + "members":{ + "failed":{ + "shape":"Integer", + "documentation":"

The number of data set imports that have failed.

" + }, + "inProgress":{ + "shape":"Integer", + "documentation":"

The number of data set imports that are in progress.

" + }, + "pending":{ + "shape":"Integer", + "documentation":"

The number of data set imports that are pending.

" + }, + "succeeded":{ + "shape":"Integer", + "documentation":"

The number of data set imports that have succeeded.

" + }, + "total":{ + "shape":"Integer", + "documentation":"

The total number of data set imports.

" + } + }, + "documentation":"

Represents a summary of data set imports.

" + }, + "DataSetImportTask":{ + "type":"structure", + "required":[ + "status", + "summary", + "taskId" + ], + "members":{ + "status":{ + "shape":"DataSetTaskLifecycle", + "documentation":"

The status of the data set import task.

" + }, + "summary":{ + "shape":"DataSetImportSummary", + "documentation":"

A summary of the data set import task.

" + }, + "taskId":{ + "shape":"Identifier", + "documentation":"

The identifier of the data set import task.

" + } + }, + "documentation":"

Contains information about a data set import task.

" + }, + "DataSetImportTaskList":{ + "type":"list", + "member":{"shape":"DataSetImportTask"} + }, + "DataSetSummary":{ + "type":"structure", + "required":["dataSetName"], + "members":{ + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the data set was created.

" + }, + "dataSetName":{ + "shape":"String200", + "documentation":"

The name of the data set.

" + }, + "dataSetOrg":{ + "shape":"String20", + "documentation":"

The type of data set. Possible values include VSAM, IS, PS, GDG, PO, PS, or unknown.

" + }, + "format":{ + "shape":"String20", + "documentation":"

The format of the data set.

" + }, + "lastReferencedTime":{ + "shape":"Timestamp", + "documentation":"

The last time the data set was referenced.

" + }, + "lastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The last time the data set was updated.

" + } + }, + "documentation":"

A subset of the possible data set attributes.

" + }, + "DataSetTaskLifecycle":{ + "type":"string", + "enum":[ + "Creating", + "Running", + "Completed" + ] + }, + "DataSetsSummaryList":{ + "type":"list", + "member":{"shape":"DataSetSummary"} + }, + "DatasetDetailOrgAttributes":{ + "type":"structure", + "members":{ + "gdg":{ + "shape":"GdgDetailAttributes", + "documentation":"

The generation data group of the data set.

" + }, + "vsam":{ + "shape":"VsamDetailAttributes", + "documentation":"

The details of a VSAM data set.

" + } + }, + "documentation":"

Additional details about the data set. Different attributes correspond to different data set organizations. The values are populated based on datasetOrg, storageType and backend (Blu Age or Micro Focus).

", + "union":true + }, + "DatasetOrgAttributes":{ + "type":"structure", + "members":{ + "gdg":{ + "shape":"GdgAttributes", + "documentation":"

The generation data group of the data set.

" + }, + "vsam":{ + "shape":"VsamAttributes", + "documentation":"

The details of a VSAM data set.

" + } + }, + "documentation":"

Additional details about the data set. Different attributes correspond to different data set organizations. The values are populated based on datasetOrg, storageType and backend (Blu Age or Micro Focus).

", + "union":true + }, + "Definition":{ + "type":"structure", + "members":{ + "content":{ + "shape":"StringFree65000", + "documentation":"

The content of the application definition. This is a JSON object that contains the resource configuration/definitions that identify an application.

" + }, + "s3Location":{ + "shape":"String2000", + "documentation":"

The S3 bucket that contains the application definition.

" + } + }, + "documentation":"

The application definition for a particular application.

", + "union":true + }, + "DeleteApplicationFromEnvironmentRequest":{ + "type":"structure", + "required":[ + "applicationId", + "environmentId" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application you want to delete.

", + "location":"uri", + "locationName":"applicationId" + }, + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the runtime environment where the application was previously deployed.

", + "location":"uri", + "locationName":"environmentId" + } + } + }, + "DeleteApplicationFromEnvironmentResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteApplicationRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application you want to delete.

", + "location":"uri", + "locationName":"applicationId" + } + } + }, + "DeleteApplicationResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteEnvironmentRequest":{ + "type":"structure", + "required":["environmentId"], + "members":{ + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the runtime environment you want to delete.

", + "location":"uri", + "locationName":"environmentId" + } + } + }, + "DeleteEnvironmentResponse":{ + "type":"structure", + "members":{ + } + }, + "DeployedVersionSummary":{ + "type":"structure", + "required":[ + "applicationVersion", + "status" + ], + "members":{ + "applicationVersion":{ + "shape":"Version", + "documentation":"

The version of the deployed application.

" + }, + "status":{ + "shape":"DeploymentLifecycle", + "documentation":"

The status of the deployment.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the reported status.

" + } + }, + "documentation":"

Contains a summary of a deployed application.

" + }, + "DeploymentLifecycle":{ + "type":"string", + "enum":[ + "Deploying", + "Succeeded", + "Failed" + ] + }, + "DeploymentList":{ + "type":"list", + "member":{"shape":"DeploymentSummary"} + }, + "DeploymentSummary":{ + "type":"structure", + "required":[ + "applicationId", + "applicationVersion", + "creationTime", + "deploymentId", + "environmentId", + "status" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application.

" + }, + "applicationVersion":{ + "shape":"Version", + "documentation":"

The version of the application.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the deployment was created.

" + }, + "deploymentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the deployment.

" + }, + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the environment.

" + }, + "status":{ + "shape":"DeploymentLifecycle", + "documentation":"

The current status of the deployment.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the reported status.

" + } + }, + "documentation":"

A subset of information about a specific deployment.

" + }, + "EfsStorageConfiguration":{ + "type":"structure", + "required":[ + "fileSystemId", + "mountPoint" + ], + "members":{ + "fileSystemId":{ + "shape":"String200", + "documentation":"

The file system identifier.

", + "locationName":"file-system-id" + }, + "mountPoint":{ + "shape":"String200", + "documentation":"

The mount point for the file system.

", + "locationName":"mount-point" + } + }, + "documentation":"

Defines the storage configuration for an Amazon EFS file system.

" + }, + "EngineType":{ + "type":"string", + "enum":[ + "microfocus", + "bluage" + ] + }, + "EngineVersion":{ + "type":"string", + "pattern":"^\\S{1,10}$" + }, + "EngineVersionsSummary":{ + "type":"structure", + "required":[ + "engineType", + "engineVersion" + ], + "members":{ + "engineType":{ + "shape":"String", + "documentation":"

The type of target platform for the application.

" + }, + "engineVersion":{ + "shape":"String", + "documentation":"

The version of the engine type used by the application.

" + } + }, + "documentation":"

A subset of information about the engine version for a specific application.

" + }, + "EngineVersionsSummaryList":{ + "type":"list", + "member":{"shape":"EngineVersionsSummary"} + }, + "EntityDescription":{ + "type":"string", + "max":500, + "min":0 + }, + "EntityName":{ + "type":"string", + "pattern":"^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$" + }, + "EntityNameList":{ + "type":"list", + "member":{"shape":"EntityName"}, + "max":10, + "min":1 + }, + "EnvironmentLifecycle":{ + "type":"string", + "enum":[ + "Creating", + "Available", + "Deleting", + "Failed" + ] + }, + "EnvironmentSummary":{ + "type":"structure", + "required":[ + "creationTime", + "engineType", + "engineVersion", + "environmentArn", + "environmentId", + "instanceType", + "name", + "status" + ], + "members":{ + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the environment was created.

" + }, + "engineType":{ + "shape":"EngineType", + "documentation":"

The target platform for the environment.

" + }, + "engineVersion":{ + "shape":"EngineVersion", + "documentation":"

The version of the runtime engine.

" + }, + "environmentArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of a particular runtime environment.

" + }, + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of a particular runtime environment.

" + }, + "instanceType":{ + "shape":"String20", + "documentation":"

The instance type of the environment.

" + }, + "name":{ + "shape":"EntityName", + "documentation":"

The name of the environment.

" + }, + "status":{ + "shape":"EnvironmentLifecycle", + "documentation":"

The status of the environment

" + } + }, + "documentation":"

Contains a subset of the possible environment attributes. Used in the environment list.

" + }, + "EnvironmentSummaryList":{ + "type":"list", + "member":{"shape":"EnvironmentSummary"} + }, + "ExternalLocation":{ + "type":"structure", + "members":{ + "s3Location":{ + "shape":"String2000", + "documentation":"

The URI of the Amazon S3 bucket.

" + } + }, + "documentation":"

Defines an external storage location.

", + "union":true + }, + "FileBatchJobDefinition":{ + "type":"structure", + "required":["fileName"], + "members":{ + "fileName":{ + "shape":"String", + "documentation":"

The name of the file containing the batch job definition.

" + }, + "folderPath":{ + "shape":"String", + "documentation":"

The path to the file containing the batch job definition.

" + } + }, + "documentation":"

A file containing a batch job definition.

" + }, + "FileBatchJobIdentifier":{ + "type":"structure", + "required":["fileName"], + "members":{ + "fileName":{ + "shape":"String", + "documentation":"

The file name for the batch job identifier.

" + }, + "folderPath":{ + "shape":"String", + "documentation":"

The relative path to the file name for the batch job identifier.

" + } + }, + "documentation":"

A batch job identifier in which the batch job to run is identified by the file name and the relative path to the file name.

" + }, + "FsxStorageConfiguration":{ + "type":"structure", + "required":[ + "fileSystemId", + "mountPoint" + ], + "members":{ + "fileSystemId":{ + "shape":"String200", + "documentation":"

The file system identifier.

", + "locationName":"file-system-id" + }, + "mountPoint":{ + "shape":"String200", + "documentation":"

The mount point for the file system.

", + "locationName":"mount-point" + } + }, + "documentation":"

Defines the storage configuration for an Amazon FSx file system.

" + }, + "GdgAttributes":{ + "type":"structure", + "members":{ + "limit":{ + "shape":"Integer", + "documentation":"

The maximum number of generation data sets, up to 255, in a GDG.

" + }, + "rollDisposition":{ + "shape":"String", + "documentation":"

The disposition of the data set in the catalog.

" + } + }, + "documentation":"

The required attributes for a generation data group data set. A generation data set is one of a collection of successive, historically related, catalogued data sets that together are known as a generation data group (GDG). Use this structure when you want to import a GDG. For more information on GDG, see Generation data sets.

" + }, + "GdgDetailAttributes":{ + "type":"structure", + "members":{ + "limit":{ + "shape":"Integer", + "documentation":"

The maximum number of generation data sets, up to 255, in a GDG.

" + }, + "rollDisposition":{ + "shape":"String50", + "documentation":"

The disposition of the data set in the catalog.

" + } + }, + "documentation":"

The required attributes for a generation data group data set. A generation data set is one of a collection of successive, historically related, catalogued data sets that together are known as a generation data group (GDG). Use this structure when you want to import a GDG. For more information on GDG, see Generation data sets.

" + }, + "GetApplicationRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The identifier of the application.

", + "location":"uri", + "locationName":"applicationId" + } + } + }, + "GetApplicationResponse":{ + "type":"structure", + "required":[ + "applicationArn", + "applicationId", + "creationTime", + "engineType", + "latestVersion", + "name", + "status" + ], + "members":{ + "applicationArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the application.

" + }, + "applicationId":{ + "shape":"Identifier", + "documentation":"

The identifier of the application.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when this application was created.

" + }, + "deployedVersion":{ + "shape":"DeployedVersionSummary", + "documentation":"

The version of the application that is deployed.

" + }, + "description":{ + "shape":"EntityDescription", + "documentation":"

The description of the application.

" + }, + "engineType":{ + "shape":"EngineType", + "documentation":"

The type of the target platform for the application.

" + }, + "environmentId":{ + "shape":"Identifier", + "documentation":"

The identifier of the environment where the application will be deployed.

" + }, + "lastStartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the application was last started. Null until the application has started running for the first time.

" + }, + "latestVersion":{ + "shape":"ApplicationVersionSummary", + "documentation":"

The latest version of the application.

" + }, + "listenerArns":{ + "shape":"ArnList", + "documentation":"

The Amazon Resource Name (ARN) for the network load balancer listener created in your Amazon Web Services account. Amazon Web Services Mainframe Modernization creates this listener on your behalf the first time you deploy an application.

" + }, + "listenerPorts":{ + "shape":"PortList", + "documentation":"

The port associated with the network load balancer listener created in your Amazon Web Services account.

" + }, + "loadBalancerDnsName":{ + "shape":"String100", + "documentation":"

The public DNS name of the load balancer created in your Amazon Web Services account.

" + }, + "logGroups":{ + "shape":"LogGroupSummaries", + "documentation":"

The list of log summaries. Each log summary includes the log type as well as the log group identifier. These are CloudWatch logs. The Amazon Web Services Mainframe Modernization application log is pushed to CloudWatch under the customer's account.

" + }, + "name":{ + "shape":"EntityName", + "documentation":"

The unique identifier of the application.

" + }, + "status":{ + "shape":"ApplicationLifecycle", + "documentation":"

The status of the application.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the reported status.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

A list of tags associated with the application.

" + }, + "targetGroupArns":{ + "shape":"ArnList", + "documentation":"

Returns the Amazon Resource Names (ARNs) of the target groups that are attached to the network load balancer.

" + } + } + }, + "GetApplicationVersionRequest":{ + "type":"structure", + "required":[ + "applicationId", + "applicationVersion" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application.

", + "location":"uri", + "locationName":"applicationId" + }, + "applicationVersion":{ + "shape":"Version", + "documentation":"

The specific version of the application.

", + "location":"uri", + "locationName":"applicationVersion" + } + } + }, + "GetApplicationVersionResponse":{ + "type":"structure", + "required":[ + "applicationVersion", + "creationTime", + "definitionContent", + "name", + "status" + ], + "members":{ + "applicationVersion":{ + "shape":"Version", + "documentation":"

The specific version of the application.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the application version was created.

" + }, + "definitionContent":{ + "shape":"StringFree65000", + "documentation":"

The content of the application definition. This is a JSON object that contains the resource configuration/definitions that identify an application.

" + }, + "description":{ + "shape":"EntityDescription", + "documentation":"

The application description.

" + }, + "name":{ + "shape":"EntityName", + "documentation":"

The name of the application version.

" + }, + "status":{ + "shape":"ApplicationVersionLifecycle", + "documentation":"

The status of the application version.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the reported status.

" + } + } + }, + "GetBatchJobExecutionRequest":{ + "type":"structure", + "required":[ + "applicationId", + "executionId" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The identifier of the application.

", + "location":"uri", + "locationName":"applicationId" + }, + "executionId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the batch job execution.

", + "location":"uri", + "locationName":"executionId" + } + } + }, + "GetBatchJobExecutionResponse":{ + "type":"structure", + "required":[ + "applicationId", + "executionId", + "startTime", + "status" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The identifier of the application.

" + }, + "endTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the batch job execution ended.

" + }, + "executionId":{ + "shape":"Identifier", + "documentation":"

The unique identifier for this batch job execution.

" + }, + "jobId":{ + "shape":"String100", + "documentation":"

The unique identifier for this batch job.

" + }, + "jobName":{ + "shape":"String100", + "documentation":"

The name of this batch job.

" + }, + "jobType":{ + "shape":"BatchJobType", + "documentation":"

The type of job.

" + }, + "jobUser":{ + "shape":"String100", + "documentation":"

The user for the job.

" + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the batch job execution started.

" + }, + "status":{ + "shape":"BatchJobExecutionStatus", + "documentation":"

The status of the batch job execution.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the reported status.

" + } + } + }, + "GetDataSetDetailsRequest":{ + "type":"structure", + "required":[ + "applicationId", + "dataSetName" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application that this data set is associated with.

", + "location":"uri", + "locationName":"applicationId" + }, + "dataSetName":{ + "shape":"String200", + "documentation":"

The name of the data set.

", + "location":"uri", + "locationName":"dataSetName" + } + } + }, + "GetDataSetDetailsResponse":{ + "type":"structure", + "required":["dataSetName"], + "members":{ + "blocksize":{ + "shape":"Integer", + "documentation":"

The size of the block on disk.

", + "box":true + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the data set was created.

" + }, + "dataSetName":{ + "shape":"String200", + "documentation":"

The name of the data set.

" + }, + "dataSetOrg":{ + "shape":"DatasetDetailOrgAttributes", + "documentation":"

The type of data set. Possible values include VSAM, IS, PS, GDG, PO, PS, or unknown.

" + }, + "lastReferencedTime":{ + "shape":"Timestamp", + "documentation":"

The last time the data set was referenced.

" + }, + "lastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The last time the data set was updated.

" + }, + "location":{ + "shape":"String2000", + "documentation":"

The locaion where the data set is stored.

" + }, + "recordLength":{ + "shape":"Integer", + "documentation":"

The length of records in the data set.

", + "box":true + } + } + }, + "GetDataSetImportTaskRequest":{ + "type":"structure", + "required":[ + "applicationId", + "taskId" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The application identifier.

", + "location":"uri", + "locationName":"applicationId" + }, + "taskId":{ + "shape":"Identifier", + "documentation":"

The task identifier returned by the CreateDataSetImportTask operation.

", + "location":"uri", + "locationName":"taskId" + } + } + }, + "GetDataSetImportTaskResponse":{ + "type":"structure", + "required":[ + "status", + "taskId" + ], + "members":{ + "status":{ + "shape":"DataSetTaskLifecycle", + "documentation":"

The status of the task.

" + }, + "summary":{ + "shape":"DataSetImportSummary", + "documentation":"

A summary of the status of the task.

" + }, + "taskId":{ + "shape":"Identifier", + "documentation":"

The task identifier.

" + } + } + }, + "GetDeploymentRequest":{ + "type":"structure", + "required":[ + "applicationId", + "deploymentId" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application.

", + "location":"uri", + "locationName":"applicationId" + }, + "deploymentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier for the deployment.

", + "location":"uri", + "locationName":"deploymentId" + } + } + }, + "GetDeploymentResponse":{ + "type":"structure", + "required":[ + "applicationId", + "applicationVersion", + "creationTime", + "deploymentId", + "environmentId", + "status" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application.

" + }, + "applicationVersion":{ + "shape":"Version", + "documentation":"

The application version.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the deployment was created.

" + }, + "deploymentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the deployment.

" + }, + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the runtime environment.

" + }, + "status":{ + "shape":"DeploymentLifecycle", + "documentation":"

The status of the deployment.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the reported status.

" + } + } + }, + "GetEnvironmentRequest":{ + "type":"structure", + "required":["environmentId"], + "members":{ + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the runtime environment.

", + "location":"uri", + "locationName":"environmentId" + } + } + }, + "GetEnvironmentResponse":{ + "type":"structure", + "required":[ + "creationTime", + "engineType", + "engineVersion", + "environmentArn", + "environmentId", + "instanceType", + "name", + "securityGroupIds", + "status", + "subnetIds", + "vpcId" + ], + "members":{ + "actualCapacity":{ + "shape":"CapacityValue", + "documentation":"

The number of instances included in the runtime environment. A standalone runtime environment has a maxiumum of one instance. Currently, a high availability runtime environment has a maximum of two instances.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when the runtime environment was created.

" + }, + "description":{ + "shape":"EntityDescription", + "documentation":"

The description of the runtime environment.

" + }, + "engineType":{ + "shape":"EngineType", + "documentation":"

The target platform for the runtime environment.

" + }, + "engineVersion":{ + "shape":"EngineVersion", + "documentation":"

The version of the runtime engine.

" + }, + "environmentArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the runtime environment.

" + }, + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the runtime environment.

" + }, + "highAvailabilityConfig":{ + "shape":"HighAvailabilityConfig", + "documentation":"

The desired capacity of the high availability configuration for the runtime environment.

" + }, + "instanceType":{ + "shape":"String20", + "documentation":"

The type of instance underlying the runtime environment.

" + }, + "loadBalancerArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) for the load balancer used with the runtime environment.

" + }, + "name":{ + "shape":"EntityName", + "documentation":"

The name of the runtime environment.

" + }, + "pendingMaintenance":{ + "shape":"PendingMaintenance", + "documentation":"

Indicates the pending maintenance scheduled on this environment.

" + }, + "preferredMaintenanceWindow":{ + "shape":"String", + "documentation":"

Configures a desired maintenance window for the environment. If you do not provide a value, a random system-generated value will be assigned.

" + }, + "publiclyAccessible":{ + "shape":"Boolean", + "documentation":"

Whether applications running in this runtime environment are publicly accessible.

" + }, + "securityGroupIds":{ + "shape":"String50List", + "documentation":"

The unique identifiers of the security groups assigned to this runtime environment.

" + }, + "status":{ + "shape":"EnvironmentLifecycle", + "documentation":"

The status of the runtime environment.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The reason for the reported status.

" + }, + "storageConfigurations":{ + "shape":"StorageConfigurationList", + "documentation":"

The storage configurations defined for the runtime environment.

" + }, + "subnetIds":{ + "shape":"String50List", + "documentation":"

The unique identifiers of the subnets assigned to this runtime environment.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags defined for this runtime environment.

" + }, + "vpcId":{ + "shape":"String50", + "documentation":"

The unique identifier for the VPC used with this runtime environment.

" + } + } + }, + "HighAvailabilityConfig":{ + "type":"structure", + "required":["desiredCapacity"], + "members":{ + "desiredCapacity":{ + "shape":"CapacityValue", + "documentation":"

The number of instances in a high availability configuration.

" + } + }, + "documentation":"

Defines the details of a high availability configuration.

" + }, + "Identifier":{ + "type":"string", + "pattern":"^\\S{1,80}$" + }, + "IdentifierList":{ + "type":"list", + "member":{"shape":"Identifier"}, + "max":10, + "min":1 + }, + "Integer":{"type":"integer"}, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds to wait before retrying the request.

", + "location":"header", + "locationName":"Retry-After" + } + }, + "documentation":"

An unexpected error occurred during the processing of the request.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "ListApplicationVersionsRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application.

", + "location":"uri", + "locationName":"applicationId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of application versions to return.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token returned from a previous call to this operation. This specifies the next item to return. To return to the beginning of the list, exclude this parameter.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListApplicationVersionsResponse":{ + "type":"structure", + "required":["applicationVersions"], + "members":{ + "applicationVersions":{ + "shape":"ApplicationVersionSummaryList", + "documentation":"

The list of application versions.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.

" + } + } + }, + "ListApplicationsRequest":{ + "type":"structure", + "members":{ + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the runtime environment where the applications are deployed.

", + "location":"querystring", + "locationName":"environmentId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of applications to return.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "names":{ + "shape":"EntityNameList", + "documentation":"

The names of the applications.

", + "location":"querystring", + "locationName":"names" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token to control the number of applications displayed in the list.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListApplicationsResponse":{ + "type":"structure", + "required":["applications"], + "members":{ + "applications":{ + "shape":"ApplicationSummaryList", + "documentation":"

Returns a list of summary details for all the applications in an environment.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's returned when the response doesn't contain all applications.

" + } + } + }, + "ListBatchJobDefinitionsRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The identifier of the application.

", + "location":"uri", + "locationName":"applicationId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of batch job definitions to return.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token returned from a previous call to this operation. This specifies the next item to return. To return to the beginning of the list, exclude this parameter.

", + "location":"querystring", + "locationName":"nextToken" + }, + "prefix":{ + "shape":"String", + "documentation":"

If the batch job definition is a FileBatchJobDefinition, the prefix allows you to search on the file names of FileBatchJobDefinitions.

", + "location":"querystring", + "locationName":"prefix" + } + } + }, + "ListBatchJobDefinitionsResponse":{ + "type":"structure", + "required":["batchJobDefinitions"], + "members":{ + "batchJobDefinitions":{ + "shape":"BatchJobDefinitions", + "documentation":"

The list of batch job definitions.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.

" + } + } + }, + "ListBatchJobExecutionsRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application.

", + "location":"uri", + "locationName":"applicationId" + }, + "executionIds":{ + "shape":"IdentifierList", + "documentation":"

The unique identifier of each batch job execution.

", + "location":"querystring", + "locationName":"executionIds" + }, + "jobName":{ + "shape":"String100", + "documentation":"

The name of each batch job execution.

", + "location":"querystring", + "locationName":"jobName" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of batch job executions to return.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token to control the number of batch job executions displayed in the list.

", + "location":"querystring", + "locationName":"nextToken" + }, + "startedAfter":{ + "shape":"Timestamp", + "documentation":"

The time after which the batch job executions started.

", + "location":"querystring", + "locationName":"startedAfter" + }, + "startedBefore":{ + "shape":"Timestamp", + "documentation":"

The time before the batch job executions started.

", + "location":"querystring", + "locationName":"startedBefore" + }, + "status":{ + "shape":"BatchJobExecutionStatus", + "documentation":"

The status of the batch job executions.

", + "location":"querystring", + "locationName":"status" + } + } + }, + "ListBatchJobExecutionsResponse":{ + "type":"structure", + "required":["batchJobExecutions"], + "members":{ + "batchJobExecutions":{ + "shape":"BatchJobExecutionSummaryList", + "documentation":"

Returns a list of batch job executions for an application.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's returned when the response doesn't contain all batch job executions.

" + } + } + }, + "ListDataSetImportHistoryRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application.

", + "location":"uri", + "locationName":"applicationId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of objects to return.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token returned from a previous call to this operation. This specifies the next item to return. To return to the beginning of the list, exclude this parameter.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListDataSetImportHistoryResponse":{ + "type":"structure", + "required":["dataSetImportTasks"], + "members":{ + "dataSetImportTasks":{ + "shape":"DataSetImportTaskList", + "documentation":"

The data set import tasks.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.

" + } + } + }, + "ListDataSetsRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application for which you want to list the associated data sets.

", + "location":"uri", + "locationName":"applicationId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of objects to return.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token returned from a previous call to this operation. This specifies the next item to return. To return to the beginning of the list, exclude this parameter.

", + "location":"querystring", + "locationName":"nextToken" + }, + "prefix":{ + "shape":"String200", + "documentation":"

The prefix of the data set name, which you can use to filter the list of data sets.

", + "location":"querystring", + "locationName":"prefix" + } + } + }, + "ListDataSetsResponse":{ + "type":"structure", + "required":["dataSets"], + "members":{ + "dataSets":{ + "shape":"DataSetsSummaryList", + "documentation":"

The list of data sets, containing ionformation including the creating time, the data set name, the data set organization, the data set format, and the last time the data set was referenced or updated.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.

" + } + } + }, + "ListDeploymentsRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The application identifier.

", + "location":"uri", + "locationName":"applicationId" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of objects to return.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token returned from a previous call to this operation. This specifies the next item to return. To return to the beginning of the list, exclude this parameter.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListDeploymentsResponse":{ + "type":"structure", + "required":["deployments"], + "members":{ + "deployments":{ + "shape":"DeploymentList", + "documentation":"

The list of deployments that is returned.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.

" + } + } + }, + "ListEngineVersionsRequest":{ + "type":"structure", + "members":{ + "engineType":{ + "shape":"EngineType", + "documentation":"

The type of target platform.

", + "location":"querystring", + "locationName":"engineType" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of objects to return.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token returned from a previous call to this operation. This specifies the next item to return. To return to the beginning of the list, exclude this parameter.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListEngineVersionsResponse":{ + "type":"structure", + "required":["engineVersions"], + "members":{ + "engineVersions":{ + "shape":"EngineVersionsSummaryList", + "documentation":"

Returns the engine versions.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

If there are more items to return, this contains a token that is passed to a subsequent call to this operation to retrieve the next set of items.

" + } + } + }, + "ListEnvironmentsRequest":{ + "type":"structure", + "members":{ + "engineType":{ + "shape":"EngineType", + "documentation":"

The engine type for the environment.

", + "location":"querystring", + "locationName":"engineType" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of environments to return.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + }, + "names":{ + "shape":"EntityNameList", + "documentation":"

The name of the environment.

", + "location":"querystring", + "locationName":"names" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token to control the number of environments displayed in the list.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListEnvironmentsResponse":{ + "type":"structure", + "required":["environments"], + "members":{ + "environments":{ + "shape":"EnvironmentSummaryList", + "documentation":"

Returns a list of summary details for all the environments in your account.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's returned when the response doesn't contain all the environments.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "required":["tags"], + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

The tags for the resource.

" + } + } + }, + "LogGroupIdentifier":{ + "type":"string", + "max":512, + "min":1 + }, + "LogGroupSummaries":{ + "type":"list", + "member":{"shape":"LogGroupSummary"} + }, + "LogGroupSummary":{ + "type":"structure", + "required":[ + "logGroupName", + "logType" + ], + "members":{ + "logGroupName":{ + "shape":"LogGroupIdentifier", + "documentation":"

The name of the log group.

" + }, + "logType":{ + "shape":"String20", + "documentation":"

The type of log.

" + } + }, + "documentation":"

A subset of the attributes about a log group. In CloudWatch a log group is a group of log streams that share the same retention, monitoring, and access control settings.

" + }, + "MaintenanceSchedule":{ + "type":"structure", + "members":{ + "endTime":{ + "shape":"Timestamp", + "documentation":"

The time the scheduled maintenance is to end.

" + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

The time the scheduled maintenance is to start.

" + } + }, + "documentation":"

The information about the maintenance schedule.

" + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "NextToken":{ + "type":"string", + "pattern":"^\\S{1,2000}$" + }, + "PendingMaintenance":{ + "type":"structure", + "members":{ + "engineVersion":{ + "shape":"String", + "documentation":"

The specific runtime engine that the maintenance schedule applies to.

" + }, + "schedule":{ + "shape":"MaintenanceSchedule", + "documentation":"

The maintenance schedule for the engine version.

" + } + }, + "documentation":"

The scheduled maintenance for a runtime engine.

" + }, + "PortList":{ + "type":"list", + "member":{"shape":"Integer"}, + "min":1 + }, + "PrimaryKey":{ + "type":"structure", + "required":[ + "length", + "offset" + ], + "members":{ + "length":{ + "shape":"Integer", + "documentation":"

A strictly positive integer value representing the length of the primary key.

" + }, + "name":{ + "shape":"String", + "documentation":"

A name for the Primary Key.

" + }, + "offset":{ + "shape":"Integer", + "documentation":"

A positive integer value representing the offset to mark the start of the primary key in the record byte array.

" + } + }, + "documentation":"

The primary key for a KSDS data set.

" + }, + "RecordLength":{ + "type":"structure", + "required":[ + "max", + "min" + ], + "members":{ + "max":{ + "shape":"Integer", + "documentation":"

The maximum record length. In case of fixed, both minimum and maximum are the same.

" + }, + "min":{ + "shape":"Integer", + "documentation":"

The minimum record length of a record.

" + } + }, + "documentation":"

The length of the records in the data set.

" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

The ID of the missing resource.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of the missing resource.

" + } + }, + "documentation":"

The specified resource was not found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ScriptBatchJobDefinition":{ + "type":"structure", + "required":["scriptName"], + "members":{ + "scriptName":{ + "shape":"String", + "documentation":"

The name of the script containing the batch job definition.

" + } + }, + "documentation":"

A batch job definition contained in a script.

" + }, + "ScriptBatchJobIdentifier":{ + "type":"structure", + "required":["scriptName"], + "members":{ + "scriptName":{ + "shape":"String", + "documentation":"

The name of the script containing the batch job definition.

" + } + }, + "documentation":"

A batch job identifier in which the batch job to run is identified by the script name.

" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

The identifier of the exceeded quota.

" + }, + "resourceId":{ + "shape":"String", + "documentation":"

The ID of the resource that is exceeding the quota limit.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of resource that is exceeding the quota limit for Amazon Web Services Mainframe Modernization.

" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

A code that identifies the service that the exceeded quota belongs to.

" + } + }, + "documentation":"

One or more quotas for Amazon Web Services Mainframe Modernization exceeds the limit.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "StartApplicationRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application you want to start.

", + "location":"uri", + "locationName":"applicationId" + } + } + }, + "StartApplicationResponse":{ + "type":"structure", + "members":{ + } + }, + "StartBatchJobRequest":{ + "type":"structure", + "required":[ + "applicationId", + "batchJobIdentifier" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application associated with this batch job.

", + "location":"uri", + "locationName":"applicationId" + }, + "batchJobIdentifier":{ + "shape":"BatchJobIdentifier", + "documentation":"

The unique identifier of the batch job.

" + }, + "jobParams":{ + "shape":"BatchJobParametersMap", + "documentation":"

The collection of batch job parameters. For details about limits for keys and values, see Coding variables in JCL.

" + } + } + }, + "StartBatchJobResponse":{ + "type":"structure", + "required":["executionId"], + "members":{ + "executionId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of this execution of the batch job.

" + } + } + }, + "StopApplicationRequest":{ + "type":"structure", + "required":["applicationId"], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application you want to stop.

", + "location":"uri", + "locationName":"applicationId" + }, + "forceStop":{ + "shape":"Boolean", + "documentation":"

Stopping an application process can take a long time. Setting this parameter to true lets you force stop the application so you don't need to wait until the process finishes to apply another action on the application. The default value is false.

" + } + } + }, + "StopApplicationResponse":{ + "type":"structure", + "members":{ + } + }, + "StorageConfiguration":{ + "type":"structure", + "members":{ + "efs":{ + "shape":"EfsStorageConfiguration", + "documentation":"

Defines the storage configuration for an Amazon EFS file system.

" + }, + "fsx":{ + "shape":"FsxStorageConfiguration", + "documentation":"

Defines the storage configuration for an Amazon FSx file system.

" + } + }, + "documentation":"

Defines the storage configuration for an environment.

", + "union":true + }, + "StorageConfigurationList":{ + "type":"list", + "member":{"shape":"StorageConfiguration"} + }, + "String":{"type":"string"}, + "String100":{ + "type":"string", + "pattern":"^\\S{1,100}$" + }, + "String20":{ + "type":"string", + "pattern":"^\\S{1,20}$" + }, + "String200":{ + "type":"string", + "pattern":"^\\S{1,200}$" + }, + "String2000":{ + "type":"string", + "pattern":"^\\S{1,2000}$" + }, + "String50":{ + "type":"string", + "pattern":"^\\S{1,50}$" + }, + "String50List":{ + "type":"list", + "member":{"shape":"String50"} + }, + "StringFree65000":{ + "type":"string", + "max":65000, + "min":1 + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^(?!aws:).+$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags to add to the resource.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

The identifier of the throttled reuqest.

" + }, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds to wait before retrying the request.

", + "location":"header", + "locationName":"Retry-After" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

The identifier of the service that the throttled request was made to.

" + } + }, + "documentation":"

The number of requests made exceeds the limit.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "Timestamp":{"type":"timestamp"}, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

The keys of the tags to remove.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateApplicationRequest":{ + "type":"structure", + "required":[ + "applicationId", + "currentApplicationVersion" + ], + "members":{ + "applicationId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the application you want to update.

", + "location":"uri", + "locationName":"applicationId" + }, + "currentApplicationVersion":{ + "shape":"Version", + "documentation":"

The current version of the application to update.

" + }, + "definition":{ + "shape":"Definition", + "documentation":"

The application definition for this application. You can specify either inline JSON or an S3 bucket location.

" + }, + "description":{ + "shape":"EntityDescription", + "documentation":"

The description of the application to update.

" + } + } + }, + "UpdateApplicationResponse":{ + "type":"structure", + "required":["applicationVersion"], + "members":{ + "applicationVersion":{ + "shape":"Version", + "documentation":"

The new version of the application.

" + } + } + }, + "UpdateEnvironmentRequest":{ + "type":"structure", + "required":["environmentId"], + "members":{ + "applyDuringMaintenanceWindow":{ + "shape":"Boolean", + "documentation":"

Indicates whether to update the environment during the maintenance window. The default is false. Currently, Amazon Web Services Mainframe Modernization accepts the engineVersion parameter only if applyDuringMaintenanceWindow is true. If any parameter other than engineVersion is provided in UpdateEnvironmentRequest, it will fail if applyDuringMaintenanceWindow is set to true.

" + }, + "desiredCapacity":{ + "shape":"CapacityValue", + "documentation":"

The desired capacity for the environment to update.

", + "box":true + }, + "engineVersion":{ + "shape":"EngineVersion", + "documentation":"

The version of the runtime engine for the environment.

" + }, + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the runtime environment that you want to update.

", + "location":"uri", + "locationName":"environmentId" + }, + "instanceType":{ + "shape":"String20", + "documentation":"

The instance type for the environment to update.

" + }, + "preferredMaintenanceWindow":{ + "shape":"String", + "documentation":"

Configures a desired maintenance window for the environment. If you do not provide a value, a random system-generated value will be assigned.

" + } + } + }, + "UpdateEnvironmentResponse":{ + "type":"structure", + "required":["environmentId"], + "members":{ + "environmentId":{ + "shape":"Identifier", + "documentation":"

The unique identifier of the runtime environment that was updated.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

The list of fields that failed service validation.

" + }, + "message":{"shape":"String"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

The reason why it failed service validation.

" + } + }, + "documentation":"

One or more parameters provided in the request is not valid.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{ + "shape":"String", + "documentation":"

The message of the exception field.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the exception field.

" + } + }, + "documentation":"

Contains information about a validation exception field.

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + }, + "Version":{ + "type":"integer", + "box":true, + "min":1 + }, + "VsamAttributes":{ + "type":"structure", + "required":["format"], + "members":{ + "alternateKeys":{ + "shape":"AlternateKeyList", + "documentation":"

The alternate key definitions, if any. A legacy dataset might not have any alternate key defined, but if those alternate keys definitions exist, provide them as some applications will make use of them.

" + }, + "compressed":{ + "shape":"Boolean", + "documentation":"

Indicates whether indexes for this dataset are stored as compressed values. If you have a large data set (typically > 100 Mb), consider setting this flag to True.

" + }, + "encoding":{ + "shape":"String", + "documentation":"

The character set used by the data set. Can be ASCII, EBCDIC, or unknown.

" + }, + "format":{ + "shape":"String", + "documentation":"

The record format of the data set.

" + }, + "primaryKey":{ + "shape":"PrimaryKey", + "documentation":"

The primary key of the data set.

" + } + }, + "documentation":"

The attributes of a VSAM type data set.

" + }, + "VsamDetailAttributes":{ + "type":"structure", + "members":{ + "alternateKeys":{ + "shape":"AlternateKeyList", + "documentation":"

The alternate key definitions, if any. A legacy dataset might not have any alternate key defined, but if those alternate keys definitions exist, provide them as some applications will make use of them.

" + }, + "cacheAtStartup":{ + "shape":"Boolean", + "documentation":"

If set to True, enforces loading the data set into cache before it’s used by the application.

", + "box":true + }, + "compressed":{ + "shape":"Boolean", + "documentation":"

Indicates whether indexes for this dataset are stored as compressed values. If you have a large data set (typically > 100 Mb), consider setting this flag to True.

", + "box":true + }, + "encoding":{ + "shape":"String20", + "documentation":"

The character set used by the data set. Can be ASCII, EBCDIC, or unknown.

" + }, + "primaryKey":{ + "shape":"PrimaryKey", + "documentation":"

The primary key of the data set.

" + }, + "recordFormat":{ + "shape":"String20", + "documentation":"

The record format of the data set.

" + } + }, + "documentation":"

The attributes of a VSAM type data set.

" + } + }, + "documentation":"

Amazon Web Services Mainframe Modernization provides tools and resources to help you plan and implement migration and modernization from mainframes to Amazon Web Services managed runtime environments. It provides tools for analyzing existing mainframe applications, developing or updating mainframe applications using COBOL or PL/I, and implementing an automated pipeline for continuous integration and continuous delivery (CI/CD) of the applications.

" +} diff --git a/botocore/data/machinelearning/2014-12-12/endpoint-rule-set-1.json b/botocore/data/machinelearning/2014-12-12/endpoint-rule-set-1.json new file mode 100644 index 00000000..22d1e025 --- /dev/null +++ b/botocore/data/machinelearning/2014-12-12/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://machinelearning-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://machinelearning-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://machinelearning.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://machinelearning.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/machinelearning/2014-12-12/examples-1.json b/botocore/data/machinelearning/2014-12-12/examples-1.json index faff7689..0ea7e3b0 100644 --- a/botocore/data/machinelearning/2014-12-12/examples-1.json +++ b/botocore/data/machinelearning/2014-12-12/examples-1.json @@ -1,5 +1,5 @@ { - "version":"1.0", - "examples":{ + "version": "1.0", + "examples": { } } diff --git a/botocore/data/macie/2017-12-19/endpoint-rule-set-1.json b/botocore/data/macie/2017-12-19/endpoint-rule-set-1.json new file mode 100644 index 00000000..9b3bfcc1 --- /dev/null +++ b/botocore/data/macie/2017-12-19/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://macie-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://macie-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://macie.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://macie.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/macie/2017-12-19/examples-1.json b/botocore/data/macie/2017-12-19/examples-1.json index faff7689..0ea7e3b0 100644 --- a/botocore/data/macie/2017-12-19/examples-1.json +++ b/botocore/data/macie/2017-12-19/examples-1.json @@ -1,5 +1,5 @@ { - "version":"1.0", - "examples":{ + "version": "1.0", + "examples": { } } diff --git a/botocore/data/macie2/2020-01-01/endpoint-rule-set-1.json b/botocore/data/macie2/2020-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..6f6f62d3 --- /dev/null +++ b/botocore/data/macie2/2020-01-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://macie2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://macie2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://macie2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://macie2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/macie2/2020-01-01/paginators-1.json b/botocore/data/macie2/2020-01-01/paginators-1.json index 17471a16..56d8f702 100644 --- a/botocore/data/macie2/2020-01-01/paginators-1.json +++ b/botocore/data/macie2/2020-01-01/paginators-1.json @@ -62,6 +62,39 @@ "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" } } } diff --git a/botocore/data/macie2/2020-01-01/service-2.json b/botocore/data/macie2/2020-01-01/service-2.json index 1c80dbe7..79a6d5e8 100644 --- a/botocore/data/macie2/2020-01-01/service-2.json +++ b/botocore/data/macie2/2020-01-01/service-2.json @@ -28,7 +28,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -74,7 +74,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -103,6 +103,52 @@ ], "documentation": "

Retrieves information about one or more custom data identifiers.

" }, + "CreateAllowList": { + "name": "CreateAllowList", + "http": { + "method": "POST", + "requestUri": "/allow-lists", + "responseCode": 200 + }, + "input": { + "shape": "CreateAllowListRequest" + }, + "output": { + "shape": "CreateAllowListResponse", + "documentation": "

The request succeeded. The specified allow list was created.

" + }, + "errors": [ + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "ServiceQuotaExceededException", + "documentation": "

The request failed because fulfilling the request would exceed one or more service quotas for your account.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + }, + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ConflictException", + "documentation": "

The request failed because it conflicts with the current state of the specified resource.

" + } + ], + "documentation": "

Creates and defines the settings for an allow list.

" + }, "CreateClassificationJob": { "name": "CreateClassificationJob", "http": { @@ -120,7 +166,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -166,7 +212,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -211,7 +257,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -257,7 +303,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -303,7 +349,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -349,7 +395,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -395,7 +441,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -424,6 +470,44 @@ ], "documentation": "

Declines Amazon Macie membership invitations that were received from specific accounts.

" }, + "DeleteAllowList": { + "name": "DeleteAllowList", + "http": { + "method": "DELETE", + "requestUri": "/allow-lists/{id}", + "responseCode": 200 + }, + "input": { + "shape": "DeleteAllowListRequest" + }, + "output": { + "shape": "DeleteAllowListResponse", + "documentation": "

The request succeeded. The allow list was deleted and there isn't any content to include in the body of the response (No Content).

" + }, + "errors": [ + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Deletes an allow list.

" + }, "DeleteCustomDataIdentifier": { "name": "DeleteCustomDataIdentifier", "http": { @@ -441,7 +525,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -487,7 +571,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -533,7 +617,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -579,7 +663,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -625,7 +709,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -652,7 +736,7 @@ "documentation": "

The request failed because it conflicts with the current state of the specified resource.

" } ], - "documentation": "

Retrieves (queries) statistical data and other information about one or more S3 buckets that Amazon Macie monitors and analyzes.

" + "documentation": "

Retrieves (queries) statistical data and other information about one or more S3 buckets that Amazon Macie monitors and analyzes for an account.

" }, "DescribeClassificationJob": { "name": "DescribeClassificationJob", @@ -671,7 +755,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -717,7 +801,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -763,7 +847,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -809,7 +893,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -854,7 +938,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -900,7 +984,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -946,7 +1030,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -992,7 +1076,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1038,7 +1122,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1083,7 +1167,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1112,6 +1196,78 @@ ], "documentation": "

Retrieves information about the Amazon Macie administrator account for an account.

" }, + "GetAllowList": { + "name": "GetAllowList", + "http": { + "method": "GET", + "requestUri": "/allow-lists/{id}", + "responseCode": 200 + }, + "input": { + "shape": "GetAllowListRequest" + }, + "output": { + "shape": "GetAllowListResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Retrieves the settings and status of an allow list.

" + }, + "GetAutomatedDiscoveryConfiguration": { + "name": "GetAutomatedDiscoveryConfiguration", + "http": { + "method": "GET", + "requestUri": "/automated-discovery/configuration", + "responseCode": 200 + }, + "input": { + "shape": "GetAutomatedDiscoveryConfigurationRequest" + }, + "output": { + "shape": "GetAutomatedDiscoveryConfigurationResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Retrieves the configuration settings and status of automated sensitive data discovery for an account.

" + }, "GetBucketStatistics": { "name": "GetBucketStatistics", "http": { @@ -1129,7 +1285,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1156,7 +1312,7 @@ "documentation": "

The request failed because it conflicts with the current state of the specified resource.

" } ], - "documentation": "

Retrieves (queries) aggregated statistical data about S3 buckets that Amazon Macie monitors and analyzes.

" + "documentation": "

Retrieves (queries) aggregated statistical data about all the S3 buckets that Amazon Macie monitors and analyzes for an account.

" }, "GetClassificationExportConfiguration": { "name": "GetClassificationExportConfiguration", @@ -1175,7 +1331,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1204,6 +1360,44 @@ ], "documentation": "

Retrieves the configuration settings for storing data classification results.

" }, + "GetClassificationScope": { + "name": "GetClassificationScope", + "http": { + "method": "GET", + "requestUri": "/classification-scopes/{id}", + "responseCode": 200 + }, + "input": { + "shape": "GetClassificationScopeRequest" + }, + "output": { + "shape": "GetClassificationScopeResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Retrieves the classification scope settings for an account.

" + }, "GetCustomDataIdentifier": { "name": "GetCustomDataIdentifier", "http": { @@ -1221,7 +1415,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1267,7 +1461,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1313,7 +1507,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1359,7 +1553,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1405,7 +1599,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1451,7 +1645,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1497,7 +1691,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1524,7 +1718,7 @@ "documentation": "

The request failed because it conflicts with the current state of the specified resource.

" } ], - "documentation": "

Retrieves the current status and configuration settings for an Amazon Macie account.

" + "documentation": "

Retrieves the status and configuration settings for an Amazon Macie account.

" }, "GetMasterAccount": { "name": "GetMasterAccount", @@ -1543,7 +1737,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1589,7 +1783,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1618,6 +1812,196 @@ ], "documentation": "

Retrieves information about an account that's associated with an Amazon Macie administrator account.

" }, + "GetResourceProfile": { + "name": "GetResourceProfile", + "http": { + "method": "GET", + "requestUri": "/resource-profiles", + "responseCode": 200 + }, + "input": { + "shape": "GetResourceProfileRequest" + }, + "output": { + "shape": "GetResourceProfileResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "ServiceQuotaExceededException", + "documentation": "

The request failed because fulfilling the request would exceed one or more service quotas for your account.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + }, + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + } + ], + "documentation": "

Retrieves (queries) sensitive data discovery statistics and the sensitivity score for an S3 bucket.

" + }, + "GetRevealConfiguration": { + "name": "GetRevealConfiguration", + "http": { + "method": "GET", + "requestUri": "/reveal-configuration", + "responseCode": 200 + }, + "input": { + "shape": "GetRevealConfigurationRequest" + }, + "output": { + "shape": "GetRevealConfigurationResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Retrieves the status and configuration settings for retrieving occurrences of sensitive data reported by findings.

" + }, + "GetSensitiveDataOccurrences": { + "name": "GetSensitiveDataOccurrences", + "http": { + "method": "GET", + "requestUri": "/findings/{findingId}/reveal", + "responseCode": 200 + }, + "input": { + "shape": "GetSensitiveDataOccurrencesRequest" + }, + "output": { + "shape": "GetSensitiveDataOccurrencesResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "UnprocessableEntityException", + "documentation": "

The request failed because it contains instructions that Amazon Macie can't process (Unprocessable Entity).

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "ServiceQuotaExceededException", + "documentation": "

The request failed because fulfilling the request would exceed one or more service quotas for your account.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + }, + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + } + ], + "documentation": "

Retrieves occurrences of sensitive data reported by a finding.

" + }, + "GetSensitiveDataOccurrencesAvailability": { + "name": "GetSensitiveDataOccurrencesAvailability", + "http": { + "method": "GET", + "requestUri": "/findings/{findingId}/reveal/availability", + "responseCode": 200 + }, + "input": { + "shape": "GetSensitiveDataOccurrencesAvailabilityRequest" + }, + "output": { + "shape": "GetSensitiveDataOccurrencesAvailabilityResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Checks whether occurrences of sensitive data can be retrieved for a finding.

" + }, + "GetSensitivityInspectionTemplate": { + "name": "GetSensitivityInspectionTemplate", + "http": { + "method": "GET", + "requestUri": "/templates/sensitivity-inspections/{id}", + "responseCode": 200 + }, + "input": { + "shape": "GetSensitivityInspectionTemplateRequest" + }, + "output": { + "shape": "GetSensitivityInspectionTemplateResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Retrieves the settings for the sensitivity inspection template for an account.

" + }, "GetUsageStatistics": { "name": "GetUsageStatistics", "http": { @@ -1635,7 +2019,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1681,7 +2065,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1710,6 +2094,40 @@ ], "documentation": "

Retrieves (queries) aggregated usage data for an account.

" }, + "ListAllowLists": { + "name": "ListAllowLists", + "http": { + "method": "GET", + "requestUri": "/allow-lists", + "responseCode": 200 + }, + "input": { + "shape": "ListAllowListsRequest" + }, + "output": { + "shape": "ListAllowListsResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Retrieves a subset of information about all the allow lists for an account.

" + }, "ListClassificationJobs": { "name": "ListClassificationJobs", "http": { @@ -1727,7 +2145,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1756,6 +2174,40 @@ ], "documentation": "

Retrieves a subset of information about one or more classification jobs.

" }, + "ListClassificationScopes": { + "name": "ListClassificationScopes", + "http": { + "method": "GET", + "requestUri": "/classification-scopes", + "responseCode": 200 + }, + "input": { + "shape": "ListClassificationScopesRequest" + }, + "output": { + "shape": "ListClassificationScopesResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Retrieves a subset of information about the classification scope for an account.

" + }, "ListCustomDataIdentifiers": { "name": "ListCustomDataIdentifiers", "http": { @@ -1773,7 +2225,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1819,7 +2271,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1865,7 +2317,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1911,7 +2363,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -1974,7 +2426,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2020,7 +2472,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2049,6 +2501,124 @@ ], "documentation": "

Retrieves information about the delegated Amazon Macie administrator account for an organization in Organizations.

" }, + "ListResourceProfileArtifacts": { + "name": "ListResourceProfileArtifacts", + "http": { + "method": "GET", + "requestUri": "/resource-profiles/artifacts", + "responseCode": 200 + }, + "input": { + "shape": "ListResourceProfileArtifactsRequest" + }, + "output": { + "shape": "ListResourceProfileArtifactsResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Retrieves information about objects that were selected from an S3 bucket for automated sensitive data discovery.

" + }, + "ListResourceProfileDetections": { + "name": "ListResourceProfileDetections", + "http": { + "method": "GET", + "requestUri": "/resource-profiles/detections", + "responseCode": 200 + }, + "input": { + "shape": "ListResourceProfileDetectionsRequest" + }, + "output": { + "shape": "ListResourceProfileDetectionsResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "ServiceQuotaExceededException", + "documentation": "

The request failed because fulfilling the request would exceed one or more service quotas for your account.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + }, + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + } + ], + "documentation": "

Retrieves information about the types and amount of sensitive data that Amazon Macie found in an S3 bucket.

" + }, + "ListSensitivityInspectionTemplates": { + "name": "ListSensitivityInspectionTemplates", + "http": { + "method": "GET", + "requestUri": "/templates/sensitivity-inspections", + "responseCode": 200 + }, + "input": { + "shape": "ListSensitivityInspectionTemplatesRequest" + }, + "output": { + "shape": "ListSensitivityInspectionTemplatesResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "ServiceQuotaExceededException", + "documentation": "

The request failed because fulfilling the request would exceed one or more service quotas for your account.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Retrieves a subset of information about the sensitivity inspection template for an account.

" + }, "ListTagsForResource": { "name": "ListTagsForResource", "http": { @@ -2064,7 +2634,7 @@ "documentation": "

The request succeeded.

" }, "errors": [], - "documentation": "

Retrieves the tags (keys and values) that are associated with a classification job, custom data identifier, findings filter, or member account.

" + "documentation": "

Retrieves the tags (keys and values) that are associated with an Amazon Macie resource.

" }, "PutClassificationExportConfiguration": { "name": "PutClassificationExportConfiguration", @@ -2083,7 +2653,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2129,7 +2699,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2175,7 +2745,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2219,7 +2789,7 @@ "documentation": "

The request succeeded and there isn't any content to include in the body of the response (No Content).

" }, "errors": [], - "documentation": "

Adds or updates one or more tags (keys and values) that are associated with a classification job, custom data identifier, findings filter, or member account.

" + "documentation": "

Adds or updates one or more tags (keys and values) that are associated with an Amazon Macie resource.

" }, "TestCustomDataIdentifier": { "name": "TestCustomDataIdentifier", @@ -2238,7 +2808,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2282,7 +2852,79 @@ "documentation": "

The request succeeded and there isn't any content to include in the body of the response (No Content).

" }, "errors": [], - "documentation": "

Removes one or more tags (keys and values) from a classification job, custom data identifier, findings filter, or member account.

" + "documentation": "

Removes one or more tags (keys and values) from an Amazon Macie resource.

" + }, + "UpdateAllowList": { + "name": "UpdateAllowList", + "http": { + "method": "PUT", + "requestUri": "/allow-lists/{id}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateAllowListRequest" + }, + "output": { + "shape": "UpdateAllowListResponse", + "documentation": "

The request succeeded. The settings for the allow list were updated.

" + }, + "errors": [ + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Updates the settings for an allow list.

" + }, + "UpdateAutomatedDiscoveryConfiguration": { + "name": "UpdateAutomatedDiscoveryConfiguration", + "http": { + "method": "PUT", + "requestUri": "/automated-discovery/configuration", + "responseCode": 200 + }, + "input": { + "shape": "UpdateAutomatedDiscoveryConfigurationRequest" + }, + "output": { + "shape": "UpdateAutomatedDiscoveryConfigurationResponse", + "documentation": "

The request succeeded. The status of the automated sensitive data discovery configuration for the account was updated and there isn't any content to include in the body of the response (No Content).

" + }, + "errors": [ + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Enables or disables automated sensitive data discovery for an account.

" }, "UpdateClassificationJob": { "name": "UpdateClassificationJob", @@ -2301,7 +2943,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2330,6 +2972,44 @@ ], "documentation": "

Changes the status of a classification job.

" }, + "UpdateClassificationScope": { + "name": "UpdateClassificationScope", + "http": { + "method": "PATCH", + "requestUri": "/classification-scopes/{id}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateClassificationScopeRequest" + }, + "output": { + "shape": "UpdateClassificationScopeResponse", + "documentation": "

The request succeeded. The specified settings were updated and there isn't any content to include in the body of the response (No Content).

" + }, + "errors": [ + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Updates the classification scope settings for an account.

" + }, "UpdateFindingsFilter": { "name": "UpdateFindingsFilter", "http": { @@ -2347,7 +3027,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2393,7 +3073,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2439,7 +3119,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2485,7 +3165,7 @@ "errors": [ { "shape": "ValidationException", - "documentation": "

The request failed because it contains a syntax error.

" + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" }, { "shape": "InternalServerException", @@ -2513,6 +3193,162 @@ } ], "documentation": "

Updates the Amazon Macie configuration settings for an organization in Organizations.

" + }, + "UpdateResourceProfile": { + "name": "UpdateResourceProfile", + "http": { + "method": "PATCH", + "requestUri": "/resource-profiles", + "responseCode": 200 + }, + "input": { + "shape": "UpdateResourceProfileRequest" + }, + "output": { + "shape": "UpdateResourceProfileResponse", + "documentation": "

The request succeeded. The S3 bucket's sensitivity score was updated and there isn't any content to include in the body of the response (No Content).

" + }, + "errors": [ + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "ServiceQuotaExceededException", + "documentation": "

The request failed because fulfilling the request would exceed one or more service quotas for your account.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + }, + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + } + ], + "documentation": "

Updates the sensitivity score for an S3 bucket.

" + }, + "UpdateResourceProfileDetections": { + "name": "UpdateResourceProfileDetections", + "http": { + "method": "PATCH", + "requestUri": "/resource-profiles/detections", + "responseCode": 200 + }, + "input": { + "shape": "UpdateResourceProfileDetectionsRequest" + }, + "output": { + "shape": "UpdateResourceProfileDetectionsResponse", + "documentation": "

The request succeeded. The settings were updated and there isn't any content to include in the body of the response (No Content).

" + }, + "errors": [ + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "ServiceQuotaExceededException", + "documentation": "

The request failed because fulfilling the request would exceed one or more service quotas for your account.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + }, + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + } + ], + "documentation": "

Updates the sensitivity scoring settings for an S3 bucket.

" + }, + "UpdateRevealConfiguration": { + "name": "UpdateRevealConfiguration", + "http": { + "method": "PUT", + "requestUri": "/reveal-configuration", + "responseCode": 200 + }, + "input": { + "shape": "UpdateRevealConfigurationRequest" + }, + "output": { + "shape": "UpdateRevealConfigurationResponse", + "documentation": "

The request succeeded.

" + }, + "errors": [ + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Updates the status and configuration settings for retrieving occurrences of sensitive data reported by findings.

" + }, + "UpdateSensitivityInspectionTemplate": { + "name": "UpdateSensitivityInspectionTemplate", + "http": { + "method": "PUT", + "requestUri": "/templates/sensitivity-inspections/{id}", + "responseCode": 200 + }, + "input": { + "shape": "UpdateSensitivityInspectionTemplateRequest" + }, + "output": { + "shape": "UpdateSensitivityInspectionTemplateResponse", + "documentation": "

The request succeeded. The template's settings were updated and there isn't any content to include in the body of the response (No Content).

" + }, + "errors": [ + { + "shape": "ResourceNotFoundException", + "documentation": "

The request failed because the specified resource wasn't found.

" + }, + { + "shape": "ThrottlingException", + "documentation": "

The request failed because you sent too many requests during a certain amount of time.

" + }, + { + "shape": "ValidationException", + "documentation": "

The request failed because the input doesn't satisfy the constraints specified by the service.

" + }, + { + "shape": "InternalServerException", + "documentation": "

The request failed due to an unknown internal server error, exception, or failure.

" + }, + { + "shape": "AccessDeniedException", + "documentation": "

The request was denied because you don't have sufficient access to the specified resource.

" + } + ], + "documentation": "

Updates the settings for the sensitivity inspection template for an account.

" } }, "shapes": { @@ -2629,6 +3465,91 @@ "DISABLING_IN_PROGRESS" ] }, + "AllowListCriteria": { + "type": "structure", + "members": { + "regex": { + "shape": "__stringMin1Max512PatternSS", + "locationName": "regex", + "documentation": "

The regular expression (regex) that defines the text pattern to ignore. The expression can contain as many as 512 characters.

" + }, + "s3WordsList": { + "shape": "S3WordsList", + "locationName": "s3WordsList", + "documentation": "

The location and name of the S3 object that lists specific text to ignore.

" + } + }, + "documentation": "

Specifies the criteria for an allow list. The criteria must specify a regular expression (regex) or an S3 object (s3WordsList). It can't specify both.

" + }, + "AllowListStatus": { + "type": "structure", + "members": { + "code": { + "shape": "AllowListStatusCode", + "locationName": "code", + "documentation": "

The current status of the allow list. If the list's criteria specify a regular expression (regex), this value is typically OK. Amazon Macie can compile the expression.

If the list's criteria specify an S3 object, possible values are:

  • OK - Macie can retrieve and parse the contents of the object.

  • S3_OBJECT_ACCESS_DENIED - Macie isn't allowed to access the object or the object is encrypted with a customer managed KMS key that Macie isn't allowed to use. Check the bucket policy and other permissions settings for the bucket and the object. If the object is encrypted, also ensure that it's encrypted with a key that Macie is allowed to use.

  • S3_OBJECT_EMPTY - Macie can retrieve the object but the object doesn't contain any content. Ensure that the object contains the correct entries. Also ensure that the list's criteria specify the correct bucket and object names.

  • S3_OBJECT_NOT_FOUND - The object doesn't exist in Amazon S3. Ensure that the list's criteria specify the correct bucket and object names.

  • S3_OBJECT_OVERSIZE - Macie can retrieve the object. However, the object contains too many entries or its storage size exceeds the quota for an allow list. Try breaking the list into multiple files and ensure that each file doesn't exceed any quotas. Then configure list settings in Macie for each file.

  • S3_THROTTLED - Amazon S3 throttled the request to retrieve the object. Wait a few minutes and then try again.

  • S3_USER_ACCESS_DENIED - Amazon S3 denied the request to retrieve the object. If the specified object exists, you're not allowed to access it or it's encrypted with an KMS key that you're not allowed to use. Work with your Amazon Web Services administrator to ensure that the list's criteria specify the correct bucket and object names, and you have read access to the bucket and the object. If the object is encrypted, also ensure that it's encrypted with a key that you're allowed to use.

  • UNKNOWN_ERROR - A transient or internal error occurred when Macie attempted to retrieve or parse the object. Wait a few minutes and then try again. A list can also have this status if it's encrypted with a key that Amazon S3 and Macie can't access or use.

" + }, + "description": { + "shape": "__stringMin1Max1024PatternSS", + "locationName": "description", + "documentation": "

A brief description of the status of the allow list. Amazon Macie uses this value to provide additional information about an error that occurred when Macie tried to access and use the list's criteria.

" + } + }, + "documentation": "

Provides information about the current status of an allow list, which indicates whether Amazon Macie can access and use the list's criteria.

", + "required": [ + "code" + ] + }, + "AllowListStatusCode": { + "type": "string", + "documentation": "

Indicates the current status of an allow list. Depending on the type of criteria that the list specifies, possible values are:

", + "enum": [ + "OK", + "S3_OBJECT_NOT_FOUND", + "S3_USER_ACCESS_DENIED", + "S3_OBJECT_ACCESS_DENIED", + "S3_THROTTLED", + "S3_OBJECT_OVERSIZE", + "S3_OBJECT_EMPTY", + "UNKNOWN_ERROR" + ] + }, + "AllowListSummary": { + "type": "structure", + "members": { + "arn": { + "shape": "__stringMin71Max89PatternArnAwsAwsCnAwsUsGovMacie2AZ19920D12AllowListAZ0922", + "locationName": "arn", + "documentation": "

The Amazon Resource Name (ARN) of the allow list.

" + }, + "createdAt": { + "shape": "__timestampIso8601", + "locationName": "createdAt", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the allow list was created in Amazon Macie.

" + }, + "description": { + "shape": "__stringMin1Max512PatternSS", + "locationName": "description", + "documentation": "

The custom description of the allow list.

" + }, + "id": { + "shape": "__stringMin22Max22PatternAZ0922", + "locationName": "id", + "documentation": "

The unique identifier for the allow list.

" + }, + "name": { + "shape": "__stringMin1Max128Pattern", + "locationName": "name", + "documentation": "

The custom name of the allow list.

" + }, + "updatedAt": { + "shape": "__timestampIso8601", + "locationName": "updatedAt", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the allow list's settings were most recently changed in Amazon Macie.

" + } + }, + "documentation": "

Provides a subset of information about an allow list.

" + }, "AllowsUnencryptedObjectUploads": { "type": "string", "enum": [ @@ -2694,6 +3615,22 @@ }, "documentation": "

Provides information about an identity that performed an action on an affected resource by using temporary security credentials. The credentials were obtained using the AssumeRole operation of the Security Token Service (STS) API.

" }, + "AutomatedDiscoveryStatus": { + "type": "string", + "documentation": "

The status of the automated sensitive data discovery configuration for an Amazon Macie account. Valid values are:

", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "AvailabilityCode": { + "type": "string", + "documentation": "

Specifies whether occurrences of sensitive data can be retrieved for a finding. Possible values are:

", + "enum": [ + "AVAILABLE", + "UNAVAILABLE" + ] + }, "AwsAccount": { "type": "structure", "members": { @@ -2773,7 +3710,7 @@ "customDataIdentifiers": { "shape": "__listOfBatchGetCustomDataIdentifierSummary", "locationName": "customDataIdentifiers", - "documentation": "

An array of objects, one for each custom data identifier that meets the criteria specified in the request.

" + "documentation": "

An array of objects, one for each custom data identifier that matches the criteria specified in the request.

" }, "notFoundIdentifierIds": { "shape": "__listOf__string", @@ -2806,7 +3743,7 @@ "documentation": "

Specifies whether Amazon S3 restricts public bucket policies for the bucket.

" } }, - "documentation": "

Provides information about the block public access settings for an S3 bucket. These settings can apply to a bucket at the account level or bucket level. For detailed information about each setting, see Blocking public access to your Amazon S3 storage in the Amazon Simple Storage Service User Guide.

" + "documentation": "

Provides information about the block public access settings for an S3 bucket. These settings can apply to a bucket at the account or bucket level. For detailed information about each setting, see Blocking public access to your Amazon S3 storage in the Amazon Simple Storage Service User Guide.

" }, "BucketCountByEffectivePermission": { "type": "structure", @@ -2892,12 +3829,12 @@ "allowsUnencryptedObjectUploads": { "shape": "__long", "locationName": "allowsUnencryptedObjectUploads", - "documentation": "

The total number of buckets that don't have a bucket policy or have a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, the policy doesn't require PutObject requests to include the x-amz-server-side-encryption header and it doesn't require the value for that header to be AES256 or aws:kms.

" + "documentation": "

The total number of buckets that don't have a bucket policy or have a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, the policy doesn't require PutObject requests to include a valid server-side encryption header: the x-amz-server-side-encryption header with a value of AES256 or aws:kms, or the x-amz-server-side-encryption-customer-algorithm header with a value of AES256.

" }, "deniesUnencryptedObjectUploads": { "shape": "__long", "locationName": "deniesUnencryptedObjectUploads", - "documentation": "

The total number of buckets whose bucket policies require server-side encryption of new objects. PutObject requests for these buckets must include the x-amz-server-side-encryption header and the value for that header must be AES256 or aws:kms.

" + "documentation": "

The total number of buckets whose bucket policies require server-side encryption of new objects. PutObject requests for these buckets must include a valid server-side encryption header: the x-amz-server-side-encryption header with a value of AES256 or aws:kms, or the x-amz-server-side-encryption-customer-algorithm header with a value of AES256.

" }, "unknown": { "shape": "__long", @@ -2990,7 +3927,7 @@ "allowsUnencryptedObjectUploads": { "shape": "AllowsUnencryptedObjectUploads", "locationName": "allowsUnencryptedObjectUploads", - "documentation": "

Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are uploaded to the bucket. Possible values are:

  • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include the x-amz-server-side-encryption header and the value for that header must be AES256 or aws:kms.

  • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include the x-amz-server-side-encryption header and it doesn't require the value for that header to be AES256 or aws:kms.

  • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

" + "documentation": "

Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are uploaded to the bucket. Possible values are:

  • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

  • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

  • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

" }, "bucketArn": { "shape": "__string", @@ -3000,7 +3937,7 @@ "bucketCreatedAt": { "shape": "__timestampIso8601", "locationName": "bucketCreatedAt", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the bucket was created.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the bucket was created, or changes such as edits to the bucket's policy were most recently made to the bucket.

" }, "bucketName": { "shape": "__string", @@ -3032,6 +3969,11 @@ "locationName": "jobDetails", "documentation": "

Specifies whether any one-time or recurring classification jobs are configured to analyze data in the bucket, and, if so, the details of the job that ran most recently.

" }, + "lastAutomatedDiscoveryTime": { + "shape": "__timestampIso8601", + "locationName": "lastAutomatedDiscoveryTime", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently performed automated sensitive data discovery for the bucket. This value is null if automated sensitive data discovery is currently disabled for your account.

" + }, "lastUpdated": { "shape": "__timestampIso8601", "locationName": "lastUpdated", @@ -3062,6 +4004,11 @@ "locationName": "replicationDetails", "documentation": "

Specifies whether the bucket is configured to replicate one or more objects to buckets for other Amazon Web Services accounts and, if so, which accounts.

" }, + "sensitivityScore": { + "shape": "__integer", + "locationName": "sensitivityScore", + "documentation": "

The sensitivity score for the bucket, ranging from\u00a0-1\u00a0(no analysis due to an error) to\u00a0100 (sensitive). This value is null if automated sensitive data discovery is currently disabled for your account.

" + }, "serverSideEncryption": { "shape": "BucketServerSideEncryption", "locationName": "serverSideEncryption", @@ -3103,11 +4050,11 @@ "documentation": "

Specifies whether versioning is enabled for the bucket.

" } }, - "documentation": "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. If an error occurs when Macie attempts to retrieve and process information about the bucket or the bucket's objects, the value for the versioning property is false and the value for most other properties is null. Exceptions are accountId, bucketArn, bucketCreatedAt, bucketName, lastUpdated, and region. To identify the cause of the error, refer to the errorCode and errorMessage values.

" + "documentation": "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. If an error occurs when Macie attempts to retrieve and process metadata from Amazon S3 for the bucket and the bucket's objects, the value for the versioning property is false and the value for most other properties is null. Key exceptions are accountId, bucketArn, bucketCreatedAt, bucketName, lastUpdated, and region. To identify the cause of the error, refer to the errorCode and errorMessage values.

" }, "BucketMetadataErrorCode": { "type": "string", - "documentation": "

The error code for an error that prevented Amazon Macie from retrieving and processing information about an S3 bucket and the bucket's objects.

", + "documentation": "

The error code for an error that prevented Amazon Macie from retrieving and processing metadata from Amazon S3 for an S3 bucket and the bucket's objects.

", "enum": [ "ACCESS_DENIED" ] @@ -3182,7 +4129,7 @@ "attributeName": { "shape": "__string", "locationName": "attributeName", - "documentation": "

The name of the bucket property to sort the results by. This value can be one of the following properties that Amazon Macie defines as bucket metadata: accountId, bucketName, classifiableObjectCount, classifiableSizeInBytes, objectCount, or sizeInBytes.

" + "documentation": "

The name of the bucket property to sort the results by. This value can be one of the following properties that Amazon Macie defines as bucket metadata: accountId, bucketName, classifiableObjectCount, classifiableSizeInBytes, objectCount, sensitivityScore, or sizeInBytes.

" }, "orderBy": { "shape": "OrderBy", @@ -3192,6 +4139,32 @@ }, "documentation": "

Specifies criteria for sorting the results of a query for information about S3 buckets.

" }, + "BucketStatisticsBySensitivity": { + "type": "structure", + "members": { + "classificationError": { + "shape": "SensitivityAggregations", + "locationName": "classificationError", + "documentation": "

The aggregated statistical data for all buckets that have a sensitivity score of -1.

" + }, + "notClassified": { + "shape": "SensitivityAggregations", + "locationName": "notClassified", + "documentation": "

The aggregated statistical data for all buckets that have a sensitivity score of 50.

" + }, + "notSensitive": { + "shape": "SensitivityAggregations", + "locationName": "notSensitive", + "documentation": "

The aggregated statistical data for all buckets that have a sensitivity score of 0-49.

" + }, + "sensitive": { + "shape": "SensitivityAggregations", + "locationName": "sensitive", + "documentation": "

The aggregated statistical data for all buckets that have a sensitivity score of 51-100.

" + } + }, + "documentation": "

Provides aggregated statistical data for sensitive data discovery metrics that apply to S3 buckets, grouped by bucket sensitivity score (sensitivityScore). If automated sensitive data discovery is currently disabled for your account, the value for each metric is 0.

" + }, "Cell": { "type": "structure", "members": { @@ -3231,22 +4204,22 @@ "detailedResultsLocation": { "shape": "__string", "locationName": "detailedResultsLocation", - "documentation": "

The path to the folder or file (in Amazon S3) that contains the corresponding sensitive data discovery result for the finding. If a finding applies to a large archive or compressed file, this value is the path to a folder. Otherwise, this value is the path to a file.

" + "documentation": "

The path to the folder or file in Amazon S3 that contains the corresponding sensitive data discovery result for the finding. If a finding applies to a large archive or compressed file, this value is the path to a folder. Otherwise, this value is the path to a file.

" }, "jobArn": { "shape": "__string", "locationName": "jobArn", - "documentation": "

The Amazon Resource Name (ARN) of the classification job that produced the finding.

" + "documentation": "

The Amazon Resource Name (ARN) of the classification job that produced the finding. This value is null if the origin of the finding (originType) is AUTOMATED_SENSITIVE_DATA_DISCOVERY.

" }, "jobId": { "shape": "__string", "locationName": "jobId", - "documentation": "

The unique identifier for the classification job that produced the finding.

" + "documentation": "

The unique identifier for the classification job that produced the finding. This value is null if the origin of the finding (originType) is AUTOMATED_SENSITIVE_DATA_DISCOVERY.

" }, "originType": { "shape": "OriginType", "locationName": "originType", - "documentation": "

Specifies how Amazon Macie found the sensitive data that produced the finding: SENSITIVE_DATA_DISCOVERY_JOB, for a classification job.

" + "documentation": "

Specifies how Amazon Macie found the sensitive data that produced the finding. Possible values are: SENSITIVE_DATA_DISCOVERY_JOB, for a classification job; and, AUTOMATED_SENSITIVE_DATA_DISCOVERY, for automated sensitive data discovery.

" }, "result": { "shape": "ClassificationResult", @@ -3265,7 +4238,7 @@ "documentation": "

The S3 bucket to store data classification results in, and the encryption settings to use when storing results in that bucket.

" } }, - "documentation": "

Specifies where to store data classification results, and the encryption settings to use when storing results in that location. Currently, you can store classification results only in an S3 bucket.

" + "documentation": "

Specifies where to store data classification results, and the encryption settings to use when storing results in that location. The location must be an S3 bucket.

" }, "ClassificationResult": { "type": "structure", @@ -3319,6 +4292,41 @@ }, "documentation": "

Provides information about the status of a sensitive data finding.

" }, + "ClassificationScopeId": { + "type": "string", + "documentation": "

The unique identifier the classification scope.

", + "pattern": "^[0-9a-z]*$" + }, + "ClassificationScopeName": { + "type": "string", + "documentation": "

The name of the classification scope.

", + "pattern": "^[0-9a-zA-Z_\\\\-]*$" + }, + "ClassificationScopeSummary": { + "type": "structure", + "members": { + "id": { + "shape": "ClassificationScopeId", + "locationName": "id", + "documentation": "

The unique identifier for the classification scope.

" + }, + "name": { + "shape": "ClassificationScopeName", + "locationName": "name", + "documentation": "

The name of the classification scope.

" + } + }, + "documentation": "

Provides information about the classification scope for an Amazon Macie account. Macie uses the scope's settings when it performs automated sensitive data discovery for the account.

" + }, + "ClassificationScopeUpdateOperation": { + "type": "string", + "documentation": "

Specifies how to apply changes to the S3 bucket exclusion list defined by the classification scope for an Amazon Macie account. Valid values are:

", + "enum": [ + "ADD", + "REPLACE", + "REMOVE" + ] + }, "ConflictException": { "type": "structure", "members": { @@ -3334,9 +4342,65 @@ "httpStatusCode": 409 } }, + "CreateAllowListRequest": { + "type": "structure", + "members": { + "clientToken": { + "shape": "__string", + "locationName": "clientToken", + "documentation": "

A unique, case-sensitive token that you provide to ensure the idempotency of the request.

", + "idempotencyToken": true + }, + "criteria": { + "shape": "AllowListCriteria", + "locationName": "criteria", + "documentation": "

The criteria that specify the text or text pattern to ignore. The criteria can be the location and name of an S3 object that lists specific text to ignore (s3WordsList), or a regular expression (regex) that defines a text pattern to ignore.

" + }, + "description": { + "shape": "__stringMin1Max512PatternSS", + "locationName": "description", + "documentation": "

A custom description of the allow list. The description can contain as many as 512 characters.

" + }, + "name": { + "shape": "__stringMin1Max128Pattern", + "locationName": "name", + "documentation": "

A custom name for the allow list. The name can contain as many as 128 characters.

" + }, + "tags": { + "shape": "TagMap", + "locationName": "tags", + "documentation": "

A map of key-value pairs that specifies the tags to associate with the allow list.

An allow list can have a maximum of 50 tags. Each tag consists of a tag key and an associated tag value. The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters.

" + } + }, + "required": [ + "criteria", + "clientToken", + "name" + ] + }, + "CreateAllowListResponse": { + "type": "structure", + "members": { + "arn": { + "shape": "__stringMin71Max89PatternArnAwsAwsCnAwsUsGovMacie2AZ19920D12AllowListAZ0922", + "locationName": "arn", + "documentation": "

The Amazon Resource Name (ARN) of the allow list.

" + }, + "id": { + "shape": "__stringMin22Max22PatternAZ0922", + "locationName": "id", + "documentation": "

The unique identifier for the allow list.

" + } + } + }, "CreateClassificationJobRequest": { "type": "structure", "members": { + "allowListIds": { + "shape": "__listOf__string", + "locationName": "allowListIds", + "documentation": "

An array of unique identifiers, one for each allow list for the job to use when it analyzes data.

" + }, "clientToken": { "shape": "__string", "locationName": "clientToken", @@ -3356,7 +4420,7 @@ "initialRun": { "shape": "__boolean", "locationName": "initialRun", - "documentation": "

For a recurring job, specifies whether to analyze all existing, eligible objects immediately after the job is created (true). To analyze only those objects that are created or changed after you create the job and before the job's first scheduled run, set this value to false.

If you configure the job to run only once, don't specify a value for this property.

" + "documentation": "

For a recurring job, specifies whether to analyze all existing, eligible objects immediately after the job is created (true). To analyze only those objects that are created or changed after you create the job and before the job's first scheduled run, set this value to false.

If you configure the job to run only once, don't specify a value for this property.

" }, "jobType": { "shape": "JobType", @@ -3366,7 +4430,7 @@ "managedDataIdentifierIds": { "shape": "__listOf__string", "locationName": "managedDataIdentifierIds", - "documentation": "

An array of unique identifiers, one for each managed data identifier for the job to include (use) or exclude (not use) when it analyzes data. Inclusion or exclusion depends on the managed data identifier selection type that you specify for the job (managedDataIdentifierSelector).

To retrieve a list of valid values for this property, use the ListManagedDataIdentifiers operation.

" + "documentation": "

An array of unique identifiers, one for each managed data identifier for the job to include (use) or exclude (not use) when it analyzes data. Inclusion or exclusion depends on the managed data identifier selection type that you specify for the job (managedDataIdentifierSelector).

To retrieve a list of valid values for this property, use the ListManagedDataIdentifiers operation.

" }, "managedDataIdentifierSelector": { "shape": "ManagedDataIdentifierSelector", @@ -3443,12 +4507,12 @@ "keywords": { "shape": "__listOf__string", "locationName": "keywords", - "documentation": "

An array that lists specific character sequences (keywords), one of which must be within proximity (maximumMatchDistance) of the regular expression to match. The array can contain as many as 50 keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords aren't case sensitive.

" + "documentation": "

An array that lists specific character sequences (keywords), one of which must precede and be within proximity (maximumMatchDistance) of the regular expression to match. The array can contain as many as 50 keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords aren't case sensitive.

" }, "maximumMatchDistance": { "shape": "__integer", "locationName": "maximumMatchDistance", - "documentation": "

The maximum number of characters that can exist between text that matches the regular expression and the character sequences specified by the keywords array. Amazon Macie includes or excludes a result based on the proximity of a keyword to text that matches the regular expression. The distance can be 1-300 characters. The default value is 50.

" + "documentation": "

The maximum number of characters that can exist between the end of at least one complete character sequence specified by the keywords array and the end of the text that matches the regex pattern. If a complete keyword precedes all the text that matches the pattern and the keyword is within the specified distance, Amazon Macie includes the result. The distance can be 1-300 characters. The default value is 50.

" }, "name": { "shape": "__string", @@ -3472,8 +4536,8 @@ } }, "required": [ - "name", - "regex" + "regex", + "name" ] }, "CreateCustomDataIdentifierResponse": { @@ -3492,7 +4556,7 @@ "action": { "shape": "FindingsFilterAction", "locationName": "action", - "documentation": "

The action to perform on findings that meet the filter criteria (findingCriteria). Valid values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.

" + "documentation": "

The action to perform on findings that match the filter criteria (findingCriteria). Valid values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.

" }, "clientToken": { "shape": "__string", @@ -3801,6 +4865,14 @@ "HIGH" ] }, + "DataIdentifierType": { + "type": "string", + "documentation": "

The type of data identifier that detected a specific type of sensitive data in an S3 bucket. Possible values are:

", + "enum": [ + "CUSTOM", + "MANAGED" + ] + }, "DayOfWeek": { "type": "string", "enum": [ @@ -3864,6 +4936,30 @@ "shape": "DefaultDetection" } }, + "DeleteAllowListRequest": { + "type": "structure", + "members": { + "id": { + "shape": "__string", + "location": "uri", + "locationName": "id", + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" + }, + "ignoreJobChecks": { + "shape": "__string", + "location": "querystring", + "locationName": "ignoreJobChecks", + "documentation": "

Specifies whether to force deletion of the allow list, even if active classification jobs are configured to use the list.

When you try to delete an allow list, Amazon Macie checks for classification jobs that use the list and have a status other than COMPLETE or CANCELLED. By default, Macie rejects your request if any jobs meet these criteria. To skip these checks and delete the list, set this value to true. To delete the list only if no active jobs are configured to use it, set this value to false.

" + } + }, + "required": [ + "id" + ] + }, + "DeleteAllowListResponse": { + "type": "structure", + "members": {} + }, "DeleteCustomDataIdentifierRequest": { "type": "structure", "members": { @@ -3871,7 +4967,7 @@ "shape": "__string", "location": "uri", "locationName": "id", - "documentation": "

The unique identifier for the Amazon Macie resource or account that the request applies to.

" + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" } }, "required": [ @@ -3889,7 +4985,7 @@ "shape": "__string", "location": "uri", "locationName": "id", - "documentation": "

The unique identifier for the Amazon Macie resource or account that the request applies to.

" + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" } }, "required": [ @@ -3930,7 +5026,7 @@ "shape": "__string", "location": "uri", "locationName": "id", - "documentation": "

The unique identifier for the Amazon Macie resource or account that the request applies to.

" + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" } }, "required": [ @@ -3972,7 +5068,7 @@ "buckets": { "shape": "__listOfBucketMetadata", "locationName": "buckets", - "documentation": "

An array of objects, one for each bucket that meets the filter criteria specified in the request.

" + "documentation": "

An array of objects, one for each bucket that matches the filter criteria specified in the request.

" }, "nextToken": { "shape": "__string", @@ -3998,6 +5094,11 @@ "DescribeClassificationJobResponse": { "type": "structure", "members": { + "allowListIds": { + "shape": "__listOf__string", + "locationName": "allowListIds", + "documentation": "

An array of unique identifiers, one for each allow list that the job uses when it analyzes data.

" + }, "clientToken": { "shape": "__string", "locationName": "clientToken", @@ -4012,7 +5113,7 @@ "customDataIdentifierIds": { "shape": "__listOf__string", "locationName": "customDataIdentifierIds", - "documentation": "

An array of unique identifiers, one for each custom data identifier that the job uses to analyze data. This value is null if the job uses only managed data identifiers to analyze data.

" + "documentation": "

An array of unique identifiers, one for each custom data identifier that the job uses when it analyzes data. This value is null if the job uses only managed data identifiers to analyze data.

" }, "description": { "shape": "__string", @@ -4052,7 +5153,7 @@ "lastRunTime": { "shape": "__timestampIso8601", "locationName": "lastRunTime", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the job started. If the job is a recurring job, this value indicates when the most recent run started.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the job started. If the job is a recurring job, this value indicates when the most recent run started or, if the job hasn't run yet, when the job was created.

" }, "managedDataIdentifierIds": { "shape": "__listOf__string", @@ -4120,6 +5221,56 @@ } } }, + "DetectedDataDetails": { + "type": "structure", + "members": { + "value": { + "shape": "__stringMin1Max128", + "locationName": "value", + "documentation": "

An occurrence of the specified type of sensitive data. Each occurrence can contain 1-128 characters.

" + } + }, + "documentation": "

Specifies 1-10 occurrences of a specific type of sensitive data reported by a finding.

", + "required": [ + "value" + ] + }, + "Detection": { + "type": "structure", + "members": { + "arn": { + "shape": "__string", + "locationName": "arn", + "documentation": "

If the sensitive data was detected by a custom data identifier, the Amazon Resource Name (ARN) of the custom data identifier that detected the data. Otherwise, this value is null.

" + }, + "count": { + "shape": "__long", + "locationName": "count", + "documentation": "

The total number of occurrences of the sensitive data.

" + }, + "id": { + "shape": "__string", + "locationName": "id", + "documentation": "

The unique identifier for the custom data identifier or managed data identifier that detected the sensitive data. For additional details about a specified managed data identifier, see Using managed data identifiers in the Amazon Macie User Guide.

" + }, + "name": { + "shape": "__string", + "locationName": "name", + "documentation": "

The name of the custom data identifier or managed data identifier that detected the sensitive data. For a managed data identifier, this value is the same as the unique identifier (id).

" + }, + "suppressed": { + "shape": "__boolean", + "locationName": "suppressed", + "documentation": "

Specifies whether occurrences of this type of sensitive data are excluded (true) or included (false) in the bucket's sensitivity score.

" + }, + "type": { + "shape": "DataIdentifierType", + "locationName": "type", + "documentation": "

The type of data identifier that detected the sensitive data. Possible values are: CUSTOM, for a custom data identifier; and, MANAGED, for a managed data identifier.

" + } + }, + "documentation": "

Provides information about a type of sensitive data that Amazon Macie found in an S3 bucket while performing automated sensitive data discovery for the bucket. The information also specifies the custom data identifier or managed data identifier that detected the data. This information is available only if automated sensitive data discovery is currently enabled for your account.

" + }, "DisableMacieRequest": { "type": "structure", "members": {} @@ -4169,7 +5320,7 @@ "shape": "__string", "location": "uri", "locationName": "id", - "documentation": "

The unique identifier for the Amazon Macie resource or account that the request applies to.

" + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" } }, "required": [ @@ -4216,7 +5367,7 @@ "findingPublishingFrequency": { "shape": "FindingPublishingFrequency", "locationName": "findingPublishingFrequency", - "documentation": "

Specifies how often to publish updates to policy findings for the account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly called Amazon CloudWatch Events).

" + "documentation": "

Specifies how often to publish updates to policy findings for the account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly Amazon CloudWatch Events).

" }, "status": { "shape": "MacieStatus", @@ -4254,7 +5405,7 @@ }, "EncryptionType": { "type": "string", - "documentation": "

The type of server-side encryption that's used to encrypt an S3 object or objects in an S3 bucket. Valid values are:

", + "documentation": "

The type of server-side encryption that's used to encrypt an S3 object or objects in an S3 bucket. Possible values are:

", "enum": [ "NONE", "AES256", @@ -4327,12 +5478,12 @@ "count": { "shape": "__long", "locationName": "count", - "documentation": "

The total number of occurrences of the finding. For sensitive data findings, this value is always 1. All sensitive data findings are considered new (unique) because they derive from individual classification jobs.

" + "documentation": "

The total number of occurrences of the finding. For sensitive data findings, this value is always 1. All sensitive data findings are considered unique.

" }, "createdAt": { "shape": "__timestampIso8601", "locationName": "createdAt", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the finding was created.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie created the finding.

" }, "description": { "shape": "__string", @@ -4392,7 +5543,7 @@ "updatedAt": { "shape": "__timestampIso8601", "locationName": "updatedAt", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the finding was last updated. For sensitive data findings, this value is the same as the value for the createdAt property. All sensitive data findings are considered new (unique) because they derive from individual classification jobs.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie last updated the finding. For sensitive data findings, this value is the same as the value for the createdAt property. All sensitive data findings are considered new.

" } }, "documentation": "

Provides the details of a finding.

" @@ -4443,7 +5594,7 @@ }, "FindingCategory": { "type": "string", - "documentation": "

The category of the finding. Valid values are:

", + "documentation": "

The category of the finding. Possible values are:

", "enum": [ "CLASSIFICATION", "POLICY" @@ -4462,7 +5613,7 @@ }, "FindingPublishingFrequency": { "type": "string", - "documentation": "

The frequency with which Amazon Macie publishes updates to policy findings for an account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly called Amazon CloudWatch Events). For more information, see Monitoring and processing findings in the Amazon Macie User Guide. Valid values are:

", + "documentation": "

The frequency with which Amazon Macie publishes updates to policy findings for an account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly Amazon CloudWatch Events). For more information, see Monitoring and processing findings in the Amazon Macie User Guide. Valid values are:

", "enum": [ "FIFTEEN_MINUTES", "ONE_HOUR", @@ -4495,7 +5646,7 @@ }, "FindingType": { "type": "string", - "documentation": "

The type of finding. For details about each type, see Types of Amazon Macie findings in the Amazon Macie User Guide. Valid values are:

", + "documentation": "

The type of finding. For details about each type, see Types of Amazon Macie findings in the Amazon Macie User Guide. Possible values are:

", "enum": [ "SensitiveData:S3Object/Multiple", "SensitiveData:S3Object/Financial", @@ -4511,7 +5662,7 @@ }, "FindingsFilterAction": { "type": "string", - "documentation": "

The action to perform on findings that meet the filter criteria. To suppress (automatically archive) findings that meet the criteria, set this value to ARCHIVE. Valid values are:

", + "documentation": "

The action to perform on findings that match the filter criteria. To suppress (automatically archive) findings that match the criteria, set this value to ARCHIVE. Valid values are:

", "enum": [ "ARCHIVE", "NOOP" @@ -4523,7 +5674,7 @@ "action": { "shape": "FindingsFilterAction", "locationName": "action", - "documentation": "

The action that's performed on findings that meet the filter criteria. Possible values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.

" + "documentation": "

The action that's performed on findings that match the filter criteria. Possible values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.

" }, "arn": { "shape": "__string", @@ -4543,7 +5694,7 @@ "tags": { "shape": "TagMap", "locationName": "tags", - "documentation": "

A map of key-value pairs that identifies the tags (keys and values) that are associated with the filter.

" + "documentation": "

A map of key-value pairs that specifies which tags (keys and values) are associated with the filter.

" } }, "documentation": "

Provides information about a findings filter.

" @@ -4562,6 +5713,109 @@ } } }, + "GetAllowListRequest": { + "type": "structure", + "members": { + "id": { + "shape": "__string", + "location": "uri", + "locationName": "id", + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" + } + }, + "required": [ + "id" + ] + }, + "GetAllowListResponse": { + "type": "structure", + "members": { + "arn": { + "shape": "__stringMin71Max89PatternArnAwsAwsCnAwsUsGovMacie2AZ19920D12AllowListAZ0922", + "locationName": "arn", + "documentation": "

The Amazon Resource Name (ARN) of the allow list.

" + }, + "createdAt": { + "shape": "__timestampIso8601", + "locationName": "createdAt", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the allow list was created in Amazon Macie.

" + }, + "criteria": { + "shape": "AllowListCriteria", + "locationName": "criteria", + "documentation": "

The criteria that specify the text or text pattern to ignore. The criteria can be the location and name of an S3 object that lists specific text to ignore (s3WordsList), or a regular expression (regex) that defines a text pattern to ignore.

" + }, + "description": { + "shape": "__stringMin1Max512PatternSS", + "locationName": "description", + "documentation": "

The custom description of the allow list.

" + }, + "id": { + "shape": "__stringMin22Max22PatternAZ0922", + "locationName": "id", + "documentation": "

The unique identifier for the allow list.

" + }, + "name": { + "shape": "__stringMin1Max128Pattern", + "locationName": "name", + "documentation": "

The custom name of the allow list.

" + }, + "status": { + "shape": "AllowListStatus", + "locationName": "status", + "documentation": "

The current status of the allow list, which indicates whether Amazon Macie can access and use the list's criteria.

" + }, + "tags": { + "shape": "TagMap", + "locationName": "tags", + "documentation": "

A map of key-value pairs that specifies which tags (keys and values) are associated with the allow list.

" + }, + "updatedAt": { + "shape": "__timestampIso8601", + "locationName": "updatedAt", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the allow list's settings were most recently changed in Amazon Macie.

" + } + } + }, + "GetAutomatedDiscoveryConfigurationRequest": { + "type": "structure", + "members": {} + }, + "GetAutomatedDiscoveryConfigurationResponse": { + "type": "structure", + "members": { + "classificationScopeId": { + "shape": "ClassificationScopeId", + "locationName": "classificationScopeId", + "documentation": "

The unique identifier for the classification scope that's used when performing automated sensitive data discovery for the account. The classification scope specifies S3 buckets to exclude from automated sensitive data discovery.

" + }, + "disabledAt": { + "shape": "Timestamp", + "locationName": "disabledAt", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when automated sensitive data discovery was most recently disabled for the account. This value is null if automated sensitive data discovery wasn't enabled and subsequently disabled for the account.

" + }, + "firstEnabledAt": { + "shape": "Timestamp", + "locationName": "firstEnabledAt", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when automated sensitive data discovery was initially enabled for the account. This value is null if automated sensitive data discovery has never been enabled for the account.

" + }, + "lastUpdatedAt": { + "shape": "Timestamp", + "locationName": "lastUpdatedAt", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when automated sensitive data discovery was most recently enabled or disabled for the account.

" + }, + "sensitivityInspectionTemplateId": { + "shape": "SensitivityInspectionTemplateId", + "locationName": "sensitivityInspectionTemplateId", + "documentation": "

The unique identifier for the sensitivity inspection template that's used when performing automated sensitive data discovery for the account. The template specifies which allow lists, custom data identifiers, and managed data identifiers to use when analyzing data.

" + }, + "status": { + "shape": "AutomatedDiscoveryStatus", + "locationName": "status", + "documentation": "

The current status of the automated sensitive data discovery configuration for the account. Possible values are: ENABLED, use the specified settings to perform automated sensitive data discovery activities for the account; and, DISABLED, don't perform automated sensitive data discovery activities for the account.

" + } + } + }, "GetBucketStatisticsRequest": { "type": "structure", "members": { @@ -4600,6 +5854,11 @@ "locationName": "bucketCountBySharedAccessType", "documentation": "

The total number of buckets that are or aren't shared with another Amazon Web Services account.

" }, + "bucketStatisticsBySensitivity": { + "shape": "BucketStatisticsBySensitivity", + "locationName": "bucketStatisticsBySensitivity", + "documentation": "

The aggregated sensitive data discovery statistics for the buckets. If automated sensitive data discovery is currently disabled for your account, the value for each statistic is 0.

" + }, "classifiableObjectCount": { "shape": "__long", "locationName": "classifiableObjectCount", @@ -4608,7 +5867,7 @@ "classifiableSizeInBytes": { "shape": "__long", "locationName": "classifiableSizeInBytes", - "documentation": "

The total storage size, in bytes, of all the objects that Amazon Macie can analyze in the buckets. These objects use a supported storage class and have a file name extension for a supported file or storage format.

If versioning is enabled for any of the buckets, Macie calculates this value based on the size of the latest version of each applicable object in those buckets. This value doesn't reflect the storage size of all versions of all applicable objects in the buckets.

" + "documentation": "

The total storage size, in bytes, of all the objects that Amazon Macie can analyze in the buckets. These objects use a supported storage class and have a file name extension for a supported file or storage format.

If versioning is enabled for any of the buckets, this value is based on the size of the latest version of each applicable object in the buckets. This value doesn't reflect the storage size of all versions of all applicable objects in the buckets.

" }, "lastUpdated": { "shape": "__timestampIso8601", @@ -4623,12 +5882,12 @@ "sizeInBytes": { "shape": "__long", "locationName": "sizeInBytes", - "documentation": "

The total storage size, in bytes, of the buckets.

If versioning is enabled for any of the buckets, Amazon Macie calculates this value based on the size of the latest version of each object in those buckets. This value doesn't reflect the storage size of all versions of the objects in the buckets.

" + "documentation": "

The total storage size, in bytes, of the buckets.

If versioning is enabled for any of the buckets, this value is based on the size of the latest version of each object in the buckets. This value doesn't reflect the storage size of all versions of the objects in the buckets.

" }, "sizeInBytesCompressed": { "shape": "__long", "locationName": "sizeInBytesCompressed", - "documentation": "

The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the buckets.

If versioning is enabled for any of the buckets, Amazon Macie calculates this value based on the size of the latest version of each applicable object in those buckets. This value doesn't reflect the storage size of all versions of the applicable objects in the buckets.

" + "documentation": "

The total storage size, in bytes, of the objects that are compressed (.gz, .gzip, .zip) files in the buckets.

If versioning is enabled for any of the buckets, this value is based on the size of the latest version of each applicable object in the buckets. This value doesn't reflect the storage size of all versions of the applicable objects in the buckets.

" }, "unclassifiableObjectCount": { "shape": "ObjectLevelStatistics", @@ -4656,6 +5915,40 @@ } } }, + "GetClassificationScopeRequest": { + "type": "structure", + "members": { + "id": { + "shape": "__string", + "location": "uri", + "locationName": "id", + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" + } + }, + "required": [ + "id" + ] + }, + "GetClassificationScopeResponse": { + "type": "structure", + "members": { + "id": { + "shape": "ClassificationScopeId", + "locationName": "id", + "documentation": "

The unique identifier for the classification scope.

" + }, + "name": { + "shape": "ClassificationScopeName", + "locationName": "name", + "documentation": "

The name of the classification scope.

" + }, + "s3": { + "shape": "S3ClassificationScope", + "locationName": "s3", + "documentation": "

The S3 buckets that are excluded from automated sensitive data discovery.

" + } + } + }, "GetCustomDataIdentifierRequest": { "type": "structure", "members": { @@ -4663,7 +5956,7 @@ "shape": "__string", "location": "uri", "locationName": "id", - "documentation": "

The unique identifier for the Amazon Macie resource or account that the request applies to.

" + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" } }, "required": [ @@ -4706,12 +5999,12 @@ "keywords": { "shape": "__listOf__string", "locationName": "keywords", - "documentation": "

An array that lists specific character sequences (keywords), one of which must be within proximity (maximumMatchDistance) of the regular expression to match. Keywords aren't case sensitive.

" + "documentation": "

An array that lists specific character sequences (keywords), one of which must precede and be within proximity (maximumMatchDistance) of the regular expression to match. Keywords aren't case sensitive.

" }, "maximumMatchDistance": { "shape": "__integer", "locationName": "maximumMatchDistance", - "documentation": "

The maximum number of characters that can exist between text that matches the regular expression and the character sequences specified by the keywords array. Amazon Macie includes or excludes a result based on the proximity of a keyword to text that matches the regular expression.

" + "documentation": "

The maximum number of characters that can exist between the end of at least one complete character sequence specified by the keywords array and the end of the text that matches the regex pattern. If a complete keyword precedes all the text that matches the pattern and the keyword is within the specified distance, Amazon Macie includes the result. Otherwise, Macie excludes the result.

" }, "name": { "shape": "__string", @@ -4769,7 +6062,7 @@ "countsByGroup": { "shape": "__listOfGroupCount", "locationName": "countsByGroup", - "documentation": "

An array of objects, one for each group of findings that meet the filter criteria specified in the request.

" + "documentation": "

An array of objects, one for each group of findings that matches the filter criteria specified in the request.

" } } }, @@ -4780,7 +6073,7 @@ "shape": "__string", "location": "uri", "locationName": "id", - "documentation": "

The unique identifier for the Amazon Macie resource or account that the request applies to.

" + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" } }, "required": [ @@ -4793,7 +6086,7 @@ "action": { "shape": "FindingsFilterAction", "locationName": "action", - "documentation": "

The action that's performed on findings that meet the filter criteria (findingCriteria). Possible values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.

" + "documentation": "

The action that's performed on findings that match the filter criteria (findingCriteria). Possible values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.

" }, "arn": { "shape": "__string", @@ -4828,7 +6121,7 @@ "tags": { "shape": "TagMap", "locationName": "tags", - "documentation": "

A map of key-value pairs that identifies the tags (keys and values) that are associated with the filter.

" + "documentation": "

A map of key-value pairs that specifies which tags (keys and values) are associated with the filter.

" } } }, @@ -4870,7 +6163,7 @@ "findings": { "shape": "__listOfFinding", "locationName": "findings", - "documentation": "

An array of objects, one for each finding that meets the criteria specified in the request.

" + "documentation": "

An array of objects, one for each finding that matches the criteria specified in the request.

" } } }, @@ -4903,7 +6196,7 @@ "findingPublishingFrequency": { "shape": "FindingPublishingFrequency", "locationName": "findingPublishingFrequency", - "documentation": "

The frequency with which Amazon Macie publishes updates to policy findings for the account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly called Amazon CloudWatch Events).

" + "documentation": "

The frequency with which Amazon Macie publishes updates to policy findings for the account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly Amazon CloudWatch Events).

" }, "serviceRole": { "shape": "__string", @@ -4943,7 +6236,7 @@ "shape": "__string", "location": "uri", "locationName": "id", - "documentation": "

The unique identifier for the Amazon Macie resource or account that the request applies to.

" + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" } }, "required": [ @@ -4991,7 +6284,7 @@ "tags": { "shape": "TagMap", "locationName": "tags", - "documentation": "

A map of key-value pairs that identifies the tags (keys and values) that are associated with the member account in Amazon Macie.

" + "documentation": "

A map of key-value pairs that specifies which tags (keys and values) are associated with the account in Amazon Macie.

" }, "updatedAt": { "shape": "__timestampIso8601", @@ -5000,6 +6293,166 @@ } } }, + "GetResourceProfileRequest": { + "type": "structure", + "members": { + "resourceArn": { + "shape": "__string", + "location": "querystring", + "locationName": "resourceArn", + "documentation": "

The Amazon Resource Name (ARN) of the S3 bucket that the request applies to.

" + } + }, + "required": [ + "resourceArn" + ] + }, + "GetResourceProfileResponse": { + "type": "structure", + "members": { + "profileUpdatedAt": { + "shape": "__timestampIso8601", + "locationName": "profileUpdatedAt", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently recalculated sensitive data discovery statistics and details for the bucket. If the bucket's sensitivity score is calculated automatically, this includes the score.

" + }, + "sensitivityScore": { + "shape": "__integer", + "locationName": "sensitivityScore", + "documentation": "

The current sensitivity score for the bucket, ranging from\u00a0-1\u00a0(no analysis due to an error) to\u00a0100 (sensitive). By default, this score is calculated automatically based on the amount of data that Amazon Macie has analyzed in the bucket and the amount of sensitive data that Macie has found in the bucket.

" + }, + "sensitivityScoreOverridden": { + "shape": "__boolean", + "locationName": "sensitivityScoreOverridden", + "documentation": "

Specifies whether the bucket's current sensitivity score was set manually. If this value is true, the score was manually changed to 100. If this value is false, the score was calculated automatically by Amazon Macie.

" + }, + "statistics": { + "shape": "ResourceStatistics", + "locationName": "statistics", + "documentation": "

The sensitive data discovery statistics for the bucket. The statistics capture the results of automated sensitive data discovery activities that Amazon Macie has performed for the bucket.

" + } + } + }, + "GetRevealConfigurationRequest": { + "type": "structure", + "members": {} + }, + "GetRevealConfigurationResponse": { + "type": "structure", + "members": { + "configuration": { + "shape": "RevealConfiguration", + "locationName": "configuration", + "documentation": "

The current configuration settings and the status of the configuration for the account.

" + } + } + }, + "GetSensitiveDataOccurrencesAvailabilityRequest": { + "type": "structure", + "members": { + "findingId": { + "shape": "__string", + "location": "uri", + "locationName": "findingId", + "documentation": "

The unique identifier for the finding.

" + } + }, + "required": [ + "findingId" + ] + }, + "GetSensitiveDataOccurrencesAvailabilityResponse": { + "type": "structure", + "members": { + "code": { + "shape": "AvailabilityCode", + "locationName": "code", + "documentation": "

Specifies whether occurrences of sensitive data can be retrieved for the finding. Possible values are: AVAILABLE, the sensitive data can be retrieved; and, UNAVAILABLE, the sensitive data can't be retrieved. If this value is UNAVAILABLE, the reasons array indicates why the data can't be retrieved.

" + }, + "reasons": { + "shape": "__listOfUnavailabilityReasonCode", + "locationName": "reasons", + "documentation": "

Specifies why occurrences of sensitive data can't be retrieved for the finding. Possible values are:

  • INVALID_CLASSIFICATION_RESULT - Amazon Macie can't verify the location of the sensitive data to retrieve. There isn't a corresponding sensitive data discovery result for the finding. Or the sensitive data discovery result specified by the ClassificationDetails.detailedResultsLocation field of the finding isn't available, is malformed or corrupted, or uses an unsupported storage format.

  • OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3 object exceeds the size quota for retrieving occurrences of sensitive data.

  • OBJECT_UNAVAILABLE - The affected S3 object isn't available. The object might have been renamed, moved, or deleted. Or the object was changed after Macie created the finding.

  • UNSUPPORTED_FINDING_TYPE - The specified finding isn't a sensitive data finding.

  • UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or storage format that Macie doesn't support for retrieving occurrences of sensitive data.

This value is null if sensitive data can be retrieved for the finding.

" + } + } + }, + "GetSensitiveDataOccurrencesRequest": { + "type": "structure", + "members": { + "findingId": { + "shape": "__string", + "location": "uri", + "locationName": "findingId", + "documentation": "

The unique identifier for the finding.

" + } + }, + "required": [ + "findingId" + ] + }, + "GetSensitiveDataOccurrencesResponse": { + "type": "structure", + "members": { + "error": { + "shape": "__string", + "locationName": "error", + "documentation": "

If an error occurred when Amazon Macie attempted to retrieve occurrences of sensitive data reported by the finding, a description of the error that occurred. This value is null if the status (status) of the request is PROCESSING or SUCCESS.

" + }, + "sensitiveDataOccurrences": { + "shape": "SensitiveDataOccurrences", + "locationName": "sensitiveDataOccurrences", + "documentation": "

A map that specifies 1-100 types of sensitive data reported by the finding and, for each type, 1-10 occurrences of sensitive data.

" + }, + "status": { + "shape": "RevealRequestStatus", + "locationName": "status", + "documentation": "

The status of the request to retrieve occurrences of sensitive data reported by the finding. Possible values are:

  • ERROR - An error occurred when Amazon Macie attempted to locate, retrieve, or encrypt the sensitive data. The error value indicates the nature of the error that occurred.

  • PROCESSING - Macie is processing the request.

  • SUCCESS - Macie successfully located, retrieved, and encrypted the sensitive data.

" + } + } + }, + "GetSensitivityInspectionTemplateRequest": { + "type": "structure", + "members": { + "id": { + "shape": "__string", + "location": "uri", + "locationName": "id", + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" + } + }, + "required": [ + "id" + ] + }, + "GetSensitivityInspectionTemplateResponse": { + "type": "structure", + "members": { + "description": { + "shape": "__string", + "locationName": "description", + "documentation": "

The custom description of the template.

" + }, + "excludes": { + "shape": "SensitivityInspectionTemplateExcludes", + "locationName": "excludes", + "documentation": "

The managed data identifiers that are explicitly excluded (not used) when analyzing data.

" + }, + "includes": { + "shape": "SensitivityInspectionTemplateIncludes", + "locationName": "includes", + "documentation": "

The allow lists, custom data identifiers, and managed data identifiers that are included (used) when analyzing data.

" + }, + "name": { + "shape": "__string", + "locationName": "name", + "documentation": "

The name of the template.

" + }, + "sensitivityInspectionTemplateId": { + "shape": "SensitivityInspectionTemplateId", + "locationName": "sensitivityInspectionTemplateId", + "documentation": "

The unique identifier for the template.

" + } + } + }, "GetUsageStatisticsRequest": { "type": "structure", "members": { @@ -5041,7 +6494,7 @@ "records": { "shape": "__listOfUsageRecord", "locationName": "records", - "documentation": "

An array of objects that contains the results of the query. Each object contains the data for an account that meets the filter criteria specified in the request.

" + "documentation": "

An array of objects that contains the results of the query. Each object contains the data for an account that matches the filter criteria specified in the request.

" }, "timeRange": { "shape": "TimeRange", @@ -5304,7 +6757,7 @@ "isDefinedInJob": { "shape": "IsDefinedInJob", "locationName": "isDefinedInJob", - "documentation": "

Specifies whether any one-time or recurring jobs are configured to analyze data in the bucket. Possible values are:

  • TRUE - The bucket is explicitly included in the bucket definition (S3BucketDefinitionForJob) for one or more jobs and at least one of those jobs has a status other than CANCELLED. Or the bucket matched the bucket criteria (S3BucketCriteriaForJob) for at least one job that previously ran.

  • FALSE - The bucket isn't explicitly included in the bucket definition (S3BucketDefinitionForJob) for any jobs, all the jobs that explicitly include the bucket in their bucket definitions have a status of CANCELLED, or the bucket didn't match the bucket criteria (S3BucketCriteriaForJob) for any jobs that previously ran.

  • UNKNOWN - An exception occurred when Amazon Macie attempted to retrieve job data for the bucket.

" + "documentation": "

Specifies whether any one-time or recurring jobs are configured to analyze data in the bucket. Possible values are:

  • TRUE - The bucket is explicitly included in the bucket definition (S3BucketDefinitionForJob) for one or more jobs and at least one of those jobs has a status other than CANCELLED. Or the bucket matched the bucket criteria (S3BucketCriteriaForJob) for at least one job that previously ran.

  • FALSE - The bucket isn't explicitly included in the bucket definition (S3BucketDefinitionForJob) for any jobs, all the jobs that explicitly include the bucket in their bucket definitions have a status of CANCELLED, or the bucket didn't match the bucket criteria (S3BucketCriteriaForJob) for any jobs that previously ran.

  • UNKNOWN - An exception occurred when Amazon Macie attempted to retrieve job data for the bucket.

" }, "isMonitoredByJob": { "shape": "IsMonitoredByJob", @@ -5387,6 +6840,11 @@ "JobSummary": { "type": "structure", "members": { + "bucketCriteria": { + "shape": "S3BucketCriteriaForJob", + "locationName": "bucketCriteria", + "documentation": "

The property- and tag-based conditions that determine which S3 buckets are included or excluded from the job's analysis. Each time the job runs, the job uses these criteria to determine which buckets to analyze. A job's definition can contain a bucketCriteria object or a bucketDefinitions array, not both.

" + }, "bucketDefinitions": { "shape": "__listOfS3BucketDefinitionForJob", "locationName": "bucketDefinitions", @@ -5426,11 +6884,6 @@ "shape": "UserPausedDetails", "locationName": "userPausedDetails", "documentation": "

If the current status of the job is USER_PAUSED, specifies when the job was paused and when the job or job run will expire and be cancelled if it isn't resumed. This value is present only if the value for jobStatus is USER_PAUSED.

" - }, - "bucketCriteria": { - "shape": "S3BucketCriteriaForJob", - "locationName": "bucketCriteria", - "documentation": "

The property- and tag-based conditions that determine which S3 buckets are included or excluded from the job's analysis. Each time the job runs, the job uses these criteria to determine which buckets to analyze. A job's definition can contain a bucketCriteria object or a bucketDefinitions array, not both.

" } }, "documentation": "

Provides information about a classification job, including the current status of the job.

" @@ -5485,6 +6938,38 @@ "ERROR" ] }, + "ListAllowListsRequest": { + "type": "structure", + "members": { + "maxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults", + "documentation": "

The maximum number of items to include in each page of a paginated response.

" + }, + "nextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken", + "documentation": "

The nextToken string that specifies which page of results to return in a paginated response.

" + } + } + }, + "ListAllowListsResponse": { + "type": "structure", + "members": { + "allowLists": { + "shape": "__listOfAllowListSummary", + "locationName": "allowLists", + "documentation": "

An array of objects, one for each allow list.

" + }, + "nextToken": { + "shape": "__string", + "locationName": "nextToken", + "documentation": "

The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.

" + } + } + }, "ListClassificationJobsRequest": { "type": "structure", "members": { @@ -5516,7 +7001,7 @@ "items": { "shape": "__listOfJobSummary", "locationName": "items", - "documentation": "

An array of objects, one for each job that meets the filter criteria specified in the request.

" + "documentation": "

An array of objects, one for each job that matches the filter criteria specified in the request.

" }, "nextToken": { "shape": "__string", @@ -5525,6 +7010,38 @@ } } }, + "ListClassificationScopesRequest": { + "type": "structure", + "members": { + "name": { + "shape": "__string", + "location": "querystring", + "locationName": "name", + "documentation": "

The name of the classification scope to retrieve the unique identifier for.

" + }, + "nextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken", + "documentation": "

The nextToken string that specifies which page of results to return in a paginated response.

" + } + } + }, + "ListClassificationScopesResponse": { + "type": "structure", + "members": { + "classificationScopes": { + "shape": "__listOfClassificationScopeSummary", + "locationName": "classificationScopes", + "documentation": "

An array that specifies the unique identifier and name of the classification scope for the account.

" + }, + "nextToken": { + "shape": "NextToken", + "locationName": "nextToken", + "documentation": "

The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.

" + } + } + }, "ListCustomDataIdentifiersRequest": { "type": "structure", "members": { @@ -5618,7 +7135,7 @@ "findingIds": { "shape": "__listOf__string", "locationName": "findingIds", - "documentation": "

An array of strings, where each string is the unique identifier for a finding that meets the filter criteria specified in the request.

" + "documentation": "

An array of strings, where each string is the unique identifier for a finding that matches the filter criteria specified in the request.

" }, "nextToken": { "shape": "__string", @@ -5786,7 +7303,7 @@ "members": { "shape": "__listOfMember", "locationName": "members", - "documentation": "

An array of objects, one for each account that's associated with the administrator account and meets the criteria specified in the request.

" + "documentation": "

An array of objects, one for each account that's associated with the administrator account and matches the criteria specified in the request.

" }, "nextToken": { "shape": "__string", @@ -5827,6 +7344,114 @@ } } }, + "ListResourceProfileArtifactsRequest": { + "type": "structure", + "members": { + "nextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken", + "documentation": "

The nextToken string that specifies which page of results to return in a paginated response.

" + }, + "resourceArn": { + "shape": "__string", + "location": "querystring", + "locationName": "resourceArn", + "documentation": "

The Amazon Resource Name (ARN) of the S3 bucket that the request applies to.

" + } + }, + "required": [ + "resourceArn" + ] + }, + "ListResourceProfileArtifactsResponse": { + "type": "structure", + "members": { + "artifacts": { + "shape": "__listOfResourceProfileArtifact", + "locationName": "artifacts", + "documentation": "

An array of objects, one for each S3 object that Amazon Macie selected for analysis.

" + }, + "nextToken": { + "shape": "__string", + "locationName": "nextToken", + "documentation": "

The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.

" + } + } + }, + "ListResourceProfileDetectionsRequest": { + "type": "structure", + "members": { + "maxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults", + "documentation": "

The maximum number of items to include in each page of a paginated response.

" + }, + "nextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken", + "documentation": "

The nextToken string that specifies which page of results to return in a paginated response.

" + }, + "resourceArn": { + "shape": "__string", + "location": "querystring", + "locationName": "resourceArn", + "documentation": "

The Amazon Resource Name (ARN) of the S3 bucket that the request applies to.

" + } + }, + "required": [ + "resourceArn" + ] + }, + "ListResourceProfileDetectionsResponse": { + "type": "structure", + "members": { + "detections": { + "shape": "__listOfDetection", + "locationName": "detections", + "documentation": "

An array of objects, one for each type of sensitive data that Amazon Macie found in the bucket. Each object reports the number of occurrences of the specified type and provides information about the custom data identifier or managed data identifier that detected the data.

" + }, + "nextToken": { + "shape": "__string", + "locationName": "nextToken", + "documentation": "

The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.

" + } + } + }, + "ListSensitivityInspectionTemplatesRequest": { + "type": "structure", + "members": { + "maxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults", + "documentation": "

The maximum number of items to include in each page of a paginated response.

" + }, + "nextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken", + "documentation": "

The nextToken string that specifies which page of results to return in a paginated response.

" + } + } + }, + "ListSensitivityInspectionTemplatesResponse": { + "type": "structure", + "members": { + "nextToken": { + "shape": "__string", + "locationName": "nextToken", + "documentation": "

The string to use in a subsequent request to get the next page of results in a paginated response. This value is null if there are no additional pages.

" + }, + "sensitivityInspectionTemplates": { + "shape": "__listOfSensitivityInspectionTemplatesEntry", + "locationName": "sensitivityInspectionTemplates", + "documentation": "

An array that specifies the unique identifier and name of the sensitivity inspection template for the account.

" + } + } + }, "ListTagsForResourceRequest": { "type": "structure", "members": { @@ -5834,7 +7459,7 @@ "shape": "__string", "location": "uri", "locationName": "resourceArn", - "documentation": "

The Amazon Resource Name (ARN) of the classification job, custom data identifier, findings filter, or member account.

" + "documentation": "

The Amazon Resource Name (ARN) of the resource.

" } }, "required": [ @@ -5847,7 +7472,7 @@ "tags": { "shape": "TagMap", "locationName": "tags", - "documentation": "

A map of key-value pairs that identifies the tags (keys and values) that are associated with the resource.

" + "documentation": "

A map of key-value pairs that specifies which tags (keys and values) are associated with the resource.

" } } }, @@ -5923,6 +7548,11 @@ "locationName": "jobDetails", "documentation": "

Specifies whether any one-time or recurring classification jobs are configured to analyze objects in the bucket, and, if so, the details of the job that ran most recently.

" }, + "lastAutomatedDiscoveryTime": { + "shape": "__timestampIso8601", + "locationName": "lastAutomatedDiscoveryTime", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when Amazon Macie most recently performed automated sensitive data discovery for the bucket. This value is null if automated sensitive data discovery is currently disabled for your account.

" + }, "objectCount": { "shape": "__long", "locationName": "objectCount", @@ -5931,7 +7561,12 @@ "objectCountByEncryptionType": { "shape": "ObjectCountByEncryptionType", "locationName": "objectCountByEncryptionType", - "documentation": "

The total number of objects that are in the bucket, grouped by server-side encryption type. This includes a grouping that reports the total number of objects that aren't encrypted or use client-side encryption.

" + "documentation": "

The total number of objects in the bucket, grouped by server-side encryption type. This includes a grouping that reports the total number of objects that aren't encrypted or use client-side encryption.

" + }, + "sensitivityScore": { + "shape": "__integer", + "locationName": "sensitivityScore", + "documentation": "

The current sensitivity score for the bucket, ranging from\u00a0-1\u00a0(no analysis due to an error) to\u00a0100 (sensitive). This value is null if automated sensitive data discovery is currently disabled for your account.

" }, "sizeInBytes": { "shape": "__long", @@ -5954,7 +7589,7 @@ "documentation": "

The total storage size, in bytes, of the objects that Amazon Macie can't analyze in the bucket. These objects don't use a supported storage class or don't have a file name extension for a supported file or storage format.

" } }, - "documentation": "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. If an error occurs when Macie attempts to retrieve and process information about the bucket or the bucket's objects, the value for most of these properties is null. Exceptions are accountId and bucketName. To identify the cause of the error, refer to the errorCode and errorMessage values.

" + "documentation": "

Provides statistical data and other information about an S3 bucket that Amazon Macie monitors and analyzes for your account. If an error occurs when Macie attempts to retrieve and process information about the bucket or the bucket's objects, the value for most of these properties is null. Key exceptions are accountId and bucketName. To identify the cause of the error, refer to the errorCode and errorMessage values.

" }, "MatchingResource": { "type": "structure", @@ -6013,7 +7648,7 @@ "tags": { "shape": "TagMap", "locationName": "tags", - "documentation": "

A map of key-value pairs that identifies the tags (keys and values) that are associated with the account in Amazon Macie.

" + "documentation": "

A map of key-value pairs that specifies which tags (keys and values) are associated with the account in Amazon Macie.

" }, "updatedAt": { "shape": "__timestampIso8601", @@ -6034,6 +7669,11 @@ }, "documentation": "

Specifies a monthly recurrence pattern for running a classification job.

" }, + "NextToken": { + "type": "string", + "documentation": "

Specifies which page of results to return in a paginated response.

", + "pattern": "^.*$" + }, "ObjectCountByEncryptionType": { "type": "structure", "members": { @@ -6084,7 +7724,7 @@ "documentation": "

The total storage size (in bytes) or number of objects that Amazon Macie can't analyze because the objects use an unsupported storage class or don't have a file name extension for a supported file or storage format.

" } }, - "documentation": "

Provides information about the total storage size (in bytes) or number of objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse object, this data is aggregated for the buckets in the query results. If versioning is enabled for a bucket, total storage size values are based on the size of the latest version of each applicable object in the bucket.

" + "documentation": "

Provides information about the total storage size (in bytes) or number of objects that Amazon Macie can't analyze in one or more S3 buckets. In a BucketMetadata or MatchingBucket object, this data is for a specific bucket. In a GetBucketStatisticsResponse object, this data is aggregated for all the buckets in the query results. If versioning is enabled for a bucket, storage size values are based on the size of the latest version of each applicable object in the bucket.

" }, "Occurrences": { "type": "structure", @@ -6092,7 +7732,7 @@ "cells": { "shape": "Cells", "locationName": "cells", - "documentation": "

An array of objects, one for each occurrence of sensitive data in a Microsoft Excel workbook, CSV file, or TSV file. This value is null for all other types of files.

Each Cell object specifies a cell or field that contains the sensitive data.

" + "documentation": "

An array of objects, one for each occurrence of sensitive data in a Microsoft Excel workbook, CSV file, or TSV file. This value is null for all other types of files.

Each Cell object specifies a cell or field that contains the sensitive data.

" }, "lineRanges": { "shape": "Ranges", @@ -6107,7 +7747,7 @@ "pages": { "shape": "Pages", "locationName": "pages", - "documentation": "

An array of objects, one for each occurrence of sensitive data in an Adobe Portable Document Format file. This value is null for all other types of files.

Each Page object specifies a page that contains the sensitive data.

" + "documentation": "

An array of objects, one for each occurrence of sensitive data in an Adobe Portable Document Format file. This value is null for all other types of files.

Each Page object specifies a page that contains the sensitive data.

" }, "records": { "shape": "Records", @@ -6126,9 +7766,10 @@ }, "OriginType": { "type": "string", - "documentation": "

Specifies how Amazon Macie found the sensitive data that produced a finding. The only possible value is:

", + "documentation": "

Specifies how Amazon Macie found the sensitive data that produced a finding. Possible values are:

", "enum": [ - "SENSITIVE_DATA_DISCOVERY_JOB" + "SENSITIVE_DATA_DISCOVERY_JOB", + "AUTOMATED_SENSITIVE_DATA_DISCOVERY" ] }, "Page": { @@ -6321,6 +7962,82 @@ "httpStatusCode": 404 } }, + "ResourceProfileArtifact": { + "type": "structure", + "members": { + "arn": { + "shape": "__string", + "locationName": "arn", + "documentation": "

The Amazon Resource Name (ARN) of the object.

" + }, + "classificationResultStatus": { + "shape": "__string", + "locationName": "classificationResultStatus", + "documentation": "

The status of the analysis. Possible values are:

  • COMPLETE - Amazon Macie successfully completed its analysis of the object.

  • PARTIAL - Macie analyzed only a subset of data in the object. For example, the object is an archive file that contains files in an unsupported format.

  • SKIPPED - Macie wasn't able to analyze the object. For example, the object is a malformed file.

" + }, + "sensitive": { + "shape": "__boolean", + "locationName": "sensitive", + "documentation": "

Specifies whether Amazon Macie found sensitive data in the object.

" + } + }, + "documentation": "

Provides information about an S3 object that Amazon Macie selected for analysis while performing automated sensitive data discovery for an S3 bucket, and the status and results of the analysis. This information is available only if automated sensitive data discovery is currently enabled for your account.

", + "required": [ + "classificationResultStatus", + "arn" + ] + }, + "ResourceStatistics": { + "type": "structure", + "members": { + "totalBytesClassified": { + "shape": "__long", + "locationName": "totalBytesClassified", + "documentation": "

The total amount of data, in bytes, that Amazon Macie has analyzed in the bucket.

" + }, + "totalDetections": { + "shape": "__long", + "locationName": "totalDetections", + "documentation": "

The total number of occurrences of sensitive data that Amazon Macie has found in the bucket's objects. This includes occurrences that are currently suppressed by the sensitivity scoring settings for the bucket (totalDetectionsSuppressed).

" + }, + "totalDetectionsSuppressed": { + "shape": "__long", + "locationName": "totalDetectionsSuppressed", + "documentation": "

The total number of occurrences of sensitive data that are currently suppressed by the sensitivity scoring settings for the bucket. These represent occurrences of sensitive data that Amazon Macie found in the bucket's objects, but the occurrences were manually suppressed. By default, suppressed occurrences are excluded from the bucket's sensitivity score.

" + }, + "totalItemsClassified": { + "shape": "__long", + "locationName": "totalItemsClassified", + "documentation": "

The total number of objects that Amazon Macie has analyzed in the bucket.

" + }, + "totalItemsSensitive": { + "shape": "__long", + "locationName": "totalItemsSensitive", + "documentation": "

The total number of the bucket's objects that Amazon Macie has found sensitive data in.

" + }, + "totalItemsSkipped": { + "shape": "__long", + "locationName": "totalItemsSkipped", + "documentation": "

The total number of objects that Amazon Macie hasn't analyzed in the bucket due to an error or issue. For example, the object is a malformed file. This value includes objects that Macie hasn't analyzed for reasons reported by other statistics in the ResourceStatistics object.

" + }, + "totalItemsSkippedInvalidEncryption": { + "shape": "__long", + "locationName": "totalItemsSkippedInvalidEncryption", + "documentation": "

The total number of objects that Amazon Macie hasn't analyzed in the bucket because the objects are encrypted with a key that Macie isn't allowed to use.

" + }, + "totalItemsSkippedInvalidKms": { + "shape": "__long", + "locationName": "totalItemsSkippedInvalidKms", + "documentation": "

The total number of objects that Amazon Macie hasn't analyzed in the bucket because the objects are encrypted with an KMS key that was disabled or deleted.

" + }, + "totalItemsSkippedPermissionDenied": { + "shape": "__long", + "locationName": "totalItemsSkippedPermissionDenied", + "documentation": "

The total number of objects that Amazon Macie hasn't analyzed in the bucket because Macie isn't allowed to access the objects.

" + } + }, + "documentation": "

Provides statistical data for sensitive data discovery metrics that apply to an S3 bucket that Amazon Macie monitors and analyzes for your account. The statistics capture the results of automated sensitive data discovery activities that Macie has performed for the bucket. The data is available only if automated sensitive data discovery is currently enabled for your account.

" + }, "ResourcesAffected": { "type": "structure", "members": { @@ -6337,13 +8054,49 @@ }, "documentation": "

Provides information about the resources that a finding applies to.

" }, + "RevealConfiguration": { + "type": "structure", + "members": { + "kmsKeyId": { + "shape": "__stringMin1Max2048", + "locationName": "kmsKeyId", + "documentation": "

The Amazon Resource Name (ARN), ID, or alias of the KMS key to use to encrypt sensitive data that's retrieved. The key must be an existing, customer managed, symmetric encryption key that's in the same Amazon Web Services Region as the Amazon Macie account.

If this value specifies an alias, it must include the following prefix: alias/. If this value specifies a key that's owned by another Amazon Web Services account, it must specify the ARN of the key or the ARN of the key's alias.

" + }, + "status": { + "shape": "RevealStatus", + "locationName": "status", + "documentation": "

The status of the configuration for the Amazon Macie account. In a request, valid values are: ENABLED, enable the configuration for the account; and, DISABLED, disable the configuration for the account. In a response, possible values are: ENABLED, the configuration is currently enabled for the account; and, DISABLED, the configuration is currently disabled for the account.

" + } + }, + "documentation": "

Specifies the configuration settings for retrieving occurrences of sensitive data reported by findings, and the status of the configuration for an Amazon Macie account. When you enable the configuration for the first time, your request must specify an Key Management Service (KMS) key. Otherwise, an error occurs. Macie uses the specified key to encrypt the sensitive data that you retrieve.

", + "required": [ + "status" + ] + }, + "RevealRequestStatus": { + "type": "string", + "documentation": "

The status of a request to retrieve occurrences of sensitive data reported by a finding. Possible values are:

", + "enum": [ + "SUCCESS", + "PROCESSING", + "ERROR" + ] + }, + "RevealStatus": { + "type": "string", + "documentation": "

The status of the configuration for retrieving occurrences of sensitive data reported by findings. Valid values are:

", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, "S3Bucket": { "type": "structure", "members": { "allowsUnencryptedObjectUploads": { "shape": "AllowsUnencryptedObjectUploads", "locationName": "allowsUnencryptedObjectUploads", - "documentation": "

Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are uploaded to the bucket. Possible values are:

  • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include the x-amz-server-side-encryption header and the value for that header must be AES256 or aws:kms.

  • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include the x-amz-server-side-encryption header and it doesn't require the value for that header to be AES256 or aws:kms.

  • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of objects.

" + "documentation": "

Specifies whether the bucket policy for the bucket requires server-side encryption of objects when objects are uploaded to the bucket. Possible values are:

  • FALSE - The bucket policy requires server-side encryption of new objects. PutObject requests must include a valid server-side encryption header.

  • TRUE - The bucket doesn't have a bucket policy or it has a bucket policy that doesn't require server-side encryption of new objects. If a bucket policy exists, it doesn't require PutObject requests to include a valid server-side encryption header.

  • UNKNOWN - Amazon Macie can't determine whether the bucket policy requires server-side encryption of new objects.

Valid server-side encryption headers are: x-amz-server-side-encryption with a value of AES256 or aws:kms, and x-amz-server-side-encryption-customer-algorithm with a value of AES256.

" }, "arn": { "shape": "__string", @@ -6419,6 +8172,11 @@ "buckets" ] }, + "S3BucketName": { + "type": "string", + "documentation": "

The name of an S3 bucket.

", + "pattern": "^[A-Za-z0-9.\\-_]{3,255}$" + }, "S3BucketOwner": { "type": "structure", "members": { @@ -6435,6 +8193,68 @@ }, "documentation": "

Provides information about the Amazon Web Services account that owns an S3 bucket.

" }, + "S3ClassificationScope": { + "type": "structure", + "members": { + "excludes": { + "shape": "S3ClassificationScopeExclusion", + "locationName": "excludes", + "documentation": "

The S3 buckets that are excluded.

" + } + }, + "documentation": "

Specifies the S3 buckets that are excluded from automated sensitive data discovery for an Amazon Macie account.

", + "required": [ + "excludes" + ] + }, + "S3ClassificationScopeExclusion": { + "type": "structure", + "members": { + "bucketNames": { + "shape": "__listOfS3BucketName", + "locationName": "bucketNames", + "documentation": "

An array of strings, one for each S3 bucket that is excluded. Each string is the full name of an excluded bucket.

" + } + }, + "documentation": "

Specifies the names of the S3 buckets that are excluded from automated sensitive data discovery.

", + "required": [ + "bucketNames" + ] + }, + "S3ClassificationScopeExclusionUpdate": { + "type": "structure", + "members": { + "bucketNames": { + "shape": "__listOfS3BucketName", + "locationName": "bucketNames", + "documentation": "

Depending on the value specified for the update operation (ClassificationScopeUpdateOperation), an array of strings that: lists the names of buckets to add or remove from the list, or specifies a new set of bucket names that overwrites all existing names in the list. Each string must be the full name of an S3 bucket. Values are case sensitive.

" + }, + "operation": { + "shape": "ClassificationScopeUpdateOperation", + "locationName": "operation", + "documentation": "

Specifies how to apply the changes to the exclusion list. Valid values are:

  • ADD - Append the specified bucket names to the current list.

  • REMOVE - Remove the specified bucket names from the current list.

  • REPLACE - Overwrite the current list with the specified list of bucket names. If you specify this value, Amazon Macie removes all existing names from the list and adds all the specified names to the list.

" + } + }, + "documentation": "

Specifies S3 buckets to add or remove from the exclusion list defined by the classification scope for an Amazon Macie account.

", + "required": [ + "bucketNames", + "operation" + ] + }, + "S3ClassificationScopeUpdate": { + "type": "structure", + "members": { + "excludes": { + "shape": "S3ClassificationScopeExclusionUpdate", + "locationName": "excludes", + "documentation": "

The names of the S3 buckets to add or remove from the list.

" + } + }, + "documentation": "

Specifies changes to the list of S3 buckets that are excluded from automated sensitive data discovery for an Amazon Macie account.

", + "required": [ + "excludes" + ] + }, "S3Destination": { "type": "structure", "members": { @@ -6451,7 +8271,7 @@ "kmsKeyArn": { "shape": "__string", "locationName": "kmsKeyArn", - "documentation": "

The Amazon Resource Name (ARN) of the KMS key to use for encryption of the results. This must be the ARN of an existing, symmetric, customer managed KMS key that's in the same Amazon Web Services Region as the bucket.

" + "documentation": "

The Amazon Resource Name (ARN) of the customer managed KMS key to use for encryption of the results. This must be the ARN of an existing, symmetric encryption KMS key that's in the same Amazon Web Services Region as the bucket.

" } }, "documentation": "

Specifies an S3 bucket to store data classification results in, and the encryption settings to use when storing results in that bucket.

", @@ -6463,6 +8283,11 @@ "S3JobDefinition": { "type": "structure", "members": { + "bucketCriteria": { + "shape": "S3BucketCriteriaForJob", + "locationName": "bucketCriteria", + "documentation": "

The property- and tag-based conditions that determine which S3 buckets to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which buckets contain objects to analyze. A job's definition can contain a bucketCriteria object or a bucketDefinitions array, not both.

" + }, "bucketDefinitions": { "shape": "__listOfS3BucketDefinitionForJob", "locationName": "bucketDefinitions", @@ -6472,11 +8297,6 @@ "shape": "Scoping", "locationName": "scoping", "documentation": "

The property- and tag-based conditions that determine which S3 objects to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which objects to analyze.

" - }, - "bucketCriteria": { - "shape": "S3BucketCriteriaForJob", - "locationName": "bucketCriteria", - "documentation": "

The property- and tag-based conditions that determine which S3 buckets to include or exclude from the analysis. Each time the job runs, the job uses these criteria to determine which buckets contain objects to analyze. A job's definition can contain a bucketCriteria object or a bucketDefinitions array, not both.

" } }, "documentation": "

Specifies which S3 buckets contain the objects that a classification job analyzes, and the scope of that analysis. The bucket specification can be static (bucketDefinitions) or dynamic (bucketCriteria). If it's static, the job analyzes objects in the same predefined set of buckets each time the job runs. If it's dynamic, the job analyzes objects in any buckets that match the specified criteria each time the job starts to run.

" @@ -6547,6 +8367,26 @@ }, "documentation": "

Provides information about the S3 object that a finding applies to.

" }, + "S3WordsList": { + "type": "structure", + "members": { + "bucketName": { + "shape": "__stringMin3Max255PatternAZaZ093255", + "locationName": "bucketName", + "documentation": "

The full name of the S3 bucket that contains the object.

" + }, + "objectKey": { + "shape": "__stringMin1Max1024PatternSS", + "locationName": "objectKey", + "documentation": "

The full name (key) of the object.

" + } + }, + "documentation": "

Provides information about an S3 object that lists specific text to ignore.

", + "required": [ + "bucketName", + "objectKey" + ] + }, "ScopeFilterKey": { "type": "string", "documentation": "

The property to use in a condition that determines whether an S3 object is included or excluded from a classification job. Valid values are:

", @@ -6655,7 +8495,7 @@ "matchingResources": { "shape": "__listOfMatchingResource", "locationName": "matchingResources", - "documentation": "

An array of objects, one for each resource that meets the filter criteria specified in the request.

" + "documentation": "

An array of objects, one for each resource that matches the filter criteria specified in the request.

" }, "nextToken": { "shape": "__string", @@ -6811,6 +8651,94 @@ "CUSTOM_IDENTIFIER" ] }, + "SensitiveDataOccurrences": { + "type": "map", + "documentation": "

Specifies a type of sensitive data reported by a finding and provides occurrences of the specified type of sensitive data.

", + "key": { + "shape": "__string" + }, + "value": { + "shape": "__listOfDetectedDataDetails" + } + }, + "SensitivityAggregations": { + "type": "structure", + "members": { + "classifiableSizeInBytes": { + "shape": "__long", + "locationName": "classifiableSizeInBytes", + "documentation": "

The total storage size, in bytes, of all the objects that Amazon Macie can analyze in the buckets. These objects use a supported storage class and have a file name extension for a supported file or storage format.

If versioning is enabled for any of the buckets, this value is based on the size of the latest version of each applicable object in the buckets. This value doesn't reflect the storage size of all versions of all applicable objects in the buckets.

" + }, + "publiclyAccessibleCount": { + "shape": "__long", + "locationName": "publiclyAccessibleCount", + "documentation": "

The total number of buckets that are publicly accessible based on a combination of permissions settings for each bucket.

" + }, + "totalCount": { + "shape": "__long", + "locationName": "totalCount", + "documentation": "

The total number of buckets.

" + }, + "totalSizeInBytes": { + "shape": "__long", + "locationName": "totalSizeInBytes", + "documentation": "

The total storage size, in bytes, of the buckets.

If versioning is enabled for any of the buckets, this value is based on the size of the latest version of each object in the buckets. This value doesn't reflect the storage size of all versions of the objects in the buckets.

" + } + }, + "documentation": "

Provides aggregated statistical data for sensitive data discovery metrics that apply to S3 buckets. Each field contains aggregated data for all the buckets that have a sensitivity score (sensitivityScore) of a specified value or within a specified range (BucketStatisticsBySensitivity). If automated sensitive data discovery is currently disabled for your account, the value for each field is 0.

" + }, + "SensitivityInspectionTemplateExcludes": { + "type": "structure", + "members": { + "managedDataIdentifierIds": { + "shape": "__listOf__string", + "locationName": "managedDataIdentifierIds", + "documentation": "

An array of unique identifiers, one for each managed data identifier to exclude. To retrieve a list of valid values, use the ListManagedDataIdentifiers operation.

" + } + }, + "documentation": "

Specifies managed data identifiers to exclude (not use) when performing automated sensitive data discovery for an Amazon Macie account. For information about the managed data identifiers that Amazon Macie currently provides, see Using managed data identifiers in the Amazon Macie User Guide.

" + }, + "SensitivityInspectionTemplateId": { + "type": "string", + "documentation": "

The unique identifier for the sensitivity inspection template.

" + }, + "SensitivityInspectionTemplateIncludes": { + "type": "structure", + "members": { + "allowListIds": { + "shape": "__listOf__string", + "locationName": "allowListIds", + "documentation": "

An array of unique identifiers, one for each allow list to include.

" + }, + "customDataIdentifierIds": { + "shape": "__listOf__string", + "locationName": "customDataIdentifierIds", + "documentation": "

An array of unique identifiers, one for each custom data identifier to include.

" + }, + "managedDataIdentifierIds": { + "shape": "__listOf__string", + "locationName": "managedDataIdentifierIds", + "documentation": "

An array of unique identifiers, one for each managed data identifier to include.

Amazon Macie uses these managed data identifiers in addition to managed data identifiers that are subsequently released and recommended for automated sensitive data discovery. To retrieve a list of valid values for the managed data identifiers that are currently available, use the ListManagedDataIdentifiers operation.

" + } + }, + "documentation": "

Specifies the allow lists, custom data identifiers, and managed data identifiers to include (use) when performing automated sensitive data discovery for an Amazon Macie account. The configuration must specify at least one custom data identifier or managed data identifier. For information about the managed data identifiers that Amazon Macie currently provides, see Using managed data identifiers in the Amazon Macie User Guide.

" + }, + "SensitivityInspectionTemplatesEntry": { + "type": "structure", + "members": { + "id": { + "shape": "__string", + "locationName": "id", + "documentation": "

The unique identifier for the sensitivity inspection template for the account.

" + }, + "name": { + "shape": "__string", + "locationName": "name", + "documentation": "

The name of the sensitivity inspection template for the account.

" + } + }, + "documentation": "

Provides information about the sensitivity inspection template for an Amazon Macie account. Macie uses the template's settings when it performs automated sensitive data discovery for the account.

" + }, "ServerSideEncryption": { "type": "structure", "members": { @@ -7084,6 +9012,22 @@ "GLACIER" ] }, + "SuppressDataIdentifier": { + "type": "structure", + "members": { + "id": { + "shape": "__string", + "locationName": "id", + "documentation": "

The unique identifier for the custom data identifier or managed data identifier that detected the type of sensitive data to exclude or include in the score.

" + }, + "type": { + "shape": "DataIdentifierType", + "locationName": "type", + "documentation": "

The type of data identifier that detected the sensitive data. Possible values are: CUSTOM, for a custom data identifier; and, MANAGED, for a managed data identifier.

" + } + }, + "documentation": "

Specifies a custom data identifier or managed data identifier that detected a type of sensitive data to start excluding or including in an S3 bucket's sensitivity score.

" + }, "TagCriterionForJob": { "type": "structure", "members": { @@ -7118,7 +9062,7 @@ }, "TagMap": { "type": "map", - "documentation": "

A string-to-string map of key-value pairs that specifies the tags (keys and values) for a classification job, custom data identifier, findings filter, or member account.

", + "documentation": "

A string-to-string map of key-value pairs that specifies the tags (keys and values) for an Amazon Macie resource.

", "key": { "shape": "__string" }, @@ -7133,7 +9077,7 @@ "shape": "__string", "location": "uri", "locationName": "resourceArn", - "documentation": "

The Amazon Resource Name (ARN) of the classification job, custom data identifier, findings filter, or member account.

" + "documentation": "

The Amazon Resource Name (ARN) of the resource.

" }, "tags": { "shape": "TagMap", @@ -7210,12 +9154,12 @@ "keywords": { "shape": "__listOf__string", "locationName": "keywords", - "documentation": "

An array that lists specific character sequences (keywords), one of which must be within proximity (maximumMatchDistance) of the regular expression to match. The array can contain as many as 50 keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords aren't case sensitive.

" + "documentation": "

An array that lists specific character sequences (keywords), one of which must precede and be within proximity (maximumMatchDistance) of the regular expression to match. The array can contain as many as 50 keywords. Each keyword can contain 3-90 UTF-8 characters. Keywords aren't case sensitive.

" }, "maximumMatchDistance": { "shape": "__integer", "locationName": "maximumMatchDistance", - "documentation": "

The maximum number of characters that can exist between text that matches the regular expression and the character sequences specified by the keywords array. Amazon Macie includes or excludes a result based on the proximity of a keyword to text that matches the regular expression. The distance can be 1-300 characters. The default value is 50.

" + "documentation": "

The maximum number of characters that can exist between the end of at least one complete character sequence specified by the keywords array and the end of the text that matches the regex pattern. If a complete keyword precedes all the text that matches the pattern and the keyword is within the specified distance, Amazon Macie includes the result. The distance can be 1-300 characters. The default value is 50.

" }, "regex": { "shape": "__string", @@ -7266,6 +9210,11 @@ "PAST_30_DAYS" ] }, + "Timestamp": { + "type": "timestamp", + "documentation": "

Specifies a date and time in UTC and extended ISO 8601 format.

", + "timestampFormat": "iso8601" + }, "Type": { "type": "string", "enum": [ @@ -7274,12 +9223,41 @@ "aws:kms" ] }, + "UnavailabilityReasonCode": { + "type": "string", + "documentation": "

Specifies why occurrences of sensitive data can't be retrieved for a finding. Possible values are:

", + "enum": [ + "OBJECT_EXCEEDS_SIZE_QUOTA", + "UNSUPPORTED_OBJECT_TYPE", + "UNSUPPORTED_FINDING_TYPE", + "INVALID_CLASSIFICATION_RESULT", + "OBJECT_UNAVAILABLE" + ] + }, "Unit": { "type": "string", "enum": [ "TERABYTES" ] }, + "UnprocessableEntityException": { + "type": "structure", + "members": { + "message": { + "shape": "__string", + "locationName": "message", + "documentation": "

The type of error that occurred and prevented Amazon Macie from retrieving occurrences of sensitive data reported by the finding. Possible values are:

  • INVALID_CLASSIFICATION_RESULT - Amazon Macie can't verify the location of the sensitive data to retrieve. There isn't a corresponding sensitive data discovery result for the finding. Or the sensitive data discovery result specified by the ClassificationDetails.detailedResultsLocation field of the finding isn't available, is malformed or corrupted, or uses an unsupported storage format.

  • OBJECT_EXCEEDS_SIZE_QUOTA - The storage size of the affected S3 object exceeds the size quota for retrieving occurrences of sensitive data.

  • OBJECT_UNAVAILABLE - The affected S3 object isn't available. The object might have been renamed, moved, or deleted. Or the object was changed after Macie created the finding.

  • UNSUPPORTED_FINDING_TYPE - The specified finding isn't a sensitive data finding.

  • UNSUPPORTED_OBJECT_TYPE - The affected S3 object uses a file or storage format that Macie doesn't support for retrieving occurrences of sensitive data.

" + } + }, + "documentation": "

Provides information about an error that occurred due to an unprocessable entity.

", + "required": [ + "message" + ], + "exception": true, + "error": { + "httpStatusCode": 422 + } + }, "UnprocessedAccount": { "type": "structure", "members": { @@ -7308,13 +9286,13 @@ "shape": "__string", "location": "uri", "locationName": "resourceArn", - "documentation": "

The Amazon Resource Name (ARN) of the classification job, custom data identifier, findings filter, or member account.

" + "documentation": "

The Amazon Resource Name (ARN) of the resource.

" }, "tagKeys": { "shape": "__listOf__string", "location": "querystring", "locationName": "tagKeys", - "documentation": "

One or more tags (keys) to remove from the resource. In an HTTP request to remove multiple tags, append the tagKeys parameter and argument for each tag to remove, and separate them with an ampersand (&).

" + "documentation": "

One or more tags (keys) to remove from the resource. In an HTTP request to remove multiple tags, append the tagKeys parameter and argument for each tag to remove, separated by an ampersand (&).

" } }, "required": [ @@ -7326,6 +9304,69 @@ "type": "structure", "members": {} }, + "UpdateAllowListRequest": { + "type": "structure", + "members": { + "criteria": { + "shape": "AllowListCriteria", + "locationName": "criteria", + "documentation": "

The criteria that specify the text or text pattern to ignore. The criteria can be the location and name of an S3 object that lists specific text to ignore (s3WordsList), or a regular expression that defines a text pattern to ignore (regex).

You can change a list's underlying criteria, such as the name of the S3 object or the regular expression to use. However, you can't change the type from s3WordsList to regex or the other way around.

" + }, + "description": { + "shape": "__stringMin1Max512PatternSS", + "locationName": "description", + "documentation": "

A custom description of the allow list. The description can contain as many as 512 characters.

" + }, + "id": { + "shape": "__string", + "location": "uri", + "locationName": "id", + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" + }, + "name": { + "shape": "__stringMin1Max128Pattern", + "locationName": "name", + "documentation": "

A custom name for the allow list. The name can contain as many as 128 characters.

" + } + }, + "required": [ + "id", + "criteria", + "name" + ] + }, + "UpdateAllowListResponse": { + "type": "structure", + "members": { + "arn": { + "shape": "__stringMin71Max89PatternArnAwsAwsCnAwsUsGovMacie2AZ19920D12AllowListAZ0922", + "locationName": "arn", + "documentation": "

The Amazon Resource Name (ARN) of the allow list.

" + }, + "id": { + "shape": "__stringMin22Max22PatternAZ0922", + "locationName": "id", + "documentation": "

The unique identifier for the allow list.

" + } + } + }, + "UpdateAutomatedDiscoveryConfigurationRequest": { + "type": "structure", + "members": { + "status": { + "shape": "AutomatedDiscoveryStatus", + "locationName": "status", + "documentation": "

The new status of automated sensitive data discovery for the account. Valid values are: ENABLED, start or resume automated sensitive data discovery activities for the account; and, DISABLED, stop performing automated sensitive data discovery activities for the account.

When you enable automated sensitive data discovery for the first time, Amazon Macie uses default configuration settings to determine which data sources to analyze and which managed data identifiers to use. To change these settings, use the UpdateClassificationScope and UpdateSensitivityInspectionTemplate operations, respectively. If you change the settings and subsequently disable the configuration, Amazon Macie retains your changes.

" + } + }, + "required": [ + "status" + ] + }, + "UpdateAutomatedDiscoveryConfigurationResponse": { + "type": "structure", + "members": {} + }, "UpdateClassificationJobRequest": { "type": "structure", "members": { @@ -7350,13 +9391,42 @@ "type": "structure", "members": {} }, + "UpdateClassificationScopeRequest": { + "type": "structure", + "members": { + "id": { + "shape": "__string", + "location": "uri", + "locationName": "id", + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" + }, + "s3": { + "shape": "S3ClassificationScopeUpdate", + "locationName": "s3", + "documentation": "

The S3 buckets to add or remove from the exclusion list defined by the classification scope.

" + } + }, + "required": [ + "id" + ] + }, + "UpdateClassificationScopeResponse": { + "type": "structure", + "members": {} + }, "UpdateFindingsFilterRequest": { "type": "structure", "members": { "action": { "shape": "FindingsFilterAction", "locationName": "action", - "documentation": "

The action to perform on findings that meet the filter criteria (findingCriteria). Valid values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.

" + "documentation": "

The action to perform on findings that match the filter criteria (findingCriteria). Valid values are: ARCHIVE, suppress (automatically archive) the findings; and, NOOP, don't perform any action on the findings.

" + }, + "clientToken": { + "shape": "__string", + "locationName": "clientToken", + "documentation": "

A unique, case-sensitive token that you provide to ensure the idempotency of the request.

", + "idempotencyToken": true }, "description": { "shape": "__string", @@ -7372,7 +9442,7 @@ "shape": "__string", "location": "uri", "locationName": "id", - "documentation": "

The unique identifier for the Amazon Macie resource or account that the request applies to.

" + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" }, "name": { "shape": "__string", @@ -7383,12 +9453,6 @@ "shape": "__integer", "locationName": "position", "documentation": "

The position of the filter in the list of saved filters on the Amazon Macie console. This value also determines the order in which the filter is applied to findings, relative to other filters that are also applied to the findings.

" - }, - "clientToken": { - "shape": "__string", - "locationName": "clientToken", - "documentation": "

A unique, case-sensitive token that you provide to ensure the idempotency of the request.

", - "idempotencyToken": true } }, "required": [ @@ -7416,7 +9480,7 @@ "findingPublishingFrequency": { "shape": "FindingPublishingFrequency", "locationName": "findingPublishingFrequency", - "documentation": "

Specifies how often to publish updates to policy findings for the account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly called Amazon CloudWatch Events).

" + "documentation": "

Specifies how often to publish updates to policy findings for the account. This includes publishing updates to Security Hub and Amazon EventBridge (formerly Amazon CloudWatch Events).

" }, "status": { "shape": "MacieStatus", @@ -7436,7 +9500,7 @@ "shape": "__string", "location": "uri", "locationName": "id", - "documentation": "

The unique identifier for the Amazon Macie resource or account that the request applies to.

" + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" }, "status": { "shape": "MacieStatus", @@ -7470,6 +9534,108 @@ "type": "structure", "members": {} }, + "UpdateResourceProfileDetectionsRequest": { + "type": "structure", + "members": { + "resourceArn": { + "shape": "__string", + "location": "querystring", + "locationName": "resourceArn", + "documentation": "

The Amazon Resource Name (ARN) of the S3 bucket that the request applies to.

" + }, + "suppressDataIdentifiers": { + "shape": "__listOfSuppressDataIdentifier", + "locationName": "suppressDataIdentifiers", + "documentation": "

An array of objects, one for each custom data identifier or managed data identifier that detected the type of sensitive data to start excluding or including in the bucket's score. To start including all sensitive data types in the score, don't specify any values for this array.

" + } + }, + "required": [ + "resourceArn" + ] + }, + "UpdateResourceProfileDetectionsResponse": { + "type": "structure", + "members": {} + }, + "UpdateResourceProfileRequest": { + "type": "structure", + "members": { + "resourceArn": { + "shape": "__string", + "location": "querystring", + "locationName": "resourceArn", + "documentation": "

The Amazon Resource Name (ARN) of the S3 bucket that the request applies to.

" + }, + "sensitivityScoreOverride": { + "shape": "__integer", + "locationName": "sensitivityScoreOverride", + "documentation": "

The new sensitivity score for the bucket. Valid values are: 100, assign the maximum score and apply the Sensitive label to the bucket; and, null (empty), assign a score that Amazon Macie calculates automatically after you submit the request.

" + } + }, + "required": [ + "resourceArn" + ] + }, + "UpdateResourceProfileResponse": { + "type": "structure", + "members": {} + }, + "UpdateRevealConfigurationRequest": { + "type": "structure", + "members": { + "configuration": { + "shape": "RevealConfiguration", + "locationName": "configuration", + "documentation": "

The new configuration settings and the status of the configuration for the account.

" + } + }, + "required": [ + "configuration" + ] + }, + "UpdateRevealConfigurationResponse": { + "type": "structure", + "members": { + "configuration": { + "shape": "RevealConfiguration", + "locationName": "configuration", + "documentation": "

The new configuration settings and the status of the configuration for the account.

" + } + } + }, + "UpdateSensitivityInspectionTemplateRequest": { + "type": "structure", + "members": { + "description": { + "shape": "__string", + "locationName": "description", + "documentation": "

A custom description of the template.

" + }, + "excludes": { + "shape": "SensitivityInspectionTemplateExcludes", + "locationName": "excludes", + "documentation": "

The managed data identifiers to explicitly exclude (not use) when analyzing data.

To exclude an allow list or custom data identifier that's currently included by the template, update the values for the SensitivityInspectionTemplateIncludes.allowListIds and SensitivityInspectionTemplateIncludes.customDataIdentifierIds properties, respectively.

" + }, + "id": { + "shape": "__string", + "location": "uri", + "locationName": "id", + "documentation": "

The unique identifier for the Amazon Macie resource that the request applies to.

" + }, + "includes": { + "shape": "SensitivityInspectionTemplateIncludes", + "locationName": "includes", + "documentation": "

The allow lists, custom data identifiers, and managed data identifiers to include (use) when analyzing data.

" + } + }, + "required": [ + "id" + ] + }, + "UpdateSensitivityInspectionTemplateResponse": { + "type": "structure", + "members": {} + }, "UsageByAccount": { "type": "structure", "members": { @@ -7491,7 +9657,7 @@ "type": { "shape": "UsageType", "locationName": "type", - "documentation": "

The name of the metric. Possible values are: DATA_INVENTORY_EVALUATION, for monitoring S3 buckets; and, SENSITIVE_DATA_DISCOVERY, for analyzing S3 objects to detect sensitive data.

" + "documentation": "

The name of the metric. Possible values are: AUTOMATED_OBJECT_MONITORING, to monitor S3 objects for automated sensitive data discovery; AUTOMATED_SENSITIVE_DATA_DISCOVERY, to analyze S3 objects for automated sensitive data discovery; DATA_INVENTORY_EVALUATION, to monitor S3 buckets; and, SENSITIVE_DATA_DISCOVERY, to run classification jobs.

" } }, "documentation": "

Provides data for a specific usage metric and the corresponding quota for an Amazon Macie account.

" @@ -7504,10 +9670,15 @@ "locationName": "accountId", "documentation": "

The unique identifier for the Amazon Web Services account that the data applies to.

" }, + "automatedDiscoveryFreeTrialStartDate": { + "shape": "__timestampIso8601", + "locationName": "automatedDiscoveryFreeTrialStartDate", + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the free trial of automated sensitive data discovery started for the account. If the account is a member account in an organization, this value is the same as the value for the organization's Amazon Macie administrator account.

" + }, "freeTrialStartDate": { "shape": "__timestampIso8601", "locationName": "freeTrialStartDate", - "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the free trial started for the account.

" + "documentation": "

The date and time, in UTC and extended ISO 8601 format, when the Amazon Macie free trial started for the account.

" }, "usage": { "shape": "__listOfUsageByAccount", @@ -7533,7 +9704,7 @@ "values": { "shape": "__listOf__string", "locationName": "values", - "documentation": "

An array that lists values to use in the condition, based on the value for the field specified by the key property. If the value for the key property is accountId, this array can specify multiple values. Otherwise, this array can specify only one value.

Valid values for each supported field are:

  • accountId - The unique identifier for an Amazon Web Services account.

  • freeTrialStartDate - The date and time, in UTC and extended ISO 8601 format, when the free trial started for an account.

  • serviceLimit - A Boolean (true or false) value that indicates whether an account has reached its monthly quota.

  • total - A string that represents the current estimated cost for an account.

" + "documentation": "

An array that lists values to use in the condition, based on the value for the field specified by the key property. If the value for the key property is accountId, this array can specify multiple values. Otherwise, this array can specify only one value.

Valid values for each supported field are:

  • accountId - The unique identifier for an Amazon Web Services account.

  • freeTrialStartDate - The date and time, in UTC and extended ISO 8601 format, when the Amazon Macie free trial started for an account.

  • serviceLimit - A Boolean (true or false) value that indicates whether an account has reached its monthly quota.

  • total - A string that represents the current estimated cost for an account.

" } }, "documentation": "

Specifies a condition for filtering the results of a query for quota and usage data for one or more Amazon Macie accounts.

" @@ -7603,7 +9774,7 @@ "type": { "shape": "UsageType", "locationName": "type", - "documentation": "

The name of the metric. Possible values are: DATA_INVENTORY_EVALUATION, for monitoring S3 buckets; and, SENSITIVE_DATA_DISCOVERY, for analyzing S3 objects to detect sensitive data.

" + "documentation": "

The name of the metric. Possible values are: AUTOMATED_OBJECT_MONITORING, to monitor S3 objects for automated sensitive data discovery; AUTOMATED_SENSITIVE_DATA_DISCOVERY, to analyze S3 objects for automated sensitive data discovery; DATA_INVENTORY_EVALUATION, to monitor S3 buckets; and, SENSITIVE_DATA_DISCOVERY, to run classification jobs.

" } }, "documentation": "

Provides aggregated data for an Amazon Macie usage metric. The value for the metric reports estimated usage data for an account for the preceding 30 days or the current calendar month to date, depending on the time period (timeRange) specified in the request.

" @@ -7613,7 +9784,9 @@ "documentation": "

The name of an Amazon Macie usage metric for an account. Possible values are:

", "enum": [ "DATA_INVENTORY_EVALUATION", - "SENSITIVE_DATA_DISCOVERY" + "SENSITIVE_DATA_DISCOVERY", + "AUTOMATED_SENSITIVE_DATA_DISCOVERY", + "AUTOMATED_OBJECT_MONITORING" ] }, "UserIdentity": { @@ -7752,6 +9925,12 @@ "shape": "AdminAccount" } }, + "__listOfAllowListSummary": { + "type": "list", + "member": { + "shape": "AllowListSummary" + } + }, "__listOfBatchGetCustomDataIdentifierSummary": { "type": "list", "member": { @@ -7764,6 +9943,12 @@ "shape": "BucketMetadata" } }, + "__listOfClassificationScopeSummary": { + "type": "list", + "member": { + "shape": "ClassificationScopeSummary" + } + }, "__listOfCriteriaForJob": { "type": "list", "member": { @@ -7776,6 +9961,18 @@ "shape": "CustomDataIdentifierSummary" } }, + "__listOfDetectedDataDetails": { + "type": "list", + "member": { + "shape": "DetectedDataDetails" + } + }, + "__listOfDetection": { + "type": "list", + "member": { + "shape": "Detection" + } + }, "__listOfFinding": { "type": "list", "member": { @@ -7848,12 +10045,24 @@ "shape": "Member" } }, + "__listOfResourceProfileArtifact": { + "type": "list", + "member": { + "shape": "ResourceProfileArtifact" + } + }, "__listOfS3BucketDefinitionForJob": { "type": "list", "member": { "shape": "S3BucketDefinitionForJob" } }, + "__listOfS3BucketName": { + "type": "list", + "member": { + "shape": "S3BucketName" + } + }, "__listOfSearchResourcesCriteria": { "type": "list", "member": { @@ -7866,6 +10075,18 @@ "shape": "SearchResourcesTagCriterionPair" } }, + "__listOfSensitivityInspectionTemplatesEntry": { + "type": "list", + "member": { + "shape": "SensitivityInspectionTemplatesEntry" + } + }, + "__listOfSuppressDataIdentifier": { + "type": "list", + "member": { + "shape": "SuppressDataIdentifier" + } + }, "__listOfTagCriterionPairForJob": { "type": "list", "member": { @@ -7878,6 +10099,13 @@ "shape": "TagValuePair" } }, + "__listOfUnavailabilityReasonCode": { + "type": "list", + "min": 0, + "member": { + "shape": "UnavailabilityReasonCode" + } + }, "__listOfUnprocessedAccount": { "type": "list", "member": { @@ -7920,6 +10148,52 @@ "__string": { "type": "string" }, + "__stringMin1Max1024PatternSS": { + "type": "string", + "min": 1, + "max": 1024, + "pattern": "^[\\s\\S]+$" + }, + "__stringMin1Max128": { + "type": "string", + "min": 1, + "max": 128 + }, + "__stringMin1Max128Pattern": { + "type": "string", + "min": 1, + "max": 128, + "pattern": "^.+$" + }, + "__stringMin1Max2048": { + "type": "string", + "min": 1, + "max": 2048 + }, + "__stringMin1Max512PatternSS": { + "type": "string", + "min": 1, + "max": 512, + "pattern": "^[\\s\\S]+$" + }, + "__stringMin22Max22PatternAZ0922": { + "type": "string", + "min": 22, + "max": 22, + "pattern": "^[a-z0-9]{22}$" + }, + "__stringMin3Max255PatternAZaZ093255": { + "type": "string", + "min": 3, + "max": 255, + "pattern": "^[A-Za-z0-9.\\-_]{3,255}$" + }, + "__stringMin71Max89PatternArnAwsAwsCnAwsUsGovMacie2AZ19920D12AllowListAZ0922": { + "type": "string", + "min": 71, + "max": 89, + "pattern": "^arn:(aws|aws-cn|aws-us-gov):macie2:[a-z1-9-]{9,20}:\\d{12}:allow-list\\/[a-z0-9]{22}$" + }, "__timestampIso8601": { "type": "timestamp", "timestampFormat": "iso8601" @@ -7929,5 +10203,5 @@ "timestampFormat": "unixTimestamp" } }, - "documentation": "

Amazon Macie is a fully managed data security and data privacy service that uses machine learning and pattern matching to discover and protect your sensitive data in AWS. Macie automates the discovery of sensitive data, such as PII and intellectual property, to provide you with insight into the data that your organization stores in AWS. Macie also provides an inventory of your Amazon S3 buckets, which it continually monitors for you. If Macie detects sensitive data or potential data access issues, it generates detailed findings for you to review and act upon as necessary.

" -} + "documentation": "

Amazon Macie

" +} \ No newline at end of file diff --git a/botocore/data/macie2/2020-01-01/waiters-2.json b/botocore/data/macie2/2020-01-01/waiters-2.json new file mode 100644 index 00000000..12c4a4a8 --- /dev/null +++ b/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/botocore/data/managedblockchain/2018-09-24/endpoint-rule-set-1.json b/botocore/data/managedblockchain/2018-09-24/endpoint-rule-set-1.json new file mode 100644 index 00000000..08b19332 --- /dev/null +++ b/botocore/data/managedblockchain/2018-09-24/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/managedblockchain/2018-09-24/examples-1.json b/botocore/data/managedblockchain/2018-09-24/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/managedblockchain/2018-09-24/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/managedblockchain/2018-09-24/paginators-1.json b/botocore/data/managedblockchain/2018-09-24/paginators-1.json index ea142457..8d30a03f 100644 --- a/botocore/data/managedblockchain/2018-09-24/paginators-1.json +++ b/botocore/data/managedblockchain/2018-09-24/paginators-1.json @@ -1,3 +1,10 @@ { - "pagination": {} + "pagination": { + "ListAccessors": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Accessors" + } + } } diff --git a/botocore/data/managedblockchain/2018-09-24/service-2.json b/botocore/data/managedblockchain/2018-09-24/service-2.json index 3615ab92..f401ee8a 100644 --- a/botocore/data/managedblockchain/2018-09-24/service-2.json +++ b/botocore/data/managedblockchain/2018-09-24/service-2.json @@ -13,6 +13,24 @@ "uid":"managedblockchain-2018-09-24" }, "operations":{ + "CreateAccessor":{ + "name":"CreateAccessor", + "http":{ + "method":"POST", + "requestUri":"/accessors" + }, + "input":{"shape":"CreateAccessorInput"}, + "output":{"shape":"CreateAccessorOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"InternalServiceErrorException"} + ], + "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Creates a new accessor for use with Managed Blockchain Ethereum nodes. An accessor object is a container that has the information required for token based access to your Ethereum nodes.

" + }, "CreateMember":{ "name":"CreateMember", "http":{ @@ -93,6 +111,23 @@ ], "documentation":"

Creates a proposal for a change to the network that other members of the network can vote on, for example, a proposal to add a new member to the network. Any member can create a proposal.

Applies only to Hyperledger Fabric.

" }, + "DeleteAccessor":{ + "name":"DeleteAccessor", + "http":{ + "method":"DELETE", + "requestUri":"/accessors/{AccessorId}" + }, + "input":{"shape":"DeleteAccessorInput"}, + "output":{"shape":"DeleteAccessorOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceErrorException"} + ], + "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Deletes an accessor that your Amazon Web Services account owns. An accessor object is a container that has the information required for token based access to your Ethereum nodes including, the BILLING_TOKEN. After an accessor is deleted, the status of the accessor changes from AVAILABLE to PENDING_DELETION. An accessor in the PENDING_DELETION state can’t be used for new WebSocket requests or HTTP requests. However, WebSocket connections that were initiated while the accessor was in the AVAILABLE state remain open until they expire (up to 2 hours).

" + }, "DeleteMember":{ "name":"DeleteMember", "http":{ @@ -109,7 +144,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

Deletes a member. Deleting a member removes the member and all associated resources from the network. DeleteMember can only be called for a specified MemberId if the principal performing the action is associated with the AWS account that owns the member. In all other cases, the DeleteMember action is carried out as the result of an approved proposal to remove a member. If MemberId is the last member in a network specified by the last AWS account, the network is deleted also.

Applies only to Hyperledger Fabric.

" + "documentation":"

Deletes a member. Deleting a member removes the member and all associated resources from the network. DeleteMember can only be called for a specified MemberId if the principal performing the action is associated with the Amazon Web Services account that owns the member. In all other cases, the DeleteMember action is carried out as the result of an approved proposal to remove a member. If MemberId is the last member in a network specified by the last Amazon Web Services account, the network is deleted also.

Applies only to Hyperledger Fabric.

" }, "DeleteNode":{ "name":"DeleteNode", @@ -127,7 +162,24 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

Deletes a node that your AWS account owns. All data on the node is lost and cannot be recovered.

Applies to Hyperledger Fabric and Ethereum.

" + "documentation":"

Deletes a node that your Amazon Web Services account owns. All data on the node is lost and cannot be recovered.

Applies to Hyperledger Fabric and Ethereum.

" + }, + "GetAccessor":{ + "name":"GetAccessor", + "http":{ + "method":"GET", + "requestUri":"/accessors/{AccessorId}" + }, + "input":{"shape":"GetAccessorInput"}, + "output":{"shape":"GetAccessorOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceErrorException"} + ], + "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Returns detailed information about an accessor. An accessor object is a container that has the information required for token based access to your Ethereum nodes.

" }, "GetMember":{ "name":"GetMember", @@ -197,6 +249,22 @@ ], "documentation":"

Returns detailed information about a proposal.

Applies only to Hyperledger Fabric.

" }, + "ListAccessors":{ + "name":"ListAccessors", + "http":{ + "method":"GET", + "requestUri":"/accessors" + }, + "input":{"shape":"ListAccessorsInput"}, + "output":{"shape":"ListAccessorsOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceErrorException"} + ], + "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Returns a list of the accessors and their properties. Accessor objects are containers that have the information required for token based access to your Ethereum nodes.

" + }, "ListInvitations":{ "name":"ListInvitations", "http":{ @@ -213,7 +281,7 @@ {"shape":"ResourceLimitExceededException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

Returns a list of all invitations for the current AWS account.

Applies only to Hyperledger Fabric.

" + "documentation":"

Returns a list of all invitations for the current Amazon Web Services account.

Applies only to Hyperledger Fabric.

" }, "ListMembers":{ "name":"ListMembers", @@ -245,7 +313,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

Returns information about the networks in which the current AWS account participates.

Applies to Hyperledger Fabric and Ethereum.

" + "documentation":"

Returns information about the networks in which the current Amazon Web Services account participates.

Applies to Hyperledger Fabric and Ethereum.

" }, "ListNodes":{ "name":"ListNodes", @@ -328,7 +396,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

Rejects an invitation to join a network. This action can be called by a principal in an AWS account that has received an invitation to create a member and join a network.

Applies only to Hyperledger Fabric.

" + "documentation":"

Rejects an invitation to join a network. This action can be called by a principal in an Amazon Web Services account that has received an invitation to create a member and join a network.

Applies only to Hyperledger Fabric.

" }, "TagResource":{ "name":"TagResource", @@ -413,7 +481,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServiceErrorException"} ], - "documentation":"

Casts a vote for a specified ProposalId on behalf of a member. The member to vote as, specified by VoterMemberId, must be in the same AWS account as the principal that calls the action.

Applies only to Hyperledger Fabric.

" + "documentation":"

Casts a vote for a specified ProposalId on behalf of a member. The member to vote as, specified by VoterMemberId, must be in the same Amazon Web Services account as the principal that calls the action.

Applies only to Hyperledger Fabric.

" } }, "shapes":{ @@ -422,10 +490,93 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

You do not have sufficient access to perform this action.

", + "documentation":"

You don't have sufficient access to perform this action.

", "error":{"httpStatusCode":403}, "exception":true }, + "Accessor":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ResourceIdString", + "documentation":"

The unique identifier of the accessor.

" + }, + "Type":{ + "shape":"AccessorType", + "documentation":"

The type of the accessor.

Currently accessor type is restricted to BILLING_TOKEN.

" + }, + "BillingToken":{ + "shape":"AccessorBillingTokenString", + "documentation":"

The billing token is a property of the accessor. Use this token to make Ethereum API calls to your Ethereum node. The billing token is used to track your accessor object for billing Ethereum API requests made to your Ethereum nodes.

" + }, + "Status":{ + "shape":"AccessorStatus", + "documentation":"

The current status of the accessor.

" + }, + "CreationDate":{ + "shape":"Timestamp", + "documentation":"

The creation date and time of the accessor.

" + }, + "Arn":{ + "shape":"ArnString", + "documentation":"

The Amazon Resource Name (ARN) of the accessor. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + } + }, + "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

The properties of the Accessor.

" + }, + "AccessorBillingTokenString":{ + "type":"string", + "max":42, + "min":42 + }, + "AccessorListMaxResults":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "AccessorStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "PENDING_DELETION", + "DELETED" + ] + }, + "AccessorSummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ResourceIdString", + "documentation":"

The unique identifier of the accessor.

" + }, + "Type":{ + "shape":"AccessorType", + "documentation":"

The type of the accessor.

Currently accessor type is restricted to BILLING_TOKEN.

" + }, + "Status":{ + "shape":"AccessorStatus", + "documentation":"

The current status of the accessor.

" + }, + "CreationDate":{ + "shape":"Timestamp", + "documentation":"

The creation date and time of the accessor.

" + }, + "Arn":{ + "shape":"ArnString", + "documentation":"

The Amazon Resource Name (ARN) of the accessor. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + } + }, + "documentation":"

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

A summary of accessor properties.

" + }, + "AccessorSummaryList":{ + "type":"list", + "member":{"shape":"AccessorSummary"} + }, + "AccessorType":{ + "type":"string", + "enum":["BILLING_TOKEN"] + }, "ApprovalThresholdPolicy":{ "type":"structure", "members":{ @@ -435,7 +586,7 @@ }, "ProposalDurationInHours":{ "shape":"ProposalDurationInt", - "documentation":"

The duration from the time that a proposal is created until it expires. If members cast neither the required number of YES votes to approve the proposal nor the number of NO votes required to reject it before the duration expires, the proposal is EXPIRED and ProposalActions are not carried out.

" + "documentation":"

The duration from the time that a proposal is created until it expires. If members cast neither the required number of YES votes to approve the proposal nor the number of NO votes required to reject it before the duration expires, the proposal is EXPIRED and ProposalActions aren't carried out.

" }, "ThresholdComparator":{ "shape":"ThresholdComparator", @@ -456,6 +607,37 @@ "max":64, "min":1 }, + "CreateAccessorInput":{ + "type":"structure", + "required":[ + "ClientRequestToken", + "AccessorType" + ], + "members":{ + "ClientRequestToken":{ + "shape":"ClientRequestTokenString", + "documentation":"

This is a unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than once. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the Amazon Web Services CLI.

", + "idempotencyToken":true + }, + "AccessorType":{ + "shape":"AccessorType", + "documentation":"

The type of accessor.

Currently accessor type is restricted to BILLING_TOKEN.

" + } + } + }, + "CreateAccessorOutput":{ + "type":"structure", + "members":{ + "AccessorId":{ + "shape":"ResourceIdString", + "documentation":"

The unique identifier of the accessor.

" + }, + "BillingToken":{ + "shape":"AccessorBillingTokenString", + "documentation":"

The billing token is a property of the Accessor. Use this token to make Ethereum API calls to your Ethereum node. The billing token is used to track your accessor object for billing Ethereum API requests made to your Ethereum nodes.

" + } + } + }, "CreateMemberInput":{ "type":"structure", "required":[ @@ -467,7 +649,7 @@ "members":{ "ClientRequestToken":{ "shape":"ClientRequestTokenString", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the CLI.

", "idempotencyToken":true }, "InvitationId":{ @@ -508,7 +690,7 @@ "members":{ "ClientRequestToken":{ "shape":"ClientRequestTokenString", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.

", + "documentation":"

This is a unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than once. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the Amazon Web Services CLI.

", "idempotencyToken":true }, "Name":{ @@ -568,12 +750,12 @@ "members":{ "ClientRequestToken":{ "shape":"ClientRequestTokenString", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the CLI.

", "idempotencyToken":true }, "NetworkId":{ "shape":"ResourceIdString", - "documentation":"

The unique identifier of the network for the node.

Ethereum public networks have the following NetworkIds:

  • n-ethereum-mainnet

  • n-ethereum-rinkeby

  • n-ethereum-ropsten

", + "documentation":"

The unique identifier of the network for the node.

Ethereum public networks have the following NetworkIds:

  • n-ethereum-mainnet

  • n-ethereum-goerli

  • n-ethereum-rinkeby

  • n-ethereum-ropsten

", "location":"uri", "locationName":"networkId" }, @@ -611,7 +793,7 @@ "members":{ "ClientRequestToken":{ "shape":"ClientRequestTokenString", - "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.

", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the CLI.

", "idempotencyToken":true }, "NetworkId":{ @@ -622,7 +804,7 @@ }, "MemberId":{ "shape":"ResourceIdString", - "documentation":"

The unique identifier of the member that is creating the proposal. This identifier is especially useful for identifying the member making the proposal when multiple members exist in a single AWS account.

" + "documentation":"

The unique identifier of the member that is creating the proposal. This identifier is especially useful for identifying the member making the proposal when multiple members exist in a single Amazon Web Services account.

" }, "Actions":{ "shape":"ProposalActions", @@ -647,6 +829,23 @@ } } }, + "DeleteAccessorInput":{ + "type":"structure", + "required":["AccessorId"], + "members":{ + "AccessorId":{ + "shape":"ResourceIdString", + "documentation":"

The unique identifier of the accessor.

", + "location":"uri", + "locationName":"AccessorId" + } + } + }, + "DeleteAccessorOutput":{ + "type":"structure", + "members":{ + } + }, "DeleteMemberInput":{ "type":"structure", "required":[ @@ -682,7 +881,7 @@ "members":{ "NetworkId":{ "shape":"ResourceIdString", - "documentation":"

The unique identifier of the network that the node is on.

Ethereum public networks have the following NetworkIds:

  • n-ethereum-mainnet

  • n-ethereum-rinkeby

  • n-ethereum-ropsten

", + "documentation":"

The unique identifier of the network that the node is on.

Ethereum public networks have the following NetworkIds:

  • n-ethereum-mainnet

  • n-ethereum-goerli

  • n-ethereum-rinkeby

  • n-ethereum-ropsten

", "location":"uri", "locationName":"networkId" }, @@ -733,6 +932,27 @@ "max":8, "min":1 }, + "GetAccessorInput":{ + "type":"structure", + "required":["AccessorId"], + "members":{ + "AccessorId":{ + "shape":"ResourceIdString", + "documentation":"

The unique identifier of the accessor.

", + "location":"uri", + "locationName":"AccessorId" + } + } + }, + "GetAccessorOutput":{ + "type":"structure", + "members":{ + "Accessor":{ + "shape":"Accessor", + "documentation":"

The properties of the accessor.

" + } + } + }, "GetMemberInput":{ "type":"structure", "required":[ @@ -901,15 +1121,15 @@ }, "Status":{ "shape":"InvitationStatus", - "documentation":"

The status of the invitation:

  • PENDING - The invitee has not created a member to join the network, and the invitation has not yet expired.

  • ACCEPTING - The invitee has begun creating a member, and creation has not yet completed.

  • ACCEPTED - The invitee created a member and joined the network using the InvitationID.

  • REJECTED - The invitee rejected the invitation.

  • EXPIRED - The invitee neither created a member nor rejected the invitation before the ExpirationDate.

" + "documentation":"

The status of the invitation:

  • PENDING - The invitee hasn't created a member to join the network, and the invitation hasn't yet expired.

  • ACCEPTING - The invitee has begun creating a member, and creation hasn't yet completed.

  • ACCEPTED - The invitee created a member and joined the network using the InvitationID.

  • REJECTED - The invitee rejected the invitation.

  • EXPIRED - The invitee neither created a member nor rejected the invitation before the ExpirationDate.

" }, "NetworkSummary":{"shape":"NetworkSummary"}, "Arn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the invitation. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the invitation. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } }, - "documentation":"

An invitation to an AWS account to create a member and join the network.

Applies only to Hyperledger Fabric.

" + "documentation":"

An invitation to an Amazon Web Services account to create a member and join the network.

Applies only to Hyperledger Fabric.

" }, "InvitationList":{ "type":"list", @@ -931,10 +1151,10 @@ "members":{ "Principal":{ "shape":"PrincipalString", - "documentation":"

The AWS account ID to invite.

" + "documentation":"

The Amazon Web Services account ID to invite.

" } }, - "documentation":"

An action to invite a specific AWS account to create a member and join the network. The InviteAction is carried out when a Proposal is APPROVED.

Applies only to Hyperledger Fabric.

" + "documentation":"

An action to invite a specific Amazon Web Services account to create a member and join the network. The InviteAction is carried out when a Proposal is APPROVED.

Applies only to Hyperledger Fabric.

" }, "InviteActionList":{ "type":"list", @@ -944,6 +1164,36 @@ "type":"boolean", "box":true }, + "ListAccessorsInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"AccessorListMaxResults", + "documentation":"

The maximum number of accessors to list.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

The pagination token that indicates the next set of results to retrieve.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListAccessorsOutput":{ + "type":"structure", + "members":{ + "Accessors":{ + "shape":"AccessorSummaryList", + "documentation":"

An array of AccessorSummary objects that contain configuration properties for each accessor.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

The pagination token that indicates the next set of results to retrieve.

" + } + } + }, "ListInvitationsInput":{ "type":"structure", "members":{ @@ -998,7 +1248,7 @@ }, "IsOwned":{ "shape":"IsOwned", - "documentation":"

An optional Boolean value. If provided, the request is limited either to members that the current AWS account owns (true) or that other AWS accounts own (false). If omitted, all members are listed.

", + "documentation":"

An optional Boolean value. If provided, the request is limited either to members that the current Amazon Web Services account owns (true) or that other Amazon Web Services accountsn own (false). If omitted, all members are listed.

", "location":"querystring", "locationName":"isOwned" }, @@ -1215,7 +1465,7 @@ "members":{ "ResourceArn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", + "documentation":"

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", "location":"uri", "locationName":"resourceArn" } @@ -1279,7 +1529,7 @@ }, "Status":{ "shape":"MemberStatus", - "documentation":"

The status of a member.

  • CREATING - The AWS account is in the process of creating a member.

  • AVAILABLE - The member has been created and can participate in the network.

  • CREATE_FAILED - The AWS account attempted to create a member and creation failed.

  • UPDATING - The member is in the process of being updated.

  • DELETING - The member and all associated resources are in the process of being deleted. Either the AWS account that owns the member deleted it, or the member is being deleted as the result of an APPROVED PROPOSAL to remove the member.

  • DELETED - The member can no longer participate on the network and all associated resources are deleted. Either the AWS account that owns the member deleted it, or the member is being deleted as the result of an APPROVED PROPOSAL to remove the member.

  • INACCESSIBLE_ENCRYPTION_KEY - The member is impaired and might not function as expected because it cannot access the specified customer managed key in AWS KMS for encryption at rest. Either the KMS key was disabled or deleted, or the grants on the key were revoked.

    The effect of disabling or deleting a key, or revoking a grant is not immediate. The member resource might take some time to find that the key is inaccessible. When a resource is in this state, we recommend deleting and recreating the resource.

" + "documentation":"

The status of a member.

  • CREATING - The Amazon Web Services account is in the process of creating a member.

  • AVAILABLE - The member has been created and can participate in the network.

  • CREATE_FAILED - The Amazon Web Services account attempted to create a member and creation failed.

  • UPDATING - The member is in the process of being updated.

  • DELETING - The member and all associated resources are in the process of being deleted. Either the Amazon Web Services account that owns the member deleted it, or the member is being deleted as the result of an APPROVED PROPOSAL to remove the member.

  • DELETED - The member can no longer participate on the network and all associated resources are deleted. Either the Amazon Web Services account that owns the member deleted it, or the member is being deleted as the result of an APPROVED PROPOSAL to remove the member.

  • INACCESSIBLE_ENCRYPTION_KEY - The member is impaired and might not function as expected because it cannot access the specified customer managed key in KMS for encryption at rest. Either the KMS key was disabled or deleted, or the grants on the key were revoked.

    The effect of disabling or deleting a key or of revoking a grant isn't immediate. It might take some time for the member resource to discover that the key is inaccessible. When a resource is in this state, we recommend deleting and recreating the resource.

" }, "CreationDate":{ "shape":"Timestamp", @@ -1291,11 +1541,11 @@ }, "Arn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the member. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the member. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" }, "KmsKeyArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) that the member uses for encryption at rest. If the value of this parameter is \"AWS Owned KMS Key\", the member uses an AWS owned KMS key for encryption. This parameter is inherited by the nodes that this member owns.

" + "documentation":"

The Amazon Resource Name (ARN) of the customer managed key in Key Management Service (KMS) that the member uses for encryption at rest. If the value of this parameter is \"AWS Owned KMS Key\", the member uses an Amazon Web Services owned KMS key for encryption. This parameter is inherited by the nodes that this member owns.

For more information, see Encryption at Rest in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

" } }, "documentation":"

Member configuration properties.

Applies only to Hyperledger Fabric.

" @@ -1329,7 +1579,7 @@ }, "KmsKeyArn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) to use for encryption at rest in the member. This parameter is inherited by any nodes that this member creates.

Use one of the following options to specify this parameter:

  • Undefined or empty string - The member uses an AWS owned KMS key for encryption by default.

  • A valid symmetric customer managed KMS key - The member uses the specified key for encryption.

    Amazon Managed Blockchain doesn't support asymmetric keys. For more information, see Using symmetric and asymmetric keys in the AWS Key Management Service Developer Guide.

    The following is an example of a KMS key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

" + "documentation":"

The Amazon Resource Name (ARN) of the customer managed key in Key Management Service (KMS) to use for encryption at rest in the member. This parameter is inherited by any nodes that this member creates. For more information, see Encryption at Rest in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

Use one of the following options to specify this parameter:

  • Undefined or empty string - By default, use an KMS key that is owned and managed by Amazon Web Services on your behalf.

  • A valid symmetric customer managed KMS key - Use the specified KMS key in your account that you create, own, and manage.

    Amazon Managed Blockchain doesn't support asymmetric keys. For more information, see Using symmetric and asymmetric keys in the Key Management Service Developer Guide.

    The following is an example of a KMS key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

" } }, "documentation":"

Configuration properties of the member.

Applies only to Hyperledger Fabric.

" @@ -1441,7 +1691,7 @@ }, "Status":{ "shape":"MemberStatus", - "documentation":"

The status of the member.

  • CREATING - The AWS account is in the process of creating a member.

  • AVAILABLE - The member has been created and can participate in the network.

  • CREATE_FAILED - The AWS account attempted to create a member and creation failed.

  • UPDATING - The member is in the process of being updated.

  • DELETING - The member and all associated resources are in the process of being deleted. Either the AWS account that owns the member deleted it, or the member is being deleted as the result of an APPROVED PROPOSAL to remove the member.

  • DELETED - The member can no longer participate on the network and all associated resources are deleted. Either the AWS account that owns the member deleted it, or the member is being deleted as the result of an APPROVED PROPOSAL to remove the member.

  • INACCESSIBLE_ENCRYPTION_KEY - The member is impaired and might not function as expected because it cannot access the specified customer managed key in AWS Key Management Service (AWS KMS) for encryption at rest. Either the KMS key was disabled or deleted, or the grants on the key were revoked.

    The effect of disabling or deleting a key, or revoking a grant is not immediate. The member resource might take some time to find that the key is inaccessible. When a resource is in this state, we recommend deleting and recreating the resource.

" + "documentation":"

The status of the member.

  • CREATING - The Amazon Web Services account is in the process of creating a member.

  • AVAILABLE - The member has been created and can participate in the network.

  • CREATE_FAILED - The Amazon Web Services account attempted to create a member and creation failed.

  • UPDATING - The member is in the process of being updated.

  • DELETING - The member and all associated resources are in the process of being deleted. Either the Amazon Web Services account that owns the member deleted it, or the member is being deleted as the result of an APPROVED PROPOSAL to remove the member.

  • DELETED - The member can no longer participate on the network and all associated resources are deleted. Either the Amazon Web Services account that owns the member deleted it, or the member is being deleted as the result of an APPROVED PROPOSAL to remove the member.

  • INACCESSIBLE_ENCRYPTION_KEY - The member is impaired and might not function as expected because it cannot access the specified customer managed key in Key Management Service (KMS) for encryption at rest. Either the KMS key was disabled or deleted, or the grants on the key were revoked.

    The effect of disabling or deleting a key or of revoking a grant isn't immediate. It might take some time for the member resource to discover that the key is inaccessible. When a resource is in this state, we recommend deleting and recreating the resource.

" }, "CreationDate":{ "shape":"Timestamp", @@ -1449,11 +1699,11 @@ }, "IsOwned":{ "shape":"IsOwned", - "documentation":"

An indicator of whether the member is owned by your AWS account or a different AWS account.

" + "documentation":"

An indicator of whether the member is owned by your Amazon Web Services account or a different Amazon Web Services account.

" }, "Arn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the member. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the member. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } }, "documentation":"

A summary of configuration properties for a member.

Applies only to Hyperledger Fabric.

" @@ -1517,7 +1767,7 @@ }, "Arn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the network. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the network. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } }, "documentation":"

Network configuration properties.

" @@ -1527,7 +1777,7 @@ "members":{ "ChainId":{ "shape":"String", - "documentation":"

The Ethereum CHAIN_ID associated with the Ethereum network. Chain IDs are as follows:

  • mainnet = 1

  • rinkeby = 4

  • ropsten = 3

" + "documentation":"

The Ethereum CHAIN_ID associated with the Ethereum network. Chain IDs are as follows:

  • mainnet = 1

  • goerli = 5

  • rinkeby = 4

  • ropsten = 3

" } }, "documentation":"

Attributes of Ethereum for a network.

" @@ -1636,7 +1886,7 @@ }, "Arn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the network. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the network. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } }, "documentation":"

A summary of network configuration properties.

" @@ -1682,7 +1932,7 @@ }, "Status":{ "shape":"NodeStatus", - "documentation":"

The status of the node.

  • CREATING - The AWS account is in the process of creating a node.

  • AVAILABLE - The node has been created and can participate in the network.

  • UNHEALTHY - The node is impaired and might not function as expected. Amazon Managed Blockchain automatically finds nodes in this state and tries to recover them. If a node is recoverable, it returns to AVAILABLE. Otherwise, it moves to FAILED status.

  • CREATE_FAILED - The AWS account attempted to create a node and creation failed.

  • UPDATING - The node is in the process of being updated.

  • DELETING - The node is in the process of being deleted.

  • DELETED - The node can no longer participate on the network.

  • FAILED - The node is no longer functional, cannot be recovered, and must be deleted.

  • INACCESSIBLE_ENCRYPTION_KEY - The node is impaired and might not function as expected because it cannot access the specified customer managed key in AWS KMS for encryption at rest. Either the KMS key was disabled or deleted, or the grants on the key were revoked.

    The effect of disabling or deleting a key, or revoking a grant is not immediate. The node resource might take some time to find that the key is inaccessible. When a resource is in this state, we recommend deleting and recreating the resource.

" + "documentation":"

The status of the node.

  • CREATING - The Amazon Web Services account is in the process of creating a node.

  • AVAILABLE - The node has been created and can participate in the network.

  • UNHEALTHY - The node is impaired and might not function as expected. Amazon Managed Blockchain automatically finds nodes in this state and tries to recover them. If a node is recoverable, it returns to AVAILABLE. Otherwise, it moves to FAILED status.

  • CREATE_FAILED - The Amazon Web Services account attempted to create a node and creation failed.

  • UPDATING - The node is in the process of being updated.

  • DELETING - The node is in the process of being deleted.

  • DELETED - The node can no longer participate on the network.

  • FAILED - The node is no longer functional, cannot be recovered, and must be deleted.

  • INACCESSIBLE_ENCRYPTION_KEY - The node is impaired and might not function as expected because it cannot access the specified customer managed key in KMS for encryption at rest. Either the KMS key was disabled or deleted, or the grants on the key were revoked.

    The effect of disabling or deleting a key or of revoking a grant isn't immediate. It might take some time for the node resource to discover that the key is inaccessible. When a resource is in this state, we recommend deleting and recreating the resource.

" }, "CreationDate":{ "shape":"Timestamp", @@ -1694,11 +1944,11 @@ }, "Arn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the node. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the node. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" }, "KmsKeyArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) that the node uses for encryption at rest. If the value of this parameter is \"AWS Owned KMS Key\", the node uses an AWS owned KMS key for encryption. The node inherits this parameter from the member that it belongs to.

Applies only to Hyperledger Fabric.

" + "documentation":"

The Amazon Resource Name (ARN) of the customer managed key in Key Management Service (KMS) that the node uses for encryption at rest. If the value of this parameter is \"AWS Owned KMS Key\", the node uses an Amazon Web Services owned KMS key for encryption. The node inherits this parameter from the member that it belongs to.

For more information, see Encryption at Rest in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

Applies only to Hyperledger Fabric.

" } }, "documentation":"

Configuration properties of a node.

" @@ -1731,11 +1981,11 @@ "members":{ "HttpEndpoint":{ "shape":"String", - "documentation":"

The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC methods over HTTP connections from a client. Use this endpoint in client code for smart contracts when using an HTTP connection. Connections to this endpoint are authenticated using Signature Version 4.

" + "documentation":"

The endpoint on which the Ethereum node listens to run Ethereum API methods over HTTP connections from a client. Use this endpoint in client code for smart contracts when using an HTTP connection. Connections to this endpoint are authenticated using Signature Version 4.

" }, "WebSocketEndpoint":{ "shape":"String", - "documentation":"

The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC methods over WebSockets connections from a client. Use this endpoint in client code for smart contracts when using a WebSockets connection. Connections to this endpoint are authenticated using Signature Version 4.

" + "documentation":"

The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC methods over WebSocket connections from a client. Use this endpoint in client code for smart contracts when using a WebSocket connection. Connections to this endpoint are authenticated using Signature Version 4.

" } }, "documentation":"

Attributes of an Ethereum node.

" @@ -1837,7 +2087,7 @@ }, "Arn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the node. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the node. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } }, "documentation":"

A summary of configuration properties for a node.

" @@ -1894,7 +2144,7 @@ }, "Status":{ "shape":"ProposalStatus", - "documentation":"

The status of the proposal. Values are as follows:

  • IN_PROGRESS - The proposal is active and open for member voting.

  • APPROVED - The proposal was approved with sufficient YES votes among members according to the VotingPolicy specified for the Network. The specified proposal actions are carried out.

  • REJECTED - The proposal was rejected with insufficient YES votes among members according to the VotingPolicy specified for the Network. The specified ProposalActions are not carried out.

  • EXPIRED - Members did not cast the number of votes required to determine the proposal outcome before the proposal expired. The specified ProposalActions are not carried out.

  • ACTION_FAILED - One or more of the specified ProposalActions in a proposal that was approved could not be completed because of an error. The ACTION_FAILED status occurs even if only one ProposalAction fails and other actions are successful.

" + "documentation":"

The status of the proposal. Values are as follows:

  • IN_PROGRESS - The proposal is active and open for member voting.

  • APPROVED - The proposal was approved with sufficient YES votes among members according to the VotingPolicy specified for the Network. The specified proposal actions are carried out.

  • REJECTED - The proposal was rejected with insufficient YES votes among members according to the VotingPolicy specified for the Network. The specified ProposalActions aren't carried out.

  • EXPIRED - Members didn't cast the number of votes required to determine the proposal outcome before the proposal expired. The specified ProposalActions aren't carried out.

  • ACTION_FAILED - One or more of the specified ProposalActions in a proposal that was approved couldn't be completed because of an error. The ACTION_FAILED status occurs even if only one ProposalAction fails and other actions are successful.

" }, "CreationDate":{ "shape":"Timestamp", @@ -1902,7 +2152,7 @@ }, "ExpirationDate":{ "shape":"Timestamp", - "documentation":"

The date and time that the proposal expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. After this date and time, if members have not cast enough votes to determine the outcome according to the voting policy, the proposal is EXPIRED and Actions are not carried out.

" + "documentation":"

The date and time that the proposal expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. After this date and time, if members haven't cast enough votes to determine the outcome according to the voting policy, the proposal is EXPIRED and Actions aren't carried out.

" }, "YesVoteCount":{ "shape":"VoteCount", @@ -1922,7 +2172,7 @@ }, "Arn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } }, "documentation":"

Properties of a proposal on a Managed Blockchain network.

Applies only to Hyperledger Fabric.

" @@ -1932,7 +2182,7 @@ "members":{ "Invitations":{ "shape":"InviteActionList", - "documentation":"

The actions to perform for an APPROVED proposal to invite an AWS account to create a member and join the network.

" + "documentation":"

The actions to perform for an APPROVED proposal to invite an Amazon Web Services account to create a member and join the network.

" }, "Removals":{ "shape":"RemoveActionList", @@ -1984,7 +2234,7 @@ }, "Status":{ "shape":"ProposalStatus", - "documentation":"

The status of the proposal. Values are as follows:

  • IN_PROGRESS - The proposal is active and open for member voting.

  • APPROVED - The proposal was approved with sufficient YES votes among members according to the VotingPolicy specified for the Network. The specified proposal actions are carried out.

  • REJECTED - The proposal was rejected with insufficient YES votes among members according to the VotingPolicy specified for the Network. The specified ProposalActions are not carried out.

  • EXPIRED - Members did not cast the number of votes required to determine the proposal outcome before the proposal expired. The specified ProposalActions are not carried out.

  • ACTION_FAILED - One or more of the specified ProposalActions in a proposal that was approved could not be completed because of an error.

" + "documentation":"

The status of the proposal. Values are as follows:

  • IN_PROGRESS - The proposal is active and open for member voting.

  • APPROVED - The proposal was approved with sufficient YES votes among members according to the VotingPolicy specified for the Network. The specified proposal actions are carried out.

  • REJECTED - The proposal was rejected with insufficient YES votes among members according to the VotingPolicy specified for the Network. The specified ProposalActions aren't carried out.

  • EXPIRED - Members didn't cast the number of votes required to determine the proposal outcome before the proposal expired. The specified ProposalActions aren't carried out.

  • ACTION_FAILED - One or more of the specified ProposalActions in a proposal that was approved couldn't be completed because of an error.

" }, "CreationDate":{ "shape":"Timestamp", @@ -1992,11 +2242,11 @@ }, "ExpirationDate":{ "shape":"Timestamp", - "documentation":"

The date and time that the proposal expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. After this date and time, if members have not cast enough votes to determine the outcome according to the voting policy, the proposal is EXPIRED and Actions are not carried out.

" + "documentation":"

The date and time that the proposal expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. After this date and time, if members haven't cast enough votes to determine the outcome according to the voting policy, the proposal is EXPIRED and Actions aren't carried out.

" }, "Arn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "documentation":"

The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } }, "documentation":"

Properties of a proposal.

Applies only to Hyperledger Fabric.

" @@ -2070,10 +2320,10 @@ "Message":{"shape":"String"}, "ResourceName":{ "shape":"ArnString", - "documentation":"

A requested resource does not exist. It may have been deleted or referenced inaccurately.

" + "documentation":"

A requested resource doesn't exist. It may have been deleted or referenced inaccurately.

" } }, - "documentation":"

A requested resource does not exist. It may have been deleted or referenced inaccurately.

", + "documentation":"

A requested resource doesn't exist. It may have been deleted or referenced incorrectly.

", "error":{"httpStatusCode":404}, "exception":true }, @@ -2082,7 +2332,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

The requested resource exists but is not in a status that can complete the operation.

", + "documentation":"

The requested resource exists but isn't in a status that can complete the operation.

", "error":{"httpStatusCode":409}, "exception":true }, @@ -2114,7 +2364,7 @@ "members":{ "ResourceArn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", + "documentation":"

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", "location":"uri", "locationName":"resourceArn" }, @@ -2151,7 +2401,7 @@ "type":"structure", "members":{ }, - "documentation":"

The request or operation could not be performed because a service is throttling requests. The most common source of throttling errors is launching EC2 instances such that your service limit for EC2 instances is exceeded. Request a limit increase or delete unused resources if possible.

", + "documentation":"

The request or operation couldn't be performed because a service is throttling requests. The most common source of throttling errors is creating resources that exceed your service limit for this resource type. Request a limit increase or delete unused resources if possible.

", "error":{"httpStatusCode":429}, "exception":true }, @@ -2181,7 +2431,7 @@ "members":{ "ResourceArn":{ "shape":"ArnString", - "documentation":"

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", + "documentation":"

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", "location":"uri", "locationName":"resourceArn" }, @@ -2344,5 +2594,5 @@ "documentation":"

The voting rules for the network to decide if a proposal is accepted

Applies only to Hyperledger Fabric.

" } }, - "documentation":"

Amazon Managed Blockchain is a fully managed service for creating and managing blockchain networks using open-source frameworks. Blockchain allows you to build applications where multiple parties can securely and transparently run transactions and share data without the need for a trusted, central authority.

Managed Blockchain supports the Hyperledger Fabric and Ethereum open-source frameworks. Because of fundamental differences between the frameworks, some API actions or data types may only apply in the context of one framework and not the other. For example, actions related to Hyperledger Fabric network members such as CreateMember and DeleteMember do not apply to Ethereum.

The description for each action indicates the framework or frameworks to which it applies. Data types and properties that apply only in the context of a particular framework are similarly indicated.

" + "documentation":"

Amazon Managed Blockchain is a fully managed service for creating and managing blockchain networks using open-source frameworks. Blockchain allows you to build applications where multiple parties can securely and transparently run transactions and share data without the need for a trusted, central authority.

Managed Blockchain supports the Hyperledger Fabric and Ethereum open-source frameworks. Because of fundamental differences between the frameworks, some API actions or data types may only apply in the context of one framework and not the other. For example, actions related to Hyperledger Fabric network members such as CreateMember and DeleteMember don't apply to Ethereum.

The description for each action indicates the framework or frameworks to which it applies. Data types and properties that apply only in the context of a particular framework are similarly indicated.

" } diff --git a/botocore/data/marketplace-catalog/2018-09-17/endpoint-rule-set-1.json b/botocore/data/marketplace-catalog/2018-09-17/endpoint-rule-set-1.json new file mode 100644 index 00000000..c7dcb3cf --- /dev/null +++ b/botocore/data/marketplace-catalog/2018-09-17/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://catalog.marketplace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://catalog.marketplace-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://catalog.marketplace.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://catalog.marketplace.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/marketplace-catalog/2018-09-17/examples-1.json b/botocore/data/marketplace-catalog/2018-09-17/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/marketplace-catalog/2018-09-17/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/marketplace-catalog/2018-09-17/service-2.json b/botocore/data/marketplace-catalog/2018-09-17/service-2.json index 19e3860a..df4f5c09 100644 --- a/botocore/data/marketplace-catalog/2018-09-17/service-2.json +++ b/botocore/data/marketplace-catalog/2018-09-17/service-2.json @@ -99,6 +99,23 @@ ], "documentation":"

Provides the list of entities of a given type.

" }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/ListTagsForResource" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists all tags that have been added to a resource (either an entity or change set).

" + }, "StartChangeSet":{ "name":"StartChangeSet", "http":{ @@ -116,7 +133,41 @@ {"shape":"ThrottlingException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

This operation allows you to request changes for your entities. Within a single ChangeSet, you cannot start the same change type against the same entity multiple times. Additionally, when a ChangeSet is running, all the entities targeted by the different changes are locked until the ChangeSet has completed (either succeeded, cancelled, or failed). If you try to start a ChangeSet containing a change against an entity that is already locked, you will receive a ResourceInUseException.

For example, you cannot start the ChangeSet described in the example later in this topic, because it contains two changes to execute the same change type (AddRevisions) against the same entity (entity-id@1).

For more information about working with change sets, see Working with change sets.

" + "documentation":"

Allows you to request changes for your entities. Within a single ChangeSet, you can't start the same change type against the same entity multiple times. Additionally, when a ChangeSet is running, all the entities targeted by the different changes are locked until the change set has completed (either succeeded, cancelled, or failed). If you try to start a change set containing a change against an entity that is already locked, you will receive a ResourceInUseException error.

For example, you can't start the ChangeSet described in the example later in this topic because it contains two changes to run the same change type (AddRevisions) against the same entity (entity-id@1).

For more information about working with change sets, see Working with change sets.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/TagResource" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Tags a resource (either an entity or change set).

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/UntagResource" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Removes a tag or list of tags from a resource (either an entity or change set).

" } }, "shapes":{ @@ -192,6 +243,10 @@ "shape":"Entity", "documentation":"

The entity to be changed.

" }, + "EntityTags":{ + "shape":"TagList", + "documentation":"

The tags associated with the change.

" + }, "Details":{ "shape":"Json", "documentation":"

This object contains details specific to the change type of the requested change.

" @@ -305,9 +360,9 @@ }, "ClientRequestToken":{ "type":"string", - "max":36, + "max":64, "min":1, - "pattern":"^[\\w\\-]+$" + "pattern":"^[!-~]+$" }, "DateTimeISO8601":{ "type":"string", @@ -411,7 +466,7 @@ }, "EntityArn":{ "shape":"ARN", - "documentation":"

The ARN associated to the unique identifier for the change set referenced in this request.

" + "documentation":"

The ARN associated to the unique identifier for the entity referenced in this request.

" }, "LastModifiedDate":{ "shape":"DateTimeISO8601", @@ -660,6 +715,29 @@ } } }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "documentation":"

Required. The Amazon Resource Name (ARN) associated with the resource you want to list tags on.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "documentation":"

Required. The ARN associated with the resource you want to list tags on.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Required. A list of objects specifying each key name and value. Number of objects allowed: 1-50.

" + } + } + }, "MaxResultInteger":{ "type":"integer", "box":true, @@ -678,6 +756,12 @@ "max":20, "min":1 }, + "ResourceARN":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^arn:[\\w+=/,.@-]+:aws-marketplace:[\\w+=/,.@-]*:[0-9]+:[\\w+=,.@-]+(/[\\w+=,.@-]+)*$" + }, "ResourceId":{ "type":"string", "max":255, @@ -776,7 +860,12 @@ }, "ClientRequestToken":{ "shape":"ClientRequestToken", - "documentation":"

A unique token to identify the request to ensure idempotency.

" + "documentation":"

A unique token to identify the request to ensure idempotency.

", + "idempotencyToken":true + }, + "ChangeSetTags":{ + "shape":"TagList", + "documentation":"

A list of objects specifying each key name and value for the ChangeSetTags property.

" } } }, @@ -793,6 +882,70 @@ } } }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

The key associated with the tag.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

The value associated with the tag.

" + } + }, + "documentation":"

A list of objects specifying each key name and value.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "documentation":"

Required. The Amazon Resource Name (ARN) associated with the resource you want to tag.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Required. A list of objects specifying each key name and value. Number of objects allowed: 1-50.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, "ThrottlingException":{ "type":"structure", "members":{ @@ -803,6 +956,28 @@ "exception":true, "synthetic":true }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceARN", + "documentation":"

Required. The Amazon Resource Name (ARN) associated with the resource you want to remove the tag from.

" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

Required. A list of key names of tags to be removed. Number of strings allowed: 0-256.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "ValidationException":{ "type":"structure", "members":{ diff --git a/botocore/data/marketplace-entitlement/2017-01-11/endpoint-rule-set-1.json b/botocore/data/marketplace-entitlement/2017-01-11/endpoint-rule-set-1.json new file mode 100644 index 00000000..5be9fe24 --- /dev/null +++ b/botocore/data/marketplace-entitlement/2017-01-11/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://entitlement.marketplace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://entitlement.marketplace-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://entitlement.marketplace.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://entitlement.marketplace.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/marketplacecommerceanalytics/2015-07-01/endpoint-rule-set-1.json b/botocore/data/marketplacecommerceanalytics/2015-07-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..55b1c864 --- /dev/null +++ b/botocore/data/marketplacecommerceanalytics/2015-07-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://marketplacecommerceanalytics-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://marketplacecommerceanalytics-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://marketplacecommerceanalytics.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://marketplacecommerceanalytics.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mediaconnect/2018-11-14/endpoint-rule-set-1.json b/botocore/data/mediaconnect/2018-11-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..e975a12e --- /dev/null +++ b/botocore/data/mediaconnect/2018-11-14/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconnect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconnect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://mediaconnect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mediaconnect/2018-11-14/service-2.json b/botocore/data/mediaconnect/2018-11-14/service-2.json index 50d178e2..86ebd5ae 100644 --- a/botocore/data/mediaconnect/2018-11-14/service-2.json +++ b/botocore/data/mediaconnect/2018-11-14/service-2.json @@ -3025,6 +3025,7 @@ "st2110-jpegxs", "cdi", "srt-listener", + "srt-caller", "fujitsu-qos" ] }, @@ -3486,6 +3487,16 @@ "locationName": "senderIpAddress", "documentation": "The IP address that the flow communicates with to initiate connection with the sender." }, + "SourceListenerAddress": { + "shape": "__string", + "locationName": "sourceListenerAddress", + "documentation": "Source IP or domain name for SRT-caller protocol." + }, + "SourceListenerPort": { + "shape": "__integer", + "locationName": "sourceListenerPort", + "documentation": "Source port for SRT-caller protocol." + }, "StreamId": { "shape": "__string", "locationName": "streamId", @@ -3785,6 +3796,16 @@ "locationName": "smoothingLatency", "documentation": "The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams." }, + "SourceListenerAddress": { + "shape": "__string", + "locationName": "sourceListenerAddress", + "documentation": "Source IP or domain name for SRT-caller protocol." + }, + "SourceListenerPort": { + "shape": "__integer", + "locationName": "sourceListenerPort", + "documentation": "Source port for SRT-caller protocol." + }, "StreamId": { "shape": "__string", "locationName": "streamId", @@ -4232,6 +4253,16 @@ "locationName": "sourceArn", "documentation": "The ARN of the source that you want to update." }, + "SourceListenerAddress": { + "shape": "__string", + "locationName": "sourceListenerAddress", + "documentation": "Source IP or domain name for SRT-caller protocol." + }, + "SourceListenerPort": { + "shape": "__integer", + "locationName": "sourceListenerPort", + "documentation": "Source port for SRT-caller protocol." + }, "StreamId": { "shape": "__string", "locationName": "streamId", diff --git a/botocore/data/mediaconvert/2017-08-29/endpoint-rule-set-1.json b/botocore/data/mediaconvert/2017-08-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..fc7d3930 --- /dev/null +++ b/botocore/data/mediaconvert/2017-08-29/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconvert-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconvert-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediaconvert.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-northwest-1" + ] + } + ], + "endpoint": { + "url": "https://subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://mediaconvert.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mediaconvert/2017-08-29/service-2.json b/botocore/data/mediaconvert/2017-08-29/service-2.json index 8ef68daa..d6ad4a17 100644 --- a/botocore/data/mediaconvert/2017-08-29/service-2.json +++ b/botocore/data/mediaconvert/2017-08-29/service-2.json @@ -1164,7 +1164,7 @@ "shapes": { "AacAudioDescriptionBroadcasterMix": { "type": "string", - "documentation": "Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair. The value for AudioType will be set to 3, which signals to downstream systems that this stream contains \"broadcaster mixed AD\". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and FollowInputAudioType. Choose NORMAL when the input does not contain pre-mixed audio + audio description (AD). In this case, the encoder will use any values you provide for AudioType and FollowInputAudioType.", + "documentation": "Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair. The value for AudioType will be set to 3, which signals to downstream systems that this stream contains \"broadcaster mixed AD\". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and FollowInputAudioType. Choose NORMAL when the input does not contain pre-mixed audio + audio description (AD). In this case, the encoder will use any values you provide for AudioType and FollowInputAudioType.", "enum": [ "BROADCASTER_MIXED_AD", "NORMAL" @@ -1181,7 +1181,7 @@ }, "AacCodingMode": { "type": "string", - "documentation": "Mono (Audio Description), Mono, Stereo, or 5.1 channel layout. Valid values depend on rate control mode and profile. \"1.0 - Audio Description (Receiver Mix)\" setting receives a stereo description plus control track and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E.", + "documentation": "The Coding mode that you specify determines the number of audio channels and the audio channel layout metadata in your AAC output. Valid coding modes depend on the Rate control mode and Profile that you select. The following list shows the number of audio channels and channel layout for each coding mode. * 1.0 Audio Description (Receiver Mix): One channel, C. Includes audio description data from your stereo input. For more information see ETSI TS 101 154 Annex E. * 1.0 Mono: One channel, C. * 2.0 Stereo: Two channels, L, R. * 5.1 Surround: Five channels, C, L, R, Ls, Rs, LFE.", "enum": [ "AD_RECEIVER_MIX", "CODING_MODE_1_0", @@ -1212,7 +1212,7 @@ "AudioDescriptionBroadcasterMix": { "shape": "AacAudioDescriptionBroadcasterMix", "locationName": "audioDescriptionBroadcasterMix", - "documentation": "Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair. The value for AudioType will be set to 3, which signals to downstream systems that this stream contains \"broadcaster mixed AD\". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and FollowInputAudioType. Choose NORMAL when the input does not contain pre-mixed audio + audio description (AD). In this case, the encoder will use any values you provide for AudioType and FollowInputAudioType." + "documentation": "Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair. The value for AudioType will be set to 3, which signals to downstream systems that this stream contains \"broadcaster mixed AD\". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and FollowInputAudioType. Choose NORMAL when the input does not contain pre-mixed audio + audio description (AD). In this case, the encoder will use any values you provide for AudioType and FollowInputAudioType." }, "Bitrate": { "shape": "__integerMin6000Max1024000", @@ -1227,7 +1227,7 @@ "CodingMode": { "shape": "AacCodingMode", "locationName": "codingMode", - "documentation": "Mono (Audio Description), Mono, Stereo, or 5.1 channel layout. Valid values depend on rate control mode and profile. \"1.0 - Audio Description (Receiver Mix)\" setting receives a stereo description plus control track and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E." + "documentation": "The Coding mode that you specify determines the number of audio channels and the audio channel layout metadata in your AAC output. Valid coding modes depend on the Rate control mode and Profile that you select. The following list shows the number of audio channels and channel layout for each coding mode. * 1.0 Audio Description (Receiver Mix): One channel, C. Includes audio description data from your stereo input. For more information see ETSI TS 101 154 Annex E. * 1.0 Mono: One channel, C. * 2.0 Stereo: Two channels, L, R. * 5.1 Surround: Five channels, C, L, R, Ls, Rs, LFE." }, "RateControlMode": { "shape": "AacRateControlMode", @@ -1242,7 +1242,7 @@ "SampleRate": { "shape": "__integerMin8000Max96000", "locationName": "sampleRate", - "documentation": "Sample rate in Hz. Valid values depend on rate control mode and profile." + "documentation": "Specify the Sample rate in Hz. Valid sample rates depend on the Profile and Coding mode that you select. The following list shows valid sample rates for each Profile and Coding mode. * LC Profile, Coding mode 1.0, 2.0, and Receiver Mix: 8000, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 88200, 96000. * LC Profile, Coding mode 5.1: 32000, 44100, 48000, 96000. * HEV1 Profile, Coding mode 1.0 and Receiver Mix: 22050, 24000, 32000, 44100, 48000. * HEV1 Profile, Coding mode 2.0 and 5.1: 32000, 44100, 48000, 96000. * HEV2 Profile, Coding mode 2.0: 22050, 24000, 32000, 44100, 48000." }, "Specification": { "shape": "AacSpecification", @@ -1353,7 +1353,7 @@ "Bitrate": { "shape": "__integerMin64000Max640000", "locationName": "bitrate", - "documentation": "Specify the average bitrate in bits per second. Valid bitrates depend on the coding mode." + "documentation": "Specify the average bitrate in bits per second. The bitrate that you specify must be a multiple of 8000 within the allowed minimum and maximum values. Leave blank to use the default bitrate for the coding mode you select according ETSI TS 102 366. Valid bitrates for coding mode 1/0: Default: 96000. Minimum: 64000. Maximum: 128000. Valid bitrates for coding mode 1/1: Default: 192000. Minimum: 128000. Maximum: 384000. Valid bitrates for coding mode 2/0: Default: 192000. Minimum: 128000. Maximum: 384000. Valid bitrates for coding mode 3/2 with FLE: Default: 384000. Minimum: 384000. Maximum: 640000." }, "BitstreamMode": { "shape": "Ac3BitstreamMode", @@ -1737,6 +1737,16 @@ }, "documentation": "Settings related to one audio tab on the MediaConvert console. In your job JSON, an instance of AudioDescription is equivalent to one audio tab in the console. Usually, one audio tab corresponds to one output audio track. Depending on how you set up your input audio selectors and whether you use audio selector groups, one audio tab can correspond to a group of output audio tracks." }, + "AudioDurationCorrection": { + "type": "string", + "documentation": "Apply audio timing corrections to help synchronize audio and video in your output. To apply timing corrections, your input must meet the following requirements: * Container: MP4, or MOV, with an accurate time-to-sample (STTS) table. * Audio track: AAC. Choose from the following audio timing correction settings: * Disabled (Default): Apply no correction. * Auto: Recommended for most inputs. MediaConvert analyzes the audio timing in your input and determines which correction setting to use, if needed. * Track: Adjust the duration of each audio frame by a constant amount to align the audio track length with STTS duration. Track-level correction does not affect pitch, and is recommended for tonal audio content such as music. * Frame: Adjust the duration of each audio frame by a variable amount to align audio frames with STTS timestamps. No corrections are made to already-aligned frames. Frame-level correction may affect the pitch of corrected frames, and is recommended for atonal audio content such as speech or percussion.", + "enum": [ + "DISABLED", + "AUTO", + "TRACK", + "FRAME" + ] + }, "AudioLanguageCodeControl": { "type": "string", "documentation": "Specify which source for language code takes precedence for this audio track. When you choose Follow input (FOLLOW_INPUT), the service uses the language code from the input track if it's present. If there's no languge code on the input track, the service uses the code that you specify in the setting Language code (languageCode or customLanguageCode). When you choose Use configured (USE_CONFIGURED), the service uses the language code that you specify.", @@ -1818,6 +1828,11 @@ "AudioSelector": { "type": "structure", "members": { + "AudioDurationCorrection": { + "shape": "AudioDurationCorrection", + "locationName": "audioDurationCorrection", + "documentation": "Apply audio timing corrections to help synchronize audio and video in your output. To apply timing corrections, your input must meet the following requirements: * Container: MP4, or MOV, with an accurate time-to-sample (STTS) table. * Audio track: AAC. Choose from the following audio timing correction settings: * Disabled (Default): Apply no correction. * Auto: Recommended for most inputs. MediaConvert analyzes the audio timing in your input and determines which correction setting to use, if needed. * Track: Adjust the duration of each audio frame by a constant amount to align the audio track length with STTS duration. Track-level correction does not affect pitch, and is recommended for tonal audio content such as music. * Frame: Adjust the duration of each audio frame by a variable amount to align audio frames with STTS timestamps. No corrections are made to already-aligned frames. Frame-level correction may affect the pitch of corrected frames, and is recommended for atonal audio content such as speech or percussion." + }, "CustomLanguageCode": { "shape": "__stringMin3Max3PatternAZaZ3", "locationName": "customLanguageCode", @@ -2900,6 +2915,11 @@ "locationName": "minFinalSegmentLength", "documentation": "Keep this setting at the default value of 0, unless you are troubleshooting a problem with how devices play back the end of your video asset. If you know that player devices are hanging on the final segment of your video because the length of your final segment is too short, use this setting to specify a minimum final segment length, in seconds. Choose a value that is greater than or equal to 1 and less than your segment length. When you specify a value for this setting, the encoder will combine any final segment that is shorter than the length that you specify with the previous segment. For example, your segment length is 3 seconds and your final segment is .5 seconds without a minimum final segment length; when you set the minimum final segment length to 1, your final segment is 3.5 seconds." }, + "MpdManifestBandwidthType": { + "shape": "CmafMpdManifestBandwidthType", + "locationName": "mpdManifestBandwidthType", + "documentation": "Specify how the value for bandwidth is determined for each video Representation in your output MPD manifest. We recommend that you choose a MPD manifest bandwidth type that is compatible with your downstream player configuration. Max: Use the same value that you specify for Max bitrate in the video output, in bits per second. Average: Use the calculated average bitrate of the encoded video output, in bits per second." + }, "MpdProfile": { "shape": "CmafMpdProfile", "locationName": "mpdProfile", @@ -2935,6 +2955,11 @@ "locationName": "targetDurationCompatibilityMode", "documentation": "When set to LEGACY, the segment target duration is always rounded up to the nearest integer value above its current value in seconds. When set to SPEC\\\\_COMPLIANT, the segment target duration is rounded up to the nearest integer value if fraction seconds are greater than or equal to 0.5 (>= 0.5) and rounded down if less than 0.5 (< 0.5). You may need to use LEGACY if your client needs to ensure that the target duration is always longer than the actual duration of the segment. Some older players may experience interrupted playback when the actual duration of a track in a segment is longer than the target duration." }, + "VideoCompositionOffsets": { + "shape": "CmafVideoCompositionOffsets", + "locationName": "videoCompositionOffsets", + "documentation": "Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time may be greater than zero, and sample composition time offsets will increment using unsigned integers. For strict fMP4 video and audio timing, set Video composition offsets to Signed. The earliest presentation time will be equal to zero, and sample composition time offsets will increment using signed integers." + }, "WriteDashManifest": { "shape": "CmafWriteDASHManifest", "locationName": "writeDashManifest", @@ -3039,6 +3064,14 @@ "INTEGER" ] }, + "CmafMpdManifestBandwidthType": { + "type": "string", + "documentation": "Specify how the value for bandwidth is determined for each video Representation in your output MPD manifest. We recommend that you choose a MPD manifest bandwidth type that is compatible with your downstream player configuration. Max: Use the same value that you specify for Max bitrate in the video output, in bits per second. Average: Use the calculated average bitrate of the encoded video output, in bits per second.", + "enum": [ + "AVERAGE", + "MAX" + ] + }, "CmafMpdProfile": { "type": "string", "documentation": "Specify whether your DASH profile is on-demand or main. When you choose Main profile (MAIN_PROFILE), the service signals urn:mpeg:dash:profile:isoff-main:2011 in your .mpd DASH manifest. When you choose On-demand (ON_DEMAND_PROFILE), the service signals urn:mpeg:dash:profile:isoff-on-demand:2011 in your .mpd. When you choose On-demand, you must also set the output group setting Segment control (SegmentControl) to Single file (SINGLE_FILE).", @@ -3087,6 +3120,14 @@ "SPEC_COMPLIANT" ] }, + "CmafVideoCompositionOffsets": { + "type": "string", + "documentation": "Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time may be greater than zero, and sample composition time offsets will increment using unsigned integers. For strict fMP4 video and audio timing, set Video composition offsets to Signed. The earliest presentation time will be equal to zero, and sample composition time offsets will increment using signed integers.", + "enum": [ + "SIGNED", + "UNSIGNED" + ] + }, "CmafWriteDASHManifest": { "type": "string", "documentation": "When set to ENABLED, a DASH MPD manifest will be generated for this output.", @@ -3152,6 +3193,14 @@ "NONE" ] }, + "CmfcManifestMetadataSignaling": { + "type": "string", + "documentation": "To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be \"urn:scte:scte35:2013:bin\". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled.", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, "CmfcScte35Esam": { "type": "string", "documentation": "Use this setting only when you specify SCTE-35 markers from ESAM. Choose INSERT to put SCTE-35 markers in this output at the insertion points that you specify in an ESAM XML document. Provide the document in the setting SCC XML (sccXml).", @@ -3206,6 +3255,11 @@ "locationName": "klvMetadata", "documentation": "To include key-length-value metadata in this output: Set KLV metadata insertion to Passthrough. MediaConvert reads KLV metadata present in your input and writes each instance to a separate event message box in the output, according to MISB ST1910.1. To exclude this KLV metadata: Set KLV metadata insertion to None or leave blank." }, + "ManifestMetadataSignaling": { + "shape": "CmfcManifestMetadataSignaling", + "locationName": "manifestMetadataSignaling", + "documentation": "To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be \"urn:scte:scte35:2013:bin\". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled." + }, "Scte35Esam": { "shape": "CmfcScte35Esam", "locationName": "scte35Esam", @@ -3220,6 +3274,21 @@ "shape": "CmfcTimedMetadata", "locationName": "timedMetadata", "documentation": "To include ID3 metadata in this output: Set ID3 metadata (timedMetadata) to Passthrough (PASSTHROUGH). Specify this ID3 metadata in Custom ID3 metadata inserter (timedMetadataInsertion). MediaConvert writes each instance of ID3 metadata in a separate Event Message (eMSG) box. To exclude this ID3 metadata: Set ID3 metadata to None (NONE) or leave blank." + }, + "TimedMetadataBoxVersion": { + "shape": "CmfcTimedMetadataBoxVersion", + "locationName": "timedMetadataBoxVersion", + "documentation": "Specify the event message box (eMSG) version for ID3 timed metadata in your output.\nFor more information, see ISO/IEC 23009-1:2022 section 5.10.3.3.3 Syntax.\nLeave blank to use the default value Version 0.\nWhen you specify Version 1, you must also set ID3 metadata (timedMetadata) to Passthrough." + }, + "TimedMetadataSchemeIdUri": { + "shape": "__stringMax1000", + "locationName": "timedMetadataSchemeIdUri", + "documentation": "Specify the event message box (eMSG) scheme ID URI (scheme_id_uri) for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default value: https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme ID URI, you must also set ID3 metadata (timedMetadata) to Passthrough." + }, + "TimedMetadataValue": { + "shape": "__stringMax1000", + "locationName": "timedMetadataValue", + "documentation": "Specify the event message box (eMSG) value for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value, you must also set ID3 metadata (timedMetadata) to Passthrough." } }, "documentation": "These settings relate to the fragmented MP4 container for the segments in your CMAF outputs." @@ -3232,6 +3301,14 @@ "NONE" ] }, + "CmfcTimedMetadataBoxVersion": { + "type": "string", + "documentation": "Specify the event message box (eMSG) version for ID3 timed metadata in your output.\nFor more information, see ISO/IEC 23009-1:2022 section 5.10.3.3.3 Syntax.\nLeave blank to use the default value Version 0.\nWhen you specify Version 1, you must also set ID3 metadata (timedMetadata) to Passthrough.", + "enum": [ + "VERSION_0", + "VERSION_1" + ] + }, "ColorCorrector": { "type": "structure", "members": { @@ -3243,7 +3320,7 @@ "ColorSpaceConversion": { "shape": "ColorSpaceConversion", "locationName": "colorSpaceConversion", - "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses Elemental tone mapping technology to approximate the outcome of manually regrading from HDR to SDR." + "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses Elemental tone mapping technology to approximate the outcome of manually regrading from HDR to SDR. Select Force P3D65 (SDR) to set the output color space metadata to the following: * Color primaries: Display P3 * Transfer characteristics: SMPTE 428M * Matrix coefficients: BT.709" }, "Contrast": { "shape": "__integerMin1Max100", @@ -3269,6 +3346,11 @@ "shape": "__integerMin1Max100", "locationName": "saturation", "documentation": "Saturation level." + }, + "SdrReferenceWhiteLevel": { + "shape": "__integerMin100Max1000", + "locationName": "sdrReferenceWhiteLevel", + "documentation": "Specify the reference white level, in nits, for all of your SDR inputs. Use to correct brightness levels within HDR10 outputs. The following color metadata must be present in your SDR input: color primaries, transfer characteristics, and matrix coefficients. If your SDR input has missing color metadata, or if you want to correct input color metadata, manually specify a color space in the input video selector. For 1,000 nit peak brightness displays, we recommend that you set SDR reference white level to 203 (according to ITU-R BT.2408). Leave blank to use the default value of 100, or specify an integer from 100 to 1000." } }, "documentation": "Settings for color correction." @@ -3283,24 +3365,28 @@ }, "ColorSpace": { "type": "string", - "documentation": "If your input video has accurate color space metadata, or if you don't know about color space, leave this set to the default value Follow (FOLLOW). The service will automatically detect your input color space. If your input video has metadata indicating the wrong color space, specify the accurate color space here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display Color Volume static metadata isn't present in your video stream, or if that metadata is present but not accurate, choose Force HDR 10 (FORCE_HDR10) here and specify correct values in the input HDR 10 metadata (Hdr10Metadata) settings. For more information about MediaConvert HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr.", + "documentation": "If your input video has accurate color space metadata, or if you don't know about color space, leave this set to the default value Follow. The service will automatically detect your input color space. If your input video has metadata indicating the wrong color space, specify the accurate color space here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display Color Volume static metadata isn't present in your video stream, or if that metadata is present but not accurate, choose Force HDR 10 here and specify correct values in the input HDR 10 metadata settings. For more information about MediaConvert HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr. Select P3D65 (SDR) to set the input color space metadata to the following:\n * Color primaries: Display P3\n * Transfer characteristics: SMPTE 428M\n * Matrix coefficients: BT.709", "enum": [ "FOLLOW", "REC_601", "REC_709", "HDR10", - "HLG_2020" + "HLG_2020", + "P3DCI", + "P3D65_SDR" ] }, "ColorSpaceConversion": { "type": "string", - "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses Elemental tone mapping technology to approximate the outcome of manually regrading from HDR to SDR.", + "documentation": "Specify the color space you want for this output. The service supports conversion between HDR formats, between SDR formats, from SDR to HDR, and from HDR to SDR. SDR to HDR conversion doesn't upgrade the dynamic range. The converted video has an HDR format, but visually appears the same as an unconverted output. HDR to SDR conversion uses Elemental tone mapping technology to approximate the outcome of manually regrading from HDR to SDR. Select Force P3D65 (SDR) to set the output color space metadata to the following: * Color primaries: Display P3 * Transfer characteristics: SMPTE 428M * Matrix coefficients: BT.709", "enum": [ "NONE", "FORCE_601", "FORCE_709", "FORCE_HDR10", - "FORCE_HLG_2020" + "FORCE_HLG_2020", + "FORCE_P3DCI", + "FORCE_P3D65_SDR" ] }, "ColorSpaceUsage": { @@ -3757,6 +3843,11 @@ "locationName": "minFinalSegmentLength", "documentation": "Keep this setting at the default value of 0, unless you are troubleshooting a problem with how devices play back the end of your video asset. If you know that player devices are hanging on the final segment of your video because the length of your final segment is too short, use this setting to specify a minimum final segment length, in seconds. Choose a value that is greater than or equal to 1 and less than your segment length. When you specify a value for this setting, the encoder will combine any final segment that is shorter than the length that you specify with the previous segment. For example, your segment length is 3 seconds and your final segment is .5 seconds without a minimum final segment length; when you set the minimum final segment length to 1, your final segment is 3.5 seconds." }, + "MpdManifestBandwidthType": { + "shape": "DashIsoMpdManifestBandwidthType", + "locationName": "mpdManifestBandwidthType", + "documentation": "Specify how the value for bandwidth is determined for each video Representation in your output MPD manifest. We recommend that you choose a MPD manifest bandwidth type that is compatible with your downstream player configuration. Max: Use the same value that you specify for Max bitrate in the video output, in bits per second. Average: Use the calculated average bitrate of the encoded video output, in bits per second." + }, "MpdProfile": { "shape": "DashIsoMpdProfile", "locationName": "mpdProfile", @@ -3782,6 +3873,11 @@ "locationName": "segmentLengthControl", "documentation": "Specify how you want MediaConvert to determine the segment length. Choose Exact (EXACT) to have the encoder use the exact length that you specify with the setting Segment length (SegmentLength). This might result in extra I-frames. Choose Multiple of GOP (GOP_MULTIPLE) to have the encoder round up the segment lengths to match the next GOP boundary." }, + "VideoCompositionOffsets": { + "shape": "DashIsoVideoCompositionOffsets", + "locationName": "videoCompositionOffsets", + "documentation": "Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time may be greater than zero, and sample composition time offsets will increment using unsigned integers. For strict fMP4 video and audio timing, set Video composition offsets to Signed. The earliest presentation time will be equal to zero, and sample composition time offsets will increment using signed integers." + }, "WriteSegmentTimelineInRepresentation": { "shape": "DashIsoWriteSegmentTimelineInRepresentation", "locationName": "writeSegmentTimelineInRepresentation", @@ -3852,6 +3948,14 @@ "FOLLOW_CUSTOM" ] }, + "DashIsoMpdManifestBandwidthType": { + "type": "string", + "documentation": "Specify how the value for bandwidth is determined for each video Representation in your output MPD manifest. We recommend that you choose a MPD manifest bandwidth type that is compatible with your downstream player configuration. Max: Use the same value that you specify for Max bitrate in the video output, in bits per second. Average: Use the calculated average bitrate of the encoded video output, in bits per second.", + "enum": [ + "AVERAGE", + "MAX" + ] + }, "DashIsoMpdProfile": { "type": "string", "documentation": "Specify whether your DASH profile is on-demand or main. When you choose Main profile (MAIN_PROFILE), the service signals urn:mpeg:dash:profile:isoff-main:2011 in your .mpd DASH manifest. When you choose On-demand (ON_DEMAND_PROFILE), the service signals urn:mpeg:dash:profile:isoff-on-demand:2011 in your .mpd. When you choose On-demand, you must also set the output group setting Segment control (SegmentControl) to Single file (SINGLE_FILE).", @@ -3892,6 +3996,14 @@ "GOP_MULTIPLE" ] }, + "DashIsoVideoCompositionOffsets": { + "type": "string", + "documentation": "Specify the video sample composition time offset mode in the output fMP4 TRUN box. For wider player compatibility, set Video composition offsets to Unsigned or leave blank. The earliest presentation time may be greater than zero, and sample composition time offsets will increment using unsigned integers. For strict fMP4 video and audio timing, set Video composition offsets to Signed. The earliest presentation time will be equal to zero, and sample composition time offsets will increment using signed integers.", + "enum": [ + "SIGNED", + "UNSIGNED" + ] + }, "DashIsoWriteSegmentTimelineInRepresentation": { "type": "string", "documentation": "When you enable Precise segment duration in manifests (writeSegmentTimelineInRepresentation), your DASH manifest shows precise segment durations. The segment duration information appears inside the SegmentTimeline element, inside SegmentTemplate at the Representation level. When this feature isn't enabled, the segment durations in your DASH manifest are approximate. The segment duration information appears in the duration attribute of the SegmentTemplate element.", @@ -4119,10 +4231,10 @@ "Profile": { "shape": "DolbyVisionProfile", "locationName": "profile", - "documentation": "Required when you use Dolby Vision processing. Set Profile to Profile 5 to only include frame-interleaved Dolby Vision metadata in your output. Set Profile to Profile 8.1 to include both frame-interleaved Dolby Vision metadata and HDR10 metadata in your output." + "documentation": "Required when you enable Dolby Vision. Use Profile 5 to include frame-interleaved Dolby Vision metadata in your output. Your input must include Dolby Vision metadata or an HDR10 YUV color space. Use Profile 8.1 to include frame-interleaved Dolby Vision metadata and HDR10 metadata in your output. Your input must include Dolby Vision metadata." } }, - "documentation": "With AWS Elemental MediaConvert, you can create profile 5 or 8.1 Dolby Vision outputs from MXF and IMF sources." + "documentation": "Create Dolby Vision Profile 5 or Profile 8.1 compatible video output." }, "DolbyVisionLevel6Metadata": { "type": "structure", @@ -4159,7 +4271,7 @@ }, "DolbyVisionProfile": { "type": "string", - "documentation": "Required when you use Dolby Vision processing. Set Profile to Profile 5 to only include frame-interleaved Dolby Vision metadata in your output. Set Profile to Profile 8.1 to include both frame-interleaved Dolby Vision metadata and HDR10 metadata in your output.", + "documentation": "Required when you enable Dolby Vision. Use Profile 5 to include frame-interleaved Dolby Vision metadata in your output. Your input must include Dolby Vision metadata or an HDR10 YUV color space. Use Profile 8.1 to include frame-interleaved Dolby Vision metadata and HDR10 metadata in your output. Your input must include Dolby Vision metadata.", "enum": [ "PROFILE_5", "PROFILE_8_1" @@ -4787,9 +4899,9 @@ "documentation": "If set to ATTENUATE_3_DB, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode." }, "Bitrate": { - "shape": "__integerMin64000Max640000", + "shape": "__integerMin32000Max3024000", "locationName": "bitrate", - "documentation": "Specify the average bitrate in bits per second. Valid bitrates depend on the coding mode." + "documentation": "Specify the average bitrate in bits per second. The bitrate that you specify must be a multiple of 8000 within the allowed minimum and maximum values. Leave blank to use the default bitrate for the coding mode you select according ETSI TS 102 366. Valid bitrates for coding mode 1/0: Default: 96000. Minimum: 32000. Maximum: 3024000. Valid bitrates for coding mode 2/0: Default: 192000. Minimum: 96000. Maximum: 3024000. Valid bitrates for coding mode 3/2: Default: 384000. Minimum: 192000. Maximum: 3024000." }, "BitstreamMode": { "shape": "Eac3BitstreamMode", @@ -5601,6 +5713,11 @@ "locationName": "gopSizeUnits", "documentation": "Specify how the transcoder determines GOP size for this output. We recommend that you have the transcoder automatically choose this value for you based on characteristics of your input video. To enable this automatic behavior, choose Auto (AUTO) and and leave GOP size (GopSize) blank. By default, if you don't specify GOP mode control (GopSizeUnits), MediaConvert will use automatic behavior. If your output group specifies HLS, DASH, or CMAF, set GOP mode control to Auto and leave GOP size blank in each output in your output group. To explicitly specify the GOP length, choose Specified, frames (FRAMES) or Specified, seconds (SECONDS) and then provide the GOP length in the related setting GOP size (GopSize)." }, + "HrdBufferFinalFillPercentage": { + "shape": "__integerMin0Max100", + "locationName": "hrdBufferFinalFillPercentage", + "documentation": "If your downstream systems have strict buffer requirements: Specify the minimum percentage of the HRD buffer that's available at the end of each encoded video segment. For the best video quality: Set to 0 or leave blank to automatically determine the final buffer fill percentage." + }, "HrdBufferInitialFillPercentage": { "shape": "__integerMin0Max100", "locationName": "hrdBufferInitialFillPercentage", @@ -6040,6 +6157,11 @@ "locationName": "gopSizeUnits", "documentation": "Specify how the transcoder determines GOP size for this output. We recommend that you have the transcoder automatically choose this value for you based on characteristics of your input video. To enable this automatic behavior, choose Auto (AUTO) and and leave GOP size (GopSize) blank. By default, if you don't specify GOP mode control (GopSizeUnits), MediaConvert will use automatic behavior. If your output group specifies HLS, DASH, or CMAF, set GOP mode control to Auto and leave GOP size blank in each output in your output group. To explicitly specify the GOP length, choose Specified, frames (FRAMES) or Specified, seconds (SECONDS) and then provide the GOP length in the related setting GOP size (GopSize)." }, + "HrdBufferFinalFillPercentage": { + "shape": "__integerMin0Max100", + "locationName": "hrdBufferFinalFillPercentage", + "documentation": "If your downstream systems have strict buffer requirements: Specify the minimum percentage of the HRD buffer that's available at the end of each encoded video segment. For the best video quality: Set to 0 or leave blank to automatically determine the final buffer fill percentage." + }, "HrdBufferInitialFillPercentage": { "shape": "__integerMin0Max100", "locationName": "hrdBufferInitialFillPercentage", @@ -6317,6 +6439,7 @@ }, "HlsAdMarkers": { "type": "string", + "documentation": "Ad marker for Apple HLS manifest.", "enum": [ "ELEMENTAL", "ELEMENTAL_SCTE35" @@ -6914,6 +7037,11 @@ "shape": "__listOfInsertableImage", "locationName": "insertableImages", "documentation": "Specify the images that you want to overlay on your video. The images must be PNG or TGA files." + }, + "SdrReferenceWhiteLevel": { + "shape": "__integerMin100Max1000", + "locationName": "sdrReferenceWhiteLevel", + "documentation": "Specify the reference white level, in nits, for all of your image inserter images. Use to correct brightness levels within HDR10 outputs. For 1,000 nit peak brightness displays, we recommend that you set SDR reference white level to 203 (according to ITU-R BT.2408). Leave blank to use the default value of 100, or specify an integer from 100 to 1000." } }, "documentation": "Use the image inserter feature to include a graphic overlay on your video. Enable or disable this feature for each input or output individually. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/graphic-overlay.html. This setting is disabled by default." @@ -7056,7 +7184,7 @@ "VideoGenerator": { "shape": "InputVideoGenerator", "locationName": "videoGenerator", - "documentation": "Use this setting if you do not have a video input or if you want to add black video frames before, or after, other inputs. When you include Video generator, MediaConvert creates a video input with black frames and without an audio track. You can specify a value for Video generator, or you can specify an Input file, but you cannot specify both." + "documentation": "When you include Video generator, MediaConvert creates a video input with black frames. Use this setting if you do not have a video input or if you want to add black video frames before, or after, other inputs. You can specify Video generator, or you can specify an Input file, but you cannot specify both. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-generator.html" }, "VideoSelector": { "shape": "VideoSelector", @@ -7291,7 +7419,7 @@ "documentation": "Specify an integer value for Black video duration from 50 to 86400000 to generate a black video input for that many milliseconds. Required when you include Video generator." } }, - "documentation": "Use this setting if you do not have a video input or if you want to add black video frames before, or after, other inputs. When you include Video generator, MediaConvert creates a video input with black frames and without an audio track. You can specify a value for Video generator, or you can specify an Input file, but you cannot specify both." + "documentation": "When you include Video generator, MediaConvert creates a video input with black frames. Use this setting if you do not have a video input or if you want to add black video frames before, or after, other inputs. You can specify Video generator, or you can specify an Input file, but you cannot specify both. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/video-generator.html" }, "InsertableImage": { "type": "structure", @@ -9058,6 +9186,14 @@ "PASSTHROUGH" ] }, + "MpdManifestMetadataSignaling": { + "type": "string", + "documentation": "To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be \"urn:scte:scte35:2013:bin\". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled.", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, "MpdScte35Esam": { "type": "string", "documentation": "Use this setting only when you specify SCTE-35 markers from ESAM. Choose INSERT to put SCTE-35 markers in this output at the insertion points that you specify in an ESAM XML document. Provide the document in the setting SCC XML (sccXml).", @@ -9097,6 +9233,11 @@ "locationName": "klvMetadata", "documentation": "To include key-length-value metadata in this output: Set KLV metadata insertion to Passthrough. MediaConvert reads KLV metadata present in your input and writes each instance to a separate event message box in the output, according to MISB ST1910.1. To exclude this KLV metadata: Set KLV metadata insertion to None or leave blank." }, + "ManifestMetadataSignaling": { + "shape": "MpdManifestMetadataSignaling", + "locationName": "manifestMetadataSignaling", + "documentation": "To add an InbandEventStream element in your output MPD manifest for each type of event message, set Manifest metadata signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event messages, the InbandEventStream element schemeIdUri will be \"urn:scte:scte35:2013:bin\". To leave these elements out of your output MPD manifest, set Manifest metadata signaling to Disabled." + }, "Scte35Esam": { "shape": "MpdScte35Esam", "locationName": "scte35Esam", @@ -9111,6 +9252,21 @@ "shape": "MpdTimedMetadata", "locationName": "timedMetadata", "documentation": "To include ID3 metadata in this output: Set ID3 metadata (timedMetadata) to Passthrough (PASSTHROUGH). Specify this ID3 metadata in Custom ID3 metadata inserter (timedMetadataInsertion). MediaConvert writes each instance of ID3 metadata in a separate Event Message (eMSG) box. To exclude this ID3 metadata: Set ID3 metadata to None (NONE) or leave blank." + }, + "TimedMetadataBoxVersion": { + "shape": "MpdTimedMetadataBoxVersion", + "locationName": "timedMetadataBoxVersion", + "documentation": "Specify the event message box (eMSG) version for ID3 timed metadata in your output.\nFor more information, see ISO/IEC 23009-1:2022 section 5.10.3.3.3 Syntax.\nLeave blank to use the default value Version 0.\nWhen you specify Version 1, you must also set ID3 metadata (timedMetadata) to Passthrough." + }, + "TimedMetadataSchemeIdUri": { + "shape": "__stringMax1000", + "locationName": "timedMetadataSchemeIdUri", + "documentation": "Specify the event message box (eMSG) scheme ID URI (scheme_id_uri) for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default value: https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme ID URI, you must also set ID3 metadata (timedMetadata) to Passthrough." + }, + "TimedMetadataValue": { + "shape": "__stringMax1000", + "locationName": "timedMetadataValue", + "documentation": "Specify the event message box (eMSG) value for ID3 timed metadata in your output. For more informaiton, see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value, you must also set ID3 metadata (timedMetadata) to Passthrough." } }, "documentation": "These settings relate to the fragmented MP4 container for the segments in your DASH outputs." @@ -9123,6 +9279,14 @@ "NONE" ] }, + "MpdTimedMetadataBoxVersion": { + "type": "string", + "documentation": "Specify the event message box (eMSG) version for ID3 timed metadata in your output.\nFor more information, see ISO/IEC 23009-1:2022 section 5.10.3.3.3 Syntax.\nLeave blank to use the default value Version 0.\nWhen you specify Version 1, you must also set ID3 metadata (timedMetadata) to Passthrough.", + "enum": [ + "VERSION_0", + "VERSION_1" + ] + }, "Mpeg2AdaptiveQuantization": { "type": "string", "documentation": "Specify the strength of any adaptive quantization filters that you enable. The value that you choose here applies to the following settings: Spatial adaptive quantization (spatialAdaptiveQuantization), and Temporal adaptive quantization (temporalAdaptiveQuantization).", @@ -9310,6 +9474,11 @@ "locationName": "gopSizeUnits", "documentation": "Specify the units for GOP size (GopSize). If you don't specify a value here, by default the encoder measures GOP size in frames." }, + "HrdBufferFinalFillPercentage": { + "shape": "__integerMin0Max100", + "locationName": "hrdBufferFinalFillPercentage", + "documentation": "If your downstream systems have strict buffer requirements: Specify the minimum percentage of the HRD buffer that's available at the end of each encoded video segment. For the best video quality: Set to 0 or leave blank to automatically determine the final buffer fill percentage." + }, "HrdBufferInitialFillPercentage": { "shape": "__integerMin0Max100", "locationName": "hrdBufferInitialFillPercentage", @@ -9398,7 +9567,7 @@ "Syntax": { "shape": "Mpeg2Syntax", "locationName": "syntax", - "documentation": "Specify whether this output's video uses the D10 syntax. Keep the default value to not use the syntax. Related settings: When you choose D10 (D_10) for your MXF profile (profile), you must also set this value to to D10 (D_10)." + "documentation": "Specify whether this output's video uses the D10 syntax. Keep the default value to not use the syntax. Related settings: When you choose D10 (D_10) for your MXF profile (profile), you must also set this value to D10 (D_10)." }, "Telecine": { "shape": "Mpeg2Telecine", @@ -9431,7 +9600,7 @@ }, "Mpeg2Syntax": { "type": "string", - "documentation": "Specify whether this output's video uses the D10 syntax. Keep the default value to not use the syntax. Related settings: When you choose D10 (D_10) for your MXF profile (profile), you must also set this value to to D10 (D_10).", + "documentation": "Specify whether this output's video uses the D10 syntax. Keep the default value to not use the syntax. Related settings: When you choose D10 (D_10) for your MXF profile (profile), you must also set this value to D10 (D_10).", "enum": [ "DEFAULT", "D_10" @@ -11649,7 +11818,7 @@ "ColorSpace": { "shape": "ColorSpace", "locationName": "colorSpace", - "documentation": "If your input video has accurate color space metadata, or if you don't know about color space, leave this set to the default value Follow (FOLLOW). The service will automatically detect your input color space. If your input video has metadata indicating the wrong color space, specify the accurate color space here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display Color Volume static metadata isn't present in your video stream, or if that metadata is present but not accurate, choose Force HDR 10 (FORCE_HDR10) here and specify correct values in the input HDR 10 metadata (Hdr10Metadata) settings. For more information about MediaConvert HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr." + "documentation": "If your input video has accurate color space metadata, or if you don't know about color space, leave this set to the default value Follow. The service will automatically detect your input color space. If your input video has metadata indicating the wrong color space, specify the accurate color space here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display Color Volume static metadata isn't present in your video stream, or if that metadata is present but not accurate, choose Force HDR 10 here and specify correct values in the input HDR 10 metadata settings. For more information about MediaConvert HDR jobs, see https://docs.aws.amazon.com/console/mediaconvert/hdr. Select P3D65 (SDR) to set the input color space metadata to the following:\n * Color primaries: Display P3\n * Transfer characteristics: SMPTE 428M\n * Matrix coefficients: BT.709" }, "ColorSpaceUsage": { "shape": "ColorSpaceUsage", @@ -12658,6 +12827,11 @@ "min": 1000, "max": 480000000 }, + "__integerMin100Max1000": { + "type": "integer", + "min": 100, + "max": 1000 + }, "__integerMin10Max48": { "type": "integer", "min": 10, @@ -12808,6 +12982,11 @@ "min": 32000, "max": 192000 }, + "__integerMin32000Max3024000": { + "type": "integer", + "min": 32000, + "max": 3024000 + }, "__integerMin32000Max384000": { "type": "integer", "min": 32000, @@ -13211,6 +13390,10 @@ "__string": { "type": "string" }, + "__stringMax1000": { + "type": "string", + "max": 1000 + }, "__stringMin0": { "type": "string", "min": 0 diff --git a/botocore/data/medialive/2017-10-14/endpoint-rule-set-1.json b/botocore/data/medialive/2017-10-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..377ab242 --- /dev/null +++ b/botocore/data/medialive/2017-10-14/endpoint-rule-set-1.json @@ -0,0 +1,306 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://medialive-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://medialive-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://medialive.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://medialive.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/medialive/2017-10-14/service-2.json b/botocore/data/medialive/2017-10-14/service-2.json index acea2255..052c526a 100644 --- a/botocore/data/medialive/2017-10-14/service-2.json +++ b/botocore/data/medialive/2017-10-14/service-2.json @@ -1978,6 +1978,56 @@ ], "documentation": "Purchase an offering and create a reservation." }, + "RebootInputDevice": { + "name": "RebootInputDevice", + "http": { + "method": "POST", + "requestUri": "/prod/inputDevices/{inputDeviceId}/reboot", + "responseCode": 200 + }, + "input": { + "shape": "RebootInputDeviceRequest" + }, + "output": { + "shape": "RebootInputDeviceResponse", + "documentation": "Your reboot request has succeeded." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "This request was invalid." + }, + { + "shape": "UnprocessableEntityException", + "documentation": "Reboot operation failed, input could not be validated." + }, + { + "shape": "InternalServerErrorException", + "documentation": "Unexpected internal service error." + }, + { + "shape": "ForbiddenException", + "documentation": "You do not have permission to reboot input device." + }, + { + "shape": "BadGatewayException", + "documentation": "Bad gateway error." + }, + { + "shape": "NotFoundException", + "documentation": "Input device not found." + }, + { + "shape": "GatewayTimeoutException", + "documentation": "Gateway Timeout Error" + }, + { + "shape": "TooManyRequestsException", + "documentation": "Request limit exceeded on reboot device calls to the input device service." + } + ], + "documentation": "Send a reboot command to the specified input device. The device will begin rebooting within a few seconds of sending the command. When the reboot is complete, the device\u2019s connection status will change to connected." + }, "RejectInputDeviceTransfer": { "name": "RejectInputDeviceTransfer", "http": { @@ -2082,6 +2132,56 @@ ], "documentation": "Starts an existing channel" }, + "StartInputDeviceMaintenanceWindow": { + "name": "StartInputDeviceMaintenanceWindow", + "http": { + "method": "POST", + "requestUri": "/prod/inputDevices/{inputDeviceId}/startInputDeviceMaintenanceWindow", + "responseCode": 200 + }, + "input": { + "shape": "StartInputDeviceMaintenanceWindowRequest" + }, + "output": { + "shape": "StartInputDeviceMaintenanceWindowResponse", + "documentation": "Your start maintenance window request has succeeded." + }, + "errors": [ + { + "shape": "BadRequestException", + "documentation": "This request was invalid." + }, + { + "shape": "UnprocessableEntityException", + "documentation": "Start maintenance window operation failed, input could not be validated." + }, + { + "shape": "InternalServerErrorException", + "documentation": "Unexpected internal service error." + }, + { + "shape": "ForbiddenException", + "documentation": "You do not have permission to start a maintenance window for this input device." + }, + { + "shape": "BadGatewayException", + "documentation": "Bad gateway error." + }, + { + "shape": "NotFoundException", + "documentation": "Input device not found." + }, + { + "shape": "GatewayTimeoutException", + "documentation": "Gateway Timeout Error" + }, + { + "shape": "TooManyRequestsException", + "documentation": "Request limit exceeded on start maintenance window calls to the input device service." + } + ], + "documentation": "Start a maintenance window for the specified input device. Starting a maintenance window will give the device up to two hours to install software. If the device was streaming prior to the maintenance, it will resume streaming when the software is fully installed. Devices automatically install updates while they are powered on and their MediaLive channels are stopped. A maintenance window allows you to update a device without having to stop MediaLive channels that use the device. The device must remain powered on and connected to the internet for the duration of the maintenance." + }, "StartMultiplex": { "name": "StartMultiplex", "http": { @@ -2913,6 +3013,14 @@ }, "documentation": "Placeholder documentation for AccessDenied" }, + "AccessibilityType": { + "type": "string", + "documentation": "Accessibility Type", + "enum": [ + "DOES_NOT_IMPLEMENT_ACCESSIBILITY_FEATURES", + "IMPLEMENTS_ACCESSIBILITY_FEATURES" + ] + }, "AfdSignaling": { "type": "string", "documentation": "Afd Signaling", @@ -3067,6 +3175,10 @@ "shape": "Ac3Settings", "locationName": "ac3Settings" }, + "Eac3AtmosSettings": { + "shape": "Eac3AtmosSettings", + "locationName": "eac3AtmosSettings" + }, "Eac3Settings": { "shape": "Eac3Settings", "locationName": "eac3Settings" @@ -3130,7 +3242,7 @@ "documentation": "Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language code of the input. The languageCode will be used when useConfigured is set, or when followInput is selected but there is no ISO 639 language code specified by the input." }, "Name": { - "shape": "__string", + "shape": "__stringMax255", "locationName": "name", "documentation": "The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription. Description names should be unique within this Live Event." }, @@ -3492,6 +3604,10 @@ "AvailSettings": { "type": "structure", "members": { + "Esam": { + "shape": "Esam", + "locationName": "esam" + }, "Scte35SpliceInsert": { "shape": "Scte35SpliceInsert", "locationName": "scte35SpliceInsert" @@ -4124,6 +4240,11 @@ "CaptionDescription": { "type": "structure", "members": { + "Accessibility": { + "shape": "AccessibilityType", + "locationName": "accessibility", + "documentation": "Indicates whether the caption track implements accessibility features such as written descriptions of spoken dialog, music, and sounds." + }, "CaptionSelectorName": { "shape": "__string", "locationName": "captionSelectorName", @@ -5581,6 +5702,11 @@ "locationName": "region", "documentation": "AWS region, e.g. 'us-west-2'" }, + "RenewalSettings": { + "shape": "RenewalSettings", + "locationName": "renewalSettings", + "documentation": "Renewal settings for the reservation" + }, "ReservationId": { "shape": "__string", "locationName": "reservationId", @@ -6332,6 +6458,11 @@ "locationName": "region", "documentation": "AWS region, e.g. 'us-west-2'" }, + "RenewalSettings": { + "shape": "RenewalSettings", + "locationName": "renewalSettings", + "documentation": "Renewal settings for the reservation" + }, "ReservationId": { "shape": "__string", "locationName": "reservationId", @@ -6419,9 +6550,16 @@ "documentation": "The status of software on the input device.", "enum": [ "UP_TO_DATE", - "NOT_UP_TO_DATE" + "NOT_UP_TO_DATE", + "UPDATING" ] }, + "DolbyVision81Settings": { + "type": "structure", + "members": { + }, + "documentation": "Dolby Vision Profile 8.1 Settings" + }, "DvbNitSettings": { "type": "structure", "members": { @@ -6672,6 +6810,80 @@ }, "documentation": "DVB Time and Date Table (SDT)" }, + "Eac3AtmosCodingMode": { + "type": "string", + "documentation": "Eac3 Atmos Coding Mode", + "enum": [ + "CODING_MODE_5_1_4", + "CODING_MODE_7_1_4", + "CODING_MODE_9_1_6" + ] + }, + "Eac3AtmosDrcLine": { + "type": "string", + "documentation": "Eac3 Atmos Drc Line", + "enum": [ + "FILM_LIGHT", + "FILM_STANDARD", + "MUSIC_LIGHT", + "MUSIC_STANDARD", + "NONE", + "SPEECH" + ] + }, + "Eac3AtmosDrcRf": { + "type": "string", + "documentation": "Eac3 Atmos Drc Rf", + "enum": [ + "FILM_LIGHT", + "FILM_STANDARD", + "MUSIC_LIGHT", + "MUSIC_STANDARD", + "NONE", + "SPEECH" + ] + }, + "Eac3AtmosSettings": { + "type": "structure", + "members": { + "Bitrate": { + "shape": "__double", + "locationName": "bitrate", + "documentation": "Average bitrate in bits/second. Valid bitrates depend on the coding mode.\n// * @affectsRightSizing true" + }, + "CodingMode": { + "shape": "Eac3AtmosCodingMode", + "locationName": "codingMode", + "documentation": "Dolby Digital Plus with Dolby Atmos coding mode. Determines number of channels." + }, + "Dialnorm": { + "shape": "__integerMin1Max31", + "locationName": "dialnorm", + "documentation": "Sets the dialnorm for the output. Default 23." + }, + "DrcLine": { + "shape": "Eac3AtmosDrcLine", + "locationName": "drcLine", + "documentation": "Sets the Dolby dynamic range compression profile." + }, + "DrcRf": { + "shape": "Eac3AtmosDrcRf", + "locationName": "drcRf", + "documentation": "Sets the profile for heavy Dolby dynamic range compression, ensures that the instantaneous signal peaks do not exceed specified levels." + }, + "HeightTrim": { + "shape": "__double", + "locationName": "heightTrim", + "documentation": "Height dimensional trim. Sets the maximum amount to attenuate the height channels when the downstream player isn??t configured to handle Dolby Digital Plus with Dolby Atmos and must remix the channels." + }, + "SurroundTrim": { + "shape": "__double", + "locationName": "surroundTrim", + "documentation": "Surround dimensional trim. Sets the maximum amount to attenuate the surround channels when the downstream player isn't configured to handle Dolby Digital Plus with Dolby Atmos and must remix the channels." + } + }, + "documentation": "Eac3 Atmos Settings" + }, "Eac3AttenuationControl": { "type": "string", "documentation": "Eac3 Attenuation Control", @@ -7077,6 +7289,46 @@ "TimecodeConfig" ] }, + "Esam": { + "type": "structure", + "members": { + "AcquisitionPointId": { + "shape": "__stringMax256", + "locationName": "acquisitionPointId", + "documentation": "Sent as acquisitionPointIdentity to identify the MediaLive channel to the POIS." + }, + "AdAvailOffset": { + "shape": "__integerMinNegative1000Max1000", + "locationName": "adAvailOffset", + "documentation": "When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply to OOB messages." + }, + "PasswordParam": { + "shape": "__string", + "locationName": "passwordParam", + "documentation": "Password if credentials are required to access the POIS endpoint. This is a reference to an AWS parameter store name from which the password can be retrieved. AWS Parameter store format: \"ssm://\"" + }, + "PoisEndpoint": { + "shape": "__stringMax2048", + "locationName": "poisEndpoint", + "documentation": "The URL of the signal conditioner endpoint on the Placement Opportunity Information System (POIS). MediaLive sends SignalProcessingEvents here when SCTE-35 messages are read." + }, + "Username": { + "shape": "__string", + "locationName": "username", + "documentation": "Username if credentials are required to access the POIS endpoint. This can be either a plaintext username, or a reference to an AWS parameter store name from which the username can be retrieved. AWS Parameter store format: \"ssm://\"" + }, + "ZoneIdentity": { + "shape": "__stringMax256", + "locationName": "zoneIdentity", + "documentation": "Optional data sent as zoneIdentity to identify the MediaLive channel to the POIS." + } + }, + "documentation": "Settings for the Esam", + "required": [ + "AcquisitionPointId", + "PoisEndpoint" + ] + }, "FailoverCondition": { "type": "structure", "members": { @@ -7908,6 +8160,10 @@ "shape": "ColorSpacePassthroughSettings", "locationName": "colorSpacePassthroughSettings" }, + "DolbyVision81Settings": { + "shape": "DolbyVision81Settings", + "locationName": "dolbyVision81Settings" + }, "Hdr10Settings": { "shape": "Hdr10Settings", "locationName": "hdr10Settings" @@ -9270,6 +9526,11 @@ "shape": "__integer", "locationName": "maxBitrate", "documentation": "The maximum bitrate in bits per second. Set a value here to throttle the bitrate of the source video." + }, + "LatencyMs": { + "shape": "__integer", + "locationName": "latencyMs", + "documentation": "The Link device's buffer size (latency) in milliseconds (ms)." } }, "documentation": "Configurable settings for the input device." @@ -9349,6 +9610,11 @@ "shape": "__integer", "locationName": "width", "documentation": "The width of the video source, in pixels." + }, + "LatencyMs": { + "shape": "__integer", + "locationName": "latencyMs", + "documentation": "The Link device's buffer size (latency) in milliseconds (ms). You can specify this value." } }, "documentation": "Settings that describe the active source from the input device, and the video characteristics of that source." @@ -9508,7 +9774,8 @@ "type": "string", "documentation": "The type of the input device. For an AWS Elemental Link device that outputs resolutions up to 1080, choose \"HD\".", "enum": [ - "HD" + "HD", + "UHD" ] }, "InputDeviceUhdSettings": { @@ -9553,6 +9820,11 @@ "shape": "__integer", "locationName": "width", "documentation": "The width of the video source, in pixels." + }, + "LatencyMs": { + "shape": "__integer", + "locationName": "latencyMs", + "documentation": "The Link device's buffer size (latency) in milliseconds (ms). You can specify this value." } }, "documentation": "Settings that describe the active source from the input device, and the video characteristics of that source." @@ -9575,7 +9847,7 @@ "documentation": "key used to extract the password from EC2 Parameter store" }, "Uri": { - "shape": "__string", + "shape": "__stringMax2048", "locationName": "uri", "documentation": "Uniform Resource Identifier - This should be a path to a file accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP destination should have a uri simliar to: \"rtmp://fmsserver/live\"." }, @@ -12668,6 +12940,11 @@ "locationName": "name", "documentation": "Name for the new reservation" }, + "RenewalSettings": { + "shape": "RenewalSettings", + "locationName": "renewalSettings", + "documentation": "Renewal settings for the reservation" + }, "RequestId": { "shape": "__string", "locationName": "requestId", @@ -12709,6 +12986,11 @@ "locationName": "offeringId", "documentation": "Offering to purchase, e.g. '87654321'" }, + "RenewalSettings": { + "shape": "RenewalSettings", + "locationName": "renewalSettings", + "documentation": "Renewal settings for the reservation" + }, "RequestId": { "shape": "__string", "locationName": "requestId", @@ -12758,6 +13040,51 @@ }, "documentation": "Raw Settings" }, + "RebootInputDevice": { + "type": "structure", + "members": { + "Force": { + "shape": "RebootInputDeviceForce", + "locationName": "force", + "documentation": "Force a reboot of an input device. If the device is streaming, it will stop streaming and begin rebooting within a few seconds of sending the command. If the device was streaming prior to the reboot, the device will resume streaming when the reboot completes." + } + }, + "documentation": "Placeholder documentation for RebootInputDevice" + }, + "RebootInputDeviceForce": { + "type": "string", + "documentation": "Whether or not to force reboot the input device.", + "enum": [ + "NO", + "YES" + ] + }, + "RebootInputDeviceRequest": { + "type": "structure", + "members": { + "Force": { + "shape": "RebootInputDeviceForce", + "locationName": "force", + "documentation": "Force a reboot of an input device. If the device is streaming, it will stop streaming and begin rebooting within a few seconds of sending the command. If the device was streaming prior to the reboot, the device will resume streaming when the reboot completes." + }, + "InputDeviceId": { + "shape": "__string", + "location": "uri", + "locationName": "inputDeviceId", + "documentation": "The unique ID of the input device to reboot. For example, hd-123456789abcdef." + } + }, + "documentation": "A request to reboot an AWS Elemental device.", + "required": [ + "InputDeviceId" + ] + }, + "RebootInputDeviceResponse": { + "type": "structure", + "members": { + }, + "documentation": "Placeholder documentation for RebootInputDeviceResponse" + }, "Rec601Settings": { "type": "structure", "members": { @@ -12815,6 +13142,22 @@ "ChannelMappings" ] }, + "RenewalSettings": { + "type": "structure", + "members": { + "AutomaticRenewal": { + "shape": "ReservationAutomaticRenewal", + "locationName": "automaticRenewal", + "documentation": "Automatic renewal status for the reservation" + }, + "RenewalCount": { + "shape": "__integerMin1", + "locationName": "renewalCount", + "documentation": "Count for the reservation renewal" + } + }, + "documentation": "The Renewal settings for Reservations" + }, "Reservation": { "type": "structure", "members": { @@ -12878,6 +13221,11 @@ "locationName": "region", "documentation": "AWS region, e.g. 'us-west-2'" }, + "RenewalSettings": { + "shape": "RenewalSettings", + "locationName": "renewalSettings", + "documentation": "Renewal settings for the reservation" + }, "ReservationId": { "shape": "__string", "locationName": "reservationId", @@ -12911,6 +13259,15 @@ }, "documentation": "Reserved resources available to use" }, + "ReservationAutomaticRenewal": { + "type": "string", + "documentation": "Automatic Renewal Status for Reservation", + "enum": [ + "DISABLED", + "ENABLED", + "UNAVAILABLE" + ] + }, "ReservationCodec": { "type": "string", "documentation": "Codec, 'MPEG2', 'AVC', 'HEVC', or 'AUDIO'", @@ -13236,6 +13593,11 @@ "locationName": "pauseStateSettings", "documentation": "Action to pause or unpause one or both channel pipelines" }, + "Scte35InputSettings": { + "shape": "Scte35InputScheduleActionSettings", + "locationName": "scte35InputSettings", + "documentation": "Action to specify scte35 input" + }, "Scte35ReturnToNetworkSettings": { "shape": "Scte35ReturnToNetworkScheduleActionSettings", "locationName": "scte35ReturnToNetworkSettings", @@ -13468,6 +13830,33 @@ "RESTRICT_GROUP2" ] }, + "Scte35InputMode": { + "type": "string", + "documentation": "Settings to let you create a clip of the file input, in order to set up the input to ingest only a portion of the file.", + "enum": [ + "FIXED", + "FOLLOW_ACTIVE" + ] + }, + "Scte35InputScheduleActionSettings": { + "type": "structure", + "members": { + "InputAttachmentNameReference": { + "shape": "__string", + "locationName": "inputAttachmentNameReference", + "documentation": "In fixed mode, enter the name of the input attachment that you want to use as a SCTE-35 input. (Don't enter the ID of the input.)\"" + }, + "Mode": { + "shape": "Scte35InputMode", + "locationName": "mode", + "documentation": "Whether the SCTE-35 input should be the active input or a fixed input." + } + }, + "documentation": "Settings for the \"scte35 input\" action", + "required": [ + "Mode" + ] + }, "Scte35NoRegionalBlackoutFlag": { "type": "string", "documentation": "Corresponds to the no_regional_blackout_flag parameter. A value of REGIONAL_BLACKOUT corresponds to 0 (false) in the SCTE-35 specification. If you include one of the \"restriction\" flags then you must include all four of them.", @@ -13869,6 +14258,27 @@ }, "documentation": "Placeholder documentation for StartChannelResponse" }, + "StartInputDeviceMaintenanceWindowRequest": { + "type": "structure", + "members": { + "InputDeviceId": { + "shape": "__string", + "location": "uri", + "locationName": "inputDeviceId", + "documentation": "The unique ID of the input device to start a maintenance window for. For example, hd-123456789abcdef." + } + }, + "required": [ + "InputDeviceId" + ], + "documentation": "Placeholder documentation for StartInputDeviceMaintenanceWindowRequest" + }, + "StartInputDeviceMaintenanceWindowResponse": { + "type": "structure", + "members": { + }, + "documentation": "Placeholder documentation for StartInputDeviceMaintenanceWindowResponse" + }, "StartMultiplexRequest": { "type": "structure", "members": { @@ -15162,6 +15572,11 @@ "shape": "__string", "locationName": "name", "documentation": "Name of the reservation" + }, + "RenewalSettings": { + "shape": "RenewalSettings", + "locationName": "renewalSettings", + "documentation": "Renewal settings for the reservation" } }, "documentation": "UpdateReservation request" @@ -15174,6 +15589,11 @@ "locationName": "name", "documentation": "Name of the reservation" }, + "RenewalSettings": { + "shape": "RenewalSettings", + "locationName": "renewalSettings", + "documentation": "Renewal settings for the reservation" + }, "ReservationId": { "shape": "__string", "location": "uri", @@ -16228,6 +16648,16 @@ "max": 1000, "documentation": "Placeholder documentation for __stringMax1000" }, + "__stringMax2048": { + "type": "string", + "max": 2048, + "documentation": "Placeholder documentation for __stringMax2048" + }, + "__stringMax255": { + "type": "string", + "max": 255, + "documentation": "Placeholder documentation for __stringMax255" + }, "__stringMax256": { "type": "string", "max": 256, diff --git a/botocore/data/mediapackage-vod/2018-11-07/endpoint-rule-set-1.json b/botocore/data/mediapackage-vod/2018-11-07/endpoint-rule-set-1.json new file mode 100644 index 00000000..444cef94 --- /dev/null +++ b/botocore/data/mediapackage-vod/2018-11-07/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-vod-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-vod-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-vod.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-vod.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mediapackage-vod/2018-11-07/service-2.json b/botocore/data/mediapackage-vod/2018-11-07/service-2.json index 0fd7bd80..05a28d3a 100644 --- a/botocore/data/mediapackage-vod/2018-11-07/service-2.json +++ b/botocore/data/mediapackage-vod/2018-11-07/service-2.json @@ -1114,7 +1114,7 @@ "shape": "Profile" }, "ScteMarkersSource": { - "documentation": "The source of scte markers used. When set to SEGMENTS, the scte markers are sourced from the segments of the ingested content. When set to MANIFEST, the scte markers are sourced from the manifest of the ingested content.", + "documentation": "The source of scte markers used. When set to SEGMENTS, the scte markers are sourced from the segments of the ingested content. When set to MANIFEST, the scte markers are sourced from the manifest of the ingested content. The MANIFEST value is compatible with source HLS playlists using the SCTE-35 Enhanced syntax (#EXT-OATCLS-SCTE35 tags). SCTE-35 Elemental and SCTE-35 Daterange syntaxes are not supported with this option.", "locationName": "scteMarkersSource", "shape": "ScteMarkersSource" }, @@ -1142,6 +1142,11 @@ "locationName": "includeEncoderConfigurationInSegments", "shape": "__boolean" }, + "IncludeIframeOnlyStream": { + "documentation": "When enabled, an I-Frame only stream will be included in the output.", + "locationName": "includeIframeOnlyStream", + "shape": "__boolean" + }, "PeriodTriggers": { "documentation": "A list of triggers that controls when the outgoing Dynamic Adaptive Streaming over HTTP (DASH)\nMedia Presentation Description (MPD) will be partitioned into multiple periods. If empty, the content will not\nbe partitioned into more than one period. If the list contains \"ADS\", new periods will be created where\nthe Asset contains SCTE-35 ad markers.\n", "locationName": "periodTriggers", @@ -1350,6 +1355,11 @@ }, "DescribePackagingGroupResponse": { "members": { + "ApproximateAssetCount": { + "documentation": "The approximate asset count of the PackagingGroup.", + "locationName": "approximateAssetCount", + "shape": "__integer" + }, "Arn": { "documentation": "The ARN of the PackagingGroup.", "locationName": "arn", @@ -1412,6 +1422,26 @@ }, "type": "structure" }, + "EncryptionContractConfiguration": { + "documentation": "Use encryptionContractConfiguration to configure one or more content encryption keys for your endpoints that use SPEKE 2.0. \nThe encryption contract defines which content keys are used to encrypt the audio and video tracks in your stream. \nTo configure the encryption contract, specify which audio and video encryption presets to use.\nNote the following considerations when using encryptionContractConfiguration:\nencryptionContractConfiguration can be used for DASH endpoints that use SPEKE 2.0. SPEKE 2.0 relies on the CPIX 2.3 specification.\nYou must disable key rotation for this endpoint by setting keyRotationIntervalSeconds to 0.\n", + "members": { + "PresetSpeke20Audio": { + "documentation": "A collection of audio encryption presets.", + "locationName": "presetSpeke20Audio", + "shape": "PresetSpeke20Audio" + }, + "PresetSpeke20Video": { + "documentation": "A collection of video encryption presets.", + "locationName": "presetSpeke20Video", + "shape": "PresetSpeke20Video" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], + "type": "structure" + }, "EncryptionMethod": { "enum": [ "AES_128", @@ -1847,6 +1877,11 @@ "PackagingGroup": { "documentation": "A MediaPackage VOD PackagingGroup resource.", "members": { + "ApproximateAssetCount": { + "documentation": "The approximate asset count of the PackagingGroup.", + "locationName": "approximateAssetCount", + "shape": "__integer" + }, "Arn": { "documentation": "The ARN of the PackagingGroup.", "locationName": "arn", @@ -1929,6 +1964,31 @@ }, "type": "structure" }, + "PresetSpeke20Audio": { + "enum": [ + "PRESET-AUDIO-1", + "PRESET-AUDIO-2", + "PRESET-AUDIO-3", + "SHARED", + "UNENCRYPTED" + ], + "type": "string" + }, + "PresetSpeke20Video": { + "enum": [ + "PRESET-VIDEO-1", + "PRESET-VIDEO-2", + "PRESET-VIDEO-3", + "PRESET-VIDEO-4", + "PRESET-VIDEO-5", + "PRESET-VIDEO-6", + "PRESET-VIDEO-7", + "PRESET-VIDEO-8", + "SHARED", + "UNENCRYPTED" + ], + "type": "string" + }, "Profile": { "enum": [ "NONE", @@ -1968,6 +2028,10 @@ "SpekeKeyProvider": { "documentation": "A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.", "members": { + "EncryptionContractConfiguration": { + "locationName": "encryptionContractConfiguration", + "shape": "EncryptionContractConfiguration" + }, "RoleArn": { "documentation": "An Amazon Resource Name (ARN) of an IAM role that AWS Elemental\nMediaPackage will assume when accessing the key provider service.\n", "locationName": "roleArn", @@ -2133,6 +2197,11 @@ }, "UpdatePackagingGroupResponse": { "members": { + "ApproximateAssetCount": { + "documentation": "The approximate asset count of the PackagingGroup.", + "locationName": "approximateAssetCount", + "shape": "__integer" + }, "Arn": { "documentation": "The ARN of the PackagingGroup.", "locationName": "arn", diff --git a/botocore/data/mediapackage/2017-10-12/endpoint-rule-set-1.json b/botocore/data/mediapackage/2017-10-12/endpoint-rule-set-1.json new file mode 100644 index 00000000..42ae548a --- /dev/null +++ b/botocore/data/mediapackage/2017-10-12/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://mediapackage.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mediapackage/2017-10-12/service-2.json b/botocore/data/mediapackage/2017-10-12/service-2.json index 7bfbff67..2d603d02 100644 --- a/botocore/data/mediapackage/2017-10-12/service-2.json +++ b/botocore/data/mediapackage/2017-10-12/service-2.json @@ -774,6 +774,10 @@ "locationName": "constantInitializationVector", "shape": "__string" }, + "EncryptionMethod": { + "locationName": "encryptionMethod", + "shape": "CmafEncryptionMethod" + }, "KeyRotationIntervalSeconds": { "documentation": "Time (in seconds) between each encryption key rotation.", "locationName": "keyRotationIntervalSeconds", @@ -789,6 +793,14 @@ ], "type": "structure" }, + "CmafEncryptionMethod": { + "documentation": "The encryption method to use.", + "enum": [ + "SAMPLE_AES", + "AES_CTR" + ], + "type": "string" + }, "CmafPackage": { "documentation": "A Common Media Application Format (CMAF) packaging configuration.", "members": { @@ -1251,6 +1263,11 @@ "locationName": "encryption", "shape": "DashEncryption" }, + "IncludeIframeOnlyStream": { + "documentation": "When enabled, an I-Frame only stream will be included in the output.", + "locationName": "includeIframeOnlyStream", + "shape": "__boolean" + }, "ManifestLayout": { "documentation": "Determines the position of some tags in the Media Presentation Description (MPD). When set to FULL, elements like SegmentTemplate and ContentProtection are included in each Representation. When set to COMPACT, duplicate elements are combined and presented at the AdaptationSet level.", "locationName": "manifestLayout", @@ -1796,6 +1813,14 @@ "documentation": "The URL of the packaged OriginEndpoint for consumption.", "locationName": "url", "shape": "__string" + }, + "AdTriggers": { + "locationName": "adTriggers", + "shape": "AdTriggers" + }, + "AdsOnDeliveryRestrictions": { + "locationName": "adsOnDeliveryRestrictions", + "shape": "AdsOnDeliveryRestrictions" } }, "required": [ @@ -2410,13 +2435,26 @@ }, "PresetSpeke20Audio": { "enum": [ - "PRESET-AUDIO-1" + "PRESET-AUDIO-1", + "PRESET-AUDIO-2", + "PRESET-AUDIO-3", + "SHARED", + "UNENCRYPTED" ], "type": "string" }, "PresetSpeke20Video": { "enum": [ - "PRESET-VIDEO-1" + "PRESET-VIDEO-1", + "PRESET-VIDEO-2", + "PRESET-VIDEO-3", + "PRESET-VIDEO-4", + "PRESET-VIDEO-5", + "PRESET-VIDEO-6", + "PRESET-VIDEO-7", + "PRESET-VIDEO-8", + "SHARED", + "UNENCRYPTED" ], "type": "string" }, @@ -3053,4 +3091,4 @@ "type": "string" } } -} \ No newline at end of file +} diff --git a/botocore/data/mediastore-data/2017-09-01/endpoint-rule-set-1.json b/botocore/data/mediastore-data/2017-09-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..9953f98c --- /dev/null +++ b/botocore/data/mediastore-data/2017-09-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data.mediastore-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data.mediastore-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://data.mediastore.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://data.mediastore.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mediastore/2017-09-01/endpoint-rule-set-1.json b/botocore/data/mediastore/2017-09-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..94f0ac2a --- /dev/null +++ b/botocore/data/mediastore/2017-09-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediastore-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediastore-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mediastore.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://mediastore.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mediatailor/2018-04-23/endpoint-rule-set-1.json b/botocore/data/mediatailor/2018-04-23/endpoint-rule-set-1.json new file mode 100644 index 00000000..d4e42e31 --- /dev/null +++ b/botocore/data/mediatailor/2018-04-23/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.mediatailor-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.mediatailor-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.mediatailor.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.mediatailor.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mediatailor/2018-04-23/service-2.json b/botocore/data/mediatailor/2018-04-23/service-2.json index 33c897a4..763c9d6d 100644 --- a/botocore/data/mediatailor/2018-04-23/service-2.json +++ b/botocore/data/mediatailor/2018-04-23/service-2.json @@ -1,3794 +1,3553 @@ { - "documentation": "

Use the AWS Elemental MediaTailor SDKs and CLI to configure scalable ad insertion and linear channels. With MediaTailor, you can assemble existing content into a linear stream and serve targeted ads to viewers while maintaining broadcast quality in over-the-top (OTT) video applications. For information about using the service, including detailed information about the settings covered in this guide, see the AWS Elemental MediaTailor User Guide.

Through the SDKs and the CLI you manage AWS Elemental MediaTailor configurations and channels the same as you do through the console. For example, you specify ad insertion behavior and mapping information for the origin server and the ad decision server (ADS).

", - "metadata": { - "apiVersion": "2018-04-23", - "endpointPrefix": "api.mediatailor", - "jsonVersion": "1.1", - "protocol": "rest-json", - "serviceAbbreviation": "MediaTailor", - "serviceFullName": "AWS MediaTailor", - "serviceId": "MediaTailor", - "signatureVersion": "v4", - "signingName": "mediatailor", - "uid": "mediatailor-2018-04-23" + "version":"2.0", + "metadata":{ + "apiVersion":"2018-04-23", + "endpointPrefix":"api.mediatailor", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"MediaTailor", + "serviceFullName":"AWS MediaTailor", + "serviceId":"MediaTailor", + "signatureVersion":"v4", + "signingName":"mediatailor", + "uid":"mediatailor-2018-04-23" }, - "operations": { - "ConfigureLogsForPlaybackConfiguration": { - "documentation": "

Configures Amazon CloudWatch log settings for a playback configuration.

", - "errors": [], - "http": { - "method": "PUT", - "requestUri": "/configureLogs/playbackConfiguration", - "responseCode": 200 + "operations":{ + "ConfigureLogsForPlaybackConfiguration":{ + "name":"ConfigureLogsForPlaybackConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/configureLogs/playbackConfiguration", + "responseCode":200 }, - "input": { - "shape": "ConfigureLogsForPlaybackConfigurationRequest" - }, - "name": "ConfigureLogsForPlaybackConfiguration", - "output": { - "documentation": "

Success.

", - "shape": "ConfigureLogsForPlaybackConfigurationResponse" - } + "input":{"shape":"ConfigureLogsForPlaybackConfigurationRequest"}, + "output":{"shape":"ConfigureLogsForPlaybackConfigurationResponse"}, + "documentation":"

Amazon CloudWatch log settings for a playback configuration.

", + "idempotent":true }, - "CreateChannel": { - "documentation": "

Creates a channel.

", - "errors": [], - "http": { - "method": "POST", - "requestUri": "/channel/{channelName}", - "responseCode": 200 + "CreateChannel":{ + "name":"CreateChannel", + "http":{ + "method":"POST", + "requestUri":"/channel/{ChannelName}", + "responseCode":200 }, - "input": { - "shape": "CreateChannelRequest" - }, - "name": "CreateChannel", - "output": { - "documentation": "

Success.

", - "shape": "CreateChannelResponse" - } + "input":{"shape":"CreateChannelRequest"}, + "output":{"shape":"CreateChannelResponse"}, + "documentation":"

Creates a channel. For information about MediaTailor channels, see Working with channels in the MediaTailor User Guide.

", + "idempotent":true }, - "CreateLiveSource": { - "documentation": "

Creates name for a specific live source in a source location.

", - "errors": [], - "http": { - "method": "POST", - "requestUri": "/sourceLocation/{sourceLocationName}/liveSource/{liveSourceName}", - "responseCode": 200 + "CreateLiveSource":{ + "name":"CreateLiveSource", + "http":{ + "method":"POST", + "requestUri":"/sourceLocation/{SourceLocationName}/liveSource/{LiveSourceName}", + "responseCode":200 }, - "input": { - "shape": "CreateLiveSourceRequest" - }, - "name": "CreateLiveSource", - "output": { - "documentation": "

Success.

", - "shape": "CreateLiveSourceResponse" - } + "input":{"shape":"CreateLiveSourceRequest"}, + "output":{"shape":"CreateLiveSourceResponse"}, + "documentation":"

The live source configuration.

", + "idempotent":true }, - "CreatePrefetchSchedule": { - "documentation": "

Creates a new prefetch schedule for the specified playback configuration.

", - "errors": [], - "http": { - "method": "POST", - "requestUri": "/prefetchSchedule/{PlaybackConfigurationName}/{Name}", - "responseCode": 200 + "CreatePrefetchSchedule":{ + "name":"CreatePrefetchSchedule", + "http":{ + "method":"POST", + "requestUri":"/prefetchSchedule/{PlaybackConfigurationName}/{Name}", + "responseCode":200 }, - "input": { - "shape": "CreatePrefetchScheduleRequest" - }, - "name": "CreatePrefetchSchedule", - "output": { - "documentation": "

Success.

", - "shape": "CreatePrefetchScheduleResponse" - } + "input":{"shape":"CreatePrefetchScheduleRequest"}, + "output":{"shape":"CreatePrefetchScheduleResponse"}, + "documentation":"

Creates a prefetch schedule for a playback configuration. A prefetch schedule allows you to tell MediaTailor to fetch and prepare certain ads before an ad break happens. For more information about ad prefetching, see Using ad prefetching in the MediaTailor User Guide.

", + "idempotent":true }, - "CreateProgram": { - "documentation": "

Creates a program.

", - "errors": [], - "http": { - "method": "POST", - "requestUri": "/channel/{channelName}/program/{programName}", - "responseCode": 200 + "CreateProgram":{ + "name":"CreateProgram", + "http":{ + "method":"POST", + "requestUri":"/channel/{ChannelName}/program/{ProgramName}", + "responseCode":200 }, - "input": { - "shape": "CreateProgramRequest" - }, - "name": "CreateProgram", - "output": { - "documentation": "

Success.

", - "shape": "CreateProgramResponse" - } + "input":{"shape":"CreateProgramRequest"}, + "output":{"shape":"CreateProgramResponse"}, + "documentation":"

Creates a program within a channel. For information about programs, see Working with programs in the MediaTailor User Guide.

", + "idempotent":true }, - "CreateSourceLocation": { - "documentation": "

Creates a source location on a specific channel.

", - "errors": [], - "http": { - "method": "POST", - "requestUri": "/sourceLocation/{sourceLocationName}", - "responseCode": 200 + "CreateSourceLocation":{ + "name":"CreateSourceLocation", + "http":{ + "method":"POST", + "requestUri":"/sourceLocation/{SourceLocationName}", + "responseCode":200 }, - "input": { - "shape": "CreateSourceLocationRequest" - }, - "name": "CreateSourceLocation", - "output": { - "documentation": "

Success.

", - "shape": "CreateSourceLocationResponse" - } + "input":{"shape":"CreateSourceLocationRequest"}, + "output":{"shape":"CreateSourceLocationResponse"}, + "documentation":"

Creates a source location. A source location is a container for sources. For more information about source locations, see Working with source locations in the MediaTailor User Guide.

", + "idempotent":true }, - "CreateVodSource": { - "documentation": "

Creates name for a specific VOD source in a source location.

", - "errors": [], - "http": { - "method": "POST", - "requestUri": "/sourceLocation/{sourceLocationName}/vodSource/{vodSourceName}", - "responseCode": 200 + "CreateVodSource":{ + "name":"CreateVodSource", + "http":{ + "method":"POST", + "requestUri":"/sourceLocation/{SourceLocationName}/vodSource/{VodSourceName}", + "responseCode":200 }, - "input": { - "shape": "CreateVodSourceRequest" - }, - "name": "CreateVodSource", - "output": { - "documentation": "

Success.

", - "shape": "CreateVodSourceResponse" - } + "input":{"shape":"CreateVodSourceRequest"}, + "output":{"shape":"CreateVodSourceResponse"}, + "documentation":"

The VOD source configuration parameters.

", + "idempotent":true }, - "DeleteChannel": { - "documentation": "

Deletes a channel. You must stop the channel before it can be deleted.

", - "errors": [], - "http": { - "method": "DELETE", - "requestUri": "/channel/{channelName}", - "responseCode": 200 + "DeleteChannel":{ + "name":"DeleteChannel", + "http":{ + "method":"DELETE", + "requestUri":"/channel/{ChannelName}", + "responseCode":200 }, - "input": { - "shape": "DeleteChannelRequest" - }, - "name": "DeleteChannel", - "output": { - "documentation": "

Success.

", - "shape": "DeleteChannelResponse" - } + "input":{"shape":"DeleteChannelRequest"}, + "output":{"shape":"DeleteChannelResponse"}, + "documentation":"

Deletes a channel. For information about MediaTailor channels, see Working with channels in the MediaTailor User Guide.

", + "idempotent":true }, - "DeleteChannelPolicy": { - "documentation": "

Deletes a channel's IAM policy.

", - "errors": [], - "http": { - "method": "DELETE", - "requestUri": "/channel/{channelName}/policy", - "responseCode": 200 + "DeleteChannelPolicy":{ + "name":"DeleteChannelPolicy", + "http":{ + "method":"DELETE", + "requestUri":"/channel/{ChannelName}/policy", + "responseCode":200 }, - "input": { - "shape": "DeleteChannelPolicyRequest" - }, - "name": "DeleteChannelPolicy", - "output": { - "documentation": "

Success.

", - "shape": "DeleteChannelPolicyResponse" - } + "input":{"shape":"DeleteChannelPolicyRequest"}, + "output":{"shape":"DeleteChannelPolicyResponse"}, + "documentation":"

The channel policy to delete.

", + "idempotent":true }, - "DeleteLiveSource": { - "documentation": "

Deletes a specific live source in a specific source location.

", - "errors": [], - "http": { - "method": "DELETE", - "requestUri": "/sourceLocation/{sourceLocationName}/liveSource/{liveSourceName}", - "responseCode": 200 + "DeleteLiveSource":{ + "name":"DeleteLiveSource", + "http":{ + "method":"DELETE", + "requestUri":"/sourceLocation/{SourceLocationName}/liveSource/{LiveSourceName}", + "responseCode":200 }, - "input": { - "shape": "DeleteLiveSourceRequest" - }, - "name": "DeleteLiveSource", - "output": { - "documentation": "

Success.

", - "shape": "DeleteLiveSourceResponse" - } + "input":{"shape":"DeleteLiveSourceRequest"}, + "output":{"shape":"DeleteLiveSourceResponse"}, + "documentation":"

The live source to delete.

", + "idempotent":true }, - "DeletePlaybackConfiguration": { - "documentation": "

Deletes the playback configuration for the specified name.

", - "errors": [], - "http": { - "method": "DELETE", - "requestUri": "/playbackConfiguration/{Name}", - "responseCode": 204 + "DeletePlaybackConfiguration":{ + "name":"DeletePlaybackConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/playbackConfiguration/{Name}", + "responseCode":204 }, - "input": { - "shape": "DeletePlaybackConfigurationRequest" - }, - "name": "DeletePlaybackConfiguration", - "output": { - "documentation": "

The request was successful and there is no content in the response.

", - "shape": "DeletePlaybackConfigurationResponse" - } + "input":{"shape":"DeletePlaybackConfigurationRequest"}, + "output":{"shape":"DeletePlaybackConfigurationResponse"}, + "documentation":"

Deletes a playback configuration. For information about MediaTailor configurations, see Working with configurations in AWS Elemental MediaTailor.

", + "idempotent":true }, - "DeletePrefetchSchedule": { - "documentation": "

Deletes a prefetch schedule for a specific playback configuration. If you call DeletePrefetchSchedule on an expired prefetch schedule, MediaTailor returns an HTTP 404 status code.

", - "errors": [], - "http": { - "method": "DELETE", - "requestUri": "/prefetchSchedule/{PlaybackConfigurationName}/{Name}", - "responseCode": 204 + "DeletePrefetchSchedule":{ + "name":"DeletePrefetchSchedule", + "http":{ + "method":"DELETE", + "requestUri":"/prefetchSchedule/{PlaybackConfigurationName}/{Name}", + "responseCode":204 }, - "input": { - "shape": "DeletePrefetchScheduleRequest" - }, - "name": "DeletePrefetchSchedule", - "output": { - "documentation": "

The request was successful and there is no content in the response.

", - "shape": "DeletePrefetchScheduleResponse" - } + "input":{"shape":"DeletePrefetchScheduleRequest"}, + "output":{"shape":"DeletePrefetchScheduleResponse"}, + "documentation":"

Deletes a prefetch schedule for a specific playback configuration. If you call DeletePrefetchSchedule on an expired prefetch schedule, MediaTailor returns an HTTP 404 status code. For more information about ad prefetching, see Using ad prefetching in the MediaTailor User Guide.

", + "idempotent":true }, - "DeleteProgram": { - "documentation": "

Deletes a specific program on a specific channel.

", - "errors": [], - "http": { - "method": "DELETE", - "requestUri": "/channel/{channelName}/program/{programName}", - "responseCode": 200 + "DeleteProgram":{ + "name":"DeleteProgram", + "http":{ + "method":"DELETE", + "requestUri":"/channel/{ChannelName}/program/{ProgramName}", + "responseCode":200 }, - "input": { - "shape": "DeleteProgramRequest" - }, - "name": "DeleteProgram", - "output": { - "documentation": "

Success.

", - "shape": "DeleteProgramResponse" - } + "input":{"shape":"DeleteProgramRequest"}, + "output":{"shape":"DeleteProgramResponse"}, + "documentation":"

Deletes a program within a channel. For information about programs, see Working with programs in the MediaTailor User Guide.

", + "idempotent":true }, - "DeleteSourceLocation": { - "documentation": "

Deletes a source location on a specific channel.

", - "errors": [], - "http": { - "method": "DELETE", - "requestUri": "/sourceLocation/{sourceLocationName}", - "responseCode": 200 + "DeleteSourceLocation":{ + "name":"DeleteSourceLocation", + "http":{ + "method":"DELETE", + "requestUri":"/sourceLocation/{SourceLocationName}", + "responseCode":200 }, - "input": { - "shape": "DeleteSourceLocationRequest" - }, - "name": "DeleteSourceLocation", - "output": { - "documentation": "

Success.

", - "shape": "DeleteSourceLocationResponse" - } + "input":{"shape":"DeleteSourceLocationRequest"}, + "output":{"shape":"DeleteSourceLocationResponse"}, + "documentation":"

Deletes a source location. A source location is a container for sources. For more information about source locations, see Working with source locations in the MediaTailor User Guide.

", + "idempotent":true }, - "DeleteVodSource": { - "documentation": "

Deletes a specific VOD source in a specific source location.

", - "errors": [], - "http": { - "method": "DELETE", - "requestUri": "/sourceLocation/{sourceLocationName}/vodSource/{vodSourceName}", - "responseCode": 200 + "DeleteVodSource":{ + "name":"DeleteVodSource", + "http":{ + "method":"DELETE", + "requestUri":"/sourceLocation/{SourceLocationName}/vodSource/{VodSourceName}", + "responseCode":200 }, - "input": { - "shape": "DeleteVodSourceRequest" - }, - "name": "DeleteVodSource", - "output": { - "documentation": "

Success.

", - "shape": "DeleteVodSourceResponse" - } + "input":{"shape":"DeleteVodSourceRequest"}, + "output":{"shape":"DeleteVodSourceResponse"}, + "documentation":"

The video on demand (VOD) source to delete.

", + "idempotent":true }, - "DescribeChannel": { - "documentation": "

Describes the properties of a specific channel.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/channel/{channelName}", - "responseCode": 200 + "DescribeChannel":{ + "name":"DescribeChannel", + "http":{ + "method":"GET", + "requestUri":"/channel/{ChannelName}", + "responseCode":200 }, - "input": { - "shape": "DescribeChannelRequest" - }, - "name": "DescribeChannel", - "output": { - "documentation": "

Success.

", - "shape": "DescribeChannelResponse" - } + "input":{"shape":"DescribeChannelRequest"}, + "output":{"shape":"DescribeChannelResponse"}, + "documentation":"

Describes a channel. For information about MediaTailor channels, see Working with channels in the MediaTailor User Guide.

" }, - "DescribeLiveSource": { - "documentation": "

Provides details about a specific live source in a specific source location.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/sourceLocation/{sourceLocationName}/liveSource/{liveSourceName}", - "responseCode": 200 + "DescribeLiveSource":{ + "name":"DescribeLiveSource", + "http":{ + "method":"GET", + "requestUri":"/sourceLocation/{SourceLocationName}/liveSource/{LiveSourceName}", + "responseCode":200 }, - "input": { - "shape": "DescribeLiveSourceRequest" - }, - "name": "DescribeLiveSource", - "output": { - "documentation": "

Success.

", - "shape": "DescribeLiveSourceResponse" - } + "input":{"shape":"DescribeLiveSourceRequest"}, + "output":{"shape":"DescribeLiveSourceResponse"}, + "documentation":"

The live source to describe.

" }, - "DescribeProgram": { - "documentation": "

Retrieves the properties of the requested program.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/channel/{channelName}/program/{programName}", - "responseCode": 200 + "DescribeProgram":{ + "name":"DescribeProgram", + "http":{ + "method":"GET", + "requestUri":"/channel/{ChannelName}/program/{ProgramName}", + "responseCode":200 }, - "input": { - "shape": "DescribeProgramRequest" - }, - "name": "DescribeProgram", - "output": { - "documentation": "

Success.

", - "shape": "DescribeProgramResponse" - } + "input":{"shape":"DescribeProgramRequest"}, + "output":{"shape":"DescribeProgramResponse"}, + "documentation":"

Describes a program within a channel. For information about programs, see Working with programs in the MediaTailor User Guide.

" }, - "DescribeSourceLocation": { - "documentation": "

Retrieves the properties of the requested source location.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/sourceLocation/{sourceLocationName}", - "responseCode": 200 + "DescribeSourceLocation":{ + "name":"DescribeSourceLocation", + "http":{ + "method":"GET", + "requestUri":"/sourceLocation/{SourceLocationName}", + "responseCode":200 }, - "input": { - "shape": "DescribeSourceLocationRequest" - }, - "name": "DescribeSourceLocation", - "output": { - "documentation": "

Success.

", - "shape": "DescribeSourceLocationResponse" - } + "input":{"shape":"DescribeSourceLocationRequest"}, + "output":{"shape":"DescribeSourceLocationResponse"}, + "documentation":"

Describes a source location. A source location is a container for sources. For more information about source locations, see Working with source locations in the MediaTailor User Guide.

" }, - "DescribeVodSource": { - "documentation": "

Provides details about a specific VOD source in a specific source location.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/sourceLocation/{sourceLocationName}/vodSource/{vodSourceName}", - "responseCode": 200 + "DescribeVodSource":{ + "name":"DescribeVodSource", + "http":{ + "method":"GET", + "requestUri":"/sourceLocation/{SourceLocationName}/vodSource/{VodSourceName}", + "responseCode":200 }, - "input": { - "shape": "DescribeVodSourceRequest" - }, - "name": "DescribeVodSource", - "output": { - "documentation": "

Success.

", - "shape": "DescribeVodSourceResponse" - } + "input":{"shape":"DescribeVodSourceRequest"}, + "output":{"shape":"DescribeVodSourceResponse"}, + "documentation":"

Provides details about a specific video on demand (VOD) source in a specific source location.

" }, - "GetChannelPolicy": { - "documentation": "

Retrieves information about a channel's IAM policy.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/channel/{channelName}/policy", - "responseCode": 200 + "GetChannelPolicy":{ + "name":"GetChannelPolicy", + "http":{ + "method":"GET", + "requestUri":"/channel/{ChannelName}/policy", + "responseCode":200 }, - "input": { - "shape": "GetChannelPolicyRequest" - }, - "name": "GetChannelPolicy", - "output": { - "documentation": "

Success.

", - "shape": "GetChannelPolicyResponse" - } + "input":{"shape":"GetChannelPolicyRequest"}, + "output":{"shape":"GetChannelPolicyResponse"}, + "documentation":"

Returns the channel's IAM policy. IAM policies are used to control access to your channel.

" }, - "GetChannelSchedule": { - "documentation": "

Retrieves information about your channel's schedule.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/channel/{channelName}/schedule", - "responseCode": 200 + "GetChannelSchedule":{ + "name":"GetChannelSchedule", + "http":{ + "method":"GET", + "requestUri":"/channel/{ChannelName}/schedule", + "responseCode":200 }, - "input": { - "shape": "GetChannelScheduleRequest" - }, - "name": "GetChannelSchedule", - "output": { - "documentation": "

Success.

", - "shape": "GetChannelScheduleResponse" - } + "input":{"shape":"GetChannelScheduleRequest"}, + "output":{"shape":"GetChannelScheduleResponse"}, + "documentation":"

Retrieves information about your channel's schedule.

" }, - "GetPlaybackConfiguration": { - "documentation": "

Returns the playback configuration for the specified name.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/playbackConfiguration/{Name}", - "responseCode": 200 + "GetPlaybackConfiguration":{ + "name":"GetPlaybackConfiguration", + "http":{ + "method":"GET", + "requestUri":"/playbackConfiguration/{Name}", + "responseCode":200 }, - "input": { - "shape": "GetPlaybackConfigurationRequest" - }, - "name": "GetPlaybackConfiguration", - "output": { - "documentation": "

Success.

", - "shape": "GetPlaybackConfigurationResponse" - } + "input":{"shape":"GetPlaybackConfigurationRequest"}, + "output":{"shape":"GetPlaybackConfigurationResponse"}, + "documentation":"

Retrieves a playback configuration. For information about MediaTailor configurations, see Working with configurations in AWS Elemental MediaTailor.

" }, - "GetPrefetchSchedule": { - "documentation": "

Returns information about the prefetch schedule for a specific playback configuration. If you call GetPrefetchSchedule on an expired prefetch schedule, MediaTailor returns an HTTP 404 status code.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/prefetchSchedule/{PlaybackConfigurationName}/{Name}", - "responseCode": 200 + "GetPrefetchSchedule":{ + "name":"GetPrefetchSchedule", + "http":{ + "method":"GET", + "requestUri":"/prefetchSchedule/{PlaybackConfigurationName}/{Name}", + "responseCode":200 }, - "input": { - "shape": "GetPrefetchScheduleRequest" - }, - "name": "GetPrefetchSchedule", - "output": { - "documentation": "

Success.

", - "shape": "GetPrefetchScheduleResponse" - } + "input":{"shape":"GetPrefetchScheduleRequest"}, + "output":{"shape":"GetPrefetchScheduleResponse"}, + "documentation":"

Retrieves a prefetch schedule for a playback configuration. A prefetch schedule allows you to tell MediaTailor to fetch and prepare certain ads before an ad break happens. For more information about ad prefetching, see Using ad prefetching in the MediaTailor User Guide.

" }, - "ListAlerts": { - "documentation": "

Returns a list of alerts for the given resource.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/alerts", - "responseCode": 200 + "ListAlerts":{ + "name":"ListAlerts", + "http":{ + "method":"GET", + "requestUri":"/alerts", + "responseCode":200 }, - "input": { - "shape": "ListAlertsRequest" - }, - "name": "ListAlerts", - "output": { - "documentation": "

Success.

", - "shape": "ListAlertsResponse" - } + "input":{"shape":"ListAlertsRequest"}, + "output":{"shape":"ListAlertsResponse"}, + "documentation":"

Lists the alerts that are associated with a MediaTailor channel assembly resource.

" }, - "ListChannels": { - "documentation": "

Retrieves a list of channels that are associated with this account.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/channels", - "responseCode": 200 + "ListChannels":{ + "name":"ListChannels", + "http":{ + "method":"GET", + "requestUri":"/channels", + "responseCode":200 }, - "input": { - "shape": "ListChannelsRequest" - }, - "name": "ListChannels", - "output": { - "documentation": "

Success.

", - "shape": "ListChannelsResponse" - } + "input":{"shape":"ListChannelsRequest"}, + "output":{"shape":"ListChannelsResponse"}, + "documentation":"

Retrieves information about the channels that are associated with the current AWS account.

" }, - "ListLiveSources": { - "documentation": "

lists all the live sources in a source location.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/sourceLocation/{sourceLocationName}/liveSources", - "responseCode": 200 + "ListLiveSources":{ + "name":"ListLiveSources", + "http":{ + "method":"GET", + "requestUri":"/sourceLocation/{SourceLocationName}/liveSources", + "responseCode":200 }, - "input": { - "shape": "ListLiveSourcesRequest" - }, - "name": "ListLiveSources", - "output": { - "documentation": "

Success.

", - "shape": "ListLiveSourcesResponse" - } + "input":{"shape":"ListLiveSourcesRequest"}, + "output":{"shape":"ListLiveSourcesResponse"}, + "documentation":"

Lists the live sources contained in a source location. A source represents a piece of content.

" }, - "ListPlaybackConfigurations": { - "documentation": "

Returns a list of the playback configurations defined in AWS Elemental MediaTailor. You can specify a maximum number of configurations to return at a time. The default maximum is 50. Results are returned in pagefuls. If MediaTailor has more configurations than the specified maximum, it provides parameters in the response that you can use to retrieve the next pageful.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/playbackConfigurations", - "responseCode": 200 + "ListPlaybackConfigurations":{ + "name":"ListPlaybackConfigurations", + "http":{ + "method":"GET", + "requestUri":"/playbackConfigurations", + "responseCode":200 }, - "input": { - "shape": "ListPlaybackConfigurationsRequest" - }, - "name": "ListPlaybackConfigurations", - "output": { - "documentation": "

Success.

", - "shape": "ListPlaybackConfigurationsResponse" - } + "input":{"shape":"ListPlaybackConfigurationsRequest"}, + "output":{"shape":"ListPlaybackConfigurationsResponse"}, + "documentation":"

Retrieves existing playback configurations. For information about MediaTailor configurations, see Working with Configurations in AWS Elemental MediaTailor.

" }, - "ListPrefetchSchedules": { - "documentation": "

Creates a new prefetch schedule.

", - "errors": [], - "http": { - "method": "POST", - "requestUri": "/prefetchSchedule/{PlaybackConfigurationName}", - "responseCode": 200 + "ListPrefetchSchedules":{ + "name":"ListPrefetchSchedules", + "http":{ + "method":"POST", + "requestUri":"/prefetchSchedule/{PlaybackConfigurationName}", + "responseCode":200 }, - "input": { - "shape": "ListPrefetchSchedulesRequest" - }, - "name": "ListPrefetchSchedules", - "output": { - "documentation": "

Success.

", - "shape": "ListPrefetchSchedulesResponse" - } + "input":{"shape":"ListPrefetchSchedulesRequest"}, + "output":{"shape":"ListPrefetchSchedulesResponse"}, + "documentation":"

Lists the prefetch schedules for a playback configuration.

" }, - "ListSourceLocations": { - "documentation": "

Retrieves a list of source locations.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/sourceLocations", - "responseCode": 200 + "ListSourceLocations":{ + "name":"ListSourceLocations", + "http":{ + "method":"GET", + "requestUri":"/sourceLocations", + "responseCode":200 }, - "input": { - "shape": "ListSourceLocationsRequest" - }, - "name": "ListSourceLocations", - "output": { - "documentation": "

Success.

", - "shape": "ListSourceLocationsResponse" - } + "input":{"shape":"ListSourceLocationsRequest"}, + "output":{"shape":"ListSourceLocationsResponse"}, + "documentation":"

Lists the source locations for a channel. A source location defines the host server URL, and contains a list of sources.

" }, - "ListTagsForResource": { - "documentation": "

Returns a list of the tags assigned to the specified playback configuration resource.

", - "errors": [ - { - "documentation": "

One or more parameters in this request aren't valid.

", - "shape": "BadRequestException" - } + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"BadRequestException"} ], - "http": { - "method": "GET", - "requestUri": "/tags/{ResourceArn}", - "responseCode": 200 - }, - "input": { - "shape": "ListTagsForResourceRequest" - }, - "name": "ListTagsForResource", - "output": { - "documentation": "

Success.

", - "shape": "ListTagsForResourceResponse" - } + "documentation":"

A list of tags that are associated with this resource. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

" }, - "ListVodSources": { - "documentation": "

Lists all the VOD sources in a source location.

", - "errors": [], - "http": { - "method": "GET", - "requestUri": "/sourceLocation/{sourceLocationName}/vodSources", - "responseCode": 200 + "ListVodSources":{ + "name":"ListVodSources", + "http":{ + "method":"GET", + "requestUri":"/sourceLocation/{SourceLocationName}/vodSources", + "responseCode":200 }, - "input": { - "shape": "ListVodSourcesRequest" - }, - "name": "ListVodSources", - "output": { - "documentation": "

Success.

", - "shape": "ListVodSourcesResponse" - } + "input":{"shape":"ListVodSourcesRequest"}, + "output":{"shape":"ListVodSourcesResponse"}, + "documentation":"

Lists the VOD sources contained in a source location. A source represents a piece of content.

" }, - "PutChannelPolicy": { - "documentation": "

Creates an IAM policy for the channel.

", - "errors": [], - "http": { - "method": "PUT", - "requestUri": "/channel/{channelName}/policy", - "responseCode": 200 + "PutChannelPolicy":{ + "name":"PutChannelPolicy", + "http":{ + "method":"PUT", + "requestUri":"/channel/{ChannelName}/policy", + "responseCode":200 }, - "input": { - "shape": "PutChannelPolicyRequest" - }, - "name": "PutChannelPolicy", - "output": { - "documentation": "

Success.

", - "shape": "PutChannelPolicyResponse" - } + "input":{"shape":"PutChannelPolicyRequest"}, + "output":{"shape":"PutChannelPolicyResponse"}, + "documentation":"

Creates an IAM policy for the channel. IAM policies are used to control access to your channel.

", + "idempotent":true }, - "PutPlaybackConfiguration": { - "documentation": "

Adds a new playback configuration to AWS Elemental MediaTailor.

", - "errors": [], - "http": { - "method": "PUT", - "requestUri": "/playbackConfiguration", - "responseCode": 200 + "PutPlaybackConfiguration":{ + "name":"PutPlaybackConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/playbackConfiguration", + "responseCode":200 }, - "input": { - "shape": "PutPlaybackConfigurationRequest" - }, - "name": "PutPlaybackConfiguration", - "output": { - "documentation": "

Success.

", - "shape": "PutPlaybackConfigurationResponse" - } + "input":{"shape":"PutPlaybackConfigurationRequest"}, + "output":{"shape":"PutPlaybackConfigurationResponse"}, + "documentation":"

Creates a playback configuration. For information about MediaTailor configurations, see Working with configurations in AWS Elemental MediaTailor.

", + "idempotent":true }, - "StartChannel": { - "documentation": "

Starts a specific channel.

", - "errors": [], - "http": { - "method": "PUT", - "requestUri": "/channel/{channelName}/start", - "responseCode": 200 + "StartChannel":{ + "name":"StartChannel", + "http":{ + "method":"PUT", + "requestUri":"/channel/{ChannelName}/start", + "responseCode":200 }, - "input": { - "shape": "StartChannelRequest" - }, - "name": "StartChannel", - "output": { - "documentation": "

Success.

", - "shape": "StartChannelResponse" - } + "input":{"shape":"StartChannelRequest"}, + "output":{"shape":"StartChannelResponse"}, + "documentation":"

Starts a channel. For information about MediaTailor channels, see Working with channels in the MediaTailor User Guide.

", + "idempotent":true }, - "StopChannel": { - "documentation": "

Stops a specific channel.

", - "errors": [], - "http": { - "method": "PUT", - "requestUri": "/channel/{channelName}/stop", - "responseCode": 200 + "StopChannel":{ + "name":"StopChannel", + "http":{ + "method":"PUT", + "requestUri":"/channel/{ChannelName}/stop", + "responseCode":200 }, - "input": { - "shape": "StopChannelRequest" - }, - "name": "StopChannel", - "output": { - "documentation": "

Success.

", - "shape": "StopChannelResponse" - } + "input":{"shape":"StopChannelRequest"}, + "output":{"shape":"StopChannelResponse"}, + "documentation":"

Stops a channel. For information about MediaTailor channels, see Working with channels in the MediaTailor User Guide.

", + "idempotent":true }, - "TagResource": { - "documentation": "

Adds tags to the specified playback configuration resource. You can specify one or more tags to add.

", - "errors": [ - { - "documentation": "

One or more parameters in this request aren't valid.

", - "shape": "BadRequestException" - } + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{ResourceArn}", + "responseCode":204 + }, + "input":{"shape":"TagResourceRequest"}, + "errors":[ + {"shape":"BadRequestException"} ], - "http": { - "method": "POST", - "requestUri": "/tags/{ResourceArn}", - "responseCode": 204 - }, - "input": { - "shape": "TagResourceRequest" - }, - "name": "TagResource" + "documentation":"

The resource to tag. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

" }, - "UntagResource": { - "documentation": "

Removes tags from the specified playback configuration resource. You can specify one or more tags to remove.

", - "errors": [ - { - "documentation": "

One or more parameters in this request aren't valid.

", - "shape": "BadRequestException" - } + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{ResourceArn}", + "responseCode":204 + }, + "input":{"shape":"UntagResourceRequest"}, + "errors":[ + {"shape":"BadRequestException"} ], - "http": { - "method": "DELETE", - "requestUri": "/tags/{ResourceArn}", - "responseCode": 204 - }, - "input": { - "shape": "UntagResourceRequest" - }, - "name": "UntagResource" + "documentation":"

The resource to untag.

", + "idempotent":true }, - "UpdateChannel": { - "documentation": "

Updates an existing channel.

", - "errors": [], - "http": { - "method": "PUT", - "requestUri": "/channel/{channelName}", - "responseCode": 200 + "UpdateChannel":{ + "name":"UpdateChannel", + "http":{ + "method":"PUT", + "requestUri":"/channel/{ChannelName}", + "responseCode":200 }, - "input": { - "shape": "UpdateChannelRequest" - }, - "name": "UpdateChannel", - "output": { - "documentation": "

Success.

", - "shape": "UpdateChannelResponse" - } + "input":{"shape":"UpdateChannelRequest"}, + "output":{"shape":"UpdateChannelResponse"}, + "documentation":"

Updates a channel. For information about MediaTailor channels, see Working with channels in the MediaTailor User Guide.

", + "idempotent":true }, - "UpdateLiveSource": { - "documentation": "

Updates a specific live source in a specific source location.

", - "errors": [], - "http": { - "method": "PUT", - "requestUri": "/sourceLocation/{sourceLocationName}/liveSource/{liveSourceName}", - "responseCode": 200 + "UpdateLiveSource":{ + "name":"UpdateLiveSource", + "http":{ + "method":"PUT", + "requestUri":"/sourceLocation/{SourceLocationName}/liveSource/{LiveSourceName}", + "responseCode":200 }, - "input": { - "shape": "UpdateLiveSourceRequest" - }, - "name": "UpdateLiveSource", - "output": { - "documentation": "

Success.

", - "shape": "UpdateLiveSourceResponse" - } + "input":{"shape":"UpdateLiveSourceRequest"}, + "output":{"shape":"UpdateLiveSourceResponse"}, + "documentation":"

Updates a live source's configuration.

", + "idempotent":true }, - "UpdateSourceLocation": { - "documentation": "

Updates a source location on a specific channel.

", - "errors": [], - "http": { - "method": "PUT", - "requestUri": "/sourceLocation/{sourceLocationName}", - "responseCode": 200 + "UpdateSourceLocation":{ + "name":"UpdateSourceLocation", + "http":{ + "method":"PUT", + "requestUri":"/sourceLocation/{SourceLocationName}", + "responseCode":200 }, - "input": { - "shape": "UpdateSourceLocationRequest" - }, - "name": "UpdateSourceLocation", - "output": { - "documentation": "

Success.

", - "shape": "UpdateSourceLocationResponse" - } + "input":{"shape":"UpdateSourceLocationRequest"}, + "output":{"shape":"UpdateSourceLocationResponse"}, + "documentation":"

Updates a source location. A source location is a container for sources. For more information about source locations, see Working with source locations in the MediaTailor User Guide.

", + "idempotent":true }, - "UpdateVodSource": { - "documentation": "

Updates a specific VOD source in a specific source location.

", - "errors": [], - "http": { - "method": "PUT", - "requestUri": "/sourceLocation/{sourceLocationName}/vodSource/{vodSourceName}", - "responseCode": 200 + "UpdateVodSource":{ + "name":"UpdateVodSource", + "http":{ + "method":"PUT", + "requestUri":"/sourceLocation/{SourceLocationName}/vodSource/{VodSourceName}", + "responseCode":200 }, - "input": { - "shape": "UpdateVodSourceRequest" - }, - "name": "UpdateVodSource", - "output": { - "documentation": "

Success.

", - "shape": "UpdateVodSourceResponse" - } + "input":{"shape":"UpdateVodSourceRequest"}, + "output":{"shape":"UpdateVodSourceResponse"}, + "documentation":"

Updates a VOD source's configuration.

", + "idempotent":true } }, - "shapes": { - "AccessConfiguration": { - "documentation": "

Access configuration parameters.

", - "members": { - "AccessType": { - "documentation": "

The type of authentication used to access content from HttpConfiguration::BaseUrl on your source location. Accepted value: S3_SIGV4.

S3_SIGV4 - AWS Signature Version 4 authentication for Amazon S3 hosted virtual-style access. If your source location base URL is an Amazon S3 bucket, MediaTailor can use AWS Signature Version 4 (SigV4) authentication to access the bucket where your source content is stored. Your MediaTailor source location baseURL must follow the S3 virtual hosted-style request URL format. For example, https://bucket-name.s3.Region.amazonaws.com/key-name.

Before you can use S3_SIGV4, you must meet these requirements:

\u2022 You must allow MediaTailor to access your S3 bucket by granting mediatailor.amazonaws.com principal access in IAM. For information about configuring access in IAM, see Access management in the IAM User Guide.

\u2022 The mediatailor.amazonaws.com service principal must have permissions to read all top level manifests referenced by the VodSource packaging configurations.

\u2022 The caller of the API must have s3:GetObject IAM permissions to read all top level manifests referenced by your MediaTailor VodSource packaging configurations.

", - "shape": "AccessType" + "shapes":{ + "AccessConfiguration":{ + "type":"structure", + "members":{ + "AccessType":{ + "shape":"AccessType", + "documentation":"

The type of authentication used to access content from HttpConfiguration::BaseUrl on your source location. Accepted value: S3_SIGV4.

S3_SIGV4 - AWS Signature Version 4 authentication for Amazon S3 hosted virtual-style access. If your source location base URL is an Amazon S3 bucket, MediaTailor can use AWS Signature Version 4 (SigV4) authentication to access the bucket where your source content is stored. Your MediaTailor source location baseURL must follow the S3 virtual hosted-style request URL format. For example, https://bucket-name.s3.Region.amazonaws.com/key-name.

Before you can use S3_SIGV4, you must meet these requirements:

• You must allow MediaTailor to access your S3 bucket by granting mediatailor.amazonaws.com principal access in IAM. For information about configuring access in IAM, see Access management in the IAM User Guide.

• The mediatailor.amazonaws.com service principal must have permissions to read all top level manifests referenced by the VodSource packaging configurations.

• The caller of the API must have s3:GetObject IAM permissions to read all top level manifests referenced by your MediaTailor VodSource packaging configurations.

" }, - "SecretsManagerAccessTokenConfiguration": { - "documentation": "

AWS Secrets Manager access token configuration parameters.

", - "shape": "SecretsManagerAccessTokenConfiguration" + "SecretsManagerAccessTokenConfiguration":{ + "shape":"SecretsManagerAccessTokenConfiguration", + "documentation":"

AWS Secrets Manager access token configuration parameters.

" } }, - "type": "structure" + "documentation":"

Access configuration parameters.

" }, - "AccessType": { - "enum": [ + "AccessType":{ + "type":"string", + "enum":[ "S3_SIGV4", "SECRETS_MANAGER_ACCESS_TOKEN" - ], - "type": "string" + ] }, - "AdBreak": { - "documentation": "

Ad break configuration parameters.

", - "members": { - "MessageType": { - "documentation": "

The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT.

", - "shape": "MessageType" + "AdBreak":{ + "type":"structure", + "members":{ + "MessageType":{ + "shape":"MessageType", + "documentation":"

The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT, TIME_SIGNAL.

" }, - "OffsetMillis": { - "documentation": "

How long (in milliseconds) after the beginning of the program that an ad starts. This value must fall within 100ms of a segment boundary, otherwise the ad break will be skipped.

", - "shape": "__long" + "OffsetMillis":{ + "shape":"__long", + "documentation":"

How long (in milliseconds) after the beginning of the program that an ad starts. This value must fall within 100ms of a segment boundary, otherwise the ad break will be skipped.

" }, - "Slate": { - "documentation": "

Ad break slate configuration.

", - "shape": "SlateSource" + "Slate":{ + "shape":"SlateSource", + "documentation":"

Ad break slate configuration.

" }, - "SpliceInsertMessage": { - "documentation": "

This defines the SCTE-35 splice_insert() message inserted around the ad. For information about using splice_insert(), see the SCTE-35 specficiaiton, section 9.7.3.1.

", - "shape": "SpliceInsertMessage" + "SpliceInsertMessage":{ + "shape":"SpliceInsertMessage", + "documentation":"

This defines the SCTE-35 splice_insert() message inserted around the ad. For information about using splice_insert(), see the SCTE-35 specficiaiton, section 9.7.3.1.

" + }, + "TimeSignalMessage":{ + "shape":"TimeSignalMessage", + "documentation":"

Defines the SCTE-35 time_signal message inserted around the ad.

Programs on a channel's schedule can be configured with one or more ad breaks. You can attach a splice_insert SCTE-35 message to the ad break. This message provides basic metadata about the ad break.

See section 9.7.4 of the 2022 SCTE-35 specification for more information.

" } }, - "type": "structure" + "documentation":"

Ad break configuration parameters.

" }, - "AdMarkerPassthrough": { - "documentation": "

For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest.

No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.

", - "members": { - "Enabled": { - "documentation": "

Enables ad marker passthrough for your configuration.

", - "shape": "__boolean" + "AdMarkerPassthrough":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"__boolean", + "documentation":"

Enables ad marker passthrough for your configuration.

" } }, - "type": "structure" + "documentation":"

For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest.

No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.

" }, - "Alert": { - "documentation": "

Alert configuration parameters.

", - "members": { - "AlertCode": { - "documentation": "

The code for the alert. For example, NOT_PROCESSED.

", - "shape": "__string" - }, - "AlertMessage": { - "documentation": "

If an alert is generated for a resource, an explanation of the reason for the alert.

", - "shape": "__string" - }, - "LastModifiedTime": { - "documentation": "

The timestamp when the alert was last modified.

", - "shape": "__timestampUnix" - }, - "RelatedResourceArns": { - "documentation": "

The Amazon Resource Names (ARNs) related to this alert.

", - "shape": "__listOf__string" - }, - "ResourceArn": { - "documentation": "

The Amazon Resource Name (ARN) of the resource.

", - "shape": "__string" - } - }, - "required": [ - "ResourceArn", + "Alert":{ + "type":"structure", + "required":[ "AlertCode", + "AlertMessage", "LastModifiedTime", "RelatedResourceArns", - "AlertMessage" + "ResourceArn" ], - "type": "structure" - }, - "AvailMatchingCriteria": { - "documentation": "

MediaTailor only places (consumes) prefetched ads if the ad break meets the criteria defined by the dynamic variables. This gives you granular control over which ad break to place the prefetched ads into.

As an example, let's say that you set DynamicVariable to scte.event_id and Operator to EQUALS, and your playback configuration has an ADS URL of https://my.ads.server.com/path?&podId=[scte.avail_num]&event=[scte.event_id]&duration=[session.avail_duration_secs]. And the prefetch request to the ADS contains these values https://my.ads.server.com/path?&podId=3&event=my-awesome-event&duration=30. MediaTailor will only insert the prefetched ads into the ad break if has a SCTE marker with an event id of my-awesome-event, since it must match the event id that MediaTailor uses to query the ADS.

You can specify up to five AvailMatchingCriteria. If you specify multiple AvailMatchingCriteria, MediaTailor combines them to match using a logical AND. You can model logical OR combinations by creating multiple prefetch schedules.

", - "members": { - "DynamicVariable": { - "documentation": "

The dynamic variable(s) that MediaTailor should use as avail matching criteria. MediaTailor only places the prefetched ads into the avail if the avail matches the criteria defined by the dynamic variable. For information about dynamic variables, see Using dynamic ad variables in the MediaTailor User Guide.

You can include up to 100 dynamic variables.

", - "shape": "__string" + "members":{ + "AlertCode":{ + "shape":"__string", + "documentation":"

The code for the alert. For example, NOT_PROCESSED.

" }, - "Operator": { - "documentation": "

For the DynamicVariable specified in AvailMatchingCriteria, the Operator that is used for the comparison.

", - "shape": "Operator" + "AlertMessage":{ + "shape":"__string", + "documentation":"

If an alert is generated for a resource, an explanation of the reason for the alert.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp when the alert was last modified.

" + }, + "RelatedResourceArns":{ + "shape":"__listOf__string", + "documentation":"

The Amazon Resource Names (ARNs) related to this alert.

" + }, + "ResourceArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

" } }, - "required": [ - "Operator", - "DynamicVariable" + "documentation":"

Alert configuration parameters.

" + }, + "AvailMatchingCriteria":{ + "type":"structure", + "required":[ + "DynamicVariable", + "Operator" ], - "type": "structure" - }, - "AvailSuppression": { - "documentation": "

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

", - "members": { - "Mode": { - "documentation": "

Sets the ad suppression mode. By default, ad suppression is off and all ad breaks are filled with ads or slate. When Mode is set to BEHIND_LIVE_EDGE, ad suppression is active and MediaTailor won't fill ad breaks on or behind the ad suppression Value time in the manifest lookback window.

", - "shape": "Mode" + "members":{ + "DynamicVariable":{ + "shape":"__string", + "documentation":"

The dynamic variable(s) that MediaTailor should use as avail matching criteria. MediaTailor only places the prefetched ads into the avail if the avail matches the criteria defined by the dynamic variable. For information about dynamic variables, see Using dynamic ad variables in the MediaTailor User Guide.

You can include up to 100 dynamic variables.

" }, - "Value": { - "documentation": "

A live edge offset time in HH:MM:SS. MediaTailor won't fill ad breaks on or behind this time in the manifest lookback window. If Value is set to 00:00:00, it is in sync with the live edge, and MediaTailor won't fill any ad breaks on or behind the live edge. If you set a Value time, MediaTailor won't fill any ad breaks on or behind this time in the manifest lookback window. For example, if you set 00:45:00, then MediaTailor will fill ad breaks that occur within 45 minutes behind the live edge, but won't fill ad breaks on or behind 45 minutes behind the live edge.

", - "shape": "__string" + "Operator":{ + "shape":"Operator", + "documentation":"

For the DynamicVariable specified in AvailMatchingCriteria, the Operator that is used for the comparison.

" } }, - "type": "structure" + "documentation":"

MediaTailor only places (consumes) prefetched ads if the ad break meets the criteria defined by the dynamic variables. This gives you granular control over which ad break to place the prefetched ads into.

As an example, let's say that you set DynamicVariable to scte.event_id and Operator to EQUALS, and your playback configuration has an ADS URL of https://my.ads.server.com/path?&podId=[scte.avail_num]&event=[scte.event_id]&duration=[session.avail_duration_secs]. And the prefetch request to the ADS contains these values https://my.ads.server.com/path?&podId=3&event=my-awesome-event&duration=30. MediaTailor will only insert the prefetched ads into the ad break if has a SCTE marker with an event id of my-awesome-event, since it must match the event id that MediaTailor uses to query the ADS.

You can specify up to five AvailMatchingCriteria. If you specify multiple AvailMatchingCriteria, MediaTailor combines them to match using a logical AND. You can model logical OR combinations by creating multiple prefetch schedules.

" }, - "BadRequestException": { - "documentation": "Invalid request parameters.", - "error": { - "httpStatusCode": 400 - }, - "exception": true, - "members": { - "Message": { - "shape": "__string" + "AvailSuppression":{ + "type":"structure", + "members":{ + "Mode":{ + "shape":"Mode", + "documentation":"

Sets the ad suppression mode. By default, ad suppression is off and all ad breaks are filled with ads or slate. When Mode is set to BEHIND_LIVE_EDGE, ad suppression is active and MediaTailor won't fill ad breaks on or behind the ad suppression Value time in the manifest lookback window.

" + }, + "Value":{ + "shape":"__string", + "documentation":"

A live edge offset time in HH:MM:SS. MediaTailor won't fill ad breaks on or behind this time in the manifest lookback window. If Value is set to 00:00:00, it is in sync with the live edge, and MediaTailor won't fill any ad breaks on or behind the live edge. If you set a Value time, MediaTailor won't fill any ad breaks on or behind this time in the manifest lookback window. For example, if you set 00:45:00, then MediaTailor will fill ad breaks that occur within 45 minutes behind the live edge, but won't fill ad breaks on or behind 45 minutes behind the live edge.

" } }, - "type": "structure" + "documentation":"

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

" }, - "Bumper": { - "documentation": "

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

", - "members": { - "EndUrl": { - "documentation": "

The URL for the end bumper asset.

", - "shape": "__string" + "BadRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"__string"} + }, + "documentation":"

A request contains unexpected data.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Bumper":{ + "type":"structure", + "members":{ + "EndUrl":{ + "shape":"__string", + "documentation":"

The URL for the end bumper asset.

" }, - "StartUrl": { - "documentation": "

The URL for the start bumper asset.

", - "shape": "__string" + "StartUrl":{ + "shape":"__string", + "documentation":"

The URL for the start bumper asset.

" } }, - "type": "structure" + "documentation":"

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

" }, - "CdnConfiguration": { - "documentation": "

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

", - "members": { - "AdSegmentUrlPrefix": { - "documentation": "

A non-default content delivery network (CDN) to serve ad segments. By default, AWS Elemental MediaTailor uses Amazon CloudFront with default cache settings as its CDN for ad segments. To set up an alternate CDN, create a rule in your CDN for the origin ads.mediatailor.&lt;region>.amazonaws.com. Then specify the rule's name in this AdSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for ad segments.

", - "shape": "__string" + "CdnConfiguration":{ + "type":"structure", + "members":{ + "AdSegmentUrlPrefix":{ + "shape":"__string", + "documentation":"

A non-default content delivery network (CDN) to serve ad segments. By default, AWS Elemental MediaTailor uses Amazon CloudFront with default cache settings as its CDN for ad segments. To set up an alternate CDN, create a rule in your CDN for the origin ads.mediatailor.<region>.amazonaws.com. Then specify the rule's name in this AdSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for ad segments.

" }, - "ContentSegmentUrlPrefix": { - "documentation": "

A content delivery network (CDN) to cache content segments, so that content requests don\u2019t always have to go to the origin server. First, create a rule in your CDN for the content segment origin server. Then specify the rule's name in this ContentSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for content segments.

", - "shape": "__string" + "ContentSegmentUrlPrefix":{ + "shape":"__string", + "documentation":"

A content delivery network (CDN) to cache content segments, so that content requests don’t always have to go to the origin server. First, create a rule in your CDN for the content segment origin server. Then specify the rule's name in this ContentSegmentUrlPrefix. When AWS Elemental MediaTailor serves a manifest, it reports your CDN as the source for content segments.

" } }, - "type": "structure" + "documentation":"

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

" }, - "Channel": { - "documentation": "

The configuration parameters for a channel.

", - "members": { - "Arn": { - "documentation": "

The ARN of the channel.

", - "shape": "__string" - }, - "ChannelName": { - "documentation": "

The name of the channel.

", - "shape": "__string" - }, - "ChannelState": { - "documentation": "

Returns the state whether the channel is running or not.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp of when the channel was created.

", - "shape": "__timestampUnix" - }, - "FillerSlate": { - "documentation": "

The slate used to fill gaps between programs in the schedule. You must configure filler slate if your channel uses the LINEAR PlaybackMode. MediaTailor doesn't support filler slate for channels using the LOOP PlaybackMode.

", - "shape": "SlateSource" - }, - "LastModifiedTime": { - "documentation": "

The timestamp of when the channel was last modified.

", - "shape": "__timestampUnix" - }, - "Outputs": { - "documentation": "

The channel's output properties.

", - "shape": "ResponseOutputs" - }, - "PlaybackMode": { - "documentation": "

The type of playback mode for this channel.

LINEAR - Programs play back-to-back only once.

LOOP - Programs play back-to-back in an endless loop. When the last program in the schedule plays, playback loops back to the first program in the schedule.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags to assign to the channel.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "Tier": { - "documentation": "

The tier for this channel. STANDARD tier channels can contain live programs.

", - "shape": "__string" - } - }, - "required": [ - "ChannelState", - "ChannelName", - "Tier", - "Outputs", + "Channel":{ + "type":"structure", + "required":[ "Arn", - "PlaybackMode" + "ChannelName", + "ChannelState", + "Outputs", + "PlaybackMode", + "Tier" ], - "type": "structure" + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The ARN of the channel.

" + }, + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

" + }, + "ChannelState":{ + "shape":"__string", + "documentation":"

Returns the state whether the channel is running or not.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp of when the channel was created.

" + }, + "FillerSlate":{ + "shape":"SlateSource", + "documentation":"

The slate used to fill gaps between programs in the schedule. You must configure filler slate if your channel uses the LINEAR PlaybackMode. MediaTailor doesn't support filler slate for channels using the LOOP PlaybackMode.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp of when the channel was last modified.

" + }, + "Outputs":{ + "shape":"ResponseOutputs", + "documentation":"

The channel's output properties.

" + }, + "PlaybackMode":{ + "shape":"__string", + "documentation":"

The type of playback mode for this channel.

LINEAR - Programs play back-to-back only once.

LOOP - Programs play back-to-back in an endless loop. When the last program in the schedule plays, playback loops back to the first program in the schedule.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the channel. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "Tier":{ + "shape":"__string", + "documentation":"

The tier for this channel. STANDARD tier channels can contain live programs.

" + } + }, + "documentation":"

The configuration parameters for a channel. For information about MediaTailor channels, see Working with channels in the MediaTailor User Guide.

" }, - "ChannelState": { - "enum": [ + "ChannelState":{ + "type":"string", + "enum":[ "RUNNING", "STOPPED" - ], - "type": "string" + ] }, - "ConfigurationAliasesRequest": { - "documentation": "

The predefined aliases for dynamic variables.

", - "key": { - "documentation": "

The dynamic variable that has aliases.

", - "shape": "__string" + "ConfigurationAliasesRequest":{ + "type":"map", + "key":{ + "shape":"__string", + "documentation":"

The dynamic variable that has aliases.

" }, - "type": "map", - "value": { - "documentation": "

Map of aliases to the value to be used at request time.

", - "shape": "__mapOf__string" - } + "value":{ + "shape":"__mapOf__string", + "documentation":"

Map of aliases to the value to be used at request time.

" + }, + "documentation":"

The predefined aliases for dynamic variables.

" }, - "ConfigurationAliasesResponse": { - "documentation": "

The predefined aliases for dynamic variables.

", - "key": { - "documentation": "

The dynamic variable that has aliases.

", - "shape": "__string" + "ConfigurationAliasesResponse":{ + "type":"map", + "key":{ + "shape":"__string", + "documentation":"

The dynamic variable that has aliases.

" }, - "type": "map", - "value": { - "documentation": "

Map of aliases to the value to be used at request time.

", - "shape": "__mapOf__string" - } + "value":{ + "shape":"__mapOf__string", + "documentation":"

Map of aliases to the value to be used at request time.

" + }, + "documentation":"

The predefined aliases for dynamic variables.

" }, - "ConfigureLogsForPlaybackConfigurationRequest": { - "documentation": "

Configures Amazon CloudWatch log settings for a playback configuration.

", - "members": { - "PercentEnabled": { - "documentation": "

The percentage of session logs that MediaTailor sends to your Cloudwatch Logs account. For example, if your playback configuration has 1000 sessions and percentEnabled is set to 60, MediaTailor sends logs for 600 of the sessions to CloudWatch Logs. MediaTailor decides at random which of the playback configuration sessions to send logs for. If you want to view logs for a specific session, you can use the debug log mode.

Valid values: 0 - 100

", - "shape": "__integer" - }, - "PlaybackConfigurationName": { - "documentation": "

The name of the playback configuration.

", - "shape": "__string" - } - }, - "required": [ + "ConfigureLogsForPlaybackConfigurationRequest":{ + "type":"structure", + "required":[ "PercentEnabled", "PlaybackConfigurationName" ], - "type": "structure" - }, - "ConfigureLogsForPlaybackConfigurationResponse": { - "members": { - "PercentEnabled": { - "documentation": "

The percentage of session logs that MediaTailor sends to your Cloudwatch Logs account.

", - "shape": "__integer" + "members":{ + "PercentEnabled":{ + "shape":"__integer", + "documentation":"

The percentage of session logs that MediaTailor sends to your Cloudwatch Logs account. For example, if your playback configuration has 1000 sessions and percentEnabled is set to 60, MediaTailor sends logs for 600 of the sessions to CloudWatch Logs. MediaTailor decides at random which of the playback configuration sessions to send logs for. If you want to view logs for a specific session, you can use the debug log mode.

Valid values: 0 - 100

" }, - "PlaybackConfigurationName": { - "documentation": "

The name of the playback configuration.

", - "shape": "__string" + "PlaybackConfigurationName":{ + "shape":"__string", + "documentation":"

The name of the playback configuration.

" } }, - "type": "structure" + "documentation":"

Configures Amazon CloudWatch log settings for a playback configuration.

" }, - "CreateChannelRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" + "ConfigureLogsForPlaybackConfigurationResponse":{ + "type":"structure", + "required":["PercentEnabled"], + "members":{ + "PercentEnabled":{ + "shape":"__integer", + "documentation":"

The percentage of session logs that MediaTailor sends to your Cloudwatch Logs account.

" }, - "FillerSlate": { - "documentation": "

The slate used to fill gaps between programs in the schedule. You must configure filler slate if your channel uses the LINEAR PlaybackMode. MediaTailor doesn't support filler slate for channels using the LOOP PlaybackMode.

", - "shape": "SlateSource" - }, - "Outputs": { - "documentation": "

The channel's output properties.

", - "shape": "RequestOutputs" - }, - "PlaybackMode": { - "documentation": "

The type of playback mode to use for this channel.

LINEAR - The programs in the schedule play once back-to-back in the schedule.

LOOP - The programs in the schedule play back-to-back in an endless loop. When the last program in the schedule stops playing, playback loops back to the first program in the schedule.

", - "shape": "PlaybackMode" - }, - "Tags": { - "documentation": "

The tags to assign to the channel.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "Tier": { - "documentation": "

The tier of the channel.

", - "shape": "Tier" + "PlaybackConfigurationName":{ + "shape":"__string", + "documentation":"

The name of the playback configuration.

" } - }, - "required": [ + } + }, + "CreateChannelRequest":{ + "type":"structure", + "required":[ "ChannelName", "Outputs", "PlaybackMode" ], - "type": "structure" - }, - "CreateChannelResponse": { - "members": { - "Arn": { - "documentation": "

The ARN of the channel.

", - "shape": "__string" + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

", + "location":"uri", + "locationName":"ChannelName" }, - "ChannelName": { - "documentation": "

The name of the channel.

", - "shape": "__string" + "FillerSlate":{ + "shape":"SlateSource", + "documentation":"

The slate used to fill gaps between programs in the schedule. You must configure filler slate if your channel uses the LINEAR PlaybackMode. MediaTailor doesn't support filler slate for channels using the LOOP PlaybackMode.

" }, - "ChannelState": { - "documentation": "

Indicates whether the channel is in a running state or not.

", - "shape": "ChannelState" + "Outputs":{ + "shape":"RequestOutputs", + "documentation":"

The channel's output properties.

" }, - "CreationTime": { - "documentation": "

The timestamp of when the channel was created.

", - "shape": "__timestampUnix" + "PlaybackMode":{ + "shape":"PlaybackMode", + "documentation":"

The type of playback mode to use for this channel.

LINEAR - The programs in the schedule play once back-to-back in the schedule.

LOOP - The programs in the schedule play back-to-back in an endless loop. When the last program in the schedule stops playing, playback loops back to the first program in the schedule.

" }, - "FillerSlate": { - "documentation": "

Contains information about the slate used to fill gaps between programs in the schedule.

", - "shape": "SlateSource" + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the channel. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" }, - "LastModifiedTime": { - "documentation": "

The timestamp of when the channel was last modified.

", - "shape": "__timestampUnix" - }, - "Outputs": { - "documentation": "

The channel's output properties.

", - "shape": "ResponseOutputs" - }, - "PlaybackMode": { - "documentation": "

The channel's playback mode.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the channel.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "Tier": { - "documentation": "

The channel's tier.

", - "shape": "__string" + "Tier":{ + "shape":"Tier", + "documentation":"

The tier of the channel.

" } - }, - "type": "structure" + } }, - "CreateLiveSourceRequest": { - "members": { - "HttpPackageConfigurations": { - "documentation": "

A list of HTTP package configuration parameters for this live source.

", - "shape": "HttpPackageConfigurations" + "CreateChannelResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) to assign to the channel.

" }, - "LiveSourceName": { - "documentation": "

The identifier for the live source you are working on.

", - "location": "uri", - "locationName": "liveSourceName", - "shape": "__string" + "ChannelName":{ + "shape":"__string", + "documentation":"

The name to assign to the channel.

" }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" + "ChannelState":{ + "shape":"ChannelState", + "documentation":"

Indicates whether the channel is in a running state or not.

" }, - "Tags": { - "documentation": "

The tags to assign to the live source.

", - "locationName": "tags", - "shape": "__mapOf__string" + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp of when the channel was created.

" + }, + "FillerSlate":{ + "shape":"SlateSource", + "documentation":"

Contains information about the slate used to fill gaps between programs in the schedule.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp of when the channel was last modified.

" + }, + "Outputs":{ + "shape":"ResponseOutputs", + "documentation":"

The output properties to assign to the channel.

" + }, + "PlaybackMode":{ + "shape":"__string", + "documentation":"

The playback mode to assign to the channel.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the channel. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "Tier":{ + "shape":"__string", + "documentation":"

The tier of the channel.

" } - }, - "required": [ - "SourceLocationName", + } + }, + "CreateLiveSourceRequest":{ + "type":"structure", + "required":[ + "HttpPackageConfigurations", "LiveSourceName", - "HttpPackageConfigurations" + "SourceLocationName" ], - "type": "structure" - }, - "CreateLiveSourceResponse": { - "members": { - "Arn": { - "documentation": "

The ARN of the live source.

", - "shape": "__string" + "members":{ + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

A list of HTTP package configuration parameters for this live source.

" }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the live source was created.

", - "shape": "__timestampUnix" + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the live source.

", + "location":"uri", + "locationName":"LiveSourceName" }, - "HttpPackageConfigurations": { - "documentation": "

The HTTP package configurations.

", - "shape": "HttpPackageConfigurations" + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

", + "location":"uri", + "locationName":"SourceLocationName" }, - "LastModifiedTime": { - "documentation": "

The timestamp that indicates when the live source was modified.

", - "shape": "__timestampUnix" - }, - "LiveSourceName": { - "documentation": "

The name of the live source.

", - "shape": "__string" - }, - "SourceLocationName": { - "documentation": "

The name of the source location associated with the VOD source.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the live source.

", - "locationName": "tags", - "shape": "__mapOf__string" + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the live source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" } - }, - "type": "structure" + } }, - "CreatePrefetchScheduleRequest": { - "members": { - "Consumption": { - "documentation": "

The configuration settings for MediaTailor's consumption of the prefetched ads from the ad decision server. Each consumption configuration contains an end time and an optional start time that define the consumption window. Prefetch schedules automatically expire no earlier than seven days after the end time.

", - "shape": "PrefetchConsumption" + "CreateLiveSourceResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The ARN to assign to the live source.

" }, - "Name": { - "documentation": "

The identifier for the playback configuration.

", - "location": "uri", - "locationName": "Name", - "shape": "__string" + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The time the live source was created.

" }, - "PlaybackConfigurationName": { - "documentation": "

The name of the playback configuration.

", - "location": "uri", - "locationName": "PlaybackConfigurationName", - "shape": "__string" + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

A list of HTTP package configuration parameters for this live source.

" }, - "Retrieval": { - "documentation": "

The configuration settings for retrieval of prefetched ads from the ad decision server. Only one set of prefetched ads will be retrieved and subsequently consumed for each ad break.

", - "shape": "PrefetchRetrieval" + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The time the live source was last modified.

" }, - "StreamId": { - "documentation": "

An optional stream identifier that MediaTailor uses to prefetch ads for multiple streams that use the same playback configuration. If StreamId is specified, MediaTailor returns all of the prefetch schedules with an exact match on StreamId. If not specified, MediaTailor returns all of the prefetch schedules for the playback configuration, regardless of StreamId.

", - "shape": "__string" + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name to assign to the live source.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name to assign to the source location of the live source.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the live source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" } - }, - "required": [ + } + }, + "CreatePrefetchScheduleRequest":{ + "type":"structure", + "required":[ + "Consumption", "Name", "PlaybackConfigurationName", - "Retrieval", - "Consumption" + "Retrieval" ], - "type": "structure" - }, - "CreatePrefetchScheduleResponse": { - "members": { - "Arn": { - "documentation": "

The Amazon Resource Name (ARN) of the prefetch schedule.

", - "shape": "__string" + "members":{ + "Consumption":{ + "shape":"PrefetchConsumption", + "documentation":"

The configuration settings for MediaTailor's consumption of the prefetched ads from the ad decision server. Each consumption configuration contains an end time and an optional start time that define the consumption window. Prefetch schedules automatically expire no earlier than seven days after the end time.

" }, - "Consumption": { - "documentation": "

Consumption settings determine how, and when, MediaTailor places the prefetched ads into ad breaks. Ad consumption occurs within a span of time that you define, called a consumption window. You can designate which ad breaks that MediaTailor fills with prefetch ads by setting avail matching criteria.

", - "shape": "PrefetchConsumption" + "Name":{ + "shape":"__string", + "documentation":"

The name to assign to the schedule request.

", + "location":"uri", + "locationName":"Name" }, - "Name": { - "documentation": "

The name of the prefetch schedule. The name must be unique among all prefetch schedules that are associated with the specified playback configuration.

", - "shape": "__string" + "PlaybackConfigurationName":{ + "shape":"__string", + "documentation":"

The name to assign to the playback configuration.

", + "location":"uri", + "locationName":"PlaybackConfigurationName" }, - "PlaybackConfigurationName": { - "documentation": "

The name of the playback configuration to create the prefetch schedule for.

", - "shape": "__string" + "Retrieval":{ + "shape":"PrefetchRetrieval", + "documentation":"

The configuration settings for retrieval of prefetched ads from the ad decision server. Only one set of prefetched ads will be retrieved and subsequently consumed for each ad break.

" }, - "Retrieval": { - "documentation": "

A complex type that contains settings for prefetch retrieval from the ad decision server (ADS).

", - "shape": "PrefetchRetrieval" - }, - "StreamId": { - "documentation": "

An optional stream identifier that you can specify in order to prefetch for multiple streams that use the same playback configuration.

", - "shape": "__string" + "StreamId":{ + "shape":"__string", + "documentation":"

An optional stream identifier that MediaTailor uses to prefetch ads for multiple streams that use the same playback configuration. If StreamId is specified, MediaTailor returns all of the prefetch schedules with an exact match on StreamId. If not specified, MediaTailor returns all of the prefetch schedules for the playback configuration, regardless of StreamId.

" } - }, - "type": "structure" + } }, - "CreateProgramRequest": { - "members": { - "AdBreaks": { - "documentation": "

The ad break configuration settings.

", - "shape": "__listOfAdBreak" + "CreatePrefetchScheduleResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The ARN to assign to the prefetch schedule.

" }, - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" + "Consumption":{ + "shape":"PrefetchConsumption", + "documentation":"

The configuration settings for MediaTailor's consumption of the prefetched ads from the ad decision server. Each consumption configuration contains an end time and an optional start time that define the consumption window. Prefetch schedules automatically expire no earlier than seven days after the end time.

" }, - "LiveSourceName": { - "documentation": "

The name of the LiveSource for this Program.

", - "shape": "__string" + "Name":{ + "shape":"__string", + "documentation":"

The name to assign to the prefetch schedule.

" }, - "ProgramName": { - "documentation": "

The identifier for the program you are working on.

", - "location": "uri", - "locationName": "programName", - "shape": "__string" + "PlaybackConfigurationName":{ + "shape":"__string", + "documentation":"

The name to assign to the playback configuration.

" }, - "ScheduleConfiguration": { - "documentation": "

The schedule configuration settings.

", - "shape": "ScheduleConfiguration" + "Retrieval":{ + "shape":"PrefetchRetrieval", + "documentation":"

The configuration settings for retrieval of prefetched ads from the ad decision server. Only one set of prefetched ads will be retrieved and subsequently consumed for each ad break.

" }, - "SourceLocationName": { - "documentation": "

The name of the source location.

", - "shape": "__string" - }, - "VodSourceName": { - "documentation": "

The name that's used to refer to a VOD source.

", - "shape": "__string" + "StreamId":{ + "shape":"__string", + "documentation":"

An optional stream identifier that MediaTailor uses to prefetch ads for multiple streams that use the same playback configuration. If StreamId is specified, MediaTailor returns all of the prefetch schedules with an exact match on StreamId. If not specified, MediaTailor returns all of the prefetch schedules for the playback configuration, regardless of StreamId.

" } - }, - "required": [ + } + }, + "CreateProgramRequest":{ + "type":"structure", + "required":[ "ChannelName", "ProgramName", - "SourceLocationName", - "ScheduleConfiguration" - ], - "type": "structure" - }, - "CreateProgramResponse": { - "members": { - "AdBreaks": { - "documentation": "

The ad break configuration settings.

", - "shape": "__listOfAdBreak" - }, - "Arn": { - "documentation": "

The ARN of the program.

", - "shape": "__string" - }, - "ChannelName": { - "documentation": "

The name of the channel that the program belongs to.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp of when the program was created.

", - "shape": "__timestampUnix" - }, - "LiveSourceName": { - "documentation": "

The name of the LiveSource for this Program.

", - "shape": "__string" - }, - "ProgramName": { - "documentation": "

The name of the program.

", - "shape": "__string" - }, - "ScheduledStartTime": { - "documentation": "

The date and time that the program is scheduled to start in ISO 8601 format and Coordinated Universal Time (UTC). For example, the value 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC.

", - "shape": "__timestampUnix" - }, - "SourceLocationName": { - "documentation": "

The source location name.

", - "shape": "__string" - }, - "VodSourceName": { - "documentation": "

The name that's used to refer to a VOD source.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "CreateSourceLocationRequest": { - "members": { - "AccessConfiguration": { - "documentation": "

Access configuration parameters. Configures the type of authentication used to access content from your source location.

", - "shape": "AccessConfiguration" - }, - "DefaultSegmentDeliveryConfiguration": { - "documentation": "

The optional configuration for the server that serves segments.

", - "shape": "DefaultSegmentDeliveryConfiguration" - }, - "HttpConfiguration": { - "documentation": "

The source's HTTP package configurations.

", - "shape": "HttpConfiguration" - }, - "SegmentDeliveryConfigurations": { - "documentation": "

A list of the segment delivery configurations associated with this resource.

", - "shape": "__listOfSegmentDeliveryConfiguration" - }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags to assign to the source location.

", - "locationName": "tags", - "shape": "__mapOf__string" - } - }, - "required": [ - "SourceLocationName", - "HttpConfiguration" - ], - "type": "structure" - }, - "CreateSourceLocationResponse": { - "members": { - "AccessConfiguration": { - "documentation": "

The access configuration for the source location.

", - "shape": "AccessConfiguration" - }, - "Arn": { - "documentation": "

The ARN of the source location.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the source location was created.

", - "shape": "__timestampUnix" - }, - "DefaultSegmentDeliveryConfiguration": { - "documentation": "

The default segment delivery configuration settings.

", - "shape": "DefaultSegmentDeliveryConfiguration" - }, - "HttpConfiguration": { - "documentation": "

The HTTP package configuration settings for the source location.

", - "shape": "HttpConfiguration" - }, - "LastModifiedTime": { - "documentation": "

The timestamp that indicates when the source location was last modified.

", - "shape": "__timestampUnix" - }, - "SegmentDeliveryConfigurations": { - "documentation": "

A list of the segment delivery configurations associated with this resource.

", - "shape": "__listOfSegmentDeliveryConfiguration" - }, - "SourceLocationName": { - "documentation": "

The name of the source location.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the source location.

", - "locationName": "tags", - "shape": "__mapOf__string" - } - }, - "type": "structure" - }, - "CreateVodSourceRequest": { - "members": { - "HttpPackageConfigurations": { - "documentation": "

A list of HTTP package configuration parameters for this VOD source.

", - "shape": "HttpPackageConfigurations" - }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags to assign to the VOD source.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "VodSourceName": { - "documentation": "

The identifier for the VOD source you are working on.

", - "location": "uri", - "locationName": "vodSourceName", - "shape": "__string" - } - }, - "required": [ - "SourceLocationName", - "VodSourceName", - "HttpPackageConfigurations" - ], - "type": "structure" - }, - "CreateVodSourceResponse": { - "members": { - "Arn": { - "documentation": "

The ARN of the VOD source.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the VOD source was created.

", - "shape": "__timestampUnix" - }, - "HttpPackageConfigurations": { - "documentation": "

The HTTP package configurations.

", - "shape": "HttpPackageConfigurations" - }, - "LastModifiedTime": { - "documentation": "

The last modified time of the VOD source.

", - "shape": "__timestampUnix" - }, - "SourceLocationName": { - "documentation": "

The name of the source location associated with the VOD source.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the VOD source.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "VodSourceName": { - "documentation": "

The name of the VOD source.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "DashConfiguration": { - "documentation": "

The configuration for DASH content.

", - "members": { - "ManifestEndpointPrefix": { - "documentation": "

The URL generated by MediaTailor to initiate a playback session. The session uses server-side reporting. This setting is ignored in PUT operations.

", - "shape": "__string" - }, - "MpdLocation": { - "documentation": "

The setting that controls whether MediaTailor includes the Location tag in DASH manifests. MediaTailor populates the Location tag with the URL for manifest update requests, to be used by players that don't support sticky redirects. Disable this if you have CDN routing rules set up for accessing MediaTailor manifests, and you are either using client-side reporting or your players support sticky HTTP redirects. Valid values are DISABLED and EMT_DEFAULT. The EMT_DEFAULT setting enables the inclusion of the tag and is the default value.

", - "shape": "__string" - }, - "OriginManifestType": { - "documentation": "

The setting that controls whether MediaTailor handles manifests from the origin server as multi-period manifests or single-period manifests. If your origin server produces single-period manifests, set this to SINGLE_PERIOD. The default setting is MULTI_PERIOD. For multi-period manifests, omit this setting or set it to MULTI_PERIOD.

", - "shape": "OriginManifestType" - } - }, - "type": "structure" - }, - "DashConfigurationForPut": { - "documentation": "

The configuration for DASH PUT operations.

", - "members": { - "MpdLocation": { - "documentation": "

The setting that controls whether MediaTailor includes the Location tag in DASH manifests. MediaTailor populates the Location tag with the URL for manifest update requests, to be used by players that don't support sticky redirects. Disable this if you have CDN routing rules set up for accessing MediaTailor manifests, and you are either using client-side reporting or your players support sticky HTTP redirects. Valid values are DISABLED and EMT_DEFAULT. The EMT_DEFAULT setting enables the inclusion of the tag and is the default value.

", - "shape": "__string" - }, - "OriginManifestType": { - "documentation": "

The setting that controls whether MediaTailor handles manifests from the origin server as multi-period manifests or single-period manifests. If your origin server produces single-period manifests, set this to SINGLE_PERIOD. The default setting is MULTI_PERIOD. For multi-period manifests, omit this setting or set it to MULTI_PERIOD.

", - "shape": "OriginManifestType" - } - }, - "type": "structure" - }, - "DashPlaylistSettings": { - "documentation": "

Dash manifest configuration parameters.

", - "members": { - "ManifestWindowSeconds": { - "documentation": "

The total duration (in seconds) of each manifest. Minimum value: 30 seconds. Maximum value: 3600 seconds.

", - "shape": "__integer" - }, - "MinBufferTimeSeconds": { - "documentation": "

Minimum amount of content (measured in seconds) that a player must keep available in the buffer. Minimum value: 2 seconds. Maximum value: 60 seconds.

", - "shape": "__integer" - }, - "MinUpdatePeriodSeconds": { - "documentation": "

Minimum amount of time (in seconds) that the player should wait before requesting updates to the manifest. Minimum value: 2 seconds. Maximum value: 60 seconds.

", - "shape": "__integer" - }, - "SuggestedPresentationDelaySeconds": { - "documentation": "

Amount of time (in seconds) that the player should be from the live point at the end of the manifest. Minimum value: 2 seconds. Maximum value: 60 seconds.

", - "shape": "__integer" - } - }, - "type": "structure" - }, - "DefaultSegmentDeliveryConfiguration": { - "documentation": "

The optional configuration for a server that serves segments. Use this if you want the segment delivery server to be different from the source location server. For example, you can configure your source location server to be an origination server, such as MediaPackage, and the segment delivery server to be a content delivery network (CDN), such as CloudFront. If you don't specify a segment delivery server, then the source location server is used.

", - "members": { - "BaseUrl": { - "documentation": "

The hostname of the server that will be used to serve segments. This string must include the protocol, such as https://.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "DeleteChannelPolicyRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" - } - }, - "required": [ - "ChannelName" - ], - "type": "structure" - }, - "DeleteChannelPolicyResponse": { - "members": {}, - "type": "structure" - }, - "DeleteChannelRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" - } - }, - "required": [ - "ChannelName" - ], - "type": "structure" - }, - "DeleteChannelResponse": { - "members": {}, - "type": "structure" - }, - "DeleteLiveSourceRequest": { - "members": { - "LiveSourceName": { - "documentation": "

The identifier for the live source you are working on.

", - "location": "uri", - "locationName": "liveSourceName", - "shape": "__string" - }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - } - }, - "required": [ - "SourceLocationName", - "LiveSourceName" - ], - "type": "structure" - }, - "DeleteLiveSourceResponse": { - "members": {}, - "type": "structure" - }, - "DeletePlaybackConfigurationRequest": { - "members": { - "Name": { - "documentation": "

The identifier for the playback configuration.

", - "location": "uri", - "locationName": "Name", - "shape": "__string" - } - }, - "required": [ - "Name" - ], - "type": "structure" - }, - "DeletePlaybackConfigurationResponse": { - "members": {}, - "type": "structure" - }, - "DeletePrefetchScheduleRequest": { - "members": { - "Name": { - "documentation": "

The identifier for the playback configuration.

", - "location": "uri", - "locationName": "Name", - "shape": "__string" - }, - "PlaybackConfigurationName": { - "documentation": "

The name of the playback configuration.

", - "location": "uri", - "locationName": "PlaybackConfigurationName", - "shape": "__string" - } - }, - "required": [ - "Name", - "PlaybackConfigurationName" - ], - "type": "structure" - }, - "DeletePrefetchScheduleResponse": { - "members": {}, - "type": "structure" - }, - "DeleteProgramRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" - }, - "ProgramName": { - "documentation": "

The identifier for the program you are working on.

", - "location": "uri", - "locationName": "programName", - "shape": "__string" - } - }, - "required": [ - "ChannelName", - "ProgramName" - ], - "type": "structure" - }, - "DeleteProgramResponse": { - "members": {}, - "type": "structure" - }, - "DeleteSourceLocationRequest": { - "members": { - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - } - }, - "required": [ + "ScheduleConfiguration", "SourceLocationName" ], - "type": "structure" - }, - "DeleteSourceLocationResponse": { - "members": {}, - "type": "structure" - }, - "DeleteVodSourceRequest": { - "members": { - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" + "members":{ + "AdBreaks":{ + "shape":"__listOfAdBreak", + "documentation":"

The ad break configuration settings.

" }, - "VodSourceName": { - "documentation": "

The identifier for the VOD source you are working on.

", - "location": "uri", - "locationName": "vodSourceName", - "shape": "__string" + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel for this Program.

", + "location":"uri", + "locationName":"ChannelName" + }, + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the LiveSource for this Program.

" + }, + "ProgramName":{ + "shape":"__string", + "documentation":"

The name of the Program.

", + "location":"uri", + "locationName":"ProgramName" + }, + "ScheduleConfiguration":{ + "shape":"ScheduleConfiguration", + "documentation":"

The schedule configuration settings.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name that's used to refer to a VOD source.

" } - }, - "required": [ - "SourceLocationName", - "VodSourceName" - ], - "type": "structure" + } }, - "DeleteVodSourceResponse": { - "members": {}, - "type": "structure" - }, - "DescribeChannelRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" + "CreateProgramResponse":{ + "type":"structure", + "members":{ + "AdBreaks":{ + "shape":"__listOfAdBreak", + "documentation":"

The ad break configuration settings.

" + }, + "Arn":{ + "shape":"__string", + "documentation":"

The ARN to assign to the program.

" + }, + "ChannelName":{ + "shape":"__string", + "documentation":"

The name to assign to the channel for this program.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The time the program was created.

" + }, + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the LiveSource for this Program.

" + }, + "ProgramName":{ + "shape":"__string", + "documentation":"

The name to assign to this program.

" + }, + "ScheduledStartTime":{ + "shape":"__timestampUnix", + "documentation":"

The scheduled start time for this Program.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name to assign to the source location for this program.

" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name that's used to refer to a VOD source.

" } - }, - "required": [ - "ChannelName" - ], - "type": "structure" + } }, - "DescribeChannelResponse": { - "members": { - "Arn": { - "documentation": "

The ARN of the channel.

", - "shape": "__string" - }, - "ChannelName": { - "documentation": "

The name of the channel.

", - "shape": "__string" - }, - "ChannelState": { - "documentation": "

Indicates whether the channel is in a running state or not.

", - "shape": "ChannelState" - }, - "CreationTime": { - "documentation": "

The timestamp of when the channel was created.

", - "shape": "__timestampUnix" - }, - "FillerSlate": { - "documentation": "

Contains information about the slate used to fill gaps between programs in the schedule.

", - "shape": "SlateSource" - }, - "LastModifiedTime": { - "documentation": "

The timestamp of when the channel was last modified.

", - "shape": "__timestampUnix" - }, - "Outputs": { - "documentation": "

The channel's output properties.

", - "shape": "ResponseOutputs" - }, - "PlaybackMode": { - "documentation": "

The channel's playback mode.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the channel.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "Tier": { - "documentation": "

The channel's tier.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "DescribeLiveSourceRequest": { - "members": { - "LiveSourceName": { - "documentation": "

The identifier for the live source you are working on.

", - "location": "uri", - "locationName": "liveSourceName", - "shape": "__string" - }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - } - }, - "required": [ - "SourceLocationName", - "LiveSourceName" - ], - "type": "structure" - }, - "DescribeLiveSourceResponse": { - "members": { - "Arn": { - "documentation": "

The ARN of the live source.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the live source was created.

", - "shape": "__timestampUnix" - }, - "HttpPackageConfigurations": { - "documentation": "

The HTTP package configurations.

", - "shape": "HttpPackageConfigurations" - }, - "LastModifiedTime": { - "documentation": "

The timestamp that indicates when the live source was modified.

", - "shape": "__timestampUnix" - }, - "LiveSourceName": { - "documentation": "

The name of the live source.

", - "shape": "__string" - }, - "SourceLocationName": { - "documentation": "

The name of the source location associated with the VOD source.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the live source.

", - "locationName": "tags", - "shape": "__mapOf__string" - } - }, - "type": "structure" - }, - "DescribeProgramRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" - }, - "ProgramName": { - "documentation": "

The identifier for the program you are working on.

", - "location": "uri", - "locationName": "programName", - "shape": "__string" - } - }, - "required": [ - "ChannelName", - "ProgramName" - ], - "type": "structure" - }, - "DescribeProgramResponse": { - "members": { - "AdBreaks": { - "documentation": "

The ad break configuration settings.

", - "shape": "__listOfAdBreak" - }, - "Arn": { - "documentation": "

The ARN of the program.

", - "shape": "__string" - }, - "ChannelName": { - "documentation": "

The name of the channel that the program belongs to.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp of when the program was created.

", - "shape": "__timestampUnix" - }, - "LiveSourceName": { - "documentation": "

The name of the LiveSource for this Program.

", - "shape": "__string" - }, - "ProgramName": { - "documentation": "

The name of the program.

", - "shape": "__string" - }, - "ScheduledStartTime": { - "documentation": "

The date and time that the program is scheduled to start in ISO 8601 format and Coordinated Universal Time (UTC). For example, the value 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC.

", - "shape": "__timestampUnix" - }, - "SourceLocationName": { - "documentation": "

The source location name.

", - "shape": "__string" - }, - "VodSourceName": { - "documentation": "

The name that's used to refer to a VOD source.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "DescribeSourceLocationRequest": { - "members": { - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - } - }, - "required": [ + "CreateSourceLocationRequest":{ + "type":"structure", + "required":[ + "HttpConfiguration", "SourceLocationName" ], - "type": "structure" - }, - "DescribeSourceLocationResponse": { - "members": { - "AccessConfiguration": { - "documentation": "

The access configuration for the source location.

", - "shape": "AccessConfiguration" + "members":{ + "AccessConfiguration":{ + "shape":"AccessConfiguration", + "documentation":"

Access configuration parameters. Configures the type of authentication used to access content from your source location.

" }, - "Arn": { - "documentation": "

The ARN of the source location.

", - "shape": "__string" + "DefaultSegmentDeliveryConfiguration":{ + "shape":"DefaultSegmentDeliveryConfiguration", + "documentation":"

The optional configuration for the server that serves segments.

" }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the source location was created.

", - "shape": "__timestampUnix" + "HttpConfiguration":{ + "shape":"HttpConfiguration", + "documentation":"

The source's HTTP package configurations.

" }, - "DefaultSegmentDeliveryConfiguration": { - "documentation": "

The default segment delivery configuration settings.

", - "shape": "DefaultSegmentDeliveryConfiguration" + "SegmentDeliveryConfigurations":{ + "shape":"__listOfSegmentDeliveryConfiguration", + "documentation":"

A list of the segment delivery configurations associated with this resource.

" }, - "HttpConfiguration": { - "documentation": "

The HTTP package configuration settings for the source location.

", - "shape": "HttpConfiguration" + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name associated with the source location.

", + "location":"uri", + "locationName":"SourceLocationName" }, - "LastModifiedTime": { - "documentation": "

The timestamp that indicates when the source location was last modified.

", - "shape": "__timestampUnix" - }, - "SegmentDeliveryConfigurations": { - "documentation": "

A list of the segment delivery configurations associated with this resource.

", - "shape": "__listOfSegmentDeliveryConfiguration" - }, - "SourceLocationName": { - "documentation": "

The name of the source location.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the source location.

", - "locationName": "tags", - "shape": "__mapOf__string" + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the source location. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" } - }, - "type": "structure" + } }, - "DescribeVodSourceRequest": { - "members": { - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" + "CreateSourceLocationResponse":{ + "type":"structure", + "members":{ + "AccessConfiguration":{ + "shape":"AccessConfiguration", + "documentation":"

Access configuration parameters. Configures the type of authentication used to access content from your source location.

" }, - "VodSourceName": { - "documentation": "

The identifier for the VOD source you are working on.

", - "location": "uri", - "locationName": "vodSourceName", - "shape": "__string" + "Arn":{ + "shape":"__string", + "documentation":"

The ARN to assign to the source location.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The time the source location was created.

" + }, + "DefaultSegmentDeliveryConfiguration":{ + "shape":"DefaultSegmentDeliveryConfiguration", + "documentation":"

The optional configuration for the server that serves segments.

" + }, + "HttpConfiguration":{ + "shape":"HttpConfiguration", + "documentation":"

The source's HTTP package configurations.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The time the source location was last modified.

" + }, + "SegmentDeliveryConfigurations":{ + "shape":"__listOfSegmentDeliveryConfiguration", + "documentation":"

The segment delivery configurations for the source location. For information about MediaTailor configurations, see Working with configurations in AWS Elemental MediaTailor.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name to assign to the source location.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the source location. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" } - }, - "required": [ - "SourceLocationName", - "VodSourceName" - ], - "type": "structure" + } }, - "DescribeVodSourceResponse": { - "members": { - "Arn": { - "documentation": "

The ARN of the VOD source.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the VOD source was created.

", - "shape": "__timestampUnix" - }, - "HttpPackageConfigurations": { - "documentation": "

The HTTP package configurations.

", - "shape": "HttpPackageConfigurations" - }, - "LastModifiedTime": { - "documentation": "

The last modified time of the VOD source.

", - "shape": "__timestampUnix" - }, - "SourceLocationName": { - "documentation": "

The name of the source location associated with the VOD source.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the VOD source.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "VodSourceName": { - "documentation": "

The name of the VOD source.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "GetChannelPolicyRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" - } - }, - "required": [ - "ChannelName" - ], - "type": "structure" - }, - "GetChannelPolicyResponse": { - "members": { - "Policy": { - "documentation": "

The IAM policy for the channel.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "GetChannelScheduleRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" - }, - "DurationMinutes": { - "documentation": "

The schedule duration in minutes. The maximum duration is 4320 minutes (three days).

", - "location": "querystring", - "locationName": "durationMinutes", - "shape": "__string" - }, - "MaxResults": { - "documentation": "

Upper bound on number of records to return. The maximum number of results is 100.

", - "location": "querystring", - "locationName": "maxResults", - "shape": "MaxResults" - }, - "NextToken": { - "documentation": "

Pagination token from the GET list request. Use the token to fetch the next page of results.

", - "location": "querystring", - "locationName": "nextToken", - "shape": "__string" - } - }, - "required": [ - "ChannelName" - ], - "type": "structure" - }, - "GetChannelScheduleResponse": { - "members": { - "Items": { - "documentation": "

A list of schedule entries for the channel.

", - "shape": "__listOfScheduleEntry" - }, - "NextToken": { - "documentation": "

Pagination token from the GET list request. Use the token to fetch the next page of results.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "GetPlaybackConfigurationRequest": { - "members": { - "Name": { - "documentation": "

The identifier for the playback configuration.

", - "location": "uri", - "locationName": "Name", - "shape": "__string" - } - }, - "required": [ - "Name" - ], - "type": "structure" - }, - "GetPlaybackConfigurationResponse": { - "members": { - "AdDecisionServerUrl": { - "documentation": "

The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.

", - "shape": "__string" - }, - "AvailSuppression": { - "documentation": "

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

", - "shape": "AvailSuppression" - }, - "Bumper": { - "documentation": "

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

", - "shape": "Bumper" - }, - "CdnConfiguration": { - "documentation": "

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

", - "shape": "CdnConfiguration" - }, - "ConfigurationAliases": { - "documentation": "

The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.

", - "shape": "ConfigurationAliasesResponse" - }, - "DashConfiguration": { - "documentation": "

The configuration for DASH content.

", - "shape": "DashConfiguration" - }, - "HlsConfiguration": { - "documentation": "

The configuration for HLS content.

", - "shape": "HlsConfiguration" - }, - "LivePreRollConfiguration": { - "documentation": "

The configuration for pre-roll ad insertion.

", - "shape": "LivePreRollConfiguration" - }, - "LogConfiguration": { - "documentation": "

The Amazon CloudWatch log settings for a playback configuration.

", - "shape": "LogConfiguration" - }, - "ManifestProcessingRules": { - "documentation": "

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

", - "shape": "ManifestProcessingRules" - }, - "Name": { - "documentation": "

The identifier for the playback configuration.

", - "shape": "__string" - }, - "PersonalizationThresholdSeconds": { - "documentation": "

Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor.

", - "shape": "__integerMin1" - }, - "PlaybackConfigurationArn": { - "documentation": "

The Amazon Resource Name (ARN) for the playback configuration.

", - "shape": "__string" - }, - "PlaybackEndpointPrefix": { - "documentation": "

The URL that the player accesses to get a manifest from AWS Elemental MediaTailor. This session will use server-side reporting.

", - "shape": "__string" - }, - "SessionInitializationEndpointPrefix": { - "documentation": "

The URL that the player uses to initialize a session that uses client-side reporting.

", - "shape": "__string" - }, - "SlateAdUrl": { - "documentation": "

The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID playback configurations. For VPAID, the slate is required because MediaTailor provides it in the slots designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the playback configuration.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "TranscodeProfileName": { - "documentation": "

The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.

", - "shape": "__string" - }, - "VideoContentSourceUrl": { - "documentation": "

The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "GetPrefetchScheduleRequest": { - "members": { - "Name": { - "documentation": "

The identifier for the playback configuration.

", - "location": "uri", - "locationName": "Name", - "shape": "__string" - }, - "PlaybackConfigurationName": { - "documentation": "

The name of the playback configuration.

", - "location": "uri", - "locationName": "PlaybackConfigurationName", - "shape": "__string" - } - }, - "required": [ - "Name", - "PlaybackConfigurationName" - ], - "type": "structure" - }, - "GetPrefetchScheduleResponse": { - "members": { - "Arn": { - "documentation": "

The Amazon Resource Name (ARN) of the prefetch schedule.

", - "shape": "__string" - }, - "Consumption": { - "documentation": "

Consumption settings determine how, and when, MediaTailor places the prefetched ads into ad breaks. Ad consumption occurs within a span of time that you define, called a consumption window. You can designate which ad breaks that MediaTailor fills with prefetch ads by setting avail matching criteria.

", - "shape": "PrefetchConsumption" - }, - "Name": { - "documentation": "

The name of the prefetch schedule. The name must be unique among all prefetch schedules that are associated with the specified playback configuration.

", - "shape": "__string" - }, - "PlaybackConfigurationName": { - "documentation": "

The name of the playback configuration to create the prefetch schedule for.

", - "shape": "__string" - }, - "Retrieval": { - "documentation": "

A complex type that contains settings for prefetch retrieval from the ad decision server (ADS).

", - "shape": "PrefetchRetrieval" - }, - "StreamId": { - "documentation": "

An optional stream identifier that you can specify in order to prefetch for multiple streams that use the same playback configuration.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "HlsConfiguration": { - "documentation": "

The configuration for HLS content.

", - "members": { - "ManifestEndpointPrefix": { - "documentation": "

The URL that is used to initiate a playback session for devices that support Apple HLS. The session uses server-side reporting.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "HlsPlaylistSettings": { - "documentation": "

HLS playlist configuration parameters.

", - "members": { - "ManifestWindowSeconds": { - "documentation": "

The total duration (in seconds) of each manifest. Minimum value: 30 seconds. Maximum value: 3600 seconds.

", - "shape": "__integer" - } - }, - "type": "structure" - }, - "HttpConfiguration": { - "documentation": "

The HTTP configuration for the source location.

", - "members": { - "BaseUrl": { - "documentation": "

The base URL for the source location host server. This string must include the protocol, such as https://.

", - "shape": "__string" - } - }, - "required": [ - "BaseUrl" - ], - "type": "structure" - }, - "HttpPackageConfiguration": { - "documentation": "

The HTTP package configuration properties for the requested VOD source.

", - "members": { - "Path": { - "documentation": "

The relative path to the URL for this VOD source. This is combined with SourceLocation::HttpConfiguration::BaseUrl to form a valid URL.

", - "shape": "__string" - }, - "SourceGroup": { - "documentation": "

The name of the source group. This has to match one of the Channel::Outputs::SourceGroup.

", - "shape": "__string" - }, - "Type": { - "documentation": "

The streaming protocol for this package configuration. Supported values are HLS and DASH.

", - "shape": "Type" - } - }, - "required": [ - "Path", - "Type", - "SourceGroup" - ], - "type": "structure" - }, - "HttpPackageConfigurations": { - "documentation": "

The VOD source's HTTP package configuration settings.

", - "member": { - "shape": "HttpPackageConfiguration" - }, - "type": "list" - }, - "ListAlertsRequest": { - "members": { - "MaxResults": { - "documentation": "

Upper bound on number of records to return. The maximum number of results is 100.

", - "location": "querystring", - "locationName": "maxResults", - "shape": "MaxResults" - }, - "NextToken": { - "documentation": "

Pagination token from the GET list request. Use the token to fetch the next page of results.

", - "location": "querystring", - "locationName": "nextToken", - "shape": "__string" - }, - "ResourceArn": { - "documentation": "

The Amazon Resource Name (ARN) of the resource.

", - "location": "querystring", - "locationName": "resourceArn", - "shape": "__string" - } - }, - "required": [ - "ResourceArn" - ], - "type": "structure" - }, - "ListAlertsResponse": { - "members": { - "Items": { - "documentation": "

A list of alerts that are associated with this resource.

", - "shape": "__listOfAlert" - }, - "NextToken": { - "documentation": "

Pagination token from the list request. Use the token to fetch the next page of results.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "ListChannelsRequest": { - "members": { - "MaxResults": { - "documentation": "

Upper bound on number of records to return. The maximum number of results is 100.

", - "location": "querystring", - "locationName": "maxResults", - "shape": "MaxResults" - }, - "NextToken": { - "documentation": "

Pagination token from the GET list request. Use the token to fetch the next page of results.

", - "location": "querystring", - "locationName": "nextToken", - "shape": "__string" - } - }, - "type": "structure" - }, - "ListChannelsResponse": { - "members": { - "Items": { - "documentation": "

A list of channels that are associated with this account.

", - "shape": "__listOfChannel" - }, - "NextToken": { - "documentation": "

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "ListLiveSourcesRequest": { - "members": { - "MaxResults": { - "documentation": "

Upper bound on number of records to return. The maximum number of results is 100.

", - "location": "querystring", - "locationName": "maxResults", - "shape": "MaxResults" - }, - "NextToken": { - "documentation": "

Pagination token from the GET list request. Use the token to fetch the next page of results.

", - "location": "querystring", - "locationName": "nextToken", - "shape": "__string" - }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - } - }, - "required": [ - "SourceLocationName" - ], - "type": "structure" - }, - "ListLiveSourcesResponse": { - "members": { - "Items": { - "documentation": "

Lists the live sources.

", - "shape": "__listOfLiveSource" - }, - "NextToken": { - "documentation": "

Pagination token from the list request. Use the token to fetch the next page of results.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "ListPlaybackConfigurationsRequest": { - "members": { - "MaxResults": { - "documentation": "

Maximum number of records to return.

", - "location": "querystring", - "locationName": "MaxResults", - "shape": "MaxResults" - }, - "NextToken": { - "documentation": "

Pagination token returned by the GET list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", - "location": "querystring", - "locationName": "NextToken", - "shape": "__string" - } - }, - "type": "structure" - }, - "ListPlaybackConfigurationsResponse": { - "members": { - "Items": { - "documentation": "

Array of playback configurations. This might be all the available configurations or a subset, depending on the settings that you provide and the total number of configurations stored.

", - "shape": "__listOfPlaybackConfiguration" - }, - "NextToken": { - "documentation": "

Pagination token returned by the GET list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "ListPrefetchSchedulesRequest": { - "members": { - "MaxResults": { - "documentation": "

The maximum number of prefetch schedules that you want MediaTailor to return in response to the current request. If the playback configuration has more than MaxResults prefetch schedules, use the value of NextToken in the response to get the next page of results.

", - "shape": "__integerMin1Max100" - }, - "NextToken": { - "documentation": "

(Optional) If the playback configuration has more than MaxResults prefetch schedules, use NextToken to get the second and subsequent pages of results.

For the first ListPrefetchSchedulesRequest request, omit this value.

For the second and subsequent requests, get the value of NextToken from the previous response and specify that value for NextToken in the request.

If the previous response didn't include a NextToken element, there are no more prefetch schedules to get.

", - "shape": "__string" - }, - "PlaybackConfigurationName": { - "documentation": "

The name of the playback configuration.

", - "location": "uri", - "locationName": "PlaybackConfigurationName", - "shape": "__string" - }, - "StreamId": { - "documentation": "

An optional filtering parameter whereby MediaTailor filters the prefetch schedules to include only specific streams.

", - "shape": "__string" - } - }, - "required": [ - "PlaybackConfigurationName" - ], - "type": "structure" - }, - "ListPrefetchSchedulesResponse": { - "members": { - "Items": { - "documentation": "

Lists the prefetch schedules. An empty Items list doesn't mean there aren't more items to fetch, just that that page was empty.

", - "shape": "__listOfPrefetchSchedule" - }, - "NextToken": { - "documentation": "

The value that you will use forNextToken in the next ListPrefetchSchedulesRequest request.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "ListSourceLocationsRequest": { - "members": { - "MaxResults": { - "documentation": "

Upper bound on number of records to return. The maximum number of results is 100.

", - "location": "querystring", - "locationName": "maxResults", - "shape": "MaxResults" - }, - "NextToken": { - "documentation": "

Pagination token from the GET list request. Use the token to fetch the next page of results.

", - "location": "querystring", - "locationName": "nextToken", - "shape": "__string" - } - }, - "type": "structure" - }, - "ListSourceLocationsResponse": { - "members": { - "Items": { - "documentation": "

A list of source locations.

", - "shape": "__listOfSourceLocation" - }, - "NextToken": { - "documentation": "

Pagination token from the list request. Use the token to fetch the next page of results.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "ListTagsForResourceRequest": { - "members": { - "ResourceArn": { - "documentation": "

The Amazon Resource Name (ARN) for the playback configuration. You can get this from the response to any playback configuration request.

", - "location": "uri", - "locationName": "ResourceArn", - "shape": "__string" - } - }, - "required": [ - "ResourceArn" - ], - "type": "structure" - }, - "ListTagsForResourceResponse": { - "members": { - "Tags": { - "documentation": "

A comma-separated list of tag key:value pairs.

", - "locationName": "tags", - "shape": "__mapOf__string" - } - }, - "type": "structure" - }, - "ListVodSourcesRequest": { - "members": { - "MaxResults": { - "documentation": "

Upper bound on number of records to return. The maximum number of results is 100.

", - "location": "querystring", - "locationName": "maxResults", - "shape": "MaxResults" - }, - "NextToken": { - "documentation": "

Pagination token from the GET list request. Use the token to fetch the next page of results.

", - "location": "querystring", - "locationName": "nextToken", - "shape": "__string" - }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - } - }, - "required": [ - "SourceLocationName" - ], - "type": "structure" - }, - "ListVodSourcesResponse": { - "members": { - "Items": { - "documentation": "

Lists the VOD sources.

", - "shape": "__listOfVodSource" - }, - "NextToken": { - "documentation": "

Pagination token from the list request. Use the token to fetch the next page of results.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "LivePreRollConfiguration": { - "documentation": "

The configuration for pre-roll ad insertion.

", - "members": { - "AdDecisionServerUrl": { - "documentation": "

The URL for the ad decision server (ADS) for pre-roll ads. This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.

", - "shape": "__string" - }, - "MaxDurationSeconds": { - "documentation": "The maximum allowed duration for the pre-roll ad avail. AWS Elemental MediaTailor won't play pre-roll ads to exceed this duration, regardless of the total duration of ads that the ADS returns.", - "shape": "__integer" - } - }, - "type": "structure" - }, - "LiveSource": { - "documentation": "

Live source configuration parameters.

", - "members": { - "Arn": { - "documentation": "

The ARN for the live source.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the live source was created.

", - "shape": "__timestampUnix" - }, - "HttpPackageConfigurations": { - "documentation": "

The HTTP package configurations for the live source.

", - "shape": "HttpPackageConfigurations" - }, - "LastModifiedTime": { - "documentation": "

The timestamp that indicates when the live source was last modified.

", - "shape": "__timestampUnix" - }, - "LiveSourceName": { - "documentation": "

The name that's used to refer to a live source.

", - "shape": "__string" - }, - "SourceLocationName": { - "documentation": "

The name of the source location.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the live source.

", - "locationName": "tags", - "shape": "__mapOf__string" - } - }, - "required": [ - "SourceLocationName", - "LiveSourceName", + "CreateVodSourceRequest":{ + "type":"structure", + "required":[ "HttpPackageConfigurations", - "Arn" + "SourceLocationName", + "VodSourceName" ], - "type": "structure" + "members":{ + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

A list of HTTP package configuration parameters for this VOD source.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location for this VOD source.

", + "location":"uri", + "locationName":"SourceLocationName" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the VOD source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name associated with the VOD source.>

", + "location":"uri", + "locationName":"VodSourceName" + } + } }, - "LogConfiguration": { - "documentation": "

Returns Amazon CloudWatch log settings for a playback configuration.

", - "members": { - "PercentEnabled": { - "documentation": "

The percentage of session logs that MediaTailor sends to your Cloudwatch Logs account. For example, if your playback configuration has 1000 sessions and percentEnabled is set to 60, MediaTailor sends logs for 600 of the sessions to CloudWatch Logs. MediaTailor decides at random which of the playback configuration sessions to send logs for. If you want to view logs for a specific session, you can use the debug log mode.

Valid values: 0 - 100

", - "shape": "__integer" + "CreateVodSourceResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The ARN to assign to this VOD source.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The time the VOD source was created.

" + }, + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

A list of HTTP package configuration parameters for this VOD source.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The time the VOD source was last modified.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name to assign to the source location for this VOD source.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the VOD source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name to assign to the VOD source.

" + } + } + }, + "DashConfiguration":{ + "type":"structure", + "members":{ + "ManifestEndpointPrefix":{ + "shape":"__string", + "documentation":"

The URL generated by MediaTailor to initiate a playback session. The session uses server-side reporting. This setting is ignored in PUT operations.

" + }, + "MpdLocation":{ + "shape":"__string", + "documentation":"

The setting that controls whether MediaTailor includes the Location tag in DASH manifests. MediaTailor populates the Location tag with the URL for manifest update requests, to be used by players that don't support sticky redirects. Disable this if you have CDN routing rules set up for accessing MediaTailor manifests, and you are either using client-side reporting or your players support sticky HTTP redirects. Valid values are DISABLED and EMT_DEFAULT. The EMT_DEFAULT setting enables the inclusion of the tag and is the default value.

" + }, + "OriginManifestType":{ + "shape":"OriginManifestType", + "documentation":"

The setting that controls whether MediaTailor handles manifests from the origin server as multi-period manifests or single-period manifests. If your origin server produces single-period manifests, set this to SINGLE_PERIOD. The default setting is MULTI_PERIOD. For multi-period manifests, omit this setting or set it to MULTI_PERIOD.

" } }, - "required": [ - "PercentEnabled" - ], - "type": "structure" + "documentation":"

The configuration for DASH content.

" }, - "ManifestProcessingRules": { - "documentation": "

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

", - "members": { - "AdMarkerPassthrough": { - "documentation": "

For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest.

No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.

", - "shape": "AdMarkerPassthrough" + "DashConfigurationForPut":{ + "type":"structure", + "members":{ + "MpdLocation":{ + "shape":"__string", + "documentation":"

The setting that controls whether MediaTailor includes the Location tag in DASH manifests. MediaTailor populates the Location tag with the URL for manifest update requests, to be used by players that don't support sticky redirects. Disable this if you have CDN routing rules set up for accessing MediaTailor manifests, and you are either using client-side reporting or your players support sticky HTTP redirects. Valid values are DISABLED and EMT_DEFAULT. The EMT_DEFAULT setting enables the inclusion of the tag and is the default value.

" + }, + "OriginManifestType":{ + "shape":"OriginManifestType", + "documentation":"

The setting that controls whether MediaTailor handles manifests from the origin server as multi-period manifests or single-period manifests. If your origin server produces single-period manifests, set this to SINGLE_PERIOD. The default setting is MULTI_PERIOD. For multi-period manifests, omit this setting or set it to MULTI_PERIOD.

" } }, - "type": "structure" + "documentation":"

The configuration for DASH PUT operations.

" }, - "MaxResults": { - "max": 100, - "min": 1, - "type": "integer" + "DashPlaylistSettings":{ + "type":"structure", + "members":{ + "ManifestWindowSeconds":{ + "shape":"__integer", + "documentation":"

The total duration (in seconds) of each manifest. Minimum value: 30 seconds. Maximum value: 3600 seconds.

" + }, + "MinBufferTimeSeconds":{ + "shape":"__integer", + "documentation":"

Minimum amount of content (measured in seconds) that a player must keep available in the buffer. Minimum value: 2 seconds. Maximum value: 60 seconds.

" + }, + "MinUpdatePeriodSeconds":{ + "shape":"__integer", + "documentation":"

Minimum amount of time (in seconds) that the player should wait before requesting updates to the manifest. Minimum value: 2 seconds. Maximum value: 60 seconds.

" + }, + "SuggestedPresentationDelaySeconds":{ + "shape":"__integer", + "documentation":"

Amount of time (in seconds) that the player should be from the live point at the end of the manifest. Minimum value: 2 seconds. Maximum value: 60 seconds.

" + } + }, + "documentation":"

Dash manifest configuration parameters.

" }, - "MessageType": { - "enum": [ - "SPLICE_INSERT" + "DefaultSegmentDeliveryConfiguration":{ + "type":"structure", + "members":{ + "BaseUrl":{ + "shape":"__string", + "documentation":"

The hostname of the server that will be used to serve segments. This string must include the protocol, such as https://.

" + } + }, + "documentation":"

The optional configuration for a server that serves segments. Use this if you want the segment delivery server to be different from the source location server. For example, you can configure your source location server to be an origination server, such as MediaPackage, and the segment delivery server to be a content delivery network (CDN), such as CloudFront. If you don't specify a segment delivery server, then the source location server is used.

" + }, + "DeleteChannelPolicyRequest":{ + "type":"structure", + "required":["ChannelName"], + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel associated with this channel policy.

", + "location":"uri", + "locationName":"ChannelName" + } + } + }, + "DeleteChannelPolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteChannelRequest":{ + "type":"structure", + "required":["ChannelName"], + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

", + "location":"uri", + "locationName":"ChannelName" + } + } + }, + "DeleteChannelResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteLiveSourceRequest":{ + "type":"structure", + "required":[ + "LiveSourceName", + "SourceLocationName" ], - "type": "string" + "members":{ + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the live source.

", + "location":"uri", + "locationName":"LiveSourceName" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with this Live Source.

", + "location":"uri", + "locationName":"SourceLocationName" + } + } }, - "Mode": { - "enum": [ + "DeleteLiveSourceResponse":{ + "type":"structure", + "members":{ + } + }, + "DeletePlaybackConfigurationRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"__string", + "documentation":"

The name of the playback configuration.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "DeletePlaybackConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, + "DeletePrefetchScheduleRequest":{ + "type":"structure", + "required":[ + "Name", + "PlaybackConfigurationName" + ], + "members":{ + "Name":{ + "shape":"__string", + "documentation":"

The name of the prefetch schedule. If the action is successful, the service sends back an HTTP 204 response with an empty HTTP body.

", + "location":"uri", + "locationName":"Name" + }, + "PlaybackConfigurationName":{ + "shape":"__string", + "documentation":"

The name of the playback configuration for this prefetch schedule.

", + "location":"uri", + "locationName":"PlaybackConfigurationName" + } + } + }, + "DeletePrefetchScheduleResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteProgramRequest":{ + "type":"structure", + "required":[ + "ChannelName", + "ProgramName" + ], + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

", + "location":"uri", + "locationName":"ChannelName" + }, + "ProgramName":{ + "shape":"__string", + "documentation":"

The name of the program.

", + "location":"uri", + "locationName":"ProgramName" + } + } + }, + "DeleteProgramResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteSourceLocationRequest":{ + "type":"structure", + "required":["SourceLocationName"], + "members":{ + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

", + "location":"uri", + "locationName":"SourceLocationName" + } + } + }, + "DeleteSourceLocationResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteVodSourceRequest":{ + "type":"structure", + "required":[ + "SourceLocationName", + "VodSourceName" + ], + "members":{ + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with this VOD Source.

", + "location":"uri", + "locationName":"SourceLocationName" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name of the VOD source.

", + "location":"uri", + "locationName":"VodSourceName" + } + } + }, + "DeleteVodSourceResponse":{ + "type":"structure", + "members":{ + } + }, + "DescribeChannelRequest":{ + "type":"structure", + "required":["ChannelName"], + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

", + "location":"uri", + "locationName":"ChannelName" + } + } + }, + "DescribeChannelResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The ARN of the channel.

" + }, + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

" + }, + "ChannelState":{ + "shape":"ChannelState", + "documentation":"

Indicates whether the channel is in a running state or not.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp of when the channel was created.

" + }, + "FillerSlate":{ + "shape":"SlateSource", + "documentation":"

Contains information about the slate used to fill gaps between programs in the schedule.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp of when the channel was last modified.

" + }, + "Outputs":{ + "shape":"ResponseOutputs", + "documentation":"

The channel's output properties.

" + }, + "PlaybackMode":{ + "shape":"__string", + "documentation":"

The channel's playback mode.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags assigned to the channel. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "Tier":{ + "shape":"__string", + "documentation":"

The channel's tier.

" + } + } + }, + "DescribeLiveSourceRequest":{ + "type":"structure", + "required":[ + "LiveSourceName", + "SourceLocationName" + ], + "members":{ + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the live source.

", + "location":"uri", + "locationName":"LiveSourceName" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with this Live Source.

", + "location":"uri", + "locationName":"SourceLocationName" + } + } + }, + "DescribeLiveSourceResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The ARN of the live source.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the live source was created.

" + }, + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

The HTTP package configurations.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the live source was modified.

" + }, + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the live source.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with the live source.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags assigned to the live source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + } + } + }, + "DescribeProgramRequest":{ + "type":"structure", + "required":[ + "ChannelName", + "ProgramName" + ], + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel associated with this Program.

", + "location":"uri", + "locationName":"ChannelName" + }, + "ProgramName":{ + "shape":"__string", + "documentation":"

The name of the program.

", + "location":"uri", + "locationName":"ProgramName" + } + } + }, + "DescribeProgramResponse":{ + "type":"structure", + "members":{ + "AdBreaks":{ + "shape":"__listOfAdBreak", + "documentation":"

The ad break configuration settings.

" + }, + "Arn":{ + "shape":"__string", + "documentation":"

The ARN of the program.

" + }, + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel that the program belongs to.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp of when the program was created.

" + }, + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the LiveSource for this Program.

" + }, + "ProgramName":{ + "shape":"__string", + "documentation":"

The name of the program.

" + }, + "ScheduledStartTime":{ + "shape":"__timestampUnix", + "documentation":"

The date and time that the program is scheduled to start in ISO 8601 format and Coordinated Universal Time (UTC). For example, the value 2021-03-27T17:48:16.751Z represents March 27, 2021 at 17:48:16.751 UTC.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The source location name.

" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name that's used to refer to a VOD source.

" + } + } + }, + "DescribeSourceLocationRequest":{ + "type":"structure", + "required":["SourceLocationName"], + "members":{ + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

", + "location":"uri", + "locationName":"SourceLocationName" + } + } + }, + "DescribeSourceLocationResponse":{ + "type":"structure", + "members":{ + "AccessConfiguration":{ + "shape":"AccessConfiguration", + "documentation":"

The access configuration for the source location.

" + }, + "Arn":{ + "shape":"__string", + "documentation":"

The ARN of the source location.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the source location was created.

" + }, + "DefaultSegmentDeliveryConfiguration":{ + "shape":"DefaultSegmentDeliveryConfiguration", + "documentation":"

The default segment delivery configuration settings.

" + }, + "HttpConfiguration":{ + "shape":"HttpConfiguration", + "documentation":"

The HTTP package configuration settings for the source location.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the source location was last modified.

" + }, + "SegmentDeliveryConfigurations":{ + "shape":"__listOfSegmentDeliveryConfiguration", + "documentation":"

A list of the segment delivery configurations associated with this resource.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags assigned to the source location. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + } + } + }, + "DescribeVodSourceRequest":{ + "type":"structure", + "required":[ + "SourceLocationName", + "VodSourceName" + ], + "members":{ + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with this VOD Source.

", + "location":"uri", + "locationName":"SourceLocationName" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name of the VOD Source.

", + "location":"uri", + "locationName":"VodSourceName" + } + } + }, + "DescribeVodSourceResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The ARN of the VOD source.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the VOD source was created.

" + }, + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

The HTTP package configurations.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The last modified time of the VOD source.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with the VOD source.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags assigned to the VOD source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name of the VOD source.

" + } + } + }, + "GetChannelPolicyRequest":{ + "type":"structure", + "required":["ChannelName"], + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel associated with this Channel Policy.

", + "location":"uri", + "locationName":"ChannelName" + } + } + }, + "GetChannelPolicyResponse":{ + "type":"structure", + "members":{ + "Policy":{ + "shape":"__string", + "documentation":"

The IAM policy for the channel. IAM policies are used to control access to your channel.

" + } + } + }, + "GetChannelScheduleRequest":{ + "type":"structure", + "required":["ChannelName"], + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel associated with this Channel Schedule.

", + "location":"uri", + "locationName":"ChannelName" + }, + "DurationMinutes":{ + "shape":"__string", + "documentation":"

The duration in minutes of the channel schedule.

", + "location":"querystring", + "locationName":"durationMinutes" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of channel schedules that you want MediaTailor to return in response to the current request. If there are more than MaxResults channel schedules, use the value of NextToken in the response to get the next page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

(Optional) If the playback configuration has more than MaxResults channel schedules, use NextToken to get the second and subsequent pages of results.

For the first GetChannelScheduleRequest request, omit this value.

For the second and subsequent requests, get the value of NextToken from the previous response and specify that value for NextToken in the request.

If the previous response didn't include a NextToken element, there are no more channel schedules to get.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetChannelScheduleResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"__listOfScheduleEntry", + "documentation":"

A list of schedule entries for the channel.

" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

" + } + } + }, + "GetPlaybackConfigurationRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"__string", + "documentation":"

The identifier for the playback configuration.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "GetPlaybackConfigurationResponse":{ + "type":"structure", + "members":{ + "AdDecisionServerUrl":{ + "shape":"__string", + "documentation":"

The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.

" + }, + "AvailSuppression":{ + "shape":"AvailSuppression", + "documentation":"

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

" + }, + "Bumper":{ + "shape":"Bumper", + "documentation":"

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

" + }, + "CdnConfiguration":{ + "shape":"CdnConfiguration", + "documentation":"

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

" + }, + "ConfigurationAliases":{ + "shape":"ConfigurationAliasesResponse", + "documentation":"

The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.

" + }, + "DashConfiguration":{ + "shape":"DashConfiguration", + "documentation":"

The configuration for DASH content.

" + }, + "HlsConfiguration":{ + "shape":"HlsConfiguration", + "documentation":"

The configuration for HLS content.

" + }, + "LivePreRollConfiguration":{ + "shape":"LivePreRollConfiguration", + "documentation":"

The configuration for pre-roll ad insertion.

" + }, + "LogConfiguration":{ + "shape":"LogConfiguration", + "documentation":"

The Amazon CloudWatch log settings for a playback configuration.

" + }, + "ManifestProcessingRules":{ + "shape":"ManifestProcessingRules", + "documentation":"

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

" + }, + "Name":{ + "shape":"__string", + "documentation":"

The identifier for the playback configuration.

" + }, + "PersonalizationThresholdSeconds":{ + "shape":"__integerMin1", + "documentation":"

Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor.

" + }, + "PlaybackConfigurationArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) for the playback configuration.

" + }, + "PlaybackEndpointPrefix":{ + "shape":"__string", + "documentation":"

The URL that the player accesses to get a manifest from AWS Elemental MediaTailor. This session will use server-side reporting.

" + }, + "SessionInitializationEndpointPrefix":{ + "shape":"__string", + "documentation":"

The URL that the player uses to initialize a session that uses client-side reporting.

" + }, + "SlateAdUrl":{ + "shape":"__string", + "documentation":"

The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID playback configurations. For VPAID, the slate is required because MediaTailor provides it in the slots designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags assigned to the playback configuration. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "TranscodeProfileName":{ + "shape":"__string", + "documentation":"

The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.

" + }, + "VideoContentSourceUrl":{ + "shape":"__string", + "documentation":"

The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.

" + } + } + }, + "GetPrefetchScheduleRequest":{ + "type":"structure", + "required":[ + "Name", + "PlaybackConfigurationName" + ], + "members":{ + "Name":{ + "shape":"__string", + "documentation":"

The name of the prefetch schedule. The name must be unique among all prefetch schedules that are associated with the specified playback configuration.

", + "location":"uri", + "locationName":"Name" + }, + "PlaybackConfigurationName":{ + "shape":"__string", + "documentation":"

Returns information about the prefetch schedule for a specific playback configuration. If you call GetPrefetchSchedule on an expired prefetch schedule, MediaTailor returns an HTTP 404 status code.

", + "location":"uri", + "locationName":"PlaybackConfigurationName" + } + } + }, + "GetPrefetchScheduleResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the prefetch schedule.

" + }, + "Consumption":{ + "shape":"PrefetchConsumption", + "documentation":"

Consumption settings determine how, and when, MediaTailor places the prefetched ads into ad breaks. Ad consumption occurs within a span of time that you define, called a consumption window. You can designate which ad breaks that MediaTailor fills with prefetch ads by setting avail matching criteria.

" + }, + "Name":{ + "shape":"__string", + "documentation":"

The name of the prefetch schedule. The name must be unique among all prefetch schedules that are associated with the specified playback configuration.

" + }, + "PlaybackConfigurationName":{ + "shape":"__string", + "documentation":"

The name of the playback configuration to create the prefetch schedule for.

" + }, + "Retrieval":{ + "shape":"PrefetchRetrieval", + "documentation":"

A complex type that contains settings for prefetch retrieval from the ad decision server (ADS).

" + }, + "StreamId":{ + "shape":"__string", + "documentation":"

An optional stream identifier that you can specify in order to prefetch for multiple streams that use the same playback configuration.

" + } + } + }, + "HlsConfiguration":{ + "type":"structure", + "members":{ + "ManifestEndpointPrefix":{ + "shape":"__string", + "documentation":"

The URL that is used to initiate a playback session for devices that support Apple HLS. The session uses server-side reporting.

" + } + }, + "documentation":"

The configuration for HLS content.

" + }, + "HlsPlaylistSettings":{ + "type":"structure", + "members":{ + "ManifestWindowSeconds":{ + "shape":"__integer", + "documentation":"

The total duration (in seconds) of each manifest. Minimum value: 30 seconds. Maximum value: 3600 seconds.

" + } + }, + "documentation":"

HLS playlist configuration parameters.

" + }, + "HttpConfiguration":{ + "type":"structure", + "required":["BaseUrl"], + "members":{ + "BaseUrl":{ + "shape":"__string", + "documentation":"

The base URL for the source location host server. This string must include the protocol, such as https://.

" + } + }, + "documentation":"

The HTTP configuration for the source location.

" + }, + "HttpPackageConfiguration":{ + "type":"structure", + "required":[ + "Path", + "SourceGroup", + "Type" + ], + "members":{ + "Path":{ + "shape":"__string", + "documentation":"

The relative path to the URL for this VOD source. This is combined with SourceLocation::HttpConfiguration::BaseUrl to form a valid URL.

" + }, + "SourceGroup":{ + "shape":"__string", + "documentation":"

The name of the source group. This has to match one of the Channel::Outputs::SourceGroup.

" + }, + "Type":{ + "shape":"Type", + "documentation":"

The streaming protocol for this package configuration. Supported values are HLS and DASH.

" + } + }, + "documentation":"

The HTTP package configuration properties for the requested VOD source.

" + }, + "HttpPackageConfigurations":{ + "type":"list", + "member":{"shape":"HttpPackageConfiguration"}, + "documentation":"

The VOD source's HTTP package configuration settings.

" + }, + "Integer":{ + "type":"integer", + "box":true + }, + "ListAlertsRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of alerts that you want MediaTailor to return in response to the current request. If there are more than MaxResults alerts, use the value of NextToken in the response to get the next page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "ResourceArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

", + "location":"querystring", + "locationName":"resourceArn" + } + } + }, + "ListAlertsResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"__listOfAlert", + "documentation":"

A list of alerts that are associated with this resource.

" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

" + } + } + }, + "ListChannelsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of channels that you want MediaTailor to return in response to the current request. If there are more than MaxResults channels, use the value of NextToken in the response to get the next page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListChannelsResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"__listOfChannel", + "documentation":"

A list of channels that are associated with this account.

" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

" + } + } + }, + "ListLiveSourcesRequest":{ + "type":"structure", + "required":["SourceLocationName"], + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of live sources that you want MediaTailor to return in response to the current request. If there are more than MaxResults live sources, use the value of NextToken in the response to get the next page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with this Live Sources list.

", + "location":"uri", + "locationName":"SourceLocationName" + } + } + }, + "ListLiveSourcesResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"__listOfLiveSource", + "documentation":"

Lists the live sources.

" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

" + } + } + }, + "ListPlaybackConfigurationsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of playback configurations that you want MediaTailor to return in response to the current request. If there are more than MaxResults playback configurations, use the value of NextToken in the response to get the next page of results.

", + "location":"querystring", + "locationName":"MaxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", + "location":"querystring", + "locationName":"NextToken" + } + } + }, + "ListPlaybackConfigurationsResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"__listOfPlaybackConfiguration", + "documentation":"

Array of playback configurations. This might be all the available configurations or a subset, depending on the settings that you provide and the total number of configurations stored.

" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the GET list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

" + } + } + }, + "ListPrefetchSchedulesRequest":{ + "type":"structure", + "required":["PlaybackConfigurationName"], + "members":{ + "MaxResults":{ + "shape":"__integerMin1Max100", + "documentation":"

The maximum number of prefetch schedules that you want MediaTailor to return in response to the current request. If there are more than MaxResults prefetch schedules, use the value of NextToken in the response to get the next page of results.

" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

(Optional) If the playback configuration has more than MaxResults prefetch schedules, use NextToken to get the second and subsequent pages of results.

For the first ListPrefetchSchedulesRequest request, omit this value.

For the second and subsequent requests, get the value of NextToken from the previous response and specify that value for NextToken in the request.

If the previous response didn't include a NextToken element, there are no more prefetch schedules to get.

" + }, + "PlaybackConfigurationName":{ + "shape":"__string", + "documentation":"

Retrieves the prefetch schedule(s) for a specific playback configuration.

", + "location":"uri", + "locationName":"PlaybackConfigurationName" + }, + "StreamId":{ + "shape":"__string", + "documentation":"

An optional filtering parameter whereby MediaTailor filters the prefetch schedules to include only specific streams.

" + } + } + }, + "ListPrefetchSchedulesResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"__listOfPrefetchSchedule", + "documentation":"

Lists the prefetch schedules. An empty Items list doesn't mean there aren't more items to fetch, just that that page was empty.

" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

" + } + } + }, + "ListSourceLocationsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of source locations that you want MediaTailor to return in response to the current request. If there are more than MaxResults source locations, use the value of NextToken in the response to get the next page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListSourceLocationsResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"__listOfSourceLocation", + "documentation":"

A list of source locations.

" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) associated with this resource.

", + "location":"uri", + "locationName":"ResourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags associated with this resource. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + } + } + }, + "ListVodSourcesRequest":{ + "type":"structure", + "required":["SourceLocationName"], + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of VOD sources that you want MediaTailor to return in response to the current request. If there are more than MaxResults VOD sources, use the value of NextToken in the response to get the next page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with this VOD Source list.

", + "location":"uri", + "locationName":"SourceLocationName" + } + } + }, + "ListVodSourcesResponse":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"__listOfVodSource", + "documentation":"

Lists the VOD sources.

" + }, + "NextToken":{ + "shape":"__string", + "documentation":"

Pagination token returned by the list request when results exceed the maximum allowed. Use the token to fetch the next page of results.

" + } + } + }, + "LivePreRollConfiguration":{ + "type":"structure", + "members":{ + "AdDecisionServerUrl":{ + "shape":"__string", + "documentation":"

The URL for the ad decision server (ADS) for pre-roll ads. This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.

" + }, + "MaxDurationSeconds":{ + "shape":"__integer", + "documentation":"

The maximum allowed duration for the pre-roll ad avail. AWS Elemental MediaTailor won't play pre-roll ads to exceed this duration, regardless of the total duration of ads that the ADS returns.

" + } + }, + "documentation":"

The configuration for pre-roll ad insertion.

" + }, + "LiveSource":{ + "type":"structure", + "required":[ + "Arn", + "HttpPackageConfigurations", + "LiveSourceName", + "SourceLocationName" + ], + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The ARN for the live source.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the live source was created.

" + }, + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

The HTTP package configurations for the live source.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the live source was last modified.

" + }, + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name that's used to refer to a live source.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags assigned to the live source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + } + }, + "documentation":"

Live source configuration parameters.

" + }, + "LogConfiguration":{ + "type":"structure", + "required":["PercentEnabled"], + "members":{ + "PercentEnabled":{ + "shape":"__integer", + "documentation":"

The percentage of session logs that MediaTailor sends to your Cloudwatch Logs account. For example, if your playback configuration has 1000 sessions and percentEnabled is set to 60, MediaTailor sends logs for 600 of the sessions to CloudWatch Logs. MediaTailor decides at random which of the playback configuration sessions to send logs for. If you want to view logs for a specific session, you can use the debug log mode.

Valid values: 0 - 100

" + } + }, + "documentation":"

Returns Amazon CloudWatch log settings for a playback configuration.

" + }, + "ManifestProcessingRules":{ + "type":"structure", + "members":{ + "AdMarkerPassthrough":{ + "shape":"AdMarkerPassthrough", + "documentation":"

For HLS, when set to true, MediaTailor passes through EXT-X-CUE-IN, EXT-X-CUE-OUT, and EXT-X-SPLICEPOINT-SCTE35 ad markers from the origin manifest to the MediaTailor personalized manifest.

No logic is applied to these ad markers. For example, if EXT-X-CUE-OUT has a value of 60, but no ads are filled for that ad break, MediaTailor will not set the value to 0.

" + } + }, + "documentation":"

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

" + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, + "MessageType":{ + "type":"string", + "enum":[ + "SPLICE_INSERT", + "TIME_SIGNAL" + ] + }, + "Mode":{ + "type":"string", + "enum":[ "OFF", "BEHIND_LIVE_EDGE" - ], - "type": "string" + ] }, - "Operator": { - "enum": [ - "EQUALS" - ], - "type": "string" + "Operator":{ + "type":"string", + "enum":["EQUALS"] }, - "OriginManifestType": { - "enum": [ + "OriginManifestType":{ + "type":"string", + "enum":[ "SINGLE_PERIOD", "MULTI_PERIOD" - ], - "type": "string" + ] }, - "PlaybackConfiguration": { - "documentation": "

Creates a playback configuration. For information about MediaTailor configurations, see Working with configurations in AWS Elemental MediaTailor.

", - "members": { - "AdDecisionServerUrl": { - "documentation": "

The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing you can provide a static VAST URL. The maximum length is 25,000 characters.

", - "shape": "__string" + "PlaybackConfiguration":{ + "type":"structure", + "members":{ + "AdDecisionServerUrl":{ + "shape":"__string", + "documentation":"

The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing you can provide a static VAST URL. The maximum length is 25,000 characters.

" }, - "AvailSuppression": { - "documentation": "

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

", - "shape": "AvailSuppression" + "AvailSuppression":{ + "shape":"AvailSuppression", + "documentation":"

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

" }, - "Bumper": { - "documentation": "

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

", - "shape": "Bumper" + "Bumper":{ + "shape":"Bumper", + "documentation":"

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

" }, - "CdnConfiguration": { - "documentation": "

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

", - "shape": "CdnConfiguration" + "CdnConfiguration":{ + "shape":"CdnConfiguration", + "documentation":"

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

" }, - "ConfigurationAliases": { - "documentation": "

The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.

", - "shape": "ConfigurationAliasesResponse" + "ConfigurationAliases":{ + "shape":"ConfigurationAliasesResponse", + "documentation":"

The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.

" }, - "DashConfiguration": { - "documentation": "

The configuration for a DASH source.

", - "shape": "DashConfiguration" + "DashConfiguration":{ + "shape":"DashConfiguration", + "documentation":"

The configuration for a DASH source.

" }, - "HlsConfiguration": { - "documentation": "

The configuration for HLS content.

", - "shape": "HlsConfiguration" + "HlsConfiguration":{ + "shape":"HlsConfiguration", + "documentation":"

The configuration for HLS content.

" }, - "LivePreRollConfiguration": { - "documentation": "

The configuration for pre-roll ad insertion.

", - "shape": "LivePreRollConfiguration" + "LivePreRollConfiguration":{ + "shape":"LivePreRollConfiguration", + "documentation":"

The configuration for pre-roll ad insertion.

" }, - "LogConfiguration": { - "documentation": "

The Amazon CloudWatch log settings for a playback configuration.

", - "shape": "LogConfiguration" + "LogConfiguration":{ + "shape":"LogConfiguration", + "documentation":"

The Amazon CloudWatch log settings for a playback configuration.

" }, - "ManifestProcessingRules": { - "documentation": "

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

", - "shape": "ManifestProcessingRules" + "ManifestProcessingRules":{ + "shape":"ManifestProcessingRules", + "documentation":"

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

" }, - "Name": { - "documentation": "

The identifier for the playback configuration.

", - "shape": "__string" + "Name":{ + "shape":"__string", + "documentation":"

The identifier for the playback configuration.

" }, - "PersonalizationThresholdSeconds": { - "documentation": "

Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor.

", - "shape": "__integerMin1" + "PersonalizationThresholdSeconds":{ + "shape":"__integerMin1", + "documentation":"

Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor.

" }, - "PlaybackConfigurationArn": { - "documentation": "

The Amazon Resource Name (ARN) for the playback configuration.

", - "shape": "__string" + "PlaybackConfigurationArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) for the playback configuration.

" }, - "PlaybackEndpointPrefix": { - "documentation": "

The URL that the player accesses to get a manifest from AWS Elemental MediaTailor.

", - "shape": "__string" + "PlaybackEndpointPrefix":{ + "shape":"__string", + "documentation":"

The URL that the player accesses to get a manifest from AWS Elemental MediaTailor.

" }, - "SessionInitializationEndpointPrefix": { - "documentation": "

The URL that the player uses to initialize a session that uses client-side reporting.

", - "shape": "__string" + "SessionInitializationEndpointPrefix":{ + "shape":"__string", + "documentation":"

The URL that the player uses to initialize a session that uses client-side reporting.

" }, - "SlateAdUrl": { - "documentation": "

The URL for a video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID playback configurations. For VPAID, the slate is required because MediaTailor provides it in the slots designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.

", - "shape": "__string" + "SlateAdUrl":{ + "shape":"__string", + "documentation":"

The URL for a video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID playback configurations. For VPAID, the slate is required because MediaTailor provides it in the slots designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.

" }, - "Tags": { - "documentation": "

The tags to assign to the playback configuration.

", - "locationName": "tags", - "shape": "__mapOf__string" + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the playback configuration. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" }, - "TranscodeProfileName": { - "documentation": "

The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.

", - "shape": "__string" + "TranscodeProfileName":{ + "shape":"__string", + "documentation":"

The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.

" }, - "VideoContentSourceUrl": { - "documentation": "

The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.

", - "shape": "__string" + "VideoContentSourceUrl":{ + "shape":"__string", + "documentation":"

The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.

" } }, - "type": "structure" + "documentation":"

A playback configuration. For information about MediaTailor configurations, see Working with configurations in AWS Elemental MediaTailor.

" }, - "PlaybackMode": { - "enum": [ + "PlaybackMode":{ + "type":"string", + "enum":[ "LOOP", "LINEAR" - ], - "type": "string" + ] }, - "PrefetchConsumption": { - "documentation": "

A complex type that contains settings that determine how and when that MediaTailor places prefetched ads into upcoming ad breaks.

", - "members": { - "AvailMatchingCriteria": { - "documentation": "

If you only want MediaTailor to insert prefetched ads into avails (ad breaks) that match specific dynamic variables, such as scte.event_id, set the avail matching criteria.

", - "shape": "__listOfAvailMatchingCriteria" + "PrefetchConsumption":{ + "type":"structure", + "required":["EndTime"], + "members":{ + "AvailMatchingCriteria":{ + "shape":"__listOfAvailMatchingCriteria", + "documentation":"

If you only want MediaTailor to insert prefetched ads into avails (ad breaks) that match specific dynamic variables, such as scte.event_id, set the avail matching criteria.

" }, - "EndTime": { - "documentation": "

The time when MediaTailor no longer considers the prefetched ads for use in an ad break. MediaTailor automatically deletes prefetch schedules no less than seven days after the end time. If you'd like to manually delete the prefetch schedule, you can call DeletePrefetchSchedule.

", - "shape": "__timestampUnix" + "EndTime":{ + "shape":"__timestampUnix", + "documentation":"

The time when MediaTailor no longer considers the prefetched ads for use in an ad break. MediaTailor automatically deletes prefetch schedules no less than seven days after the end time. If you'd like to manually delete the prefetch schedule, you can call DeletePrefetchSchedule.

" }, - "StartTime": { - "documentation": "

The time when prefetched ads are considered for use in an ad break. If you don't specify StartTime, the prefetched ads are available after MediaTailor retrives them from the ad decision server.

", - "shape": "__timestampUnix" + "StartTime":{ + "shape":"__timestampUnix", + "documentation":"

The time when prefetched ads are considered for use in an ad break. If you don't specify StartTime, the prefetched ads are available after MediaTailor retrives them from the ad decision server.

" } }, - "required": [ - "EndTime" - ], - "type": "structure" + "documentation":"

A complex type that contains settings that determine how and when that MediaTailor places prefetched ads into upcoming ad breaks.

" }, - "PrefetchRetrieval": { - "documentation": "

A complex type that contains settings governing when MediaTailor prefetches ads, and which dynamic variables that MediaTailor includes in the request to the ad decision server.

", - "members": { - "DynamicVariables": { - "documentation": "

The dynamic variables to use for substitution during prefetch requests to the ad decision server (ADS).

You intially configure dynamic variables for the ADS URL when you set up your playback configuration. When you specify DynamicVariables for prefetch retrieval, MediaTailor includes the dynamic variables in the request to the ADS.

", - "shape": "__mapOf__string" + "PrefetchRetrieval":{ + "type":"structure", + "required":["EndTime"], + "members":{ + "DynamicVariables":{ + "shape":"__mapOf__string", + "documentation":"

The dynamic variables to use for substitution during prefetch requests to the ad decision server (ADS).

You initially configure dynamic variables for the ADS URL when you set up your playback configuration. When you specify DynamicVariables for prefetch retrieval, MediaTailor includes the dynamic variables in the request to the ADS.

" }, - "EndTime": { - "documentation": "

The time when prefetch retrieval ends for the ad break. Prefetching will be attempted for manifest requests that occur at or before this time.

", - "shape": "__timestampUnix" + "EndTime":{ + "shape":"__timestampUnix", + "documentation":"

The time when prefetch retrieval ends for the ad break. Prefetching will be attempted for manifest requests that occur at or before this time.

" }, - "StartTime": { - "documentation": "

The time when prefetch retrievals can start for this break. Ad prefetching will be attempted for manifest requests that occur at or after this time. Defaults to the current time. If not specified, the prefetch retrieval starts as soon as possible.

", - "shape": "__timestampUnix" + "StartTime":{ + "shape":"__timestampUnix", + "documentation":"

The time when prefetch retrievals can start for this break. Ad prefetching will be attempted for manifest requests that occur at or after this time. Defaults to the current time. If not specified, the prefetch retrieval starts as soon as possible.

" } }, - "required": [ - "EndTime" - ], - "type": "structure" + "documentation":"

A complex type that contains settings governing when MediaTailor prefetches ads, and which dynamic variables that MediaTailor includes in the request to the ad decision server.

" }, - "PrefetchSchedule": { - "documentation": "

A complex type that contains prefetch schedule information.

", - "members": { - "Arn": { - "documentation": "

The Amazon Resource Name (ARN) of the prefetch schedule.

", - "shape": "__string" - }, - "Consumption": { - "documentation": "

Consumption settings determine how, and when, MediaTailor places the prefetched ads into ad breaks. Ad consumption occurs within a span of time that you define, called a consumption window. You can designate which ad breaks that MediaTailor fills with prefetch ads by setting avail matching criteria.

", - "shape": "PrefetchConsumption" - }, - "Name": { - "documentation": "

The name of the prefetch schedule. The name must be unique among all prefetch schedules that are associated with the specified playback configuration.

", - "shape": "__string" - }, - "PlaybackConfigurationName": { - "documentation": "

The name of the playback configuration to create the prefetch schedule for.

", - "shape": "__string" - }, - "Retrieval": { - "documentation": "

A complex type that contains settings for prefetch retrieval from the ad decision server (ADS).

", - "shape": "PrefetchRetrieval" - }, - "StreamId": { - "documentation": "

An optional stream identifier that you can specify in order to prefetch for multiple streams that use the same playback configuration.

", - "shape": "__string" - } - }, - "required": [ - "Retrieval", - "Consumption", + "PrefetchSchedule":{ + "type":"structure", + "required":[ "Arn", + "Consumption", + "Name", "PlaybackConfigurationName", - "Name" + "Retrieval" ], - "type": "structure" - }, - "PutChannelPolicyRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the prefetch schedule.

" }, - "Policy": { - "documentation": "

Adds an IAM role that determines the permissions of your channel.

", - "shape": "__string" + "Consumption":{ + "shape":"PrefetchConsumption", + "documentation":"

Consumption settings determine how, and when, MediaTailor places the prefetched ads into ad breaks. Ad consumption occurs within a span of time that you define, called a consumption window. You can designate which ad breaks that MediaTailor fills with prefetch ads by setting avail matching criteria.

" + }, + "Name":{ + "shape":"__string", + "documentation":"

The name of the prefetch schedule. The name must be unique among all prefetch schedules that are associated with the specified playback configuration.

" + }, + "PlaybackConfigurationName":{ + "shape":"__string", + "documentation":"

The name of the playback configuration to create the prefetch schedule for.

" + }, + "Retrieval":{ + "shape":"PrefetchRetrieval", + "documentation":"

A complex type that contains settings for prefetch retrieval from the ad decision server (ADS).

" + }, + "StreamId":{ + "shape":"__string", + "documentation":"

An optional stream identifier that you can specify in order to prefetch for multiple streams that use the same playback configuration.

" } }, - "required": [ + "documentation":"

A prefetch schedule allows you to tell MediaTailor to fetch and prepare certain ads before an ad break happens. For more information about ad prefetching, see Using ad prefetching in the MediaTailor User Guide.

" + }, + "PutChannelPolicyRequest":{ + "type":"structure", + "required":[ "ChannelName", "Policy" ], - "type": "structure" - }, - "PutChannelPolicyResponse": { - "members": {}, - "type": "structure" - }, - "PutPlaybackConfigurationRequest": { - "members": { - "AdDecisionServerUrl": { - "documentation": "

The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing you can provide a static VAST URL. The maximum length is 25,000 characters.

", - "shape": "__string" + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The channel name associated with this Channel Policy.

", + "location":"uri", + "locationName":"ChannelName" }, - "AvailSuppression": { - "documentation": "

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

", - "shape": "AvailSuppression" - }, - "Bumper": { - "documentation": "

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

", - "shape": "Bumper" - }, - "CdnConfiguration": { - "documentation": "

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

", - "shape": "CdnConfiguration" - }, - "ConfigurationAliases": { - "documentation": "

The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.

", - "shape": "ConfigurationAliasesRequest" - }, - "DashConfiguration": { - "documentation": "

The configuration for DASH content.

", - "shape": "DashConfigurationForPut" - }, - "LivePreRollConfiguration": { - "documentation": "

The configuration for pre-roll ad insertion.

", - "shape": "LivePreRollConfiguration" - }, - "ManifestProcessingRules": { - "documentation": "

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

", - "shape": "ManifestProcessingRules" - }, - "Name": { - "documentation": "

The identifier for the playback configuration.

", - "shape": "__string" - }, - "PersonalizationThresholdSeconds": { - "documentation": "

Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor.

", - "shape": "__integerMin1" - }, - "SlateAdUrl": { - "documentation": "

The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID configurations. For VPAID, the slate is required because MediaTailor provides it in the slots that are designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags to assign to the playback configuration.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "TranscodeProfileName": { - "documentation": "

The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.

", - "shape": "__string" - }, - "VideoContentSourceUrl": { - "documentation": "

The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.

", - "shape": "__string" + "Policy":{ + "shape":"__string", + "documentation":"

Adds an IAM role that determines the permissions of your channel.

" } - }, - "type": "structure" + } }, - "PutPlaybackConfigurationResponse": { - "members": { - "AdDecisionServerUrl": { - "documentation": "

The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing, you can provide a static VAST URL. The maximum length is 25,000 characters.

", - "shape": "__string" + "PutChannelPolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "PutPlaybackConfigurationRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "AdDecisionServerUrl":{ + "shape":"__string", + "documentation":"

The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing you can provide a static VAST URL. The maximum length is 25,000 characters.

" }, - "AvailSuppression": { - "documentation": "

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

", - "shape": "AvailSuppression" + "AvailSuppression":{ + "shape":"AvailSuppression", + "documentation":"

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

" }, - "Bumper": { - "documentation": "

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

", - "shape": "Bumper" + "Bumper":{ + "shape":"Bumper", + "documentation":"

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

" }, - "CdnConfiguration": { - "documentation": "

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

", - "shape": "CdnConfiguration" + "CdnConfiguration":{ + "shape":"CdnConfiguration", + "documentation":"

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

" }, - "ConfigurationAliases": { - "documentation": "

The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.

", - "shape": "ConfigurationAliasesResponse" + "ConfigurationAliases":{ + "shape":"ConfigurationAliasesRequest", + "documentation":"

The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.

" }, - "DashConfiguration": { - "documentation": "

The configuration for DASH content.

", - "shape": "DashConfiguration" + "DashConfiguration":{ + "shape":"DashConfigurationForPut", + "documentation":"

The configuration for DASH content.

" }, - "HlsConfiguration": { - "documentation": "

The configuration for HLS content.

", - "shape": "HlsConfiguration" + "LivePreRollConfiguration":{ + "shape":"LivePreRollConfiguration", + "documentation":"

The configuration for pre-roll ad insertion.

" }, - "LivePreRollConfiguration": { - "documentation": "

The configuration for pre-roll ad insertion.

", - "shape": "LivePreRollConfiguration" + "ManifestProcessingRules":{ + "shape":"ManifestProcessingRules", + "documentation":"

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

" }, - "LogConfiguration": { - "documentation": "

The Amazon CloudWatch log settings for a playback configuration.

", - "shape": "LogConfiguration" + "Name":{ + "shape":"__string", + "documentation":"

The identifier for the playback configuration.

" }, - "ManifestProcessingRules": { - "documentation": "

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

", - "shape": "ManifestProcessingRules" + "PersonalizationThresholdSeconds":{ + "shape":"__integerMin1", + "documentation":"

Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor.

" }, - "Name": { - "documentation": "

The identifier for the playback configuration.

", - "shape": "__string" + "SlateAdUrl":{ + "shape":"__string", + "documentation":"

The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID configurations. For VPAID, the slate is required because MediaTailor provides it in the slots that are designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.

" }, - "PersonalizationThresholdSeconds": { - "documentation": "

Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor.

", - "shape": "__integerMin1" + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the playback configuration. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" }, - "PlaybackConfigurationArn": { - "documentation": "

The Amazon Resource Name (ARN) for the playback configuration.

", - "shape": "__string" + "TranscodeProfileName":{ + "shape":"__string", + "documentation":"

The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.

" }, - "PlaybackEndpointPrefix": { - "documentation": "

The URL that the player accesses to get a manifest from AWS Elemental MediaTailor. This session will use server-side reporting.

", - "shape": "__string" - }, - "SessionInitializationEndpointPrefix": { - "documentation": "

The URL that the player uses to initialize a session that uses client-side reporting.

", - "shape": "__string" - }, - "SlateAdUrl": { - "documentation": "

The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID playback configurations. For VPAID, the slate is required because MediaTailor provides it in the slots designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the playback configuration.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "TranscodeProfileName": { - "documentation": "

The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.

", - "shape": "__string" - }, - "VideoContentSourceUrl": { - "documentation": "

The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.

", - "shape": "__string" + "VideoContentSourceUrl":{ + "shape":"__string", + "documentation":"

The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.

" } - }, - "type": "structure" + } }, - "RelativePosition": { - "enum": [ + "PutPlaybackConfigurationResponse":{ + "type":"structure", + "members":{ + "AdDecisionServerUrl":{ + "shape":"__string", + "documentation":"

The URL for the ad decision server (ADS). This includes the specification of static parameters and placeholders for dynamic parameters. AWS Elemental MediaTailor substitutes player-specific and session-specific parameters as needed when calling the ADS. Alternately, for testing you can provide a static VAST URL. The maximum length is 25,000 characters.

" + }, + "AvailSuppression":{ + "shape":"AvailSuppression", + "documentation":"

The configuration for avail suppression, also known as ad suppression. For more information about ad suppression, see Ad Suppression.

" + }, + "Bumper":{ + "shape":"Bumper", + "documentation":"

The configuration for bumpers. Bumpers are short audio or video clips that play at the start or before the end of an ad break. To learn more about bumpers, see Bumpers.

" + }, + "CdnConfiguration":{ + "shape":"CdnConfiguration", + "documentation":"

The configuration for using a content delivery network (CDN), like Amazon CloudFront, for content and ad segment management.

" + }, + "ConfigurationAliases":{ + "shape":"ConfigurationAliasesResponse", + "documentation":"

The player parameters and aliases used as dynamic variables during session initialization. For more information, see Domain Variables.

" + }, + "DashConfiguration":{ + "shape":"DashConfiguration", + "documentation":"

The configuration for DASH content.

" + }, + "HlsConfiguration":{ + "shape":"HlsConfiguration", + "documentation":"

The configuration for HLS content.

" + }, + "LivePreRollConfiguration":{ + "shape":"LivePreRollConfiguration", + "documentation":"

The configuration for pre-roll ad insertion.

" + }, + "LogConfiguration":{ + "shape":"LogConfiguration", + "documentation":"

The Amazon CloudWatch log settings for a playback configuration.

" + }, + "ManifestProcessingRules":{ + "shape":"ManifestProcessingRules", + "documentation":"

The configuration for manifest processing rules. Manifest processing rules enable customization of the personalized manifests created by MediaTailor.

" + }, + "Name":{ + "shape":"__string", + "documentation":"

The identifier for the playback configuration.

" + }, + "PersonalizationThresholdSeconds":{ + "shape":"__integerMin1", + "documentation":"

Defines the maximum duration of underfilled ad time (in seconds) allowed in an ad break. If the duration of underfilled ad time exceeds the personalization threshold, then the personalization of the ad break is abandoned and the underlying content is shown. This feature applies to ad replacement in live and VOD streams, rather than ad insertion, because it relies on an underlying content stream. For more information about ad break behavior, including ad replacement and insertion, see Ad Behavior in AWS Elemental MediaTailor.

" + }, + "PlaybackConfigurationArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) associated with the playback configuration.

" + }, + "PlaybackEndpointPrefix":{ + "shape":"__string", + "documentation":"

The playback endpoint prefix associated with the playback configuration.

" + }, + "SessionInitializationEndpointPrefix":{ + "shape":"__string", + "documentation":"

The session initialization endpoint prefix associated with the playback configuration.

" + }, + "SlateAdUrl":{ + "shape":"__string", + "documentation":"

The URL for a high-quality video asset to transcode and use to fill in time that's not used by ads. AWS Elemental MediaTailor shows the slate to fill in gaps in media content. Configuring the slate is optional for non-VPAID configurations. For VPAID, the slate is required because MediaTailor provides it in the slots that are designated for dynamic ad content. The slate must be a high-quality asset that contains both audio and video.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the playback configuration. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "TranscodeProfileName":{ + "shape":"__string", + "documentation":"

The name that is used to associate this playback configuration with a custom transcode profile. This overrides the dynamic transcoding defaults of MediaTailor. Use this only if you have already set up custom profiles with the help of AWS Support.

" + }, + "VideoContentSourceUrl":{ + "shape":"__string", + "documentation":"

The URL prefix for the parent manifest for the stream, minus the asset ID. The maximum length is 512 characters.

" + } + } + }, + "RelativePosition":{ + "type":"string", + "enum":[ "BEFORE_PROGRAM", "AFTER_PROGRAM" - ], - "type": "string" + ] }, - "RequestOutputItem": { - "documentation": "

The output configuration for this channel.

", - "members": { - "DashPlaylistSettings": { - "documentation": "

DASH manifest configuration parameters.

", - "shape": "DashPlaylistSettings" - }, - "HlsPlaylistSettings": { - "documentation": "

HLS playlist configuration parameters.

", - "shape": "HlsPlaylistSettings" - }, - "ManifestName": { - "documentation": "

The name of the manifest for the channel. The name appears in the PlaybackUrl.

", - "shape": "__string" - }, - "SourceGroup": { - "documentation": "

A string used to match which HttpPackageConfiguration is used for each VodSource.

", - "shape": "__string" - } - }, - "required": [ + "RequestOutputItem":{ + "type":"structure", + "required":[ "ManifestName", "SourceGroup" ], - "type": "structure" - }, - "RequestOutputs": { - "documentation": "

An object that represents an object in the CreateChannel request.

", - "member": { - "shape": "RequestOutputItem" - }, - "type": "list" - }, - "ResponseOutputItem": { - "documentation": "

This response includes only the \"property\" : \"type\" property.

", - "members": { - "DashPlaylistSettings": { - "documentation": "

DASH manifest configuration settings.

", - "shape": "DashPlaylistSettings" + "members":{ + "DashPlaylistSettings":{ + "shape":"DashPlaylistSettings", + "documentation":"

DASH manifest configuration parameters.

" }, - "HlsPlaylistSettings": { - "documentation": "

HLS manifest configuration settings.

", - "shape": "HlsPlaylistSettings" + "HlsPlaylistSettings":{ + "shape":"HlsPlaylistSettings", + "documentation":"

HLS playlist configuration parameters.

" }, - "ManifestName": { - "documentation": "

The name of the manifest for the channel that will appear in the channel output's playback URL.

", - "shape": "__string" + "ManifestName":{ + "shape":"__string", + "documentation":"

The name of the manifest for the channel. The name appears in the PlaybackUrl.

" }, - "PlaybackUrl": { - "documentation": "

The URL used for playback by content players.

", - "shape": "__string" - }, - "SourceGroup": { - "documentation": "

A string used to associate a package configuration source group with a channel output.

", - "shape": "__string" + "SourceGroup":{ + "shape":"__string", + "documentation":"

A string used to match which HttpPackageConfiguration is used for each VodSource.

" } }, - "required": [ + "documentation":"

The output configuration for this channel.

" + }, + "RequestOutputs":{ + "type":"list", + "member":{"shape":"RequestOutputItem"}, + "documentation":"

An object that represents an object in the CreateChannel request.

" + }, + "ResponseOutputItem":{ + "type":"structure", + "required":[ "ManifestName", "PlaybackUrl", "SourceGroup" ], - "type": "structure" - }, - "ResponseOutputs": { - "member": { - "shape": "ResponseOutputItem" - }, - "type": "list" - }, - "ScheduleAdBreak": { - "documentation": "

The schedule's ad break properties.

", - "members": { - "ApproximateDurationSeconds": { - "documentation": "

The approximate duration of the ad break, in seconds.

", - "shape": "__long" + "members":{ + "DashPlaylistSettings":{ + "shape":"DashPlaylistSettings", + "documentation":"

DASH manifest configuration settings.

" }, - "ApproximateStartTime": { - "documentation": "

The approximate time that the ad will start playing.

", - "shape": "__timestampUnix" + "HlsPlaylistSettings":{ + "shape":"HlsPlaylistSettings", + "documentation":"

HLS manifest configuration settings.

" }, - "SourceLocationName": { - "documentation": "

The name of the source location containing the VOD source used for the ad break.

", - "shape": "__string" + "ManifestName":{ + "shape":"__string", + "documentation":"

The name of the manifest for the channel that will appear in the channel output's playback URL.

" }, - "VodSourceName": { - "documentation": "

The name of the VOD source used for the ad break.

", - "shape": "__string" + "PlaybackUrl":{ + "shape":"__string", + "documentation":"

The URL used for playback by content players.

" + }, + "SourceGroup":{ + "shape":"__string", + "documentation":"

A string used to associate a package configuration source group with a channel output.

" } }, - "type": "structure" + "documentation":"

The output item response.

" }, - "ScheduleConfiguration": { - "documentation": "

Schedule configuration parameters. A channel must be stopped before changes can be made to the schedule.

", - "members": { - "Transition": { - "documentation": "

Program transition configurations.

", - "shape": "Transition" + "ResponseOutputs":{ + "type":"list", + "member":{"shape":"ResponseOutputItem"} + }, + "ScheduleAdBreak":{ + "type":"structure", + "members":{ + "ApproximateDurationSeconds":{ + "shape":"__long", + "documentation":"

The approximate duration of the ad break, in seconds.

" + }, + "ApproximateStartTime":{ + "shape":"__timestampUnix", + "documentation":"

The approximate time that the ad will start playing.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location containing the VOD source used for the ad break.

" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name of the VOD source used for the ad break.

" } }, - "required": [ - "Transition" - ], - "type": "structure" + "documentation":"

The schedule's ad break properties.

" }, - "ScheduleEntry": { - "documentation": "

The properties for a schedule.

", - "members": { - "ApproximateDurationSeconds": { - "documentation": "

The approximate duration of this program, in seconds.

", - "shape": "__long" - }, - "ApproximateStartTime": { - "documentation": "

The approximate time that the program will start playing.

", - "shape": "__timestampUnix" - }, - "Arn": { - "documentation": "

The ARN of the program.

", - "shape": "__string" - }, - "ChannelName": { - "documentation": "

The name of the channel that uses this schedule.

", - "shape": "__string" - }, - "LiveSourceName": { - "documentation": "

The name of the live source used for the program.

", - "shape": "__string" - }, - "ProgramName": { - "documentation": "

The name of the program.

", - "shape": "__string" - }, - "ScheduleAdBreaks": { - "documentation": "

The schedule's ad break properties.

", - "shape": "__listOfScheduleAdBreak" - }, - "ScheduleEntryType": { - "documentation": "

The type of schedule entry.

Valid values: PROGRAM or FILLER_SLATE.

", - "shape": "ScheduleEntryType" - }, - "SourceLocationName": { - "documentation": "

The name of the source location.

", - "shape": "__string" - }, - "VodSourceName": { - "documentation": "

The name of the VOD source.

", - "shape": "__string" + "ScheduleConfiguration":{ + "type":"structure", + "required":["Transition"], + "members":{ + "Transition":{ + "shape":"Transition", + "documentation":"

Program transition configurations.

" } }, - "required": [ - "SourceLocationName", - "ChannelName", + "documentation":"

Schedule configuration parameters. A channel must be stopped before changes can be made to the schedule.

" + }, + "ScheduleEntry":{ + "type":"structure", + "required":[ "Arn", - "ProgramName" + "ChannelName", + "ProgramName", + "SourceLocationName" ], - "type": "structure" + "members":{ + "ApproximateDurationSeconds":{ + "shape":"__long", + "documentation":"

The approximate duration of this program, in seconds.

" + }, + "ApproximateStartTime":{ + "shape":"__timestampUnix", + "documentation":"

The approximate time that the program will start playing.

" + }, + "Arn":{ + "shape":"__string", + "documentation":"

The ARN of the program.

" + }, + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel that uses this schedule.

" + }, + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the live source used for the program.

" + }, + "ProgramName":{ + "shape":"__string", + "documentation":"

The name of the program.

" + }, + "ScheduleAdBreaks":{ + "shape":"__listOfScheduleAdBreak", + "documentation":"

The schedule's ad break properties.

" + }, + "ScheduleEntryType":{ + "shape":"ScheduleEntryType", + "documentation":"

The type of schedule entry.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name of the VOD source.

" + } + }, + "documentation":"

The properties for a schedule.

" }, - "ScheduleEntryType": { - "enum": [ + "ScheduleEntryType":{ + "type":"string", + "enum":[ "PROGRAM", "FILLER_SLATE" - ], - "type": "string" + ] }, - "SecretsManagerAccessTokenConfiguration": { - "documentation": "

AWS Secrets Manager access token configuration parameters. For information about Secrets Manager access token authentication, see Working with AWS Secrets Manager access token authentication.

", - "members": { - "HeaderName": { - "documentation": "

The name of the HTTP header used to supply the access token in requests to the source location.

", - "shape": "__string" + "SecretsManagerAccessTokenConfiguration":{ + "type":"structure", + "members":{ + "HeaderName":{ + "shape":"__string", + "documentation":"

The name of the HTTP header used to supply the access token in requests to the source location.

" }, - "SecretArn": { - "documentation": "

The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the access token.

", - "shape": "__string" + "SecretArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the access token.

" }, - "SecretStringKey": { - "documentation": "

The AWS Secrets Manager SecretString key associated with the access token. MediaTailor uses the key to look up SecretString key and value pair containing the access token.

", - "shape": "__string" + "SecretStringKey":{ + "shape":"__string", + "documentation":"

The AWS Secrets Manager SecretString key associated with the access token. MediaTailor uses the key to look up SecretString key and value pair containing the access token.

" } }, - "type": "structure" + "documentation":"

AWS Secrets Manager access token configuration parameters. For information about Secrets Manager access token authentication, see Working with AWS Secrets Manager access token authentication.

" }, - "SegmentDeliveryConfiguration": { - "documentation": "

The base URL of the host or path of the segment delivery server that you're using to serve segments. This is typically a content delivery network (CDN). The URL can be absolute or relative. To use an absolute URL include the protocol, such as https://example.com/some/path. To use a relative URL specify the relative path, such as /some/path*.

", - "members": { - "BaseUrl": { - "documentation": "

The base URL of the host or path of the segment delivery server that you're using to serve segments. This is typically a content delivery network (CDN). The URL can be absolute or relative. To use an absolute URL include the protocol, such as https://example.com/some/path. To use a relative URL specify the relative path, such as /some/path*.

", - "shape": "__string" + "SegmentDeliveryConfiguration":{ + "type":"structure", + "members":{ + "BaseUrl":{ + "shape":"__string", + "documentation":"

The base URL of the host or path of the segment delivery server that you're using to serve segments. This is typically a content delivery network (CDN). The URL can be absolute or relative. To use an absolute URL include the protocol, such as https://example.com/some/path. To use a relative URL specify the relative path, such as /some/path*.

" }, - "Name": { - "documentation": "

A unique identifier used to distinguish between multiple segment delivery configurations in a source location.

", - "shape": "__string" + "Name":{ + "shape":"__string", + "documentation":"

A unique identifier used to distinguish between multiple segment delivery configurations in a source location.

" } }, - "type": "structure" + "documentation":"

The segment delivery configuration settings.

" }, - "SlateSource": { - "documentation": "

Slate VOD source configuration.

", - "members": { - "SourceLocationName": { - "documentation": "

The name of the source location where the slate VOD source is stored.

", - "shape": "__string" + "SegmentationDescriptor":{ + "type":"structure", + "members":{ + "SegmentNum":{ + "shape":"Integer", + "documentation":"

The segment number to assign to the segmentation_descriptor.segment_num message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification Values must be between 0 and 256, inclusive. The default value is 0.

" }, - "VodSourceName": { - "documentation": "

The slate VOD source name. The VOD source must already exist in a source location before it can be used for slate.

", - "shape": "__string" + "SegmentationEventId":{ + "shape":"Integer", + "documentation":"

The Event Identifier to assign to the segmentation_descriptor.segmentation_event_id message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. The default value is 1.

" + }, + "SegmentationTypeId":{ + "shape":"Integer", + "documentation":"

The Type Identifier to assign to the segmentation_descriptor.segmentation_type_id message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and 256, inclusive. The default value is 48.

" + }, + "SegmentationUpid":{ + "shape":"String", + "documentation":"

The Upid to assign to the segmentation_descriptor.segmentation_upid message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. The value must be a hexadecimal string containing only the characters 0 though 9 and A through F. The default value is \"\" (an empty string).

" + }, + "SegmentationUpidType":{ + "shape":"Integer", + "documentation":"

The Upid Type to assign to the segmentation_descriptor.segmentation_upid_type message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and 256, inclusive. The default value is 14.

" + }, + "SegmentsExpected":{ + "shape":"Integer", + "documentation":"

The number of segments expected, which is assigned to the segmentation_descriptor.segments_expectedS message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification Values must be between 0 and 256, inclusive. The default value is 0.

" + }, + "SubSegmentNum":{ + "shape":"Integer", + "documentation":"

The sub-segment number to assign to the segmentation_descriptor.sub_segment_num message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and 256, inclusive. The defualt value is null.

" + }, + "SubSegmentsExpected":{ + "shape":"Integer", + "documentation":"

The number of sub-segments expected, which is assigned to the segmentation_descriptor.sub_segments_expected message, as defined in section 10.3.3.1 of the 2022 SCTE-35 specification. Values must be between 0 and 256, inclusive. The default value is null.

" } }, - "type": "structure" + "documentation":"

The segmentation_descriptor message can contain advanced metadata fields, like content identifiers, to convey a wide range of information about the ad break. MediaTailor writes the ad metadata in the egress manifest as part of the EXT-X-DATERANGE or EventStream ad marker's SCTE-35 data.

segmentation_descriptor messages must be sent with the time_signal message type.

See the segmentation_descriptor() table of the 2022 SCTE-35 specification for more information.

" }, - "SourceLocation": { - "documentation": "

This response includes only the \"type\" : \"object\" property.

", - "members": { - "AccessConfiguration": { - "documentation": "

The access configuration for the source location.

", - "shape": "AccessConfiguration" + "SegmentationDescriptorList":{ + "type":"list", + "member":{"shape":"SegmentationDescriptor"} + }, + "SlateSource":{ + "type":"structure", + "members":{ + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location where the slate VOD source is stored.

" }, - "Arn": { - "documentation": "

The ARN of the SourceLocation.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the source location was created.

", - "shape": "__timestampUnix" - }, - "DefaultSegmentDeliveryConfiguration": { - "documentation": "

The default segment delivery configuration.

", - "shape": "DefaultSegmentDeliveryConfiguration" - }, - "HttpConfiguration": { - "documentation": "

The HTTP configuration for the source location.

", - "shape": "HttpConfiguration" - }, - "LastModifiedTime": { - "documentation": "

The timestamp that indicates when the source location was last modified.

", - "shape": "__timestampUnix" - }, - "SegmentDeliveryConfigurations": { - "documentation": "

The segment delivery configurations for the source location.

", - "shape": "__listOfSegmentDeliveryConfiguration" - }, - "SourceLocationName": { - "documentation": "

The name of the source location.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the source location.

", - "locationName": "tags", - "shape": "__mapOf__string" + "VodSourceName":{ + "shape":"__string", + "documentation":"

The slate VOD source name. The VOD source must already exist in a source location before it can be used for slate.

" } }, - "required": [ - "SourceLocationName", + "documentation":"

Slate VOD source configuration.

" + }, + "SourceLocation":{ + "type":"structure", + "required":[ + "Arn", "HttpConfiguration", - "Arn" + "SourceLocationName" ], - "type": "structure" - }, - "SpliceInsertMessage": { - "documentation": "

Splice insert message configuration.

", - "members": { - "AvailNum": { - "documentation": "

This is written to splice_insert.avail_num, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 0. Values must be between 0 and 256, inclusive.

", - "shape": "__integer" + "members":{ + "AccessConfiguration":{ + "shape":"AccessConfiguration", + "documentation":"

The access configuration for the source location.

" }, - "AvailsExpected": { - "documentation": "

This is written to splice_insert.avails_expected, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 0. Values must be between 0 and 256, inclusive.

", - "shape": "__integer" + "Arn":{ + "shape":"__string", + "documentation":"

The ARN of the SourceLocation.

" }, - "SpliceEventId": { - "documentation": "

This is written to splice_insert.splice_event_id, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 1.

", - "shape": "__integer" + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the source location was created.

" }, - "UniqueProgramId": { - "documentation": "

This is written to splice_insert.unique_program_id, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 0. Values must be between 0 and 256, inclusive.

", - "shape": "__integer" + "DefaultSegmentDeliveryConfiguration":{ + "shape":"DefaultSegmentDeliveryConfiguration", + "documentation":"

The default segment delivery configuration.

" + }, + "HttpConfiguration":{ + "shape":"HttpConfiguration", + "documentation":"

The HTTP configuration for the source location.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the source location was last modified.

" + }, + "SegmentDeliveryConfigurations":{ + "shape":"__listOfSegmentDeliveryConfiguration", + "documentation":"

The segment delivery configurations for the source location.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags assigned to the source location. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" } }, - "type": "structure" + "documentation":"

A source location is a container for sources. For more information about source locations, see Working with source locations in the MediaTailor User Guide.

" }, - "StartChannelRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" - } - }, - "required": [ - "ChannelName" - ], - "type": "structure" - }, - "StartChannelResponse": { - "members": {}, - "type": "structure" - }, - "StopChannelRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" - } - }, - "required": [ - "ChannelName" - ], - "type": "structure" - }, - "StopChannelResponse": { - "members": {}, - "type": "structure" - }, - "TagResourceRequest": { - "members": { - "ResourceArn": { - "documentation": "

The Amazon Resource Name (ARN) for the playback configuration. You can get this from the response to any playback configuration request.

", - "location": "uri", - "locationName": "ResourceArn", - "shape": "__string" + "SpliceInsertMessage":{ + "type":"structure", + "members":{ + "AvailNum":{ + "shape":"__integer", + "documentation":"

This is written to splice_insert.avail_num, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 0. Values must be between 0 and 256, inclusive.

" }, - "Tags": { - "documentation": "

A comma-separated list of tag key:value pairs.

", - "locationName": "tags", - "shape": "__mapOf__string" + "AvailsExpected":{ + "shape":"__integer", + "documentation":"

This is written to splice_insert.avails_expected, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 0. Values must be between 0 and 256, inclusive.

" + }, + "SpliceEventId":{ + "shape":"__integer", + "documentation":"

This is written to splice_insert.splice_event_id, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 1.

" + }, + "UniqueProgramId":{ + "shape":"__integer", + "documentation":"

This is written to splice_insert.unique_program_id, as defined in section 9.7.3.1 of the SCTE-35 specification. The default value is 0. Values must be between 0 and 256, inclusive.

" } }, - "required": [ + "documentation":"

Splice insert message configuration.

" + }, + "StartChannelRequest":{ + "type":"structure", + "required":["ChannelName"], + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

", + "location":"uri", + "locationName":"ChannelName" + } + } + }, + "StartChannelResponse":{ + "type":"structure", + "members":{ + } + }, + "StopChannelRequest":{ + "type":"structure", + "required":["ChannelName"], + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

", + "location":"uri", + "locationName":"ChannelName" + } + } + }, + "StopChannelResponse":{ + "type":"structure", + "members":{ + } + }, + "String":{"type":"string"}, + "TagResourceRequest":{ + "type":"structure", + "required":[ "ResourceArn", "Tags" ], - "type": "structure" + "members":{ + "ResourceArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) associated with the resource.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the resource. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + } + } }, - "Tier": { - "enum": [ + "Tier":{ + "type":"string", + "enum":[ "BASIC", "STANDARD" - ], - "type": "string" + ] }, - "Transition": { - "documentation": "

Program transition configuration.

", - "members": { - "DurationMillis": { - "documentation": "

The duration of the live program in seconds.

", - "shape": "__long" - }, - "RelativePosition": { - "documentation": "

The position where this program will be inserted relative to the RelativePosition.

", - "shape": "RelativePosition" - }, - "RelativeProgram": { - "documentation": "

The name of the program that this program will be inserted next to, as defined by RelativePosition.

", - "shape": "__string" - }, - "ScheduledStartTimeMillis": { - "documentation": "

The date and time that the program is scheduled to start, in epoch milliseconds.

", - "shape": "__long" - }, - "Type": { - "documentation": "

Defines when the program plays in the schedule. You can set the value to ABSOLUTE or RELATIVE.

ABSOLUTE - The program plays at a specific wall clock time. This setting can only be used for channels using the LINEAR PlaybackMode.

Note the following considerations when using ABSOLUTE transitions:

If the preceding program in the schedule has a duration that extends past the wall clock time, MediaTailor truncates the preceding program on a common segment boundary.

If there are gaps in playback, MediaTailor plays the FillerSlate you configured for your linear channel.

RELATIVE - The program is inserted into the schedule either before or after a program that you specify via RelativePosition.

", - "shape": "__string" + "TimeSignalMessage":{ + "type":"structure", + "members":{ + "SegmentationDescriptors":{ + "shape":"SegmentationDescriptorList", + "documentation":"

The configurations for the SCTE-35 segmentation_descriptor message(s) sent with the time_signal message.

" } }, - "required": [ - "Type", - "RelativePosition" - ], - "type": "structure" + "documentation":"

The SCTE-35 time_signal message can be sent with one or more segmentation_descriptor messages. A time_signal message can be sent only if a single segmentation_descriptor message is sent.

The time_signal message contains only the splice_time field which is constructed using a given presentation timestamp. When sending a time_signal message, the splice_command_type field in the splice_info_section message is set to 6 (0x06).

See the time_signal() table of the 2022 SCTE-35 specification for more information.

" }, - "Type": { - "enum": [ + "Transition":{ + "type":"structure", + "required":[ + "RelativePosition", + "Type" + ], + "members":{ + "DurationMillis":{ + "shape":"__long", + "documentation":"

The duration of the live program in seconds.

" + }, + "RelativePosition":{ + "shape":"RelativePosition", + "documentation":"

The position where this program will be inserted relative to the RelativePosition.

" + }, + "RelativeProgram":{ + "shape":"__string", + "documentation":"

The name of the program that this program will be inserted next to, as defined by RelativePosition.

" + }, + "ScheduledStartTimeMillis":{ + "shape":"__long", + "documentation":"

The date and time that the program is scheduled to start, in epoch milliseconds.

" + }, + "Type":{ + "shape":"__string", + "documentation":"

Defines when the program plays in the schedule. You can set the value to ABSOLUTE or RELATIVE.

ABSOLUTE - The program plays at a specific wall clock time. This setting can only be used for channels using the LINEAR PlaybackMode.

Note the following considerations when using ABSOLUTE transitions:

If the preceding program in the schedule has a duration that extends past the wall clock time, MediaTailor truncates the preceding program on a common segment boundary.

If there are gaps in playback, MediaTailor plays the FillerSlate you configured for your linear channel.

RELATIVE - The program is inserted into the schedule either before or after a program that you specify via RelativePosition.

" + } + }, + "documentation":"

Program transition configuration.

" + }, + "Type":{ + "type":"string", + "enum":[ "DASH", "HLS" - ], - "type": "string" + ] }, - "UntagResourceRequest": { - "members": { - "ResourceArn": { - "documentation": "

The Amazon Resource Name (ARN) for the playback configuration. You can get this from the response to any playback configuration request.

", - "location": "uri", - "locationName": "ResourceArn", - "shape": "__string" - }, - "TagKeys": { - "documentation": "

A comma-separated list of the tag keys to remove from the playback configuration.

", - "location": "querystring", - "locationName": "tagKeys", - "shape": "__listOf__string" - } - }, - "required": [ + "UntagResourceRequest":{ + "type":"structure", + "required":[ "ResourceArn", "TagKeys" ], - "type": "structure" - }, - "UpdateChannelRequest": { - "members": { - "ChannelName": { - "documentation": "

The identifier for the channel you are working on.

", - "location": "uri", - "locationName": "channelName", - "shape": "__string" + "members":{ + "ResourceArn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) of the resource to untag.

", + "location":"uri", + "locationName":"ResourceArn" }, - "FillerSlate": { - "documentation": "

The slate used to fill gaps between programs in the schedule. You must configure filler slate if your channel uses the LINEAR PlaybackMode. MediaTailor doesn't support filler slate for channels using the LOOP PlaybackMode.

", - "shape": "SlateSource" - }, - "Outputs": { - "documentation": "

The channel's output properties.

", - "shape": "RequestOutputs" + "TagKeys":{ + "shape":"__listOf__string", + "documentation":"

The tag keys associated with the resource.

", + "location":"querystring", + "locationName":"tagKeys" } - }, - "required": [ + } + }, + "UpdateChannelRequest":{ + "type":"structure", + "required":[ "ChannelName", "Outputs" ], - "type": "structure" - }, - "UpdateChannelResponse": { - "members": { - "Arn": { - "documentation": "

The ARN of the channel.

", - "shape": "__string" + "members":{ + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

", + "location":"uri", + "locationName":"ChannelName" }, - "ChannelName": { - "documentation": "

The name of the channel.

", - "shape": "__string" + "FillerSlate":{ + "shape":"SlateSource", + "documentation":"

The slate used to fill gaps between programs in the schedule. You must configure filler slate if your channel uses the LINEAR PlaybackMode. MediaTailor doesn't support filler slate for channels using the LOOP PlaybackMode.

" }, - "ChannelState": { - "documentation": "

Indicates whether the channel is in a running state or not.

", - "shape": "ChannelState" - }, - "CreationTime": { - "documentation": "

The timestamp of when the channel was created.

", - "shape": "__timestampUnix" - }, - "FillerSlate": { - "documentation": "

Contains information about the slate used to fill gaps between programs in the schedule.

", - "shape": "SlateSource" - }, - "LastModifiedTime": { - "documentation": "

The timestamp of when the channel was last modified.

", - "shape": "__timestampUnix" - }, - "Outputs": { - "documentation": "

The channel's output properties.

", - "shape": "ResponseOutputs" - }, - "PlaybackMode": { - "documentation": "

The channel's playback mode.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the channel.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "Tier": { - "documentation": "

The channel's tier.

", - "shape": "__string" + "Outputs":{ + "shape":"RequestOutputs", + "documentation":"

The channel's output properties.

" } - }, - "type": "structure" - }, - "UpdateLiveSourceRequest": { - "members": { - "HttpPackageConfigurations": { - "documentation": "

A list of HTTP package configurations for the live source on this account.

", - "shape": "HttpPackageConfigurations" - }, - "LiveSourceName": { - "documentation": "

The identifier for the live source you are working on.

", - "location": "uri", - "locationName": "liveSourceName", - "shape": "__string" - }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - } - }, - "required": [ - "SourceLocationName", - "LiveSourceName", - "HttpPackageConfigurations" - ], - "type": "structure" - }, - "UpdateLiveSourceResponse": { - "members": { - "Arn": { - "documentation": "

The ARN of the live source.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the live source was created.

", - "shape": "__timestampUnix" - }, - "HttpPackageConfigurations": { - "documentation": "

The HTTP package configurations.

", - "shape": "HttpPackageConfigurations" - }, - "LastModifiedTime": { - "documentation": "

The timestamp that indicates when the live source was modified.

", - "shape": "__timestampUnix" - }, - "LiveSourceName": { - "documentation": "

The name of the live source.

", - "shape": "__string" - }, - "SourceLocationName": { - "documentation": "

The name of the source location associated with the VOD source.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the live source.

", - "locationName": "tags", - "shape": "__mapOf__string" - } - }, - "type": "structure" - }, - "UpdateSourceLocationRequest": { - "members": { - "AccessConfiguration": { - "documentation": "

Access configuration parameters. Configures the type of authentication used to access content from your source location.

", - "shape": "AccessConfiguration" - }, - "DefaultSegmentDeliveryConfiguration": { - "documentation": "

The optional configuration for the host server that serves segments.

", - "shape": "DefaultSegmentDeliveryConfiguration" - }, - "HttpConfiguration": { - "documentation": "

The HTTP configuration for the source location.

", - "shape": "HttpConfiguration" - }, - "SegmentDeliveryConfigurations": { - "documentation": "

A list of the segment delivery configurations associated with this resource.

", - "shape": "__listOfSegmentDeliveryConfiguration" - }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - } - }, - "required": [ - "SourceLocationName", - "HttpConfiguration" - ], - "type": "structure" - }, - "UpdateSourceLocationResponse": { - "members": { - "AccessConfiguration": { - "documentation": "

The access configuration for the source location.

", - "shape": "AccessConfiguration" - }, - "Arn": { - "documentation": "

The ARN of the source location.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the source location was created.

", - "shape": "__timestampUnix" - }, - "DefaultSegmentDeliveryConfiguration": { - "documentation": "

The default segment delivery configuration settings.

", - "shape": "DefaultSegmentDeliveryConfiguration" - }, - "HttpConfiguration": { - "documentation": "

The HTTP package configuration settings for the source location.

", - "shape": "HttpConfiguration" - }, - "LastModifiedTime": { - "documentation": "

The timestamp that indicates when the source location was last modified.

", - "shape": "__timestampUnix" - }, - "SegmentDeliveryConfigurations": { - "documentation": "

A list of the segment delivery configurations associated with this resource.

", - "shape": "__listOfSegmentDeliveryConfiguration" - }, - "SourceLocationName": { - "documentation": "

The name of the source location.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the source location.

", - "locationName": "tags", - "shape": "__mapOf__string" - } - }, - "type": "structure" - }, - "UpdateVodSourceRequest": { - "members": { - "HttpPackageConfigurations": { - "documentation": "

A list of HTTP package configurations for the VOD source on this account.

", - "shape": "HttpPackageConfigurations" - }, - "SourceLocationName": { - "documentation": "

The identifier for the source location you are working on.

", - "location": "uri", - "locationName": "sourceLocationName", - "shape": "__string" - }, - "VodSourceName": { - "documentation": "

The identifier for the VOD source you are working on.

", - "location": "uri", - "locationName": "vodSourceName", - "shape": "__string" - } - }, - "required": [ - "SourceLocationName", - "VodSourceName", - "HttpPackageConfigurations" - ], - "type": "structure" - }, - "UpdateVodSourceResponse": { - "members": { - "Arn": { - "documentation": "

The ARN of the VOD source.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the VOD source was created.

", - "shape": "__timestampUnix" - }, - "HttpPackageConfigurations": { - "documentation": "

The HTTP package configurations.

", - "shape": "HttpPackageConfigurations" - }, - "LastModifiedTime": { - "documentation": "

The last modified time of the VOD source.

", - "shape": "__timestampUnix" - }, - "SourceLocationName": { - "documentation": "

The name of the source location associated with the VOD source.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the VOD source.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "VodSourceName": { - "documentation": "

The name of the VOD source.

", - "shape": "__string" - } - }, - "type": "structure" - }, - "VodSource": { - "documentation": "

VOD source configuration parameters.

", - "members": { - "Arn": { - "documentation": "

The ARN for the VOD source.

", - "shape": "__string" - }, - "CreationTime": { - "documentation": "

The timestamp that indicates when the VOD source was created.

", - "shape": "__timestampUnix" - }, - "HttpPackageConfigurations": { - "documentation": "

The HTTP package configurations for the VOD source.

", - "shape": "HttpPackageConfigurations" - }, - "LastModifiedTime": { - "documentation": "

The timestamp that indicates when the VOD source was last modified.

", - "shape": "__timestampUnix" - }, - "SourceLocationName": { - "documentation": "

The name of the source location that the VOD source is associated with.

", - "shape": "__string" - }, - "Tags": { - "documentation": "

The tags assigned to the VOD source.

", - "locationName": "tags", - "shape": "__mapOf__string" - }, - "VodSourceName": { - "documentation": "

The name of the VOD source.

", - "shape": "__string" - } - }, - "required": [ - "VodSourceName", - "SourceLocationName", - "HttpPackageConfigurations", - "Arn" - ], - "type": "structure" - }, - "__boolean": { - "type": "boolean" - }, - "__integer": { - "type": "integer" - }, - "__integerMin1": { - "min": 1, - "type": "integer" - }, - "__integerMin1Max100": { - "max": 100, - "min": 1, - "type": "integer" - }, - "__listOfAdBreak": { - "member": { - "shape": "AdBreak" - }, - "type": "list" - }, - "__listOfAlert": { - "member": { - "shape": "Alert" - }, - "type": "list" - }, - "__listOfAvailMatchingCriteria": { - "member": { - "shape": "AvailMatchingCriteria" - }, - "type": "list" - }, - "__listOfChannel": { - "member": { - "shape": "Channel" - }, - "type": "list" - }, - "__listOfLiveSource": { - "member": { - "shape": "LiveSource" - }, - "type": "list" - }, - "__listOfPlaybackConfiguration": { - "member": { - "shape": "PlaybackConfiguration" - }, - "type": "list" - }, - "__listOfPrefetchSchedule": { - "member": { - "shape": "PrefetchSchedule" - }, - "type": "list" - }, - "__listOfScheduleAdBreak": { - "member": { - "shape": "ScheduleAdBreak" - }, - "type": "list" - }, - "__listOfScheduleEntry": { - "member": { - "shape": "ScheduleEntry" - }, - "type": "list" - }, - "__listOfSegmentDeliveryConfiguration": { - "member": { - "shape": "SegmentDeliveryConfiguration" - }, - "type": "list" - }, - "__listOfSourceLocation": { - "member": { - "shape": "SourceLocation" - }, - "type": "list" - }, - "__listOfVodSource": { - "member": { - "shape": "VodSource" - }, - "type": "list" - }, - "__listOf__string": { - "member": { - "shape": "__string" - }, - "type": "list" - }, - "__long": { - "type": "long" - }, - "__mapOf__string": { - "key": { - "shape": "__string" - }, - "type": "map", - "value": { - "shape": "__string" } }, - "__string": { - "type": "string" + "UpdateChannelResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) associated with the channel.

" + }, + "ChannelName":{ + "shape":"__string", + "documentation":"

The name of the channel.

" + }, + "ChannelState":{ + "shape":"ChannelState", + "documentation":"

Returns the state whether the channel is running or not.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp of when the channel was created.

" + }, + "FillerSlate":{ + "shape":"SlateSource", + "documentation":"

The slate used to fill gaps between programs in the schedule. You must configure filler slate if your channel uses the LINEAR PlaybackMode. MediaTailor doesn't support filler slate for channels using the LOOP PlaybackMode.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the channel was last modified.

" + }, + "Outputs":{ + "shape":"ResponseOutputs", + "documentation":"

The channel's output properties.

" + }, + "PlaybackMode":{ + "shape":"__string", + "documentation":"

The type of playback mode for this channel.

LINEAR - Programs play back-to-back only once.

LOOP - Programs play back-to-back in an endless loop. When the last program in the schedule plays, playback loops back to the first program in the schedule.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the channel. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "Tier":{ + "shape":"__string", + "documentation":"

The tier associated with this Channel.

" + } + } }, - "__timestampUnix": { - "timestampFormat": "unixTimestamp", - "type": "timestamp" + "UpdateLiveSourceRequest":{ + "type":"structure", + "required":[ + "HttpPackageConfigurations", + "LiveSourceName", + "SourceLocationName" + ], + "members":{ + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

A list of HTTP package configurations for the live source on this account.

" + }, + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the live source.

", + "location":"uri", + "locationName":"LiveSourceName" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with this Live Source.

", + "location":"uri", + "locationName":"SourceLocationName" + } + } + }, + "UpdateLiveSourceResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) associated with this live source.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the live source was created.

" + }, + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

A list of HTTP package configurations for the live source on this account.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the live source was last modified.

" + }, + "LiveSourceName":{ + "shape":"__string", + "documentation":"

The name of the live source.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with the live source.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the live source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + } + } + }, + "UpdateSourceLocationRequest":{ + "type":"structure", + "required":[ + "HttpConfiguration", + "SourceLocationName" + ], + "members":{ + "AccessConfiguration":{ + "shape":"AccessConfiguration", + "documentation":"

Access configuration parameters. Configures the type of authentication used to access content from your source location.

" + }, + "DefaultSegmentDeliveryConfiguration":{ + "shape":"DefaultSegmentDeliveryConfiguration", + "documentation":"

The optional configuration for the host server that serves segments.

" + }, + "HttpConfiguration":{ + "shape":"HttpConfiguration", + "documentation":"

The HTTP configuration for the source location.

" + }, + "SegmentDeliveryConfigurations":{ + "shape":"__listOfSegmentDeliveryConfiguration", + "documentation":"

A list of the segment delivery configurations associated with this resource.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

", + "location":"uri", + "locationName":"SourceLocationName" + } + } + }, + "UpdateSourceLocationResponse":{ + "type":"structure", + "members":{ + "AccessConfiguration":{ + "shape":"AccessConfiguration", + "documentation":"

Access configuration parameters. Configures the type of authentication used to access content from your source location.

" + }, + "Arn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) associated with the source location.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the source location was created.

" + }, + "DefaultSegmentDeliveryConfiguration":{ + "shape":"DefaultSegmentDeliveryConfiguration", + "documentation":"

The optional configuration for the host server that serves segments.

" + }, + "HttpConfiguration":{ + "shape":"HttpConfiguration", + "documentation":"

The HTTP configuration for the source location.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the source location was last modified.

" + }, + "SegmentDeliveryConfigurations":{ + "shape":"__listOfSegmentDeliveryConfiguration", + "documentation":"

The segment delivery configurations for the source location. For information about MediaTailor configurations, see Working with configurations in AWS Elemental MediaTailor.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the source location. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + } + } + }, + "UpdateVodSourceRequest":{ + "type":"structure", + "required":[ + "HttpPackageConfigurations", + "SourceLocationName", + "VodSourceName" + ], + "members":{ + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

A list of HTTP package configurations for the VOD source on this account.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with this VOD Source.

", + "location":"uri", + "locationName":"SourceLocationName" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name of the VOD source.

", + "location":"uri", + "locationName":"VodSourceName" + } + } + }, + "UpdateVodSourceResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The Amazon Resource Name (ARN) associated with the VOD source.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the VOD source was created.

" + }, + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

A list of HTTP package configurations for the VOD source on this account.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the VOD source was last modified.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location associated with the VOD source.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags to assign to the VOD source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name of the VOD source.

" + } + } + }, + "VodSource":{ + "type":"structure", + "required":[ + "Arn", + "HttpPackageConfigurations", + "SourceLocationName", + "VodSourceName" + ], + "members":{ + "Arn":{ + "shape":"__string", + "documentation":"

The ARN for the VOD source.

" + }, + "CreationTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the VOD source was created.

" + }, + "HttpPackageConfigurations":{ + "shape":"HttpPackageConfigurations", + "documentation":"

The HTTP package configurations for the VOD source.

" + }, + "LastModifiedTime":{ + "shape":"__timestampUnix", + "documentation":"

The timestamp that indicates when the VOD source was last modified.

" + }, + "SourceLocationName":{ + "shape":"__string", + "documentation":"

The name of the source location that the VOD source is associated with.

" + }, + "Tags":{ + "shape":"__mapOf__string", + "documentation":"

The tags assigned to the VOD source. Tags are key-value pairs that you can associate with Amazon resources to help with organization, access control, and cost tracking. For more information, see Tagging AWS Elemental MediaTailor Resources.

", + "locationName":"tags" + }, + "VodSourceName":{ + "shape":"__string", + "documentation":"

The name of the VOD source.

" + } + }, + "documentation":"

VOD source configuration parameters.

" + }, + "__boolean":{"type":"boolean"}, + "__integer":{"type":"integer"}, + "__integerMin1":{ + "type":"integer", + "min":1 + }, + "__integerMin1Max100":{ + "type":"integer", + "max":100, + "min":1 + }, + "__listOfAdBreak":{ + "type":"list", + "member":{"shape":"AdBreak"} + }, + "__listOfAlert":{ + "type":"list", + "member":{"shape":"Alert"} + }, + "__listOfAvailMatchingCriteria":{ + "type":"list", + "member":{"shape":"AvailMatchingCriteria"} + }, + "__listOfChannel":{ + "type":"list", + "member":{"shape":"Channel"} + }, + "__listOfLiveSource":{ + "type":"list", + "member":{"shape":"LiveSource"} + }, + "__listOfPlaybackConfiguration":{ + "type":"list", + "member":{"shape":"PlaybackConfiguration"} + }, + "__listOfPrefetchSchedule":{ + "type":"list", + "member":{"shape":"PrefetchSchedule"} + }, + "__listOfScheduleAdBreak":{ + "type":"list", + "member":{"shape":"ScheduleAdBreak"} + }, + "__listOfScheduleEntry":{ + "type":"list", + "member":{"shape":"ScheduleEntry"} + }, + "__listOfSegmentDeliveryConfiguration":{ + "type":"list", + "member":{"shape":"SegmentDeliveryConfiguration"} + }, + "__listOfSourceLocation":{ + "type":"list", + "member":{"shape":"SourceLocation"} + }, + "__listOfVodSource":{ + "type":"list", + "member":{"shape":"VodSource"} + }, + "__listOf__string":{ + "type":"list", + "member":{"shape":"__string"} + }, + "__long":{"type":"long"}, + "__mapOf__string":{ + "type":"map", + "key":{"shape":"__string"}, + "value":{"shape":"__string"} + }, + "__string":{"type":"string"}, + "__timestampUnix":{ + "type":"timestamp", + "timestampFormat":"unixTimestamp" } - } -} \ No newline at end of file + }, + "documentation":"

Use the AWS Elemental MediaTailor SDKs and CLI to configure scalable ad insertion and linear channels. With MediaTailor, you can assemble existing content into a linear stream and serve targeted ads to viewers while maintaining broadcast quality in over-the-top (OTT) video applications. For information about using the service, including detailed information about the settings covered in this guide, see the AWS Elemental MediaTailor User Guide.

Through the SDKs and the CLI you manage AWS Elemental MediaTailor configurations and channels the same as you do through the console. For example, you specify ad insertion behavior and mapping information for the origin server and the ad decision server (ADS).

" +} diff --git a/botocore/data/memorydb/2021-01-01/endpoint-rule-set-1.json b/botocore/data/memorydb/2021-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..a17efdd8 --- /dev/null +++ b/botocore/data/memorydb/2021-01-01/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://memory-db-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://memory-db-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://memory-db.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "fips" + ] + } + ], + "endpoint": { + "url": "https://memory-db-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://memory-db.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/memorydb/2021-01-01/examples-1.json b/botocore/data/memorydb/2021-01-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/memorydb/2021-01-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/memorydb/2021-01-01/service-2.json b/botocore/data/memorydb/2021-01-01/service-2.json index 6b66b135..85630447 100644 --- a/botocore/data/memorydb/2021-01-01/service-2.json +++ b/botocore/data/memorydb/2021-01-01/service-2.json @@ -436,7 +436,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"InvalidParameterCombinationException"} ], - "documentation":"

Used to failover a shard

" + "documentation":"

Used to failover a shard. This API is designed for testing the behavior of your application in case of MemoryDB failover. It is not designed to be used as a production-level tool for initiating a failover to overcome a problem you may have with the cluster. Moreover, in certain conditions such as large scale operational events, Amazon may block this API.

" }, "ListAllowedNodeTypeUpdates":{ "name":"ListAllowedNodeTypeUpdates", @@ -927,6 +927,10 @@ "AutoMinorVersionUpgrade":{ "shape":"BooleanOptional", "documentation":"

When set to true, the cluster will automatically receive minor engine version upgrades after launch.

" + }, + "DataTiering":{ + "shape":"DataTieringStatus", + "documentation":"

Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see Data tiering.

" } }, "documentation":"

Contains all of the attributes of a specific cluster.

" @@ -1148,7 +1152,7 @@ }, "MaintenanceWindow":{ "shape":"String", - "documentation":"

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

" + "documentation":"

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

  • sun

  • mon

  • tue

  • wed

  • thu

  • fri

  • sat

Example: sun:23:00-mon:01:30

" }, "Port":{ "shape":"IntegerOptional", @@ -1197,6 +1201,10 @@ "AutoMinorVersionUpgrade":{ "shape":"BooleanOptional", "documentation":"

When set to true, the cluster will automatically receive minor engine version upgrades after launch.

" + }, + "DataTiering":{ + "shape":"BooleanOptional", + "documentation":"

Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see Data tiering.

" } } }, @@ -1346,6 +1354,13 @@ } } }, + "DataTieringStatus":{ + "type":"string", + "enum":[ + "true", + "false" + ] + }, "DefaultUserRequired":{ "type":"structure", "members":{ @@ -2577,6 +2592,10 @@ "ClusterConfiguration":{ "shape":"ClusterConfiguration", "documentation":"

The configuration of the cluster from which the snapshot was taken

" + }, + "DataTiering":{ + "shape":"DataTieringStatus", + "documentation":"

Enables data tiering. Data tiering is only supported for clusters using the r6gd node type. This parameter must be set when using r6gd nodes. For more information, see Data tiering.

" } }, "documentation":"

Represents a copy of an entire cluster as of the time when the snapshot was taken.

" @@ -2888,7 +2907,7 @@ }, "MaintenanceWindow":{ "shape":"String", - "documentation":"

The maintenance window to update

" + "documentation":"

Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.

Valid values for ddd are:

  • sun

  • mon

  • tue

  • wed

  • thu

  • fri

  • sat

Example: sun:23:00-mon:01:30

" }, "SnsTopicArn":{ "shape":"String", diff --git a/botocore/data/meteringmarketplace/2016-01-14/endpoint-rule-set-1.json b/botocore/data/meteringmarketplace/2016-01-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..e735612b --- /dev/null +++ b/botocore/data/meteringmarketplace/2016-01-14/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://metering.marketplace-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://metering.marketplace-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://metering.marketplace.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://metering.marketplace.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mgh/2017-05-31/endpoint-rule-set-1.json b/botocore/data/mgh/2017-05-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..0881bf26 --- /dev/null +++ b/botocore/data/mgh/2017-05-31/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mgh-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mgh-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mgh.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://mgh.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mgn/2020-02-26/endpoint-rule-set-1.json b/botocore/data/mgn/2020-02-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..1d5c3b55 --- /dev/null +++ b/botocore/data/mgn/2020-02-26/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mgn-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mgn-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mgn.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://mgn.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mgn/2020-02-26/examples-1.json b/botocore/data/mgn/2020-02-26/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/mgn/2020-02-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/mgn/2020-02-26/paginators-1.json b/botocore/data/mgn/2020-02-26/paginators-1.json index 95c756ce..3fe37e66 100644 --- a/botocore/data/mgn/2020-02-26/paginators-1.json +++ b/botocore/data/mgn/2020-02-26/paginators-1.json @@ -29,6 +29,36 @@ "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" } } } diff --git a/botocore/data/mgn/2020-02-26/service-2.json b/botocore/data/mgn/2020-02-26/service-2.json index 0da28abb..1ae75376 100644 --- a/botocore/data/mgn/2020-02-26/service-2.json +++ b/botocore/data/mgn/2020-02-26/service-2.json @@ -13,6 +13,76 @@ "uid":"mgn-2020-02-26" }, "operations":{ + "ArchiveApplication":{ + "name":"ArchiveApplication", + "http":{ + "method":"POST", + "requestUri":"/ArchiveApplication", + "responseCode":200 + }, + "input":{"shape":"ArchiveApplicationRequest"}, + "output":{"shape":"Application"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Archive application.

" + }, + "ArchiveWave":{ + "name":"ArchiveWave", + "http":{ + "method":"POST", + "requestUri":"/ArchiveWave", + "responseCode":200 + }, + "input":{"shape":"ArchiveWaveRequest"}, + "output":{"shape":"Wave"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Archive wave.

" + }, + "AssociateApplications":{ + "name":"AssociateApplications", + "http":{ + "method":"POST", + "requestUri":"/AssociateApplications", + "responseCode":200 + }, + "input":{"shape":"AssociateApplicationsRequest"}, + "output":{"shape":"AssociateApplicationsResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Associate applications to wave.

", + "idempotent":true + }, + "AssociateSourceServers":{ + "name":"AssociateSourceServers", + "http":{ + "method":"POST", + "requestUri":"/AssociateSourceServers", + "responseCode":200 + }, + "input":{"shape":"AssociateSourceServersRequest"}, + "output":{"shape":"AssociateSourceServersResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Associate source servers to application.

", + "idempotent":true + }, "ChangeServerLifeCycleState":{ "name":"ChangeServerLifeCycleState", "http":{ @@ -30,6 +100,39 @@ ], "documentation":"

Allows the user to set the SourceServer.LifeCycle.state property for specific Source Server IDs to one of the following: READY_FOR_TEST or READY_FOR_CUTOVER. This command only works if the Source Server is already launchable (dataReplicationInfo.lagDuration is not null.)

" }, + "CreateApplication":{ + "name":"CreateApplication", + "http":{ + "method":"POST", + "requestUri":"/CreateApplication", + "responseCode":201 + }, + "input":{"shape":"CreateApplicationRequest"}, + "output":{"shape":"Application"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Create application.

", + "idempotent":true + }, + "CreateLaunchConfigurationTemplate":{ + "name":"CreateLaunchConfigurationTemplate", + "http":{ + "method":"POST", + "requestUri":"/CreateLaunchConfigurationTemplate", + "responseCode":201 + }, + "input":{"shape":"CreateLaunchConfigurationTemplateRequest"}, + "output":{"shape":"LaunchConfigurationTemplate"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a new Launch Configuration Template.

" + }, "CreateReplicationConfigurationTemplate":{ "name":"CreateReplicationConfigurationTemplate", "http":{ @@ -46,6 +149,40 @@ ], "documentation":"

Creates a new ReplicationConfigurationTemplate.

" }, + "CreateWave":{ + "name":"CreateWave", + "http":{ + "method":"POST", + "requestUri":"/CreateWave", + "responseCode":201 + }, + "input":{"shape":"CreateWaveRequest"}, + "output":{"shape":"Wave"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Create wave.

", + "idempotent":true + }, + "DeleteApplication":{ + "name":"DeleteApplication", + "http":{ + "method":"POST", + "requestUri":"/DeleteApplication", + "responseCode":204 + }, + "input":{"shape":"DeleteApplicationRequest"}, + "output":{"shape":"DeleteApplicationResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Delete application.

", + "idempotent":true + }, "DeleteJob":{ "name":"DeleteJob", "http":{ @@ -63,6 +200,23 @@ "documentation":"

Deletes a single Job by ID.

", "idempotent":true }, + "DeleteLaunchConfigurationTemplate":{ + "name":"DeleteLaunchConfigurationTemplate", + "http":{ + "method":"POST", + "requestUri":"/DeleteLaunchConfigurationTemplate", + "responseCode":204 + }, + "input":{"shape":"DeleteLaunchConfigurationTemplateRequest"}, + "output":{"shape":"DeleteLaunchConfigurationTemplateResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes a single Launch Configuration Template by ID.

", + "idempotent":true + }, "DeleteReplicationConfigurationTemplate":{ "name":"DeleteReplicationConfigurationTemplate", "http":{ @@ -113,6 +267,23 @@ "documentation":"

Deletes a given vCenter client by ID.

", "idempotent":true }, + "DeleteWave":{ + "name":"DeleteWave", + "http":{ + "method":"POST", + "requestUri":"/DeleteWave", + "responseCode":204 + }, + "input":{"shape":"DeleteWaveRequest"}, + "output":{"shape":"DeleteWaveResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Delete wave.

", + "idempotent":true + }, "DescribeJobLogItems":{ "name":"DescribeJobLogItems", "http":{ @@ -143,6 +314,22 @@ ], "documentation":"

Returns a list of Jobs. Use the JobsID and fromDate and toData filters to limit which jobs are returned. The response is sorted by creationDataTime - latest date first. Jobs are normally created by the StartTest, StartCutover, and TerminateTargetInstances APIs. Jobs are also created by DiagnosticLaunch and TerminateDiagnosticInstances, which are APIs available only to *Support* and only used in response to relevant support tickets.

" }, + "DescribeLaunchConfigurationTemplates":{ + "name":"DescribeLaunchConfigurationTemplates", + "http":{ + "method":"POST", + "requestUri":"/DescribeLaunchConfigurationTemplates", + "responseCode":200 + }, + "input":{"shape":"DescribeLaunchConfigurationTemplatesRequest"}, + "output":{"shape":"DescribeLaunchConfigurationTemplatesResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists all Launch Configuration Templates, filtered by Launch Configuration Template IDs

" + }, "DescribeReplicationConfigurationTemplates":{ "name":"DescribeReplicationConfigurationTemplates", "http":{ @@ -190,6 +377,40 @@ ], "documentation":"

Returns a list of the installed vCenter clients.

" }, + "DisassociateApplications":{ + "name":"DisassociateApplications", + "http":{ + "method":"POST", + "requestUri":"/DisassociateApplications", + "responseCode":200 + }, + "input":{"shape":"DisassociateApplicationsRequest"}, + "output":{"shape":"DisassociateApplicationsResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Disassociate applications from wave.

", + "idempotent":true + }, + "DisassociateSourceServers":{ + "name":"DisassociateSourceServers", + "http":{ + "method":"POST", + "requestUri":"/DisassociateSourceServers", + "responseCode":200 + }, + "input":{"shape":"DisassociateSourceServersRequest"}, + "output":{"shape":"DisassociateSourceServersResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Disassociate source servers from application.

", + "idempotent":true + }, "DisconnectFromService":{ "name":"DisconnectFromService", "http":{ @@ -268,6 +489,35 @@ ], "documentation":"

Initialize Application Migration Service.

" }, + "ListApplications":{ + "name":"ListApplications", + "http":{ + "method":"POST", + "requestUri":"/ListApplications", + "responseCode":200 + }, + "input":{"shape":"ListApplicationsRequest"}, + "output":{"shape":"ListApplicationsResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"} + ], + "documentation":"

Retrieves all applications or multiple applications by ID.

" + }, + "ListSourceServerActions":{ + "name":"ListSourceServerActions", + "http":{ + "method":"POST", + "requestUri":"/ListSourceServerActions", + "responseCode":200 + }, + "input":{"shape":"ListSourceServerActionsRequest"}, + "output":{"shape":"ListSourceServerActionsResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

List source server post migration custom actions.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -286,6 +536,35 @@ ], "documentation":"

List all tags for your Application Migration Service resources.

" }, + "ListTemplateActions":{ + "name":"ListTemplateActions", + "http":{ + "method":"POST", + "requestUri":"/ListTemplateActions", + "responseCode":200 + }, + "input":{"shape":"ListTemplateActionsRequest"}, + "output":{"shape":"ListTemplateActionsResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

List template post migration custom actions.

" + }, + "ListWaves":{ + "name":"ListWaves", + "http":{ + "method":"POST", + "requestUri":"/ListWaves", + "responseCode":200 + }, + "input":{"shape":"ListWavesRequest"}, + "output":{"shape":"ListWavesResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"} + ], + "documentation":"

Retrieves all waves or multiple waves by ID.

" + }, "MarkAsArchived":{ "name":"MarkAsArchived", "http":{ @@ -302,6 +581,72 @@ ], "documentation":"

Archives specific Source Servers by setting the SourceServer.isArchived property to true for specified SourceServers by ID. This command only works for SourceServers with a lifecycle. state which equals DISCONNECTED or CUTOVER.

" }, + "PutSourceServerAction":{ + "name":"PutSourceServerAction", + "http":{ + "method":"POST", + "requestUri":"/PutSourceServerAction", + "responseCode":200 + }, + "input":{"shape":"PutSourceServerActionRequest"}, + "output":{"shape":"SourceServerActionDocument"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Put source server post migration custom action.

" + }, + "PutTemplateAction":{ + "name":"PutTemplateAction", + "http":{ + "method":"POST", + "requestUri":"/PutTemplateAction", + "responseCode":200 + }, + "input":{"shape":"PutTemplateActionRequest"}, + "output":{"shape":"TemplateActionDocument"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Put template post migration custom action.

" + }, + "RemoveSourceServerAction":{ + "name":"RemoveSourceServerAction", + "http":{ + "method":"POST", + "requestUri":"/RemoveSourceServerAction", + "responseCode":204 + }, + "input":{"shape":"RemoveSourceServerActionRequest"}, + "output":{"shape":"RemoveSourceServerActionResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Remove source server post migration custom action.

" + }, + "RemoveTemplateAction":{ + "name":"RemoveTemplateAction", + "http":{ + "method":"POST", + "requestUri":"/RemoveTemplateAction", + "responseCode":204 + }, + "input":{"shape":"RemoveTemplateActionRequest"}, + "output":{"shape":"RemoveTemplateActionResponse"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Remove template post migration custom action.

" + }, "RetryDataReplication":{ "name":"RetryDataReplication", "http":{ @@ -402,6 +747,38 @@ ], "documentation":"

Starts a job that terminates specific launched EC2 Test and Cutover instances. This command will not work for any Source Server with a lifecycle.state of TESTING, CUTTING_OVER, or CUTOVER.

" }, + "UnarchiveApplication":{ + "name":"UnarchiveApplication", + "http":{ + "method":"POST", + "requestUri":"/UnarchiveApplication", + "responseCode":200 + }, + "input":{"shape":"UnarchiveApplicationRequest"}, + "output":{"shape":"Application"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Unarchive application.

" + }, + "UnarchiveWave":{ + "name":"UnarchiveWave", + "http":{ + "method":"POST", + "requestUri":"/UnarchiveWave", + "responseCode":200 + }, + "input":{"shape":"UnarchiveWaveRequest"}, + "output":{"shape":"Wave"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Unarchive wave.

" + }, "UntagResource":{ "name":"UntagResource", "http":{ @@ -420,6 +797,23 @@ "documentation":"

Deletes the specified set of tags from the specified set of Application Migration Service resources.

", "idempotent":true }, + "UpdateApplication":{ + "name":"UpdateApplication", + "http":{ + "method":"POST", + "requestUri":"/UpdateApplication", + "responseCode":200 + }, + "input":{"shape":"UpdateApplicationRequest"}, + "output":{"shape":"Application"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Update application.

", + "idempotent":true + }, "UpdateLaunchConfiguration":{ "name":"UpdateLaunchConfiguration", "http":{ @@ -438,6 +832,23 @@ "documentation":"

Updates multiple LaunchConfigurations by Source Server ID.

", "idempotent":true }, + "UpdateLaunchConfigurationTemplate":{ + "name":"UpdateLaunchConfigurationTemplate", + "http":{ + "method":"POST", + "requestUri":"/UpdateLaunchConfigurationTemplate", + "responseCode":200 + }, + "input":{"shape":"UpdateLaunchConfigurationTemplateRequest"}, + "output":{"shape":"LaunchConfigurationTemplate"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an existing Launch Configuration Template by ID.

" + }, "UpdateReplicationConfiguration":{ "name":"UpdateReplicationConfiguration", "http":{ @@ -490,6 +901,23 @@ {"shape":"ConflictException"} ], "documentation":"

Allows you to change between the AGENT_BASED replication type and the SNAPSHOT_SHIPPING replication type.

" + }, + "UpdateWave":{ + "name":"UpdateWave", + "http":{ + "method":"POST", + "requestUri":"/UpdateWave", + "responseCode":200 + }, + "input":{"shape":"UpdateWaveRequest"}, + "output":{"shape":"Wave"}, + "errors":[ + {"shape":"UninitializedAccountException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Update wave.

", + "idempotent":true } }, "shapes":{ @@ -511,6 +939,211 @@ }, "exception":true }, + "ActionID":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[0-9a-zA-Z]$" + }, + "ActionIDs":{ + "type":"list", + "member":{"shape":"ActionID"}, + "max":100, + "min":0 + }, + "ActionName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[^\\s\\x00]( *[^\\s\\x00])*$" + }, + "Application":{ + "type":"structure", + "members":{ + "applicationAggregatedStatus":{ + "shape":"ApplicationAggregatedStatus", + "documentation":"

Application aggregated status.

" + }, + "applicationID":{ + "shape":"ApplicationID", + "documentation":"

Application ID.

" + }, + "arn":{ + "shape":"ARN", + "documentation":"

Application ARN.

" + }, + "creationDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Application creation dateTime.

" + }, + "description":{ + "shape":"ApplicationDescription", + "documentation":"

Application description.

" + }, + "isArchived":{ + "shape":"Boolean", + "documentation":"

Application archival status.

" + }, + "lastModifiedDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Application last modified dateTime.

" + }, + "name":{ + "shape":"ApplicationName", + "documentation":"

Application name.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

Application tags.

" + }, + "waveID":{ + "shape":"WaveID", + "documentation":"

Application wave ID.

" + } + } + }, + "ApplicationAggregatedStatus":{ + "type":"structure", + "members":{ + "healthStatus":{ + "shape":"ApplicationHealthStatus", + "documentation":"

Application aggregated status health status.

" + }, + "lastUpdateDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Application aggregated status last update dateTime.

" + }, + "progressStatus":{ + "shape":"ApplicationProgressStatus", + "documentation":"

Application aggregated status progress status.

" + }, + "totalSourceServers":{ + "shape":"PositiveInteger", + "documentation":"

Application aggregated status total source servers amount.

" + } + }, + "documentation":"

Application aggregated status.

" + }, + "ApplicationDescription":{ + "type":"string", + "max":600, + "min":0, + "pattern":"^[^\\x00]*$" + }, + "ApplicationHealthStatus":{ + "type":"string", + "enum":[ + "HEALTHY", + "LAGGING", + "ERROR" + ] + }, + "ApplicationID":{ + "type":"string", + "max":21, + "min":21, + "pattern":"^app-[0-9a-zA-Z]{17}$" + }, + "ApplicationIDs":{ + "type":"list", + "member":{"shape":"ApplicationID"}, + "max":50, + "min":1 + }, + "ApplicationIDsFilter":{ + "type":"list", + "member":{"shape":"ApplicationID"}, + "max":200, + "min":0 + }, + "ApplicationName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[^\\s\\x00]( *[^\\s\\x00])*$" + }, + "ApplicationProgressStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "COMPLETED" + ] + }, + "ApplicationsList":{ + "type":"list", + "member":{"shape":"Application"} + }, + "ArchiveApplicationRequest":{ + "type":"structure", + "required":["applicationID"], + "members":{ + "applicationID":{ + "shape":"ApplicationID", + "documentation":"

Application ID.

" + } + } + }, + "ArchiveWaveRequest":{ + "type":"structure", + "required":["waveID"], + "members":{ + "waveID":{ + "shape":"WaveID", + "documentation":"

Wave ID.

" + } + } + }, + "AssociateApplicationsRequest":{ + "type":"structure", + "required":[ + "applicationIDs", + "waveID" + ], + "members":{ + "applicationIDs":{ + "shape":"ApplicationIDs", + "documentation":"

Application IDs list.

" + }, + "waveID":{ + "shape":"WaveID", + "documentation":"

Wave ID.

" + } + } + }, + "AssociateApplicationsResponse":{ + "type":"structure", + "members":{ + } + }, + "AssociateSourceServersRequest":{ + "type":"structure", + "required":[ + "applicationID", + "sourceServerIDs" + ], + "members":{ + "applicationID":{ + "shape":"ApplicationID", + "documentation":"

Application ID.

" + }, + "sourceServerIDs":{ + "shape":"AssociateSourceServersRequestSourceServerIDs", + "documentation":"

Source server IDs list.

" + } + } + }, + "AssociateSourceServersRequestSourceServerIDs":{ + "type":"list", + "member":{"shape":"SourceServerID"}, + "max":50, + "min":1 + }, + "AssociateSourceServersResponse":{ + "type":"structure", + "members":{ + } + }, "Boolean":{ "type":"boolean", "box":true @@ -577,10 +1210,20 @@ "CUTOVER" ] }, + "CloudWatchLogGroupName":{ + "type":"string", + "max":512, + "min":1, + "pattern":"^[\\.\\-_/#A-Za-z0-9]+$" + }, "ConflictException":{ "type":"structure", "members":{ "code":{"shape":"LargeBoundedString"}, + "errors":{ + "shape":"ConflictExceptionErrors", + "documentation":"

Conflict Exception specific errors.

" + }, "message":{"shape":"LargeBoundedString"}, "resourceId":{ "shape":"LargeBoundedString", @@ -598,12 +1241,92 @@ }, "exception":true }, + "ConflictExceptionErrors":{ + "type":"list", + "member":{"shape":"ErrorDetails"} + }, "Cpus":{ "type":"list", "member":{"shape":"CPU"}, "max":256, "min":0 }, + "CreateApplicationRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "description":{ + "shape":"ApplicationDescription", + "documentation":"

Application description.

" + }, + "name":{ + "shape":"ApplicationName", + "documentation":"

Application name.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

Application tags.

" + } + } + }, + "CreateLaunchConfigurationTemplateRequest":{ + "type":"structure", + "members":{ + "associatePublicIpAddress":{ + "shape":"Boolean", + "documentation":"

Associate public Ip address.

" + }, + "bootMode":{ + "shape":"BootMode", + "documentation":"

Launch configuration template boot mode.

" + }, + "copyPrivateIp":{ + "shape":"Boolean", + "documentation":"

Copy private Ip.

" + }, + "copyTags":{ + "shape":"Boolean", + "documentation":"

Copy tags.

" + }, + "enableMapAutoTagging":{ + "shape":"Boolean", + "documentation":"

Enable map auto tagging.

" + }, + "largeVolumeConf":{ + "shape":"LaunchTemplateDiskConf", + "documentation":"

Large volume config.

" + }, + "launchDisposition":{ + "shape":"LaunchDisposition", + "documentation":"

Launch disposition.

" + }, + "licensing":{"shape":"Licensing"}, + "mapAutoTaggingMpeID":{ + "shape":"TagValue", + "documentation":"

Launch configuration template map auto tagging MPE ID.

" + }, + "postLaunchActions":{ + "shape":"PostLaunchActions", + "documentation":"

Launch configuration template post launch actions.

" + }, + "smallVolumeConf":{ + "shape":"LaunchTemplateDiskConf", + "documentation":"

Small volume config.

" + }, + "smallVolumeMaxSize":{ + "shape":"PositiveInteger", + "documentation":"

Small volume maximum size.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

Request to associate tags during creation of a Launch Configuration Template.

" + }, + "targetInstanceTypeRightSizingMethod":{ + "shape":"TargetInstanceTypeRightSizingMethod", + "documentation":"

Target instance type right-sizing method.

" + } + } + }, "CreateReplicationConfigurationTemplateRequest":{ "type":"structure", "required":[ @@ -674,6 +1397,24 @@ } } }, + "CreateWaveRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "description":{ + "shape":"WaveDescription", + "documentation":"

Wave description.

" + }, + "name":{ + "shape":"WaveName", + "documentation":"

Wave name.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

Wave tags.

" + } + } + }, "DataReplicationError":{ "type":"structure", "members":{ @@ -729,7 +1470,7 @@ "documentation":"

Request to query the time when data replication will be complete.

" }, "lagDuration":{ - "shape":"ISO8601DatetimeString", + "shape":"ISO8601DurationString", "documentation":"

Request to query data replication lag duration.

" }, "lastSnapshotDateTime":{ @@ -854,6 +1595,21 @@ "SHIPPING_SNAPSHOT" ] }, + "DeleteApplicationRequest":{ + "type":"structure", + "required":["applicationID"], + "members":{ + "applicationID":{ + "shape":"ApplicationID", + "documentation":"

Application ID.

" + } + } + }, + "DeleteApplicationResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteJobRequest":{ "type":"structure", "required":["jobID"], @@ -869,6 +1625,21 @@ "members":{ } }, + "DeleteLaunchConfigurationTemplateRequest":{ + "type":"structure", + "required":["launchConfigurationTemplateID"], + "members":{ + "launchConfigurationTemplateID":{ + "shape":"LaunchConfigurationTemplateID", + "documentation":"

ID of resource to be deleted.

" + } + } + }, + "DeleteLaunchConfigurationTemplateResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteReplicationConfigurationTemplateRequest":{ "type":"structure", "required":["replicationConfigurationTemplateID"], @@ -909,6 +1680,21 @@ } } }, + "DeleteWaveRequest":{ + "type":"structure", + "required":["waveID"], + "members":{ + "waveID":{ + "shape":"WaveID", + "documentation":"

Wave ID.

" + } + } + }, + "DeleteWaveResponse":{ + "type":"structure", + "members":{ + } + }, "DescribeJobLogItemsRequest":{ "type":"structure", "required":["jobID"], @@ -918,7 +1704,7 @@ "documentation":"

Request to describe Job log job ID.

" }, "maxResults":{ - "shape":"StrictlyPositiveInteger", + "shape":"MaxResultsType", "documentation":"

Request to describe Job log item maximum results.

" }, "nextToken":{ @@ -948,7 +1734,7 @@ "documentation":"

Request to describe Job log filters.

" }, "maxResults":{ - "shape":"StrictlyPositiveInteger", + "shape":"MaxResultsType", "documentation":"

Request to describe job log items by max results.

" }, "nextToken":{ @@ -994,11 +1780,41 @@ } } }, + "DescribeLaunchConfigurationTemplatesRequest":{ + "type":"structure", + "members":{ + "launchConfigurationTemplateIDs":{ + "shape":"LaunchConfigurationTemplateIDs", + "documentation":"

Request to filter Launch Configuration Templates list by Launch Configuration Template ID.

" + }, + "maxResults":{ + "shape":"MaxResultsType", + "documentation":"

Maximum results to be returned in DescribeLaunchConfigurationTemplates.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Next pagination token returned from DescribeLaunchConfigurationTemplates.

" + } + } + }, + "DescribeLaunchConfigurationTemplatesResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"LaunchConfigurationTemplates", + "documentation":"

List of items returned by DescribeLaunchConfigurationTemplates.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Next pagination token returned from DescribeLaunchConfigurationTemplates.

" + } + } + }, "DescribeReplicationConfigurationTemplatesRequest":{ "type":"structure", "members":{ "maxResults":{ - "shape":"StrictlyPositiveInteger", + "shape":"MaxResultsType", "documentation":"

Request to describe Replication Configuration template by max results.

" }, "nextToken":{ @@ -1032,7 +1848,7 @@ "documentation":"

Request to filter Source Servers list.

" }, "maxResults":{ - "shape":"StrictlyPositiveInteger", + "shape":"MaxResultsType", "documentation":"

Request to filter Source Servers list by maximum results.

" }, "nextToken":{ @@ -1041,9 +1857,19 @@ } } }, + "DescribeSourceServersRequestApplicationIDs":{ + "type":"list", + "member":{"shape":"ApplicationID"}, + "max":200, + "min":0 + }, "DescribeSourceServersRequestFilters":{ "type":"structure", "members":{ + "applicationIDs":{ + "shape":"DescribeSourceServersRequestApplicationIDs", + "documentation":"

Request to filter Source Servers list by application IDs.

" + }, "isArchived":{ "shape":"Boolean", "documentation":"

Request to filter Source Servers list by archived.

" @@ -1086,7 +1912,7 @@ "type":"structure", "members":{ "maxResults":{ - "shape":"StrictlyPositiveInteger", + "shape":"MaxResultsType", "documentation":"

Maximum results to be returned in DescribeVcenterClients.

", "location":"querystring", "locationName":"maxResults" @@ -1112,6 +1938,56 @@ } } }, + "DisassociateApplicationsRequest":{ + "type":"structure", + "required":[ + "applicationIDs", + "waveID" + ], + "members":{ + "applicationIDs":{ + "shape":"ApplicationIDs", + "documentation":"

Application IDs list.

" + }, + "waveID":{ + "shape":"WaveID", + "documentation":"

Wave ID.

" + } + } + }, + "DisassociateApplicationsResponse":{ + "type":"structure", + "members":{ + } + }, + "DisassociateSourceServersRequest":{ + "type":"structure", + "required":[ + "applicationID", + "sourceServerIDs" + ], + "members":{ + "applicationID":{ + "shape":"ApplicationID", + "documentation":"

Application ID.

" + }, + "sourceServerIDs":{ + "shape":"DisassociateSourceServersRequestSourceServerIDs", + "documentation":"

Source server IDs list.

" + } + } + }, + "DisassociateSourceServersRequestSourceServerIDs":{ + "type":"list", + "member":{"shape":"SourceServerID"}, + "max":50, + "min":1 + }, + "DisassociateSourceServersResponse":{ + "type":"structure", + "members":{ + } + }, "DisconnectFromServiceRequest":{ "type":"structure", "required":["sourceServerID"], @@ -1142,6 +2018,10 @@ "max":1000, "min":0 }, + "DocumentVersion":{ + "type":"string", + "pattern":"^(\\$DEFAULT|\\$LATEST|[0-9]+)$" + }, "EC2InstanceID":{ "type":"string", "max":255, @@ -1153,6 +2033,34 @@ "max":255, "min":0 }, + "EC2LaunchConfigurationTemplateID":{ + "type":"string", + "max":20, + "min":20, + "pattern":"^lt-[0-9a-z]{17}$" + }, + "ErrorDetails":{ + "type":"structure", + "members":{ + "code":{ + "shape":"BoundedString", + "documentation":"

Error details code.

" + }, + "message":{ + "shape":"LargeBoundedString", + "documentation":"

Error details message.

" + }, + "resourceId":{ + "shape":"LargeBoundedString", + "documentation":"

Error details resourceId.

" + }, + "resourceType":{ + "shape":"LargeBoundedString", + "documentation":"

Error details resourceType.

" + } + }, + "documentation":"

Error details.

" + }, "FinalizeCutoverRequest":{ "type":"structure", "required":["sourceServerID"], @@ -1202,6 +2110,11 @@ "min":19, "pattern":"^[1-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?Z$" }, + "ISO8601DurationString":{ + "type":"string", + "max":64, + "min":1 + }, "IdentificationHints":{ "type":"structure", "members":{ @@ -1378,6 +2291,32 @@ "type":"list", "member":{"shape":"JobLog"} }, + "JobPostLaunchActionsLaunchStatus":{ + "type":"structure", + "members":{ + "executionID":{ + "shape":"BoundedString", + "documentation":"

AWS Systems Manager Document's execution ID of the of the Job Post Launch Actions.

" + }, + "executionStatus":{ + "shape":"PostLaunchActionExecutionStatus", + "documentation":"

AWS Systems Manager Document's execution status.

" + }, + "failureReason":{ + "shape":"BoundedString", + "documentation":"

AWS Systems Manager Document's failure reason.

" + }, + "ssmDocument":{ + "shape":"SsmDocument", + "documentation":"

AWS Systems Manager's Document of the of the Job Post Launch Actions.

" + }, + "ssmDocumentType":{ + "shape":"SsmDocumentType", + "documentation":"

AWS Systems Manager Document type.

" + } + }, + "documentation":"

Launch Status of the Job Post Launch Actions.

" + }, "JobStatus":{ "type":"string", "enum":[ @@ -1421,6 +2360,10 @@ "shape":"BoundedString", "documentation":"

Launch configuration EC2 Launch template ID.

" }, + "enableMapAutoTagging":{ + "shape":"Boolean", + "documentation":"

Enable map auto tagging.

" + }, "launchDisposition":{ "shape":"LaunchDisposition", "documentation":"

Launch disposition for launch configuration.

" @@ -1429,10 +2372,15 @@ "shape":"Licensing", "documentation":"

Launch configuration OS licensing.

" }, + "mapAutoTaggingMpeID":{ + "shape":"TagValue", + "documentation":"

Map auto tagging MPE ID.

" + }, "name":{ "shape":"SmallBoundedString", "documentation":"

Launch configuration name.

" }, + "postLaunchActions":{"shape":"PostLaunchActions"}, "sourceServerID":{ "shape":"SourceServerID", "documentation":"

Launch configuration Source Server ID.

" @@ -1443,6 +2391,95 @@ } } }, + "LaunchConfigurationTemplate":{ + "type":"structure", + "required":["launchConfigurationTemplateID"], + "members":{ + "arn":{ + "shape":"ARN", + "documentation":"

ARN of the Launch Configuration Template.

" + }, + "associatePublicIpAddress":{ + "shape":"Boolean", + "documentation":"

Associate public Ip address.

" + }, + "bootMode":{ + "shape":"BootMode", + "documentation":"

Launch configuration template boot mode.

" + }, + "copyPrivateIp":{ + "shape":"Boolean", + "documentation":"

Copy private Ip.

" + }, + "copyTags":{ + "shape":"Boolean", + "documentation":"

Copy tags.

" + }, + "ec2LaunchTemplateID":{ + "shape":"EC2LaunchConfigurationTemplateID", + "documentation":"

EC2 launch template ID.

" + }, + "enableMapAutoTagging":{ + "shape":"Boolean", + "documentation":"

Enable map auto tagging.

" + }, + "largeVolumeConf":{ + "shape":"LaunchTemplateDiskConf", + "documentation":"

Large volume config.

" + }, + "launchConfigurationTemplateID":{ + "shape":"LaunchConfigurationTemplateID", + "documentation":"

ID of the Launch Configuration Template.

" + }, + "launchDisposition":{ + "shape":"LaunchDisposition", + "documentation":"

Launch disposition.

" + }, + "licensing":{"shape":"Licensing"}, + "mapAutoTaggingMpeID":{ + "shape":"TagValue", + "documentation":"

Launch configuration template map auto tagging MPE ID.

" + }, + "postLaunchActions":{ + "shape":"PostLaunchActions", + "documentation":"

Post Launch Actions of the Launch Configuration Template.

" + }, + "smallVolumeConf":{ + "shape":"LaunchTemplateDiskConf", + "documentation":"

Small volume config.

" + }, + "smallVolumeMaxSize":{ + "shape":"PositiveInteger", + "documentation":"

Small volume maximum size.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

Tags of the Launch Configuration Template.

" + }, + "targetInstanceTypeRightSizingMethod":{ + "shape":"TargetInstanceTypeRightSizingMethod", + "documentation":"

Target instance type right-sizing method.

" + } + } + }, + "LaunchConfigurationTemplateID":{ + "type":"string", + "max":21, + "min":21, + "pattern":"^lct-[0-9a-zA-Z]{17}$" + }, + "LaunchConfigurationTemplateIDs":{ + "type":"list", + "member":{"shape":"LaunchConfigurationTemplateID"}, + "max":200, + "min":0 + }, + "LaunchConfigurationTemplates":{ + "type":"list", + "member":{"shape":"LaunchConfigurationTemplate"}, + "max":200, + "min":0 + }, "LaunchDisposition":{ "type":"string", "enum":[ @@ -1460,6 +2497,24 @@ "TERMINATED" ] }, + "LaunchTemplateDiskConf":{ + "type":"structure", + "members":{ + "iops":{ + "shape":"PositiveInteger", + "documentation":"

Launch template disk iops configuration.

" + }, + "throughput":{ + "shape":"PositiveInteger", + "documentation":"

Launch template disk throughput configuration.

" + }, + "volumeType":{ + "shape":"VolumeType", + "documentation":"

Launch template disk volume type configuration.

" + } + }, + "documentation":"

Launch template disk configuration.

" + }, "LaunchedInstance":{ "type":"structure", "members":{ @@ -1496,7 +2551,7 @@ "documentation":"

Lifecycle added to service data and time.

" }, "elapsedReplicationDuration":{ - "shape":"ISO8601DatetimeString", + "shape":"ISO8601DurationString", "documentation":"

Lifecycle elapsed time and duration.

" }, "firstByteDateTime":{ @@ -1646,6 +2701,89 @@ "max":10, "min":0 }, + "ListApplicationsRequest":{ + "type":"structure", + "members":{ + "filters":{ + "shape":"ListApplicationsRequestFilters", + "documentation":"

Applications list filters.

" + }, + "maxResults":{ + "shape":"MaxResultsType", + "documentation":"

Maximum results to return when listing applications.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Request next token.

" + } + } + }, + "ListApplicationsRequestFilters":{ + "type":"structure", + "members":{ + "applicationIDs":{ + "shape":"ApplicationIDsFilter", + "documentation":"

Filter applications list by application ID.

" + }, + "isArchived":{ + "shape":"Boolean", + "documentation":"

Filter applications list by archival status.

" + }, + "waveIDs":{ + "shape":"WaveIDsFilter", + "documentation":"

Filter applications list by wave ID.

" + } + }, + "documentation":"

Applications list filters.

" + }, + "ListApplicationsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"ApplicationsList", + "documentation":"

Applications list.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Response next token.

" + } + } + }, + "ListSourceServerActionsRequest":{ + "type":"structure", + "required":["sourceServerID"], + "members":{ + "filters":{ + "shape":"SourceServerActionsRequestFilters", + "documentation":"

Filters to apply when listing source server post migration custom actions.

" + }, + "maxResults":{ + "shape":"MaxResultsType", + "documentation":"

Maximum amount of items to return when listing source server post migration custom actions.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Next token to use when listing source server post migration custom actions.

" + }, + "sourceServerID":{ + "shape":"SourceServerID", + "documentation":"

Source server ID.

" + } + } + }, + "ListSourceServerActionsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"SourceServerActionDocuments", + "documentation":"

List of source server post migration custom actions.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Next token returned when listing source server post migration custom actions.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["resourceArn"], @@ -1667,6 +2805,85 @@ } } }, + "ListTemplateActionsRequest":{ + "type":"structure", + "required":["launchConfigurationTemplateID"], + "members":{ + "filters":{ + "shape":"TemplateActionsRequestFilters", + "documentation":"

Filters to apply when listing template post migration custom actions.

" + }, + "launchConfigurationTemplateID":{ + "shape":"LaunchConfigurationTemplateID", + "documentation":"

Launch configuration template ID.

" + }, + "maxResults":{ + "shape":"MaxResultsType", + "documentation":"

Maximum amount of items to return when listing template post migration custom actions.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Next token to use when listing template post migration custom actions.

" + } + } + }, + "ListTemplateActionsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"TemplateActionDocuments", + "documentation":"

List of template post migration custom actions.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Next token returned when listing template post migration custom actions.

" + } + } + }, + "ListWavesRequest":{ + "type":"structure", + "members":{ + "filters":{ + "shape":"ListWavesRequestFilters", + "documentation":"

Waves list filters.

" + }, + "maxResults":{ + "shape":"MaxResultsType", + "documentation":"

Maximum results to return when listing waves.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Request next token.

" + } + } + }, + "ListWavesRequestFilters":{ + "type":"structure", + "members":{ + "isArchived":{ + "shape":"Boolean", + "documentation":"

Filter waves list by archival status.

" + }, + "waveIDs":{ + "shape":"WaveIDsFilter", + "documentation":"

Filter waves list by wave ID.

" + } + }, + "documentation":"

Waves list filters.

" + }, + "ListWavesResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"WavesList", + "documentation":"

Waves list.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

Response next token.

" + } + } + }, "MarkAsArchivedRequest":{ "type":"structure", "required":["sourceServerID"], @@ -1677,6 +2894,11 @@ } } }, + "MaxResultsType":{ + "type":"integer", + "max":1000, + "min":1 + }, "NetworkInterface":{ "type":"structure", "members":{ @@ -1711,6 +2933,15 @@ }, "documentation":"

Operating System.

" }, + "OperatingSystemString":{ + "type":"string", + "pattern":"^(linux|windows)$" + }, + "OrderType":{ + "type":"integer", + "max":10000, + "min":1001 + }, "PaginationToken":{ "type":"string", "max":2048, @@ -1718,11 +2949,20 @@ }, "ParticipatingServer":{ "type":"structure", + "required":["sourceServerID"], "members":{ "launchStatus":{ "shape":"LaunchStatus", "documentation":"

Participating server launch status.

" }, + "launchedEc2InstanceID":{ + "shape":"EC2InstanceID", + "documentation":"

Participating server's launched ec2 instance ID.

" + }, + "postLaunchActionsStatus":{ + "shape":"PostLaunchActionsStatus", + "documentation":"

Participating server's Post Launch Actions Status.

" + }, "sourceServerID":{ "shape":"SourceServerID", "documentation":"

Participating server Source Server ID.

" @@ -1738,6 +2978,218 @@ "type":"long", "min":0 }, + "PostLaunchActionExecutionStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "SUCCESS", + "FAILED" + ] + }, + "PostLaunchActions":{ + "type":"structure", + "members":{ + "cloudWatchLogGroupName":{ + "shape":"CloudWatchLogGroupName", + "documentation":"

AWS Systems Manager Command's CloudWatch log group name.

" + }, + "deployment":{ + "shape":"PostLaunchActionsDeploymentType", + "documentation":"

Deployment type in which AWS Systems Manager Documents will be executed.

" + }, + "s3LogBucket":{ + "shape":"S3LogBucketName", + "documentation":"

AWS Systems Manager Command's logs S3 log bucket.

" + }, + "s3OutputKeyPrefix":{ + "shape":"BoundedString", + "documentation":"

AWS Systems Manager Command's logs S3 output key prefix.

" + }, + "ssmDocuments":{ + "shape":"SsmDocuments", + "documentation":"

AWS Systems Manager Documents.

" + } + }, + "documentation":"

Post Launch Actions to executed on the Test or Cutover instance.

" + }, + "PostLaunchActionsDeploymentType":{ + "type":"string", + "enum":[ + "TEST_AND_CUTOVER", + "CUTOVER_ONLY", + "TEST_ONLY" + ] + }, + "PostLaunchActionsLaunchStatusList":{ + "type":"list", + "member":{"shape":"JobPostLaunchActionsLaunchStatus"} + }, + "PostLaunchActionsStatus":{ + "type":"structure", + "members":{ + "postLaunchActionsLaunchStatusList":{ + "shape":"PostLaunchActionsLaunchStatusList", + "documentation":"

List of Post Launch Action status.

" + }, + "ssmAgentDiscoveryDatetime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Time where the AWS Systems Manager was detected as running on the Test or Cutover instance.

" + } + }, + "documentation":"

Status of the Post Launch Actions running on the Test or Cutover instance.

" + }, + "PutSourceServerActionRequest":{ + "type":"structure", + "required":[ + "actionID", + "actionName", + "documentIdentifier", + "order", + "sourceServerID" + ], + "members":{ + "actionID":{ + "shape":"ActionID", + "documentation":"

Source server post migration custom action ID.

" + }, + "actionName":{ + "shape":"ActionName", + "documentation":"

Source server post migration custom action name.

" + }, + "active":{ + "shape":"Boolean", + "documentation":"

Source server post migration custom action active status.

" + }, + "documentIdentifier":{ + "shape":"BoundedString", + "documentation":"

Source server post migration custom action document identifier.

" + }, + "documentVersion":{ + "shape":"DocumentVersion", + "documentation":"

Source server post migration custom action document version.

" + }, + "mustSucceedForCutover":{ + "shape":"Boolean", + "documentation":"

Source server post migration custom action must succeed for cutover.

" + }, + "order":{ + "shape":"OrderType", + "documentation":"

Source server post migration custom action order.

" + }, + "parameters":{ + "shape":"SsmDocumentParameters", + "documentation":"

Source server post migration custom action parameters.

" + }, + "sourceServerID":{ + "shape":"SourceServerID", + "documentation":"

Source server ID.

" + }, + "timeoutSeconds":{ + "shape":"StrictlyPositiveInteger", + "documentation":"

Source server post migration custom action timeout in seconds.

" + } + } + }, + "PutTemplateActionRequest":{ + "type":"structure", + "required":[ + "actionID", + "actionName", + "documentIdentifier", + "launchConfigurationTemplateID", + "order" + ], + "members":{ + "actionID":{ + "shape":"ActionID", + "documentation":"

Template post migration custom action ID.

" + }, + "actionName":{ + "shape":"BoundedString", + "documentation":"

Template post migration custom action name.

" + }, + "active":{ + "shape":"Boolean", + "documentation":"

Template post migration custom action active status.

" + }, + "documentIdentifier":{ + "shape":"BoundedString", + "documentation":"

Template post migration custom action document identifier.

" + }, + "documentVersion":{ + "shape":"DocumentVersion", + "documentation":"

Template post migration custom action document version.

" + }, + "launchConfigurationTemplateID":{ + "shape":"LaunchConfigurationTemplateID", + "documentation":"

Launch configuration template ID.

" + }, + "mustSucceedForCutover":{ + "shape":"Boolean", + "documentation":"

Template post migration custom action must succeed for cutover.

" + }, + "operatingSystem":{ + "shape":"OperatingSystemString", + "documentation":"

Operating system eligible for this template post migration custom action.

" + }, + "order":{ + "shape":"OrderType", + "documentation":"

Template post migration custom action order.

" + }, + "parameters":{ + "shape":"SsmDocumentParameters", + "documentation":"

Template post migration custom action parameters.

" + }, + "timeoutSeconds":{ + "shape":"StrictlyPositiveInteger", + "documentation":"

Template post migration custom action timeout in seconds.

" + } + } + }, + "RemoveSourceServerActionRequest":{ + "type":"structure", + "required":[ + "actionID", + "sourceServerID" + ], + "members":{ + "actionID":{ + "shape":"ActionID", + "documentation":"

Source server post migration custom action ID to remove.

" + }, + "sourceServerID":{ + "shape":"SourceServerID", + "documentation":"

Source server ID of the post migration custom action to remove.

" + } + } + }, + "RemoveSourceServerActionResponse":{ + "type":"structure", + "members":{ + } + }, + "RemoveTemplateActionRequest":{ + "type":"structure", + "required":[ + "actionID", + "launchConfigurationTemplateID" + ], + "members":{ + "actionID":{ + "shape":"ActionID", + "documentation":"

Template post migration custom action ID to remove.

" + }, + "launchConfigurationTemplateID":{ + "shape":"LaunchConfigurationTemplateID", + "documentation":"

Launch configuration template ID of the post migration custom action to remove.

" + } + } + }, + "RemoveTemplateActionResponse":{ + "type":"structure", + "members":{ + } + }, "ReplicationConfiguration":{ "type":"structure", "members":{ @@ -2002,6 +3454,11 @@ } } }, + "S3LogBucketName":{ + "type":"string", + "max":63, + "min":3 + }, "SecurityGroupID":{ "type":"string", "max":255, @@ -2087,6 +3544,10 @@ "SourceServer":{ "type":"structure", "members":{ + "applicationID":{ + "shape":"ApplicationID", + "documentation":"

Source server application ID.

" + }, "arn":{ "shape":"ARN", "documentation":"

Source server ARN.

" @@ -2129,6 +3590,63 @@ } } }, + "SourceServerActionDocument":{ + "type":"structure", + "members":{ + "actionID":{ + "shape":"ActionID", + "documentation":"

Source server post migration custom action ID.

" + }, + "actionName":{ + "shape":"ActionName", + "documentation":"

Source server post migration custom action name.

" + }, + "active":{ + "shape":"Boolean", + "documentation":"

Source server post migration custom action active status.

" + }, + "documentIdentifier":{ + "shape":"BoundedString", + "documentation":"

Source server post migration custom action document identifier.

" + }, + "documentVersion":{ + "shape":"DocumentVersion", + "documentation":"

Source server post migration custom action document version.

" + }, + "mustSucceedForCutover":{ + "shape":"Boolean", + "documentation":"

Source server post migration custom action must succeed for cutover.

" + }, + "order":{ + "shape":"OrderType", + "documentation":"

Source server post migration custom action order.

" + }, + "parameters":{ + "shape":"SsmDocumentParameters", + "documentation":"

Source server post migration custom action parameters.

" + }, + "timeoutSeconds":{ + "shape":"StrictlyPositiveInteger", + "documentation":"

Source server post migration custom action timeout in seconds.

" + } + } + }, + "SourceServerActionDocuments":{ + "type":"list", + "member":{"shape":"SourceServerActionDocument"}, + "max":100, + "min":0 + }, + "SourceServerActionsRequestFilters":{ + "type":"structure", + "members":{ + "actionIDs":{ + "shape":"ActionIDs", + "documentation":"

Action IDs to filter source server post migration custom actions by.

" + } + }, + "documentation":"

Source server post migration custom action filters.

" + }, "SourceServerID":{ "type":"string", "max":19, @@ -2139,6 +3657,102 @@ "type":"list", "member":{"shape":"SourceServer"} }, + "SsmDocument":{ + "type":"structure", + "required":[ + "actionName", + "ssmDocumentName" + ], + "members":{ + "actionName":{ + "shape":"BoundedString", + "documentation":"

User-friendly name for the AWS Systems Manager Document.

" + }, + "mustSucceedForCutover":{ + "shape":"Boolean", + "documentation":"

If true, Cutover will not be enabled if the document has failed.

" + }, + "parameters":{ + "shape":"SsmDocumentParameters", + "documentation":"

AWS Systems Manager Document parameters.

" + }, + "ssmDocumentName":{ + "shape":"SsmDocumentName", + "documentation":"

AWS Systems Manager Document name or full ARN.

" + }, + "timeoutSeconds":{ + "shape":"StrictlyPositiveInteger", + "documentation":"

AWS Systems Manager Document timeout seconds.

" + } + }, + "documentation":"

AWS Systems Manager Document.

" + }, + "SsmDocumentName":{ + "type":"string", + "max":172, + "min":3, + "pattern":"^([A-Za-z0-9/:_\\.-])+$" + }, + "SsmDocumentParameterName":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"^([A-Za-z0-9])+$" + }, + "SsmDocumentParameters":{ + "type":"map", + "key":{"shape":"SsmDocumentParameterName"}, + "value":{"shape":"SsmParameterStoreParameters"}, + "max":20, + "min":0 + }, + "SsmDocumentType":{ + "type":"string", + "enum":[ + "AUTOMATION", + "COMMAND" + ] + }, + "SsmDocuments":{ + "type":"list", + "member":{"shape":"SsmDocument"}, + "max":10, + "min":0 + }, + "SsmParameterStoreParameter":{ + "type":"structure", + "required":[ + "parameterName", + "parameterType" + ], + "members":{ + "parameterName":{ + "shape":"SsmParameterStoreParameterName", + "documentation":"

AWS Systems Manager Parameter Store parameter name.

" + }, + "parameterType":{ + "shape":"SsmParameterStoreParameterType", + "documentation":"

AWS Systems Manager Parameter Store parameter type.

" + } + }, + "documentation":"

AWS Systems Manager Parameter Store parameter.

" + }, + "SsmParameterStoreParameterName":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"^([A-Za-z0-9_\\.-])+$" + }, + "SsmParameterStoreParameterType":{ + "type":"string", + "enum":["STRING"] + }, + "SsmParameterStoreParameters":{ + "type":"list", + "member":{"shape":"SsmParameterStoreParameter"}, + "max":10, + "min":0 + }, "StartCutoverRequest":{ "type":"structure", "required":["sourceServerIDs"], @@ -2264,6 +3878,67 @@ "BASIC" ] }, + "TemplateActionDocument":{ + "type":"structure", + "members":{ + "actionID":{ + "shape":"ActionID", + "documentation":"

Template post migration custom action ID.

" + }, + "actionName":{ + "shape":"BoundedString", + "documentation":"

Template post migration custom action name.

" + }, + "active":{ + "shape":"Boolean", + "documentation":"

Template post migration custom action active status.

" + }, + "documentIdentifier":{ + "shape":"BoundedString", + "documentation":"

Template post migration custom action document identifier.

" + }, + "documentVersion":{ + "shape":"DocumentVersion", + "documentation":"

Template post migration custom action document version.

" + }, + "mustSucceedForCutover":{ + "shape":"Boolean", + "documentation":"

Template post migration custom action must succeed for cutover.

" + }, + "operatingSystem":{ + "shape":"OperatingSystemString", + "documentation":"

Operating system eligible for this template post migration custom action.

" + }, + "order":{ + "shape":"OrderType", + "documentation":"

Template post migration custom action order.

" + }, + "parameters":{ + "shape":"SsmDocumentParameters", + "documentation":"

Template post migration custom action parameters.

" + }, + "timeoutSeconds":{ + "shape":"StrictlyPositiveInteger", + "documentation":"

Template post migration custom action timeout in seconds.

" + } + } + }, + "TemplateActionDocuments":{ + "type":"list", + "member":{"shape":"TemplateActionDocument"}, + "max":100, + "min":0 + }, + "TemplateActionsRequestFilters":{ + "type":"structure", + "members":{ + "actionIDs":{ + "shape":"ActionIDs", + "documentation":"

Action IDs to filter template post migration custom actions by.

" + } + }, + "documentation":"

Template post migration custom action filters.

" + }, "TerminateTargetInstancesRequest":{ "type":"structure", "required":["sourceServerIDs"], @@ -2320,6 +3995,26 @@ }, "exception":true }, + "UnarchiveApplicationRequest":{ + "type":"structure", + "required":["applicationID"], + "members":{ + "applicationID":{ + "shape":"ApplicationID", + "documentation":"

Application ID.

" + } + } + }, + "UnarchiveWaveRequest":{ + "type":"structure", + "required":["waveID"], + "members":{ + "waveID":{ + "shape":"WaveID", + "documentation":"

Wave ID.

" + } + } + }, "UninitializedAccountException":{ "type":"structure", "members":{ @@ -2354,6 +4049,24 @@ } } }, + "UpdateApplicationRequest":{ + "type":"structure", + "required":["applicationID"], + "members":{ + "applicationID":{ + "shape":"ApplicationID", + "documentation":"

Application ID.

" + }, + "description":{ + "shape":"ApplicationDescription", + "documentation":"

Application description.

" + }, + "name":{ + "shape":"ApplicationName", + "documentation":"

Application name.

" + } + } + }, "UpdateLaunchConfigurationRequest":{ "type":"structure", "required":["sourceServerID"], @@ -2370,6 +4083,10 @@ "shape":"Boolean", "documentation":"

Update Launch configuration copy Tags request.

" }, + "enableMapAutoTagging":{ + "shape":"Boolean", + "documentation":"

Enable map auto tagging.

" + }, "launchDisposition":{ "shape":"LaunchDisposition", "documentation":"

Update Launch configuration launch disposition request.

" @@ -2378,10 +4095,15 @@ "shape":"Licensing", "documentation":"

Update Launch configuration licensing request.

" }, + "mapAutoTaggingMpeID":{ + "shape":"TagValue", + "documentation":"

Launch configuration map auto tagging MPE ID.

" + }, "name":{ "shape":"SmallBoundedString", "documentation":"

Update Launch configuration name request.

" }, + "postLaunchActions":{"shape":"PostLaunchActions"}, "sourceServerID":{ "shape":"SourceServerID", "documentation":"

Update Launch configuration by Source Server ID request.

" @@ -2392,6 +4114,65 @@ } } }, + "UpdateLaunchConfigurationTemplateRequest":{ + "type":"structure", + "required":["launchConfigurationTemplateID"], + "members":{ + "associatePublicIpAddress":{ + "shape":"Boolean", + "documentation":"

Associate public Ip address.

" + }, + "bootMode":{ + "shape":"BootMode", + "documentation":"

Launch configuration template boot mode.

" + }, + "copyPrivateIp":{ + "shape":"Boolean", + "documentation":"

Copy private Ip.

" + }, + "copyTags":{ + "shape":"Boolean", + "documentation":"

Copy tags.

" + }, + "enableMapAutoTagging":{ + "shape":"Boolean", + "documentation":"

Enable map auto tagging.

" + }, + "largeVolumeConf":{ + "shape":"LaunchTemplateDiskConf", + "documentation":"

Large volume config.

" + }, + "launchConfigurationTemplateID":{ + "shape":"LaunchConfigurationTemplateID", + "documentation":"

Launch Configuration Template ID.

" + }, + "launchDisposition":{ + "shape":"LaunchDisposition", + "documentation":"

Launch disposition.

" + }, + "licensing":{"shape":"Licensing"}, + "mapAutoTaggingMpeID":{ + "shape":"TagValue", + "documentation":"

Launch configuration template map auto tagging MPE ID.

" + }, + "postLaunchActions":{ + "shape":"PostLaunchActions", + "documentation":"

Post Launch Action to execute on the Test or Cutover instance.

" + }, + "smallVolumeConf":{ + "shape":"LaunchTemplateDiskConf", + "documentation":"

Small volume config.

" + }, + "smallVolumeMaxSize":{ + "shape":"PositiveInteger", + "documentation":"

Small volume maximum size.

" + }, + "targetInstanceTypeRightSizingMethod":{ + "shape":"TargetInstanceTypeRightSizingMethod", + "documentation":"

Target instance type right-sizing method.

" + } + } + }, "UpdateReplicationConfigurationRequest":{ "type":"structure", "required":["sourceServerID"], @@ -2537,6 +4318,24 @@ } } }, + "UpdateWaveRequest":{ + "type":"structure", + "required":["waveID"], + "members":{ + "description":{ + "shape":"WaveDescription", + "documentation":"

Wave description.

" + }, + "name":{ + "shape":"WaveName", + "documentation":"

Wave name.

" + }, + "waveID":{ + "shape":"WaveID", + "documentation":"

Wave ID.

" + } + } + }, "ValidationException":{ "type":"structure", "members":{ @@ -2632,6 +4431,129 @@ "VcenterClientList":{ "type":"list", "member":{"shape":"VcenterClient"} + }, + "VolumeType":{ + "type":"string", + "enum":[ + "io1", + "io2", + "gp3", + "gp2", + "st1", + "sc1", + "standard" + ] + }, + "Wave":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"ARN", + "documentation":"

Wave ARN.

" + }, + "creationDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Wave creation dateTime.

" + }, + "description":{ + "shape":"WaveDescription", + "documentation":"

Wave description.

" + }, + "isArchived":{ + "shape":"Boolean", + "documentation":"

Wave archival status.

" + }, + "lastModifiedDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Wave last modified dateTime.

" + }, + "name":{ + "shape":"WaveName", + "documentation":"

Wave name.

" + }, + "tags":{ + "shape":"TagsMap", + "documentation":"

Wave tags.

" + }, + "waveAggregatedStatus":{ + "shape":"WaveAggregatedStatus", + "documentation":"

Wave aggregated status.

" + }, + "waveID":{ + "shape":"WaveID", + "documentation":"

Wave ID.

" + } + } + }, + "WaveAggregatedStatus":{ + "type":"structure", + "members":{ + "healthStatus":{ + "shape":"WaveHealthStatus", + "documentation":"

Wave aggregated status health status.

" + }, + "lastUpdateDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

Wave aggregated status last update dateTime.

" + }, + "progressStatus":{ + "shape":"WaveProgressStatus", + "documentation":"

Wave aggregated status progress status.

" + }, + "replicationStartedDateTime":{ + "shape":"ISO8601DatetimeString", + "documentation":"

DateTime marking when the first source server in the wave started replication.

" + }, + "totalApplications":{ + "shape":"PositiveInteger", + "documentation":"

Wave aggregated status total applications amount.

" + } + }, + "documentation":"

Wave aggregated status.

" + }, + "WaveDescription":{ + "type":"string", + "max":600, + "min":0, + "pattern":"^[^\\x00]*$" + }, + "WaveHealthStatus":{ + "type":"string", + "enum":[ + "HEALTHY", + "LAGGING", + "ERROR" + ] + }, + "WaveID":{ + "type":"string", + "max":22, + "min":22, + "pattern":"^wave-[0-9a-zA-Z]{17}$" + }, + "WaveIDsFilter":{ + "type":"list", + "member":{"shape":"WaveID"}, + "max":200, + "min":0 + }, + "WaveName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[^\\s\\x00]( *[^\\s\\x00])*$" + }, + "WaveProgressStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "COMPLETED" + ] + }, + "WavesList":{ + "type":"list", + "member":{"shape":"Wave"} } }, "documentation":"

The Application Migration Service service.

" diff --git a/botocore/data/migration-hub-refactor-spaces/2021-10-26/endpoint-rule-set-1.json b/botocore/data/migration-hub-refactor-spaces/2021-10-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..170abd6b --- /dev/null +++ b/botocore/data/migration-hub-refactor-spaces/2021-10-26/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://refactor-spaces-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://refactor-spaces-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://refactor-spaces.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://refactor-spaces.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/migration-hub-refactor-spaces/2021-10-26/examples-1.json b/botocore/data/migration-hub-refactor-spaces/2021-10-26/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/migration-hub-refactor-spaces/2021-10-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/migration-hub-refactor-spaces/2021-10-26/service-2.json b/botocore/data/migration-hub-refactor-spaces/2021-10-26/service-2.json index 523831a2..b8ce046f 100644 --- a/botocore/data/migration-hub-refactor-spaces/2021-10-26/service-2.json +++ b/botocore/data/migration-hub-refactor-spaces/2021-10-26/service-2.json @@ -70,7 +70,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Creates an Amazon Web Services Migration Hub Refactor Spaces route. The account owner of the service resource is always the environment owner, regardless of which account creates the route. Routes target a service in the application. If an application does not have any routes, then the first route must be created as a DEFAULT RouteType.

When you create a route, Refactor Spaces configures the Amazon API Gateway to send traffic to the target service as follows:

  • If the service has a URL endpoint, and the endpoint resolves to a private IP address, Refactor Spaces routes traffic using the API Gateway VPC link.

  • If the service has a URL endpoint, and the endpoint resolves to a public IP address, Refactor Spaces routes traffic over the public internet.

  • If the service has an Lambda function endpoint, then Refactor Spaces configures the Lambda function's resource policy to allow the application's API Gateway to invoke the function.

A one-time health check is performed on the service when the route is created. If the health check fails, the route transitions to FAILED, and no traffic is sent to the service.

For Lambda functions, the Lambda function state is checked. If the function is not active, the function configuration is updated so that Lambda resources are provisioned. If the Lambda state is Failed, then the route creation fails. For more information, see the GetFunctionConfiguration's State response parameter in the Lambda Developer Guide.

For public URLs, a connection is opened to the public endpoint. If the URL is not reachable, the health check fails. For private URLs, a target group is created and the target group health check is run.

The HealthCheckProtocol, HealthCheckPort, and HealthCheckPath are the same protocol, port, and path specified in the URL or health URL, if used. All other settings use the default values, as described in Health checks for your target groups. The health check is considered successful if at least one target within the target group transitions to a healthy state.

Services can have HTTP or HTTPS URL endpoints. For HTTPS URLs, publicly-signed certificates are supported. Private Certificate Authorities (CAs) are permitted only if the CA's domain is publicly resolvable.

" + "documentation":"

Creates an Amazon Web Services Migration Hub Refactor Spaces route. The account owner of the service resource is always the environment owner, regardless of which account creates the route. Routes target a service in the application. If an application does not have any routes, then the first route must be created as a DEFAULT RouteType.

When created, the default route defaults to an active state so state is not a required input. However, like all other state values the state of the default route can be updated after creation, but only when all other routes are also inactive. Conversely, no route can be active without the default route also being active.

When you create a route, Refactor Spaces configures the Amazon API Gateway to send traffic to the target service as follows:

  • If the service has a URL endpoint, and the endpoint resolves to a private IP address, Refactor Spaces routes traffic using the API Gateway VPC link.

  • If the service has a URL endpoint, and the endpoint resolves to a public IP address, Refactor Spaces routes traffic over the public internet.

  • If the service has an Lambda function endpoint, then Refactor Spaces configures the Lambda function's resource policy to allow the application's API Gateway to invoke the function.

A one-time health check is performed on the service when either the route is updated from inactive to active, or when it is created with an active state. If the health check fails, the route transitions the route state to FAILED, an error code of SERVICE_ENDPOINT_HEALTH_CHECK_FAILURE is provided, and no traffic is sent to the service.

For Lambda functions, the Lambda function state is checked. If the function is not active, the function configuration is updated so that Lambda resources are provisioned. If the Lambda state is Failed, then the route creation fails. For more information, see the GetFunctionConfiguration's State response parameter in the Lambda Developer Guide.

For Lambda endpoints, a check is performed to determine that a Lambda function with the specified ARN exists. If it does not exist, the health check fails. For public URLs, a connection is opened to the public endpoint. If the URL is not reachable, the health check fails.

For private URLS, a target group is created on the Elastic Load Balancing and the target group health check is run. The HealthCheckProtocol, HealthCheckPort, and HealthCheckPath are the same protocol, port, and path specified in the URL or health URL, if used. All other settings use the default values, as described in Health checks for your target groups. The health check is considered successful if at least one target within the target group transitions to a healthy state.

Services can have HTTP or HTTPS URL endpoints. For HTTPS URLs, publicly-signed certificates are supported. Private Certificate Authorities (CAs) are permitted only if the CA's domain is also publicly resolvable.

" }, "CreateService":{ "name":"CreateService", @@ -445,6 +445,24 @@ ], "documentation":"

Adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource. To untag a resource, the caller account must be the same as the resource’s OwnerAccountId. Untagging resources across accounts is not supported.

", "idempotent":true + }, + "UpdateRoute":{ + "name":"UpdateRoute", + "http":{ + "method":"PATCH", + "requestUri":"/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/routes/{RouteIdentifier}", + "responseCode":200 + }, + "input":{"shape":"UpdateRouteRequest"}, + "output":{"shape":"UpdateRouteResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an Amazon Web Services Migration Hub Refactor Spaces route.

" } }, "shapes":{ @@ -900,6 +918,10 @@ "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", "idempotencyToken":true }, + "DefaultRoute":{ + "shape":"DefaultRouteInput", + "documentation":"

Configuration for the default route type.

" + }, "EnvironmentIdentifier":{ "shape":"EnvironmentId", "documentation":"

The ID of the environment in which the route is created.

", @@ -965,7 +987,7 @@ }, "State":{ "shape":"RouteState", - "documentation":"

The current state of the route.

" + "documentation":"

The current state of the route. Activation state only allows ACTIVE or INACTIVE as user inputs. FAILED is a route state that is system generated.

" }, "Tags":{ "shape":"TagMap", @@ -973,7 +995,7 @@ }, "UriPathRoute":{ "shape":"UriPathRouteInput", - "documentation":"

onfiguration for the URI path route type.

" + "documentation":"

Configuration for the URI path route type.

" } } }, @@ -1102,6 +1124,16 @@ } } }, + "DefaultRouteInput":{ + "type":"structure", + "members":{ + "ActivationState":{ + "shape":"RouteActivationState", + "documentation":"

If set to ACTIVE, traffic is forwarded to this route’s service after the route is created.

" + } + }, + "documentation":"

The configuration for the default route type.

" + }, "DeleteApplicationRequest":{ "type":"structure", "required":[ @@ -2316,7 +2348,10 @@ "RetryAfterSeconds":{"type":"integer"}, "RouteActivationState":{ "type":"string", - "enum":["ACTIVE"] + "enum":[ + "ACTIVE", + "INACTIVE" + ] }, "RouteId":{ "type":"string", @@ -2601,13 +2636,13 @@ "members":{ "ResourceArn":{ "shape":"String", - "documentation":"

The Amazon Resource Name (ARN) of the resource

", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

", "location":"uri", "locationName":"ResourceArn" }, "Tags":{ "shape":"TagMap", - "documentation":"

The new or modified tags for the resource.

" + "documentation":"

The new or modified tags for the resource.

" } } }, @@ -2676,6 +2711,68 @@ "members":{ } }, + "UpdateRouteRequest":{ + "type":"structure", + "required":[ + "ActivationState", + "ApplicationIdentifier", + "EnvironmentIdentifier", + "RouteIdentifier" + ], + "members":{ + "ActivationState":{ + "shape":"RouteActivationState", + "documentation":"

If set to ACTIVE, traffic is forwarded to this route’s service after the route is updated.

" + }, + "ApplicationIdentifier":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application within which the route is being updated.

", + "location":"uri", + "locationName":"ApplicationIdentifier" + }, + "EnvironmentIdentifier":{ + "shape":"EnvironmentId", + "documentation":"

The ID of the environment in which the route is being updated.

", + "location":"uri", + "locationName":"EnvironmentIdentifier" + }, + "RouteIdentifier":{ + "shape":"RouteId", + "documentation":"

The unique identifier of the route to update.

", + "location":"uri", + "locationName":"RouteIdentifier" + } + } + }, + "UpdateRouteResponse":{ + "type":"structure", + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

The ID of the application in which the route is being updated.

" + }, + "Arn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the route. The format for this ARN is arn:aws:refactor-spaces:region:account-id:resource-type/resource-id . For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + }, + "LastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when the route was last updated.

" + }, + "RouteId":{ + "shape":"RouteId", + "documentation":"

The unique identifier of the route.

" + }, + "ServiceId":{ + "shape":"ServiceId", + "documentation":"

The ID of service in which the route was created. Traffic that matches this route is forwarded to this service.

" + }, + "State":{ + "shape":"RouteState", + "documentation":"

The current state of the route.

" + } + } + }, "Uri":{ "type":"string", "max":2048, @@ -2697,7 +2794,7 @@ "members":{ "ActivationState":{ "shape":"RouteActivationState", - "documentation":"

Indicates whether traffic is forwarded to this route’s service after the route is created.

" + "documentation":"

If set to ACTIVE, traffic is forwarded to this route’s service after the route is created.

" }, "IncludeChildPaths":{ "shape":"Boolean", diff --git a/botocore/data/migrationhub-config/2019-06-30/endpoint-rule-set-1.json b/botocore/data/migrationhub-config/2019-06-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..48cf4a43 --- /dev/null +++ b/botocore/data/migrationhub-config/2019-06-30/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-config-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-config-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-config.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-config.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/migrationhub-config/2019-06-30/examples-1.json b/botocore/data/migrationhub-config/2019-06-30/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/migrationhub-config/2019-06-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/migrationhuborchestrator/2021-08-28/endpoint-rule-set-1.json b/botocore/data/migrationhuborchestrator/2021-08-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..5362472b --- /dev/null +++ b/botocore/data/migrationhuborchestrator/2021-08-28/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-orchestrator.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-orchestrator.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/migrationhuborchestrator/2021-08-28/paginators-1.json b/botocore/data/migrationhuborchestrator/2021-08-28/paginators-1.json new file mode 100644 index 00000000..4c452221 --- /dev/null +++ b/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/botocore/data/migrationhuborchestrator/2021-08-28/service-2.json b/botocore/data/migrationhuborchestrator/2021-08-28/service-2.json new file mode 100644 index 00000000..89f3165b --- /dev/null +++ b/botocore/data/migrationhuborchestrator/2021-08-28/service-2.json @@ -0,0 +1,2910 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-08-28", + "endpointPrefix":"migrationhub-orchestrator", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Migration Hub Orchestrator", + "serviceId":"MigrationHubOrchestrator", + "signatureVersion":"v4", + "signingName":"migrationhub-orchestrator", + "uid":"migrationhuborchestrator-2021-08-28" + }, + "operations":{ + "CreateWorkflow":{ + "name":"CreateWorkflow", + "http":{ + "method":"POST", + "requestUri":"/migrationworkflow/", + "responseCode":200 + }, + "input":{"shape":"CreateMigrationWorkflowRequest"}, + "output":{"shape":"CreateMigrationWorkflowResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Create a workflow to orchestrate your migrations.

" + }, + "CreateWorkflowStep":{ + "name":"CreateWorkflowStep", + "http":{ + "method":"POST", + "requestUri":"/workflowstep", + "responseCode":200 + }, + "input":{"shape":"CreateWorkflowStepRequest"}, + "output":{"shape":"CreateWorkflowStepResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Create a step in the migration workflow.

" + }, + "CreateWorkflowStepGroup":{ + "name":"CreateWorkflowStepGroup", + "http":{ + "method":"POST", + "requestUri":"/workflowstepgroups", + "responseCode":200 + }, + "input":{"shape":"CreateWorkflowStepGroupRequest"}, + "output":{"shape":"CreateWorkflowStepGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Create a step group in a migration workflow.

" + }, + "DeleteWorkflow":{ + "name":"DeleteWorkflow", + "http":{ + "method":"DELETE", + "requestUri":"/migrationworkflow/{id}", + "responseCode":202 + }, + "input":{"shape":"DeleteMigrationWorkflowRequest"}, + "output":{"shape":"DeleteMigrationWorkflowResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Delete a migration workflow. You must pause a running workflow in Migration Hub Orchestrator console to delete it.

", + "idempotent":true + }, + "DeleteWorkflowStep":{ + "name":"DeleteWorkflowStep", + "http":{ + "method":"DELETE", + "requestUri":"/workflowstep/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteWorkflowStepRequest"}, + "output":{"shape":"DeleteWorkflowStepResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Delete a step in a migration workflow. Pause the workflow to delete a running step.

", + "idempotent":true + }, + "DeleteWorkflowStepGroup":{ + "name":"DeleteWorkflowStepGroup", + "http":{ + "method":"DELETE", + "requestUri":"/workflowstepgroup/{id}", + "responseCode":202 + }, + "input":{"shape":"DeleteWorkflowStepGroupRequest"}, + "output":{"shape":"DeleteWorkflowStepGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Delete a step group in a migration workflow.

", + "idempotent":true + }, + "GetTemplate":{ + "name":"GetTemplate", + "http":{ + "method":"GET", + "requestUri":"/migrationworkflowtemplate/{id}", + "responseCode":200 + }, + "input":{"shape":"GetMigrationWorkflowTemplateRequest"}, + "output":{"shape":"GetMigrationWorkflowTemplateResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Get the template you want to use for creating a migration workflow.

" + }, + "GetTemplateStep":{ + "name":"GetTemplateStep", + "http":{ + "method":"GET", + "requestUri":"/templatestep/{id}", + "responseCode":200 + }, + "input":{"shape":"GetTemplateStepRequest"}, + "output":{"shape":"GetTemplateStepResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Get a specific step in a template.

" + }, + "GetTemplateStepGroup":{ + "name":"GetTemplateStepGroup", + "http":{ + "method":"GET", + "requestUri":"/templates/{templateId}/stepgroups/{id}", + "responseCode":200 + }, + "input":{"shape":"GetTemplateStepGroupRequest"}, + "output":{"shape":"GetTemplateStepGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Get a step group in a template.

" + }, + "GetWorkflow":{ + "name":"GetWorkflow", + "http":{ + "method":"GET", + "requestUri":"/migrationworkflow/{id}", + "responseCode":200 + }, + "input":{"shape":"GetMigrationWorkflowRequest"}, + "output":{"shape":"GetMigrationWorkflowResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Get migration workflow.

" + }, + "GetWorkflowStep":{ + "name":"GetWorkflowStep", + "http":{ + "method":"GET", + "requestUri":"/workflowstep/{id}", + "responseCode":200 + }, + "input":{"shape":"GetWorkflowStepRequest"}, + "output":{"shape":"GetWorkflowStepResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Get a step in the migration workflow.

" + }, + "GetWorkflowStepGroup":{ + "name":"GetWorkflowStepGroup", + "http":{ + "method":"GET", + "requestUri":"/workflowstepgroup/{id}", + "responseCode":200 + }, + "input":{"shape":"GetWorkflowStepGroupRequest"}, + "output":{"shape":"GetWorkflowStepGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Get the step group of a migration workflow.

" + }, + "ListPlugins":{ + "name":"ListPlugins", + "http":{ + "method":"GET", + "requestUri":"/plugins", + "responseCode":200 + }, + "input":{"shape":"ListPluginsRequest"}, + "output":{"shape":"ListPluginsResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

List AWS Migration Hub Orchestrator plugins.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

List the tags added to a resource.

" + }, + "ListTemplateStepGroups":{ + "name":"ListTemplateStepGroups", + "http":{ + "method":"GET", + "requestUri":"/templatestepgroups/{templateId}", + "responseCode":200 + }, + "input":{"shape":"ListTemplateStepGroupsRequest"}, + "output":{"shape":"ListTemplateStepGroupsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

List the step groups in a template.

" + }, + "ListTemplateSteps":{ + "name":"ListTemplateSteps", + "http":{ + "method":"GET", + "requestUri":"/templatesteps", + "responseCode":200 + }, + "input":{"shape":"ListTemplateStepsRequest"}, + "output":{"shape":"ListTemplateStepsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

List the steps in a template.

" + }, + "ListTemplates":{ + "name":"ListTemplates", + "http":{ + "method":"GET", + "requestUri":"/migrationworkflowtemplates", + "responseCode":200 + }, + "input":{"shape":"ListMigrationWorkflowTemplatesRequest"}, + "output":{"shape":"ListMigrationWorkflowTemplatesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

List the templates available in Migration Hub Orchestrator to create a migration workflow.

" + }, + "ListWorkflowStepGroups":{ + "name":"ListWorkflowStepGroups", + "http":{ + "method":"GET", + "requestUri":"/workflowstepgroups", + "responseCode":200 + }, + "input":{"shape":"ListWorkflowStepGroupsRequest"}, + "output":{"shape":"ListWorkflowStepGroupsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

List the step groups in a migration workflow.

" + }, + "ListWorkflowSteps":{ + "name":"ListWorkflowSteps", + "http":{ + "method":"GET", + "requestUri":"/workflow/{workflowId}/workflowstepgroups/{stepGroupId}/workflowsteps", + "responseCode":200 + }, + "input":{"shape":"ListWorkflowStepsRequest"}, + "output":{"shape":"ListWorkflowStepsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

List the steps in a workflow.

" + }, + "ListWorkflows":{ + "name":"ListWorkflows", + "http":{ + "method":"GET", + "requestUri":"/migrationworkflows", + "responseCode":200 + }, + "input":{"shape":"ListMigrationWorkflowsRequest"}, + "output":{"shape":"ListMigrationWorkflowsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

List the migration workflows.

" + }, + "RetryWorkflowStep":{ + "name":"RetryWorkflowStep", + "http":{ + "method":"POST", + "requestUri":"/retryworkflowstep/{id}", + "responseCode":200 + }, + "input":{"shape":"RetryWorkflowStepRequest"}, + "output":{"shape":"RetryWorkflowStepResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retry a failed step in a migration workflow.

" + }, + "StartWorkflow":{ + "name":"StartWorkflow", + "http":{ + "method":"POST", + "requestUri":"/migrationworkflow/{id}/start", + "responseCode":200 + }, + "input":{"shape":"StartMigrationWorkflowRequest"}, + "output":{"shape":"StartMigrationWorkflowResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Start a migration workflow.

" + }, + "StopWorkflow":{ + "name":"StopWorkflow", + "http":{ + "method":"POST", + "requestUri":"/migrationworkflow/{id}/stop", + "responseCode":200 + }, + "input":{"shape":"StopMigrationWorkflowRequest"}, + "output":{"shape":"StopMigrationWorkflowResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Stop an ongoing migration workflow.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Tag a resource by specifying its Amazon Resource Name (ARN).

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes the tags for a resource.

", + "idempotent":true + }, + "UpdateWorkflow":{ + "name":"UpdateWorkflow", + "http":{ + "method":"POST", + "requestUri":"/migrationworkflow/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateMigrationWorkflowRequest"}, + "output":{"shape":"UpdateMigrationWorkflowResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Update a migration workflow.

" + }, + "UpdateWorkflowStep":{ + "name":"UpdateWorkflowStep", + "http":{ + "method":"POST", + "requestUri":"/workflowstep/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateWorkflowStepRequest"}, + "output":{"shape":"UpdateWorkflowStepResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Update a step in a migration workflow.

" + }, + "UpdateWorkflowStepGroup":{ + "name":"UpdateWorkflowStepGroup", + "http":{ + "method":"POST", + "requestUri":"/workflowstepgroup/{id}", + "responseCode":202 + }, + "input":{"shape":"UpdateWorkflowStepGroupRequest"}, + "output":{"shape":"UpdateWorkflowStepGroupResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Update the step group in a migration workflow.

", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You do not have sufficient access to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "ApplicationConfigurationName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CreateMigrationWorkflowRequest":{ + "type":"structure", + "required":[ + "name", + "templateId", + "applicationConfigurationId", + "inputParameters" + ], + "members":{ + "name":{ + "shape":"CreateMigrationWorkflowRequestNameString", + "documentation":"

The name of the migration workflow.

" + }, + "description":{ + "shape":"CreateMigrationWorkflowRequestDescriptionString", + "documentation":"

The description of the migration workflow.

" + }, + "templateId":{ + "shape":"CreateMigrationWorkflowRequestTemplateIdString", + "documentation":"

The ID of the template.

" + }, + "applicationConfigurationId":{ + "shape":"CreateMigrationWorkflowRequestApplicationConfigurationIdString", + "documentation":"

The configuration ID of the application configured in Application Discovery Service.

" + }, + "inputParameters":{ + "shape":"StepInputParameters", + "documentation":"

The input parameters required to create a migration workflow.

" + }, + "stepTargets":{ + "shape":"StringList", + "documentation":"

The servers on which a step will be run.

" + }, + "tags":{ + "shape":"StringMap", + "documentation":"

The tags to add on a migration workflow.

" + } + } + }, + "CreateMigrationWorkflowRequestApplicationConfigurationIdString":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "CreateMigrationWorkflowRequestDescriptionString":{ + "type":"string", + "max":500, + "min":0, + "pattern":"[-a-zA-Z0-9_.+, ]*" + }, + "CreateMigrationWorkflowRequestNameString":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "CreateMigrationWorkflowRequestTemplateIdString":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "CreateMigrationWorkflowResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

" + }, + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the migration workflow.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the migration workflow.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the migration workflow.

" + }, + "templateId":{ + "shape":"String", + "documentation":"

The ID of the template.

" + }, + "adsApplicationConfigurationId":{ + "shape":"String", + "documentation":"

The configuration ID of the application configured in Application Discovery Service.

" + }, + "workflowInputs":{ + "shape":"StepInputParameters", + "documentation":"

The inputs for creating a migration workflow.

" + }, + "stepTargets":{ + "shape":"StringList", + "documentation":"

The servers on which a step will be run.

" + }, + "status":{ + "shape":"MigrationWorkflowStatusEnum", + "documentation":"

The status of the migration workflow.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was created.

" + }, + "tags":{ + "shape":"StringMap", + "documentation":"

The tags to add on a migration workflow.

" + } + } + }, + "CreateWorkflowStepGroupRequest":{ + "type":"structure", + "required":[ + "workflowId", + "name" + ], + "members":{ + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow that will contain the step group.

" + }, + "name":{ + "shape":"StepGroupName", + "documentation":"

The name of the step group.

" + }, + "description":{ + "shape":"StepGroupDescription", + "documentation":"

The description of the step group.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step group.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step group.

" + } + } + }, + "CreateWorkflowStepGroupResponse":{ + "type":"structure", + "members":{ + "workflowId":{ + "shape":"String", + "documentation":"

The ID of the migration workflow that contains the step group.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step group.

" + }, + "id":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the step group.

" + }, + "tools":{ + "shape":"ToolsList", + "documentation":"

List of AWS services utilized in a migration workflow.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step group.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step group.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the step group is created.

" + } + } + }, + "CreateWorkflowStepRequest":{ + "type":"structure", + "required":[ + "name", + "stepGroupId", + "workflowId", + "stepActionType" + ], + "members":{ + "name":{ + "shape":"MigrationWorkflowName", + "documentation":"

The name of the step.

" + }, + "stepGroupId":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

" + }, + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

" + }, + "stepActionType":{ + "shape":"StepActionType", + "documentation":"

The action type of the step. You must run and update the status of a manual step for the workflow to continue after the completion of the step.

" + }, + "description":{ + "shape":"MigrationWorkflowDescription", + "documentation":"

The description of the step.

" + }, + "workflowStepAutomationConfiguration":{ + "shape":"WorkflowStepAutomationConfiguration", + "documentation":"

The custom script to run tests on source or target environments.

" + }, + "stepTarget":{ + "shape":"StringList", + "documentation":"

The servers on which a step will be run.

" + }, + "outputs":{ + "shape":"WorkflowStepOutputList", + "documentation":"

The key value pairs added for the expected output.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step.

" + } + } + }, + "CreateWorkflowStepResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"String", + "documentation":"

The ID of the step.

" + }, + "stepGroupId":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "workflowId":{ + "shape":"String", + "documentation":"

The ID of the migration workflow.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step.

" + } + } + }, + "DataType":{ + "type":"string", + "enum":[ + "STRING", + "INTEGER", + "STRINGLIST", + "STRINGMAP" + ] + }, + "DeleteMigrationWorkflowRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow you want to delete.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteMigrationWorkflowResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

" + }, + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the migration workflow.

" + }, + "status":{ + "shape":"MigrationWorkflowStatusEnum", + "documentation":"

The status of the migration workflow.

" + } + } + }, + "DeleteWorkflowStepGroupRequest":{ + "type":"structure", + "required":[ + "workflowId", + "id" + ], + "members":{ + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"querystring", + "locationName":"workflowId" + }, + "id":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group you want to delete.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteWorkflowStepGroupResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteWorkflowStepRequest":{ + "type":"structure", + "required":[ + "id", + "stepGroupId", + "workflowId" + ], + "members":{ + "id":{ + "shape":"StepId", + "documentation":"

The ID of the step you want to delete.

", + "location":"uri", + "locationName":"id" + }, + "stepGroupId":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group that contains the step you want to delete.

", + "location":"querystring", + "locationName":"stepGroupId" + }, + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"querystring", + "locationName":"workflowId" + } + } + }, + "DeleteWorkflowStepResponse":{ + "type":"structure", + "members":{ + } + }, + "GetMigrationWorkflowRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetMigrationWorkflowResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

" + }, + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the migration workflow.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the migration workflow.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the migration workflow.

" + }, + "templateId":{ + "shape":"String", + "documentation":"

The ID of the template.

" + }, + "adsApplicationConfigurationId":{ + "shape":"String", + "documentation":"

The configuration ID of the application configured in Application Discovery Service.

" + }, + "adsApplicationName":{ + "shape":"String", + "documentation":"

The name of the application configured in Application Discovery Service.

" + }, + "status":{ + "shape":"MigrationWorkflowStatusEnum", + "documentation":"

The status of the migration workflow.

" + }, + "statusMessage":{ + "shape":"String", + "documentation":"

The status message of the migration workflow.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was created.

" + }, + "lastStartTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was last started.

" + }, + "lastStopTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was last stopped.

" + }, + "lastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was last modified.

" + }, + "endTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow ended.

" + }, + "tools":{ + "shape":"ToolsList", + "documentation":"

List of AWS services utilized in a migration workflow.

" + }, + "totalSteps":{ + "shape":"Integer", + "documentation":"

The total number of steps in the migration workflow.

" + }, + "completedSteps":{ + "shape":"Integer", + "documentation":"

Get a list of completed steps in the migration workflow.

" + }, + "workflowInputs":{ + "shape":"StepInputParameters", + "documentation":"

The inputs required for creating the migration workflow.

" + }, + "tags":{ + "shape":"StringMap", + "documentation":"

The tags added to the migration workflow.

" + }, + "workflowBucket":{ + "shape":"String", + "documentation":"

The Amazon S3 bucket where the migration logs are stored.

" + } + } + }, + "GetMigrationWorkflowTemplateRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"TemplateId", + "documentation":"

The ID of the template.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetMigrationWorkflowTemplateResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"String", + "documentation":"

The ID of the template.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the template.

" + }, + "description":{ + "shape":"String", + "documentation":"

The time at which the template was last created.

" + }, + "inputs":{ + "shape":"TemplateInputList", + "documentation":"

The inputs provided for the creation of the migration workflow.

" + }, + "tools":{ + "shape":"ToolsList", + "documentation":"

List of AWS services utilized in a migration workflow.

" + }, + "status":{ + "shape":"TemplateStatus", + "documentation":"

The status of the template.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the template was last created.

" + } + } + }, + "GetTemplateStepGroupRequest":{ + "type":"structure", + "required":[ + "templateId", + "id" + ], + "members":{ + "templateId":{ + "shape":"TemplateId", + "documentation":"

The ID of the template.

", + "location":"uri", + "locationName":"templateId" + }, + "id":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetTemplateStepGroupResponse":{ + "type":"structure", + "members":{ + "templateId":{ + "shape":"String", + "documentation":"

The ID of the template.

" + }, + "id":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step group.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the step group.

" + }, + "status":{ + "shape":"StepGroupStatus", + "documentation":"

The status of the step group.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the step group was created.

" + }, + "lastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the step group was last modified.

" + }, + "tools":{ + "shape":"ToolsList", + "documentation":"

List of AWS services utilized in a migration workflow.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step group.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step group.

" + } + } + }, + "GetTemplateStepRequest":{ + "type":"structure", + "required":[ + "id", + "templateId", + "stepGroupId" + ], + "members":{ + "id":{ + "shape":"StepId", + "documentation":"

The ID of the step.

", + "location":"uri", + "locationName":"id" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

The ID of the template.

", + "location":"querystring", + "locationName":"templateId" + }, + "stepGroupId":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

", + "location":"querystring", + "locationName":"stepGroupId" + } + } + }, + "GetTemplateStepResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"StepId", + "documentation":"

The ID of the step.

" + }, + "stepGroupId":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

The ID of the template.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the step.

" + }, + "stepActionType":{ + "shape":"StepActionType", + "documentation":"

The action type of the step. You must run and update the status of a manual step for the workflow to continue after the completion of the step.

" + }, + "creationTime":{ + "shape":"String", + "documentation":"

The time at which the step was created.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step.

" + }, + "outputs":{ + "shape":"StepOutputList", + "documentation":"

The outputs of the step.

" + }, + "stepAutomationConfiguration":{ + "shape":"StepAutomationConfiguration", + "documentation":"

The custom script to run tests on source or target environments.

" + } + } + }, + "GetWorkflowStepGroupRequest":{ + "type":"structure", + "required":[ + "id", + "workflowId" + ], + "members":{ + "id":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

", + "location":"uri", + "locationName":"id" + }, + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"querystring", + "locationName":"workflowId" + } + } + }, + "GetWorkflowStepGroupResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

" + }, + "workflowId":{ + "shape":"String", + "documentation":"

The ID of the migration workflow.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step group.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the step group.

" + }, + "status":{ + "shape":"StepGroupStatus", + "documentation":"

The status of the step group.

" + }, + "owner":{ + "shape":"Owner", + "documentation":"

The owner of the step group.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the step group was created.

" + }, + "lastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the step group was last modified.

" + }, + "endTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the step group ended.

" + }, + "tools":{ + "shape":"ToolsList", + "documentation":"

List of AWS services utilized in a migration workflow.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step group.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step group.

" + } + } + }, + "GetWorkflowStepRequest":{ + "type":"structure", + "required":[ + "workflowId", + "stepGroupId", + "id" + ], + "members":{ + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"querystring", + "locationName":"workflowId" + }, + "stepGroupId":{ + "shape":"StepGroupId", + "documentation":"

desThe ID of the step group.

", + "location":"querystring", + "locationName":"stepGroupId" + }, + "id":{ + "shape":"StepId", + "documentation":"

The ID of the step.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetWorkflowStepResponse":{ + "type":"structure", + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the step.

" + }, + "stepGroupId":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "workflowId":{ + "shape":"String", + "documentation":"

The ID of the migration workflow.

" + }, + "stepId":{ + "shape":"String", + "documentation":"

The ID of the step.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the step.

" + }, + "stepActionType":{ + "shape":"StepActionType", + "documentation":"

The action type of the step. You must run and update the status of a manual step for the workflow to continue after the completion of the step.

" + }, + "owner":{ + "shape":"Owner", + "documentation":"

The owner of the step.

" + }, + "workflowStepAutomationConfiguration":{ + "shape":"WorkflowStepAutomationConfiguration", + "documentation":"

The custom script to run tests on source or target environments.

" + }, + "stepTarget":{ + "shape":"StringList", + "documentation":"

The servers on which a step will be run.

" + }, + "outputs":{ + "shape":"GetWorkflowStepResponseOutputsList", + "documentation":"

The outputs of the step.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step.

" + }, + "status":{ + "shape":"StepStatus", + "documentation":"

The status of the step.

" + }, + "statusMessage":{ + "shape":"String", + "documentation":"

The status message of the migration workflow.

" + }, + "scriptOutputLocation":{ + "shape":"String", + "documentation":"

The output location of the script.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the step was created.

" + }, + "lastStartTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the workflow was last started.

" + }, + "endTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the step ended.

" + }, + "noOfSrvCompleted":{ + "shape":"Integer", + "documentation":"

The number of servers that have been migrated.

" + }, + "noOfSrvFailed":{ + "shape":"Integer", + "documentation":"

The number of servers that have failed to migrate.

" + }, + "totalNoOfSrv":{ + "shape":"Integer", + "documentation":"

The total number of servers that have been migrated.

" + } + } + }, + "GetWorkflowStepResponseOutputsList":{ + "type":"list", + "member":{"shape":"WorkflowStepOutput"}, + "max":5, + "min":0 + }, + "IPAddress":{ + "type":"string", + "max":15, + "min":0, + "pattern":"(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])" + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

An internal error has occurred.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListMigrationWorkflowTemplatesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results that can be returned.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

", + "location":"querystring", + "locationName":"nextToken" + }, + "name":{ + "shape":"TemplateName", + "documentation":"

The name of the template.

", + "location":"querystring", + "locationName":"name" + } + } + }, + "ListMigrationWorkflowTemplatesResponse":{ + "type":"structure", + "required":["templateSummary"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

" + }, + "templateSummary":{ + "shape":"TemplateSummaryList", + "documentation":"

The summary of the template.

" + } + } + }, + "ListMigrationWorkflowsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results that can be returned.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

", + "location":"querystring", + "locationName":"nextToken" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

The ID of the template.

", + "location":"querystring", + "locationName":"templateId" + }, + "adsApplicationConfigurationName":{ + "shape":"ApplicationConfigurationName", + "documentation":"

The name of the application configured in Application Discovery Service.

", + "location":"querystring", + "locationName":"adsApplicationConfigurationName" + }, + "status":{ + "shape":"MigrationWorkflowStatusEnum", + "documentation":"

The status of the migration workflow.

", + "location":"querystring", + "locationName":"status" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the migration workflow.

", + "location":"querystring", + "locationName":"name" + } + } + }, + "ListMigrationWorkflowsResponse":{ + "type":"structure", + "required":["migrationWorkflowSummary"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

" + }, + "migrationWorkflowSummary":{ + "shape":"MigrationWorkflowSummaryList", + "documentation":"

The summary of the migration workflow.

" + } + } + }, + "ListPluginsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of plugins that can be returned.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListPluginsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

" + }, + "plugins":{ + "shape":"PluginSummaries", + "documentation":"

Migration Hub Orchestrator plugins.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

The tags added to a resource.

" + } + } + }, + "ListTemplateStepGroupsRequest":{ + "type":"structure", + "required":["templateId"], + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results that can be returned.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

", + "location":"querystring", + "locationName":"nextToken" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

The ID of the template.

", + "location":"uri", + "locationName":"templateId" + } + } + }, + "ListTemplateStepGroupsResponse":{ + "type":"structure", + "required":["templateStepGroupSummary"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

" + }, + "templateStepGroupSummary":{ + "shape":"TemplateStepGroupSummaryList", + "documentation":"

The summary of the step group in the template.

" + } + } + }, + "ListTemplateStepsRequest":{ + "type":"structure", + "required":[ + "templateId", + "stepGroupId" + ], + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results that can be returned.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

", + "location":"querystring", + "locationName":"nextToken" + }, + "templateId":{ + "shape":"TemplateId", + "documentation":"

The ID of the template.

", + "location":"querystring", + "locationName":"templateId" + }, + "stepGroupId":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

", + "location":"querystring", + "locationName":"stepGroupId" + } + } + }, + "ListTemplateStepsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

" + }, + "templateStepSummaryList":{ + "shape":"TemplateStepSummaryList", + "documentation":"

The list of summaries of steps in a template.

" + } + } + }, + "ListWorkflowStepGroupsRequest":{ + "type":"structure", + "required":["workflowId"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results that can be returned.

", + "location":"querystring", + "locationName":"maxResults" + }, + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"querystring", + "locationName":"workflowId" + } + } + }, + "ListWorkflowStepGroupsResponse":{ + "type":"structure", + "required":["workflowStepGroupsSummary"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

" + }, + "workflowStepGroupsSummary":{ + "shape":"WorkflowStepGroupsSummaryList", + "documentation":"

The summary of step groups in a migration workflow.

" + } + } + }, + "ListWorkflowStepsRequest":{ + "type":"structure", + "required":[ + "workflowId", + "stepGroupId" + ], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results that can be returned.

", + "location":"querystring", + "locationName":"maxResults" + }, + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"uri", + "locationName":"workflowId" + }, + "stepGroupId":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

", + "location":"uri", + "locationName":"stepGroupId" + } + } + }, + "ListWorkflowStepsResponse":{ + "type":"structure", + "required":["workflowStepsSummary"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

The pagination token.

" + }, + "workflowStepsSummary":{ + "shape":"WorkflowStepsSummaryList", + "documentation":"

The summary of steps in a migration workflow.

" + } + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":0 + }, + "MigrationWorkflowDescription":{ + "type":"string", + "max":500, + "min":0, + "pattern":"[-a-zA-Z0-9_.+, ]*" + }, + "MigrationWorkflowId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9-]+" + }, + "MigrationWorkflowName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "MigrationWorkflowStatusEnum":{ + "type":"string", + "enum":[ + "CREATING", + "NOT_STARTED", + "CREATION_FAILED", + "STARTING", + "IN_PROGRESS", + "WORKFLOW_FAILED", + "PAUSED", + "PAUSING", + "PAUSING_FAILED", + "USER_ATTENTION_REQUIRED", + "DELETING", + "DELETION_FAILED", + "DELETED", + "COMPLETED" + ] + }, + "MigrationWorkflowSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the migration workflow.

" + }, + "templateId":{ + "shape":"String", + "documentation":"

The ID of the template.

" + }, + "adsApplicationConfigurationName":{ + "shape":"String", + "documentation":"

The name of the application configured in Application Discovery Service.

" + }, + "status":{ + "shape":"MigrationWorkflowStatusEnum", + "documentation":"

The status of the migration workflow.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was created.

" + }, + "endTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow ended.

" + }, + "statusMessage":{ + "shape":"String", + "documentation":"

The status message of the migration workflow.

" + }, + "completedSteps":{ + "shape":"Integer", + "documentation":"

The steps completed in the migration workflow.

" + }, + "totalSteps":{ + "shape":"Integer", + "documentation":"

All the steps in a migration workflow.

" + } + }, + "documentation":"

The summary of a migration workflow.

" + }, + "MigrationWorkflowSummaryList":{ + "type":"list", + "member":{"shape":"MigrationWorkflowSummary"} + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":0, + "pattern":".*\\S.*" + }, + "Owner":{ + "type":"string", + "enum":[ + "AWS_MANAGED", + "CUSTOM" + ] + }, + "PlatformCommand":{ + "type":"structure", + "members":{ + "linux":{ + "shape":"String", + "documentation":"

Command for Linux.

" + }, + "windows":{ + "shape":"String", + "documentation":"

Command for Windows.

" + } + }, + "documentation":"

Command to be run on a particular operating system.

" + }, + "PlatformScriptKey":{ + "type":"structure", + "members":{ + "linux":{ + "shape":"S3Key", + "documentation":"

The script location for Linux.

" + }, + "windows":{ + "shape":"S3Key", + "documentation":"

The script location for Windows.

" + } + }, + "documentation":"

The script location for a particular operating system.

" + }, + "PluginHealth":{ + "type":"string", + "enum":[ + "HEALTHY", + "UNHEALTHY" + ] + }, + "PluginId":{ + "type":"string", + "max":60, + "min":1, + "pattern":".*\\S.*" + }, + "PluginSummaries":{ + "type":"list", + "member":{"shape":"PluginSummary"} + }, + "PluginSummary":{ + "type":"structure", + "members":{ + "pluginId":{ + "shape":"PluginId", + "documentation":"

The ID of the plugin.

" + }, + "hostname":{ + "shape":"String", + "documentation":"

The name of the host.

" + }, + "status":{ + "shape":"PluginHealth", + "documentation":"

The status of the plugin.

" + }, + "ipAddress":{ + "shape":"IPAddress", + "documentation":"

The IP address at which the plugin is located.

" + }, + "version":{ + "shape":"PluginVersion", + "documentation":"

The version of the plugin.

" + }, + "registeredTime":{ + "shape":"String", + "documentation":"

The time at which the plugin was registered.

" + } + }, + "documentation":"

The summary of the Migration Hub Orchestrator plugin.

" + }, + "PluginVersion":{ + "type":"string", + "max":1024, + "min":0, + "pattern":".*" + }, + "ResourceArn":{ + "type":"string", + "pattern":"arn:aws:migrationhub-orchestrator:[a-z0-9-]+:[0-9]+:workflow/[.]*" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The resource is not available.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RetryWorkflowStepRequest":{ + "type":"structure", + "required":[ + "workflowId", + "stepGroupId", + "id" + ], + "members":{ + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"querystring", + "locationName":"workflowId" + }, + "stepGroupId":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

", + "location":"querystring", + "locationName":"stepGroupId" + }, + "id":{ + "shape":"StepId", + "documentation":"

The ID of the step.

", + "location":"uri", + "locationName":"id" + } + } + }, + "RetryWorkflowStepResponse":{ + "type":"structure", + "members":{ + "stepGroupId":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "workflowId":{ + "shape":"String", + "documentation":"

The ID of the migration workflow.

" + }, + "id":{ + "shape":"String", + "documentation":"

The ID of the step.

" + }, + "status":{ + "shape":"StepStatus", + "documentation":"

The status of the step.

" + } + } + }, + "RunEnvironment":{ + "type":"string", + "enum":[ + "AWS", + "ONPREMISE" + ] + }, + "S3Bucket":{ + "type":"string", + "max":63, + "min":0, + "pattern":"[0-9a-z]+[0-9a-z\\.\\-]*[0-9a-z]+" + }, + "S3Key":{ + "type":"string", + "max":1024, + "min":0 + }, + "StartMigrationWorkflowRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"uri", + "locationName":"id" + } + } + }, + "StartMigrationWorkflowResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

" + }, + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the migration workflow.

" + }, + "status":{ + "shape":"MigrationWorkflowStatusEnum", + "documentation":"

The status of the migration workflow.

" + }, + "statusMessage":{ + "shape":"String", + "documentation":"

The status message of the migration workflow.

" + }, + "lastStartTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was last started.

" + } + } + }, + "StepActionType":{ + "type":"string", + "enum":[ + "MANUAL", + "AUTOMATED" + ] + }, + "StepAutomationConfiguration":{ + "type":"structure", + "members":{ + "scriptLocationS3Bucket":{ + "shape":"String", + "documentation":"

The Amazon S3 bucket where the script is located.

" + }, + "scriptLocationS3Key":{ + "shape":"PlatformScriptKey", + "documentation":"

The Amazon S3 key for the script location.

" + }, + "command":{ + "shape":"PlatformCommand", + "documentation":"

The command to run the script.

" + }, + "runEnvironment":{ + "shape":"RunEnvironment", + "documentation":"

The source or target environment.

" + }, + "targetType":{ + "shape":"TargetType", + "documentation":"

The servers on which to run the script.

" + } + }, + "documentation":"

The custom script to run tests on source or target environments.

" + }, + "StepDescription":{ + "type":"string", + "max":500, + "min":0, + "pattern":"[-a-zA-Z0-9_.+, ]*" + }, + "StepGroupDescription":{ + "type":"string", + "max":500, + "min":0, + "pattern":"[-a-zA-Z0-9_.+, ]*" + }, + "StepGroupId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9-]+" + }, + "StepGroupName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "StepGroupStatus":{ + "type":"string", + "enum":[ + "AWAITING_DEPENDENCIES", + "READY", + "IN_PROGRESS", + "COMPLETED", + "FAILED", + "PAUSED", + "PAUSING", + "USER_ATTENTION_REQUIRED" + ] + }, + "StepId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9-]+" + }, + "StepInput":{ + "type":"structure", + "members":{ + "integerValue":{ + "shape":"Integer", + "documentation":"

The value of the integer.

", + "box":true + }, + "stringValue":{ + "shape":"StringValue", + "documentation":"

String value.

" + }, + "listOfStringsValue":{ + "shape":"StringList", + "documentation":"

List of string values.

" + }, + "mapOfStringValue":{ + "shape":"StringMap", + "documentation":"

Map of string values.

" + } + }, + "documentation":"

A map of key value pairs that is generated when you create a migration workflow. The key value pairs will differ based on your selection of the template.

", + "union":true + }, + "StepInputParameters":{ + "type":"map", + "key":{"shape":"StepInputParametersKey"}, + "value":{"shape":"StepInput"}, + "sensitive":true + }, + "StepInputParametersKey":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9-_ ()]+" + }, + "StepName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "StepOutput":{ + "type":"structure", + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the step.

" + }, + "dataType":{ + "shape":"DataType", + "documentation":"

The data type of the step output.

" + }, + "required":{ + "shape":"Boolean", + "documentation":"

Determine if an output is required from a step.

" + } + }, + "documentation":"

The output of the step.

" + }, + "StepOutputList":{ + "type":"list", + "member":{"shape":"StepOutput"} + }, + "StepStatus":{ + "type":"string", + "enum":[ + "AWAITING_DEPENDENCIES", + "READY", + "IN_PROGRESS", + "COMPLETED", + "FAILED", + "PAUSED", + "USER_ATTENTION_REQUIRED" + ] + }, + "StopMigrationWorkflowRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"uri", + "locationName":"id" + } + } + }, + "StopMigrationWorkflowResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

" + }, + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the migration workflow.

" + }, + "status":{ + "shape":"MigrationWorkflowStatusEnum", + "documentation":"

The status of the migration workflow.

" + }, + "statusMessage":{ + "shape":"String", + "documentation":"

The status message of the migration workflow.

" + }, + "lastStopTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was stopped.

" + } + } + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"StringListMember"} + }, + "StringListMember":{ + "type":"string", + "max":100, + "min":0 + }, + "StringMap":{ + "type":"map", + "key":{"shape":"StringMapKey"}, + "value":{"shape":"StringMapValue"} + }, + "StringMapKey":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[a-zA-Z0-9-_ ()]+" + }, + "StringMapValue":{ + "type":"string", + "max":100, + "min":0 + }, + "StringValue":{ + "type":"string", + "max":100, + "min":0 + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"(?!aws:)[a-zA-Z+-=._:/]+" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource to which you want to add tags.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

A collection of labels, in the form of key:value pairs, that apply to this resource.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "TargetType":{ + "type":"string", + "enum":[ + "SINGLE", + "ALL", + "NONE" + ] + }, + "TemplateId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "TemplateInput":{ + "type":"structure", + "members":{ + "inputName":{ + "shape":"TemplateInputName", + "documentation":"

The name of the template.

" + }, + "dataType":{ + "shape":"DataType", + "documentation":"

The data type of the template input.

" + }, + "required":{ + "shape":"Boolean", + "documentation":"

Determine if an input is required from the template.

" + } + }, + "documentation":"

The input parameters of a template.

" + }, + "TemplateInputList":{ + "type":"list", + "member":{"shape":"TemplateInput"} + }, + "TemplateInputName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "TemplateName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "TemplateStatus":{ + "type":"string", + "enum":["CREATED"] + }, + "TemplateStepGroupSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step group.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step group.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step group.

" + } + }, + "documentation":"

The summary of the step group in the template.

" + }, + "TemplateStepGroupSummaryList":{ + "type":"list", + "member":{"shape":"TemplateStepGroupSummary"} + }, + "TemplateStepSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"String", + "documentation":"

The ID of the step.

" + }, + "stepGroupId":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "templateId":{ + "shape":"String", + "documentation":"

The ID of the template.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step.

" + }, + "stepActionType":{ + "shape":"StepActionType", + "documentation":"

The action type of the step. You must run and update the status of a manual step for the workflow to continue after the completion of the step.

" + }, + "targetType":{ + "shape":"TargetType", + "documentation":"

The servers on which to run the script.

" + }, + "owner":{ + "shape":"Owner", + "documentation":"

The owner of the step.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step.

" + } + }, + "documentation":"

The summary of the step.

" + }, + "TemplateStepSummaryList":{ + "type":"list", + "member":{"shape":"TemplateStepSummary"} + }, + "TemplateSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"String", + "documentation":"

The ID of the template.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the template.

" + }, + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the template.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the template.

" + } + }, + "documentation":"

The summary of the template.

" + }, + "TemplateSummaryList":{ + "type":"list", + "member":{"shape":"TemplateSummary"} + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "Tool":{ + "type":"structure", + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of an AWS service.

" + }, + "url":{ + "shape":"String", + "documentation":"

The URL of an AWS service.

" + } + }, + "documentation":"

List of AWS services utilized in a migration workflow.

" + }, + "ToolsList":{ + "type":"list", + "member":{"shape":"Tool"} + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource from which you want to remove tags.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

One or more tag keys. Specify only the tag keys, not the tag values.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateMigrationWorkflowRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"uri", + "locationName":"id" + }, + "name":{ + "shape":"UpdateMigrationWorkflowRequestNameString", + "documentation":"

The name of the migration workflow.

" + }, + "description":{ + "shape":"UpdateMigrationWorkflowRequestDescriptionString", + "documentation":"

The description of the migration workflow.

" + }, + "inputParameters":{ + "shape":"StepInputParameters", + "documentation":"

The input parameters required to update a migration workflow.

" + }, + "stepTargets":{ + "shape":"StringList", + "documentation":"

The servers on which a step will be run.

" + } + } + }, + "UpdateMigrationWorkflowRequestDescriptionString":{ + "type":"string", + "max":500, + "min":0, + "pattern":"[-a-zA-Z0-9_.+, ]*" + }, + "UpdateMigrationWorkflowRequestNameString":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "UpdateMigrationWorkflowResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

" + }, + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the migration workflow.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the migration workflow.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the migration workflow.

" + }, + "templateId":{ + "shape":"String", + "documentation":"

The ID of the template.

" + }, + "adsApplicationConfigurationId":{ + "shape":"String", + "documentation":"

The ID of the application configured in Application Discovery Service.

" + }, + "workflowInputs":{ + "shape":"StepInputParameters", + "documentation":"

The inputs required to update a migration workflow.

" + }, + "stepTargets":{ + "shape":"StringList", + "documentation":"

The servers on which a step will be run.

" + }, + "status":{ + "shape":"MigrationWorkflowStatusEnum", + "documentation":"

The status of the migration workflow.

" + }, + "creationTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was created.

" + }, + "lastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the migration workflow was last modified.

" + }, + "tags":{ + "shape":"StringMap", + "documentation":"

The tags added to the migration workflow.

" + } + } + }, + "UpdateWorkflowStepGroupRequest":{ + "type":"structure", + "required":[ + "workflowId", + "id" + ], + "members":{ + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

", + "location":"querystring", + "locationName":"workflowId" + }, + "id":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

", + "location":"uri", + "locationName":"id" + }, + "name":{ + "shape":"StepGroupName", + "documentation":"

The name of the step group.

" + }, + "description":{ + "shape":"StepGroupDescription", + "documentation":"

The description of the step group.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step group.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step group.

" + } + } + }, + "UpdateWorkflowStepGroupResponse":{ + "type":"structure", + "members":{ + "workflowId":{ + "shape":"String", + "documentation":"

The ID of the migration workflow.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step group.

" + }, + "id":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the step group.

" + }, + "tools":{ + "shape":"ToolsList", + "documentation":"

List of AWS services utilized in a migration workflow.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step group.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step group.

" + }, + "lastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The time at which the step group was last modified.

" + } + } + }, + "UpdateWorkflowStepRequest":{ + "type":"structure", + "required":[ + "id", + "stepGroupId", + "workflowId" + ], + "members":{ + "id":{ + "shape":"StepId", + "documentation":"

The ID of the step.

", + "location":"uri", + "locationName":"id" + }, + "stepGroupId":{ + "shape":"StepGroupId", + "documentation":"

The ID of the step group.

" + }, + "workflowId":{ + "shape":"MigrationWorkflowId", + "documentation":"

The ID of the migration workflow.

" + }, + "name":{ + "shape":"StepName", + "documentation":"

The name of the step.

" + }, + "description":{ + "shape":"StepDescription", + "documentation":"

The description of the step.

" + }, + "stepActionType":{ + "shape":"StepActionType", + "documentation":"

The action type of the step. You must run and update the status of a manual step for the workflow to continue after the completion of the step.

" + }, + "workflowStepAutomationConfiguration":{ + "shape":"WorkflowStepAutomationConfiguration", + "documentation":"

The custom script to run tests on the source and target environments.

" + }, + "stepTarget":{ + "shape":"StringList", + "documentation":"

The servers on which a step will be run.

" + }, + "outputs":{ + "shape":"WorkflowStepOutputList", + "documentation":"

The outputs of a step.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step.

" + }, + "status":{ + "shape":"StepStatus", + "documentation":"

The status of the step.

" + } + } + }, + "UpdateWorkflowStepResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"StepId", + "documentation":"

The ID of the step.

" + }, + "stepGroupId":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "workflowId":{ + "shape":"String", + "documentation":"

The ID of the migration workflow.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The input fails to satisfy the constraints specified by an AWS service.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "WorkflowStepAutomationConfiguration":{ + "type":"structure", + "members":{ + "scriptLocationS3Bucket":{ + "shape":"S3Bucket", + "documentation":"

The Amazon S3 bucket where the script is located.

" + }, + "scriptLocationS3Key":{ + "shape":"PlatformScriptKey", + "documentation":"

The Amazon S3 key for the script location.

" + }, + "command":{ + "shape":"PlatformCommand", + "documentation":"

The command required to run the script.

" + }, + "runEnvironment":{ + "shape":"RunEnvironment", + "documentation":"

The source or target environment.

" + }, + "targetType":{ + "shape":"TargetType", + "documentation":"

The servers on which to run the script.

" + } + }, + "documentation":"

The custom script to run tests on source or target environments.

" + }, + "WorkflowStepGroupSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"String", + "documentation":"

The ID of the step group.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step group.

" + }, + "owner":{ + "shape":"Owner", + "documentation":"

The owner of the step group.

" + }, + "status":{ + "shape":"StepGroupStatus", + "documentation":"

The status of the step group.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step group.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step group.

" + } + }, + "documentation":"

The summary of a step group in a workflow.

" + }, + "WorkflowStepGroupsSummaryList":{ + "type":"list", + "member":{"shape":"WorkflowStepGroupSummary"} + }, + "WorkflowStepOutput":{ + "type":"structure", + "members":{ + "name":{ + "shape":"WorkflowStepOutputName", + "documentation":"

The name of the step.

" + }, + "dataType":{ + "shape":"DataType", + "documentation":"

The data type of the output.

" + }, + "required":{ + "shape":"Boolean", + "documentation":"

Determine if an output is required from a step.

" + }, + "value":{ + "shape":"WorkflowStepOutputUnion", + "documentation":"

The value of the output.

" + } + }, + "documentation":"

The output of a step.

" + }, + "WorkflowStepOutputList":{ + "type":"list", + "member":{"shape":"WorkflowStepOutput"} + }, + "WorkflowStepOutputName":{ + "type":"string", + "max":100, + "min":1, + "pattern":"[-a-zA-Z0-9_.+]+[-a-zA-Z0-9_.+ ]*" + }, + "WorkflowStepOutputUnion":{ + "type":"structure", + "members":{ + "integerValue":{ + "shape":"Integer", + "documentation":"

The integer value.

", + "box":true + }, + "stringValue":{ + "shape":"StringValue", + "documentation":"

The string value.

" + }, + "listOfStringValue":{ + "shape":"StringList", + "documentation":"

The list of string value.

" + } + }, + "documentation":"

A structure to hold multiple values of an output.

", + "union":true + }, + "WorkflowStepSummary":{ + "type":"structure", + "members":{ + "stepId":{ + "shape":"String", + "documentation":"

The ID of the step.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the step.

" + }, + "stepActionType":{ + "shape":"StepActionType", + "documentation":"

The action type of the step. You must run and update the status of a manual step for the workflow to continue after the completion of the step.

" + }, + "owner":{ + "shape":"Owner", + "documentation":"

The owner of the step.

" + }, + "previous":{ + "shape":"StringList", + "documentation":"

The previous step.

" + }, + "next":{ + "shape":"StringList", + "documentation":"

The next step.

" + }, + "status":{ + "shape":"StepStatus", + "documentation":"

The status of the step.

" + }, + "statusMessage":{ + "shape":"String", + "documentation":"

The status message of the migration workflow.

" + }, + "noOfSrvCompleted":{ + "shape":"Integer", + "documentation":"

The number of servers that have been migrated.

" + }, + "noOfSrvFailed":{ + "shape":"Integer", + "documentation":"

The number of servers that have failed to migrate.

" + }, + "totalNoOfSrv":{ + "shape":"Integer", + "documentation":"

The total number of servers that have been migrated.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the step.

" + }, + "scriptLocation":{ + "shape":"String", + "documentation":"

The location of the script.

" + } + }, + "documentation":"

The summary of the step in a migration workflow.

" + }, + "WorkflowStepsSummaryList":{ + "type":"list", + "member":{"shape":"WorkflowStepSummary"} + } + }, + "documentation":"

This API reference provides descriptions, syntax, and other details about each of the actions and data types for AWS Migration Hub Orchestrator. he topic for each action shows the API request parameters and the response. Alternatively, you can use one of the AWS SDKs to access an API that is tailored to the programming language or platform that you're using.

" +} diff --git a/botocore/data/migrationhuborchestrator/2021-08-28/waiters-2.json b/botocore/data/migrationhuborchestrator/2021-08-28/waiters-2.json new file mode 100644 index 00000000..13f60ee6 --- /dev/null +++ b/botocore/data/migrationhuborchestrator/2021-08-28/waiters-2.json @@ -0,0 +1,5 @@ +{ + "version": 2, + "waiters": { + } +} diff --git a/botocore/data/migrationhubstrategy/2020-02-19/endpoint-rule-set-1.json b/botocore/data/migrationhubstrategy/2020-02-19/endpoint-rule-set-1.json new file mode 100644 index 00000000..b5093f10 --- /dev/null +++ b/botocore/data/migrationhubstrategy/2020-02-19/endpoint-rule-set-1.json @@ -0,0 +1,306 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-strategy-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-strategy-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-strategy.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://migrationhub-strategy.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/migrationhubstrategy/2020-02-19/examples-1.json b/botocore/data/migrationhubstrategy/2020-02-19/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/migrationhubstrategy/2020-02-19/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/migrationhubstrategy/2020-02-19/service-2.json b/botocore/data/migrationhubstrategy/2020-02-19/service-2.json index f8c69859..24d6094a 100644 --- a/botocore/data/migrationhubstrategy/2020-02-19/service-2.json +++ b/botocore/data/migrationhubstrategy/2020-02-19/service-2.json @@ -79,6 +79,23 @@ ], "documentation":"

Retrieves the details about a specific import task.

" }, + "GetLatestAssessmentId":{ + "name":"GetLatestAssessmentId", + "http":{ + "method":"GET", + "requestUri":"/get-latest-assessment-id", + "responseCode":200 + }, + "input":{"shape":"GetLatestAssessmentIdRequest"}, + "output":{"shape":"GetLatestAssessmentIdResponse"}, + "errors":[ + {"shape":"DependencyException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieve the latest ID of a specific assessment task.

" + }, "GetPortfolioPreferences":{ "name":"GetPortfolioPreferences", "http":{ @@ -401,7 +418,43 @@ "SQLServer", "IIS", "Oracle", - "Other" + "Other", + "Tomcat", + "JBoss", + "Spring", + "Mongo DB", + "DB2", + "Maria DB", + "MySQL", + "Sybase", + "PostgreSQLServer", + "Cassandra", + "IBM WebSphere", + "Oracle WebLogic", + "Visual Basic", + "Unknown", + "DotnetCore", + "Dotnet" + ] + }, + "AppUnitError":{ + "type":"structure", + "members":{ + "appUnitErrorCategory":{ + "shape":"AppUnitErrorCategory", + "documentation":"

The category of the error.

" + } + }, + "documentation":"

Error in the analysis of the application unit.

" + }, + "AppUnitErrorCategory":{ + "type":"string", + "enum":[ + "CREDENTIAL_ERROR", + "CONNECTIVITY_ERROR", + "PERMISSION_ERROR", + "UNSUPPORTED_ERROR", + "OTHER_ERROR" ] }, "ApplicationComponentCriteria":{ @@ -412,7 +465,9 @@ "SERVER_ID", "APP_TYPE", "STRATEGY", - "DESTINATION" + "DESTINATION", + "ANALYSIS_STATUS", + "ERROR_CATEGORY" ] }, "ApplicationComponentDetail":{ @@ -438,6 +493,10 @@ "shape":"AppType", "documentation":"

The type of application component.

" }, + "appUnitError":{ + "shape":"AppUnitError", + "documentation":"

The error in the analysis of the source code or database.

" + }, "associatedServerId":{ "shape":"ServerId", "documentation":"

The ID of the server that the application component is running on.

" @@ -486,6 +545,14 @@ "shape":"ResourceSubType", "documentation":"

The application component subtype.

" }, + "runtimeStatus":{ + "shape":"RuntimeAnalysisStatus", + "documentation":"

The status of the application unit.

" + }, + "runtimeStatusMessage":{ + "shape":"StatusMessage", + "documentation":"

The status message for the application unit.

" + }, "sourceCodeRepositories":{ "shape":"SourceCodeRepositories", "documentation":"

Details about the source code repository associated with the application component.

" @@ -507,6 +574,20 @@ "min":0, "pattern":"[0-9a-zA-Z-]+" }, + "ApplicationComponentStatusSummary":{ + "type":"structure", + "members":{ + "count":{ + "shape":"Integer", + "documentation":"

The number of application components successfully analyzed, partially successful or failed analysis.

" + }, + "srcCodeOrDbAnalysisStatus":{ + "shape":"SrcCodeOrDbAnalysisStatus", + "documentation":"

The status of database analysis.

" + } + }, + "documentation":"

Summary of the analysis status of the application component.

" + }, "ApplicationComponentStrategies":{ "type":"list", "member":{"shape":"ApplicationComponentStrategy"} @@ -543,6 +624,14 @@ }, "documentation":"

Contains the summary of application components.

" }, + "ApplicationMode":{ + "type":"string", + "enum":[ + "ALL", + "KNOWN", + "UNKNOWN" + ] + }, "ApplicationPreferences":{ "type":"structure", "members":{ @@ -562,6 +651,12 @@ "STOPPED" ] }, + "AssessmentStatusMessage":{ + "type":"string", + "max":512, + "min":0, + "pattern":".*\\S.*" + }, "AssessmentSummary":{ "type":"structure", "members":{ @@ -585,6 +680,10 @@ "shape":"ListAntipatternSeveritySummary", "documentation":"

List of AntipatternSeveritySummary.

" }, + "listApplicationComponentStatusSummary":{ + "shape":"ListApplicationComponentStatusSummary", + "documentation":"

List of status summaries of the analyzed application components.

" + }, "listApplicationComponentStrategySummary":{ "shape":"ListStrategySummary", "documentation":"

List of ApplicationComponentStrategySummary.

" @@ -593,6 +692,10 @@ "shape":"ListApplicationComponentSummary", "documentation":"

List of ApplicationComponentSummary.

" }, + "listServerStatusSummary":{ + "shape":"ListServerStatusSummary", + "documentation":"

List of status summaries of the analyzed servers.

" + }, "listServerStrategySummary":{ "shape":"ListStrategySummary", "documentation":"

List of ServerStrategySummary.

" @@ -604,6 +707,39 @@ }, "documentation":"

Contains the summary of the assessment results.

" }, + "AssessmentTarget":{ + "type":"structure", + "required":[ + "condition", + "name", + "values" + ], + "members":{ + "condition":{ + "shape":"Condition", + "documentation":"

Condition of an assessment.

" + }, + "name":{ + "shape":"String", + "documentation":"

Name of an assessment.

" + }, + "values":{ + "shape":"AssessmentTargetValues", + "documentation":"

Values of an assessment.

" + } + }, + "documentation":"

Defines the criteria of assessment.

" + }, + "AssessmentTargetValues":{ + "type":"list", + "member":{"shape":"String"} + }, + "AssessmentTargets":{ + "type":"list", + "member":{"shape":"AssessmentTarget"}, + "max":10, + "min":0 + }, "AssociatedApplication":{ "type":"structure", "members":{ @@ -632,6 +768,14 @@ "min":0, "pattern":"[0-9a-z-:]+" }, + "AuthType":{ + "type":"string", + "enum":[ + "NTLM", + "SSH", + "CERT" + ] + }, "AwsManagedResources":{ "type":"structure", "required":["targetDestination"], @@ -704,6 +848,10 @@ "shape":"String", "documentation":"

Current version of the collector that is running in the environment that you specify.

" }, + "configurationSummary":{ + "shape":"ConfigurationSummary", + "documentation":"

Summary of the collector configuration.

" + }, "hostName":{ "shape":"String", "documentation":"

Hostname of the server that is hosting the collector.

" @@ -734,6 +882,41 @@ "type":"list", "member":{"shape":"Collector"} }, + "Condition":{ + "type":"string", + "enum":[ + "EQUALS", + "NOT_EQUALS", + "CONTAINS", + "NOT_CONTAINS" + ] + }, + "ConfigurationSummary":{ + "type":"structure", + "members":{ + "ipAddressBasedRemoteInfoList":{ + "shape":"IPAddressBasedRemoteInfoList", + "documentation":"

IP address based configurations.

" + }, + "pipelineInfoList":{ + "shape":"PipelineInfoList", + "documentation":"

The list of pipeline info configurations.

" + }, + "remoteSourceCodeAnalysisServerInfo":{ + "shape":"RemoteSourceCodeAnalysisServerInfo", + "documentation":"

Info about the remote server source code configuration.

" + }, + "vcenterBasedRemoteInfoList":{ + "shape":"VcenterBasedRemoteInfoList", + "documentation":"

The list of vCenter configurations.

" + }, + "versionControlInfoList":{ + "shape":"VersionControlInfoList", + "documentation":"

The list of the version control configurations.

" + } + }, + "documentation":"

Summary of the collector configuration.

" + }, "ConflictException":{ "type":"structure", "required":["message"], @@ -774,6 +957,10 @@ "shape":"AssessmentStatus", "documentation":"

The status of the assessment.

" }, + "statusMessage":{ + "shape":"AssessmentStatusMessage", + "documentation":"

The status message of the assessment.

" + }, "success":{ "shape":"Integer", "documentation":"

The number of successful servers in the assessment.

" @@ -839,6 +1026,16 @@ }, "documentation":"

Preferences on managing your databases on AWS.

" }, + "DependencyException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "documentation":"

Dependency encountered an error.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, "GetApplicationComponentDetailsRequest":{ "type":"structure", "required":["applicationComponentId"], @@ -908,6 +1105,10 @@ "GetAssessmentResponse":{ "type":"structure", "members":{ + "assessmentTargets":{ + "shape":"AssessmentTargets", + "documentation":"

List of criteria for assessment.

" + }, "dataCollectionDetails":{ "shape":"DataCollectionDetails", "documentation":"

Detailed information about the assessment.

" @@ -979,6 +1180,20 @@ } } }, + "GetLatestAssessmentIdRequest":{ + "type":"structure", + "members":{ + } + }, + "GetLatestAssessmentIdResponse":{ + "type":"structure", + "members":{ + "id":{ + "shape":"AsyncTaskId", + "documentation":"

The latest ID for the specific assessment task.

" + } + } + }, "GetPortfolioPreferencesRequest":{ "type":"structure", "members":{ @@ -987,6 +1202,10 @@ "GetPortfolioPreferencesResponse":{ "type":"structure", "members":{ + "applicationMode":{ + "shape":"ApplicationMode", + "documentation":"

The classification for application component types.

" + }, "applicationPreferences":{ "shape":"ApplicationPreferences", "documentation":"

The transformation preferences for non-database applications.

" @@ -1182,6 +1401,28 @@ "min":0, "pattern":"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" }, + "IPAddressBasedRemoteInfo":{ + "type":"structure", + "members":{ + "authType":{ + "shape":"AuthType", + "documentation":"

The type of authorization.

" + }, + "ipAddressConfigurationTimeStamp":{ + "shape":"String", + "documentation":"

The time stamp of the configuration.

" + }, + "osType":{ + "shape":"OSType", + "documentation":"

The type of the operating system.

" + } + }, + "documentation":"

IP address based configurations.

" + }, + "IPAddressBasedRemoteInfoList":{ + "type":"list", + "member":{"shape":"IPAddressBasedRemoteInfo"} + }, "ImportFileTaskInformation":{ "type":"structure", "members":{ @@ -1276,6 +1517,10 @@ "type":"list", "member":{"shape":"AntipatternSeveritySummary"} }, + "ListApplicationComponentStatusSummary":{ + "type":"list", + "member":{"shape":"ApplicationComponentStatusSummary"} + }, "ListApplicationComponentSummary":{ "type":"list", "member":{"shape":"ApplicationComponentSummary"} @@ -1392,6 +1637,10 @@ } } }, + "ListServerStatusSummary":{ + "type":"list", + "member":{"shape":"ServerStatusSummary"} + }, "ListServerSummary":{ "type":"list", "member":{"shape":"ServerSummary"} @@ -1594,6 +1843,28 @@ "Json" ] }, + "PipelineInfo":{ + "type":"structure", + "members":{ + "pipelineConfigurationTimeStamp":{ + "shape":"String", + "documentation":"

The time when the pipeline info was configured.

" + }, + "pipelineType":{ + "shape":"PipelineType", + "documentation":"

The type of pipeline.

" + } + }, + "documentation":"

Detailed information of the pipeline.

" + }, + "PipelineInfoList":{ + "type":"list", + "member":{"shape":"PipelineInfo"} + }, + "PipelineType":{ + "type":"string", + "enum":["AZURE_DEVOPS"] + }, "PrioritizeBusinessGoals":{ "type":"structure", "members":{ @@ -1604,9 +1875,19 @@ }, "documentation":"

Rank of business goals based on priority.

" }, + "ProjectName":{ + "type":"string", + "max":128, + "min":1, + "pattern":".*\\S.*" + }, "PutPortfolioPreferencesRequest":{ "type":"structure", "members":{ + "applicationMode":{ + "shape":"ApplicationMode", + "documentation":"

The classification for application component types.

" + }, "applicationPreferences":{ "shape":"ApplicationPreferences", "documentation":"

The transformation preferences for non-database applications.

" @@ -1695,6 +1976,16 @@ "min":0, "pattern":"[0-9a-z-:]+" }, + "RemoteSourceCodeAnalysisServerInfo":{ + "type":"structure", + "members":{ + "remoteSourceCodeAnalysisServerConfigurationTimestamp":{ + "shape":"String", + "documentation":"

The time when the remote source code server was configured.

" + } + }, + "documentation":"

Information about the server configured for source code analysis.

" + }, "ResourceId":{ "type":"string", "max":44, @@ -1734,6 +2025,15 @@ "dataCollectionTaskPartialSuccess" ] }, + "RuntimeAnalysisStatus":{ + "type":"string", + "enum":[ + "ANALYSIS_TO_BE_SCHEDULED", + "ANALYSIS_STARTED", + "ANALYSIS_SUCCESS", + "ANALYSIS_FAILED" + ] + }, "S3Bucket":{ "type":"string", "max":63, @@ -1804,7 +2104,9 @@ "OS_NAME", "STRATEGY", "DESTINATION", - "SERVER_ID" + "SERVER_ID", + "ANALYSIS_STATUS", + "ERROR_CATEGORY" ] }, "ServerDetail":{ @@ -1850,6 +2152,10 @@ "shape":"RecommendationSet", "documentation":"

A set of recommendations.

" }, + "serverError":{ + "shape":"ServerError", + "documentation":"

The error in server analysis.

" + }, "serverType":{ "shape":"String", "documentation":"

The type of server.

" @@ -1869,6 +2175,26 @@ "type":"list", "member":{"shape":"ServerDetail"} }, + "ServerError":{ + "type":"structure", + "members":{ + "serverErrorCategory":{ + "shape":"ServerErrorCategory", + "documentation":"

The error category of server analysis.

" + } + }, + "documentation":"

The error in server analysis.

" + }, + "ServerErrorCategory":{ + "type":"string", + "enum":[ + "CONNECTIVITY_ERROR", + "CREDENTIAL_ERROR", + "PERMISSION_ERROR", + "ARCHITECTURE_ERROR", + "OTHER_ERROR" + ] + }, "ServerId":{ "type":"string", "max":27, @@ -1885,6 +2211,20 @@ "Other" ] }, + "ServerStatusSummary":{ + "type":"structure", + "members":{ + "count":{ + "shape":"Integer", + "documentation":"

The number of servers successfully analyzed, partially successful or failed analysis.

" + }, + "runTimeAssessmentStatus":{ + "shape":"RunTimeAssessmentStatus", + "documentation":"

The status of the run time.

" + } + }, + "documentation":"

The status summary of the server analysis.

" + }, "ServerStrategies":{ "type":"list", "member":{"shape":"ServerStrategy"} @@ -1972,6 +2312,10 @@ "shape":"Location", "documentation":"

The repository name for the source code.

" }, + "projectName":{ + "shape":"ProjectName", + "documentation":"

The name of the project.

" + }, "sourceVersion":{ "shape":"SourceVersion", "documentation":"

The branch of the source code.

" @@ -1998,6 +2342,10 @@ "shape":"String", "documentation":"

The branch of the source code.

" }, + "projectName":{ + "shape":"String", + "documentation":"

The name of the project.

" + }, "repository":{ "shape":"String", "documentation":"

The repository name for the source code.

" @@ -2021,12 +2369,19 @@ "ANALYSIS_TO_BE_SCHEDULED", "ANALYSIS_STARTED", "ANALYSIS_SUCCESS", - "ANALYSIS_FAILED" + "ANALYSIS_FAILED", + "ANALYSIS_PARTIAL_SUCCESS", + "UNCONFIGURED", + "CONFIGURED" ] }, "StartAssessmentRequest":{ "type":"structure", "members":{ + "assessmentTargets":{ + "shape":"AssessmentTargets", + "documentation":"

List of criteria for assessment.

" + }, "s3bucketForAnalysisData":{ "shape":"StartAssessmentRequestS3bucketForAnalysisDataString", "documentation":"

The S3 bucket used by the collectors to send analysis data to the service. The bucket name must begin with migrationhub-strategy-.

" @@ -2195,7 +2550,8 @@ "enum":[ "recommended", "viableOption", - "notRecommended" + "notRecommended", + "potential" ] }, "StrategySummary":{ @@ -2276,7 +2632,8 @@ "Amazon Relational Database Service on PostgreSQL", "Amazon DocumentDB", "Amazon DynamoDB", - "Amazon Relational Database Service" + "Amazon Relational Database Service", + "Babelfish for Aurora PostgreSQL" ] }, "ThrottlingException":{ @@ -2341,10 +2698,18 @@ "type":"structure", "required":["applicationComponentId"], "members":{ + "appType":{ + "shape":"AppType", + "documentation":"

The type of known component.

" + }, "applicationComponentId":{ "shape":"ApplicationComponentId", "documentation":"

The ID of the application component. The ID is unique within an AWS account.

" }, + "configureOnly":{ + "shape":"Boolean", + "documentation":"

Update the configuration request of an application component. If it is set to true, the source code and/or database credentials are updated. If it is set to false, the source code and/or database credentials are updated and an analysis is initiated.

" + }, "inclusionStatus":{ "shape":"InclusionStatus", "documentation":"

Indicates whether the application component has been included for server recommendation or not.

" @@ -2399,11 +2764,56 @@ }, "exception":true }, + "VcenterBasedRemoteInfo":{ + "type":"structure", + "members":{ + "osType":{ + "shape":"OSType", + "documentation":"

The type of the operating system.

" + }, + "vcenterConfigurationTimeStamp":{ + "shape":"String", + "documentation":"

The time when the remote server based on vCenter was last configured.

" + } + }, + "documentation":"

Details about the server in vCenter.

" + }, + "VcenterBasedRemoteInfoList":{ + "type":"list", + "member":{"shape":"VcenterBasedRemoteInfo"} + }, "VersionControl":{ "type":"string", "enum":[ "GITHUB", - "GITHUB_ENTERPRISE" + "GITHUB_ENTERPRISE", + "AZURE_DEVOPS_GIT" + ] + }, + "VersionControlInfo":{ + "type":"structure", + "members":{ + "versionControlConfigurationTimeStamp":{ + "shape":"String", + "documentation":"

The time when the version control system was last configured.

" + }, + "versionControlType":{ + "shape":"VersionControlType", + "documentation":"

The type of version control.

" + } + }, + "documentation":"

Details about the version control configuration.

" + }, + "VersionControlInfoList":{ + "type":"list", + "member":{"shape":"VersionControlInfo"} + }, + "VersionControlType":{ + "type":"string", + "enum":[ + "GITHUB", + "GITHUB_ENTERPRISE", + "AZURE_DEVOPS_GIT" ] }, "errorMessage":{"type":"string"}, diff --git a/botocore/data/mobile/2017-07-01/endpoint-rule-set-1.json b/botocore/data/mobile/2017-07-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..3ba41bb6 --- /dev/null +++ b/botocore/data/mobile/2017-07-01/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mobile-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mobile-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mobile.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://mobile.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mq/2017-11-27/endpoint-rule-set-1.json b/botocore/data/mq/2017-11-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..896427a0 --- /dev/null +++ b/botocore/data/mq/2017-11-27/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mq-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mq-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mq.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://mq.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mturk/2017-01-17/endpoint-rule-set-1.json b/botocore/data/mturk/2017-01-17/endpoint-rule-set-1.json new file mode 100644 index 00000000..64ae809b --- /dev/null +++ b/botocore/data/mturk/2017-01-17/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mturk-requester-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mturk-requester-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://mturk-requester.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "sandbox" + ] + } + ], + "endpoint": { + "url": "https://mturk-requester-sandbox.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://mturk-requester.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mwaa/2020-07-01/endpoint-rule-set-1.json b/botocore/data/mwaa/2020-07-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..9d773b89 --- /dev/null +++ b/botocore/data/mwaa/2020-07-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://airflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://airflow-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://airflow.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://airflow.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/mwaa/2020-07-01/examples-1.json b/botocore/data/mwaa/2020-07-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/mwaa/2020-07-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/mwaa/2020-07-01/service-2.json b/botocore/data/mwaa/2020-07-01/service-2.json index 16b7ef00..dc4146fa 100644 --- a/botocore/data/mwaa/2020-07-01/service-2.json +++ b/botocore/data/mwaa/2020-07-01/service-2.json @@ -216,7 +216,8 @@ "AirflowConfigurationOptions":{ "type":"map", "key":{"shape":"ConfigKey"}, - "value":{"shape":"ConfigValue"} + "value":{"shape":"ConfigValue"}, + "sensitive":true }, "AirflowVersion":{ "type":"string", @@ -240,7 +241,8 @@ "type":"string", "max":65536, "min":1, - "pattern":"^[ -~]+$" + "pattern":"^[ -~]+$", + "sensitive":true }, "CreateCliTokenRequest":{ "type":"structure", @@ -258,7 +260,7 @@ "type":"structure", "members":{ "CliToken":{ - "shape":"SyntheticCreateCliTokenResponseToken", + "shape":"Token", "documentation":"

An Airflow CLI login token.

" }, "WebServerHostname":{ @@ -278,12 +280,12 @@ ], "members":{ "AirflowConfigurationOptions":{ - "shape":"SyntheticCreateEnvironmentInputAirflowConfigurationOptions", + "shape":"AirflowConfigurationOptions", "documentation":"

A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. To learn more, see Apache Airflow configuration options.

" }, "AirflowVersion":{ "shape":"AirflowVersion", - "documentation":"

The Apache Airflow version for your environment. If no value is specified, defaults to the latest version. Valid values: 1.10.12, 2.0.2. To learn more, see Apache Airflow versions on Amazon Managed Workflows for Apache Airflow (MWAA).

" + "documentation":"

The Apache Airflow version for your environment. If no value is specified, it defaults to the latest version. Valid values: 1.10.12, 2.0.2, and 2.2.2. To learn more, see Apache Airflow versions on Amazon Managed Workflows for Apache Airflow (MWAA).

" }, "DagS3Path":{ "shape":"RelativePath", @@ -341,7 +343,7 @@ }, "Schedulers":{ "shape":"Schedulers", - "documentation":"

The number of Apache Airflow schedulers to run in your environment. Valid values:

  • v2.0.2 - Accepts between 2 to 5. Defaults to 2.

  • v1.10.12 - Accepts 1.

" + "documentation":"

The number of Apache Airflow schedulers to run in your environment. Valid values:

  • v2 - Accepts between 2 to 5. Defaults to 2.

  • v1 - Accepts 1.

" }, "SourceBucketArn":{ "shape":"S3BucketArn", @@ -391,7 +393,7 @@ "documentation":"

The Airflow web server hostname for the environment.

" }, "WebToken":{ - "shape":"SyntheticCreateWebLoginTokenResponseToken", + "shape":"Token", "documentation":"

An Airflow web server login token.

" } } @@ -449,7 +451,7 @@ }, "AirflowVersion":{ "shape":"AirflowVersion", - "documentation":"

The Apache Airflow version on your environment. Valid values: 1.10.12, 2.0.2.

" + "documentation":"

The Apache Airflow version on your environment. Valid values: 1.10.12, 2.0.2, and 2.2.2.

" }, "Arn":{ "shape":"EnvironmentArn", @@ -998,26 +1000,6 @@ "max":2, "min":2 }, - "SyntheticCreateCliTokenResponseToken":{ - "type":"string", - "sensitive":true - }, - "SyntheticCreateEnvironmentInputAirflowConfigurationOptions":{ - "type":"map", - "key":{"shape":"ConfigKey"}, - "value":{"shape":"ConfigValue"}, - "sensitive":true - }, - "SyntheticCreateWebLoginTokenResponseToken":{ - "type":"string", - "sensitive":true - }, - "SyntheticUpdateEnvironmentInputAirflowConfigurationOptions":{ - "type":"map", - "key":{"shape":"ConfigKey"}, - "value":{"shape":"ConfigValue"}, - "sensitive":true - }, "TagKey":{ "type":"string", "max":128, @@ -1068,6 +1050,10 @@ "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" }, "Timestamp":{"type":"timestamp"}, + "Token":{ + "type":"string", + "sensitive":true + }, "Unit":{ "type":"string", "enum":[ @@ -1132,12 +1118,12 @@ "required":["Name"], "members":{ "AirflowConfigurationOptions":{ - "shape":"SyntheticUpdateEnvironmentInputAirflowConfigurationOptions", + "shape":"AirflowConfigurationOptions", "documentation":"

A list of key-value pairs containing the Apache Airflow configuration options you want to attach to your environment. To learn more, see Apache Airflow configuration options.

" }, "AirflowVersion":{ "shape":"AirflowVersion", - "documentation":"

The Apache Airflow version for your environment. If no value is specified, defaults to the latest version. Valid values: 1.10.12, 2.0.2.

" + "documentation":"

The Apache Airflow version for your environment. If no value is specified, defaults to the latest version. Valid values: 1.10.12, 2.0.2, and 2.2.2.

" }, "DagS3Path":{ "shape":"RelativePath", @@ -1287,5 +1273,5 @@ "pattern":"(MON|TUE|WED|THU|FRI|SAT|SUN):([01]\\d|2[0-3]):(00|30)" } }, - "documentation":"

Amazon Managed Workflows for Apache Airflow

This section contains the Amazon Managed Workflows for Apache Airflow (MWAA) API reference documentation. For more information, see What Is Amazon MWAA?.

 <p> <b>Endpoints</b> </p> <ul> <li> <p> <code>api.airflow.{region}.amazonaws.com</code> - This endpoint is used for environment management.</p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_CreateEnvironment.html">CreateEnvironment</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_DeleteEnvironment.html">DeleteEnvironment</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_GetEnvironment.html">GetEnvironment</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_ListEnvironments.html">ListEnvironments</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_ListTagsForResource.html">ListTagsForResource</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_TagResource.html">TagResource</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_UntagResource.html">UntagResource</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_UpdateEnvironment.html">UpdateEnvironment</a> </p> </li> </ul> </li> <li> <p> <code>env.airflow.{region}.amazonaws.com</code> - This endpoint is used to operate the Airflow environment.</p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_CreateCliToken.html ">CreateCliToken</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_CreateWebLoginToken.html">CreateWebLoginToken</a> </p> </li> </ul> </li> <li> <p> <code>ops.airflow.{region}.amazonaws.com</code> - This endpoint is used to push environment metrics that track environment health.</p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/mwaa/latest/API/API_PublishMetrics.html ">PublishMetrics</a> </p> </li> </ul> </li> </ul> <p> <b>Regions</b> </p> <p>For a list of regions that Amazon MWAA supports, see <a href="https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html#regions-mwaa">Region availability</a> in the <i>Amazon MWAA User Guide</i>.</p> 
" + "documentation":"

Amazon Managed Workflows for Apache Airflow

This section contains the Amazon Managed Workflows for Apache Airflow (MWAA) API reference documentation. For more information, see What Is Amazon MWAA?.

Endpoints

Regions

For a list of regions that Amazon MWAA supports, see Region availability in the Amazon MWAA User Guide.

" } diff --git a/botocore/data/neptune/2014-10-31/endpoint-rule-set-1.json b/botocore/data/neptune/2014-10-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..1becf46c --- /dev/null +++ b/botocore/data/neptune/2014-10-31/endpoint-rule-set-1.json @@ -0,0 +1,435 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.ca-central-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.ca-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-east-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-east-2" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-west-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-west-2" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/neptune/2014-10-31/examples-1.json b/botocore/data/neptune/2014-10-31/examples-1.json index faff7689..0ea7e3b0 100644 --- a/botocore/data/neptune/2014-10-31/examples-1.json +++ b/botocore/data/neptune/2014-10-31/examples-1.json @@ -1,5 +1,5 @@ { - "version":"1.0", - "examples":{ + "version": "1.0", + "examples": { } } diff --git a/botocore/data/neptune/2014-10-31/paginators-1.json b/botocore/data/neptune/2014-10-31/paginators-1.json index dfa1484f..1de13039 100644 --- a/botocore/data/neptune/2014-10-31/paginators-1.json +++ b/botocore/data/neptune/2014-10-31/paginators-1.json @@ -89,6 +89,12 @@ "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/botocore/data/neptune/2014-10-31/service-2.json b/botocore/data/neptune/2014-10-31/service-2.json index 5e0e0f99..16b70a8c 100644 --- a/botocore/data/neptune/2014-10-31/service-2.json +++ b/botocore/data/neptune/2014-10-31/service-2.json @@ -158,7 +158,9 @@ {"shape":"KMSKeyNotAccessibleFault"}, {"shape":"DBClusterNotFoundFault"}, {"shape":"DBInstanceNotFoundFault"}, - {"shape":"DBSubnetGroupDoesNotCoverEnoughAZs"} + {"shape":"DBSubnetGroupDoesNotCoverEnoughAZs"}, + {"shape":"GlobalClusterNotFoundFault"}, + {"shape":"InvalidGlobalClusterStateFault"} ], "documentation":"

Creates a new Amazon Neptune DB cluster.

You can use the ReplicationSourceIdentifier parameter to create the DB cluster as a Read Replica of another DB cluster or Amazon Neptune DB instance.

Note that when you create a new cluster using CreateDBCluster directly, deletion protection is disabled by default (when you create a new production cluster in the console, deletion protection is enabled by default). You can only delete a DB cluster if its DeletionProtection field is set to false.

" }, @@ -312,6 +314,25 @@ ], "documentation":"

Creates an event notification subscription. This action requires a topic ARN (Amazon Resource Name) created by either the Neptune console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

You can specify the type of source (SourceType) you want to be notified of, provide a list of Neptune sources (SourceIds) that triggers the events, and provide a list of event categories (EventCategories) for events you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup.

If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIdentifier = myDBInstance1, you are notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify a SourceIdentifier, you receive notice of the events for that source type for all your Neptune sources. If you do not specify either the SourceType nor the SourceIdentifier, you are notified of events generated from all Neptune sources belonging to your customer account.

" }, + "CreateGlobalCluster":{ + "name":"CreateGlobalCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGlobalClusterMessage"}, + "output":{ + "shape":"CreateGlobalClusterResult", + "resultWrapper":"CreateGlobalClusterResult" + }, + "errors":[ + {"shape":"GlobalClusterAlreadyExistsFault"}, + {"shape":"GlobalClusterQuotaExceededFault"}, + {"shape":"InvalidDBClusterStateFault"}, + {"shape":"DBClusterNotFoundFault"} + ], + "documentation":"

Creates a Neptune global database spread across multiple Amazon Regions. The global database contains a single primary cluster with read-write capability, and read-only secondary clusters that receive data from the primary cluster through high-speed replication performed by the Neptune storage subsystem.

You can create a global database that is initially empty, and then add a primary cluster and secondary clusters to it, or you can specify an existing Neptune cluster during the create operation to become the primary cluster of the global database.

" + }, "DeleteDBCluster":{ "name":"DeleteDBCluster", "http":{ @@ -444,6 +465,23 @@ ], "documentation":"

Deletes an event notification subscription.

" }, + "DeleteGlobalCluster":{ + "name":"DeleteGlobalCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGlobalClusterMessage"}, + "output":{ + "shape":"DeleteGlobalClusterResult", + "resultWrapper":"DeleteGlobalClusterResult" + }, + "errors":[ + {"shape":"GlobalClusterNotFoundFault"}, + {"shape":"InvalidGlobalClusterStateFault"} + ], + "documentation":"

Deletes a global database. The primary and all secondary clusters must already be detached or deleted first.

" + }, "DescribeDBClusterEndpoints":{ "name":"DescribeDBClusterEndpoints", "http":{ @@ -685,6 +723,22 @@ }, "documentation":"

Returns events related to DB instances, DB security groups, DB snapshots, and DB parameter groups for the past 14 days. Events specific to a particular DB instance, DB security group, database snapshot, or DB parameter group can be obtained by providing the name as a parameter. By default, the past hour of events are returned.

" }, + "DescribeGlobalClusters":{ + "name":"DescribeGlobalClusters", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeGlobalClustersMessage"}, + "output":{ + "shape":"GlobalClustersMessage", + "resultWrapper":"DescribeGlobalClustersResult" + }, + "errors":[ + {"shape":"GlobalClusterNotFoundFault"} + ], + "documentation":"

Returns information about Neptune global database clusters. This API supports pagination.

" + }, "DescribeOrderableDBInstanceOptions":{ "name":"DescribeOrderableDBInstanceOptions", "http":{ @@ -749,6 +803,25 @@ ], "documentation":"

Forces a failover for a DB cluster.

A failover for a DB cluster promotes one of the Read Replicas (read-only instances) in the DB cluster to be the primary instance (the cluster writer).

Amazon Neptune will automatically fail over to a Read Replica, if one exists, when the primary instance fails. You can force a failover when you want to simulate a failure of a primary instance for testing. Because each instance in a DB cluster has its own endpoint address, you will need to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

" }, + "FailoverGlobalCluster":{ + "name":"FailoverGlobalCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"FailoverGlobalClusterMessage"}, + "output":{ + "shape":"FailoverGlobalClusterResult", + "resultWrapper":"FailoverGlobalClusterResult" + }, + "errors":[ + {"shape":"GlobalClusterNotFoundFault"}, + {"shape":"InvalidGlobalClusterStateFault"}, + {"shape":"InvalidDBClusterStateFault"}, + {"shape":"DBClusterNotFoundFault"} + ], + "documentation":"

Initiates the failover process for a Neptune global database.

A failover for a Neptune global database promotes one of secondary read-only DB clusters to be the primary DB cluster and demotes the primary DB cluster to being a secondary (read-only) DB cluster. In other words, the role of the current primary DB cluster and the selected target secondary DB cluster are switched. The selected secondary DB cluster assumes full read/write capabilities for the Neptune global database.

This action applies only to Neptune global databases. This action is only intended for use on healthy Neptune global databases with healthy Neptune DB clusters and no region-wide outages, to test disaster recovery scenarios or to reconfigure the global database topology.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -937,6 +1010,23 @@ ], "documentation":"

Modifies an existing event notification subscription. Note that you can't modify the source identifiers using this call; to change source identifiers for a subscription, use the AddSourceIdentifierToSubscription and RemoveSourceIdentifierFromSubscription calls.

You can see a list of the event categories for a given SourceType by using the DescribeEventCategories action.

" }, + "ModifyGlobalCluster":{ + "name":"ModifyGlobalCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyGlobalClusterMessage"}, + "output":{ + "shape":"ModifyGlobalClusterResult", + "resultWrapper":"ModifyGlobalClusterResult" + }, + "errors":[ + {"shape":"GlobalClusterNotFoundFault"}, + {"shape":"InvalidGlobalClusterStateFault"} + ], + "documentation":"

Modify a setting for an Amazon Neptune global cluster. You can change one or more database configuration parameters by specifying these parameters and their new values in the request.

" + }, "PromoteReadReplicaDBCluster":{ "name":"PromoteReadReplicaDBCluster", "http":{ @@ -971,6 +1061,24 @@ ], "documentation":"

You might need to reboot your DB instance, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB parameter group associated with the DB instance, you must reboot the instance for the changes to take effect.

Rebooting a DB instance restarts the database engine service. Rebooting a DB instance results in a momentary outage, during which the DB instance status is set to rebooting.

" }, + "RemoveFromGlobalCluster":{ + "name":"RemoveFromGlobalCluster", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RemoveFromGlobalClusterMessage"}, + "output":{ + "shape":"RemoveFromGlobalClusterResult", + "resultWrapper":"RemoveFromGlobalClusterResult" + }, + "errors":[ + {"shape":"GlobalClusterNotFoundFault"}, + {"shape":"InvalidGlobalClusterStateFault"}, + {"shape":"DBClusterNotFoundFault"} + ], + "documentation":"

Detaches a Neptune DB cluster from a Neptune global database. A secondary cluster becomes a normal standalone cluster with read-write capability instead of being read-only, and no longer receives data from a the primary cluster.

" + }, "RemoveRoleFromDBCluster":{ "name":"RemoveRoleFromDBCluster", "http":{ @@ -1624,6 +1732,11 @@ "DeletionProtection":{ "shape":"BooleanOptional", "documentation":"

A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is enabled.

" + }, + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"}, + "GlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

The ID of the Neptune global database to which this new DB cluster should be added.

" } } }, @@ -1988,6 +2101,42 @@ "EventSubscription":{"shape":"EventSubscription"} } }, + "CreateGlobalClusterMessage":{ + "type":"structure", + "required":["GlobalClusterIdentifier"], + "members":{ + "GlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

The cluster identifier of the new global database cluster.

" + }, + "SourceDBClusterIdentifier":{ + "shape":"String", + "documentation":"

(Optional) The Amazon Resource Name (ARN) of an existing Neptune DB cluster to use as the primary cluster of the new global database.

" + }, + "Engine":{ + "shape":"String", + "documentation":"

The name of the database engine to be used in the global database.

Valid values: neptune

" + }, + "EngineVersion":{ + "shape":"String", + "documentation":"

The Neptune engine version to be used by the global database.

Valid values: 1.2.0.0 or above.

" + }, + "DeletionProtection":{ + "shape":"BooleanOptional", + "documentation":"

The deletion protection setting for the new global database. The global database can't be deleted when deletion protection is enabled.

" + }, + "StorageEncrypted":{ + "shape":"BooleanOptional", + "documentation":"

The storage encryption setting for the new global database cluster.

" + } + } + }, + "CreateGlobalClusterResult":{ + "type":"structure", + "members":{ + "GlobalCluster":{"shape":"GlobalCluster"} + } + }, "DBCluster":{ "type":"structure", "members":{ @@ -2150,7 +2299,8 @@ "AutomaticRestartTime":{ "shape":"TStamp", "documentation":"

Time at which the DB cluster will be automatically restarted.

" - } + }, + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfigurationInfo"} }, "documentation":"

Contains the details of an Amazon Neptune DB cluster.

This data type is used as a response element in the DescribeDBClusters action.

", "wrapper":true @@ -2719,6 +2869,10 @@ "SupportsReadReplica":{ "shape":"Boolean", "documentation":"

Indicates whether the database engine version supports read replicas.

" + }, + "SupportsGlobalDatabases":{ + "shape":"Boolean", + "documentation":"

A value that indicates whether you can use Aurora global databases with a specific DB engine version.

" } }, "documentation":"

This data type is used as a response element in the action DescribeDBEngineVersions.

" @@ -3511,6 +3665,22 @@ "EventSubscription":{"shape":"EventSubscription"} } }, + "DeleteGlobalClusterMessage":{ + "type":"structure", + "required":["GlobalClusterIdentifier"], + "members":{ + "GlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

The cluster identifier of the global database cluster being deleted.

" + } + } + }, + "DeleteGlobalClusterResult":{ + "type":"structure", + "members":{ + "GlobalCluster":{"shape":"GlobalCluster"} + } + }, "DescribeDBClusterEndpointsMessage":{ "type":"structure", "members":{ @@ -3918,6 +4088,23 @@ } } }, + "DescribeGlobalClustersMessage":{ + "type":"structure", + "members":{ + "GlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

The user-supplied DB cluster identifier. If this parameter is specified, only information about the specified DB cluster is returned. This parameter is not case-sensitive.

Constraints: If supplied, must match an existing DB cluster identifier.

" + }, + "MaxRecords":{ + "shape":"IntegerOptional", + "documentation":"

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination marker token is included in the response that you can use to retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + }, + "Marker":{ + "shape":"String", + "documentation":"

(Optional) A pagination token returned by a previous call to DescribeGlobalClusters. If this parameter is specified, the response will only include records beyond the marker, up to the number specified by MaxRecords.

" + } + } + }, "DescribeOrderableDBInstanceOptionsMessage":{ "type":"structure", "required":["Engine"], @@ -4280,6 +4467,29 @@ "DBCluster":{"shape":"DBCluster"} } }, + "FailoverGlobalClusterMessage":{ + "type":"structure", + "required":[ + "GlobalClusterIdentifier", + "TargetDbClusterIdentifier" + ], + "members":{ + "GlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

Identifier of the Neptune global database that should be failed over. The identifier is the unique key assigned by the user when the Neptune global database was created. In other words, it's the name of the global database that you want to fail over.

Constraints: Must match the identifier of an existing Neptune global database.

" + }, + "TargetDbClusterIdentifier":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the secondary Neptune DB cluster that you want to promote to primary for the global database.

" + } + } + }, + "FailoverGlobalClusterResult":{ + "type":"structure", + "members":{ + "GlobalCluster":{"shape":"GlobalCluster"} + } + }, "Filter":{ "type":"structure", "required":[ @@ -4312,6 +4522,137 @@ "locationName":"Value" } }, + "GlobalCluster":{ + "type":"structure", + "members":{ + "GlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

Contains a user-supplied global database cluster identifier. This identifier is the unique key that identifies a global database.

" + }, + "GlobalClusterResourceId":{ + "shape":"String", + "documentation":"

An immutable identifier for the global database that is unique within in all regions. This identifier is found in CloudTrail log entries whenever the KMS key for the DB cluster is accessed.

" + }, + "GlobalClusterArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) for the global database.

" + }, + "Status":{ + "shape":"String", + "documentation":"

Specifies the current state of this global database.

" + }, + "Engine":{ + "shape":"String", + "documentation":"

The Neptune database engine used by the global database (\"neptune\").

" + }, + "EngineVersion":{ + "shape":"String", + "documentation":"

The Neptune engine version used by the global database.

" + }, + "StorageEncrypted":{ + "shape":"BooleanOptional", + "documentation":"

The storage encryption setting for the global database.

" + }, + "DeletionProtection":{ + "shape":"BooleanOptional", + "documentation":"

The deletion protection setting for the global database.

" + }, + "GlobalClusterMembers":{ + "shape":"GlobalClusterMemberList", + "documentation":"

A list of cluster ARNs and instance ARNs for all the DB clusters that are part of the global database.

" + } + }, + "documentation":"

Contains the details of an Amazon Neptune global database.

This data type is used as a response element for the CreateGlobalCluster, DescribeGlobalClusters, ModifyGlobalCluster, DeleteGlobalCluster, FailoverGlobalCluster, and RemoveFromGlobalCluster actions.

", + "wrapper":true + }, + "GlobalClusterAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The GlobalClusterIdentifier already exists. Choose a new global database identifier (unique name) to create a new global database cluster.

", + "error":{ + "code":"GlobalClusterAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "GlobalClusterIdentifier":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[A-Za-z][0-9A-Za-z-:._]*" + }, + "GlobalClusterList":{ + "type":"list", + "member":{ + "shape":"GlobalCluster", + "locationName":"GlobalClusterMember" + } + }, + "GlobalClusterMember":{ + "type":"structure", + "members":{ + "DBClusterArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) for each Neptune cluster.

" + }, + "Readers":{ + "shape":"ReadersArnList", + "documentation":"

The Amazon Resource Name (ARN) for each read-only secondary cluster associated with the Neptune global database.

" + }, + "IsWriter":{ + "shape":"Boolean", + "documentation":"

Specifies whether the Neptune cluster is the primary cluster (that is, has read-write capability) for the Neptune global database with which it is associated.

" + } + }, + "documentation":"

A data structure with information about any primary and secondary clusters associated with an Neptune global database.

", + "wrapper":true + }, + "GlobalClusterMemberList":{ + "type":"list", + "member":{ + "shape":"GlobalClusterMember", + "locationName":"GlobalClusterMember" + } + }, + "GlobalClusterNotFoundFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The GlobalClusterIdentifier doesn't refer to an existing global database cluster.

", + "error":{ + "code":"GlobalClusterNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "GlobalClusterQuotaExceededFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The number of global database clusters for this account is already at the maximum allowed.

", + "error":{ + "code":"GlobalClusterQuotaExceededFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "GlobalClustersMessage":{ + "type":"structure", + "members":{ + "Marker":{ + "shape":"String", + "documentation":"

A pagination token. If this parameter is returned in the response, more records are available, which can be retrieved by one or more additional calls to DescribeGlobalClusters.

" + }, + "GlobalClusters":{ + "shape":"GlobalClusterList", + "documentation":"

The list of global clusters and instances returned by this request.

" + } + } + }, "InstanceQuotaExceededFault":{ "type":"structure", "members":{ @@ -4482,6 +4823,18 @@ }, "exception":true }, + "InvalidGlobalClusterStateFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The global cluster is in an invalid state and can't perform the requested operation.

", + "error":{ + "code":"InvalidGlobalClusterStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidRestoreFault":{ "type":"structure", "members":{ @@ -4618,7 +4971,7 @@ "documentation":"

The Amazon Resource Name (ARN) for the endpoint.

" } }, - "documentation":"

This data type represents the information you need to connect to an Amazon Aurora DB cluster. This data type is used as a response element in the following actions:

  • CreateDBClusterEndpoint

  • DescribeDBClusterEndpoints

  • ModifyDBClusterEndpoint

  • DeleteDBClusterEndpoint

For the data structure that represents Amazon RDS DB instance endpoints, see Endpoint.

" + "documentation":"

This data type represents the information you need to connect to an Amazon Neptune DB cluster. This data type is used as a response element in the following actions:

  • CreateDBClusterEndpoint

  • DescribeDBClusterEndpoints

  • ModifyDBClusterEndpoint

  • DeleteDBClusterEndpoint

For the data structure that represents Amazon RDS DB instance endpoints, see Endpoint.

" }, "ModifyDBClusterMessage":{ "type":"structure", @@ -4695,7 +5048,8 @@ "CopyTagsToSnapshot":{ "shape":"BooleanOptional", "documentation":"

If set to true, tags are copied to any snapshot of the DB cluster that is created.

" - } + }, + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"} } }, "ModifyDBClusterParameterGroupMessage":{ @@ -4989,6 +5343,38 @@ "EventSubscription":{"shape":"EventSubscription"} } }, + "ModifyGlobalClusterMessage":{ + "type":"structure", + "required":["GlobalClusterIdentifier"], + "members":{ + "GlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

The DB cluster identifier for the global cluster being modified. This parameter is not case-sensitive.

Constraints: Must match the identifier of an existing global database cluster.

" + }, + "NewGlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

A new cluster identifier to assign to the global database. This value is stored as a lowercase string.

Constraints:

  • Must contain from 1 to 63 letters, numbers, or hyphens.

  • The first character must be a letter.

  • Can't end with a hyphen or contain two consecutive hyphens

Example: my-cluster2

" + }, + "DeletionProtection":{ + "shape":"BooleanOptional", + "documentation":"

Indicates whether the global database has deletion protection enabled. The global database cannot be deleted when deletion protection is enabled.

" + }, + "EngineVersion":{ + "shape":"String", + "documentation":"

The version number of the database engine to which you want to upgrade. Changing this parameter will result in an outage. The change is applied during the next maintenance window unless ApplyImmediately is enabled.

To list all of the available Neptune engine versions, use the following command:

" + }, + "AllowMajorVersionUpgrade":{ + "shape":"BooleanOptional", + "documentation":"

A value that indicates whether major version upgrades are allowed.

Constraints: You must allow major version upgrades if you specify a value for the EngineVersion parameter that is a different major version than the DB cluster's current version.

If you upgrade the major version of a global database, the cluster and DB instance parameter groups are set to the default parameter groups for the new version, so you will need to apply any custom parameter groups after completing the upgrade.

" + } + } + }, + "ModifyGlobalClusterResult":{ + "type":"structure", + "members":{ + "GlobalCluster":{"shape":"GlobalCluster"} + } + }, "OptionGroupMembership":{ "type":"structure", "members":{ @@ -5104,6 +5490,10 @@ "MaxIopsPerGib":{ "shape":"DoubleOptional", "documentation":"

Maximum provisioned IOPS per GiB for a DB instance.

" + }, + "SupportsGlobalDatabases":{ + "shape":"Boolean", + "documentation":"

A value that indicates whether you can use Neptune global databases with a specific combination of other DB engine attributes.

" } }, "documentation":"

Contains a list of available options for a DB instance.

This data type is used as a response element in the DescribeOrderableDBInstanceOptions action.

", @@ -5389,6 +5779,10 @@ "locationName":"ReadReplicaIdentifier" } }, + "ReadersArnList":{ + "type":"list", + "member":{"shape":"String"} + }, "RebootDBInstanceMessage":{ "type":"structure", "required":["DBInstanceIdentifier"], @@ -5409,6 +5803,29 @@ "DBInstance":{"shape":"DBInstance"} } }, + "RemoveFromGlobalClusterMessage":{ + "type":"structure", + "required":[ + "GlobalClusterIdentifier", + "DbClusterIdentifier" + ], + "members":{ + "GlobalClusterIdentifier":{ + "shape":"GlobalClusterIdentifier", + "documentation":"

The identifier of the Neptune global database from which to detach the specified Neptune DB cluster.

" + }, + "DbClusterIdentifier":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) identifying the cluster to be detached from the Neptune global database cluster.

" + } + } + }, + "RemoveFromGlobalClusterResult":{ + "type":"structure", + "members":{ + "GlobalCluster":{"shape":"GlobalCluster"} + } + }, "RemoveRoleFromDBClusterMessage":{ "type":"structure", "required":[ @@ -5608,7 +6025,8 @@ "CopyTagsToSnapshot":{ "shape":"BooleanOptional", "documentation":"

If set to true, tags are copied to any snapshot of the restored DB cluster that is created.

" - } + }, + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"} } }, "RestoreDBClusterFromSnapshotResult":{ @@ -5683,7 +6101,8 @@ "DeletionProtection":{ "shape":"BooleanOptional", "documentation":"

A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.

" - } + }, + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"} } }, "RestoreDBClusterToPointInTimeResult":{ @@ -5728,6 +6147,34 @@ }, "exception":true }, + "ServerlessV2ScalingConfiguration":{ + "type":"structure", + "members":{ + "MinCapacity":{ + "shape":"DoubleOptional", + "documentation":"

The minimum number of Neptune capacity units (NCUs) for a DB instance in a Neptune Serverless cluster. You can specify NCU values in half-step increments, such as 8, 8.5, 9, and so on.

" + }, + "MaxCapacity":{ + "shape":"DoubleOptional", + "documentation":"

The maximum number of Neptune capacity units (NCUs) for a DB instance in a Neptune Serverless cluster. You can specify NCU values in half-step increments, such as 40, 40.5, 41, and so on.

" + } + }, + "documentation":"

Contains the scaling configuration of a Neptune Serverless DB cluster.

For more information, see Using Amazon Neptune Serverless in the Amazon Neptune User Guide.

" + }, + "ServerlessV2ScalingConfigurationInfo":{ + "type":"structure", + "members":{ + "MinCapacity":{ + "shape":"DoubleOptional", + "documentation":"

The minimum number of Neptune capacity units (NCUs) for a DB instance in a Neptune Serverless cluster. You can specify NCU values in half-step increments, such as 8, 8.5, 9, and so on.

" + }, + "MaxCapacity":{ + "shape":"DoubleOptional", + "documentation":"

The maximum number of Neptune capacity units (NCUs) for a DB instance in a Neptune Serverless cluster. You can specify NCU values in half-step increments, such as 40, 40.5, 41, and so on.

" + } + }, + "documentation":"

Shows the scaling configuration for a Neptune Serverless DB cluster.

For more information, see Using Amazon Neptune Serverless in the Amazon Neptune User Guide.

" + }, "SharedSnapshotQuotaExceededFault":{ "type":"structure", "members":{ @@ -6000,6 +6447,10 @@ "IsMajorVersionUpgrade":{ "shape":"Boolean", "documentation":"

A value that indicates whether a database engine is upgraded to a major version.

" + }, + "SupportsGlobalDatabases":{ + "shape":"BooleanOptional", + "documentation":"

A value that indicates whether you can use Neptune global databases with the target engine version.

" } }, "documentation":"

The version of the database engine that a DB instance can be upgraded to.

" diff --git a/botocore/data/network-firewall/2020-11-12/endpoint-rule-set-1.json b/botocore/data/network-firewall/2020-11-12/endpoint-rule-set-1.json new file mode 100644 index 00000000..db68798e --- /dev/null +++ b/botocore/data/network-firewall/2020-11-12/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://network-firewall-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://network-firewall-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://network-firewall.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://network-firewall.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/network-firewall/2020-11-12/examples-1.json b/botocore/data/network-firewall/2020-11-12/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/network-firewall/2020-11-12/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/network-firewall/2020-11-12/service-2.json b/botocore/data/network-firewall/2020-11-12/service-2.json index c5d47550..20ce1dde 100644 --- a/botocore/data/network-firewall/2020-11-12/service-2.json +++ b/botocore/data/network-firewall/2020-11-12/service-2.json @@ -703,12 +703,46 @@ "member":{"shape":"AzSubnet"} }, "Boolean":{"type":"boolean"}, + "CIDRCount":{ + "type":"integer", + "max":1000000, + "min":0 + }, + "CIDRSummary":{ + "type":"structure", + "members":{ + "AvailableCIDRCount":{ + "shape":"CIDRCount", + "documentation":"

The number of CIDR blocks available for use by the IP set references in a firewall.

" + }, + "UtilizedCIDRCount":{ + "shape":"CIDRCount", + "documentation":"

The number of CIDR blocks used by the IP set references in a firewall.

" + }, + "IPSetReferences":{ + "shape":"IPSetMetadataMap", + "documentation":"

The list of the IP set references used by a firewall.

" + } + }, + "documentation":"

Summarizes the CIDR blocks used by the IP set references in a firewall. Network Firewall calculates the number of CIDRs by taking an aggregated count of all CIDRs used by the IP sets you are referencing.

" + }, + "CapacityUsageSummary":{ + "type":"structure", + "members":{ + "CIDRs":{ + "shape":"CIDRSummary", + "documentation":"

Describes the capacity usage of the CIDR blocks used by the IP set references in a firewall.

" + } + }, + "documentation":"

The capacity usage summary of the resources used by the ReferenceSets in a firewall.

" + }, "CollectionMember_String":{"type":"string"}, "ConfigurationSyncState":{ "type":"string", "enum":[ "PENDING", - "IN_SYNC" + "IN_SYNC", + "CAPACITY_CONSTRAINED" ] }, "CreateFirewallPolicyRequest":{ @@ -1498,6 +1532,10 @@ "SyncStates":{ "shape":"SyncStates", "documentation":"

The subnets that you've configured for use by the Network Firewall firewall. This contains one array element per Availability Zone where you've configured a subnet. These objects provide details of the information that is summarized in the ConfigurationSyncStateSummary and Status, broken down by zone and configuration object.

" + }, + "CapacityUsageSummary":{ + "shape":"CapacityUsageSummary", + "documentation":"

Describes the capacity usage of the resources contained in a firewall's reference sets. Network Firewall calclulates the capacity usage by taking an aggregated count of all of the resources used by all of the reference sets in a firewall.

" } }, "documentation":"

Detailed information about the current status of a Firewall. You can retrieve this for a firewall by calling DescribeFirewall and providing the firewall name and ARN.

" @@ -1586,6 +1624,43 @@ }, "documentation":"

A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

" }, + "IPSetArn":{"type":"string"}, + "IPSetMetadata":{ + "type":"structure", + "members":{ + "ResolvedCIDRCount":{ + "shape":"CIDRCount", + "documentation":"

Describes the total number of CIDR blocks currently in use by the IP set references in a firewall. To determine how many CIDR blocks are available for you to use in a firewall, you can call AvailableCIDRCount.

" + } + }, + "documentation":"

General information about the IP set.

" + }, + "IPSetMetadataMap":{ + "type":"map", + "key":{"shape":"IPSetArn"}, + "value":{"shape":"IPSetMetadata"} + }, + "IPSetReference":{ + "type":"structure", + "members":{ + "ReferenceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

" + } + }, + "documentation":"

Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references a resource that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the IP set you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

Network Firewall currently supports only Amazon VPC prefix lists as IP set references.

" + }, + "IPSetReferenceMap":{ + "type":"map", + "key":{"shape":"IPSetReferenceName"}, + "value":{"shape":"IPSetReference"} + }, + "IPSetReferenceName":{ + "type":"string", + "max":32, + "min":1, + "pattern":"^[A-Za-z][A-Za-z0-9_]*$" + }, "IPSets":{ "type":"map", "key":{"shape":"RuleVariableName"}, @@ -1920,7 +1995,8 @@ "type":"string", "enum":[ "PENDING", - "IN_SYNC" + "IN_SYNC", + "CAPACITY_CONSTRAINED" ] }, "PolicyString":{ @@ -2024,6 +2100,16 @@ "members":{ } }, + "ReferenceSets":{ + "type":"structure", + "members":{ + "IPSetReferences":{ + "shape":"IPSetReferenceMap", + "documentation":"

The list of IP set references.

" + } + }, + "documentation":"

Contains a set of IP set references.

" + }, "ResourceArn":{ "type":"string", "max":256, @@ -2106,6 +2192,10 @@ "shape":"RuleVariables", "documentation":"

Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups.

" }, + "ReferenceSets":{ + "shape":"ReferenceSets", + "documentation":"

The list of a rule group's reference sets.

" + }, "RulesSource":{ "shape":"RulesSource", "documentation":"

The stateful rules or stateless rules for the rule group.

" @@ -2272,7 +2362,7 @@ }, "StatefulRules":{ "shape":"StatefulRules", - "documentation":"

An array of individual stateful rules inspection criteria to be used together in a stateful rule group. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

" + "documentation":"

An array of individual stateful rules inspection criteria to be used together in a stateful rule group. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

" }, "StatelessRulesAndCustomActions":{ "shape":"StatelessRulesAndCustomActions", @@ -2357,6 +2447,10 @@ "RuleOrder":{ "shape":"RuleOrder", "documentation":"

Indicates how to manage the order of stateful rule evaluation for the policy. DEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

" + }, + "StreamExceptionPolicy":{ + "shape":"StreamExceptionPolicy", + "documentation":"

Configures how Network Firewall processes traffic when a network connection breaks midstream. Network connections can break due to disruptions in external networks or within the firewall itself.

  • DROP - Network Firewall fails closed and drops all subsequent traffic going to the firewall. This is the default behavior.

  • CONTINUE - Network Firewall continues to apply rules to the subsequent traffic without context from traffic before the break. This impacts the behavior of rules that depend on this context. For example, if you have a stateful rule to drop http traffic, Network Firewall won't match the traffic for this rule because the service won't have the context from session initialization defining the application layer protocol as HTTP. However, this behavior is rule dependent—a TCP-layer rule using a flow:stateless rule would still match, as would the aws:drop_strict default action.

" } }, "documentation":"

Configuration settings for the handling of the stateful rule groups in a firewall policy.

" @@ -2382,7 +2476,7 @@ "documentation":"

Additional options for the rule. These are the Suricata RuleOptions settings.

" } }, - "documentation":"

A single Suricata rules specification, for use in a stateful rule group. Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

" + "documentation":"

A single Suricata rules specification, for use in a stateful rule group. Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options. For information about the Suricata Rules format, see Rules Format.

" }, "StatefulRuleDirection":{ "type":"string", @@ -2526,6 +2620,13 @@ }, "documentation":"

Stateless inspection criteria. Each stateless rule group uses exactly one of these data types to define its stateless rules.

" }, + "StreamExceptionPolicy":{ + "type":"string", + "enum":[ + "DROP", + "CONTINUE" + ] + }, "SubnetMapping":{ "type":"structure", "required":["SubnetId"], @@ -3096,5 +3197,5 @@ "member":{"shape":"VpcId"} } }, - "documentation":"

This is the API Reference for Network Firewall. This guide is for developers who need detailed information about the Network Firewall API actions, data types, and errors.

  • The REST API requires you to handle connection details, such as calculating signatures, handling request retries, and error handling. For general information about using the Amazon Web Services REST APIs, see Amazon Web Services APIs.

    To access Network Firewall using the REST API endpoint: https://network-firewall.<region>.amazonaws.com

  • Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see Amazon Web Services SDKs.

  • For descriptions of Network Firewall features, including and step-by-step instructions on how to use them through the Network Firewall console, see the Network Firewall Developer Guide.

Network Firewall is a stateful, managed, network firewall and intrusion detection and prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the perimeter of your VPC. This includes filtering traffic going to and coming from an internet gateway, NAT gateway, or over VPN or Direct Connect. Network Firewall uses rules that are compatible with Suricata, a free, open source intrusion detection system (IDS) engine. Network Firewall supports Suricata version 5.0.2. For information about Suricata, see the Suricata website.

You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. The following are just a few examples:

  • Allow domains or IP addresses for known Amazon Web Services service endpoints, such as Amazon S3, and block all other forms of traffic.

  • Use custom lists of known bad domains to limit the types of domain names that your applications can access.

  • Perform deep packet inspection on traffic entering or leaving your VPC.

  • Use stateful protocol detection to filter protocols like HTTPS, regardless of the port used.

To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

To start using Network Firewall, do the following:

  1. (Optional) If you don't already have a VPC that you want to protect, create it in Amazon VPC.

  2. In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a subnet for the sole use of Network Firewall.

  3. In Network Firewall, create stateless and stateful rule groups, to define the components of the network traffic filtering behavior that you want your firewall to have.

  4. In Network Firewall, create a firewall policy that uses your rule groups and specifies additional default traffic filtering behavior.

  5. In Network Firewall, create a firewall and specify your new firewall policy and VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you specify, with the behavior that's defined in the firewall policy.

  6. In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall endpoints.

" + "documentation":"

This is the API Reference for Network Firewall. This guide is for developers who need detailed information about the Network Firewall API actions, data types, and errors.

  • The REST API requires you to handle connection details, such as calculating signatures, handling request retries, and error handling. For general information about using the Amazon Web Services REST APIs, see Amazon Web Services APIs.

    To access Network Firewall using the REST API endpoint: https://network-firewall.<region>.amazonaws.com

  • Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see Amazon Web Services SDKs.

  • For descriptions of Network Firewall features, including and step-by-step instructions on how to use them through the Network Firewall console, see the Network Firewall Developer Guide.

Network Firewall is a stateful, managed, network firewall and intrusion detection and prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the perimeter of your VPC. This includes filtering traffic going to and coming from an internet gateway, NAT gateway, or over VPN or Direct Connect. Network Firewall uses rules that are compatible with Suricata, a free, open source network analysis and threat detection engine. Network Firewall supports Suricata version 5.0.2. For information about Suricata, see the Suricata website.

You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. The following are just a few examples:

  • Allow domains or IP addresses for known Amazon Web Services service endpoints, such as Amazon S3, and block all other forms of traffic.

  • Use custom lists of known bad domains to limit the types of domain names that your applications can access.

  • Perform deep packet inspection on traffic entering or leaving your VPC.

  • Use stateful protocol detection to filter protocols like HTTPS, regardless of the port used.

To enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.

To start using Network Firewall, do the following:

  1. (Optional) If you don't already have a VPC that you want to protect, create it in Amazon VPC.

  2. In Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a subnet for the sole use of Network Firewall.

  3. In Network Firewall, create stateless and stateful rule groups, to define the components of the network traffic filtering behavior that you want your firewall to have.

  4. In Network Firewall, create a firewall policy that uses your rule groups and specifies additional default traffic filtering behavior.

  5. In Network Firewall, create a firewall and specify your new firewall policy and VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you specify, with the behavior that's defined in the firewall policy.

  6. In Amazon VPC, use ingress routing enhancements to route traffic through the new firewall endpoints.

" } diff --git a/botocore/data/networkmanager/2019-07-05/endpoint-rule-set-1.json b/botocore/data/networkmanager/2019-07-05/endpoint-rule-set-1.json new file mode 100644 index 00000000..6b0ca26d --- /dev/null +++ b/botocore/data/networkmanager/2019-07-05/endpoint-rule-set-1.json @@ -0,0 +1,861 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-west-2" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-west-2" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-west-2" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-west-2" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://networkmanager.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-west-2" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://networkmanager.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://networkmanager.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/networkmanager/2019-07-05/examples-1.json b/botocore/data/networkmanager/2019-07-05/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/networkmanager/2019-07-05/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/networkmanager/2019-07-05/paginators-1.json b/botocore/data/networkmanager/2019-07-05/paginators-1.json index b4aa0530..7196ace6 100644 --- a/botocore/data/networkmanager/2019-07-05/paginators-1.json +++ b/botocore/data/networkmanager/2019-07-05/paginators-1.json @@ -113,6 +113,18 @@ "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/botocore/data/networkmanager/2019-07-05/service-2.json b/botocore/data/networkmanager/2019-07-05/service-2.json index bb15b521..d38a56d5 100644 --- a/botocore/data/networkmanager/2019-07-05/service-2.json +++ b/botocore/data/networkmanager/2019-07-05/service-2.json @@ -273,6 +273,42 @@ ], "documentation":"

Creates an Amazon Web Services site-to-site VPN attachment on an edge location of a core network.

" }, + "CreateTransitGatewayPeering":{ + "name":"CreateTransitGatewayPeering", + "http":{ + "method":"POST", + "requestUri":"/transit-gateway-peerings" + }, + "input":{"shape":"CreateTransitGatewayPeeringRequest"}, + "output":{"shape":"CreateTransitGatewayPeeringResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a transit gateway peering connection.

" + }, + "CreateTransitGatewayRouteTableAttachment":{ + "name":"CreateTransitGatewayRouteTableAttachment", + "http":{ + "method":"POST", + "requestUri":"/transit-gateway-route-table-attachments" + }, + "input":{"shape":"CreateTransitGatewayRouteTableAttachmentRequest"}, + "output":{"shape":"CreateTransitGatewayRouteTableAttachmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a transit gateway route table attachment.

" + }, "CreateVpcAttachment":{ "name":"CreateVpcAttachment", "http":{ @@ -435,6 +471,24 @@ ], "documentation":"

Deletes an existing link. You must first disassociate the link from any devices and customer gateways.

" }, + "DeletePeering":{ + "name":"DeletePeering", + "http":{ + "method":"DELETE", + "requestUri":"/peerings/{peeringId}" + }, + "input":{"shape":"DeletePeeringRequest"}, + "output":{"shape":"DeletePeeringResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes an existing peering connection.

" + }, "DeleteResourcePolicy":{ "name":"DeleteResourcePolicy", "http":{ @@ -681,6 +735,23 @@ ], "documentation":"

Returns information about the LIVE policy for a core network.

" }, + "GetCoreNetworkChangeEvents":{ + "name":"GetCoreNetworkChangeEvents", + "http":{ + "method":"GET", + "requestUri":"/core-networks/{coreNetworkId}/core-network-change-events/{policyVersionId}" + }, + "input":{"shape":"GetCoreNetworkChangeEventsRequest"}, + "output":{"shape":"GetCoreNetworkChangeEventsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about a core network change event.

" + }, "GetCoreNetworkChangeSet":{ "name":"GetCoreNetworkChangeSet", "http":{ @@ -713,7 +784,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

Gets details about a core network policy. You can get details about your current live policy or any previous policy version.

" + "documentation":"

Returns details about a core network policy. You can get details about your current live policy or any previous policy version.

" }, "GetCustomerGatewayAssociations":{ "name":"GetCustomerGatewayAssociations", @@ -953,6 +1024,23 @@ ], "documentation":"

Gets information about one or more of your transit gateway Connect peer associations in a global network.

" }, + "GetTransitGatewayPeering":{ + "name":"GetTransitGatewayPeering", + "http":{ + "method":"GET", + "requestUri":"/transit-gateway-peerings/{peeringId}" + }, + "input":{"shape":"GetTransitGatewayPeeringRequest"}, + "output":{"shape":"GetTransitGatewayPeeringResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about a transit gateway peer.

" + }, "GetTransitGatewayRegistrations":{ "name":"GetTransitGatewayRegistrations", "http":{ @@ -970,6 +1058,23 @@ ], "documentation":"

Gets information about the transit gateway registrations in a specified global network.

" }, + "GetTransitGatewayRouteTableAttachment":{ + "name":"GetTransitGatewayRouteTableAttachment", + "http":{ + "method":"GET", + "requestUri":"/transit-gateway-route-table-attachments/{attachmentId}" + }, + "input":{"shape":"GetTransitGatewayRouteTableAttachmentRequest"}, + "output":{"shape":"GetTransitGatewayRouteTableAttachmentResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Returns information about a transit gateway route table attachment.

" + }, "GetVpcAttachment":{ "name":"GetVpcAttachment", "http":{ @@ -1059,7 +1164,24 @@ "requestUri":"/organizations/service-access" }, "input":{"shape":"ListOrganizationServiceAccessStatusRequest"}, - "output":{"shape":"ListOrganizationServiceAccessStatusResponse"} + "output":{"shape":"ListOrganizationServiceAccessStatusResponse"}, + "documentation":"

Gets the status of the Service Linked Role (SLR) deployment for the accounts in a given Amazon Web Services Organization.

" + }, + "ListPeerings":{ + "name":"ListPeerings", + "http":{ + "method":"GET", + "requestUri":"/peerings" + }, + "input":{"shape":"ListPeeringsRequest"}, + "output":{"shape":"ListPeeringsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists the peerings for a core network.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -1184,7 +1306,8 @@ {"shape":"ConflictException"}, {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} - ] + ], + "documentation":"

Enables for the Network Manager service for an Amazon Web Services Organization. This can only be called by a management account within the organization.

" }, "StartRouteAnalysis":{ "name":"StartRouteAnalysis", @@ -1447,9 +1570,16 @@ "AccountStatus":{ "type":"structure", "members":{ - "AccountId":{"shape":"AccountId"}, - "SLRDeploymentStatus":{"shape":"SLRDeploymentStatus"} - } + "AccountId":{ + "shape":"AccountId", + "documentation":"

The ID of an account within the Amazon Web Services Organization.

" + }, + "SLRDeploymentStatus":{ + "shape":"SLRDeploymentStatus", + "documentation":"

The status of SLR deployment for the account.

" + } + }, + "documentation":"

Describes the current status of an account within an Amazon Web Services Organization, including service-linked roles (SLRs).

" }, "AccountStatusList":{ "type":"list", @@ -1609,7 +1739,7 @@ "members":{ "CoreNetworkId":{ "shape":"CoreNetworkId", - "documentation":"

A core network ID.

" + "documentation":"

The ID of a core network.

" }, "CoreNetworkArn":{ "shape":"CoreNetworkArn", @@ -1695,7 +1825,8 @@ "enum":[ "CONNECT", "SITE_TO_SITE_VPN", - "VPC" + "VPC", + "TRANSIT_GATEWAY_ROUTE_TABLE" ] }, "Bandwidth":{ @@ -1742,6 +1873,15 @@ "OUT_OF_DATE" ] }, + "ChangeStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "COMPLETE", + "FAILED" + ] + }, "ChangeType":{ "type":"string", "enum":[ @@ -1749,7 +1889,11 @@ "CORE_NETWORK_EDGE", "ATTACHMENT_MAPPING", "ATTACHMENT_ROUTE_PROPAGATION", - "ATTACHMENT_ROUTE_STATIC" + "ATTACHMENT_ROUTE_STATIC", + "CORE_NETWORK_CONFIGURATION", + "SEGMENTS_CONFIGURATION", + "SEGMENT_ACTIONS_CONFIGURATION", + "ATTACHMENT_POLICIES_CONFIGURATION" ] }, "ClientToken":{ @@ -1841,7 +1985,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

The tags associated with the Connect peer.

" + "documentation":"

The list of key-value tags associated with the Connect peer.

" } }, "documentation":"

Describes a core network Connect peer.

" @@ -1985,7 +2129,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

The tags associated with a Connect peer summary.

" + "documentation":"

The list of key-value tags associated with the Connect peer summary.

" } }, "documentation":"

Summary description of a Connect peer.

" @@ -2152,7 +2296,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

The tags associated with a core network.

" + "documentation":"

The list of key-value tags associated with a core network.

" } }, "documentation":"

Describes a core network.

" @@ -2185,10 +2329,70 @@ "NewValues":{ "shape":"CoreNetworkChangeValues", "documentation":"

The new value for a core network

" + }, + "IdentifierPath":{ + "shape":"ConstrainedString", + "documentation":"

Uniquely identifies the path for a change within the changeset. For example, the IdentifierPath for a core network segment change might be \"CORE_NETWORK_SEGMENT/us-east-1/devsegment\".

" } }, "documentation":"

Details describing a core network change.

" }, + "CoreNetworkChangeEvent":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"ChangeType", + "documentation":"

Describes the type of change event.

" + }, + "Action":{ + "shape":"ChangeAction", + "documentation":"

The action taken for the change event.

" + }, + "IdentifierPath":{ + "shape":"ConstrainedString", + "documentation":"

Uniquely identifies the path for a change within the changeset. For example, the IdentifierPath for a core network segment change might be \"CORE_NETWORK_SEGMENT/us-east-1/devsegment\".

" + }, + "EventTime":{ + "shape":"DateTime", + "documentation":"

The timestamp for an event change in status.

" + }, + "Status":{ + "shape":"ChangeStatus", + "documentation":"

The status of the core network change event.

" + }, + "Values":{ + "shape":"CoreNetworkChangeEventValues", + "documentation":"

Details of the change event.

" + } + }, + "documentation":"

Describes a core network change event. This can be a change to a segment, attachment, route, etc.

" + }, + "CoreNetworkChangeEventList":{ + "type":"list", + "member":{"shape":"CoreNetworkChangeEvent"} + }, + "CoreNetworkChangeEventValues":{ + "type":"structure", + "members":{ + "EdgeLocation":{ + "shape":"ExternalRegionCode", + "documentation":"

The edge location for the core network change event.

" + }, + "SegmentName":{ + "shape":"ConstrainedString", + "documentation":"

The segment name if the change event is associated with a segment.

" + }, + "AttachmentId":{ + "shape":"AttachmentId", + "documentation":"

The ID of the attachment if the change event is associated with an attachment.

" + }, + "Cidr":{ + "shape":"ConstrainedString", + "documentation":"

For a STATIC_ROUTE event, this is the IP address.

" + } + }, + "documentation":"

Describes a core network change event.

" + }, "CoreNetworkChangeList":{ "type":"list", "member":{"shape":"CoreNetworkChange"} @@ -2842,6 +3046,76 @@ } } }, + "CreateTransitGatewayPeeringRequest":{ + "type":"structure", + "required":[ + "CoreNetworkId", + "TransitGatewayArn" + ], + "members":{ + "CoreNetworkId":{ + "shape":"CoreNetworkId", + "documentation":"

The ID of a core network.

" + }, + "TransitGatewayArn":{ + "shape":"TransitGatewayArn", + "documentation":"

The ARN of the transit gateway for the peering request.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The list of key-value tags associated with the request.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

The client token associated with the request.

", + "idempotencyToken":true + } + } + }, + "CreateTransitGatewayPeeringResponse":{ + "type":"structure", + "members":{ + "TransitGatewayPeering":{ + "shape":"TransitGatewayPeering", + "documentation":"

Returns information about the transit gateway peering connection request.

" + } + } + }, + "CreateTransitGatewayRouteTableAttachmentRequest":{ + "type":"structure", + "required":[ + "PeeringId", + "TransitGatewayRouteTableArn" + ], + "members":{ + "PeeringId":{ + "shape":"PeeringId", + "documentation":"

The ID of the peer for the

" + }, + "TransitGatewayRouteTableArn":{ + "shape":"TransitGatewayRouteTableArn", + "documentation":"

The ARN of the transit gateway route table for the attachment request.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The list of key-value tags associated with the request.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

The client token associated with the request.

", + "idempotencyToken":true + } + } + }, + "CreateTransitGatewayRouteTableAttachmentResponse":{ + "type":"structure", + "members":{ + "TransitGatewayRouteTableAttachment":{ + "shape":"TransitGatewayRouteTableAttachment", + "documentation":"

The route table associated with the create transit gateway route table attachment request.

" + } + } + }, "CreateVpcAttachmentRequest":{ "type":"structure", "required":[ @@ -3140,6 +3414,27 @@ } } }, + "DeletePeeringRequest":{ + "type":"structure", + "required":["PeeringId"], + "members":{ + "PeeringId":{ + "shape":"PeeringId", + "documentation":"

The ID of the peering connection to delete.

", + "location":"uri", + "locationName":"peeringId" + } + } + }, + "DeletePeeringResponse":{ + "type":"structure", + "members":{ + "Peering":{ + "shape":"Peering", + "documentation":"

Information about a deleted peering connection.

" + } + } + }, "DeleteResourcePolicyRequest":{ "type":"structure", "required":["ResourceArn"], @@ -3667,6 +3962,52 @@ } } }, + "GetCoreNetworkChangeEventsRequest":{ + "type":"structure", + "required":[ + "CoreNetworkId", + "PolicyVersionId" + ], + "members":{ + "CoreNetworkId":{ + "shape":"CoreNetworkId", + "documentation":"

The ID of a core network.

", + "location":"uri", + "locationName":"coreNetworkId" + }, + "PolicyVersionId":{ + "shape":"Integer", + "documentation":"

The ID of the policy version.

", + "location":"uri", + "locationName":"policyVersionId" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "GetCoreNetworkChangeEventsResponse":{ + "type":"structure", + "members":{ + "CoreNetworkChangeEvents":{ + "shape":"CoreNetworkChangeEventList", + "documentation":"

The response to GetCoreNetworkChangeEventsRequest.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

" + } + } + }, "GetCoreNetworkChangeSetRequest":{ "type":"structure", "required":[ @@ -4466,6 +4807,27 @@ } } }, + "GetTransitGatewayPeeringRequest":{ + "type":"structure", + "required":["PeeringId"], + "members":{ + "PeeringId":{ + "shape":"PeeringId", + "documentation":"

The ID of the peering request.

", + "location":"uri", + "locationName":"peeringId" + } + } + }, + "GetTransitGatewayPeeringResponse":{ + "type":"structure", + "members":{ + "TransitGatewayPeering":{ + "shape":"TransitGatewayPeering", + "documentation":"

Returns information about a transit gateway peering.

" + } + } + }, "GetTransitGatewayRegistrationsRequest":{ "type":"structure", "required":["GlobalNetworkId"], @@ -4509,6 +4871,27 @@ } } }, + "GetTransitGatewayRouteTableAttachmentRequest":{ + "type":"structure", + "required":["AttachmentId"], + "members":{ + "AttachmentId":{ + "shape":"AttachmentId", + "documentation":"

The ID of the transit gateway route table attachment.

", + "location":"uri", + "locationName":"attachmentId" + } + } + }, + "GetTransitGatewayRouteTableAttachmentResponse":{ + "type":"structure", + "members":{ + "TransitGatewayRouteTableAttachment":{ + "shape":"TransitGatewayRouteTableAttachment", + "documentation":"

Returns information about the transit gateway route table attachment.

" + } + } + }, "GetVpcAttachmentRequest":{ "type":"structure", "required":["AttachmentId"], @@ -4895,11 +5278,13 @@ "members":{ "MaxResults":{ "shape":"MaxResults", + "documentation":"

The maximum number of results to return.

", "location":"querystring", "locationName":"maxResults" }, "NextToken":{ "shape":"NextToken", + "documentation":"

The token for the next page of results.

", "location":"querystring", "locationName":"nextToken" } @@ -4908,8 +5293,68 @@ "ListOrganizationServiceAccessStatusResponse":{ "type":"structure", "members":{ - "OrganizationStatus":{"shape":"OrganizationStatus"}, - "NextToken":{"shape":"NextToken"} + "OrganizationStatus":{ + "shape":"OrganizationStatus", + "documentation":"

Displays the status of an Amazon Web Services Organization.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListPeeringsRequest":{ + "type":"structure", + "members":{ + "CoreNetworkId":{ + "shape":"CoreNetworkId", + "documentation":"

The ID of a core network.

", + "location":"querystring", + "locationName":"coreNetworkId" + }, + "PeeringType":{ + "shape":"PeeringType", + "documentation":"

Returns a list of a peering requests.

", + "location":"querystring", + "locationName":"peeringType" + }, + "EdgeLocation":{ + "shape":"ExternalRegionCode", + "documentation":"

Returns a list edge locations for the

", + "location":"querystring", + "locationName":"edgeLocation" + }, + "State":{ + "shape":"PeeringState", + "documentation":"

Returns a list of the peering request states.

", + "location":"querystring", + "locationName":"state" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListPeeringsResponse":{ + "type":"structure", + "members":{ + "Peerings":{ + "shape":"PeeringList", + "documentation":"

Lists the transit gateway peerings for the ListPeerings request.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next page of results.

" + } } }, "ListTagsForResourceRequest":{ @@ -4967,7 +5412,7 @@ }, "CoreNetworkId":{ "shape":"CoreNetworkId", - "documentation":"

a core network ID.

" + "documentation":"

The ID of a core network.

" }, "AwsRegion":{ "shape":"ExternalRegionCode", @@ -5195,11 +5640,24 @@ "OrganizationStatus":{ "type":"structure", "members":{ - "OrganizationId":{"shape":"OrganizationId"}, - "OrganizationAwsServiceAccessStatus":{"shape":"OrganizationAwsServiceAccessStatus"}, - "SLRDeploymentStatus":{"shape":"SLRDeploymentStatus"}, - "AccountStatusList":{"shape":"AccountStatusList"} - } + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The ID of an Amazon Web Services Organization.

" + }, + "OrganizationAwsServiceAccessStatus":{ + "shape":"OrganizationAwsServiceAccessStatus", + "documentation":"

The status of the organization's AWS service access. This will be ENABLED or DISABLED.

" + }, + "SLRDeploymentStatus":{ + "shape":"SLRDeploymentStatus", + "documentation":"

The status of the SLR deployment for the account. This will be either SUCCEEDED or IN_PROGRESS.

" + }, + "AccountStatusList":{ + "shape":"AccountStatusList", + "documentation":"

The current service-linked role (SLR) deployment status for an Amazon Web Services Organization's accounts. This will be either SUCCEEDED or IN_PROGRESS.

" + } + }, + "documentation":"

The status of an Amazon Web Services Organization and the accounts within that organization.

" }, "PathComponent":{ "type":"structure", @@ -5223,12 +5681,81 @@ "type":"list", "member":{"shape":"PathComponent"} }, + "Peering":{ + "type":"structure", + "members":{ + "CoreNetworkId":{ + "shape":"CoreNetworkId", + "documentation":"

The ID of the core network for the peering request.

" + }, + "CoreNetworkArn":{ + "shape":"CoreNetworkArn", + "documentation":"

The ARN of a core network.

" + }, + "PeeringId":{ + "shape":"PeeringId", + "documentation":"

The ID of the peering attachment.

" + }, + "OwnerAccountId":{ + "shape":"AWSAccountId", + "documentation":"

The ID of the account owner.

" + }, + "PeeringType":{ + "shape":"PeeringType", + "documentation":"

The type of peering. This will be TRANSIT_GATEWAY.

" + }, + "State":{ + "shape":"PeeringState", + "documentation":"

The current state of the peering connection.

" + }, + "EdgeLocation":{ + "shape":"ExternalRegionCode", + "documentation":"

The edge location for the peer.

" + }, + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The resource ARN of the peer.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The list of key-value tags associated with the peering.

" + }, + "CreatedAt":{ + "shape":"DateTime", + "documentation":"

The timestamp when the attachment peer was created.

" + } + }, + "documentation":"

Describes a peering connection.

" + }, + "PeeringId":{ + "type":"string", + "max":50, + "min":0, + "pattern":"^peering-([0-9a-f]{8,17})$" + }, + "PeeringList":{ + "type":"list", + "member":{"shape":"Peering"} + }, + "PeeringState":{ + "type":"string", + "enum":[ + "CREATING", + "FAILED", + "AVAILABLE", + "DELETING" + ] + }, + "PeeringType":{ + "type":"string", + "enum":["TRANSIT_GATEWAY"] + }, "ProposedSegmentChange":{ "type":"structure", "members":{ "Tags":{ "shape":"TagList", - "documentation":"

The key-value tags that changed for the segment.

" + "documentation":"

The list of key-value tags that changed for the segment.

" }, "AttachmentPolicyRuleNumber":{ "shape":"Integer", @@ -5778,13 +6305,19 @@ "type":"structure", "required":["Action"], "members":{ - "Action":{"shape":"Action"} + "Action":{ + "shape":"Action", + "documentation":"

The action to take for the update request. This can be either ENABLE or DISABLE.

" + } } }, "StartOrganizationServiceAccessUpdateResponse":{ "type":"structure", "members":{ - "OrganizationStatus":{"shape":"OrganizationStatus"} + "OrganizationStatus":{ + "shape":"OrganizationStatus", + "documentation":"

The status of the service access update request for an Amazon Web Services Organization.

" + } } }, "StartRouteAnalysisRequest":{ @@ -5983,6 +6516,30 @@ "DELETED" ] }, + "TransitGatewayPeering":{ + "type":"structure", + "members":{ + "Peering":{ + "shape":"Peering", + "documentation":"

Describes a transit gateway peer connection.

" + }, + "TransitGatewayArn":{ + "shape":"TransitGatewayArn", + "documentation":"

The ARN of the transit gateway.

" + }, + "TransitGatewayPeeringAttachmentId":{ + "shape":"TransitGatewayPeeringAttachmentId", + "documentation":"

The ID of the transit gateway peering attachment.

" + } + }, + "documentation":"

Describes a transit gateway peering attachment.

" + }, + "TransitGatewayPeeringAttachmentId":{ + "type":"string", + "max":50, + "min":0, + "pattern":"^tgw-attach-([0-9a-f]{8,17})$" + }, "TransitGatewayRegistration":{ "type":"structure", "members":{ @@ -6035,6 +6592,21 @@ "min":0, "pattern":"[\\s\\S]*" }, + "TransitGatewayRouteTableAttachment":{ + "type":"structure", + "members":{ + "Attachment":{"shape":"Attachment"}, + "PeeringId":{ + "shape":"PeeringId", + "documentation":"

The ID of the peering attachment.

" + }, + "TransitGatewayRouteTableArn":{ + "shape":"TransitGatewayRouteTableArn", + "documentation":"

The ARN of the transit gateway attachment route table.

" + } + }, + "documentation":"

Describes a transit gateway route table attachment.

" + }, "TunnelProtocol":{ "type":"string", "enum":["GRE"] diff --git a/botocore/data/nimble/2020-08-01/endpoint-rule-set-1.json b/botocore/data/nimble/2020-08-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..e631ce55 --- /dev/null +++ b/botocore/data/nimble/2020-08-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://nimble-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://nimble-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://nimble.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://nimble.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/nimble/2020-08-01/examples-1.json b/botocore/data/nimble/2020-08-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/nimble/2020-08-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/nimble/2020-08-01/service-2.json b/botocore/data/nimble/2020-08-01/service-2.json index 448678cf..dd5e39e4 100644 --- a/botocore/data/nimble/2020-08-01/service-2.json +++ b/botocore/data/nimble/2020-08-01/service-2.json @@ -638,7 +638,7 @@ {"shape":"InternalServerErrorException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Lists the streaming image resources in a studio.

" + "documentation":"

Lists the streaming sessions in a studio.

" }, "ListStudioComponents":{ "name":"ListStudioComponents", @@ -799,7 +799,7 @@ {"shape":"InternalServerErrorException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Repairs the Amazon Web Services SSO configuration for a given studio.

If the studio has a valid Amazon Web Services SSO configuration currently associated with it, this operation will fail with a validation error.

If the studio does not have a valid Amazon Web Services SSO configuration currently associated with it, then a new Amazon Web Services SSO application is created for the studio and the studio is changed to the READY state.

After the Amazon Web Services SSO application is repaired, you must use the Amazon Nimble Studio console to add administrators and users to your studio.

", + "documentation":"

Repairs the IAM Identity Center configuration for a given studio.

If the studio has a valid IAM Identity Center configuration currently associated with it, this operation will fail with a validation error.

If the studio does not have a valid IAM Identity Center configuration currently associated with it, then a new IAM Identity Center application is created for the studio and the studio is changed to the READY state.

After the IAM Identity Center application is repaired, you must use the Amazon Nimble Studio console to add administrators and users to your studio.

", "idempotent":true }, "StopStreamingSession":{ @@ -983,7 +983,7 @@ }, "studioId":{ "shape":"String", - "documentation":"

A collection of EULA IDs.

", + "documentation":"

The studio ID.

", "location":"uri", "locationName":"studioId" } @@ -1099,7 +1099,7 @@ "documentation":"

The name of an Active Directory user that is used on ComputeFarm worker instances.

" }, "endpoint":{ - "shape":"SyntheticComputeFarmConfigurationString", + "shape":"SensitiveString", "documentation":"

The endpoint of the ComputeFarm that is accessed by the studio component resource.

" } }, @@ -1207,7 +1207,7 @@ "locationName":"X-Amz-Client-Token" }, "description":{ - "shape":"SyntheticCreateStreamingImageRequestStreamingImageDescription", + "shape":"StreamingImageDescription", "documentation":"

A human-readable description of the streaming image.

" }, "ec2ImageId":{ @@ -1215,7 +1215,7 @@ "documentation":"

The ID of an EC2 machine image with which to create this streaming image.

" }, "name":{ - "shape":"SyntheticCreateStreamingImageRequestStreamingImageName", + "shape":"StreamingImageName", "documentation":"

A friendly name for a streaming image resource.

" }, "studioId":{ @@ -1363,10 +1363,18 @@ "shape":"StudioComponentName", "documentation":"

The name for the studio component.

" }, + "runtimeRoleArn":{ + "shape":"RoleArn", + "documentation":"

An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running.

" + }, "scriptParameters":{ "shape":"StudioComponentScriptParameterKeyValueList", "documentation":"

Parameters for the studio component scripts.

" }, + "secureInitializationRoleArn":{ + "shape":"RoleArn", + "documentation":"

An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.

" + }, "studioId":{ "shape":"String", "documentation":"

The studio ID.

", @@ -1406,7 +1414,7 @@ ], "members":{ "adminRoleArn":{ - "shape":"String", + "shape":"RoleArn", "documentation":"

The IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.

" }, "clientToken":{ @@ -1417,7 +1425,7 @@ "locationName":"X-Amz-Client-Token" }, "displayName":{ - "shape":"SyntheticCreateStudioRequestStudioDisplayName", + "shape":"StudioDisplayName", "documentation":"

A friendly name for the studio.

" }, "studioEncryptionConfiguration":{ @@ -1433,7 +1441,7 @@ "documentation":"

A collection of labels, in the form of key:value pairs, that apply to this resource.

" }, "userRoleArn":{ - "shape":"String", + "shape":"RoleArn", "documentation":"

The IAM role that Studio Users will assume when logging in to the Nimble Studio portal.

" } } @@ -1470,7 +1478,7 @@ }, "principalId":{ "shape":"String", - "documentation":"

The principal ID. This currently supports a Amazon Web Services SSO UserId.

", + "documentation":"

The principal ID. This currently supports a IAM Identity Center UserId.

", "location":"uri", "locationName":"principalId" }, @@ -1651,7 +1659,7 @@ }, "principalId":{ "shape":"String", - "documentation":"

The principal ID. This currently supports a Amazon Web Services SSO UserId.

", + "documentation":"

The principal ID. This currently supports a IAM Identity Center UserId.

", "location":"uri", "locationName":"principalId" }, @@ -1924,7 +1932,7 @@ }, "principalId":{ "shape":"String", - "documentation":"

The principal ID. This currently supports a Amazon Web Services SSO UserId.

", + "documentation":"

The principal ID. This currently supports a IAM Identity Center UserId.

", "location":"uri", "locationName":"principalId" }, @@ -2111,7 +2119,7 @@ "members":{ "principalId":{ "shape":"String", - "documentation":"

The principal ID. This currently supports a Amazon Web Services SSO UserId.

", + "documentation":"

The principal ID. This currently supports a IAM Identity Center UserId.

", "location":"uri", "locationName":"principalId" }, @@ -2342,10 +2350,18 @@ "LaunchProfileInitializationScript":{ "type":"structure", "members":{ + "runtimeRoleArn":{ + "shape":"RoleArn", + "documentation":"

An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running.

" + }, "script":{ "shape":"StudioComponentInitializationScriptContent", "documentation":"

The initialization script.

" }, + "secureInitializationRoleArn":{ + "shape":"RoleArn", + "documentation":"

An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.

" + }, "studioComponentId":{ "shape":"StudioComponentId", "documentation":"

The unique identifier for a studio component resource.

" @@ -2458,7 +2474,9 @@ "LAUNCH_PROFILE_WITH_STREAM_SESSIONS_NOT_DELETED", "ENCRYPTION_KEY_ACCESS_DENIED", "ENCRYPTION_KEY_NOT_FOUND", - "INVALID_SUBNETS_PROVIDED" + "INVALID_SUBNETS_PROVIDED", + "INVALID_INSTANCE_TYPES_PROVIDED", + "INVALID_SUBNETS_COMBINATION" ] }, "LaunchProfileStudioComponentIdList":{ @@ -2512,7 +2530,7 @@ "type":"structure", "members":{ "endpoint":{ - "shape":"SyntheticLicenseServiceConfigurationString", + "shape":"SensitiveString", "documentation":"

The endpoint of the license service that is accessed by the studio component resource.

" } }, @@ -2656,7 +2674,7 @@ }, "principalId":{ "shape":"String", - "documentation":"

The principal ID. This currently supports a Amazon Web Services SSO UserId.

", + "documentation":"

The principal ID. This currently supports a IAM Identity Center UserId.

", "location":"querystring", "locationName":"principalId" }, @@ -3066,6 +3084,11 @@ }, "exception":true }, + "RoleArn":{ + "type":"string", + "max":2048, + "min":0 + }, "ScriptParameterKey":{ "type":"string", "documentation":"

A script parameter key.

", @@ -3094,6 +3117,10 @@ "min":1 }, "SecurityGroupId":{"type":"string"}, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, "ServiceQuotaExceededException":{ "type":"structure", "members":{ @@ -3121,7 +3148,7 @@ "type":"structure", "members":{ "endpoint":{ - "shape":"SyntheticSharedFileSystemConfigurationString", + "shape":"SensitiveString", "documentation":"

The endpoint of the shared file system that is accessed by the studio component resource.

" }, "fileSystemId":{ @@ -3133,7 +3160,7 @@ "documentation":"

The mount location for a shared file system on a Linux virtual workstation.

" }, "shareName":{ - "shape":"SyntheticSharedFileSystemConfigurationString", + "shape":"SensitiveString", "documentation":"

The name of the file share.

" }, "windowsMountDrive":{ @@ -3262,7 +3289,7 @@ }, "maxStoppedSessionLengthInMinutes":{ "shape":"StreamConfigurationMaxStoppedSessionLengthInMinutes", - "documentation":"

Integer that determines if you can start and stop your sessions and how long a session can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

If the value is missing or set to 0, your sessions can’t be stopped. If you then call StopStreamingSession, the session fails. If the time that a session stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will automatically be terminated by AWS (instead of stopped).

If the value is set to a positive number, the session can be stopped. You can call StopStreamingSession to stop sessions in the READY state. If the time that a session stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will automatically be stopped by AWS (instead of terminated).

" + "documentation":"

Integer that determines if you can start and stop your sessions and how long a session can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

If the value is missing or set to 0, your sessions can’t be stopped. If you then call StopStreamingSession, the session fails. If the time that a session stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will automatically be terminated (instead of stopped).

If the value is set to a positive number, the session can be stopped. You can call StopStreamingSession to stop sessions in the READY state. If the time that a session stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will automatically be stopped (instead of terminated).

" }, "sessionStorage":{ "shape":"StreamConfigurationSessionStorage", @@ -3297,7 +3324,7 @@ }, "maxStoppedSessionLengthInMinutes":{ "shape":"StreamConfigurationMaxStoppedSessionLengthInMinutes", - "documentation":"

Integer that determines if you can start and stop your sessions and how long a session can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

If the value is missing or set to 0, your sessions can’t be stopped. If you then call StopStreamingSession, the session fails. If the time that a session stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will automatically be terminated by AWS (instead of stopped).

If the value is set to a positive number, the session can be stopped. You can call StopStreamingSession to stop sessions in the READY state. If the time that a session stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will automatically be stopped by AWS (instead of terminated).

" + "documentation":"

Integer that determines if you can start and stop your sessions and how long a session can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

If the value is missing or set to 0, your sessions can’t be stopped. If you then call StopStreamingSession, the session fails. If the time that a session stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will automatically be terminated (instead of stopped).

If the value is set to a positive number, the session can be stopped. You can call StopStreamingSession to stop sessions in the READY state. If the time that a session stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will automatically be stopped (instead of terminated).

" }, "sessionStorage":{ "shape":"StreamConfigurationSessionStorage", @@ -3350,7 +3377,7 @@ "documentation":"

The ARN of the resource.

" }, "description":{ - "shape":"SyntheticStreamingImageStreamingImageDescription", + "shape":"StreamingImageDescription", "documentation":"

A human-readable description of the streaming image.

" }, "ec2ImageId":{ @@ -3366,7 +3393,7 @@ "documentation":"

The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.

" }, "name":{ - "shape":"SyntheticStreamingImageStreamingImageName", + "shape":"StreamingImageName", "documentation":"

A friendly name for a streaming image resource.

" }, "owner":{ @@ -3400,6 +3427,13 @@ }, "documentation":"

Represents a streaming image resource.

Streaming images are used by studio users to select which operating system and software they want to use in a Nimble Studio streaming session.

Amazon provides a number of streaming images that include popular 3rd-party software.

You can create your own streaming images using an Amazon Elastic Compute Cloud (Amazon EC2) machine image that you create for this purpose. You can also include software that your users require.

" }, + "StreamingImageDescription":{ + "type":"string", + "documentation":"

The description.

", + "max":256, + "min":0, + "sensitive":true + }, "StreamingImageEncryptionConfiguration":{ "type":"structure", "required":["keyType"], @@ -3441,6 +3475,13 @@ "type":"list", "member":{"shape":"StreamingImage"} }, + "StreamingImageName":{ + "type":"string", + "documentation":"

A friendly name for a streaming image resource.

", + "max":64, + "min":0, + "sensitive":true + }, "StreamingImageOwner":{ "type":"string", "documentation":"

StreamingImageOwner is the owner of a particular streaming image.

This string is either the studioId that contains the streaming image, or the word 'AMAZON' for images provided by Nimble Studio.

" @@ -3484,7 +3525,14 @@ "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.12xlarge", - "g4dn.16xlarge" + "g4dn.16xlarge", + "g3.4xlarge", + "g3s.xlarge", + "g5.xlarge", + "g5.2xlarge", + "g5.4xlarge", + "g5.8xlarge", + "g5.16xlarge" ] }, "StreamingInstanceTypeList":{ @@ -3692,7 +3740,7 @@ "documentation":"

The stream ID.

" }, "url":{ - "shape":"SyntheticStreamingSessionStreamString", + "shape":"SensitiveString", "documentation":"

The URL to connect to this stream using the DCV client.

" } }, @@ -3734,7 +3782,7 @@ "type":"structure", "members":{ "adminRoleArn":{ - "shape":"String", + "shape":"RoleArn", "documentation":"

The IAM role that studio admins assume when logging in to the Nimble Studio portal.

" }, "arn":{ @@ -3746,7 +3794,7 @@ "documentation":"

The Unix epoch timestamp in seconds for when the resource was created.

" }, "displayName":{ - "shape":"SyntheticStudioStudioDisplayName", + "shape":"StudioDisplayName", "documentation":"

A friendly name for the studio.

" }, "homeRegion":{ @@ -3755,7 +3803,7 @@ }, "ssoClientId":{ "shape":"String", - "documentation":"

The Amazon Web Services SSO application client ID used to integrate with Amazon Web Services SSO to enable Amazon Web Services SSO users to log in to Nimble Studio portal.

" + "documentation":"

The IAM Identity Center application client ID used to integrate with IAM Identity Center to enable IAM Identity Center users to log in to Nimble Studio portal.

" }, "state":{ "shape":"StudioState", @@ -3794,11 +3842,11 @@ "documentation":"

The Unix epoch timestamp in seconds for when the resource was updated.

" }, "userRoleArn":{ - "shape":"String", + "shape":"RoleArn", "documentation":"

The IAM role that studio users assume when logging in to the Nimble Studio portal.

" } }, - "documentation":"

Represents a studio resource.

A studio is the core resource used with Nimble Studio. You must create a studio first, before any other resource type can be created. All other resources you create and manage in Nimble Studio are contained within a studio.

When creating a studio, you must provides two IAM roles for use with the Nimble Studio portal. These roles are assumed by your users when they log in to the Nimble Studio portal via Amazon Web Services SSO and your identity source.

The user role must have the AmazonNimbleStudio-StudioUser managed policy attached for the portal to function properly.

The admin role must have the AmazonNimbleStudio-StudioAdmin managed policy attached for the portal to function properly.

Your studio roles must trust the identity.nimble.amazonaws.com service principal to function properly.

" + "documentation":"

Represents a studio resource.

A studio is the core resource used with Nimble Studio. You must create a studio first, before any other resource type can be created. All other resources you create and manage in Nimble Studio are contained within a studio.

When creating a studio, you must provides two IAM roles for use with the Nimble Studio portal. These roles are assumed by your users when they log in to the Nimble Studio portal via IAM Identity Center and your identity source.

The user role must have the AmazonNimbleStudio-StudioUser managed policy attached for the portal to function properly.

The admin role must have the AmazonNimbleStudio-StudioAdmin managed policy attached for the portal to function properly.

Your studio roles must trust the identity.nimble.amazonaws.com service principal to function properly.

" }, "StudioComponent":{ "type":"structure", @@ -3835,10 +3883,18 @@ "shape":"StudioComponentName", "documentation":"

A friendly name for the studio component resource.

" }, + "runtimeRoleArn":{ + "shape":"RoleArn", + "documentation":"

An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running.

" + }, "scriptParameters":{ "shape":"StudioComponentScriptParameterKeyValueList", "documentation":"

Parameters for the studio component scripts.

" }, + "secureInitializationRoleArn":{ + "shape":"RoleArn", + "documentation":"

An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.

" + }, "state":{ "shape":"StudioComponentState", "documentation":"

The current state.

" @@ -4080,6 +4136,12 @@ "type":"list", "member":{"shape":"StudioComponentType"} }, + "StudioDisplayName":{ + "type":"string", + "max":64, + "min":0, + "sensitive":true + }, "StudioEncryptionConfiguration":{ "type":"structure", "required":["keyType"], @@ -4133,7 +4195,7 @@ "documentation":"

The Active Directory Security Identifier for this user, if available.

" } }, - "documentation":"

A studio member is an association of a user from your studio identity source to elevated permissions that they are granted in the studio.

When you add a user to your studio using the Nimble Studio console, they are given access to the studio's AWS SSO application and are given access to log in to the Nimble Studio portal. These users have the permissions provided by the studio's user IAM role and do not appear in the studio membership collection. Only studio admins appear in studio membership.

When you add a user to studio membership with the persona ADMIN, upon logging in to the Nimble Studio portal, they are granted permissions specified by the Studio's Admin IAM role.

" + "documentation":"

A studio member is an association of a user from your studio identity source to elevated permissions that they are granted in the studio.

When you add a user to your studio using the Nimble Studio console, they are given access to the studio's IAM Identity Center application and are given access to log in to the Nimble Studio portal. These users have the permissions provided by the studio's user IAM role and do not appear in the studio membership collection. Only studio admins appear in studio membership.

When you add a user to studio membership with the persona ADMIN, upon logging in to the Nimble Studio portal, they are granted permissions specified by the Studio's Admin IAM role.

" }, "StudioMembershipList":{ "type":"list", @@ -4188,82 +4250,6 @@ "AWS_SSO_CONFIGURATION_REPAIR_IN_PROGRESS" ] }, - "SyntheticComputeFarmConfigurationString":{ - "type":"string", - "sensitive":true - }, - "SyntheticCreateStreamingImageRequestStreamingImageDescription":{ - "type":"string", - "documentation":"

The description.

", - "max":256, - "min":0, - "sensitive":true - }, - "SyntheticCreateStreamingImageRequestStreamingImageName":{ - "type":"string", - "documentation":"

A friendly name for a streaming image resource.

", - "max":64, - "min":0, - "sensitive":true - }, - "SyntheticCreateStudioRequestStudioDisplayName":{ - "type":"string", - "max":64, - "min":0, - "sensitive":true - }, - "SyntheticLicenseServiceConfigurationString":{ - "type":"string", - "sensitive":true - }, - "SyntheticSharedFileSystemConfigurationString":{ - "type":"string", - "sensitive":true - }, - "SyntheticStreamingImageStreamingImageDescription":{ - "type":"string", - "documentation":"

The description.

", - "max":256, - "min":0, - "sensitive":true - }, - "SyntheticStreamingImageStreamingImageName":{ - "type":"string", - "documentation":"

A friendly name for a streaming image resource.

", - "max":64, - "min":0, - "sensitive":true - }, - "SyntheticStreamingSessionStreamString":{ - "type":"string", - "sensitive":true - }, - "SyntheticStudioStudioDisplayName":{ - "type":"string", - "max":64, - "min":0, - "sensitive":true - }, - "SyntheticUpdateStreamingImageRequestStreamingImageDescription":{ - "type":"string", - "documentation":"

The description.

", - "max":256, - "min":0, - "sensitive":true - }, - "SyntheticUpdateStreamingImageRequestStreamingImageName":{ - "type":"string", - "documentation":"

A friendly name for a streaming image resource.

", - "max":64, - "min":0, - "sensitive":true - }, - "SyntheticUpdateStudioRequestStudioDisplayName":{ - "type":"string", - "max":64, - "min":0, - "sensitive":true - }, "TagResourceRequest":{ "type":"structure", "required":["resourceArn"], @@ -4372,7 +4358,7 @@ }, "principalId":{ "shape":"String", - "documentation":"

The principal ID. This currently supports a Amazon Web Services SSO UserId.

", + "documentation":"

The principal ID. This currently supports a IAM Identity Center UserId.

", "location":"uri", "locationName":"principalId" }, @@ -4465,11 +4451,11 @@ "locationName":"X-Amz-Client-Token" }, "description":{ - "shape":"SyntheticUpdateStreamingImageRequestStreamingImageDescription", + "shape":"StreamingImageDescription", "documentation":"

The description.

" }, "name":{ - "shape":"SyntheticUpdateStreamingImageRequestStreamingImageName", + "shape":"StreamingImageName", "documentation":"

The name for the streaming image.

" }, "streamingImageId":{ @@ -4526,10 +4512,18 @@ "shape":"StudioComponentName", "documentation":"

The name for the studio component.

" }, + "runtimeRoleArn":{ + "shape":"RoleArn", + "documentation":"

An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running.

" + }, "scriptParameters":{ "shape":"StudioComponentScriptParameterKeyValueList", "documentation":"

Parameters for the studio component scripts.

" }, + "secureInitializationRoleArn":{ + "shape":"RoleArn", + "documentation":"

An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.

" + }, "studioComponentId":{ "shape":"String", "documentation":"

The studio component ID.

", @@ -4566,7 +4560,7 @@ "required":["studioId"], "members":{ "adminRoleArn":{ - "shape":"String", + "shape":"RoleArn", "documentation":"

The IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.

" }, "clientToken":{ @@ -4577,7 +4571,7 @@ "locationName":"X-Amz-Client-Token" }, "displayName":{ - "shape":"SyntheticUpdateStudioRequestStudioDisplayName", + "shape":"StudioDisplayName", "documentation":"

A friendly name for the studio.

" }, "studioId":{ @@ -4587,7 +4581,7 @@ "locationName":"studioId" }, "userRoleArn":{ - "shape":"String", + "shape":"RoleArn", "documentation":"

The IAM role that Studio Users will assume when logging in to the Nimble Studio portal.

" } } diff --git a/botocore/data/nimble/2020-08-01/waiters-2.json b/botocore/data/nimble/2020-08-01/waiters-2.json index 7ad4ad9b..2c37a115 100644 --- a/botocore/data/nimble/2020-08-01/waiters-2.json +++ b/botocore/data/nimble/2020-08-01/waiters-2.json @@ -80,7 +80,7 @@ } ] }, "StreamingSessionDeleted" : { - "description" : "Wait until a StreamingSessionDeleted. Use this after invoking Deletesession", + "description" : "Wait until a StreamingSessionDeleted. Use this after invoking DeleteStreamingSession", "delay" : 5, "maxAttempts" : 180, "operation" : "GetStreamingSession", diff --git a/botocore/data/oam/2022-06-10/endpoint-rule-set-1.json b/botocore/data/oam/2022-06-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..252a9968 --- /dev/null +++ b/botocore/data/oam/2022-06-10/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://oam-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://oam-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://oam.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://oam.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/oam/2022-06-10/paginators-1.json b/botocore/data/oam/2022-06-10/paginators-1.json new file mode 100644 index 00000000..3595f009 --- /dev/null +++ b/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/botocore/data/oam/2022-06-10/service-2.json b/botocore/data/oam/2022-06-10/service-2.json new file mode 100644 index 00000000..38c078d5 --- /dev/null +++ b/botocore/data/oam/2022-06-10/service-2.json @@ -0,0 +1,1022 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-06-10", + "endpointPrefix":"oam", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"CloudWatch Observability Access Manager", + "serviceId":"OAM", + "signatureVersion":"v4", + "signingName":"oam", + "uid":"oam-2022-06-10" + }, + "operations":{ + "CreateLink":{ + "name":"CreateLink", + "http":{ + "method":"POST", + "requestUri":"/CreateLink", + "responseCode":200 + }, + "input":{"shape":"CreateLinkInput"}, + "output":{"shape":"CreateLinkOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"ConflictException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Creates a link between a source account and a sink that you have created in a monitoring account.

Before you create a link, you must create a sink in the monitoring account and create a sink policy in that account. The sink policy must permit the source account to link to it. You can grant permission to source accounts by granting permission to an entire organization or to individual accounts.

For more information, see CreateSink and PutSinkPolicy.

Each monitoring account can be linked to as many as 100,000 source accounts.

Each source account can be linked to as many as five monitoring accounts.

" + }, + "CreateSink":{ + "name":"CreateSink", + "http":{ + "method":"POST", + "requestUri":"/CreateSink", + "responseCode":200 + }, + "input":{"shape":"CreateSinkInput"}, + "output":{"shape":"CreateSinkOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"ConflictException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Use this to create a sink in the current account, so that it can be used as a monitoring account in CloudWatch cross-account observability. A sink is a resource that represents an attachment point in a monitoring account. Source accounts can link to the sink to send observability data.

After you create a sink, you must create a sink policy that allows source accounts to attach to it. For more information, see PutSinkPolicy.

Each account can contain one sink. If you delete a sink, you can then create a new one in that account.

" + }, + "DeleteLink":{ + "name":"DeleteLink", + "http":{ + "method":"POST", + "requestUri":"/DeleteLink", + "responseCode":200 + }, + "input":{"shape":"DeleteLinkInput"}, + "output":{"shape":"DeleteLinkOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes a link between a monitoring account sink and a source account. You must run this operation in the source account.

" + }, + "DeleteSink":{ + "name":"DeleteSink", + "http":{ + "method":"POST", + "requestUri":"/DeleteSink", + "responseCode":200 + }, + "input":{"shape":"DeleteSinkInput"}, + "output":{"shape":"DeleteSinkOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"ConflictException"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes a sink. You must delete all links to a sink before you can delete that sink.

" + }, + "GetLink":{ + "name":"GetLink", + "http":{ + "method":"POST", + "requestUri":"/GetLink", + "responseCode":200 + }, + "input":{"shape":"GetLinkInput"}, + "output":{"shape":"GetLinkOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns complete information about one link.

To use this operation, provide the link ARN. To retrieve a list of link ARNs, use ListLinks.

" + }, + "GetSink":{ + "name":"GetSink", + "http":{ + "method":"POST", + "requestUri":"/GetSink", + "responseCode":200 + }, + "input":{"shape":"GetSinkInput"}, + "output":{"shape":"GetSinkOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns complete information about one monitoring account sink.

To use this operation, provide the sink ARN. To retrieve a list of sink ARNs, use ListSinks.

" + }, + "GetSinkPolicy":{ + "name":"GetSinkPolicy", + "http":{ + "method":"POST", + "requestUri":"/GetSinkPolicy", + "responseCode":200 + }, + "input":{"shape":"GetSinkPolicyInput"}, + "output":{"shape":"GetSinkPolicyOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns the current sink policy attached to this sink. The sink policy specifies what accounts can attach to this sink as source accounts, and what types of data they can share.

" + }, + "ListAttachedLinks":{ + "name":"ListAttachedLinks", + "http":{ + "method":"POST", + "requestUri":"/ListAttachedLinks", + "responseCode":200 + }, + "input":{"shape":"ListAttachedLinksInput"}, + "output":{"shape":"ListAttachedLinksOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a list of source account links that are linked to this monitoring account sink.

To use this operation, provide the sink ARN. To retrieve a list of sink ARNs, use ListSinks.

To find a list of links for one source account, use ListLinks.

" + }, + "ListLinks":{ + "name":"ListLinks", + "http":{ + "method":"POST", + "requestUri":"/ListLinks", + "responseCode":200 + }, + "input":{"shape":"ListLinksInput"}, + "output":{"shape":"ListLinksOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Use this operation in a source account to return a list of links to monitoring account sinks that this source account has.

To find a list of links for one monitoring account sink, use ListAttachedLinks from within the monitoring account.

" + }, + "ListSinks":{ + "name":"ListSinks", + "http":{ + "method":"POST", + "requestUri":"/ListSinks", + "responseCode":200 + }, + "input":{"shape":"ListSinksInput"}, + "output":{"shape":"ListSinksOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Use this operation in a monitoring account to return the list of sinks created in that account.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Displays the tags associated with a resource. Both sinks and links support tagging.

" + }, + "PutSinkPolicy":{ + "name":"PutSinkPolicy", + "http":{ + "method":"POST", + "requestUri":"/PutSinkPolicy", + "responseCode":200 + }, + "input":{"shape":"PutSinkPolicyInput"}, + "output":{"shape":"PutSinkPolicyOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Creates or updates the resource policy that grants permissions to source accounts to link to the monitoring account sink. When you create a sink policy, you can grant permissions to all accounts in an organization or to individual accounts.

You can also use a sink policy to limit the types of data that is shared. The three types that you can allow or deny are:

  • Metrics - Specify with AWS::CloudWatch::Metric

  • Log groups - Specify with AWS::Logs::LogGroup

  • Traces - Specify with AWS::XRay::Trace

See the examples in this section to see how to specify permitted source accounts and data types.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"PUT", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"TooManyTagsException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Assigns one or more tags (key-value pairs) to the specified resource. Both sinks and links can be tagged.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a resource that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a resource.

Unlike tagging permissions in other Amazon Web Services services, to tag or untag links and sinks you must have the oam:ResourceTag permission. The iam:ResourceTag permission does not allow you to tag and untag links and sinks.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Removes one or more tags from the specified resource.

Unlike tagging permissions in other Amazon Web Services services, to tag or untag links and sinks you must have the oam:ResourceTag permission. The iam:TagResource permission does not allow you to tag and untag links and sinks.

" + }, + "UpdateLink":{ + "name":"UpdateLink", + "http":{ + "method":"POST", + "requestUri":"/UpdateLink", + "responseCode":200 + }, + "input":{"shape":"UpdateLinkInput"}, + "output":{"shape":"UpdateLinkOutput"}, + "errors":[ + {"shape":"InternalServiceFault"}, + {"shape":"MissingRequiredParameterException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Use this operation to change what types of data are shared from a source account to its linked monitoring account sink. You can't change the sink or change the monitoring account with this operation.

To update the list of tags associated with the sink, use TagResource.

" + } + }, + "shapes":{ + "Arn":{ + "type":"string", + "pattern":"arn:(\\w|-)+:oam:.+:.+:.+.*" + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "amznErrorType":{ + "shape":"String", + "documentation":"

The name of the exception.

", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

A resource was in an inconsistent state during an update or a deletion.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateLinkInput":{ + "type":"structure", + "required":[ + "LabelTemplate", + "ResourceTypes", + "SinkIdentifier" + ], + "members":{ + "LabelTemplate":{ + "shape":"LabelTemplate", + "documentation":"

Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account.

You can use a custom label or use the following variables:

  • $AccountName is the name of the account

  • $AccountEmail is the globally unique email address of the account

  • $AccountEmailNoDomain is the email address of the account without the domain name

" + }, + "ResourceTypes":{ + "shape":"ResourceTypesInput", + "documentation":"

An array of strings that define which types of data that the source account shares with the monitoring account.

" + }, + "SinkIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The ARN of the sink to use to create this link. You can use ListSinks to find the ARNs of sinks.

For more information about sinks, see CreateSink.

" + }, + "Tags":{ + "shape":"TagMapInput", + "documentation":"

Assigns one or more tags (key-value pairs) to the link.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

" + } + } + }, + "CreateLinkOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The ARN of the link that is newly created.

" + }, + "Id":{ + "shape":"String", + "documentation":"

The random ID string that Amazon Web Services generated as part of the link ARN.

" + }, + "Label":{ + "shape":"String", + "documentation":"

The label that you assigned to this link. If the labelTemplate includes variables, this field displays the variables resolved to their actual values.

" + }, + "LabelTemplate":{ + "shape":"String", + "documentation":"

The exact label template that you specified, with the variables not resolved.

" + }, + "ResourceTypes":{ + "shape":"ResourceTypesOutput", + "documentation":"

The resource types supported by this link.

" + }, + "SinkArn":{ + "shape":"String", + "documentation":"

The ARN of the sink that is used for this link.

" + }, + "Tags":{ + "shape":"TagMapOutput", + "documentation":"

The tags assigned to the link.

" + } + } + }, + "CreateSinkInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"SinkName", + "documentation":"

A name for the sink.

" + }, + "Tags":{ + "shape":"TagMapInput", + "documentation":"

Assigns one or more tags (key-value pairs) to the link.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

For more information about using tags to control access, see Controlling access to Amazon Web Services resources using tags.

" + } + } + }, + "CreateSinkOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The ARN of the sink that is newly created.

" + }, + "Id":{ + "shape":"String", + "documentation":"

The random ID string that Amazon Web Services generated as part of the sink ARN.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the sink.

" + }, + "Tags":{ + "shape":"TagMapOutput", + "documentation":"

The tags assigned to the sink.

" + } + } + }, + "DeleteLinkInput":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The ARN of the link to delete.

" + } + } + }, + "DeleteLinkOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteSinkInput":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The ARN of the sink to delete.

" + } + } + }, + "DeleteSinkOutput":{ + "type":"structure", + "members":{ + } + }, + "GetLinkInput":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The ARN of the link to retrieve information for.

" + } + } + }, + "GetLinkOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The ARN of the link.

" + }, + "Id":{ + "shape":"String", + "documentation":"

The random ID string that Amazon Web Services generated as part of the link ARN.

" + }, + "Label":{ + "shape":"String", + "documentation":"

The label that you assigned to this link, with the variables resolved to their actual values.

" + }, + "LabelTemplate":{ + "shape":"String", + "documentation":"

The exact label template that was specified when the link was created, with the template variables not resolved.

" + }, + "ResourceTypes":{ + "shape":"ResourceTypesOutput", + "documentation":"

The resource types supported by this link.

" + }, + "SinkArn":{ + "shape":"String", + "documentation":"

The ARN of the sink that is used for this link.

" + }, + "Tags":{ + "shape":"TagMapOutput", + "documentation":"

The tags assigned to the link.

" + } + } + }, + "GetSinkInput":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The ARN of the sink to retrieve information for.

" + } + } + }, + "GetSinkOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The ARN of the sink.

" + }, + "Id":{ + "shape":"String", + "documentation":"

The random ID string that Amazon Web Services generated as part of the sink ARN.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the sink.

" + }, + "Tags":{ + "shape":"TagMapOutput", + "documentation":"

The tags assigned to the sink.

" + } + } + }, + "GetSinkPolicyInput":{ + "type":"structure", + "required":["SinkIdentifier"], + "members":{ + "SinkIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The ARN of the sink to retrieve the policy of.

" + } + } + }, + "GetSinkPolicyOutput":{ + "type":"structure", + "members":{ + "SinkArn":{ + "shape":"String", + "documentation":"

The ARN of the sink.

" + }, + "SinkId":{ + "shape":"String", + "documentation":"

The random ID string that Amazon Web Services generated as part of the sink ARN.

" + }, + "Policy":{ + "shape":"String", + "documentation":"

The policy that you specified, in JSON format.

" + } + } + }, + "InternalServiceFault":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "amznErrorType":{ + "shape":"String", + "documentation":"

The name of the exception.

", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

Unexpected error while processing the request. Retry the request.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"}, + "amznErrorType":{ + "shape":"String", + "documentation":"

The name of the exception.

", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

A parameter is specified incorrectly.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LabelTemplate":{ + "type":"string", + "max":64, + "min":1 + }, + "ListAttachedLinksInput":{ + "type":"structure", + "required":["SinkIdentifier"], + "members":{ + "MaxResults":{ + "shape":"ListAttachedLinksMaxResults", + "documentation":"

Limits the number of returned links to the specified number.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of items to return. You received this token from a previous call.

" + }, + "SinkIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The ARN of the sink that you want to retrieve links for.

" + } + } + }, + "ListAttachedLinksItem":{ + "type":"structure", + "members":{ + "Label":{ + "shape":"String", + "documentation":"

The label that was assigned to this link at creation, with the variables resolved to their actual values.

" + }, + "LinkArn":{ + "shape":"String", + "documentation":"

The ARN of the link.

" + }, + "ResourceTypes":{ + "shape":"ResourceTypesOutput", + "documentation":"

The resource types supported by this link.

" + } + }, + "documentation":"

A structure that contains information about one link attached to this monitoring account sink.

" + }, + "ListAttachedLinksItems":{ + "type":"list", + "member":{"shape":"ListAttachedLinksItem"} + }, + "ListAttachedLinksMaxResults":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListAttachedLinksOutput":{ + "type":"structure", + "required":["Items"], + "members":{ + "Items":{ + "shape":"ListAttachedLinksItems", + "documentation":"

An array of structures that contain the information about the attached links.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token to use when requesting the next set of links.

" + } + } + }, + "ListLinksInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListLinksMaxResults", + "documentation":"

Limits the number of returned links to the specified number.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of items to return. You received this token from a previous call.

" + } + } + }, + "ListLinksItem":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The ARN of the link.

" + }, + "Id":{ + "shape":"String", + "documentation":"

The random ID string that Amazon Web Services generated as part of the link ARN.

" + }, + "Label":{ + "shape":"String", + "documentation":"

The label that was assigned to this link at creation, with the variables resolved to their actual values.

" + }, + "ResourceTypes":{ + "shape":"ResourceTypesOutput", + "documentation":"

The resource types supported by this link.

" + }, + "SinkArn":{ + "shape":"String", + "documentation":"

The ARN of the sink that this link is attached to.

" + } + }, + "documentation":"

A structure that contains information about one of this source account's links to a monitoring account.

" + }, + "ListLinksItems":{ + "type":"list", + "member":{"shape":"ListLinksItem"} + }, + "ListLinksMaxResults":{ + "type":"integer", + "box":true, + "max":5, + "min":1 + }, + "ListLinksOutput":{ + "type":"structure", + "required":["Items"], + "members":{ + "Items":{ + "shape":"ListLinksItems", + "documentation":"

An array of structures that contain the information about the returned links.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token to use when requesting the next set of links.

" + } + } + }, + "ListSinksInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListSinksMaxResults", + "documentation":"

Limits the number of returned links to the specified number.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token for the next set of items to return. You received this token from a previous call.

" + } + } + }, + "ListSinksItem":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The ARN of the sink.

" + }, + "Id":{ + "shape":"String", + "documentation":"

The random ID string that Amazon Web Services generated as part of the sink ARN.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the sink.

" + } + }, + "documentation":"

A structure that contains information about one of this monitoring account's sinks.

" + }, + "ListSinksItems":{ + "type":"list", + "member":{"shape":"ListSinksItem"} + }, + "ListSinksMaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSinksOutput":{ + "type":"structure", + "required":["Items"], + "members":{ + "Items":{ + "shape":"ListSinksItems", + "documentation":"

An array of structures that contain the information about the returned sinks.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The token to use when requesting the next set of sinks.

" + } + } + }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"Arn", + "documentation":"

The ARN of the resource that you want to view tags for.

The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id

The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id

For more information about ARN format, see CloudWatch Logs resources and operations.

Unlike tagging permissions in other Amazon Web Services services, to retrieve the list of tags for links or sinks you must have the oam:RequestTag permission. The aws:ReguestTag permission does not allow you to tag and untag links and sinks.

", + "location":"uri", + "locationName":"ResourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagMapOutput", + "documentation":"

The list of tags associated with the requested resource.>

" + } + } + }, + "MissingRequiredParameterException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"}, + "amznErrorType":{ + "shape":"String", + "documentation":"

The name of the exception.

", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

A required parameter is missing from the request.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "NextToken":{"type":"string"}, + "PutSinkPolicyInput":{ + "type":"structure", + "required":[ + "SinkIdentifier", + "Policy" + ], + "members":{ + "SinkIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The ARN of the sink to attach this policy to.

" + }, + "Policy":{ + "shape":"SinkPolicy", + "documentation":"

The JSON policy to use. If you are updating an existing policy, the entire existing policy is replaced by what you specify here.

The policy must be in JSON string format with quotation marks escaped and no newlines.

For examples of different types of policies, see the Examples section on this page.

" + } + } + }, + "PutSinkPolicyOutput":{ + "type":"structure", + "members":{ + "SinkArn":{ + "shape":"String", + "documentation":"

The ARN of the sink.

" + }, + "SinkId":{ + "shape":"String", + "documentation":"

The random ID string that Amazon Web Services generated as part of the sink ARN.

" + }, + "Policy":{ + "shape":"String", + "documentation":"

The policy that you specified.

" + } + } + }, + "ResourceIdentifier":{ + "type":"string", + "pattern":"[a-zA-Z0-9][a-zA-Z0-9_:\\.\\-\\/]{0,2047}" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "amznErrorType":{ + "shape":"String", + "documentation":"

The name of the exception.

", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

The request references a resource that does not exist.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResourceType":{ + "type":"string", + "enum":[ + "AWS::CloudWatch::Metric", + "AWS::Logs::LogGroup", + "AWS::XRay::Trace" + ] + }, + "ResourceTypesInput":{ + "type":"list", + "member":{"shape":"ResourceType"}, + "max":50, + "min":1 + }, + "ResourceTypesOutput":{ + "type":"list", + "member":{"shape":"String"} + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "amznErrorType":{ + "shape":"String", + "documentation":"

The name of the exception.

", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

The request would cause a service quota to be exceeded.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "SinkName":{ + "type":"string", + "pattern":"[a-zA-Z0-9_\\.\\-]{1,255}" + }, + "SinkPolicy":{"type":"string"}, + "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagMapInput":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":0 + }, + "TagMapOutput":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"Arn", + "documentation":"

The ARN of the resource that you're adding tags to.

The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id

The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id

For more information about ARN format, see CloudWatch Logs resources and operations.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "Tags":{ + "shape":"TagMapInput", + "documentation":"

The list of key-value pairs to associate with the resource.

" + } + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

A resource can have no more than 50 tags.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"Arn", + "documentation":"

The ARN of the resource that you're removing tags from.

The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id

The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id

For more information about ARN format, see CloudWatch Logs resources and operations.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "TagKeys":{ + "shape":"TagKeys", + "documentation":"

The list of tag keys to remove from the resource.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "UpdateLinkInput":{ + "type":"structure", + "required":[ + "Identifier", + "ResourceTypes" + ], + "members":{ + "Identifier":{ + "shape":"ResourceIdentifier", + "documentation":"

The ARN of the link that you want to update.

" + }, + "ResourceTypes":{ + "shape":"ResourceTypesInput", + "documentation":"

An array of strings that define which types of data that the source account will send to the monitoring account.

Your input here replaces the current set of data types that are shared.

" + } + } + }, + "UpdateLinkOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The ARN of the link that you have updated.

" + }, + "Id":{ + "shape":"String", + "documentation":"

The random ID string that Amazon Web Services generated as part of the sink ARN.

" + }, + "Label":{ + "shape":"String", + "documentation":"

The label assigned to this link, with the variables resolved to their actual values.

" + }, + "LabelTemplate":{ + "shape":"LabelTemplate", + "documentation":"

The exact label template that was specified when the link was created, with the template variables not resolved.

" + }, + "ResourceTypes":{ + "shape":"ResourceTypesOutput", + "documentation":"

The resource types now supported by this link.

" + }, + "SinkArn":{ + "shape":"String", + "documentation":"

The ARN of the sink that is used for this link.

" + }, + "Tags":{ + "shape":"TagMapOutput", + "documentation":"

The tags assigned to the link.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The value of a parameter in the request caused an error.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + }, + "documentation":"

Use Amazon CloudWatch Observability Access Manager to create and manage links between source accounts and monitoring accounts by using CloudWatch cross-account observability. With CloudWatch cross-account observability, you can monitor and troubleshoot applications that span multiple accounts within a Region. Seamlessly search, visualize, and analyze your metrics, logs, and traces in any of the linked accounts without account boundaries.

 <p>Set up one or more Amazon Web Services accounts as <i>monitoring accounts</i> and link them with multiple <i>source accounts</i>. A monitoring account is a central Amazon Web Services account that can view and interact with observability data generated from source accounts. A source account is an individual Amazon Web Services account that generates observability data for the resources that reside in it. Source accounts share their observability data with the monitoring account. The shared observability data can include metrics in Amazon CloudWatch, logs in Amazon CloudWatch Logs, and traces in X-Ray.</p> 
" +} diff --git a/botocore/data/omics/2022-11-28/endpoint-rule-set-1.json b/botocore/data/omics/2022-11-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..8c1b3668 --- /dev/null +++ b/botocore/data/omics/2022-11-28/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://omics-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://omics-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://omics.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://omics.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/omics/2022-11-28/paginators-1.json b/botocore/data/omics/2022-11-28/paginators-1.json new file mode 100644 index 00000000..ea92fb1c --- /dev/null +++ b/botocore/data/omics/2022-11-28/paginators-1.json @@ -0,0 +1,100 @@ +{ + "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" + } + } +} diff --git a/botocore/data/omics/2022-11-28/service-2.json b/botocore/data/omics/2022-11-28/service-2.json new file mode 100644 index 00000000..1718af1e --- /dev/null +++ b/botocore/data/omics/2022-11-28/service-2.json @@ -0,0 +1,7338 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-11-28", + "endpointPrefix":"omics", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon Omics", + "serviceId":"Omics", + "signatureVersion":"v4", + "signingName":"omics", + "uid":"omics-2022-11-28" + }, + "operations":{ + "BatchDeleteReadSet":{ + "name":"BatchDeleteReadSet", + "http":{ + "method":"POST", + "requestUri":"/sequencestore/{sequenceStoreId}/readset/batch/delete", + "responseCode":200 + }, + "input":{"shape":"BatchDeleteReadSetRequest"}, + "output":{"shape":"BatchDeleteReadSetResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Deletes one or more read sets.

", + "endpoint":{"hostPrefix":"control-storage-"}, + "idempotent":true + }, + "CancelAnnotationImportJob":{ + "name":"CancelAnnotationImportJob", + "http":{ + "method":"DELETE", + "requestUri":"/import/annotation/{jobId}", + "responseCode":200 + }, + "input":{"shape":"CancelAnnotationImportRequest"}, + "output":{"shape":"CancelAnnotationImportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Cancels an annotation import job.

", + "endpoint":{"hostPrefix":"analytics-"}, + "idempotent":true + }, + "CancelRun":{ + "name":"CancelRun", + "http":{ + "method":"POST", + "requestUri":"/run/{id}/cancel", + "responseCode":202 + }, + "input":{"shape":"CancelRunRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Cancels a run.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "CancelVariantImportJob":{ + "name":"CancelVariantImportJob", + "http":{ + "method":"DELETE", + "requestUri":"/import/variant/{jobId}", + "responseCode":200 + }, + "input":{"shape":"CancelVariantImportRequest"}, + "output":{"shape":"CancelVariantImportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Cancels a variant import job.

", + "endpoint":{"hostPrefix":"analytics-"}, + "idempotent":true + }, + "CreateAnnotationStore":{ + "name":"CreateAnnotationStore", + "http":{ + "method":"POST", + "requestUri":"/annotationStore", + "responseCode":200 + }, + "input":{"shape":"CreateAnnotationStoreRequest"}, + "output":{"shape":"CreateAnnotationStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates an annotation store.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "CreateReferenceStore":{ + "name":"CreateReferenceStore", + "http":{ + "method":"POST", + "requestUri":"/referencestore", + "responseCode":200 + }, + "input":{"shape":"CreateReferenceStoreRequest"}, + "output":{"shape":"CreateReferenceStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Creates a reference store.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "CreateRunGroup":{ + "name":"CreateRunGroup", + "http":{ + "method":"POST", + "requestUri":"/runGroup", + "responseCode":201 + }, + "input":{"shape":"CreateRunGroupRequest"}, + "output":{"shape":"CreateRunGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Creates a run group.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "CreateSequenceStore":{ + "name":"CreateSequenceStore", + "http":{ + "method":"POST", + "requestUri":"/sequencestore", + "responseCode":200 + }, + "input":{"shape":"CreateSequenceStoreRequest"}, + "output":{"shape":"CreateSequenceStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Creates a sequence store.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "CreateVariantStore":{ + "name":"CreateVariantStore", + "http":{ + "method":"POST", + "requestUri":"/variantStore", + "responseCode":200 + }, + "input":{"shape":"CreateVariantStoreRequest"}, + "output":{"shape":"CreateVariantStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a variant store.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "CreateWorkflow":{ + "name":"CreateWorkflow", + "http":{ + "method":"POST", + "requestUri":"/workflow", + "responseCode":201 + }, + "input":{"shape":"CreateWorkflowRequest"}, + "output":{"shape":"CreateWorkflowResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Creates a workflow.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "DeleteAnnotationStore":{ + "name":"DeleteAnnotationStore", + "http":{ + "method":"DELETE", + "requestUri":"/annotationStore/{name}", + "responseCode":200 + }, + "input":{"shape":"DeleteAnnotationStoreRequest"}, + "output":{"shape":"DeleteAnnotationStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes an annotation store.

", + "endpoint":{"hostPrefix":"analytics-"}, + "idempotent":true + }, + "DeleteReference":{ + "name":"DeleteReference", + "http":{ + "method":"DELETE", + "requestUri":"/referencestore/{referenceStoreId}/reference/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteReferenceRequest"}, + "output":{"shape":"DeleteReferenceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Deletes a genome reference.

", + "endpoint":{"hostPrefix":"control-storage-"}, + "idempotent":true + }, + "DeleteReferenceStore":{ + "name":"DeleteReferenceStore", + "http":{ + "method":"DELETE", + "requestUri":"/referencestore/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteReferenceStoreRequest"}, + "output":{"shape":"DeleteReferenceStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Deletes a genome reference store.

", + "endpoint":{"hostPrefix":"control-storage-"}, + "idempotent":true + }, + "DeleteRun":{ + "name":"DeleteRun", + "http":{ + "method":"DELETE", + "requestUri":"/run/{id}", + "responseCode":202 + }, + "input":{"shape":"DeleteRunRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Deletes a workflow run.

", + "endpoint":{"hostPrefix":"workflows-"}, + "idempotent":true + }, + "DeleteRunGroup":{ + "name":"DeleteRunGroup", + "http":{ + "method":"DELETE", + "requestUri":"/runGroup/{id}", + "responseCode":202 + }, + "input":{"shape":"DeleteRunGroupRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Deletes a workflow run group.

", + "endpoint":{"hostPrefix":"workflows-"}, + "idempotent":true + }, + "DeleteSequenceStore":{ + "name":"DeleteSequenceStore", + "http":{ + "method":"DELETE", + "requestUri":"/sequencestore/{id}", + "responseCode":200 + }, + "input":{"shape":"DeleteSequenceStoreRequest"}, + "output":{"shape":"DeleteSequenceStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Deletes a sequence store.

", + "endpoint":{"hostPrefix":"control-storage-"}, + "idempotent":true + }, + "DeleteVariantStore":{ + "name":"DeleteVariantStore", + "http":{ + "method":"DELETE", + "requestUri":"/variantStore/{name}", + "responseCode":200 + }, + "input":{"shape":"DeleteVariantStoreRequest"}, + "output":{"shape":"DeleteVariantStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a variant store.

", + "endpoint":{"hostPrefix":"analytics-"}, + "idempotent":true + }, + "DeleteWorkflow":{ + "name":"DeleteWorkflow", + "http":{ + "method":"DELETE", + "requestUri":"/workflow/{id}", + "responseCode":202 + }, + "input":{"shape":"DeleteWorkflowRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Deletes a workflow.

", + "endpoint":{"hostPrefix":"workflows-"}, + "idempotent":true + }, + "GetAnnotationImportJob":{ + "name":"GetAnnotationImportJob", + "http":{ + "method":"GET", + "requestUri":"/import/annotation/{jobId}", + "responseCode":200 + }, + "input":{"shape":"GetAnnotationImportRequest"}, + "output":{"shape":"GetAnnotationImportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets information about an annotation import job.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "GetAnnotationStore":{ + "name":"GetAnnotationStore", + "http":{ + "method":"GET", + "requestUri":"/annotationStore/{name}", + "responseCode":200 + }, + "input":{"shape":"GetAnnotationStoreRequest"}, + "output":{"shape":"GetAnnotationStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets information about an annotation store.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "GetReadSet":{ + "name":"GetReadSet", + "http":{ + "method":"GET", + "requestUri":"/sequencestore/{sequenceStoreId}/readset/{id}", + "responseCode":200 + }, + "input":{"shape":"GetReadSetRequest"}, + "output":{"shape":"GetReadSetResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"RangeNotSatisfiableException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets a file from a read set.

", + "endpoint":{"hostPrefix":"storage-"} + }, + "GetReadSetActivationJob":{ + "name":"GetReadSetActivationJob", + "http":{ + "method":"GET", + "requestUri":"/sequencestore/{sequenceStoreId}/activationjob/{id}", + "responseCode":200 + }, + "input":{"shape":"GetReadSetActivationJobRequest"}, + "output":{"shape":"GetReadSetActivationJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a read set activation job.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "GetReadSetExportJob":{ + "name":"GetReadSetExportJob", + "http":{ + "method":"GET", + "requestUri":"/sequencestore/{sequenceStoreId}/exportjob/{id}", + "responseCode":200 + }, + "input":{"shape":"GetReadSetExportJobRequest"}, + "output":{"shape":"GetReadSetExportJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a read set export job.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "GetReadSetImportJob":{ + "name":"GetReadSetImportJob", + "http":{ + "method":"GET", + "requestUri":"/sequencestore/{sequenceStoreId}/importjob/{id}", + "responseCode":200 + }, + "input":{"shape":"GetReadSetImportJobRequest"}, + "output":{"shape":"GetReadSetImportJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a read set import job.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "GetReadSetMetadata":{ + "name":"GetReadSetMetadata", + "http":{ + "method":"GET", + "requestUri":"/sequencestore/{sequenceStoreId}/readset/{id}/metadata", + "responseCode":200 + }, + "input":{"shape":"GetReadSetMetadataRequest"}, + "output":{"shape":"GetReadSetMetadataResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets details about a read set.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "GetReference":{ + "name":"GetReference", + "http":{ + "method":"GET", + "requestUri":"/referencestore/{referenceStoreId}/reference/{id}", + "responseCode":200 + }, + "input":{"shape":"GetReferenceRequest"}, + "output":{"shape":"GetReferenceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"RangeNotSatisfiableException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets a reference file.

", + "endpoint":{"hostPrefix":"storage-"} + }, + "GetReferenceImportJob":{ + "name":"GetReferenceImportJob", + "http":{ + "method":"GET", + "requestUri":"/referencestore/{referenceStoreId}/importjob/{id}", + "responseCode":200 + }, + "input":{"shape":"GetReferenceImportJobRequest"}, + "output":{"shape":"GetReferenceImportJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a reference import job.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "GetReferenceMetadata":{ + "name":"GetReferenceMetadata", + "http":{ + "method":"GET", + "requestUri":"/referencestore/{referenceStoreId}/reference/{id}/metadata", + "responseCode":200 + }, + "input":{"shape":"GetReferenceMetadataRequest"}, + "output":{"shape":"GetReferenceMetadataResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a genome reference's metadata.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "GetReferenceStore":{ + "name":"GetReferenceStore", + "http":{ + "method":"GET", + "requestUri":"/referencestore/{id}", + "responseCode":200 + }, + "input":{"shape":"GetReferenceStoreRequest"}, + "output":{"shape":"GetReferenceStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a reference store.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "GetRun":{ + "name":"GetRun", + "http":{ + "method":"GET", + "requestUri":"/run/{id}", + "responseCode":200 + }, + "input":{"shape":"GetRunRequest"}, + "output":{"shape":"GetRunResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a workflow run.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "GetRunGroup":{ + "name":"GetRunGroup", + "http":{ + "method":"GET", + "requestUri":"/runGroup/{id}", + "responseCode":200 + }, + "input":{"shape":"GetRunGroupRequest"}, + "output":{"shape":"GetRunGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a workflow run group.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "GetRunTask":{ + "name":"GetRunTask", + "http":{ + "method":"GET", + "requestUri":"/run/{id}/task/{taskId}", + "responseCode":200 + }, + "input":{"shape":"GetRunTaskRequest"}, + "output":{"shape":"GetRunTaskResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a workflow run task.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "GetSequenceStore":{ + "name":"GetSequenceStore", + "http":{ + "method":"GET", + "requestUri":"/sequencestore/{id}", + "responseCode":200 + }, + "input":{"shape":"GetSequenceStoreRequest"}, + "output":{"shape":"GetSequenceStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a sequence store.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "GetVariantImportJob":{ + "name":"GetVariantImportJob", + "http":{ + "method":"GET", + "requestUri":"/import/variant/{jobId}", + "responseCode":200 + }, + "input":{"shape":"GetVariantImportRequest"}, + "output":{"shape":"GetVariantImportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets information about a variant import job.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "GetVariantStore":{ + "name":"GetVariantStore", + "http":{ + "method":"GET", + "requestUri":"/variantStore/{name}", + "responseCode":200 + }, + "input":{"shape":"GetVariantStoreRequest"}, + "output":{"shape":"GetVariantStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets information about a variant store.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "GetWorkflow":{ + "name":"GetWorkflow", + "http":{ + "method":"GET", + "requestUri":"/workflow/{id}", + "responseCode":200 + }, + "input":{"shape":"GetWorkflowRequest"}, + "output":{"shape":"GetWorkflowResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Gets information about a workflow.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "ListAnnotationImportJobs":{ + "name":"ListAnnotationImportJobs", + "http":{ + "method":"POST", + "requestUri":"/import/annotations", + "responseCode":200 + }, + "input":{"shape":"ListAnnotationImportJobsRequest"}, + "output":{"shape":"ListAnnotationImportJobsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of annotation import jobs.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "ListAnnotationStores":{ + "name":"ListAnnotationStores", + "http":{ + "method":"POST", + "requestUri":"/annotationStores", + "responseCode":200 + }, + "input":{"shape":"ListAnnotationStoresRequest"}, + "output":{"shape":"ListAnnotationStoresResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of annotation stores.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "ListReadSetActivationJobs":{ + "name":"ListReadSetActivationJobs", + "http":{ + "method":"POST", + "requestUri":"/sequencestore/{sequenceStoreId}/activationjobs", + "responseCode":200 + }, + "input":{"shape":"ListReadSetActivationJobsRequest"}, + "output":{"shape":"ListReadSetActivationJobsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of read set activation jobs.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "ListReadSetExportJobs":{ + "name":"ListReadSetExportJobs", + "http":{ + "method":"POST", + "requestUri":"/sequencestore/{sequenceStoreId}/exportjobs", + "responseCode":200 + }, + "input":{"shape":"ListReadSetExportJobsRequest"}, + "output":{"shape":"ListReadSetExportJobsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of read set export jobs.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "ListReadSetImportJobs":{ + "name":"ListReadSetImportJobs", + "http":{ + "method":"POST", + "requestUri":"/sequencestore/{sequenceStoreId}/importjobs", + "responseCode":200 + }, + "input":{"shape":"ListReadSetImportJobsRequest"}, + "output":{"shape":"ListReadSetImportJobsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of read set import jobs.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "ListReadSets":{ + "name":"ListReadSets", + "http":{ + "method":"POST", + "requestUri":"/sequencestore/{sequenceStoreId}/readsets", + "responseCode":200 + }, + "input":{"shape":"ListReadSetsRequest"}, + "output":{"shape":"ListReadSetsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of read sets.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "ListReferenceImportJobs":{ + "name":"ListReferenceImportJobs", + "http":{ + "method":"POST", + "requestUri":"/referencestore/{referenceStoreId}/importjobs", + "responseCode":200 + }, + "input":{"shape":"ListReferenceImportJobsRequest"}, + "output":{"shape":"ListReferenceImportJobsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of reference import jobs.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "ListReferenceStores":{ + "name":"ListReferenceStores", + "http":{ + "method":"POST", + "requestUri":"/referencestores", + "responseCode":200 + }, + "input":{"shape":"ListReferenceStoresRequest"}, + "output":{"shape":"ListReferenceStoresResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of reference stores.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "ListReferences":{ + "name":"ListReferences", + "http":{ + "method":"POST", + "requestUri":"/referencestore/{referenceStoreId}/references", + "responseCode":200 + }, + "input":{"shape":"ListReferencesRequest"}, + "output":{"shape":"ListReferencesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of references.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "ListRunGroups":{ + "name":"ListRunGroups", + "http":{ + "method":"GET", + "requestUri":"/runGroup", + "responseCode":200 + }, + "input":{"shape":"ListRunGroupsRequest"}, + "output":{"shape":"ListRunGroupsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of run groups.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "ListRunTasks":{ + "name":"ListRunTasks", + "http":{ + "method":"GET", + "requestUri":"/run/{id}/task", + "responseCode":200 + }, + "input":{"shape":"ListRunTasksRequest"}, + "output":{"shape":"ListRunTasksResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of tasks for a run.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "ListRuns":{ + "name":"ListRuns", + "http":{ + "method":"GET", + "requestUri":"/run", + "responseCode":200 + }, + "input":{"shape":"ListRunsRequest"}, + "output":{"shape":"ListRunsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of runs.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "ListSequenceStores":{ + "name":"ListSequenceStores", + "http":{ + "method":"POST", + "requestUri":"/sequencestores", + "responseCode":200 + }, + "input":{"shape":"ListSequenceStoresRequest"}, + "output":{"shape":"ListSequenceStoresResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of sequence stores.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of tags for a resource.

", + "endpoint":{"hostPrefix":"tags-"} + }, + "ListVariantImportJobs":{ + "name":"ListVariantImportJobs", + "http":{ + "method":"POST", + "requestUri":"/import/variants", + "responseCode":200 + }, + "input":{"shape":"ListVariantImportJobsRequest"}, + "output":{"shape":"ListVariantImportJobsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of variant import jobs.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "ListVariantStores":{ + "name":"ListVariantStores", + "http":{ + "method":"POST", + "requestUri":"/variantStores", + "responseCode":200 + }, + "input":{"shape":"ListVariantStoresRequest"}, + "output":{"shape":"ListVariantStoresResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of variant stores.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "ListWorkflows":{ + "name":"ListWorkflows", + "http":{ + "method":"GET", + "requestUri":"/workflow", + "responseCode":200 + }, + "input":{"shape":"ListWorkflowsRequest"}, + "output":{"shape":"ListWorkflowsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Retrieves a list of workflows.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "StartAnnotationImportJob":{ + "name":"StartAnnotationImportJob", + "http":{ + "method":"POST", + "requestUri":"/import/annotation", + "responseCode":200 + }, + "input":{"shape":"StartAnnotationImportRequest"}, + "output":{"shape":"StartAnnotationImportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Starts an annotation import job.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "StartReadSetActivationJob":{ + "name":"StartReadSetActivationJob", + "http":{ + "method":"POST", + "requestUri":"/sequencestore/{sequenceStoreId}/activationjob", + "responseCode":200 + }, + "input":{"shape":"StartReadSetActivationJobRequest"}, + "output":{"shape":"StartReadSetActivationJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Starts a read set activation job.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "StartReadSetExportJob":{ + "name":"StartReadSetExportJob", + "http":{ + "method":"POST", + "requestUri":"/sequencestore/{sequenceStoreId}/exportjob", + "responseCode":200 + }, + "input":{"shape":"StartReadSetExportJobRequest"}, + "output":{"shape":"StartReadSetExportJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Starts a read set export job.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "StartReadSetImportJob":{ + "name":"StartReadSetImportJob", + "http":{ + "method":"POST", + "requestUri":"/sequencestore/{sequenceStoreId}/importjob", + "responseCode":200 + }, + "input":{"shape":"StartReadSetImportJobRequest"}, + "output":{"shape":"StartReadSetImportJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Starts a read set import job.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "StartReferenceImportJob":{ + "name":"StartReferenceImportJob", + "http":{ + "method":"POST", + "requestUri":"/referencestore/{referenceStoreId}/importjob", + "responseCode":200 + }, + "input":{"shape":"StartReferenceImportJobRequest"}, + "output":{"shape":"StartReferenceImportJobResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Starts a reference import job.

", + "endpoint":{"hostPrefix":"control-storage-"} + }, + "StartRun":{ + "name":"StartRun", + "http":{ + "method":"POST", + "requestUri":"/run", + "responseCode":201 + }, + "input":{"shape":"StartRunRequest"}, + "output":{"shape":"StartRunResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Starts a run.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "StartVariantImportJob":{ + "name":"StartVariantImportJob", + "http":{ + "method":"POST", + "requestUri":"/import/variant", + "responseCode":200 + }, + "input":{"shape":"StartVariantImportRequest"}, + "output":{"shape":"StartVariantImportResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Starts a variant import job.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":204 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Tags a resource.

", + "endpoint":{"hostPrefix":"tags-"} + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":204 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Removes tags from a resource.

", + "endpoint":{"hostPrefix":"tags-"}, + "idempotent":true + }, + "UpdateAnnotationStore":{ + "name":"UpdateAnnotationStore", + "http":{ + "method":"POST", + "requestUri":"/annotationStore/{name}", + "responseCode":200 + }, + "input":{"shape":"UpdateAnnotationStoreRequest"}, + "output":{"shape":"UpdateAnnotationStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an annotation store.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "UpdateRunGroup":{ + "name":"UpdateRunGroup", + "http":{ + "method":"POST", + "requestUri":"/runGroup/{id}", + "responseCode":202 + }, + "input":{"shape":"UpdateRunGroupRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Updates a run group.

", + "endpoint":{"hostPrefix":"workflows-"} + }, + "UpdateVariantStore":{ + "name":"UpdateVariantStore", + "http":{ + "method":"POST", + "requestUri":"/variantStore/{name}", + "responseCode":200 + }, + "input":{"shape":"UpdateVariantStoreRequest"}, + "output":{"shape":"UpdateVariantStoreResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates a variant store.

", + "endpoint":{"hostPrefix":"analytics-"} + }, + "UpdateWorkflow":{ + "name":"UpdateWorkflow", + "http":{ + "method":"POST", + "requestUri":"/workflow/{id}", + "responseCode":202 + }, + "input":{"shape":"UpdateWorkflowRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"RequestTimeoutException"} + ], + "documentation":"

Updates a workflow.

", + "endpoint":{"hostPrefix":"workflows-"} + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You do not have sufficient access to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "ActivateReadSetFilter":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's start date.

" + }, + "createdBefore":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's end date.

" + }, + "status":{ + "shape":"ReadSetActivationJobStatus", + "documentation":"

The filter's status.

" + } + }, + "documentation":"

A read set activation job filter.

" + }, + "ActivateReadSetJobItem":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "sequenceStoreId", + "status" + ], + "members":{ + "completionTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "id":{ + "shape":"ActivationJobId", + "documentation":"

The job's ID.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The job's sequence store ID.

" + }, + "status":{ + "shape":"ReadSetActivationJobStatus", + "documentation":"

The job's status.

" + } + }, + "documentation":"

A read set activation job.

" + }, + "ActivateReadSetJobList":{ + "type":"list", + "member":{"shape":"ActivateReadSetJobItem"} + }, + "ActivateReadSetSourceItem":{ + "type":"structure", + "required":[ + "readSetId", + "status" + ], + "members":{ + "readSetId":{ + "shape":"ReadSetId", + "documentation":"

The source's read set ID.

" + }, + "status":{ + "shape":"ReadSetActivationJobItemStatus", + "documentation":"

The source's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMessage", + "documentation":"

The source's status message.

" + } + }, + "documentation":"

A source for a read set activation job.

" + }, + "ActivateReadSetSourceList":{ + "type":"list", + "member":{"shape":"ActivateReadSetSourceItem"} + }, + "ActivationJobId":{ + "type":"string", + "max":36, + "min":10, + "pattern":"^[0-9]+$" + }, + "AnnotationImportItemDetail":{ + "type":"structure", + "required":[ + "jobStatus", + "source" + ], + "members":{ + "jobStatus":{ + "shape":"JobStatus", + "documentation":"

The item's job status.

" + }, + "source":{ + "shape":"S3Uri", + "documentation":"

The source file's location in Amazon S3.

" + } + }, + "documentation":"

Details about an imported annotation item.

" + }, + "AnnotationImportItemDetails":{ + "type":"list", + "member":{"shape":"AnnotationImportItemDetail"}, + "max":1, + "min":1 + }, + "AnnotationImportItemSource":{ + "type":"structure", + "required":["source"], + "members":{ + "source":{ + "shape":"S3Uri", + "documentation":"

The source file's location in Amazon S3.

" + } + }, + "documentation":"

A source for an annotation import job.

" + }, + "AnnotationImportItemSources":{ + "type":"list", + "member":{"shape":"AnnotationImportItemSource"}, + "max":1, + "min":1 + }, + "AnnotationImportJobItem":{ + "type":"structure", + "required":[ + "creationTime", + "destinationName", + "id", + "roleArn", + "status", + "updateTime" + ], + "members":{ + "completionTime":{ + "shape":"CompletionTime", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the job was created.

" + }, + "destinationName":{ + "shape":"String", + "documentation":"

The job's destination annotation store.

" + }, + "id":{ + "shape":"String", + "documentation":"

The job's ID.

" + }, + "roleArn":{ + "shape":"Arn", + "documentation":"

The job's service role ARN.

" + }, + "runLeftNormalization":{ + "shape":"RunLeftNormalization", + "documentation":"

The job's left normalization setting.

" + }, + "status":{ + "shape":"JobStatus", + "documentation":"

The job's status.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the job was updated.

" + } + }, + "documentation":"

An annotation import job.

" + }, + "AnnotationImportJobItems":{ + "type":"list", + "member":{"shape":"AnnotationImportJobItem"} + }, + "AnnotationStoreItem":{ + "type":"structure", + "required":[ + "creationTime", + "description", + "id", + "name", + "reference", + "sseConfig", + "status", + "statusMessage", + "storeArn", + "storeFormat", + "storeSizeBytes", + "updateTime" + ], + "members":{ + "creationTime":{ + "shape":"CreationTime", + "documentation":"

The store's creation time.

" + }, + "description":{ + "shape":"StoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"ResourceId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The store's genome reference.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's server-side encryption (SSE) settings.

" + }, + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + }, + "statusMessage":{ + "shape":"StatusMessage", + "documentation":"

The store's status message.

" + }, + "storeArn":{ + "shape":"Arn", + "documentation":"

The store's ARN.

" + }, + "storeFormat":{ + "shape":"StoreFormat", + "documentation":"

The store's file format.

" + }, + "storeSizeBytes":{ + "shape":"Long", + "documentation":"

The store's size in bytes.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the store was updated.

" + } + }, + "documentation":"

An annotation store.

" + }, + "AnnotationStoreItems":{ + "type":"list", + "member":{"shape":"AnnotationStoreItem"} + }, + "AnnotationType":{ + "type":"string", + "enum":[ + "GENERIC", + "CHR_POS", + "CHR_POS_REF_ALT", + "CHR_START_END_ONE_BASE", + "CHR_START_END_REF_ALT_ONE_BASE", + "CHR_START_END_ZERO_BASE", + "CHR_START_END_REF_ALT_ZERO_BASE" + ] + }, + "Arn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:([^: ]*):([^: ]*):([^: ]*):([0-9]{12}):([^: ]*)$" + }, + "BatchDeleteReadSetRequest":{ + "type":"structure", + "required":[ + "ids", + "sequenceStoreId" + ], + "members":{ + "ids":{ + "shape":"ReadSetIdList", + "documentation":"

The read sets' IDs.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read sets' sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "BatchDeleteReadSetResponse":{ + "type":"structure", + "members":{ + "errors":{ + "shape":"ReadSetBatchErrorList", + "documentation":"

Errors returned by individual delete operations.

" + } + } + }, + "Blob":{"type":"blob"}, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CancelAnnotationImportRequest":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"ResourceId", + "documentation":"

The job's ID.

", + "location":"uri", + "locationName":"jobId" + } + } + }, + "CancelAnnotationImportResponse":{ + "type":"structure", + "members":{ + } + }, + "CancelRunRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"RunId", + "documentation":"

The run's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "CancelVariantImportRequest":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"ResourceId", + "documentation":"

The job's ID.

", + "location":"uri", + "locationName":"jobId" + } + } + }, + "CancelVariantImportResponse":{ + "type":"structure", + "members":{ + } + }, + "ClientToken":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "CommentChar":{ + "type":"string", + "max":1, + "min":1 + }, + "CompletionTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request cannot be applied to the target resource in its current state.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateAnnotationStoreRequest":{ + "type":"structure", + "required":["storeFormat"], + "members":{ + "description":{ + "shape":"StoreDescription", + "documentation":"

A description for the store.

" + }, + "name":{ + "shape":"CreateAnnotationStoreRequestNameString", + "documentation":"

A name for the store.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The genome reference for the store's annotations.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

Server-side encryption (SSE) settings for the store.

" + }, + "storeFormat":{ + "shape":"StoreFormat", + "documentation":"

The annotation file format of the store.

" + }, + "storeOptions":{ + "shape":"StoreOptions", + "documentation":"

File parsing options for the annotation store.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Tags for the store.

" + } + } + }, + "CreateAnnotationStoreRequestNameString":{ + "type":"string", + "pattern":"^([a-z]){1}([a-z0-9_]){2,254}$" + }, + "CreateAnnotationStoreResponse":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "name", + "status" + ], + "members":{ + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the store was created.

" + }, + "id":{ + "shape":"ResourceId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The store's genome reference.

" + }, + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + }, + "storeFormat":{ + "shape":"StoreFormat", + "documentation":"

The annotation file format of the store.

" + }, + "storeOptions":{ + "shape":"StoreOptions", + "documentation":"

The store's file parsing options.

" + } + } + }, + "CreateReferenceStoreRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

To ensure that requests don't run multiple times, specify a unique token for each request.

" + }, + "description":{ + "shape":"ReferenceStoreDescription", + "documentation":"

A description for the store.

" + }, + "name":{ + "shape":"ReferenceStoreName", + "documentation":"

A name for the store.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

Server-side encryption (SSE) settings for the store.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Tags for the store.

" + } + } + }, + "CreateReferenceStoreResponse":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "id" + ], + "members":{ + "arn":{ + "shape":"ReferenceStoreArn", + "documentation":"

The store's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"ReferenceStoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"ReferenceStoreId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"ReferenceStoreName", + "documentation":"

The store's name.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's SSE settings.

" + } + } + }, + "CreateRunGroupRequest":{ + "type":"structure", + "required":["requestId"], + "members":{ + "maxCpus":{ + "shape":"CreateRunGroupRequestMaxCpusInteger", + "documentation":"

The maximum number of CPUs to use in the group.

" + }, + "maxDuration":{ + "shape":"CreateRunGroupRequestMaxDurationInteger", + "documentation":"

A max duration for the group.

" + }, + "maxRuns":{ + "shape":"CreateRunGroupRequestMaxRunsInteger", + "documentation":"

The maximum number of concurrent runs for the group.

" + }, + "name":{ + "shape":"RunGroupName", + "documentation":"

A name for the group.

" + }, + "requestId":{ + "shape":"RunGroupRequestId", + "documentation":"

A request ID for the group.

", + "idempotencyToken":true + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Tags for the group.

" + } + } + }, + "CreateRunGroupRequestMaxCpusInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "CreateRunGroupRequestMaxDurationInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "CreateRunGroupRequestMaxRunsInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "CreateRunGroupResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"RunGroupArn", + "documentation":"

The group's ARN.

" + }, + "id":{ + "shape":"RunGroupId", + "documentation":"

The group's ID.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Tags for the run group.

" + } + } + }, + "CreateSequenceStoreRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

To ensure that requests don't run multiple times, specify a unique token for each request.

" + }, + "description":{ + "shape":"SequenceStoreDescription", + "documentation":"

A description for the store.

" + }, + "name":{ + "shape":"SequenceStoreName", + "documentation":"

A name for the store.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

Server-side encryption (SSE) settings for the store.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Tags for the store.

" + } + } + }, + "CreateSequenceStoreResponse":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "id" + ], + "members":{ + "arn":{ + "shape":"SequenceStoreArn", + "documentation":"

The store's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"SequenceStoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"SequenceStoreId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"SequenceStoreName", + "documentation":"

The store's name.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's SSE settings.

" + } + } + }, + "CreateVariantStoreRequest":{ + "type":"structure", + "required":["reference"], + "members":{ + "description":{ + "shape":"StoreDescription", + "documentation":"

A description for the store.

" + }, + "name":{ + "shape":"CreateVariantStoreRequestNameString", + "documentation":"

A name for the store.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The genome reference for the store's variants.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

Server-side encryption (SSE) settings for the store.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Tags for the store.

" + } + } + }, + "CreateVariantStoreRequestNameString":{ + "type":"string", + "pattern":"^([a-z]){1}([a-z0-9_]){2,254}$" + }, + "CreateVariantStoreResponse":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "name", + "status" + ], + "members":{ + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the store was created.

" + }, + "id":{ + "shape":"ResourceId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The store's genome reference.

" + }, + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + } + } + }, + "CreateWorkflowRequest":{ + "type":"structure", + "required":["requestId"], + "members":{ + "definitionUri":{ + "shape":"WorkflowDefinition", + "documentation":"

The URI of a definition for the workflow.

" + }, + "definitionZip":{ + "shape":"Blob", + "documentation":"

A ZIP archive for the workflow.

" + }, + "description":{ + "shape":"WorkflowDescription", + "documentation":"

A description for the workflow.

" + }, + "engine":{ + "shape":"WorkflowEngine", + "documentation":"

An engine for the workflow.

" + }, + "main":{ + "shape":"WorkflowMain", + "documentation":"

The path of the main definition file for the workflow.

" + }, + "name":{ + "shape":"WorkflowName", + "documentation":"

A name for the workflow.

" + }, + "parameterTemplate":{ + "shape":"WorkflowParameterTemplate", + "documentation":"

A parameter template for the workflow.

" + }, + "requestId":{ + "shape":"WorkflowRequestId", + "documentation":"

A request ID for the workflow.

", + "idempotencyToken":true + }, + "storageCapacity":{ + "shape":"CreateWorkflowRequestStorageCapacityInteger", + "documentation":"

A storage capacity for the workflow.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Tags for the workflow.

" + } + } + }, + "CreateWorkflowRequestStorageCapacityInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":0 + }, + "CreateWorkflowResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"WorkflowArn", + "documentation":"

The workflow's ARN.

" + }, + "id":{ + "shape":"WorkflowId", + "documentation":"

The workflow's ID.

" + }, + "status":{ + "shape":"WorkflowStatus", + "documentation":"

The workflow's status.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The workflow's tags.

" + } + } + }, + "CreationTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "DeleteAnnotationStoreRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "force":{ + "shape":"PrimitiveBoolean", + "documentation":"

Whether to force deletion.

", + "location":"querystring", + "locationName":"force" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

", + "location":"uri", + "locationName":"name" + } + } + }, + "DeleteAnnotationStoreResponse":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + } + } + }, + "DeleteReferenceRequest":{ + "type":"structure", + "required":[ + "id", + "referenceStoreId" + ], + "members":{ + "id":{ + "shape":"ReferenceId", + "documentation":"

The reference's ID.

", + "location":"uri", + "locationName":"id" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The reference's store ID.

", + "location":"uri", + "locationName":"referenceStoreId" + } + } + }, + "DeleteReferenceResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteReferenceStoreRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ReferenceStoreId", + "documentation":"

The store's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteReferenceStoreResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteRunGroupRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"RunGroupId", + "documentation":"

The run group's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteRunRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"RunId", + "documentation":"

The run's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteSequenceStoreRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"SequenceStoreId", + "documentation":"

The sequence store's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "DeleteSequenceStoreResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteVariantStoreRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "force":{ + "shape":"PrimitiveBoolean", + "documentation":"

Whether to force deletion.

", + "location":"querystring", + "locationName":"force" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

", + "location":"uri", + "locationName":"name" + } + } + }, + "DeleteVariantStoreResponse":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + } + } + }, + "DeleteWorkflowRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"WorkflowId", + "documentation":"

The workflow's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "Encoding":{ + "type":"string", + "max":20, + "min":1 + }, + "EncryptionType":{ + "type":"string", + "enum":["KMS"] + }, + "EscapeChar":{ + "type":"string", + "max":1, + "min":1 + }, + "EscapeQuotes":{"type":"boolean"}, + "ExportJobId":{ + "type":"string", + "max":36, + "min":10, + "pattern":"^[0-9]+$" + }, + "ExportReadSet":{ + "type":"structure", + "required":["readSetId"], + "members":{ + "readSetId":{ + "shape":"ReadSetId", + "documentation":"

The set's ID.

" + } + }, + "documentation":"

A read set.

" + }, + "ExportReadSetDetail":{ + "type":"structure", + "required":[ + "id", + "status" + ], + "members":{ + "id":{ + "shape":"ReadSetId", + "documentation":"

The set's ID.

" + }, + "status":{ + "shape":"ReadSetExportJobItemStatus", + "documentation":"

The set's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMessage", + "documentation":"

The set's status message.

" + } + }, + "documentation":"

Details about a read set.

" + }, + "ExportReadSetDetailList":{ + "type":"list", + "member":{"shape":"ExportReadSetDetail"} + }, + "ExportReadSetFilter":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's start date.

" + }, + "createdBefore":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's end date.

" + }, + "status":{ + "shape":"ReadSetExportJobStatus", + "documentation":"

A status to filter on.

" + } + }, + "documentation":"

An read set export job filter.

" + }, + "ExportReadSetJobDetail":{ + "type":"structure", + "required":[ + "creationTime", + "destination", + "id", + "sequenceStoreId", + "status" + ], + "members":{ + "completionTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "destination":{ + "shape":"S3Destination", + "documentation":"

The job's destination in Amazon S3.

" + }, + "id":{ + "shape":"ExportJobId", + "documentation":"

The job's ID.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The job's sequence store ID.

" + }, + "status":{ + "shape":"ReadSetExportJobStatus", + "documentation":"

The job's status.

" + } + }, + "documentation":"

Details about a read set export job.

" + }, + "ExportReadSetJobDetailList":{ + "type":"list", + "member":{"shape":"ExportReadSetJobDetail"} + }, + "FileInformation":{ + "type":"structure", + "members":{ + "contentLength":{ + "shape":"FileInformationContentLengthLong", + "documentation":"

The file's content length.

" + }, + "partSize":{ + "shape":"FileInformationPartSizeLong", + "documentation":"

The file's part size.

" + }, + "totalParts":{ + "shape":"FileInformationTotalPartsInteger", + "documentation":"

The file's total parts.

" + } + }, + "documentation":"

Details about a file.

" + }, + "FileInformationContentLengthLong":{ + "type":"long", + "box":true, + "max":5497558138880, + "min":1 + }, + "FileInformationPartSizeLong":{ + "type":"long", + "box":true, + "max":5368709120, + "min":1 + }, + "FileInformationTotalPartsInteger":{ + "type":"integer", + "box":true, + "max":10000, + "min":1 + }, + "FileType":{ + "type":"string", + "enum":[ + "FASTQ", + "BAM", + "CRAM" + ] + }, + "FormatOptions":{ + "type":"structure", + "members":{ + "tsvOptions":{ + "shape":"TsvOptions", + "documentation":"

Options for a TSV file.

" + }, + "vcfOptions":{ + "shape":"VcfOptions", + "documentation":"

Options for a VCF file.

" + } + }, + "documentation":"

Formatting options for a file.

", + "union":true + }, + "FormatToHeader":{ + "type":"map", + "key":{"shape":"FormatToHeaderKey"}, + "value":{"shape":"FormatToHeaderValueString"} + }, + "FormatToHeaderKey":{ + "type":"string", + "enum":[ + "CHR", + "START", + "END", + "REF", + "ALT", + "POS" + ] + }, + "FormatToHeaderValueString":{ + "type":"string", + "max":1000, + "min":0 + }, + "GeneratedFrom":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "GetAnnotationImportRequest":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"ResourceId", + "documentation":"

The job's ID.

", + "location":"uri", + "locationName":"jobId" + } + } + }, + "GetAnnotationImportResponse":{ + "type":"structure", + "required":[ + "completionTime", + "creationTime", + "destinationName", + "formatOptions", + "id", + "items", + "roleArn", + "runLeftNormalization", + "status", + "statusMessage", + "updateTime" + ], + "members":{ + "completionTime":{ + "shape":"CompletionTime", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the job was created.

" + }, + "destinationName":{ + "shape":"StoreName", + "documentation":"

The job's destination annotation store.

" + }, + "formatOptions":{"shape":"FormatOptions"}, + "id":{ + "shape":"ResourceId", + "documentation":"

The job's ID.

" + }, + "items":{ + "shape":"AnnotationImportItemDetails", + "documentation":"

The job's imported items.

" + }, + "roleArn":{ + "shape":"Arn", + "documentation":"

The job's service role ARN.

" + }, + "runLeftNormalization":{ + "shape":"RunLeftNormalization", + "documentation":"

The job's left normalization setting.

" + }, + "status":{ + "shape":"JobStatus", + "documentation":"

The job's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMsg", + "documentation":"

The job's status message.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the job was updated.

" + } + } + }, + "GetAnnotationStoreRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The store's name.

", + "location":"uri", + "locationName":"name" + } + } + }, + "GetAnnotationStoreResponse":{ + "type":"structure", + "required":[ + "creationTime", + "description", + "id", + "name", + "reference", + "sseConfig", + "status", + "statusMessage", + "storeArn", + "storeSizeBytes", + "tags", + "updateTime" + ], + "members":{ + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"StoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"ResourceId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The store's genome reference.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's server-side encryption (SSE) settings.

" + }, + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + }, + "statusMessage":{ + "shape":"StatusMessage", + "documentation":"

A status message.

" + }, + "storeArn":{ + "shape":"Arn", + "documentation":"

The store's ARN.

" + }, + "storeFormat":{ + "shape":"StoreFormat", + "documentation":"

The store's annotation file format.

" + }, + "storeOptions":{ + "shape":"StoreOptions", + "documentation":"

The store's parsing options.

" + }, + "storeSizeBytes":{ + "shape":"Long", + "documentation":"

The store's size in bytes.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The store's tags.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the store was updated.

" + } + } + }, + "GetReadSetActivationJobRequest":{ + "type":"structure", + "required":[ + "id", + "sequenceStoreId" + ], + "members":{ + "id":{ + "shape":"ActivationJobId", + "documentation":"

The job's ID.

", + "location":"uri", + "locationName":"id" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The job's sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "GetReadSetActivationJobResponse":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "sequenceStoreId", + "status" + ], + "members":{ + "completionTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "id":{ + "shape":"ActivationJobId", + "documentation":"

The job's ID.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The job's sequence store ID.

" + }, + "sources":{ + "shape":"ActivateReadSetSourceList", + "documentation":"

The job's sources.

" + }, + "status":{ + "shape":"ReadSetActivationJobStatus", + "documentation":"

The job's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMessage", + "documentation":"

The job's status message.

" + } + } + }, + "GetReadSetExportJobRequest":{ + "type":"structure", + "required":[ + "id", + "sequenceStoreId" + ], + "members":{ + "id":{ + "shape":"ExportJobId", + "documentation":"

The job's ID.

", + "location":"uri", + "locationName":"id" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The job's sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "GetReadSetExportJobResponse":{ + "type":"structure", + "required":[ + "creationTime", + "destination", + "id", + "sequenceStoreId", + "status" + ], + "members":{ + "completionTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "destination":{ + "shape":"S3Destination", + "documentation":"

The job's destination in Amazon S3.

" + }, + "id":{ + "shape":"ExportJobId", + "documentation":"

The job's ID.

" + }, + "readSets":{ + "shape":"ExportReadSetDetailList", + "documentation":"

The job's read sets.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The job's sequence store ID.

" + }, + "status":{ + "shape":"ReadSetExportJobStatus", + "documentation":"

The job's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMessage", + "documentation":"

The job's status message.

" + } + } + }, + "GetReadSetImportJobRequest":{ + "type":"structure", + "required":[ + "id", + "sequenceStoreId" + ], + "members":{ + "id":{ + "shape":"ImportJobId", + "documentation":"

The job's ID.

", + "location":"uri", + "locationName":"id" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The job's sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "GetReadSetImportJobResponse":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "roleArn", + "sequenceStoreId", + "sources", + "status" + ], + "members":{ + "completionTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "id":{ + "shape":"ImportJobId", + "documentation":"

The job's ID.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The job's service role ARN.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The job's sequence store ID.

" + }, + "sources":{ + "shape":"ImportReadSetSourceList", + "documentation":"

The job's sources.

" + }, + "status":{ + "shape":"ReadSetImportJobStatus", + "documentation":"

The job's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMessage", + "documentation":"

The job's status message.

" + } + } + }, + "GetReadSetMetadataRequest":{ + "type":"structure", + "required":[ + "id", + "sequenceStoreId" + ], + "members":{ + "id":{ + "shape":"ReadSetId", + "documentation":"

The read set's ID.

", + "location":"uri", + "locationName":"id" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "GetReadSetMetadataResponse":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "fileType", + "id", + "sequenceStoreId", + "status" + ], + "members":{ + "arn":{ + "shape":"ReadSetArn", + "documentation":"

The read set's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the read set was created.

" + }, + "description":{ + "shape":"ReadSetDescription", + "documentation":"

The read set's description.

" + }, + "fileType":{ + "shape":"FileType", + "documentation":"

The read set's file type.

" + }, + "files":{ + "shape":"ReadSetFiles", + "documentation":"

The read set's files.

" + }, + "id":{ + "shape":"ReadSetId", + "documentation":"

The read set's ID.

" + }, + "name":{ + "shape":"ReadSetName", + "documentation":"

The read set's name.

" + }, + "referenceArn":{ + "shape":"ReferenceArn", + "documentation":"

The read set's genome reference ARN.

" + }, + "sampleId":{ + "shape":"SampleId", + "documentation":"

The read set's sample ID.

" + }, + "sequenceInformation":{ + "shape":"SequenceInformation", + "documentation":"

The read set's sequence information.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

" + }, + "status":{ + "shape":"ReadSetStatus", + "documentation":"

The read set's status.

" + }, + "subjectId":{ + "shape":"SubjectId", + "documentation":"

The read set's subject ID.

" + } + } + }, + "GetReadSetRequest":{ + "type":"structure", + "required":[ + "id", + "partNumber", + "sequenceStoreId" + ], + "members":{ + "file":{ + "shape":"ReadSetFile", + "documentation":"

The file to retrieve.

", + "location":"querystring", + "locationName":"file" + }, + "id":{ + "shape":"ReadSetId", + "documentation":"

The read set's ID.

", + "location":"uri", + "locationName":"id" + }, + "partNumber":{ + "shape":"GetReadSetRequestPartNumberInteger", + "documentation":"

The part number to retrieve.

", + "location":"querystring", + "locationName":"partNumber" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "GetReadSetRequestPartNumberInteger":{ + "type":"integer", + "box":true, + "max":10000, + "min":1 + }, + "GetReadSetResponse":{ + "type":"structure", + "members":{ + "payload":{ + "shape":"ReadSetStreamingBlob", + "documentation":"

The read set file payload.

" + } + }, + "payload":"payload" + }, + "GetReferenceImportJobRequest":{ + "type":"structure", + "required":[ + "id", + "referenceStoreId" + ], + "members":{ + "id":{ + "shape":"ImportJobId", + "documentation":"

The job's ID.

", + "location":"uri", + "locationName":"id" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The job's reference store ID.

", + "location":"uri", + "locationName":"referenceStoreId" + } + } + }, + "GetReferenceImportJobResponse":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "referenceStoreId", + "roleArn", + "sources", + "status" + ], + "members":{ + "completionTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "id":{ + "shape":"ImportJobId", + "documentation":"

The job's ID.

" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The job's reference store ID.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The job's service role ARN.

" + }, + "sources":{ + "shape":"ImportReferenceSourceList", + "documentation":"

The job's sources.

" + }, + "status":{ + "shape":"ReferenceImportJobStatus", + "documentation":"

The job's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMessage", + "documentation":"

The job's status message.

" + } + } + }, + "GetReferenceMetadataRequest":{ + "type":"structure", + "required":[ + "id", + "referenceStoreId" + ], + "members":{ + "id":{ + "shape":"ReferenceId", + "documentation":"

The reference's ID.

", + "location":"uri", + "locationName":"id" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The reference's reference store ID.

", + "location":"uri", + "locationName":"referenceStoreId" + } + } + }, + "GetReferenceMetadataResponse":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "id", + "md5", + "referenceStoreId", + "updateTime" + ], + "members":{ + "arn":{ + "shape":"ReferenceArn", + "documentation":"

The reference's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the reference was created.

" + }, + "description":{ + "shape":"ReferenceDescription", + "documentation":"

The reference's description.

" + }, + "files":{ + "shape":"ReferenceFiles", + "documentation":"

The reference's files.

" + }, + "id":{ + "shape":"ReferenceId", + "documentation":"

The reference's ID.

" + }, + "md5":{ + "shape":"Md5", + "documentation":"

The reference's MD5 checksum.

" + }, + "name":{ + "shape":"ReferenceName", + "documentation":"

The reference's name.

" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The reference's reference store ID.

" + }, + "status":{ + "shape":"ReferenceStatus", + "documentation":"

The reference's status.

" + }, + "updateTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the reference was updated.

" + } + } + }, + "GetReferenceRequest":{ + "type":"structure", + "required":[ + "id", + "partNumber", + "referenceStoreId" + ], + "members":{ + "file":{ + "shape":"ReferenceFile", + "documentation":"

The file to retrieve.

", + "location":"querystring", + "locationName":"file" + }, + "id":{ + "shape":"ReferenceId", + "documentation":"

The reference's ID.

", + "location":"uri", + "locationName":"id" + }, + "partNumber":{ + "shape":"GetReferenceRequestPartNumberInteger", + "documentation":"

The part number to retrieve.

", + "location":"querystring", + "locationName":"partNumber" + }, + "range":{ + "shape":"Range", + "documentation":"

The range to retrieve.

", + "location":"header", + "locationName":"Range" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The reference's store ID.

", + "location":"uri", + "locationName":"referenceStoreId" + } + } + }, + "GetReferenceRequestPartNumberInteger":{ + "type":"integer", + "box":true, + "max":10000, + "min":1 + }, + "GetReferenceResponse":{ + "type":"structure", + "members":{ + "payload":{ + "shape":"ReferenceStreamingBlob", + "documentation":"

The reference file payload.

" + } + }, + "payload":"payload" + }, + "GetReferenceStoreRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"ReferenceStoreId", + "documentation":"

The store's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetReferenceStoreResponse":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "id" + ], + "members":{ + "arn":{ + "shape":"ReferenceStoreArn", + "documentation":"

The store's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"ReferenceStoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"ReferenceStoreId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"ReferenceStoreName", + "documentation":"

The store's name.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's server-side encryption (SSE) settings.

" + } + } + }, + "GetRunGroupRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"RunGroupId", + "documentation":"

The group's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetRunGroupResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"RunGroupArn", + "documentation":"

The group's ARN.

" + }, + "creationTime":{ + "shape":"RunGroupTimestamp", + "documentation":"

When the group was created.

" + }, + "id":{ + "shape":"RunGroupId", + "documentation":"

The group's ID.

" + }, + "maxCpus":{ + "shape":"GetRunGroupResponseMaxCpusInteger", + "documentation":"

The group's maximum number of CPUs to use.

" + }, + "maxDuration":{ + "shape":"GetRunGroupResponseMaxDurationInteger", + "documentation":"

The group's maximum run duration.

" + }, + "maxRuns":{ + "shape":"GetRunGroupResponseMaxRunsInteger", + "documentation":"

The maximum number of concurrent runs for the group.

" + }, + "name":{ + "shape":"RunGroupName", + "documentation":"

The group's name.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The group's tags.

" + } + } + }, + "GetRunGroupResponseMaxCpusInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "GetRunGroupResponseMaxDurationInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "GetRunGroupResponseMaxRunsInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "GetRunRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "export":{ + "shape":"RunExportList", + "documentation":"

The run's export format.

", + "location":"querystring", + "locationName":"export" + }, + "id":{ + "shape":"RunId", + "documentation":"

The run's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetRunResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"RunArn", + "documentation":"

The run's ARN.

" + }, + "creationTime":{ + "shape":"RunTimestamp", + "documentation":"

When the run was created.

" + }, + "definition":{ + "shape":"WorkflowDefinition", + "documentation":"

The run's definition.

" + }, + "digest":{ + "shape":"WorkflowDigest", + "documentation":"

The run's digest.

" + }, + "id":{ + "shape":"RunId", + "documentation":"

The run's ID.

" + }, + "logLevel":{ + "shape":"RunLogLevel", + "documentation":"

The run's log level.

" + }, + "name":{ + "shape":"RunName", + "documentation":"

The run's name.

" + }, + "outputUri":{ + "shape":"RunOutputUri", + "documentation":"

The run's output URI.

" + }, + "parameters":{ + "shape":"RunParameters", + "documentation":"

The run's parameters.

" + }, + "priority":{ + "shape":"GetRunResponsePriorityInteger", + "documentation":"

The run's priority.

" + }, + "resourceDigests":{ + "shape":"RunResourceDigests", + "documentation":"

The run's resource digests.

" + }, + "roleArn":{ + "shape":"RunRoleArn", + "documentation":"

The run's service role ARN.

" + }, + "runGroupId":{ + "shape":"RunGroupId", + "documentation":"

The run's group ID.

" + }, + "runId":{ + "shape":"RunId", + "documentation":"

The run's ID.

" + }, + "startTime":{ + "shape":"RunTimestamp", + "documentation":"

When the run started.

" + }, + "startedBy":{ + "shape":"RunStartedBy", + "documentation":"

Who started the run.

" + }, + "status":{ + "shape":"RunStatus", + "documentation":"

The run's status.

" + }, + "statusMessage":{ + "shape":"RunStatusMessage", + "documentation":"

The run's status message.

" + }, + "stopTime":{ + "shape":"RunTimestamp", + "documentation":"

The run's stop time.

" + }, + "storageCapacity":{ + "shape":"GetRunResponseStorageCapacityInteger", + "documentation":"

The run's storage capacity.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The run's tags.

" + }, + "workflowId":{ + "shape":"WorkflowId", + "documentation":"

The run's workflow ID.

" + }, + "workflowType":{ + "shape":"WorkflowType", + "documentation":"

The run's workflow type.

" + } + } + }, + "GetRunResponsePriorityInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":0 + }, + "GetRunResponseStorageCapacityInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":0 + }, + "GetRunTaskRequest":{ + "type":"structure", + "required":[ + "id", + "taskId" + ], + "members":{ + "id":{ + "shape":"RunId", + "documentation":"

The task's ID.

", + "location":"uri", + "locationName":"id" + }, + "taskId":{ + "shape":"TaskId", + "documentation":"

The task's ID.

", + "location":"uri", + "locationName":"taskId" + } + } + }, + "GetRunTaskResponse":{ + "type":"structure", + "members":{ + "cpus":{ + "shape":"GetRunTaskResponseCpusInteger", + "documentation":"

The task's CPU usage.

" + }, + "creationTime":{ + "shape":"TaskTimestamp", + "documentation":"

When the task was created.

" + }, + "logStream":{ + "shape":"TaskLogStream", + "documentation":"

The task's log stream.

" + }, + "memory":{ + "shape":"GetRunTaskResponseMemoryInteger", + "documentation":"

The task's memory setting.

" + }, + "name":{ + "shape":"TaskName", + "documentation":"

The task's name.

" + }, + "startTime":{ + "shape":"TaskTimestamp", + "documentation":"

The task's start time.

" + }, + "status":{ + "shape":"TaskStatus", + "documentation":"

The task's status.

" + }, + "statusMessage":{ + "shape":"TaskStatusMessage", + "documentation":"

The task's status message.

" + }, + "stopTime":{ + "shape":"TaskTimestamp", + "documentation":"

The task's stop time.

" + }, + "taskId":{ + "shape":"TaskId", + "documentation":"

The task's ID.

" + } + } + }, + "GetRunTaskResponseCpusInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "GetRunTaskResponseMemoryInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "GetSequenceStoreRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"SequenceStoreId", + "documentation":"

The store's ID.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetSequenceStoreResponse":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "id" + ], + "members":{ + "arn":{ + "shape":"SequenceStoreArn", + "documentation":"

The store's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"SequenceStoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"SequenceStoreId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"SequenceStoreName", + "documentation":"

The store's name.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's server-side encryption (SSE) settings.

" + } + } + }, + "GetVariantImportRequest":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"ResourceId", + "documentation":"

The job's ID.

", + "location":"uri", + "locationName":"jobId" + } + } + }, + "GetVariantImportResponse":{ + "type":"structure", + "required":[ + "creationTime", + "destinationName", + "id", + "items", + "roleArn", + "runLeftNormalization", + "status", + "statusMessage", + "updateTime" + ], + "members":{ + "completionTime":{ + "shape":"CompletionTime", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the job was created.

" + }, + "destinationName":{ + "shape":"StoreName", + "documentation":"

The job's destination variant store.

" + }, + "id":{ + "shape":"ResourceId", + "documentation":"

The job's ID.

" + }, + "items":{ + "shape":"VariantImportItemDetails", + "documentation":"

The job's items.

" + }, + "roleArn":{ + "shape":"Arn", + "documentation":"

The job's service role ARN.

" + }, + "runLeftNormalization":{ + "shape":"RunLeftNormalization", + "documentation":"

The job's left normalization setting.

" + }, + "status":{ + "shape":"JobStatus", + "documentation":"

The job's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMsg", + "documentation":"

The job's status message.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the job was updated.

" + } + } + }, + "GetVariantStoreRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The store's name.

", + "location":"uri", + "locationName":"name" + } + } + }, + "GetVariantStoreResponse":{ + "type":"structure", + "required":[ + "creationTime", + "description", + "id", + "name", + "reference", + "sseConfig", + "status", + "statusMessage", + "storeArn", + "storeSizeBytes", + "tags", + "updateTime" + ], + "members":{ + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"StoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"ResourceId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The store's genome reference.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's server-side encryption (SSE) settings.

" + }, + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + }, + "statusMessage":{ + "shape":"StatusMessage", + "documentation":"

The store's status message.

" + }, + "storeArn":{ + "shape":"Arn", + "documentation":"

The store's ARN.

" + }, + "storeSizeBytes":{ + "shape":"Long", + "documentation":"

The store's size in bytes.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The store's tags.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the store was updated.

" + } + } + }, + "GetWorkflowRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "export":{ + "shape":"WorkflowExportList", + "documentation":"

The export format for the workflow.

", + "location":"querystring", + "locationName":"export" + }, + "id":{ + "shape":"WorkflowId", + "documentation":"

The workflow's ID.

", + "location":"uri", + "locationName":"id" + }, + "type":{ + "shape":"WorkflowType", + "documentation":"

The workflow's type.

", + "location":"querystring", + "locationName":"type" + } + } + }, + "GetWorkflowResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"WorkflowArn", + "documentation":"

The workflow's ARN.

" + }, + "creationTime":{ + "shape":"WorkflowTimestamp", + "documentation":"

When the workflow was created.

" + }, + "definition":{ + "shape":"WorkflowDefinition", + "documentation":"

The workflow's definition.

" + }, + "description":{ + "shape":"WorkflowDescription", + "documentation":"

The workflow's description.

" + }, + "digest":{ + "shape":"WorkflowDigest", + "documentation":"

The workflow's digest.

" + }, + "engine":{ + "shape":"WorkflowEngine", + "documentation":"

The workflow's engine.

" + }, + "id":{ + "shape":"WorkflowId", + "documentation":"

The workflow's ID.

" + }, + "main":{ + "shape":"WorkflowMain", + "documentation":"

The path of the main definition file for the workflow.

" + }, + "name":{ + "shape":"WorkflowName", + "documentation":"

The workflow's name.

" + }, + "parameterTemplate":{ + "shape":"WorkflowParameterTemplate", + "documentation":"

The workflow's parameter template.

" + }, + "status":{ + "shape":"WorkflowStatus", + "documentation":"

The workflow's status.

" + }, + "statusMessage":{ + "shape":"WorkflowStatusMessage", + "documentation":"

The workflow's status message.

" + }, + "storageCapacity":{ + "shape":"GetWorkflowResponseStorageCapacityInteger", + "documentation":"

The workflow's storage capacity.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The workflow's tags.

" + }, + "type":{ + "shape":"WorkflowType", + "documentation":"

The workflow's type.

" + } + } + }, + "GetWorkflowResponseStorageCapacityInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":0 + }, + "Header":{"type":"boolean"}, + "ImportJobId":{ + "type":"string", + "max":36, + "min":10, + "pattern":"^[0-9]+$" + }, + "ImportReadSetFilter":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's start date.

" + }, + "createdBefore":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's end date.

" + }, + "status":{ + "shape":"ReadSetImportJobStatus", + "documentation":"

A status to filter on.

" + } + }, + "documentation":"

A filter for import read set jobs.

" + }, + "ImportReadSetJobItem":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "roleArn", + "sequenceStoreId", + "status" + ], + "members":{ + "completionTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "id":{ + "shape":"ImportJobId", + "documentation":"

The job's ID.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The job's service role ARN.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The job's sequence store ID.

" + }, + "status":{ + "shape":"ReadSetImportJobStatus", + "documentation":"

The job's status.

" + } + }, + "documentation":"

An import read set job.

" + }, + "ImportReadSetJobList":{ + "type":"list", + "member":{"shape":"ImportReadSetJobItem"} + }, + "ImportReadSetSourceItem":{ + "type":"structure", + "required":[ + "sampleId", + "sourceFileType", + "sourceFiles", + "status", + "subjectId" + ], + "members":{ + "description":{ + "shape":"ReadSetDescription", + "documentation":"

The source's description.

" + }, + "generatedFrom":{ + "shape":"GeneratedFrom", + "documentation":"

Where the source originated.

" + }, + "name":{ + "shape":"ReadSetName", + "documentation":"

The source's name.

" + }, + "referenceArn":{ + "shape":"ReferenceArn", + "documentation":"

The source's genome reference ARN.

" + }, + "sampleId":{ + "shape":"SampleId", + "documentation":"

The source's sample ID.

" + }, + "sourceFileType":{ + "shape":"FileType", + "documentation":"

The source's file type.

" + }, + "sourceFiles":{ + "shape":"SourceFiles", + "documentation":"

The source files' location in Amazon S3.

" + }, + "status":{ + "shape":"ReadSetImportJobItemStatus", + "documentation":"

The source's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMessage", + "documentation":"

The source's status message.

" + }, + "subjectId":{ + "shape":"SubjectId", + "documentation":"

The source's subject ID.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The source's tags.

" + } + }, + "documentation":"

A source for an import read set job.

" + }, + "ImportReadSetSourceList":{ + "type":"list", + "member":{"shape":"ImportReadSetSourceItem"} + }, + "ImportReferenceFilter":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's start date.

" + }, + "createdBefore":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's end date.

" + }, + "status":{ + "shape":"ReferenceImportJobStatus", + "documentation":"

A status to filter on.

" + } + }, + "documentation":"

A filter for import references.

" + }, + "ImportReferenceJobItem":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "referenceStoreId", + "roleArn", + "status" + ], + "members":{ + "completionTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "id":{ + "shape":"ImportJobId", + "documentation":"

The job's ID.

" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The job's reference store ID.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The job's service role ARN.

" + }, + "status":{ + "shape":"ReferenceImportJobStatus", + "documentation":"

The job's status.

" + } + }, + "documentation":"

An import reference job.

" + }, + "ImportReferenceJobList":{ + "type":"list", + "member":{"shape":"ImportReferenceJobItem"} + }, + "ImportReferenceSourceItem":{ + "type":"structure", + "required":["status"], + "members":{ + "description":{ + "shape":"ReferenceDescription", + "documentation":"

The source's description.

" + }, + "name":{ + "shape":"ReferenceName", + "documentation":"

The source's name.

" + }, + "sourceFile":{ + "shape":"S3Uri", + "documentation":"

The source file's location in Amazon S3.

" + }, + "status":{ + "shape":"ReferenceImportJobItemStatus", + "documentation":"

The source's status.

" + }, + "statusMessage":{ + "shape":"JobStatusMessage", + "documentation":"

The source's status message.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The source's tags.

" + } + }, + "documentation":"

An genome reference source.

" + }, + "ImportReferenceSourceList":{ + "type":"list", + "member":{"shape":"ImportReferenceSourceItem"} + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

An unexpected error occurred. Try the request again.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "JobStatus":{ + "type":"string", + "enum":[ + "SUBMITTED", + "IN_PROGRESS", + "CANCELLED", + "COMPLETED", + "FAILED" + ] + }, + "JobStatusMessage":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "JobStatusMsg":{"type":"string"}, + "LineSep":{ + "type":"string", + "max":20, + "min":1 + }, + "ListAnnotationImportJobsFilter":{ + "type":"structure", + "members":{ + "status":{ + "shape":"JobStatus", + "documentation":"

A status to filter on.

" + }, + "storeName":{ + "shape":"String", + "documentation":"

A store name to filter on.

" + } + }, + "documentation":"

A filter for annotation import jobs.

" + }, + "ListAnnotationImportJobsRequest":{ + "type":"structure", + "members":{ + "filter":{ + "shape":"ListAnnotationImportJobsFilter", + "documentation":"

A filter to apply to the list.

" + }, + "ids":{ + "shape":"ListAnnotationImportJobsRequestIdsList", + "documentation":"

IDs of annotation import jobs to retrieve.

" + }, + "maxResults":{ + "shape":"ListAnnotationImportJobsRequestMaxResultsInteger", + "documentation":"

The maximum number of jobs to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"ListAnnotationImportJobsRequestNextTokenString", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListAnnotationImportJobsRequestIdsList":{ + "type":"list", + "member":{"shape":"ResourceIdentifier"}, + "max":20, + "min":1 + }, + "ListAnnotationImportJobsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListAnnotationImportJobsRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListAnnotationImportJobsResponse":{ + "type":"structure", + "members":{ + "annotationImportJobs":{ + "shape":"AnnotationImportJobItems", + "documentation":"

A list of jobs.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "ListAnnotationStoresFilter":{ + "type":"structure", + "members":{ + "status":{ + "shape":"StoreStatus", + "documentation":"

A status to filter on.

" + } + }, + "documentation":"

A filter for annotation stores.

" + }, + "ListAnnotationStoresRequest":{ + "type":"structure", + "members":{ + "filter":{ + "shape":"ListAnnotationStoresFilter", + "documentation":"

A filter to apply to the list.

" + }, + "ids":{ + "shape":"ListAnnotationStoresRequestIdsList", + "documentation":"

IDs of stores to list.

" + }, + "maxResults":{ + "shape":"ListAnnotationStoresRequestMaxResultsInteger", + "documentation":"

The maximum number of stores to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"ListAnnotationStoresRequestNextTokenString", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListAnnotationStoresRequestIdsList":{ + "type":"list", + "member":{"shape":"ResourceIdentifier"}, + "max":20, + "min":1 + }, + "ListAnnotationStoresRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListAnnotationStoresRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListAnnotationStoresResponse":{ + "type":"structure", + "members":{ + "annotationStores":{ + "shape":"AnnotationStoreItems", + "documentation":"

A list of stores.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "ListReadSetActivationJobsRequest":{ + "type":"structure", + "required":["sequenceStoreId"], + "members":{ + "filter":{ + "shape":"ActivateReadSetFilter", + "documentation":"

A filter to apply to the list.

" + }, + "maxResults":{ + "shape":"ListReadSetActivationJobsRequestMaxResultsInteger", + "documentation":"

The maximum number of read set activation jobs to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "ListReadSetActivationJobsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListReadSetActivationJobsResponse":{ + "type":"structure", + "members":{ + "activationJobs":{ + "shape":"ActivateReadSetJobList", + "documentation":"

A list of jobs.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "ListReadSetExportJobsRequest":{ + "type":"structure", + "required":["sequenceStoreId"], + "members":{ + "filter":{ + "shape":"ExportReadSetFilter", + "documentation":"

A filter to apply to the list.

" + }, + "maxResults":{ + "shape":"ListReadSetExportJobsRequestMaxResultsInteger", + "documentation":"

The maximum number of jobs to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The jobs' sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "ListReadSetExportJobsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListReadSetExportJobsResponse":{ + "type":"structure", + "members":{ + "exportJobs":{ + "shape":"ExportReadSetJobDetailList", + "documentation":"

A list of jobs.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "ListReadSetImportJobsRequest":{ + "type":"structure", + "required":["sequenceStoreId"], + "members":{ + "filter":{ + "shape":"ImportReadSetFilter", + "documentation":"

A filter to apply to the list.

" + }, + "maxResults":{ + "shape":"ListReadSetImportJobsRequestMaxResultsInteger", + "documentation":"

The maximum number of jobs to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The jobs' sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "ListReadSetImportJobsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListReadSetImportJobsResponse":{ + "type":"structure", + "members":{ + "importJobs":{ + "shape":"ImportReadSetJobList", + "documentation":"

A list of jobs.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "ListReadSetsRequest":{ + "type":"structure", + "required":["sequenceStoreId"], + "members":{ + "filter":{ + "shape":"ReadSetFilter", + "documentation":"

A filter to apply to the list.

" + }, + "maxResults":{ + "shape":"ListReadSetsRequestMaxResultsInteger", + "documentation":"

The maximum number of read sets to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The jobs' sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + } + } + }, + "ListReadSetsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListReadSetsResponse":{ + "type":"structure", + "required":["readSets"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's included if more results are available.

" + }, + "readSets":{ + "shape":"ReadSetList", + "documentation":"

A list of read sets.

" + } + } + }, + "ListReferenceImportJobsRequest":{ + "type":"structure", + "required":["referenceStoreId"], + "members":{ + "filter":{ + "shape":"ImportReferenceFilter", + "documentation":"

A filter to apply to the list.

" + }, + "maxResults":{ + "shape":"ListReferenceImportJobsRequestMaxResultsInteger", + "documentation":"

The maximum number of jobs to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The job's reference store ID.

", + "location":"uri", + "locationName":"referenceStoreId" + } + } + }, + "ListReferenceImportJobsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListReferenceImportJobsResponse":{ + "type":"structure", + "members":{ + "importJobs":{ + "shape":"ImportReferenceJobList", + "documentation":"

A lis of jobs.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "ListReferenceStoresRequest":{ + "type":"structure", + "members":{ + "filter":{ + "shape":"ReferenceStoreFilter", + "documentation":"

A filter to apply to the list.

" + }, + "maxResults":{ + "shape":"ListReferenceStoresRequestMaxResultsInteger", + "documentation":"

The maximum number of stores to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListReferenceStoresRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListReferenceStoresResponse":{ + "type":"structure", + "required":["referenceStores"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's included if more results are available.

" + }, + "referenceStores":{ + "shape":"ReferenceStoreDetailList", + "documentation":"

A list of reference stores.

" + } + } + }, + "ListReferencesRequest":{ + "type":"structure", + "required":["referenceStoreId"], + "members":{ + "filter":{ + "shape":"ReferenceFilter", + "documentation":"

A filter to apply to the list.

" + }, + "maxResults":{ + "shape":"ListReferencesRequestMaxResultsInteger", + "documentation":"

The maximum number of references to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The references' reference store ID.

", + "location":"uri", + "locationName":"referenceStoreId" + } + } + }, + "ListReferencesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListReferencesResponse":{ + "type":"structure", + "required":["references"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's included if more results are available.

" + }, + "references":{ + "shape":"ReferenceList", + "documentation":"

A list of references.

" + } + } + }, + "ListRunGroupsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListRunGroupsRequestMaxResultsInteger", + "documentation":"

The maximum number of run groups to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "name":{ + "shape":"RunGroupName", + "documentation":"

The run groups' name.

", + "location":"querystring", + "locationName":"name" + }, + "startingToken":{ + "shape":"RunGroupListToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"startingToken" + } + } + }, + "ListRunGroupsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListRunGroupsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"RunGroupList", + "documentation":"

A list of groups.

" + }, + "nextToken":{ + "shape":"RunGroupListToken", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "ListRunTasksRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"RunId", + "documentation":"

The run's ID.

", + "location":"uri", + "locationName":"id" + }, + "maxResults":{ + "shape":"ListRunTasksRequestMaxResultsInteger", + "documentation":"

The maximum number of run tasks to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "startingToken":{ + "shape":"TaskListToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"startingToken" + }, + "status":{ + "shape":"TaskStatus", + "documentation":"

Filter the list by status.

", + "location":"querystring", + "locationName":"status" + } + } + }, + "ListRunTasksRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListRunTasksResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"TaskList", + "documentation":"

A list of tasks.

" + }, + "nextToken":{ + "shape":"TaskListToken", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "ListRunsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListRunsRequestMaxResultsInteger", + "documentation":"

The maximum number of runs to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "name":{ + "shape":"RunName", + "documentation":"

Filter the list by run name.

", + "location":"querystring", + "locationName":"name" + }, + "runGroupId":{ + "shape":"RunGroupId", + "documentation":"

Filter the list by run group ID.

", + "location":"querystring", + "locationName":"runGroupId" + }, + "startingToken":{ + "shape":"RunListToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"startingToken" + } + } + }, + "ListRunsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListRunsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"RunList", + "documentation":"

A list of runs.

" + }, + "nextToken":{ + "shape":"RunListToken", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "ListSequenceStoresRequest":{ + "type":"structure", + "members":{ + "filter":{ + "shape":"SequenceStoreFilter", + "documentation":"

A filter to apply to the list.

" + }, + "maxResults":{ + "shape":"ListSequenceStoresRequestMaxResultsInteger", + "documentation":"

The maximum number of stores to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListSequenceStoresRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSequenceStoresResponse":{ + "type":"structure", + "required":["sequenceStores"], + "members":{ + "nextToken":{ + "shape":"NextToken", + "documentation":"

A pagination token that's included if more results are available.

" + }, + "sequenceStores":{ + "shape":"SequenceStoreDetailList", + "documentation":"

A list of sequence stores.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"TagArn", + "documentation":"

The resource's ARN.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "required":["tags"], + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

A list of tags.

" + } + } + }, + "ListVariantImportJobsFilter":{ + "type":"structure", + "members":{ + "status":{ + "shape":"JobStatus", + "documentation":"

A status to filter on.

" + }, + "storeName":{ + "shape":"String", + "documentation":"

A store name to filter on.

" + } + }, + "documentation":"

A filter for variant import jobs.

" + }, + "ListVariantImportJobsRequest":{ + "type":"structure", + "members":{ + "filter":{ + "shape":"ListVariantImportJobsFilter", + "documentation":"

A filter to apply to the list.

" + }, + "ids":{ + "shape":"ListVariantImportJobsRequestIdsList", + "documentation":"

A list of job IDs.

" + }, + "maxResults":{ + "shape":"ListVariantImportJobsRequestMaxResultsInteger", + "documentation":"

The maximum number of import jobs to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"ListVariantImportJobsRequestNextTokenString", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListVariantImportJobsRequestIdsList":{ + "type":"list", + "member":{"shape":"ResourceIdentifier"}, + "max":20, + "min":1 + }, + "ListVariantImportJobsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListVariantImportJobsRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListVariantImportJobsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

A pagination token that's included if more results are available.

" + }, + "variantImportJobs":{ + "shape":"VariantImportJobItems", + "documentation":"

A list of jobs.

" + } + } + }, + "ListVariantStoresFilter":{ + "type":"structure", + "members":{ + "status":{ + "shape":"StoreStatus", + "documentation":"

A status to filter on.

" + } + }, + "documentation":"

A filter for variant stores.

" + }, + "ListVariantStoresRequest":{ + "type":"structure", + "members":{ + "filter":{ + "shape":"ListVariantStoresFilter", + "documentation":"

A filter to apply to the list.

" + }, + "ids":{ + "shape":"ListVariantStoresRequestIdsList", + "documentation":"

A list of store IDs.

" + }, + "maxResults":{ + "shape":"ListVariantStoresRequestMaxResultsInteger", + "documentation":"

The maximum number of stores to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"ListVariantStoresRequestNextTokenString", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListVariantStoresRequestIdsList":{ + "type":"list", + "member":{"shape":"ResourceIdentifier"}, + "max":20, + "min":1 + }, + "ListVariantStoresRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListVariantStoresRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListVariantStoresResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

A pagination token that's included if more results are available.

" + }, + "variantStores":{ + "shape":"VariantStoreItems", + "documentation":"

A list of variant stores.

" + } + } + }, + "ListWorkflowsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListWorkflowsRequestMaxResultsInteger", + "documentation":"

The maximum number of workflows to return in one page of results.

", + "location":"querystring", + "locationName":"maxResults" + }, + "name":{ + "shape":"WorkflowName", + "documentation":"

The workflows' name.

", + "location":"querystring", + "locationName":"name" + }, + "startingToken":{ + "shape":"WorkflowListToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", + "location":"querystring", + "locationName":"startingToken" + }, + "type":{ + "shape":"WorkflowType", + "documentation":"

The workflows' type.

", + "location":"querystring", + "locationName":"type" + } + } + }, + "ListWorkflowsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListWorkflowsResponse":{ + "type":"structure", + "members":{ + "items":{ + "shape":"WorkflowList", + "documentation":"

The workflows' items.

" + }, + "nextToken":{ + "shape":"WorkflowListToken", + "documentation":"

A pagination token that's included if more results are available.

" + } + } + }, + "Long":{ + "type":"long", + "box":true + }, + "Md5":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[\\p{L}||\\p{N}]+$" + }, + "NextToken":{ + "type":"string", + "max":6144, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "PrimitiveBoolean":{"type":"boolean"}, + "Quote":{ + "type":"string", + "max":1, + "min":1 + }, + "QuoteAll":{"type":"boolean"}, + "Range":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[\\p{N}||\\p{P}]+$" + }, + "RangeNotSatisfiableException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The ranges specified in the request are not valid.

", + "error":{ + "httpStatusCode":416, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "ReadOptions":{ + "type":"structure", + "members":{ + "comment":{ + "shape":"CommentChar", + "documentation":"

The file's comment character.

" + }, + "encoding":{ + "shape":"Encoding", + "documentation":"

The file's encoding.

" + }, + "escape":{ + "shape":"EscapeChar", + "documentation":"

A character for escaping quotes in the file.

" + }, + "escapeQuotes":{ + "shape":"EscapeQuotes", + "documentation":"

Whether quotes need to be escaped in the file.

" + }, + "header":{ + "shape":"Header", + "documentation":"

Whether the file has a header row.

" + }, + "lineSep":{ + "shape":"LineSep", + "documentation":"

A line separator for the file.

" + }, + "quote":{ + "shape":"Quote", + "documentation":"

The file's quote character.

" + }, + "quoteAll":{ + "shape":"QuoteAll", + "documentation":"

Whether all values need to be quoted, or just those that contain quotes.

" + }, + "sep":{ + "shape":"Separator", + "documentation":"

The file's field separator.

" + } + }, + "documentation":"

Read options for an annotation import job.

" + }, + "ReadSetActivationJobItemStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "FINISHED", + "FAILED" + ] + }, + "ReadSetActivationJobStatus":{ + "type":"string", + "enum":[ + "SUBMITTED", + "IN_PROGRESS", + "CANCELLING", + "CANCELLED", + "FAILED", + "COMPLETED", + "COMPLETED_WITH_FAILURES" + ] + }, + "ReadSetArn":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^arn:.+$" + }, + "ReadSetBatchError":{ + "type":"structure", + "required":[ + "code", + "id", + "message" + ], + "members":{ + "code":{ + "shape":"String", + "documentation":"

The error's code.

" + }, + "id":{ + "shape":"ReadSetId", + "documentation":"

The error's ID.

" + }, + "message":{ + "shape":"String", + "documentation":"

The error's message.

" + } + }, + "documentation":"

An error from a batch read set operation.

" + }, + "ReadSetBatchErrorList":{ + "type":"list", + "member":{"shape":"ReadSetBatchError"} + }, + "ReadSetDescription":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "ReadSetExportJobItemStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "FINISHED", + "FAILED" + ] + }, + "ReadSetExportJobStatus":{ + "type":"string", + "enum":[ + "SUBMITTED", + "IN_PROGRESS", + "CANCELLING", + "CANCELLED", + "FAILED", + "COMPLETED", + "COMPLETED_WITH_FAILURES" + ] + }, + "ReadSetFile":{ + "type":"string", + "enum":[ + "SOURCE1", + "SOURCE2", + "INDEX" + ] + }, + "ReadSetFiles":{ + "type":"structure", + "members":{ + "index":{ + "shape":"FileInformation", + "documentation":"

The files' index.

" + }, + "source1":{ + "shape":"FileInformation", + "documentation":"

The location of the first file in Amazon S3.

" + }, + "source2":{ + "shape":"FileInformation", + "documentation":"

The location of the second file in Amazon S3.

" + } + }, + "documentation":"

Files in a read set.

" + }, + "ReadSetFilter":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's start date.

" + }, + "createdBefore":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's end date.

" + }, + "name":{ + "shape":"ReadSetName", + "documentation":"

A name to filter on.

" + }, + "referenceArn":{ + "shape":"ReferenceArn", + "documentation":"

A genome reference ARN to filter on.

" + }, + "status":{ + "shape":"ReadSetStatus", + "documentation":"

A status to filter on.

" + } + }, + "documentation":"

A filter for read sets.

" + }, + "ReadSetId":{ + "type":"string", + "max":36, + "min":10, + "pattern":"^[0-9]+$" + }, + "ReadSetIdList":{ + "type":"list", + "member":{"shape":"ReadSetId"}, + "max":100, + "min":1 + }, + "ReadSetImportJobItemStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "FINISHED", + "FAILED" + ] + }, + "ReadSetImportJobStatus":{ + "type":"string", + "enum":[ + "SUBMITTED", + "IN_PROGRESS", + "CANCELLING", + "CANCELLED", + "FAILED", + "COMPLETED", + "COMPLETED_WITH_FAILURES" + ] + }, + "ReadSetList":{ + "type":"list", + "member":{"shape":"ReadSetListItem"} + }, + "ReadSetListItem":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "fileType", + "id", + "sequenceStoreId", + "status" + ], + "members":{ + "arn":{ + "shape":"ReadSetArn", + "documentation":"

The read set's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the read set was created.

" + }, + "description":{ + "shape":"ReadSetDescription", + "documentation":"

The read set's description.

" + }, + "fileType":{ + "shape":"FileType", + "documentation":"

The read set's file type.

" + }, + "id":{ + "shape":"ReadSetId", + "documentation":"

The read set's ID.

" + }, + "name":{ + "shape":"ReadSetName", + "documentation":"

The read set's name.

" + }, + "referenceArn":{ + "shape":"ReferenceArn", + "documentation":"

The read set's genome reference ARN.

" + }, + "sampleId":{ + "shape":"SampleId", + "documentation":"

The read set's sample ID.

" + }, + "sequenceInformation":{"shape":"SequenceInformation"}, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

" + }, + "status":{ + "shape":"ReadSetStatus", + "documentation":"

The read set's status.

" + }, + "subjectId":{ + "shape":"SubjectId", + "documentation":"

The read set's subject ID.

" + } + }, + "documentation":"

A read set.

" + }, + "ReadSetName":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "ReadSetStatus":{ + "type":"string", + "enum":[ + "ARCHIVED", + "ACTIVATING", + "ACTIVE", + "DELETING", + "DELETED" + ] + }, + "ReadSetStreamingBlob":{ + "type":"blob", + "streaming":true + }, + "ReferenceArn":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^arn:.+$" + }, + "ReferenceDescription":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "ReferenceFile":{ + "type":"string", + "enum":[ + "SOURCE", + "INDEX" + ] + }, + "ReferenceFiles":{ + "type":"structure", + "members":{ + "index":{ + "shape":"FileInformation", + "documentation":"

The files' index.

" + }, + "source":{ + "shape":"FileInformation", + "documentation":"

The source file's location in Amazon S3.

" + } + }, + "documentation":"

A set of genome reference files.

" + }, + "ReferenceFilter":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's start date.

" + }, + "createdBefore":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's end date.

" + }, + "md5":{ + "shape":"Md5", + "documentation":"

An MD5 checksum to filter on.

" + }, + "name":{ + "shape":"ReferenceName", + "documentation":"

A name to filter on.

" + } + }, + "documentation":"

A filter for references.

" + }, + "ReferenceId":{ + "type":"string", + "max":36, + "min":10, + "pattern":"^[0-9]+$" + }, + "ReferenceImportJobItemStatus":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "IN_PROGRESS", + "FINISHED", + "FAILED" + ] + }, + "ReferenceImportJobStatus":{ + "type":"string", + "enum":[ + "SUBMITTED", + "IN_PROGRESS", + "CANCELLING", + "CANCELLED", + "FAILED", + "COMPLETED", + "COMPLETED_WITH_FAILURES" + ] + }, + "ReferenceItem":{ + "type":"structure", + "members":{ + "referenceArn":{ + "shape":"ReferenceArn", + "documentation":"

The reference's ARN.

" + } + }, + "documentation":"

A genome reference.

", + "union":true + }, + "ReferenceList":{ + "type":"list", + "member":{"shape":"ReferenceListItem"} + }, + "ReferenceListItem":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "id", + "md5", + "referenceStoreId", + "updateTime" + ], + "members":{ + "arn":{ + "shape":"ReferenceArn", + "documentation":"

The reference's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the reference was created.

" + }, + "description":{ + "shape":"ReferenceDescription", + "documentation":"

The reference's description.

" + }, + "id":{ + "shape":"ReferenceId", + "documentation":"

The reference's ID.

" + }, + "md5":{ + "shape":"Md5", + "documentation":"

The reference's MD5 checksum.

" + }, + "name":{ + "shape":"ReferenceName", + "documentation":"

The reference's name.

" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The reference's store ID.

" + }, + "status":{ + "shape":"ReferenceStatus", + "documentation":"

The reference's status.

" + }, + "updateTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the reference was updated.

" + } + }, + "documentation":"

A genome reference.

" + }, + "ReferenceName":{ + "type":"string", + "max":255, + "min":3, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "ReferenceStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "DELETING", + "DELETED" + ] + }, + "ReferenceStoreArn":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^arn:.+$" + }, + "ReferenceStoreDescription":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "ReferenceStoreDetail":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "id" + ], + "members":{ + "arn":{ + "shape":"ReferenceStoreArn", + "documentation":"

The store's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"ReferenceStoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"ReferenceStoreId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"ReferenceStoreName", + "documentation":"

The store's name.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's server-side encryption (SSE) settings.

" + } + }, + "documentation":"

Details about a reference store.

" + }, + "ReferenceStoreDetailList":{ + "type":"list", + "member":{"shape":"ReferenceStoreDetail"} + }, + "ReferenceStoreFilter":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's start date.

" + }, + "createdBefore":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's end date.

" + }, + "name":{ + "shape":"ReferenceStoreName", + "documentation":"

The name to filter on.

" + } + }, + "documentation":"

A filter for reference stores.

" + }, + "ReferenceStoreId":{ + "type":"string", + "max":36, + "min":10, + "pattern":"^[0-9]+$" + }, + "ReferenceStoreName":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "ReferenceStreamingBlob":{ + "type":"blob", + "streaming":true + }, + "RequestTimeoutException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request timed out.

", + "error":{ + "httpStatusCode":408, + "senderFault":true + }, + "exception":true + }, + "ResourceId":{ + "type":"string", + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "ResourceIdentifier":{ + "type":"string", + "max":50, + "min":1 + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The target resource was not found in the current Region.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RoleArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:.*" + }, + "RunArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:.+$" + }, + "RunExport":{ + "type":"string", + "enum":["DEFINITION"], + "max":64, + "min":1 + }, + "RunExportList":{ + "type":"list", + "member":{"shape":"RunExport"}, + "max":32, + "min":0 + }, + "RunGroupArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:.+$" + }, + "RunGroupId":{ + "type":"string", + "max":18, + "min":1, + "pattern":"^[0-9]+$" + }, + "RunGroupList":{ + "type":"list", + "member":{"shape":"RunGroupListItem"} + }, + "RunGroupListItem":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"RunGroupArn", + "documentation":"

The group's ARN.

" + }, + "creationTime":{ + "shape":"RunGroupTimestamp", + "documentation":"

When the group was created.

" + }, + "id":{ + "shape":"RunGroupId", + "documentation":"

The group's ID.

" + }, + "maxCpus":{ + "shape":"RunGroupListItemMaxCpusInteger", + "documentation":"

The group's maximum CPU count setting.

" + }, + "maxDuration":{ + "shape":"RunGroupListItemMaxDurationInteger", + "documentation":"

The group's maximum duration setting.

" + }, + "maxRuns":{ + "shape":"RunGroupListItemMaxRunsInteger", + "documentation":"

The group's maximum concurrent run setting.

" + }, + "name":{ + "shape":"RunGroupName", + "documentation":"

The group's name.

" + } + }, + "documentation":"

A run group.

" + }, + "RunGroupListItemMaxCpusInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "RunGroupListItemMaxDurationInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "RunGroupListItemMaxRunsInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "RunGroupListToken":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunGroupName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunGroupRequestId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunGroupTimestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "RunId":{ + "type":"string", + "max":18, + "min":1, + "pattern":"^[0-9]+$" + }, + "RunLeftNormalization":{"type":"boolean"}, + "RunList":{ + "type":"list", + "member":{"shape":"RunListItem"} + }, + "RunListItem":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"RunArn", + "documentation":"

The run's ARN.

" + }, + "creationTime":{ + "shape":"RunTimestamp", + "documentation":"

When the run was created.

" + }, + "id":{ + "shape":"RunId", + "documentation":"

The run's ID.

" + }, + "name":{ + "shape":"RunName", + "documentation":"

The run's name.

" + }, + "priority":{ + "shape":"RunListItemPriorityInteger", + "documentation":"

The run's priority.

" + }, + "startTime":{ + "shape":"RunTimestamp", + "documentation":"

When the run started.

" + }, + "status":{ + "shape":"RunStatus", + "documentation":"

The run's status.

" + }, + "stopTime":{ + "shape":"RunTimestamp", + "documentation":"

When the run stopped.

" + }, + "storageCapacity":{ + "shape":"RunListItemStorageCapacityInteger", + "documentation":"

The run's storage capacity.

" + }, + "workflowId":{ + "shape":"WorkflowId", + "documentation":"

The run's workflow ID.

" + } + }, + "documentation":"

A workflow run.

" + }, + "RunListItemPriorityInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":0 + }, + "RunListItemStorageCapacityInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":0 + }, + "RunListToken":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunLogLevel":{ + "type":"string", + "enum":[ + "OFF", + "FATAL", + "ERROR", + "ALL" + ], + "max":64, + "min":1 + }, + "RunName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunOutputUri":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunParameters":{ + "type":"structure", + "members":{ + }, + "document":true + }, + "RunRequestId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunResourceDigest":{ + "type":"string", + "max":64, + "min":0, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunResourceDigestKey":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunResourceDigests":{ + "type":"map", + "key":{"shape":"RunResourceDigestKey"}, + "value":{"shape":"RunResourceDigest"} + }, + "RunRoleArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:.+$" + }, + "RunStartedBy":{ + "type":"string", + "max":128, + "min":1 + }, + "RunStatus":{ + "type":"string", + "enum":[ + "PENDING", + "STARTING", + "RUNNING", + "STOPPING", + "COMPLETED", + "DELETED", + "CANCELLED", + "FAILED" + ], + "max":64, + "min":1 + }, + "RunStatusMessage":{ + "type":"string", + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "RunTimestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "S3Destination":{ + "type":"string", + "pattern":"^s3://([a-z0-9][a-z0-9-.]{1,61}[a-z0-9])/?((.{1,1024})/)?$" + }, + "S3Uri":{ + "type":"string", + "pattern":"^s3://([a-z0-9][a-z0-9-.]{1,61}[a-z0-9])/(.{1,1024})$" + }, + "SampleId":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "SchemaItem":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"SchemaValueType"}, + "max":1, + "min":1 + }, + "SchemaValueType":{ + "type":"string", + "enum":[ + "LONG", + "INT", + "STRING", + "FLOAT", + "DOUBLE", + "BOOLEAN" + ] + }, + "Separator":{ + "type":"string", + "max":20, + "min":1 + }, + "SequenceInformation":{ + "type":"structure", + "members":{ + "alignment":{ + "shape":"String", + "documentation":"

The sequence's alignment setting.

" + }, + "generatedFrom":{ + "shape":"GeneratedFrom", + "documentation":"

Where the sequence originated.

" + }, + "totalBaseCount":{ + "shape":"Long", + "documentation":"

The sequence's total base count.

" + }, + "totalReadCount":{ + "shape":"Long", + "documentation":"

The sequence's total read count.

" + } + }, + "documentation":"

Details about a sequence.

" + }, + "SequenceStoreArn":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^arn:.+$" + }, + "SequenceStoreDescription":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "SequenceStoreDetail":{ + "type":"structure", + "required":[ + "arn", + "creationTime", + "id" + ], + "members":{ + "arn":{ + "shape":"SequenceStoreArn", + "documentation":"

The store's ARN.

" + }, + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"SequenceStoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"SequenceStoreId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"SequenceStoreName", + "documentation":"

The store's name.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's server-side encryption (SSE) settings.

" + } + }, + "documentation":"

Details about a sequence store.

" + }, + "SequenceStoreDetailList":{ + "type":"list", + "member":{"shape":"SequenceStoreDetail"} + }, + "SequenceStoreFilter":{ + "type":"structure", + "members":{ + "createdAfter":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's start date.

" + }, + "createdBefore":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The filter's end date.

" + }, + "name":{ + "shape":"SequenceStoreName", + "documentation":"

A name to filter on.

" + } + }, + "documentation":"

A filter for a sequence store.

" + }, + "SequenceStoreId":{ + "type":"string", + "max":36, + "min":10, + "pattern":"^[0-9]+$" + }, + "SequenceStoreName":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request exceeds a service quota.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SourceFiles":{ + "type":"structure", + "required":["source1"], + "members":{ + "source1":{ + "shape":"S3Uri", + "documentation":"

The location of the first file in Amazon S3.

" + }, + "source2":{ + "shape":"S3Uri", + "documentation":"

The location of the second file in Amazon S3.

" + } + }, + "documentation":"

Source files for a sequence.

" + }, + "SseConfig":{ + "type":"structure", + "required":["type"], + "members":{ + "keyArn":{ + "shape":"SseConfigKeyArnString", + "documentation":"

An encryption key ARN.

" + }, + "type":{ + "shape":"EncryptionType", + "documentation":"

The encryption type.

" + } + }, + "documentation":"

Server-side encryption (SSE) settings for a store.

" + }, + "SseConfigKeyArnString":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:([^: ]*):([^: ]*):([^: ]*):([0-9]{12}):([^: ]*)" + }, + "StartAnnotationImportRequest":{ + "type":"structure", + "required":[ + "destinationName", + "items", + "roleArn" + ], + "members":{ + "destinationName":{ + "shape":"StoreName", + "documentation":"

A destination annotation store for the job.

" + }, + "formatOptions":{ + "shape":"FormatOptions", + "documentation":"

Formatting options for the annotation file.

" + }, + "items":{ + "shape":"AnnotationImportItemSources", + "documentation":"

Items to import.

" + }, + "roleArn":{ + "shape":"Arn", + "documentation":"

A service role for the job.

" + }, + "runLeftNormalization":{ + "shape":"RunLeftNormalization", + "documentation":"

The job's left normalization setting.

" + } + } + }, + "StartAnnotationImportResponse":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"ResourceId", + "documentation":"

The job's ID.

" + } + } + }, + "StartReadSetActivationJobRequest":{ + "type":"structure", + "required":[ + "sequenceStoreId", + "sources" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

To ensure that jobs don't run multiple times, specify a unique token for each job.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + }, + "sources":{ + "shape":"StartReadSetActivationJobRequestSourcesList", + "documentation":"

The job's sources.

" + } + } + }, + "StartReadSetActivationJobRequestSourcesList":{ + "type":"list", + "member":{"shape":"StartReadSetActivationJobSourceItem"}, + "max":20, + "min":1 + }, + "StartReadSetActivationJobResponse":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "sequenceStoreId", + "status" + ], + "members":{ + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "id":{ + "shape":"ActivationJobId", + "documentation":"

The job's ID.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

" + }, + "status":{ + "shape":"ReadSetActivationJobStatus", + "documentation":"

The job's status.

" + } + } + }, + "StartReadSetActivationJobSourceItem":{ + "type":"structure", + "required":["readSetId"], + "members":{ + "readSetId":{ + "shape":"ReadSetId", + "documentation":"

The source's read set ID.

" + } + }, + "documentation":"

A source for a read set activation job.

" + }, + "StartReadSetExportJobRequest":{ + "type":"structure", + "required":[ + "destination", + "roleArn", + "sequenceStoreId", + "sources" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

To ensure that jobs don't run multiple times, specify a unique token for each job.

" + }, + "destination":{ + "shape":"S3Destination", + "documentation":"

A location for exported files in Amazon S3.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

A service role for the job.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + }, + "sources":{ + "shape":"StartReadSetExportJobRequestSourcesList", + "documentation":"

Sources for the job.

" + } + } + }, + "StartReadSetExportJobRequestSourcesList":{ + "type":"list", + "member":{"shape":"ExportReadSet"}, + "max":100, + "min":1 + }, + "StartReadSetExportJobResponse":{ + "type":"structure", + "required":[ + "creationTime", + "destination", + "id", + "sequenceStoreId", + "status" + ], + "members":{ + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "destination":{ + "shape":"S3Destination", + "documentation":"

The job's output location.

" + }, + "id":{ + "shape":"ExportJobId", + "documentation":"

The job's ID.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

" + }, + "status":{ + "shape":"ReadSetExportJobStatus", + "documentation":"

The job's status.

" + } + } + }, + "StartReadSetImportJobRequest":{ + "type":"structure", + "required":[ + "roleArn", + "sequenceStoreId", + "sources" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

To ensure that jobs don't run multiple times, specify a unique token for each job.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

A service role for the job.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

", + "location":"uri", + "locationName":"sequenceStoreId" + }, + "sources":{ + "shape":"StartReadSetImportJobRequestSourcesList", + "documentation":"

Source files to import.

" + } + } + }, + "StartReadSetImportJobRequestSourcesList":{ + "type":"list", + "member":{"shape":"StartReadSetImportJobSourceItem"}, + "max":100, + "min":1 + }, + "StartReadSetImportJobResponse":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "roleArn", + "sequenceStoreId", + "status" + ], + "members":{ + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "id":{ + "shape":"ImportJobId", + "documentation":"

The job's ID.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The job's service role ARN.

" + }, + "sequenceStoreId":{ + "shape":"SequenceStoreId", + "documentation":"

The read set's sequence store ID.

" + }, + "status":{ + "shape":"ReadSetImportJobStatus", + "documentation":"

The job's status.

" + } + } + }, + "StartReadSetImportJobSourceItem":{ + "type":"structure", + "required":[ + "referenceArn", + "sampleId", + "sourceFileType", + "sourceFiles", + "subjectId" + ], + "members":{ + "description":{ + "shape":"ReadSetDescription", + "documentation":"

The source's description.

" + }, + "generatedFrom":{ + "shape":"GeneratedFrom", + "documentation":"

Where the source originated.

" + }, + "name":{ + "shape":"ReadSetName", + "documentation":"

The source's name.

" + }, + "referenceArn":{ + "shape":"ReferenceArn", + "documentation":"

The source's reference ARN.

" + }, + "sampleId":{ + "shape":"SampleId", + "documentation":"

The source's sample ID.

" + }, + "sourceFileType":{ + "shape":"FileType", + "documentation":"

The source's file type.

" + }, + "sourceFiles":{ + "shape":"SourceFiles", + "documentation":"

The source files' location in Amazon S3.

" + }, + "subjectId":{ + "shape":"SubjectId", + "documentation":"

The source's subject ID.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The source's tags.

" + } + }, + "documentation":"

A source for a read set import job.

" + }, + "StartReferenceImportJobRequest":{ + "type":"structure", + "required":[ + "referenceStoreId", + "roleArn", + "sources" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

To ensure that jobs don't run multiple times, specify a unique token for each job.

" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The job's reference store ID.

", + "location":"uri", + "locationName":"referenceStoreId" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

A service role for the job.

" + }, + "sources":{ + "shape":"StartReferenceImportJobRequestSourcesList", + "documentation":"

Sources for the job.

" + } + } + }, + "StartReferenceImportJobRequestSourcesList":{ + "type":"list", + "member":{"shape":"StartReferenceImportJobSourceItem"}, + "max":100, + "min":1 + }, + "StartReferenceImportJobResponse":{ + "type":"structure", + "required":[ + "creationTime", + "id", + "referenceStoreId", + "roleArn", + "status" + ], + "members":{ + "creationTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

When the job was created.

" + }, + "id":{ + "shape":"ImportJobId", + "documentation":"

The job's ID.

" + }, + "referenceStoreId":{ + "shape":"ReferenceStoreId", + "documentation":"

The job's reference store ID.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The job's service role ARN.

" + }, + "status":{ + "shape":"ReferenceImportJobStatus", + "documentation":"

The job's status.

" + } + } + }, + "StartReferenceImportJobSourceItem":{ + "type":"structure", + "required":[ + "name", + "sourceFile" + ], + "members":{ + "description":{ + "shape":"ReferenceDescription", + "documentation":"

The source's description.

" + }, + "name":{ + "shape":"ReferenceName", + "documentation":"

The source's name.

" + }, + "sourceFile":{ + "shape":"S3Uri", + "documentation":"

The source file's location in Amazon S3.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The source's tags.

" + } + }, + "documentation":"

A source for a reference import job.

" + }, + "StartRunRequest":{ + "type":"structure", + "required":[ + "requestId", + "roleArn" + ], + "members":{ + "logLevel":{ + "shape":"RunLogLevel", + "documentation":"

A log level for the run.

" + }, + "name":{ + "shape":"RunName", + "documentation":"

A name for the run.

" + }, + "outputUri":{ + "shape":"RunOutputUri", + "documentation":"

An output URI for the run.

" + }, + "parameters":{ + "shape":"RunParameters", + "documentation":"

Parameters for the run.

" + }, + "priority":{ + "shape":"StartRunRequestPriorityInteger", + "documentation":"

A priority for the run.

" + }, + "requestId":{ + "shape":"RunRequestId", + "documentation":"

A request ID for the run.

", + "idempotencyToken":true + }, + "roleArn":{ + "shape":"RunRoleArn", + "documentation":"

A service role for the run.

" + }, + "runGroupId":{ + "shape":"RunGroupId", + "documentation":"

The run's group ID.

" + }, + "runId":{ + "shape":"RunId", + "documentation":"

The run's ID.

" + }, + "storageCapacity":{ + "shape":"StartRunRequestStorageCapacityInteger", + "documentation":"

A storage capacity for the run.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

Tags for the run.

" + }, + "workflowId":{ + "shape":"WorkflowId", + "documentation":"

The run's workflow ID.

" + }, + "workflowType":{ + "shape":"WorkflowType", + "documentation":"

The run's workflows type.

" + } + } + }, + "StartRunRequestPriorityInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":0 + }, + "StartRunRequestStorageCapacityInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":0 + }, + "StartRunResponse":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"RunArn", + "documentation":"

The run's ARN.

" + }, + "id":{ + "shape":"RunId", + "documentation":"

The run's ID.

" + }, + "status":{ + "shape":"RunStatus", + "documentation":"

The run's status.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The run's tags.

" + } + } + }, + "StartVariantImportRequest":{ + "type":"structure", + "required":[ + "destinationName", + "items", + "roleArn" + ], + "members":{ + "destinationName":{ + "shape":"StoreName", + "documentation":"

The destination variant store for the job.

" + }, + "items":{ + "shape":"VariantImportItemSources", + "documentation":"

Items to import.

" + }, + "roleArn":{ + "shape":"Arn", + "documentation":"

A service role for the job.

" + }, + "runLeftNormalization":{ + "shape":"RunLeftNormalization", + "documentation":"

The job's left normalization setting.

" + } + } + }, + "StartVariantImportResponse":{ + "type":"structure", + "required":["jobId"], + "members":{ + "jobId":{ + "shape":"ResourceId", + "documentation":"

The job's ID.

" + } + } + }, + "StatusMessage":{ + "type":"string", + "max":1000, + "min":0 + }, + "StoreDescription":{ + "type":"string", + "max":500, + "min":0 + }, + "StoreFormat":{ + "type":"string", + "enum":[ + "GFF", + "TSV", + "VCF" + ] + }, + "StoreName":{ + "type":"string", + "max":255, + "min":3, + "pattern":"^([a-z]){1}([a-z0-9_]){2,254}$" + }, + "StoreOptions":{ + "type":"structure", + "members":{ + "tsvStoreOptions":{ + "shape":"TsvStoreOptions", + "documentation":"

File settings for a TSV store.

" + } + }, + "documentation":"

Settings for a store.

", + "union":true + }, + "StoreStatus":{ + "type":"string", + "enum":[ + "CREATING", + "UPDATING", + "DELETING", + "ACTIVE", + "FAILED" + ] + }, + "String":{"type":"string"}, + "SubjectId":{ + "type":"string", + "max":127, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TagArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:.+$" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"TagArn", + "documentation":"

The resource's ARN.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagResourceRequestTagsMap", + "documentation":"

Tags for the resource.

" + } + } + }, + "TagResourceRequestTagsMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":0 + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "TaskId":{ + "type":"string", + "max":18, + "min":1, + "pattern":"^[0-9]+$" + }, + "TaskList":{ + "type":"list", + "member":{"shape":"TaskListItem"} + }, + "TaskListItem":{ + "type":"structure", + "members":{ + "cpus":{ + "shape":"TaskListItemCpusInteger", + "documentation":"

The task's CPU count.

" + }, + "creationTime":{ + "shape":"TaskTimestamp", + "documentation":"

When the task was created.

" + }, + "memory":{ + "shape":"TaskListItemMemoryInteger", + "documentation":"

The task's memory.

" + }, + "name":{ + "shape":"TaskName", + "documentation":"

The task's name.

" + }, + "startTime":{ + "shape":"TaskTimestamp", + "documentation":"

When the task started.

" + }, + "status":{ + "shape":"TaskStatus", + "documentation":"

The task's status.

" + }, + "stopTime":{ + "shape":"TaskTimestamp", + "documentation":"

When the task stopped.

" + }, + "taskId":{ + "shape":"TaskId", + "documentation":"

The task's ID.

" + } + }, + "documentation":"

A workflow run task.

" + }, + "TaskListItemCpusInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "TaskListItemMemoryInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "TaskListToken":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "TaskLogStream":{ + "type":"string", + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "TaskName":{ + "type":"string", + "max":128, + "min":1 + }, + "TaskStatus":{ + "type":"string", + "enum":[ + "PENDING", + "STARTING", + "RUNNING", + "STOPPING", + "COMPLETED", + "CANCELLED", + "FAILED" + ], + "max":64, + "min":1 + }, + "TaskStatusMessage":{ + "type":"string", + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "TaskTimestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "TsvOptions":{ + "type":"structure", + "members":{ + "readOptions":{ + "shape":"ReadOptions", + "documentation":"

The file's read options.

" + } + }, + "documentation":"

Formatting options for a TSV file.

" + }, + "TsvStoreOptions":{ + "type":"structure", + "members":{ + "annotationType":{ + "shape":"AnnotationType", + "documentation":"

The store's annotation type.

" + }, + "formatToHeader":{ + "shape":"FormatToHeader", + "documentation":"

The store's header key to column name mapping.

" + }, + "schema":{ + "shape":"TsvStoreOptionsSchemaList", + "documentation":"

The store's schema.

" + } + }, + "documentation":"

File settings for a TSV store.

" + }, + "TsvStoreOptionsSchemaList":{ + "type":"list", + "member":{"shape":"SchemaItem"}, + "max":5000, + "min":1 + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"TagArn", + "documentation":"

The resource's ARN.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

Keys of tags to remove.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateAnnotationStoreRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "description":{ + "shape":"StoreDescription", + "documentation":"

A description for the store.

" + }, + "name":{ + "shape":"String", + "documentation":"

A name for the store.

", + "location":"uri", + "locationName":"name" + } + } + }, + "UpdateAnnotationStoreResponse":{ + "type":"structure", + "required":[ + "creationTime", + "description", + "id", + "name", + "reference", + "status", + "updateTime" + ], + "members":{ + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"StoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"ResourceId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The store's genome reference.

" + }, + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + }, + "storeFormat":{ + "shape":"StoreFormat", + "documentation":"

The annotation file format of the store.

" + }, + "storeOptions":{ + "shape":"StoreOptions", + "documentation":"

Parsing options for the store.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the store was updated.

" + } + } + }, + "UpdateRunGroupRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"RunGroupId", + "documentation":"

The group's ID.

", + "location":"uri", + "locationName":"id" + }, + "maxCpus":{ + "shape":"UpdateRunGroupRequestMaxCpusInteger", + "documentation":"

The maximum number of CPUs to use.

" + }, + "maxDuration":{ + "shape":"UpdateRunGroupRequestMaxDurationInteger", + "documentation":"

The maximum amount of time to run.

" + }, + "maxRuns":{ + "shape":"UpdateRunGroupRequestMaxRunsInteger", + "documentation":"

The maximum number of concurrent runs for the group.

" + }, + "name":{ + "shape":"RunGroupName", + "documentation":"

A name for the group.

" + } + } + }, + "UpdateRunGroupRequestMaxCpusInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "UpdateRunGroupRequestMaxDurationInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "UpdateRunGroupRequestMaxRunsInteger":{ + "type":"integer", + "box":true, + "max":100000, + "min":1 + }, + "UpdateTime":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "UpdateVariantStoreRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "description":{ + "shape":"StoreDescription", + "documentation":"

A description for the store.

" + }, + "name":{ + "shape":"String", + "documentation":"

A name for the store.

", + "location":"uri", + "locationName":"name" + } + } + }, + "UpdateVariantStoreResponse":{ + "type":"structure", + "required":[ + "creationTime", + "description", + "id", + "name", + "reference", + "status", + "updateTime" + ], + "members":{ + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"StoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"ResourceId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The store's genome reference.

" + }, + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the store was updated.

" + } + } + }, + "UpdateWorkflowRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "description":{ + "shape":"WorkflowDescription", + "documentation":"

A description for the workflow.

" + }, + "id":{ + "shape":"WorkflowId", + "documentation":"

The workflow's ID.

", + "location":"uri", + "locationName":"id" + }, + "name":{ + "shape":"WorkflowName", + "documentation":"

A name for the workflow.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The input fails to satisfy the constraints specified by an AWS service.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "VariantImportItemDetail":{ + "type":"structure", + "required":[ + "jobStatus", + "source" + ], + "members":{ + "jobStatus":{ + "shape":"JobStatus", + "documentation":"

The item's job status.

" + }, + "source":{ + "shape":"S3Uri", + "documentation":"

The source file's location in Amazon S3.

" + } + }, + "documentation":"

Details about an imported variant item.

" + }, + "VariantImportItemDetails":{ + "type":"list", + "member":{"shape":"VariantImportItemDetail"}, + "max":1, + "min":1 + }, + "VariantImportItemSource":{ + "type":"structure", + "required":["source"], + "members":{ + "source":{ + "shape":"S3Uri", + "documentation":"

The source file's location in Amazon S3.

" + } + }, + "documentation":"

A imported variant item's source.

" + }, + "VariantImportItemSources":{ + "type":"list", + "member":{"shape":"VariantImportItemSource"}, + "max":1, + "min":1 + }, + "VariantImportJobItem":{ + "type":"structure", + "required":[ + "creationTime", + "destinationName", + "id", + "roleArn", + "status", + "updateTime" + ], + "members":{ + "completionTime":{ + "shape":"CompletionTime", + "documentation":"

When the job completed.

" + }, + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the job was created.

" + }, + "destinationName":{ + "shape":"String", + "documentation":"

The job's destination variant store.

" + }, + "id":{ + "shape":"String", + "documentation":"

The job's ID.

" + }, + "roleArn":{ + "shape":"Arn", + "documentation":"

The job's service role ARN.

" + }, + "runLeftNormalization":{ + "shape":"RunLeftNormalization", + "documentation":"

The job's left normalization setting.

" + }, + "status":{ + "shape":"JobStatus", + "documentation":"

The job's status.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the job was updated.

" + } + }, + "documentation":"

A variant import job.

" + }, + "VariantImportJobItems":{ + "type":"list", + "member":{"shape":"VariantImportJobItem"} + }, + "VariantStoreItem":{ + "type":"structure", + "required":[ + "creationTime", + "description", + "id", + "name", + "reference", + "sseConfig", + "status", + "statusMessage", + "storeArn", + "storeSizeBytes", + "updateTime" + ], + "members":{ + "creationTime":{ + "shape":"CreationTime", + "documentation":"

When the store was created.

" + }, + "description":{ + "shape":"StoreDescription", + "documentation":"

The store's description.

" + }, + "id":{ + "shape":"ResourceId", + "documentation":"

The store's ID.

" + }, + "name":{ + "shape":"String", + "documentation":"

The store's name.

" + }, + "reference":{ + "shape":"ReferenceItem", + "documentation":"

The store's genome reference.

" + }, + "sseConfig":{ + "shape":"SseConfig", + "documentation":"

The store's server-side encryption (SSE) settings.

" + }, + "status":{ + "shape":"StoreStatus", + "documentation":"

The store's status.

" + }, + "statusMessage":{ + "shape":"StatusMessage", + "documentation":"

The store's status message.

" + }, + "storeArn":{ + "shape":"Arn", + "documentation":"

The store's ARN.

" + }, + "storeSizeBytes":{ + "shape":"Long", + "documentation":"

The store's size in bytes.

" + }, + "updateTime":{ + "shape":"UpdateTime", + "documentation":"

When the store was updated.

" + } + }, + "documentation":"

A variant store.

" + }, + "VariantStoreItems":{ + "type":"list", + "member":{"shape":"VariantStoreItem"} + }, + "VcfOptions":{ + "type":"structure", + "members":{ + "ignoreFilterField":{ + "shape":"Boolean", + "documentation":"

The file's ignore filter field setting.

" + }, + "ignoreQualField":{ + "shape":"Boolean", + "documentation":"

The file's ignore qual field setting.

" + } + }, + "documentation":"

Formatting options for a VCF file.

" + }, + "WorkflowArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^arn:.+$" + }, + "WorkflowDefinition":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "WorkflowDescription":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "WorkflowDigest":{ + "type":"string", + "max":64, + "min":1 + }, + "WorkflowEngine":{ + "type":"string", + "enum":[ + "WDL", + "NEXTFLOW" + ], + "max":64, + "min":1 + }, + "WorkflowExport":{ + "type":"string", + "enum":["DEFINITION"], + "max":64, + "min":1 + }, + "WorkflowExportList":{ + "type":"list", + "member":{"shape":"WorkflowExport"}, + "max":32, + "min":0 + }, + "WorkflowId":{ + "type":"string", + "max":18, + "min":1, + "pattern":"^[0-9]+$" + }, + "WorkflowList":{ + "type":"list", + "member":{"shape":"WorkflowListItem"} + }, + "WorkflowListItem":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"WorkflowArn", + "documentation":"

The workflow's ARN.

" + }, + "creationTime":{ + "shape":"WorkflowTimestamp", + "documentation":"

When the workflow was created.

" + }, + "digest":{ + "shape":"WorkflowDigest", + "documentation":"

The workflow's digest.

" + }, + "id":{ + "shape":"WorkflowId", + "documentation":"

The workflow's ID.

" + }, + "name":{ + "shape":"WorkflowName", + "documentation":"

The workflow's name.

" + }, + "status":{ + "shape":"WorkflowStatus", + "documentation":"

The workflow's status.

" + }, + "type":{ + "shape":"WorkflowType", + "documentation":"

The workflow's type.

" + } + }, + "documentation":"

A workflow.

" + }, + "WorkflowListToken":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "WorkflowMain":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "WorkflowName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "WorkflowParameter":{ + "type":"structure", + "members":{ + "description":{ + "shape":"WorkflowParameterDescription", + "documentation":"

The parameter's description.

" + }, + "optional":{ + "shape":"Boolean", + "documentation":"

Whether the parameter is optional.

" + } + }, + "documentation":"

A workflow parameter.

" + }, + "WorkflowParameterDescription":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "WorkflowParameterName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "WorkflowParameterTemplate":{ + "type":"map", + "key":{"shape":"WorkflowParameterName"}, + "value":{"shape":"WorkflowParameter"}, + "max":1000, + "min":1 + }, + "WorkflowRequestId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "WorkflowStatus":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETED", + "FAILED" + ], + "max":64, + "min":1 + }, + "WorkflowStatusMessage":{ + "type":"string", + "pattern":"^[\\p{L}||\\p{M}||\\p{Z}||\\p{S}||\\p{N}||\\p{P}]+$" + }, + "WorkflowTimestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "WorkflowType":{ + "type":"string", + "enum":["PRIVATE"], + "max":64, + "min":1 + } + }, + "documentation":"

This is the Amazon Omics API Reference. For an introduction to the service, see What is Amazon Omics? in the Amazon Omics Developer Guide.

" +} diff --git a/botocore/data/omics/2022-11-28/waiters-2.json b/botocore/data/omics/2022-11-28/waiters-2.json new file mode 100644 index 00000000..db1de32e --- /dev/null +++ b/botocore/data/omics/2022-11-28/waiters-2.json @@ -0,0 +1,498 @@ +{ + "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" + } ] + }, + "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/botocore/data/opensearch/2021-01-01/endpoint-rule-set-1.json b/botocore/data/opensearch/2021-01-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..78b68177 --- /dev/null +++ b/botocore/data/opensearch/2021-01-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://es-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://es-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://es.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://es.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/opensearch/2021-01-01/examples-1.json b/botocore/data/opensearch/2021-01-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/opensearch/2021-01-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/opensearch/2021-01-01/service-2.json b/botocore/data/opensearch/2021-01-01/service-2.json index 54fa3aa6..bd7167b4 100644 --- a/botocore/data/opensearch/2021-01-01/service-2.json +++ b/botocore/data/opensearch/2021-01-01/service-2.json @@ -23,7 +23,7 @@ {"shape":"LimitExceededException"}, {"shape":"DisabledOperationException"} ], - "documentation":"

Allows the remote domain owner to accept an inbound cross-cluster connection request.

" + "documentation":"

Allows the destination Amazon OpenSearch Service domain owner to accept an inbound cross-cluster search connection request. For more information, see Cross-cluster search for Amazon OpenSearch Service.

" }, "AddTags":{ "name":"AddTags", @@ -38,7 +38,7 @@ {"shape":"ValidationException"}, {"shape":"InternalException"} ], - "documentation":"

Attaches tags to an existing domain. Tags are a set of case-sensitive key value pairs. An domain can have up to 10 tags. See Tagging Amazon OpenSearch Service domains for more information.

" + "documentation":"

Attaches tags to an existing Amazon OpenSearch Service domain. Tags are a set of case-sensitive key-value pairs. An domain can have up to 10 tags. For more information, see Tagging Amazon OpenSearch Service domains.

" }, "AssociatePackage":{ "name":"AssociatePackage", @@ -56,7 +56,25 @@ {"shape":"ValidationException"}, {"shape":"ConflictException"} ], - "documentation":"

Associates a package with an Amazon OpenSearch Service domain.

" + "documentation":"

Associates a package with an Amazon OpenSearch Service domain. For more information, see Custom packages for Amazon OpenSearch Service.

" + }, + "AuthorizeVpcEndpointAccess":{ + "name":"AuthorizeVpcEndpointAccess", + "http":{ + "method":"POST", + "requestUri":"/2021-01-01/opensearch/domain/{DomainName}/authorizeVpcEndpointAccess" + }, + "input":{"shape":"AuthorizeVpcEndpointAccessRequest"}, + "output":{"shape":"AuthorizeVpcEndpointAccessResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"DisabledOperationException"}, + {"shape":"LimitExceededException"}, + {"shape":"ValidationException"}, + {"shape":"InternalException"}, + {"shape":"BaseException"} + ], + "documentation":"

Provides access to an Amazon OpenSearch Service domain through the use of an interface VPC endpoint.

" }, "CancelServiceSoftwareUpdate":{ "name":"CancelServiceSoftwareUpdate", @@ -72,7 +90,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

Cancels a scheduled service software update for an Amazon OpenSearch Service domain. You can only perform this operation before the AutomatedUpdateDate and when the UpdateStatus is in the PENDING_UPDATE state.

" + "documentation":"

Cancels a scheduled service software update for an Amazon OpenSearch Service domain. You can only perform this operation before the AutomatedUpdateDate and when the domain's UpdateStatus is PENDING_UPDATE. For more information, see Service software updates in Amazon OpenSearch Service.

" }, "CreateDomain":{ "name":"CreateDomain", @@ -91,7 +109,7 @@ {"shape":"ResourceAlreadyExistsException"}, {"shape":"ValidationException"} ], - "documentation":"

Creates a new Amazon OpenSearch Service domain. For more information, see Creating and managing Amazon OpenSearch Service domains in the Amazon OpenSearch Service Developer Guide.

" + "documentation":"

Creates an Amazon OpenSearch Service domain. For more information, see Creating and managing Amazon OpenSearch Service domains.

" }, "CreateOutboundConnection":{ "name":"CreateOutboundConnection", @@ -107,7 +125,7 @@ {"shape":"ResourceAlreadyExistsException"}, {"shape":"DisabledOperationException"} ], - "documentation":"

Creates a new cross-cluster connection from a local OpenSearch domain to a remote OpenSearch domain.

" + "documentation":"

Creates a new cross-cluster search connection from a source Amazon OpenSearch Service domain to a destination domain. For more information, see Cross-cluster search for Amazon OpenSearch Service.

" }, "CreatePackage":{ "name":"CreatePackage", @@ -126,7 +144,25 @@ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"} ], - "documentation":"

Create a package for use with Amazon OpenSearch Service domains.

" + "documentation":"

Creates a package for use with Amazon OpenSearch Service domains. For more information, see Custom packages for Amazon OpenSearch Service.

" + }, + "CreateVpcEndpoint":{ + "name":"CreateVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/2021-01-01/opensearch/vpcEndpoints" + }, + "input":{"shape":"CreateVpcEndpointRequest"}, + "output":{"shape":"CreateVpcEndpointResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalException"}, + {"shape":"DisabledOperationException"}, + {"shape":"BaseException"} + ], + "documentation":"

Creates an Amazon OpenSearch Service-managed VPC endpoint.

" }, "DeleteDomain":{ "name":"DeleteDomain", @@ -142,7 +178,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

Permanently deletes the specified domain and all of its data. Once a domain is deleted, it cannot be recovered.

" + "documentation":"

Deletes an Amazon OpenSearch Service domain and all of its data. You can't recover a domain after you delete it.

" }, "DeleteInboundConnection":{ "name":"DeleteInboundConnection", @@ -156,7 +192,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"DisabledOperationException"} ], - "documentation":"

Allows the remote domain owner to delete an existing inbound cross-cluster connection.

" + "documentation":"

Allows the destination Amazon OpenSearch Service domain owner to delete an existing inbound cross-cluster search connection. For more information, see Cross-cluster search for Amazon OpenSearch Service.

" }, "DeleteOutboundConnection":{ "name":"DeleteOutboundConnection", @@ -170,7 +206,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"DisabledOperationException"} ], - "documentation":"

Allows the local domain owner to delete an existing outbound cross-cluster connection.

" + "documentation":"

Allows the source Amazon OpenSearch Service domain owner to delete an existing outbound cross-cluster search connection. For more information, see Cross-cluster search for Amazon OpenSearch Service.

" }, "DeletePackage":{ "name":"DeletePackage", @@ -188,7 +224,23 @@ {"shape":"ValidationException"}, {"shape":"ConflictException"} ], - "documentation":"

Deletes the package.

" + "documentation":"

Deletes an Amazon OpenSearch Service package. For more information, see Custom packages for Amazon OpenSearch Service.

" + }, + "DeleteVpcEndpoint":{ + "name":"DeleteVpcEndpoint", + "http":{ + "method":"DELETE", + "requestUri":"/2021-01-01/opensearch/vpcEndpoints/{VpcEndpointId}" + }, + "input":{"shape":"DeleteVpcEndpointRequest"}, + "output":{"shape":"DeleteVpcEndpointResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"DisabledOperationException"}, + {"shape":"InternalException"}, + {"shape":"BaseException"} + ], + "documentation":"

Deletes an Amazon OpenSearch Service-managed interface VPC endpoint.

" }, "DescribeDomain":{ "name":"DescribeDomain", @@ -204,7 +256,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns domain configuration information about the specified domain, including the domain ID, domain endpoint, and domain ARN.

" + "documentation":"

Describes the domain configuration for the specified Amazon OpenSearch Service domain, including the domain ID, domain service endpoint, and domain ARN.

" }, "DescribeDomainAutoTunes":{ "name":"DescribeDomainAutoTunes", @@ -220,7 +272,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

Provides scheduled Auto-Tune action details for the domain, such as Auto-Tune action type, description, severity, and scheduled date.

" + "documentation":"

Returns the list of optimizations that Auto-Tune has made to an Amazon OpenSearch Service domain. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "DescribeDomainChangeProgress":{ "name":"DescribeDomainChangeProgress", @@ -236,7 +288,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns information about the current blue/green deployment happening on a domain, including a change ID, status, and progress stages.

" + "documentation":"

Returns information about the current blue/green deployment happening on an Amazon OpenSearch Service domain. For more information, see Making configuration changes in Amazon OpenSearch Service.

" }, "DescribeDomainConfig":{ "name":"DescribeDomainConfig", @@ -252,7 +304,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

Provides cluster configuration information about the specified domain, such as the state, creation date, update version, and update date for cluster options.

" + "documentation":"

Returns the configuration of an Amazon OpenSearch Service domain.

" }, "DescribeDomains":{ "name":"DescribeDomains", @@ -267,7 +319,7 @@ {"shape":"InternalException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns domain configuration information about the specified domains, including the domain ID, domain endpoint, and domain ARN.

" + "documentation":"

Returns domain configuration information about the specified Amazon OpenSearch Service domains.

" }, "DescribeInboundConnections":{ "name":"DescribeInboundConnections", @@ -281,7 +333,7 @@ {"shape":"InvalidPaginationTokenException"}, {"shape":"DisabledOperationException"} ], - "documentation":"

Lists all the inbound cross-cluster connections for a remote domain.

" + "documentation":"

Lists all the inbound cross-cluster search connections for a destination (remote) Amazon OpenSearch Service domain. For more information, see Cross-cluster search for Amazon OpenSearch Service.

" }, "DescribeInstanceTypeLimits":{ "name":"DescribeInstanceTypeLimits", @@ -299,7 +351,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

Describe the limits for a given instance type and OpenSearch or Elasticsearch version. When modifying an existing domain, specify the DomainName to see which limits you can modify.

" + "documentation":"

Describes the instance count, storage, and master node limits for a given OpenSearch or Elasticsearch version and instance type.

" }, "DescribeOutboundConnections":{ "name":"DescribeOutboundConnections", @@ -313,7 +365,7 @@ {"shape":"InvalidPaginationTokenException"}, {"shape":"DisabledOperationException"} ], - "documentation":"

Lists all the outbound cross-cluster connections for a local domain.

" + "documentation":"

Lists all the outbound cross-cluster connections for a local (source) Amazon OpenSearch Service domain. For more information, see Cross-cluster search for Amazon OpenSearch Service.

" }, "DescribePackages":{ "name":"DescribePackages", @@ -330,7 +382,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"} ], - "documentation":"

Describes all packages available to Amazon OpenSearch Service domains. Includes options for filtering, limiting the number of results, and pagination.

" + "documentation":"

Describes all packages available to OpenSearch Service. For more information, see Custom packages for Amazon OpenSearch Service.

" }, "DescribeReservedInstanceOfferings":{ "name":"DescribeReservedInstanceOfferings", @@ -346,7 +398,7 @@ {"shape":"DisabledOperationException"}, {"shape":"InternalException"} ], - "documentation":"

Lists available reserved OpenSearch instance offerings.

" + "documentation":"

Describes the available Amazon OpenSearch Service Reserved Instance offerings for a given Region. For more information, see Reserved Instances in Amazon OpenSearch Service.

" }, "DescribeReservedInstances":{ "name":"DescribeReservedInstances", @@ -362,7 +414,23 @@ {"shape":"ValidationException"}, {"shape":"DisabledOperationException"} ], - "documentation":"

Returns information about reserved OpenSearch instances for this account.

" + "documentation":"

Describes the Amazon OpenSearch Service instances that you have reserved in a given Region. For more information, see Reserved Instances in Amazon OpenSearch Service.

" + }, + "DescribeVpcEndpoints":{ + "name":"DescribeVpcEndpoints", + "http":{ + "method":"POST", + "requestUri":"/2021-01-01/opensearch/vpcEndpoints/describe" + }, + "input":{"shape":"DescribeVpcEndpointsRequest"}, + "output":{"shape":"DescribeVpcEndpointsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalException"}, + {"shape":"DisabledOperationException"}, + {"shape":"BaseException"} + ], + "documentation":"

Describes one or more Amazon OpenSearch Service-managed VPC endpoints.

" }, "DissociatePackage":{ "name":"DissociatePackage", @@ -380,7 +448,7 @@ {"shape":"ValidationException"}, {"shape":"ConflictException"} ], - "documentation":"

Dissociates a package from the Amazon OpenSearch Service domain.

" + "documentation":"

Removes a package from the specified Amazon OpenSearch Service domain. The package can't be in use with any OpenSearch index for the dissociation to succeed. The package is still available in OpenSearch Service for association later. For more information, see Custom packages for Amazon OpenSearch Service.

" }, "GetCompatibleVersions":{ "name":"GetCompatibleVersions", @@ -397,7 +465,7 @@ {"shape":"ValidationException"}, {"shape":"InternalException"} ], - "documentation":"

Returns a list of upgrade-compatible versions of OpenSearch/Elasticsearch. You can optionally pass a DomainName to get all upgrade-compatible versions of OpenSearch/Elasticsearch for that specific domain.

" + "documentation":"

Returns a map of OpenSearch or Elasticsearch versions and the versions you can upgrade them to.

" }, "GetPackageVersionHistory":{ "name":"GetPackageVersionHistory", @@ -414,7 +482,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns a list of package versions, along with their creation time and commit message.

" + "documentation":"

Returns a list of Amazon OpenSearch Service package versions, along with their creation time and commit message. For more information, see Custom packages for Amazon OpenSearch Service.

" }, "GetUpgradeHistory":{ "name":"GetUpgradeHistory", @@ -431,7 +499,7 @@ {"shape":"ValidationException"}, {"shape":"InternalException"} ], - "documentation":"

Retrieves the complete history of the last 10 upgrades performed on the domain.

" + "documentation":"

Retrieves the complete history of the last 10 upgrades performed on an Amazon OpenSearch Service domain.

" }, "GetUpgradeStatus":{ "name":"GetUpgradeStatus", @@ -448,7 +516,7 @@ {"shape":"ValidationException"}, {"shape":"InternalException"} ], - "documentation":"

Retrieves the latest status of the last upgrade or upgrade eligibility check performed on the domain.

" + "documentation":"

Returns the most recent status of the last upgrade or upgrade eligibility check performed on an Amazon OpenSearch Service domain.

" }, "ListDomainNames":{ "name":"ListDomainNames", @@ -462,7 +530,7 @@ {"shape":"BaseException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns the names of all domains owned by the current user's account.

" + "documentation":"

Returns the names of all Amazon OpenSearch Service domains owned by the current user in the active Region.

" }, "ListDomainsForPackage":{ "name":"ListDomainsForPackage", @@ -479,7 +547,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"} ], - "documentation":"

Lists all Amazon OpenSearch Service domains associated with the package.

" + "documentation":"

Lists all Amazon OpenSearch Service domains associated with a given package. For more information, see Custom packages for Amazon OpenSearch Service.

" }, "ListInstanceTypeDetails":{ "name":"ListInstanceTypeDetails", @@ -494,7 +562,8 @@ {"shape":"InternalException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} - ] + ], + "documentation":"

Lists all instance types and available features for a given OpenSearch or Elasticsearch version.

" }, "ListPackagesForDomain":{ "name":"ListPackagesForDomain", @@ -511,7 +580,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"} ], - "documentation":"

Lists all packages associated with the Amazon OpenSearch Service domain.

" + "documentation":"

Lists all packages associated with an Amazon OpenSearch Service domain. For more information, see Custom packages for Amazon OpenSearch Service.

" }, "ListTags":{ "name":"ListTags", @@ -527,7 +596,7 @@ {"shape":"ValidationException"}, {"shape":"InternalException"} ], - "documentation":"

Returns all tags for the given domain.

" + "documentation":"

Returns all resource tags for an Amazon OpenSearch Service domain. For more information, see Tagging Amazon OpenSearch Service domains.

" }, "ListVersions":{ "name":"ListVersions", @@ -543,7 +612,54 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

List all supported versions of OpenSearch and Elasticsearch.

" + "documentation":"

Lists all versions of OpenSearch and Elasticsearch that Amazon OpenSearch Service supports.

" + }, + "ListVpcEndpointAccess":{ + "name":"ListVpcEndpointAccess", + "http":{ + "method":"GET", + "requestUri":"/2021-01-01/opensearch/domain/{DomainName}/listVpcEndpointAccess" + }, + "input":{"shape":"ListVpcEndpointAccessRequest"}, + "output":{"shape":"ListVpcEndpointAccessResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"DisabledOperationException"}, + {"shape":"InternalException"}, + {"shape":"BaseException"} + ], + "documentation":"

Retrieves information about each Amazon Web Services principal that is allowed to access a given Amazon OpenSearch Service domain through the use of an interface VPC endpoint.

" + }, + "ListVpcEndpoints":{ + "name":"ListVpcEndpoints", + "http":{ + "method":"GET", + "requestUri":"/2021-01-01/opensearch/vpcEndpoints" + }, + "input":{"shape":"ListVpcEndpointsRequest"}, + "output":{"shape":"ListVpcEndpointsResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"DisabledOperationException"}, + {"shape":"BaseException"} + ], + "documentation":"

Retrieves all Amazon OpenSearch Service-managed VPC endpoints in the current Amazon Web Services account and Region.

" + }, + "ListVpcEndpointsForDomain":{ + "name":"ListVpcEndpointsForDomain", + "http":{ + "method":"GET", + "requestUri":"/2021-01-01/opensearch/domain/{DomainName}/vpcEndpoints" + }, + "input":{"shape":"ListVpcEndpointsForDomainRequest"}, + "output":{"shape":"ListVpcEndpointsForDomainResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"DisabledOperationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"BaseException"} + ], + "documentation":"

Retrieves all Amazon OpenSearch Service-managed VPC endpoints associated with a particular domain.

" }, "PurchaseReservedInstanceOffering":{ "name":"PurchaseReservedInstanceOffering", @@ -561,7 +677,7 @@ {"shape":"ValidationException"}, {"shape":"InternalException"} ], - "documentation":"

Allows you to purchase reserved OpenSearch instances.

" + "documentation":"

Allows you to purchase Amazon OpenSearch Service Reserved Instances.

" }, "RejectInboundConnection":{ "name":"RejectInboundConnection", @@ -575,7 +691,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"DisabledOperationException"} ], - "documentation":"

Allows the remote domain owner to reject an inbound cross-cluster connection request.

" + "documentation":"

Allows the remote Amazon OpenSearch Service domain owner to reject an inbound cross-cluster connection request.

" }, "RemoveTags":{ "name":"RemoveTags", @@ -589,7 +705,24 @@ {"shape":"ValidationException"}, {"shape":"InternalException"} ], - "documentation":"

Removes the specified set of tags from the given domain.

" + "documentation":"

Removes the specified set of tags from an Amazon OpenSearch Service domain. For more information, see Tagging Amazon OpenSearch Service domains.

" + }, + "RevokeVpcEndpointAccess":{ + "name":"RevokeVpcEndpointAccess", + "http":{ + "method":"POST", + "requestUri":"/2021-01-01/opensearch/domain/{DomainName}/revokeVpcEndpointAccess" + }, + "input":{"shape":"RevokeVpcEndpointAccessRequest"}, + "output":{"shape":"RevokeVpcEndpointAccessResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"DisabledOperationException"}, + {"shape":"InternalException"}, + {"shape":"BaseException"} + ], + "documentation":"

Revokes access to an Amazon OpenSearch Service domain that was provided through an interface VPC endpoint.

" }, "StartServiceSoftwareUpdate":{ "name":"StartServiceSoftwareUpdate", @@ -605,7 +738,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

Schedules a service software update for an Amazon OpenSearch Service domain.

" + "documentation":"

Schedules a service software update for an Amazon OpenSearch Service domain. For more information, see Service software updates in Amazon OpenSearch Service.

" }, "UpdateDomainConfig":{ "name":"UpdateDomainConfig", @@ -623,7 +756,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"} ], - "documentation":"

Modifies the cluster configuration of the specified domain, such as setting the instance type and the number of instances.

" + "documentation":"

Modifies the cluster configuration of the specified Amazon OpenSearch Service domain.

" }, "UpdatePackage":{ "name":"UpdatePackage", @@ -641,7 +774,25 @@ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"} ], - "documentation":"

Updates a package for use with Amazon OpenSearch Service domains.

" + "documentation":"

Updates a package for use with Amazon OpenSearch Service domains. For more information, see Custom packages for Amazon OpenSearch Service.

" + }, + "UpdateVpcEndpoint":{ + "name":"UpdateVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/2021-01-01/opensearch/vpcEndpoints/update" + }, + "input":{"shape":"UpdateVpcEndpointRequest"}, + "output":{"shape":"UpdateVpcEndpointResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"DisabledOperationException"}, + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"BaseException"} + ], + "documentation":"

Modifies an Amazon OpenSearch Service-managed interface VPC endpoint.

" }, "UpgradeDomain":{ "name":"UpgradeDomain", @@ -659,25 +810,39 @@ {"shape":"ValidationException"}, {"shape":"InternalException"} ], - "documentation":"

Allows you to either upgrade your domain or perform an upgrade eligibility check to a compatible version of OpenSearch or Elasticsearch.

" + "documentation":"

Allows you to either upgrade your Amazon OpenSearch Service domain or perform an upgrade eligibility check to a compatible version of OpenSearch or Elasticsearch.

" } }, "shapes":{ "ARN":{ "type":"string", - "documentation":"

The Amazon Resource Name (ARN) of the domain. See Identifiers for IAM Entities in Using AWS Identity and Access Management for more information.

", + "documentation":"

The Amazon Resource Name (ARN) of the domain. See Identifiers for IAM Entities in Using AWS Identity and Access Management for more information.

", "max":2048, "min":20, "pattern":".*" }, + "AWSAccount":{ + "type":"string", + "pattern":"^[0-9]+$" + }, "AWSDomainInformation":{ "type":"structure", "required":["DomainName"], "members":{ - "OwnerId":{"shape":"OwnerId"}, - "DomainName":{"shape":"DomainName"}, - "Region":{"shape":"Region"} - } + "OwnerId":{ + "shape":"OwnerId", + "documentation":"

The Amazon Web Services account ID of the domain owner.

" + }, + "DomainName":{ + "shape":"DomainName", + "documentation":"

Name of the domain.

" + }, + "Region":{ + "shape":"Region", + "documentation":"

The Amazon Web Services Region in which the domain is located.

" + } + }, + "documentation":"

Information about an Amazon OpenSearch Service domain.

" }, "AcceptInboundConnectionRequest":{ "type":"structure", @@ -685,22 +850,22 @@ "members":{ "ConnectionId":{ "shape":"ConnectionId", - "documentation":"

The ID of the inbound connection you want to accept.

", + "documentation":"

The ID of the inbound connection to accept.

", "location":"uri", "locationName":"ConnectionId" } }, - "documentation":"

Container for the parameters to the AcceptInboundConnection operation.

" + "documentation":"

Container for the parameters to the AcceptInboundConnection operation.

" }, "AcceptInboundConnectionResponse":{ "type":"structure", "members":{ "Connection":{ "shape":"InboundConnection", - "documentation":"

The InboundConnection of the accepted inbound connection.

" + "documentation":"

Information about the accepted inbound connection.

" } }, - "documentation":"

The result of an AcceptInboundConnection operation. Contains details about the accepted inbound connection.

" + "documentation":"

Contains details about the accepted inbound connection.

" }, "AccessDeniedException":{ "type":"structure", @@ -719,14 +884,14 @@ "members":{ "Options":{ "shape":"PolicyDocument", - "documentation":"

The access policy configured for the domain. Access policies can be resource-based, IP-based, or IAM-based. See Configuring access policiesfor more information.

" + "documentation":"

The access policy configured for the domain. Access policies can be resource-based, IP-based, or IAM-based. For more information, see Configuring access policies.

" }, "Status":{ "shape":"OptionStatus", - "documentation":"

The status of the access policy for the domain. See OptionStatus for the status information that's included.

" + "documentation":"

The status of the access policy for the domain.

" } }, - "documentation":"

The configured access rules for the domain's document and search endpoints, and the current status of those rules.

" + "documentation":"

The configured access rules for the domain's search endpoint, and the current status of those rules.

" }, "AddTagsRequest":{ "type":"structure", @@ -737,28 +902,28 @@ "members":{ "ARN":{ "shape":"ARN", - "documentation":"

Specify the ARN of the domain you want to add tags to.

" + "documentation":"

Amazon Resource Name (ARN) for the OpenSearch Service domain to which you want to attach resource tags.

" }, "TagList":{ "shape":"TagList", - "documentation":"

List of Tag to add to the domain.

" + "documentation":"

List of resource tags.

" } }, - "documentation":"

Container for the parameters to the AddTags operation. Specifies the tags to attach to the domain.

" + "documentation":"

Container for the parameters to the AddTags operation. Specifies the tags to attach to the domain.

" }, "AdditionalLimit":{ "type":"structure", "members":{ "LimitName":{ "shape":"LimitName", - "documentation":"

Additional limit is specific to a given InstanceType and for each of its InstanceRole etc.
Attributes and their details:

  • MaximumNumberOfDataNodesSupported
  • This attribute is present on the master node only to specify how much data nodes up to which given ESPartitionInstanceType can support as master node.
  • MaximumNumberOfDataNodesWithoutMasterNode
  • This attribute is present on data node only to specify how much data nodes of given ESPartitionInstanceType up to which you don't need any master nodes to govern them.

" + "documentation":"
  • MaximumNumberOfDataNodesSupported - This attribute only applies to master nodes and specifies the maximum number of data nodes of a given instance type a master node can support.

  • MaximumNumberOfDataNodesWithoutMasterNode - This attribute only applies to data nodes and specifies the maximum number of data nodes of a given instance type can exist without a master node governing them.

" }, "LimitValues":{ "shape":"LimitValueList", - "documentation":"

Value for a given AdditionalLimit$LimitName .

" + "documentation":"

The values of the additional instance type limits.

" } }, - "documentation":"

List of limits that are specific to a given InstanceType and for each of its InstanceRole .

" + "documentation":"

List of limits that are specific to a given instance type.

" }, "AdditionalLimitList":{ "type":"list", @@ -768,7 +933,7 @@ "type":"map", "key":{"shape":"String"}, "value":{"shape":"String"}, - "documentation":"

Exposes select native OpenSearch configuration values from opensearch.yml. Currently, the following advanced options are available:

  • Option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Advanced cluster parameters for more information.
  • Option to specify the percentage of heap space allocated to field data. By default, this setting is unbounded.

For more information, see Advanced cluster parameters.

" + "documentation":"

Exposes native OpenSearch configuration values from opensearch.yml. The following advanced options are available:

  • Allows references to indexes in an HTTP request body. Must be false when configuring access to individual sub-resources. Default is true.

  • Specifies the percentage of heap space allocated to field data. Default is unbounded.

For more information, see Advanced cluster parameters.

" }, "AdvancedOptionsStatus":{ "type":"structure", @@ -783,17 +948,17 @@ }, "Status":{ "shape":"OptionStatus", - "documentation":"

The OptionStatus for advanced options for the specified domain.

" + "documentation":"

The status of advanced options for the specified domain.

" } }, - "documentation":"

Status of the advanced options for the specified domain. Currently, the following advanced options are available:

  • Option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Advanced cluster parameters for more information.
  • Option to specify the percentage of heap space allocated to field data. By default, this setting is unbounded.

For more information, see Advanced cluster parameters.

" + "documentation":"

Status of the advanced options for the specified domain. The following options are available:

  • \"rest.action.multi.allow_explicit_index\": \"true\" | \"false\" - Note the use of a string rather than a boolean. Specifies whether explicit references to indexes are allowed inside the body of HTTP requests. If you want to configure access policies for domain sub-resources, such as specific indexes and domain APIs, you must disable this property. Default is true.

  • \"indices.fielddata.cache.size\": \"80\" - Note the use of a string rather than a boolean. Specifies the percentage of heap space allocated to field data. Default is unbounded.

  • \"indices.query.bool.max_clause_count\": \"1024\" - Note the use of a string rather than a boolean. Specifies the maximum number of clauses allowed in a Lucene boolean query. Default is 1,024. Queries with more than the permitted number of clauses result in a TooManyClauses error.

  • \"override_main_response_version\": \"true\" | \"false\" - Note the use of a string rather than a boolean. Specifies whether the domain reports its version as 7.10 to allow Elasticsearch OSS clients and plugins to continue working with it. Default is false when creating a domain and true when upgrading a domain.

For more information, see Advanced cluster parameters.

" }, "AdvancedSecurityOptions":{ "type":"structure", "members":{ "Enabled":{ "shape":"Boolean", - "documentation":"

True if advanced security is enabled.

" + "documentation":"

True if fine-grained access control is enabled.

" }, "InternalUserDatabaseEnabled":{ "shape":"Boolean", @@ -801,44 +966,44 @@ }, "SAMLOptions":{ "shape":"SAMLOptionsOutput", - "documentation":"

Describes the SAML application configured for a domain.

" + "documentation":"

Container for information about the SAML configuration for OpenSearch Dashboards.

" }, "AnonymousAuthDisableDate":{ "shape":"DisableTimestamp", - "documentation":"

Specifies the Anonymous Auth Disable Date when Anonymous Auth is enabled.

" + "documentation":"

Date and time when the migration period will be disabled. Only necessary when enabling fine-grained access control on an existing domain.

" }, "AnonymousAuthEnabled":{ "shape":"Boolean", - "documentation":"

True if Anonymous auth is enabled. Anonymous auth can be enabled only when AdvancedSecurity is enabled on existing domains.

" + "documentation":"

True if a 30-day migration period is enabled, during which administrators can create role mappings. Only necessary when enabling fine-grained access control on an existing domain.

" } }, - "documentation":"

The advanced security configuration: whether advanced security is enabled, whether the internal database option is enabled.

" + "documentation":"

Container for fine-grained access control settings.

" }, "AdvancedSecurityOptionsInput":{ "type":"structure", "members":{ "Enabled":{ "shape":"Boolean", - "documentation":"

True if advanced security is enabled.

" + "documentation":"

True to enable fine-grained access control.

" }, "InternalUserDatabaseEnabled":{ "shape":"Boolean", - "documentation":"

True if the internal user database is enabled.

" + "documentation":"

True to enable the internal user database.

" }, "MasterUserOptions":{ "shape":"MasterUserOptions", - "documentation":"

Credentials for the master user: username and password, ARN, or both.

" + "documentation":"

Container for information about the master user.

" }, "SAMLOptions":{ "shape":"SAMLOptionsInput", - "documentation":"

The SAML application configuration for the domain.

" + "documentation":"

Container for information about the SAML configuration for OpenSearch Dashboards.

" }, "AnonymousAuthEnabled":{ "shape":"Boolean", - "documentation":"

True if Anonymous auth is enabled. Anonymous auth can be enabled only when AdvancedSecurity is enabled on existing domains.

" + "documentation":"

True to enable a 30-day migration period during which administrators can create role mappings. Only necessary when enabling fine-grained access control on an existing domain.

" } }, - "documentation":"

The advanced security configuration: whether advanced security is enabled, whether the internal database option is enabled, master username and password (if internal database is enabled), and master user ARN (if IAM is enabled).

" + "documentation":"

Options for enabling and configuring fine-grained access control. For more information, see Fine-grained access control in Amazon OpenSearch Service.

" }, "AdvancedSecurityOptionsStatus":{ "type":"structure", @@ -849,14 +1014,14 @@ "members":{ "Options":{ "shape":"AdvancedSecurityOptions", - "documentation":"

Advanced security options for the specified domain.

" + "documentation":"

Container for fine-grained access control settings.

" }, "Status":{ "shape":"OptionStatus", - "documentation":"

Status of the advanced security options for the specified domain.

" + "documentation":"

Status of the fine-grained access control settings for a domain.

" } }, - "documentation":"

The status of advanced security options for the specified domain.

" + "documentation":"

The status of fine-grained access control settings for a domain.

" }, "AssociatePackageRequest":{ "type":"structure", @@ -873,36 +1038,83 @@ }, "DomainName":{ "shape":"DomainName", - "documentation":"

The name of the domain to associate the package with.

", + "documentation":"

Name of the domain to associate the package with.

", "location":"uri", "locationName":"DomainName" } }, - "documentation":"

Container for the request parameters to the AssociatePackage operation.

" + "documentation":"

Container for the request parameters to the AssociatePackage operation.

" }, "AssociatePackageResponse":{ "type":"structure", "members":{ "DomainPackageDetails":{ "shape":"DomainPackageDetails", - "documentation":"

DomainPackageDetails

" + "documentation":"

Information about a package that is associated with a domain.

" } }, - "documentation":"

Container for the response returned by AssociatePackage operation.

" + "documentation":"

Container for the response returned by the AssociatePackage operation.

" + }, + "AuthorizeVpcEndpointAccessRequest":{ + "type":"structure", + "required":[ + "DomainName", + "Account" + ], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the OpenSearch Service domain to provide access to.

", + "location":"uri", + "locationName":"DomainName" + }, + "Account":{ + "shape":"AWSAccount", + "documentation":"

The Amazon Web Services account ID to grant access to.

" + } + } + }, + "AuthorizeVpcEndpointAccessResponse":{ + "type":"structure", + "required":["AuthorizedPrincipal"], + "members":{ + "AuthorizedPrincipal":{ + "shape":"AuthorizedPrincipal", + "documentation":"

Information about the Amazon Web Services account or service that was provided access to the domain.

" + } + } + }, + "AuthorizedPrincipal":{ + "type":"structure", + "members":{ + "PrincipalType":{ + "shape":"PrincipalType", + "documentation":"

The type of principal.

" + }, + "Principal":{ + "shape":"String", + "documentation":"

The IAM principal that is allowed access to the domain.

" + } + }, + "documentation":"

Information about an Amazon Web Services account or service that has access to an Amazon OpenSearch Service domain through the use of an interface VPC endpoint.

" + }, + "AuthorizedPrincipalList":{ + "type":"list", + "member":{"shape":"AuthorizedPrincipal"} }, "AutoTune":{ "type":"structure", "members":{ "AutoTuneType":{ "shape":"AutoTuneType", - "documentation":"

Specifies the Auto-Tune type. Valid value is SCHEDULED_ACTION.

" + "documentation":"

The type of Auto-Tune action.

" }, "AutoTuneDetails":{ "shape":"AutoTuneDetails", - "documentation":"

Specifies details about the Auto-Tune action. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

Details about an Auto-Tune action.

" } }, - "documentation":"

Specifies the Auto-Tune type and Auto-Tune action details.

" + "documentation":"

Information about an Auto-Tune action. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "AutoTuneDate":{ "type":"timestamp", @@ -919,9 +1131,12 @@ "AutoTuneDetails":{ "type":"structure", "members":{ - "ScheduledAutoTuneDetails":{"shape":"ScheduledAutoTuneDetails"} + "ScheduledAutoTuneDetails":{ + "shape":"ScheduledAutoTuneDetails", + "documentation":"

Container for details about a scheduled Auto-Tune action.

" + } }, - "documentation":"

Specifies details about the Auto-Tune action. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

Specifies details about a scheduled Auto-Tune action. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "AutoTuneList":{ "type":"list", @@ -932,18 +1147,18 @@ "members":{ "StartAt":{ "shape":"StartAt", - "documentation":"

The timestamp at which the Auto-Tune maintenance schedule starts.

" + "documentation":"

The Epoch timestamp at which the Auto-Tune maintenance schedule starts.

" }, "Duration":{ "shape":"Duration", - "documentation":"

Specifies maintenance schedule duration: duration value and duration unit. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

The duration of the maintenance schedule. For example, \"Duration\": {\"Value\": 2, \"Unit\": \"HOURS\"}.

" }, "CronExpressionForRecurrence":{ "shape":"String", - "documentation":"

A cron expression for a recurring maintenance schedule. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

A cron expression for a recurring maintenance schedule during which Auto-Tune can deploy changes.

" } }, - "documentation":"

Specifies the Auto-Tune maintenance schedule. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

The Auto-Tune maintenance schedule. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "AutoTuneMaintenanceScheduleList":{ "type":"list", @@ -955,64 +1170,64 @@ "members":{ "DesiredState":{ "shape":"AutoTuneDesiredState", - "documentation":"

The Auto-Tune desired state. Valid values are ENABLED and DISABLED.

" + "documentation":"

Whether Auto-Tune is enabled or disabled.

" }, "RollbackOnDisable":{ "shape":"RollbackOnDisable", - "documentation":"

The rollback state while disabling Auto-Tune for the domain. Valid values are NO_ROLLBACK and DEFAULT_ROLLBACK.

" + "documentation":"

When disabling Auto-Tune, specify NO_ROLLBACK to retain all prior Auto-Tune settings or DEFAULT_ROLLBACK to revert to the OpenSearch Service defaults. If you specify DEFAULT_ROLLBACK, you must include a MaintenanceSchedule in the request. Otherwise, OpenSearch Service is unable to perform the rollback.

" }, "MaintenanceSchedules":{ "shape":"AutoTuneMaintenanceScheduleList", - "documentation":"

A list of maintenance schedules. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

A list of maintenance schedules during which Auto-Tune can deploy changes.

" } }, - "documentation":"

The Auto-Tune options: the Auto-Tune desired state for the domain, rollback state when disabling Auto-Tune options and list of maintenance schedules.

" + "documentation":"

Auto-Tune settings when updating a domain. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "AutoTuneOptionsInput":{ "type":"structure", "members":{ "DesiredState":{ "shape":"AutoTuneDesiredState", - "documentation":"

The Auto-Tune desired state. Valid values are ENABLED and DISABLED.

" + "documentation":"

Whether Auto-Tune is enabled or disabled.

" }, "MaintenanceSchedules":{ "shape":"AutoTuneMaintenanceScheduleList", - "documentation":"

A list of maintenance schedules. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

A list of maintenance schedules during which Auto-Tune can deploy changes. Maintenance schedules are overwrite, not append. If your request includes no schedules, the request deletes all existing schedules. To preserve existing schedules, make a call to DescribeDomainConfig first and use the MaintenanceSchedules portion of the response as the basis for this section.

" } }, - "documentation":"

The Auto-Tune options: the Auto-Tune desired state for the domain and list of maintenance schedules.

" + "documentation":"

Options for configuring Auto-Tune. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "AutoTuneOptionsOutput":{ "type":"structure", "members":{ "State":{ "shape":"AutoTuneState", - "documentation":"

The AutoTuneState for the domain.

" + "documentation":"

The current state of Auto-Tune on the domain.

" }, "ErrorMessage":{ "shape":"String", - "documentation":"

The error message while enabling or disabling Auto-Tune.

" + "documentation":"

Any errors that occurred while enabling or disabling Auto-Tune.

" } }, - "documentation":"

The Auto-Tune options: the Auto-Tune desired state for the domain and list of maintenance schedules.

" + "documentation":"

The Auto-Tune settings for a domain, displayed when enabling or disabling Auto-Tune.

" }, "AutoTuneOptionsStatus":{ "type":"structure", "members":{ "Options":{ "shape":"AutoTuneOptions", - "documentation":"

Specifies Auto-Tune options for the domain.

" + "documentation":"

Auto-Tune settings for updating a domain.

" }, "Status":{ "shape":"AutoTuneStatus", - "documentation":"

The status of the Auto-Tune options for the domain.

" + "documentation":"

The current status of Auto-Tune for a domain.

" } }, "documentation":"

The Auto-Tune status for the domain.

" }, "AutoTuneState":{ "type":"string", - "documentation":"

The Auto-Tune state for the domain. For valid states see Auto-Tune for Amazon OpenSearch Service.

", + "documentation":"

The Auto-Tune state for the domain. For valid states see Auto-Tune for Amazon OpenSearch Service.

", "enum":[ "ENABLED", "DISABLED", @@ -1035,11 +1250,11 @@ "members":{ "CreationDate":{ "shape":"UpdateTimestamp", - "documentation":"

The timestamp of the Auto-Tune options creation date.

" + "documentation":"

Date and time when Auto-Tune was enabled for the domain.

" }, "UpdateDate":{ "shape":"UpdateTimestamp", - "documentation":"

The timestamp of when the Auto-Tune options were last updated.

" + "documentation":"

Date and time when the Auto-Tune options were last updated for the domain.

" }, "UpdateVersion":{ "shape":"UIntValue", @@ -1047,18 +1262,18 @@ }, "State":{ "shape":"AutoTuneState", - "documentation":"

The AutoTuneState for the domain.

" + "documentation":"

The current state of Auto-Tune on the domain.

" }, "ErrorMessage":{ "shape":"String", - "documentation":"

The error message while enabling or disabling Auto-Tune.

" + "documentation":"

Any errors that occurred while enabling or disabling Auto-Tune.

" }, "PendingDeletion":{ "shape":"Boolean", "documentation":"

Indicates whether the domain is being deleted.

" } }, - "documentation":"

Provides the current Auto-Tune status for the domain.

" + "documentation":"

The current status of Auto-Tune for the domain. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "AutoTuneType":{ "type":"string", @@ -1088,56 +1303,56 @@ "members":{ "DomainName":{ "shape":"DomainName", - "documentation":"

The name of the domain that you want to stop the latest service software update on.

" + "documentation":"

Name of the OpenSearch Service domain that you want to cancel the service software update on.

" } }, - "documentation":"

Container for the parameters to the CancelServiceSoftwareUpdate operation. Specifies the name of the domain that you wish to cancel a service software update on.

" + "documentation":"

Container for the request parameters to cancel a service software update.

" }, "CancelServiceSoftwareUpdateResponse":{ "type":"structure", "members":{ "ServiceSoftwareOptions":{ "shape":"ServiceSoftwareOptions", - "documentation":"

The current status of the OpenSearch service software update.

" + "documentation":"

Container for the state of your domain relative to the latest service software.

" } }, - "documentation":"

The result of a CancelServiceSoftwareUpdate operation. Contains the status of the update.

" + "documentation":"

Container for the response to a CancelServiceSoftwareUpdate operation. Contains the status of the update.

" }, "ChangeProgressDetails":{ "type":"structure", "members":{ "ChangeId":{ "shape":"GUID", - "documentation":"

The unique change identifier associated with a specific domain configuration change.

" + "documentation":"

The ID of the configuration change.

" }, "Message":{ "shape":"Message", - "documentation":"

Contains an optional message associated with the domain configuration change.

" + "documentation":"

A message corresponding to the status of the configuration change.

" } }, - "documentation":"

Specifies change details of the domain configuration change.

" + "documentation":"

Container for information about a configuration change happening on a domain.

" }, "ChangeProgressStage":{ "type":"structure", "members":{ "Name":{ "shape":"ChangeProgressStageName", - "documentation":"

The name of the specific progress stage.

" + "documentation":"

The name of the stage.

" }, "Status":{ "shape":"ChangeProgressStageStatus", - "documentation":"

The overall status of a specific progress stage.

" + "documentation":"

The status of the stage.

" }, "Description":{ "shape":"Description", - "documentation":"

The description of the progress stage.

" + "documentation":"

The description of the stage.

" }, "LastUpdated":{ "shape":"LastUpdated", - "documentation":"

The last updated timestamp of the progress stage.

" + "documentation":"

The most recent updated timestamp of the stage.

" } }, - "documentation":"

A progress stage details of a specific domain configuration change.

" + "documentation":"

Progress details for each stage of a domain update.

" }, "ChangeProgressStageList":{ "type":"list", @@ -1167,15 +1382,15 @@ }, "Status":{ "shape":"OverallChangeStatus", - "documentation":"

The overall status of the domain configuration change. This field can take the following values: PENDING, PROCESSING, COMPLETED and FAILED

" + "documentation":"

The overall status of the domain configuration change.

" }, "PendingProperties":{ "shape":"StringList", - "documentation":"

The list of properties involved in the domain configuration change that are still in pending.

" + "documentation":"

The list of properties in the domain configuration change that are still pending.

" }, "CompletedProperties":{ "shape":"StringList", - "documentation":"

The list of properties involved in the domain configuration change that are completed.

" + "documentation":"

The list of properties in the domain configuration change that have completed.

" }, "TotalNumberOfStages":{ "shape":"TotalNumberOfStages", @@ -1188,6 +1403,11 @@ }, "documentation":"

The progress details of a specific domain configuration change.

" }, + "ClientToken":{ + "type":"string", + "max":64, + "min":1 + }, "CloudWatchLogsLogGroupArn":{ "type":"string", "documentation":"

ARN of the Cloudwatch log group to publish logs to.

", @@ -1200,50 +1420,50 @@ "members":{ "InstanceType":{ "shape":"OpenSearchPartitionInstanceType", - "documentation":"

The instance type for an OpenSearch cluster. UltraWarm instance types are not supported for data instances.

" + "documentation":"

Instance type of data nodes in the cluster.

" }, "InstanceCount":{ "shape":"IntegerClass", - "documentation":"

The number of instances in the specified domain cluster.

" + "documentation":"

Number of dedicated master nodes in the cluster. This number must be greater than 1, otherwise you receive a validation exception.

" }, "DedicatedMasterEnabled":{ "shape":"Boolean", - "documentation":"

A boolean value to indicate whether a dedicated master node is enabled. See Dedicated master nodes in Amazon OpenSearch Service for more information.

" + "documentation":"

Indicates whether dedicated master nodes are enabled for the cluster.True if the cluster will use a dedicated master node.False if the cluster will not.

" }, "ZoneAwarenessEnabled":{ "shape":"Boolean", - "documentation":"

A boolean value to indicate whether zone awareness is enabled. See Configuring a multi-AZ domain in Amazon OpenSearch Service for more information.

" + "documentation":"

Indicates whether multiple Availability Zones are enabled. For more information, see Configuring a multi-AZ domain in Amazon OpenSearch Service.

" }, "ZoneAwarenessConfig":{ "shape":"ZoneAwarenessConfig", - "documentation":"

The zone awareness configuration for a domain when zone awareness is enabled.

" + "documentation":"

Container for zone awareness configuration options. Only required if ZoneAwarenessEnabled is true.

" }, "DedicatedMasterType":{ "shape":"OpenSearchPartitionInstanceType", - "documentation":"

The instance type for a dedicated master node.

" + "documentation":"

OpenSearch Service instance type of the dedicated master nodes in the cluster.

" }, "DedicatedMasterCount":{ "shape":"IntegerClass", - "documentation":"

Total number of dedicated master nodes, active and on standby, for the cluster.

" + "documentation":"

Number of dedicated master nodes in the cluster. This number must be greater than 1, otherwise you receive a validation exception.

" }, "WarmEnabled":{ "shape":"Boolean", - "documentation":"

True to enable UltraWarm storage.

" + "documentation":"

Whether to enable warm storage for the cluster.

" }, "WarmType":{ "shape":"OpenSearchWarmPartitionInstanceType", - "documentation":"

The instance type for the OpenSearch cluster's warm nodes.

" + "documentation":"

The instance type for the cluster's warm nodes.

" }, "WarmCount":{ "shape":"IntegerClass", - "documentation":"

The number of UltraWarm nodes in the cluster.

" + "documentation":"

The number of warm nodes in the cluster.

" }, "ColdStorageOptions":{ "shape":"ColdStorageOptions", - "documentation":"

Specifies the ColdStorageOptions config for a Domain

" + "documentation":"

Container for cold storage configuration options.

" } }, - "documentation":"

The configuration for the domain cluster, such as the type and number of instances.

" + "documentation":"

Container for the cluster configuration of an OpenSearch Service domain. For more information, see Creating and managing Amazon OpenSearch Service domains.

" }, "ClusterConfigStatus":{ "type":"structure", @@ -1254,36 +1474,36 @@ "members":{ "Options":{ "shape":"ClusterConfig", - "documentation":"

The cluster configuration for the specified domain.

" + "documentation":"

Cluster configuration options for the specified domain.

" }, "Status":{ "shape":"OptionStatus", - "documentation":"

The cluster configuration status for the specified domain.

" + "documentation":"

The status of cluster configuration options for the specified domain.

" } }, - "documentation":"

The configuration status for the specified domain.

" + "documentation":"

The cluster configuration status for a domain.

" }, "CognitoOptions":{ "type":"structure", "members":{ "Enabled":{ "shape":"Boolean", - "documentation":"

The option to enable Cognito for OpenSearch Dashboards authentication.

" + "documentation":"

Whether to enable or disable Amazon Cognito authentication for OpenSearch Dashboards.

" }, "UserPoolId":{ "shape":"UserPoolId", - "documentation":"

The Cognito user pool ID for OpenSearch Dashboards authentication.

" + "documentation":"

The Amazon Cognito user pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication.

" }, "IdentityPoolId":{ "shape":"IdentityPoolId", - "documentation":"

The Cognito identity pool ID for OpenSearch Dashboards authentication.

" + "documentation":"

The Amazon Cognito identity pool ID that you want OpenSearch Service to use for OpenSearch Dashboards authentication.

" }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The role ARN that provides OpenSearch permissions for accessing Cognito resources.

" + "documentation":"

The AmazonOpenSearchServiceCognitoAccess role that allows OpenSearch Service to configure your user pool and identity pool.

" } }, - "documentation":"

Options to specify the Cognito user and identity pools for OpenSearch Dashboards authentication. For more information, see Configuring Amazon Cognito authentication for OpenSearch Dashboards.

" + "documentation":"

Container for the parameters required to enable Cognito authentication for an OpenSearch Service domain. For more information, see Configuring Amazon Cognito authentication for OpenSearch Dashboards.

" }, "CognitoOptionsStatus":{ "type":"structure", @@ -1309,10 +1529,10 @@ "members":{ "Enabled":{ "shape":"Boolean", - "documentation":"

Enable cold storage option. Accepted values true or false

" + "documentation":"

Whether to enable or disable cold storage on the domain.

" } }, - "documentation":"

Specifies the configuration for cold storage options such as enabled

" + "documentation":"

Container for the parameters required to enable cold storage for an OpenSearch Service domain. For more information, see Cold storage for Amazon OpenSearch Service.

" }, "CommitMessage":{ "type":"string", @@ -1327,11 +1547,14 @@ "members":{ "SourceVersion":{ "shape":"VersionString", - "documentation":"

The current version of OpenSearch a domain is on.

" + "documentation":"

The current version that the OpenSearch Service domain is running.

" }, - "TargetVersions":{"shape":"VersionList"} + "TargetVersions":{ + "shape":"VersionList", + "documentation":"

The possible versions that you can upgrade the domain to.

" + } }, - "documentation":"

A map from an EngineVersion to a list of compatible EngineVersion s to which the domain can be upgraded.

" + "documentation":"

A map of OpenSearch or Elasticsearch versions and the versions you can upgrade them to.

" }, "ConflictException":{ "type":"structure", @@ -1360,67 +1583,67 @@ "members":{ "DomainName":{ "shape":"DomainName", - "documentation":"

The name of the Amazon OpenSearch Service domain you're creating. Domain names are unique across the domains owned by an account within an AWS region. Domain names must start with a lowercase letter and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).

" + "documentation":"

Name of the OpenSearch Service domain to create. Domain names are unique across the domains owned by an account within an Amazon Web Services Region.

" }, "EngineVersion":{ "shape":"VersionString", - "documentation":"

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine version for the Amazon OpenSearch Service domain. For example, \"OpenSearch_1.0\" or \"Elasticsearch_7.9\". For more information, see Creating and managing Amazon OpenSearch Service domains .

" + "documentation":"

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine version for the OpenSearch Service domain. For example, OpenSearch_1.0 or Elasticsearch_7.9. For more information, see Creating and managing Amazon OpenSearch Service domains.

" }, "ClusterConfig":{ "shape":"ClusterConfig", - "documentation":"

Configuration options for a domain. Specifies the instance type and number of instances in the domain.

" + "documentation":"

Container for the cluster configuration of a domain.

" }, "EBSOptions":{ "shape":"EBSOptions", - "documentation":"

Options to enable, disable, and specify the type and size of EBS storage volumes.

" + "documentation":"

Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.

" }, "AccessPolicies":{ "shape":"PolicyDocument", - "documentation":"

IAM access policy as a JSON-formatted string.

" + "documentation":"

Identity and Access Management (IAM) policy document specifying the access policies for the new domain.

" }, "SnapshotOptions":{ "shape":"SnapshotOptions", - "documentation":"

Option to set time, in UTC format, of the daily automated snapshot. Default value is 0 hours.

" + "documentation":"

DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.

" }, "VPCOptions":{ "shape":"VPCOptions", - "documentation":"

Options to specify the subnets and security groups for a VPC endpoint. For more information, see Launching your Amazon OpenSearch Service domains using a VPC .

" + "documentation":"

Container for the values required to configure VPC access domains. If you don't specify these values, OpenSearch Service creates the domain with a public endpoint. For more information, see Launching your Amazon OpenSearch Service domains using a VPC.

" }, "CognitoOptions":{ "shape":"CognitoOptions", - "documentation":"

Options to specify the Cognito user and identity pools for OpenSearch Dashboards authentication. For more information, see Configuring Amazon Cognito authentication for OpenSearch Dashboards.

" + "documentation":"

Key-value pairs to configure Amazon Cognito authentication. For more information, see Configuring Amazon Cognito authentication for OpenSearch Dashboards.

" }, "EncryptionAtRestOptions":{ "shape":"EncryptionAtRestOptions", - "documentation":"

Options for encryption of data at rest.

" + "documentation":"

Key-value pairs to enable encryption at rest.

" }, "NodeToNodeEncryptionOptions":{ "shape":"NodeToNodeEncryptionOptions", - "documentation":"

Node-to-node encryption options.

" + "documentation":"

Enables node-to-node encryption.

" }, "AdvancedOptions":{ "shape":"AdvancedOptions", - "documentation":"

Option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Advanced cluster parameters for more information.

" + "documentation":"

Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:

  • \"rest.action.multi.allow_explicit_index\": \"true\" | \"false\" - Note the use of a string rather than a boolean. Specifies whether explicit references to indexes are allowed inside the body of HTTP requests. If you want to configure access policies for domain sub-resources, such as specific indexes and domain APIs, you must disable this property. Default is true.

  • \"indices.fielddata.cache.size\": \"80\" - Note the use of a string rather than a boolean. Specifies the percentage of heap space allocated to field data. Default is unbounded.

  • \"indices.query.bool.max_clause_count\": \"1024\" - Note the use of a string rather than a boolean. Specifies the maximum number of clauses allowed in a Lucene boolean query. Default is 1,024. Queries with more than the permitted number of clauses result in a TooManyClauses error.

  • \"override_main_response_version\": \"true\" | \"false\" - Note the use of a string rather than a boolean. Specifies whether the domain reports its version as 7.10 to allow Elasticsearch OSS clients and plugins to continue working with it. Default is false when creating a domain and true when upgrading a domain.

For more information, see Advanced cluster parameters.

" }, "LogPublishingOptions":{ "shape":"LogPublishingOptions", - "documentation":"

Map of LogType and LogPublishingOption, each containing options to publish a given type of OpenSearch log.

" + "documentation":"

Key-value pairs to configure slow log publishing.

" }, "DomainEndpointOptions":{ "shape":"DomainEndpointOptions", - "documentation":"

Options to specify configurations that will be applied to the domain endpoint.

" + "documentation":"

Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.

" }, "AdvancedSecurityOptions":{ "shape":"AdvancedSecurityOptionsInput", - "documentation":"

Specifies advanced security options.

" + "documentation":"

Options for fine-grained access control.

" }, "TagList":{ "shape":"TagList", - "documentation":"

A list of Tag added during domain creation.

" + "documentation":"

List of tags to add to the domain upon creation.

" }, "AutoTuneOptions":{ "shape":"AutoTuneOptionsInput", - "documentation":"

Specifies Auto-Tune options.

" + "documentation":"

Options for Auto-Tune.

" } } }, @@ -1432,7 +1655,7 @@ "documentation":"

The status of the newly created domain.

" } }, - "documentation":"

The result of a CreateDomain operation. Contains the status of the newly created Amazon OpenSearch Service domain.

" + "documentation":"

The result of a CreateDomain operation. Contains the status of the newly created domain.

" }, "CreateOutboundConnectionRequest":{ "type":"structure", @@ -1444,44 +1667,44 @@ "members":{ "LocalDomainInfo":{ "shape":"DomainInformationContainer", - "documentation":"

The AWSDomainInformation for the local OpenSearch domain.

" + "documentation":"

Name and Region of the source (local) domain.

" }, "RemoteDomainInfo":{ "shape":"DomainInformationContainer", - "documentation":"

The AWSDomainInformation for the remote OpenSearch domain.

" + "documentation":"

Name and Region of the destination (remote) domain.

" }, "ConnectionAlias":{ "shape":"ConnectionAlias", - "documentation":"

The connection alias used used by the customer for this cross-cluster connection.

" + "documentation":"

Name of the connection.

" } }, - "documentation":"

Container for the parameters to the CreateOutboundConnection operation.

" + "documentation":"

Container for the parameters to the CreateOutboundConnection operation.

" }, "CreateOutboundConnectionResponse":{ "type":"structure", "members":{ "LocalDomainInfo":{ "shape":"DomainInformationContainer", - "documentation":"

The AWSDomainInformation for the local OpenSearch domain.

" + "documentation":"

Information about the source (local) domain.

" }, "RemoteDomainInfo":{ "shape":"DomainInformationContainer", - "documentation":"

The AWSDomainInformation for the remote OpenSearch domain.

" + "documentation":"

Information about the destination (remote) domain.

" }, "ConnectionAlias":{ "shape":"ConnectionAlias", - "documentation":"

The connection alias provided during the create connection request.

" + "documentation":"

Name of the connection.

" }, "ConnectionStatus":{ "shape":"OutboundConnectionStatus", - "documentation":"

The OutboundConnectionStatus for the newly created connection.

" + "documentation":"

The status of the connection.

" }, "ConnectionId":{ "shape":"ConnectionId", - "documentation":"

The unique ID for the created outbound connection, which is used for subsequent operations on the connection.

" + "documentation":"

The unique identifier for the created outbound connection, which is used for subsequent operations on the connection.

" } }, - "documentation":"

The result of a CreateOutboundConnection request. Contains the details about the newly created cross-cluster connection.

" + "documentation":"

The result of a CreateOutboundConnection request. Contains details about the newly created cross-cluster connection.

" }, "CreatePackageRequest":{ "type":"structure", @@ -1493,11 +1716,11 @@ "members":{ "PackageName":{ "shape":"PackageName", - "documentation":"

Unique identifier for the package.

" + "documentation":"

Unique name for the package.

" }, "PackageType":{ "shape":"PackageType", - "documentation":"

Type of package. Currently supports only TXT-DICTIONARY.

" + "documentation":"

Type of package.

" }, "PackageDescription":{ "shape":"PackageDescription", @@ -1505,20 +1728,51 @@ }, "PackageSource":{ "shape":"PackageSource", - "documentation":"

The Amazon S3 location from which to import the package.

" + "documentation":"

The Amazon S3 location from which to import the package.

" } }, - "documentation":"

Container for request parameters to the CreatePackage operation.

" + "documentation":"

Container for request parameters to the CreatePackage operation.

" }, "CreatePackageResponse":{ "type":"structure", "members":{ "PackageDetails":{ "shape":"PackageDetails", - "documentation":"

Information about the package.

" + "documentation":"

Basic information about an OpenSearch Service package.

" } }, - "documentation":"

Container for the response returned by the CreatePackage operation.

" + "documentation":"

Container for the response returned by the CreatePackage operation.

" + }, + "CreateVpcEndpointRequest":{ + "type":"structure", + "required":[ + "DomainArn", + "VpcOptions" + ], + "members":{ + "DomainArn":{ + "shape":"DomainArn", + "documentation":"

The Amazon Resource Name (ARN) of the domain to grant access to.

" + }, + "VpcOptions":{ + "shape":"VPCOptions", + "documentation":"

Options to specify the subnets and security groups for the endpoint.

" + }, + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

" + } + } + }, + "CreateVpcEndpointResponse":{ + "type":"structure", + "required":["VpcEndpoint"], + "members":{ + "VpcEndpoint":{ + "shape":"VpcEndpoint", + "documentation":"

Information about the newly created VPC endpoint.

" + } + } }, "CreatedAt":{"type":"timestamp"}, "DeleteDomainRequest":{ @@ -1532,7 +1786,7 @@ "locationName":"DomainName" } }, - "documentation":"

Container for the parameters to the DeleteDomain operation. Specifies the name of the domain you want to delete.

" + "documentation":"

Container for the parameters to the DeleteDomain operation.

" }, "DeleteDomainResponse":{ "type":"structure", @@ -1542,7 +1796,7 @@ "documentation":"

The status of the domain being deleted.

" } }, - "documentation":"

The result of a DeleteDomain request. Contains the status of the pending deletion, or a \"domain not found\" error if the domain and all of its resources have been deleted.

" + "documentation":"

The results of a DeleteDomain request. Contains the status of the pending deletion, or a \"domain not found\" error if the domain and all of its resources have been deleted.

" }, "DeleteInboundConnectionRequest":{ "type":"structure", @@ -1555,17 +1809,17 @@ "locationName":"ConnectionId" } }, - "documentation":"

Container for the parameters to the DeleteInboundConnection operation.

" + "documentation":"

Container for the parameters to the DeleteInboundConnection operation.

" }, "DeleteInboundConnectionResponse":{ "type":"structure", "members":{ "Connection":{ "shape":"InboundConnection", - "documentation":"

The InboundConnection of the deleted inbound connection.

" + "documentation":"

The deleted inbound connection.

" } }, - "documentation":"

The result of a DeleteInboundConnection operation. Contains details about the deleted inbound connection.

" + "documentation":"

The results of a DeleteInboundConnection operation. Contains details about the deleted inbound connection.

" }, "DeleteOutboundConnectionRequest":{ "type":"structure", @@ -1578,17 +1832,17 @@ "locationName":"ConnectionId" } }, - "documentation":"

Container for the parameters to the DeleteOutboundConnection operation.

" + "documentation":"

Container for the parameters to the DeleteOutboundConnection operation.

" }, "DeleteOutboundConnectionResponse":{ "type":"structure", "members":{ "Connection":{ "shape":"OutboundConnection", - "documentation":"

The OutboundConnection of the deleted outbound connection.

" + "documentation":"

The deleted inbound connection.

" } }, - "documentation":"

The result of a DeleteOutboundConnection operation. Contains details about the deleted outbound connection.

" + "documentation":"

Details about the deleted outbound connection.

" }, "DeletePackageRequest":{ "type":"structure", @@ -1596,22 +1850,44 @@ "members":{ "PackageID":{ "shape":"PackageID", - "documentation":"

The internal ID of the package you want to delete. Use DescribePackages to find this value.

", + "documentation":"

The internal ID of the package you want to delete. Use DescribePackages to find this value.

", "location":"uri", "locationName":"PackageID" } }, - "documentation":"

Container for the request parameters to the DeletePackage operation.

" + "documentation":"

Deletes a package from OpenSearch Service. The package can't be associated with any OpenSearch Service domain.

" }, "DeletePackageResponse":{ "type":"structure", "members":{ "PackageDetails":{ "shape":"PackageDetails", - "documentation":"

PackageDetails

" + "documentation":"

Information about the deleted package.

" } }, - "documentation":"

Container for the response parameters to the DeletePackage operation.

" + "documentation":"

Container for the response parameters to the DeletePackage operation.

" + }, + "DeleteVpcEndpointRequest":{ + "type":"structure", + "required":["VpcEndpointId"], + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

", + "location":"uri", + "locationName":"VpcEndpointId" + } + } + }, + "DeleteVpcEndpointResponse":{ + "type":"structure", + "required":["VpcEndpointSummary"], + "members":{ + "VpcEndpointSummary":{ + "shape":"VpcEndpointSummary", + "documentation":"

Information about the deleted endpoint, including its current status (DELETING or DELETE_FAILED).

" + } + } }, "DeploymentCloseDateTimeStamp":{"type":"timestamp"}, "DeploymentStatus":{ @@ -1635,34 +1911,34 @@ "members":{ "DomainName":{ "shape":"DomainName", - "documentation":"

The domain name for which you want Auto-Tune action details.

", + "documentation":"

Name of the domain that you want Auto-Tune details about.

", "location":"uri", "locationName":"DomainName" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Set this value to limit the number of results returned. If not specified, defaults to 100.

" + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

NextToken is sent in case the earlier API call results contain the NextToken. Used for pagination.

" + "documentation":"

If your initial DescribeDomainAutoTunes operation returns a nextToken, you can include the returned nextToken in subsequent DescribeDomainAutoTunes operations, which returns results in the next page.

" } }, - "documentation":"

Container for the parameters to the DescribeDomainAutoTunes operation.

" + "documentation":"

Container for the parameters to the DescribeDomainAutoTunes operation.

" }, "DescribeDomainAutoTunesResponse":{ "type":"structure", "members":{ "AutoTunes":{ "shape":"AutoTuneList", - "documentation":"

The list of setting adjustments that Auto-Tune has made to the domain. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

The list of setting adjustments that Auto-Tune has made to the domain.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

An identifier to allow retrieval of paginated results.

" + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" } }, - "documentation":"

The result of a DescribeDomainAutoTunes request. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

The result of a DescribeDomainAutoTunes request.

" }, "DescribeDomainChangeProgressRequest":{ "type":"structure", @@ -1670,28 +1946,28 @@ "members":{ "DomainName":{ "shape":"DomainName", - "documentation":"

The domain you want to get the progress information about.

", + "documentation":"

The name of the domain to get progress information for.

", "location":"uri", "locationName":"DomainName" }, "ChangeId":{ "shape":"GUID", - "documentation":"

The specific change ID for which you want to get progress information. This is an optional parameter. If omitted, the service returns information about the most recent configuration change.

", + "documentation":"

The specific change ID for which you want to get progress information. If omitted, the request returns information about the most recent configuration change.

", "location":"querystring", "locationName":"changeid" } }, - "documentation":"

Container for the parameters to the DescribeDomainChangeProgress operation. Specifies the domain name and optional change specific identity for which you want progress information.

" + "documentation":"

Container for the parameters to the DescribeDomainChangeProgress operation.

" }, "DescribeDomainChangeProgressResponse":{ "type":"structure", "members":{ "ChangeProgressStatus":{ "shape":"ChangeProgressStatusDetails", - "documentation":"

Progress information for the configuration change that is requested in the DescribeDomainChangeProgress request.

" + "documentation":"

Container for information about the stages of a configuration change happening on a domain.

" } }, - "documentation":"

The result of a DescribeDomainChangeProgress request. Contains the progress information of the requested domain change.

" + "documentation":"

The result of a DescribeDomainChangeProgress request. Contains progress information for the requested domain change.

" }, "DescribeDomainConfigRequest":{ "type":"structure", @@ -1699,12 +1975,12 @@ "members":{ "DomainName":{ "shape":"DomainName", - "documentation":"

The domain you want to get information about.

", + "documentation":"

Name of the OpenSearch Service domain configuration that you want to describe.

", "location":"uri", "locationName":"DomainName" } }, - "documentation":"

Container for the parameters to the DescribeDomainConfig operation. Specifies the domain name for which you want configuration information.

" + "documentation":"

Container for the parameters to the DescribeDomainConfig operation.

" }, "DescribeDomainConfigResponse":{ "type":"structure", @@ -1712,10 +1988,10 @@ "members":{ "DomainConfig":{ "shape":"DomainConfig", - "documentation":"

The configuration information of the domain requested in the DescribeDomainConfig request.

" + "documentation":"

Container for the configuration of the OpenSearch Service domain.

" } }, - "documentation":"

The result of a DescribeDomainConfig request. Contains the configuration information of the requested domain.

" + "documentation":"

Contains the configuration information of the requested domain.

" }, "DescribeDomainRequest":{ "type":"structure", @@ -1723,12 +1999,12 @@ "members":{ "DomainName":{ "shape":"DomainName", - "documentation":"

The name of the domain for which you want information.

", + "documentation":"

The name of the domain that you want information about.

", "location":"uri", "locationName":"DomainName" } }, - "documentation":"

Container for the parameters to the DescribeDomain operation.

" + "documentation":"

Container for the parameters to the DescribeDomain operation.

" }, "DescribeDomainResponse":{ "type":"structure", @@ -1736,10 +2012,10 @@ "members":{ "DomainStatus":{ "shape":"DomainStatus", - "documentation":"

The current status of the domain.

" + "documentation":"

List that contains the status of each specified OpenSearch Service domain.

" } }, - "documentation":"

The result of a DescribeDomain request. Contains the status of the domain specified in the request.

" + "documentation":"

Contains the status of the domain specified in the request.

" }, "DescribeDomainsRequest":{ "type":"structure", @@ -1747,10 +2023,10 @@ "members":{ "DomainNames":{ "shape":"DomainNameList", - "documentation":"

The domains for which you want information.

" + "documentation":"

Array of OpenSearch Service domain names that you want information about. If you don't specify any domains, OpenSearch Service returns information about all domains owned by the account.

" } }, - "documentation":"

Container for the parameters to the DescribeDomains operation. By default, the API returns the status of all domains.

" + "documentation":"

Container for the parameters to the DescribeDomains operation.

" }, "DescribeDomainsResponse":{ "type":"structure", @@ -1758,42 +2034,42 @@ "members":{ "DomainStatusList":{ "shape":"DomainStatusList", - "documentation":"

The status of the domains requested in the DescribeDomains request.

" + "documentation":"

The status of the requested domains.

" } }, - "documentation":"

The result of a DescribeDomains request. Contains the status of the specified domains or all domains owned by the account.

" + "documentation":"

Contains the status of the specified domains or all domains owned by the account.

" }, "DescribeInboundConnectionsRequest":{ "type":"structure", "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

A list of filters used to match properties for inbound cross-cluster connections. Available Filter values are:

  • connection-id
  • local-domain-info.domain-name
  • local-domain-info.owner-id
  • local-domain-info.region
  • remote-domain-info.domain-name

" + "documentation":"

A list of filters used to match properties for inbound cross-cluster connections.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Set this value to limit the number of results returned. If not specified, defaults to 100.

" + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If more results are available and NextToken is present, make the next request to the same API with the received NextToken to paginate the remaining results.

" + "documentation":"

If your initial DescribeInboundConnections operation returns a nextToken, you can include the returned nextToken in subsequent DescribeInboundConnections operations, which returns results in the next page.

" } }, - "documentation":"

Container for the parameters to the DescribeInboundConnections operation.

" + "documentation":"

Container for the parameters to the DescribeInboundConnections operation.

" }, "DescribeInboundConnectionsResponse":{ "type":"structure", "members":{ "Connections":{ "shape":"InboundConnections", - "documentation":"

A list of InboundConnection matching the specified filter criteria.

" + "documentation":"

List of inbound connections.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If more results are available and NextToken is present, make the next request to the same API with the received NextToken to paginate the remaining results.

" + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" } }, - "documentation":"

The result of a DescribeInboundConnections request. Contains a list of connections matching the filter criteria.

" + "documentation":"

Contains a list of connections matching the filter criteria.

" }, "DescribeInstanceTypeLimitsRequest":{ "type":"structure", @@ -1804,82 +2080,85 @@ "members":{ "DomainName":{ "shape":"DomainName", - "documentation":"

The name of the domain you want to modify. Only include this value if you're querying OpenSearch Limits for an existing domain.

", + "documentation":"

The name of the domain. Only specify if you need the limits for an existing domain.

", "location":"querystring", "locationName":"domainName" }, "InstanceType":{ "shape":"OpenSearchPartitionInstanceType", - "documentation":"

The instance type for an OpenSearch cluster for which OpenSearch Limits are needed.

", + "documentation":"

The OpenSearch Service instance type for which you need limit information.

", "location":"uri", "locationName":"InstanceType" }, "EngineVersion":{ "shape":"VersionString", - "documentation":"

Version of OpenSearch for which Limits are needed.

", + "documentation":"

Version of OpenSearch or Elasticsearch, in the format Elasticsearch_X.Y or OpenSearch_X.Y. Defaults to the latest version of OpenSearch.

", "location":"uri", "locationName":"EngineVersion" } }, - "documentation":"

Container for the parameters to the DescribeInstanceTypeLimits operation.

" + "documentation":"

Container for the parameters to the DescribeInstanceTypeLimits operation.

" }, "DescribeInstanceTypeLimitsResponse":{ "type":"structure", "members":{ - "LimitsByRole":{"shape":"LimitsByRole"} + "LimitsByRole":{ + "shape":"LimitsByRole", + "documentation":"

Map that contains all applicable instance type limits.data refers to data nodes.master refers to dedicated master nodes.

" + } }, - "documentation":"

Container for the parameters received from the DescribeInstanceTypeLimits operation.

" + "documentation":"

Container for the parameters received from the DescribeInstanceTypeLimits operation.

" }, "DescribeOutboundConnectionsRequest":{ "type":"structure", "members":{ "Filters":{ "shape":"FilterList", - "documentation":"

A list of filters used to match properties for outbound cross-cluster connections. Available Filter names for this operation are:

  • connection-id
  • remote-domain-info.domain-name
  • remote-domain-info.owner-id
  • remote-domain-info.region
  • local-domain-info.domain-name

" + "documentation":"

List of filter names and values that you can use for requests.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Set this value to limit the number of results returned. If not specified, defaults to 100.

" + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

NextToken is sent in case the earlier API call results contain the NextToken parameter. Used for pagination.

" + "documentation":"

If your initial DescribeOutboundConnections operation returns a nextToken, you can include the returned nextToken in subsequent DescribeOutboundConnections operations, which returns results in the next page.

" } }, - "documentation":"

Container for the parameters to the DescribeOutboundConnections operation.

" + "documentation":"

Container for the parameters to the DescribeOutboundConnections operation.

" }, "DescribeOutboundConnectionsResponse":{ "type":"structure", "members":{ "Connections":{ "shape":"OutboundConnections", - "documentation":"

A list of OutboundConnection matching the specified filter criteria.

" + "documentation":"

List of outbound connections that match the filter criteria.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If more results are available and NextToken is present, make the next request to the same API with the received NextToken to paginate the remaining results.

" + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" } }, - "documentation":"

The result of a DescribeOutboundConnections request. Contains the list of connections matching the filter criteria.

" + "documentation":"

Contains a list of connections matching the filter criteria.

" }, "DescribePackagesFilter":{ "type":"structure", "members":{ "Name":{ "shape":"DescribePackagesFilterName", - "documentation":"

Any field from PackageDetails.

" + "documentation":"

Any field from PackageDetails.

" }, "Value":{ "shape":"DescribePackagesFilterValues", - "documentation":"

A list of values for the specified field.

" + "documentation":"

A list of values for the specified filter field.

" } }, - "documentation":"

A filter to apply to the DescribePackage response.

" + "documentation":"

A filter to apply to the DescribePackage response.

" }, "DescribePackagesFilterList":{ "type":"list", "member":{"shape":"DescribePackagesFilter"}, - "documentation":"

A list of DescribePackagesFilter to filter the packages included in a DescribePackages response.

" + "documentation":"

A list of DescribePackagesFilter to filter the packages included in a DescribePackages response.

" }, "DescribePackagesFilterName":{ "type":"string", @@ -1902,106 +2181,136 @@ "members":{ "Filters":{ "shape":"DescribePackagesFilterList", - "documentation":"

Only returns packages that match the DescribePackagesFilterList values.

" + "documentation":"

Only returns packages that match the DescribePackagesFilterList values.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Limits results to a maximum number of packages.

" + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page.

" + "documentation":"

If your initial DescribePackageFilters operation returns a nextToken, you can include the returned nextToken in subsequent DescribePackageFilters operations, which returns results in the next page.

" } }, - "documentation":"

Container for the request parameters to the DescribePackage operation.

" + "documentation":"

Container for the request parameters to the DescribePackage operation.

" }, "DescribePackagesResponse":{ "type":"structure", "members":{ "PackageDetailsList":{ "shape":"PackageDetailsList", - "documentation":"

List of PackageDetails objects.

" + "documentation":"

Basic information about a package.

" }, - "NextToken":{"shape":"String"} + "NextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } }, - "documentation":"

Container for the response returned by the DescribePackages operation.

" + "documentation":"

Container for the response returned by the DescribePackages operation.

" }, "DescribeReservedInstanceOfferingsRequest":{ "type":"structure", "members":{ "ReservedInstanceOfferingId":{ "shape":"GUID", - "documentation":"

The offering identifier filter value. Use this parameter to show only the available offering that matches the specified reservation identifier.

", + "documentation":"

The Reserved Instance identifier filter value. Use this parameter to show only the available instance types that match the specified reservation identifier.

", "location":"querystring", "locationName":"offeringId" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Set this value to limit the number of results returned. If not specified, defaults to 100.

", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

", "location":"querystring", "locationName":"maxResults" }, "NextToken":{ "shape":"NextToken", - "documentation":"

Provides an identifier to allow retrieval of paginated results.

", + "documentation":"

If your initial DescribeReservedInstanceOfferings operation returns a nextToken, you can include the returned nextToken in subsequent DescribeReservedInstanceOfferings operations, which returns results in the next page.

", "location":"querystring", "locationName":"nextToken" } }, - "documentation":"

Container for parameters to DescribeReservedInstanceOfferings

" + "documentation":"

Container for the request parameters to a DescribeReservedInstanceOfferings operation.

" }, "DescribeReservedInstanceOfferingsResponse":{ "type":"structure", "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

Provides an identifier to allow retrieval of paginated results.

" + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" }, "ReservedInstanceOfferings":{ "shape":"ReservedInstanceOfferingList", - "documentation":"

List of reserved OpenSearch instance offerings

" + "documentation":"

List of Reserved Instance offerings.

" } }, - "documentation":"

Container for results from DescribeReservedInstanceOfferings

" + "documentation":"

Container for results of a DescribeReservedInstanceOfferings request.

" }, "DescribeReservedInstancesRequest":{ "type":"structure", "members":{ "ReservedInstanceId":{ "shape":"GUID", - "documentation":"

The reserved instance identifier filter value. Use this parameter to show only the reservation that matches the specified reserved OpenSearch instance ID.

", + "documentation":"

The reserved instance identifier filter value. Use this parameter to show only the reservation that matches the specified reserved OpenSearch instance ID.

", "location":"querystring", "locationName":"reservationId" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Set this value to limit the number of results returned. If not specified, defaults to 100.

", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

", "location":"querystring", "locationName":"maxResults" }, "NextToken":{ "shape":"NextToken", - "documentation":"

Provides an identifier to allow retrieval of paginated results.

", + "documentation":"

If your initial DescribeReservedInstances operation returns a nextToken, you can include the returned nextToken in subsequent DescribeReservedInstances operations, which returns results in the next page.

", "location":"querystring", "locationName":"nextToken" } }, - "documentation":"

Container for parameters to DescribeReservedInstances

" + "documentation":"

Container for the request parameters to the DescribeReservedInstances operation.

" }, "DescribeReservedInstancesResponse":{ "type":"structure", "members":{ "NextToken":{ "shape":"String", - "documentation":"

Provides an identifier to allow retrieval of paginated results.

" + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" }, "ReservedInstances":{ "shape":"ReservedInstanceList", - "documentation":"

List of reserved OpenSearch instances.

" + "documentation":"

List of Reserved Instances in the current Region.

" } }, "documentation":"

Container for results from DescribeReservedInstances

" }, + "DescribeVpcEndpointsRequest":{ + "type":"structure", + "required":["VpcEndpointIds"], + "members":{ + "VpcEndpointIds":{ + "shape":"VpcEndpointIdList", + "documentation":"

The unique identifiers of the endpoints to get information about.

" + } + } + }, + "DescribeVpcEndpointsResponse":{ + "type":"structure", + "required":[ + "VpcEndpoints", + "VpcEndpointErrors" + ], + "members":{ + "VpcEndpoints":{ + "shape":"VpcEndpoints", + "documentation":"

Information about each requested VPC endpoint.

" + }, + "VpcEndpointErrors":{ + "shape":"VpcEndpointErrorList", + "documentation":"

Any errors associated with the request.

" + } + } + }, "Description":{"type":"string"}, "DisableTimestamp":{"type":"timestamp"}, "DisabledOperationException":{ @@ -2021,105 +2330,111 @@ "members":{ "PackageID":{ "shape":"PackageID", - "documentation":"

The internal ID of the package to associate with a domain. Use DescribePackages to find this value.

", + "documentation":"

Internal ID of the package to dissociate from the domain. Use ListPackagesForDomain to find this value.

", "location":"uri", "locationName":"PackageID" }, "DomainName":{ "shape":"DomainName", - "documentation":"

The name of the domain to associate the package with.

", + "documentation":"

Name of the domain to dissociate the package from.

", "location":"uri", "locationName":"DomainName" } }, - "documentation":"

Container for the request parameters to the DissociatePackage operation.

" + "documentation":"

Container for the request parameters to the DissociatePackage operation.

" }, "DissociatePackageResponse":{ "type":"structure", "members":{ "DomainPackageDetails":{ "shape":"DomainPackageDetails", - "documentation":"

DomainPackageDetails

" + "documentation":"

Information about a package that has been dissociated from the domain.

" } }, - "documentation":"

Container for the response returned by DissociatePackage operation.

" + "documentation":"

Container for the response returned by an DissociatePackage operation.

" + }, + "DomainArn":{ + "type":"string", + "max":512, + "min":1, + "pattern":"arn:aws[a-z\\-]*:[a-z]+:[a-z0-9\\-]+:[0-9]+:domain\\/[a-z0-9\\-]+" }, "DomainConfig":{ "type":"structure", "members":{ "EngineVersion":{ "shape":"VersionStatus", - "documentation":"

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine version for the OpenSearch or Elasticsearch domain.

" + "documentation":"

The OpenSearch or Elasticsearch version that the domain is running.

" }, "ClusterConfig":{ "shape":"ClusterConfigStatus", - "documentation":"

The ClusterConfig for the domain.

" + "documentation":"

Container for the cluster configuration of a the domain.

" }, "EBSOptions":{ "shape":"EBSOptionsStatus", - "documentation":"

The EBSOptions for the domain.

" + "documentation":"

Container for EBS options configured for an OpenSearch Service domain.

" }, "AccessPolicies":{ "shape":"AccessPoliciesStatus", - "documentation":"

IAM access policy as a JSON-formatted string.

" + "documentation":"

Specifies the access policies for the domain.

" }, "SnapshotOptions":{ "shape":"SnapshotOptionsStatus", - "documentation":"

The SnapshotOptions for the domain.

" + "documentation":"

DEPRECATED. Container for parameters required to configure automated snapshots of domain indexes.

" }, "VPCOptions":{ "shape":"VPCDerivedInfoStatus", - "documentation":"

The VPCOptions for the specified domain. For more information, see Launching your Amazon OpenSearch Service domains using a VPC.

" + "documentation":"

The current VPC options for the domain and the status of any updates to their configuration.

" }, "CognitoOptions":{ "shape":"CognitoOptionsStatus", - "documentation":"

The CognitoOptions for the specified domain. For more information, see Configuring Amazon Cognito authentication for OpenSearch Dashboards.

" + "documentation":"

Container for Amazon Cognito options for the domain.

" }, "EncryptionAtRestOptions":{ "shape":"EncryptionAtRestOptionsStatus", - "documentation":"

The EncryptionAtRestOptions for the domain.

" + "documentation":"

Key-value pairs to enable encryption at rest.

" }, "NodeToNodeEncryptionOptions":{ "shape":"NodeToNodeEncryptionOptionsStatus", - "documentation":"

The NodeToNodeEncryptionOptions for the domain.

" + "documentation":"

Whether node-to-node encryption is enabled or disabled.

" }, "AdvancedOptions":{ "shape":"AdvancedOptionsStatus", - "documentation":"

The AdvancedOptions for the domain. See Advanced options for more information.

" + "documentation":"

Key-value pairs to specify advanced configuration options. For more information, see Advanced options.

" }, "LogPublishingOptions":{ "shape":"LogPublishingOptionsStatus", - "documentation":"

Log publishing options for the given domain.

" + "documentation":"

Key-value pairs to configure slow log publishing.

" }, "DomainEndpointOptions":{ "shape":"DomainEndpointOptionsStatus", - "documentation":"

The DomainEndpointOptions for the domain.

" + "documentation":"

Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.

" }, "AdvancedSecurityOptions":{ "shape":"AdvancedSecurityOptionsStatus", - "documentation":"

Specifies AdvancedSecurityOptions for the domain.

" + "documentation":"

Container for fine-grained access control settings for the domain.

" }, "AutoTuneOptions":{ "shape":"AutoTuneOptionsStatus", - "documentation":"

Specifies AutoTuneOptions for the domain.

" + "documentation":"

Container for Auto-Tune settings for the domain.

" }, "ChangeProgressDetails":{ "shape":"ChangeProgressDetails", - "documentation":"

Specifies change details of the domain configuration change.

" + "documentation":"

Container for information about the progress of an existing configuration change.

" } }, - "documentation":"

The configuration of a domain.

" + "documentation":"

Container for the configuration of an OpenSearch Service domain.

" }, "DomainEndpointOptions":{ "type":"structure", "members":{ "EnforceHTTPS":{ "shape":"Boolean", - "documentation":"

Whether only HTTPS endpoint should be enabled for the domain.

" + "documentation":"

True to require that all traffic to the domain arrive over HTTPS.

" }, "TLSSecurityPolicy":{ "shape":"TLSSecurityPolicy", - "documentation":"

Specify the TLS security policy to apply to the HTTPS endpoint of the domain.
Can be one of the following values:

  • Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLSv1.0 and higher.
  • Policy-Min-TLS-1-2-2019-07: TLS security policy which supports only TLSv1.2

" + "documentation":"

Specify the TLS security policy to apply to the HTTPS endpoint of the domain.

Can be one of the following values:

  • Policy-Min-TLS-1-0-2019-07: TLS security policy which supports TLS version 1.0 and higher.

  • Policy-Min-TLS-1-2-2019-07: TLS security policy which supports only TLS version 1.2

" }, "CustomEndpointEnabled":{ "shape":"Boolean", @@ -2127,14 +2442,14 @@ }, "CustomEndpoint":{ "shape":"DomainNameFqdn", - "documentation":"

The fully qualified domain for your custom endpoint.

" + "documentation":"

The fully qualified URL for the custom endpoint.

" }, "CustomEndpointCertificateArn":{ "shape":"ARN", - "documentation":"

The ACM certificate ARN for your custom endpoint.

" + "documentation":"

The ARN for your security certificate, managed in Amazon Web Services Certificate Manager (ACM).

" } }, - "documentation":"

Options to configure the endpoint for the domain.

" + "documentation":"

Options to configure a custom endpoint for an OpenSearch Service domain.

" }, "DomainEndpointOptionsStatus":{ "type":"structure", @@ -2145,18 +2460,18 @@ "members":{ "Options":{ "shape":"DomainEndpointOptions", - "documentation":"

Options to configure the endpoint for the domain.

" + "documentation":"

Options to configure the endpoint for a domain.

" }, "Status":{ "shape":"OptionStatus", - "documentation":"

The status of the endpoint options for the domain. See OptionStatus for the status information that's included.

" + "documentation":"

The status of the endpoint options for a domain.

" } }, - "documentation":"

The configured endpoint options for the domain and their current status.

" + "documentation":"

The configured endpoint options for a domain and their current status.

" }, "DomainId":{ "type":"string", - "documentation":"

Unique identifier for the domain.

", + "documentation":"

Unique identifier for an OpenSearch Service domain.

", "max":64, "min":1 }, @@ -2165,28 +2480,33 @@ "members":{ "DomainName":{ "shape":"DomainName", - "documentation":"

The DomainName.

" + "documentation":"

Name of the domain.

" }, "EngineType":{ "shape":"EngineType", - "documentation":"

Specifies the EngineType of the domain.

" + "documentation":"

The type of search engine that the domain is running.OpenSearch for an OpenSearch engine, or Elasticsearch for a legacy Elasticsearch OSS engine.

" } - } + }, + "documentation":"

Information about an OpenSearch Service domain.

" }, "DomainInfoList":{ "type":"list", "member":{"shape":"DomainInfo"}, - "documentation":"

Contains the list of domain information.

" + "documentation":"

Contains a list of information about a domain.

" }, "DomainInformationContainer":{ "type":"structure", "members":{ - "AWSDomainInformation":{"shape":"AWSDomainInformation"} - } + "AWSDomainInformation":{ + "shape":"AWSDomainInformation", + "documentation":"

Information about an Amazon OpenSearch Service domain.

" + } + }, + "documentation":"

Container for information about an OpenSearch Service domain.

" }, "DomainName":{ "type":"string", - "documentation":"

The name of an domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).

", + "documentation":"

The name of an OpenSearch Service domain. Domain names are unique across the domains owned by an account within an Amazon Web Services Region.

", "max":28, "min":3, "pattern":"[a-z][a-z0-9\\-]+" @@ -2200,14 +2520,14 @@ "DomainNameList":{ "type":"list", "member":{"shape":"DomainName"}, - "documentation":"

A list of domain names.

" + "documentation":"

A list of OpenSearch Service domain names.

" }, "DomainPackageDetails":{ "type":"structure", "members":{ "PackageID":{ "shape":"PackageID", - "documentation":"

The internal ID of the package.

" + "documentation":"

Internal ID of the package.

" }, "PackageName":{ "shape":"PackageName", @@ -2215,31 +2535,34 @@ }, "PackageType":{ "shape":"PackageType", - "documentation":"

Currently supports only TXT-DICTIONARY.

" + "documentation":"

The type of package.

" }, "LastUpdated":{ "shape":"LastUpdated", - "documentation":"

The timestamp of the most recent update to the package association status.

" + "documentation":"

Timestamp of the most recent update to the package association status.

" }, "DomainName":{ "shape":"DomainName", - "documentation":"

The name of the domain you've associated a package with.

" + "documentation":"

Name of the domain that the package is associated with.

" }, "DomainPackageStatus":{ "shape":"DomainPackageStatus", - "documentation":"

State of the association. Values are ASSOCIATING, ASSOCIATION_FAILED, ACTIVE, DISSOCIATING, and DISSOCIATION_FAILED.

" + "documentation":"

State of the association.

" + }, + "PackageVersion":{ + "shape":"PackageVersion", + "documentation":"

The current version of the package.

" }, - "PackageVersion":{"shape":"PackageVersion"}, "ReferencePath":{ "shape":"ReferencePath", - "documentation":"

The relative path on Amazon OpenSearch Service nodes, which can be used as synonym_path when the package is a synonym file.

" + "documentation":"

Denotes the location of the package on the OpenSearch Service cluster nodes. It's the same as synonym_path for dictionary files.

" }, "ErrorDetails":{ "shape":"ErrorDetails", "documentation":"

Additional information if the package is in an error state. Null otherwise.

" } }, - "documentation":"

Information on a package associated with a domain.

" + "documentation":"

Information about a package that is associated with a domain. For more information, see Custom packages for Amazon OpenSearch Service.

" }, "DomainPackageDetailsList":{ "type":"list", @@ -2266,80 +2589,83 @@ "members":{ "DomainId":{ "shape":"DomainId", - "documentation":"

The unique identifier for the specified domain.

" + "documentation":"

Unique identifier for the domain.

" }, "DomainName":{ "shape":"DomainName", - "documentation":"

The name of a domain. Domain names are unique across the domains owned by an account within an AWS region. Domain names start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).

" + "documentation":"

Name of the domain. Domain names are unique across all domains owned by the same account within an Amazon Web Services Region.

" }, "ARN":{ "shape":"ARN", - "documentation":"

The Amazon Resource Name (ARN) of a domain. See IAM identifiers in the AWS Identity and Access Management User Guide for more information.

" + "documentation":"

The Amazon Resource Name (ARN) of the domain. For more information, see IAM identifiers in the AWS Identity and Access Management User Guide.

" }, "Created":{ "shape":"Boolean", - "documentation":"

The domain creation status. True if the creation of a domain is complete. False if domain creation is still in progress.

" + "documentation":"

Creation status of an OpenSearch Service domain. True if domain creation is complete. False if domain creation is still in progress.

" }, "Deleted":{ "shape":"Boolean", - "documentation":"

The domain deletion status. True if a delete request has been received for the domain but resource cleanup is still in progress. False if the domain has not been deleted. Once domain deletion is complete, the status of the domain is no longer returned.

" + "documentation":"

Deletion status of an OpenSearch Service domain. True if domain deletion is complete. False if domain deletion is still in progress. Once deletion is complete, the status of the domain is no longer returned.

" }, "Endpoint":{ "shape":"ServiceUrl", - "documentation":"

The domain endpoint that you use to submit index and search requests.

" + "documentation":"

Domain-specific endpoint used to submit index, search, and data upload requests to the domain.

" }, "Endpoints":{ "shape":"EndpointsMap", - "documentation":"

Map containing the domain endpoints used to submit index and search requests. Example key, value: 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'.

" + "documentation":"

The key-value pair that exists if the OpenSearch Service domain uses VPC endpoints.. Example key, value: 'vpc','vpc-endpoint-h2dsd34efgyghrtguk5gt6j2foh4.us-east-1.es.amazonaws.com'.

" }, "Processing":{ "shape":"Boolean", - "documentation":"

The status of the domain configuration. True if Amazon OpenSearch Service is processing configuration changes. False if the configuration is active.

" + "documentation":"

The status of the domain configuration. True if OpenSearch Service is processing configuration changes. False if the configuration is active.

" }, "UpgradeProcessing":{ "shape":"Boolean", - "documentation":"

The status of a domain version upgrade. True if Amazon OpenSearch Service is undergoing a version upgrade. False if the configuration is active.

" + "documentation":"

The status of a domain version upgrade to a new version of OpenSearch or Elasticsearch. True if OpenSearch Service is in the process of a version upgrade. False if the configuration is active.

" + }, + "EngineVersion":{ + "shape":"VersionString", + "documentation":"

Version of OpenSearch or Elasticsearch that the domain is running, in the format Elasticsearch_X.Y or OpenSearch_X.Y.

" }, - "EngineVersion":{"shape":"VersionString"}, "ClusterConfig":{ "shape":"ClusterConfig", - "documentation":"

The type and number of instances in the domain.

" + "documentation":"

Container for the cluster configuration of the domain.

" }, "EBSOptions":{ "shape":"EBSOptions", - "documentation":"

The EBSOptions for the specified domain.

" + "documentation":"

Container for EBS-based storage settings for the domain.

" }, "AccessPolicies":{ "shape":"PolicyDocument", - "documentation":"

IAM access policy as a JSON-formatted string.

" + "documentation":"

Identity and Access Management (IAM) policy document specifying the access policies for the domain.

" }, "SnapshotOptions":{ "shape":"SnapshotOptions", - "documentation":"

The status of the SnapshotOptions.

" + "documentation":"

DEPRECATED. Container for parameters required to configure automated snapshots of domain indexes.

" }, "VPCOptions":{ "shape":"VPCDerivedInfo", - "documentation":"

The VPCOptions for the specified domain. For more information, see Launching your Amazon OpenSearch Service domains using a VPC.

" + "documentation":"

The VPC configuration for the domain.

" }, "CognitoOptions":{ "shape":"CognitoOptions", - "documentation":"

The CognitoOptions for the specified domain. For more information, see Configuring Amazon Cognito authentication for OpenSearch Dashboards.

" + "documentation":"

Key-value pairs to configure Amazon Cognito authentication for OpenSearch Dashboards.

" }, "EncryptionAtRestOptions":{ "shape":"EncryptionAtRestOptions", - "documentation":"

The status of the EncryptionAtRestOptions.

" + "documentation":"

Encryption at rest settings for the domain.

" }, "NodeToNodeEncryptionOptions":{ "shape":"NodeToNodeEncryptionOptions", - "documentation":"

The status of the NodeToNodeEncryptionOptions.

" + "documentation":"

Whether node-to-node encryption is enabled or disabled.

" }, "AdvancedOptions":{ "shape":"AdvancedOptions", - "documentation":"

The status of the AdvancedOptions.

" + "documentation":"

Key-value pairs that specify advanced configuration options.

" }, "LogPublishingOptions":{ "shape":"LogPublishingOptions", - "documentation":"

Log publishing options for the given domain.

" + "documentation":"

Log publishing options for the domain.

" }, "ServiceSoftwareOptions":{ "shape":"ServiceSoftwareOptions", @@ -2347,27 +2673,27 @@ }, "DomainEndpointOptions":{ "shape":"DomainEndpointOptions", - "documentation":"

The current status of the domain's endpoint options.

" + "documentation":"

Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.

" }, "AdvancedSecurityOptions":{ "shape":"AdvancedSecurityOptions", - "documentation":"

The current status of the domain's advanced security options.

" + "documentation":"

Settings for fine-grained access control.

" }, "AutoTuneOptions":{ "shape":"AutoTuneOptionsOutput", - "documentation":"

The current status of the domain's Auto-Tune options.

" + "documentation":"

Auto-Tune settings for the domain.

" }, "ChangeProgressDetails":{ "shape":"ChangeProgressDetails", - "documentation":"

Specifies change details of the domain configuration change.

" + "documentation":"

Information about a configuration change happening on the domain.

" } }, - "documentation":"

The current status of a domain.

" + "documentation":"

The current status of an OpenSearch Service domain.

" }, "DomainStatusList":{ "type":"list", "member":{"shape":"DomainStatus"}, - "documentation":"

A list that contains the status of each requested domain.

" + "documentation":"

List that contains the status of each specified OpenSearch Service domain.

" }, "Double":{"type":"double"}, "DryRun":{"type":"boolean"}, @@ -2376,31 +2702,32 @@ "members":{ "DeploymentType":{ "shape":"DeploymentType", - "documentation":"

Specifies the way in which Amazon OpenSearch Service applies the update. Possible responses are Blue/Green (the update requires a blue/green deployment), DynamicUpdate (no blue/green required), Undetermined (the domain is undergoing an update and can't predict the deployment type; try again after the update is complete), and None (the request doesn't include any configuration changes).

" + "documentation":"

Specifies the way in which OpenSearch Service will apply an update. Possible values are:

  • Blue/Green - The update requires a blue/green deployment.

  • DynamicUpdate - No blue/green deployment required

  • Undetermined - The domain is in the middle of an update and can't predict the deployment type. Try again after the update is complete.

  • None - The request doesn't include any configuration changes.

" }, "Message":{ "shape":"Message", - "documentation":"

Contains an optional message associated with the DryRunResults.

" + "documentation":"

A message corresponding to the deployment type.

" } - } + }, + "documentation":"

Results of a dry run performed in an update domain request.

" }, "Duration":{ "type":"structure", "members":{ "Value":{ "shape":"DurationValue", - "documentation":"

Integer to specify the value of a maintenance schedule duration. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

Integer to specify the value of a maintenance schedule duration.

" }, "Unit":{ "shape":"TimeUnit", - "documentation":"

The unit of a maintenance schedule duration. Valid value is HOURS. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

The unit of measurement for the duration of a maintenance schedule.

" } }, - "documentation":"

The maintenance schedule duration: duration value and duration unit. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

The duration of a maintenance schedule. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "DurationValue":{ "type":"long", - "documentation":"

Integer to specify the value of a maintenance schedule duration. See Auto-Tune for Amazon OpenSearch Service for more information.

", + "documentation":"

Integer that specifies the value of a maintenance schedule duration.

", "max":24, "min":1 }, @@ -2409,22 +2736,26 @@ "members":{ "EBSEnabled":{ "shape":"Boolean", - "documentation":"

Whether EBS-based storage is enabled.

" + "documentation":"

Indicates whether EBS volumes are attached to data nodes in an OpenSearch Service domain.

" }, "VolumeType":{ "shape":"VolumeType", - "documentation":"

The volume type for EBS-based storage.

" + "documentation":"

Specifies the type of EBS volumes attached to data nodes.

" }, "VolumeSize":{ "shape":"IntegerClass", - "documentation":"

Integer to specify the size of an EBS volume.

" + "documentation":"

Specifies the size (in GiB) of EBS volumes attached to data nodes.

" }, "Iops":{ "shape":"IntegerClass", - "documentation":"

The IOPD for a Provisioned IOPS EBS volume (SSD).

" + "documentation":"

Specifies the baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the gp3 and provisioned IOPS EBS volume types.

" + }, + "Throughput":{ + "shape":"IntegerClass", + "documentation":"

Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type.

" } }, - "documentation":"

Options to enable, disable, and specify the properties of EBS storage volumes.

" + "documentation":"

Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.

" }, "EBSOptionsStatus":{ "type":"structure", @@ -2435,28 +2766,28 @@ "members":{ "Options":{ "shape":"EBSOptions", - "documentation":"

The EBS options for the specified domain.

" + "documentation":"

The configured EBS options for the specified domain.

" }, "Status":{ "shape":"OptionStatus", "documentation":"

The status of the EBS options for the specified domain.

" } }, - "documentation":"

Status of the EBS options for the specified domain.

" + "documentation":"

The status of the EBS options for the specified OpenSearch Service domain.

" }, "EncryptionAtRestOptions":{ "type":"structure", "members":{ "Enabled":{ "shape":"Boolean", - "documentation":"

The option to enable encryption at rest.

" + "documentation":"

True to enable encryption at rest.

" }, "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

The KMS key ID for encryption at rest options.

" + "documentation":"

The KMS key ID. Takes the form 1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a.

" } }, - "documentation":"

Specifies encryption at rest options.

" + "documentation":"

Specifies whether the domain should encrypt data at rest, and if so, the Key Management Service (KMS) key to use. Can be used only to create a new domain, not update an existing one.

" }, "EncryptionAtRestOptionsStatus":{ "type":"structure", @@ -2467,14 +2798,18 @@ "members":{ "Options":{ "shape":"EncryptionAtRestOptions", - "documentation":"

The Encryption At Rest options for the specified domain.

" + "documentation":"

Encryption at rest options for the specified domain.

" }, "Status":{ "shape":"OptionStatus", - "documentation":"

The status of the Encryption At Rest options for the specified domain.

" + "documentation":"

The status of the encryption at rest options for the specified domain.

" } }, - "documentation":"

Status of the encryption At Rest options for the specified domain.

" + "documentation":"

Status of the encryption at rest options for the specified OpenSearch Service domain.

" + }, + "Endpoint":{ + "type":"string", + "pattern":"^[A-Za-z0-9\\-\\.]+$" }, "EndpointsMap":{ "type":"map", @@ -2491,9 +2826,16 @@ "ErrorDetails":{ "type":"structure", "members":{ - "ErrorType":{"shape":"ErrorType"}, - "ErrorMessage":{"shape":"ErrorMessage"} - } + "ErrorType":{ + "shape":"ErrorType", + "documentation":"

The type of error that occurred.

" + }, + "ErrorMessage":{ + "shape":"ErrorMessage", + "documentation":"

A message describing the error.

" + } + }, + "documentation":"

Additional information if the package is in an error state. Null otherwise.

" }, "ErrorMessage":{"type":"string"}, "ErrorType":{"type":"string"}, @@ -2502,14 +2844,14 @@ "members":{ "Name":{ "shape":"NonEmptyString", - "documentation":"

The name of the filter.

" + "documentation":"

The name of the filter.

" }, "Values":{ "shape":"ValueStringList", - "documentation":"

Contains one or more values for the filter.

" + "documentation":"

One or more values for the filter.

" } }, - "documentation":"

A filter used to limit results when describing inbound or outbound cross-cluster connections. Multiple values can be specified per filter. A cross-cluster connection must match at least one of the specified values for it to be returned from an operation.

" + "documentation":"

A filter used to limit results when describing inbound or outbound cross-cluster connections. You can specify multiple values per filter. A cross-cluster connection must match at least one of the specified values for it to be returned from an operation.

" }, "FilterList":{ "type":"list", @@ -2526,21 +2868,22 @@ "members":{ "DomainName":{ "shape":"DomainName", + "documentation":"

The name of an existing domain. Provide this parameter to limit the results to a single domain.

", "location":"querystring", "locationName":"domainName" } }, - "documentation":"

Container for the request parameters to GetCompatibleVersions operation.

" + "documentation":"

Container for the request parameters to GetCompatibleVersions operation.

" }, "GetCompatibleVersionsResponse":{ "type":"structure", "members":{ "CompatibleVersions":{ "shape":"CompatibleVersionsList", - "documentation":"

A map of compatible OpenSearch versions returned as part of the GetCompatibleVersions operation.

" + "documentation":"

A map of OpenSearch or Elasticsearch versions and the versions you can upgrade them to.

" } }, - "documentation":"

Container for the response returned by the GetCompatibleVersions operation.

" + "documentation":"

Container for the response returned by the GetCompatibleVersions operation.

" }, "GetPackageVersionHistoryRequest":{ "type":"structure", @@ -2548,36 +2891,42 @@ "members":{ "PackageID":{ "shape":"PackageID", - "documentation":"

Returns an audit history of package versions.

", + "documentation":"

The unique identifier of the package.

", "location":"uri", "locationName":"PackageID" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Limits results to a maximum number of package versions.

", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

", "location":"querystring", "locationName":"maxResults" }, "NextToken":{ "shape":"NextToken", - "documentation":"

Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page.

", + "documentation":"

If your initial GetPackageVersionHistory operation returns a nextToken, you can include the returned nextToken in subsequent GetPackageVersionHistory operations, which returns results in the next page.

", "location":"querystring", "locationName":"nextToken" } }, - "documentation":"

Container for the request parameters to the GetPackageVersionHistory operation.

" + "documentation":"

Container for the request parameters to the GetPackageVersionHistory operation.

" }, "GetPackageVersionHistoryResponse":{ "type":"structure", "members":{ - "PackageID":{"shape":"PackageID"}, + "PackageID":{ + "shape":"PackageID", + "documentation":"

The unique identifier of the package.

" + }, "PackageVersionHistoryList":{ "shape":"PackageVersionHistoryList", - "documentation":"

List of PackageVersionHistory objects.

" + "documentation":"

A list of package versions, along with their creation time and commit message.

" }, - "NextToken":{"shape":"String"} + "NextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } }, - "documentation":"

Container for response returned by GetPackageVersionHistory operation.

" + "documentation":"

Container for response returned by GetPackageVersionHistory operation.

" }, "GetUpgradeHistoryRequest":{ "type":"structure", @@ -2585,35 +2934,38 @@ "members":{ "DomainName":{ "shape":"DomainName", + "documentation":"

The name of an existing domain.

", "location":"uri", "locationName":"DomainName" }, "MaxResults":{ "shape":"MaxResults", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

", "location":"querystring", "locationName":"maxResults" }, "NextToken":{ "shape":"NextToken", + "documentation":"

If your initial GetUpgradeHistory operation returns a nextToken, you can include the returned nextToken in subsequent GetUpgradeHistory operations, which returns results in the next page.

", "location":"querystring", "locationName":"nextToken" } }, - "documentation":"

Container for the request parameters to the GetUpgradeHistory operation.

" + "documentation":"

Container for the request parameters to the GetUpgradeHistory operation.

" }, "GetUpgradeHistoryResponse":{ "type":"structure", "members":{ "UpgradeHistories":{ "shape":"UpgradeHistoryList", - "documentation":"

A list of UpgradeHistory objects corresponding to each upgrade or upgrade eligibility check performed on a domain returned as part of the GetUpgradeHistoryResponse object.

" + "documentation":"

A list of objects corresponding to each upgrade or upgrade eligibility check performed on a domain.

" }, "NextToken":{ "shape":"String", - "documentation":"

Pagination token that needs to be supplied to the next call to get the next page of results.

" + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" } }, - "documentation":"

Container for the response returned by the GetUpgradeHistory operation.

" + "documentation":"

Container for the response returned by the GetUpgradeHistory operation.

" }, "GetUpgradeStatusRequest":{ "type":"structure", @@ -2621,29 +2973,30 @@ "members":{ "DomainName":{ "shape":"DomainName", + "documentation":"

The domain of the domain to get upgrade status information for.

", "location":"uri", "locationName":"DomainName" } }, - "documentation":"

Container for the request parameters to the GetUpgradeStatus operation.

" + "documentation":"

Container for the request parameters to the GetUpgradeStatus operation.

" }, "GetUpgradeStatusResponse":{ "type":"structure", "members":{ "UpgradeStep":{ "shape":"UpgradeStep", - "documentation":"

One of three steps an upgrade or upgrade eligibility check goes through:

  • PreUpgradeCheck
  • Snapshot
  • Upgrade

" + "documentation":"

One of three steps that an upgrade or upgrade eligibility check goes through.

" }, "StepStatus":{ "shape":"UpgradeStatus", - "documentation":"

One of four statuses an upgrade have, returned as part of the GetUpgradeStatusResponse object. The status can take one of the following values:

  • In Progress
  • Succeeded
  • Succeeded with Issues
  • Failed

" + "documentation":"

The status of the current step that an upgrade is on.

" }, "UpgradeName":{ "shape":"UpgradeName", - "documentation":"

A string that briefly describes the update.

" + "documentation":"

A string that describes the update.

" } }, - "documentation":"

Container for the response returned by the GetUpgradeStatus operation.

" + "documentation":"

Container for the response returned by the GetUpgradeStatus operation.

" }, "IdentityPoolId":{ "type":"string", @@ -2656,36 +3009,36 @@ "members":{ "LocalDomainInfo":{ "shape":"DomainInformationContainer", - "documentation":"

The AWSDomainInformation for the local OpenSearch domain.

" + "documentation":"

Information about the source (local) domain.

" }, "RemoteDomainInfo":{ "shape":"DomainInformationContainer", - "documentation":"

The AWSDomainInformation for the remote OpenSearch domain.

" + "documentation":"

Information about the destination (remote) domain.

" }, "ConnectionId":{ "shape":"ConnectionId", - "documentation":"

The connection ID for the inbound cross-cluster connection.

" + "documentation":"

The unique identifier of the connection.

" }, "ConnectionStatus":{ "shape":"InboundConnectionStatus", - "documentation":"

The InboundConnectionStatus for the outbound connection.

" + "documentation":"

The current status of the connection.

" } }, - "documentation":"

Details of an inbound connection.

" + "documentation":"

Describes an inbound cross-cluster connection for Amazon OpenSearch Service. For more information, see Cross-cluster search for Amazon OpenSearch Service.

" }, "InboundConnectionStatus":{ "type":"structure", "members":{ "StatusCode":{ "shape":"InboundConnectionStatusCode", - "documentation":"

The state code for the inbound connection. Can be one of the following:

  • PENDING_ACCEPTANCE: Inbound connection is not yet accepted by the remote domain owner.
  • APPROVED: Inbound connection is pending acceptance by the remote domain owner.
  • PROVISIONING: Inbound connection provisioning is in progress.
  • ACTIVE: Inbound connection is active and ready to use.
  • REJECTING: Inbound connection rejection is in process.
  • REJECTED: Inbound connection is rejected.
  • DELETING: Inbound connection deletion is in progress.
  • DELETED: Inbound connection is deleted and can no longer be used.
" + "documentation":"

The status code for the connection. Can be one of the following:

  • PENDING_ACCEPTANCE - Inbound connection is not yet accepted by the remote domain owner.

  • APPROVED: Inbound connection is pending acceptance by the remote domain owner.

  • PROVISIONING: Inbound connection is being provisioned.

  • ACTIVE: Inbound connection is active and ready to use.

  • REJECTING: Inbound connection rejection is in process.

  • REJECTED: Inbound connection is rejected.

  • DELETING: Inbound connection deletion is in progress.

  • DELETED: Inbound connection is deleted and can no longer be used.

" }, "Message":{ "shape":"ConnectionStatusMessage", - "documentation":"

Verbose information for the inbound connection status.

" + "documentation":"

Information about the connection.

" } }, - "documentation":"

The connection status of an inbound cross-cluster connection.

" + "documentation":"

The status of an inbound cross-cluster connection for OpenSearch Service.

" }, "InboundConnectionStatusCode":{ "type":"string", @@ -2706,23 +3059,32 @@ }, "InstanceCount":{ "type":"integer", - "documentation":"

The number of EC2 instances in the domain.

", + "documentation":"

Number of instances in an OpenSearch Service cluster.

", "min":1 }, "InstanceCountLimits":{ "type":"structure", "members":{ - "MinimumInstanceCount":{"shape":"MinimumInstanceCount"}, - "MaximumInstanceCount":{"shape":"MaximumInstanceCount"} + "MinimumInstanceCount":{ + "shape":"MinimumInstanceCount", + "documentation":"

The maximum allowed number of instances.

" + }, + "MaximumInstanceCount":{ + "shape":"MaximumInstanceCount", + "documentation":"

The minimum allowed number of instances.

" + } }, - "documentation":"

InstanceCountLimits represents the limits on the number of instances that can be created in Amazon OpenSearch Service for a given InstanceType.

" + "documentation":"

Limits on the number of instances that can be created in OpenSearch Service for a given instance type.

" }, "InstanceLimits":{ "type":"structure", "members":{ - "InstanceCountLimits":{"shape":"InstanceCountLimits"} + "InstanceCountLimits":{ + "shape":"InstanceCountLimits", + "documentation":"

Limits on the number of instances that can be created for a given instance type.

" + } }, - "documentation":"

InstanceLimits represents the list of instance-related attributes that are available for a given InstanceType.

" + "documentation":"

Instance-related attributes that are available for a given instance type.

" }, "InstanceRole":{"type":"string"}, "InstanceRoleList":{ @@ -2732,14 +3094,36 @@ "InstanceTypeDetails":{ "type":"structure", "members":{ - "InstanceType":{"shape":"OpenSearchPartitionInstanceType"}, - "EncryptionEnabled":{"shape":"Boolean"}, - "CognitoEnabled":{"shape":"Boolean"}, - "AppLogsEnabled":{"shape":"Boolean"}, - "AdvancedSecurityEnabled":{"shape":"Boolean"}, - "WarmEnabled":{"shape":"Boolean"}, - "InstanceRole":{"shape":"InstanceRoleList"} - } + "InstanceType":{ + "shape":"OpenSearchPartitionInstanceType", + "documentation":"

The instance type.

" + }, + "EncryptionEnabled":{ + "shape":"Boolean", + "documentation":"

Whether encryption at rest and node-to-node encryption are supported for the instance type.

" + }, + "CognitoEnabled":{ + "shape":"Boolean", + "documentation":"

Whether Amazon Cognito access is supported for the instance type.

" + }, + "AppLogsEnabled":{ + "shape":"Boolean", + "documentation":"

Whether logging is supported for the instance type.

" + }, + "AdvancedSecurityEnabled":{ + "shape":"Boolean", + "documentation":"

Whether fine-grained access control is supported for the instance type.

" + }, + "WarmEnabled":{ + "shape":"Boolean", + "documentation":"

Whether UltraWarm is supported for the instance type.

" + }, + "InstanceRole":{ + "shape":"InstanceRoleList", + "documentation":"

Whether the instance acts as a data node, a dedicated master node, or an UltraWarm node.

" + } + }, + "documentation":"

Lists all instance types and available features for a given OpenSearch or Elasticsearch version.

" }, "InstanceTypeDetailsList":{ "type":"list", @@ -2802,43 +3186,46 @@ "members":{ "StorageTypes":{ "shape":"StorageTypeList", - "documentation":"

Storage-related types and attributes that are available for a given InstanceType.

" + "documentation":"

Storage-related attributes that are available for a given instance type.

" + }, + "InstanceLimits":{ + "shape":"InstanceLimits", + "documentation":"

The limits for a given instance type.

" }, - "InstanceLimits":{"shape":"InstanceLimits"}, "AdditionalLimits":{ "shape":"AdditionalLimitList", - "documentation":"

List of additional limits that are specific to a given InstanceType and for each of its InstanceRole .

" + "documentation":"

List of additional limits that are specific to a given instance type for each of its instance roles.

" } }, - "documentation":"

Limits for a given InstanceType and for each of its roles.
Limits contains the following: StorageTypes , InstanceLimits , and AdditionalLimits

" + "documentation":"

Limits for a given instance type and for each of its roles.

" }, "LimitsByRole":{ "type":"map", "key":{"shape":"InstanceRole"}, "value":{"shape":"Limits"}, - "documentation":"

The role of a given instance and all applicable limits. The role performed by a given OpenSearch instance can be one of the following:

  • data: If the given InstanceType is used as a data node
  • master: If the given InstanceType is used as a master node
  • ultra_warm: If the given InstanceType is used as a warm node

" + "documentation":"

The role of a given instance and all applicable limits. The role performed by a given OpenSearch instance can be one of the following:

  • data - A data node.

  • master - A dedicated master node.

  • ultra_warm - An UltraWarm node.

" }, "ListDomainNamesRequest":{ "type":"structure", "members":{ "EngineType":{ "shape":"EngineType", - "documentation":"

Optional parameter to filter the output by domain engine type. Acceptable values are 'Elasticsearch' and 'OpenSearch'.

", + "documentation":"

Filters the output by domain engine type.

", "location":"querystring", "locationName":"engineType" } }, - "documentation":"

Container for the parameters to the ListDomainNames operation.

" + "documentation":"

Container for the parameters to the ListDomainNames operation.

" }, "ListDomainNamesResponse":{ "type":"structure", "members":{ "DomainNames":{ "shape":"DomainInfoList", - "documentation":"

List of domain names and respective engine types.

" + "documentation":"

The names of all OpenSearch Service domains owned by the current user and their respective engine types.

" } }, - "documentation":"

The result of a ListDomainNames operation. Contains the names of all domains owned by this account and their respective engine types.

" + "documentation":"

The results of a ListDomainNames operation. Contains the names of all domains owned by this account and their respective engine types.

" }, "ListDomainsForPackageRequest":{ "type":"structure", @@ -2846,35 +3233,38 @@ "members":{ "PackageID":{ "shape":"PackageID", - "documentation":"

The package for which to list associated domains.

", + "documentation":"

The unique identifier of the package for which to list associated domains.

", "location":"uri", "locationName":"PackageID" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Limits the results to a maximum number of domains.

", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

", "location":"querystring", "locationName":"maxResults" }, "NextToken":{ "shape":"NextToken", - "documentation":"

Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page.

", + "documentation":"

If your initial ListDomainsForPackage operation returns a nextToken, you can include the returned nextToken in subsequent ListDomainsForPackage operations, which returns results in the next page.

", "location":"querystring", "locationName":"nextToken" } }, - "documentation":"

Container for the request parameters to the ListDomainsForPackage operation.

" + "documentation":"

Container for the request parameters to the ListDomainsForPackage operation.

" }, "ListDomainsForPackageResponse":{ "type":"structure", "members":{ "DomainPackageDetailsList":{ "shape":"DomainPackageDetailsList", - "documentation":"

List of DomainPackageDetails objects.

" + "documentation":"

Information about all domains associated with a package.

" }, - "NextToken":{"shape":"String"} + "NextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } }, - "documentation":"

Container for the response parameters to the ListDomainsForPackage operation.

" + "documentation":"

Container for the response parameters to the ListDomainsForPackage operation.

" }, "ListInstanceTypeDetailsRequest":{ "type":"structure", @@ -2882,21 +3272,25 @@ "members":{ "EngineVersion":{ "shape":"VersionString", + "documentation":"

Version of OpenSearch or Elasticsearch, in the format Elasticsearch_X.Y or OpenSearch_X.Y. Defaults to the latest version of OpenSearch.

", "location":"uri", "locationName":"EngineVersion" }, "DomainName":{ "shape":"DomainName", + "documentation":"

Name of the domain to list instance type details for.

", "location":"querystring", "locationName":"domainName" }, "MaxResults":{ "shape":"MaxResults", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

", "location":"querystring", "locationName":"maxResults" }, "NextToken":{ "shape":"NextToken", + "documentation":"

If your initial ListInstanceTypeDetails operation returns a nextToken, you can include the returned nextToken in subsequent ListInstanceTypeDetails operations, which returns results in the next page.

", "location":"querystring", "locationName":"nextToken" } @@ -2905,8 +3299,14 @@ "ListInstanceTypeDetailsResponse":{ "type":"structure", "members":{ - "InstanceTypeDetails":{"shape":"InstanceTypeDetailsList"}, - "NextToken":{"shape":"NextToken"} + "InstanceTypeDetails":{ + "shape":"InstanceTypeDetailsList", + "documentation":"

Lists all supported instance types and features for the given OpenSearch or Elasticsearch version.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } } }, "ListPackagesForDomainRequest":{ @@ -2921,32 +3321,32 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

Limits results to a maximum number of packages.

", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

", "location":"querystring", "locationName":"maxResults" }, "NextToken":{ "shape":"NextToken", - "documentation":"

Used for pagination. Only necessary if a previous API call includes a non-null NextToken value. If provided, returns results for the next page.

", + "documentation":"

If your initial ListPackagesForDomain operation returns a nextToken, you can include the returned nextToken in subsequent ListPackagesForDomain operations, which returns results in the next page.

", "location":"querystring", "locationName":"nextToken" } }, - "documentation":"

Container for the request parameters to the ListPackagesForDomain operation.

" + "documentation":"

Container for the request parameters to the ListPackagesForDomain operation.

" }, "ListPackagesForDomainResponse":{ "type":"structure", "members":{ "DomainPackageDetailsList":{ "shape":"DomainPackageDetailsList", - "documentation":"

List of DomainPackageDetails objects.

" + "documentation":"

List of all packages associated with a domain.

" }, "NextToken":{ "shape":"String", - "documentation":"

Pagination token to supply to the next call to get the next page of results.

" + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" } }, - "documentation":"

Container for the response parameters to the ListPackagesForDomain operation.

" + "documentation":"

Container for the response parameters to the ListPackagesForDomain operation.

" }, "ListTagsRequest":{ "type":"structure", @@ -2954,58 +3354,166 @@ "members":{ "ARN":{ "shape":"ARN", - "documentation":"

Specify the ARN of the domain that the tags you want to view are attached to.

", + "documentation":"

Amazon Resource Name (ARN) for the domain to view tags for.

", "location":"querystring", "locationName":"arn" } }, - "documentation":"

Container for the parameters to the ListTags operation. Specify the ARN of the domain that the tags you want to view are attached to.

" + "documentation":"

Container for the parameters to the ListTags operation.

" }, "ListTagsResponse":{ "type":"structure", "members":{ "TagList":{ "shape":"TagList", - "documentation":"

List of Tag for the requested domain.

" + "documentation":"

List of resource tags associated with the specified domain.

" } }, - "documentation":"

The result of a ListTags operation. Contains tags for all requested domains.

" + "documentation":"

The results of a ListTags operation.

" }, "ListVersionsRequest":{ "type":"structure", "members":{ "MaxResults":{ "shape":"MaxResults", - "documentation":"

Set this value to limit the number of results returned. Value must be greater than 10 or it won't be honored.

", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results.

", "location":"querystring", "locationName":"maxResults" }, "NextToken":{ "shape":"NextToken", + "documentation":"

If your initial ListVersions operation returns a nextToken, you can include the returned nextToken in subsequent ListVersions operations, which returns results in the next page.

", "location":"querystring", "locationName":"nextToken" } }, - "documentation":"

Container for the parameters to the ListVersions operation.

Use MaxResults to control the maximum number of results to retrieve in a single call.

Use NextToken in response to retrieve more results. If the received response does not contain a NextToken, there are no more results to retrieve.

" + "documentation":"

Container for the request parameters to the ListVersions operation.

" }, "ListVersionsResponse":{ "type":"structure", "members":{ - "Versions":{"shape":"VersionList"}, - "NextToken":{"shape":"NextToken"} + "Versions":{ + "shape":"VersionList", + "documentation":"

A list of all versions of OpenSearch and Elasticsearch that Amazon OpenSearch Service supports.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } }, - "documentation":"

Container for the parameters for response received from the ListVersions operation.

" + "documentation":"

Container for the parameters for response received from the ListVersions operation.

" + }, + "ListVpcEndpointAccessRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the OpenSearch Service domain to retrieve access information for.

", + "location":"uri", + "locationName":"DomainName" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If your initial ListVpcEndpointAccess operation returns a nextToken, you can include the returned nextToken in subsequent ListVpcEndpointAccess operations, which returns results in the next page.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListVpcEndpointAccessResponse":{ + "type":"structure", + "required":[ + "AuthorizedPrincipalList", + "NextToken" + ], + "members":{ + "AuthorizedPrincipalList":{ + "shape":"AuthorizedPrincipalList", + "documentation":"

A list of IAM principals that can currently access the domain.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListVpcEndpointsForDomainRequest":{ + "type":"structure", + "required":["DomainName"], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the domain to list associated VPC endpoints for.

", + "location":"uri", + "locationName":"DomainName" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If your initial ListEndpointsForDomain operation returns a nextToken, you can include the returned nextToken in subsequent ListEndpointsForDomain operations, which returns results in the next page.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListVpcEndpointsForDomainResponse":{ + "type":"structure", + "required":[ + "VpcEndpointSummaryList", + "NextToken" + ], + "members":{ + "VpcEndpointSummaryList":{ + "shape":"VpcEndpointSummaryList", + "documentation":"

Information about each endpoint associated with the domain.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListVpcEndpointsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If your initial ListVpcEndpoints operation returns a nextToken, you can include the returned nextToken in subsequent ListVpcEndpoints operations, which returns results in the next page.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListVpcEndpointsResponse":{ + "type":"structure", + "required":[ + "VpcEndpointSummaryList", + "NextToken" + ], + "members":{ + "VpcEndpointSummaryList":{ + "shape":"VpcEndpointSummaryList", + "documentation":"

Information about each endpoint.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } }, "LogPublishingOption":{ "type":"structure", "members":{ - "CloudWatchLogsLogGroupArn":{"shape":"CloudWatchLogsLogGroupArn"}, + "CloudWatchLogsLogGroupArn":{ + "shape":"CloudWatchLogsLogGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the CloudWatch Logs group to publish logs to.

" + }, "Enabled":{ "shape":"Boolean", - "documentation":"

Whether the given log publishing option is enabled or not.

" + "documentation":"

Whether the log should be published.

" } }, - "documentation":"

Log Publishing option that is set for a given domain.
Attributes and their details:

  • CloudWatchLogsLogGroupArn: ARN of the Cloudwatch log group to publish logs to.
  • Enabled: Whether the log publishing for a given log type is enabled or not.

" + "documentation":"

Specifies whether the Amazon OpenSearch Service domain publishes the OpenSearch application and slow logs to Amazon CloudWatch. For more information, see Monitoring OpenSearch logs with Amazon CloudWatch Logs.

After you enable log publishing, you still have to enable the collection of slow logs using the OpenSearch REST API.

" }, "LogPublishingOptions":{ "type":"map", @@ -3021,14 +3529,14 @@ }, "Status":{ "shape":"OptionStatus", - "documentation":"

The status of the log publishing options for the domain. See OptionStatus for the status information that's included.

" + "documentation":"

The status of the log publishing options for the domain.

" } }, "documentation":"

The configured log publishing options for the domain and their current status.

" }, "LogType":{ "type":"string", - "documentation":"

Type of log file. Can be one of the following:

  • INDEX_SLOW_LOGS: Index slow logs contain insert requests that took more time than configured index query log threshold to execute.
  • SEARCH_SLOW_LOGS: Search slow logs contain search queries that took more time than configured search query log threshold to execute.
  • ES_APPLICATION_LOGS: OpenSearch application logs contain information about errors and warnings raised during the operation of the service and can be useful for troubleshooting.
  • AUDIT_LOGS: Audit logs contain records of user requests for access from the domain.

", + "documentation":"

The type of log file. Can be one of the following:

  • INDEX_SLOW_LOGS - Index slow logs contain insert requests that took more time than the configured index query log threshold to execute.

  • SEARCH_SLOW_LOGS - Search slow logs contain search queries that took more time than the configured search query log threshold to execute.

  • ES_APPLICATION_LOGS - OpenSearch application logs contain information about errors and warnings raised during the operation of the service and can be useful for troubleshooting.

  • AUDIT_LOGS - Audit logs contain records of user requests for access to the domain.

", "enum":[ "INDEX_SLOW_LOGS", "SEARCH_SLOW_LOGS", @@ -3042,27 +3550,27 @@ "members":{ "MasterUserARN":{ "shape":"ARN", - "documentation":"

ARN for the master user (if IAM is enabled).

" + "documentation":"

Amazon Resource Name (ARN) for the master user. Only specify if InternalUserDatabaseEnabled is false.

" }, "MasterUserName":{ "shape":"Username", - "documentation":"

The master user's username, which is stored in the Amazon OpenSearch Service domain's internal database.

" + "documentation":"

User name for the master user. Only specify if InternalUserDatabaseEnabled is true.

" }, "MasterUserPassword":{ "shape":"Password", - "documentation":"

The master user's password, which is stored in the Amazon OpenSearch Service domain's internal database.

" + "documentation":"

Password for the master user. Only specify if InternalUserDatabaseEnabled is true.

" } }, - "documentation":"

Credentials for the master user: username and password, ARN, or both.

" + "documentation":"

Credentials for the master user for a domain.

" }, "MaxResults":{ "type":"integer", - "documentation":"

Set this value to limit the number of results returned.

", + "documentation":"

An optional parameter that specifies the maximum number of results to return for a given request.

", "max":100 }, "MaximumInstanceCount":{ "type":"integer", - "documentation":"

Maximum number of instances that can be instantiated for a given InstanceType.

" + "documentation":"

Maximum number of instances that can be instantiated for a given instance type.

" }, "Message":{ "type":"string", @@ -3071,11 +3579,11 @@ }, "MinimumInstanceCount":{ "type":"integer", - "documentation":"

Minimum number of instances that can be instantiated for a given InstanceType.

" + "documentation":"

Minimum number of instances that can be instantiated for a given instance type.

" }, "NextToken":{ "type":"string", - "documentation":"

Paginated APIs accept the NextToken input to return the next page of results and provide a NextToken output in the response, which you can use to retrieve more results.

" + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" }, "NodeToNodeEncryptionOptions":{ "type":"structure", @@ -3085,7 +3593,7 @@ "documentation":"

True to enable node-to-node encryption.

" } }, - "documentation":"

The node-to-node encryption options.

" + "documentation":"

Enables or disables node-to-node encryption. For more information, see Node-to-node encryption for Amazon OpenSearch Service.

" }, "NodeToNodeEncryptionOptionsStatus":{ "type":"structure", @@ -3221,7 +3729,7 @@ }, "OptionState":{ "type":"string", - "documentation":"

The state of a requested change. One of the following:

  • Processing: The request change is still in progress.
  • Active: The request change is processed and deployed to the domain.
", + "documentation":"

The state of a requested domain configuration change. Can be one of the following:

  • Processing - The requested change is still in progress.

  • Active - The requested change is processed and deployed to the domain.

", "enum":[ "RequiresIndexDocuments", "Processing", @@ -3238,7 +3746,7 @@ "members":{ "CreationDate":{ "shape":"UpdateTimestamp", - "documentation":"

The timestamp of when the entity was created.

" + "documentation":"

The timestamp when the entity was created.

" }, "UpdateDate":{ "shape":"UpdateTimestamp", @@ -3250,54 +3758,54 @@ }, "State":{ "shape":"OptionState", - "documentation":"

Provides the OptionState for the domain.

" + "documentation":"

The state of the entity.

" }, "PendingDeletion":{ "shape":"Boolean", - "documentation":"

Indicates whether the domain is being deleted.

" + "documentation":"

Indicates whether the entity is being deleted.

" } }, - "documentation":"

Provides the current status of the entity.

" + "documentation":"

Provides the current status of an entity.

" }, "OutboundConnection":{ "type":"structure", "members":{ "LocalDomainInfo":{ "shape":"DomainInformationContainer", - "documentation":"

The DomainInformation for the local OpenSearch domain.

" + "documentation":"

Information about the source (local) domain.

" }, "RemoteDomainInfo":{ "shape":"DomainInformationContainer", - "documentation":"

The DomainInformation for the remote OpenSearch domain.

" + "documentation":"

Information about the destination (remote) domain.

" }, "ConnectionId":{ "shape":"ConnectionId", - "documentation":"

The connection ID for the outbound cross-cluster connection.

" + "documentation":"

Unique identifier of the connection.

" }, "ConnectionAlias":{ "shape":"ConnectionAlias", - "documentation":"

The connection alias for the outbound cross-cluster connection.

" + "documentation":"

Name of the connection.

" }, "ConnectionStatus":{ "shape":"OutboundConnectionStatus", - "documentation":"

The OutboundConnectionStatus for the outbound connection.

" + "documentation":"

Status of the connection.

" } }, - "documentation":"

Specifies details about an outbound connection.

" + "documentation":"

Specifies details about an outbound cross-cluster connection.

" }, "OutboundConnectionStatus":{ "type":"structure", "members":{ "StatusCode":{ "shape":"OutboundConnectionStatusCode", - "documentation":"

The state code for the outbound connection. Can be one of the following:

  • VALIDATING: The outbound connection request is being validated.
  • VALIDATION_FAILED: Validation failed for the connection request.
  • PENDING_ACCEPTANCE: Outbound connection request is validated and is not yet accepted by the remote domain owner.
  • APPROVED: Outbound connection has been approved by the remote domain owner for getting provisioned.
  • PROVISIONING: Outbound connection request is in process.
  • ACTIVE: Outbound connection is active and ready to use.
  • REJECTING: Outbound connection rejection by remote domain owner is in progress.
  • REJECTED: Outbound connection request is rejected by remote domain owner.
  • DELETING: Outbound connection deletion is in progress.
  • DELETED: Outbound connection is deleted and can no longer be used.
" + "documentation":"

The status code for the outbound connection. Can be one of the following:

  • VALIDATING - The outbound connection request is being validated.

  • VALIDATION_FAILED - Validation failed for the connection request.

  • PENDING_ACCEPTANCE: Outbound connection request is validated and is not yet accepted by the remote domain owner.

  • APPROVED - Outbound connection has been approved by the remote domain owner for getting provisioned.

  • PROVISIONING - Outbound connection request is in process.

  • ACTIVE - Outbound connection is active and ready to use.

  • REJECTING - Outbound connection rejection by remote domain owner is in progress.

  • REJECTED - Outbound connection request is rejected by remote domain owner.

  • DELETING - Outbound connection deletion is in progress.

  • DELETED - Outbound connection is deleted and can no longer be used.

" }, "Message":{ "shape":"ConnectionStatusMessage", - "documentation":"

Verbose information for the outbound connection status.

" + "documentation":"

Verbose information for the outbound connection.

" } }, - "documentation":"

The connection status of an outbound cross-cluster connection.

" + "documentation":"

The status of an outbound cross-cluster connection.

" }, "OutboundConnectionStatusCode":{ "type":"string", @@ -3343,7 +3851,7 @@ "members":{ "PackageID":{ "shape":"PackageID", - "documentation":"

Internal ID of the package.

" + "documentation":"

The unique identifier of the package.

" }, "PackageName":{ "shape":"PackageName", @@ -3351,7 +3859,7 @@ }, "PackageType":{ "shape":"PackageType", - "documentation":"

Currently supports only TXT-DICTIONARY.

" + "documentation":"

The type of package.

" }, "PackageDescription":{ "shape":"PackageDescription", @@ -3359,14 +3867,20 @@ }, "PackageStatus":{ "shape":"PackageStatus", - "documentation":"

Current state of the package. Values are COPYING, COPY_FAILED, AVAILABLE, DELETING, and DELETE_FAILED.

" + "documentation":"

Current status of the package.

" }, "CreatedAt":{ "shape":"CreatedAt", - "documentation":"

The timestamp of when the package was created.

" + "documentation":"

The timestamp when the package was created.

" + }, + "LastUpdatedAt":{ + "shape":"LastUpdated", + "documentation":"

Date and time when the package was last updated.

" + }, + "AvailablePackageVersion":{ + "shape":"PackageVersion", + "documentation":"

The package version.

" }, - "LastUpdatedAt":{"shape":"LastUpdated"}, - "AvailablePackageVersion":{"shape":"PackageVersion"}, "ErrorDetails":{ "shape":"ErrorDetails", "documentation":"

Additional information if the package is in an error state. Null otherwise.

" @@ -3397,7 +3911,7 @@ "documentation":"

Key (file name) of the package.

" } }, - "documentation":"

The Amazon S3 location for importing the package specified as S3BucketName and S3Key

" + "documentation":"

The Amazon S3 location to import the package from.

" }, "PackageStatus":{ "type":"string", @@ -3426,14 +3940,14 @@ }, "CommitMessage":{ "shape":"CommitMessage", - "documentation":"

A message associated with the package version.

" + "documentation":"

A message associated with the package version when it was uploaded.

" }, "CreatedAt":{ "shape":"CreatedAt", - "documentation":"

The timestamp of when the package was created.

" + "documentation":"

The date and time when the package was created.

" } }, - "documentation":"

Details of a package version.

" + "documentation":"

Details about a package version.

" }, "PackageVersionHistoryList":{ "type":"list", @@ -3448,11 +3962,18 @@ }, "PolicyDocument":{ "type":"string", - "documentation":"

Access policy rules for a domain service endpoints. For more information, see Configuring access policies . The maximum size of a policy document is 100 KB.

", + "documentation":"

Access policy rules for an Amazon OpenSearch Service domain endpoint. For more information, see Configuring access policies. The maximum size of a policy document is 100 KB.

", "max":102400, "min":0, "pattern":".*" }, + "PrincipalType":{ + "type":"string", + "enum":[ + "AWS_ACCOUNT", + "AWS_SERVICE" + ] + }, "PurchaseReservedInstanceOfferingRequest":{ "type":"structure", "required":[ @@ -3462,7 +3983,7 @@ "members":{ "ReservedInstanceOfferingId":{ "shape":"GUID", - "documentation":"

The ID of the reserved OpenSearch instance offering to purchase.

" + "documentation":"

The ID of the Reserved Instance offering to purchase.

" }, "ReservationName":{ "shape":"ReservationToken", @@ -3473,21 +3994,21 @@ "documentation":"

The number of OpenSearch instances to reserve.

" } }, - "documentation":"

Container for parameters to PurchaseReservedInstanceOffering

" + "documentation":"

Container for request parameters to the PurchaseReservedInstanceOffering operation.

" }, "PurchaseReservedInstanceOfferingResponse":{ "type":"structure", "members":{ "ReservedInstanceId":{ "shape":"GUID", - "documentation":"

Details of the reserved OpenSearch instance which was purchased.

" + "documentation":"

The ID of the Reserved Instance offering that was purchased.

" }, "ReservationName":{ "shape":"ReservationToken", "documentation":"

The customer-specified identifier used to track this reservation.

" } }, - "documentation":"

Represents the output of a PurchaseReservedInstanceOffering operation.

" + "documentation":"

Represents the output of a PurchaseReservedInstanceOffering operation.

" }, "RecurringCharge":{ "type":"structure", @@ -3501,7 +4022,7 @@ "documentation":"

The frequency of the recurring charge.

" } }, - "documentation":"

Contains the specific price and frequency of a recurring charges for a reserved OpenSearch instance, or for a reserved OpenSearch instance offering.

" + "documentation":"

Contains the specific price and frequency of a recurring charges for an OpenSearch Reserved Instance, or for a Reserved Instance offering.

" }, "RecurringChargeList":{ "type":"list", @@ -3520,22 +4041,22 @@ "members":{ "ConnectionId":{ "shape":"ConnectionId", - "documentation":"

The ID of the inbound connection to reject.

", + "documentation":"

The unique identifier of the inbound connection to reject.

", "location":"uri", "locationName":"ConnectionId" } }, - "documentation":"

Container for the parameters to the RejectInboundConnection operation.

" + "documentation":"

Container for the request parameters to the RejectInboundConnection operation.

" }, "RejectInboundConnectionResponse":{ "type":"structure", "members":{ "Connection":{ "shape":"InboundConnection", - "documentation":"

The InboundConnection of the rejected inbound connection.

" + "documentation":"

Contains details about the rejected inbound connection.

" } }, - "documentation":"

The result of a RejectInboundConnection operation. Contains details about the rejected inbound connection.

" + "documentation":"

Represents the output of a RejectInboundConnection operation.

" }, "RemoveTagsRequest":{ "type":"structure", @@ -3546,14 +4067,14 @@ "members":{ "ARN":{ "shape":"ARN", - "documentation":"

The ARN of the domain from which you want to delete the specified tags.

" + "documentation":"

The Amazon Resource Name (ARN) of the domain from which you want to delete the specified tags.

" }, "TagKeys":{ "shape":"StringList", - "documentation":"

The TagKey list you want to remove from the domain.

" + "documentation":"

The list of tag keys to remove from the domain.

" } }, - "documentation":"

Container for the parameters to the RemoveTags operation. Specify the ARN for the domain from which you want to remove the specified TagKey.

" + "documentation":"

Container for the request parameters to the RemoveTags operation.

" }, "ReservationToken":{ "type":"string", @@ -3572,18 +4093,21 @@ "shape":"GUID", "documentation":"

The unique identifier for the reservation.

" }, - "BillingSubscriptionId":{"shape":"Long"}, + "BillingSubscriptionId":{ + "shape":"Long", + "documentation":"

The unique identifier of the billing subscription.

" + }, "ReservedInstanceOfferingId":{ "shape":"String", - "documentation":"

The offering identifier.

" + "documentation":"

The unique identifier of the Reserved Instance offering.

" }, "InstanceType":{ "shape":"OpenSearchPartitionInstanceType", - "documentation":"

The OpenSearch instance type offered by the reserved instance offering.

" + "documentation":"

The OpenSearch instance type offered by theReserved Instance offering.

" }, "StartTime":{ "shape":"UpdateTimestamp", - "documentation":"

The time the reservation started.

" + "documentation":"

The date and time when the reservation was purchased.

" }, "Duration":{ "shape":"Integer", @@ -3591,15 +4115,15 @@ }, "FixedPrice":{ "shape":"Double", - "documentation":"

The upfront fixed charge you will paid to purchase the specific reserved OpenSearch instance offering.

" + "documentation":"

The upfront fixed charge you will paid to purchase the specific Reserved Instance offering.

" }, "UsagePrice":{ "shape":"Double", - "documentation":"

The rate you are charged for each hour for the domain that is using this reserved instance.

" + "documentation":"

The hourly rate at which you're charged for the domain using this Reserved Instance.

" }, "CurrencyCode":{ "shape":"String", - "documentation":"

The currency code for the reserved OpenSearch instance offering.

" + "documentation":"

The currency code for the offering.

" }, "InstanceCount":{ "shape":"Integer", @@ -3607,18 +4131,18 @@ }, "State":{ "shape":"String", - "documentation":"

The state of the reserved OpenSearch instance.

" + "documentation":"

The state of the Reserved Instance.

" }, "PaymentOption":{ "shape":"ReservedInstancePaymentOption", - "documentation":"

The payment option as defined in the reserved OpenSearch instance offering.

" + "documentation":"

The payment option as defined in the Reserved Instance offering.

" }, "RecurringCharges":{ "shape":"RecurringChargeList", - "documentation":"

The charge to your account regardless of whether you are creating any domains using the instance offering.

" + "documentation":"

The recurring charge to your account, regardless of whether you create any domains using the Reserved Instance offering.

" } }, - "documentation":"

Details of a reserved OpenSearch instance.

" + "documentation":"

Details of an OpenSearch Reserved Instance.

" }, "ReservedInstanceList":{ "type":"list", @@ -3629,11 +4153,11 @@ "members":{ "ReservedInstanceOfferingId":{ "shape":"GUID", - "documentation":"

The OpenSearch reserved instance offering identifier.

" + "documentation":"

The unique identifier of the Reserved Instance offering.

" }, "InstanceType":{ "shape":"OpenSearchPartitionInstanceType", - "documentation":"

The OpenSearch instance type offered by the reserved instance offering.

" + "documentation":"

The OpenSearch instance type offered by the Reserved Instance offering.

" }, "Duration":{ "shape":"Integer", @@ -3641,26 +4165,26 @@ }, "FixedPrice":{ "shape":"Double", - "documentation":"

The upfront fixed charge you will pay to purchase the specific reserved OpenSearch instance offering.

" + "documentation":"

The upfront fixed charge you will pay to purchase the specific Reserved Instance offering.

" }, "UsagePrice":{ "shape":"Double", - "documentation":"

The rate you are charged for each hour the domain that is using the offering is running.

" + "documentation":"

The hourly rate at which you're charged for the domain using this Reserved Instance.

" }, "CurrencyCode":{ "shape":"String", - "documentation":"

The currency code for the reserved OpenSearch instance offering.

" + "documentation":"

The currency code for the Reserved Instance offering.

" }, "PaymentOption":{ "shape":"ReservedInstancePaymentOption", - "documentation":"

Payment option for the reserved OpenSearch instance offering

" + "documentation":"

Payment option for the Reserved Instance offering

" }, "RecurringCharges":{ "shape":"RecurringChargeList", - "documentation":"

The charge to your account regardless of whether you are creating any domains using the instance offering.

" + "documentation":"

The recurring charge to your account, regardless of whether you creates any domains using the offering.

" } }, - "documentation":"

Details of a reserved OpenSearch instance offering.

" + "documentation":"

Details of an OpenSearch Reserved Instance offering.

" }, "ReservedInstanceOfferingList":{ "type":"list", @@ -3690,6 +4214,30 @@ "error":{"httpStatusCode":409}, "exception":true }, + "RevokeVpcEndpointAccessRequest":{ + "type":"structure", + "required":[ + "DomainName", + "Account" + ], + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the OpenSearch Service domain.

", + "location":"uri", + "locationName":"DomainName" + }, + "Account":{ + "shape":"AWSAccount", + "documentation":"

The account ID to revoke access from.

" + } + } + }, + "RevokeVpcEndpointAccessResponse":{ + "type":"structure", + "members":{ + } + }, "RoleArn":{ "type":"string", "max":2048, @@ -3698,7 +4246,7 @@ }, "RollbackOnDisable":{ "type":"string", - "documentation":"

The rollback state while disabling Auto-Tune for the domain. Valid values are NO_ROLLBACK and DEFAULT_ROLLBACK.

", + "documentation":"

The rollback state while disabling Auto-Tune for the domain.

", "enum":[ "NO_ROLLBACK", "DEFAULT_ROLLBACK" @@ -3728,14 +4276,14 @@ "members":{ "MetadataContent":{ "shape":"SAMLMetadata", - "documentation":"

The metadata of the SAML application in XML format.

" + "documentation":"

The metadata of the SAML application, in XML format.

" }, "EntityId":{ "shape":"SAMLEntityId", - "documentation":"

The unique entity ID of the application in SAML identity provider.

" + "documentation":"

The unique entity ID of the application in the SAML identity provider.

" } }, - "documentation":"

The SAML identity povider's information.

" + "documentation":"

The SAML identity povider information.

" }, "SAMLMetadata":{ "type":"string", @@ -3747,7 +4295,7 @@ "members":{ "Enabled":{ "shape":"Boolean", - "documentation":"

True if SAML is enabled.

" + "documentation":"

True to enable SAML authentication for a domain.

" }, "Idp":{ "shape":"SAMLIdp", @@ -3755,7 +4303,7 @@ }, "MasterUserName":{ "shape":"Username", - "documentation":"

The SAML master username, which is stored in the Amazon OpenSearch Service domain's internal database.

" + "documentation":"

The SAML master user name, which is stored in the domain's internal user database.

" }, "MasterBackendRole":{ "shape":"BackendRole", @@ -3763,18 +4311,18 @@ }, "SubjectKey":{ "shape":"String", - "documentation":"

Element of the SAML assertion to use for username. Default is NameID.

" + "documentation":"

Element of the SAML assertion to use for the user name. Default is NameID.

" }, "RolesKey":{ "shape":"String", - "documentation":"

Element of the SAML assertion to use for backend roles. Default is roles.

" + "documentation":"

Element of the SAML assertion to use for backend roles. Default is roles.

" }, "SessionTimeoutMinutes":{ "shape":"IntegerClass", - "documentation":"

The duration, in minutes, after which a user session becomes inactive. Acceptable values are between 1 and 1440, and the default value is 60.

" + "documentation":"

The duration, in minutes, after which a user session becomes inactive. Acceptable values are between 1 and 1440, and the default value is 60.

" } }, - "documentation":"

The SAML application configuration for the domain.

" + "documentation":"

The SAML authentication configuration for an Amazon OpenSearch Service domain.

" }, "SAMLOptionsOutput":{ "type":"structure", @@ -3804,7 +4352,7 @@ }, "ScheduledAutoTuneActionType":{ "type":"string", - "documentation":"

The Auto-Tune action type. Valid values are JVM_HEAP_SIZE_TUNING, and JVM_YOUNG_GEN_TUNING.

", + "documentation":"

The Auto-Tune action type.

", "enum":[ "JVM_HEAP_SIZE_TUNING", "JVM_YOUNG_GEN_TUNING" @@ -3812,33 +4360,33 @@ }, "ScheduledAutoTuneDescription":{ "type":"string", - "documentation":"

The Auto-Tune action description.

" + "documentation":"

The description of an Auto-Tune maintenance action that occurs on a domain.

" }, "ScheduledAutoTuneDetails":{ "type":"structure", "members":{ "Date":{ "shape":"AutoTuneDate", - "documentation":"

The timestamp of the Auto-Tune action scheduled for the domain.

" + "documentation":"

The date and time when the Auto-Tune action is scheduled for the domain.

" }, "ActionType":{ "shape":"ScheduledAutoTuneActionType", - "documentation":"

The Auto-Tune action type. Valid values are JVM_HEAP_SIZE_TUNING and JVM_YOUNG_GEN_TUNING.

" + "documentation":"

The type of Auto-Tune action.

" }, "Action":{ "shape":"ScheduledAutoTuneDescription", - "documentation":"

The Auto-Tune action description.

" + "documentation":"

A description of the Auto-Tune action.

" }, "Severity":{ "shape":"ScheduledAutoTuneSeverityType", - "documentation":"

The Auto-Tune action severity. Valid values are LOW, MEDIUM, and HIGH.

" + "documentation":"

The severity of the Auto-Tune action. Valid values are LOW, MEDIUM, and HIGH.

" } }, - "documentation":"

Specifies details about the scheduled Auto-Tune action. See Auto-Tune for Amazon OpenSearch Service for more information.

" + "documentation":"

Specifies details about a scheduled Auto-Tune action. For more information, see Auto-Tune for Amazon OpenSearch Service.

" }, "ScheduledAutoTuneSeverityType":{ "type":"string", - "documentation":"

The Auto-Tune action severity. Valid values are LOW, MEDIUM, and HIGH.

", + "documentation":"

The Auto-Tune action severity.

", "enum":[ "LOW", "MEDIUM", @@ -3854,48 +4402,48 @@ }, "NewVersion":{ "shape":"String", - "documentation":"

The new service software version if one is available.

" + "documentation":"

The new service software version, if one is available.

" }, "UpdateAvailable":{ "shape":"Boolean", - "documentation":"

True if you're able to update your service software version. False if you can't update your service software version.

" + "documentation":"

True if you're able to update your service software version. False if you can't update your service software version.

" }, "Cancellable":{ "shape":"Boolean", - "documentation":"

True if you're able to cancel your service software version update. False if you can't cancel your service software update.

" + "documentation":"

True if you're able to cancel your service software version update. False if you can't cancel your service software update.

" }, "UpdateStatus":{ "shape":"DeploymentStatus", - "documentation":"

The status of your service software update. This field can take the following values: ELIGIBLE, PENDING_UPDATE, IN_PROGRESS, COMPLETED, and NOT_ELIGIBLE.

" + "documentation":"

The status of your service software update.

" }, "Description":{ "shape":"String", - "documentation":"

The description of the UpdateStatus.

" + "documentation":"

A description of the service software update status.

" }, "AutomatedUpdateDate":{ "shape":"DeploymentCloseDateTimeStamp", - "documentation":"

The timestamp, in Epoch time, until which you can manually request a service software update. After this date, we automatically update your service software.

" + "documentation":"

The timestamp, in Epoch time, until which you can manually request a service software update. After this date, we automatically update your service software.

" }, "OptionalDeployment":{ "shape":"Boolean", - "documentation":"

True if a service software is never automatically updated. False if a service software is automatically updated after AutomatedUpdateDate.

" + "documentation":"

True if a service software is never automatically updated. False if a service software is automatically updated after the automated update date.

" } }, - "documentation":"

The current options of an domain service software options.

" + "documentation":"

The current status of the service software for an Amazon OpenSearch Service domain. For more information, see Service software updates in Amazon OpenSearch Service.

" }, "ServiceUrl":{ "type":"string", - "documentation":"

The endpoint to which service requests are submitted. For example, search-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.es.amazonaws.com or doc-imdb-movies-oopcnjfn6ugofer3zx5iadxxca.eu-west-1.es.amazonaws.com.

" + "documentation":"

The domain endpoint to which index and search requests are submitted. For example, search-imdb-movies-oopcnjfn6ugo.eu-west-1.es.amazonaws.com or doc-imdb-movies-oopcnjfn6u.eu-west-1.es.amazonaws.com.

" }, "SnapshotOptions":{ "type":"structure", "members":{ "AutomatedSnapshotStartHour":{ "shape":"IntegerClass", - "documentation":"

The time, in UTC format, when the service takes a daily automated snapshot of the specified domain. Default is 0 hours.

" + "documentation":"

The time, in UTC format, when OpenSearch Service takes a daily automated snapshot of the specified domain. Default is 0 hours.

" } }, - "documentation":"

The time, in UTC format, when the service takes a daily automated snapshot of the specified domain. Default is 0 hours.

" + "documentation":"

The time, in UTC format, when OpenSearch Service takes a daily automated snapshot of the specified domain. Default is 0 hours.

" }, "SnapshotOptionsStatus":{ "type":"structure", @@ -3913,7 +4461,7 @@ "documentation":"

The status of a daily automated snapshot.

" } }, - "documentation":"

Status of a daily automated snapshot.

" + "documentation":"

Container for information about a daily automated snapshot for an OpenSearch Service domain.

" }, "StartAt":{"type":"timestamp"}, "StartServiceSoftwareUpdateRequest":{ @@ -3925,48 +4473,54 @@ "documentation":"

The name of the domain that you want to update to the latest service software.

" } }, - "documentation":"

Container for the parameters to the StartServiceSoftwareUpdate operation. Specifies the name of the domain to schedule a service software update for.

" + "documentation":"

Container for the request parameters to the StartServiceSoftwareUpdate operation.

" }, "StartServiceSoftwareUpdateResponse":{ "type":"structure", "members":{ "ServiceSoftwareOptions":{ "shape":"ServiceSoftwareOptions", - "documentation":"

The current status of the OpenSearch service software update.

" + "documentation":"

The current status of the OpenSearch Service software update.

" } }, - "documentation":"

The result of a StartServiceSoftwareUpdate operation. Contains the status of the update.

" + "documentation":"

Represents the output of a StartServiceSoftwareUpdate operation. Contains the status of the update.

" }, "StartTimestamp":{"type":"timestamp"}, "StorageSubTypeName":{ "type":"string", - "documentation":"

Sub-type of the given storage type. List of available sub-storage options: \"instance\" storageType has no storageSubType. \"ebs\" storageType has the following valid storageSubTypes:

  1. standard
  2. gp2
  3. io1
See VolumeType for more information regarding each EBS storage option.

" + "documentation":"

Sub-type of the given EBS storage type. List of available sub-storage options. The instance storage type has no storage sub-type. The ebs storage type has the following valid sub-types:

  • standard

  • gp2

  • gp3

  • io1

" }, "StorageType":{ "type":"structure", "members":{ - "StorageTypeName":{"shape":"StorageTypeName"}, - "StorageSubTypeName":{"shape":"StorageSubTypeName"}, + "StorageTypeName":{ + "shape":"StorageTypeName", + "documentation":"

The name of the storage type.

" + }, + "StorageSubTypeName":{ + "shape":"StorageSubTypeName", + "documentation":"

The storage sub-type, such as gp3 or io1.

" + }, "StorageTypeLimits":{ "shape":"StorageTypeLimitList", - "documentation":"

Limits that are applicable for the given storage type.

" + "documentation":"

Limits that are applicable for the given storage type.

" } }, - "documentation":"

StorageTypes represents the list of storage-related types and their attributes that are available for a given InstanceType.

" + "documentation":"

A list of storage types for an Amazon OpenSearch Service domain that are available for a given intance type.

" }, "StorageTypeLimit":{ "type":"structure", "members":{ "LimitName":{ "shape":"LimitName", - "documentation":"

Name of storage limits that are applicable for the given storage type. If StorageType is \"ebs\", the following storage options are applicable:

  1. MinimumVolumeSize
  2. Minimum amount of volume size that is applicable for the given storage type. Can be empty if not applicable.
  3. MaximumVolumeSize
  4. Maximum amount of volume size that is applicable for the given storage type. Can be empty if not applicable.
  5. MaximumIops
  6. Maximum amount of Iops that is applicable for given the storage type. Can be empty if not applicable.
  7. MinimumIops
  8. Minimum amount of Iops that is applicable for given the storage type. Can be empty if not applicable.

" + "documentation":"

Name of storage limits that are applicable for the given storage type. If StorageType is ebs, the following options are available:

  • MinimumVolumeSize - Minimum volume size that is available for the given storage type. Can be empty if not applicable.

  • MaximumVolumeSize - Maximum volume size that is available for the given storage type. Can be empty if not applicable.

  • MaximumIops - Maximum amount of IOPS that is available for the given the storage type. Can be empty if not applicable.

  • MinimumIops - Minimum amount of IOPS that is available for the given the storage type. Can be empty if not applicable.

  • MaximumThroughput - Maximum amount of throughput that is available for the given the storage type. Can be empty if not applicable.

  • MinimumThroughput - Minimum amount of throughput that is available for the given the storage type. Can be empty if not applicable.

" }, "LimitValues":{ "shape":"LimitValueList", - "documentation":"

Values for the StorageTypeLimit$LimitName .

" + "documentation":"

The limit values.

" } }, - "documentation":"

Limits that are applicable for the given storage type.

" + "documentation":"

Limits that are applicable for the given Amazon OpenSearch Service storage type.

" }, "StorageTypeLimitList":{ "type":"list", @@ -3978,7 +4532,7 @@ }, "StorageTypeName":{ "type":"string", - "documentation":"

Type of storage. List of available storage options:

  1. instance
  2. Built-in storage available for the instance
  3. ebs
  4. Elastic block storage attached to the instance

" + "documentation":"

The type of storage that the domain uses. Can be one of the following:

instance

Built-in storage available for the instance.

ebs

Elastic Block Storage (EBS) attached to the instance.

" }, "String":{"type":"string"}, "StringList":{ @@ -4001,18 +4555,18 @@ "members":{ "Key":{ "shape":"TagKey", - "documentation":"

The TagKey, the name of the tag. Tag keys must be unique for the domain to which they are attached.

" + "documentation":"

The tag key. Tag keys must be unique for the domain to which they are attached.

" }, "Value":{ "shape":"TagValue", - "documentation":"

The TagValue, the value assigned to the corresponding tag key. Tag values can be null and don't have to be unique in a tag set. For example, you can have a key value pair in a tag set of project : Trinity and cost-center : Trinity

" + "documentation":"

The value assigned to the corresponding tag key. Tag values can be null and don't have to be unique in a tag set. For example, you can have a key value pair in a tag set of project : Trinity and cost-center : Trinity

" } }, - "documentation":"

A key value pair for a resource tag.

" + "documentation":"

A tag (key-value pair) for an Amazon OpenSearch Service resource.

" }, "TagKey":{ "type":"string", - "documentation":"

A string of length from 1 to 128 characters that specifies the key for a tag. Tag keys must be unique for the domain to which they're attached.

", + "documentation":"

A string between 1 to 128 characters that specifies the key for a tag. Tag keys must be unique for the domain to which they're attached.

", "max":128, "min":1, "pattern":".*" @@ -4020,18 +4574,18 @@ "TagList":{ "type":"list", "member":{"shape":"Tag"}, - "documentation":"

A list of Tag.

" + "documentation":"

A list of tags attached to a domain.

" }, "TagValue":{ "type":"string", - "documentation":"

A string of length from 0 to 256 characters that specifies the value for a tag. Tag values can be null and don't have to be unique in a tag set.

", + "documentation":"

A string between 0 to 256 characters that specifies the value for a tag. Tag values can be null and don't have to be unique in a tag set.

", "max":256, "min":0, "pattern":".*" }, "TimeUnit":{ "type":"string", - "documentation":"

The unit of a maintenance schedule duration. Valid value is HOUR. See Auto-Tune for Amazon OpenSearch Service for more information.

", + "documentation":"

The unit of a maintenance schedule duration. Valid value is HOUR.

", "enum":["HOURS"] }, "TotalNumberOfStages":{"type":"integer"}, @@ -4045,17 +4599,17 @@ "members":{ "DomainName":{ "shape":"DomainName", - "documentation":"

The name of the domain you're updating.

", + "documentation":"

The name of the domain that you're updating.

", "location":"uri", "locationName":"DomainName" }, "ClusterConfig":{ "shape":"ClusterConfig", - "documentation":"

The type and number of instances to instantiate for the domain cluster.

" + "documentation":"

Changes that you want to make to the cluster configuration, such as the instance type and number of EC2 instances.

" }, "EBSOptions":{ "shape":"EBSOptions", - "documentation":"

Specify the type and size of the EBS volume to use.

" + "documentation":"

The type and size of the EBS volume to attach to instances in the domain.

" }, "SnapshotOptions":{ "shape":"SnapshotOptions", @@ -4063,50 +4617,50 @@ }, "VPCOptions":{ "shape":"VPCOptions", - "documentation":"

Options to specify the subnets and security groups for the VPC endpoint. For more information, see Launching your Amazon OpenSearch Service domains using a VPC .

" + "documentation":"

Options to specify the subnets and security groups for a VPC endpoint. For more information, see Launching your Amazon OpenSearch Service domains using a VPC.

" }, "CognitoOptions":{ "shape":"CognitoOptions", - "documentation":"

Options to specify the Cognito user and identity pools for OpenSearch Dashboards authentication. For more information, see Configuring Amazon Cognito authentication for OpenSearch Dashboards.

" + "documentation":"

Key-value pairs to configure Amazon Cognito authentication for OpenSearch Dashboards.

" }, "AdvancedOptions":{ "shape":"AdvancedOptions", - "documentation":"

Modifies the advanced option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Advanced options for more information.

" + "documentation":"

Key-value pairs to specify advanced configuration options. The following key-value pairs are supported:

  • \"rest.action.multi.allow_explicit_index\": \"true\" | \"false\" - Note the use of a string rather than a boolean. Specifies whether explicit references to indexes are allowed inside the body of HTTP requests. If you want to configure access policies for domain sub-resources, such as specific indexes and domain APIs, you must disable this property. Default is true.

  • \"indices.fielddata.cache.size\": \"80\" - Note the use of a string rather than a boolean. Specifies the percentage of heap space allocated to field data. Default is unbounded.

  • \"indices.query.bool.max_clause_count\": \"1024\" - Note the use of a string rather than a boolean. Specifies the maximum number of clauses allowed in a Lucene boolean query. Default is 1,024. Queries with more than the permitted number of clauses result in a TooManyClauses error.

  • \"override_main_response_version\": \"true\" | \"false\" - Note the use of a string rather than a boolean. Specifies whether the domain reports its version as 7.10 to allow Elasticsearch OSS clients and plugins to continue working with it. Default is false when creating a domain and true when upgrading a domain.

For more information, see Advanced cluster parameters.

" }, "AccessPolicies":{ "shape":"PolicyDocument", - "documentation":"

IAM access policy as a JSON-formatted string.

" + "documentation":"

Identity and Access Management (IAM) access policy as a JSON-formatted string.

" }, "LogPublishingOptions":{ "shape":"LogPublishingOptions", - "documentation":"

Map of LogType and LogPublishingOption, each containing options to publish a given type of OpenSearch log.

" + "documentation":"

Options to publish OpenSearch lots to Amazon CloudWatch Logs.

" }, "EncryptionAtRestOptions":{ "shape":"EncryptionAtRestOptions", - "documentation":"

Specifies encryption of data at rest options.

" + "documentation":"

Encryption at rest options for the domain.

" }, "DomainEndpointOptions":{ "shape":"DomainEndpointOptions", - "documentation":"

Options to specify configuration that will be applied to the domain endpoint.

" + "documentation":"

Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.

" }, "NodeToNodeEncryptionOptions":{ "shape":"NodeToNodeEncryptionOptions", - "documentation":"

Specifies node-to-node encryption options.

" + "documentation":"

Node-To-Node Encryption options for the domain.

" }, "AdvancedSecurityOptions":{ "shape":"AdvancedSecurityOptionsInput", - "documentation":"

Specifies advanced security options.

" + "documentation":"

Options for fine-grained access control.

" }, "AutoTuneOptions":{ "shape":"AutoTuneOptions", - "documentation":"

Specifies Auto-Tune options.

" + "documentation":"

Options for Auto-Tune.

" }, "DryRun":{ "shape":"DryRun", - "documentation":"

This flag, when set to True, specifies whether the UpdateDomain request should return the results of validation checks (DryRunResults) without actually applying the change.

" + "documentation":"

This flag, when set to True, specifies whether the UpdateDomain request should return the results of validation check without actually applying the change.

" } }, - "documentation":"

Container for the parameters to the UpdateDomain operation. Specifies the type and number of instances in the domain cluster.

" + "documentation":"

Container for the request parameters to the UpdateDomain operation.

" }, "UpdateDomainConfigResponse":{ "type":"structure", @@ -4118,10 +4672,10 @@ }, "DryRunResults":{ "shape":"DryRunResults", - "documentation":"

Contains result of DryRun.

" + "documentation":"

Results of a dry run performed in an update domain request.

" } }, - "documentation":"

The result of an UpdateDomain request. Contains the status of the domain being updated.

" + "documentation":"

The results of an UpdateDomain request. Contains the status of the domain being updated.

" }, "UpdatePackageRequest":{ "type":"structure", @@ -4134,29 +4688,59 @@ "shape":"PackageID", "documentation":"

The unique identifier for the package.

" }, - "PackageSource":{"shape":"PackageSource"}, + "PackageSource":{ + "shape":"PackageSource", + "documentation":"

Amazon S3 bucket and key for the package.

" + }, "PackageDescription":{ "shape":"PackageDescription", "documentation":"

A new description of the package.

" }, "CommitMessage":{ "shape":"CommitMessage", - "documentation":"

A commit message for the new version which is shown as part of GetPackageVersionHistoryResponse.

" + "documentation":"

Commit message for the updated file, which is shown as part of GetPackageVersionHistoryResponse.

" } }, - "documentation":"

Container for request parameters to the UpdatePackage operation.

" + "documentation":"

Container for request parameters to the UpdatePackage operation.

" }, "UpdatePackageResponse":{ "type":"structure", "members":{ "PackageDetails":{ "shape":"PackageDetails", - "documentation":"

Information about the package.

" + "documentation":"

Information about a package.

" } }, - "documentation":"

Container for the response returned by the UpdatePackage operation.

" + "documentation":"

Container for the response returned by the UpdatePackage operation.

" }, "UpdateTimestamp":{"type":"timestamp"}, + "UpdateVpcEndpointRequest":{ + "type":"structure", + "required":[ + "VpcEndpointId", + "VpcOptions" + ], + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "VpcOptions":{ + "shape":"VPCOptions", + "documentation":"

The security groups and/or subnets to add, remove, or modify.

" + } + } + }, + "UpdateVpcEndpointResponse":{ + "type":"structure", + "required":["VpcEndpoint"], + "members":{ + "VpcEndpoint":{ + "shape":"VpcEndpoint", + "documentation":"

The endpoint to be updated.

" + } + } + }, "UpgradeDomainRequest":{ "type":"structure", "required":[ @@ -4164,58 +4748,76 @@ "TargetVersion" ], "members":{ - "DomainName":{"shape":"DomainName"}, + "DomainName":{ + "shape":"DomainName", + "documentation":"

Name of the OpenSearch Service domain that you want to upgrade.

" + }, "TargetVersion":{ "shape":"VersionString", - "documentation":"

The version of OpenSearch you intend to upgrade the domain to.

" + "documentation":"

OpenSearch or Elasticsearch version to which you want to upgrade, in the format Opensearch_X.Y or Elasticsearch_X.Y.

" }, "PerformCheckOnly":{ "shape":"Boolean", - "documentation":"

When true, indicates that an upgrade eligibility check needs to be performed. Does not actually perform the upgrade.

" + "documentation":"

When true, indicates that an upgrade eligibility check needs to be performed. Does not actually perform the upgrade.

" }, - "AdvancedOptions":{"shape":"AdvancedOptions"} + "AdvancedOptions":{ + "shape":"AdvancedOptions", + "documentation":"

Only supports the override_main_response_version parameter and not other advanced options. You can only include this option when upgrading to an OpenSearch version. Specifies whether the domain reports its version as 7.10 so that it continues to work with Elasticsearch OSS clients and plugins.

" + } }, - "documentation":"

Container for the request parameters to UpgradeDomain operation.

" + "documentation":"

Container for the request parameters to the UpgradeDomain operation.

" }, "UpgradeDomainResponse":{ "type":"structure", "members":{ - "UpgradeId":{"shape":"String"}, - "DomainName":{"shape":"DomainName"}, + "UpgradeId":{ + "shape":"String", + "documentation":"

The unique identifier of the domain upgrade.

" + }, + "DomainName":{ + "shape":"DomainName", + "documentation":"

The name of the domain that was upgraded.

" + }, "TargetVersion":{ "shape":"VersionString", - "documentation":"

The version of OpenSearch that you intend to upgrade the domain to.

" + "documentation":"

OpenSearch or Elasticsearch version that the domain was upgraded to.

" }, "PerformCheckOnly":{ "shape":"Boolean", - "documentation":"

When true, indicates that an upgrade eligibility check needs to be performed. Does not actually perform the upgrade.

" + "documentation":"

When true, indicates that an upgrade eligibility check was performed.

" }, - "AdvancedOptions":{"shape":"AdvancedOptions"}, - "ChangeProgressDetails":{"shape":"ChangeProgressDetails"} + "AdvancedOptions":{ + "shape":"AdvancedOptions", + "documentation":"

The advanced options configuration for the domain.

" + }, + "ChangeProgressDetails":{ + "shape":"ChangeProgressDetails", + "documentation":"

Container for information about a configuration change happening on a domain.

" + } }, - "documentation":"

Container for response returned by UpgradeDomain operation.

" + "documentation":"

Container for the response returned by UpgradeDomain operation.

" }, "UpgradeHistory":{ "type":"structure", "members":{ "UpgradeName":{ "shape":"UpgradeName", - "documentation":"

A string that briefly describes the upgrade.

" + "documentation":"

A string that describes the upgrade.

" }, "StartTimestamp":{ "shape":"StartTimestamp", - "documentation":"

UTC timestamp at which the upgrade API call was made in \"yyyy-MM-ddTHH:mm:ssZ\" format.

" + "documentation":"

UTC timestamp at which the upgrade API call was made, in the format yyyy-MM-ddTHH:mm:ssZ.

" }, "UpgradeStatus":{ "shape":"UpgradeStatus", - "documentation":"

The current status of the upgrade. The status can take one of the following values:

  • In Progress
  • Succeeded
  • Succeeded with Issues
  • Failed

" + "documentation":"

The current status of the upgrade. The status can take one of the following values:

  • In Progress

  • Succeeded

  • Succeeded with Issues

  • Failed

" }, "StepsList":{ "shape":"UpgradeStepsList", - "documentation":"

A list of UpgradeStepItem s representing information about each step performed as part of a specific upgrade or upgrade eligibility check.

" + "documentation":"

A list of each step performed as part of a specific upgrade or upgrade eligibility check.

" } }, - "documentation":"

History of the last 10 upgrades and upgrade eligibility checks.

" + "documentation":"

History of the last 10 upgrades and upgrade eligibility checks for an Amazon OpenSearch Service domain.

" }, "UpgradeHistoryList":{ "type":"list", @@ -4244,11 +4846,11 @@ "members":{ "UpgradeStep":{ "shape":"UpgradeStep", - "documentation":"

One of three steps an upgrade or upgrade eligibility check goes through:

  • PreUpgradeCheck
  • Snapshot
  • Upgrade

" + "documentation":"

One of three steps that an upgrade or upgrade eligibility check goes through:

  • PreUpgradeCheck

  • Snapshot

  • Upgrade

" }, "UpgradeStepStatus":{ "shape":"UpgradeStatus", - "documentation":"

The current status of the upgrade. The status can take one of the following values:

  • In Progress
  • Succeeded
  • Succeeded with Issues
  • Failed

" + "documentation":"

The current status of the upgrade. The status can take one of the following values:

  • In Progress

  • Succeeded

  • Succeeded with Issues

  • Failed

" }, "Issues":{ "shape":"Issues", @@ -4259,7 +4861,7 @@ "documentation":"

The floating point value representing the progress percentage of a particular step.

" } }, - "documentation":"

Represents a single step of the upgrade or upgrade eligibility check workflow.

" + "documentation":"

Represents a single step of an upgrade or upgrade eligibility check workflow.

" }, "UpgradeStepsList":{ "type":"list", @@ -4283,22 +4885,22 @@ "members":{ "VPCId":{ "shape":"String", - "documentation":"

The VPC ID for the domain. Exists only if the domain was created with VPCOptions.

" + "documentation":"

The ID for your VPC. Amazon VPC generates this value when you create a VPC.

" }, "SubnetIds":{ "shape":"StringList", - "documentation":"

The subnets for the VPC endpoint.

" + "documentation":"

A list of subnet IDs associated with the VPC endpoints for the domain.

" }, "AvailabilityZones":{ "shape":"StringList", - "documentation":"

The Availability Zones for the domain. Exists only if the domain was created with VPCOptions.

" + "documentation":"

The list of Availability Zones associated with the VPC subnets.

" }, "SecurityGroupIds":{ "shape":"StringList", - "documentation":"

The security groups for the VPC endpoint.

" + "documentation":"

The list of security group IDs associated with the VPC endpoints for the domain.

" } }, - "documentation":"

Options to specify the subnets and security groups for the VPC endpoint. For more information, see Launching your Amazon OpenSearch Service domains using a VPC.

" + "documentation":"

Information about the subnets and security groups for an Amazon OpenSearch Service domain provisioned within a virtual private cloud (VPC). For more information, see Launching your Amazon OpenSearch Service domains using a VPC. This information only exists if the domain was created with VPCOptions.

" }, "VPCDerivedInfoStatus":{ "type":"structure", @@ -4316,21 +4918,21 @@ "documentation":"

The status of the VPC options for the specified domain.

" } }, - "documentation":"

Status of the VPC options for the specified domain.

" + "documentation":"

Status of the VPC options for a specified domain.

" }, "VPCOptions":{ "type":"structure", "members":{ "SubnetIds":{ "shape":"StringList", - "documentation":"

The subnets for the VPC endpoint.

" + "documentation":"

A list of subnet IDs associated with the VPC endpoints for the domain. If your domain uses multiple Availability Zones, you need to provide two subnet IDs, one per zone. Otherwise, provide only one.

" }, "SecurityGroupIds":{ "shape":"StringList", - "documentation":"

The security groups for the VPC endpoint.

" + "documentation":"

The list of security group IDs associated with the VPC endpoints for the domain. If you do not provide a security group ID, OpenSearch Service uses the default security group for the VPC.

" } }, - "documentation":"

Options to specify the subnets and security groups for the VPC endpoint. For more information, see Launching your Amazon OpenSearch Service domains using a VPC.

" + "documentation":"

Options to specify the subnets and security groups for an Amazon OpenSearch Service VPC endpoint. For more information, see Launching your Amazon OpenSearch Service domains using a VPC.

" }, "ValidationException":{ "type":"structure", @@ -4348,7 +4950,7 @@ "VersionList":{ "type":"list", "member":{"shape":"VersionString"}, - "documentation":"

List of supported OpenSearch versions.

" + "documentation":"

List of supported OpenSearch versions.

" }, "VersionStatus":{ "type":"structure", @@ -4359,14 +4961,14 @@ "members":{ "Options":{ "shape":"VersionString", - "documentation":"

The OpenSearch version for the specified OpenSearch domain.

" + "documentation":"

The OpenSearch or Elasticsearch version for the specified domain.

" }, "Status":{ "shape":"OptionStatus", - "documentation":"

The status of the OpenSearch version options for the specified OpenSearch domain.

" + "documentation":"

The status of the version options for the specified domain.

" } }, - "documentation":"

The status of the OpenSearch version options for the specified OpenSearch domain.

" + "documentation":"

The status of the the OpenSearch or Elasticsearch version options for the specified Amazon OpenSearch Service domain.

" }, "VersionString":{ "type":"string", @@ -4376,23 +4978,135 @@ }, "VolumeType":{ "type":"string", - "documentation":"

The type of EBS volume, standard, gp2, or io1. See Configuring EBS-based Storage for more information.

", + "documentation":"

The type of EBS volume that a domain uses. For more information, see Configuring EBS-based storage.

", "enum":[ "standard", "gp2", - "io1" + "io1", + "gp3" ] }, + "VpcEndpoint":{ + "type":"structure", + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "VpcEndpointOwner":{ + "shape":"AWSAccount", + "documentation":"

The creator of the endpoint.

" + }, + "DomainArn":{ + "shape":"DomainArn", + "documentation":"

The Amazon Resource Name (ARN) of the domain associated with the endpoint.

" + }, + "VpcOptions":{ + "shape":"VPCDerivedInfo", + "documentation":"

Options to specify the subnets and security groups for an Amazon OpenSearch Service VPC endpoint.

" + }, + "Status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status of the endpoint.

" + }, + "Endpoint":{ + "shape":"Endpoint", + "documentation":"

The connection endpoint ID for connecting to the domain.

" + } + }, + "documentation":"

The connection endpoint for connecting to an Amazon OpenSearch Service domain through a proxy.

" + }, + "VpcEndpointError":{ + "type":"structure", + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "ErrorCode":{ + "shape":"VpcEndpointErrorCode", + "documentation":"

The code associated with the error.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

A message describing the error.

" + } + }, + "documentation":"

Error information when attempting to describe an Amazon OpenSearch Service-managed VPC endpoint.

" + }, + "VpcEndpointErrorCode":{ + "type":"string", + "enum":[ + "ENDPOINT_NOT_FOUND", + "SERVER_ERROR" + ] + }, + "VpcEndpointErrorList":{ + "type":"list", + "member":{"shape":"VpcEndpointError"} + }, + "VpcEndpointId":{ + "type":"string", + "max":256, + "min":5, + "pattern":"^aos-[a-zA-Z0-9]*$" + }, + "VpcEndpointIdList":{ + "type":"list", + "member":{"shape":"VpcEndpointId"} + }, + "VpcEndpointStatus":{ + "type":"string", + "enum":[ + "CREATING", + "CREATE_FAILED", + "ACTIVE", + "UPDATING", + "UPDATE_FAILED", + "DELETING", + "DELETE_FAILED" + ] + }, + "VpcEndpointSummary":{ + "type":"structure", + "members":{ + "VpcEndpointId":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "VpcEndpointOwner":{ + "shape":"String", + "documentation":"

The creator of the endpoint.

" + }, + "DomainArn":{ + "shape":"DomainArn", + "documentation":"

The Amazon Resource Name (ARN) of the domain associated with the endpoint.

" + }, + "Status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status of the endpoint.

" + } + }, + "documentation":"

Summary information for an Amazon OpenSearch Service-managed VPC endpoint.

" + }, + "VpcEndpointSummaryList":{ + "type":"list", + "member":{"shape":"VpcEndpointSummary"} + }, + "VpcEndpoints":{ + "type":"list", + "member":{"shape":"VpcEndpoint"} + }, "ZoneAwarenessConfig":{ "type":"structure", "members":{ "AvailabilityZoneCount":{ "shape":"IntegerClass", - "documentation":"

An integer value to indicate the number of availability zones for a domain when zone awareness is enabled. This should be equal to number of subnets if VPC endpoints is enabled.

" + "documentation":"

If you enabled multiple Availability Zones, this value is the number of zones that you want the domain to use. Valid values are 2 and 3. If your domain is provisioned within a VPC, this value be equal to number of subnets.

" } }, - "documentation":"

The zone awareness configuration for the domain cluster, such as the number of availability zones.

" + "documentation":"

The zone awareness configuration for an Amazon OpenSearch Service domain.

" } }, - "documentation":"Amazon OpenSearch Configuration Service

Use the Amazon OpenSearch configuration API to create, configure, and manage Amazon OpenSearch Service domains.

For sample code that uses the configuration API, see the Amazon OpenSearch Service Developer Guide. The guide also contains sample code for sending signed HTTP requests to the OpenSearch APIs.

The endpoint for configuration service requests is region-specific: es.region.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported regions and endpoints, see Regions and Endpoints.

" + "documentation":"

Use the Amazon OpenSearch Service configuration API to create, configure, and manage OpenSearch Service domains.

For sample code that uses the configuration API, see the Amazon OpenSearch Service Developer Guide . The guide also contains sample code for sending signed HTTP requests to the OpenSearch APIs. The endpoint for configuration service requests is Region specific: es.region.amazonaws.com. For example, es.us-east-1.amazonaws.com. For a current list of supported Regions and endpoints, see Amazon Web Services service endpoints.

" } diff --git a/botocore/data/opensearchserverless/2021-11-01/endpoint-rule-set-1.json b/botocore/data/opensearchserverless/2021-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..6c4f0a78 --- /dev/null +++ b/botocore/data/opensearchserverless/2021-11-01/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://aoss.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://aoss.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/opensearchserverless/2021-11-01/paginators-1.json b/botocore/data/opensearchserverless/2021-11-01/paginators-1.json new file mode 100644 index 00000000..ea142457 --- /dev/null +++ b/botocore/data/opensearchserverless/2021-11-01/paginators-1.json @@ -0,0 +1,3 @@ +{ + "pagination": {} +} diff --git a/botocore/data/opensearchserverless/2021-11-01/service-2.json b/botocore/data/opensearchserverless/2021-11-01/service-2.json new file mode 100644 index 00000000..2bbaf353 --- /dev/null +++ b/botocore/data/opensearchserverless/2021-11-01/service-2.json @@ -0,0 +1,2399 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-11-01", + "endpointPrefix":"aoss", + "jsonVersion":"1.0", + "protocol":"json", + "serviceFullName":"OpenSearch Service Serverless", + "serviceId":"OpenSearchServerless", + "signatureVersion":"v4", + "signingName":"aoss", + "targetPrefix":"OpenSearchServerless", + "uid":"opensearchserverless-2021-11-01" + }, + "operations":{ + "BatchGetCollection":{ + "name":"BatchGetCollection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetCollectionRequest"}, + "output":{"shape":"BatchGetCollectionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns attributes for one or more collections, including the collection endpoint and the OpenSearch Dashboards endpoint. For more information, see Creating and managing Amazon OpenSearch Serverless collections.

" + }, + "BatchGetVpcEndpoint":{ + "name":"BatchGetVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"BatchGetVpcEndpointRequest"}, + "output":{"shape":"BatchGetVpcEndpointResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns attributes for one or more VPC endpoints associated with the current account. For more information, see Access Amazon OpenSearch Serverless using an interface endpoint.

" + }, + "CreateAccessPolicy":{ + "name":"CreateAccessPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAccessPolicyRequest"}, + "output":{"shape":"CreateAccessPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates a data access policy for OpenSearch Serverless. Access policies limit access to collections and the resources within them, and allow a user to access that data irrespective of the access mechanism or network source. For more information, see Data access control for Amazon OpenSearch Serverless.

", + "idempotent":true + }, + "CreateCollection":{ + "name":"CreateCollection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateCollectionRequest"}, + "output":{"shape":"CreateCollectionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates a new OpenSearch Serverless collection. For more information, see Creating and managing Amazon OpenSearch Serverless collections.

", + "idempotent":true + }, + "CreateSecurityConfig":{ + "name":"CreateSecurityConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSecurityConfigRequest"}, + "output":{"shape":"CreateSecurityConfigResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Specifies a security configuration for OpenSearch Serverless. For more information, see SAML authentication for Amazon OpenSearch Serverless.

", + "idempotent":true + }, + "CreateSecurityPolicy":{ + "name":"CreateSecurityPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSecurityPolicyRequest"}, + "output":{"shape":"CreateSecurityPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates a security policy to be used by one or more OpenSearch Serverless collections. Security policies provide access to a collection and its OpenSearch Dashboards endpoint from public networks or specific VPC endpoints. They also allow you to secure a collection with a KMS encryption key. For more information, see Network access for Amazon OpenSearch Serverless and Encryption at rest for Amazon OpenSearch Serverless.

", + "idempotent":true + }, + "CreateVpcEndpoint":{ + "name":"CreateVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateVpcEndpointRequest"}, + "output":{"shape":"CreateVpcEndpointResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates an OpenSearch Serverless-managed interface VPC endpoint. For more information, see Access Amazon OpenSearch Serverless using an interface endpoint.

", + "idempotent":true + }, + "DeleteAccessPolicy":{ + "name":"DeleteAccessPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAccessPolicyRequest"}, + "output":{"shape":"DeleteAccessPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes an OpenSearch Serverless access policy. For more information, see Data access control for Amazon OpenSearch Serverless.

", + "idempotent":true + }, + "DeleteCollection":{ + "name":"DeleteCollection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCollectionRequest"}, + "output":{"shape":"DeleteCollectionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes an OpenSearch Serverless collection. For more information, see Creating and managing Amazon OpenSearch Serverless collections.

", + "idempotent":true + }, + "DeleteSecurityConfig":{ + "name":"DeleteSecurityConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSecurityConfigRequest"}, + "output":{"shape":"DeleteSecurityConfigResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a security configuration for OpenSearch Serverless. For more information, see SAML authentication for Amazon OpenSearch Serverless.

", + "idempotent":true + }, + "DeleteSecurityPolicy":{ + "name":"DeleteSecurityPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSecurityPolicyRequest"}, + "output":{"shape":"DeleteSecurityPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes an OpenSearch Serverless security policy.

", + "idempotent":true + }, + "DeleteVpcEndpoint":{ + "name":"DeleteVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteVpcEndpointRequest"}, + "output":{"shape":"DeleteVpcEndpointResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes an OpenSearch Serverless-managed interface endpoint. For more information, see Access Amazon OpenSearch Serverless using an interface endpoint.

", + "idempotent":true + }, + "GetAccessPolicy":{ + "name":"GetAccessPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAccessPolicyRequest"}, + "output":{"shape":"GetAccessPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns an OpenSearch Serverless access policy. For more information, see Data access control for Amazon OpenSearch Serverless.

" + }, + "GetAccountSettings":{ + "name":"GetAccountSettings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAccountSettingsRequest"}, + "output":{"shape":"GetAccountSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns account-level settings related to OpenSearch Serverless.

" + }, + "GetPoliciesStats":{ + "name":"GetPoliciesStats", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPoliciesStatsRequest"}, + "output":{"shape":"GetPoliciesStatsResponse"}, + "errors":[ + {"shape":"InternalServerException"} + ], + "documentation":"

Returns statistical information about your OpenSearch Serverless access policies, security configurations, and security policies.

" + }, + "GetSecurityConfig":{ + "name":"GetSecurityConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSecurityConfigRequest"}, + "output":{"shape":"GetSecurityConfigResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about an OpenSearch Serverless security configuration. For more information, see SAML authentication for Amazon OpenSearch Serverless.

" + }, + "GetSecurityPolicy":{ + "name":"GetSecurityPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSecurityPolicyRequest"}, + "output":{"shape":"GetSecurityPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a configured OpenSearch Serverless security policy. For more information, see Network access for Amazon OpenSearch Serverless and Encryption at rest for Amazon OpenSearch Serverless.

" + }, + "ListAccessPolicies":{ + "name":"ListAccessPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAccessPoliciesRequest"}, + "output":{"shape":"ListAccessPoliciesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a list of OpenSearch Serverless access policies.

" + }, + "ListCollections":{ + "name":"ListCollections", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCollectionsRequest"}, + "output":{"shape":"ListCollectionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists all OpenSearch Serverless collections. For more information, see Creating and managing Amazon OpenSearch Serverless collections.

Make sure to include an empty request body {} if you don't include any collection filters in the request.

" + }, + "ListSecurityConfigs":{ + "name":"ListSecurityConfigs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSecurityConfigsRequest"}, + "output":{"shape":"ListSecurityConfigsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about configured OpenSearch Serverless security configurations. For more information, see SAML authentication for Amazon OpenSearch Serverless.

" + }, + "ListSecurityPolicies":{ + "name":"ListSecurityPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSecurityPoliciesRequest"}, + "output":{"shape":"ListSecurityPoliciesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about configured OpenSearch Serverless security policies.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns the tags for an OpenSearch Serverless resource. For more information, see Tagging Amazon OpenSearch Serverless collections.

" + }, + "ListVpcEndpoints":{ + "name":"ListVpcEndpoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListVpcEndpointsRequest"}, + "output":{"shape":"ListVpcEndpointsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns the OpenSearch Serverless-managed interface VPC endpoints associated with the current account. For more information, see Access Amazon OpenSearch Serverless using an interface endpoint.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Associates tags with an OpenSearch Serverless resource. For more information, see Tagging Amazon OpenSearch Serverless collections.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Removes a tag or set of tags from an OpenSearch Serverless resource. For more information, see Tagging Amazon OpenSearch Serverless collections.

" + }, + "UpdateAccessPolicy":{ + "name":"UpdateAccessPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAccessPolicyRequest"}, + "output":{"shape":"UpdateAccessPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates an OpenSearch Serverless access policy. For more information, see Data access control for Amazon OpenSearch Serverless.

", + "idempotent":true + }, + "UpdateAccountSettings":{ + "name":"UpdateAccountSettings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAccountSettingsRequest"}, + "output":{"shape":"UpdateAccountSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Update the OpenSearch Serverless settings for the current Amazon Web Services account. For more information, see Autoscaling.

" + }, + "UpdateCollection":{ + "name":"UpdateCollection", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateCollectionRequest"}, + "output":{"shape":"UpdateCollectionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates an OpenSearch Serverless collection.

", + "idempotent":true + }, + "UpdateSecurityConfig":{ + "name":"UpdateSecurityConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSecurityConfigRequest"}, + "output":{"shape":"UpdateSecurityConfigResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates a security configuration for OpenSearch Serverless. For more information, see SAML authentication for Amazon OpenSearch Serverless.

", + "idempotent":true + }, + "UpdateSecurityPolicy":{ + "name":"UpdateSecurityPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSecurityPolicyRequest"}, + "output":{"shape":"UpdateSecurityPolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates an OpenSearch Serverless security policy. For more information, see Network access for Amazon OpenSearch Serverless and Encryption at rest for Amazon OpenSearch Serverless.

", + "idempotent":true + }, + "UpdateVpcEndpoint":{ + "name":"UpdateVpcEndpoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateVpcEndpointRequest"}, + "output":{"shape":"UpdateVpcEndpointResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates an OpenSearch Serverless-managed interface endpoint. For more information, see Access Amazon OpenSearch Serverless using an interface endpoint.

", + "idempotent":true + } + }, + "shapes":{ + "AccessPolicyDetail":{ + "type":"structure", + "members":{ + "createdDate":{ + "shape":"Long", + "documentation":"

The date the policy was created.

" + }, + "description":{ + "shape":"PolicyDescription", + "documentation":"

The description of the policy.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The timestamp of when the policy was last modified.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the policy.

" + }, + "policy":{ + "shape":"Document", + "documentation":"

The JSON policy document without any whitespaces.

" + }, + "policyVersion":{ + "shape":"PolicyVersion", + "documentation":"

The version of the policy.

" + }, + "type":{ + "shape":"AccessPolicyType", + "documentation":"

The type of access policy.

" + } + }, + "documentation":"

Details about an OpenSearch Serverless access policy.

" + }, + "AccessPolicyStats":{ + "type":"structure", + "members":{ + "DataPolicyCount":{ + "shape":"Long", + "documentation":"

The number of data access policies in the current account.

" + } + }, + "documentation":"

Statistics for an OpenSearch Serverless access policy.

" + }, + "AccessPolicySummaries":{ + "type":"list", + "member":{"shape":"AccessPolicySummary"} + }, + "AccessPolicySummary":{ + "type":"structure", + "members":{ + "createdDate":{ + "shape":"Long", + "documentation":"

The Epoch time when the access policy was created.

" + }, + "description":{ + "shape":"PolicyDescription", + "documentation":"

The description of the access policy.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The date and time when the collection was last modified.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the access policy.

" + }, + "policyVersion":{ + "shape":"PolicyVersion", + "documentation":"

The version of the policy.

" + }, + "type":{ + "shape":"AccessPolicyType", + "documentation":"

The type of access policy. Currently the only available type is data.

" + } + }, + "documentation":"

A summary of the data access policy.

" + }, + "AccessPolicyType":{ + "type":"string", + "enum":["data"] + }, + "AccountSettingsDetail":{ + "type":"structure", + "members":{ + "capacityLimits":{"shape":"CapacityLimits"} + }, + "documentation":"

OpenSearch Serverless-related information for the current account.

" + }, + "Arn":{ + "type":"string", + "max":1011, + "min":1 + }, + "BatchGetCollectionRequest":{ + "type":"structure", + "members":{ + "ids":{ + "shape":"CollectionIds", + "documentation":"

A list of collection IDs. You can't provide names and IDs in the same request. The ID is part of the collection endpoint. You can also retrieve it using the ListCollections API.

" + }, + "names":{ + "shape":"CollectionNames", + "documentation":"

A list of collection names. You can't provide names and IDs in the same request.

" + } + } + }, + "BatchGetCollectionResponse":{ + "type":"structure", + "members":{ + "collectionDetails":{ + "shape":"CollectionDetails", + "documentation":"

Details about each collection.

" + }, + "collectionErrorDetails":{ + "shape":"CollectionErrorDetails", + "documentation":"

Error information for the request.

" + } + } + }, + "BatchGetVpcEndpointRequest":{ + "type":"structure", + "required":["ids"], + "members":{ + "ids":{ + "shape":"VpcEndpointIds", + "documentation":"

A list of VPC endpoint identifiers.

" + } + } + }, + "BatchGetVpcEndpointResponse":{ + "type":"structure", + "members":{ + "vpcEndpointDetails":{ + "shape":"VpcEndpointDetails", + "documentation":"

Details about the specified VPC endpoint.

" + }, + "vpcEndpointErrorDetails":{ + "shape":"VpcEndpointErrorDetails", + "documentation":"

Error information for a failed request.

" + } + } + }, + "CapacityLimits":{ + "type":"structure", + "members":{ + "maxIndexingCapacityInOCU":{ + "shape":"IndexingCapacityValue", + "documentation":"

The maximum indexing capacity for collections.

" + }, + "maxSearchCapacityInOCU":{ + "shape":"SearchCapacityValue", + "documentation":"

The maximum search capacity for collections.

" + } + }, + "documentation":"

The maximum capacity limits for all OpenSearch Serverless collections, in OpenSearch Compute Units (OCUs). These limits are used to scale your collections based on the current workload. For more information, see Autoscaling.

" + }, + "ClientToken":{ + "type":"string", + "max":512, + "min":1 + }, + "CollectionDetail":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the collection.

" + }, + "collectionEndpoint":{ + "shape":"String", + "documentation":"

Collection-specific endpoint used to submit index, search, and data upload requests to an OpenSearch Serverless collection.

" + }, + "createdDate":{ + "shape":"Long", + "documentation":"

The Epoch time when the collection was created.

" + }, + "dashboardEndpoint":{ + "shape":"String", + "documentation":"

Collection-specific endpoint used to access OpenSearch Dashboards.

" + }, + "description":{ + "shape":"String", + "documentation":"

A description of the collection.

" + }, + "id":{ + "shape":"CollectionId", + "documentation":"

A unique identifier for the collection.

" + }, + "kmsKeyArn":{ + "shape":"String", + "documentation":"

The ARN of the Amazon Web Services KMS key used to encrypt the collection.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The date and time when the collection was last modified.

" + }, + "name":{ + "shape":"CollectionName", + "documentation":"

The name of the collection.

" + }, + "status":{ + "shape":"CollectionStatus", + "documentation":"

The current status of the collection.

" + }, + "type":{ + "shape":"CollectionType", + "documentation":"

The type of collection.

" + } + }, + "documentation":"

Details about each OpenSearch Serverless collection, including the collection endpoint and the OpenSearch Dashboards endpoint.

" + }, + "CollectionDetails":{ + "type":"list", + "member":{"shape":"CollectionDetail"} + }, + "CollectionErrorDetail":{ + "type":"structure", + "members":{ + "errorCode":{ + "shape":"String", + "documentation":"

The error code for the request. For example, NOT_FOUND.

" + }, + "errorMessage":{ + "shape":"String", + "documentation":"

A description of the error. For example, The specified Collection is not found.

" + }, + "id":{ + "shape":"CollectionId", + "documentation":"

If the request contains collection IDs, the response includes the IDs provided in the request.

" + }, + "name":{ + "shape":"CollectionName", + "documentation":"

If the request contains collection names, the response includes the names provided in the request.

" + } + }, + "documentation":"

Error information for an OpenSearch Serverless request.

" + }, + "CollectionErrorDetails":{ + "type":"list", + "member":{"shape":"CollectionErrorDetail"} + }, + "CollectionFilters":{ + "type":"structure", + "members":{ + "name":{ + "shape":"CollectionName", + "documentation":"

The name of the collection.

" + }, + "status":{ + "shape":"CollectionStatus", + "documentation":"

The current status of the collection.

" + } + }, + "documentation":"

List of filter keys that you can use for LIST, UPDATE, and DELETE requests to OpenSearch Serverless collections.

" + }, + "CollectionId":{ + "type":"string", + "max":40, + "min":3, + "pattern":"^[a-z0-9]{3,40}$" + }, + "CollectionIds":{ + "type":"list", + "member":{"shape":"CollectionId"}, + "max":100, + "min":1 + }, + "CollectionName":{ + "type":"string", + "max":32, + "min":3, + "pattern":"^[a-z][a-z0-9-]+$" + }, + "CollectionNames":{ + "type":"list", + "member":{"shape":"CollectionName"}, + "max":100, + "min":1 + }, + "CollectionStatus":{ + "type":"string", + "enum":[ + "CREATING", + "DELETING", + "ACTIVE", + "FAILED" + ] + }, + "CollectionSummaries":{ + "type":"list", + "member":{"shape":"CollectionSummary"} + }, + "CollectionSummary":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the collection.

" + }, + "id":{ + "shape":"CollectionId", + "documentation":"

The unique identifier of the collection.

" + }, + "name":{ + "shape":"CollectionName", + "documentation":"

The name of the collection.

" + }, + "status":{ + "shape":"CollectionStatus", + "documentation":"

The current status of the collection.

" + } + }, + "documentation":"

Details about each OpenSearch Serverless collection.

" + }, + "CollectionType":{ + "type":"string", + "enum":[ + "SEARCH", + "TIMESERIES" + ] + }, + "ConfigDescription":{ + "type":"string", + "max":1000, + "min":1 + }, + "ConfigName":{ + "type":"string", + "max":32, + "min":3, + "pattern":"^[a-z][a-z0-9-]+$" + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

When creating a collection, thrown when a collection with the same name already exists or is being created. When deleting a collection, thrown when the collection is not in the ACTIVE or FAILED state.

", + "exception":true + }, + "CreateAccessPolicyRequest":{ + "type":"structure", + "required":[ + "name", + "policy", + "type" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "description":{ + "shape":"PolicyDescription", + "documentation":"

A description of the policy. Typically used to store information about the permissions defined in the policy.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the policy.

" + }, + "policy":{ + "shape":"PolicyDocument", + "documentation":"

The JSON policy document to use as the content for the policy.

" + }, + "type":{ + "shape":"AccessPolicyType", + "documentation":"

The type of policy.

" + } + } + }, + "CreateAccessPolicyResponse":{ + "type":"structure", + "members":{ + "accessPolicyDetail":{ + "shape":"AccessPolicyDetail", + "documentation":"

Details about the created access policy.

" + } + } + }, + "CreateCollectionDetail":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the collection.

" + }, + "createdDate":{ + "shape":"Long", + "documentation":"

The Epoch time when the collection was created.

" + }, + "description":{ + "shape":"String", + "documentation":"

A description of the collection.

" + }, + "id":{ + "shape":"CollectionId", + "documentation":"

The unique identifier of the collection.

" + }, + "kmsKeyArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the KMS key with which to encrypt the collection.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The date and time when the collection was last modified.

" + }, + "name":{ + "shape":"CollectionName", + "documentation":"

The name of the collection.

" + }, + "status":{ + "shape":"CollectionStatus", + "documentation":"

The current status of the collection.

" + }, + "type":{ + "shape":"CollectionType", + "documentation":"

The type of collection.

" + } + }, + "documentation":"

Details about the created OpenSearch Serverless collection.

" + }, + "CreateCollectionRequest":{ + "type":"structure", + "required":["name"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "description":{ + "shape":"CreateCollectionRequestDescriptionString", + "documentation":"

Description of the collection.

" + }, + "name":{ + "shape":"CollectionName", + "documentation":"

Name of the collection.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

An arbitrary set of tags (key–value pairs) to associate with the OpenSearch Serverless collection.

" + }, + "type":{ + "shape":"CollectionType", + "documentation":"

The type of collection.

" + } + } + }, + "CreateCollectionRequestDescriptionString":{ + "type":"string", + "max":1000, + "min":0 + }, + "CreateCollectionResponse":{ + "type":"structure", + "members":{ + "createCollectionDetail":{ + "shape":"CreateCollectionDetail", + "documentation":"

Details about the collection.

" + } + } + }, + "CreateSecurityConfigRequest":{ + "type":"structure", + "required":[ + "name", + "type" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "description":{ + "shape":"ConfigDescription", + "documentation":"

A description of the security configuration.

" + }, + "name":{ + "shape":"ConfigName", + "documentation":"

The name of the security configuration.

" + }, + "samlOptions":{ + "shape":"SamlConfigOptions", + "documentation":"

Describes SAML options in in the form of a key-value map.

" + }, + "type":{ + "shape":"SecurityConfigType", + "documentation":"

The type of security configuration.

" + } + } + }, + "CreateSecurityConfigResponse":{ + "type":"structure", + "members":{ + "securityConfigDetail":{ + "shape":"SecurityConfigDetail", + "documentation":"

Details about the created security configuration.

" + } + } + }, + "CreateSecurityPolicyRequest":{ + "type":"structure", + "required":[ + "name", + "policy", + "type" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "description":{ + "shape":"PolicyDescription", + "documentation":"

A description of the policy. Typically used to store information about the permissions defined in the policy.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the policy.

" + }, + "policy":{ + "shape":"PolicyDocument", + "documentation":"

The JSON policy document to use as the content for the new policy.

" + }, + "type":{ + "shape":"SecurityPolicyType", + "documentation":"

The type of security policy.

" + } + } + }, + "CreateSecurityPolicyResponse":{ + "type":"structure", + "members":{ + "securityPolicyDetail":{ + "shape":"SecurityPolicyDetail", + "documentation":"

Details about the created security policy.

" + } + } + }, + "CreateVpcEndpointDetail":{ + "type":"structure", + "members":{ + "id":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "name":{ + "shape":"VpcEndpointName", + "documentation":"

The name of the endpoint.

" + }, + "status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status in the endpoint creation process.

" + } + }, + "documentation":"

Creation details for an OpenSearch Serverless-managed interface endpoint. For more information, see Access Amazon OpenSearch Serverless using an interface endpoint.

" + }, + "CreateVpcEndpointRequest":{ + "type":"structure", + "required":[ + "name", + "subnetIds", + "vpcId" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "name":{ + "shape":"VpcEndpointName", + "documentation":"

The name of the interface endpoint.

" + }, + "securityGroupIds":{ + "shape":"SecurityGroupIds", + "documentation":"

The unique identifiers of the security groups that define the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint.

" + }, + "subnetIds":{ + "shape":"SubnetIds", + "documentation":"

The ID of one or more subnets from which you'll access OpenSearch Serverless.

" + }, + "vpcId":{ + "shape":"VpcId", + "documentation":"

The ID of the VPC from which you'll access OpenSearch Serverless.

" + } + } + }, + "CreateVpcEndpointResponse":{ + "type":"structure", + "members":{ + "createVpcEndpointDetail":{ + "shape":"CreateVpcEndpointDetail", + "documentation":"

Details about the created interface VPC endpoint.

" + } + } + }, + "DeleteAccessPolicyRequest":{ + "type":"structure", + "required":[ + "name", + "type" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the policy to delete.

" + }, + "type":{ + "shape":"AccessPolicyType", + "documentation":"

The type of policy.

" + } + } + }, + "DeleteAccessPolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteCollectionDetail":{ + "type":"structure", + "members":{ + "id":{ + "shape":"CollectionId", + "documentation":"

The unique identifier of the collection.

" + }, + "name":{ + "shape":"CollectionName", + "documentation":"

The name of the collection.

" + }, + "status":{ + "shape":"CollectionStatus", + "documentation":"

The current status of the collection.

" + } + }, + "documentation":"

Details about a deleted OpenSearch Serverless collection.

" + }, + "DeleteCollectionRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "id":{ + "shape":"CollectionId", + "documentation":"

The unique identifier of the collection. For example, 1iu5usc406kd. The ID is part of the collection endpoint. You can also retrieve it using the ListCollections API.

" + } + } + }, + "DeleteCollectionResponse":{ + "type":"structure", + "members":{ + "deleteCollectionDetail":{ + "shape":"DeleteCollectionDetail", + "documentation":"

Details of the deleted collection.

" + } + } + }, + "DeleteSecurityConfigRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "id":{ + "shape":"SecurityConfigId", + "documentation":"

The security configuration identifier. For SAML the ID will be saml/<accountId>/<idpProviderName>. For example, saml/123456789123/OKTADev.

" + } + } + }, + "DeleteSecurityConfigResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteSecurityPolicyRequest":{ + "type":"structure", + "required":[ + "name", + "type" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the policy to delete.

" + }, + "type":{ + "shape":"SecurityPolicyType", + "documentation":"

The type of policy.

" + } + } + }, + "DeleteSecurityPolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteVpcEndpointDetail":{ + "type":"structure", + "members":{ + "id":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "name":{ + "shape":"VpcEndpointName", + "documentation":"

The name of the endpoint.

" + }, + "status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status of the endpoint deletion process.

" + } + }, + "documentation":"

Deletion details for an OpenSearch Serverless-managed interface endpoint.

" + }, + "DeleteVpcEndpointRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "id":{ + "shape":"VpcEndpointId", + "documentation":"

The VPC endpoint identifier.

" + } + } + }, + "DeleteVpcEndpointResponse":{ + "type":"structure", + "members":{ + "deleteVpcEndpointDetail":{ + "shape":"DeleteVpcEndpointDetail", + "documentation":"

Details about the deleted endpoint.

" + } + } + }, + "Document":{ + "type":"structure", + "members":{ + }, + "document":true + }, + "GetAccessPolicyRequest":{ + "type":"structure", + "required":[ + "name", + "type" + ], + "members":{ + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the access policy.

" + }, + "type":{ + "shape":"AccessPolicyType", + "documentation":"

Tye type of policy. Currently the only supported value is data.

" + } + } + }, + "GetAccessPolicyResponse":{ + "type":"structure", + "members":{ + "accessPolicyDetail":{ + "shape":"AccessPolicyDetail", + "documentation":"

Details about the requested access policy.

" + } + } + }, + "GetAccountSettingsRequest":{ + "type":"structure", + "members":{ + } + }, + "GetAccountSettingsResponse":{ + "type":"structure", + "members":{ + "accountSettingsDetail":{ + "shape":"AccountSettingsDetail", + "documentation":"

OpenSearch Serverless-related details for the current account.

" + } + } + }, + "GetPoliciesStatsRequest":{ + "type":"structure", + "members":{ + } + }, + "GetPoliciesStatsResponse":{ + "type":"structure", + "members":{ + "AccessPolicyStats":{ + "shape":"AccessPolicyStats", + "documentation":"

Information about the data access policies in your account.

" + }, + "SecurityConfigStats":{ + "shape":"SecurityConfigStats", + "documentation":"

Information about the security configurations in your account.

" + }, + "SecurityPolicyStats":{ + "shape":"SecurityPolicyStats", + "documentation":"

Information about the security policies in your account.

" + }, + "TotalPolicyCount":{ + "shape":"Long", + "documentation":"

The total number of OpenSearch Serverless security policies and configurations in your account.

" + } + } + }, + "GetSecurityConfigRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"SecurityConfigId", + "documentation":"

The unique identifier of the security configuration.

" + } + } + }, + "GetSecurityConfigResponse":{ + "type":"structure", + "members":{ + "securityConfigDetail":{ + "shape":"SecurityConfigDetail", + "documentation":"

Details of the requested security configuration.

" + } + } + }, + "GetSecurityPolicyRequest":{ + "type":"structure", + "required":[ + "name", + "type" + ], + "members":{ + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the security policy.

" + }, + "type":{ + "shape":"SecurityPolicyType", + "documentation":"

The type of security policy.

" + } + } + }, + "GetSecurityPolicyResponse":{ + "type":"structure", + "members":{ + "securityPolicyDetail":{ + "shape":"SecurityPolicyDetail", + "documentation":"

Details about the requested security policy.

" + } + } + }, + "IndexingCapacityValue":{ + "type":"integer", + "box":true, + "min":2 + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Thrown when an error internal to the service occurs while processing a request.

", + "exception":true, + "fault":true + }, + "ListAccessPoliciesRequest":{ + "type":"structure", + "required":["type"], + "members":{ + "maxResults":{ + "shape":"ListAccessPoliciesRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. The default is 20.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If your initial ListAccessPolicies operation returns a nextToken, you can include the returned nextToken in subsequent ListAccessPolicies operations, which returns results in the next page.

" + }, + "resource":{ + "shape":"ListAccessPoliciesRequestResourceList", + "documentation":"

Resource filters (can be collection or indexes) that policies can apply to.

" + }, + "type":{ + "shape":"AccessPolicyType", + "documentation":"

The type of access policy.

" + } + } + }, + "ListAccessPoliciesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListAccessPoliciesRequestResourceList":{ + "type":"list", + "member":{"shape":"Resource"}, + "max":1000, + "min":1 + }, + "ListAccessPoliciesResponse":{ + "type":"structure", + "members":{ + "accessPolicySummaries":{ + "shape":"AccessPolicySummaries", + "documentation":"

Details about the requested access policies.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListCollectionsRequest":{ + "type":"structure", + "members":{ + "collectionFilters":{ + "shape":"CollectionFilters", + "documentation":"

List of filter names and values that you can use for requests.

" + }, + "maxResults":{ + "shape":"ListCollectionsRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return. Default is 20. You can use nextToken to get the next page of results.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If your initial ListCollections operation returns a nextToken, you can include the returned nextToken in subsequent ListCollections operations, which returns results in the next page.

" + } + } + }, + "ListCollectionsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListCollectionsResponse":{ + "type":"structure", + "members":{ + "collectionSummaries":{ + "shape":"CollectionSummaries", + "documentation":"

Details about each collection.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListSecurityConfigsRequest":{ + "type":"structure", + "required":["type"], + "members":{ + "maxResults":{ + "shape":"ListSecurityConfigsRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. The default is 20.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If your initial ListSecurityConfigs operation returns a nextToken, you can include the returned nextToken in subsequent ListSecurityConfigs operations, which returns results in the next page.

" + }, + "type":{ + "shape":"SecurityConfigType", + "documentation":"

The type of security configuration.

" + } + } + }, + "ListSecurityConfigsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSecurityConfigsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + }, + "securityConfigSummaries":{ + "shape":"SecurityConfigSummaries", + "documentation":"

Details about the security configurations in your account.

" + } + } + }, + "ListSecurityPoliciesRequest":{ + "type":"structure", + "required":["type"], + "members":{ + "maxResults":{ + "shape":"ListSecurityPoliciesRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. The default is 20.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If your initial ListSecurityPolicies operation returns a nextToken, you can include the returned nextToken in subsequent ListSecurityPolicies operations, which returns results in the next page.

" + }, + "resource":{ + "shape":"ListSecurityPoliciesRequestResourceList", + "documentation":"

Resource filters (can be collection or indexes) that policies can apply to.

" + }, + "type":{ + "shape":"SecurityPolicyType", + "documentation":"

The type of policy.

" + } + } + }, + "ListSecurityPoliciesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSecurityPoliciesRequestResourceList":{ + "type":"list", + "member":{"shape":"Resource"}, + "max":1000, + "min":1 + }, + "ListSecurityPoliciesResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + }, + "securityPolicySummaries":{ + "shape":"SecurityPolicySummaries", + "documentation":"

Details about the security policies in your account.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource. The resource must be active (not in the DELETING state), and must be owned by the account ID included in the request.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"Tags", + "documentation":"

The tags associated with the resource.

" + } + } + }, + "ListVpcEndpointsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListVpcEndpointsRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. The default is 20.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If your initial ListVpcEndpoints operation returns a nextToken, you can include the returned nextToken in subsequent ListVpcEndpoints operations, which returns results in the next page.

" + }, + "vpcEndpointFilters":{ + "shape":"VpcEndpointFilters", + "documentation":"

Filter the results according to the current status of the VPC endpoint. Possible statuses are CREATING, DELETING, UPDATING, ACTIVE, and FAILED.

" + } + } + }, + "ListVpcEndpointsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListVpcEndpointsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + }, + "vpcEndpointSummaries":{ + "shape":"VpcEndpointSummaries", + "documentation":"

Details about each VPC endpoint, including the name and current status.

" + } + } + }, + "Long":{ + "type":"long", + "box":true + }, + "PolicyDescription":{ + "type":"string", + "max":1000, + "min":1 + }, + "PolicyDocument":{ + "type":"string", + "max":20480, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]+" + }, + "PolicyName":{ + "type":"string", + "max":32, + "min":3, + "pattern":"^[a-z][a-z0-9-]+$" + }, + "PolicyVersion":{ + "type":"string", + "max":36, + "min":20, + "pattern":"^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$" + }, + "Resource":{"type":"string"}, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Thrown when accessing or deleting a resource that does not exist.

", + "exception":true + }, + "SamlConfigOptions":{ + "type":"structure", + "required":["metadata"], + "members":{ + "groupAttribute":{ + "shape":"samlGroupAttribute", + "documentation":"

The group attribute for this SAML integration.

" + }, + "metadata":{ + "shape":"samlMetadata", + "documentation":"

The XML IdP metadata file generated from your identity provider.

" + }, + "sessionTimeout":{ + "shape":"SamlConfigOptionsSessionTimeoutInteger", + "documentation":"

The session timeout, in minutes. Minimum is 15 minutes and maximum is 1440 minutes (24 hours or 1 day). Default is 60 minutes.

" + }, + "userAttribute":{ + "shape":"samlUserAttribute", + "documentation":"

A user attribute for this SAML integration.

" + } + }, + "documentation":"

Describes SAML options for an OpenSearch Serverless security configuration in the form of a key-value map.

" + }, + "SamlConfigOptionsSessionTimeoutInteger":{ + "type":"integer", + "box":true, + "max":720, + "min":5 + }, + "SearchCapacityValue":{ + "type":"integer", + "box":true, + "min":2 + }, + "SecurityConfigDetail":{ + "type":"structure", + "members":{ + "configVersion":{ + "shape":"PolicyVersion", + "documentation":"

The version of the security configuration.

" + }, + "createdDate":{ + "shape":"Long", + "documentation":"

The date the configuration was created.

" + }, + "description":{ + "shape":"ConfigDescription", + "documentation":"

The description of the security configuration.

" + }, + "id":{ + "shape":"SecurityConfigId", + "documentation":"

The unique identifier of the security configuration.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The timestamp of when the configuration was last modified.

" + }, + "samlOptions":{ + "shape":"SamlConfigOptions", + "documentation":"

SAML options for the security configuration in the form of a key-value map.

" + }, + "type":{ + "shape":"SecurityConfigType", + "documentation":"

The type of security configuration.

" + } + }, + "documentation":"

Details about a security configuration for OpenSearch Serverless.

" + }, + "SecurityConfigId":{ + "type":"string", + "max":100, + "min":1 + }, + "SecurityConfigStats":{ + "type":"structure", + "members":{ + "SamlConfigCount":{ + "shape":"Long", + "documentation":"

The number of security configurations in the current account.

" + } + }, + "documentation":"

Statistics for an OpenSearch Serverless security configuration.

" + }, + "SecurityConfigSummaries":{ + "type":"list", + "member":{"shape":"SecurityConfigSummary"} + }, + "SecurityConfigSummary":{ + "type":"structure", + "members":{ + "configVersion":{ + "shape":"PolicyVersion", + "documentation":"

The version of the security configuration.

" + }, + "createdDate":{ + "shape":"Long", + "documentation":"

The Epoch time when the security configuration was created.

" + }, + "description":{ + "shape":"ConfigDescription", + "documentation":"

The description of the security configuration.

" + }, + "id":{ + "shape":"SecurityConfigId", + "documentation":"

The unique identifier of the security configuration.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The timestamp of when the configuration was last modified.

" + }, + "type":{ + "shape":"SecurityConfigType", + "documentation":"

The type of security configuration.

" + } + }, + "documentation":"

A summary of a security configuration for OpenSearch Serverless.

" + }, + "SecurityConfigType":{ + "type":"string", + "enum":["saml"] + }, + "SecurityGroupId":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\w+\\-]+$" + }, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "max":5, + "min":1 + }, + "SecurityPolicyDetail":{ + "type":"structure", + "members":{ + "createdDate":{ + "shape":"Long", + "documentation":"

The date the policy was created.

" + }, + "description":{ + "shape":"PolicyDescription", + "documentation":"

The description of the security policy.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The timestamp of when the policy was last modified.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the policy.

" + }, + "policy":{ + "shape":"Document", + "documentation":"

The JSON policy document without any whitespaces.

" + }, + "policyVersion":{ + "shape":"PolicyVersion", + "documentation":"

The version of the policy.

" + }, + "type":{ + "shape":"SecurityPolicyType", + "documentation":"

The type of security policy.

" + } + }, + "documentation":"

Details about an OpenSearch Serverless security policy.

" + }, + "SecurityPolicyStats":{ + "type":"structure", + "members":{ + "EncryptionPolicyCount":{ + "shape":"Long", + "documentation":"

The number of encryption policies in the current account.

" + }, + "NetworkPolicyCount":{ + "shape":"Long", + "documentation":"

The number of network policies in the current account.

" + } + }, + "documentation":"

Statistics for an OpenSearch Serverless security policy.

" + }, + "SecurityPolicySummaries":{ + "type":"list", + "member":{"shape":"SecurityPolicySummary"} + }, + "SecurityPolicySummary":{ + "type":"structure", + "members":{ + "createdDate":{ + "shape":"Long", + "documentation":"

The date the policy was created.

" + }, + "description":{ + "shape":"PolicyDescription", + "documentation":"

The description of the security policy.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The timestamp of when the policy was last modified.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the policy.

" + }, + "policyVersion":{ + "shape":"PolicyVersion", + "documentation":"

The version of the policy.

" + }, + "type":{ + "shape":"SecurityPolicyType", + "documentation":"

The type of security policy.

" + } + }, + "documentation":"

A summary of a security policy for OpenSearch Serverless.

" + }, + "SecurityPolicyType":{ + "type":"string", + "enum":[ + "encryption", + "network" + ] + }, + "String":{"type":"string"}, + "SubnetId":{ + "type":"string", + "max":32, + "min":1, + "pattern":"^subnet-([0-9a-f]{8}|[0-9a-f]{17})$" + }, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "max":6, + "min":1 + }, + "Tag":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"TagKey", + "documentation":"

The key to use in the tag.

" + }, + "value":{ + "shape":"TagValue", + "documentation":"

The value of the tag.

" + } + }, + "documentation":"

A map of key-value pairs associated to an OpenSearch Serverless resource.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeys":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource. The resource must be active (not in the DELETING state), and must be owned by the account ID included in the request.

" + }, + "tags":{ + "shape":"Tags", + "documentation":"

A list of tags (key-value pairs) to add to the resource. All tag keys in the request must be unique.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "Tags":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":0 + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource to remove tags from. The resource must be active (not in the DELETING state), and must be owned by the account ID included in the request.

" + }, + "tagKeys":{ + "shape":"TagKeys", + "documentation":"

The tag or set of tags to remove from the resource. All tag keys in the request must be unique.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateAccessPolicyRequest":{ + "type":"structure", + "required":[ + "name", + "policyVersion", + "type" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "description":{ + "shape":"PolicyDescription", + "documentation":"

A description of the policy. Typically used to store information about the permissions defined in the policy.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the policy.

" + }, + "policy":{ + "shape":"PolicyDocument", + "documentation":"

The JSON policy document to use as the content for the policy.

" + }, + "policyVersion":{ + "shape":"PolicyVersion", + "documentation":"

The version of the policy being updated.

" + }, + "type":{ + "shape":"AccessPolicyType", + "documentation":"

The type of policy.

" + } + } + }, + "UpdateAccessPolicyResponse":{ + "type":"structure", + "members":{ + "accessPolicyDetail":{ + "shape":"AccessPolicyDetail", + "documentation":"

Details about the updated access policy.

" + } + } + }, + "UpdateAccountSettingsRequest":{ + "type":"structure", + "members":{ + "capacityLimits":{"shape":"CapacityLimits"} + } + }, + "UpdateAccountSettingsResponse":{ + "type":"structure", + "members":{ + "accountSettingsDetail":{ + "shape":"AccountSettingsDetail", + "documentation":"

OpenSearch Serverless-related settings for the current Amazon Web Services account.

" + } + } + }, + "UpdateCollectionDetail":{ + "type":"structure", + "members":{ + "arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the collection.

" + }, + "createdDate":{ + "shape":"Long", + "documentation":"

The date and time when the collection was created.

" + }, + "description":{ + "shape":"String", + "documentation":"

The description of the collection.

" + }, + "id":{ + "shape":"CollectionId", + "documentation":"

The unique identifier of the collection.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The date and time when the collection was last modified.

" + }, + "name":{ + "shape":"CollectionName", + "documentation":"

The name of the collection.

" + }, + "status":{ + "shape":"CollectionStatus", + "documentation":"

The current status of the collection.

" + }, + "type":{ + "shape":"CollectionType", + "documentation":"

The collection type.

" + } + }, + "documentation":"

Details about an updated OpenSearch Serverless collection.

" + }, + "UpdateCollectionRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "description":{ + "shape":"UpdateCollectionRequestDescriptionString", + "documentation":"

A description of the collection.

" + }, + "id":{ + "shape":"CollectionId", + "documentation":"

The unique identifier of the collection.

" + } + } + }, + "UpdateCollectionRequestDescriptionString":{ + "type":"string", + "max":1000, + "min":0 + }, + "UpdateCollectionResponse":{ + "type":"structure", + "members":{ + "updateCollectionDetail":{ + "shape":"UpdateCollectionDetail", + "documentation":"

Details about the updated collection.

" + } + } + }, + "UpdateSecurityConfigRequest":{ + "type":"structure", + "required":[ + "configVersion", + "id" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "configVersion":{ + "shape":"PolicyVersion", + "documentation":"

The version of the security configuration to be updated. You can find the most recent version of a security configuration using the GetSecurityPolicy command.

" + }, + "description":{ + "shape":"ConfigDescription", + "documentation":"

A description of the security configuration.

" + }, + "id":{ + "shape":"SecurityConfigId", + "documentation":"

The security configuration identifier. For SAML the ID will be saml/<accountId>/<idpProviderName>. For example, saml/123456789123/OKTADev.

" + }, + "samlOptions":{ + "shape":"SamlConfigOptions", + "documentation":"

SAML options in in the form of a key-value map.

" + } + } + }, + "UpdateSecurityConfigResponse":{ + "type":"structure", + "members":{ + "securityConfigDetail":{ + "shape":"SecurityConfigDetail", + "documentation":"

Details about the updated security configuration.

" + } + } + }, + "UpdateSecurityPolicyRequest":{ + "type":"structure", + "required":[ + "name", + "policyVersion", + "type" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "description":{ + "shape":"PolicyDescription", + "documentation":"

A description of the policy. Typically used to store information about the permissions defined in the policy.

" + }, + "name":{ + "shape":"PolicyName", + "documentation":"

The name of the policy.

" + }, + "policy":{ + "shape":"PolicyDocument", + "documentation":"

The JSON policy document to use as the content for the new policy.

" + }, + "policyVersion":{ + "shape":"PolicyVersion", + "documentation":"

The version of the policy being updated.

" + }, + "type":{ + "shape":"SecurityPolicyType", + "documentation":"

The type of access policy.

" + } + } + }, + "UpdateSecurityPolicyResponse":{ + "type":"structure", + "members":{ + "securityPolicyDetail":{ + "shape":"SecurityPolicyDetail", + "documentation":"

Details about the updated security policy.

" + } + } + }, + "UpdateVpcEndpointDetail":{ + "type":"structure", + "members":{ + "id":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "lastModifiedDate":{ + "shape":"Long", + "documentation":"

The timestamp of when the endpoint was last modified.

" + }, + "name":{ + "shape":"VpcEndpointName", + "documentation":"

The name of the endpoint.

" + }, + "securityGroupIds":{ + "shape":"SecurityGroupIds", + "documentation":"

The unique identifiers of the security groups that define the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint.

" + }, + "status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status of the endpoint update process.

" + }, + "subnetIds":{ + "shape":"SubnetIds", + "documentation":"

The ID of the subnets from which you access OpenSearch Serverless.

" + } + }, + "documentation":"

Update details for an OpenSearch Serverless-managed interface endpoint.

" + }, + "UpdateVpcEndpointRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "addSecurityGroupIds":{ + "shape":"SecurityGroupIds", + "documentation":"

The unique identifiers of the security groups to add to the endpoint. Security groups define the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint.

" + }, + "addSubnetIds":{ + "shape":"SubnetIds", + "documentation":"

The ID of one or more subnets to add to the endpoint.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier to ensure idempotency of the request.

", + "idempotencyToken":true + }, + "id":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the interface endpoint to update.

" + }, + "removeSecurityGroupIds":{ + "shape":"SecurityGroupIds", + "documentation":"

The unique identifiers of the security groups to remove from the endpoint.

" + }, + "removeSubnetIds":{ + "shape":"SubnetIds", + "documentation":"

The unique identifiers of the subnets to remove from the endpoint.

" + } + } + }, + "UpdateVpcEndpointResponse":{ + "type":"structure", + "members":{ + "UpdateVpcEndpointDetail":{ + "shape":"UpdateVpcEndpointDetail", + "documentation":"

Details about the updated VPC endpoint.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Thrown when the HTTP request contains invalid input or is missing required input.

", + "exception":true + }, + "VpcEndpointDetail":{ + "type":"structure", + "members":{ + "createdDate":{ + "shape":"Long", + "documentation":"

The date the endpoint was created.

" + }, + "id":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "name":{ + "shape":"VpcEndpointName", + "documentation":"

The name of the endpoint.

" + }, + "securityGroupIds":{ + "shape":"SecurityGroupIds", + "documentation":"

The unique identifiers of the security groups that define the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint.

" + }, + "status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status of the endpoint.

" + }, + "subnetIds":{ + "shape":"SubnetIds", + "documentation":"

The ID of the subnets from which you access OpenSearch Serverless.

" + }, + "vpcId":{ + "shape":"VpcId", + "documentation":"

The ID of the VPC from which you access OpenSearch Serverless

" + } + }, + "documentation":"

Details about an OpenSearch Serverless-managed interface endpoint.

" + }, + "VpcEndpointDetails":{ + "type":"list", + "member":{"shape":"VpcEndpointDetail"} + }, + "VpcEndpointErrorDetail":{ + "type":"structure", + "members":{ + "errorCode":{ + "shape":"String", + "documentation":"

The error code for the failed request.

" + }, + "errorMessage":{ + "shape":"String", + "documentation":"

An error message describing the reason for the failure.

" + }, + "id":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the VPC endpoint.

" + } + }, + "documentation":"

Error information for a failed BatchGetVpcEndpoint request.

" + }, + "VpcEndpointErrorDetails":{ + "type":"list", + "member":{"shape":"VpcEndpointErrorDetail"} + }, + "VpcEndpointFilters":{ + "type":"structure", + "members":{ + "status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status of the endpoint.

" + } + }, + "documentation":"

Filter the results of a ListVpcEndpoints request.

" + }, + "VpcEndpointId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^vpce-[0-9a-z]*$" + }, + "VpcEndpointIds":{ + "type":"list", + "member":{"shape":"VpcEndpointId"}, + "min":1 + }, + "VpcEndpointName":{ + "type":"string", + "max":32, + "min":3, + "pattern":"^[a-z][a-z0-9-]+$" + }, + "VpcEndpointStatus":{ + "type":"string", + "enum":[ + "PENDING", + "DELETING", + "ACTIVE", + "FAILED" + ] + }, + "VpcEndpointSummaries":{ + "type":"list", + "member":{"shape":"VpcEndpointSummary"} + }, + "VpcEndpointSummary":{ + "type":"structure", + "members":{ + "id":{ + "shape":"VpcEndpointId", + "documentation":"

The unique identifier of the endpoint.

" + }, + "name":{ + "shape":"VpcEndpointName", + "documentation":"

The name of the endpoint.

" + }, + "status":{ + "shape":"VpcEndpointStatus", + "documentation":"

The current status of the endpoint.

" + } + }, + "documentation":"

The VPC endpoint object.

" + }, + "VpcId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^vpc-[0-9a-z]*$" + }, + "samlGroupAttribute":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[\\w+=,.@-]+" + }, + "samlMetadata":{ + "type":"string", + "max":20480, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A1-\\u00FF]+" + }, + "samlUserAttribute":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[\\w+=,.@-]+" + } + }, + "documentation":"

Use the Amazon OpenSearch Serverless API to create, configure, and manage OpenSearch Serverless collections and security policies.

OpenSearch Serverless is an on-demand, pre-provisioned serverless configuration for Amazon OpenSearch Service. OpenSearch Serverless removes the operational complexities of provisioning, configuring, and tuning your OpenSearch clusters. It enables you to easily search and analyze petabytes of data without having to worry about the underlying infrastructure and data management.

To learn more about OpenSearch Serverless, see What is Amazon OpenSearch Serverless?

" +} diff --git a/botocore/data/opsworks/2013-02-18/endpoint-rule-set-1.json b/botocore/data/opsworks/2013-02-18/endpoint-rule-set-1.json new file mode 100644 index 00000000..05df1b3e --- /dev/null +++ b/botocore/data/opsworks/2013-02-18/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://opsworks-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://opsworks-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://opsworks.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://opsworks.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/opsworkscm/2016-11-01/endpoint-rule-set-1.json b/botocore/data/opsworkscm/2016-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..eb5f87be --- /dev/null +++ b/botocore/data/opsworkscm/2016-11-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://opsworks-cm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://opsworks-cm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://opsworks-cm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://opsworks-cm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/organizations/2016-11-28/endpoint-rule-set-1.json b/botocore/data/organizations/2016-11-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..16108abb --- /dev/null +++ b/botocore/data/organizations/2016-11-28/endpoint-rule-set-1.json @@ -0,0 +1,1169 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://organizations.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://organizations.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://organizations.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://organizations-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://organizations.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://organizations-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://organizations.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://organizations.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://organizations.cn-northwest-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://organizations.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "organizations" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://organizations.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/organizations/2016-11-28/service-2.json b/botocore/data/organizations/2016-11-28/service-2.json index a3fa4050..3340840d 100644 --- a/botocore/data/organizations/2016-11-28/service-2.json +++ b/botocore/data/organizations/2016-11-28/service-2.json @@ -34,7 +34,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"AccessDeniedForDependencyException"} ], - "documentation":"

Sends a response to the originator of a handshake agreeing to the action proposed by the handshake request.

This operation can be called only by the following principals when they also have the relevant IAM permissions:

  • Invitation to join or Approve all features request handshakes: only a principal from the member account.

    The user who calls the API for an invitation to join must have the organizations:AcceptHandshake permission. If you enabled all features in the organization, the user must also have the iam:CreateServiceLinkedRole permission so that Organizations can create the required service-linked role named AWSServiceRoleForOrganizations. For more information, see Organizations and Service-Linked Roles in the Organizations User Guide.

  • Enable all features final confirmation handshake: only a principal from the management account.

    For more information about invitations, see Inviting an Amazon Web Services account to join your organization in the Organizations User Guide. For more information about requests to enable all features in the organization, see Enabling all features in your organization in the Organizations User Guide.

After you accept a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that, it's deleted.

" + "documentation":"

Sends a response to the originator of a handshake agreeing to the action proposed by the handshake request.

You can only call this operation by the following principals when they also have the relevant IAM permissions:

  • Invitation to join or Approve all features request handshakes: only a principal from the member account.

    The user who calls the API for an invitation to join must have the organizations:AcceptHandshake permission. If you enabled all features in the organization, the user must also have the iam:CreateServiceLinkedRole permission so that Organizations can create the required service-linked role named AWSServiceRoleForOrganizations. For more information, see Organizations and Service-Linked Roles in the Organizations User Guide.

  • Enable all features final confirmation handshake: only a principal from the management account.

    For more information about invitations, see Inviting an Amazon Web Services account to join your organization in the Organizations User Guide. For more information about requests to enable all features in the organization, see Enabling all features in your organization in the Organizations User Guide.

After you accept a handshake, it continues to appear in the results of relevant APIs for only 30 days. After that, it's deleted.

" }, "AttachPolicy":{ "name":"AttachPolicy", @@ -121,7 +121,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"UnsupportedAPIEndpointException"} ], - "documentation":"

Creates an Amazon Web Services account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that Amazon Web Services performs in the background. Because CreateAccount operates asynchronously, it can return a successful completion message even though account initialization might still be in progress. You might need to wait a few minutes before you can successfully access the account. To check the status of the request, do one of the following:

  • Use the Id member of the CreateAccountStatus response element from this operation to provide as a parameter to the DescribeCreateAccountStatus operation.

  • Check the CloudTrail log for the CreateAccountResult event. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

The user who calls the API to create an account must have the organizations:CreateAccount permission. If you enabled all features in the organization, Organizations creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see Organizations and Service-Linked Roles in the Organizations User Guide.

If the request includes tags, then the requester must have the organizations:TagResource permission.

Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants users in the management account administrator permissions in the new member account. Principals in the management account can assume the role. Organizations clones the company name and address information for the new account from the organization's management account.

This operation can be called only from the organization's management account.

For more information about creating accounts, see Creating an Amazon Web Services account in Your Organization in the Organizations User Guide.

  • When you create an account in an organization using the Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account, such as a payment method and signing the end user license agreement (EULA) is not automatically collected. If you must remove an account from your organization later, you can do so only after you provide the missing information. Follow the steps at To leave an organization as a member account in the Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact Amazon Web Services Support.

  • If you get an exception that indicates that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists, contact Amazon Web Services Support.

  • Using CreateAccount to create multiple temporary accounts isn't recommended. You can only close an account from the Billing and Cost Management console, and you must be signed in as the root user. For information on the requirements and process for closing an account, see Closing an Amazon Web Services account in the Organizations User Guide.

When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable it, only the account root user can access billing information. For information about how to disable this switch for an account, see Granting Access to Your Billing Information and Tools.

" + "documentation":"

Creates an Amazon Web Services account that is automatically a member of the organization whose credentials made the request. This is an asynchronous request that Amazon Web Services performs in the background. Because CreateAccount operates asynchronously, it can return a successful completion message even though account initialization might still be in progress. You might need to wait a few minutes before you can successfully access the account. To check the status of the request, do one of the following:

  • Use the Id value of the CreateAccountStatus response element from this operation to provide as a parameter to the DescribeCreateAccountStatus operation.

  • Check the CloudTrail log for the CreateAccountResult event. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.

The user who calls the API to create an account must have the organizations:CreateAccount permission. If you enabled all features in the organization, Organizations creates the required service-linked role named AWSServiceRoleForOrganizations. For more information, see Organizations and Service-Linked Roles in the Organizations User Guide.

If the request includes tags, then the requester must have the organizations:TagResource permission.

Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole by default) that grants users in the management account administrator permissions in the new member account. Principals in the management account can assume the role. Organizations clones the company name and address information for the new account from the organization's management account.

This operation can be called only from the organization's management account.

For more information about creating accounts, see Creating an Amazon Web Services account in Your Organization in the Organizations User Guide.

  • When you create an account in an organization using the Organizations console, API, or CLI commands, the information required for the account to operate as a standalone account, such as a payment method and signing the end user license agreement (EULA) is not automatically collected. If you must remove an account from your organization later, you can do so only after you provide the missing information. Follow the steps at To leave an organization as a member account in the Organizations User Guide.

  • If you get an exception that indicates that you exceeded your account limits for the organization, contact Amazon Web Services Support.

  • If you get an exception that indicates that the operation failed because your organization is still initializing, wait one hour and then try again. If the error persists, contact Amazon Web Services Support.

  • Using CreateAccount to create multiple temporary accounts isn't recommended. You can only close an account from the Billing and Cost Management console, and you must be signed in as the root user. For information on the requirements and process for closing an account, see Closing an Amazon Web Services account in the Organizations User Guide.

When you create a member account with this operation, you can choose whether to create the account with the IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that have appropriate permissions can view billing information for the account. If you disable it, only the account root user can access billing information. For information about how to disable this switch for an account, see Granting Access to Your Billing Information and Tools.

" }, "CreateGovCloudAccount":{ "name":"CreateGovCloudAccount", @@ -284,6 +284,24 @@ ], "documentation":"

Deletes the specified policy from your organization. Before you perform this operation, you must first detach the policy from all organizational units (OUs), roots, and accounts.

This operation can be called only from the organization's management account.

" }, + "DeleteResourcePolicy":{ + "name":"DeleteResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ServiceException"}, + {"shape":"UnsupportedAPIEndpointException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"ConstraintViolationException"}, + {"shape":"AWSOrganizationsNotInUseException"}, + {"shape":"ResourcePolicyNotFoundException"} + ], + "documentation":"

Deletes the resource policy from your organization.

You can only call this operation from the organization's management account.

" + }, "DeregisterDelegatedAdministrator":{ "name":"DeregisterDelegatedAdministrator", "http":{ @@ -434,6 +452,24 @@ ], "documentation":"

Retrieves information about a policy.

This operation can be called only from the organization's management account or by a member account that is a delegated administrator for an Amazon Web Services service.

" }, + "DescribeResourcePolicy":{ + "name":"DescribeResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "output":{"shape":"DescribeResourcePolicyResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ServiceException"}, + {"shape":"UnsupportedAPIEndpointException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"AWSOrganizationsNotInUseException"}, + {"shape":"ResourcePolicyNotFoundException"}, + {"shape":"ConstraintViolationException"} + ], + "documentation":"

Retrieves information about a resource policy.

You can only call this operation from the organization's management account or by a member account that is a delegated administrator for an AWS service.

" + }, "DetachPolicy":{ "name":"DetachPolicy", "http":{ @@ -516,7 +552,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"UnsupportedAPIEndpointException"} ], - "documentation":"

Enables the integration of an Amazon Web Services service (the service that is specified by ServicePrincipal) with Organizations. When you enable integration, you allow the specified service to create a service-linked role in all the accounts in your organization. This allows the service to perform operations on your behalf in your organization and its accounts.

We recommend that you enable integration between Organizations and the specified Amazon Web Services service by using the console or commands that are provided by the specified service. Doing so ensures that the service is aware that it can create the resources that are required for the integration. How the service creates those resources in the organization's accounts depends on that service. For more information, see the documentation for the other Amazon Web Services service.

For more information about enabling services to integrate with Organizations, see Integrating Organizations with Other Amazon Web Services Services in the Organizations User Guide.

This operation can be called only from the organization's management account and only if the organization has enabled all features.

" + "documentation":"

Enables the integration of an Amazon Web Services service (the service that is specified by ServicePrincipal) with Organizations. When you enable integration, you allow the specified service to create a service-linked role in all the accounts in your organization. This allows the service to perform operations on your behalf in your organization and its accounts.

We recommend that you enable integration between Organizations and the specified Amazon Web Services service by using the console or commands that are provided by the specified service. Doing so ensures that the service is aware that it can create the resources that are required for the integration. How the service creates those resources in the organization's accounts depends on that service. For more information, see the documentation for the other Amazon Web Services service.

For more information about enabling services to integrate with Organizations, see Integrating Organizations with Other Amazon Web Services Services in the Organizations User Guide.

You can only call this operation from the organization's management account and only if the organization has enabled all features.

" }, "EnableAllFeatures":{ "name":"EnableAllFeatures", @@ -916,6 +952,26 @@ ], "documentation":"

Moves an account from its current source parent root or organizational unit (OU) to the specified destination parent root or OU.

This operation can be called only from the organization's management account.

" }, + "PutResourcePolicy":{ + "name":"PutResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutResourcePolicyRequest"}, + "output":{"shape":"PutResourcePolicyResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ServiceException"}, + {"shape":"UnsupportedAPIEndpointException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InvalidInputException"}, + {"shape":"ConstraintViolationException"}, + {"shape":"AWSOrganizationsNotInUseException"} + ], + "documentation":"

Creates or updates a resource policy.

You can only call this operation from the organization's management account.

" + }, "RegisterDelegatedAdministrator":{ "name":"RegisterDelegatedAdministrator", "http":{ @@ -1379,7 +1435,8 @@ "INVALID_IDENTITY_FOR_BUSINESS_VALIDATION", "UNKNOWN_BUSINESS_VALIDATION", "MISSING_PAYMENT_INSTRUMENT", - "INVALID_PAYMENT_INSTRUMENT" + "INVALID_PAYMENT_INSTRUMENT", + "UPDATE_EXISTING_RESOURCE_POLICY_WITH_TAGS_NOT_SUPPORTED" ] }, "CreateAccountName":{ @@ -1406,7 +1463,7 @@ }, "RoleName":{ "shape":"RoleName", - "documentation":"

(Optional)

The name of an IAM role that Organizations automatically preconfigures in the new member account. This role trusts the management account, allowing users in the management account to assume the role, as permitted by the management account administrator. The role has administrator permissions in the new member account.

If you don't specify this parameter, the role name defaults to OrganizationAccountAccessRole.

For more information about how to use this role to access the member account, see the following links:

The regex pattern that is used to validate this parameter. The pattern can include uppercase letters, lowercase letters, digits with no spaces, and any of the following characters: =,.@-

" + "documentation":"

The name of an IAM role that Organizations automatically preconfigures in the new member account. This role trusts the management account, allowing users in the management account to assume the role, as permitted by the management account administrator. The role has administrator permissions in the new member account.

If you don't specify this parameter, the role name defaults to OrganizationAccountAccessRole.

For more information about how to use this role to access the member account, see the following links:

The regex pattern that is used to validate this parameter. The pattern can include uppercase letters, lowercase letters, digits with no spaces, and any of the following characters: =,.@-

" }, "IamUserAccessToBilling":{ "shape":"IAMUserAccessToBilling", @@ -1860,6 +1917,15 @@ } } }, + "DescribeResourcePolicyResponse":{ + "type":"structure", + "members":{ + "ResourcePolicy":{ + "shape":"ResourcePolicy", + "documentation":"

A structure that contains details about the resource policy.

" + } + } + }, "DestinationParentNotFoundException":{ "type":"structure", "members":{ @@ -2336,7 +2402,11 @@ "INVALID_SYSTEM_TAGS_PARAMETER", "DUPLICATE_TAG_KEY", "TARGET_NOT_SUPPORTED", - "INVALID_EMAIL_ADDRESS_TARGET" + "INVALID_EMAIL_ADDRESS_TARGET", + "INVALID_RESOURCE_POLICY_JSON", + "UNSUPPORTED_ACTION_IN_RESOURCE_POLICY", + "UNSUPPORTED_POLICY_TYPE_IN_RESOURCE_POLICY", + "UNSUPPORTED_RESOURCE_IN_RESOURCE_POLICY" ] }, "InviteAccountToOrganizationRequest":{ @@ -3246,6 +3316,29 @@ "type":"list", "member":{"shape":"PolicyTypeSummary"} }, + "PutResourcePolicyRequest":{ + "type":"structure", + "required":["Content"], + "members":{ + "Content":{ + "shape":"ResourcePolicyContent", + "documentation":"

If provided, the new content for the resource policy. The text must be correctly formatted JSON that complies with the syntax for the resource policy's type. For more information, see Service Control Policy Syntax in the Organizations User Guide.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Updates the list of tags that you want to attach to the newly-created resource policy. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. For more information about tagging, see Tagging Organizations resources in the Organizations User Guide.

Calls with tags apply to the initial creation of the resource policy, otherwise an exception is thrown. If any one of the tags is invalid or if you exceed the allowed number of tags for the resource policy, then the entire request fails and the resource policy is not created.

" + } + } + }, + "PutResourcePolicyResponse":{ + "type":"structure", + "members":{ + "ResourcePolicy":{ + "shape":"ResourcePolicy", + "documentation":"

A structure that contains details about the resource policy.

" + } + } + }, "RegisterDelegatedAdministratorRequest":{ "type":"structure", "required":[ @@ -3273,6 +3366,57 @@ } } }, + "ResourcePolicy":{ + "type":"structure", + "members":{ + "ResourcePolicySummary":{ + "shape":"ResourcePolicySummary", + "documentation":"

A structure that contains resource policy ID and Amazon Resource Name (ARN).

" + }, + "Content":{ + "shape":"ResourcePolicyContent", + "documentation":"

The policy text of the resource policy.

" + } + }, + "documentation":"

A structure that contains details about a resource policy.

" + }, + "ResourcePolicyArn":{ + "type":"string", + "pattern":"^arn:[a-z0-9][a-z0-9-.]{0,62}:organizations::\\d{12}:resourcepolicy\\/o-[a-z0-9]{10,32}\\/rp-[0-9a-zA-Z_]{4,128}" + }, + "ResourcePolicyContent":{ + "type":"string", + "max":40000, + "min":1, + "pattern":"[\\s\\S]*" + }, + "ResourcePolicyId":{ + "type":"string", + "max":131, + "pattern":"^rp-[0-9a-zA-Z_]{4,128}$" + }, + "ResourcePolicyNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ExceptionMessage"} + }, + "documentation":"

We can't find a resource policy request with the parameter that you specified.

", + "exception":true + }, + "ResourcePolicySummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ResourcePolicyId", + "documentation":"

The unique identifier (ID) of the resource policy.

" + }, + "Arn":{ + "shape":"ResourcePolicyArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource policy.

" + } + }, + "documentation":"

A structure that contains resource policy ID and Amazon Resource Name (ARN).

" + }, "RoleName":{ "type":"string", "max":64, @@ -3402,7 +3546,7 @@ "TaggableResourceId":{ "type":"string", "max":130, - "pattern":"^(r-[0-9a-z]{4,32})|(\\d{12})|(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})|(^p-[0-9a-zA-Z_]{8,128})$" + "pattern":"^(r-[0-9a-z]{4,32})|(\\d{12})|(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})|(^p-[0-9a-zA-Z_]{8,128})|(^rp-[0-9a-zA-Z_]{4,128})$" }, "Tags":{ "type":"list", diff --git a/botocore/data/outposts/2019-12-03/endpoint-rule-set-1.json b/botocore/data/outposts/2019-12-03/endpoint-rule-set-1.json new file mode 100644 index 00000000..8d8daf21 --- /dev/null +++ b/botocore/data/outposts/2019-12-03/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://outposts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://outposts-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://outposts.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://outposts.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/outposts/2019-12-03/examples-1.json b/botocore/data/outposts/2019-12-03/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/outposts/2019-12-03/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/outposts/2019-12-03/service-2.json b/botocore/data/outposts/2019-12-03/service-2.json index 5598000e..2512bc3a 100644 --- a/botocore/data/outposts/2019-12-03/service-2.json +++ b/botocore/data/outposts/2019-12-03/service-2.json @@ -28,7 +28,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Cancels an order for an Outpost.

" + "documentation":"

Cancels the specified order for an Outpost.

" }, "CreateOrder":{ "name":"CreateOrder", @@ -64,7 +64,7 @@ {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"} ], - "documentation":"

Creates an Outpost.

You can specify AvailabilityZone or AvailabilityZoneId.

" + "documentation":"

Creates an Outpost.

You can specify either an Availability one or an AZ ID.

" }, "CreateSite":{ "name":"CreateSite", @@ -98,7 +98,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Deletes the Outpost.

" + "documentation":"

Deletes the specified Outpost.

" }, "DeleteSite":{ "name":"DeleteSite", @@ -115,7 +115,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Deletes the site.

" + "documentation":"

Deletes the specified site.

" }, "GetCatalogItem":{ "name":"GetCatalogItem", @@ -130,7 +130,23 @@ {"shape":"NotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Gets information about a catalog item.

" + "documentation":"

Gets information about the specified catalog item.

" + }, + "GetConnection":{ + "name":"GetConnection", + "http":{ + "method":"GET", + "requestUri":"/connections/{ConnectionId}" + }, + "input":{"shape":"GetConnectionRequest"}, + "output":{"shape":"GetConnectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Amazon Web Services uses this action to install Outpost servers.

Gets information about the specified connection.

Use CloudTrail to monitor this action or Amazon Web Services managed policy for Amazon Web Services Outposts to secure it. For more information, see Amazon Web Services managed policies for Amazon Web Services Outposts and Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail in the Amazon Web Services Outposts User Guide.

" }, "GetOrder":{ "name":"GetOrder", @@ -145,7 +161,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Gets an order.

" + "documentation":"

Gets information about the specified order.

" }, "GetOutpost":{ "name":"GetOutpost", @@ -193,7 +209,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Gets information about the specified Outpost site.

" + "documentation":"

Gets information about the specified Outpost site.

" }, "GetSiteAddress":{ "name":"GetSiteAddress", @@ -209,7 +225,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Gets the site address.

" + "documentation":"

Gets the site address of the specified site.

" }, "ListAssets":{ "name":"ListAssets", @@ -225,7 +241,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists the hardware assets in an Outpost. If you are using Dedicated Hosts on Amazon Web Services Outposts, you can filter your request by host ID to return a list of hardware assets that allocate resources for Dedicated Hosts.

" + "documentation":"

Lists the hardware assets for the specified Outpost.

Use filters to return specific results. If you specify multiple filters, the results include only the resources that match all of the specified filters. For a filter where you can specify multiple values, the results include items that match any of the values that you specify for the filter.

" }, "ListCatalogItems":{ "name":"ListCatalogItems", @@ -240,7 +256,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists the items in the catalog. Add filters to your request to return a more specific list of results. Use filters to match an item class, storage option, or EC2 family.

If you specify multiple filters, the filters are joined with an AND, and the request returns only results that match all of the specified filters.

" + "documentation":"

Lists the items in the catalog.

Use filters to return specific results. If you specify multiple filters, the results include only the resources that match all of the specified filters. For a filter where you can specify multiple values, the results include items that match any of the values that you specify for the filter.

" }, "ListOrders":{ "name":"ListOrders", @@ -256,7 +272,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists the Outpost orders for your Amazon Web Services account. You can filter your request by Outpost to return a more specific list of results.

" + "documentation":"

Lists the Outpost orders for your Amazon Web Services account.

" }, "ListOutposts":{ "name":"ListOutposts", @@ -271,7 +287,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists the Outposts for your Amazon Web Services account. Add filters to your request to return a more specific list of results. Use filters to match an Outpost lifecycle status, Availability Zone (us-east-1a), and AZ ID (use1-az1).

If you specify multiple filters, the filters are joined with an AND, and the request returns only results that match all of the specified filters.

" + "documentation":"

Lists the Outposts for your Amazon Web Services account.

Use filters to return specific results. If you specify multiple filters, the results include only the resources that match all of the specified filters. For a filter where you can specify multiple values, the results include items that match any of the values that you specify for the filter.

" }, "ListSites":{ "name":"ListSites", @@ -286,7 +302,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists the Outpost sites for your Amazon Web Services account. Add operating address filters to your request to return a more specific list of results. Use filters to match site city, country code, or state/region of the operating address.

If you specify multiple filters, the filters are joined with an AND, and the request returns only results that match all of the specified filters.

" + "documentation":"

Lists the Outpost sites for your Amazon Web Services account. Use filters to return specific results.

Use filters to return specific results. If you specify multiple filters, the results include only the resources that match all of the specified filters. For a filter where you can specify multiple values, the results include items that match any of the values that you specify for the filter.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -303,6 +319,22 @@ ], "documentation":"

Lists the tags for the specified resource.

" }, + "StartConnection":{ + "name":"StartConnection", + "http":{ + "method":"POST", + "requestUri":"/connections" + }, + "input":{"shape":"StartConnectionRequest"}, + "output":{"shape":"StartConnectionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"NotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Amazon Web Services uses this action to install Outpost servers.

Starts the connection required for Outpost server installation.

Use CloudTrail to monitor this action or Amazon Web Services managed policy for Amazon Web Services Outposts to secure it. For more information, see Amazon Web Services managed policies for Amazon Web Services Outposts and Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail in the Amazon Web Services Outposts User Guide.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -365,7 +397,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"} ], - "documentation":"

Updates the site.

" + "documentation":"

Updates the specified site.

" }, "UpdateSiteAddress":{ "name":"UpdateSiteAddress", @@ -382,7 +414,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Updates the site address.

To update a site address with an order IN_PROGRESS, you must wait for the order to complete or cancel the order.

You can update the operating address before you place an order at the site, or after all Outposts that belong to the site have been deactivated.

" + "documentation":"

Updates the address of the specified site.

You can't update a site address if there is an order in progress. You must wait for the order to complete or cancel the order.

You can update the operating address before you place an order at the site, or after all Outposts that belong to the site have been deactivated.

" }, "UpdateSiteRackPhysicalProperties":{ "name":"UpdateSiteRackPhysicalProperties", @@ -530,6 +562,10 @@ "ComputeAttributes":{ "shape":"ComputeAttributes", "documentation":"

Information about compute hardware assets.

" + }, + "AssetLocation":{ + "shape":"AssetLocation", + "documentation":"

The position of an asset in a rack.

" } }, "documentation":"

Information about hardware assets.

" @@ -538,6 +574,23 @@ "type":"list", "member":{"shape":"AssetInfo"} }, + "AssetLocation":{ + "type":"structure", + "members":{ + "RackElevation":{ + "shape":"RackElevation", + "documentation":"

The position of an asset in a rack measured in rack units.

" + } + }, + "documentation":"

Information about the position of the asset in a rack.

" + }, + "AssetState":{ + "type":"string", + "enum":[ + "ACTIVE", + "RETIRING" + ] + }, "AssetType":{ "type":"string", "enum":["COMPUTE"] @@ -568,13 +621,23 @@ "max":5, "min":1 }, + "CIDR":{ + "type":"string", + "max":18, + "min":9, + "pattern":"^([0-9]{1,3}\\.){3}[0-9]{1,3}/[0-9]{1,2}$" + }, + "CIDRList":{ + "type":"list", + "member":{"shape":"CIDR"} + }, "CancelOrderInput":{ "type":"structure", "required":["OrderId"], "members":{ "OrderId":{ "shape":"OrderId", - "documentation":"

The ID of the order to cancel.

", + "documentation":"

The ID of the order.

", "location":"uri", "locationName":"OrderId" } @@ -659,12 +722,24 @@ "type":"list", "member":{"shape":"City"} }, + "ComputeAssetState":{ + "type":"string", + "enum":[ + "ACTIVE", + "ISOLATED", + "RETIRING" + ] + }, "ComputeAttributes":{ "type":"structure", "members":{ "HostId":{ "shape":"HostId", - "documentation":"

The host ID of any Dedicated Hosts on the asset.

" + "documentation":"

The host ID of the Dedicated Host on the asset.

" + }, + "State":{ + "shape":"ComputeAssetState", + "documentation":"

The state.

  • ACTIVE - The asset is available and can provide capacity for new compute resources.

  • ISOLATED - The asset is undergoing maintenance and can't provide capacity for new compute resources. Existing compute resources on the asset are not affected.

  • RETIRING - The underlying hardware for the asset is degraded. Capacity for new compute resources is reduced. Amazon Web Services sends notifications for resources that must be stopped before the asset can be replaced.

" } }, "documentation":"

Information about compute hardware assets.

" @@ -686,6 +761,42 @@ "error":{"httpStatusCode":409}, "exception":true }, + "ConnectionDetails":{ + "type":"structure", + "members":{ + "ClientPublicKey":{ + "shape":"WireGuardPublicKey", + "documentation":"

The public key of the client.

" + }, + "ServerPublicKey":{ + "shape":"WireGuardPublicKey", + "documentation":"

The public key of the server.

" + }, + "ServerEndpoint":{ + "shape":"ServerEndpoint", + "documentation":"

The endpoint for the server.

" + }, + "ClientTunnelAddress":{ + "shape":"CIDR", + "documentation":"

The client tunnel address.

" + }, + "ServerTunnelAddress":{ + "shape":"CIDR", + "documentation":"

The server tunnel address.

" + }, + "AllowedIps":{ + "shape":"CIDRList", + "documentation":"

The allowed IP addresses.

" + } + }, + "documentation":"

Information about a connection.

" + }, + "ConnectionId":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^[a-zA-Z0-9+/=]{1,1024}$" + }, "ContactName":{ "type":"string", "max":255, @@ -726,11 +837,11 @@ }, "PaymentOption":{ "shape":"PaymentOption", - "documentation":"

The payment option for the order.

" + "documentation":"

The payment option.

" }, "PaymentTerm":{ "shape":"PaymentTerm", - "documentation":"

The payment terms for the order.

" + "documentation":"

The payment terms.

" } } }, @@ -754,7 +865,7 @@ "Description":{"shape":"OutpostDescription"}, "SiteId":{ "shape":"SiteId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

" + "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

" }, "AvailabilityZone":{"shape":"AvailabilityZone"}, "AvailabilityZoneId":{"shape":"AvailabilityZoneId"}, @@ -814,7 +925,7 @@ "members":{ "OutpostId":{ "shape":"OutpostId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the Outpost.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the Outpost.

", "location":"uri", "locationName":"OutpostId" } @@ -831,7 +942,7 @@ "members":{ "SiteId":{ "shape":"SiteId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

", "location":"uri", "locationName":"SiteId" } @@ -842,6 +953,12 @@ "members":{ } }, + "DeviceSerialNumber":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^(\\w+)$" + }, "DistrictOrCounty":{ "type":"string", "max":60, @@ -914,6 +1031,31 @@ } } }, + "GetConnectionRequest":{ + "type":"structure", + "required":["ConnectionId"], + "members":{ + "ConnectionId":{ + "shape":"ConnectionId", + "documentation":"

The ID of the connection.

", + "location":"uri", + "locationName":"ConnectionId" + } + } + }, + "GetConnectionResponse":{ + "type":"structure", + "members":{ + "ConnectionId":{ + "shape":"ConnectionId", + "documentation":"

The ID of the connection.

" + }, + "ConnectionDetails":{ + "shape":"ConnectionDetails", + "documentation":"

Information about the connection.

" + } + } + }, "GetOrderInput":{ "type":"structure", "required":["OrderId"], @@ -938,7 +1080,7 @@ "members":{ "OutpostId":{ "shape":"OutpostId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the Outpost.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the Outpost.

", "location":"uri", "locationName":"OutpostId" } @@ -950,7 +1092,7 @@ "members":{ "OutpostId":{ "shape":"OutpostId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the Outpost.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the Outpost.

", "location":"uri", "locationName":"OutpostId" }, @@ -973,7 +1115,7 @@ "NextToken":{"shape":"Token"}, "OutpostId":{ "shape":"OutpostId", - "documentation":"

The ID of the Outpost.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

" + "documentation":"

The ID of the Outpost.

" }, "OutpostArn":{"shape":"OutpostArn"} } @@ -993,13 +1135,13 @@ "members":{ "SiteId":{ "shape":"SiteId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

", "location":"uri", "locationName":"SiteId" }, "AddressType":{ "shape":"AddressType", - "documentation":"

The type of the address you request.

", + "documentation":"

The type of the address you request.

", "location":"querystring", "locationName":"AddressType" } @@ -1011,7 +1153,7 @@ "SiteId":{"shape":"SiteId"}, "AddressType":{ "shape":"AddressType", - "documentation":"

The type of the address you receive.

" + "documentation":"

The type of the address you receive.

" }, "Address":{ "shape":"Address", @@ -1025,7 +1167,7 @@ "members":{ "SiteId":{ "shape":"SiteId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

", "location":"uri", "locationName":"SiteId" } @@ -1104,10 +1246,36 @@ "Status":{ "shape":"LineItemStatus", "documentation":"

The status of the line item.

" + }, + "ShipmentInformation":{ + "shape":"ShipmentInformation", + "documentation":"

Information about a line item shipment.

" + }, + "AssetInformationList":{ + "shape":"LineItemAssetInformationList", + "documentation":"

Information about assets.

" } }, "documentation":"

Information about a line item.

" }, + "LineItemAssetInformation":{ + "type":"structure", + "members":{ + "AssetId":{ + "shape":"AssetId", + "documentation":"

The ID of the asset.

" + }, + "MacAddressList":{ + "shape":"MacAddressList", + "documentation":"

The MAC addresses of the asset.

" + } + }, + "documentation":"

Information about a line item asset.

" + }, + "LineItemAssetInformationList":{ + "type":"list", + "member":{"shape":"LineItemAssetInformation"} + }, "LineItemId":{ "type":"string", "pattern":"ooi-[a-f0-9]{17}" @@ -1171,7 +1339,7 @@ }, "HostIdFilter":{ "shape":"HostIdList", - "documentation":"

A filter for the host ID of Dedicated Hosts on the Outpost.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by the host ID of a Dedicated Host.

", "location":"querystring", "locationName":"HostIdFilter" }, @@ -1184,6 +1352,12 @@ "shape":"Token", "location":"querystring", "locationName":"NextToken" + }, + "StatusFilter":{ + "shape":"StatusList", + "documentation":"

Filters the results by state.

", + "location":"querystring", + "locationName":"StatusFilter" } } }, @@ -1192,7 +1366,7 @@ "members":{ "Assets":{ "shape":"AssetListDefinition", - "documentation":"

Information about hardware assets.

" + "documentation":"

Information about the hardware assets.

" }, "NextToken":{"shape":"Token"} } @@ -1212,19 +1386,19 @@ }, "ItemClassFilter":{ "shape":"CatalogItemClassList", - "documentation":"

A filter for the class of items in the catalog.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by item class.

", "location":"querystring", "locationName":"ItemClassFilter" }, "SupportedStorageFilter":{ "shape":"SupportedStorageList", - "documentation":"

A filter for the storage options of items in the catalog.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by storage option.

", "location":"querystring", "locationName":"SupportedStorageFilter" }, "EC2FamilyFilter":{ "shape":"EC2FamilyList", - "documentation":"

A filter for EC2 family options for items in the catalog.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by EC2 family (for example, M5).

", "location":"querystring", "locationName":"EC2FamilyFilter" } @@ -1286,19 +1460,19 @@ }, "LifeCycleStatusFilter":{ "shape":"LifeCycleStatusList", - "documentation":"

A filter for the lifecycle status of the Outpost.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by the lifecycle status.

", "location":"querystring", "locationName":"LifeCycleStatusFilter" }, "AvailabilityZoneFilter":{ "shape":"AvailabilityZoneList", - "documentation":"

A filter for the Availability Zone (us-east-1a) of the Outpost.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by Availability Zone (for example, us-east-1a).

", "location":"querystring", "locationName":"AvailabilityZoneFilter" }, "AvailabilityZoneIdFilter":{ "shape":"AvailabilityZoneIdList", - "documentation":"

A filter for the AZ IDs (use1-az1) of the Outpost.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by AZ ID (for example, use1-az1).

", "location":"querystring", "locationName":"AvailabilityZoneIdFilter" } @@ -1326,19 +1500,19 @@ }, "OperatingAddressCountryCodeFilter":{ "shape":"CountryCodeList", - "documentation":"

A filter for the country code of the Outpost site.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by country code.

", "location":"querystring", "locationName":"OperatingAddressCountryCodeFilter" }, "OperatingAddressStateOrRegionFilter":{ "shape":"StateOrRegionList", - "documentation":"

A filter for the state/region of the Outpost site.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by state or region.

", "location":"querystring", "locationName":"OperatingAddressStateOrRegionFilter" }, "OperatingAddressCityFilter":{ "shape":"CityList", - "documentation":"

A filter for the city of the Outpost site.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

", + "documentation":"

Filters the results by city.

", "location":"querystring", "locationName":"OperatingAddressCityFilter" } @@ -1372,6 +1546,16 @@ } } }, + "MacAddress":{ + "type":"string", + "max":17, + "min":17, + "pattern":"^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$" + }, + "MacAddressList":{ + "type":"list", + "member":{"shape":"MacAddress"} + }, "MaxResults1000":{ "type":"integer", "documentation":"

The maximum page size.

", @@ -1396,6 +1580,11 @@ "min":0, "pattern":"^\\S[\\S ]*$" }, + "NetworkInterfaceDeviceIndex":{ + "type":"integer", + "max":1, + "min":0 + }, "NotFoundException":{ "type":"structure", "members":{ @@ -1436,7 +1625,7 @@ }, "Status":{ "shape":"OrderStatus", - "documentation":"

The status of the order.

  • PREPARING - Order is received and being prepared.

  • IN_PROGRESS - Order is either being built, shipped, or installed. To get more details, see the LineItem status.

  • COMPLETED - Order is complete.

  • CANCELLED - Order is cancelled.

  • ERROR - Customer should contact support.

The following status are deprecated: RECEIVED, PENDING, PROCESSING, INSTALLING, and FULFILLED.

" + "documentation":"

The status of the order.

  • PREPARING - Order is received and being prepared.

  • IN_PROGRESS - Order is either being built, shipped, or installed. To get more details, see the line item status.

  • COMPLETED - Order is complete.

  • CANCELLED - Order is cancelled.

  • ERROR - Customer should contact support.

The following status are deprecated: RECEIVED, PENDING, PROCESSING, INSTALLING, and FULFILLED.

" }, "LineItems":{ "shape":"LineItemListDefinition", @@ -1503,11 +1692,11 @@ }, "OrderSubmissionDate":{ "shape":"ISO8601Timestamp", - "documentation":"

Submission date for the order.

" + "documentation":"

The submission date for the order.

" }, "OrderFulfilledDate":{ "shape":"ISO8601Timestamp", - "documentation":"

Fulfilment date for the order.

" + "documentation":"

The fulfilment date for the order.

" } }, "documentation":"

A summary of line items in your order.

" @@ -1606,7 +1795,10 @@ }, "PaymentTerm":{ "type":"string", - "enum":["THREE_YEARS"] + "enum":[ + "THREE_YEARS", + "ONE_YEAR" + ] }, "PostalCode":{ "type":"string", @@ -1646,6 +1838,12 @@ ] }, "Quantity":{"type":"string"}, + "RackElevation":{ + "type":"float", + "box":true, + "max":99, + "min":0 + }, "RackId":{ "type":"string", "max":20, @@ -1701,6 +1899,12 @@ "ORDER" ] }, + "ServerEndpoint":{ + "type":"string", + "max":21, + "min":9, + "pattern":"^([0-9]{1,3}\\.){3}[0-9]{1,3}:[0-9]{1,5}$" + }, "ServiceQuotaExceededException":{ "type":"structure", "members":{ @@ -1710,6 +1914,29 @@ "error":{"httpStatusCode":402}, "exception":true }, + "ShipmentCarrier":{ + "type":"string", + "enum":[ + "DHL", + "DBS", + "FEDEX", + "UPS" + ] + }, + "ShipmentInformation":{ + "type":"structure", + "members":{ + "ShipmentTrackingNumber":{ + "shape":"TrackingId", + "documentation":"

The tracking number of the shipment.

" + }, + "ShipmentCarrier":{ + "shape":"ShipmentCarrier", + "documentation":"

The carrier of the shipment.

" + } + }, + "documentation":"

Information about a line item shipment.

" + }, "Site":{ "type":"structure", "members":{ @@ -1761,7 +1988,7 @@ }, "SiteId":{ "type":"string", - "documentation":"

The ID of the site.

", + "documentation":"

The ID of the site.

", "max":255, "min":1, "pattern":"^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:site/)?(os-[a-f0-9]{17})$" @@ -1785,6 +2012,46 @@ "min":1, "pattern":"OR-[A-Z0-9]{7}" }, + "StartConnectionRequest":{ + "type":"structure", + "required":[ + "DeviceSerialNumber", + "AssetId", + "ClientPublicKey", + "NetworkInterfaceDeviceIndex" + ], + "members":{ + "DeviceSerialNumber":{ + "shape":"DeviceSerialNumber", + "documentation":"

The serial number of the dongle.

" + }, + "AssetId":{ + "shape":"AssetId", + "documentation":"

The ID of the Outpost server.

" + }, + "ClientPublicKey":{ + "shape":"WireGuardPublicKey", + "documentation":"

The public key of the client.

" + }, + "NetworkInterfaceDeviceIndex":{ + "shape":"NetworkInterfaceDeviceIndex", + "documentation":"

The device index of the network interface on the Outpost server.

" + } + } + }, + "StartConnectionResponse":{ + "type":"structure", + "members":{ + "ConnectionId":{ + "shape":"ConnectionId", + "documentation":"

The ID of the connection.

" + }, + "UnderlayIpAddress":{ + "shape":"UnderlayIpAddress", + "documentation":"

The underlay IP address.

" + } + } + }, "StateOrRegion":{ "type":"string", "max":50, @@ -1795,6 +2062,12 @@ "type":"list", "member":{"shape":"StateOrRegion"} }, + "StatusList":{ + "type":"list", + "member":{"shape":"AssetState"}, + "max":2, + "min":1 + }, "String":{ "type":"string", "max":1000, @@ -1879,6 +2152,18 @@ "min":1, "pattern":"^(\\d+)##(\\S+)$" }, + "TrackingId":{ + "type":"string", + "max":42, + "min":6, + "pattern":"^[a-zA-Z0-9]+$" + }, + "UnderlayIpAddress":{ + "type":"string", + "max":15, + "min":7, + "pattern":"^([0-9]{1,3}\\.){3}[0-9]{1,3}$" + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -1911,7 +2196,7 @@ "members":{ "OutpostId":{ "shape":"OutpostId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the Outpost.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the Outpost.

", "location":"uri", "locationName":"OutpostId" }, @@ -1939,7 +2224,7 @@ "members":{ "SiteId":{ "shape":"SiteId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

", "location":"uri", "locationName":"SiteId" }, @@ -1972,7 +2257,7 @@ "members":{ "SiteId":{ "shape":"SiteId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

", "location":"uri", "locationName":"SiteId" }, @@ -1980,7 +2265,7 @@ "Description":{"shape":"SiteDescription"}, "Notes":{ "shape":"SiteNotes", - "documentation":"

Notes about a site.

" + "documentation":"

Notes about a site.

" } } }, @@ -1996,29 +2281,29 @@ "members":{ "SiteId":{ "shape":"SiteId", - "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

In requests, Amazon Web Services Outposts accepts the Amazon Resource Name (ARN) or an ID for Outposts and sites throughout the Outposts Query API. To address backwards compatibility, the parameter names OutpostID or SiteID remain in use. Despite the parameter name, you can make the request with an ARN.

", + "documentation":"

The ID or the Amazon Resource Name (ARN) of the site.

", "location":"uri", "locationName":"SiteId" }, "PowerDrawKva":{ "shape":"PowerDrawKva", - "documentation":"

Specify in kVA the power draw available at the hardware placement position for the rack.

" + "documentation":"

The power draw, in kVA, available at the hardware placement position for the rack.

" }, "PowerPhase":{ "shape":"PowerPhase", - "documentation":"

Specify the power option that you can provide for hardware.

  • Single-phase AC feed: 200 V to 277 V, 50 Hz or 60 Hz

  • Three-phase AC feed: 346 V to 480 V, 50 Hz or 60 Hz

" + "documentation":"

The power option that you can provide for hardware.

  • Single-phase AC feed: 200 V to 277 V, 50 Hz or 60 Hz

  • Three-phase AC feed: 346 V to 480 V, 50 Hz or 60 Hz

" }, "PowerConnector":{ "shape":"PowerConnector", - "documentation":"

Specify the power connector that Amazon Web Services should plan to provide for connections to the hardware. Note the correlation between PowerPhase and PowerConnector.

  • Single-phase AC feed

    • L6-30P – (common in US); 30A; single phase

    • IEC309 (blue) – P+N+E, 6hr; 32 A; single phase

  • Three-phase AC feed

    • AH530P7W (red) – 3P+N+E, 7hr; 30A; three phase

    • AH532P6W (red) – 3P+N+E, 6hr; 32A; three phase

" + "documentation":"

The power connector that Amazon Web Services should plan to provide for connections to the hardware. Note the correlation between PowerPhase and PowerConnector.

  • Single-phase AC feed

    • L6-30P – (common in US); 30A; single phase

    • IEC309 (blue) – P+N+E, 6hr; 32 A; single phase

  • Three-phase AC feed

    • AH530P7W (red) – 3P+N+E, 7hr; 30A; three phase

    • AH532P6W (red) – 3P+N+E, 6hr; 32A; three phase

" }, "PowerFeedDrop":{ "shape":"PowerFeedDrop", - "documentation":"

Specify whether the power feed comes above or below the rack.

" + "documentation":"

Indicates whether the power feed comes above or below the rack.

" }, "UplinkGbps":{ "shape":"UplinkGbps", - "documentation":"

Specify the uplink speed the rack should support for the connection to the Region.

" + "documentation":"

The uplink speed the rack should support for the connection to the Region.

" }, "UplinkCount":{ "shape":"UplinkCount", @@ -2026,15 +2311,15 @@ }, "FiberOpticCableType":{ "shape":"FiberOpticCableType", - "documentation":"

Specify the type of fiber that you will use to attach the Outpost to your network.

" + "documentation":"

The type of fiber that you will use to attach the Outpost to your network.

" }, "OpticalStandard":{ "shape":"OpticalStandard", - "documentation":"

Specify the type of optical standard that you will use to attach the Outpost to your network. This field is dependent on uplink speed, fiber type, and distance to the upstream device. For more information about networking requirements for racks, see Network in the Amazon Web Services Outposts User Guide.

  • OPTIC_10GBASE_SR: 10GBASE-SR

  • OPTIC_10GBASE_IR: 10GBASE-IR

  • OPTIC_10GBASE_LR: 10GBASE-LR

  • OPTIC_40GBASE_SR: 40GBASE-SR

  • OPTIC_40GBASE_ESR: 40GBASE-ESR

  • OPTIC_40GBASE_IR4_LR4L: 40GBASE-IR (LR4L)

  • OPTIC_40GBASE_LR4: 40GBASE-LR4

  • OPTIC_100GBASE_SR4: 100GBASE-SR4

  • OPTIC_100GBASE_CWDM4: 100GBASE-CWDM4

  • OPTIC_100GBASE_LR4: 100GBASE-LR4

  • OPTIC_100G_PSM4_MSA: 100G PSM4 MSA

  • OPTIC_1000BASE_LX: 1000Base-LX

  • OPTIC_1000BASE_SX : 1000Base-SX

" + "documentation":"

The type of optical standard that you will use to attach the Outpost to your network. This field is dependent on uplink speed, fiber type, and distance to the upstream device. For more information about networking requirements for racks, see Network in the Amazon Web Services Outposts User Guide.

  • OPTIC_10GBASE_SR: 10GBASE-SR

  • OPTIC_10GBASE_IR: 10GBASE-IR

  • OPTIC_10GBASE_LR: 10GBASE-LR

  • OPTIC_40GBASE_SR: 40GBASE-SR

  • OPTIC_40GBASE_ESR: 40GBASE-ESR

  • OPTIC_40GBASE_IR4_LR4L: 40GBASE-IR (LR4L)

  • OPTIC_40GBASE_LR4: 40GBASE-LR4

  • OPTIC_100GBASE_SR4: 100GBASE-SR4

  • OPTIC_100GBASE_CWDM4: 100GBASE-CWDM4

  • OPTIC_100GBASE_LR4: 100GBASE-LR4

  • OPTIC_100G_PSM4_MSA: 100G PSM4 MSA

  • OPTIC_1000BASE_LX: 1000Base-LX

  • OPTIC_1000BASE_SX : 1000Base-SX

" }, "MaximumSupportedWeightLbs":{ "shape":"MaximumSupportedWeightLbs", - "documentation":"

Specify the maximum rack weight that this site can support. NO_LIMIT is over 2000lbs.

" + "documentation":"

The maximum rack weight that this site can support. NO_LIMIT is over 2000lbs.

" } } }, @@ -2077,6 +2362,12 @@ "error":{"httpStatusCode":400}, "exception":true }, + "WireGuardPublicKey":{ + "type":"string", + "max":44, + "min":44, + "pattern":"^[a-zA-Z0-9/+]{43}=$" + }, "outpostListDefinition":{ "type":"list", "member":{"shape":"Outpost"}, diff --git a/botocore/data/panorama/2019-07-24/endpoint-rule-set-1.json b/botocore/data/panorama/2019-07-24/endpoint-rule-set-1.json new file mode 100644 index 00000000..123f37a5 --- /dev/null +++ b/botocore/data/panorama/2019-07-24/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://panorama-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://panorama-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://panorama.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://panorama.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/panorama/2019-07-24/examples-1.json b/botocore/data/panorama/2019-07-24/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/panorama/2019-07-24/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/panorama/2019-07-24/service-2.json b/botocore/data/panorama/2019-07-24/service-2.json index 75a6a39f..1d4f4a35 100644 --- a/botocore/data/panorama/2019-07-24/service-2.json +++ b/botocore/data/panorama/2019-07-24/service-2.json @@ -46,7 +46,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates a job to run on one or more devices.

" + "documentation":"

Creates a job to run on one or more devices. A job can update a device's software or reboot it.

" }, "CreateNodeFromTemplateJob":{ "name":"CreateNodeFromTemplateJob", @@ -529,6 +529,23 @@ ], "documentation":"

Removes an application instance.

" }, + "SignalApplicationInstanceNodeInstances":{ + "name":"SignalApplicationInstanceNodeInstances", + "http":{ + "method":"PUT", + "requestUri":"/application-instances/{ApplicationInstanceId}/node-signals", + "responseCode":200 + }, + "input":{"shape":"SignalApplicationInstanceNodeInstancesRequest"}, + "output":{"shape":"SignalApplicationInstanceNodeInstancesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Signal camera nodes to stop or resume.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -643,6 +660,10 @@ "shape":"ApplicationInstanceName", "documentation":"

The application instance's name.

" }, + "RuntimeContextStates":{ + "shape":"ReportedRuntimeContextStates", + "documentation":"

The application's state.

" + }, "Status":{ "shape":"ApplicationInstanceStatus", "documentation":"

The application instance's status.

" @@ -840,7 +861,6 @@ "type":"structure", "required":[ "DeviceIds", - "DeviceJobConfig", "JobType" ], "members":{ @@ -850,7 +870,7 @@ }, "DeviceJobConfig":{ "shape":"DeviceJobConfig", - "documentation":"

Configuration settings for the job.

" + "documentation":"

Configuration settings for a software update job.

" }, "JobType":{ "shape":"JobType", @@ -1202,6 +1222,10 @@ "shape":"ApplicationInstanceName", "documentation":"

The application instance's name.

" }, + "RuntimeContextStates":{ + "shape":"ReportedRuntimeContextStates", + "documentation":"

The application instance's state.

" + }, "RuntimeRoleArn":{ "shape":"RuntimeRoleArn", "documentation":"

The application instance's runtime role ARN.

" @@ -1263,6 +1287,10 @@ "shape":"JobId", "documentation":"

The job's ID.

" }, + "JobType":{ + "shape":"JobType", + "documentation":"

The job's type.

" + }, "Status":{ "shape":"UpdateProgress", "documentation":"

The job's status.

" @@ -1312,6 +1340,10 @@ "shape":"Description", "documentation":"

The device's description.

" }, + "DeviceAggregatedStatus":{ + "shape":"DeviceAggregatedStatus", + "documentation":"

A device's aggregated status. Including the device's connection status, provisioning status, and lease status.

" + }, "DeviceConnectionStatus":{ "shape":"DeviceConnectionStatus", "documentation":"

The device's connection status.

" @@ -1324,6 +1356,10 @@ "shape":"LatestAlternateSoftware", "documentation":"

The most recent beta software release.

" }, + "LatestDeviceJob":{ + "shape":"LatestDeviceJob", + "documentation":"

A device's latest job. Includes the target image version, and the job status.

" + }, "LatestSoftware":{ "shape":"LatestSoftware", "documentation":"

The latest software version available for the device.

" @@ -1749,6 +1785,14 @@ "min":0, "pattern":"^.*$" }, + "DesiredState":{ + "type":"string", + "enum":[ + "RUNNING", + "STOPPED", + "REMOVED" + ] + }, "Device":{ "type":"structure", "members":{ @@ -1760,6 +1804,18 @@ "shape":"CreatedTime", "documentation":"

When the device was created.

" }, + "CurrentSoftware":{ + "shape":"CurrentSoftware", + "documentation":"

A device's current software.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A description for the device.

" + }, + "DeviceAggregatedStatus":{ + "shape":"DeviceAggregatedStatus", + "documentation":"

A device's aggregated status. Including the device's connection status, provisioning status, and lease status.

" + }, "DeviceId":{ "shape":"DeviceId", "documentation":"

The device's ID.

" @@ -1768,6 +1824,10 @@ "shape":"LastUpdatedTime", "documentation":"

When the device was updated.

" }, + "LatestDeviceJob":{ + "shape":"LatestDeviceJob", + "documentation":"

A device's latest job. Includes the target image version, and the update job status.

" + }, "LeaseExpirationTime":{ "shape":"LeaseExpirationTime", "documentation":"

The device's lease expiration time.

" @@ -1779,10 +1839,33 @@ "ProvisioningStatus":{ "shape":"DeviceStatus", "documentation":"

The device's provisioning status.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The device's tags.

" + }, + "Type":{ + "shape":"DeviceType", + "documentation":"

The device's type.

" } }, "documentation":"

A device.

" }, + "DeviceAggregatedStatus":{ + "type":"string", + "enum":[ + "ERROR", + "AWAITING_PROVISIONING", + "PENDING", + "FAILED", + "DELETING", + "ONLINE", + "OFFLINE", + "LEASE_EXPIRED", + "UPDATE_NEEDED", + "REBOOTING" + ] + }, "DeviceArn":{ "type":"string", "max":255, @@ -1835,6 +1918,10 @@ "JobId":{ "shape":"JobId", "documentation":"

The job's ID.

" + }, + "JobType":{ + "shape":"JobType", + "documentation":"

The job's type.

" } }, "documentation":"

A job that runs on a device.

" @@ -1863,6 +1950,22 @@ "min":1, "pattern":"^[a-zA-Z0-9\\-\\_]+$" }, + "DeviceReportedStatus":{ + "type":"string", + "enum":[ + "STOPPING", + "STOPPED", + "STOP_ERROR", + "REMOVAL_FAILED", + "REMOVAL_IN_PROGRESS", + "STARTING", + "RUNNING", + "INSTALL_ERROR", + "LAUNCHED", + "LAUNCH_ERROR", + "INSTALL_IN_PROGRESS" + ] + }, "DeviceSerialNumber":{ "type":"string", "pattern":"^[0-9]{1,20}$" @@ -2029,7 +2132,10 @@ }, "JobType":{ "type":"string", - "enum":["OTA"] + "enum":[ + "OTA", + "REBOOT" + ] }, "LastUpdatedTime":{"type":"timestamp"}, "LatestAlternateSoftware":{ @@ -2037,6 +2143,24 @@ "max":255, "min":1 }, + "LatestDeviceJob":{ + "type":"structure", + "members":{ + "ImageVersion":{ + "shape":"ImageVersion", + "documentation":"

The target version of the device software.

" + }, + "JobType":{ + "shape":"JobType", + "documentation":"

The job's type.

" + }, + "Status":{ + "shape":"UpdateProgress", + "documentation":"

Status of the latest device job.

" + } + }, + "documentation":"

Returns information about the latest device job.

" + }, "LatestSoftware":{ "type":"string", "max":255, @@ -2198,17 +2322,41 @@ "ListDevicesRequest":{ "type":"structure", "members":{ + "DeviceAggregatedStatusFilter":{ + "shape":"DeviceAggregatedStatus", + "documentation":"

Filter based on a device's status.

", + "location":"querystring", + "locationName":"DeviceAggregatedStatusFilter" + }, "MaxResults":{ "shape":"MaxSize25", "documentation":"

The maximum number of devices to return in one page of results.

", "location":"querystring", "locationName":"MaxResults" }, + "NameFilter":{ + "shape":"NameFilter", + "documentation":"

Filter based on device's name. Prefixes supported.

", + "location":"querystring", + "locationName":"NameFilter" + }, "NextToken":{ "shape":"NextToken", "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

", "location":"querystring", "locationName":"NextToken" + }, + "SortBy":{ + "shape":"ListDevicesSortBy", + "documentation":"

The target column to be sorted on. Default column sort is CREATED_TIME.

", + "location":"querystring", + "locationName":"SortBy" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

The sorting order for the returned list. SortOrder is DESCENDING by default based on CREATED_TIME. Otherwise, SortOrder is ASCENDING.

", + "location":"querystring", + "locationName":"SortOrder" } } }, @@ -2226,6 +2374,15 @@ } } }, + "ListDevicesSortBy":{ + "type":"string", + "enum":[ + "DEVICE_ID", + "CREATED_TIME", + "NAME", + "DEVICE_AGGREGATED_STATUS" + ] + }, "ListNodeFromTemplateJobsRequest":{ "type":"structure", "members":{ @@ -2446,6 +2603,7 @@ "max":25, "min":0 }, + "NameFilter":{"type":"string"}, "NetworkConnectionStatus":{ "type":"string", "enum":[ @@ -2699,7 +2857,8 @@ "enum":[ "RUNNING", "ERROR", - "NOT_AVAILABLE" + "NOT_AVAILABLE", + "PAUSED" ] }, "NodeInstances":{ @@ -2777,6 +2936,36 @@ "min":1, "pattern":"^([0-9]+)\\.([0-9]+)$" }, + "NodeSignal":{ + "type":"structure", + "required":[ + "NodeInstanceId", + "Signal" + ], + "members":{ + "NodeInstanceId":{ + "shape":"NodeInstanceId", + "documentation":"

The camera node's name, from the application manifest.

" + }, + "Signal":{ + "shape":"NodeSignalValue", + "documentation":"

The signal value.

" + } + }, + "documentation":"

A signal to a camera node to start or stop processing video.

" + }, + "NodeSignalList":{ + "type":"list", + "member":{"shape":"NodeSignal"}, + "min":1 + }, + "NodeSignalValue":{ + "type":"string", + "enum":[ + "PAUSE", + "RESUME" + ] + }, "NodesList":{ "type":"list", "member":{"shape":"Node"} @@ -3215,6 +3404,38 @@ "members":{ } }, + "ReportedRuntimeContextState":{ + "type":"structure", + "required":[ + "DesiredState", + "DeviceReportedStatus", + "DeviceReportedTime", + "RuntimeContextName" + ], + "members":{ + "DesiredState":{ + "shape":"DesiredState", + "documentation":"

The application's desired state.

" + }, + "DeviceReportedStatus":{ + "shape":"DeviceReportedStatus", + "documentation":"

The application's reported status.

" + }, + "DeviceReportedTime":{ + "shape":"TimeStamp", + "documentation":"

When the device reported the application's state.

" + }, + "RuntimeContextName":{ + "shape":"RuntimeContextName", + "documentation":"

The device's name.

" + } + }, + "documentation":"

An application instance's state.

" + }, + "ReportedRuntimeContextStates":{ + "type":"list", + "member":{"shape":"ReportedRuntimeContextState"} + }, "ResourceArn":{ "type":"string", "max":2048, @@ -3247,6 +3468,12 @@ "exception":true }, "RetryAfterSeconds":{"type":"integer"}, + "RuntimeContextName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^.+$" + }, "RuntimeRoleArn":{ "type":"string", "max":255, @@ -3308,6 +3535,42 @@ }, "exception":true }, + "SignalApplicationInstanceNodeInstancesRequest":{ + "type":"structure", + "required":[ + "ApplicationInstanceId", + "NodeSignals" + ], + "members":{ + "ApplicationInstanceId":{ + "shape":"ApplicationInstanceId", + "documentation":"

An application instance ID.

", + "location":"uri", + "locationName":"ApplicationInstanceId" + }, + "NodeSignals":{ + "shape":"NodeSignalList", + "documentation":"

A list of signals.

" + } + } + }, + "SignalApplicationInstanceNodeInstancesResponse":{ + "type":"structure", + "required":["ApplicationInstanceId"], + "members":{ + "ApplicationInstanceId":{ + "shape":"ApplicationInstanceId", + "documentation":"

An application instance ID.

" + } + } + }, + "SortOrder":{ + "type":"string", + "enum":[ + "ASCENDING", + "DESCENDING" + ] + }, "StaticIpConnectionInfo":{ "type":"structure", "required":[ diff --git a/botocore/data/partitions.json b/botocore/data/partitions.json new file mode 100644 index 00000000..9febb35b --- /dev/null +++ b/botocore/data/partitions.json @@ -0,0 +1,178 @@ +{ + "partitions" : [ { + "id" : "aws", + "outputs" : { + "dnsSuffix" : "amazonaws.com", + "dualStackDnsSuffix" : "api.aws", + "name" : "aws", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^(us|eu|ap|sa|ca|me|af)\\-\\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)" + }, + "aws-global" : { + "description" : "AWS Standard global region" + }, + "ca-central-1" : { + "description" : "Canada (Central)" + }, + "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)" + }, + "me-central-1" : { + "description" : "Middle East (UAE)" + }, + "me-south-1" : { + "description" : "Middle East (Bahrain)" + }, + "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", + "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", + "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", + "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", + "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)" + } + } + } ], + "version" : "1.1" +} \ No newline at end of file diff --git a/botocore/data/personalize-events/2018-03-22/endpoint-rule-set-1.json b/botocore/data/personalize-events/2018-03-22/endpoint-rule-set-1.json new file mode 100644 index 00000000..636e12c2 --- /dev/null +++ b/botocore/data/personalize-events/2018-03-22/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-events-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-events.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://personalize-events.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/personalize-events/2018-03-22/examples-1.json b/botocore/data/personalize-events/2018-03-22/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/personalize-events/2018-03-22/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/personalize-events/2018-03-22/service-2.json b/botocore/data/personalize-events/2018-03-22/service-2.json index 9652bb5f..ad342311 100644 --- a/botocore/data/personalize-events/2018-03-22/service-2.json +++ b/botocore/data/personalize-events/2018-03-22/service-2.json @@ -95,14 +95,24 @@ }, "recommendationId":{ "shape":"RecommendationId", - "documentation":"

The ID of the recommendation.

" + "documentation":"

The ID of the list of recommendations that contains the item the user interacted with. Provide a recommendationId to have Amazon Personalize implicitly record the recommendations you show your user as impressions data. Or provide a recommendationId if you use a metric attribution to measure the impact of recommendations.

For more information on recording impressions data, see Recording impressions data. For more information on creating a metric attribution see Measuring impact of recommendations.

" }, "impression":{ "shape":"Impression", - "documentation":"

A list of item IDs that represents the sequence of items you have shown the user. For example, [\"itemId1\", \"itemId2\", \"itemId3\"].

" + "documentation":"

A list of item IDs that represents the sequence of items you have shown the user. For example, [\"itemId1\", \"itemId2\", \"itemId3\"]. Provide a list of items to manually record impressions data for an event. For more information on recording impressions data, see Recording impressions data.

" + }, + "metricAttribution":{ + "shape":"MetricAttribution", + "documentation":"

Contains information about the metric attribution associated with an event. For more information about metric attributions, see Measuring impact of recommendations.

" } }, - "documentation":"

Represents user interaction event information sent using the PutEvents API.

" + "documentation":"

Represents user interaction event information sent using the PutEvents API.

", + "sensitive":true + }, + "EventAttributionSource":{ + "type":"string", + "max":1024, + "pattern":"^[\\x20-\\x7E]*[\\x21-\\x7E]+[\\x20-\\x7E]*$" }, "EventList":{ "type":"list", @@ -113,7 +123,8 @@ "EventPropertiesJSON":{ "type":"string", "max":1024, - "min":1 + "min":1, + "sensitive":true }, "FloatType":{"type":"float"}, "Impression":{ @@ -150,7 +161,8 @@ "ItemId":{ "type":"string", "max":256, - "min":1 + "min":1, + "sensitive":true }, "ItemList":{ "type":"list", @@ -161,7 +173,19 @@ "ItemProperties":{ "type":"string", "max":24262, - "min":1 + "min":1, + "sensitive":true + }, + "MetricAttribution":{ + "type":"structure", + "required":["eventAttributionSource"], + "members":{ + "eventAttributionSource":{ + "shape":"EventAttributionSource", + "documentation":"

The source of the event, such as a third party.

" + } + }, + "documentation":"

Contains information about a metric attribution associated with an event. For more information about metric attributions, see Measuring impact of recommendations.

" }, "PutEventsRequest":{ "type":"structure", @@ -270,7 +294,8 @@ "UserId":{ "type":"string", "max":256, - "min":1 + "min":1, + "sensitive":true }, "UserList":{ "type":"list", @@ -281,7 +306,8 @@ "UserProperties":{ "type":"string", "max":4096, - "min":1 + "min":1, + "sensitive":true } }, "documentation":"

Amazon Personalize can consume real-time user event data, such as stream or click data, and use it for model training either alone or combined with historical data. For more information see Recording Events.

" diff --git a/botocore/data/personalize-runtime/2018-05-22/endpoint-rule-set-1.json b/botocore/data/personalize-runtime/2018-05-22/endpoint-rule-set-1.json new file mode 100644 index 00000000..0c90de7a --- /dev/null +++ b/botocore/data/personalize-runtime/2018-05-22/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-runtime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-runtime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-runtime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://personalize-runtime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/personalize-runtime/2018-05-22/examples-1.json b/botocore/data/personalize-runtime/2018-05-22/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/personalize-runtime/2018-05-22/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/personalize-runtime/2018-05-22/service-2.json b/botocore/data/personalize-runtime/2018-05-22/service-2.json index 36798c46..fb98138f 100644 --- a/botocore/data/personalize-runtime/2018-05-22/service-2.json +++ b/botocore/data/personalize-runtime/2018-05-22/service-2.json @@ -158,11 +158,15 @@ }, "filterValues":{ "shape":"FilterValues", - "documentation":"

The values to use when filtering recommendations. For each placeholder parameter in your filter expression, provide the parameter name (in matching case) as a key and the filter value(s) as the corresponding value. Separate multiple values for one parameter with a comma.

For filter expressions that use an INCLUDE element to include items, you must provide values for all parameters that are defined in the expression. For filters with expressions that use an EXCLUDE element to exclude items, you can omit the filter-values.In this case, Amazon Personalize doesn't use that portion of the expression to filter recommendations.

For more information, see Filtering Recommendations.

" + "documentation":"

The values to use when filtering recommendations. For each placeholder parameter in your filter expression, provide the parameter name (in matching case) as a key and the filter value(s) as the corresponding value. Separate multiple values for one parameter with a comma.

For filter expressions that use an INCLUDE element to include items, you must provide values for all parameters that are defined in the expression. For filters with expressions that use an EXCLUDE element to exclude items, you can omit the filter-values.In this case, Amazon Personalize doesn't use that portion of the expression to filter recommendations.

For more information, see Filtering recommendations and user segments.

" }, "recommenderArn":{ "shape":"Arn", "documentation":"

The Amazon Resource Name (ARN) of the recommender to use to get recommendations. Provide a recommender ARN if you created a Domain dataset group with a recommender for a domain use case.

" + }, + "promotions":{ + "shape":"PromotionList", + "documentation":"

The promotions to apply to the recommendation request. A promotion defines additional business rules that apply to a configurable subset of recommended items.

" } } }, @@ -200,10 +204,21 @@ "type":"list", "member":{"shape":"PredictedItem"} }, + "Name":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-zA-Z0-9][a-zA-Z0-9\\-_]*" + }, "NumResults":{ "type":"integer", "min":0 }, + "PercentPromotedItems":{ + "type":"integer", + "max":100, + "min":1 + }, "PredictedItem":{ "type":"structure", "members":{ @@ -214,10 +229,41 @@ "score":{ "shape":"Score", "documentation":"

A numeric representation of the model's certainty that the item will be the next user selection. For more information on scoring logic, see how-scores-work.

" + }, + "promotionName":{ + "shape":"Name", + "documentation":"

The name of the promotion that included the predicted item.

" } }, "documentation":"

An object that identifies an item.

The and APIs return a list of PredictedItems.

" }, + "Promotion":{ + "type":"structure", + "members":{ + "name":{ + "shape":"Name", + "documentation":"

The name of the promotion.

" + }, + "percentPromotedItems":{ + "shape":"PercentPromotedItems", + "documentation":"

The percentage of recommended items to apply the promotion to.

" + }, + "filterArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the filter used by the promotion. This filter defines the criteria for promoted items. For more information, see Promotion filters.

" + }, + "filterValues":{ + "shape":"FilterValues", + "documentation":"

The values to use when promoting items. For each placeholder parameter in your promotion's filter expression, provide the parameter name (in matching case) as a key and the filter value(s) as the corresponding value. Separate multiple values for one parameter with a comma.

For filter expressions that use an INCLUDE element to include items, you must provide values for all parameters that are defined in the expression. For filters with expressions that use an EXCLUDE element to exclude items, you can omit the filter-values. In this case, Amazon Personalize doesn't use that portion of the expression to filter recommendations.

For more information on creating filters, see Filtering recommendations and user segments.

" + } + }, + "documentation":"

Contains information on a promotion. A promotion defines additional business rules that apply to a configurable subset of recommended items.

" + }, + "PromotionList":{ + "type":"list", + "member":{"shape":"Promotion"}, + "max":1 + }, "RecommendationID":{"type":"string"}, "ResourceNotFoundException":{ "type":"structure", diff --git a/botocore/data/personalize/2018-05-22/endpoint-rule-set-1.json b/botocore/data/personalize/2018-05-22/endpoint-rule-set-1.json new file mode 100644 index 00000000..ed863d73 --- /dev/null +++ b/botocore/data/personalize/2018-05-22/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://personalize.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://personalize.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/personalize/2018-05-22/examples-1.json b/botocore/data/personalize/2018-05-22/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/personalize/2018-05-22/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/personalize/2018-05-22/paginators-1.json b/botocore/data/personalize/2018-05-22/paginators-1.json index 1d9ac747..ea43852f 100644 --- a/botocore/data/personalize/2018-05-22/paginators-1.json +++ b/botocore/data/personalize/2018-05-22/paginators-1.json @@ -83,6 +83,18 @@ "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/botocore/data/personalize/2018-05-22/service-2.json b/botocore/data/personalize/2018-05-22/service-2.json index 0bf3240c..dd580203 100644 --- a/botocore/data/personalize/2018-05-22/service-2.json +++ b/botocore/data/personalize/2018-05-22/service-2.json @@ -138,7 +138,7 @@ {"shape":"ResourceInUseException"}, {"shape":"TooManyTagsException"} ], - "documentation":"

Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an IAM service role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it internally. For information on granting access to your Amazon S3 bucket, see Giving Amazon Personalize Access to Amazon S3 Resources.

The dataset import job replaces any existing data in the dataset that you imported in bulk.

Status

A dataset import job can be in one of the following states:

  • CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED

To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed.

Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset.

Related APIs

" + "documentation":"

Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an IAM service role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it internally. For information on granting access to your Amazon S3 bucket, see Giving Amazon Personalize Access to Amazon S3 Resources.

By default, a dataset import job replaces any existing data in the dataset that you imported in bulk. To add new records without replacing existing data, specify INCREMENTAL for the import mode in the CreateDatasetImportJob operation.

Status

A dataset import job can be in one of the following states:

  • CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED

To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed.

Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset.

Related APIs

" }, "CreateEventTracker":{ "name":"CreateEventTracker", @@ -176,6 +176,23 @@ ], "documentation":"

Creates a recommendation filter. For more information, see Filtering recommendations and user segments.

" }, + "CreateMetricAttribution":{ + "name":"CreateMetricAttribution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateMetricAttributionRequest"}, + "output":{"shape":"CreateMetricAttributionResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceInUseException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Creates a metric attribution. A metric attribution creates reports on the data that you import into Amazon Personalize. Depending on how you imported the data, you can view reports in Amazon CloudWatch or Amazon S3. For more information, see Measuring impact of recommendations.

" + }, "CreateRecommender":{ "name":"CreateRecommender", "http":{ @@ -242,7 +259,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"LimitExceededException"}, {"shape":"ResourceInUseException"}, - {"shape":"TooManyTagsException"} + {"shape":"TooManyTagsException"}, + {"shape":"ResourceAlreadyExistsException"} ], "documentation":"

Trains or retrains an active solution in a Custom dataset group. A solution is created using the CreateSolution operation and must be in the ACTIVE state before calling CreateSolutionVersion. A new version of the solution is created every time you call this operation.

Status

A solution version can be in one of the following states:

  • CREATE PENDING

  • CREATE IN_PROGRESS

  • ACTIVE

  • CREATE FAILED

  • CREATE STOPPING

  • CREATE STOPPED

To get the status of the version, call DescribeSolutionVersion. Wait until the status shows as ACTIVE before calling CreateCampaign.

If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed.

Related APIs

" }, @@ -320,6 +338,21 @@ ], "documentation":"

Deletes a filter.

" }, + "DeleteMetricAttribution":{ + "name":"DeleteMetricAttribution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteMetricAttributionRequest"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"} + ], + "documentation":"

Deletes a metric attribution.

", + "idempotent":true + }, "DeleteRecommender":{ "name":"DeleteRecommender", "http":{ @@ -530,6 +563,20 @@ "documentation":"

Describes a filter's properties.

", "idempotent":true }, + "DescribeMetricAttribution":{ + "name":"DescribeMetricAttribution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMetricAttributionRequest"}, + "output":{"shape":"DescribeMetricAttributionResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes a metric attribution.

" + }, "DescribeRecipe":{ "name":"DescribeRecipe", "http":{ @@ -754,6 +801,36 @@ "documentation":"

Lists all filters that belong to a given dataset group.

", "idempotent":true }, + "ListMetricAttributionMetrics":{ + "name":"ListMetricAttributionMetrics", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMetricAttributionMetricsRequest"}, + "output":{"shape":"ListMetricAttributionMetricsResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InvalidNextTokenException"} + ], + "documentation":"

Lists the metrics for the metric attribution.

", + "idempotent":true + }, + "ListMetricAttributions":{ + "name":"ListMetricAttributions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMetricAttributionsRequest"}, + "output":{"shape":"ListMetricAttributionsResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"InvalidNextTokenException"} + ], + "documentation":"

Lists metric attributions.

", + "idempotent":true + }, "ListRecipes":{ "name":"ListRecipes", "http":{ @@ -940,6 +1017,22 @@ "documentation":"

Updates a campaign by either deploying a new solution or changing the value of the campaign's minProvisionedTPS parameter.

To update a campaign, the campaign status must be ACTIVE or CREATE FAILED. Check the campaign status using the DescribeCampaign operation.

You can still get recommendations from a campaign while an update is in progress. The campaign will use the previous solution version and campaign configuration to generate recommendations until the latest campaign update status is Active.

For more information on campaigns, see CreateCampaign.

", "idempotent":true }, + "UpdateMetricAttribution":{ + "name":"UpdateMetricAttribution", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMetricAttributionRequest"}, + "output":{"shape":"UpdateMetricAttributionResponse"}, + "errors":[ + {"shape":"InvalidInputException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ResourceAlreadyExistsException"} + ], + "documentation":"

Updates a metric attribution.

" + }, "UpdateRecommender":{ "name":"UpdateRecommender", "http":{ @@ -1737,6 +1830,14 @@ "tags":{ "shape":"Tags", "documentation":"

A list of tags to apply to the dataset import job.

" + }, + "importMode":{ + "shape":"ImportMode", + "documentation":"

Specify how to add the new records to an existing dataset. The default import mode is FULL. If you haven't imported bulk records into the dataset previously, you can only specify FULL.

  • Specify FULL to overwrite all existing bulk data in your dataset. Data you imported individually is not replaced.

  • Specify INCREMENTAL to append the new records to the existing data in your dataset. Amazon Personalize replaces any record with the same ID with the new one.

" + }, + "publishAttributionMetricsToS3":{ + "shape":"Boolean", + "documentation":"

If you created a metric attribution, specify whether to publish metrics for this import job to Amazon S3

" } } }, @@ -1858,6 +1959,42 @@ } } }, + "CreateMetricAttributionRequest":{ + "type":"structure", + "required":[ + "name", + "datasetGroupArn", + "metrics", + "metricsOutputConfig" + ], + "members":{ + "name":{ + "shape":"Name", + "documentation":"

A name for the metric attribution.

" + }, + "datasetGroupArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the destination dataset group for the metric attribution.

" + }, + "metrics":{ + "shape":"MetricAttributes", + "documentation":"

A list of metric attributes for the metric attribution. Each metric attribute specifies an event type to track and a function. Available functions are SUM() or SAMPLECOUNT(). For SUM() functions, provide the dataset type (either Interactions or Items) and column to sum as a parameter. For example SUM(Items.PRICE).

" + }, + "metricsOutputConfig":{ + "shape":"MetricAttributionOutput", + "documentation":"

The output configuration details for the metric attribution.

" + } + } + }, + "CreateMetricAttributionResponse":{ + "type":"structure", + "members":{ + "metricAttributionArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the new metric attribution.

" + } + } + }, "CreateRecommenderRequest":{ "type":"structure", "required":[ @@ -1981,6 +2118,10 @@ "type":"structure", "required":["solutionArn"], "members":{ + "name":{ + "shape":"Name", + "documentation":"

The name of the solution version.

" + }, "solutionArn":{ "shape":"Arn", "documentation":"

The Amazon Resource Name (ARN) of the solution containing the training configuration information.

" @@ -2260,6 +2401,14 @@ "failureReason":{ "shape":"FailureReason", "documentation":"

If a dataset import job fails, provides the reason why.

" + }, + "importMode":{ + "shape":"ImportMode", + "documentation":"

The import mode used by the dataset import job to import new records.

" + }, + "publishAttributionMetricsToS3":{ + "shape":"Boolean", + "documentation":"

Whether the job publishes metrics to Amazon S3 for a metric attribution.

" } }, "documentation":"

Describes a job that imports training data from a data source (Amazon S3 bucket) to an Amazon Personalize dataset. For more information, see CreateDatasetImportJob.

A dataset import job can be in one of the following states:

  • CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED

" @@ -2290,6 +2439,10 @@ "failureReason":{ "shape":"FailureReason", "documentation":"

If a dataset import job fails, the reason behind the failure.

" + }, + "importMode":{ + "shape":"ImportMode", + "documentation":"

The import mode the dataset import job used to update the data in the dataset. For more information see Updating existing bulk data.

" } }, "documentation":"

Provides a summary of the properties of a dataset import job. For a complete listing, call the DescribeDatasetImportJob API.

" @@ -2540,6 +2693,16 @@ } } }, + "DeleteMetricAttributionRequest":{ + "type":"structure", + "required":["metricAttributionArn"], + "members":{ + "metricAttributionArn":{ + "shape":"Arn", + "documentation":"

The metric attribution's Amazon Resource Name (ARN).

" + } + } + }, "DeleteRecommenderRequest":{ "type":"structure", "required":["recommenderArn"], @@ -2779,6 +2942,25 @@ } } }, + "DescribeMetricAttributionRequest":{ + "type":"structure", + "required":["metricAttributionArn"], + "members":{ + "metricAttributionArn":{ + "shape":"Arn", + "documentation":"

The metric attribution's Amazon Resource Name (ARN).

" + } + } + }, + "DescribeMetricAttributionResponse":{ + "type":"structure", + "members":{ + "metricAttribution":{ + "shape":"MetricAttribution", + "documentation":"

The details of the metric attribution.

" + } + } + }, "DescribeRecipeRequest":{ "type":"structure", "required":["recipeArn"], @@ -3195,6 +3377,13 @@ "value":{"shape":"ParameterValue"}, "max":100 }, + "ImportMode":{ + "type":"string", + "enum":[ + "FULL", + "INCREMENTAL" + ] + }, "IngestionMode":{ "type":"string", "enum":[ @@ -3534,6 +3723,66 @@ } } }, + "ListMetricAttributionMetricsRequest":{ + "type":"structure", + "members":{ + "metricAttributionArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the metric attribution to retrieve attributes for.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of metrics to return in one page of results.

" + } + } + }, + "ListMetricAttributionMetricsResponse":{ + "type":"structure", + "members":{ + "metrics":{ + "shape":"MetricAttributes", + "documentation":"

The metrics for the specified metric attribution.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous ListMetricAttributionMetricsResponse request to retrieve the next page of results.

" + } + } + }, + "ListMetricAttributionsRequest":{ + "type":"structure", + "members":{ + "datasetGroupArn":{ + "shape":"Arn", + "documentation":"

The metric attributions' dataset group Amazon Resource Name (ARN).

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of metric attributions to return in one page of results.

" + } + } + }, + "ListMetricAttributionsResponse":{ + "type":"structure", + "members":{ + "metricAttributions":{ + "shape":"MetricAttributions", + "documentation":"

The list of metric attributions.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

Specify the pagination token from a previous request to retrieve the next page of results.

" + } + } + }, "ListRecipesRequest":{ "type":"structure", "members":{ @@ -3708,6 +3957,128 @@ "max":100, "min":1 }, + "MetricAttribute":{ + "type":"structure", + "required":[ + "eventType", + "metricName", + "expression" + ], + "members":{ + "eventType":{ + "shape":"EventType", + "documentation":"

The metric's event type.

" + }, + "metricName":{ + "shape":"MetricName", + "documentation":"

The metric's name. The name helps you identify the metric in Amazon CloudWatch or Amazon S3.

" + }, + "expression":{ + "shape":"MetricExpression", + "documentation":"

The attribute's expression. Available functions are SUM() or SAMPLECOUNT(). For SUM() functions, provide the dataset type (either Interactions or Items) and column to sum as a parameter. For example SUM(Items.PRICE).

" + } + }, + "documentation":"

Contains information on a metric that a metric attribution reports on. For more information, see Measuring impact of recommendations.

" + }, + "MetricAttributes":{ + "type":"list", + "member":{"shape":"MetricAttribute"}, + "max":10 + }, + "MetricAttributesNamesList":{ + "type":"list", + "member":{"shape":"MetricName"}, + "max":10 + }, + "MetricAttribution":{ + "type":"structure", + "members":{ + "name":{ + "shape":"Name", + "documentation":"

The metric attribution's name.

" + }, + "metricAttributionArn":{ + "shape":"Arn", + "documentation":"

The metric attribution's Amazon Resource Name (ARN).

" + }, + "datasetGroupArn":{ + "shape":"Arn", + "documentation":"

The metric attribution's dataset group Amazon Resource Name (ARN).

" + }, + "metricsOutputConfig":{ + "shape":"MetricAttributionOutput", + "documentation":"

The metric attribution's output configuration.

" + }, + "status":{ + "shape":"Status", + "documentation":"

The metric attribution's status.

" + }, + "creationDateTime":{ + "shape":"Date", + "documentation":"

The metric attribution's creation date time.

" + }, + "lastUpdatedDateTime":{ + "shape":"Date", + "documentation":"

The metric attribution's last updated date time.

" + }, + "failureReason":{ + "shape":"FailureReason", + "documentation":"

The metric attribution's failure reason.

" + } + }, + "documentation":"

Contains information on a metric attribution. A metric attribution creates reports on the data that you import into Amazon Personalize. Depending on how you import the data, you can view reports in Amazon CloudWatch or Amazon S3. For more information, see Measuring impact of recommendations.

" + }, + "MetricAttributionOutput":{ + "type":"structure", + "required":["roleArn"], + "members":{ + "s3DataDestination":{"shape":"S3DataConfig"}, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that has permissions to add data to your output Amazon S3 bucket and add metrics to Amazon CloudWatch. For more information, see Measuring impact of recommendations.

" + } + }, + "documentation":"

The output configuration details for a metric attribution.

" + }, + "MetricAttributionSummary":{ + "type":"structure", + "members":{ + "name":{ + "shape":"Name", + "documentation":"

The name of the metric attribution.

" + }, + "metricAttributionArn":{ + "shape":"Arn", + "documentation":"

The metric attribution's Amazon Resource Name (ARN).

" + }, + "status":{ + "shape":"Status", + "documentation":"

The metric attribution's status.

" + }, + "creationDateTime":{ + "shape":"Date", + "documentation":"

The metric attribution's creation date time.

" + }, + "lastUpdatedDateTime":{ + "shape":"Date", + "documentation":"

The metric attribution's last updated date time.

" + }, + "failureReason":{ + "shape":"FailureReason", + "documentation":"

The metric attribution's failure reason.

" + } + }, + "documentation":"

Provides a summary of the properties of a metric attribution. For a complete listing, call the DescribeMetricAttribution.

" + }, + "MetricAttributions":{ + "type":"list", + "member":{"shape":"MetricAttributionSummary"}, + "max":100 + }, + "MetricExpression":{ + "type":"string", + "max":256 + }, "MetricName":{ "type":"string", "max":256 @@ -4155,6 +4526,10 @@ "lastUpdatedDateTime":{ "shape":"Date", "documentation":"

The date and time (in Unix time) that the solution was last updated.

" + }, + "recipeArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the recipe used by the solution.

" } }, "documentation":"

Provides a summary of the properties of a solution. For a complete listing, call the DescribeSolution API.

" @@ -4162,6 +4537,10 @@ "SolutionVersion":{ "type":"structure", "members":{ + "name":{ + "shape":"Name", + "documentation":"

The name of the solution version.

" + }, "solutionVersionArn":{ "shape":"Arn", "documentation":"

The ARN of the solution version.

" @@ -4480,6 +4859,36 @@ } } }, + "UpdateMetricAttributionRequest":{ + "type":"structure", + "members":{ + "addMetrics":{ + "shape":"MetricAttributes", + "documentation":"

Add new metric attributes to the metric attribution.

" + }, + "removeMetrics":{ + "shape":"MetricAttributesNamesList", + "documentation":"

Remove metric attributes from the metric attribution.

" + }, + "metricsOutputConfig":{ + "shape":"MetricAttributionOutput", + "documentation":"

An output config for the metric attribution.

" + }, + "metricAttributionArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the metric attribution to update.

" + } + } + }, + "UpdateMetricAttributionResponse":{ + "type":"structure", + "members":{ + "metricAttributionArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) for the metric attribution that you updated.

" + } + } + }, "UpdateRecommenderRequest":{ "type":"structure", "required":[ diff --git a/botocore/data/pi/2018-02-27/endpoint-rule-set-1.json b/botocore/data/pi/2018-02-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..416bab79 --- /dev/null +++ b/botocore/data/pi/2018-02-27/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pi-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pi-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pi.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://pi.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/pi/2018-02-27/service-2.json b/botocore/data/pi/2018-02-27/service-2.json index ff1cda9d..d3a7e1cf 100644 --- a/botocore/data/pi/2018-02-27/service-2.json +++ b/botocore/data/pi/2018-02-27/service-2.json @@ -542,7 +542,7 @@ }, "Limit":{ "type":"integer", - "max":10, + "max":25, "min":1 }, "ListAvailableResourceDimensionsRequest":{ @@ -633,7 +633,7 @@ }, "MaxResults":{ "type":"integer", - "max":20, + "max":25, "min":0 }, "MetricDimensionGroups":{ diff --git a/botocore/data/pinpoint-email/2018-07-26/endpoint-rule-set-1.json b/botocore/data/pinpoint-email/2018-07-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..103753b5 --- /dev/null +++ b/botocore/data/pinpoint-email/2018-07-26/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://email.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/pinpoint-email/2018-07-26/examples-1.json b/botocore/data/pinpoint-email/2018-07-26/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/pinpoint-email/2018-07-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/pinpoint-sms-voice-v2/2022-03-31/endpoint-rule-set-1.json b/botocore/data/pinpoint-sms-voice-v2/2022-03-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..998784ea --- /dev/null +++ b/botocore/data/pinpoint-sms-voice-v2/2022-03-31/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/pinpoint-sms-voice-v2/2022-03-31/examples-1.json b/botocore/data/pinpoint-sms-voice-v2/2022-03-31/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/pinpoint-sms-voice-v2/2022-03-31/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json b/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json new file mode 100644 index 00000000..ac4860b4 --- /dev/null +++ b/botocore/data/pinpoint-sms-voice/2018-09-05/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.pinpoint.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.pinpoint.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/pinpoint/2016-12-01/endpoint-rule-set-1.json b/botocore/data/pinpoint/2016-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..81c251ca --- /dev/null +++ b/botocore/data/pinpoint/2016-12-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pinpoint-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pinpoint-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pinpoint.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://pinpoint.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/pinpoint/2016-12-01/service-2.json b/botocore/data/pinpoint/2016-12-01/service-2.json index 0ad3557e..f3f1af5b 100644 --- a/botocore/data/pinpoint/2016-12-01/service-2.json +++ b/botocore/data/pinpoint/2016-12-01/service-2.json @@ -11881,6 +11881,18 @@ "JourneyChannelSettings": { "shape": "JourneyChannelSettings", "documentation": "

The channel-specific configurations for the journey.

" + }, + "SendingSchedule": { + "shape": "__boolean", + "documentation": "

Indicates if journey have Advance Quiet Time (OpenHours and ClosedDays). This flag should be set to true in order to allow (OpenHours and ClosedDays)

" + }, + "OpenHours": { + "shape": "OpenHours", + "documentation": "

The time when journey allow to send messages. QuietTime should be configured first and SendingSchedule should be set to true.

" + }, + "ClosedDays": { + "shape": "ClosedDays", + "documentation": "

The time when journey will stop sending messages. QuietTime should be configured first and SendingSchedule should be set to true.

" } }, "documentation": "

Provides information about the status, configuration, and other settings for a journey.

", @@ -15599,6 +15611,18 @@ "JourneyChannelSettings": { "shape": "JourneyChannelSettings", "documentation": "

The channel-specific configurations for the journey.

" + }, + "SendingSchedule": { + "shape": "__boolean", + "documentation": "

Indicates if journey have Advance Quiet Time (OpenHours and ClosedDays). This flag should be set to true in order to allow (OpenHours and ClosedDays)

" + }, + "OpenHours": { + "shape": "OpenHours", + "documentation": "

The time when journey allow to send messages. QuietTime should be configured first and SendingSchedule should be set to true.

" + }, + "ClosedDays": { + "shape": "ClosedDays", + "documentation": "

The time when journey will stop sending messages. QuietTime should be configured first and SendingSchedule should be set to true.

" } }, "documentation": "

Specifies the configuration and other settings for a journey.

", @@ -16015,6 +16039,127 @@ "__timestampUnix": { "type": "timestamp", "timestampFormat": "unixTimestamp" + }, + "DayOfWeek": { + "type": "string", + "enum": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ] + }, + "OpenHoursRule": { + "type": "structure", + "documentation" : "

List of OpenHours Rules.

", + "members": { + "StartTime": { + "shape": "__string", + "documentation": "

Local start time in ISO 8601 format.

" + }, + "EndTime": { + "shape": "__string", + "documentation": "

Local start time in ISO 8601 format.

" + } + } + }, + "ListOfOpenHoursRules": { + "type": "list", + "member": { + "shape": "OpenHoursRule", + "documentation": "

Open Hour Rule Details.

" + } + }, + "MapOfListOfOpenHoursRules": { + "type": "map", + "key": { + "shape": "DayOfWeek", + "documentation": "

Day of a week when the rule will be applied. Valid values are [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]

" + }, + "value": { + "shape": "ListOfOpenHoursRules", + "documentation": "

Open Hour Rules.

" + } + }, + "OpenHours": { + "type": "structure", + "documentation": "

The time when journey allow to send messages. QuietTime should be configured first and SendingSchedule should be set to true.

", + "members": { + "EMAIL": { + "shape": "MapOfListOfOpenHoursRules", + "documentation": "

Rules for Email Channel.

" + }, + "SMS": { + "shape": "MapOfListOfOpenHoursRules", + "documentation": "

Rules for SMS Channel.

" + }, + "PUSH": { + "shape": "MapOfListOfOpenHoursRules", + "documentation": "

Rules for Push Channel.

" + }, + "VOICE": { + "shape": "MapOfListOfOpenHoursRules", + "documentation": "

Rules for Voice Channel.

" + }, + "CUSTOM": { + "shape": "MapOfListOfOpenHoursRules", + "documentation": "

Rules for Custom Channel.

" + } + } + }, + "ClosedDaysRule": { + "type": "structure", + "documentation": "

Closed Days Rule. Part of Journey sending schedule.

", + "members": { + "Name": { + "shape": "__string", + "documentation": "

Name of the rule.

" + }, + "StartDateTime": { + "shape": "__string", + "documentation": "

Start Datetime in ISO 8601 format.

" + }, + "EndDateTime": { + "shape": "__string", + "documentation": "

End Datetime in ISO 8601 format.

" + } + } + }, + "ListOfClosedDaysRules": { + "type": "list", + "member": { + "shape": "ClosedDaysRule", + "documentation": "

ClosedDays rule details.

" + } + }, + "ClosedDays": { + "type": "structure", + "documentation" : "

The time when journey will stop sending messages.

", + "members": { + "EMAIL": { + "shape": "ListOfClosedDaysRules", + "documentation": "

Rules for Email Channel.

" + }, + "SMS": { + "shape": "ListOfClosedDaysRules", + "documentation": "

Rules for SMS Channel.

" + }, + "PUSH": { + "shape": "ListOfClosedDaysRules", + "documentation": "

Rules for Push Channel.

" + }, + "VOICE": { + "shape": "ListOfClosedDaysRules", + "documentation": "

Rules for Voice Channel.

" + }, + "CUSTOM": { + "shape": "ListOfClosedDaysRules", + "documentation": "

Rules for Custom Channel.

" + } + } } } } diff --git a/botocore/data/pipes/2015-10-07/endpoint-rule-set-1.json b/botocore/data/pipes/2015-10-07/endpoint-rule-set-1.json new file mode 100644 index 00000000..4872229c --- /dev/null +++ b/botocore/data/pipes/2015-10-07/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pipes-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pipes-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://pipes.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://pipes.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/pipes/2015-10-07/paginators-1.json b/botocore/data/pipes/2015-10-07/paginators-1.json new file mode 100644 index 00000000..4663077c --- /dev/null +++ b/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/botocore/data/pipes/2015-10-07/service-2.json b/botocore/data/pipes/2015-10-07/service-2.json new file mode 100644 index 00000000..a2ef7e51 --- /dev/null +++ b/botocore/data/pipes/2015-10-07/service-2.json @@ -0,0 +1,2807 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2015-10-07", + "endpointPrefix":"pipes", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon EventBridge Pipes", + "serviceId":"Pipes", + "signatureVersion":"v4", + "signingName":"pipes", + "uid":"pipes-2015-10-07" + }, + "operations":{ + "CreatePipe":{ + "name":"CreatePipe", + "http":{ + "method":"POST", + "requestUri":"/v1/pipes/{Name}", + "responseCode":200 + }, + "input":{"shape":"CreatePipeRequest"}, + "output":{"shape":"CreatePipeResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Create a pipe. Amazon EventBridge Pipes connect event sources to targets and reduces the need for specialized knowledge and integration code.

", + "idempotent":true + }, + "DeletePipe":{ + "name":"DeletePipe", + "http":{ + "method":"DELETE", + "requestUri":"/v1/pipes/{Name}", + "responseCode":200 + }, + "input":{"shape":"DeletePipeRequest"}, + "output":{"shape":"DeletePipeResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Delete an existing pipe. For more information about pipes, see Amazon EventBridge Pipes in the Amazon EventBridge User Guide.

", + "idempotent":true + }, + "DescribePipe":{ + "name":"DescribePipe", + "http":{ + "method":"GET", + "requestUri":"/v1/pipes/{Name}", + "responseCode":200 + }, + "input":{"shape":"DescribePipeRequest"}, + "output":{"shape":"DescribePipeResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Get the information about an existing pipe. For more information about pipes, see Amazon EventBridge Pipes in the Amazon EventBridge User Guide.

" + }, + "ListPipes":{ + "name":"ListPipes", + "http":{ + "method":"GET", + "requestUri":"/v1/pipes", + "responseCode":200 + }, + "input":{"shape":"ListPipesRequest"}, + "output":{"shape":"ListPipesResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Get the pipes associated with this account. For more information about pipes, see Amazon EventBridge Pipes in the Amazon EventBridge User Guide.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Displays the tags associated with a pipe.

" + }, + "StartPipe":{ + "name":"StartPipe", + "http":{ + "method":"POST", + "requestUri":"/v1/pipes/{Name}/start", + "responseCode":200 + }, + "input":{"shape":"StartPipeRequest"}, + "output":{"shape":"StartPipeResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Start an existing pipe.

" + }, + "StopPipe":{ + "name":"StopPipe", + "http":{ + "method":"POST", + "requestUri":"/v1/pipes/{Name}/stop", + "responseCode":200 + }, + "input":{"shape":"StopPipeRequest"}, + "output":{"shape":"StopPipeResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Stop an existing pipe.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Assigns one or more tags (key-value pairs) to the specified pipe. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a pipe that already has tags. If you specify a new tag key, this tag is appended to the list of tags associated with the pipe. If you specify a tag key that is already associated with the pipe, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a pipe.

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Removes one or more tags from the specified pipes.

", + "idempotent":true + }, + "UpdatePipe":{ + "name":"UpdatePipe", + "http":{ + "method":"PUT", + "requestUri":"/v1/pipes/{Name}", + "responseCode":200 + }, + "input":{"shape":"UpdatePipeRequest"}, + "output":{"shape":"UpdatePipeResponse"}, + "errors":[ + {"shape":"InternalException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"NotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Update an existing pipe. When you call UpdatePipe, only the fields that are included in the request are changed, the rest are unchanged. The exception to this is if you modify any Amazon Web Services-service specific fields in the SourceParameters, EnrichmentParameters, or TargetParameters objects. The fields in these objects are updated atomically as one and override existing values. This is by design and means that if you don't specify an optional field in one of these Parameters objects, that field will be set to its system-default value after the update.

 <p>For more information about pipes, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html"> Amazon EventBridge Pipes</a> in the Amazon EventBridge User Guide.</p> 
", + "idempotent":true + } + }, + "shapes":{ + "Arn":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)$" + }, + "ArnOrJsonPath":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"^arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + }, + "ArnOrUrl":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"^smk://(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)$" + }, + "AssignPublicIp":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "AwsVpcConfiguration":{ + "type":"structure", + "required":["Subnets"], + "members":{ + "AssignPublicIp":{ + "shape":"AssignPublicIp", + "documentation":"

Specifies whether the task's elastic network interface receives a public IP address. You can specify ENABLED only when LaunchType in EcsParameters is set to FARGATE.

" + }, + "SecurityGroups":{ + "shape":"SecurityGroups", + "documentation":"

Specifies the security groups associated with the task. These security groups must all be in the same VPC. You can specify as many as five security groups. If you do not specify a security group, the default security group for the VPC is used.

" + }, + "Subnets":{ + "shape":"Subnets", + "documentation":"

Specifies the subnets associated with the task. These subnets must all be in the same VPC. You can specify as many as 16 subnets.

" + } + }, + "documentation":"

This structure specifies the VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode.

" + }, + "BatchArrayProperties":{ + "type":"structure", + "members":{ + "Size":{ + "shape":"BatchArraySize", + "documentation":"

The size of the array, if this is an array batch job.

" + } + }, + "documentation":"

The array properties for the submitted job, such as the size of the array. The array size can be between 2 and 10,000. If you specify array properties for a job, it becomes an array job. This parameter is used only if the target is an Batch job.

" + }, + "BatchArraySize":{ + "type":"integer", + "max":10000, + "min":2 + }, + "BatchContainerOverrides":{ + "type":"structure", + "members":{ + "Command":{ + "shape":"StringList", + "documentation":"

The command to send to the container that overrides the default command from the Docker image or the task definition.

" + }, + "Environment":{ + "shape":"BatchEnvironmentVariableList", + "documentation":"

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition.

Environment variables cannot start with \"Batch\". This naming convention is reserved for variables that Batch sets.

" + }, + "InstanceType":{ + "shape":"String", + "documentation":"

The instance type to use for a multi-node parallel job.

This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided.

" + }, + "ResourceRequirements":{ + "shape":"BatchResourceRequirementsList", + "documentation":"

The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU.

" + } + }, + "documentation":"

The overrides that are sent to a container.

" + }, + "BatchDependsOn":{ + "type":"list", + "member":{"shape":"BatchJobDependency"}, + "max":20, + "min":0 + }, + "BatchEnvironmentVariable":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"String", + "documentation":"

The name of the key-value pair. For environment variables, this is the name of the environment variable.

" + }, + "Value":{ + "shape":"String", + "documentation":"

The value of the key-value pair. For environment variables, this is the value of the environment variable.

" + } + }, + "documentation":"

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition.

Environment variables cannot start with \"Batch\". This naming convention is reserved for variables that Batch sets.

" + }, + "BatchEnvironmentVariableList":{ + "type":"list", + "member":{"shape":"BatchEnvironmentVariable"} + }, + "BatchJobDependency":{ + "type":"structure", + "members":{ + "JobId":{ + "shape":"String", + "documentation":"

The job ID of the Batch job that's associated with this dependency.

" + }, + "Type":{ + "shape":"BatchJobDependencyType", + "documentation":"

The type of the job dependency.

" + } + }, + "documentation":"

An object that represents an Batch job dependency.

" + }, + "BatchJobDependencyType":{ + "type":"string", + "enum":[ + "N_TO_N", + "SEQUENTIAL" + ] + }, + "BatchParametersMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "BatchResourceRequirement":{ + "type":"structure", + "required":[ + "Type", + "Value" + ], + "members":{ + "Type":{ + "shape":"BatchResourceRequirementType", + "documentation":"

The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU.

" + }, + "Value":{ + "shape":"String", + "documentation":"

The quantity of the specified resource to reserve for the container. The values vary based on the type specified.

type=\"GPU\"

The number of physical GPUs to reserve for the container. Make sure that the number of GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the compute resource that the job is launched on.

GPUs aren't available for jobs that are running on Fargate resources.

type=\"MEMORY\"

The memory hard limit (in MiB) present to the container. This parameter is supported for jobs that are running on EC2 resources. If your container attempts to exceed the memory specified, the container is terminated. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP) jobs. It must be specified for each node at least once. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory management in the Batch User Guide.

For jobs that are running on Fargate resources, then value is the hard limit (in MiB), and must match one of the supported values and the VCPU values must be one of the values supported for that memory value.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 or 0.5

value = 2048

VCPU = 0.25, 0.5, or 1

value = 3072

VCPU = 0.5, or 1

value = 4096

VCPU = 0.5, 1, or 2

value = 5120, 6144, or 7168

VCPU = 1 or 2

value = 8192

VCPU = 1, 2, 4, or 8

value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or 4

value = 16384

VCPU = 2, 4, or 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720

VCPU = 4

value = 20480, 24576, or 28672

VCPU = 4 or 8

value = 36864, 45056, 53248, or 61440

VCPU = 8

value = 32768, 40960, 49152, or 57344

VCPU = 8 or 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

VCPU = 16

type=\"VCPU\"

The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must specify at least one vCPU. This is required but can be specified in several places; it must be specified for each node at least once.

The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. For more information about Fargate quotas, see Fargate quotas in the Amazon Web Services General Reference.

For jobs that are running on Fargate resources, then value must match one of the supported values and the MEMORY values must be one of the values supported for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

MEMORY = 512, 1024, or 2048

value = 0.5

MEMORY = 1024, 2048, 3072, or 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440

value = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

" + } + }, + "documentation":"

The type and amount of a resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU.

" + }, + "BatchResourceRequirementType":{ + "type":"string", + "enum":[ + "GPU", + "MEMORY", + "VCPU" + ] + }, + "BatchResourceRequirementsList":{ + "type":"list", + "member":{"shape":"BatchResourceRequirement"} + }, + "BatchRetryAttempts":{ + "type":"integer", + "max":10, + "min":1 + }, + "BatchRetryStrategy":{ + "type":"structure", + "members":{ + "Attempts":{ + "shape":"BatchRetryAttempts", + "documentation":"

The number of times to move a job to the RUNNABLE status. If the value of attempts is greater than one, the job is retried on failure the same number of attempts as the value.

" + } + }, + "documentation":"

The retry strategy that's associated with a job. For more information, see Automated job retries in the Batch User Guide.

" + }, + "Boolean":{"type":"boolean"}, + "CapacityProvider":{ + "type":"string", + "max":255, + "min":1, + "sensitive":true + }, + "CapacityProviderStrategy":{ + "type":"list", + "member":{"shape":"CapacityProviderStrategyItem"}, + "max":6, + "min":0 + }, + "CapacityProviderStrategyItem":{ + "type":"structure", + "required":["capacityProvider"], + "members":{ + "base":{ + "shape":"CapacityProviderStrategyItemBase", + "documentation":"

The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, the default value of 0 is used.

" + }, + "capacityProvider":{ + "shape":"CapacityProvider", + "documentation":"

The short name of the capacity provider.

" + }, + "weight":{ + "shape":"CapacityProviderStrategyItemWeight", + "documentation":"

The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied.

" + } + }, + "documentation":"

The details of a capacity provider strategy. To learn more, see CapacityProviderStrategyItem in the Amazon ECS API Reference.

" + }, + "CapacityProviderStrategyItemBase":{ + "type":"integer", + "max":100000, + "min":0 + }, + "CapacityProviderStrategyItemWeight":{ + "type":"integer", + "max":1000, + "min":0 + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

The ID of the resource that caused the exception.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of resource that caused the exception.

" + } + }, + "documentation":"

An action you attempted resulted in an exception.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreatePipeRequest":{ + "type":"structure", + "required":[ + "Name", + "RoleArn", + "Source", + "Target" + ], + "members":{ + "Description":{ + "shape":"PipeDescription", + "documentation":"

A description of the pipe.

" + }, + "DesiredState":{ + "shape":"RequestedPipeState", + "documentation":"

The state the pipe should be in.

" + }, + "Enrichment":{ + "shape":"OptionalArn", + "documentation":"

The ARN of the enrichment resource.

" + }, + "EnrichmentParameters":{ + "shape":"PipeEnrichmentParameters", + "documentation":"

The parameters required to set up enrichment on your pipe.

" + }, + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

", + "location":"uri", + "locationName":"Name" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The ARN of the role that allows the pipe to send data to the target.

" + }, + "Source":{ + "shape":"ArnOrUrl", + "documentation":"

The ARN of the source resource.

" + }, + "SourceParameters":{ + "shape":"PipeSourceParameters", + "documentation":"

The parameters required to set up a source for your pipe.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The list of key-value pairs to associate with the pipe.

" + }, + "Target":{ + "shape":"Arn", + "documentation":"

The ARN of the target resource.

" + }, + "TargetParameters":{ + "shape":"PipeTargetParameters", + "documentation":"

The parameters required to set up a target for your pipe.

" + } + } + }, + "CreatePipeResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time the pipe was created.

" + }, + "CurrentState":{ + "shape":"PipeState", + "documentation":"

The state the pipe is in.

" + }, + "DesiredState":{ + "shape":"RequestedPipeState", + "documentation":"

The state the pipe should be in.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

When the pipe was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

" + } + } + }, + "Database":{ + "type":"string", + "documentation":"

// Redshift Database

", + "max":64, + "min":1, + "sensitive":true + }, + "DbUser":{ + "type":"string", + "documentation":"

// Database user name

", + "max":128, + "min":1, + "sensitive":true + }, + "DeadLetterConfig":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The ARN of the Amazon SQS queue specified as the target for the dead-letter queue.

" + } + }, + "documentation":"

A DeadLetterConfig object that contains information about a dead-letter queue configuration.

" + }, + "DeletePipeRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "DeletePipeResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time the pipe was created.

" + }, + "CurrentState":{ + "shape":"PipeState", + "documentation":"

The state the pipe is in.

" + }, + "DesiredState":{ + "shape":"RequestedPipeStateDescribeResponse", + "documentation":"

The state the pipe should be in.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

When the pipe was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

" + } + } + }, + "DescribePipeRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "DescribePipeResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time the pipe was created.

" + }, + "CurrentState":{ + "shape":"PipeState", + "documentation":"

The state the pipe is in.

" + }, + "Description":{ + "shape":"PipeDescription", + "documentation":"

A description of the pipe.

" + }, + "DesiredState":{ + "shape":"RequestedPipeStateDescribeResponse", + "documentation":"

The state the pipe should be in.

" + }, + "Enrichment":{ + "shape":"OptionalArn", + "documentation":"

The ARN of the enrichment resource.

" + }, + "EnrichmentParameters":{ + "shape":"PipeEnrichmentParameters", + "documentation":"

The parameters required to set up enrichment on your pipe.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

When the pipe was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The ARN of the role that allows the pipe to send data to the target.

" + }, + "Source":{ + "shape":"ArnOrUrl", + "documentation":"

The ARN of the source resource.

" + }, + "SourceParameters":{ + "shape":"PipeSourceParameters", + "documentation":"

The parameters required to set up a source for your pipe.

" + }, + "StateReason":{ + "shape":"PipeStateReason", + "documentation":"

The reason the pipe is in its current state.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The list of key-value pairs to associate with the pipe.

" + }, + "Target":{ + "shape":"Arn", + "documentation":"

The ARN of the target resource.

" + }, + "TargetParameters":{ + "shape":"PipeTargetParameters", + "documentation":"

The parameters required to set up a target for your pipe.

" + } + } + }, + "DynamoDBStreamStartPosition":{ + "type":"string", + "enum":[ + "TRIM_HORIZON", + "LATEST" + ] + }, + "EcsContainerOverride":{ + "type":"structure", + "members":{ + "Command":{ + "shape":"StringList", + "documentation":"

The command to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.

" + }, + "Cpu":{ + "shape":"Integer", + "documentation":"

The number of cpu units reserved for the container, instead of the default value from the task definition. You must also specify a container name.

" + }, + "Environment":{ + "shape":"EcsEnvironmentVariableList", + "documentation":"

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name.

" + }, + "EnvironmentFiles":{ + "shape":"EcsEnvironmentFileList", + "documentation":"

A list of files containing the environment variables to pass to a container, instead of the value from the container definition.

" + }, + "Memory":{ + "shape":"Integer", + "documentation":"

The hard limit (in MiB) of memory to present to the container, instead of the default value from the task definition. If your container attempts to exceed the memory specified here, the container is killed. You must also specify a container name.

" + }, + "MemoryReservation":{ + "shape":"Integer", + "documentation":"

The soft limit (in MiB) of memory to reserve for the container, instead of the default value from the task definition. You must also specify a container name.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the container that receives the override. This parameter is required if any override is specified.

" + }, + "ResourceRequirements":{ + "shape":"EcsResourceRequirementsList", + "documentation":"

The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU.

" + } + }, + "documentation":"

The overrides that are sent to a container. An empty container override can be passed in. An example of an empty container override is {\"containerOverrides\": [ ] }. If a non-empty container override is specified, the name parameter must be included.

" + }, + "EcsContainerOverrideList":{ + "type":"list", + "member":{"shape":"EcsContainerOverride"} + }, + "EcsEnvironmentFile":{ + "type":"structure", + "required":[ + "type", + "value" + ], + "members":{ + "type":{ + "shape":"EcsEnvironmentFileType", + "documentation":"

The file type to use. The only supported value is s3.

" + }, + "value":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file.

" + } + }, + "documentation":"

A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a .env file extension. Each line in an environment file should contain an environment variable in VARIABLE=VALUE format. Lines beginning with # are treated as comments and are ignored. For more information about the environment variable file syntax, see Declare default environment variables in file.

If there are environment variables specified using the environment parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see Specifying environment variables in the Amazon Elastic Container Service Developer Guide.

This parameter is only supported for tasks hosted on Fargate using the following platform versions:

  • Linux platform version 1.4.0 or later.

  • Windows platform version 1.0.0 or later.

" + }, + "EcsEnvironmentFileList":{ + "type":"list", + "member":{"shape":"EcsEnvironmentFile"} + }, + "EcsEnvironmentFileType":{ + "type":"string", + "enum":["s3"] + }, + "EcsEnvironmentVariable":{ + "type":"structure", + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the key-value pair. For environment variables, this is the name of the environment variable.

" + }, + "value":{ + "shape":"String", + "documentation":"

The value of the key-value pair. For environment variables, this is the value of the environment variable.

" + } + }, + "documentation":"

The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name.

" + }, + "EcsEnvironmentVariableList":{ + "type":"list", + "member":{"shape":"EcsEnvironmentVariable"} + }, + "EcsEphemeralStorage":{ + "type":"structure", + "required":["sizeInGiB"], + "members":{ + "sizeInGiB":{ + "shape":"EphemeralStorageSize", + "documentation":"

The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 21 GiB and the maximum supported value is 200 GiB.

" + } + }, + "documentation":"

The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage in the Amazon ECS User Guide for Fargate.

This parameter is only supported for tasks hosted on Fargate using Linux platform version 1.4.0 or later. This parameter is not supported for Windows containers on Fargate.

" + }, + "EcsInferenceAcceleratorOverride":{ + "type":"structure", + "members":{ + "deviceName":{ + "shape":"String", + "documentation":"

The Elastic Inference accelerator device name to override for the task. This parameter must match a deviceName specified in the task definition.

" + }, + "deviceType":{ + "shape":"String", + "documentation":"

The Elastic Inference accelerator type to use.

" + } + }, + "documentation":"

Details on an Elastic Inference accelerator task override. This parameter is used to override the Elastic Inference accelerator specified in the task definition. For more information, see Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + }, + "EcsInferenceAcceleratorOverrideList":{ + "type":"list", + "member":{"shape":"EcsInferenceAcceleratorOverride"} + }, + "EcsResourceRequirement":{ + "type":"structure", + "required":[ + "type", + "value" + ], + "members":{ + "type":{ + "shape":"EcsResourceRequirementType", + "documentation":"

The type of resource to assign to a container. The supported values are GPU or InferenceAccelerator.

" + }, + "value":{ + "shape":"String", + "documentation":"

The value for the specified resource type.

If the GPU type is used, the value is the number of physical GPUs the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on.

If the InferenceAccelerator type is used, the value matches the deviceName for an InferenceAccelerator specified in a task definition.

" + } + }, + "documentation":"

The type and amount of a resource to assign to a container. The supported resource types are GPUs and Elastic Inference accelerators. For more information, see Working with GPUs on Amazon ECS or Working with Amazon Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide

" + }, + "EcsResourceRequirementType":{ + "type":"string", + "enum":[ + "GPU", + "InferenceAccelerator" + ] + }, + "EcsResourceRequirementsList":{ + "type":"list", + "member":{"shape":"EcsResourceRequirement"} + }, + "EcsTaskOverride":{ + "type":"structure", + "members":{ + "ContainerOverrides":{ + "shape":"EcsContainerOverrideList", + "documentation":"

One or more container overrides that are sent to a task.

" + }, + "Cpu":{ + "shape":"String", + "documentation":"

The cpu override for the task.

" + }, + "EphemeralStorage":{ + "shape":"EcsEphemeralStorage", + "documentation":"

The ephemeral storage setting override for the task.

This parameter is only supported for tasks hosted on Fargate that use the following platform versions:

  • Linux platform version 1.4.0 or later.

  • Windows platform version 1.0.0 or later.

" + }, + "ExecutionRoleArn":{ + "shape":"ArnOrJsonPath", + "documentation":"

The Amazon Resource Name (ARN) of the task execution IAM role override for the task. For more information, see Amazon ECS task execution IAM role in the Amazon Elastic Container Service Developer Guide.

" + }, + "InferenceAcceleratorOverrides":{ + "shape":"EcsInferenceAcceleratorOverrideList", + "documentation":"

The Elastic Inference accelerator override for the task.

" + }, + "Memory":{ + "shape":"String", + "documentation":"

The memory override for the task.

" + }, + "TaskRoleArn":{ + "shape":"ArnOrJsonPath", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that containers in this task can assume. All containers in this task are granted the permissions that are specified in this role. For more information, see IAM Role for Tasks in the Amazon Elastic Container Service Developer Guide.

" + } + }, + "documentation":"

The overrides that are associated with a task.

" + }, + "EndpointString":{ + "type":"string", + "max":300, + "min":1, + "pattern":"^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9]):[0-9]{1,5}$", + "sensitive":true + }, + "EphemeralStorageSize":{ + "type":"integer", + "max":200, + "min":21 + }, + "ErrorMessage":{"type":"string"}, + "EventBridgeDetailType":{ + "type":"string", + "max":128, + "min":1, + "sensitive":true + }, + "EventBridgeEndpointId":{ + "type":"string", + "max":50, + "min":1, + "pattern":"^[A-Za-z0-9\\-]+[\\.][A-Za-z0-9\\-]+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "sensitive":true + }, + "EventBridgeEventResourceList":{ + "type":"list", + "member":{"shape":"ArnOrJsonPath"}, + "max":10, + "min":0 + }, + "EventBridgeEventSource":{ + "type":"string", + "max":256, + "min":1, + "pattern":"(?=[/\\.\\-_A-Za-z0-9]+)((?!aws\\.).*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)", + "sensitive":true + }, + "EventPattern":{ + "type":"string", + "max":4096, + "min":0, + "sensitive":true + }, + "Filter":{ + "type":"structure", + "members":{ + "Pattern":{ + "shape":"EventPattern", + "documentation":"

The event pattern.

" + } + }, + "documentation":"

Filter events using an event pattern. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.

" + }, + "FilterCriteria":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"FilterList", + "documentation":"

The event patterns.

" + } + }, + "documentation":"

The collection of event patterns used to filter events. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.

" + }, + "FilterList":{ + "type":"list", + "member":{"shape":"Filter"}, + "max":5, + "min":0 + }, + "HeaderKey":{ + "type":"string", + "max":512, + "min":0, + "pattern":"^[!#$%&'*+-.^_`|~0-9a-zA-Z]+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + }, + "HeaderParametersMap":{ + "type":"map", + "key":{"shape":"HeaderKey"}, + "value":{"shape":"HeaderValue"} + }, + "HeaderValue":{ + "type":"string", + "max":512, + "min":0, + "pattern":"^[ \\t]*[\\x20-\\x7E]+([ \\t]+[\\x20-\\x7E]+)*[ \\t]*|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "sensitive":true + }, + "InputTemplate":{ + "type":"string", + "max":8192, + "min":0, + "sensitive":true + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds to wait before retrying the action that caused the exception.

", + "location":"header", + "locationName":"Retry-After" + } + }, + "documentation":"

This exception occurs due to unexpected causes.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "JsonPath":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*$" + }, + "KafkaBootstrapServers":{ + "type":"list", + "member":{"shape":"EndpointString"}, + "max":2, + "min":0 + }, + "KafkaTopicName":{ + "type":"string", + "max":249, + "min":1, + "pattern":"^[^.]([a-zA-Z0-9\\-_.]+)$", + "sensitive":true + }, + "KinesisPartitionKey":{ + "type":"string", + "max":256, + "min":0, + "sensitive":true + }, + "KinesisStreamStartPosition":{ + "type":"string", + "enum":[ + "TRIM_HORIZON", + "LATEST", + "AT_TIMESTAMP" + ] + }, + "LaunchType":{ + "type":"string", + "enum":[ + "EC2", + "FARGATE", + "EXTERNAL" + ] + }, + "LimitMax10":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "LimitMax100":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "LimitMax1000":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "LimitMax10000":{ + "type":"integer", + "box":true, + "max":10000, + "min":1 + }, + "LimitMin1":{ + "type":"integer", + "box":true, + "min":1 + }, + "ListPipesRequest":{ + "type":"structure", + "members":{ + "CurrentState":{ + "shape":"PipeState", + "documentation":"

The state the pipe is in.

", + "location":"querystring", + "locationName":"CurrentState" + }, + "DesiredState":{ + "shape":"RequestedPipeState", + "documentation":"

The state the pipe should be in.

", + "location":"querystring", + "locationName":"DesiredState" + }, + "Limit":{ + "shape":"LimitMax100", + "documentation":"

The maximum number of pipes to include in the response.

", + "location":"querystring", + "locationName":"Limit" + }, + "NamePrefix":{ + "shape":"PipeName", + "documentation":"

A value that will return a subset of the pipes associated with this account. For example, \"NamePrefix\": \"ABC\" will return all endpoints with \"ABC\" in the name.

", + "location":"querystring", + "locationName":"NamePrefix" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

", + "location":"querystring", + "locationName":"NextToken" + }, + "SourcePrefix":{ + "shape":"ResourceArn", + "documentation":"

The prefix matching the pipe source.

", + "location":"querystring", + "locationName":"SourcePrefix" + }, + "TargetPrefix":{ + "shape":"ResourceArn", + "documentation":"

The prefix matching the pipe target.

", + "location":"querystring", + "locationName":"TargetPrefix" + } + } + }, + "ListPipesResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + }, + "Pipes":{ + "shape":"PipeList", + "documentation":"

The pipes returned by the call.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe for which you want to view tags.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

The list of key-value pairs to associate with the pipe.

" + } + } + }, + "LogStreamName":{ + "type":"string", + "max":256, + "min":1 + }, + "MQBrokerAccessCredentials":{ + "type":"structure", + "members":{ + "BasicAuth":{ + "shape":"SecretManagerArn", + "documentation":"

The ARN of the Secrets Manager secret.

" + } + }, + "documentation":"

The Secrets Manager secret that stores your broker credentials.

", + "union":true + }, + "MQBrokerQueueName":{ + "type":"string", + "max":1000, + "min":1, + "pattern":"^[\\s\\S]*$", + "sensitive":true + }, + "MSKAccessCredentials":{ + "type":"structure", + "members":{ + "ClientCertificateTlsAuth":{ + "shape":"SecretManagerArn", + "documentation":"

The ARN of the Secrets Manager secret.

" + }, + "SaslScram512Auth":{ + "shape":"SecretManagerArn", + "documentation":"

The ARN of the Secrets Manager secret.

" + } + }, + "documentation":"

The Secrets Manager secret that stores your stream credentials.

", + "union":true + }, + "MSKStartPosition":{ + "type":"string", + "enum":[ + "TRIM_HORIZON", + "LATEST" + ] + }, + "MaximumBatchingWindowInSeconds":{ + "type":"integer", + "box":true, + "max":300, + "min":0 + }, + "MaximumRecordAgeInSeconds":{ + "type":"integer", + "box":true, + "max":604800, + "min":-1 + }, + "MaximumRetryAttemptsESM":{ + "type":"integer", + "box":true, + "max":10000, + "min":-1 + }, + "MessageDeduplicationId":{ + "type":"string", + "max":100, + "min":0, + "sensitive":true + }, + "MessageGroupId":{ + "type":"string", + "max":100, + "min":0, + "sensitive":true + }, + "NetworkConfiguration":{ + "type":"structure", + "members":{ + "awsvpcConfiguration":{ + "shape":"AwsVpcConfiguration", + "documentation":"

Use this structure to specify the VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode.

" + } + }, + "documentation":"

This structure specifies the network configuration for an Amazon ECS task.

" + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":1, + "sensitive":true + }, + "NotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"} + }, + "documentation":"

An entity that you specified does not exist.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "OnPartialBatchItemFailureStreams":{ + "type":"string", + "enum":["AUTOMATIC_BISECT"] + }, + "OptionalArn":{ + "type":"string", + "max":1600, + "min":0, + "pattern":"^$|arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\\-]+):([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1})?:(\\d{12})?:(.*)$" + }, + "PathParameter":{ + "type":"string", + "pattern":"^(?!\\s*$).+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "sensitive":true + }, + "PathParameterList":{ + "type":"list", + "member":{"shape":"PathParameter"}, + "max":1, + "min":0 + }, + "Pipe":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time the pipe was created.

" + }, + "CurrentState":{ + "shape":"PipeState", + "documentation":"

The state the pipe is in.

" + }, + "DesiredState":{ + "shape":"RequestedPipeState", + "documentation":"

The state the pipe should be in.

" + }, + "Enrichment":{ + "shape":"OptionalArn", + "documentation":"

The ARN of the enrichment resource.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

When the pipe was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

" + }, + "Source":{ + "shape":"ArnOrUrl", + "documentation":"

The ARN of the source resource.

" + }, + "StateReason":{ + "shape":"PipeStateReason", + "documentation":"

The reason the pipe is in its current state.

" + }, + "Target":{ + "shape":"Arn", + "documentation":"

The ARN of the target resource.

" + } + }, + "documentation":"

An object that represents a pipe. Amazon EventBridgePipes connect event sources to targets and reduces the need for specialized knowledge and integration code.

" + }, + "PipeArn":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"^arn:aws([a-z]|\\-)*:([a-zA-Z0-9\\-]+):([a-z]|\\d|\\-)*:([0-9]{12})?:(.*)$" + }, + "PipeDescription":{ + "type":"string", + "max":512, + "min":0, + "pattern":"^.*$", + "sensitive":true + }, + "PipeEnrichmentHttpParameters":{ + "type":"structure", + "members":{ + "HeaderParameters":{ + "shape":"HeaderParametersMap", + "documentation":"

The headers that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination.

" + }, + "PathParameterValues":{ + "shape":"PathParameterList", + "documentation":"

The path parameter values to be used to populate API Gateway REST API or EventBridge ApiDestination path wildcards (\"*\").

" + }, + "QueryStringParameters":{ + "shape":"QueryStringParametersMap", + "documentation":"

The query string keys/values that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination.

" + } + }, + "documentation":"

These are custom parameter to be used when the target is an API Gateway REST APIs or EventBridge ApiDestinations. In the latter case, these are merged with any InvocationParameters specified on the Connection, with any values from the Connection taking precedence.

" + }, + "PipeEnrichmentParameters":{ + "type":"structure", + "members":{ + "HttpParameters":{ + "shape":"PipeEnrichmentHttpParameters", + "documentation":"

Contains the HTTP parameters to use when the target is a API Gateway REST endpoint or EventBridge ApiDestination.

If you specify an API Gateway REST API or EventBridge ApiDestination as a target, you can use this parameter to specify headers, path parameters, and query string keys/values as part of your target invoking request. If you're using ApiDestinations, the corresponding Connection can also have these values configured. In case of any conflicting keys, values from the Connection take precedence.

" + }, + "InputTemplate":{ + "shape":"InputTemplate", + "documentation":"

Valid JSON text passed to the enrichment. In this case, nothing from the event itself is passed to the enrichment. For more information, see The JavaScript Object Notation (JSON) Data Interchange Format.

" + } + }, + "documentation":"

The parameters required to set up enrichment on your pipe.

" + }, + "PipeList":{ + "type":"list", + "member":{"shape":"Pipe"} + }, + "PipeName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[\\.\\-_A-Za-z0-9]+$" + }, + "PipeSourceActiveMQBrokerParameters":{ + "type":"structure", + "required":[ + "Credentials", + "QueueName" + ], + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "Credentials":{ + "shape":"MQBrokerAccessCredentials", + "documentation":"

The credentials needed to access the resource.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + }, + "QueueName":{ + "shape":"MQBrokerQueueName", + "documentation":"

The name of the destination queue to consume.

" + } + }, + "documentation":"

The parameters for using an Active MQ broker as a source.

" + }, + "PipeSourceDynamoDBStreamParameters":{ + "type":"structure", + "required":["StartingPosition"], + "members":{ + "BatchSize":{ + "shape":"LimitMax1000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "DeadLetterConfig":{ + "shape":"DeadLetterConfig", + "documentation":"

Define the target queue to send dead-letter queue events to.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + }, + "MaximumRecordAgeInSeconds":{ + "shape":"MaximumRecordAgeInSeconds", + "documentation":"

(Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, EventBridge never discards old records.

" + }, + "MaximumRetryAttempts":{ + "shape":"MaximumRetryAttemptsESM", + "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, EventBridge retries failed records until the record expires in the event source.

" + }, + "OnPartialBatchItemFailure":{ + "shape":"OnPartialBatchItemFailureStreams", + "documentation":"

(Streams only) Define how to handle item process failures. AUTOMATIC_BISECT halves each batch and retry each half until all the records are processed or there is one failed message left in the batch.

" + }, + "ParallelizationFactor":{ + "shape":"LimitMax10", + "documentation":"

(Streams only) The number of batches to process concurrently from each shard. The default value is 1.

" + }, + "StartingPosition":{ + "shape":"DynamoDBStreamStartPosition", + "documentation":"

(Streams only) The position in a stream from which to start reading.

" + } + }, + "documentation":"

The parameters for using a DynamoDB stream as a source.

" + }, + "PipeSourceKinesisStreamParameters":{ + "type":"structure", + "required":["StartingPosition"], + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "DeadLetterConfig":{ + "shape":"DeadLetterConfig", + "documentation":"

Define the target queue to send dead-letter queue events to.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + }, + "MaximumRecordAgeInSeconds":{ + "shape":"MaximumRecordAgeInSeconds", + "documentation":"

(Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, EventBridge never discards old records.

" + }, + "MaximumRetryAttempts":{ + "shape":"MaximumRetryAttemptsESM", + "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, EventBridge retries failed records until the record expires in the event source.

" + }, + "OnPartialBatchItemFailure":{ + "shape":"OnPartialBatchItemFailureStreams", + "documentation":"

(Streams only) Define how to handle item process failures. AUTOMATIC_BISECT halves each batch and retry each half until all the records are processed or there is one failed message left in the batch.

" + }, + "ParallelizationFactor":{ + "shape":"LimitMax10", + "documentation":"

(Streams only) The number of batches to process concurrently from each shard. The default value is 1.

" + }, + "StartingPosition":{ + "shape":"KinesisStreamStartPosition", + "documentation":"

(Streams only) The position in a stream from which to start reading.

" + }, + "StartingPositionTimestamp":{ + "shape":"Timestamp", + "documentation":"

With StartingPosition set to AT_TIMESTAMP, the time from which to start reading, in Unix time seconds.

" + } + }, + "documentation":"

The parameters for using a Kinesis stream as a source.

" + }, + "PipeSourceManagedStreamingKafkaParameters":{ + "type":"structure", + "required":["TopicName"], + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "ConsumerGroupID":{ + "shape":"URI", + "documentation":"

The name of the destination queue to consume.

" + }, + "Credentials":{ + "shape":"MSKAccessCredentials", + "documentation":"

The credentials needed to access the resource.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + }, + "StartingPosition":{ + "shape":"MSKStartPosition", + "documentation":"

(Streams only) The position in a stream from which to start reading.

" + }, + "TopicName":{ + "shape":"KafkaTopicName", + "documentation":"

The name of the topic that the pipe will read from.

" + } + }, + "documentation":"

The parameters for using an MSK stream as a source.

" + }, + "PipeSourceParameters":{ + "type":"structure", + "members":{ + "ActiveMQBrokerParameters":{ + "shape":"PipeSourceActiveMQBrokerParameters", + "documentation":"

The parameters for using an Active MQ broker as a source.

" + }, + "DynamoDBStreamParameters":{ + "shape":"PipeSourceDynamoDBStreamParameters", + "documentation":"

The parameters for using a DynamoDB stream as a source.

" + }, + "FilterCriteria":{ + "shape":"FilterCriteria", + "documentation":"

The collection of event patterns used to filter events. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.

" + }, + "KinesisStreamParameters":{ + "shape":"PipeSourceKinesisStreamParameters", + "documentation":"

The parameters for using a Kinesis stream as a source.

" + }, + "ManagedStreamingKafkaParameters":{ + "shape":"PipeSourceManagedStreamingKafkaParameters", + "documentation":"

The parameters for using an MSK stream as a source.

" + }, + "RabbitMQBrokerParameters":{ + "shape":"PipeSourceRabbitMQBrokerParameters", + "documentation":"

The parameters for using a Rabbit MQ broker as a source.

" + }, + "SelfManagedKafkaParameters":{ + "shape":"PipeSourceSelfManagedKafkaParameters", + "documentation":"

The parameters for using a self-managed Apache Kafka stream as a source.

" + }, + "SqsQueueParameters":{ + "shape":"PipeSourceSqsQueueParameters", + "documentation":"

The parameters for using a Amazon SQS stream as a source.

" + } + }, + "documentation":"

The parameters required to set up a source for your pipe.

" + }, + "PipeSourceRabbitMQBrokerParameters":{ + "type":"structure", + "required":[ + "Credentials", + "QueueName" + ], + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "Credentials":{ + "shape":"MQBrokerAccessCredentials", + "documentation":"

The credentials needed to access the resource.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + }, + "QueueName":{ + "shape":"MQBrokerQueueName", + "documentation":"

The name of the destination queue to consume.

" + }, + "VirtualHost":{ + "shape":"URI", + "documentation":"

The name of the virtual host associated with the source broker.

" + } + }, + "documentation":"

The parameters for using a Rabbit MQ broker as a source.

" + }, + "PipeSourceSelfManagedKafkaParameters":{ + "type":"structure", + "required":["TopicName"], + "members":{ + "AdditionalBootstrapServers":{ + "shape":"KafkaBootstrapServers", + "documentation":"

An array of server URLs.

" + }, + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "ConsumerGroupID":{ + "shape":"URI", + "documentation":"

The name of the destination queue to consume.

" + }, + "Credentials":{ + "shape":"SelfManagedKafkaAccessConfigurationCredentials", + "documentation":"

The credentials needed to access the resource.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + }, + "ServerRootCaCertificate":{ + "shape":"SecretManagerArn", + "documentation":"

The ARN of the Secrets Manager secret used for certification.

" + }, + "StartingPosition":{ + "shape":"SelfManagedKafkaStartPosition", + "documentation":"

(Streams only) The position in a stream from which to start reading.

" + }, + "TopicName":{ + "shape":"KafkaTopicName", + "documentation":"

The name of the topic that the pipe will read from.

" + }, + "Vpc":{ + "shape":"SelfManagedKafkaAccessConfigurationVpc", + "documentation":"

This structure specifies the VPC subnets and security groups for the stream, and whether a public IP address is to be used.

" + } + }, + "documentation":"

The parameters for using a self-managed Apache Kafka stream as a source.

" + }, + "PipeSourceSqsQueueParameters":{ + "type":"structure", + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + } + }, + "documentation":"

The parameters for using a Amazon SQS stream as a source.

" + }, + "PipeState":{ + "type":"string", + "enum":[ + "RUNNING", + "STOPPED", + "CREATING", + "UPDATING", + "DELETING", + "STARTING", + "STOPPING", + "CREATE_FAILED", + "UPDATE_FAILED", + "START_FAILED", + "STOP_FAILED" + ] + }, + "PipeStateReason":{ + "type":"string", + "max":512, + "min":0, + "pattern":"^.*$" + }, + "PipeTargetBatchJobParameters":{ + "type":"structure", + "required":[ + "JobDefinition", + "JobName" + ], + "members":{ + "ArrayProperties":{ + "shape":"BatchArrayProperties", + "documentation":"

The array properties for the submitted job, such as the size of the array. The array size can be between 2 and 10,000. If you specify array properties for a job, it becomes an array job. This parameter is used only if the target is an Batch job.

" + }, + "ContainerOverrides":{ + "shape":"BatchContainerOverrides", + "documentation":"

The overrides that are sent to a container.

" + }, + "DependsOn":{ + "shape":"BatchDependsOn", + "documentation":"

A list of dependencies for the job. A job can depend upon a maximum of 20 jobs. You can specify a SEQUENTIAL type dependency without specifying a job ID for array jobs so that each child array job completes sequentially, starting at index 0. You can also specify an N_TO_N type dependency with a job ID for array jobs. In that case, each index child of this job must wait for the corresponding index child of each dependency to complete before it can begin.

" + }, + "JobDefinition":{ + "shape":"String", + "documentation":"

The job definition used by this job. This value can be one of name, name:revision, or the Amazon Resource Name (ARN) for the job definition. If name is specified without a revision then the latest active revision is used.

" + }, + "JobName":{ + "shape":"String", + "documentation":"

The name of the job. It can be up to 128 letters long. The first character must be alphanumeric, can contain uppercase and lowercase letters, numbers, hyphens (-), and underscores (_).

" + }, + "Parameters":{ + "shape":"BatchParametersMap", + "documentation":"

Additional parameters passed to the job that replace parameter substitution placeholders that are set in the job definition. Parameters are specified as a key and value pair mapping. Parameters included here override any corresponding parameter defaults from the job definition.

" + }, + "RetryStrategy":{ + "shape":"BatchRetryStrategy", + "documentation":"

The retry strategy to use for failed jobs. When a retry strategy is specified here, it overrides the retry strategy defined in the job definition.

" + } + }, + "documentation":"

The parameters for using an Batch job as a target.

" + }, + "PipeTargetCloudWatchLogsParameters":{ + "type":"structure", + "members":{ + "LogStreamName":{ + "shape":"LogStreamName", + "documentation":"

The name of the log stream.

" + }, + "Timestamp":{ + "shape":"JsonPath", + "documentation":"

The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

" + } + }, + "documentation":"

The parameters for using an CloudWatch Logs log stream as a target.

" + }, + "PipeTargetEcsTaskParameters":{ + "type":"structure", + "required":["TaskDefinitionArn"], + "members":{ + "CapacityProviderStrategy":{ + "shape":"CapacityProviderStrategy", + "documentation":"

The capacity provider strategy to use for the task.

If a capacityProviderStrategy is specified, the launchType parameter must be omitted. If no capacityProviderStrategy or launchType is specified, the defaultCapacityProviderStrategy for the cluster is used.

" + }, + "EnableECSManagedTags":{ + "shape":"Boolean", + "documentation":"

Specifies whether to enable Amazon ECS managed tags for the task. For more information, see Tagging Your Amazon ECS Resources in the Amazon Elastic Container Service Developer Guide.

" + }, + "EnableExecuteCommand":{ + "shape":"Boolean", + "documentation":"

Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task.

" + }, + "Group":{ + "shape":"String", + "documentation":"

Specifies an Amazon ECS task group for the task. The maximum length is 255 characters.

" + }, + "LaunchType":{ + "shape":"LaunchType", + "documentation":"

Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. The FARGATE value is supported only in the Regions where Fargate with Amazon ECS is supported. For more information, see Fargate on Amazon ECS in the Amazon Elastic Container Service Developer Guide.

" + }, + "NetworkConfiguration":{ + "shape":"NetworkConfiguration", + "documentation":"

Use this structure if the Amazon ECS task uses the awsvpc network mode. This structure specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. This structure is required if LaunchType is FARGATE because the awsvpc mode is required for Fargate tasks.

If you specify NetworkConfiguration when the target ECS task does not use the awsvpc network mode, the task fails.

" + }, + "Overrides":{ + "shape":"EcsTaskOverride", + "documentation":"

The overrides that are associated with a task.

" + }, + "PlacementConstraints":{ + "shape":"PlacementConstraints", + "documentation":"

An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime).

" + }, + "PlacementStrategy":{ + "shape":"PlacementStrategies", + "documentation":"

The placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task.

" + }, + "PlatformVersion":{ + "shape":"String", + "documentation":"

Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as 1.1.0.

This structure is used only if LaunchType is FARGATE. For more information about valid platform versions, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

" + }, + "PropagateTags":{ + "shape":"PropagateTags", + "documentation":"

Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use the TagResource API action.

" + }, + "ReferenceId":{ + "shape":"ReferenceId", + "documentation":"

The reference ID to use for the task.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The metadata that you apply to the task to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. To learn more, see RunTask in the Amazon ECS API Reference.

" + }, + "TaskCount":{ + "shape":"LimitMin1", + "documentation":"

The number of tasks to create based on TaskDefinition. The default is 1.

" + }, + "TaskDefinitionArn":{ + "shape":"ArnOrJsonPath", + "documentation":"

The ARN of the task definition to use if the event target is an Amazon ECS task.

" + } + }, + "documentation":"

The parameters for using an Amazon ECS task as a target.

" + }, + "PipeTargetEventBridgeEventBusParameters":{ + "type":"structure", + "members":{ + "DetailType":{ + "shape":"EventBridgeDetailType", + "documentation":"

A free-form string, with a maximum of 128 characters, used to decide what fields to expect in the event detail.

" + }, + "EndpointId":{ + "shape":"EventBridgeEndpointId", + "documentation":"

The URL subdomain of the endpoint. For example, if the URL for Endpoint is https://abcde.veo.endpoints.event.amazonaws.com, then the EndpointId is abcde.veo.

When using Java, you must include auth-crt on the class path.

" + }, + "Resources":{ + "shape":"EventBridgeEventResourceList", + "documentation":"

Amazon Web Services resources, identified by Amazon Resource Name (ARN), which the event primarily concerns. Any number, including zero, may be present.

" + }, + "Source":{ + "shape":"EventBridgeEventSource", + "documentation":"

The source of the event.

" + }, + "Time":{ + "shape":"JsonPath", + "documentation":"

The time stamp of the event, per RFC3339. If no time stamp is provided, the time stamp of the PutEvents call is used.

" + } + }, + "documentation":"

The parameters for using an EventBridge event bus as a target.

" + }, + "PipeTargetHttpParameters":{ + "type":"structure", + "members":{ + "HeaderParameters":{ + "shape":"HeaderParametersMap", + "documentation":"

The headers that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination.

" + }, + "PathParameterValues":{ + "shape":"PathParameterList", + "documentation":"

The path parameter values to be used to populate API Gateway REST API or EventBridge ApiDestination path wildcards (\"*\").

" + }, + "QueryStringParameters":{ + "shape":"QueryStringParametersMap", + "documentation":"

The query string keys/values that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination.

" + } + }, + "documentation":"

These are custom parameter to be used when the target is an API Gateway REST APIs or EventBridge ApiDestinations.

" + }, + "PipeTargetInvocationType":{ + "type":"string", + "enum":[ + "REQUEST_RESPONSE", + "FIRE_AND_FORGET" + ] + }, + "PipeTargetKinesisStreamParameters":{ + "type":"structure", + "required":["PartitionKey"], + "members":{ + "PartitionKey":{ + "shape":"KinesisPartitionKey", + "documentation":"

Determines which shard in the stream the data record is assigned to. Partition keys are Unicode strings with a maximum length limit of 256 characters for each key. Amazon Kinesis Data Streams uses the partition key as input to a hash function that maps the partition key and associated data to a specific shard. Specifically, an MD5 hash function is used to map partition keys to 128-bit integer values and to map associated data records to shards. As a result of this hashing mechanism, all data records with the same partition key map to the same shard within the stream.

" + } + }, + "documentation":"

The parameters for using a Kinesis stream as a source.

" + }, + "PipeTargetLambdaFunctionParameters":{ + "type":"structure", + "members":{ + "InvocationType":{ + "shape":"PipeTargetInvocationType", + "documentation":"

Choose from the following options.

  • RequestResponse (default) - Invoke the function synchronously. Keep the connection open until the function returns a response or times out. The API response includes the function response and additional data.

  • Event - Invoke the function asynchronously. Send events that fail multiple times to the function's dead-letter queue (if it's configured). The API response only includes a status code.

  • DryRun - Validate parameter values and verify that the user or role has permission to invoke the function.

" + } + }, + "documentation":"

The parameters for using a Lambda function as a target.

" + }, + "PipeTargetParameters":{ + "type":"structure", + "members":{ + "BatchJobParameters":{ + "shape":"PipeTargetBatchJobParameters", + "documentation":"

The parameters for using an Batch job as a target.

" + }, + "CloudWatchLogsParameters":{ + "shape":"PipeTargetCloudWatchLogsParameters", + "documentation":"

The parameters for using an CloudWatch Logs log stream as a target.

" + }, + "EcsTaskParameters":{ + "shape":"PipeTargetEcsTaskParameters", + "documentation":"

The parameters for using an Amazon ECS task as a target.

" + }, + "EventBridgeEventBusParameters":{ + "shape":"PipeTargetEventBridgeEventBusParameters", + "documentation":"

The parameters for using an EventBridge event bus as a target.

" + }, + "HttpParameters":{ + "shape":"PipeTargetHttpParameters", + "documentation":"

These are custom parameter to be used when the target is an API Gateway REST APIs or EventBridge ApiDestinations.

" + }, + "InputTemplate":{ + "shape":"InputTemplate", + "documentation":"

Valid JSON text passed to the target. In this case, nothing from the event itself is passed to the target. For more information, see The JavaScript Object Notation (JSON) Data Interchange Format.

" + }, + "KinesisStreamParameters":{ + "shape":"PipeTargetKinesisStreamParameters", + "documentation":"

The parameters for using a Kinesis stream as a source.

" + }, + "LambdaFunctionParameters":{ + "shape":"PipeTargetLambdaFunctionParameters", + "documentation":"

The parameters for using a Lambda function as a target.

" + }, + "RedshiftDataParameters":{ + "shape":"PipeTargetRedshiftDataParameters", + "documentation":"

These are custom parameters to be used when the target is a Amazon Redshift cluster to invoke the Amazon Redshift Data API ExecuteStatement.

" + }, + "SageMakerPipelineParameters":{ + "shape":"PipeTargetSageMakerPipelineParameters", + "documentation":"

The parameters for using a SageMaker pipeline as a target.

" + }, + "SqsQueueParameters":{ + "shape":"PipeTargetSqsQueueParameters", + "documentation":"

The parameters for using a Amazon SQS stream as a source.

" + }, + "StepFunctionStateMachineParameters":{ + "shape":"PipeTargetStateMachineParameters", + "documentation":"

The parameters for using a Step Functions state machine as a target.

" + } + }, + "documentation":"

The parameters required to set up a target for your pipe.

" + }, + "PipeTargetRedshiftDataParameters":{ + "type":"structure", + "required":[ + "Database", + "Sqls" + ], + "members":{ + "Database":{ + "shape":"Database", + "documentation":"

The name of the database. Required when authenticating using temporary credentials.

" + }, + "DbUser":{ + "shape":"DbUser", + "documentation":"

The database user name. Required when authenticating using temporary credentials.

" + }, + "SecretManagerArn":{ + "shape":"SecretManagerArnOrJsonPath", + "documentation":"

The name or ARN of the secret that enables access to the database. Required when authenticating using SageMaker.

" + }, + "Sqls":{ + "shape":"Sqls", + "documentation":"

The SQL statement text to run.

" + }, + "StatementName":{ + "shape":"StatementName", + "documentation":"

The name of the SQL statement. You can name the SQL statement when you create it to identify the query.

" + }, + "WithEvent":{ + "shape":"Boolean", + "documentation":"

Indicates whether to send an event back to EventBridge after the SQL statement runs.

" + } + }, + "documentation":"

These are custom parameters to be used when the target is a Amazon Redshift cluster to invoke the Amazon Redshift Data API ExecuteStatement.

" + }, + "PipeTargetSageMakerPipelineParameters":{ + "type":"structure", + "members":{ + "PipelineParameterList":{ + "shape":"SageMakerPipelineParameterList", + "documentation":"

List of Parameter names and values for SageMaker Model Building Pipeline execution.

" + } + }, + "documentation":"

The parameters for using a SageMaker pipeline as a target.

" + }, + "PipeTargetSqsQueueParameters":{ + "type":"structure", + "members":{ + "MessageDeduplicationId":{ + "shape":"MessageDeduplicationId", + "documentation":"

This parameter applies only to FIFO (first-in-first-out) queues.

The token used for deduplication of sent messages.

" + }, + "MessageGroupId":{ + "shape":"MessageGroupId", + "documentation":"

The FIFO message group ID to use as the target.

" + } + }, + "documentation":"

The parameters for using a Amazon SQS stream as a source.

" + }, + "PipeTargetStateMachineParameters":{ + "type":"structure", + "members":{ + "InvocationType":{ + "shape":"PipeTargetInvocationType", + "documentation":"

Specify whether to wait for the state machine to finish or not.

" + } + }, + "documentation":"

The parameters for using a Step Functions state machine as a target.

" + }, + "PlacementConstraint":{ + "type":"structure", + "members":{ + "expression":{ + "shape":"PlacementConstraintExpression", + "documentation":"

A cluster query language expression to apply to the constraint. You cannot specify an expression if the constraint type is distinctInstance. To learn more, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

" + }, + "type":{ + "shape":"PlacementConstraintType", + "documentation":"

The type of constraint. Use distinctInstance to ensure that each task in a particular group is running on a different container instance. Use memberOf to restrict the selection to a group of valid candidates.

" + } + }, + "documentation":"

An object representing a constraint on task placement. To learn more, see Task Placement Constraints in the Amazon Elastic Container Service Developer Guide.

" + }, + "PlacementConstraintExpression":{ + "type":"string", + "max":2000, + "min":0, + "sensitive":true + }, + "PlacementConstraintType":{ + "type":"string", + "enum":[ + "distinctInstance", + "memberOf" + ] + }, + "PlacementConstraints":{ + "type":"list", + "member":{"shape":"PlacementConstraint"}, + "max":10, + "min":0 + }, + "PlacementStrategies":{ + "type":"list", + "member":{"shape":"PlacementStrategy"}, + "max":5, + "min":0 + }, + "PlacementStrategy":{ + "type":"structure", + "members":{ + "field":{ + "shape":"PlacementStrategyField", + "documentation":"

The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used.

" + }, + "type":{ + "shape":"PlacementStrategyType", + "documentation":"

The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task).

" + } + }, + "documentation":"

The task placement strategy for a task or service. To learn more, see Task Placement Strategies in the Amazon Elastic Container Service Service Developer Guide.

" + }, + "PlacementStrategyField":{ + "type":"string", + "max":255, + "min":0, + "sensitive":true + }, + "PlacementStrategyType":{ + "type":"string", + "enum":[ + "random", + "spread", + "binpack" + ] + }, + "PropagateTags":{ + "type":"string", + "enum":["TASK_DEFINITION"] + }, + "QueryStringKey":{ + "type":"string", + "max":512, + "min":0, + "pattern":"^[^\\x00-\\x1F\\x7F]+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + }, + "QueryStringParametersMap":{ + "type":"map", + "key":{"shape":"QueryStringKey"}, + "value":{"shape":"QueryStringValue"} + }, + "QueryStringValue":{ + "type":"string", + "max":512, + "min":0, + "pattern":"^[^\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F]+|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "sensitive":true + }, + "ReferenceId":{ + "type":"string", + "max":1024, + "min":0, + "sensitive":true + }, + "RequestedPipeState":{ + "type":"string", + "enum":[ + "RUNNING", + "STOPPED" + ] + }, + "RequestedPipeStateDescribeResponse":{ + "type":"string", + "enum":[ + "RUNNING", + "STOPPED", + "DELETED" + ] + }, + "ResourceArn":{ + "type":"string", + "max":1600, + "min":1 + }, + "RoleArn":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"^arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z0-9+=,.@\\-_/]+$" + }, + "SageMakerPipelineParameter":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{ + "shape":"SageMakerPipelineParameterName", + "documentation":"

Name of parameter to start execution of a SageMaker Model Building Pipeline.

" + }, + "Value":{ + "shape":"SageMakerPipelineParameterValue", + "documentation":"

Value of parameter to start execution of a SageMaker Model Building Pipeline.

" + } + }, + "documentation":"

Name/Value pair of a parameter to start execution of a SageMaker Model Building Pipeline.

" + }, + "SageMakerPipelineParameterList":{ + "type":"list", + "member":{"shape":"SageMakerPipelineParameter"}, + "max":200, + "min":0 + }, + "SageMakerPipelineParameterName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "sensitive":true + }, + "SageMakerPipelineParameterValue":{ + "type":"string", + "max":1024, + "min":0, + "sensitive":true + }, + "SecretManagerArn":{ + "type":"string", + "documentation":"

// Optional SecretManager ARN which stores the database credentials

", + "max":1600, + "min":1, + "pattern":"^(^arn:aws([a-z]|\\-)*:secretsmanager:[a-z0-9-.]+:.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + }, + "SecretManagerArnOrJsonPath":{ + "type":"string", + "documentation":"

// For targets, can either specify an ARN or a jsonpath pointing to the ARN.

", + "max":1600, + "min":1, + "pattern":"^(^arn:aws([a-z]|\\-)*:secretsmanager:[a-z0-9-.]+:.*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + }, + "SecurityGroup":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^sg-[0-9a-zA-Z]*|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "sensitive":true + }, + "SecurityGroupId":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^sg-[0-9a-zA-Z]*$", + "sensitive":true + }, + "SecurityGroupIds":{ + "type":"list", + "member":{"shape":"SecurityGroupId"}, + "documentation":"

List of SecurityGroupId.

", + "max":5, + "min":0 + }, + "SecurityGroups":{ + "type":"list", + "member":{"shape":"SecurityGroup"}, + "max":5, + "min":0 + }, + "SelfManagedKafkaAccessConfigurationCredentials":{ + "type":"structure", + "members":{ + "BasicAuth":{ + "shape":"SecretManagerArn", + "documentation":"

The ARN of the Secrets Manager secret.

" + }, + "ClientCertificateTlsAuth":{ + "shape":"SecretManagerArn", + "documentation":"

The ARN of the Secrets Manager secret.

" + }, + "SaslScram256Auth":{ + "shape":"SecretManagerArn", + "documentation":"

The ARN of the Secrets Manager secret.

" + }, + "SaslScram512Auth":{ + "shape":"SecretManagerArn", + "documentation":"

The ARN of the Secrets Manager secret.

" + } + }, + "documentation":"

The Secrets Manager secret that stores your stream credentials.

", + "union":true + }, + "SelfManagedKafkaAccessConfigurationVpc":{ + "type":"structure", + "members":{ + "SecurityGroup":{ + "shape":"SecurityGroupIds", + "documentation":"

Specifies the security groups associated with the stream. These security groups must all be in the same VPC. You can specify as many as five security groups. If you do not specify a security group, the default security group for the VPC is used.

" + }, + "Subnets":{ + "shape":"SubnetIds", + "documentation":"

Specifies the subnets associated with the stream. These subnets must all be in the same VPC. You can specify as many as 16 subnets.

" + } + }, + "documentation":"

This structure specifies the VPC subnets and security groups for the stream, and whether a public IP address is to be used.

" + }, + "SelfManagedKafkaStartPosition":{ + "type":"string", + "enum":[ + "TRIM_HORIZON", + "LATEST" + ] + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "message", + "quotaCode", + "resourceId", + "resourceType", + "serviceCode" + ], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

The identifier of the quota that caused the exception.

" + }, + "resourceId":{ + "shape":"String", + "documentation":"

The ID of the resource that caused the exception.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of resource that caused the exception.

" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

The identifier of the service that caused the exception.

" + } + }, + "documentation":"

A quota has been exceeded.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "Sql":{ + "type":"string", + "documentation":"

// A single Redshift SQL

", + "max":100000, + "min":1, + "sensitive":true + }, + "Sqls":{ + "type":"list", + "member":{"shape":"Sql"}, + "documentation":"

// A list of SQLs.

", + "min":1 + }, + "StartPipeRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "StartPipeResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time the pipe was created.

" + }, + "CurrentState":{ + "shape":"PipeState", + "documentation":"

The state the pipe is in.

" + }, + "DesiredState":{ + "shape":"RequestedPipeState", + "documentation":"

The state the pipe should be in.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

When the pipe was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

" + } + } + }, + "StatementName":{ + "type":"string", + "documentation":"

// A name for Redshift DataAPI statement which can be used as filter of // ListStatement.

", + "max":500, + "min":1, + "sensitive":true + }, + "StopPipeRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "StopPipeResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time the pipe was created.

" + }, + "CurrentState":{ + "shape":"PipeState", + "documentation":"

The state the pipe is in.

" + }, + "DesiredState":{ + "shape":"RequestedPipeState", + "documentation":"

The state the pipe should be in.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

When the pipe was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

" + } + } + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "Subnet":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^subnet-[0-9a-z]*|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$", + "sensitive":true + }, + "SubnetId":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^subnet-[0-9a-z]*$", + "sensitive":true + }, + "SubnetIds":{ + "type":"list", + "member":{"shape":"SubnetId"}, + "documentation":"

List of SubnetId.

", + "max":16, + "min":0 + }, + "Subnets":{ + "type":"list", + "member":{"shape":"Subnet"}, + "max":16, + "min":0 + }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

The value for the specified tag key.

" + } + }, + "documentation":"

A key-value pair associated with an Amazon Web Services resource. In EventBridge, rules and event buses support tagging.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"} + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The list of key-value pairs associated with the pipe.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "sensitive":true + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

The identifier of the quota that caused the exception.

" + }, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds to wait before retrying the action that caused the exception.

", + "location":"header", + "locationName":"Retry-After" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

The identifier of the service that caused the exception.

" + } + }, + "documentation":"

An action was throttled.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "Timestamp":{"type":"timestamp"}, + "URI":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^[a-zA-Z0-9-\\/*:_+=.@-]*$", + "sensitive":true + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

The list of tag keys to remove from the pipe.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdatePipeRequest":{ + "type":"structure", + "required":[ + "Name", + "RoleArn" + ], + "members":{ + "Description":{ + "shape":"PipeDescription", + "documentation":"

A description of the pipe.

" + }, + "DesiredState":{ + "shape":"RequestedPipeState", + "documentation":"

The state the pipe should be in.

" + }, + "Enrichment":{ + "shape":"OptionalArn", + "documentation":"

The ARN of the enrichment resource.

" + }, + "EnrichmentParameters":{ + "shape":"PipeEnrichmentParameters", + "documentation":"

The parameters required to set up enrichment on your pipe.

" + }, + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

", + "location":"uri", + "locationName":"Name" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The ARN of the role that allows the pipe to send data to the target.

" + }, + "SourceParameters":{ + "shape":"UpdatePipeSourceParameters", + "documentation":"

The parameters required to set up a source for your pipe.

" + }, + "Target":{ + "shape":"Arn", + "documentation":"

The ARN of the target resource.

" + }, + "TargetParameters":{ + "shape":"PipeTargetParameters", + "documentation":"

The parameters required to set up a target for your pipe.

" + } + } + }, + "UpdatePipeResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"PipeArn", + "documentation":"

The ARN of the pipe.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time the pipe was created.

" + }, + "CurrentState":{ + "shape":"PipeState", + "documentation":"

The state the pipe is in.

" + }, + "DesiredState":{ + "shape":"RequestedPipeState", + "documentation":"

The state the pipe should be in.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

When the pipe was last updated, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

" + }, + "Name":{ + "shape":"PipeName", + "documentation":"

The name of the pipe.

" + } + } + }, + "UpdatePipeSourceActiveMQBrokerParameters":{ + "type":"structure", + "required":["Credentials"], + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "Credentials":{ + "shape":"MQBrokerAccessCredentials", + "documentation":"

The credentials needed to access the resource.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + } + }, + "documentation":"

The parameters for using an Active MQ broker as a source.

" + }, + "UpdatePipeSourceDynamoDBStreamParameters":{ + "type":"structure", + "members":{ + "BatchSize":{ + "shape":"LimitMax1000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "DeadLetterConfig":{ + "shape":"DeadLetterConfig", + "documentation":"

Define the target queue to send dead-letter queue events to.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + }, + "MaximumRecordAgeInSeconds":{ + "shape":"MaximumRecordAgeInSeconds", + "documentation":"

(Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, EventBridge never discards old records.

" + }, + "MaximumRetryAttempts":{ + "shape":"MaximumRetryAttemptsESM", + "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, EventBridge retries failed records until the record expires in the event source.

" + }, + "OnPartialBatchItemFailure":{ + "shape":"OnPartialBatchItemFailureStreams", + "documentation":"

(Streams only) Define how to handle item process failures. AUTOMATIC_BISECT halves each batch and retry each half until all the records are processed or there is one failed message left in the batch.

" + }, + "ParallelizationFactor":{ + "shape":"LimitMax10", + "documentation":"

(Streams only) The number of batches to process concurrently from each shard. The default value is 1.

" + } + }, + "documentation":"

The parameters for using a DynamoDB stream as a source.

" + }, + "UpdatePipeSourceKinesisStreamParameters":{ + "type":"structure", + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "DeadLetterConfig":{ + "shape":"DeadLetterConfig", + "documentation":"

Define the target queue to send dead-letter queue events to.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + }, + "MaximumRecordAgeInSeconds":{ + "shape":"MaximumRecordAgeInSeconds", + "documentation":"

(Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, EventBridge never discards old records.

" + }, + "MaximumRetryAttempts":{ + "shape":"MaximumRetryAttemptsESM", + "documentation":"

(Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, EventBridge retries failed records until the record expires in the event source.

" + }, + "OnPartialBatchItemFailure":{ + "shape":"OnPartialBatchItemFailureStreams", + "documentation":"

(Streams only) Define how to handle item process failures. AUTOMATIC_BISECT halves each batch and retry each half until all the records are processed or there is one failed message left in the batch.

" + }, + "ParallelizationFactor":{ + "shape":"LimitMax10", + "documentation":"

(Streams only) The number of batches to process concurrently from each shard. The default value is 1.

" + } + }, + "documentation":"

The parameters for using a Kinesis stream as a source.

" + }, + "UpdatePipeSourceManagedStreamingKafkaParameters":{ + "type":"structure", + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "Credentials":{ + "shape":"MSKAccessCredentials", + "documentation":"

The credentials needed to access the resource.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + } + }, + "documentation":"

The parameters for using an MSK stream as a source.

" + }, + "UpdatePipeSourceParameters":{ + "type":"structure", + "members":{ + "ActiveMQBrokerParameters":{ + "shape":"UpdatePipeSourceActiveMQBrokerParameters", + "documentation":"

The parameters for using an Active MQ broker as a source.

" + }, + "DynamoDBStreamParameters":{ + "shape":"UpdatePipeSourceDynamoDBStreamParameters", + "documentation":"

The parameters for using a DynamoDB stream as a source.

" + }, + "FilterCriteria":{ + "shape":"FilterCriteria", + "documentation":"

The collection of event patterns used to filter events. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide.

" + }, + "KinesisStreamParameters":{ + "shape":"UpdatePipeSourceKinesisStreamParameters", + "documentation":"

The parameters for using a Kinesis stream as a source.

" + }, + "ManagedStreamingKafkaParameters":{ + "shape":"UpdatePipeSourceManagedStreamingKafkaParameters", + "documentation":"

The parameters for using an MSK stream as a source.

" + }, + "RabbitMQBrokerParameters":{ + "shape":"UpdatePipeSourceRabbitMQBrokerParameters", + "documentation":"

The parameters for using a Rabbit MQ broker as a source.

" + }, + "SelfManagedKafkaParameters":{ + "shape":"UpdatePipeSourceSelfManagedKafkaParameters", + "documentation":"

The parameters for using a self-managed Apache Kafka stream as a source.

" + }, + "SqsQueueParameters":{ + "shape":"UpdatePipeSourceSqsQueueParameters", + "documentation":"

The parameters for using a Amazon SQS stream as a source.

" + } + }, + "documentation":"

The parameters required to set up a source for your pipe.

" + }, + "UpdatePipeSourceRabbitMQBrokerParameters":{ + "type":"structure", + "required":["Credentials"], + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "Credentials":{ + "shape":"MQBrokerAccessCredentials", + "documentation":"

The credentials needed to access the resource.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + } + }, + "documentation":"

The parameters for using a Rabbit MQ broker as a source.

" + }, + "UpdatePipeSourceSelfManagedKafkaParameters":{ + "type":"structure", + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "Credentials":{ + "shape":"SelfManagedKafkaAccessConfigurationCredentials", + "documentation":"

The credentials needed to access the resource.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + }, + "ServerRootCaCertificate":{ + "shape":"SecretManagerArn", + "documentation":"

The ARN of the Secrets Manager secret used for certification.

" + }, + "Vpc":{ + "shape":"SelfManagedKafkaAccessConfigurationVpc", + "documentation":"

This structure specifies the VPC subnets and security groups for the stream, and whether a public IP address is to be used.

" + } + }, + "documentation":"

The parameters for using a self-managed Apache Kafka stream as a source.

" + }, + "UpdatePipeSourceSqsQueueParameters":{ + "type":"structure", + "members":{ + "BatchSize":{ + "shape":"LimitMax10000", + "documentation":"

The maximum number of records to include in each batch.

" + }, + "MaximumBatchingWindowInSeconds":{ + "shape":"MaximumBatchingWindowInSeconds", + "documentation":"

The maximum length of a time to wait for events.

" + } + }, + "documentation":"

The parameters for using a Amazon SQS stream as a source.

" + }, + "ValidationException":{ + "type":"structure", + "members":{ + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

The list of fields for which validation failed and the corresponding failure messages.

" + }, + "message":{"shape":"ErrorMessage"} + }, + "documentation":"

Indicates that an error has occurred while performing a validate operation.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{ + "shape":"ErrorMessage", + "documentation":"

The message of the exception.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the exception.

" + } + }, + "documentation":"

Indicates that an error has occurred while performing a validate operation.

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + } + }, + "documentation":"

Amazon EventBridge Pipes connects event sources to targets. Pipes reduces the need for specialized knowledge and integration code when developing event driven architectures. This helps ensures consistency across your company’s applications. With Pipes, the target can be any available EventBridge target. To set up a pipe, you select the event source, add optional event filtering, define optional enrichment, and select the target for the event data.

", + "xmlNamespace":"http://events.amazonaws.com/doc/2015-10-07" +} diff --git a/botocore/data/polly/2016-06-10/endpoint-rule-set-1.json b/botocore/data/polly/2016-06-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..6977c99a --- /dev/null +++ b/botocore/data/polly/2016-06-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://polly-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://polly-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://polly.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://polly.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/polly/2016-06-10/service-2.json b/botocore/data/polly/2016-06-10/service-2.json index 1dffb747..275e7eef 100644 --- a/botocore/data/polly/2016-06-10/service-2.json +++ b/botocore/data/polly/2016-06-10/service-2.json @@ -418,7 +418,10 @@ "en-NZ", "en-ZA", "ca-ES", - "de-AT" + "de-AT", + "yue-CN", + "ar-AE", + "fi-FI" ] }, "LanguageCodeList":{ @@ -1077,7 +1080,19 @@ "Aria", "Ayanda", "Arlet", - "Hannah" + "Hannah", + "Arthur", + "Daniel", + "Liam", + "Pedro", + "Kajal", + "Hiujin", + "Laura", + "Elin", + "Ida", + "Suvi", + "Ola", + "Hala" ] }, "VoiceList":{ diff --git a/botocore/data/pricing/2017-10-15/endpoint-rule-set-1.json b/botocore/data/pricing/2017-10-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..4668df6b --- /dev/null +++ b/botocore/data/pricing/2017-10-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/pricing/2017-10-15/examples-1.json b/botocore/data/pricing/2017-10-15/examples-1.json index 90aa3ef0..abc1c59f 100644 --- a/botocore/data/pricing/2017-10-15/examples-1.json +++ b/botocore/data/pricing/2017-10-15/examples-1.json @@ -30,6 +30,7 @@ "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" } diff --git a/botocore/data/pricing/2017-10-15/service-2.json b/botocore/data/pricing/2017-10-15/service-2.json index 371c3b75..27adad05 100644 --- a/botocore/data/pricing/2017-10-15/service-2.json +++ b/botocore/data/pricing/2017-10-15/service-2.json @@ -46,7 +46,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"ExpiredNextTokenException"} ], - "documentation":"

Returns a list of attribute values. Attributes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions in the Amazon Web Services Billing and Cost Management User Guide.

" + "documentation":"

Returns a list of attribute values. Attributes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions in the Billing and Cost Management User Guide.

" }, "GetProducts":{ "name":"GetProducts", @@ -209,6 +209,7 @@ }, "GetProductsRequest":{ "type":"structure", + "required":["ServiceCode"], "members":{ "ServiceCode":{ "shape":"String", @@ -241,7 +242,7 @@ "documentation":"

The format version of the response. For example, aws_v1.

" }, "PriceList":{ - "shape":"PriceList", + "shape":"PriceListJsonItems", "documentation":"

The list of products that match your filters. The list contains both the product metadata and the price information.

" }, "NextToken":{ @@ -282,16 +283,17 @@ "documentation":"

The requested resource can't be found.

", "exception":true }, - "PriceList":{ + "PriceListJsonItem":{"type":"string"}, + "PriceListJsonItems":{ "type":"list", "member":{ - "shape":"PriceListItemJSON", + "shape":"PriceListJsonItem", "jsonvalue":true } }, - "PriceListItemJSON":{"type":"string"}, "Service":{ "type":"structure", + "required":["ServiceCode"], "members":{ "ServiceCode":{ "shape":"String", @@ -311,5 +313,5 @@ "String":{"type":"string"}, "errorMessage":{"type":"string"} }, - "documentation":"

Amazon Web Services Price List Service API (Amazon Web Services Price List Service) is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The Amazon Web Services Price List Service uses standardized product attributes such as Location, Storage Class, and Operating System, and provides prices at the SKU level. You can use the Amazon Web Services Price List Service to build cost control and scenario planning tools, reconcile billing data, forecast future spend for budgeting purposes, and provide cost benefit analysis that compare your internal workloads with Amazon Web Services.

Use GetServices without a service code to retrieve the service codes for all AWS services, then GetServices with a service code to retrieve the attribute names for that service. After you have the service code and attribute names, you can use GetAttributeValues to see what values are available for an attribute. With the service code and an attribute name and value, you can use GetProducts to find specific products that you're interested in, such as an AmazonEC2 instance, with a Provisioned IOPS volumeType.

Service Endpoint

Amazon Web Services Price List Service API provides the following two endpoints:

  • https://api.pricing.us-east-1.amazonaws.com

  • https://api.pricing.ap-south-1.amazonaws.com

" + "documentation":"

Amazon Web Services Price List API is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The Amazon Web Services Price List uses standardized product attributes such as Location, Storage Class, and Operating System, and provides prices at the SKU level. You can use the Amazon Web Services Price List to build cost control and scenario planning tools, reconcile billing data, forecast future spend for budgeting purposes, and provide cost benefit analysis that compare your internal workloads with Amazon Web Services.

Use GetServices without a service code to retrieve the service codes for all AWS services, then GetServices with a service code to retrieve the attribute names for that service. After you have the service code and attribute names, you can use GetAttributeValues to see what values are available for an attribute. With the service code and an attribute name and value, you can use GetProducts to find specific products that you're interested in, such as an AmazonEC2 instance, with a Provisioned IOPS volumeType.

Service Endpoint

Amazon Web Services Price List service API provides the following two endpoints:

  • https://api.pricing.us-east-1.amazonaws.com

  • https://api.pricing.ap-south-1.amazonaws.com

" } diff --git a/botocore/data/privatenetworks/2021-12-03/endpoint-rule-set-1.json b/botocore/data/privatenetworks/2021-12-03/endpoint-rule-set-1.json new file mode 100644 index 00000000..98ea1aca --- /dev/null +++ b/botocore/data/privatenetworks/2021-12-03/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://private-networks-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://private-networks-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://private-networks.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://private-networks.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/privatenetworks/2021-12-03/paginators-1.json b/botocore/data/privatenetworks/2021-12-03/paginators-1.json new file mode 100644 index 00000000..8b7d279c --- /dev/null +++ b/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/botocore/data/privatenetworks/2021-12-03/service-2.json b/botocore/data/privatenetworks/2021-12-03/service-2.json new file mode 100644 index 00000000..26848719 --- /dev/null +++ b/botocore/data/privatenetworks/2021-12-03/service-2.json @@ -0,0 +1,1994 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-12-03", + "endpointPrefix":"private-networks", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Private 5G", + "serviceId":"PrivateNetworks", + "signatureVersion":"v4", + "signingName":"private-networks", + "uid":"privatenetworks-2021-12-03" + }, + "operations":{ + "AcknowledgeOrderReceipt":{ + "name":"AcknowledgeOrderReceipt", + "http":{ + "method":"POST", + "requestUri":"/v1/orders/acknowledge", + "responseCode":200 + }, + "input":{"shape":"AcknowledgeOrderReceiptRequest"}, + "output":{"shape":"AcknowledgeOrderReceiptResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Acknowledges that the specified network order was received.

" + }, + "ActivateDeviceIdentifier":{ + "name":"ActivateDeviceIdentifier", + "http":{ + "method":"POST", + "requestUri":"/v1/device-identifiers/activate", + "responseCode":200 + }, + "input":{"shape":"ActivateDeviceIdentifierRequest"}, + "output":{"shape":"ActivateDeviceIdentifierResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Activates the specified device identifier.

", + "idempotent":true + }, + "ActivateNetworkSite":{ + "name":"ActivateNetworkSite", + "http":{ + "method":"POST", + "requestUri":"/v1/network-sites/activate", + "responseCode":200 + }, + "input":{"shape":"ActivateNetworkSiteRequest"}, + "output":{"shape":"ActivateNetworkSiteResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Activates the specified network site.

", + "idempotent":true + }, + "ConfigureAccessPoint":{ + "name":"ConfigureAccessPoint", + "http":{ + "method":"POST", + "requestUri":"/v1/network-resources/configure", + "responseCode":200 + }, + "input":{"shape":"ConfigureAccessPointRequest"}, + "output":{"shape":"ConfigureAccessPointResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Configures the specified network resource.

Use this action to specify the geographic position of the hardware. You must provide Certified Professional Installer (CPI) credentials in the request so that we can obtain spectrum grants. For more information, see Radio units in the Amazon Web Services Private 5G User Guide.

", + "idempotent":true + }, + "CreateNetwork":{ + "name":"CreateNetwork", + "http":{ + "method":"POST", + "requestUri":"/v1/networks", + "responseCode":200 + }, + "input":{"shape":"CreateNetworkRequest"}, + "output":{"shape":"CreateNetworkResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a network.

", + "idempotent":true + }, + "CreateNetworkSite":{ + "name":"CreateNetworkSite", + "http":{ + "method":"POST", + "requestUri":"/v1/network-sites", + "responseCode":200 + }, + "input":{"shape":"CreateNetworkSiteRequest"}, + "output":{"shape":"CreateNetworkSiteResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Creates a network site.

", + "idempotent":true + }, + "DeactivateDeviceIdentifier":{ + "name":"DeactivateDeviceIdentifier", + "http":{ + "method":"POST", + "requestUri":"/v1/device-identifiers/deactivate", + "responseCode":200 + }, + "input":{"shape":"DeactivateDeviceIdentifierRequest"}, + "output":{"shape":"DeactivateDeviceIdentifierResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deactivates the specified device identifier.

", + "idempotent":true + }, + "DeleteNetwork":{ + "name":"DeleteNetwork", + "http":{ + "method":"DELETE", + "requestUri":"/v1/networks/{networkArn}", + "responseCode":200 + }, + "input":{"shape":"DeleteNetworkRequest"}, + "output":{"shape":"DeleteNetworkResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes the specified network. You must delete network sites before you delete the network. For more information, see DeleteNetworkSite in the API Reference for Amazon Web Services Private 5G.

", + "idempotent":true + }, + "DeleteNetworkSite":{ + "name":"DeleteNetworkSite", + "http":{ + "method":"DELETE", + "requestUri":"/v1/network-sites/{networkSiteArn}", + "responseCode":200 + }, + "input":{"shape":"DeleteNetworkSiteRequest"}, + "output":{"shape":"DeleteNetworkSiteResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes the specified network site. Return the hardware after you delete the network site. You are responsible for minimum charges. For more information, see Hardware returns in the Amazon Web Services Private 5G User Guide.

", + "idempotent":true + }, + "GetDeviceIdentifier":{ + "name":"GetDeviceIdentifier", + "http":{ + "method":"GET", + "requestUri":"/v1/device-identifiers/{deviceIdentifierArn}", + "responseCode":200 + }, + "input":{"shape":"GetDeviceIdentifierRequest"}, + "output":{"shape":"GetDeviceIdentifierResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets the specified device identifier.

" + }, + "GetNetwork":{ + "name":"GetNetwork", + "http":{ + "method":"GET", + "requestUri":"/v1/networks/{networkArn}", + "responseCode":200 + }, + "input":{"shape":"GetNetworkRequest"}, + "output":{"shape":"GetNetworkResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets the specified network.

" + }, + "GetNetworkResource":{ + "name":"GetNetworkResource", + "http":{ + "method":"GET", + "requestUri":"/v1/network-resources/{networkResourceArn}", + "responseCode":200 + }, + "input":{"shape":"GetNetworkResourceRequest"}, + "output":{"shape":"GetNetworkResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets the specified network resource.

" + }, + "GetNetworkSite":{ + "name":"GetNetworkSite", + "http":{ + "method":"GET", + "requestUri":"/v1/network-sites/{networkSiteArn}", + "responseCode":200 + }, + "input":{"shape":"GetNetworkSiteRequest"}, + "output":{"shape":"GetNetworkSiteResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets the specified network site.

" + }, + "GetOrder":{ + "name":"GetOrder", + "http":{ + "method":"GET", + "requestUri":"/v1/orders/{orderArn}", + "responseCode":200 + }, + "input":{"shape":"GetOrderRequest"}, + "output":{"shape":"GetOrderResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets the specified order.

" + }, + "ListDeviceIdentifiers":{ + "name":"ListDeviceIdentifiers", + "http":{ + "method":"POST", + "requestUri":"/v1/device-identifiers/list", + "responseCode":200 + }, + "input":{"shape":"ListDeviceIdentifiersRequest"}, + "output":{"shape":"ListDeviceIdentifiersResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists device identifiers. Add filters to your request to return a more specific list of results. Use filters to match the Amazon Resource Name (ARN) of an order, the status of device identifiers, or the ARN of the traffic group.

 <p>If you specify multiple filters, filters are joined with an OR, and the request 

returns results that match all of the specified filters.

" + }, + "ListNetworkResources":{ + "name":"ListNetworkResources", + "http":{ + "method":"POST", + "requestUri":"/v1/network-resources", + "responseCode":200 + }, + "input":{"shape":"ListNetworkResourcesRequest"}, + "output":{"shape":"ListNetworkResourcesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists network resources. Add filters to your request to return a more specific list of results. Use filters to match the Amazon Resource Name (ARN) of an order or the status of network resources.

If you specify multiple filters, filters are joined with an OR, and the request returns results that match all of the specified filters.

" + }, + "ListNetworkSites":{ + "name":"ListNetworkSites", + "http":{ + "method":"POST", + "requestUri":"/v1/network-sites/list", + "responseCode":200 + }, + "input":{"shape":"ListNetworkSitesRequest"}, + "output":{"shape":"ListNetworkSitesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists network sites. Add filters to your request to return a more specific list of results. Use filters to match the status of the network site.

" + }, + "ListNetworks":{ + "name":"ListNetworks", + "http":{ + "method":"POST", + "requestUri":"/v1/networks/list", + "responseCode":200 + }, + "input":{"shape":"ListNetworksRequest"}, + "output":{"shape":"ListNetworksResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists networks. Add filters to your request to return a more specific list of results. Use filters to match the status of the network.

" + }, + "ListOrders":{ + "name":"ListOrders", + "http":{ + "method":"POST", + "requestUri":"/v1/orders/list", + "responseCode":200 + }, + "input":{"shape":"ListOrdersRequest"}, + "output":{"shape":"ListOrdersResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists orders. Add filters to your request to return a more specific list of results. Use filters to match the Amazon Resource Name (ARN) of the network site or the status of the order.

If you specify multiple filters, filters are joined with an OR, and the request returns results that match all of the specified filters.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists the tags for the specified resource.

" + }, + "Ping":{ + "name":"Ping", + "http":{ + "method":"GET", + "requestUri":"/ping", + "responseCode":200 + }, + "output":{"shape":"PingResponse"}, + "errors":[ + {"shape":"InternalServerException"} + ], + "documentation":"

Checks the health of the service.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Adds tags to the specified resource.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Removes tags from the specified resource.

" + }, + "UpdateNetworkSite":{ + "name":"UpdateNetworkSite", + "http":{ + "method":"PUT", + "requestUri":"/v1/network-sites/site", + "responseCode":200 + }, + "input":{"shape":"UpdateNetworkSiteRequest"}, + "output":{"shape":"UpdateNetworkSiteResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates the specified network site.

", + "idempotent":true + }, + "UpdateNetworkSitePlan":{ + "name":"UpdateNetworkSitePlan", + "http":{ + "method":"PUT", + "requestUri":"/v1/network-sites/plan", + "responseCode":200 + }, + "input":{"shape":"UpdateNetworkSitePlanRequest"}, + "output":{"shape":"UpdateNetworkSiteResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Updates the specified network site plan.

", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You do not have permission to perform this operation.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AcknowledgeOrderReceiptRequest":{ + "type":"structure", + "required":["orderArn"], + "members":{ + "orderArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the order.

" + } + } + }, + "AcknowledgeOrderReceiptResponse":{ + "type":"structure", + "required":["order"], + "members":{ + "order":{ + "shape":"Order", + "documentation":"

Information about the order.

" + } + } + }, + "AcknowledgmentStatus":{ + "type":"string", + "enum":[ + "ACKNOWLEDGING", + "ACKNOWLEDGED", + "UNACKNOWLEDGED" + ] + }, + "ActivateDeviceIdentifierRequest":{ + "type":"structure", + "required":["deviceIdentifierArn"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

" + }, + "deviceIdentifierArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the device identifier.

" + } + } + }, + "ActivateDeviceIdentifierResponse":{ + "type":"structure", + "required":["deviceIdentifier"], + "members":{ + "deviceIdentifier":{ + "shape":"DeviceIdentifier", + "documentation":"

Information about the device identifier.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags on the device identifier.

" + } + } + }, + "ActivateNetworkSiteRequest":{ + "type":"structure", + "required":[ + "networkSiteArn", + "shippingAddress" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

" + }, + "networkSiteArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network site.

" + }, + "shippingAddress":{ + "shape":"Address", + "documentation":"

The shipping address of the network site.

" + } + } + }, + "ActivateNetworkSiteResponse":{ + "type":"structure", + "members":{ + "networkSite":{ + "shape":"NetworkSite", + "documentation":"

Information about the network site.

" + } + } + }, + "Address":{ + "type":"structure", + "required":[ + "city", + "country", + "name", + "postalCode", + "stateOrProvince", + "street1" + ], + "members":{ + "city":{ + "shape":"AddressContent", + "documentation":"

The city for this address.

" + }, + "company":{ + "shape":"AddressContent", + "documentation":"

The company name for this address.

" + }, + "country":{ + "shape":"AddressContent", + "documentation":"

The country for this address.

" + }, + "name":{ + "shape":"AddressContent", + "documentation":"

The recipient's name for this address.

" + }, + "phoneNumber":{ + "shape":"AddressContent", + "documentation":"

The phone number for this address.

" + }, + "postalCode":{ + "shape":"AddressContent", + "documentation":"

The postal code for this address.

" + }, + "stateOrProvince":{ + "shape":"AddressContent", + "documentation":"

The state or province for this address.

" + }, + "street1":{ + "shape":"AddressContent", + "documentation":"

The first line of the street address.

" + }, + "street2":{ + "shape":"AddressContent", + "documentation":"

The second line of the street address.

" + }, + "street3":{ + "shape":"AddressContent", + "documentation":"

The third line of the street address.

" + } + }, + "documentation":"

Information about an address.

" + }, + "AddressContent":{ + "type":"string", + "max":1024, + "min":1, + "sensitive":true + }, + "Arn":{ + "type":"string", + "pattern":"^arn:aws:private-networks:[a-z0-9-]+:[^:]*:.*$" + }, + "ClientToken":{ + "type":"string", + "max":100, + "min":1 + }, + "ConfigureAccessPointRequest":{ + "type":"structure", + "required":["accessPointArn"], + "members":{ + "accessPointArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network resource.

" + }, + "cpiSecretKey":{ + "shape":"ConfigureAccessPointRequestCpiSecretKeyString", + "documentation":"

A Base64 encoded string of the CPI certificate associated with the CPI user who is certifying the coordinates of the network resource.

" + }, + "cpiUserId":{ + "shape":"ConfigureAccessPointRequestCpiUserIdString", + "documentation":"

The CPI user ID of the CPI user who is certifying the coordinates of the network resource.

" + }, + "cpiUserPassword":{ + "shape":"ConfigureAccessPointRequestCpiUserPasswordString", + "documentation":"

The CPI password associated with the CPI certificate in cpiSecretKey.

" + }, + "cpiUsername":{ + "shape":"ConfigureAccessPointRequestCpiUsernameString", + "documentation":"

The CPI user name of the CPI user who is certifying the coordinates of the radio unit.

" + }, + "position":{ + "shape":"Position", + "documentation":"

The position of the network resource.

" + } + } + }, + "ConfigureAccessPointRequestCpiSecretKeyString":{ + "type":"string", + "max":100000, + "min":1, + "sensitive":true + }, + "ConfigureAccessPointRequestCpiUserIdString":{ + "type":"string", + "max":4096, + "min":1, + "sensitive":true + }, + "ConfigureAccessPointRequestCpiUserPasswordString":{ + "type":"string", + "max":4096, + "min":1, + "sensitive":true + }, + "ConfigureAccessPointRequestCpiUsernameString":{ + "type":"string", + "max":4096, + "min":1, + "sensitive":true + }, + "ConfigureAccessPointResponse":{ + "type":"structure", + "required":["accessPoint"], + "members":{ + "accessPoint":{ + "shape":"NetworkResource", + "documentation":"

Information about the network resource.

" + } + } + }, + "CreateNetworkRequest":{ + "type":"structure", + "required":["networkName"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the network.

" + }, + "networkName":{ + "shape":"Name", + "documentation":"

The name of the network. You can't change the name after you create the network.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags to apply to the network.

" + } + } + }, + "CreateNetworkResponse":{ + "type":"structure", + "required":["network"], + "members":{ + "network":{ + "shape":"Network", + "documentation":"

Information about the network.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The network tags.

" + } + } + }, + "CreateNetworkSiteRequest":{ + "type":"structure", + "required":[ + "networkArn", + "networkSiteName" + ], + "members":{ + "availabilityZone":{ + "shape":"String", + "documentation":"

The Availability Zone that is the parent of this site. You can't change the Availability Zone after you create the site.

" + }, + "availabilityZoneId":{ + "shape":"String", + "documentation":"

The ID of the Availability Zone that is the parent of this site. You can't change the Availability Zone after you create the site.

" + }, + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the site.

" + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network.

" + }, + "networkSiteName":{ + "shape":"Name", + "documentation":"

The name of the site. You can't change the name after you create the site.

" + }, + "pendingPlan":{ + "shape":"SitePlan", + "documentation":"

Information about the pending plan for this site.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags to apply to the network site.

" + } + } + }, + "CreateNetworkSiteResponse":{ + "type":"structure", + "members":{ + "networkSite":{ + "shape":"NetworkSite", + "documentation":"

Information about the network site.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The network site tags.

" + } + } + }, + "DeactivateDeviceIdentifierRequest":{ + "type":"structure", + "required":["deviceIdentifierArn"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

" + }, + "deviceIdentifierArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the device identifier.

" + } + } + }, + "DeactivateDeviceIdentifierResponse":{ + "type":"structure", + "required":["deviceIdentifier"], + "members":{ + "deviceIdentifier":{ + "shape":"DeviceIdentifier", + "documentation":"

Information about the device identifier.

" + } + } + }, + "DeleteNetworkRequest":{ + "type":"structure", + "required":["networkArn"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "location":"querystring", + "locationName":"clientToken" + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network.

", + "location":"uri", + "locationName":"networkArn" + } + } + }, + "DeleteNetworkResponse":{ + "type":"structure", + "required":["network"], + "members":{ + "network":{ + "shape":"Network", + "documentation":"

Information about the network.

" + } + } + }, + "DeleteNetworkSiteRequest":{ + "type":"structure", + "required":["networkSiteArn"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

", + "location":"querystring", + "locationName":"clientToken" + }, + "networkSiteArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network site.

", + "location":"uri", + "locationName":"networkSiteArn" + } + } + }, + "DeleteNetworkSiteResponse":{ + "type":"structure", + "members":{ + "networkSite":{ + "shape":"NetworkSite", + "documentation":"

Information about the network site.

" + } + } + }, + "Description":{ + "type":"string", + "max":100, + "min":0 + }, + "DeviceIdentifier":{ + "type":"structure", + "members":{ + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The creation time of this device identifier.

" + }, + "deviceIdentifierArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the device identifier.

" + }, + "iccid":{ + "shape":"String", + "documentation":"

The Integrated Circuit Card Identifier of the device identifier.

" + }, + "imsi":{ + "shape":"DeviceIdentifierImsiString", + "documentation":"

The International Mobile Subscriber Identity of the device identifier.

" + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network on which the device identifier appears.

" + }, + "orderArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the order used to purchase the device identifier.

" + }, + "status":{ + "shape":"DeviceIdentifierStatus", + "documentation":"

The status of the device identifier.

" + }, + "trafficGroupArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the traffic group to which the device identifier belongs.

" + }, + "vendor":{ + "shape":"String", + "documentation":"

The vendor of the device identifier.

" + } + }, + "documentation":"

Information about a subscriber of a device that can use a network.

" + }, + "DeviceIdentifierFilterKeys":{ + "type":"string", + "enum":[ + "STATUS", + "ORDER", + "TRAFFIC_GROUP" + ] + }, + "DeviceIdentifierFilterValues":{ + "type":"list", + "member":{"shape":"String"} + }, + "DeviceIdentifierFilters":{ + "type":"map", + "key":{"shape":"DeviceIdentifierFilterKeys"}, + "value":{"shape":"DeviceIdentifierFilterValues"} + }, + "DeviceIdentifierImsiString":{ + "type":"string", + "pattern":"^[0-9]{15}$", + "sensitive":true + }, + "DeviceIdentifierList":{ + "type":"list", + "member":{"shape":"DeviceIdentifier"} + }, + "DeviceIdentifierStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "INACTIVE" + ] + }, + "Double":{ + "type":"double", + "box":true + }, + "ElevationReference":{ + "type":"string", + "enum":[ + "AGL", + "AMSL" + ] + }, + "ElevationUnit":{ + "type":"string", + "enum":["FEET"] + }, + "GetDeviceIdentifierRequest":{ + "type":"structure", + "required":["deviceIdentifierArn"], + "members":{ + "deviceIdentifierArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the device identifier.

", + "location":"uri", + "locationName":"deviceIdentifierArn" + } + } + }, + "GetDeviceIdentifierResponse":{ + "type":"structure", + "members":{ + "deviceIdentifier":{ + "shape":"DeviceIdentifier", + "documentation":"

Information about the device identifier.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The device identifier tags.

" + } + } + }, + "GetNetworkRequest":{ + "type":"structure", + "required":["networkArn"], + "members":{ + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network.

", + "location":"uri", + "locationName":"networkArn" + } + } + }, + "GetNetworkResourceRequest":{ + "type":"structure", + "required":["networkResourceArn"], + "members":{ + "networkResourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network resource.

", + "location":"uri", + "locationName":"networkResourceArn" + } + } + }, + "GetNetworkResourceResponse":{ + "type":"structure", + "required":["networkResource"], + "members":{ + "networkResource":{ + "shape":"NetworkResource", + "documentation":"

Information about the network resource.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The network resource tags.

" + } + } + }, + "GetNetworkResponse":{ + "type":"structure", + "required":["network"], + "members":{ + "network":{ + "shape":"Network", + "documentation":"

Information about the network.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The network tags.

" + } + } + }, + "GetNetworkSiteRequest":{ + "type":"structure", + "required":["networkSiteArn"], + "members":{ + "networkSiteArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network site.

", + "location":"uri", + "locationName":"networkSiteArn" + } + } + }, + "GetNetworkSiteResponse":{ + "type":"structure", + "members":{ + "networkSite":{ + "shape":"NetworkSite", + "documentation":"

Information about the network site.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The network site tags.

" + } + } + }, + "GetOrderRequest":{ + "type":"structure", + "required":["orderArn"], + "members":{ + "orderArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the order.

", + "location":"uri", + "locationName":"orderArn" + } + } + }, + "GetOrderResponse":{ + "type":"structure", + "required":["order"], + "members":{ + "order":{ + "shape":"Order", + "documentation":"

Information about the order.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The order tags.

" + } + } + }, + "HealthStatus":{ + "type":"string", + "enum":[ + "INITIAL", + "HEALTHY", + "UNHEALTHY" + ] + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{ + "shape":"String", + "documentation":"

Description of the error.

" + }, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

Advice to clients on when the call can be safely retried.

", + "location":"header", + "locationName":"Retry-After" + } + }, + "documentation":"

Information about an internal error.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "LimitExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The limit was exceeded.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ListDeviceIdentifiersRequest":{ + "type":"structure", + "required":["networkArn"], + "members":{ + "filters":{ + "shape":"DeviceIdentifierFilters", + "documentation":"

The filters.

  • ORDER - The Amazon Resource Name (ARN) of the order.

  • STATUS - The status (ACTIVE | INACTIVE).

  • TRAFFIC_GROUP - The Amazon Resource Name (ARN) of the traffic group.

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

" + }, + "maxResults":{ + "shape":"ListDeviceIdentifiersRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return.

", + "box":true + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network.

" + }, + "startToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListDeviceIdentifiersRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, + "ListDeviceIdentifiersResponse":{ + "type":"structure", + "members":{ + "deviceIdentifiers":{ + "shape":"DeviceIdentifierList", + "documentation":"

Information about the device identifiers.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListNetworkResourcesRequest":{ + "type":"structure", + "required":["networkArn"], + "members":{ + "filters":{ + "shape":"NetworkResourceFilters", + "documentation":"

The filters.

  • ORDER - The Amazon Resource Name (ARN) of the order.

  • STATUS - The status (AVAILABLE | DELETED | DELETING | PENDING | PENDING_RETURN | PROVISIONING | SHIPPED).

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

" + }, + "maxResults":{ + "shape":"ListNetworkResourcesRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return.

", + "box":true + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network.

" + }, + "startToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListNetworkResourcesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, + "ListNetworkResourcesResponse":{ + "type":"structure", + "members":{ + "networkResources":{ + "shape":"NetworkResourceList", + "documentation":"

Information about network resources.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListNetworkSitesRequest":{ + "type":"structure", + "required":["networkArn"], + "members":{ + "filters":{ + "shape":"NetworkSiteFilters", + "documentation":"

The filters. Add filters to your request to return a more specific list of results. Use filters to match the status of the network sites.

  • STATUS - The status (AVAILABLE | CREATED | DELETED | DEPROVISIONING | PROVISIONING).

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

" + }, + "maxResults":{ + "shape":"ListNetworkSitesRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return.

", + "box":true + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network.

" + }, + "startToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListNetworkSitesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, + "ListNetworkSitesResponse":{ + "type":"structure", + "members":{ + "networkSites":{ + "shape":"NetworkSiteList", + "documentation":"

Information about the network sites.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListNetworksRequest":{ + "type":"structure", + "members":{ + "filters":{ + "shape":"NetworkFilters", + "documentation":"

The filters.

  • STATUS - The status (AVAILABLE | CREATED | DELETED | DEPROVISIONING | PROVISIONING).

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

" + }, + "maxResults":{ + "shape":"ListNetworksRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return.

", + "box":true + }, + "startToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListNetworksRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, + "ListNetworksResponse":{ + "type":"structure", + "members":{ + "networks":{ + "shape":"NetworkList", + "documentation":"

The networks.

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListOrdersRequest":{ + "type":"structure", + "required":["networkArn"], + "members":{ + "filters":{ + "shape":"OrderFilters", + "documentation":"

The filters.

  • NETWORK_SITE - The Amazon Resource Name (ARN) of the network site.

  • STATUS - The status (ACKNOWLEDGING | ACKNOWLEDGED | UNACKNOWLEDGED).

Filter values are case sensitive. If you specify multiple values for a filter, the values are joined with an OR, and the request returns all results that match any of the specified values.

" + }, + "maxResults":{ + "shape":"ListOrdersRequestMaxResultsInteger", + "documentation":"

The maximum number of results to return.

", + "box":true + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network.

" + }, + "startToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + } + } + }, + "ListOrdersRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, + "ListOrdersResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The token for the next page of results.

" + }, + "orders":{ + "shape":"OrderList", + "documentation":"

Information about the orders.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

The resource tags.

" + } + } + }, + "Name":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[0-9a-zA-Z-]*$" + }, + "NameValuePair":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"String", + "documentation":"

The name of the pair.

" + }, + "value":{ + "shape":"String", + "documentation":"

The value of the pair.

" + } + }, + "documentation":"

Information about a name/value pair.

" + }, + "NameValuePairs":{ + "type":"list", + "member":{"shape":"NameValuePair"} + }, + "Network":{ + "type":"structure", + "required":[ + "networkArn", + "networkName", + "status" + ], + "members":{ + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The creation time of the network.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the network.

" + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network.

" + }, + "networkName":{ + "shape":"Name", + "documentation":"

The name of the network.

" + }, + "status":{ + "shape":"NetworkStatus", + "documentation":"

The status of the network.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The status reason of the network.

" + } + }, + "documentation":"

Information about a network.

" + }, + "NetworkFilterKeys":{ + "type":"string", + "enum":["STATUS"] + }, + "NetworkFilterValues":{ + "type":"list", + "member":{"shape":"String"} + }, + "NetworkFilters":{ + "type":"map", + "key":{"shape":"NetworkFilterKeys"}, + "value":{"shape":"NetworkFilterValues"} + }, + "NetworkList":{ + "type":"list", + "member":{"shape":"Network"} + }, + "NetworkResource":{ + "type":"structure", + "members":{ + "attributes":{ + "shape":"NameValuePairs", + "documentation":"

The attributes of the network resource.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The creation time of the network resource.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the network resource.

" + }, + "health":{ + "shape":"HealthStatus", + "documentation":"

The health of the network resource.

" + }, + "model":{ + "shape":"String", + "documentation":"

The model of the network resource.

" + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network on which this network resource appears.

" + }, + "networkResourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network resource.

" + }, + "networkSiteArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network site on which this network resource appears.

" + }, + "orderArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the order used to purchase this network resource.

" + }, + "position":{ + "shape":"Position", + "documentation":"

The position of the network resource.

" + }, + "serialNumber":{ + "shape":"String", + "documentation":"

The serial number of the network resource.

" + }, + "status":{ + "shape":"NetworkResourceStatus", + "documentation":"

The status of the network resource.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The status reason of the network resource.

" + }, + "type":{ + "shape":"NetworkResourceType", + "documentation":"

The type of the network resource.

" + }, + "vendor":{ + "shape":"String", + "documentation":"

The vendor of the network resource.

" + } + }, + "documentation":"

Information about a network resource.

" + }, + "NetworkResourceDefinition":{ + "type":"structure", + "required":[ + "count", + "type" + ], + "members":{ + "count":{ + "shape":"NetworkResourceDefinitionCountInteger", + "documentation":"

The count in the network resource definition.

" + }, + "options":{ + "shape":"Options", + "documentation":"

The options in the network resource definition.

" + }, + "type":{ + "shape":"NetworkResourceDefinitionType", + "documentation":"

The type in the network resource definition.

" + } + }, + "documentation":"

Information about a network resource definition.

" + }, + "NetworkResourceDefinitionCountInteger":{ + "type":"integer", + "box":true, + "min":0 + }, + "NetworkResourceDefinitionType":{ + "type":"string", + "enum":[ + "RADIO_UNIT", + "DEVICE_IDENTIFIER" + ] + }, + "NetworkResourceDefinitions":{ + "type":"list", + "member":{"shape":"NetworkResourceDefinition"} + }, + "NetworkResourceFilterKeys":{ + "type":"string", + "enum":[ + "ORDER", + "STATUS" + ] + }, + "NetworkResourceFilterValues":{ + "type":"list", + "member":{"shape":"String"} + }, + "NetworkResourceFilters":{ + "type":"map", + "key":{"shape":"NetworkResourceFilterKeys"}, + "value":{"shape":"NetworkResourceFilterValues"} + }, + "NetworkResourceList":{ + "type":"list", + "member":{"shape":"NetworkResource"} + }, + "NetworkResourceStatus":{ + "type":"string", + "enum":[ + "PENDING", + "SHIPPED", + "PROVISIONING", + "PROVISIONED", + "AVAILABLE", + "DELETING", + "PENDING_RETURN", + "DELETED" + ] + }, + "NetworkResourceType":{ + "type":"string", + "enum":["RADIO_UNIT"] + }, + "NetworkSite":{ + "type":"structure", + "required":[ + "networkArn", + "networkSiteArn", + "networkSiteName", + "status" + ], + "members":{ + "availabilityZone":{ + "shape":"String", + "documentation":"

The parent Availability Zone for the network site.

" + }, + "availabilityZoneId":{ + "shape":"String", + "documentation":"

The parent Availability Zone ID for the network site.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The creation time of the network site.

" + }, + "currentPlan":{ + "shape":"SitePlan", + "documentation":"

The current plan of the network site.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description of the network site.

" + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network to which the network site belongs.

" + }, + "networkSiteArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network site.

" + }, + "networkSiteName":{ + "shape":"Name", + "documentation":"

The name of the network site.

" + }, + "pendingPlan":{ + "shape":"SitePlan", + "documentation":"

The pending plan of the network site.

" + }, + "status":{ + "shape":"NetworkSiteStatus", + "documentation":"

The status of the network site.

" + }, + "statusReason":{ + "shape":"String", + "documentation":"

The status reason of the network site.

" + } + }, + "documentation":"

Information about a network site.

" + }, + "NetworkSiteFilterKeys":{ + "type":"string", + "enum":["STATUS"] + }, + "NetworkSiteFilterValues":{ + "type":"list", + "member":{"shape":"String"} + }, + "NetworkSiteFilters":{ + "type":"map", + "key":{"shape":"NetworkSiteFilterKeys"}, + "value":{"shape":"NetworkSiteFilterValues"} + }, + "NetworkSiteList":{ + "type":"list", + "member":{"shape":"NetworkSite"} + }, + "NetworkSiteStatus":{ + "type":"string", + "enum":[ + "CREATED", + "PROVISIONING", + "AVAILABLE", + "DEPROVISIONING", + "DELETED" + ] + }, + "NetworkStatus":{ + "type":"string", + "enum":[ + "CREATED", + "PROVISIONING", + "AVAILABLE", + "DEPROVISIONING", + "DELETED" + ] + }, + "Options":{ + "type":"list", + "member":{"shape":"NameValuePair"} + }, + "Order":{ + "type":"structure", + "members":{ + "acknowledgmentStatus":{ + "shape":"AcknowledgmentStatus", + "documentation":"

The acknowledgement status of the order.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The creation time of the order.

" + }, + "networkArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network associated with this order.

" + }, + "networkSiteArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network site associated with this order.

" + }, + "orderArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the order.

" + }, + "shippingAddress":{ + "shape":"Address", + "documentation":"

The shipping address of the order.

" + }, + "trackingInformation":{ + "shape":"TrackingInformationList", + "documentation":"

The tracking information of the order.

" + } + }, + "documentation":"

Information about an order.

" + }, + "OrderFilterKeys":{ + "type":"string", + "enum":[ + "STATUS", + "NETWORK_SITE" + ] + }, + "OrderFilterValues":{ + "type":"list", + "member":{"shape":"String"} + }, + "OrderFilters":{ + "type":"map", + "key":{"shape":"OrderFilterKeys"}, + "value":{"shape":"OrderFilterValues"} + }, + "OrderList":{ + "type":"list", + "member":{"shape":"Order"} + }, + "PaginationToken":{"type":"string"}, + "PingResponse":{ + "type":"structure", + "members":{ + "status":{ + "shape":"String", + "documentation":"

Information about the health of the service.

" + } + } + }, + "Position":{ + "type":"structure", + "members":{ + "elevation":{ + "shape":"Double", + "documentation":"

The elevation of the equipment at this position.

" + }, + "elevationReference":{ + "shape":"ElevationReference", + "documentation":"

The reference point from which elevation is reported.

" + }, + "elevationUnit":{ + "shape":"ElevationUnit", + "documentation":"

The units used to measure the elevation of the position.

" + }, + "latitude":{ + "shape":"Double", + "documentation":"

The latitude of the position.

" + }, + "longitude":{ + "shape":"Double", + "documentation":"

The longitude of the position.

" + } + }, + "documentation":"

Information about a position.

" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{ + "shape":"String", + "documentation":"

Description of the error.

" + }, + "resourceId":{ + "shape":"String", + "documentation":"

Identifier of the affected resource.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

Type of the affected resource.

" + } + }, + "documentation":"

The resource was not found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "SitePlan":{ + "type":"structure", + "members":{ + "options":{ + "shape":"Options", + "documentation":"

The options of the plan.

" + }, + "resourceDefinitions":{ + "shape":"NetworkResourceDefinitions", + "documentation":"

The resource definitions of the plan.

" + } + }, + "documentation":"

Information about a site plan.

" + }, + "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^(?!aws:)[^\\x00-\\x1f\\x22]+$" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1, + "sensitive":true + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":1, + "sensitive":true + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The tags to add to the resource.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^[^\\x00-\\x1f\\x22]*$" + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "Timestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TrackingInformation":{ + "type":"structure", + "members":{ + "trackingNumber":{ + "shape":"String", + "documentation":"

The tracking number of the shipment.

" + } + }, + "documentation":"

Information about tracking a shipment.

" + }, + "TrackingInformationList":{ + "type":"list", + "member":{"shape":"TrackingInformation"} + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

The tag keys.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateNetworkSitePlanRequest":{ + "type":"structure", + "required":[ + "networkSiteArn", + "pendingPlan" + ], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

" + }, + "networkSiteArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network site.

" + }, + "pendingPlan":{ + "shape":"SitePlan", + "documentation":"

The pending plan.

" + } + } + }, + "UpdateNetworkSiteRequest":{ + "type":"structure", + "required":["networkSiteArn"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.

" + }, + "description":{ + "shape":"Description", + "documentation":"

The description.

" + }, + "networkSiteArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the network site.

" + } + } + }, + "UpdateNetworkSiteResponse":{ + "type":"structure", + "members":{ + "networkSite":{ + "shape":"NetworkSite", + "documentation":"

Information about the network site.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

The network site tags.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

The list of fields that caused the error, if applicable.

" + }, + "message":{ + "shape":"String", + "documentation":"

Description of the error.

" + }, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

Reason the request failed validation.

" + } + }, + "documentation":"

The request failed validation.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{ + "shape":"String", + "documentation":"

The message about the validation failure.

" + }, + "name":{ + "shape":"String", + "documentation":"

The field name that failed validation.

" + } + }, + "documentation":"

Information about a field that failed validation.

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "UNKNOWN_OPERATION", + "CANNOT_PARSE", + "CANNOT_ASSUME_ROLE", + "FIELD_VALIDATION_FAILED", + "OTHER" + ] + } + }, + "documentation":"

Amazon Web Services Private 5G is a managed service that makes it easy to deploy, operate, and scale your own private mobile network at your on-premises location. Private 5G provides the pre-configured hardware and software for mobile networks, helps automate setup, and scales capacity on demand to support additional devices as needed.

" +} diff --git a/botocore/data/proton/2020-07-20/endpoint-rule-set-1.json b/botocore/data/proton/2020-07-20/endpoint-rule-set-1.json new file mode 100644 index 00000000..986847e5 --- /dev/null +++ b/botocore/data/proton/2020-07-20/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://proton-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://proton-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://proton.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://proton.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/proton/2020-07-20/examples-1.json b/botocore/data/proton/2020-07-20/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/proton/2020-07-20/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/proton/2020-07-20/paginators-1.json b/botocore/data/proton/2020-07-20/paginators-1.json index 9f835e49..450f2e29 100644 --- a/botocore/data/proton/2020-07-20/paginators-1.json +++ b/botocore/data/proton/2020-07-20/paginators-1.json @@ -94,6 +94,22 @@ "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" } } } diff --git a/botocore/data/proton/2020-07-20/service-2.json b/botocore/data/proton/2020-07-20/service-2.json index 247938ae..c5add92f 100644 --- a/botocore/data/proton/2020-07-20/service-2.json +++ b/botocore/data/proton/2020-07-20/service-2.json @@ -29,9 +29,27 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

In a management account, an environment account connection request is accepted. When the environment account connection request is accepted, Proton can use the associated IAM role to provision environment infrastructure resources in the associated environment account.

For more information, see Environment account connections in the Proton Administrator guide.

", + "documentation":"

In a management account, an environment account connection request is accepted. When the environment account connection request is accepted, Proton can use the associated IAM role to provision environment infrastructure resources in the associated environment account.

For more information, see Environment account connections in the Proton User guide.

", "idempotent":true }, + "CancelComponentDeployment":{ + "name":"CancelComponentDeployment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CancelComponentDeploymentInput"}, + "output":{"shape":"CancelComponentDeploymentOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Attempts to cancel a component deployment (for a component that is in the IN_PROGRESS deployment status).

For more information about components, see Proton components in the Proton User Guide.

" + }, "CancelEnvironmentDeployment":{ "name":"CancelEnvironmentDeployment", "http":{ @@ -48,7 +66,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Attempts to cancel an environment deployment on an UpdateEnvironment action, if the deployment is IN_PROGRESS. For more information, see Update an environment in the Proton Administrator guide.

The following list includes potential cancellation scenarios.

  • If the cancellation attempt succeeds, the resulting deployment state is CANCELLED.

  • If the cancellation attempt fails, the resulting deployment state is FAILED.

  • If the current UpdateEnvironment action succeeds before the cancellation attempt starts, the resulting deployment state is SUCCEEDED and the cancellation attempt has no effect.

" + "documentation":"

Attempts to cancel an environment deployment on an UpdateEnvironment action, if the deployment is IN_PROGRESS. For more information, see Update an environment in the Proton User guide.

The following list includes potential cancellation scenarios.

  • If the cancellation attempt succeeds, the resulting deployment state is CANCELLED.

  • If the cancellation attempt fails, the resulting deployment state is FAILED.

  • If the current UpdateEnvironment action succeeds before the cancellation attempt starts, the resulting deployment state is SUCCEEDED and the cancellation attempt has no effect.

" }, "CancelServiceInstanceDeployment":{ "name":"CancelServiceInstanceDeployment", @@ -66,7 +84,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Attempts to cancel a service instance deployment on an UpdateServiceInstance action, if the deployment is IN_PROGRESS. For more information, see Update a service instance in the Proton Administrator guide or the Proton User guide.

The following list includes potential cancellation scenarios.

  • If the cancellation attempt succeeds, the resulting deployment state is CANCELLED.

  • If the cancellation attempt fails, the resulting deployment state is FAILED.

  • If the current UpdateServiceInstance action succeeds before the cancellation attempt starts, the resulting deployment state is SUCCEEDED and the cancellation attempt has no effect.

" + "documentation":"

Attempts to cancel a service instance deployment on an UpdateServiceInstance action, if the deployment is IN_PROGRESS. For more information, see Update a service instance in the Proton User guide.

The following list includes potential cancellation scenarios.

  • If the cancellation attempt succeeds, the resulting deployment state is CANCELLED.

  • If the cancellation attempt fails, the resulting deployment state is FAILED.

  • If the current UpdateServiceInstance action succeeds before the cancellation attempt starts, the resulting deployment state is SUCCEEDED and the cancellation attempt has no effect.

" }, "CancelServicePipelineDeployment":{ "name":"CancelServicePipelineDeployment", @@ -84,7 +102,27 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Attempts to cancel a service pipeline deployment on an UpdateServicePipeline action, if the deployment is IN_PROGRESS. For more information, see Update a service pipeline in the Proton Administrator guide or the Proton User guide.

The following list includes potential cancellation scenarios.

  • If the cancellation attempt succeeds, the resulting deployment state is CANCELLED.

  • If the cancellation attempt fails, the resulting deployment state is FAILED.

  • If the current UpdateServicePipeline action succeeds before the cancellation attempt starts, the resulting deployment state is SUCCEEDED and the cancellation attempt has no effect.

" + "documentation":"

Attempts to cancel a service pipeline deployment on an UpdateServicePipeline action, if the deployment is IN_PROGRESS. For more information, see Update a service pipeline in the Proton User guide.

The following list includes potential cancellation scenarios.

  • If the cancellation attempt succeeds, the resulting deployment state is CANCELLED.

  • If the cancellation attempt fails, the resulting deployment state is FAILED.

  • If the current UpdateServicePipeline action succeeds before the cancellation attempt starts, the resulting deployment state is SUCCEEDED and the cancellation attempt has no effect.

" + }, + "CreateComponent":{ + "name":"CreateComponent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateComponentInput"}, + "output":{"shape":"CreateComponentOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Create an Proton component. A component is an infrastructure extension for a service instance.

For more information about components, see Proton components in the Proton User Guide.

", + "idempotent":true }, "CreateEnvironment":{ "name":"CreateEnvironment", @@ -103,7 +141,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Deploy a new environment. An Proton environment is created from an environment template that defines infrastructure and resources that can be shared across services.

You can provision environments using the following methods:

  • Amazon Web Services-managed provisioning: Proton makes direct calls to provision your resources.

  • Self-managed provisioning: Proton makes pull requests on your repository to provide compiled infrastructure as code (IaC) files that your IaC engine uses to provision resources.

For more information, see Environments and Provisioning methods in the Proton Administrator Guide.

", + "documentation":"

Deploy a new environment. An Proton environment is created from an environment template that defines infrastructure and resources that can be shared across services.

You can provision environments using the following methods:

  • Amazon Web Services-managed provisioning: Proton makes direct calls to provision your resources.

  • Self-managed provisioning: Proton makes pull requests on your repository to provide compiled infrastructure as code (IaC) files that your IaC engine uses to provision resources.

For more information, see Environments and Provisioning methods in the Proton User Guide.

", "idempotent":true }, "CreateEnvironmentAccountConnection":{ @@ -122,7 +160,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Create an environment account connection in an environment account so that environment infrastructure resources can be provisioned in the environment account from a management account.

An environment account connection is a secure bi-directional connection between a management account and an environment account that maintains authorization and permissions. For more information, see Environment account connections in the Proton Administrator guide.

", + "documentation":"

Create an environment account connection in an environment account so that environment infrastructure resources can be provisioned in the environment account from a management account.

An environment account connection is a secure bi-directional connection between a management account and an environment account that maintains authorization and permissions. For more information, see Environment account connections in the Proton User guide.

", "idempotent":true }, "CreateEnvironmentTemplate":{ @@ -141,7 +179,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Create an environment template for Proton. For more information, see Environment Templates in the Proton Administrator Guide.

You can create an environment template in one of the two following ways:

  • Register and publish a standard environment template that instructs Proton to deploy and manage environment infrastructure.

  • Register and publish a customer managed environment template that connects Proton to your existing provisioned infrastructure that you manage. Proton doesn't manage your existing provisioned infrastructure. To create an environment template for customer provisioned and managed infrastructure, include the provisioning parameter and set the value to CUSTOMER_MANAGED. For more information, see Register and publish an environment template in the Proton Administrator Guide.

", + "documentation":"

Create an environment template for Proton. For more information, see Environment Templates in the Proton User Guide.

You can create an environment template in one of the two following ways:

  • Register and publish a standard environment template that instructs Proton to deploy and manage environment infrastructure.

  • Register and publish a customer managed environment template that connects Proton to your existing provisioned infrastructure that you manage. Proton doesn't manage your existing provisioned infrastructure. To create an environment template for customer provisioned and managed infrastructure, include the provisioning parameter and set the value to CUSTOMER_MANAGED. For more information, see Register and publish an environment template in the Proton User Guide.

", "idempotent":true }, "CreateEnvironmentTemplateVersion":{ @@ -180,7 +218,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Create and register a link to a repository that can be used with self-managed provisioning (infrastructure or pipelines) or for template sync configurations. When you create a repository link, Proton creates a service-linked role for you.

For more information, see Self-managed provisioning, Template bundles, and Template sync configurations in the Proton Administrator Guide.

", + "documentation":"

Create and register a link to a repository. Proton uses the link to repeatedly access the repository, to either push to it (self-managed provisioning) or pull from it (template sync). You can share a linked repository across multiple resources (like environments using self-managed provisioning, or synced templates). When you create a repository link, Proton creates a service-linked role for you.

For more information, see Self-managed provisioning, Template bundles, and Template sync configurations in the Proton User Guide.

", "idempotent":true }, "CreateService":{ @@ -200,7 +238,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Create an Proton service. An Proton service is an instantiation of a service template and often includes several service instances and pipeline. For more information, see Services in the Proton Administrator Guide and Services in the Proton User Guide.

", + "documentation":"

Create an Proton service. An Proton service is an instantiation of a service template and often includes several service instances and pipeline. For more information, see Services in the Proton User Guide.

", "idempotent":true }, "CreateServiceTemplate":{ @@ -219,7 +257,7 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Create a service template. The administrator creates a service template to define standardized infrastructure and an optional CI/CD service pipeline. Developers, in turn, select the service template from Proton. If the selected service template includes a service pipeline definition, they provide a link to their source code repository. Proton then deploys and manages the infrastructure defined by the selected service template. For more information, see Service Templates in the Proton Administrator Guide.

", + "documentation":"

Create a service template. The administrator creates a service template to define standardized infrastructure and an optional CI/CD service pipeline. Developers, in turn, select the service template from Proton. If the selected service template includes a service pipeline definition, they provide a link to their source code repository. Proton then deploys and manages the infrastructure defined by the selected service template. For more information, see Proton templates in the Proton User Guide.

", "idempotent":true }, "CreateServiceTemplateVersion":{ @@ -258,7 +296,26 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Set up a template to create new template versions automatically. When a commit is pushed to your registered repository, Proton checks for changes to your repository template bundles. If it detects a template bundle change, a new major or minor version of its template is created, if the version doesn’t already exist. For more information, see Template sync configurations in the Proton Administrator Guide.

", + "documentation":"

Set up a template to create new template versions automatically by tracking a linked repository. A linked repository is a repository that has been registered with Proton. For more information, see CreateRepository.

When a commit is pushed to your linked repository, Proton checks for changes to your repository template bundles. If it detects a template bundle change, a new major or minor version of its template is created, if the version doesn’t already exist. For more information, see Template sync configurations in the Proton User Guide.

", + "idempotent":true + }, + "DeleteComponent":{ + "name":"DeleteComponent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteComponentInput"}, + "output":{"shape":"DeleteComponentOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Delete an Proton component resource.

For more information about components, see Proton components in the Proton User Guide.

", "idempotent":true }, "DeleteEnvironment":{ @@ -296,7 +353,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

In an environment account, delete an environment account connection.

After you delete an environment account connection that’s in use by an Proton environment, Proton can’t manage the environment infrastructure resources until a new environment account connection is accepted for the environment account and associated environment. You're responsible for cleaning up provisioned resources that remain without an environment connection.

For more information, see Environment account connections in the Proton Administrator guide.

", + "documentation":"

In an environment account, delete an environment account connection.

After you delete an environment account connection that’s in use by an Proton environment, Proton can’t manage the environment infrastructure resources until a new environment account connection is accepted for the environment account and associated environment. You're responsible for cleaning up provisioned resources that remain without an environment connection.

For more information, see Environment account connections in the Proton User guide.

", "idempotent":true }, "DeleteEnvironmentTemplate":{ @@ -372,7 +429,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Delete a service.

", + "documentation":"

Delete a service, with its instances and pipeline.

You can't delete a service if it has any service instances that have components attached to them.

For more information about components, see Proton components in the Proton User Guide.

", "idempotent":true }, "DeleteServiceTemplate":{ @@ -447,7 +504,24 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get detail data for the Proton pipeline service role.

" + "documentation":"

Get detail data for Proton account-wide settings.

" + }, + "GetComponent":{ + "name":"GetComponent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetComponentInput"}, + "output":{"shape":"GetComponentOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Get detailed data for a component.

For more information about components, see Proton components in the Proton User Guide.

" }, "GetEnvironment":{ "name":"GetEnvironment", @@ -464,7 +538,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get detail data for an environment.

" + "documentation":"

Get detailed data for an environment.

" }, "GetEnvironmentAccountConnection":{ "name":"GetEnvironmentAccountConnection", @@ -481,7 +555,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

In an environment account, view the detail data for an environment account connection.

For more information, see Environment account connections in the Proton Administrator guide.

" + "documentation":"

In an environment account, get the detailed data for an environment account connection.

For more information, see Environment account connections in the Proton User guide.

" }, "GetEnvironmentTemplate":{ "name":"GetEnvironmentTemplate", @@ -498,7 +572,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get detail data for an environment template.

" + "documentation":"

Get detailed data for an environment template.

" }, "GetEnvironmentTemplateVersion":{ "name":"GetEnvironmentTemplateVersion", @@ -515,7 +589,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

View detail data for a major or minor version of an environment template.

" + "documentation":"

Get detailed data for a major or minor version of an environment template.

" }, "GetRepository":{ "name":"GetRepository", @@ -532,7 +606,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get detail data for a repository.

" + "documentation":"

Get detail data for a linked repository.

" }, "GetRepositorySyncStatus":{ "name":"GetRepositorySyncStatus", @@ -549,7 +623,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get the sync status of a repository used for Proton template sync. For more information about template sync, see .

A repository sync status isn't tied to the Proton Repository resource (or any other Proton resource). Therefore, tags on an Proton Repository resource have no effect on this action. Specifically, you can't use these tags to control access to this action using Attribute-based access control (ABAC).

For more information about ABAC, see ABAC in the Proton Administrator Guide.

" + "documentation":"

Get the sync status of a repository used for Proton template sync. For more information about template sync, see .

A repository sync status isn't tied to the Proton Repository resource (or any other Proton resource). Therefore, tags on an Proton Repository resource have no effect on this action. Specifically, you can't use these tags to control access to this action using Attribute-based access control (ABAC).

For more information about ABAC, see ABAC in the Proton User Guide.

" }, "GetService":{ "name":"GetService", @@ -566,7 +640,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get detail data for a service.

" + "documentation":"

Get detailed data for a service.

" }, "GetServiceInstance":{ "name":"GetServiceInstance", @@ -583,7 +657,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get detail data for a service instance. A service instance is an instantiation of service template and it runs in a specific environment.

" + "documentation":"

Get detailed data for a service instance. A service instance is an instantiation of service template and it runs in a specific environment.

" }, "GetServiceTemplate":{ "name":"GetServiceTemplate", @@ -600,7 +674,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Get detail data for a service template.

" + "documentation":"

Get detailed data for a service template.

" }, "GetServiceTemplateVersion":{ "name":"GetServiceTemplateVersion", @@ -617,7 +691,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

View detail data for a major or minor version of a service template.

" + "documentation":"

Get detailed data for a major or minor version of a service template.

" }, "GetTemplateSyncConfig":{ "name":"GetTemplateSyncConfig", @@ -653,6 +727,56 @@ ], "documentation":"

Get the status of a template sync.

" }, + "ListComponentOutputs":{ + "name":"ListComponentOutputs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListComponentOutputsInput"}, + "output":{"shape":"ListComponentOutputsOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Get a list of component Infrastructure as Code (IaC) outputs.

For more information about components, see Proton components in the Proton User Guide.

" + }, + "ListComponentProvisionedResources":{ + "name":"ListComponentProvisionedResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListComponentProvisionedResourcesInput"}, + "output":{"shape":"ListComponentProvisionedResourcesOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

List provisioned resources for a component with details.

For more information about components, see Proton components in the Proton User Guide.

" + }, + "ListComponents":{ + "name":"ListComponents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListComponentsInput"}, + "output":{"shape":"ListComponentsOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

List components with summary data. You can filter the result list by environment, service, or a single service instance.

For more information about components, see Proton components in the Proton User Guide.

" + }, "ListEnvironmentAccountConnections":{ "name":"ListEnvironmentAccountConnections", "http":{ @@ -667,7 +791,7 @@ {"shape":"ThrottlingException"}, {"shape":"InternalServerException"} ], - "documentation":"

View a list of environment account connections.

For more information, see Environment account connections in the Proton Administrator guide.

" + "documentation":"

View a list of environment account connections.

For more information, see Environment account connections in the Proton User guide.

" }, "ListEnvironmentOutputs":{ "name":"ListEnvironmentOutputs", @@ -768,7 +892,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

List repositories with detail data.

" + "documentation":"

List linked repositories with detail data.

" }, "ListRepositorySyncDefinitions":{ "name":"ListRepositorySyncDefinitions", @@ -801,7 +925,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

View a list service instance infrastructure as code outputs with detail data.

" + "documentation":"

Get a list service of instance Infrastructure as Code (IaC) outputs.

" }, "ListServiceInstanceProvisionedResources":{ "name":"ListServiceInstanceProvisionedResources", @@ -835,7 +959,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

List service instances with summaries of detail data.

" + "documentation":"

List service instances with summary data. This action lists service instances of all services in the Amazon Web Services account.

" }, "ListServicePipelineOutputs":{ "name":"ListServicePipelineOutputs", @@ -852,7 +976,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

View a list service pipeline infrastructure as code outputs with detail.

" + "documentation":"

Get a list of service pipeline Infrastructure as Code (IaC) outputs.

" }, "ListServicePipelineProvisionedResources":{ "name":"ListServicePipelineProvisionedResources", @@ -935,7 +1059,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

List tags for a resource. For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

" + "documentation":"

List tags for a resource. For more information, see Proton resources and tagging in the Proton User Guide.

" }, "NotifyResourceDeploymentStatusChange":{ "name":"NotifyResourceDeploymentStatusChange", @@ -954,7 +1078,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Notify Proton of status changes to a provisioned resource when you use self-managed provisioning.

For more information, see Self-managed provisioning in the Proton Administrator Guide.

" + "documentation":"

Notify Proton of status changes to a provisioned resource when you use self-managed provisioning.

For more information, see Self-managed provisioning in the Proton User Guide.

" }, "RejectEnvironmentAccountConnection":{ "name":"RejectEnvironmentAccountConnection", @@ -972,7 +1096,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

In a management account, reject an environment account connection from another environment account.

After you reject an environment account connection request, you can't accept or use the rejected environment account connection.

You can’t reject an environment account connection that's connected to an environment.

For more information, see Environment account connections in the Proton Administrator guide.

", + "documentation":"

In a management account, reject an environment account connection from another environment account.

After you reject an environment account connection request, you can't accept or use the rejected environment account connection.

You can’t reject an environment account connection that's connected to an environment.

For more information, see Environment account connections in the Proton User guide.

", "idempotent":true }, "TagResource":{ @@ -991,7 +1115,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Tag a resource. A tag is a key-value pair of metadata that you associate with an Proton resource.

For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

", + "documentation":"

Tag a resource. A tag is a key-value pair of metadata that you associate with an Proton resource.

For more information, see Proton resources and tagging in the Proton User Guide.

", "idempotent":true }, "UntagResource":{ @@ -1010,7 +1134,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Remove a customer tag from a resource. A tag is a key-value pair of metadata associated with an Proton resource.

For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

", + "documentation":"

Remove a customer tag from a resource. A tag is a key-value pair of metadata associated with an Proton resource.

For more information, see Proton resources and tagging in the Proton User Guide.

", "idempotent":true }, "UpdateAccountSettings":{ @@ -1028,7 +1152,26 @@ {"shape":"ConflictException"}, {"shape":"InternalServerException"} ], - "documentation":"

Update the Proton service pipeline role or repository settings.

" + "documentation":"

Update Proton settings that are used for multiple services in the Amazon Web Services account.

" + }, + "UpdateComponent":{ + "name":"UpdateComponent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateComponentInput"}, + "output":{"shape":"UpdateComponentOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Update a component.

There are a few modes for updating a component. The deploymentType field defines the mode.

You can't update a component while its deployment status, or the deployment status of a service instance attached to it, is IN_PROGRESS.

For more information about components, see Proton components in the Proton User Guide.

" }, "UpdateEnvironment":{ "name":"UpdateEnvironment", @@ -1046,7 +1189,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Update an environment.

If the environment is associated with an environment account connection, don't update or include the protonServiceRoleArn and provisioningRepository parameter to update or connect to an environment account connection.

You can only update to a new environment account connection if that connection was created in the same environment account that the current environment account connection was created in. The account connection must also be associated with the current environment.

If the environment isn't associated with an environment account connection, don't update or include the environmentAccountConnectionId parameter. You can't update or connect the environment to an environment account connection if it isn't already associated with an environment connection.

You can update either the environmentAccountConnectionId or protonServiceRoleArn parameter and value. You can’t update both.

If the environment was configured for Amazon Web Services-managed provisioning, omit the provisioningRepository parameter.

If the environment was configured for self-managed provisioning, specify the provisioningRepository parameter and omit the protonServiceRoleArn and environmentAccountConnectionId parameters.

For more information, see Environments and Provisioning methods in the Proton Administrator Guide.

There are four modes for updating an environment. The deploymentType field defines the mode.

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the environment is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include minor or major version parameters when you use this deployment-type.

MINOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that's higher than the major version in use and a minor version.

" + "documentation":"

Update an environment.

If the environment is associated with an environment account connection, don't update or include the protonServiceRoleArn and provisioningRepository parameter to update or connect to an environment account connection.

You can only update to a new environment account connection if that connection was created in the same environment account that the current environment account connection was created in. The account connection must also be associated with the current environment.

If the environment isn't associated with an environment account connection, don't update or include the environmentAccountConnectionId parameter. You can't update or connect the environment to an environment account connection if it isn't already associated with an environment connection.

You can update either the environmentAccountConnectionId or protonServiceRoleArn parameter and value. You can’t update both.

If the environment was configured for Amazon Web Services-managed provisioning, omit the provisioningRepository parameter.

If the environment was configured for self-managed provisioning, specify the provisioningRepository parameter and omit the protonServiceRoleArn and environmentAccountConnectionId parameters.

For more information, see Environments and Provisioning methods in the Proton User Guide.

There are four modes for updating an environment. The deploymentType field defines the mode.

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the environment is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include minor or major version parameters when you use this deployment-type.

MINOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that's higher than the major version in use and a minor version.

" }, "UpdateEnvironmentAccountConnection":{ "name":"UpdateEnvironmentAccountConnection", @@ -1064,7 +1207,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

In an environment account, update an environment account connection to use a new IAM role.

For more information, see Environment account connections in the Proton Administrator guide.

", + "documentation":"

In an environment account, update an environment account connection to use a new IAM role.

For more information, see Environment account connections in the Proton User guide.

", "idempotent":true }, "UpdateEnvironmentTemplate":{ @@ -1120,7 +1263,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Edit a service description or use a spec to add and delete service instances.

Existing service instances and the service pipeline can't be edited using this API. They can only be deleted.

Use the description parameter to modify the description.

Edit the spec parameter to add or delete instances.

" + "documentation":"

Edit a service description or use a spec to add and delete service instances.

Existing service instances and the service pipeline can't be edited using this API. They can only be deleted.

Use the description parameter to modify the description.

Edit the spec parameter to add or delete instances.

You can't delete a service instance (remove it from the spec) if it has an attached component.

For more information about components, see Proton components in the Proton User Guide.

" }, "UpdateServiceInstance":{ "name":"UpdateServiceInstance", @@ -1138,7 +1281,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Update a service instance.

There are four modes for updating a service instance. The deploymentType field defines the mode.

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the service instance is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include minor or major version parameters when you use this deployment-type.

MINOR_VERSION

In this mode, the service instance is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the service instance is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that's higher than the major version in use and a minor version.

" + "documentation":"

Update a service instance.

There are a few modes for updating a service instance. The deploymentType field defines the mode.

You can't update a service instance while its deployment status, or the deployment status of a component attached to it, is IN_PROGRESS.

For more information about components, see Proton components in the Proton User Guide.

" }, "UpdateServicePipeline":{ "name":"UpdateServicePipeline", @@ -1210,7 +1353,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"} ], - "documentation":"

Update template sync configuration parameters, except for the templateName and templateType.

" + "documentation":"

Update template sync configuration parameters, except for the templateName and templateType. Repository details (branch, name, and provider) should be of a linked repository. A linked repository is a repository that has been registered with Proton. For more information, see CreateRepository.

" } }, "shapes":{ @@ -1246,26 +1389,55 @@ "AccountSettings":{ "type":"structure", "members":{ + "pipelineCodebuildRoleArn":{ + "shape":"RoleArnOrEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the service role that Proton uses for provisioning pipelines. Proton assumes this role for CodeBuild-based provisioning.

" + }, "pipelineProvisioningRepository":{ "shape":"RepositoryBranch", - "documentation":"

The repository configured in the Amazon Web Services account for pipeline provisioning. Required it if you have environments configured for self-managed provisioning with services that include pipelines.

" + "documentation":"

The linked repository for pipeline provisioning. Required if you have environments configured for self-managed provisioning with services that include pipelines. A linked repository is a repository that has been registered with Proton. For more information, see CreateRepository.

" }, "pipelineServiceRoleArn":{ - "shape":"PipelineRoleArn", + "shape":"RoleArnOrEmptyString", "documentation":"

The Amazon Resource Name (ARN) of the service role you want to use for provisioning pipelines. Assumed by Proton for Amazon Web Services-managed provisioning, and by customer-owned automation for self-managed provisioning.

" } }, - "documentation":"

The Proton pipeline service role and repository data shared across the Amazon Web Services account.

" + "documentation":"

Proton settings that are used for multiple services in the Amazon Web Services account.

" }, "Arn":{ "type":"string", "max":200, - "min":1 + "min":1, + "pattern":"^arn:(aws|aws-cn|aws-us-gov):[a-zA-Z0-9-]+:[a-zA-Z0-9-]*:\\d{12}:([\\w+=,.@-]+[/:])*[\\w+=,.@-]+$" }, "AwsAccountId":{ "type":"string", "pattern":"^\\d{12}$" }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CancelComponentDeploymentInput":{ + "type":"structure", + "required":["componentName"], + "members":{ + "componentName":{ + "shape":"ResourceName", + "documentation":"

The name of the component with the deployment to cancel.

" + } + } + }, + "CancelComponentDeploymentOutput":{ + "type":"structure", + "required":["component"], + "members":{ + "component":{ + "shape":"Component", + "documentation":"

The detailed data of the component with the deployment that is being canceled.

" + } + } + }, "CancelEnvironmentDeploymentInput":{ "type":"structure", "required":["environmentName"], @@ -1385,6 +1557,142 @@ "type":"list", "member":{"shape":"CompatibleEnvironmentTemplate"} }, + "Component":{ + "type":"structure", + "required":[ + "arn", + "createdAt", + "deploymentStatus", + "environmentName", + "lastModifiedAt", + "name" + ], + "members":{ + "arn":{ + "shape":"ComponentArn", + "documentation":"

The Amazon Resource Name (ARN) of the component.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The time when the component was created.

" + }, + "deploymentStatus":{ + "shape":"DeploymentStatus", + "documentation":"

The component deployment status.

" + }, + "deploymentStatusMessage":{ + "shape":"StatusMessage", + "documentation":"

The message associated with the component deployment status.

" + }, + "description":{ + "shape":"Description", + "documentation":"

A description of the component.

" + }, + "environmentName":{ + "shape":"ResourceName", + "documentation":"

The name of the Proton environment that this component is associated with.

" + }, + "lastDeploymentAttemptedAt":{ + "shape":"Timestamp", + "documentation":"

The time when a deployment of the component was last attempted.

" + }, + "lastDeploymentSucceededAt":{ + "shape":"Timestamp", + "documentation":"

The time when the component was last deployed successfully.

" + }, + "lastModifiedAt":{ + "shape":"Timestamp", + "documentation":"

The time when the component was last modified.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the component.

" + }, + "serviceInstanceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service instance that this component is attached to. Provided when a component is attached to a service instance.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service that serviceInstanceName is associated with. Provided when a component is attached to a service instance.

" + }, + "serviceSpec":{ + "shape":"SpecContents", + "documentation":"

The service spec that the component uses to access service inputs. Provided when a component is attached to a service instance.

" + } + }, + "documentation":"

Detailed data of an Proton component resource.

For more information about components, see Proton components in the Proton User Guide.

" + }, + "ComponentArn":{"type":"string"}, + "ComponentDeploymentUpdateType":{ + "type":"string", + "enum":[ + "NONE", + "CURRENT_VERSION" + ] + }, + "ComponentSummary":{ + "type":"structure", + "required":[ + "arn", + "createdAt", + "deploymentStatus", + "environmentName", + "lastModifiedAt", + "name" + ], + "members":{ + "arn":{ + "shape":"ComponentArn", + "documentation":"

The Amazon Resource Name (ARN) of the component.

" + }, + "createdAt":{ + "shape":"Timestamp", + "documentation":"

The time when the component was created.

" + }, + "deploymentStatus":{ + "shape":"DeploymentStatus", + "documentation":"

The component deployment status.

" + }, + "deploymentStatusMessage":{ + "shape":"StatusMessage", + "documentation":"

The message associated with the component deployment status.

" + }, + "environmentName":{ + "shape":"ResourceName", + "documentation":"

The name of the Proton environment that this component is associated with.

" + }, + "lastDeploymentAttemptedAt":{ + "shape":"Timestamp", + "documentation":"

The time when a deployment of the component was last attempted.

" + }, + "lastDeploymentSucceededAt":{ + "shape":"Timestamp", + "documentation":"

The time when the component was last deployed successfully.

" + }, + "lastModifiedAt":{ + "shape":"Timestamp", + "documentation":"

The time when the component was last modified.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the component.

" + }, + "serviceInstanceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service instance that this component is attached to. Provided when a component is attached to a service instance.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service that serviceInstanceName is associated with. Provided when a component is attached to a service instance.

" + } + }, + "documentation":"

Summary data of an Proton component resource.

For more information about components, see Proton components in the Proton User Guide.

" + }, + "ComponentSummaryList":{ + "type":"list", + "member":{"shape":"ComponentSummary"} + }, "ConflictException":{ "type":"structure", "required":["message"], @@ -1394,12 +1702,67 @@ "documentation":"

The request couldn't be made due to a conflicting operation or resource.

", "exception":true }, + "CreateComponentInput":{ + "type":"structure", + "required":[ + "manifest", + "name", + "templateFile" + ], + "members":{ + "description":{ + "shape":"Description", + "documentation":"

An optional customer-provided description of the component.

" + }, + "environmentName":{ + "shape":"ResourceName", + "documentation":"

The name of the Proton environment that you want to associate this component with. You must specify this when you don't specify serviceInstanceName and serviceName.

" + }, + "manifest":{ + "shape":"TemplateManifestContents", + "documentation":"

A path to a manifest file that lists the Infrastructure as Code (IaC) file, template language, and rendering engine for infrastructure that a custom component provisions.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The customer-provided name of the component.

" + }, + "serviceInstanceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service instance that you want to attach this component to. If you don't specify this, the component isn't attached to any service instance. Specify both serviceInstanceName and serviceName or neither of them.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of the service that serviceInstanceName is associated with. If you don't specify this, the component isn't attached to any service instance. Specify both serviceInstanceName and serviceName or neither of them.

" + }, + "serviceSpec":{ + "shape":"SpecContents", + "documentation":"

The service spec that you want the component to use to access service inputs. Set this only when you attach the component to a service instance.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

An optional list of metadata items that you can associate with the Proton component. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" + }, + "templateFile":{ + "shape":"TemplateFileContents", + "documentation":"

A path to the Infrastructure as Code (IaC) file describing infrastructure that a custom component provisions.

Components support a single IaC file, even if you use Terraform as your template language.

" + } + } + }, + "CreateComponentOutput":{ + "type":"structure", + "required":["component"], + "members":{ + "component":{ + "shape":"Component", + "documentation":"

The detailed data of the created component.

" + } + } + }, "CreateEnvironmentAccountConnectionInput":{ "type":"structure", "required":[ "environmentName", - "managementAccountId", - "roleArn" + "managementAccountId" ], "members":{ "clientToken":{ @@ -1407,6 +1770,14 @@ "documentation":"

When included, if two identical requests are made with the same client token, Proton returns the environment account connection that the first request created.

", "idempotencyToken":true }, + "codebuildRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of an IAM service role in the environment account. Proton uses this role to provision infrastructure resources using CodeBuild-based provisioning in the associated environment account.

" + }, + "componentRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in the associated environment account. It determines the scope of infrastructure that a component can provision in the account.

You must specify componentRoleArn to allow directly defined components to be associated with any environments running in this account.

For more information about components, see Proton components in the Proton User Guide.

" + }, "environmentName":{ "shape":"ResourceName", "documentation":"

The name of the Proton environment that's created in the associated management account.

" @@ -1416,12 +1787,12 @@ "documentation":"

The ID of the management account that accepts or rejects the environment account connection. You create and manage the Proton environment in this account. If the management account accepts the environment account connection, Proton can use the associated IAM role to provision environment infrastructure resources in the associated environment account.

" }, "roleArn":{ - "shape":"Arn", + "shape":"RoleArn", "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that's created in the environment account. Proton uses this role to provision infrastructure resources in the associated environment account.

" }, "tags":{ "shape":"TagList", - "documentation":"

An optional list of metadata items that you can associate with the Proton environment account connection. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton Administrator Guide.

" + "documentation":"

An optional list of metadata items that you can associate with the Proton environment account connection. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" } } }, @@ -1444,13 +1815,21 @@ "templateName" ], "members":{ + "codebuildRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that allows Proton to provision infrastructure using CodeBuild-based provisioning on your behalf.

To use CodeBuild-based provisioning for the environment or for any service instance running in the environment, specify either the environmentAccountConnectionId or codebuildRoleArn parameter.

" + }, + "componentRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in this environment. It determines the scope of infrastructure that a component can provision.

You must specify componentRoleArn to allow directly defined components to be associated with this environment.

For more information about components, see Proton components in the Proton User Guide.

" + }, "description":{ "shape":"Description", "documentation":"

A description of the environment that's being created and deployed.

" }, "environmentAccountConnectionId":{ "shape":"EnvironmentAccountConnectionId", - "documentation":"

The ID of the environment account connection that you provide if you're provisioning your environment infrastructure resources to an environment account. For more information, see Environment account connections in the Proton Administrator guide.

To use Amazon Web Services-managed provisioning for the environment, specify either the environmentAccountConnectionId or protonServiceRoleArn parameter and omit the provisioningRepository parameter.

" + "documentation":"

The ID of the environment account connection that you provide if you're provisioning your environment infrastructure resources to an environment account. For more information, see Environment account connections in the Proton User guide.

To use Amazon Web Services-managed provisioning for the environment, specify either the environmentAccountConnectionId or protonServiceRoleArn parameter and omit the provisioningRepository parameter.

" }, "name":{ "shape":"ResourceName", @@ -1462,15 +1841,15 @@ }, "provisioningRepository":{ "shape":"RepositoryBranchInput", - "documentation":"

The infrastructure repository that you use to host your rendered infrastructure templates for self-managed provisioning.

To use self-managed provisioning for the environment, specify this parameter and omit the environmentAccountConnectionId and protonServiceRoleArn parameters.

" + "documentation":"

The linked repository that you use to host your rendered infrastructure templates for self-managed provisioning. A linked repository is a repository that has been registered with Proton. For more information, see CreateRepository.

To use self-managed provisioning for the environment, specify this parameter and omit the environmentAccountConnectionId and protonServiceRoleArn parameters.

" }, "spec":{ "shape":"SpecContents", - "documentation":"

A YAML formatted string that provides inputs as defined in the environment template bundle schema file. For more information, see Environments in the Proton Administrator Guide.

" + "documentation":"

A YAML formatted string that provides inputs as defined in the environment template bundle schema file. For more information, see Environments in the Proton User Guide.

" }, "tags":{ "shape":"TagList", - "documentation":"

An optional list of metadata items that you can associate with the Proton environment. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

" + "documentation":"

An optional list of metadata items that you can associate with the Proton environment. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" }, "templateMajorVersion":{ "shape":"TemplateVersionPart", @@ -1482,7 +1861,7 @@ }, "templateName":{ "shape":"ResourceName", - "documentation":"

The name of the environment template. For more information, see Environment Templates in the Proton Administrator Guide.

" + "documentation":"

The name of the environment template. For more information, see Environment Templates in the Proton User Guide.

" } } }, @@ -1522,7 +1901,7 @@ }, "tags":{ "shape":"TagList", - "documentation":"

An optional list of metadata items that you can associate with the Proton environment template. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

" + "documentation":"

An optional list of metadata items that you can associate with the Proton environment template. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" } } }, @@ -1562,7 +1941,7 @@ }, "tags":{ "shape":"TagList", - "documentation":"

An optional list of metadata items that you can associate with the Proton environment template version. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

" + "documentation":"

An optional list of metadata items that you can associate with the Proton environment template version. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" }, "templateName":{ "shape":"ResourceName", @@ -1590,7 +1969,7 @@ "members":{ "connectionArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of your Amazon Web Services CodeStar connection. For more information, see Setting up for Proton in the Proton Administrator Guide.

" + "documentation":"

The Amazon Resource Name (ARN) of your AWS CodeStar connection that connects Proton to your repository provider account. For more information, see Setting up for Proton in the Proton User Guide.

" }, "encryptionKey":{ "shape":"Arn", @@ -1606,7 +1985,7 @@ }, "tags":{ "shape":"TagList", - "documentation":"

An optional list of metadata items that you can associate with the Proton repository. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

" + "documentation":"

An optional list of metadata items that you can associate with the Proton repository. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" } } }, @@ -1616,7 +1995,7 @@ "members":{ "repository":{ "shape":"Repository", - "documentation":"

The repository detail data that's returned by Proton.

" + "documentation":"

The repository link's detail data that's returned by Proton.

" } } }, @@ -1643,7 +2022,7 @@ }, "repositoryConnectionArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the repository connection. For more information, see Set up repository connection in the Proton Administrator Guide and Setting up with Proton in the Proton User Guide. Don't include this parameter if your service template doesn't include a service pipeline.

" + "documentation":"

The Amazon Resource Name (ARN) of the repository connection. For more information, see Setting up an AWS CodeStar connection in the Proton User Guide. Don't include this parameter if your service template doesn't include a service pipeline.

" }, "repositoryId":{ "shape":"RepositoryId", @@ -1651,11 +2030,11 @@ }, "spec":{ "shape":"SpecContents", - "documentation":"

A link to a spec file that provides inputs as defined in the service template bundle schema file. The spec file is in YAML format. Don’t include pipeline inputs in the spec if your service template doesn’t include a service pipeline. For more information, see Create a service in the Proton Administrator Guide and Create a service in the Proton User Guide.

" + "documentation":"

A link to a spec file that provides inputs as defined in the service template bundle schema file. The spec file is in YAML format. Don’t include pipeline inputs in the spec if your service template doesn’t include a service pipeline. For more information, see Create a service in the Proton User Guide.

" }, "tags":{ "shape":"TagList", - "documentation":"

An optional list of metadata items that you can associate with the Proton service. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

" + "documentation":"

An optional list of metadata items that you can associate with the Proton service. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" }, "templateMajorVersion":{ "shape":"TemplateVersionPart", @@ -1703,11 +2082,11 @@ }, "pipelineProvisioning":{ "shape":"Provisioning", - "documentation":"

By default, Proton provides a service pipeline for your service. When this parameter is included, it indicates that an Proton service pipeline isn't provided for your service. After it's included, it can't be changed. For more information, see Service template bundles in the Proton Administrator Guide.

" + "documentation":"

By default, Proton provides a service pipeline for your service. When this parameter is included, it indicates that an Proton service pipeline isn't provided for your service. After it's included, it can't be changed. For more information, see Template bundles in the Proton User Guide.

" }, "tags":{ "shape":"TagList", - "documentation":"

An optional list of metadata items that you can associate with the Proton service template. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

" + "documentation":"

An optional list of metadata items that you can associate with the Proton service template. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" } } }, @@ -1736,7 +2115,7 @@ }, "compatibleEnvironmentTemplates":{ "shape":"CompatibleEnvironmentTemplateInputList", - "documentation":"

An array of compatible environment template objects for the new version of a service template.

" + "documentation":"

An array of environment template objects that are compatible with the new service template version. A service instance based on this service template version can run in environments based on compatible templates.

" }, "description":{ "shape":"Description", @@ -1750,9 +2129,13 @@ "shape":"TemplateVersionSourceInput", "documentation":"

An object that includes the template bundle S3 bucket path and name for the new version of a service template.

" }, + "supportedComponentSources":{ + "shape":"ServiceTemplateSupportedComponentSourceInputList", + "documentation":"

An array of supported component sources. Components with supported sources can be attached to service instances based on this service template version.

For more information about components, see Proton components in the Proton User Guide.

" + }, "tags":{ "shape":"TagList", - "documentation":"

An optional list of metadata items that you can associate with the Proton service template version. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton Administrator Guide or Proton User Guide.

" + "documentation":"

An optional list of metadata items that you can associate with the Proton service template version. A tag is a key-value pair.

For more information, see Proton resources and tagging in the Proton User Guide.

" }, "templateName":{ "shape":"ResourceName", @@ -1782,11 +2165,11 @@ "members":{ "branch":{ "shape":"GitBranchName", - "documentation":"

The branch of the registered repository for your template.

" + "documentation":"

The repository branch for your template.

" }, "repositoryName":{ "shape":"RepositoryName", - "documentation":"

The name of your repository (for example, myrepos/myrepo).

" + "documentation":"

The repository name (for example, myrepos/myrepo).

" }, "repositoryProvider":{ "shape":"RepositoryProvider", @@ -1815,6 +2198,25 @@ } } }, + "DeleteComponentInput":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the component to delete.

" + } + } + }, + "DeleteComponentOutput":{ + "type":"structure", + "members":{ + "component":{ + "shape":"Component", + "documentation":"

The detailed data of the component being deleted.

" + } + } + }, "DeleteEnvironmentAccountConnectionInput":{ "type":"structure", "required":["id"], @@ -1830,7 +2232,7 @@ "members":{ "environmentAccountConnection":{ "shape":"EnvironmentAccountConnection", - "documentation":"

The environment account connection detail data that's returned by Proton.

" + "documentation":"

The detailed data of the environment account connection being deleted.

" } } }, @@ -1849,7 +2251,7 @@ "members":{ "environment":{ "shape":"Environment", - "documentation":"

The environment detail data that's returned by Proton.

" + "documentation":"

The detailed data of the environment being deleted.

" } } }, @@ -1868,7 +2270,7 @@ "members":{ "environmentTemplate":{ "shape":"EnvironmentTemplate", - "documentation":"

The environment template detail data that's returned by Proton.

" + "documentation":"

The detailed data of the environment template being deleted.

" } } }, @@ -1899,7 +2301,7 @@ "members":{ "environmentTemplateVersion":{ "shape":"EnvironmentTemplateVersion", - "documentation":"

The environment template version detail data that's returned by Proton.

" + "documentation":"

The detailed data of the environment template version being deleted.

" } } }, @@ -1912,7 +2314,7 @@ "members":{ "name":{ "shape":"RepositoryName", - "documentation":"

The name of the repository.

" + "documentation":"

The repository name.

" }, "provider":{ "shape":"RepositoryProvider", @@ -1925,7 +2327,7 @@ "members":{ "repository":{ "shape":"Repository", - "documentation":"

The repository detail data that's returned by Proton.

" + "documentation":"

The deleted repository link's detail data that's returned by Proton.

" } } }, @@ -1944,7 +2346,7 @@ "members":{ "service":{ "shape":"Service", - "documentation":"

The service detail data that's returned by Proton.

" + "documentation":"

The detailed data of the service being deleted.

" } } }, @@ -1963,7 +2365,7 @@ "members":{ "serviceTemplate":{ "shape":"ServiceTemplate", - "documentation":"

The service template detail data that's returned by Proton.

" + "documentation":"

The detailed data of the service template being deleted.

" } } }, @@ -1994,7 +2396,7 @@ "members":{ "serviceTemplateVersion":{ "shape":"ServiceTemplateVersion", - "documentation":"

The service template version detail data that's returned by Proton.

" + "documentation":"

The detailed data of the service template version being deleted.

" } } }, @@ -2085,6 +2487,14 @@ "shape":"EnvironmentArn", "documentation":"

The Amazon Resource Name (ARN) of the environment.

" }, + "codebuildRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that allows Proton to provision infrastructure using CodeBuild-based provisioning on your behalf.

" + }, + "componentRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in this environment. It determines the scope of infrastructure that a component can provision.

The environment must have a componentRoleArn to allow directly defined components to be associated with the environment.

For more information about components, see Proton components in the Proton User Guide.

" + }, "createdAt":{ "shape":"Timestamp", "documentation":"

The time when the environment was created.

" @@ -2131,7 +2541,7 @@ }, "provisioningRepository":{ "shape":"RepositoryBranch", - "documentation":"

The infrastructure repository that you use to host your rendered infrastructure templates for self-managed provisioning.

" + "documentation":"

The linked repository that you use to host your rendered infrastructure templates for self-managed provisioning. A linked repository is a repository that has been registered with Proton. For more information, see CreateRepository.

" }, "spec":{ "shape":"SpecContents", @@ -2150,7 +2560,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the environment template.

" } }, - "documentation":"

The environment detail data. An Proton environment is a set resources shared across an Proton service.

" + "documentation":"

Detailed data of an Proton environment resource. An Proton environment is a set of resources shared across Proton services.

" }, "EnvironmentAccountConnection":{ "type":"structure", @@ -2170,6 +2580,14 @@ "shape":"EnvironmentAccountConnectionArn", "documentation":"

The Amazon Resource Name (ARN) of the environment account connection.

" }, + "codebuildRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of an IAM service role in the environment account. Proton uses this role to provision infrastructure resources using CodeBuild-based provisioning in the associated environment account.

" + }, + "componentRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in the associated environment account. It determines the scope of infrastructure that a component can provision in the account.

The environment account connection must have a componentRoleArn to allow directly defined components to be associated with any environments running in the account.

For more information about components, see Proton components in the Proton User Guide.

" + }, "environmentAccountId":{ "shape":"AwsAccountId", "documentation":"

The environment account that's connected to the environment account connection.

" @@ -2203,7 +2621,7 @@ "documentation":"

The status of the environment account connection.

" } }, - "documentation":"

The environment account connection detail data.

" + "documentation":"

Detailed data of an Proton environment account connection resource.

" }, "EnvironmentAccountConnectionArn":{"type":"string"}, "EnvironmentAccountConnectionId":{ @@ -2247,6 +2665,10 @@ "shape":"EnvironmentAccountConnectionArn", "documentation":"

The Amazon Resource Name (ARN) of the environment account connection.

" }, + "componentRoleArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in the associated environment account. It determines the scope of infrastructure that a component can provision in the account.

The environment account connection must have a componentRoleArn to allow directly defined components to be associated with any environments running in the account.

For more information about components, see Proton components in the Proton User Guide.

" + }, "environmentAccountId":{ "shape":"AwsAccountId", "documentation":"

The ID of the environment account that's connected to the environment account connection.

" @@ -2280,7 +2702,7 @@ "documentation":"

The status of the environment account connection.

" } }, - "documentation":"

A summary of the environment account connection detail data.

" + "documentation":"

Summary data of an Proton environment account connection resource.

" }, "EnvironmentAccountConnectionSummaryList":{ "type":"list", @@ -2305,6 +2727,10 @@ "shape":"EnvironmentArn", "documentation":"

The Amazon Resource Name (ARN) of the environment.

" }, + "componentRoleArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in this environment. It determines the scope of infrastructure that a component can provision.

The environment must have a componentRoleArn to allow directly defined components to be associated with the environment.

For more information about components, see Proton components in the Proton User Guide.

" + }, "createdAt":{ "shape":"Timestamp", "documentation":"

The time when the environment was created.

" @@ -2362,7 +2788,7 @@ "documentation":"

The name of the environment template.

" } }, - "documentation":"

A summary of the environment detail data.

" + "documentation":"

Summary data of an Proton environment resource. An Proton environment is a set of resources shared across Proton services.

" }, "EnvironmentSummaryList":{ "type":"list", @@ -2630,13 +3056,32 @@ } } }, + "GetComponentInput":{ + "type":"structure", + "required":["name"], + "members":{ + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the component that you want to get the detailed data for.

" + } + } + }, + "GetComponentOutput":{ + "type":"structure", + "members":{ + "component":{ + "shape":"Component", + "documentation":"

The detailed data of the requested component.

" + } + } + }, "GetEnvironmentAccountConnectionInput":{ "type":"structure", "required":["id"], "members":{ "id":{ "shape":"EnvironmentAccountConnectionId", - "documentation":"

The ID of the environment account connection.

" + "documentation":"

The ID of the environment account connection that you want to get the detailed data for.

" } } }, @@ -2646,7 +3091,7 @@ "members":{ "environmentAccountConnection":{ "shape":"EnvironmentAccountConnection", - "documentation":"

The environment account connection detail data that's returned by Proton.

" + "documentation":"

The detailed data of the requested environment account connection.

" } } }, @@ -2656,7 +3101,7 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name of the environment that you want to get the detail data for.

" + "documentation":"

The name of the environment that you want to get the detailed data for.

" } } }, @@ -2666,7 +3111,7 @@ "members":{ "environment":{ "shape":"Environment", - "documentation":"

The environment detail data that's returned by Proton.

" + "documentation":"

The detailed data of the requested environment.

" } } }, @@ -2676,7 +3121,7 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name of the environment template that you want to get the detail data for.

" + "documentation":"

The name of the environment template that you want to get the detailed data for.

" } } }, @@ -2686,7 +3131,7 @@ "members":{ "environmentTemplate":{ "shape":"EnvironmentTemplate", - "documentation":"

The environment template detail data that's returned by Proton.

" + "documentation":"

The detailed data of the requested environment template.

" } } }, @@ -2700,15 +3145,15 @@ "members":{ "majorVersion":{ "shape":"TemplateVersionPart", - "documentation":"

To view environment template major version detail data, include major Version.

" + "documentation":"

To get environment template major version detail data, include major Version.

" }, "minorVersion":{ "shape":"TemplateVersionPart", - "documentation":"

To view environment template minor version detail data, include minorVersion.

" + "documentation":"

To get environment template minor version detail data, include minorVersion.

" }, "templateName":{ "shape":"ResourceName", - "documentation":"

The name of the environment template.

" + "documentation":"

The name of the environment template a version of which you want to get detailed data for.

" } } }, @@ -2718,7 +3163,7 @@ "members":{ "environmentTemplateVersion":{ "shape":"EnvironmentTemplateVersion", - "documentation":"

The environment template version detail data that's returned by Proton.

" + "documentation":"

The detailed data of the requested environment template version.

" } } }, @@ -2745,7 +3190,7 @@ "members":{ "repository":{ "shape":"Repository", - "documentation":"

The repository detail data that's returned by Proton.

" + "documentation":"

The repository link's detail data that's returned by Proton.

" } } }, @@ -2791,7 +3236,7 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name of the service that you want to get the detail data for.

" + "documentation":"

The name of the service that you want to get the detailed data for.

" } } }, @@ -2804,7 +3249,7 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name of a service instance that you want to get the detail data for.

" + "documentation":"

The name of a service instance that you want to get the detailed data for.

" }, "serviceName":{ "shape":"ResourceName", @@ -2818,7 +3263,7 @@ "members":{ "serviceInstance":{ "shape":"ServiceInstance", - "documentation":"

The service instance detail data that's returned by Proton.

" + "documentation":"

The detailed data of the requested service instance.

" } } }, @@ -2827,7 +3272,7 @@ "members":{ "service":{ "shape":"Service", - "documentation":"

The service detail data that's returned by Proton.

" + "documentation":"

The detailed data of the requested service.

" } } }, @@ -2837,7 +3282,7 @@ "members":{ "name":{ "shape":"ResourceName", - "documentation":"

The name of the service template that you want to get detail data for.

" + "documentation":"

The name of the service template that you want to get detailed data for.

" } } }, @@ -2847,7 +3292,7 @@ "members":{ "serviceTemplate":{ "shape":"ServiceTemplate", - "documentation":"

The service template detail data that's returned by Proton.

" + "documentation":"

The detailed data of the requested service template.

" } } }, @@ -2861,15 +3306,15 @@ "members":{ "majorVersion":{ "shape":"TemplateVersionPart", - "documentation":"

To view service template major version detail data, include major Version.

" + "documentation":"

To get service template major version detail data, include major Version.

" }, "minorVersion":{ "shape":"TemplateVersionPart", - "documentation":"

To view service template minor version detail data, include minorVersion.

" + "documentation":"

To get service template minor version detail data, include minorVersion.

" }, "templateName":{ "shape":"ResourceName", - "documentation":"

The name of the service template.

" + "documentation":"

The name of the service template a version of which you want to get detailed data for.

" } } }, @@ -2879,7 +3324,7 @@ "members":{ "serviceTemplateVersion":{ "shape":"ServiceTemplateVersion", - "documentation":"

The service template version detail data that's returned by Proton.

" + "documentation":"

The detailed data of the requested service template version.

" } } }, @@ -2964,6 +3409,101 @@ "fault":true, "retryable":{"throttling":false} }, + "ListComponentOutputsInput":{ + "type":"structure", + "required":["componentName"], + "members":{ + "componentName":{ + "shape":"ResourceName", + "documentation":"

The name of the component whose outputs you want.

" + }, + "nextToken":{ + "shape":"EmptyNextToken", + "documentation":"

A token that indicates the location of the next output in the array of outputs, after the list of outputs that was previously requested.

" + } + } + }, + "ListComponentOutputsOutput":{ + "type":"structure", + "required":["outputs"], + "members":{ + "nextToken":{ + "shape":"EmptyNextToken", + "documentation":"

A token that indicates the location of the next output in the array of outputs, after the list of outputs that was previously requested.

" + }, + "outputs":{ + "shape":"OutputsList", + "documentation":"

An array of component Infrastructure as Code (IaC) outputs.

" + } + } + }, + "ListComponentProvisionedResourcesInput":{ + "type":"structure", + "required":["componentName"], + "members":{ + "componentName":{ + "shape":"ResourceName", + "documentation":"

The name of the component whose provisioned resources you want.

" + }, + "nextToken":{ + "shape":"EmptyNextToken", + "documentation":"

A token that indicates the location of the next provisioned resource in the array of provisioned resources, after the list of provisioned resources that was previously requested.

" + } + } + }, + "ListComponentProvisionedResourcesOutput":{ + "type":"structure", + "required":["provisionedResources"], + "members":{ + "nextToken":{ + "shape":"EmptyNextToken", + "documentation":"

A token that indicates the location of the next provisioned resource in the array of provisioned resources, after the current requested list of provisioned resources.

" + }, + "provisionedResources":{ + "shape":"ProvisionedResourceList", + "documentation":"

An array of provisioned resources for a component.

" + } + } + }, + "ListComponentsInput":{ + "type":"structure", + "members":{ + "environmentName":{ + "shape":"ResourceName", + "documentation":"

The name of an environment for result list filtering. Proton returns components associated with the environment or attached to service instances running in it.

" + }, + "maxResults":{ + "shape":"MaxPageResults", + "documentation":"

The maximum number of components to list.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token that indicates the location of the next component in the array of components, after the list of components that was previously requested.

" + }, + "serviceInstanceName":{ + "shape":"ResourceName", + "documentation":"

The name of a service instance for result list filtering. Proton returns the component attached to the service instance, if any.

" + }, + "serviceName":{ + "shape":"ResourceName", + "documentation":"

The name of a service for result list filtering. Proton returns components attached to service instances of the service.

" + } + } + }, + "ListComponentsOutput":{ + "type":"structure", + "required":["components"], + "members":{ + "components":{ + "shape":"ComponentSummaryList", + "documentation":"

An array of components with summary data.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

A token that indicates the location of the next component in the array of components, after the current requested list of components.

" + } + } + }, "ListEnvironmentAccountConnectionsInput":{ "type":"structure", "required":["requestedBy"], @@ -3177,7 +3717,7 @@ }, "repositories":{ "shape":"RepositorySummaryList", - "documentation":"

An array of repositories.

" + "documentation":"

An array of repository links.

" } } }, @@ -3234,11 +3774,11 @@ }, "serviceInstanceName":{ "shape":"ResourceName", - "documentation":"

The service instance name.

" + "documentation":"

The name of the service instance whose outputs you want.

" }, "serviceName":{ "shape":"ResourceName", - "documentation":"

The service name.

" + "documentation":"

The name of the service that serviceInstanceName is associated to.

" } } }, @@ -3252,7 +3792,7 @@ }, "outputs":{ "shape":"OutputsList", - "documentation":"

An array of service instance infrastructure as code outputs.

" + "documentation":"

An array of service instance Infrastructure as Code (IaC) outputs.

" } } }, @@ -3269,11 +3809,11 @@ }, "serviceInstanceName":{ "shape":"ResourceName", - "documentation":"

The service instance name.

" + "documentation":"

The name of the service instance whose provisioned resources you want.

" }, "serviceName":{ "shape":"ResourceName", - "documentation":"

The service name.

" + "documentation":"

The name of the service that serviceInstanceName is associated to.

" } } }, @@ -3291,9 +3831,47 @@ } } }, + "ListServiceInstancesFilter":{ + "type":"structure", + "members":{ + "key":{ + "shape":"ListServiceInstancesFilterBy", + "documentation":"

The name of a filtering criterion.

" + }, + "value":{ + "shape":"ListServiceInstancesFilterValue", + "documentation":"

A value to filter by.

With the date/time keys (*At{Before,After}), the value is a valid RFC 3339 string with no UTC offset and with an optional fractional precision (for example, 1985-04-12T23:20:50.52Z).

" + } + }, + "documentation":"

A filtering criterion to scope down the result list of the ListServiceInstances action.

" + }, + "ListServiceInstancesFilterBy":{ + "type":"string", + "enum":[ + "name", + "deploymentStatus", + "templateName", + "serviceName", + "deployedTemplateVersionStatus", + "environmentName", + "lastDeploymentAttemptedAtBefore", + "lastDeploymentAttemptedAtAfter", + "createdAtBefore", + "createdAtAfter" + ] + }, + "ListServiceInstancesFilterList":{ + "type":"list", + "member":{"shape":"ListServiceInstancesFilter"} + }, + "ListServiceInstancesFilterValue":{"type":"string"}, "ListServiceInstancesInput":{ "type":"structure", "members":{ + "filters":{ + "shape":"ListServiceInstancesFilterList", + "documentation":"

An array of filtering criteria that scope down the result list. By default, all service instances in the Amazon Web Services account are returned.

" + }, "maxResults":{ "shape":"MaxPageResults", "documentation":"

The maximum number of service instances to list.

" @@ -3305,6 +3883,14 @@ "serviceName":{ "shape":"ResourceName", "documentation":"

The name of the service that the service instance belongs to.

" + }, + "sortBy":{ + "shape":"ListServiceInstancesSortBy", + "documentation":"

The field that the result list is sorted by.

When you choose to sort by serviceName, service instances within each service are sorted by service instance name.

Default: serviceName

" + }, + "sortOrder":{ + "shape":"SortOrder", + "documentation":"

Result list sort order.

Default: ASCENDING

" } } }, @@ -3318,10 +3904,22 @@ }, "serviceInstances":{ "shape":"ServiceInstanceSummaryList", - "documentation":"

An array of service instances with summaries of detail data.

" + "documentation":"

An array of service instances with summary data.

" } } }, + "ListServiceInstancesSortBy":{ + "type":"string", + "enum":[ + "name", + "deploymentStatus", + "templateName", + "serviceName", + "environmentName", + "lastDeploymentAttemptedAt", + "createdAt" + ] + }, "ListServicePipelineOutputsInput":{ "type":"structure", "required":["serviceName"], @@ -3332,7 +3930,7 @@ }, "serviceName":{ "shape":"ResourceName", - "documentation":"

The service name.

" + "documentation":"

The name of the service whose pipeline's outputs you want.

" } } }, @@ -3346,7 +3944,7 @@ }, "outputs":{ "shape":"OutputsList", - "documentation":"

An array of outputs.

" + "documentation":"

An array of service pipeline Infrastructure as Code (IaC) outputs.

" } } }, @@ -3360,7 +3958,7 @@ }, "serviceName":{ "shape":"ResourceName", - "documentation":"

The service name.

" + "documentation":"

The name of the service whose pipeline's provisioned resources you want.

" } } }, @@ -3512,10 +4110,7 @@ }, "NotifyResourceDeploymentStatusChangeInput":{ "type":"structure", - "required":[ - "resourceArn", - "status" - ], + "required":["resourceArn"], "members":{ "deploymentId":{ "shape":"DeploymentId", @@ -3534,7 +4129,7 @@ "documentation":"

The status of your provisioned resource.

" }, "statusMessage":{ - "shape":"SyntheticNotifyResourceDeploymentStatusChangeInputString", + "shape":"NotifyResourceDeploymentStatusChangeInputStatusMessageString", "documentation":"

The deployment status message for your provisioned resource.

" } } @@ -3545,6 +4140,12 @@ "max":50, "min":0 }, + "NotifyResourceDeploymentStatusChangeInputStatusMessageString":{ + "type":"string", + "max":5000, + "min":0, + "sensitive":true + }, "NotifyResourceDeploymentStatusChangeOutput":{ "type":"structure", "members":{ @@ -3579,12 +4180,6 @@ "type":"list", "member":{"shape":"Output"} }, - "PipelineRoleArn":{ - "type":"string", - "max":2048, - "min":0, - "pattern":"(^$)|(^arn:[a-zA-Z-]+:[a-zA-Z0-9-]+:[a-zA-Z0-9-]*:\\d*:[\\w+=\\/:,\\.@-]*)" - }, "ProvisionedResource":{ "type":"structure", "members":{ @@ -3598,7 +4193,7 @@ }, "provisioningEngine":{ "shape":"ProvisionedResourceEngine", - "documentation":"

The resource provisioning engine. At this time, CLOUDFORMATION can be used for Amazon Web Services-managed provisioning, and TERRAFORM can be used for self-managed provisioning.

For more information, see Self-managed provisioning in the Proton Administrator Guide.

" + "documentation":"

The resource provisioning engine. At this time, CLOUDFORMATION can be used for Amazon Web Services-managed provisioning, and TERRAFORM can be used for self-managed provisioning.

For more information, see Self-managed provisioning in the Proton User Guide.

" } }, "documentation":"

Detail data for a provisioned resource.

" @@ -3660,11 +4255,11 @@ "members":{ "arn":{ "shape":"RepositoryArn", - "documentation":"

The repository Amazon Resource Name (ARN).

" + "documentation":"

The Amazon Resource Name (ARN) of the linked repository.

" }, "connectionArn":{ "shape":"Arn", - "documentation":"

The repository Amazon Web Services CodeStar connection that connects Proton to your repository.

" + "documentation":"

The Amazon Resource Name (ARN) of your AWS CodeStar connection that connects Proton to your repository provider account.

" }, "encryptionKey":{ "shape":"Arn", @@ -3679,7 +4274,7 @@ "documentation":"

The repository provider.

" } }, - "documentation":"

Detail date for a repository that has been registered with Proton.

" + "documentation":"

Detailed data of a linked repository—a repository that has been registered with Proton.

" }, "RepositoryArn":{"type":"string"}, "RepositoryBranch":{ @@ -3693,7 +4288,7 @@ "members":{ "arn":{ "shape":"RepositoryArn", - "documentation":"

The Amazon Resource Name (ARN) of the repository branch.

" + "documentation":"

The Amazon Resource Name (ARN) of the linked repository.

" }, "branch":{ "shape":"GitBranchName", @@ -3708,7 +4303,7 @@ "documentation":"

The repository provider.

" } }, - "documentation":"

Detail data for a repository branch.

" + "documentation":"

Detail data for a linked repository branch.

" }, "RepositoryBranchInput":{ "type":"structure", @@ -3731,7 +4326,7 @@ "documentation":"

The repository provider.

" } }, - "documentation":"

Detail input data for a repository branch.

" + "documentation":"

Detail input data for a linked repository branch.

" }, "RepositoryId":{ "type":"string", @@ -3762,7 +4357,7 @@ "members":{ "arn":{ "shape":"RepositoryArn", - "documentation":"

The Amazon Resource Name (ARN) for a repository.

" + "documentation":"

The Amazon Resource Name (ARN) of the linked repository.

" }, "name":{ "shape":"RepositoryName", @@ -3773,7 +4368,7 @@ "documentation":"

The repository provider.

" } }, - "documentation":"

A summary of detail data for a registered repository.

" + "documentation":"

Summary data of a linked repository—a repository that has been registered with Proton.

" }, "RepositorySummaryList":{ "type":"list", @@ -3828,7 +4423,7 @@ "documentation":"

The resource that is synced to.

" } }, - "documentation":"

The repository sync definition.

" + "documentation":"

A repository sync definition.

" }, "RepositorySyncDefinitionList":{ "type":"list", @@ -3890,6 +4485,12 @@ "min":1, "pattern":"^[0-9A-Za-z]+[0-9A-Za-z_\\-]*$" }, + "ResourceNameOrEmpty":{ + "type":"string", + "max":100, + "min":0, + "pattern":"(^$)|^[0-9A-Za-z]+[0-9A-Za-z_\\-]*$" + }, "ResourceNotFoundException":{ "type":"structure", "required":["message"], @@ -4010,6 +4611,18 @@ }, "documentation":"

Revision detail data for a commit and push that activates a sync attempt

" }, + "RoleArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^arn:(aws|aws-cn|aws-us-gov):iam::\\d{12}:role/([\\w+=,.@-]{1,512}[/:])*([\\w+=,.@-]{1,64})$" + }, + "RoleArnOrEmptyString":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"(^$)|(^arn:(aws|aws-cn|aws-us-gov):iam::\\d{12}:role/([\\w+=,.@-]{1,512}[/:])*([\\w+=,.@-]{1,64})$)" + }, "S3Bucket":{ "type":"string", "max":63, @@ -4070,7 +4683,7 @@ }, "description":{ "shape":"Description", - "documentation":"

A description of a service.

" + "documentation":"

A description of the service.

" }, "lastModifiedAt":{ "shape":"Timestamp", @@ -4086,7 +4699,7 @@ }, "repositoryConnectionArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the repository connection. For more information, see Set up a repository connection in the Proton Administrator Guide and Setting up with Proton in the Proton User Guide.

" + "documentation":"

The Amazon Resource Name (ARN) of the repository connection. For more information, see Setting up an AWS CodeStar connection in the Proton User Guide.

" }, "repositoryId":{ "shape":"RepositoryId", @@ -4109,7 +4722,7 @@ "documentation":"

The name of the service template.

" } }, - "documentation":"

The service detail data.

" + "documentation":"

Detailed data of an Proton service resource.

" }, "ServiceArn":{"type":"string"}, "ServiceInstance":{ @@ -4142,7 +4755,7 @@ }, "deploymentStatusMessage":{ "shape":"StatusMessage", - "documentation":"

A service instance deployment status message.

" + "documentation":"

The message associated with the service instance deployment status.

" }, "environmentName":{ "shape":"ResourceName", @@ -4181,7 +4794,7 @@ "documentation":"

The name of the service template that was used to create the service instance.

" } }, - "documentation":"

The service instance detail data.

" + "documentation":"

Detailed data of an Proton service instance resource.

" }, "ServiceInstanceArn":{"type":"string"}, "ServiceInstanceSummary":{ @@ -4249,7 +4862,7 @@ "documentation":"

The name of the service template.

" } }, - "documentation":"

A summary of the service instance detail data.

" + "documentation":"

Summary data of an Proton service instance resource.

" }, "ServiceInstanceSummaryList":{ "type":"list", @@ -4309,7 +4922,7 @@ "documentation":"

The name of the service template that was used to create the service pipeline.

" } }, - "documentation":"

The service pipeline detail data.

" + "documentation":"

Detailed data of an Proton service instance pipeline resource.

" }, "ServiceQuotaExceededException":{ "type":"structure", @@ -4317,7 +4930,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

A quota was exceeded. For more information, see Proton Quotas in the Proton Administrator Guide.

", + "documentation":"

A quota was exceeded. For more information, see Proton Quotas in the Proton User Guide.

", "exception":true }, "ServiceStatus":{ @@ -4383,7 +4996,7 @@ "documentation":"

The name of the service template.

" } }, - "documentation":"

A summary of the service detail data.

" + "documentation":"

Summary data of an Proton service resource.

" }, "ServiceSummaryList":{ "type":"list", @@ -4435,7 +5048,7 @@ "documentation":"

The recommended version of the service template.

" } }, - "documentation":"

The service template detail data.

" + "documentation":"

Detailed data of an Proton service template resource.

" }, "ServiceTemplateArn":{"type":"string"}, "ServiceTemplateSummary":{ @@ -4480,12 +5093,20 @@ "documentation":"

The recommended version of the service template.

" } }, - "documentation":"

The service template summary data.

" + "documentation":"

Summary data of an Proton service template resource.

" }, "ServiceTemplateSummaryList":{ "type":"list", "member":{"shape":"ServiceTemplateSummary"} }, + "ServiceTemplateSupportedComponentSourceInputList":{ + "type":"list", + "member":{"shape":"ServiceTemplateSupportedComponentSourceType"} + }, + "ServiceTemplateSupportedComponentSourceType":{ + "type":"string", + "enum":["DIRECTLY_DEFINED"] + }, "ServiceTemplateVersion":{ "type":"structure", "required":[ @@ -4543,12 +5164,16 @@ "shape":"StatusMessage", "documentation":"

A service template version status message.

" }, + "supportedComponentSources":{ + "shape":"ServiceTemplateSupportedComponentSourceInputList", + "documentation":"

An array of supported component sources. Components with supported sources can be attached to service instances based on this service template version.

For more information about components, see Proton components in the Proton User Guide.

" + }, "templateName":{ "shape":"ResourceName", "documentation":"

The name of the version of a service template.

" } }, - "documentation":"

The version of a service template detail data.

" + "documentation":"

Detailed data of an Proton service template version resource.

" }, "ServiceTemplateVersionArn":{"type":"string"}, "ServiceTemplateVersionSummary":{ @@ -4604,12 +5229,19 @@ "documentation":"

The name of the service template.

" } }, - "documentation":"

A summary of the service template version detail data.

" + "documentation":"

Summary data of an Proton service template version resource.

" }, "ServiceTemplateVersionSummaryList":{ "type":"list", "member":{"shape":"ServiceTemplateVersionSummary"} }, + "SortOrder":{ + "type":"string", + "enum":[ + "ASCENDING", + "DESCENDING" + ] + }, "SpecContents":{ "type":"string", "max":51200, @@ -4630,12 +5262,6 @@ "type":"string", "enum":["TEMPLATE_SYNC"] }, - "SyntheticNotifyResourceDeploymentStatusChangeInputString":{ - "type":"string", - "max":5000, - "min":0, - "sensitive":true - }, "Tag":{ "type":"structure", "required":[ @@ -4698,6 +5324,18 @@ "max":256, "min":0 }, + "TemplateFileContents":{ + "type":"string", + "max":51200, + "min":1, + "sensitive":true + }, + "TemplateManifestContents":{ + "type":"string", + "max":1024, + "min":1, + "sensitive":true + }, "TemplateSchema":{ "type":"string", "max":51200, @@ -4720,7 +5358,7 @@ }, "repositoryName":{ "shape":"RepositoryName", - "documentation":"

The name of the repository, for example myrepos/myrepo.

" + "documentation":"

The repository name (for example, myrepos/myrepo).

" }, "repositoryProvider":{ "shape":"RepositoryProvider", @@ -4810,13 +5448,21 @@ "UpdateAccountSettingsInput":{ "type":"structure", "members":{ + "deletePipelineProvisioningRepository":{ + "shape":"Boolean", + "documentation":"

Set to true to remove a configured pipeline repository from the account settings. Don't set this field if you are updating the configured pipeline repository.

" + }, + "pipelineCodebuildRoleArn":{ + "shape":"RoleArnOrEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the service role you want to use for provisioning pipelines. Proton assumes this role for CodeBuild-based provisioning.

" + }, "pipelineProvisioningRepository":{ "shape":"RepositoryBranchInput", - "documentation":"

A repository for pipeline provisioning. Specify it if you have environments configured for self-managed provisioning with services that include pipelines.

" + "documentation":"

A linked repository for pipeline provisioning. Specify it if you have environments configured for self-managed provisioning with services that include pipelines. A linked repository is a repository that has been registered with Proton. For more information, see CreateRepository.

To remove a previously configured repository, set deletePipelineProvisioningRepository to true, and don't set pipelineProvisioningRepository.

" }, "pipelineServiceRoleArn":{ - "shape":"PipelineRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the service role you want to use for provisioning pipelines. Assumed by Proton for Amazon Web Services-managed provisioning, and by customer-owned automation for self-managed provisioning.

" + "shape":"RoleArnOrEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the service role you want to use for provisioning pipelines. Assumed by Proton for Amazon Web Services-managed provisioning, and by customer-owned automation for self-managed provisioning.

To remove a previously configured ARN, specify an empty string.

" } } }, @@ -4830,19 +5476,71 @@ } } }, - "UpdateEnvironmentAccountConnectionInput":{ + "UpdateComponentInput":{ "type":"structure", "required":[ - "id", - "roleArn" + "deploymentType", + "name" ], "members":{ + "deploymentType":{ + "shape":"ComponentDeploymentUpdateType", + "documentation":"

The deployment type. It defines the mode for updating a component, as follows:

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated. You can only specify description in this mode.

CURRENT_VERSION

In this mode, the component is deployed and updated with the new serviceSpec, templateSource, and/or type that you provide. Only requested parameters are updated.

" + }, + "description":{ + "shape":"Description", + "documentation":"

An optional customer-provided description of the component.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the component to update.

" + }, + "serviceInstanceName":{ + "shape":"ResourceNameOrEmpty", + "documentation":"

The name of the service instance that you want to attach this component to. Don't specify to keep the component's current service instance attachment. Specify an empty string to detach the component from the service instance it's attached to. Specify non-empty values for both serviceInstanceName and serviceName or for neither of them.

" + }, + "serviceName":{ + "shape":"ResourceNameOrEmpty", + "documentation":"

The name of the service that serviceInstanceName is associated with. Don't specify to keep the component's current service instance attachment. Specify an empty string to detach the component from the service instance it's attached to. Specify non-empty values for both serviceInstanceName and serviceName or for neither of them.

" + }, + "serviceSpec":{ + "shape":"SpecContents", + "documentation":"

The service spec that you want the component to use to access service inputs. Set this only when the component is attached to a service instance.

" + }, + "templateFile":{ + "shape":"TemplateFileContents", + "documentation":"

A path to the Infrastructure as Code (IaC) file describing infrastructure that a custom component provisions.

Components support a single IaC file, even if you use Terraform as your template language.

" + } + } + }, + "UpdateComponentOutput":{ + "type":"structure", + "required":["component"], + "members":{ + "component":{ + "shape":"Component", + "documentation":"

The detailed data of the updated component.

" + } + } + }, + "UpdateEnvironmentAccountConnectionInput":{ + "type":"structure", + "required":["id"], + "members":{ + "codebuildRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of an IAM service role in the environment account. Proton uses this role to provision infrastructure resources using CodeBuild-based provisioning in the associated environment account.

" + }, + "componentRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in the associated environment account. It determines the scope of infrastructure that a component can provision in the account.

The environment account connection must have a componentRoleArn to allow directly defined components to be associated with any environments running in the account.

For more information about components, see Proton components in the Proton User Guide.

" + }, "id":{ "shape":"EnvironmentAccountConnectionId", "documentation":"

The ID of the environment account connection to update.

" }, "roleArn":{ - "shape":"Arn", + "shape":"RoleArn", "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that's associated with the environment account connection to update.

" } } @@ -4864,6 +5562,14 @@ "name" ], "members":{ + "codebuildRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that allows Proton to provision infrastructure using CodeBuild-based provisioning on your behalf.

" + }, + "componentRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning directly defined components in this environment. It determines the scope of infrastructure that a component can provision.

The environment must have a componentRoleArn to allow directly defined components to be associated with the environment.

For more information about components, see Proton components in the Proton User Guide.

" + }, "deploymentType":{ "shape":"DeploymentUpdateType", "documentation":"

There are four modes for updating an environment. The deploymentType field defines the mode.

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the environment is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include major or minor version parameters when you use this deployment-type.

MINOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the environment is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can also specify a different major version that is higher than the major version in use and a minor version (optional).

" @@ -4886,7 +5592,7 @@ }, "provisioningRepository":{ "shape":"RepositoryBranchInput", - "documentation":"

The infrastructure repository that you use to host your rendered infrastructure templates for self-managed provisioning.

" + "documentation":"

The linked repository that you use to host your rendered infrastructure templates for self-managed provisioning. A linked repository is a repository that has been registered with Proton. For more information, see CreateRepository.

" }, "spec":{ "shape":"SpecContents", @@ -4994,7 +5700,7 @@ }, "spec":{ "shape":"SpecContents", - "documentation":"

Lists the service instances to add and the existing service instances to remain. Omit the existing service instances to delete from the list. Don't include edits to the existing service instances or pipeline. For more information, see Edit a service in the Proton Administrator Guide or the Proton User Guide.

" + "documentation":"

Lists the service instances to add and the existing service instances to remain. Omit the existing service instances to delete from the list. Don't include edits to the existing service instances or pipeline. For more information, see Edit a service in the Proton User Guide.

" } } }, @@ -5008,7 +5714,7 @@ "members":{ "deploymentType":{ "shape":"DeploymentUpdateType", - "documentation":"

The deployment type.

There are four modes for updating a service instance. The deploymentType field defines the mode.

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the service instance is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include major or minor version parameters when you use this deployment-type.

MINOR_VERSION

In this mode, the service instance is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the service instance is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can specify a different major version that's higher than the major version in use and a minor version.

" + "documentation":"

The deployment type. It defines the mode for updating a service instance, as follows:

NONE

In this mode, a deployment doesn't occur. Only the requested metadata parameters are updated.

CURRENT_VERSION

In this mode, the service instance is deployed and updated with the new spec that you provide. Only requested parameters are updated. Don’t include major or minor version parameters when you use this deployment type.

MINOR_VERSION

In this mode, the service instance is deployed and updated with the published, recommended (latest) minor version of the current major version in use, by default. You can also specify a different minor version of the current major version in use.

MAJOR_VERSION

In this mode, the service instance is deployed and updated with the published, recommended (latest) major and minor version of the current template, by default. You can specify a different major version that's higher than the major version in use and a minor version.

" }, "name":{ "shape":"ResourceName", @@ -5130,7 +5836,7 @@ "members":{ "compatibleEnvironmentTemplates":{ "shape":"CompatibleEnvironmentTemplateInputList", - "documentation":"

An array of compatible environment names for a service template major or minor version to update.

" + "documentation":"

An array of environment template objects that are compatible with this service template version. A service instance based on this service template version can run in environments based on compatible templates.

" }, "description":{ "shape":"Description", @@ -5148,6 +5854,10 @@ "shape":"TemplateVersionStatus", "documentation":"

The status of the service template minor version to update.

" }, + "supportedComponentSources":{ + "shape":"ServiceTemplateSupportedComponentSourceInputList", + "documentation":"

An array of supported component sources. Components with supported sources can be attached to service instances based on this service template version.

A change to supportedComponentSources doesn't impact existing component attachments to instances based on this template version. A change only affects later associations.

For more information about components, see Proton components in the Proton User Guide.

" + }, "templateName":{ "shape":"ResourceName", "documentation":"

The name of the service template.

" @@ -5176,11 +5886,11 @@ "members":{ "branch":{ "shape":"GitBranchName", - "documentation":"

The repository branch.

" + "documentation":"

The repository branch for your template.

" }, "repositoryName":{ "shape":"RepositoryName", - "documentation":"

The name of the repository (for example, myrepos/myrepo).

" + "documentation":"

The repository name (for example, myrepos/myrepo).

" }, "repositoryProvider":{ "shape":"RepositoryProvider", @@ -5219,5 +5929,5 @@ "exception":true } }, - "documentation":"

This is the Proton Service API Reference. It provides descriptions, syntax and usage examples for each of the actions and data types for the Proton service.

The documentation for each action shows the Query API request parameters and the XML response.

Alternatively, you can use the Amazon Web Services CLI to access an API. For more information, see the Amazon Web Services Command Line Interface User Guide.

The Proton service is a two-pronged automation framework. Administrators create service templates to provide standardized infrastructure and deployment tooling for serverless and container based applications. Developers, in turn, select from the available service templates to automate their application or service deployments.

Because administrators define the infrastructure and tooling that Proton deploys and manages, they need permissions to use all of the listed API operations.

When developers select a specific infrastructure and tooling set, Proton deploys their applications. To monitor their applications that are running on Proton, developers need permissions to the service create, list, update and delete API operations and the service instance list and update API operations.

To learn more about Proton administration, see the Proton Administrator Guide.

To learn more about deploying serverless and containerized applications on Proton, see the Proton User Guide.

Ensuring Idempotency

When you make a mutating API request, the request typically returns a result before the asynchronous workflows of the operation are complete. Operations might also time out or encounter other server issues before they're complete, even if the request already returned a result. This might make it difficult to determine whether the request succeeded. Moreover, you might need to retry the request multiple times to ensure that the operation completes successfully. However, if the original request and the subsequent retries are successful, the operation occurs multiple times. This means that you might create more resources than you intended.

Idempotency ensures that an API request action completes no more than one time. With an idempotent request, if the original request action completes successfully, any subsequent retries complete successfully without performing any further actions. However, the result might contain updated information, such as the current creation status.

The following lists of APIs are grouped according to methods that ensure idempotency.

Idempotent create APIs with a client token

The API actions in this list support idempotency with the use of a client token. The corresponding Amazon Web Services CLI commands also support idempotency using a client token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request using one of these actions, specify a client token in the request. We recommend that you don't reuse the same client token for other API requests. If you don’t provide a client token for these APIs, a default client token is automatically provided by SDKs.

Given a request action that has succeeded:

If you retry the request using the same client token and the same parameters, the retry succeeds without performing any further actions other than returning the original resource detail data in the response.

If you retry the request using the same client token, but one or more of the parameters are different, the retry throws a ValidationException with an IdempotentParameterMismatch error.

Client tokens expire eight hours after a request is made. If you retry the request with the expired token, a new resource is created.

If the original resource is deleted and you retry the request, a new resource is created.

Idempotent create APIs with a client token:

  • CreateEnvironmentTemplateVersion

  • CreateServiceTemplateVersion

  • CreateEnvironmentAccountConnection

Idempotent create APIs

Given a request action that has succeeded:

If you retry the request with an API from this group, and the original resource hasn't been modified, the retry succeeds without performing any further actions other than returning the original resource detail data in the response.

If the original resource has been modified, the retry throws a ConflictException.

If you retry with different input parameters, the retry throws a ValidationException with an IdempotentParameterMismatch error.

Idempotent create APIs:

  • CreateEnvironmentTemplate

  • CreateServiceTemplate

  • CreateEnvironment

  • CreateService

Idempotent delete APIs

Given a request action that has succeeded:

When you retry the request with an API from this group and the resource was deleted, its metadata is returned in the response.

If you retry and the resource doesn't exist, the response is empty.

In both cases, the retry succeeds.

Idempotent delete APIs:

  • DeleteEnvironmentTemplate

  • DeleteEnvironmentTemplateVersion

  • DeleteServiceTemplate

  • DeleteServiceTemplateVersion

  • DeleteEnvironmentAccountConnection

Asynchronous idempotent delete APIs

Given a request action that has succeeded:

If you retry the request with an API from this group, if the original request delete operation status is DELETE_IN_PROGRESS, the retry returns the resource detail data in the response without performing any further actions.

If the original request delete operation is complete, a retry returns an empty response.

Asynchronous idempotent delete APIs:

  • DeleteEnvironment

  • DeleteService

" + "documentation":"

This is the Proton Service API Reference. It provides descriptions, syntax and usage examples for each of the actions and data types for the Proton service.

The documentation for each action shows the Query API request parameters and the XML response.

Alternatively, you can use the Amazon Web Services CLI to access an API. For more information, see the Amazon Web Services Command Line Interface User Guide.

The Proton service is a two-pronged automation framework. Administrators create service templates to provide standardized infrastructure and deployment tooling for serverless and container based applications. Developers, in turn, select from the available service templates to automate their application or service deployments.

Because administrators define the infrastructure and tooling that Proton deploys and manages, they need permissions to use all of the listed API operations.

When developers select a specific infrastructure and tooling set, Proton deploys their applications. To monitor their applications that are running on Proton, developers need permissions to the service create, list, update and delete API operations and the service instance list and update API operations.

To learn more about Proton, see the Proton User Guide.

Ensuring Idempotency

When you make a mutating API request, the request typically returns a result before the asynchronous workflows of the operation are complete. Operations might also time out or encounter other server issues before they're complete, even if the request already returned a result. This might make it difficult to determine whether the request succeeded. Moreover, you might need to retry the request multiple times to ensure that the operation completes successfully. However, if the original request and the subsequent retries are successful, the operation occurs multiple times. This means that you might create more resources than you intended.

Idempotency ensures that an API request action completes no more than one time. With an idempotent request, if the original request action completes successfully, any subsequent retries complete successfully without performing any further actions. However, the result might contain updated information, such as the current creation status.

The following lists of APIs are grouped according to methods that ensure idempotency.

Idempotent create APIs with a client token

The API actions in this list support idempotency with the use of a client token. The corresponding Amazon Web Services CLI commands also support idempotency using a client token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. To make an idempotent API request using one of these actions, specify a client token in the request. We recommend that you don't reuse the same client token for other API requests. If you don’t provide a client token for these APIs, a default client token is automatically provided by SDKs.

Given a request action that has succeeded:

If you retry the request using the same client token and the same parameters, the retry succeeds without performing any further actions other than returning the original resource detail data in the response.

If you retry the request using the same client token, but one or more of the parameters are different, the retry throws a ValidationException with an IdempotentParameterMismatch error.

Client tokens expire eight hours after a request is made. If you retry the request with the expired token, a new resource is created.

If the original resource is deleted and you retry the request, a new resource is created.

Idempotent create APIs with a client token:

  • CreateEnvironmentTemplateVersion

  • CreateServiceTemplateVersion

  • CreateEnvironmentAccountConnection

Idempotent create APIs

Given a request action that has succeeded:

If you retry the request with an API from this group, and the original resource hasn't been modified, the retry succeeds without performing any further actions other than returning the original resource detail data in the response.

If the original resource has been modified, the retry throws a ConflictException.

If you retry with different input parameters, the retry throws a ValidationException with an IdempotentParameterMismatch error.

Idempotent create APIs:

  • CreateEnvironmentTemplate

  • CreateServiceTemplate

  • CreateEnvironment

  • CreateService

Idempotent delete APIs

Given a request action that has succeeded:

When you retry the request with an API from this group and the resource was deleted, its metadata is returned in the response.

If you retry and the resource doesn't exist, the response is empty.

In both cases, the retry succeeds.

Idempotent delete APIs:

  • DeleteEnvironmentTemplate

  • DeleteEnvironmentTemplateVersion

  • DeleteServiceTemplate

  • DeleteServiceTemplateVersion

  • DeleteEnvironmentAccountConnection

Asynchronous idempotent delete APIs

Given a request action that has succeeded:

If you retry the request with an API from this group, if the original request delete operation status is DELETE_IN_PROGRESS, the retry returns the resource detail data in the response without performing any further actions.

If the original request delete operation is complete, a retry returns an empty response.

Asynchronous idempotent delete APIs:

  • DeleteEnvironment

  • DeleteService

" } diff --git a/botocore/data/proton/2020-07-20/waiters-2.json b/botocore/data/proton/2020-07-20/waiters-2.json index babd5af1..f99a6fe3 100644 --- a/botocore/data/proton/2020-07-20/waiters-2.json +++ b/botocore/data/proton/2020-07-20/waiters-2.json @@ -1,6 +1,39 @@ { "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, diff --git a/botocore/data/qldb-session/2019-07-11/endpoint-rule-set-1.json b/botocore/data/qldb-session/2019-07-11/endpoint-rule-set-1.json new file mode 100644 index 00000000..95882249 --- /dev/null +++ b/botocore/data/qldb-session/2019-07-11/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://session.qldb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://session.qldb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://session.qldb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://session.qldb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/qldb-session/2019-07-11/examples-1.json b/botocore/data/qldb-session/2019-07-11/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/qldb-session/2019-07-11/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/qldb/2019-01-02/endpoint-rule-set-1.json b/botocore/data/qldb/2019-01-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..8b9a7eec --- /dev/null +++ b/botocore/data/qldb/2019-01-02/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://qldb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://qldb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://qldb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://qldb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/qldb/2019-01-02/examples-1.json b/botocore/data/qldb/2019-01-02/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/qldb/2019-01-02/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/quicksight/2018-04-01/endpoint-rule-set-1.json b/botocore/data/quicksight/2018-04-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..6ad7b476 --- /dev/null +++ b/botocore/data/quicksight/2018-04-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://quicksight-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://quicksight-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://quicksight.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://quicksight.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/quicksight/2018-04-01/examples-1.json b/botocore/data/quicksight/2018-04-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/quicksight/2018-04-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/quicksight/2018-04-01/paginators-1.json b/botocore/data/quicksight/2018-04-01/paginators-1.json index d339bbaf..27aa7b2f 100644 --- a/botocore/data/quicksight/2018-04-01/paginators-1.json +++ b/botocore/data/quicksight/2018-04-01/paginators-1.json @@ -83,6 +83,18 @@ "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" } } } diff --git a/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json b/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json index 480a467d..8fc9521e 100644 --- a/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json +++ b/botocore/data/quicksight/2018-04-01/paginators-1.sdk-extras.json @@ -56,6 +56,18 @@ "RequestId" ] }, + "SearchDataSets": { + "non_aggregate_keys": [ + "Status", + "RequestId" + ] + }, + "SearchDataSources": { + "non_aggregate_keys": [ + "Status", + "RequestId" + ] + }, "ListNamespaces": { "non_aggregate_keys": [ "Status", diff --git a/botocore/data/quicksight/2018-04-01/service-2.json b/botocore/data/quicksight/2018-04-01/service-2.json index efb30508..458cdfed 100644 --- a/botocore/data/quicksight/2018-04-01/service-2.json +++ b/botocore/data/quicksight/2018-04-01/service-2.json @@ -47,7 +47,28 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceUnavailableException"} ], - "documentation":"

Creates Amazon QuickSight customizations the current Amazon Web Services Region. Currently, you can add a custom default theme by using the CreateAccountCustomization or UpdateAccountCustomization API operation. To further customize Amazon QuickSight by removing Amazon QuickSight sample assets and videos for all new users, see Customizing Amazon QuickSight in the Amazon QuickSight User Guide.

You can create customizations for your Amazon Web Services account or, if you specify a namespace, for a QuickSight namespace instead. Customizations that apply to a namespace always override customizations that apply to an Amazon Web Services account. To find out which customizations apply, use the DescribeAccountCustomization API operation.

Before you use the CreateAccountCustomization API operation to add a theme as the namespace default, make sure that you first share the theme with the namespace. If you don't share it with the namespace, the theme isn't visible to your users even if you make it the default theme. To check if the theme is shared, view the current permissions by using the DescribeThemePermissions API operation. To share the theme, grant permissions by using the UpdateThemePermissions API operation.

" + "documentation":"

Creates Amazon QuickSight customizations for the current Amazon Web Services Region. Currently, you can add a custom default theme by using the CreateAccountCustomization or UpdateAccountCustomization API operation. To further customize Amazon QuickSight by removing Amazon QuickSight sample assets and videos for all new users, see Customizing Amazon QuickSight in the Amazon QuickSight User Guide.

You can create customizations for your Amazon Web Services account or, if you specify a namespace, for a QuickSight namespace instead. Customizations that apply to a namespace always override customizations that apply to an Amazon Web Services account. To find out which customizations apply, use the DescribeAccountCustomization API operation.

Before you use the CreateAccountCustomization API operation to add a theme as the namespace default, make sure that you first share the theme with the namespace. If you don't share it with the namespace, the theme isn't visible to your users even if you make it the default theme. To check if the theme is shared, view the current permissions by using the DescribeThemePermissions API operation. To share the theme, grant permissions by using the UpdateThemePermissions API operation.

" + }, + "CreateAccountSubscription":{ + "name":"CreateAccountSubscription", + "http":{ + "method":"POST", + "requestUri":"/account/{AwsAccountId}" + }, + "input":{"shape":"CreateAccountSubscriptionRequest"}, + "output":{"shape":"CreateAccountSubscriptionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceExistsException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceUnavailableException"} + ], + "documentation":"

Creates an Amazon QuickSight account, or subscribes to Amazon QuickSight Q.

The Amazon Web Services Region for the account is derived from what is configured in the CLI or SDK. This operation isn't supported in the US East (Ohio) Region, South America (Sao Paulo) Region, or Asia Pacific (Singapore) Region.

Before you use this operation, make sure that you can connect to an existing Amazon Web Services account. If you don't have an Amazon Web Services account, see Sign up for Amazon Web Services in the Amazon QuickSight User Guide. The person who signs up for Amazon QuickSight needs to have the correct Identity and Access Management (IAM) permissions. For more information, see IAM Policy Examples for Amazon QuickSight in the Amazon QuickSight User Guide.

If your IAM policy includes both the Subscribe and CreateAccountSubscription actions, make sure that both actions are set to Allow. If either action is set to Deny, the Deny action prevails and your API call fails.

You can't pass an existing IAM role to access other Amazon Web Services services using this API operation. To pass your existing IAM role to Amazon QuickSight, see Passing IAM roles to Amazon QuickSight in the Amazon QuickSight User Guide.

You can't set default resource access on the new account from the Amazon QuickSight API. Instead, add default resource access from the Amazon QuickSight console. For more information about setting default resource access to Amazon Web Services services, see Setting default resource access to Amazon Web Services services in the Amazon QuickSight User Guide.

" }, "CreateAnalysis":{ "name":"CreateAnalysis", @@ -64,6 +85,7 @@ {"shape":"ResourceExistsException"}, {"shape":"ConflictException"}, {"shape":"UnsupportedUserEditionException"}, + {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], "documentation":"

Creates an analysis in Amazon QuickSight.

" @@ -83,6 +105,7 @@ {"shape":"ResourceExistsException"}, {"shape":"ConflictException"}, {"shape":"UnsupportedUserEditionException"}, + {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], "documentation":"

Creates a dashboard from a template. To first create a template, see the CreateTemplate API operation.

A dashboard is an entity in Amazon QuickSight that identifies Amazon QuickSight reports, created from analyses. You can share Amazon QuickSight dashboards. With the right permissions, you can create scheduled email reports from them. If you have the correct permissions, you can create a dashboard from a template that exists in a different Amazon Web Services account.

" @@ -188,7 +211,7 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceUnavailableException"} ], - "documentation":"

Creates an Amazon QuickSight group.

The permissions resource is arn:aws:quicksight:<your-region>:<relevant-aws-account-id>:group/default/<group-name> .

The response is a group object.

" + "documentation":"

Use the CreateGroup operation to create a group in Amazon QuickSight. You can create up to 10,000 groups in a namespace. If you want to create more than 10,000 groups in a namespace, contact AWS Support.

The permissions resource is arn:aws:quicksight:<your-region>:<relevant-aws-account-id>:group/default/<group-name> .

The response is a group object.

" }, "CreateGroupMembership":{ "name":"CreateGroupMembership", @@ -369,6 +392,25 @@ ], "documentation":"

Deletes all Amazon QuickSight customizations in this Amazon Web Services Region for the specified Amazon Web Services account and Amazon QuickSight namespace.

" }, + "DeleteAccountSubscription":{ + "name":"DeleteAccountSubscription", + "http":{ + "method":"DELETE", + "requestUri":"/account/{AwsAccountId}" + }, + "input":{"shape":"DeleteAccountSubscriptionRequest"}, + "output":{"shape":"DeleteAccountSubscriptionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceUnavailableException"} + ], + "documentation":"

Use the DeleteAccountSubscription operation to delete an Amazon QuickSight account. This operation will result in an error message if you have configured your account termination protection settings to True. To change this setting and delete your account, call the UpdateAccountSettings API and set the value of the TerminationProtectionEnabled parameter to False, then make another call to the DeleteAccountSubscription API.

" + }, "DeleteAnalysis":{ "name":"DeleteAnalysis", "http":{ @@ -700,6 +742,24 @@ ], "documentation":"

Describes the settings that were used when your Amazon QuickSight subscription was first created in this Amazon Web Services account.

" }, + "DescribeAccountSubscription":{ + "name":"DescribeAccountSubscription", + "http":{ + "method":"GET", + "requestUri":"/account/{AwsAccountId}" + }, + "input":{"shape":"DescribeAccountSubscriptionRequest"}, + "output":{"shape":"DescribeAccountSubscriptionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalFailureException"}, + {"shape":"ResourceUnavailableException"} + ], + "documentation":"

Use the DescribeAccountSubscription operation to receive a description of an Amazon QuickSight account's subscription. A successful API call returns an AccountInfo object that includes an account's name, subscription status, authentication type, edition, and notification email address.

" + }, "DescribeAnalysis":{ "name":"DescribeAnalysis", "http":{ @@ -718,6 +778,26 @@ ], "documentation":"

Provides a summary of the metadata for an analysis.

" }, + "DescribeAnalysisDefinition":{ + "name":"DescribeAnalysisDefinition", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/analyses/{AnalysisId}/definition" + }, + "input":{"shape":"DescribeAnalysisDefinitionRequest"}, + "output":{"shape":"DescribeAnalysisDefinitionResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"UnsupportedUserEditionException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Provides a detailed description of the definition of an analysis.

If you do not need to know details about the content of an Analysis, for instance if you are trying to check the status of a recently created or updated Analysis, use the DescribeAnalysis instead.

" + }, "DescribeAnalysisPermissions":{ "name":"DescribeAnalysisPermissions", "http":{ @@ -753,6 +833,26 @@ ], "documentation":"

Provides a summary for a dashboard.

" }, + "DescribeDashboardDefinition":{ + "name":"DescribeDashboardDefinition", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/dashboards/{DashboardId}/definition" + }, + "input":{"shape":"DescribeDashboardDefinitionRequest"}, + "output":{"shape":"DescribeDashboardDefinitionResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"UnsupportedUserEditionException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Provides a detailed description of the definition of a dashboard.

If you do not need to know details about the content of a dashboard, for instance if you are trying to check the status of a recently created or updated dashboard, use the DescribeDashboard instead.

" + }, "DescribeDashboardPermissions":{ "name":"DescribeDashboardPermissions", "http":{ @@ -1037,6 +1137,26 @@ ], "documentation":"

Describes the template alias for a template.

" }, + "DescribeTemplateDefinition":{ + "name":"DescribeTemplateDefinition", + "http":{ + "method":"GET", + "requestUri":"/accounts/{AwsAccountId}/templates/{TemplateId}/definition" + }, + "input":{"shape":"DescribeTemplateDefinitionRequest"}, + "output":{"shape":"DescribeTemplateDefinitionResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ConflictException"}, + {"shape":"UnsupportedUserEditionException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Provides a detailed description of the definition of a template.

If you do not need to know details about the content of a template, for instance if you are trying to check the status of a recently created or updated template, use the DescribeTemplate instead.

" + }, "DescribeTemplatePermissions":{ "name":"DescribeTemplatePermissions", "http":{ @@ -1147,7 +1267,7 @@ {"shape":"UnsupportedPricingPlanException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Generates an embed URL that you can use to embed an Amazon QuickSight dashboard in your website, without having to register any reader users. Before you use this action, make sure that you have configured the dashboards and permissions.

The following rules apply to the generated URL:

  • It contains a temporary bearer token. It is valid for 5 minutes after it is generated. Once redeemed within this period, it cannot be re-used again.

  • The URL validity period should not be confused with the actual session lifetime that can be customized using the SessionLifetimeInMinutes parameter.

    The resulting user session is valid for 15 minutes (minimum) to 10 hours (maximum). The default session duration is 10 hours.

  • You are charged only when the URL is used or there is interaction with Amazon QuickSight.

For more information, see Embedded Analytics in the Amazon QuickSight User Guide.

For more information about the high-level steps for embedding and for an interactive demo of the ways you can customize embedding, visit the Amazon QuickSight Developer Portal.

" + "documentation":"

Generates an embed URL that you can use to embed an Amazon QuickSight dashboard or visual in your website, without having to register any reader users. Before you use this action, make sure that you have configured the dashboards and permissions.

The following rules apply to the generated URL:

  • It contains a temporary bearer token. It is valid for 5 minutes after it is generated. Once redeemed within this period, it cannot be re-used again.

  • The URL validity period should not be confused with the actual session lifetime that can be customized using the SessionLifetimeInMinutes parameter. The resulting user session is valid for 15 minutes (minimum) to 10 hours (maximum). The default session duration is 10 hours.

  • You are charged only when the URL is used or there is interaction with Amazon QuickSight.

For more information, see Embedded Analytics in the Amazon QuickSight User Guide.

For more information about the high-level steps for embedding and for an interactive demo of the ways you can customize embedding, visit the Amazon QuickSight Developer Portal.

" }, "GenerateEmbedUrlForRegisteredUser":{ "name":"GenerateEmbedUrlForRegisteredUser", @@ -1192,7 +1312,7 @@ {"shape":"UnsupportedPricingPlanException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Generates a session URL and authorization code that you can use to embed an Amazon Amazon QuickSight read-only dashboard in your web server code. Before you use this command, make sure that you have configured the dashboards and permissions.

Currently, you can use GetDashboardEmbedURL only from the server, not from the user's browser. The following rules apply to the combination of URL and authorization code:

  • They must be used together.

  • They can be used one time only.

  • They are valid for 5 minutes after you run this command.

  • The resulting user session is valid for 10 hours.

For more information, see Embedding Analytics Using GetDashboardEmbedUrl in the Amazon QuickSight User Guide.

For more information about the high-level steps for embedding and for an interactive demo of the ways you can customize embedding, visit the Amazon QuickSight Developer Portal.

" + "documentation":"

Generates a temporary session URL and authorization code(bearer token) that you can use to embed an Amazon QuickSight read-only dashboard in your website or application. Before you use this command, make sure that you have configured the dashboards and permissions.

Currently, you can use GetDashboardEmbedURL only from the server, not from the user's browser. The following rules apply to the generated URL:

  • They must be used together.

  • They can be used one time only.

  • They are valid for 5 minutes after you run this command.

  • You are charged only when the URL is used or there is interaction with Amazon QuickSight.

  • The resulting user session is valid for 15 minutes (default) up to 10 hours (maximum). You can use the optional SessionLifetimeInMinutes parameter to customize session duration.

For more information, see Embedding Analytics Using GetDashboardEmbedUrl in the Amazon QuickSight User Guide.

For more information about the high-level steps for embedding and for an interactive demo of the ways you can customize embedding, visit the Amazon QuickSight Developer Portal.

" }, "GetSessionEmbedUrl":{ "name":"GetSessionEmbedUrl", @@ -1451,7 +1571,7 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceUnavailableException"} ], - "documentation":"

Lists the namespaces for the specified Amazon Web Services account.

" + "documentation":"

Lists the namespaces for the specified Amazon Web Services account. This operation doesn't list deleted namespaces.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -1694,6 +1814,42 @@ ], "documentation":"

Searches for dashboards that belong to a user.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

" }, + "SearchDataSets":{ + "name":"SearchDataSets", + "http":{ + "method":"POST", + "requestUri":"/accounts/{AwsAccountId}/search/data-sets" + }, + "input":{"shape":"SearchDataSetsRequest"}, + "output":{"shape":"SearchDataSetsResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Use the SearchDataSets operation to search for datasets that belong to an account.

" + }, + "SearchDataSources":{ + "name":"SearchDataSources", + "http":{ + "method":"POST", + "requestUri":"/accounts/{AwsAccountId}/search/data-sources" + }, + "input":{"shape":"SearchDataSourcesRequest"}, + "output":{"shape":"SearchDataSourcesResponse"}, + "errors":[ + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterValueException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InternalFailureException"} + ], + "documentation":"

Use the SearchDataSources operation to search for data sources that belong to an account.

" + }, "SearchFolders":{ "name":"SearchFolders", "http":{ @@ -1709,6 +1865,7 @@ {"shape":"ThrottlingException"}, {"shape":"InvalidNextTokenException"}, {"shape":"UnsupportedUserEditionException"}, + {"shape":"InvalidRequestException"}, {"shape":"InternalFailureException"} ], "documentation":"

Searches the subfolders in a folder.

" @@ -1785,7 +1942,7 @@ {"shape":"InternalFailureException"}, {"shape":"ResourceUnavailableException"} ], - "documentation":"

Updates Amazon QuickSight customizations the current Amazon Web Services Region. Currently, the only customization you can use is a theme.

You can use customizations for your Amazon Web Services account or, if you specify a namespace, for a Amazon QuickSight namespace instead. Customizations that apply to a namespace override customizations that apply to an Amazon Web Services account. To find out which customizations apply, use the DescribeAccountCustomization API operation.

" + "documentation":"

Updates Amazon QuickSight customizations for the current Amazon Web Services Region. Currently, the only customization that you can use is a theme.

You can use customizations for your Amazon Web Services account or, if you specify a namespace, for a Amazon QuickSight namespace instead. Customizations that apply to a namespace override customizations that apply to an Amazon Web Services account. To find out which customizations apply, use the DescribeAccountCustomization API operation.

" }, "UpdateAccountSettings":{ "name":"UpdateAccountSettings", @@ -1838,6 +1995,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"UnsupportedUserEditionException"}, {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], "documentation":"

Updates the read and write permissions for an analysis.

" @@ -1875,6 +2033,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"UnsupportedUserEditionException"}, {"shape":"ConflictException"}, + {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], "documentation":"

Updates read and write permissions on a dashboard.

" @@ -1915,7 +2074,7 @@ {"shape":"UnsupportedUserEditionException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Updates a dataset. This operation doesn't support datasets that include uploaded files as a source.

" + "documentation":"

Updates a dataset. This operation doesn't support datasets that include uploaded files as a source. Partial updates are not supported by this operation.

" }, "UpdateDataSetPermissions":{ "name":"UpdateDataSetPermissions", @@ -2082,7 +2241,7 @@ {"shape":"UnsupportedPricingPlanException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Use the UpdatePublicSharingSettings operation to enable or disable the public sharing settings of an Amazon QuickSight dashboard.

To use this operation, enable session capacity pricing on your Amazon QuickSight account.

Before you can enable public sharing on your account, you need to allow public sharing permissions to an administrative user in the IAM console. For more information on using IAM with Amazon QuickSight, see Using Amazon QuickSight with IAM.

" + "documentation":"

Use the UpdatePublicSharingSettings operation to turn on or turn off the public sharing settings of an Amazon QuickSight dashboard.

To use this operation, turn on session capacity pricing for your Amazon QuickSight account.

Before you can turn on public sharing on your account, make sure to give public sharing permissions to an administrative user in the Identity and Access Management (IAM) console. For more information on using IAM with Amazon QuickSight, see Using Amazon QuickSight with IAM in the Amazon QuickSight User Guide.

" }, "UpdateTemplate":{ "name":"UpdateTemplate", @@ -2136,6 +2295,7 @@ {"shape":"ConflictException"}, {"shape":"ResourceNotFoundException"}, {"shape":"UnsupportedUserEditionException"}, + {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], "documentation":"

Updates the resource permissions for a template.

" @@ -2193,6 +2353,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, {"shape":"UnsupportedUserEditionException"}, + {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], "documentation":"

Updates the resource permissions for a theme. Permissions apply to the action to grant or revoke permissions on, for example \"quicksight:DescribeTheme\".

Theme permissions apply in groupings. Valid groupings include the following for the three levels of permissions, which are user, owner, or no permissions:

  • User

    • \"quicksight:DescribeTheme\"

    • \"quicksight:DescribeThemeAlias\"

    • \"quicksight:ListThemeAliases\"

    • \"quicksight:ListThemeVersions\"

  • Owner

    • \"quicksight:DescribeTheme\"

    • \"quicksight:DescribeThemeAlias\"

    • \"quicksight:ListThemeAliases\"

    • \"quicksight:ListThemeVersions\"

    • \"quicksight:DeleteTheme\"

    • \"quicksight:UpdateTheme\"

    • \"quicksight:CreateThemeAlias\"

    • \"quicksight:DeleteThemeAlias\"

    • \"quicksight:UpdateThemeAlias\"

    • \"quicksight:UpdateThemePermissions\"

    • \"quicksight:DescribeThemePermissions\"

  • To specify no permissions, omit the permissions list.

" @@ -2245,6 +2406,32 @@ }, "documentation":"

The Amazon QuickSight customizations associated with your Amazon Web Services account or a QuickSight namespace in a specific Amazon Web Services Region.

" }, + "AccountInfo":{ + "type":"structure", + "members":{ + "AccountName":{ + "shape":"String", + "documentation":"

The account name that you provided for the Amazon QuickSight subscription in your Amazon Web Services account. You create this name when you sign up for Amazon QuickSight. It's unique over all of Amazon Web Services, and it appears only when users sign in.

" + }, + "Edition":{ + "shape":"Edition", + "documentation":"

The edition of your Amazon QuickSight account.

" + }, + "NotificationEmail":{ + "shape":"String", + "documentation":"

The email address that will be used for Amazon QuickSight to send notifications regarding your Amazon Web Services account or Amazon QuickSight subscription.

" + }, + "AuthenticationType":{ + "shape":"String", + "documentation":"

The way that your Amazon QuickSight account is authenticated.

" + }, + "AccountSubscriptionStatus":{ + "shape":"String", + "documentation":"

The status of your account subscription.

" + } + }, + "documentation":"

A structure that contains the following account information elements:

  • Your Amazon QuickSight account name.

  • The edition of Amazon QuickSight that your account is using.

  • The notification email address that is associated with the Amazon QuickSight account.

  • The authentication type of the Amazon QuickSight account.

  • The status of the Amazon QuickSight account's subscription.

" + }, "AccountSettings":{ "type":"structure", "members":{ @@ -2266,7 +2453,11 @@ }, "PublicSharingEnabled":{ "shape":"Boolean", - "documentation":"

A boolean that indicates whether or not public sharing is enabled on an Amazon QuickSight account. For more information about enabling public sharing, see UpdatePublicSharingSettings.

" + "documentation":"

A Boolean value that indicates whether public sharing is turned on for an Amazon QuickSight account. For more information about turning on public sharing, see UpdatePublicSharingSettings.

" + }, + "TerminationProtectionEnabled":{ + "shape":"Boolean", + "documentation":"

A boolean value that determines whether or not an Amazon QuickSight account can be deleted. A True value doesn't allow the account to be deleted and results in an error message if a user tries to make a DeleteAccountSubsctiption request. A False value will allow the ccount to be deleted.

" } }, "documentation":"

The Amazon QuickSight settings associated with your Amazon Web Services account.

" @@ -2303,14 +2494,60 @@ "documentation":"

Availability status.

" } }, - "documentation":"

Ad hoc (one-time) filtering option.

" + "documentation":"

An ad hoc (one-time) filtering option.

" }, "AdditionalDashboardIdList":{ "type":"list", - "member":{"shape":"RestrictiveResourceId"}, + "member":{"shape":"ShortRestrictiveResourceId"}, "max":20, "min":1 }, + "AggregationFunction":{ + "type":"structure", + "members":{ + "NumericalAggregationFunction":{ + "shape":"NumericalAggregationFunction", + "documentation":"

Aggregation for numerical values.

" + }, + "CategoricalAggregationFunction":{ + "shape":"CategoricalAggregationFunction", + "documentation":"

Aggregation for categorical values.

  • COUNT: Aggregate by the total number of values, including duplicates.

  • DISTINCT_COUNT: Aggregate by the total number of distinct values.

" + }, + "DateAggregationFunction":{ + "shape":"DateAggregationFunction", + "documentation":"

Aggregation for date values.

  • COUNT: Aggregate by the total number of values, including duplicates.

  • DISTINCT_COUNT: Aggregate by the total number of distinct values.

  • MIN: Select the smallest date value.

  • MAX: Select the largest date value.

" + } + }, + "documentation":"

An aggregation function aggregates values from a dimension or measure.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "AggregationSortConfiguration":{ + "type":"structure", + "required":[ + "Column", + "SortDirection", + "AggregationFunction" + ], + "members":{ + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that determines the sort order of aggregated values.

" + }, + "SortDirection":{ + "shape":"SortDirection", + "documentation":"

The sort direction of values.

  • ASC: Sort in ascending order.

  • DESC: Sort in descending order.

" + }, + "AggregationFunction":{ + "shape":"AggregationFunction", + "documentation":"

The function that aggregates the values in Column.

" + } + }, + "documentation":"

The configuration options to sort aggregated values.

" + }, + "AggregationSortConfigurationList":{ + "type":"list", + "member":{"shape":"AggregationSortConfiguration"}, + "max":100 + }, "AliasName":{ "type":"string", "max":2048, @@ -2343,7 +2580,7 @@ "type":"structure", "members":{ "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis.

" }, "Arn":{ @@ -2385,6 +2622,49 @@ }, "documentation":"

Metadata structure for an analysis in Amazon QuickSight

" }, + "AnalysisDefaults":{ + "type":"structure", + "required":["DefaultNewSheetConfiguration"], + "members":{ + "DefaultNewSheetConfiguration":{ + "shape":"DefaultNewSheetConfiguration", + "documentation":"

The configuration for default new sheet settings.

" + } + }, + "documentation":"

The configuration for default analysis settings.

" + }, + "AnalysisDefinition":{ + "type":"structure", + "required":["DataSetIdentifierDeclarations"], + "members":{ + "DataSetIdentifierDeclarations":{ + "shape":"DataSetIdentifierDeclarationList", + "documentation":"

An array of dataset identifier declarations. This mapping allows the usage of dataset identifiers instead of dataset ARNs throughout analysis sub-structures.

" + }, + "Sheets":{ + "shape":"SheetDefinitionList", + "documentation":"

An array of sheet definitions for an analysis. Each SheetDefinition provides detailed information about a sheet within this analysis.

" + }, + "CalculatedFields":{ + "shape":"CalculatedFields", + "documentation":"

An array of calculated field definitions for the analysis.

" + }, + "ParameterDeclarations":{ + "shape":"ParameterDeclarationList", + "documentation":"

An array of parameter declarations for an analysis.

Parameters are named variables that can transfer a value for use by an action or an object.

For more information, see Parameters in Amazon QuickSight in the Amazon QuickSight User Guide.

" + }, + "FilterGroups":{ + "shape":"FilterGroupList", + "documentation":"

Filter definitions for an analysis.

For more information, see Filtering Data in Amazon QuickSight in the Amazon QuickSight User Guide.

" + }, + "ColumnConfigurations":{ + "shape":"ColumnConfigurationList", + "documentation":"

An array of analysis-level column configurations. Column configurations can be used to set default formatting for a column to be used throughout an analysis.

" + }, + "AnalysisDefaults":{"shape":"AnalysisDefaults"} + }, + "documentation":"

The definition of an analysis.

" + }, "AnalysisError":{ "type":"structure", "members":{ @@ -2395,6 +2675,10 @@ "Message":{ "shape":"NonEmptyString", "documentation":"

The message associated with the analysis error.

" + }, + "ViolatedEntities":{ + "shape":"EntityList", + "documentation":"

" } }, "documentation":"

Analysis error.

" @@ -2421,7 +2705,15 @@ }, "AnalysisFilterAttribute":{ "type":"string", - "enum":["QUICKSIGHT_USER"] + "enum":[ + "QUICKSIGHT_USER", + "QUICKSIGHT_VIEWER_OR_OWNER", + "DIRECT_QUICKSIGHT_VIEWER_OR_OWNER", + "QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_SOLE_OWNER", + "ANALYSIS_NAME" + ] }, "AnalysisName":{ "type":"string", @@ -2433,11 +2725,11 @@ "members":{ "Operator":{ "shape":"FilterOperator", - "documentation":"

The comparison operator that you want to use as a filter, for example \"Operator\": \"StringEquals\".

" + "documentation":"

The comparison operator that you want to use as a filter, for example \"Operator\": \"StringEquals\". Valid values are \"StringEquals\" and \"StringLike\".

If you set the operator value to \"StringEquals\", you need to provide an ownership related filter in the \"NAME\" field and the arn of the user or group whose folders you want to search in the \"Value\" field. For example, \"Name\":\"DIRECT_QUICKSIGHT_OWNER\", \"Operator\": \"StringEquals\", \"Value\": \"arn:aws:quicksight:us-east-1:1:user/default/UserName1\".

If you set the value to \"StringLike\", you need to provide the name of the folders you are searching for. For example, \"Name\":\"ANALYSIS_NAME\", \"Operator\": \"StringLike\", \"Value\": \"Test\". The \"StringLike\" operator only supports the NAME value ANALYSIS_NAME.

" }, "Name":{ "shape":"AnalysisFilterAttribute", - "documentation":"

The name of the value that you want to use as a filter, for example \"Name\": \"QUICKSIGHT_USER\".

" + "documentation":"

The name of the value that you want to use as a filter, for example \"Name\": \"QUICKSIGHT_OWNER\".

Valid values are defined as follows:

  • QUICKSIGHT_VIEWER_OR_OWNER: Provide an ARN of a user or group, and any analyses with that ARN listed as one of the analysis' owners or viewers are returned. Implicit permissions from folders or groups are considered.

  • QUICKSIGHT_OWNER: Provide an ARN of a user or group, and any analyses with that ARN listed as one of the owners of the analyses are returned. Implicit permissions from folders or groups are considered.

  • DIRECT_QUICKSIGHT_SOLE_OWNER: Provide an ARN of a user or group, and any analyses with that ARN listed as the only owner of the analysis are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_OWNER: Provide an ARN of a user or group, and any analyses with that ARN listed as one of the owners of the analyses are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_VIEWER_OR_OWNER: Provide an ARN of a user or group, and any analyses with that ARN listed as one of the owners or viewers of the analyses are returned. Implicit permissions from folders or groups are not considered.

  • ANALYSIS_NAME: Any analyses whose names have a substring match to this value will be returned.

" }, "Value":{ "shape":"String", @@ -2488,7 +2780,7 @@ "documentation":"

The Amazon Resource Name (ARN) for the analysis.

" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis. This ID displays in the URL.

" }, "Name":{ @@ -2515,27 +2807,147 @@ "member":{"shape":"AnalysisSummary"}, "max":100 }, + "AnchorDateConfiguration":{ + "type":"structure", + "members":{ + "AnchorOption":{ + "shape":"AnchorOption", + "documentation":"

The options for the date configuration. Choose one of the options below:

  • NOW

" + }, + "ParameterName":{ + "shape":"ParameterName", + "documentation":"

The name of the parameter that is used for the anchor date configuration.

" + } + }, + "documentation":"

The date configuration of the filter.

" + }, + "AnchorOption":{ + "type":"string", + "enum":["NOW"] + }, "AnonymousUserDashboardEmbeddingConfiguration":{ "type":"structure", "required":["InitialDashboardId"], "members":{ "InitialDashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The dashboard ID for the dashboard that you want the user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders this dashboard.

The Amazon Resource Name (ARN) of this dashboard must be included in the AuthorizedResourceArns parameter. Otherwise, the request will fail with InvalidParameterValueException.

" } }, "documentation":"

Information about the dashboard that you want to embed.

" }, + "AnonymousUserDashboardVisualEmbeddingConfiguration":{ + "type":"structure", + "required":["InitialDashboardVisualId"], + "members":{ + "InitialDashboardVisualId":{ + "shape":"DashboardVisualId", + "documentation":"

The visual ID for the visual that you want the user to see. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders this visual.

The Amazon Resource Name (ARN) of the dashboard that the visual belongs to must be included in the AuthorizedResourceArns parameter. Otherwise, the request will fail with InvalidParameterValueException.

" + } + }, + "documentation":"

The experience that you are embedding. You can use this object to generate a url that embeds a visual into your application.

" + }, "AnonymousUserEmbeddingExperienceConfiguration":{ "type":"structure", "members":{ "Dashboard":{ "shape":"AnonymousUserDashboardEmbeddingConfiguration", "documentation":"

The type of embedding experience. In this case, Amazon QuickSight dashboards.

" + }, + "DashboardVisual":{ + "shape":"AnonymousUserDashboardVisualEmbeddingConfiguration", + "documentation":"

The type of embedding experience. In this case, Amazon QuickSight visuals.

" + }, + "QSearchBar":{ + "shape":"AnonymousUserQSearchBarEmbeddingConfiguration", + "documentation":"

The Q search bar that you want to use for anonymous user embedding.

" } }, "documentation":"

The type of experience you want to embed. For anonymous users, you can embed Amazon QuickSight dashboards.

" }, + "AnonymousUserQSearchBarEmbeddingConfiguration":{ + "type":"structure", + "required":["InitialTopicId"], + "members":{ + "InitialTopicId":{ + "shape":"RestrictiveResourceId", + "documentation":"

The QuickSight Q topic ID of the topic that you want the anonymous user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders the Q search bar with this topic pre-selected.

The Amazon Resource Name (ARN) of this Q topic must be included in the AuthorizedResourceArns parameter. Otherwise, the request will fail with InvalidParameterValueException.

" + } + }, + "documentation":"

The settings that you want to use with the Q search bar.

" + }, + "ArcAxisConfiguration":{ + "type":"structure", + "members":{ + "Range":{ + "shape":"ArcAxisDisplayRange", + "documentation":"

The arc axis range of a GaugeChartVisual.

" + }, + "ReserveRange":{ + "shape":"Integer", + "documentation":"

The reserved range of the arc axis.

" + } + }, + "documentation":"

The arc axis configuration of a GaugeChartVisual.

" + }, + "ArcAxisDisplayRange":{ + "type":"structure", + "members":{ + "Min":{ + "shape":"Double", + "documentation":"

The minimum value of the arc axis range.

", + "box":true + }, + "Max":{ + "shape":"Double", + "documentation":"

The maximum value of the arc axis range.

", + "box":true + } + }, + "documentation":"

The arc axis range of a GaugeChartVisual.

" + }, + "ArcConfiguration":{ + "type":"structure", + "members":{ + "ArcAngle":{ + "shape":"Double", + "documentation":"

The option that determines the arc angle of a GaugeChartVisual.

", + "box":true + }, + "ArcThickness":{ + "shape":"ArcThicknessOptions", + "documentation":"

The options that determine the arc thickness of a GaugeChartVisual.

" + } + }, + "documentation":"

The arc configuration of a GaugeChartVisual.

" + }, + "ArcOptions":{ + "type":"structure", + "members":{ + "ArcThickness":{ + "shape":"ArcThickness", + "documentation":"

The arc thickness of a GaugeChartVisual.

" + } + }, + "documentation":"

The options that determine the arc thickness of a GaugeChartVisual.

" + }, + "ArcThickness":{ + "type":"string", + "enum":[ + "SMALL", + "MEDIUM", + "LARGE", + "WHOLE" + ] + }, + "ArcThicknessOptions":{ + "type":"string", + "enum":[ + "SMALL", + "MEDIUM", + "LARGE" + ] + }, "Arn":{"type":"string"}, "ArnList":{ "type":"list", @@ -2555,6 +2967,10 @@ "WorkGroup":{ "shape":"WorkGroup", "documentation":"

The workgroup that Amazon Athena uses.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

Use the RoleArn structure to override an account-wide role for a specific Athena data source. For example, say an account administrator has turned off all Athena access with an account-wide role. The administrator can then use RoleArn to bypass the account-wide role and allow Athena access for the single Athena data source that is specified in the structure, even if the account-wide role forbidding Athena access is still active.

" } }, "documentation":"

Parameters for Amazon Athena.

" @@ -2605,6 +3021,14 @@ }, "documentation":"

Parameters for Amazon Aurora PostgreSQL-Compatible Edition.

" }, + "AuthenticationMethodOption":{ + "type":"string", + "enum":[ + "IAM_AND_QUICKSIGHT", + "IAM_ONLY", + "ACTIVE_DIRECTORY" + ] + }, "AwsAccountId":{ "type":"string", "max":12, @@ -2626,18 +3050,629 @@ }, "documentation":"

The parameters for IoT Analytics.

" }, + "AxisBinding":{ + "type":"string", + "enum":[ + "PRIMARY_YAXIS", + "SECONDARY_YAXIS" + ] + }, + "AxisDataOptions":{ + "type":"structure", + "members":{ + "NumericAxisOptions":{ + "shape":"NumericAxisOptions", + "documentation":"

The options for an axis with a numeric field.

" + }, + "DateAxisOptions":{ + "shape":"DateAxisOptions", + "documentation":"

The options for an axis with a date field.

" + } + }, + "documentation":"

The data options for an axis.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "AxisDisplayDataDrivenRange":{ + "type":"structure", + "members":{ + }, + "documentation":"

The options that are saved for future extension.

" + }, + "AxisDisplayMinMaxRange":{ + "type":"structure", + "members":{ + "Minimum":{ + "shape":"Double", + "documentation":"

The minimum setup for an axis display range.

", + "box":true + }, + "Maximum":{ + "shape":"Double", + "documentation":"

The maximum setup for an axis display range.

", + "box":true + } + }, + "documentation":"

The minimum and maximum setup for an axis display range.

" + }, + "AxisDisplayOptions":{ + "type":"structure", + "members":{ + "TickLabelOptions":{ + "shape":"AxisTickLabelOptions", + "documentation":"

The tick label options of an axis.

" + }, + "AxisLineVisibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not the axis line is visible.

" + }, + "GridLineVisibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not the grid line is visible.

" + }, + "DataOptions":{ + "shape":"AxisDataOptions", + "documentation":"

The data options for an axis.

" + }, + "ScrollbarOptions":{ + "shape":"ScrollBarOptions", + "documentation":"

The scroll bar options for an axis.

" + }, + "AxisOffset":{ + "shape":"PixelLength", + "documentation":"

The offset value that determines the starting placement of the axis within a visual's bounds.

" + } + }, + "documentation":"

The display options for the axis label.

" + }, + "AxisDisplayRange":{ + "type":"structure", + "members":{ + "MinMax":{ + "shape":"AxisDisplayMinMaxRange", + "documentation":"

The minimum and maximum setup of an axis display range.

" + }, + "DataDriven":{ + "shape":"AxisDisplayDataDrivenRange", + "documentation":"

The data-driven setup of an axis display range.

" + } + }, + "documentation":"

The range setup of a numeric axis display range.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "AxisLabelOptions":{ + "type":"structure", + "members":{ + "FontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

The font configuration of the axis label.

" + }, + "CustomLabel":{ + "shape":"String", + "documentation":"

The text for the axis label.

" + }, + "ApplyTo":{ + "shape":"AxisLabelReferenceOptions", + "documentation":"

The options that indicate which field the label belongs to.

" + } + }, + "documentation":"

The label options for a chart axis. You must specify the field that the label is targeted to.

" + }, + "AxisLabelOptionsList":{ + "type":"list", + "member":{"shape":"AxisLabelOptions"}, + "max":100 + }, + "AxisLabelReferenceOptions":{ + "type":"structure", + "required":[ + "FieldId", + "Column" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field that the axis label is targeted to.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the axis label is targeted to.

" + } + }, + "documentation":"

The reference that specifies where the axis label is applied to.

" + }, + "AxisLinearScale":{ + "type":"structure", + "members":{ + "StepCount":{ + "shape":"Integer", + "documentation":"

The step count setup of a linear axis.

", + "box":true + }, + "StepSize":{ + "shape":"Double", + "documentation":"

The step size setup of a linear axis.

", + "box":true + } + }, + "documentation":"

The liner axis scale setup.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "AxisLogarithmicScale":{ + "type":"structure", + "members":{ + "Base":{ + "shape":"Double", + "documentation":"

The base setup of a logarithmic axis scale.

", + "box":true + } + }, + "documentation":"

The logarithmic axis scale setup.

" + }, + "AxisScale":{ + "type":"structure", + "members":{ + "Linear":{ + "shape":"AxisLinearScale", + "documentation":"

The linear axis scale setup.

" + }, + "Logarithmic":{ + "shape":"AxisLogarithmicScale", + "documentation":"

The logarithmic axis scale setup.

" + } + }, + "documentation":"

The scale setup options for a numeric axis display.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "AxisTickLabelOptions":{ + "type":"structure", + "members":{ + "LabelOptions":{ + "shape":"LabelOptions", + "documentation":"

Determines whether or not the axis ticks are visible.

" + }, + "RotationAngle":{ + "shape":"Double", + "documentation":"

The rotation angle of the axis tick labels.

", + "box":true + } + }, + "documentation":"

The tick label options of an axis.

" + }, + "BarChartAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Category":{ + "shape":"DimensionFieldList", + "documentation":"

The category (y-axis) field well of a bar chart.

" + }, + "Values":{ + "shape":"MeasureFieldList", + "documentation":"

The value field wells of a bar chart. Values are aggregated by category.

" + }, + "Colors":{ + "shape":"DimensionFieldList", + "documentation":"

The color (group/color) field well of a bar chart.

" + }, + "SmallMultiples":{ + "shape":"SmallMultiplesDimensionFieldList", + "documentation":"

The small multiples field well of a bar chart.

" + } + }, + "documentation":"

The aggregated field wells of a bar chart.

" + }, + "BarChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"BarChartFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"BarChartSortConfiguration", + "documentation":"

The sort configuration of a BarChartVisual.

" + }, + "Orientation":{ + "shape":"BarChartOrientation", + "documentation":"

The orientation of the bars in a bar chart visual. There are two valid values in this structure:

  • HORIZONTAL: Used for charts that have horizontal bars. Visuals that use this value are horizontal bar charts, horizontal stacked bar charts, and horizontal stacked 100% bar charts.

  • VERTICAL: Used for charts that have vertical bars. Visuals that use this value are vertical bar charts, vertical stacked bar charts, and vertical stacked 100% bar charts.

" + }, + "BarsArrangement":{ + "shape":"BarsArrangement", + "documentation":"

Determines the arrangement of the bars. The orientation and arrangement of bars determine the type of bar that is used in the visual.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The palette (chart color) display setup of the visual.

" + }, + "SmallMultiplesOptions":{ + "shape":"SmallMultiplesOptions", + "documentation":"

The small multiples setup for the visual.

" + }, + "CategoryAxis":{ + "shape":"AxisDisplayOptions", + "documentation":"

The label display options (grid line, range, scale, axis step) for bar chart category.

" + }, + "CategoryLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility and sort icon visibility) for a bar chart.

" + }, + "ValueAxis":{ + "shape":"AxisDisplayOptions", + "documentation":"

The label display options (grid line, range, scale, axis step) for a bar chart value.

" + }, + "ValueLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility and sort icon visibility) for a bar chart value.

" + }, + "ColorLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility and sort icon visibility) for a color that is used in a bar chart.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The options that determine if visual data labels are displayed.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip display setup of the visual.

" + }, + "ReferenceLines":{ + "shape":"ReferenceLineList", + "documentation":"

The reference line setup of the visual.

" + }, + "ContributionAnalysisDefaults":{ + "shape":"ContributionAnalysisDefaultList", + "documentation":"

The contribution analysis (anomaly configuration) setup of the visual.

" + } + }, + "documentation":"

The configuration of a BarChartVisual.

" + }, + "BarChartFieldWells":{ + "type":"structure", + "members":{ + "BarChartAggregatedFieldWells":{ + "shape":"BarChartAggregatedFieldWells", + "documentation":"

The aggregated field wells of a bar chart.

" + } + }, + "documentation":"

The field wells of a BarChartVisual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "BarChartOrientation":{ + "type":"string", + "enum":[ + "HORIZONTAL", + "VERTICAL" + ] + }, + "BarChartSortConfiguration":{ + "type":"structure", + "members":{ + "CategorySort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of category fields.

" + }, + "CategoryItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of categories displayed in a bar chart.

" + }, + "ColorSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of color fields in a bar chart.

" + }, + "ColorItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of values displayed in a bar chart.

" + }, + "SmallMultiplesSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the small multiples field.

" + }, + "SmallMultiplesLimitConfiguration":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of small multiples panels that are displayed.

" + } + }, + "documentation":"

sort-configuration-description

" + }, + "BarChartVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"BarChartConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A bar chart.

The BarChartVisual structure describes a visual that is a member of the bar chart family. The following charts can be described using this structure:

  • Horizontal bar chart

  • Vertical bar chart

  • Horizontal stacked bar chart

  • Vertical stacked bar chart

  • Horizontal stacked 100% bar chart

  • Vertical stacked 100% bar chart

For more information, see Using bar charts in the Amazon QuickSight User Guide.

" + }, + "BarsArrangement":{ + "type":"string", + "enum":[ + "CLUSTERED", + "STACKED", + "STACKED_PERCENT" + ] + }, + "BaseMapStyleType":{ + "type":"string", + "enum":[ + "LIGHT_GRAY", + "DARK_GRAY", + "STREET", + "IMAGERY" + ] + }, + "BinCountLimit":{ + "type":"long", + "max":1000, + "min":0 + }, + "BinCountOptions":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"BinCountValue", + "documentation":"

The options that determine the bin count value.

" + } + }, + "documentation":"

The options that determine the bin count of a histogram.

" + }, + "BinCountValue":{ + "type":"integer", + "min":0 + }, + "BinWidthOptions":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"BinWidthValue", + "documentation":"

The options that determine the bin width value.

" + }, + "BinCountLimit":{ + "shape":"BinCountLimit", + "documentation":"

The options that determine the bin count limit.

" + } + }, + "documentation":"

The options that determine the bin width of a histogram.

" + }, + "BinWidthValue":{ + "type":"double", + "min":0 + }, + "BodySectionConfiguration":{ + "type":"structure", + "required":[ + "SectionId", + "Content" + ], + "members":{ + "SectionId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a body section.

" + }, + "Content":{ + "shape":"BodySectionContent", + "documentation":"

The configuration of content in a body section.

" + }, + "Style":{ + "shape":"SectionStyle", + "documentation":"

The style options of a body section.

" + }, + "PageBreakConfiguration":{ + "shape":"SectionPageBreakConfiguration", + "documentation":"

The configuration of a page break for a section.

" + } + }, + "documentation":"

The configuration of a body section.

" + }, + "BodySectionConfigurationList":{ + "type":"list", + "member":{"shape":"BodySectionConfiguration"}, + "max":28 + }, + "BodySectionContent":{ + "type":"structure", + "members":{ + "Layout":{ + "shape":"SectionLayoutConfiguration", + "documentation":"

The layout configuration of a body section.

" + } + }, + "documentation":"

The configuration of content in a body section.

" + }, "Boolean":{"type":"boolean"}, + "BooleanObject":{"type":"boolean"}, "BorderStyle":{ "type":"structure", "members":{ "Show":{ - "shape":"boolean", + "shape":"Boolean", "documentation":"

The option to enable display of borders for visuals.

", "box":true } }, "documentation":"

The display options for tile borders for visuals.

" }, + "BoxPlotAggregatedFieldWells":{ + "type":"structure", + "members":{ + "GroupBy":{ + "shape":"BoxPlotDimensionFieldList", + "documentation":"

The group by field well of a box plot chart. Values are grouped based on group by fields.

" + }, + "Values":{ + "shape":"BoxPlotMeasureFieldList", + "documentation":"

The value field well of a box plot chart. Values are aggregated based on group by fields.

" + } + }, + "documentation":"

The aggregated field well for a box plot.

" + }, + "BoxPlotChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"BoxPlotFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"BoxPlotSortConfiguration", + "documentation":"

The sort configuration of a BoxPlotVisual.

" + }, + "BoxPlotOptions":{ + "shape":"BoxPlotOptions", + "documentation":"

The box plot chart options for a box plot visual

" + }, + "CategoryAxis":{ + "shape":"AxisDisplayOptions", + "documentation":"

The label display options (grid line, range, scale, axis step) of a box plot category.

" + }, + "CategoryLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility and sort Icon visibility) of a box plot category.

" + }, + "PrimaryYAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The label display options (grid line, range, scale, axis step) of a box plot category.

" + }, + "PrimaryYAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility and sort icon visibility) of a box plot value.

" + }, + "Legend":{"shape":"LegendOptions"}, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip display setup of the visual.

" + }, + "ReferenceLines":{ + "shape":"ReferenceLineList", + "documentation":"

The reference line setup of the visual.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The palette (chart color) display setup of the visual.

" + } + }, + "documentation":"

The configuration of a BoxPlotVisual.

" + }, + "BoxPlotDimensionFieldList":{ + "type":"list", + "member":{"shape":"DimensionField"}, + "max":1 + }, + "BoxPlotFieldWells":{ + "type":"structure", + "members":{ + "BoxPlotAggregatedFieldWells":{ + "shape":"BoxPlotAggregatedFieldWells", + "documentation":"

The aggregated field wells of a box plot.

" + } + }, + "documentation":"

The field wells of a BoxPlotVisual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "BoxPlotFillStyle":{ + "type":"string", + "enum":[ + "SOLID", + "TRANSPARENT" + ] + }, + "BoxPlotMeasureFieldList":{ + "type":"list", + "member":{"shape":"MeasureField"}, + "max":5 + }, + "BoxPlotOptions":{ + "type":"structure", + "members":{ + "StyleOptions":{ + "shape":"BoxPlotStyleOptions", + "documentation":"

The style options of the box plot.

" + }, + "OutlierVisibility":{ + "shape":"Visibility", + "documentation":"

Determines the visibility of the outlier in a box plot.

" + }, + "AllDataPointsVisibility":{ + "shape":"Visibility", + "documentation":"

Determines the visibility of all data points of the box plot.

" + } + }, + "documentation":"

The options of a box plot visual.

" + }, + "BoxPlotSortConfiguration":{ + "type":"structure", + "members":{ + "CategorySort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of a group by fields.

" + }, + "PaginationConfiguration":{ + "shape":"PaginationConfiguration", + "documentation":"

The pagination configuration of a table visual or box plot.

" + } + }, + "documentation":"

The sort configuration of a BoxPlotVisual.

" + }, + "BoxPlotStyleOptions":{ + "type":"structure", + "members":{ + "FillStyle":{ + "shape":"BoxPlotFillStyle", + "documentation":"

The fill styles (solid, transparent) of the box plot.

" + } + }, + "documentation":"

The style options of the box plot.

" + }, + "BoxPlotVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers..

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"BoxPlotChartConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A box plot.

For more information, see Using box plots in the Amazon QuickSight User Guide.

" + }, "CIDR":{ "type":"string", "pattern":"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[1-9]))$" @@ -2671,6 +3706,52 @@ "max":128, "min":1 }, + "CalculatedField":{ + "type":"structure", + "required":[ + "DataSetIdentifier", + "Name", + "Expression" + ], + "members":{ + "DataSetIdentifier":{ + "shape":"DataSetIdentifier", + "documentation":"

The data set that is used in this calculated field.

" + }, + "Name":{ + "shape":"ColumnName", + "documentation":"

The name of the calculated field.

" + }, + "Expression":{ + "shape":"Expression", + "documentation":"

The expression of the calculated field.

" + } + }, + "documentation":"

The calculated field of an analysis.

" + }, + "CalculatedFields":{ + "type":"list", + "member":{"shape":"CalculatedField"}, + "max":100 + }, + "CalculatedMeasureField":{ + "type":"structure", + "required":[ + "FieldId", + "Expression" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The custom field ID.

" + }, + "Expression":{ + "shape":"Expression", + "documentation":"

The expression in the table calculation.

" + } + }, + "documentation":"

The table calculation measure field for pivot tables.

" + }, "CancelIngestionRequest":{ "type":"structure", "required":[ @@ -2721,6 +3802,35 @@ } } }, + "CascadingControlConfiguration":{ + "type":"structure", + "members":{ + "SourceControls":{ + "shape":"CascadingControlSourceList", + "documentation":"

A list of source controls that determine the values that are used in the current control.

" + } + }, + "documentation":"

The values that are displayed in a control can be configured to only show values that are valid based on what's selected in other controls.

" + }, + "CascadingControlSource":{ + "type":"structure", + "members":{ + "SourceSheetControlId":{ + "shape":"String", + "documentation":"

The source sheet control ID of a CascadingControlSource.

" + }, + "ColumnToMatch":{ + "shape":"ColumnIdentifier", + "documentation":"

The column identifier that determines which column to look up for the source sheet control.

" + } + }, + "documentation":"

The source controls that are used in a CascadingControlConfiguration.

" + }, + "CascadingControlSourceList":{ + "type":"list", + "member":{"shape":"CascadingControlSource"}, + "max":200 + }, "CastColumnTypeOperation":{ "type":"structure", "required":[ @@ -2747,16 +3857,254 @@ "type":"string", "max":128 }, + "CategoricalAggregationFunction":{ + "type":"string", + "enum":[ + "COUNT", + "DISTINCT_COUNT" + ] + }, + "CategoricalDimensionField":{ + "type":"structure", + "required":[ + "FieldId", + "Column" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The custom field ID.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that is used in the CategoricalDimensionField.

" + }, + "HierarchyId":{ + "shape":"HierarchyId", + "documentation":"

The custom hierarchy ID.

" + }, + "FormatConfiguration":{ + "shape":"StringFormatConfiguration", + "documentation":"

The format configuration of the field.

" + } + }, + "documentation":"

The dimension type field with categorical type columns..

" + }, + "CategoricalMeasureField":{ + "type":"structure", + "required":[ + "FieldId", + "Column" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The custom field ID.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that is used in the CategoricalMeasureField.

" + }, + "AggregationFunction":{ + "shape":"CategoricalAggregationFunction", + "documentation":"

The aggregation function of the measure field.

" + }, + "FormatConfiguration":{ + "shape":"StringFormatConfiguration", + "documentation":"

The format configuration of the field.

" + } + }, + "documentation":"

The measure type field with categorical type columns.

" + }, + "CategoryDrillDownFilter":{ + "type":"structure", + "required":[ + "Column", + "CategoryValues" + ], + "members":{ + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "CategoryValues":{ + "shape":"CategoryValueList", + "documentation":"

A list of the string inputs that are the values of the category drill down filter.

" + } + }, + "documentation":"

The numeric equality type drill down filter.

" + }, + "CategoryFilter":{ + "type":"structure", + "required":[ + "FilterId", + "Column" + ], + "members":{ + "FilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

An identifier that uniquely identifies a filter within a dashboard, analysis, or template.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "Configuration":{ + "shape":"CategoryFilterConfiguration", + "documentation":"

The configuration for a CategoryFilter.

" + } + }, + "documentation":"

A CategoryFilter filters text values.

For more information, see Adding text filters in the Amazon QuickSight User Guide.

" + }, + "CategoryFilterConfiguration":{ + "type":"structure", + "members":{ + "FilterListConfiguration":{ + "shape":"FilterListConfiguration", + "documentation":"

A list of filter configurations. In the Amazon QuickSight console, this filter type is called a filter list.

" + }, + "CustomFilterListConfiguration":{ + "shape":"CustomFilterListConfiguration", + "documentation":"

A list of custom filter values. In the Amazon QuickSight console, this filter type is called a custom filter list.

" + }, + "CustomFilterConfiguration":{ + "shape":"CustomFilterConfiguration", + "documentation":"

A custom filter that filters based on a single value. This filter can be partially matched.

" + } + }, + "documentation":"

The configuration for a CategoryFilter.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "CategoryFilterMatchOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "DOES_NOT_EQUAL", + "CONTAINS", + "DOES_NOT_CONTAIN", + "STARTS_WITH", + "ENDS_WITH" + ] + }, + "CategoryFilterSelectAllOptions":{ + "type":"string", + "enum":["FILTER_ALL_VALUES"] + }, + "CategoryValue":{ + "type":"string", + "max":512 + }, + "CategoryValueList":{ + "type":"list", + "member":{"shape":"CategoryValue"}, + "max":100000 + }, + "ChartAxisLabelOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of an axis label on a chart. Choose one of the following options:

  • VISIBLE: Shows the axis.

  • HIDDEN: Hides the axis.

" + }, + "SortIconVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility configuration of the sort icon on a chart's axis label.

" + }, + "AxisLabelOptions":{ + "shape":"AxisLabelOptionsList", + "documentation":"

The label options for a chart axis.

" + } + }, + "documentation":"

The label options for an axis on a chart.

" + }, "ClusterId":{ "type":"string", "max":64, "min":1 }, + "ClusterMarker":{ + "type":"structure", + "members":{ + "SimpleClusterMarker":{ + "shape":"SimpleClusterMarker", + "documentation":"

The simple cluster marker of the cluster marker.

" + } + }, + "documentation":"

The cluster marker that is a part of the cluster marker configuration.

" + }, + "ClusterMarkerConfiguration":{ + "type":"structure", + "members":{ + "ClusterMarker":{ + "shape":"ClusterMarker", + "documentation":"

The cluster marker that is a part of the cluster marker configuration

" + } + }, + "documentation":"

The cluster marker configuration of the geospatial map selected point style.

" + }, + "ColorFillType":{ + "type":"string", + "enum":[ + "DISCRETE", + "GRADIENT" + ] + }, "ColorList":{ "type":"list", "member":{"shape":"HexColor"}, "max":100 }, + "ColorScale":{ + "type":"structure", + "required":[ + "Colors", + "ColorFillType" + ], + "members":{ + "Colors":{ + "shape":"ColorScaleColorList", + "documentation":"

Determines the list of colors that are applied to the visual.

" + }, + "ColorFillType":{ + "shape":"ColorFillType", + "documentation":"

Determines the color fill type.

" + }, + "NullValueColor":{ + "shape":"DataColor", + "documentation":"

Determines the color that is applied to null values.

" + } + }, + "documentation":"

Determines the color scale that is applied to the visual.

" + }, + "ColorScaleColorList":{ + "type":"list", + "member":{"shape":"DataColor"}, + "max":3, + "min":2 + }, + "ColumnConfiguration":{ + "type":"structure", + "required":["Column"], + "members":{ + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column.

" + }, + "FormatConfiguration":{ + "shape":"FormatConfiguration", + "documentation":"

The format configuration of a column.

" + }, + "Role":{ + "shape":"ColumnRole", + "documentation":"

The role of the column.

" + } + }, + "documentation":"

The general configuration of a column.

" + }, + "ColumnConfigurationList":{ + "type":"list", + "member":{"shape":"ColumnConfiguration"}, + "max":200 + }, "ColumnDataType":{ "type":"string", "enum":[ @@ -2836,11 +4184,52 @@ "member":{"shape":"ColumnGroupSchema"}, "max":500 }, + "ColumnHierarchy":{ + "type":"structure", + "members":{ + "ExplicitHierarchy":{ + "shape":"ExplicitHierarchy", + "documentation":"

The option that determines the hierarchy of the fields that are built within a visual's field wells. These fields can't be duplicated to other visuals.

" + }, + "DateTimeHierarchy":{ + "shape":"DateTimeHierarchy", + "documentation":"

The option that determines the hierarchy of any DateTime fields.

" + }, + "PredefinedHierarchy":{ + "shape":"PredefinedHierarchy", + "documentation":"

The option that determines the hierarchy of the fields that are defined during data preparation. These fields are available to use in any analysis that uses the data source.

" + } + }, + "documentation":"

The option that determines the hierarchy of the fields for a visual element.

" + }, + "ColumnHierarchyList":{ + "type":"list", + "member":{"shape":"ColumnHierarchy"}, + "max":2 + }, "ColumnId":{ "type":"string", "max":64, "min":1 }, + "ColumnIdentifier":{ + "type":"structure", + "required":[ + "DataSetIdentifier", + "ColumnName" + ], + "members":{ + "DataSetIdentifier":{ + "shape":"DataSetIdentifier", + "documentation":"

The data set that the column belongs to.

" + }, + "ColumnName":{ + "shape":"ColumnName", + "documentation":"

The name of the column.

" + } + }, + "documentation":"

A column of a data set.

" + }, "ColumnLevelPermissionRule":{ "type":"structure", "members":{ @@ -2876,6 +4265,13 @@ "member":{"shape":"String"}, "min":1 }, + "ColumnRole":{ + "type":"string", + "enum":[ + "DIMENSION", + "MEASURE" + ] + }, "ColumnSchema":{ "type":"structure", "members":{ @@ -2899,6 +4295,25 @@ "member":{"shape":"ColumnSchema"}, "max":500 }, + "ColumnSort":{ + "type":"structure", + "required":[ + "SortBy", + "Direction" + ], + "members":{ + "SortBy":{"shape":"ColumnIdentifier"}, + "Direction":{ + "shape":"SortDirection", + "documentation":"

The sort direction.

" + }, + "AggregationFunction":{ + "shape":"AggregationFunction", + "documentation":"

The aggregation function that is defined in the column sort.

" + } + }, + "documentation":"

The sort configuration for a column that is not used in a field well.

" + }, "ColumnTag":{ "type":"structure", "members":{ @@ -2930,6 +4345,271 @@ "type":"list", "member":{"shape":"ColumnTagName"} }, + "ColumnTooltipItem":{ + "type":"structure", + "required":["Column"], + "members":{ + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The target column of the tooltip item.

" + }, + "Label":{ + "shape":"String", + "documentation":"

The label of the tooltip item.

" + }, + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the tooltip item.

" + }, + "Aggregation":{ + "shape":"AggregationFunction", + "documentation":"

The aggregation function of the column tooltip item.

" + } + }, + "documentation":"

The tooltip item for the columns that are not part of a field well.

" + }, + "ComboChartAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Category":{ + "shape":"DimensionFieldList", + "documentation":"

The aggregated category field wells of a combo chart.

" + }, + "BarValues":{ + "shape":"MeasureFieldList", + "documentation":"

The aggregated BarValues field well of a combo chart.

" + }, + "Colors":{ + "shape":"DimensionFieldList", + "documentation":"

The aggregated colors field well of a combo chart.

" + }, + "LineValues":{ + "shape":"MeasureFieldList", + "documentation":"

The aggregated LineValues field well of a combo chart.

" + } + }, + "documentation":"

The aggregated field wells of a combo chart.

" + }, + "ComboChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"ComboChartFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"ComboChartSortConfiguration", + "documentation":"

The sort configuration of a ComboChartVisual.

" + }, + "BarsArrangement":{ + "shape":"BarsArrangement", + "documentation":"

Determines the bar arrangement in a combo chart. The following are valid values in this structure:

  • CLUSTERED: For clustered bar combo charts.

  • STACKED: For stacked bar combo charts.

  • STACKED_PERCENT: Do not use. If you use this value, the operation returns a validation error.

" + }, + "CategoryAxis":{ + "shape":"AxisDisplayOptions", + "documentation":"

The category axis of a combo chart.

" + }, + "CategoryLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility, and sort icon visibility) of a combo chart category (group/color) field well.

" + }, + "PrimaryYAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The label display options (grid line, range, scale, and axis step) of a combo chart's primary y-axis (bar) field well.

" + }, + "PrimaryYAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility, and sort icon visibility) of a combo chart's primary y-axis (bar) field well.

" + }, + "SecondaryYAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The label display options (grid line, range, scale, axis step) of a combo chart's secondary y-axis (line) field well.

" + }, + "SecondaryYAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility, and sort icon visibility) of a combo chart's secondary y-axis(line) field well.

" + }, + "ColorLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility, and sort icon visibility) of a combo chart's color field well.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "BarDataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The options that determine if visual data labels are displayed.

The data label options for a bar in a combo chart.

" + }, + "LineDataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The options that determine if visual data labels are displayed.

The data label options for a line in a combo chart.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "ReferenceLines":{ + "shape":"ReferenceLineList", + "documentation":"

The reference line setup of the visual.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The palette (chart color) display setup of the visual.

" + } + }, + "documentation":"

The configuration of a ComboChartVisual.

" + }, + "ComboChartFieldWells":{ + "type":"structure", + "members":{ + "ComboChartAggregatedFieldWells":{ + "shape":"ComboChartAggregatedFieldWells", + "documentation":"

The aggregated field wells of a combo chart. Combo charts only have aggregated field wells. Columns in a combo chart are aggregated by category.

" + } + }, + "documentation":"

The field wells of the visual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "ComboChartSortConfiguration":{ + "type":"structure", + "members":{ + "CategorySort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the category field well in a combo chart.

" + }, + "CategoryItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The item limit configuration for the category field well of a combo chart.

" + }, + "ColorSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the color field well in a combo chart.

" + }, + "ColorItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The item limit configuration of the color field well in a combo chart.

" + } + }, + "documentation":"

The sort configuration of a ComboChartVisual.

" + }, + "ComboChartVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"ComboChartConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A combo chart.

The ComboChartVisual includes stacked bar combo charts and clustered bar combo charts

For more information, see Using combo charts in the Amazon QuickSight User Guide.

" + }, + "ComparisonConfiguration":{ + "type":"structure", + "members":{ + "ComparisonMethod":{ + "shape":"ComparisonMethod", + "documentation":"

The method of the comparison. Choose from the following options:

  • DIFFERENCE

  • PERCENT_DIFFERENCE

  • PERCENT

" + }, + "ComparisonFormat":{ + "shape":"ComparisonFormatConfiguration", + "documentation":"

The format of the comparison.

" + } + }, + "documentation":"

The comparison display configuration of a KPI or gauge chart.

" + }, + "ComparisonFormatConfiguration":{ + "type":"structure", + "members":{ + "NumberDisplayFormatConfiguration":{ + "shape":"NumberDisplayFormatConfiguration", + "documentation":"

The number display format.

" + }, + "PercentageDisplayFormatConfiguration":{ + "shape":"PercentageDisplayFormatConfiguration", + "documentation":"

The percentage display format.

" + } + }, + "documentation":"

The format of the comparison.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "ComparisonMethod":{ + "type":"string", + "enum":[ + "DIFFERENCE", + "PERCENT_DIFFERENCE", + "PERCENT" + ] + }, + "Computation":{ + "type":"structure", + "members":{ + "TopBottomRanked":{ + "shape":"TopBottomRankedComputation", + "documentation":"

The top ranked and bottom ranked computation configuration.

" + }, + "TopBottomMovers":{ + "shape":"TopBottomMoversComputation", + "documentation":"

The top movers and bottom movers computation configuration.

" + }, + "TotalAggregation":{ + "shape":"TotalAggregationComputation", + "documentation":"

The total aggregation computation configuration.

" + }, + "MaximumMinimum":{ + "shape":"MaximumMinimumComputation", + "documentation":"

The maximum and minimum computation configuration.

" + }, + "MetricComparison":{ + "shape":"MetricComparisonComputation", + "documentation":"

The metric comparison computation configuration.

" + }, + "PeriodOverPeriod":{ + "shape":"PeriodOverPeriodComputation", + "documentation":"

The period over period computation configuration.

" + }, + "PeriodToDate":{ + "shape":"PeriodToDateComputation", + "documentation":"

The period to DataSetIdentifier computation configuration.

" + }, + "GrowthRate":{ + "shape":"GrowthRateComputation", + "documentation":"

The growth rate computation configuration.

" + }, + "UniqueValues":{ + "shape":"UniqueValuesComputation", + "documentation":"

The unique values computation configuration.

" + }, + "Forecast":{ + "shape":"ForecastComputation", + "documentation":"

The forecast computation configuration.

" + } + }, + "documentation":"

The computation union that is used in an insight visual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "ComputationList":{ + "type":"list", + "member":{"shape":"Computation"}, + "max":100 + }, "ConcurrentUpdatingException":{ "type":"structure", "members":{ @@ -2940,6 +4620,152 @@ "error":{"httpStatusCode":500}, "exception":true }, + "ConditionalFormattingColor":{ + "type":"structure", + "members":{ + "Solid":{ + "shape":"ConditionalFormattingSolidColor", + "documentation":"

Formatting configuration for solid color.

" + }, + "Gradient":{ + "shape":"ConditionalFormattingGradientColor", + "documentation":"

Formatting configuration for gradient color.

" + } + }, + "documentation":"

The formatting configuration for the color.

" + }, + "ConditionalFormattingCustomIconCondition":{ + "type":"structure", + "required":[ + "Expression", + "IconOptions" + ], + "members":{ + "Expression":{ + "shape":"Expression", + "documentation":"

The expression that determines the condition of the icon set.

" + }, + "IconOptions":{ + "shape":"ConditionalFormattingCustomIconOptions", + "documentation":"

Custom icon options for an icon set.

" + }, + "Color":{ + "shape":"HexColor", + "documentation":"

Determines the color of the icon.

" + }, + "DisplayConfiguration":{ + "shape":"ConditionalFormattingIconDisplayConfiguration", + "documentation":"

Determines the icon display configuration.

" + } + }, + "documentation":"

Determines the custom condition for an icon set.

" + }, + "ConditionalFormattingCustomIconOptions":{ + "type":"structure", + "members":{ + "Icon":{ + "shape":"Icon", + "documentation":"

Determines the type of icon.

" + }, + "UnicodeIcon":{ + "shape":"UnicodeIcon", + "documentation":"

Determines the Unicode icon type.

" + } + }, + "documentation":"

Custom icon options for an icon set.

" + }, + "ConditionalFormattingGradientColor":{ + "type":"structure", + "required":[ + "Expression", + "Color" + ], + "members":{ + "Expression":{ + "shape":"Expression", + "documentation":"

The expression that determines the formatting configuration for gradient color.

" + }, + "Color":{ + "shape":"GradientColor", + "documentation":"

Determines the color.

" + } + }, + "documentation":"

Formatting configuration for gradient color.

" + }, + "ConditionalFormattingIcon":{ + "type":"structure", + "members":{ + "IconSet":{ + "shape":"ConditionalFormattingIconSet", + "documentation":"

Formatting configuration for icon set.

" + }, + "CustomCondition":{ + "shape":"ConditionalFormattingCustomIconCondition", + "documentation":"

Determines the custom condition for an icon set.

" + } + }, + "documentation":"

The formatting configuration for the icon.

" + }, + "ConditionalFormattingIconDisplayConfiguration":{ + "type":"structure", + "members":{ + "IconDisplayOption":{ + "shape":"ConditionalFormattingIconDisplayOption", + "documentation":"

Determines the icon display configuration.

" + } + }, + "documentation":"

Determines the icon display configuration.

" + }, + "ConditionalFormattingIconDisplayOption":{ + "type":"string", + "enum":["ICON_ONLY"] + }, + "ConditionalFormattingIconSet":{ + "type":"structure", + "required":["Expression"], + "members":{ + "Expression":{ + "shape":"Expression", + "documentation":"

The expression that determines the formatting configuration for the icon set.

" + }, + "IconSetType":{ + "shape":"ConditionalFormattingIconSetType", + "documentation":"

Determines the icon set type.

" + } + }, + "documentation":"

Formatting configuration for icon set.

" + }, + "ConditionalFormattingIconSetType":{ + "type":"string", + "enum":[ + "PLUS_MINUS", + "CHECK_X", + "THREE_COLOR_ARROW", + "THREE_GRAY_ARROW", + "CARET_UP_MINUS_DOWN", + "THREE_SHAPE", + "THREE_CIRCLE", + "FLAGS", + "BARS", + "FOUR_COLOR_ARROW", + "FOUR_GRAY_ARROW" + ] + }, + "ConditionalFormattingSolidColor":{ + "type":"structure", + "required":["Expression"], + "members":{ + "Expression":{ + "shape":"Expression", + "documentation":"

The expression that determines the formatting configuration for solid color.

" + }, + "Color":{ + "shape":"HexColor", + "documentation":"

Determines the color.

" + } + }, + "documentation":"

Formatting configuration for solid color.

" + }, "ConflictException":{ "type":"structure", "members":{ @@ -2953,6 +4779,36 @@ "error":{"httpStatusCode":409}, "exception":true }, + "ContributionAnalysisDefault":{ + "type":"structure", + "required":[ + "MeasureFieldId", + "ContributorDimensions" + ], + "members":{ + "MeasureFieldId":{ + "shape":"FieldId", + "documentation":"

The measure field that is used in the contribution analysis.

" + }, + "ContributorDimensions":{ + "shape":"ContributorDimensionList", + "documentation":"

The dimensions columns that are used in the contribution analysis, usually a list of ColumnIdentifiers.

" + } + }, + "documentation":"

The contribution analysis visual display for a line, pie, or bar chart.

" + }, + "ContributionAnalysisDefaultList":{ + "type":"list", + "member":{"shape":"ContributionAnalysisDefault"}, + "max":200, + "min":1 + }, + "ContributorDimensionList":{ + "type":"list", + "member":{"shape":"ColumnIdentifier"}, + "max":4, + "min":1 + }, "CopySourceArn":{ "type":"string", "pattern":"^arn:[-a-z0-9]*:quicksight:[-a-z0-9]*:[0-9]{12}:datasource/.+" @@ -3016,13 +4872,104 @@ } } }, + "CreateAccountSubscriptionRequest":{ + "type":"structure", + "required":[ + "Edition", + "AuthenticationMethod", + "AwsAccountId", + "AccountName", + "NotificationEmail" + ], + "members":{ + "Edition":{ + "shape":"Edition", + "documentation":"

The edition of Amazon QuickSight that you want your account to have. Currently, you can choose from ENTERPRISE or ENTERPRISE_AND_Q.

If you choose ENTERPRISE_AND_Q, the following parameters are required:

  • FirstName

  • LastName

  • EmailAddress

  • ContactNumber

" + }, + "AuthenticationMethod":{ + "shape":"AuthenticationMethodOption", + "documentation":"

The method that you want to use to authenticate your Amazon QuickSight account. Currently, the valid values for this parameter are IAM_AND_QUICKSIGHT, IAM_ONLY, and ACTIVE_DIRECTORY.

If you choose ACTIVE_DIRECTORY, provide an ActiveDirectoryName and an AdminGroup associated with your Active Directory.

" + }, + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID of the account that you're using to create your Amazon QuickSight account.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "AccountName":{ + "shape":"String", + "documentation":"

The name of your Amazon QuickSight account. This name is unique over all of Amazon Web Services, and it appears only when users sign in. You can't change AccountName value after the Amazon QuickSight account is created.

" + }, + "NotificationEmail":{ + "shape":"String", + "documentation":"

The email address that you want Amazon QuickSight to send notifications to regarding your Amazon QuickSight account or Amazon QuickSight subscription.

" + }, + "ActiveDirectoryName":{ + "shape":"String", + "documentation":"

The name of your Active Directory. This field is required if ACTIVE_DIRECTORY is the selected authentication method of the new Amazon QuickSight account.

" + }, + "Realm":{ + "shape":"String", + "documentation":"

The realm of the Active Directory that is associated with your Amazon QuickSight account. This field is required if ACTIVE_DIRECTORY is the selected authentication method of the new Amazon QuickSight account.

" + }, + "DirectoryId":{ + "shape":"String", + "documentation":"

The ID of the Active Directory that is associated with your Amazon QuickSight account.

" + }, + "AdminGroup":{ + "shape":"GroupsList", + "documentation":"

The admin group associated with your Active Directory. This field is required if ACTIVE_DIRECTORY is the selected authentication method of the new Amazon QuickSight account. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide.

" + }, + "AuthorGroup":{ + "shape":"GroupsList", + "documentation":"

The author group associated with your Active Directory. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide.

" + }, + "ReaderGroup":{ + "shape":"GroupsList", + "documentation":"

The reader group associated with your Active Direcrtory. For more information about using Active Directory in Amazon QuickSight, see Using Active Directory with Amazon QuickSight Enterprise Edition in the Amazon QuickSight User Guide.

" + }, + "FirstName":{ + "shape":"String", + "documentation":"

The first name of the author of the Amazon QuickSight account to use for future communications. This field is required if ENTERPPRISE_AND_Q is the selected edition of the new Amazon QuickSight account.

" + }, + "LastName":{ + "shape":"String", + "documentation":"

The last name of the author of the Amazon QuickSight account to use for future communications. This field is required if ENTERPPRISE_AND_Q is the selected edition of the new Amazon QuickSight account.

" + }, + "EmailAddress":{ + "shape":"String", + "documentation":"

The email address of the author of the Amazon QuickSight account to use for future communications. This field is required if ENTERPPRISE_AND_Q is the selected edition of the new Amazon QuickSight account.

" + }, + "ContactNumber":{ + "shape":"String", + "documentation":"

A 10-digit phone number for the author of the Amazon QuickSight account to use for future communications. This field is required if ENTERPPRISE_AND_Q is the selected edition of the new Amazon QuickSight account.

" + } + } + }, + "CreateAccountSubscriptionResponse":{ + "type":"structure", + "members":{ + "SignupResponse":{ + "shape":"SignupResponse", + "documentation":"

A SignupResponse object that returns information about a newly created Amazon QuickSight account.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "CreateAnalysisRequest":{ "type":"structure", "required":[ "AwsAccountId", "AnalysisId", - "Name", - "SourceEntity" + "Name" ], "members":{ "AwsAccountId":{ @@ -3032,7 +4979,7 @@ "locationName":"AwsAccountId" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the analysis that you're creating. This ID displays in the URL of the analysis.

", "location":"uri", "locationName":"AnalysisId" @@ -3060,6 +5007,10 @@ "Tags":{ "shape":"TagList", "documentation":"

Contains a map of the key-value pairs for the resource tag or tags assigned to the analysis.

" + }, + "Definition":{ + "shape":"AnalysisDefinition", + "documentation":"

The definition of an analysis.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

" } } }, @@ -3071,7 +5022,7 @@ "documentation":"

The ARN for the analysis.

" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis.

" }, "CreationStatus":{ @@ -3105,8 +5056,7 @@ "required":[ "AwsAccountId", "DashboardId", - "Name", - "SourceEntity" + "Name" ], "members":{ "AwsAccountId":{ @@ -3116,7 +5066,7 @@ "locationName":"AwsAccountId" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard, also added to the IAM policy.

", "location":"uri", "locationName":"DashboardId" @@ -3152,6 +5102,10 @@ "ThemeArn":{ "shape":"Arn", "documentation":"

The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If you add a value for this field, it overrides the value that is used in the source entity. The theme ARN must exist in the same Amazon Web Services account where you create the dashboard.

" + }, + "Definition":{ + "shape":"DashboardVersionDefinition", + "documentation":"

The definition of a dashboard.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

" } } }, @@ -3167,7 +5121,7 @@ "documentation":"

The ARN of the dashboard, including the version number of the first version that is created.

" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

" }, "CreationStatus":{ @@ -3788,7 +5742,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the template.

", "location":"uri", "locationName":"TemplateId" @@ -3827,8 +5781,7 @@ "type":"structure", "required":[ "AwsAccountId", - "TemplateId", - "SourceEntity" + "TemplateId" ], "members":{ "AwsAccountId":{ @@ -3838,7 +5791,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the template that you want to create. This template is unique per Amazon Web Services Region; in each Amazon Web Services account.

", "location":"uri", "locationName":"TemplateId" @@ -3862,6 +5815,10 @@ "VersionDescription":{ "shape":"VersionDescription", "documentation":"

A description of the current template version being created. This API operation creates the first version of the template. Every time UpdateTemplate is called, a new version is created. Each version of the template maintains a description of the version in the VersionDescription field.

" + }, + "Definition":{ + "shape":"TemplateVersionDefinition", + "documentation":"

The definition of a template.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

" } } }, @@ -3877,7 +5834,7 @@ "documentation":"

The ARN for the template, including the version information of the first version.

" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the template.

" }, "CreationStatus":{ @@ -3911,7 +5868,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the theme alias.

", "location":"uri", "locationName":"ThemeId" @@ -3963,7 +5920,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the theme that you want to create. The theme ID is unique per Amazon Web Services Region in each Amazon Web Services account.

", "location":"uri", "locationName":"ThemeId" @@ -3973,7 +5930,7 @@ "documentation":"

A display name for the theme.

" }, "BaseThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the theme that a custom theme will inherit from. All themes inherit from one of the starting themes defined by Amazon QuickSight. For a list of the starting themes, use ListThemes or choose Themes from within an analysis.

" }, "VersionDescription":{ @@ -4006,7 +5963,7 @@ "documentation":"

The Amazon Resource Name (ARN) for the new theme.

" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the theme.

" }, "CreationStatus":{ @@ -4046,6 +6003,274 @@ }, "documentation":"

The combination of user name and password that are used as credentials.

" }, + "CrossDatasetTypes":{ + "type":"string", + "enum":[ + "ALL_DATASETS", + "SINGLE_DATASET" + ] + }, + "CurrencyCode":{ + "type":"string", + "pattern":"[A-Z]{3}" + }, + "CurrencyDisplayFormatConfiguration":{ + "type":"structure", + "members":{ + "Prefix":{ + "shape":"Prefix", + "documentation":"

Determines the prefix value of the currency format.

" + }, + "Suffix":{ + "shape":"Suffix", + "documentation":"

Determines the suffix value of the currency format.

" + }, + "SeparatorConfiguration":{ + "shape":"NumericSeparatorConfiguration", + "documentation":"

The options that determine the numeric separator configuration.

" + }, + "Symbol":{ + "shape":"CurrencyCode", + "documentation":"

Determines the symbol for the currency format.

" + }, + "DecimalPlacesConfiguration":{ + "shape":"DecimalPlacesConfiguration", + "documentation":"

The option that determines the decimal places configuration.

" + }, + "NumberScale":{ + "shape":"NumberScale", + "documentation":"

Determines the number scale value for the currency format.

" + }, + "NegativeValueConfiguration":{ + "shape":"NegativeValueConfiguration", + "documentation":"

The options that determine the negative value configuration.

" + }, + "NullValueFormatConfiguration":{ + "shape":"NullValueFormatConfiguration", + "documentation":"

The options that determine the null value format configuration.

" + } + }, + "documentation":"

The options that determine the currency display format configuration.

" + }, + "CustomActionFilterOperation":{ + "type":"structure", + "required":[ + "SelectedFieldsConfiguration", + "TargetVisualsConfiguration" + ], + "members":{ + "SelectedFieldsConfiguration":{ + "shape":"FilterOperationSelectedFieldsConfiguration", + "documentation":"

The configuration that chooses the fields to be filtered.

" + }, + "TargetVisualsConfiguration":{ + "shape":"FilterOperationTargetVisualsConfiguration", + "documentation":"

The configuration that chooses the target visuals to be filtered.

" + } + }, + "documentation":"

The filter operation that filters data included in a visual or in an entire sheet.

" + }, + "CustomActionNavigationOperation":{ + "type":"structure", + "members":{ + "LocalNavigationConfiguration":{ + "shape":"LocalNavigationConfiguration", + "documentation":"

The configuration that chooses the navigation target.

" + } + }, + "documentation":"

The navigation operation that navigates between different sheets in the same analysis.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "CustomActionSetParametersOperation":{ + "type":"structure", + "required":["ParameterValueConfigurations"], + "members":{ + "ParameterValueConfigurations":{ + "shape":"SetParameterValueConfigurationList", + "documentation":"

The parameter that determines the value configuration.

" + } + }, + "documentation":"

The set parameter operation that sets parameters in custom action.

" + }, + "CustomActionURLOperation":{ + "type":"structure", + "required":[ + "URLTemplate", + "URLTarget" + ], + "members":{ + "URLTemplate":{ + "shape":"URLOperationTemplate", + "documentation":"

THe URL link of the CustomActionURLOperation.

" + }, + "URLTarget":{ + "shape":"URLTargetConfiguration", + "documentation":"

The target of the CustomActionURLOperation.

Valid values are defined as follows:

  • NEW_TAB: Opens the target URL in a new browser tab.

  • NEW_WINDOW: Opens the target URL in a new browser window.

  • SAME_TAB: Opens the target URL in the same browser tab.

" + } + }, + "documentation":"

The URL operation that opens a link to another webpage.

" + }, + "CustomContentConfiguration":{ + "type":"structure", + "members":{ + "ContentUrl":{ + "shape":"URLOperationTemplate", + "documentation":"

The input URL that links to the custom content that you want in the custom visual.

" + }, + "ContentType":{ + "shape":"CustomContentType", + "documentation":"

The content type of the custom content visual. You can use this to have the visual render as an image.

" + }, + "ImageScaling":{ + "shape":"CustomContentImageScalingConfiguration", + "documentation":"

The sizing options for the size of the custom content visual. This structure is required when the ContentType of the visual is 'IMAGE'.

" + } + }, + "documentation":"

The configuration of a CustomContentVisual.

" + }, + "CustomContentImageScalingConfiguration":{ + "type":"string", + "enum":[ + "FIT_TO_HEIGHT", + "FIT_TO_WIDTH", + "DO_NOT_SCALE", + "SCALE_TO_VISUAL" + ] + }, + "CustomContentType":{ + "type":"string", + "enum":[ + "IMAGE", + "OTHER_EMBEDDED_CONTENT" + ] + }, + "CustomContentVisual":{ + "type":"structure", + "required":[ + "VisualId", + "DataSetIdentifier" + ], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"CustomContentConfiguration", + "documentation":"

The configuration of a CustomContentVisual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "DataSetIdentifier":{ + "shape":"DataSetIdentifier", + "documentation":"

The dataset that is used to create the custom content visual. You can't create a visual without a dataset.

" + } + }, + "documentation":"

A visual that contains custom content.

For more information, see Using custom visual content in the Amazon QuickSight User Guide.

" + }, + "CustomFilterConfiguration":{ + "type":"structure", + "required":[ + "MatchOperator", + "NullOption" + ], + "members":{ + "MatchOperator":{ + "shape":"CategoryFilterMatchOperator", + "documentation":"

The match operator that is used to determine if a filter should be applied.

" + }, + "CategoryValue":{ + "shape":"CategoryValue", + "documentation":"

The category value for the filter.

This field is mutually exclusive to ParameterName.

" + }, + "SelectAllOptions":{ + "shape":"CategoryFilterSelectAllOptions", + "documentation":"

Select all of the values. Null is not the assigned value of select all.

  • FILTER_ALL_VALUES

" + }, + "ParameterName":{ + "shape":"ParameterName", + "documentation":"

The parameter whose value should be used for the filter value.

This field is mutually exclusive to CategoryValue.

" + }, + "NullOption":{ + "shape":"FilterNullOption", + "documentation":"

This option determines how null values should be treated when filtering data.

  • ALL_VALUES: Include null values in filtered results.

  • NULLS_ONLY: Only include null values in filtered results.

  • NON_NULLS_ONLY: Exclude null values from filtered results.

" + } + }, + "documentation":"

A custom filter that filters based on a single value. This filter can be partially matched.

" + }, + "CustomFilterListConfiguration":{ + "type":"structure", + "required":[ + "MatchOperator", + "NullOption" + ], + "members":{ + "MatchOperator":{ + "shape":"CategoryFilterMatchOperator", + "documentation":"

The match operator that is used to determine if a filter should be applied.

" + }, + "CategoryValues":{ + "shape":"CategoryValueList", + "documentation":"

The list of category values for the filter.

" + }, + "SelectAllOptions":{ + "shape":"CategoryFilterSelectAllOptions", + "documentation":"

Select all of the values. Null is not the assigned value of select all.

  • FILTER_ALL_VALUES

" + }, + "NullOption":{ + "shape":"FilterNullOption", + "documentation":"

This option determines how null values should be treated when filtering data.

  • ALL_VALUES: Include null values in filtered results.

  • NULLS_ONLY: Only include null values in filtered results.

  • NON_NULLS_ONLY: Exclude null values from filtered results.

" + } + }, + "documentation":"

A list of custom filter values.

" + }, + "CustomLabel":{ + "type":"string", + "max":2048, + "min":1 + }, + "CustomNarrativeOptions":{ + "type":"structure", + "required":["Narrative"], + "members":{ + "Narrative":{ + "shape":"NarrativeString", + "documentation":"

The string input of custom narrative.

" + } + }, + "documentation":"

The custom narrative options.

" + }, + "CustomParameterValues":{ + "type":"structure", + "members":{ + "StringValues":{ + "shape":"StringDefaultValueList", + "documentation":"

A list of string-type parameter values.

" + }, + "IntegerValues":{ + "shape":"IntegerDefaultValueList", + "documentation":"

A list of integer-type parameter values.

" + }, + "DecimalValues":{ + "shape":"DecimalDefaultValueList", + "documentation":"

A list of decimal-type parameter values.

" + }, + "DateTimeValues":{ + "shape":"DateTimeDefaultValueList", + "documentation":"

A list of datetime-type parameter values.

" + } + }, + "documentation":"

The customized parameter values.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, "CustomSql":{ "type":"structure", "required":[ @@ -4078,11 +6303,23 @@ "max":64, "min":1 }, + "CustomValuesConfiguration":{ + "type":"structure", + "required":["CustomValues"], + "members":{ + "IncludeNullValue":{ + "shape":"BooleanObject", + "documentation":"

Includes the null value in custom action parameter values.

" + }, + "CustomValues":{"shape":"CustomParameterValues"} + }, + "documentation":"

The configuration of custom values for the destination parameter in DestinationParameterValueConfiguration.

" + }, "Dashboard":{ "type":"structure", "members":{ "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

Dashboard ID.

" }, "Arn":{ @@ -4099,15 +6336,15 @@ }, "CreatedTime":{ "shape":"Timestamp", - "documentation":"

The time that this dataset was created.

" + "documentation":"

The time that this dashboard was created.

" }, "LastPublishedTime":{ "shape":"Timestamp", - "documentation":"

The last time that this dataset was published.

" + "documentation":"

The last time that this dashboard was published.

" }, "LastUpdatedTime":{ "shape":"Timestamp", - "documentation":"

The last time that this dataset was updated.

" + "documentation":"

The last time that this dashboard was updated.

" } }, "documentation":"

Dashboard.

" @@ -4129,6 +6366,10 @@ "Message":{ "shape":"NonEmptyString", "documentation":"

Message.

" + }, + "ViolatedEntities":{ + "shape":"EntityList", + "documentation":"

" } }, "documentation":"

Dashboard error.

" @@ -4155,7 +6396,15 @@ }, "DashboardFilterAttribute":{ "type":"string", - "enum":["QUICKSIGHT_USER"] + "enum":[ + "QUICKSIGHT_USER", + "QUICKSIGHT_VIEWER_OR_OWNER", + "DIRECT_QUICKSIGHT_VIEWER_OR_OWNER", + "QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_SOLE_OWNER", + "DASHBOARD_NAME" + ] }, "DashboardName":{ "type":"string", @@ -4176,6 +6425,10 @@ "SheetControlsOption":{ "shape":"SheetControlsOption", "documentation":"

Sheet controls option.

" + }, + "VisualPublishOptions":{ + "shape":"DashboardVisualPublishOptions", + "documentation":"

" } }, "documentation":"

Dashboard publish options.

" @@ -4186,11 +6439,11 @@ "members":{ "Operator":{ "shape":"FilterOperator", - "documentation":"

The comparison operator that you want to use as a filter, for example, \"Operator\": \"StringEquals\".

" + "documentation":"

The comparison operator that you want to use as a filter, for example \"Operator\": \"StringEquals\". Valid values are \"StringEquals\" and \"StringLike\".

If you set the operator value to \"StringEquals\", you need to provide an ownership related filter in the \"NAME\" field and the arn of the user or group whose folders you want to search in the \"Value\" field. For example, \"Name\":\"DIRECT_QUICKSIGHT_OWNER\", \"Operator\": \"StringEquals\", \"Value\": \"arn:aws:quicksight:us-east-1:1:user/default/UserName1\".

If you set the value to \"StringLike\", you need to provide the name of the folders you are searching for. For example, \"Name\":\"DASHBOARD_NAME\", \"Operator\": \"StringLike\", \"Value\": \"Test\". The \"StringLike\" operator only supports the NAME value DASHBOARD_NAME.

" }, "Name":{ "shape":"DashboardFilterAttribute", - "documentation":"

The name of the value that you want to use as a filter, for example, \"Name\": \"QUICKSIGHT_USER\".

" + "documentation":"

The name of the value that you want to use as a filter, for example, \"Name\": \"QUICKSIGHT_OWNER\".

Valid values are defined as follows:

  • QUICKSIGHT_VIEWER_OR_OWNER: Provide an ARN of a user or group, and any dashboards with that ARN listed as one of the dashboards's owners or viewers are returned. Implicit permissions from folders or groups are considered.

  • QUICKSIGHT_OWNER: Provide an ARN of a user or group, and any dashboards with that ARN listed as one of the owners of the dashboards are returned. Implicit permissions from folders or groups are considered.

  • DIRECT_QUICKSIGHT_SOLE_OWNER: Provide an ARN of a user or group, and any dashboards with that ARN listed as the only owner of the dashboard are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_OWNER: Provide an ARN of a user or group, and any dashboards with that ARN listed as one of the owners of the dashboards are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_VIEWER_OR_OWNER: Provide an ARN of a user or group, and any dashboards with that ARN listed as one of the owners or viewers of the dashboards are returned. Implicit permissions from folders or groups are not considered.

  • DASHBOARD_NAME: Any dashboards whose names have a substring match to this value will be returned.

" }, "Value":{ "shape":"String", @@ -4241,7 +6494,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the resource.

" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

Dashboard ID.

" }, "Name":{ @@ -4325,6 +6578,38 @@ }, "documentation":"

Dashboard version.

" }, + "DashboardVersionDefinition":{ + "type":"structure", + "required":["DataSetIdentifierDeclarations"], + "members":{ + "DataSetIdentifierDeclarations":{ + "shape":"DataSetIdentifierDeclarationList", + "documentation":"

An array of dataset identifier declarations. With this mapping,you can use dataset identifiers instead of dataset Amazon Resource Names (ARNs) throughout the dashboard's sub-structures.

" + }, + "Sheets":{ + "shape":"SheetDefinitionList", + "documentation":"

An array of sheet definitions for a dashboard.

" + }, + "CalculatedFields":{ + "shape":"CalculatedFields", + "documentation":"

An array of calculated field definitions for the dashboard.

" + }, + "ParameterDeclarations":{ + "shape":"ParameterDeclarationList", + "documentation":"

The parameter declarations for a dashboard. Parameters are named variables that can transfer a value for use by an action or an object.

For more information, see Parameters in Amazon QuickSight in the Amazon QuickSight User Guide.

" + }, + "FilterGroups":{ + "shape":"FilterGroupList", + "documentation":"

The filter definitions for a dashboard.

For more information, see Filtering Data in Amazon QuickSight in the Amazon QuickSight User Guide.

" + }, + "ColumnConfigurations":{ + "shape":"ColumnConfigurationList", + "documentation":"

An array of dashboard-level column configurations. Column configurations are used to set the default formatting for a column that is used throughout a dashboard.

" + }, + "AnalysisDefaults":{"shape":"AnalysisDefaults"} + }, + "documentation":"

The contents of a dashboard.

" + }, "DashboardVersionSummary":{ "type":"structure", "members":{ @@ -4360,6 +6645,54 @@ "member":{"shape":"DashboardVersionSummary"}, "max":100 }, + "DashboardVisualId":{ + "type":"structure", + "required":[ + "DashboardId", + "SheetId", + "VisualId" + ], + "members":{ + "DashboardId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the dashboard that has the visual that you want to embed. The DashboardId can be found in the IDs for developers section of the Embed visual pane of the visual's on-visual menu of the Amazon QuickSight console. You can also get the DashboardId with a ListDashboards API operation.

" + }, + "SheetId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the sheet that the has visual that you want to embed. The SheetId can be found in the IDs for developers section of the Embed visual pane of the visual's on-visual menu of the Amazon QuickSight console.

" + }, + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the visual that you want to embed. The VisualID can be found in the IDs for developers section of the Embed visual pane of the visual's on-visual menu of the Amazon QuickSight console.

" + } + }, + "documentation":"

A structure that contains the following elements:

  • The DashboardId of the dashboard that has the visual that you want to embed.

  • The SheetId of the sheet that has the visual that you want to embed.

  • The VisualId of the visual that you want to embed.

The DashboardId, SheetId, and VisualId can be found in the IDs for developers section of the Embed visual pane of the visual's on-visual menu of the Amazon QuickSight console. You can also get the DashboardId with a ListDashboards API operation.

" + }, + "DashboardVisualPublishOptions":{ + "type":"structure", + "members":{ + "ExportHiddenFieldsOption":{ + "shape":"ExportHiddenFieldsOption", + "documentation":"

" + } + }, + "documentation":"

" + }, + "DataColor":{ + "type":"structure", + "members":{ + "Color":{ + "shape":"HexColor", + "documentation":"

The color that is applied to the data value.

" + }, + "DataValue":{ + "shape":"Double", + "documentation":"

The data value that the color is applied to.

", + "box":true + } + }, + "documentation":"

Determines the color that is applied to a particular data value.

" + }, "DataColorPalette":{ "type":"structure", "members":{ @@ -4378,6 +6711,217 @@ }, "documentation":"

The theme colors that are used for data colors in charts. The colors description is a hexadecimal color code that consists of six alphanumerical characters, prefixed with #, for example #37BFF5.

" }, + "DataFieldSeriesItem":{ + "type":"structure", + "required":[ + "FieldId", + "AxisBinding" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID of the field that you are setting the axis binding to.

" + }, + "FieldValue":{ + "shape":"SensitiveString", + "documentation":"

The field value of the field that you are setting the axis binding to.

" + }, + "AxisBinding":{ + "shape":"AxisBinding", + "documentation":"

The axis that you are binding the field to.

" + }, + "Settings":{ + "shape":"LineChartSeriesSettings", + "documentation":"

The options that determine the presentation of line series associated to the field.

" + } + }, + "documentation":"

The data field series item configuration of a line chart.

" + }, + "DataLabelContent":{ + "type":"string", + "enum":[ + "VALUE", + "PERCENT", + "VALUE_AND_PERCENT" + ] + }, + "DataLabelOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

Determines the visibility of the data labels.

" + }, + "CategoryLabelVisibility":{ + "shape":"Visibility", + "documentation":"

Determines the visibility of the category field labels.

" + }, + "MeasureLabelVisibility":{ + "shape":"Visibility", + "documentation":"

Determines the visibility of the measure field labels.

" + }, + "DataLabelTypes":{ + "shape":"DataLabelTypes", + "documentation":"

The option that determines the data label type.

" + }, + "Position":{ + "shape":"DataLabelPosition", + "documentation":"

Determines the position of the data labels.

" + }, + "LabelContent":{ + "shape":"DataLabelContent", + "documentation":"

Determines the content of the data labels.

" + }, + "LabelFontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

Determines the font configuration of the data labels.

" + }, + "LabelColor":{ + "shape":"HexColor", + "documentation":"

Determines the color of the data labels.

" + }, + "Overlap":{ + "shape":"DataLabelOverlap", + "documentation":"

Determines whether overlap is enabled or disabled for the data labels.

" + } + }, + "documentation":"

The options that determine the presentation of the data labels.

" + }, + "DataLabelOverlap":{ + "type":"string", + "enum":[ + "DISABLE_OVERLAP", + "ENABLE_OVERLAP" + ] + }, + "DataLabelPosition":{ + "type":"string", + "enum":[ + "INSIDE", + "OUTSIDE", + "LEFT", + "TOP", + "BOTTOM", + "RIGHT" + ] + }, + "DataLabelType":{ + "type":"structure", + "members":{ + "FieldLabelType":{ + "shape":"FieldLabelType", + "documentation":"

Determines the label configuration for the entire field.

" + }, + "DataPathLabelType":{ + "shape":"DataPathLabelType", + "documentation":"

The option that specifies individual data values for labels.

" + }, + "RangeEndsLabelType":{ + "shape":"RangeEndsLabelType", + "documentation":"

Determines the label configuration for range end value in a visual.

" + }, + "MinimumLabelType":{ + "shape":"MinimumLabelType", + "documentation":"

Determines the label configuration for the minimum value in a visual.

" + }, + "MaximumLabelType":{ + "shape":"MaximumLabelType", + "documentation":"

Determines the label configuration for the maximum value in a visual.

" + } + }, + "documentation":"

The option that determines the data label type.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "DataLabelTypes":{ + "type":"list", + "member":{"shape":"DataLabelType"}, + "max":100 + }, + "DataPathColor":{ + "type":"structure", + "required":[ + "Element", + "Color" + ], + "members":{ + "Element":{ + "shape":"DataPathValue", + "documentation":"

The element that the color needs to be applied to.

" + }, + "Color":{ + "shape":"HexColor", + "documentation":"

The color that needs to be applied to the element.

" + }, + "TimeGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The time granularity of the field that the color needs to be applied to.

" + } + }, + "documentation":"

The color map that determines the color options for a particular element.

" + }, + "DataPathColorList":{ + "type":"list", + "member":{"shape":"DataPathColor"}, + "max":5000 + }, + "DataPathLabelType":{ + "type":"structure", + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID of the field that the data label needs to be applied to.

" + }, + "FieldValue":{ + "shape":"FieldValue", + "documentation":"

The actual value of the field that is labeled.

" + }, + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the data label.

" + } + }, + "documentation":"

The option that specifies individual data values for labels.

" + }, + "DataPathSort":{ + "type":"structure", + "required":[ + "Direction", + "SortPaths" + ], + "members":{ + "Direction":{ + "shape":"SortDirection", + "documentation":"

Determines the sort direction.

" + }, + "SortPaths":{ + "shape":"DataPathValueList", + "documentation":"

The list of data paths that need to be sorted.

" + } + }, + "documentation":"

Allows data paths to be sorted by a specific data value.

" + }, + "DataPathValue":{ + "type":"structure", + "required":[ + "FieldId", + "FieldValue" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID of the field that needs to be sorted.

" + }, + "FieldValue":{ + "shape":"FieldValue", + "documentation":"

The actual value of the field that needs to be sorted.

" + } + }, + "documentation":"

The data path that needs to be sorted.

" + }, + "DataPathValueList":{ + "type":"list", + "member":{"shape":"DataPathValue"}, + "max":20 + }, "DataSet":{ "type":"structure", "members":{ @@ -4476,6 +7020,46 @@ "member":{"shape":"DataSetConfiguration"}, "max":30 }, + "DataSetFilterAttribute":{ + "type":"string", + "enum":[ + "QUICKSIGHT_VIEWER_OR_OWNER", + "QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_VIEWER_OR_OWNER", + "DIRECT_QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_SOLE_OWNER", + "DATASET_NAME" + ] + }, + "DataSetIdentifier":{ + "type":"string", + "max":2048, + "min":1 + }, + "DataSetIdentifierDeclaration":{ + "type":"structure", + "required":[ + "Identifier", + "DataSetArn" + ], + "members":{ + "Identifier":{ + "shape":"DataSetIdentifier", + "documentation":"

The identifier of the data set, typically the data set's name.

" + }, + "DataSetArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the data set.

" + } + }, + "documentation":"

A data set.

" + }, + "DataSetIdentifierDeclarationList":{ + "type":"list", + "member":{"shape":"DataSetIdentifierDeclaration"}, + "max":50, + "min":1 + }, "DataSetImportMode":{ "type":"string", "enum":[ @@ -4521,6 +7105,35 @@ }, "documentation":"

Dataset schema.

" }, + "DataSetSearchFilter":{ + "type":"structure", + "required":[ + "Operator", + "Name", + "Value" + ], + "members":{ + "Operator":{ + "shape":"FilterOperator", + "documentation":"

The comparison operator that you want to use as a filter, for example \"Operator\": \"StringEquals\". Valid values are \"StringEquals\" and \"StringLike\".

If you set the operator value to \"StringEquals\", you need to provide an ownership related filter in the \"NAME\" field and the arn of the user or group whose datasets you want to search in the \"Value\" field. For example, \"Name\":\"QUICKSIGHT_OWNER\", \"Operator\": \"StringEquals\", \"Value\": \"arn:aws:quicksight:us-east- 1:1:user/default/UserName1\".

If you set the value to \"StringLike\", you need to provide the name of the datasets you are searching for. For example, \"Name\":\"DATASET_NAME\", \"Operator\": \"StringLike\", \"Value\": \"Test\". The \"StringLike\" operator only supports the NAME value DATASET_NAME.

" + }, + "Name":{ + "shape":"DataSetFilterAttribute", + "documentation":"

The name of the value that you want to use as a filter, for example, \"Name\": \"QUICKSIGHT_OWNER\".

Valid values are defined as follows:

  • QUICKSIGHT_VIEWER_OR_OWNER: Provide an ARN of a user or group, and any datasets with that ARN listed as one of the dataset owners or viewers are returned. Implicit permissions from folders or groups are considered.

  • QUICKSIGHT_OWNER: Provide an ARN of a user or group, and any datasets with that ARN listed as one of the owners of the dataset are returned. Implicit permissions from folders or groups are considered.

  • DIRECT_QUICKSIGHT_SOLE_OWNER: Provide an ARN of a user or group, and any datasets with that ARN listed as the only owner of the dataset are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_OWNER: Provide an ARN of a user or group, and any datasets with that ARN listed as one of the owners if the dataset are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_VIEWER_OR_OWNER: Provide an ARN of a user or group, and any datasets with that ARN listed as one of the owners or viewers of the dataset are returned. Implicit permissions from folders or groups are not considered.

  • DATASET_NAME: Any datasets whose names have a substring match to this value will be returned.

" + }, + "Value":{ + "shape":"String", + "documentation":"

The value of the named item, in this case QUICKSIGHT_OWNER, that you want to use as a filter, for example, \"Value\": \"arn:aws:quicksight:us-east-1:1:user/default/UserName1\".

" + } + }, + "documentation":"

A filter that you apply when searching for datasets.

" + }, + "DataSetSearchFilterList":{ + "type":"list", + "member":{"shape":"DataSetSearchFilter"}, + "max":1, + "min":1 + }, "DataSetSummary":{ "type":"structure", "members":{ @@ -4631,6 +7244,10 @@ "ErrorInfo":{ "shape":"DataSourceErrorInfo", "documentation":"

Error information from the last update or the creation of the data source.

" + }, + "SecretArn":{ + "shape":"SecretArn", + "documentation":"

The Amazon Resource Name (ARN) of the secret associated with the data source in Amazon Secrets Manager.

" } }, "documentation":"

The structure of a data source.

" @@ -4645,6 +7262,10 @@ "CopySourceArn":{ "shape":"CopySourceArn", "documentation":"

The Amazon Resource Name (ARN) of a data source that has the credential pair that you want to use. When CopySourceArn is not null, the credential pair from the data source in the ARN is used as the credentials for the DataSourceCredentials structure.

" + }, + "SecretArn":{ + "shape":"SecretArn", + "documentation":"

The Amazon Resource Name (ARN) of the secret associated with the data source in Amazon Secrets Manager.

" } }, "documentation":"

Data source credentials. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.

", @@ -4677,6 +7298,15 @@ "UNKNOWN" ] }, + "DataSourceFilterAttribute":{ + "type":"string", + "enum":[ + "DIRECT_QUICKSIGHT_VIEWER_OR_OWNER", + "DIRECT_QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_SOLE_OWNER", + "DATASOURCE_NAME" + ] + }, "DataSourceList":{ "type":"list", "member":{"shape":"DataSource"} @@ -4771,6 +7401,10 @@ "ExasolParameters":{ "shape":"ExasolParameters", "documentation":"

The parameters for Exasol.

" + }, + "DatabricksParameters":{ + "shape":"DatabricksParameters", + "documentation":"

The required parameters that are needed to connect to a Databricks data source.

" } }, "documentation":"

The parameters that Amazon QuickSight uses to connect to your underlying data source. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.

" @@ -4781,6 +7415,69 @@ "max":50, "min":1 }, + "DataSourceSearchFilter":{ + "type":"structure", + "required":[ + "Operator", + "Name", + "Value" + ], + "members":{ + "Operator":{ + "shape":"FilterOperator", + "documentation":"

The comparison operator that you want to use as a filter, for example \"Operator\": \"StringEquals\". Valid values are \"StringEquals\" and \"StringLike\".

If you set the operator value to \"StringEquals\", you need to provide an ownership related filter in the \"NAME\" field and the arn of the user or group whose data sources you want to search in the \"Value\" field. For example, \"Name\":\"DIRECT_QUICKSIGHT_OWNER\", \"Operator\": \"StringEquals\", \"Value\": \"arn:aws:quicksight:us-east-1:1:user/default/UserName1\".

If you set the value to \"StringLike\", you need to provide the name of the data sources you are searching for. For example, \"Name\":\"DATASOURCE_NAME\", \"Operator\": \"StringLike\", \"Value\": \"Test\". The \"StringLike\" operator only supports the NAME value DATASOURCE_NAME.

" + }, + "Name":{ + "shape":"DataSourceFilterAttribute", + "documentation":"

The name of the value that you want to use as a filter, for example, \"Name\": \"DIRECT_QUICKSIGHT_OWNER\".

Valid values are defined as follows:

  • DIRECT_QUICKSIGHT_VIEWER_OR_OWNER: Provide an ARN of a user or group, and any data sources with that ARN listed as one of the owners or viewers of the data sources are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_OWNER: Provide an ARN of a user or group, and any data sources with that ARN listed as one of the owners if the data source are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_SOLE_OWNER: Provide an ARN of a user or group, and any data sources with that ARN listed as the only owner of the data source are returned. Implicit permissions from folders or groups are not considered.

  • DATASOURCE_NAME: Any data sources whose names have a substring match to the provided value are returned.

" + }, + "Value":{ + "shape":"String", + "documentation":"

The value of the named item, for example DIRECT_QUICKSIGHT_OWNER, that you want to use as a filter, for example, \"Value\": \"arn:aws:quicksight:us-east-1:1:user/default/UserName1\".

" + } + }, + "documentation":"

A filter that you apply when searching for data sources.

" + }, + "DataSourceSearchFilterList":{ + "type":"list", + "member":{"shape":"DataSourceSearchFilter"}, + "max":1, + "min":1 + }, + "DataSourceSummary":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The arn of the datasource.

" + }, + "DataSourceId":{ + "shape":"ResourceId", + "documentation":"

The unique ID of the data source.

" + }, + "Name":{ + "shape":"ResourceName", + "documentation":"

The name of the data source.

" + }, + "Type":{ + "shape":"DataSourceType", + "documentation":"

The type of the data source.

" + }, + "CreatedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the data source was created. This value is expressed in MM-DD-YYYY HH:MM:SS format.

" + }, + "LastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time the data source was last updated. This value is expressed in MM-DD-YYYY HH:MM:SS format.

" + } + }, + "documentation":"

A DataSourceSummary object that returns a summary of a data source.

" + }, + "DataSourceSummaryList":{ + "type":"list", + "member":{"shape":"DataSourceSummary"} + }, "DataSourceType":{ "type":"string", "enum":[ @@ -4808,7 +7505,8 @@ "TWITTER", "TIMESTREAM", "AMAZON_OPENSEARCH", - "EXASOL" + "EXASOL", + "DATABRICKS" ] }, "Database":{ @@ -4816,6 +7514,165 @@ "max":128, "min":1 }, + "DatabricksParameters":{ + "type":"structure", + "required":[ + "Host", + "Port", + "SqlEndpointPath" + ], + "members":{ + "Host":{ + "shape":"Host", + "documentation":"

The host name of the Databricks data source.

" + }, + "Port":{ + "shape":"Port", + "documentation":"

The port for the Databricks data source.

" + }, + "SqlEndpointPath":{ + "shape":"SqlEndpointPath", + "documentation":"

The HTTP path of the Databricks data source.

" + } + }, + "documentation":"

The required parameters that are needed to connect to a Databricks data source.

" + }, + "DateAggregationFunction":{ + "type":"string", + "enum":[ + "COUNT", + "DISTINCT_COUNT", + "MIN", + "MAX" + ] + }, + "DateAxisOptions":{ + "type":"structure", + "members":{ + "MissingDateVisibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not missing dates are displayed.

" + } + }, + "documentation":"

The options that determine how a date axis is displayed.

" + }, + "DateDimensionField":{ + "type":"structure", + "required":[ + "FieldId", + "Column" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The custom field ID.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that is used in the DateDimensionField.

" + }, + "DateGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The date granularity of the DateDimensionField. Choose one of the following options:

  • YEAR

  • QUARTER

  • MONTH

  • WEEK

  • DAY

  • HOUR

  • MINUTE

  • SECOND

  • MILLISECOND

" + }, + "HierarchyId":{ + "shape":"HierarchyId", + "documentation":"

The custom hierarchy ID.

" + }, + "FormatConfiguration":{ + "shape":"DateTimeFormatConfiguration", + "documentation":"

The format configuration of the field.

" + } + }, + "documentation":"

The dimension type field with date type columns.

" + }, + "DateMeasureField":{ + "type":"structure", + "required":[ + "FieldId", + "Column" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The custom field ID.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that is used in the DateMeasureField.

" + }, + "AggregationFunction":{ + "shape":"DateAggregationFunction", + "documentation":"

The aggregation function of the measure field.

" + }, + "FormatConfiguration":{ + "shape":"DateTimeFormatConfiguration", + "documentation":"

The format configuration of the field.

" + } + }, + "documentation":"

The measure type field with date type columns.

" + }, + "DateTimeDefaultValueList":{ + "type":"list", + "member":{"shape":"SensitiveTimestamp"}, + "max":50000 + }, + "DateTimeDefaultValues":{ + "type":"structure", + "members":{ + "DynamicValue":{ + "shape":"DynamicDefaultValue", + "documentation":"

The dynamic value of the DataTimeDefaultValues. Different defaults are displayed according to users, groups, and values mapping.

" + }, + "StaticValues":{ + "shape":"DateTimeDefaultValueList", + "documentation":"

The static values of the DataTimeDefaultValues.

" + }, + "RollingDate":{ + "shape":"RollingDateConfiguration", + "documentation":"

The rolling date of the DataTimeDefaultValues. The date is determined from the dataset based on input expression.

" + } + }, + "documentation":"

The default values of the DateTimeParameterDeclaration.

" + }, + "DateTimeFormat":{ + "type":"string", + "max":128, + "min":1 + }, + "DateTimeFormatConfiguration":{ + "type":"structure", + "members":{ + "DateTimeFormat":{ + "shape":"DateTimeFormat", + "documentation":"

Determines the DateTime format.

" + }, + "NullValueFormatConfiguration":{ + "shape":"NullValueFormatConfiguration", + "documentation":"

The options that determine the null value format configuration.

" + }, + "NumericFormatConfiguration":{ + "shape":"NumericFormatConfiguration", + "documentation":"

The formatting configuration for numeric DateTime fields.

" + } + }, + "documentation":"

Formatting configuration for DateTime fields.

" + }, + "DateTimeHierarchy":{ + "type":"structure", + "required":["HierarchyId"], + "members":{ + "HierarchyId":{ + "shape":"HierarchyId", + "documentation":"

The hierarchy ID of the DateTime hierarchy.

" + }, + "DrillDownFilters":{ + "shape":"DrillDownFilterList", + "documentation":"

The option that determines the drill down filters for the DateTime hierarchy.

" + } + }, + "documentation":"

The option that determines the hierarchy of any DateTime fields.

" + }, "DateTimeParameter":{ "type":"structure", "required":[ @@ -4828,17 +7685,87 @@ "documentation":"

A display name for the date-time parameter.

" }, "Values":{ - "shape":"TimestampList", + "shape":"SensitiveTimestampList", "documentation":"

The values for the date-time parameter.

" } }, "documentation":"

A date-time parameter.

" }, + "DateTimeParameterDeclaration":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"ParameterName", + "documentation":"

The name of the parameter that is being declared.

" + }, + "DefaultValues":{ + "shape":"DateTimeDefaultValues", + "documentation":"

The default values of a parameter. If the parameter is a single-value parameter, a maximum of one default value can be provided.

" + }, + "TimeGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The level of time precision that is used to aggregate DateTime values.

" + }, + "ValueWhenUnset":{ + "shape":"DateTimeValueWhenUnsetConfiguration", + "documentation":"

The configuration that defines the default value of a DateTime parameter when a value has not been set.

" + } + }, + "documentation":"

A parameter declaration for the DateTime data type.

" + }, "DateTimeParameterList":{ "type":"list", "member":{"shape":"DateTimeParameter"}, "max":100 }, + "DateTimePickerControlDisplayOptions":{ + "type":"structure", + "members":{ + "TitleOptions":{ + "shape":"LabelOptions", + "documentation":"

The options to configure the title visibility, name, and font size.

" + }, + "DateTimeFormat":{ + "shape":"DateTimeFormat", + "documentation":"

Customize how dates are formatted in controls.

" + } + }, + "documentation":"

The display options of a control.

" + }, + "DateTimeValueWhenUnsetConfiguration":{ + "type":"structure", + "members":{ + "ValueWhenUnsetOption":{ + "shape":"ValueWhenUnsetOption", + "documentation":"

The built-in options for default values. The value can be one of the following:

  • RECOMMENDED: The recommended value.

  • NULL: The NULL value.

" + }, + "CustomValue":{ + "shape":"SensitiveTimestamp", + "documentation":"

A custom value that's used when the value of a parameter isn't set.

" + } + }, + "documentation":"

The configuration that defines the default value of a DateTime parameter when a value has not been set.

" + }, + "DecimalDefaultValueList":{ + "type":"list", + "member":{"shape":"SensitiveDoubleObject"}, + "max":50000 + }, + "DecimalDefaultValues":{ + "type":"structure", + "members":{ + "DynamicValue":{ + "shape":"DynamicDefaultValue", + "documentation":"

The dynamic value of the DecimalDefaultValues. Different defaults are displayed according to users, groups, and values mapping.

" + }, + "StaticValues":{ + "shape":"DecimalDefaultValueList", + "documentation":"

The static values of the DecimalDefaultValues.

" + } + }, + "documentation":"

The default values of the DecimalParameterDeclaration.

" + }, "DecimalParameter":{ "type":"structure", "required":[ @@ -4851,17 +7778,149 @@ "documentation":"

A display name for the decimal parameter.

" }, "Values":{ - "shape":"DoubleList", + "shape":"SensitiveDoubleList", "documentation":"

The values for the decimal parameter.

" } }, "documentation":"

A decimal parameter.

" }, + "DecimalParameterDeclaration":{ + "type":"structure", + "required":[ + "ParameterValueType", + "Name" + ], + "members":{ + "ParameterValueType":{ + "shape":"ParameterValueType", + "documentation":"

The value type determines whether the parameter is a single-value or multi-value parameter.

" + }, + "Name":{ + "shape":"ParameterName", + "documentation":"

The name of the parameter that is being declared.

" + }, + "DefaultValues":{ + "shape":"DecimalDefaultValues", + "documentation":"

The default values of a parameter. If the parameter is a single-value parameter, a maximum of one default value can be provided.

" + }, + "ValueWhenUnset":{ + "shape":"DecimalValueWhenUnsetConfiguration", + "documentation":"

The configuration that defines the default value of a Decimal parameter when a value has not been set.

" + } + }, + "documentation":"

A parameter declaration for the Decimal data type.

" + }, "DecimalParameterList":{ "type":"list", "member":{"shape":"DecimalParameter"}, "max":100 }, + "DecimalPlaces":{ + "type":"long", + "max":20, + "min":0 + }, + "DecimalPlacesConfiguration":{ + "type":"structure", + "required":["DecimalPlaces"], + "members":{ + "DecimalPlaces":{ + "shape":"DecimalPlaces", + "documentation":"

The values of the decimal places.

" + } + }, + "documentation":"

The option that determines the decimal places configuration.

" + }, + "DecimalValueWhenUnsetConfiguration":{ + "type":"structure", + "members":{ + "ValueWhenUnsetOption":{ + "shape":"ValueWhenUnsetOption", + "documentation":"

The built-in options for default values. The value can be one of the following:

  • RECOMMENDED: The recommended value.

  • NULL: The NULL value.

" + }, + "CustomValue":{ + "shape":"SensitiveDouble", + "documentation":"

A custom value that's used when the value of a parameter isn't set.

", + "box":true + } + }, + "documentation":"

The configuration that defines the default value of a Decimal parameter when a value has not been set.

" + }, + "DefaultFreeFormLayoutConfiguration":{ + "type":"structure", + "required":["CanvasSizeOptions"], + "members":{ + "CanvasSizeOptions":{ + "shape":"FreeFormLayoutCanvasSizeOptions", + "documentation":"

Determines the screen canvas size options for a free-form layout.

" + } + }, + "documentation":"

The options that determine the default settings of a free-form layout configuration.

" + }, + "DefaultGridLayoutConfiguration":{ + "type":"structure", + "required":["CanvasSizeOptions"], + "members":{ + "CanvasSizeOptions":{ + "shape":"GridLayoutCanvasSizeOptions", + "documentation":"

Determines the screen canvas size options for a grid layout.

" + } + }, + "documentation":"

The options that determine the default settings for a grid layout configuration.

" + }, + "DefaultInteractiveLayoutConfiguration":{ + "type":"structure", + "members":{ + "Grid":{ + "shape":"DefaultGridLayoutConfiguration", + "documentation":"

The options that determine the default settings for a grid layout configuration.

" + }, + "FreeForm":{ + "shape":"DefaultFreeFormLayoutConfiguration", + "documentation":"

The options that determine the default settings of a free-form layout configuration.

" + } + }, + "documentation":"

The options that determine the default settings for interactive layout configuration.

" + }, + "DefaultNewSheetConfiguration":{ + "type":"structure", + "members":{ + "InteractiveLayoutConfiguration":{ + "shape":"DefaultInteractiveLayoutConfiguration", + "documentation":"

The options that determine the default settings for interactive layout configuration.

" + }, + "PaginatedLayoutConfiguration":{ + "shape":"DefaultPaginatedLayoutConfiguration", + "documentation":"

The options that determine the default settings for a paginated layout configuration.

" + }, + "SheetContentType":{ + "shape":"SheetContentType", + "documentation":"

The option that determines the sheet content type.

" + } + }, + "documentation":"

The configuration for default new sheet settings.

" + }, + "DefaultPaginatedLayoutConfiguration":{ + "type":"structure", + "members":{ + "SectionBased":{ + "shape":"DefaultSectionBasedLayoutConfiguration", + "documentation":"

The options that determine the default settings for a section-based layout configuration.

" + } + }, + "documentation":"

The options that determine the default settings for a paginated layout configuration.

" + }, + "DefaultSectionBasedLayoutConfiguration":{ + "type":"structure", + "required":["CanvasSizeOptions"], + "members":{ + "CanvasSizeOptions":{ + "shape":"SectionBasedLayoutCanvasSizeOptions", + "documentation":"

Determines the screen canvas size options for a section-based layout.

" + } + }, + "documentation":"

The options that determine the default settings for a section-based layout configuration.

" + }, "DeleteAccountCustomizationRequest":{ "type":"structure", "required":["AwsAccountId"], @@ -4894,6 +7953,32 @@ } } }, + "DeleteAccountSubscriptionRequest":{ + "type":"structure", + "required":["AwsAccountId"], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID of the account that you want to delete.

", + "location":"uri", + "locationName":"AwsAccountId" + } + } + }, + "DeleteAccountSubscriptionResponse":{ + "type":"structure", + "members":{ + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + } + } + }, "DeleteAnalysisRequest":{ "type":"structure", "required":[ @@ -4908,7 +7993,7 @@ "locationName":"AwsAccountId" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis that you're deleting.

", "location":"uri", "locationName":"AnalysisId" @@ -4920,7 +8005,7 @@ "locationName":"recovery-window-in-days" }, "ForceDeleteWithoutRecovery":{ - "shape":"boolean", + "shape":"Boolean", "documentation":"

This option defaults to the value NoForceDeleteWithoutRecovery. To immediately delete the analysis, add the ForceDeleteWithoutRecovery option. You can't restore an analysis after it's deleted.

", "location":"querystring", "locationName":"force-delete-without-recovery" @@ -4940,7 +8025,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the deleted analysis.

" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the deleted analysis.

" }, "DeletionTime":{ @@ -4967,7 +8052,7 @@ "locationName":"AwsAccountId" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

", "location":"uri", "locationName":"DashboardId" @@ -4993,7 +8078,7 @@ "documentation":"

The Secure Socket Layer (SSL) properties that apply for the resource.

" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the dashboard.

" }, "RequestId":{ @@ -5366,7 +8451,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template that the specified alias is for.

", "location":"uri", "locationName":"TemplateId" @@ -5388,7 +8473,7 @@ "location":"statusCode" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the template associated with the deletion.

" }, "AliasName":{ @@ -5419,7 +8504,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the template you want to delete.

", "location":"uri", "locationName":"TemplateId" @@ -5444,7 +8529,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the resource.

" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the template.

" }, "Status":{ @@ -5469,7 +8554,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme that the specified alias is for.

", "location":"uri", "locationName":"ThemeId" @@ -5503,7 +8588,7 @@ "location":"statusCode" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the theme associated with the deletion.

" } } @@ -5522,7 +8607,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the theme that you want to delete.

", "location":"uri", "locationName":"ThemeId" @@ -5552,7 +8637,7 @@ "location":"statusCode" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

An ID for the theme.

" } } @@ -5718,7 +8803,7 @@ "members":{ "AccountSettings":{ "shape":"AccountSettings", - "documentation":"

The Amazon QuickSight settings for this Amazon Web Services account. This information includes the edition of Amazon Amazon QuickSight that you subscribed to (Standard or Enterprise) and the notification email for the Amazon QuickSight subscription. In the QuickSight console, the Amazon QuickSight subscription is sometimes referred to as a QuickSight \"account\" even though it's technically not an account by itself. Instead, it's a subscription to the Amazon QuickSight service for your Amazon Web Services account. The edition that you subscribe to applies to Amazon QuickSight in every Amazon Web Services Region where you use it.

" + "documentation":"

The Amazon QuickSight settings for this Amazon Web Services account. This information includes the edition of Amazon Amazon QuickSight that you subscribed to (Standard or Enterprise) and the notification email for the Amazon QuickSight subscription.

In the QuickSight console, the Amazon QuickSight subscription is sometimes referred to as a QuickSight \"account\" even though it's technically not an account by itself. Instead, it's a subscription to the Amazon QuickSight service for your Amazon Web Services account. The edition that you subscribe to applies to Amazon QuickSight in every Amazon Web Services Region where you use it.

" }, "RequestId":{ "shape":"String", @@ -5731,6 +8816,95 @@ } } }, + "DescribeAccountSubscriptionRequest":{ + "type":"structure", + "required":["AwsAccountId"], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID associated with your Amazon QuickSight account.

", + "location":"uri", + "locationName":"AwsAccountId" + } + } + }, + "DescribeAccountSubscriptionResponse":{ + "type":"structure", + "members":{ + "AccountInfo":{ + "shape":"AccountInfo", + "documentation":"

A structure that contains the following elements:

  • Your Amazon QuickSight account name.

  • The edition of Amazon QuickSight that your account is using.

  • The notification email address that is associated with the Amazon QuickSight account.

  • The authentication type of the Amazon QuickSight account.

  • The status of the Amazon QuickSight account's subscription.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, + "DescribeAnalysisDefinitionRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "AnalysisId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the analysis. You must be using the Amazon Web Services account that the analysis is in.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "AnalysisId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the analysis that you're describing. The ID is part of the URL of the analysis.

", + "location":"uri", + "locationName":"AnalysisId" + } + } + }, + "DescribeAnalysisDefinitionResponse":{ + "type":"structure", + "members":{ + "AnalysisId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the analysis described.

" + }, + "Name":{ + "shape":"AnalysisName", + "documentation":"

The descriptive name of the analysis.

" + }, + "Errors":{ + "shape":"AnalysisErrorList", + "documentation":"

Errors associated with the analysis.

" + }, + "ResourceStatus":{ + "shape":"ResourceStatus", + "documentation":"

Status associated with the analysis.

  • CREATION_IN_PROGRESS

  • CREATION_SUCCESSFUL

  • CREATION_FAILED

  • UPDATE_IN_PROGRESS

  • UPDATE_SUCCESSFUL

  • UPDATE_FAILED

  • DELETED

" + }, + "ThemeArn":{ + "shape":"Arn", + "documentation":"

The ARN of the theme of the analysis.

" + }, + "Definition":{ + "shape":"AnalysisDefinition", + "documentation":"

The definition of an analysis.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "DescribeAnalysisPermissionsRequest":{ "type":"structure", "required":[ @@ -5745,7 +8919,7 @@ "locationName":"AwsAccountId" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis whose permissions you're describing. The ID is part of the analysis URL.

", "location":"uri", "locationName":"AnalysisId" @@ -5756,7 +8930,7 @@ "type":"structure", "members":{ "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis whose permissions you're describing.

" }, "AnalysisArn":{ @@ -5792,7 +8966,7 @@ "locationName":"AwsAccountId" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis that you're describing. The ID is part of the URL of the analysis.

", "location":"uri", "locationName":"AnalysisId" @@ -5817,6 +8991,77 @@ } } }, + "DescribeDashboardDefinitionRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "DashboardId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the dashboard that you're describing.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "DashboardId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for the dashboard.

", + "location":"uri", + "locationName":"DashboardId" + }, + "VersionNumber":{ + "shape":"VersionNumber", + "documentation":"

The version number for the dashboard. If a version number isn't passed, the latest published dashboard version is described.

", + "location":"querystring", + "locationName":"version-number" + }, + "AliasName":{ + "shape":"AliasName", + "documentation":"

The alias name.

", + "location":"querystring", + "locationName":"alias-name" + } + } + }, + "DescribeDashboardDefinitionResponse":{ + "type":"structure", + "members":{ + "DashboardId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the dashboard described.

" + }, + "Errors":{ + "shape":"DashboardErrorList", + "documentation":"

Errors associated with this dashboard version.

" + }, + "Name":{ + "shape":"DashboardName", + "documentation":"

The display name of the dashboard.

" + }, + "ResourceStatus":{ + "shape":"ResourceStatus", + "documentation":"

Status associated with the dashboard version.

  • CREATION_IN_PROGRESS

  • CREATION_SUCCESSFUL

  • CREATION_FAILED

  • UPDATE_IN_PROGRESS

  • UPDATE_SUCCESSFUL

  • UPDATE_FAILED

  • DELETED

" + }, + "ThemeArn":{ + "shape":"Arn", + "documentation":"

The ARN of the theme of the dashboard.

" + }, + "Definition":{ + "shape":"DashboardVersionDefinition", + "documentation":"

The definition of a dashboard.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "DescribeDashboardPermissionsRequest":{ "type":"structure", "required":[ @@ -5831,7 +9076,7 @@ "locationName":"AwsAccountId" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard, also added to the IAM policy.

", "location":"uri", "locationName":"DashboardId" @@ -5842,7 +9087,7 @@ "type":"structure", "members":{ "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

" }, "DashboardArn":{ @@ -5882,7 +9127,7 @@ "locationName":"AwsAccountId" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

", "location":"uri", "locationName":"DashboardId" @@ -6504,7 +9749,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

", "location":"uri", "locationName":"TemplateId" @@ -6535,6 +9780,77 @@ } } }, + "DescribeTemplateDefinitionRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "TemplateId" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The ID of the Amazon Web Services account that contains the template. You must be using the Amazon Web Services account that the template is in.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "TemplateId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the template that you're describing.

", + "location":"uri", + "locationName":"TemplateId" + }, + "VersionNumber":{ + "shape":"VersionNumber", + "documentation":"

The version number of the template.

", + "location":"querystring", + "locationName":"version-number" + }, + "AliasName":{ + "shape":"AliasName", + "documentation":"

The alias of the template that you want to describe. If you name a specific alias, you describe the version that the alias points to. You can specify the latest version of the template by providing the keyword $LATEST in the AliasName parameter. The keyword $PUBLISHED doesn't apply to templates.

", + "location":"querystring", + "locationName":"alias-name" + } + } + }, + "DescribeTemplateDefinitionResponse":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"TemplateName", + "documentation":"

The descriptive name of the template.

" + }, + "TemplateId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the template described.

" + }, + "Errors":{ + "shape":"TemplateErrorList", + "documentation":"

Errors associated with the template version.

" + }, + "ResourceStatus":{ + "shape":"ResourceStatus", + "documentation":"

Status associated with the template.

  • CREATION_IN_PROGRESS

  • CREATION_SUCCESSFUL

  • CREATION_FAILED

  • UPDATE_IN_PROGRESS

  • UPDATE_SUCCESSFUL

  • UPDATE_FAILED

  • DELETED

" + }, + "ThemeArn":{ + "shape":"Arn", + "documentation":"

The ARN of the theme of the template.

" + }, + "Definition":{ + "shape":"TemplateVersionDefinition", + "documentation":"

The definition of the template.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "DescribeTemplatePermissionsRequest":{ "type":"structure", "required":[ @@ -6549,7 +9865,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

", "location":"uri", "locationName":"TemplateId" @@ -6560,7 +9876,7 @@ "type":"structure", "members":{ "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

" }, "TemplateArn":{ @@ -6596,7 +9912,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

", "location":"uri", "locationName":"TemplateId" @@ -6648,7 +9964,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

", "location":"uri", "locationName":"ThemeId" @@ -6693,7 +10009,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme that you want to describe permissions for.

", "location":"uri", "locationName":"ThemeId" @@ -6704,7 +10020,7 @@ "type":"structure", "members":{ "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

" }, "ThemeArn":{ @@ -6740,7 +10056,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

", "location":"uri", "locationName":"ThemeId" @@ -6823,6 +10139,51 @@ } } }, + "DestinationParameterValueConfiguration":{ + "type":"structure", + "members":{ + "CustomValuesConfiguration":{ + "shape":"CustomValuesConfiguration", + "documentation":"

The configuration of custom values for destination parameter in DestinationParameterValueConfiguration.

" + }, + "SelectAllValueOptions":{ + "shape":"SelectAllValueOptions", + "documentation":"

The configuration that selects all options.

" + }, + "SourceParameterName":{ + "shape":"String", + "documentation":"

The source parameter name of the destination parameter.

" + }, + "SourceField":{ + "shape":"FieldId", + "documentation":"

The source field ID of the destination parameter.

" + } + }, + "documentation":"

The configuration of destination parameter values.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "DimensionField":{ + "type":"structure", + "members":{ + "NumericalDimensionField":{ + "shape":"NumericalDimensionField", + "documentation":"

The dimension type field with numerical type columns.

" + }, + "CategoricalDimensionField":{ + "shape":"CategoricalDimensionField", + "documentation":"

The dimension type field with categorical type columns.

" + }, + "DateDimensionField":{ + "shape":"DateDimensionField", + "documentation":"

The dimension type field with date type columns.

" + } + }, + "documentation":"

The dimension type field.

" + }, + "DimensionFieldList":{ + "type":"list", + "member":{"shape":"DimensionField"}, + "max":200 + }, "Domain":{ "type":"string", "max":64, @@ -6841,16 +10202,93 @@ "error":{"httpStatusCode":403}, "exception":true }, + "DonutCenterOptions":{ + "type":"structure", + "members":{ + "LabelVisibility":{ + "shape":"Visibility", + "documentation":"

Determines the visibility of the label in a donut chart. In the Amazon QuickSight console, this option is called 'Show total'.

" + } + }, + "documentation":"

The label options of the label that is displayed in the center of a donut chart. This option isn't available for pie charts.

" + }, + "DonutOptions":{ + "type":"structure", + "members":{ + "ArcOptions":{ + "shape":"ArcOptions", + "documentation":"

The option for define the arc of the chart shape. Valid values are as follows:

  • WHOLE - A pie chart

  • SMALL- A small-sized donut chart

  • MEDIUM- A medium-sized donut chart

  • LARGE- A large-sized donut chart

" + }, + "DonutCenterOptions":{ + "shape":"DonutCenterOptions", + "documentation":"

The label options of the label that is displayed in the center of a donut chart. This option isn't available for pie charts.

" + } + }, + "documentation":"

The options for configuring a donut chart or pie chart.

" + }, "Double":{"type":"double"}, - "DoubleList":{ + "DrillDownFilter":{ + "type":"structure", + "members":{ + "NumericEqualityFilter":{ + "shape":"NumericEqualityDrillDownFilter", + "documentation":"

The numeric equality type drill down filter. This filter is used for number type columns.

" + }, + "CategoryFilter":{ + "shape":"CategoryDrillDownFilter", + "documentation":"

The category type drill down filter. This filter is used for string type columns.

" + }, + "TimeRangeFilter":{ + "shape":"TimeRangeDrillDownFilter", + "documentation":"

The time range drill down filter. This filter is used for date time columns.

" + } + }, + "documentation":"

The drill down filter for the column hierarchies.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "DrillDownFilterList":{ "type":"list", - "member":{"shape":"Double"} + "member":{"shape":"DrillDownFilter"}, + "max":10 + }, + "DropDownControlDisplayOptions":{ + "type":"structure", + "members":{ + "SelectAllOptions":{ + "shape":"ListControlSelectAllOptions", + "documentation":"

The configuration of the Select all options in a dropdown control.

" + }, + "TitleOptions":{ + "shape":"LabelOptions", + "documentation":"

The options to configure the title visibility, name, and font size.

" + } + }, + "documentation":"

The display options of a control.

" + }, + "DynamicDefaultValue":{ + "type":"structure", + "required":["DefaultValueColumn"], + "members":{ + "UserNameColumn":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that contains the username.

" + }, + "GroupNameColumn":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that contains the group name.

" + }, + "DefaultValueColumn":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that contains the default value of each user or group.

" + } + }, + "documentation":"

Defines different defaults to the users or groups based on mapping.

" }, "Edition":{ "type":"string", "enum":[ "STANDARD", - "ENTERPRISE" + "ENTERPRISE", + "ENTERPRISE_AND_Q" ] }, "EmbeddingIdentityType":{ @@ -6865,6 +10303,43 @@ "type":"string", "sensitive":true }, + "EmptyVisual":{ + "type":"structure", + "required":[ + "VisualId", + "DataSetIdentifier" + ], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "DataSetIdentifier":{ + "shape":"DataSetIdentifier", + "documentation":"

The data set that is used in the empty visual. Every visual requires a dataset to render.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + } + }, + "documentation":"

An empty visual.

Empty visuals are used in layouts but have not been configured to show any data. A new visual created in the Amazon QuickSight console is considered an EmptyVisual until a visual type is selected.

" + }, + "Entity":{ + "type":"structure", + "members":{ + "Path":{ + "shape":"NonEmptyString", + "documentation":"

The hierarchical path of the entity within the analysis, template, or dashboard definition tree.

" + } + }, + "documentation":"

An object, structure, or sub-structure of an analysis, template, or dashboard.

" + }, + "EntityList":{ + "type":"list", + "member":{"shape":"Entity"}, + "max":200 + }, "EntryPath":{ "type":"string", "max":1000, @@ -6921,6 +10396,67 @@ "INGESTION" ] }, + "ExcludePeriodConfiguration":{ + "type":"structure", + "required":[ + "Amount", + "Granularity" + ], + "members":{ + "Amount":{ + "shape":"Integer", + "documentation":"

The amount or number of the exclude period.

", + "box":true + }, + "Granularity":{ + "shape":"TimeGranularity", + "documentation":"

The granularity or unit (day, month, year) of the exclude period.

" + }, + "Status":{ + "shape":"WidgetStatus", + "documentation":"

The status of the exclude period. Choose from the following options:

  • ENABLED

  • DISABLED

" + } + }, + "documentation":"

The exclude period of TimeRangeFilter or RelativeDatesFilter.

" + }, + "ExplicitHierarchy":{ + "type":"structure", + "required":[ + "HierarchyId", + "Columns" + ], + "members":{ + "HierarchyId":{ + "shape":"HierarchyId", + "documentation":"

The hierarchy ID of the explicit hierarchy.

" + }, + "Columns":{ + "shape":"ExplicitHierarchyColumnList", + "documentation":"

The list of columns that define the explicit hierarchy.

" + }, + "DrillDownFilters":{ + "shape":"DrillDownFilterList", + "documentation":"

The option that determines the drill down filters for the explicit hierarchy.

" + } + }, + "documentation":"

The option that determines the hierarchy of the fields that are built within a visual's field wells. These fields can't be duplicated to other visuals.

" + }, + "ExplicitHierarchyColumnList":{ + "type":"list", + "member":{"shape":"ColumnIdentifier"}, + "max":10, + "min":2 + }, + "ExportHiddenFieldsOption":{ + "type":"structure", + "members":{ + "AvailabilityStatus":{ + "shape":"DashboardBehavior", + "documentation":"

" + } + }, + "documentation":"

" + }, "ExportToCSVOption":{ "type":"structure", "members":{ @@ -6934,7 +10470,26 @@ "Expression":{ "type":"string", "max":4096, - "min":1 + "min":1, + "sensitive":true + }, + "FieldBasedTooltip":{ + "type":"structure", + "members":{ + "AggregationVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility of Show aggregations.

" + }, + "TooltipTitleType":{ + "shape":"TooltipTitleType", + "documentation":"

The type for the >tooltip title. Choose one of the following options:

  • NONE: Doesn't use the primary value as the title.

  • PRIMARY_VALUE: Uses primary value as the title.

" + }, + "TooltipFields":{ + "shape":"TooltipItemList", + "documentation":"

The fields configuration in the tooltip.

" + } + }, + "documentation":"

The setup for the detailed tooltip.

" }, "FieldFolder":{ "type":"structure", @@ -6964,6 +10519,113 @@ "max":1000, "min":1 }, + "FieldId":{ + "type":"string", + "max":512, + "min":1 + }, + "FieldLabelType":{ + "type":"structure", + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

Indicates the field that is targeted by the field label.

" + }, + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the field label.

" + } + }, + "documentation":"

The field label type.

" + }, + "FieldOrderList":{ + "type":"list", + "member":{"shape":"FieldId"}, + "max":100 + }, + "FieldSeriesItem":{ + "type":"structure", + "required":[ + "FieldId", + "AxisBinding" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID of the field for which you are setting the axis binding.

" + }, + "AxisBinding":{ + "shape":"AxisBinding", + "documentation":"

The axis that you are binding the field to.

" + }, + "Settings":{ + "shape":"LineChartSeriesSettings", + "documentation":"

The options that determine the presentation of line series associated to the field.

" + } + }, + "documentation":"

The field series item configuration of a line chart.

" + }, + "FieldSort":{ + "type":"structure", + "required":[ + "FieldId", + "Direction" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The sort configuration target field.

" + }, + "Direction":{ + "shape":"SortDirection", + "documentation":"

The sort direction. Choose one of the following options:

  • ASC: Ascending

  • DESC: Descending

" + } + }, + "documentation":"

The sort configuration for a field in a field well.

" + }, + "FieldSortOptions":{ + "type":"structure", + "members":{ + "FieldSort":{ + "shape":"FieldSort", + "documentation":"

The sort configuration for a field in a field well.

" + }, + "ColumnSort":{ + "shape":"ColumnSort", + "documentation":"

The sort configuration for a column that is not used in a field well.

" + } + }, + "documentation":"

The field sort options in a chart configuration.

" + }, + "FieldSortOptionsList":{ + "type":"list", + "member":{"shape":"FieldSortOptions"}, + "max":100 + }, + "FieldTooltipItem":{ + "type":"structure", + "required":["FieldId"], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The unique ID of the field that is targeted by the tooltip.

" + }, + "Label":{ + "shape":"String", + "documentation":"

The label of the tooltip item.

" + }, + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the tooltip item.

" + } + }, + "documentation":"

The tooltip item for the fields.

" + }, + "FieldValue":{ + "type":"string", + "max":2048, + "sensitive":true + }, "FileFormat":{ "type":"string", "enum":[ @@ -6975,6 +10637,408 @@ "JSON" ] }, + "FilledMapAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Geospatial":{ + "shape":"FilledMapDimensionFieldList", + "documentation":"

The aggregated location field well of the filled map. Values are grouped by location fields.

" + }, + "Values":{ + "shape":"FilledMapMeasureFieldList", + "documentation":"

The aggregated color field well of a filled map. Values are aggregated based on location fields.

" + } + }, + "documentation":"

The aggregated field well of the filled map.

" + }, + "FilledMapConditionalFormatting":{ + "type":"structure", + "required":["ConditionalFormattingOptions"], + "members":{ + "ConditionalFormattingOptions":{ + "shape":"FilledMapConditionalFormattingOptionList", + "documentation":"

Conditional formatting options of a FilledMapVisual.

" + } + }, + "documentation":"

The conditional formatting of a FilledMapVisual.

" + }, + "FilledMapConditionalFormattingOption":{ + "type":"structure", + "required":["Shape"], + "members":{ + "Shape":{ + "shape":"FilledMapShapeConditionalFormatting", + "documentation":"

The conditional formatting that determines the shape of the filled map.

" + } + }, + "documentation":"

Conditional formatting options of a FilledMapVisual.

" + }, + "FilledMapConditionalFormattingOptionList":{ + "type":"list", + "member":{"shape":"FilledMapConditionalFormattingOption"}, + "max":200 + }, + "FilledMapConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"FilledMapFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"FilledMapSortConfiguration", + "documentation":"

The sort configuration of a FilledMapVisual.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip display setup of the visual.

" + }, + "WindowOptions":{ + "shape":"GeospatialWindowOptions", + "documentation":"

The window options of the filled map visual.

" + }, + "MapStyleOptions":{ + "shape":"GeospatialMapStyleOptions", + "documentation":"

The map style options of the filled map visual.

" + } + }, + "documentation":"

The configuration for a FilledMapVisual.

" + }, + "FilledMapDimensionFieldList":{ + "type":"list", + "member":{"shape":"DimensionField"}, + "max":1 + }, + "FilledMapFieldWells":{ + "type":"structure", + "members":{ + "FilledMapAggregatedFieldWells":{ + "shape":"FilledMapAggregatedFieldWells", + "documentation":"

The aggregated field well of the filled map.

" + } + }, + "documentation":"

The field wells of a FilledMapVisual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "FilledMapMeasureFieldList":{ + "type":"list", + "member":{"shape":"MeasureField"}, + "max":1 + }, + "FilledMapShapeConditionalFormatting":{ + "type":"structure", + "required":["FieldId"], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID of the filled map shape.

" + }, + "Format":{ + "shape":"ShapeConditionalFormat", + "documentation":"

The conditional formatting that determines the background color of a filled map's shape.

" + } + }, + "documentation":"

The conditional formatting that determines the shape of the filled map.

" + }, + "FilledMapSortConfiguration":{ + "type":"structure", + "members":{ + "CategorySort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the location fields.

" + } + }, + "documentation":"

The sort configuration of a FilledMapVisual.

" + }, + "FilledMapVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers..

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"FilledMapConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "ConditionalFormatting":{ + "shape":"FilledMapConditionalFormatting", + "documentation":"

The conditional formatting of a FilledMapVisual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + } + }, + "documentation":"

A filled map.

For more information, see Creating filled maps in the Amazon QuickSight User Guide.

" + }, + "Filter":{ + "type":"structure", + "members":{ + "CategoryFilter":{ + "shape":"CategoryFilter", + "documentation":"

A CategoryFilter filters text values.

For more information, see Adding text filters in the Amazon QuickSight User Guide.

" + }, + "NumericRangeFilter":{ + "shape":"NumericRangeFilter", + "documentation":"

A NumericRangeFilter filters numeric values that are either inside or outside a given numeric range.

" + }, + "NumericEqualityFilter":{ + "shape":"NumericEqualityFilter", + "documentation":"

A NumericEqualityFilter filters numeric values that equal or do not equal a given numeric value.

" + }, + "TimeEqualityFilter":{ + "shape":"TimeEqualityFilter", + "documentation":"

A TimeEqualityFilter filters date-time values that equal or do not equal a given date/time value.

" + }, + "TimeRangeFilter":{ + "shape":"TimeRangeFilter", + "documentation":"

A TimeRangeFilter filters date-time values that are either inside or outside a given date/time range.

" + }, + "RelativeDatesFilter":{ + "shape":"RelativeDatesFilter", + "documentation":"

A RelativeDatesFilter filters date values that are relative to a given date.

" + }, + "TopBottomFilter":{ + "shape":"TopBottomFilter", + "documentation":"

A TopBottomFilter filters data to the top or bottom values for a given column.

" + } + }, + "documentation":"

With a Filter, you can remove portions of data from a particular visual or view.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "FilterControl":{ + "type":"structure", + "members":{ + "DateTimePicker":{ + "shape":"FilterDateTimePickerControl", + "documentation":"

A control from a date filter that is used to specify date and time.

" + }, + "List":{ + "shape":"FilterListControl", + "documentation":"

A control to display a list of buttons or boxes. This is used to select either a single value or multiple values.

" + }, + "Dropdown":{ + "shape":"FilterDropDownControl", + "documentation":"

A control to display a dropdown list with buttons that are used to select a single value.

" + }, + "TextField":{ + "shape":"FilterTextFieldControl", + "documentation":"

A control to display a text box that is used to enter a single entry.

" + }, + "TextArea":{ + "shape":"FilterTextAreaControl", + "documentation":"

A control to display a text box that is used to enter multiple entries.

" + }, + "Slider":{ + "shape":"FilterSliderControl", + "documentation":"

A control to display a horizontal toggle bar. This is used to change a value by sliding the toggle.

" + }, + "RelativeDateTime":{ + "shape":"FilterRelativeDateTimeControl", + "documentation":"

A control from a date filter that is used to specify the relative date.

" + } + }, + "documentation":"

The control of a filter that is used to interact with a dashboard or an analysis.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "FilterControlList":{ + "type":"list", + "member":{"shape":"FilterControl"}, + "max":200 + }, + "FilterDateTimePickerControl":{ + "type":"structure", + "required":[ + "FilterControlId", + "Title", + "SourceFilterId" + ], + "members":{ + "FilterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the FilterDateTimePickerControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the FilterDateTimePickerControl.

" + }, + "SourceFilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The source filter ID of the FilterDateTimePickerControl.

" + }, + "DisplayOptions":{ + "shape":"DateTimePickerControlDisplayOptions", + "documentation":"

The display options of a control.

" + }, + "Type":{ + "shape":"SheetControlDateTimePickerType", + "documentation":"

The date time picker type of a FilterDateTimePickerControl. Choose one of the following options:

  • SINGLE_VALUED: The filter condition is a fixed date.

  • DATE_RANGE: The filter condition is a date time range.

" + } + }, + "documentation":"

A control from a date filter that is used to specify date and time.

" + }, + "FilterDropDownControl":{ + "type":"structure", + "required":[ + "FilterControlId", + "Title", + "SourceFilterId" + ], + "members":{ + "FilterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the FilterDropDownControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the FilterDropDownControl.

" + }, + "SourceFilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The source filter ID of the FilterDropDownControl.

" + }, + "DisplayOptions":{ + "shape":"DropDownControlDisplayOptions", + "documentation":"

The display options of the FilterDropDownControl.

" + }, + "Type":{ + "shape":"SheetControlListType", + "documentation":"

The type of the FilterDropDownControl. Choose one of the following options:

  • MULTI_SELECT: The user can select multiple entries from a dropdown menu.

  • SINGLE_SELECT: The user can select a single entry from a dropdown menu.

" + }, + "SelectableValues":{ + "shape":"FilterSelectableValues", + "documentation":"

A list of selectable values that are used in a control.

" + }, + "CascadingControlConfiguration":{ + "shape":"CascadingControlConfiguration", + "documentation":"

The values that are displayed in a control can be configured to only show values that are valid based on what's selected in other controls.

" + } + }, + "documentation":"

A control to display a dropdown list with buttons that are used to select a single value.

" + }, + "FilterGroup":{ + "type":"structure", + "required":[ + "FilterGroupId", + "Filters", + "ScopeConfiguration", + "CrossDataset" + ], + "members":{ + "FilterGroupId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The value that uniquely identifies a FilterGroup within a dashboard, template, or analysis.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

The list of filters that are present in a FilterGroup.

" + }, + "ScopeConfiguration":{ + "shape":"FilterScopeConfiguration", + "documentation":"

The configuration that specifies what scope to apply to a FilterGroup.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "Status":{ + "shape":"WidgetStatus", + "documentation":"

The status of the FilterGroup.

" + }, + "CrossDataset":{ + "shape":"CrossDatasetTypes", + "documentation":"

The filter new feature which can apply filter group to all data sets. Choose one of the following options:

  • ALL_DATASETS

  • SINGLE_DATASET

" + } + }, + "documentation":"

A grouping of individual filters. Filter groups are applied to the same group of visuals.

For more information, see Adding filter conditions (group filters) with AND and OR operators in the Amazon QuickSight User Guide.

" + }, + "FilterGroupList":{ + "type":"list", + "member":{"shape":"FilterGroup"}, + "max":2000 + }, + "FilterList":{ + "type":"list", + "member":{"shape":"Filter"}, + "max":20 + }, + "FilterListConfiguration":{ + "type":"structure", + "required":["MatchOperator"], + "members":{ + "MatchOperator":{ + "shape":"CategoryFilterMatchOperator", + "documentation":"

The match operator that is used to determine if a filter should be applied.

" + }, + "CategoryValues":{ + "shape":"CategoryValueList", + "documentation":"

The list of category values for the filter.

" + }, + "SelectAllOptions":{ + "shape":"CategoryFilterSelectAllOptions", + "documentation":"

Select all of the values. Null is not the assigned value of select all.

  • FILTER_ALL_VALUES

" + } + }, + "documentation":"

A list of filter configurations.

" + }, + "FilterListControl":{ + "type":"structure", + "required":[ + "FilterControlId", + "Title", + "SourceFilterId" + ], + "members":{ + "FilterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the FilterListControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the FilterListControl.

" + }, + "SourceFilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The source filter ID of the FilterListControl.

" + }, + "DisplayOptions":{ + "shape":"ListControlDisplayOptions", + "documentation":"

The display options of a control.

" + }, + "Type":{ + "shape":"SheetControlListType", + "documentation":"

The type of FilterListControl. Choose one of the following options:

  • MULTI_SELECT: The user can select multiple entries from the list.

  • SINGLE_SELECT: The user can select a single entry from the list.

" + }, + "SelectableValues":{ + "shape":"FilterSelectableValues", + "documentation":"

A list of selectable values that are used in a control.

" + }, + "CascadingControlConfiguration":{ + "shape":"CascadingControlConfiguration", + "documentation":"

The values that are displayed in a control can be configured to only show values that are valid based on what's selected in other controls.

" + } + }, + "documentation":"

A control to display a list of buttons or boxes. This is used to select either a single value or multiple values.

" + }, + "FilterNullOption":{ + "type":"string", + "enum":[ + "ALL_VALUES", + "NULLS_ONLY", + "NON_NULLS_ONLY" + ] + }, "FilterOperation":{ "type":"structure", "required":["ConditionExpression"], @@ -6986,9 +11050,199 @@ }, "documentation":"

A transform operation that filters rows based on a condition.

" }, + "FilterOperationSelectedFieldsConfiguration":{ + "type":"structure", + "members":{ + "SelectedFields":{ + "shape":"SelectedFieldList", + "documentation":"

Chooses the fields that are filtered in CustomActionFilterOperation.

" + }, + "SelectedFieldOptions":{ + "shape":"SelectedFieldOptions", + "documentation":"

A structure that contains the options that choose which fields are filtered in the CustomActionFilterOperation.

Valid values are defined as follows:

  • ALL_FIELDS: Applies the filter operation to all fields.

" + } + }, + "documentation":"

The configuration of selected fields in theCustomActionFilterOperation.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "FilterOperationTargetVisualsConfiguration":{ + "type":"structure", + "members":{ + "SameSheetTargetVisualConfiguration":{ + "shape":"SameSheetTargetVisualConfiguration", + "documentation":"

The configuration of the same-sheet target visuals that you want to be filtered.

" + } + }, + "documentation":"

The configuration of target visuals that you want to be filtered.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, "FilterOperator":{ "type":"string", - "enum":["StringEquals"] + "enum":[ + "StringEquals", + "StringLike" + ] + }, + "FilterRelativeDateTimeControl":{ + "type":"structure", + "required":[ + "FilterControlId", + "Title", + "SourceFilterId" + ], + "members":{ + "FilterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the FilterTextAreaControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the FilterTextAreaControl.

" + }, + "SourceFilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The source filter ID of the FilterTextAreaControl.

" + }, + "DisplayOptions":{ + "shape":"RelativeDateTimeControlDisplayOptions", + "documentation":"

The display options of a control.

" + } + }, + "documentation":"

A control from a date filter that is used to specify the relative date.

" + }, + "FilterScopeConfiguration":{ + "type":"structure", + "members":{ + "SelectedSheets":{ + "shape":"SelectedSheetsFilterScopeConfiguration", + "documentation":"

The configuration for applying a filter to specific sheets.

" + } + }, + "documentation":"

The scope configuration for a FilterGroup.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "FilterSelectableValues":{ + "type":"structure", + "members":{ + "Values":{ + "shape":"ParameterSelectableValueList", + "documentation":"

The values that are used in the FilterSelectableValues.

" + } + }, + "documentation":"

A list of selectable values that are used in a control.

" + }, + "FilterSliderControl":{ + "type":"structure", + "required":[ + "FilterControlId", + "Title", + "SourceFilterId", + "MaximumValue", + "MinimumValue", + "StepSize" + ], + "members":{ + "FilterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the FilterSliderControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the FilterSliderControl.

" + }, + "SourceFilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The source filter ID of the FilterSliderControl.

" + }, + "DisplayOptions":{ + "shape":"SliderControlDisplayOptions", + "documentation":"

The display options of a control.

" + }, + "Type":{ + "shape":"SheetControlSliderType", + "documentation":"

The type of FilterSliderControl. Choose one of the following options:

  • SINGLE_POINT: Filter against(equals) a single data point.

  • RANGE: Filter data that is in a specified range.

" + }, + "MaximumValue":{ + "shape":"Double", + "documentation":"

The smaller value that is displayed at the left of the slider.

" + }, + "MinimumValue":{ + "shape":"Double", + "documentation":"

The larger value that is displayed at the right of the slider.

" + }, + "StepSize":{ + "shape":"Double", + "documentation":"

The number of increments that the slider bar is divided into.

" + } + }, + "documentation":"

A control to display a horizontal toggle bar. This is used to change a value by sliding the toggle.

" + }, + "FilterTextAreaControl":{ + "type":"structure", + "required":[ + "FilterControlId", + "Title", + "SourceFilterId" + ], + "members":{ + "FilterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the FilterTextAreaControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the FilterTextAreaControl.

" + }, + "SourceFilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The source filter ID of the FilterTextAreaControl.

" + }, + "Delimiter":{ + "shape":"TextAreaControlDelimiter", + "documentation":"

The delimiter that is used to separate the lines in text.

" + }, + "DisplayOptions":{ + "shape":"TextAreaControlDisplayOptions", + "documentation":"

The display options of a control.

" + } + }, + "documentation":"

A control to display a text box that is used to enter multiple entries.

" + }, + "FilterTextFieldControl":{ + "type":"structure", + "required":[ + "FilterControlId", + "Title", + "SourceFilterId" + ], + "members":{ + "FilterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the FilterTextFieldControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the FilterTextFieldControl.

" + }, + "SourceFilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The source filter ID of the FilterTextFieldControl.

" + }, + "DisplayOptions":{ + "shape":"TextFieldControlDisplayOptions", + "documentation":"

The display options of a control.

" + } + }, + "documentation":"

A control to display a text box that is used to enter a single entry.

" + }, + "FilterVisualScope":{ + "type":"string", + "enum":[ + "ALL_VISUALS", + "SELECTED_VISUALS" + ] + }, + "FilteredVisualsList":{ + "type":"list", + "member":{"shape":"ShortRestrictiveResourceId"}, + "max":50 }, "Folder":{ "type":"structure", @@ -7031,7 +11285,15 @@ }, "FolderFilterAttribute":{ "type":"string", - "enum":["PARENT_FOLDER_ARN"] + "enum":[ + "PARENT_FOLDER_ARN", + "DIRECT_QUICKSIGHT_OWNER", + "DIRECT_QUICKSIGHT_SOLE_OWNER", + "DIRECT_QUICKSIGHT_VIEWER_OR_OWNER", + "QUICKSIGHT_OWNER", + "QUICKSIGHT_VIEWER_OR_OWNER", + "FOLDER_NAME" + ] }, "FolderMember":{ "type":"structure", @@ -7062,18 +11324,18 @@ "members":{ "Operator":{ "shape":"FilterOperator", - "documentation":"

The comparison operator that you want to use in the filter. For example, \"Operator\": \"StringEquals\".

" + "documentation":"

The comparison operator that you want to use as a filter, for example \"Operator\": \"StringEquals\". Valid values are \"StringEquals\" and \"StringLike\".

If you set the operator value to \"StringEquals\", you need to provide an ownership related filter in the \"NAME\" field and the arn of the user or group whose folders you want to search in the \"Value\" field. For example, \"Name\":\"DIRECT_QUICKSIGHT_OWNER\", \"Operator\": \"StringEquals\", \"Value\": \"arn:aws:quicksight:us-east-1:1:user/default/UserName1\".

If you set the value to \"StringLike\", you need to provide the name of the folders you are searching for. For example, \"Name\":\"FOLDER_NAME\", \"Operator\": \"StringLike\", \"Value\": \"Test\". The \"StringLike\" operator only supports the NAME value FOLDER_NAME.

" }, "Name":{ "shape":"FolderFilterAttribute", - "documentation":"

The name of a value that you want to use in the filter. For example, \"Name\": \"PARENT_FOLDER_ARN\".

" + "documentation":"

The name of a value that you want to use in the filter. For example, \"Name\": \"QUICKSIGHT_OWNER\".

Valid values are defined as follows:

  • QUICKSIGHT_VIEWER_OR_OWNER: Provide an ARN of a user or group, and any folders with that ARN listed as one of the folder's owners or viewers are returned. Implicit permissions from folders or groups are considered.

  • QUICKSIGHT_OWNER: Provide an ARN of a user or group, and any folders with that ARN listed as one of the owners of the folders are returned. Implicit permissions from folders or groups are considered.

  • DIRECT_QUICKSIGHT_SOLE_OWNER: Provide an ARN of a user or group, and any folders with that ARN listed as the only owner of the folder are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_OWNER: Provide an ARN of a user or group, and any folders with that ARN listed as one of the owners of the folders are returned. Implicit permissions from folders or groups are not considered.

  • DIRECT_QUICKSIGHT_VIEWER_OR_OWNER: Provide an ARN of a user or group, and any folders with that ARN listed as one of the owners or viewers of the folders are returned. Implicit permissions from folders or groups are not considered.

  • FOLDER_NAME: Any folders whose names have a substring match to this value will be returned.

  • PARENT_FOLDER_ARN: Provide an ARN of a folder, and any folders that are directly under that parent folder are returned. If you choose to use this option and leave the value blank, all root-level folders in the account are returned.

" }, "Value":{ "shape":"String", "documentation":"

The value of the named item (in this example, PARENT_FOLDER_ARN), that you want to use as a filter. For example, \"Value\": \"arn:aws:quicksight:us-east-1:1:folder/folderId\".

" } }, - "documentation":"

A filter to use to search a Amazon QuickSight folder.

" + "documentation":"

A filter to use to search an Amazon QuickSight folder.

" }, "FolderSearchFilterList":{ "type":"list", @@ -7119,6 +11381,655 @@ "type":"string", "enum":["SHARED"] }, + "Font":{ + "type":"structure", + "members":{ + "FontFamily":{ + "shape":"String", + "documentation":"

Determines the font family settings.

" + } + }, + "documentation":"

Determines the font settings.

" + }, + "FontConfiguration":{ + "type":"structure", + "members":{ + "FontSize":{ + "shape":"FontSize", + "documentation":"

The option that determines the text display size.

" + }, + "FontDecoration":{ + "shape":"FontDecoration", + "documentation":"

Determines the appearance of decorative lines on the text.

" + }, + "FontColor":{ + "shape":"HexColor", + "documentation":"

Determines the color of the text.

" + }, + "FontWeight":{ + "shape":"FontWeight", + "documentation":"

The option that determines the text display weight, or boldness.

" + }, + "FontStyle":{ + "shape":"FontStyle", + "documentation":"

Determines the text display face that is inherited by the given font family.

" + } + }, + "documentation":"

Configures the display properties of the given text.

" + }, + "FontDecoration":{ + "type":"string", + "enum":[ + "UNDERLINE", + "NONE" + ] + }, + "FontList":{ + "type":"list", + "member":{"shape":"Font"}, + "max":5 + }, + "FontSize":{ + "type":"structure", + "members":{ + "Relative":{ + "shape":"RelativeFontSize", + "documentation":"

The lexical name for the text size, proportional to its surrounding context.

" + } + }, + "documentation":"

The option that determines the text display size.

" + }, + "FontStyle":{ + "type":"string", + "enum":[ + "NORMAL", + "ITALIC" + ] + }, + "FontWeight":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"FontWeightName", + "documentation":"

The lexical name for the level of boldness of the text display.

" + } + }, + "documentation":"

The option that determines the text display weight, or boldness.

" + }, + "FontWeightName":{ + "type":"string", + "enum":[ + "NORMAL", + "BOLD" + ] + }, + "ForecastComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Time" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Time":{ + "shape":"DimensionField", + "documentation":"

The time field that is used in a computation.

" + }, + "Value":{ + "shape":"MeasureField", + "documentation":"

The value field that is used in a computation.

" + }, + "PeriodsForward":{ + "shape":"PeriodsForward", + "documentation":"

The periods forward setup of a forecast computation.

" + }, + "PeriodsBackward":{ + "shape":"PeriodsBackward", + "documentation":"

The periods backward setup of a forecast computation.

" + }, + "UpperBoundary":{ + "shape":"Double", + "documentation":"

The upper boundary setup of a forecast computation.

", + "box":true + }, + "LowerBoundary":{ + "shape":"Double", + "documentation":"

The lower boundary setup of a forecast computation.

", + "box":true + }, + "PredictionInterval":{ + "shape":"PredictionInterval", + "documentation":"

The prediction interval setup of a forecast computation.

" + }, + "Seasonality":{ + "shape":"ForecastComputationSeasonality", + "documentation":"

The seasonality setup of a forecast computation. Choose one of the following options:

  • AUTOMATIC

  • CUSTOM: Checks the custom seasonality value.

" + }, + "CustomSeasonalityValue":{ + "shape":"ForecastComputationCustomSeasonalityValue", + "documentation":"

The custom seasonality value setup of a forecast computation.

", + "box":true + } + }, + "documentation":"

The forecast computation configuration.

" + }, + "ForecastComputationCustomSeasonalityValue":{ + "type":"integer", + "max":180, + "min":1 + }, + "ForecastComputationSeasonality":{ + "type":"string", + "enum":[ + "AUTOMATIC", + "CUSTOM" + ] + }, + "ForecastConfiguration":{ + "type":"structure", + "members":{ + "ForecastProperties":{ + "shape":"TimeBasedForecastProperties", + "documentation":"

The forecast properties setup of a forecast in the line chart.

" + }, + "Scenario":{ + "shape":"ForecastScenario", + "documentation":"

The forecast scenario of a forecast in the line chart.

" + } + }, + "documentation":"

The forecast configuration that is used in a line chart's display properties.

" + }, + "ForecastConfigurationList":{ + "type":"list", + "member":{"shape":"ForecastConfiguration"}, + "max":10 + }, + "ForecastScenario":{ + "type":"structure", + "members":{ + "WhatIfPointScenario":{ + "shape":"WhatIfPointScenario", + "documentation":"

The what-if analysis forecast setup with the target date.

" + }, + "WhatIfRangeScenario":{ + "shape":"WhatIfRangeScenario", + "documentation":"

The what-if analysis forecast setup with the date range.

" + } + }, + "documentation":"

The forecast scenario of a forecast in the line chart.

" + }, + "FormatConfiguration":{ + "type":"structure", + "members":{ + "StringFormatConfiguration":{ + "shape":"StringFormatConfiguration", + "documentation":"

Formatting configuration for string fields.

" + }, + "NumberFormatConfiguration":{ + "shape":"NumberFormatConfiguration", + "documentation":"

Formatting configuration for number fields.

" + }, + "DateTimeFormatConfiguration":{ + "shape":"DateTimeFormatConfiguration", + "documentation":"

Formatting configuration for DateTime fields.

" + } + }, + "documentation":"

The formatting configuration for all types of field.

" + }, + "FreeFormLayoutCanvasSizeOptions":{ + "type":"structure", + "members":{ + "ScreenCanvasSizeOptions":{ + "shape":"FreeFormLayoutScreenCanvasSizeOptions", + "documentation":"

The options that determine the sizing of the canvas used in a free-form layout.

" + } + }, + "documentation":"

Configuration options for the canvas of a free-form layout.

" + }, + "FreeFormLayoutConfiguration":{ + "type":"structure", + "required":["Elements"], + "members":{ + "Elements":{ + "shape":"FreeFromLayoutElementList", + "documentation":"

The elements that are included in a free-form layout.

" + }, + "CanvasSizeOptions":{"shape":"FreeFormLayoutCanvasSizeOptions"} + }, + "documentation":"

The configuration of a free-form layout.

" + }, + "FreeFormLayoutElement":{ + "type":"structure", + "required":[ + "ElementId", + "ElementType", + "XAxisLocation", + "YAxisLocation", + "Width", + "Height" + ], + "members":{ + "ElementId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

A unique identifier for an element within a free-form layout.

" + }, + "ElementType":{ + "shape":"LayoutElementType", + "documentation":"

The type of element.

" + }, + "XAxisLocation":{ + "shape":"PixelLength", + "documentation":"

The x-axis coordinate of the element.

" + }, + "YAxisLocation":{ + "shape":"UnlimitedPixelLength", + "documentation":"

The y-axis coordinate of the element.

" + }, + "Width":{ + "shape":"PixelLength", + "documentation":"

The width of an element within a free-form layout.

" + }, + "Height":{ + "shape":"PixelLength", + "documentation":"

The height of an element within a free-form layout.

" + }, + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of an element within a free-form layout.

" + }, + "RenderingRules":{ + "shape":"SheetElementRenderingRuleList", + "documentation":"

The rendering rules that determine when an element should be displayed within a free-form layout.

" + }, + "BorderStyle":{ + "shape":"FreeFormLayoutElementBorderStyle", + "documentation":"

The border style configuration of a free-form layout element.

" + }, + "SelectedBorderStyle":{ + "shape":"FreeFormLayoutElementBorderStyle", + "documentation":"

The border style configuration of a free-form layout element. This border style is used when the element is selected.

" + }, + "BackgroundStyle":{ + "shape":"FreeFormLayoutElementBackgroundStyle", + "documentation":"

The background style configuration of a free-form layout element.

" + }, + "LoadingAnimation":{ + "shape":"LoadingAnimation", + "documentation":"

The loading animation configuration of a free-form layout element.

" + } + }, + "documentation":"

An element within a free-form layout.

" + }, + "FreeFormLayoutElementBackgroundStyle":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The background visibility of a free-form layout element.

" + }, + "Color":{ + "shape":"HexColorWithTransparency", + "documentation":"

The background color of a free-form layout element.

" + } + }, + "documentation":"

The background style configuration of a free-form layout element.

" + }, + "FreeFormLayoutElementBorderStyle":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The border visibility of a free-form layout element.

" + }, + "Color":{ + "shape":"HexColorWithTransparency", + "documentation":"

The border color of a free-form layout element.

" + } + }, + "documentation":"

The background style configuration of a free-form layout element.

" + }, + "FreeFormLayoutScreenCanvasSizeOptions":{ + "type":"structure", + "required":["OptimizedViewPortWidth"], + "members":{ + "OptimizedViewPortWidth":{ + "shape":"PixelLength", + "documentation":"

The width that the view port will be optimized for when the layout renders.

", + "box":true + } + }, + "documentation":"

The options that determine the sizing of the canvas used in a free-form layout.

" + }, + "FreeFormSectionLayoutConfiguration":{ + "type":"structure", + "required":["Elements"], + "members":{ + "Elements":{ + "shape":"FreeFromLayoutElementList", + "documentation":"

The elements that are included in the free-form layout.

" + } + }, + "documentation":"

The free-form layout configuration of a section.

" + }, + "FreeFromLayoutElementList":{ + "type":"list", + "member":{"shape":"FreeFormLayoutElement"}, + "max":430 + }, + "FunnelChartAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Category":{ + "shape":"FunnelChartDimensionFieldList", + "documentation":"

The category field wells of a funnel chart. Values are grouped by category fields.

" + }, + "Values":{ + "shape":"FunnelChartMeasureFieldList", + "documentation":"

The value field wells of a funnel chart. Values are aggregated based on categories.

" + } + }, + "documentation":"

The field well configuration of a FunnelChartVisual.

" + }, + "FunnelChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"FunnelChartFieldWells", + "documentation":"

The field well configuration of a FunnelChartVisual.

" + }, + "SortConfiguration":{ + "shape":"FunnelChartSortConfiguration", + "documentation":"

The sort configuration of a FunnelChartVisual.

" + }, + "CategoryLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options of the categories that are displayed in a FunnelChartVisual.

" + }, + "ValueLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options for the values that are displayed in a FunnelChartVisual.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip configuration of a FunnelChartVisual.

" + }, + "DataLabelOptions":{ + "shape":"FunnelChartDataLabelOptions", + "documentation":"

The options that determine the presentation of the data labels.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The visual palette configuration of a FunnelChartVisual.

" + } + }, + "documentation":"

The configuration of a FunnelChartVisual.

" + }, + "FunnelChartDataLabelOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility option that determines if data labels are displayed.

" + }, + "CategoryLabelVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the category labels within the data labels.

" + }, + "MeasureLabelVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the measure labels within the data labels.

" + }, + "Position":{ + "shape":"DataLabelPosition", + "documentation":"

Determines the positioning of the data label relative to a section of the funnel.

" + }, + "LabelFontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

The font configuration for the data labels.

Only the FontSize attribute of the font configuration is used for data labels.

" + }, + "LabelColor":{ + "shape":"HexColor", + "documentation":"

The color of the data label text.

" + }, + "MeasureDataLabelStyle":{ + "shape":"FunnelChartMeasureDataLabelStyle", + "documentation":"

Determines the style of the metric labels.

" + } + }, + "documentation":"

The options that determine the presentation of the data labels.

" + }, + "FunnelChartDimensionFieldList":{ + "type":"list", + "member":{"shape":"DimensionField"}, + "max":1 + }, + "FunnelChartFieldWells":{ + "type":"structure", + "members":{ + "FunnelChartAggregatedFieldWells":{ + "shape":"FunnelChartAggregatedFieldWells", + "documentation":"

The field well configuration of a FunnelChartVisual.

" + } + }, + "documentation":"

The field well configuration of a FunnelChartVisual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "FunnelChartMeasureDataLabelStyle":{ + "type":"string", + "enum":[ + "VALUE_ONLY", + "PERCENTAGE_BY_FIRST_STAGE", + "PERCENTAGE_BY_PREVIOUS_STAGE", + "VALUE_AND_PERCENTAGE_BY_FIRST_STAGE", + "VALUE_AND_PERCENTAGE_BY_PREVIOUS_STAGE" + ] + }, + "FunnelChartMeasureFieldList":{ + "type":"list", + "member":{"shape":"MeasureField"}, + "max":1 + }, + "FunnelChartSortConfiguration":{ + "type":"structure", + "members":{ + "CategorySort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the category fields.

" + }, + "CategoryItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of categories displayed.

" + } + }, + "documentation":"

The sort configuration of a FunnelChartVisual.

" + }, + "FunnelChartVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers..

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"FunnelChartConfiguration", + "documentation":"

The configuration of a FunnelChartVisual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A funnel chart.

For more information, see Using funnel charts in the Amazon QuickSight User Guide.

" + }, + "GaugeChartArcConditionalFormatting":{ + "type":"structure", + "members":{ + "ForegroundColor":{ + "shape":"ConditionalFormattingColor", + "documentation":"

The conditional formatting of the arc foreground color.

" + } + }, + "documentation":"

The options that determine the presentation of the arc of a GaugeChartVisual.

" + }, + "GaugeChartConditionalFormatting":{ + "type":"structure", + "members":{ + "ConditionalFormattingOptions":{ + "shape":"GaugeChartConditionalFormattingOptionList", + "documentation":"

Conditional formatting options of a GaugeChartVisual.

" + } + }, + "documentation":"

The conditional formatting of a GaugeChartVisual.

" + }, + "GaugeChartConditionalFormattingOption":{ + "type":"structure", + "members":{ + "PrimaryValue":{ + "shape":"GaugeChartPrimaryValueConditionalFormatting", + "documentation":"

The conditional formatting for the primary value of a GaugeChartVisual.

" + }, + "Arc":{ + "shape":"GaugeChartArcConditionalFormatting", + "documentation":"

The options that determine the presentation of the arc of a GaugeChartVisual.

" + } + }, + "documentation":"

Conditional formatting options of a GaugeChartVisual.

" + }, + "GaugeChartConditionalFormattingOptionList":{ + "type":"list", + "member":{"shape":"GaugeChartConditionalFormattingOption"}, + "max":100 + }, + "GaugeChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"GaugeChartFieldWells", + "documentation":"

The field well configuration of a GaugeChartVisual.

" + }, + "GaugeChartOptions":{ + "shape":"GaugeChartOptions", + "documentation":"

The options that determine the presentation of the GaugeChartVisual.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The data label configuration of a GaugeChartVisual.

" + }, + "TooltipOptions":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip configuration of a GaugeChartVisual.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The visual palette configuration of a GaugeChartVisual.

" + } + }, + "documentation":"

The configuration of a GaugeChartVisual.

" + }, + "GaugeChartFieldWells":{ + "type":"structure", + "members":{ + "Values":{ + "shape":"MeasureFieldList", + "documentation":"

The value field wells of a GaugeChartVisual.

" + }, + "TargetValues":{ + "shape":"MeasureFieldList", + "documentation":"

The target value field wells of a GaugeChartVisual.

" + } + }, + "documentation":"

The field well configuration of a GaugeChartVisual.

" + }, + "GaugeChartOptions":{ + "type":"structure", + "members":{ + "PrimaryValueDisplayType":{ + "shape":"PrimaryValueDisplayType", + "documentation":"

The options that determine the primary value display type.

" + }, + "Comparison":{ + "shape":"ComparisonConfiguration", + "documentation":"

The comparison configuration of a GaugeChartVisual.

" + }, + "ArcAxis":{ + "shape":"ArcAxisConfiguration", + "documentation":"

The arc axis configuration of a GaugeChartVisual.

" + }, + "Arc":{ + "shape":"ArcConfiguration", + "documentation":"

The arc configuration of a GaugeChartVisual.

" + }, + "PrimaryValueFontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

The options that determine the primary value font configuration.

" + } + }, + "documentation":"

The options that determine the presentation of the GaugeChartVisual.

" + }, + "GaugeChartPrimaryValueConditionalFormatting":{ + "type":"structure", + "members":{ + "TextColor":{ + "shape":"ConditionalFormattingColor", + "documentation":"

The conditional formatting of the primary value text color.

" + }, + "Icon":{ + "shape":"ConditionalFormattingIcon", + "documentation":"

The conditional formatting of the primary value icon.

" + } + }, + "documentation":"

The conditional formatting for the primary value of a GaugeChartVisual.

" + }, + "GaugeChartVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"GaugeChartConfiguration", + "documentation":"

The configuration of a GaugeChartVisual.

" + }, + "ConditionalFormatting":{ + "shape":"GaugeChartConditionalFormatting", + "documentation":"

The conditional formatting of a GaugeChartVisual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + } + }, + "documentation":"

A gauge chart.

For more information, see Using gauge charts in the Amazon QuickSight User Guide.

" + }, "GenerateEmbedUrlForAnonymousUserRequest":{ "type":"structure", "required":[ @@ -7144,15 +12055,19 @@ }, "SessionTags":{ "shape":"SessionTagList", - "documentation":"

The session tags used for row-level security. Before you use this parameter, make sure that you have configured the relevant datasets using the DataSet$RowLevelPermissionTagConfiguration parameter so that session tags can be used to provide row-level security.

These are not the tags used for the Amazon Web Services resource tagging feature. For more information, see Using Row-Level Security (RLS) with Tags.

" + "documentation":"

The session tags used for row-level security. Before you use this parameter, make sure that you have configured the relevant datasets using the DataSet$RowLevelPermissionTagConfiguration parameter so that session tags can be used to provide row-level security.

These are not the tags used for the Amazon Web Services resource tagging feature. For more information, see Using Row-Level Security (RLS) with Tagsin the Amazon QuickSight User Guide.

" }, "AuthorizedResourceArns":{ "shape":"ArnList", - "documentation":"

The Amazon Resource Names for the Amazon QuickSight resources that the user is authorized to access during the lifetime of the session. If you choose Dashboard embedding experience, pass the list of dashboard ARNs in the account that you want the user to be able to view. Currently, you can pass up to 25 dashboard ARNs in each API call.

" + "documentation":"

The Amazon Resource Names (ARNs) for the Amazon QuickSight resources that the user is authorized to access during the lifetime of the session. If you choose Dashboard embedding experience, pass the list of dashboard ARNs in the account that you want the user to be able to view. Currently, you can pass up to 25 dashboard ARNs in each API call.

" }, "ExperienceConfiguration":{ "shape":"AnonymousUserEmbeddingExperienceConfiguration", - "documentation":"

The configuration of the experience you are embedding.

" + "documentation":"

The configuration of the experience that you are embedding.

" + }, + "AllowedDomains":{ + "shape":"StringList", + "documentation":"

The domains that you want to add to the allow list for access to the generated URL that is then embedded. This optional parameter overrides the static domains that are configured in the Manage QuickSight menu in the Amazon QuickSight console. Instead, it allows only the domains that you include in this parameter. You can list up to three domains or subdomains in each API call.

To include all subdomains under a specific domain to the allow list, use *. For example, https://*.sapp.amazon.com includes all subdomains under https://sapp.amazon.com.

" } } }, @@ -7161,7 +12076,8 @@ "required":[ "EmbedUrl", "Status", - "RequestId" + "RequestId", + "AnonymousUserArn" ], "members":{ "EmbedUrl":{ @@ -7176,6 +12092,10 @@ "RequestId":{ "shape":"String", "documentation":"

The Amazon Web Services request ID for this operation.

" + }, + "AnonymousUserArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) to use for the anonymous Amazon QuickSight user.

" } } }, @@ -7203,7 +12123,11 @@ }, "ExperienceConfiguration":{ "shape":"RegisteredUserEmbeddingExperienceConfiguration", - "documentation":"

The experience you are embedding. For registered users, you can embed Amazon QuickSight dashboards or the entire Amazon QuickSight console.

" + "documentation":"

The experience you are embedding. For registered users, you can embed Amazon QuickSight dashboards, Amazon QuickSight visuals, the Amazon QuickSight Q search bar, or the entire Amazon QuickSight console.

" + }, + "AllowedDomains":{ + "shape":"StringList", + "documentation":"

The domains that you want to add to the allow list for access to the generated URL that is then embedded. This optional parameter overrides the static domains that are configured in the Manage QuickSight menu in the Amazon QuickSight console. Instead, it allows only the domains that you include in this parameter. You can list up to three domains or subdomains in each API call.

To include all subdomains under a specific domain to the allow list, use *. For example, https://*.sapp.amazon.com includes all subdomains under https://sapp.amazon.com.

" } } }, @@ -7217,7 +12141,7 @@ "members":{ "EmbedUrl":{ "shape":"EmbeddingUrl", - "documentation":"

The embed URL for the Amazon QuickSight dashboard or console.

" + "documentation":"

The embed URL for the Amazon QuickSight dashboard, visual, Q search bar, or console.

" }, "Status":{ "shape":"StatusCode", @@ -7234,7 +12158,6 @@ "type":"structure", "required":[ "Name", - "CountryCode", "Columns" ], "members":{ @@ -7269,6 +12192,169 @@ "LATITUDE" ] }, + "GeospatialCoordinateBounds":{ + "type":"structure", + "required":[ + "North", + "South", + "West", + "East" + ], + "members":{ + "North":{ + "shape":"Latitude", + "documentation":"

The latitude of the north bound of the geospatial coordinate bounds.

" + }, + "South":{ + "shape":"Latitude", + "documentation":"

The latitude of the south bound of the geospatial coordinate bounds.

" + }, + "West":{ + "shape":"Longitude", + "documentation":"

The longitude of the west bound of the geospatial coordinate bounds.

" + }, + "East":{ + "shape":"Longitude", + "documentation":"

The longitude of the east bound of the geospatial coordinate bounds.

" + } + }, + "documentation":"

The bound options (north, south, west, east) of the geospatial window options.

" + }, + "GeospatialMapAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Geospatial":{ + "shape":"DimensionFieldList", + "documentation":"

The geospatial field wells of a geospatial map. Values are grouped by geospatial fields.

" + }, + "Values":{ + "shape":"MeasureFieldList", + "documentation":"

The size field wells of a geospatial map. Values are aggregated based on geospatial fields.

" + }, + "Colors":{ + "shape":"DimensionFieldList", + "documentation":"

The color field wells of a geospatial map.

" + } + }, + "documentation":"

The aggregated field wells for a geospatial map.

" + }, + "GeospatialMapConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"GeospatialMapFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip display setup of the visual.

" + }, + "WindowOptions":{ + "shape":"GeospatialWindowOptions", + "documentation":"

The window options of the geospatial map.

" + }, + "MapStyleOptions":{ + "shape":"GeospatialMapStyleOptions", + "documentation":"

The map style options of the geospatial map.

" + }, + "PointStyleOptions":{ + "shape":"GeospatialPointStyleOptions", + "documentation":"

The point style options of the geospatial map.

" + }, + "VisualPalette":{"shape":"VisualPalette"} + }, + "documentation":"

The configuration of a GeospatialMapVisual.

" + }, + "GeospatialMapFieldWells":{ + "type":"structure", + "members":{ + "GeospatialMapAggregatedFieldWells":{ + "shape":"GeospatialMapAggregatedFieldWells", + "documentation":"

The aggregated field well for a geospatial map.

" + } + }, + "documentation":"

The field wells of a GeospatialMapVisual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "GeospatialMapStyleOptions":{ + "type":"structure", + "members":{ + "BaseMapStyle":{ + "shape":"BaseMapStyleType", + "documentation":"

The base map style of the geospatial map.

" + } + }, + "documentation":"

The map style options of the geospatial map.

" + }, + "GeospatialMapVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers..

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"GeospatialMapConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + } + }, + "documentation":"

A geospatial map or a points on map visual.

For more information, see Creating point maps in the Amazon QuickSight User Guide.

" + }, + "GeospatialPointStyleOptions":{ + "type":"structure", + "members":{ + "SelectedPointStyle":{ + "shape":"GeospatialSelectedPointStyle", + "documentation":"

The selected point styles (point, cluster) of the geospatial map.

" + }, + "ClusterMarkerConfiguration":{ + "shape":"ClusterMarkerConfiguration", + "documentation":"

The cluster marker configuration of the geospatial point style.

" + } + }, + "documentation":"

The point style of the geospatial map.

" + }, + "GeospatialSelectedPointStyle":{ + "type":"string", + "enum":[ + "POINT", + "CLUSTER" + ] + }, + "GeospatialWindowOptions":{ + "type":"structure", + "members":{ + "Bounds":{ + "shape":"GeospatialCoordinateBounds", + "documentation":"

The bounds options (north, south, west, east) of the geospatial window options.

" + }, + "MapZoomMode":{ + "shape":"MapZoomMode", + "documentation":"

The map zoom modes (manual, auto) of the geospatial window options.

" + } + }, + "documentation":"

The window options of the geospatial map visual.

" + }, "GetDashboardEmbedUrlRequest":{ "type":"structure", "required":[ @@ -7284,7 +12370,7 @@ "locationName":"AwsAccountId" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard, also added to the Identity and Access Management (IAM) policy.

", "location":"uri", "locationName":"DashboardId" @@ -7333,7 +12419,7 @@ }, "AdditionalDashboardIds":{ "shape":"AdditionalDashboardIdList", - "documentation":"

A list of one or more dashboard IDs that you want to add to a session that includes anonymous users. The IdentityType parameter must be set to ANONYMOUS for this to work, because other identity types authenticate as Amazon QuickSight or IAM users. For example, if you set \"--dashboard-id dash_id1 --dashboard-id dash_id2 dash_id3 identity-type ANONYMOUS\", the session can access all three dashboards.

", + "documentation":"

A list of one or more dashboard IDs that you want anonymous users to have tempporary access to. Currently, the IdentityType parameter must be set to ANONYMOUS because other identity types authenticate as Amazon QuickSight or IAM users. For example, if you set \"--dashboard-id dash_id1 --dashboard-id dash_id2 dash_id3 identity-type ANONYMOUS\", the session can access all three dashboards.

", "location":"querystring", "locationName":"additional-dashboard-ids" } @@ -7406,6 +12492,154 @@ } } }, + "GlobalTableBorderOptions":{ + "type":"structure", + "members":{ + "UniformBorder":{ + "shape":"TableBorderOptions", + "documentation":"

Determines the options for uniform border.

" + }, + "SideSpecificBorder":{ + "shape":"TableSideBorderOptions", + "documentation":"

Determines the options for side specific border.

" + } + }, + "documentation":"

Determines the border options for a table visual.

" + }, + "GradientColor":{ + "type":"structure", + "members":{ + "Stops":{ + "shape":"GradientStopList", + "documentation":"

The list of gradient color stops.

" + } + }, + "documentation":"

Determines the gradient color settings.

" + }, + "GradientStop":{ + "type":"structure", + "required":["GradientOffset"], + "members":{ + "GradientOffset":{ + "shape":"Double", + "documentation":"

Determines gradient offset value.

" + }, + "DataValue":{ + "shape":"Double", + "documentation":"

Determines the data value.

", + "box":true + }, + "Color":{ + "shape":"HexColor", + "documentation":"

Determines the color.

" + } + }, + "documentation":"

Determines the gradient stop configuration.

" + }, + "GradientStopList":{ + "type":"list", + "member":{"shape":"GradientStop"}, + "max":100 + }, + "GridLayoutCanvasSizeOptions":{ + "type":"structure", + "members":{ + "ScreenCanvasSizeOptions":{ + "shape":"GridLayoutScreenCanvasSizeOptions", + "documentation":"

The options that determine the sizing of the canvas used in a grid layout.

" + } + }, + "documentation":"

Configuration options for the canvas of a grid layout.

" + }, + "GridLayoutConfiguration":{ + "type":"structure", + "required":["Elements"], + "members":{ + "Elements":{ + "shape":"GridLayoutElementList", + "documentation":"

The elements that are included in a grid layout.

" + }, + "CanvasSizeOptions":{"shape":"GridLayoutCanvasSizeOptions"} + }, + "documentation":"

The configuration for a grid layout. Also called a tiled layout.

Visuals snap to a grid with standard spacing and alignment. Dashboards are displayed as designed, with options to fit to screen or view at actual size.

" + }, + "GridLayoutElement":{ + "type":"structure", + "required":[ + "ElementId", + "ElementType", + "ColumnSpan", + "RowSpan" + ], + "members":{ + "ElementId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

A unique identifier for an element within a grid layout.

" + }, + "ElementType":{ + "shape":"LayoutElementType", + "documentation":"

The type of element.

" + }, + "ColumnIndex":{ + "shape":"GridLayoutElementColumnIndex", + "documentation":"

The column index for the upper left corner of an element.

" + }, + "ColumnSpan":{ + "shape":"GridLayoutElementColumnSpan", + "documentation":"

The width of a grid element expressed as a number of grid columns.

" + }, + "RowIndex":{ + "shape":"GridLayoutElementRowIndex", + "documentation":"

The row index for the upper left corner of an element.

" + }, + "RowSpan":{ + "shape":"GridLayoutElementRowSpan", + "documentation":"

The height of a grid element expressed as a number of grid rows.

" + } + }, + "documentation":"

An element within a grid layout.

" + }, + "GridLayoutElementColumnIndex":{ + "type":"integer", + "max":35, + "min":0 + }, + "GridLayoutElementColumnSpan":{ + "type":"integer", + "max":36, + "min":1 + }, + "GridLayoutElementList":{ + "type":"list", + "member":{"shape":"GridLayoutElement"}, + "max":430 + }, + "GridLayoutElementRowIndex":{ + "type":"integer", + "max":9009, + "min":0 + }, + "GridLayoutElementRowSpan":{ + "type":"integer", + "max":21, + "min":1 + }, + "GridLayoutScreenCanvasSizeOptions":{ + "type":"structure", + "required":["ResizeOption"], + "members":{ + "ResizeOption":{ + "shape":"ResizeOption", + "documentation":"

This value determines the layout behavior when the viewport is resized.

  • FIXED: A fixed width will be used when optimizing the layout. In the Amazon QuickSight console, this option is called Classic.

  • RESPONSIVE: The width of the canvas will be responsive and optimized to the view port. In the Amazon QuickSight console, this option is called Tiled.

" + }, + "OptimizedViewPortWidth":{ + "shape":"PixelLength", + "documentation":"

The width that the view port will be optimized for when the layout renders.

", + "box":true + } + }, + "documentation":"

The options that determine the sizing of the canvas used in a grid layout.

" + }, "Group":{ "type":"structure", "members":{ @@ -7503,21 +12737,354 @@ "max":1, "min":1 }, + "GroupsList":{ + "type":"list", + "member":{"shape":"String"} + }, + "GrowthRateComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Time" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Time":{ + "shape":"DimensionField", + "documentation":"

The time field that is used in a computation.

" + }, + "Value":{ + "shape":"MeasureField", + "documentation":"

The value field that is used in a computation.

" + }, + "PeriodSize":{ + "shape":"GrowthRatePeriodSize", + "documentation":"

The period size setup of a growth rate computation.

" + } + }, + "documentation":"

The growth rate computation configuration.

" + }, + "GrowthRatePeriodSize":{ + "type":"integer", + "max":52, + "min":2 + }, "GutterStyle":{ "type":"structure", "members":{ "Show":{ - "shape":"boolean", + "shape":"Boolean", "documentation":"

This Boolean value controls whether to display a gutter space between sheet tiles.

", "box":true } }, "documentation":"

The display options for gutter spacing between tiles on a sheet.

" }, + "HeaderFooterSectionConfiguration":{ + "type":"structure", + "required":[ + "SectionId", + "Layout" + ], + "members":{ + "SectionId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of the header or footer section.

" + }, + "Layout":{ + "shape":"SectionLayoutConfiguration", + "documentation":"

The layout configuration of the header or footer section.

" + }, + "Style":{ + "shape":"SectionStyle", + "documentation":"

The style options of a header or footer section.

" + } + }, + "documentation":"

The configuration of a header or footer section.

" + }, + "HeaderFooterSectionConfigurationList":{ + "type":"list", + "member":{"shape":"HeaderFooterSectionConfiguration"}, + "max":1 + }, + "HeatMapAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Rows":{ + "shape":"HeatMapDimensionFieldList", + "documentation":"

The rows field well of a heat map.

" + }, + "Columns":{ + "shape":"HeatMapDimensionFieldList", + "documentation":"

The columns field well of a heat map.

" + }, + "Values":{ + "shape":"HeatMapMeasureFieldList", + "documentation":"

The values field well of a heat map.

" + } + }, + "documentation":"

The aggregated field wells of a heat map.

" + }, + "HeatMapConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"HeatMapFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"HeatMapSortConfiguration", + "documentation":"

The sort configuration of a heat map.

" + }, + "RowLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options of the row that is displayed in a heat map.

" + }, + "ColumnLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options of the column that is displayed in a heat map.

" + }, + "ColorScale":{ + "shape":"ColorScale", + "documentation":"

The color options (gradient color, point of divergence) in a heat map.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The options that determine if visual data labels are displayed.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip display setup of the visual.

" + } + }, + "documentation":"

The configuration of a heat map.

" + }, + "HeatMapDimensionFieldList":{ + "type":"list", + "member":{"shape":"DimensionField"}, + "max":1 + }, + "HeatMapFieldWells":{ + "type":"structure", + "members":{ + "HeatMapAggregatedFieldWells":{ + "shape":"HeatMapAggregatedFieldWells", + "documentation":"

The aggregated field wells of a heat map.

" + } + }, + "documentation":"

The field well configuration of a heat map.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "HeatMapMeasureFieldList":{ + "type":"list", + "member":{"shape":"MeasureField"}, + "max":1 + }, + "HeatMapSortConfiguration":{ + "type":"structure", + "members":{ + "HeatMapRowSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The field sort configuration of the rows fields.

" + }, + "HeatMapColumnSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The column sort configuration for heat map for columns that aren't a part of a field well.

" + }, + "HeatMapRowItemsLimitConfiguration":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of rows that are displayed in a heat map.

" + }, + "HeatMapColumnItemsLimitConfiguration":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of columns that are displayed in a heat map.

" + } + }, + "documentation":"

The sort configuration of a heat map.

" + }, + "HeatMapVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"HeatMapConfiguration", + "documentation":"

The configuration of a heat map.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + } + }, + "documentation":"

A heat map.

For more information, see Using heat maps in the Amazon QuickSight User Guide.

" + }, "HexColor":{ "type":"string", "pattern":"^#[A-F0-9]{6}$" }, + "HexColorWithTransparency":{ + "type":"string", + "pattern":"^#[A-F0-9]{6}(?:[A-F0-9]{2})?$" + }, + "HierarchyId":{ + "type":"string", + "max":512, + "min":1 + }, + "HistogramAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Values":{ + "shape":"HistogramMeasureFieldList", + "documentation":"

The value field wells of a histogram. Values are aggregated by COUNT or DISTINCT_COUNT.

" + } + }, + "documentation":"

The field well configuration of a histogram.

" + }, + "HistogramBinOptions":{ + "type":"structure", + "members":{ + "SelectedBinType":{ + "shape":"HistogramBinType", + "documentation":"

The options that determine the selected bin type.

" + }, + "BinCount":{ + "shape":"BinCountOptions", + "documentation":"

The options that determine the bin count of a histogram.

" + }, + "BinWidth":{ + "shape":"BinWidthOptions", + "documentation":"

The options that determine the bin width of a histogram.

" + }, + "StartValue":{ + "shape":"Double", + "documentation":"

The options that determine the bin start value.

", + "box":true + } + }, + "documentation":"

The options that determine the presentation of histogram bins.

" + }, + "HistogramBinType":{ + "type":"string", + "enum":[ + "BIN_COUNT", + "BIN_WIDTH" + ] + }, + "HistogramConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"HistogramFieldWells", + "documentation":"

The field well configuration of a histogram.

" + }, + "XAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The options that determine the presentation of the x-axis.

" + }, + "XAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The options that determine the presentation of the x-axis label.

" + }, + "YAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The options that determine the presentation of the y-axis.

" + }, + "BinOptions":{ + "shape":"HistogramBinOptions", + "documentation":"

The options that determine the presentation of histogram bins.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The data label configuration of a histogram.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip configuration of a histogram.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The visual palette configuration of a histogram.

" + } + }, + "documentation":"

The configuration for a HistogramVisual.

" + }, + "HistogramFieldWells":{ + "type":"structure", + "members":{ + "HistogramAggregatedFieldWells":{ + "shape":"HistogramAggregatedFieldWells", + "documentation":"

The field well configuration of a histogram.

" + } + }, + "documentation":"

The field well configuration of a histogram.

" + }, + "HistogramMeasureFieldList":{ + "type":"list", + "member":{"shape":"MeasureField"}, + "max":1 + }, + "HistogramVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"HistogramConfiguration", + "documentation":"

The configuration for a HistogramVisual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + } + }, + "documentation":"

A histogram.

For more information, see Using histograms in the Amazon QuickSight User Guide.

" + }, + "HorizontalTextAlignment":{ + "type":"string", + "enum":[ + "LEFT", + "CENTER", + "RIGHT", + "AUTO" + ] + }, "Host":{ "type":"string", "max":256, @@ -7576,6 +13143,37 @@ "type":"list", "member":{"shape":"IAMPolicyAssignmentSummary"} }, + "Icon":{ + "type":"string", + "enum":[ + "CARET_UP", + "CARET_DOWN", + "PLUS", + "MINUS", + "ARROW_UP", + "ARROW_DOWN", + "ARROW_LEFT", + "ARROW_UP_LEFT", + "ARROW_DOWN_LEFT", + "ARROW_RIGHT", + "ARROW_UP_RIGHT", + "ARROW_DOWN_RIGHT", + "FACE_UP", + "FACE_DOWN", + "FACE_FLAT", + "ONE_BAR", + "TWO_BAR", + "THREE_BAR", + "CIRCLE", + "TRIANGLE", + "SQUARE", + "FLAG", + "THUMBS_UP", + "THUMBS_DOWN", + "CHECKMARK", + "X" + ] + }, "IdentityMap":{ "type":"map", "key":{"shape":"String"}, @@ -7801,11 +13399,79 @@ "max":2048, "min":1 }, + "InsightConfiguration":{ + "type":"structure", + "members":{ + "Computations":{ + "shape":"ComputationList", + "documentation":"

The computations configurations of the insight visual

" + }, + "CustomNarrative":{ + "shape":"CustomNarrativeOptions", + "documentation":"

The custom narrative of the insight visual.

" + } + }, + "documentation":"

The configuration of an insight visual.

" + }, + "InsightVisual":{ + "type":"structure", + "required":[ + "VisualId", + "DataSetIdentifier" + ], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "InsightConfiguration":{ + "shape":"InsightConfiguration", + "documentation":"

The configuration of an insight visual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "DataSetIdentifier":{ + "shape":"DataSetIdentifier", + "documentation":"

The dataset that is used in the insight visual.

" + } + }, + "documentation":"

An insight visual.

For more information, see Working with insights in the Amazon QuickSight User Guide.

" + }, "InstanceId":{ "type":"string", "max":64, "min":1 }, + "Integer":{"type":"integer"}, + "IntegerDefaultValueList":{ + "type":"list", + "member":{"shape":"SensitiveLongObject"}, + "max":50000 + }, + "IntegerDefaultValues":{ + "type":"structure", + "members":{ + "DynamicValue":{ + "shape":"DynamicDefaultValue", + "documentation":"

The dynamic value of the IntegerDefaultValues. Different defaults are displayed according to users, groups, and values mapping.

" + }, + "StaticValues":{ + "shape":"IntegerDefaultValueList", + "documentation":"

The static values of the IntegerDefaultValues.

" + } + }, + "documentation":"

The default values of the IntegerParameterDeclaration.

" + }, "IntegerParameter":{ "type":"structure", "required":[ @@ -7818,17 +13484,58 @@ "documentation":"

The name of the integer parameter.

" }, "Values":{ - "shape":"LongList", + "shape":"SensitiveLongList", "documentation":"

The values for the integer parameter.

" } }, "documentation":"

An integer parameter.

" }, + "IntegerParameterDeclaration":{ + "type":"structure", + "required":[ + "ParameterValueType", + "Name" + ], + "members":{ + "ParameterValueType":{ + "shape":"ParameterValueType", + "documentation":"

The value type determines whether the parameter is a single-value or multi-value parameter.

" + }, + "Name":{ + "shape":"ParameterName", + "documentation":"

The name of the parameter that is being declared.

" + }, + "DefaultValues":{ + "shape":"IntegerDefaultValues", + "documentation":"

The default values of a parameter. If the parameter is a single-value parameter, a maximum of one default value can be provided.

" + }, + "ValueWhenUnset":{ + "shape":"IntegerValueWhenUnsetConfiguration", + "documentation":"

A parameter declaration for the Integer data type.

" + } + }, + "documentation":"

A parameter declaration for the Integer data type.

" + }, "IntegerParameterList":{ "type":"list", "member":{"shape":"IntegerParameter"}, "max":100 }, + "IntegerValueWhenUnsetConfiguration":{ + "type":"structure", + "members":{ + "ValueWhenUnsetOption":{ + "shape":"ValueWhenUnsetOption", + "documentation":"

The built-in options for default values. The value can be one of the following:

  • RECOMMENDED: The recommended value.

  • NULL: The NULL value.

" + }, + "CustomValue":{ + "shape":"SensitiveLong", + "documentation":"

A custom value that's used when the value of a parameter isn't set.

", + "box":true + } + }, + "documentation":"

A parameter declaration for the Integer data type.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, "InternalFailureException":{ "type":"structure", "members":{ @@ -7869,6 +13576,19 @@ "error":{"httpStatusCode":400}, "exception":true }, + "InvalidRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this request.

" + } + }, + "documentation":"

You don't have this feature activated for your account. To fix this issue, contact Amazon Web Services support.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "IpRestrictionRuleDescription":{ "type":"string", "max":150, @@ -7879,6 +13599,21 @@ "key":{"shape":"CIDR"}, "value":{"shape":"IpRestrictionRuleDescription"} }, + "ItemsLimitConfiguration":{ + "type":"structure", + "members":{ + "ItemsLimit":{ + "shape":"Long", + "documentation":"

The limit on how many items of a field are showed in the chart. For example, the number of slices that are displayed in a pie chart.

", + "box":true + }, + "OtherCategories":{ + "shape":"OtherCategories", + "documentation":"

The Show other of an axis in the chart. Choose one of the following options:

  • INCLUDE

  • EXCLUDE

" + } + }, + "documentation":"

The limit configuration of the visual display for an axis.

" + }, "JiraParameters":{ "type":"structure", "required":["SiteBaseUrl"], @@ -7946,6 +13681,280 @@ "RIGHT" ] }, + "KPIConditionalFormatting":{ + "type":"structure", + "members":{ + "ConditionalFormattingOptions":{ + "shape":"KPIConditionalFormattingOptionList", + "documentation":"

The conditional formatting options of a KPI visual.

" + } + }, + "documentation":"

The conditional formatting of a KPI visual.

" + }, + "KPIConditionalFormattingOption":{ + "type":"structure", + "members":{ + "PrimaryValue":{ + "shape":"KPIPrimaryValueConditionalFormatting", + "documentation":"

The conditional formatting for the primary value of a KPI visual.

" + }, + "ProgressBar":{ + "shape":"KPIProgressBarConditionalFormatting", + "documentation":"

The conditional formatting for the progress bar of a KPI visual.

" + } + }, + "documentation":"

The conditional formatting options of a KPI visual.

" + }, + "KPIConditionalFormattingOptionList":{ + "type":"list", + "member":{"shape":"KPIConditionalFormattingOption"}, + "max":100 + }, + "KPIConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"KPIFieldWells", + "documentation":"

The field well configuration of a KPI visual.

" + }, + "SortConfiguration":{ + "shape":"KPISortConfiguration", + "documentation":"

The sort configuration of a KPI visual.

" + }, + "KPIOptions":{ + "shape":"KPIOptions", + "documentation":"

The options that determine the presentation of a KPI visual.

" + } + }, + "documentation":"

The configuration of a KPI visual.

" + }, + "KPIFieldWells":{ + "type":"structure", + "members":{ + "Values":{ + "shape":"MeasureFieldList", + "documentation":"

The value field wells of a KPI visual.

" + }, + "TargetValues":{ + "shape":"MeasureFieldList", + "documentation":"

The target value field wells of a KPI visual.

" + }, + "TrendGroups":{ + "shape":"DimensionFieldList", + "documentation":"

The trend group field wells of a KPI visual.

" + } + }, + "documentation":"

The field well configuration of a KPI visual.

" + }, + "KPIOptions":{ + "type":"structure", + "members":{ + "ProgressBar":{ + "shape":"ProgressBarOptions", + "documentation":"

The options that determine the presentation of the progress bar of a KPI visual.

" + }, + "TrendArrows":{ + "shape":"TrendArrowOptions", + "documentation":"

The options that determine the presentation of trend arrows in a KPI visual.

" + }, + "SecondaryValue":{ + "shape":"SecondaryValueOptions", + "documentation":"

The options that determine the presentation of the secondary value of a KPI visual.

" + }, + "Comparison":{ + "shape":"ComparisonConfiguration", + "documentation":"

The comparison configuration of a KPI visual.

" + }, + "PrimaryValueDisplayType":{ + "shape":"PrimaryValueDisplayType", + "documentation":"

The options that determine the primary value display type.

" + }, + "PrimaryValueFontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

The options that determine the primary value font configuration.

" + }, + "SecondaryValueFontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

The options that determine the secondary value font configuration.

" + } + }, + "documentation":"

The options that determine the presentation of a KPI visual.

" + }, + "KPIPrimaryValueConditionalFormatting":{ + "type":"structure", + "members":{ + "TextColor":{ + "shape":"ConditionalFormattingColor", + "documentation":"

The conditional formatting of the primary value's text color.

" + }, + "Icon":{ + "shape":"ConditionalFormattingIcon", + "documentation":"

The conditional formatting of the primary value's icon.

" + } + }, + "documentation":"

The conditional formatting for the primary value of a KPI visual.

" + }, + "KPIProgressBarConditionalFormatting":{ + "type":"structure", + "members":{ + "ForegroundColor":{ + "shape":"ConditionalFormattingColor", + "documentation":"

The conditional formatting of the progress bar's foreground color.

" + } + }, + "documentation":"

The conditional formatting for the progress bar of a KPI visual.

" + }, + "KPISortConfiguration":{ + "type":"structure", + "members":{ + "TrendGroupSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the trend group fields.

" + } + }, + "documentation":"

The sort configuration of a KPI visual.

" + }, + "KPIVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"KPIConfiguration", + "documentation":"

The configuration of a KPI visual.

" + }, + "ConditionalFormatting":{ + "shape":"KPIConditionalFormatting", + "documentation":"

The conditional formatting of a KPI visual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A key performance indicator (KPI).

For more information, see Using KPIs in the Amazon QuickSight User Guide.

" + }, + "LabelOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not the label is visible.

" + }, + "FontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

The font configuration of the label.

" + }, + "CustomLabel":{ + "shape":"String", + "documentation":"

The text for the label.

" + } + }, + "documentation":"

The share label options for the labels.

" + }, + "Latitude":{ + "type":"double", + "max":90, + "min":-90 + }, + "Layout":{ + "type":"structure", + "required":["Configuration"], + "members":{ + "Configuration":{ + "shape":"LayoutConfiguration", + "documentation":"

The configuration that determines what the type of layout for a sheet.

" + } + }, + "documentation":"

A Layout defines the placement of elements within a sheet.

For more information, see Types of layout in the Amazon QuickSight User Guide.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "LayoutConfiguration":{ + "type":"structure", + "members":{ + "GridLayout":{ + "shape":"GridLayoutConfiguration", + "documentation":"

A type of layout that can be used on a sheet. In a grid layout, visuals snap to a grid with standard spacing and alignment. Dashboards are displayed as designed, with options to fit to screen or view at actual size. A grid layout can be configured to behave in one of two ways when the viewport is resized: FIXED or RESPONSIVE.

" + }, + "FreeFormLayout":{ + "shape":"FreeFormLayoutConfiguration", + "documentation":"

A free-form is optimized for a fixed width and has more control over the exact placement of layout elements.

" + }, + "SectionBasedLayout":{ + "shape":"SectionBasedLayoutConfiguration", + "documentation":"

A section based layout organizes visuals into multiple sections and has customized header, footer and page break.

" + } + }, + "documentation":"

The configuration that determines what the type of layout will be used on a sheet.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "LayoutElementType":{ + "type":"string", + "enum":[ + "VISUAL", + "FILTER_CONTROL", + "PARAMETER_CONTROL", + "TEXT_BOX" + ] + }, + "LayoutList":{ + "type":"list", + "member":{"shape":"Layout"}, + "max":1, + "min":1 + }, + "LegendOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not the legend is visible.

" + }, + "Title":{ + "shape":"LabelOptions", + "documentation":"

The custom title for the legend.

" + }, + "Position":{ + "shape":"LegendPosition", + "documentation":"

The positions for the legend. Choose one of the following options:

  • AUTO

  • RIGHT

  • BOTTOM

  • LEFT

" + }, + "Width":{ + "shape":"PixelLength", + "documentation":"

The width of the legend. If this value is omitted, a default width is used when rendering.

" + }, + "Height":{ + "shape":"PixelLength", + "documentation":"

The height of the legend. If this value is omitted, a default height is used when rendering.

" + } + }, + "documentation":"

The options for the legend setup of a visual.

" + }, + "LegendPosition":{ + "type":"string", + "enum":[ + "AUTO", + "RIGHT", + "BOTTOM", + "TOP" + ] + }, + "Length":{ + "type":"string", + "documentation":"String based length that is composed of value and unit" + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -7963,6 +13972,301 @@ "error":{"httpStatusCode":409}, "exception":true }, + "LineChartAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Category":{ + "shape":"DimensionFieldList", + "documentation":"

The category field wells of a line chart. Values are grouped by category fields.

" + }, + "Values":{ + "shape":"MeasureFieldList", + "documentation":"

The value field wells of a line chart. Values are aggregated based on categories.

" + }, + "Colors":{ + "shape":"DimensionFieldList", + "documentation":"

The color field wells of a line chart. Values are grouped by category fields.

" + }, + "SmallMultiples":{ + "shape":"SmallMultiplesDimensionFieldList", + "documentation":"

The small multiples field well of a line chart.

" + } + }, + "documentation":"

The field well configuration of a line chart.

" + }, + "LineChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"LineChartFieldWells", + "documentation":"

The field well configuration of a line chart.

" + }, + "SortConfiguration":{ + "shape":"LineChartSortConfiguration", + "documentation":"

The sort configuration of a line chart.

" + }, + "ForecastConfigurations":{ + "shape":"ForecastConfigurationList", + "documentation":"

The forecast configuration of a line chart.

" + }, + "Type":{ + "shape":"LineChartType", + "documentation":"

Determines the type of the line chart.

" + }, + "SmallMultiplesOptions":{ + "shape":"SmallMultiplesOptions", + "documentation":"

The small multiples setup for the visual.

" + }, + "XAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The options that determine the presentation of the x-axis.

" + }, + "XAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The options that determine the presentation of the x-axis label.

" + }, + "PrimaryYAxisDisplayOptions":{ + "shape":"LineSeriesAxisDisplayOptions", + "documentation":"

The series axis configuration of a line chart.

" + }, + "PrimaryYAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The options that determine the presentation of the y-axis label.

" + }, + "SecondaryYAxisDisplayOptions":{ + "shape":"LineSeriesAxisDisplayOptions", + "documentation":"

The series axis configuration of a line chart.

" + }, + "SecondaryYAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The options that determine the presentation of the secondary y-axis label.

" + }, + "DefaultSeriesSettings":{ + "shape":"LineChartDefaultSeriesSettings", + "documentation":"

The options that determine the default presentation of all line series in LineChartVisual.

" + }, + "Series":{ + "shape":"SeriesItemList", + "documentation":"

The series item configuration of a line chart.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend configuration of a line chart.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The data label configuration of a line chart.

" + }, + "ReferenceLines":{ + "shape":"ReferenceLineList", + "documentation":"

The reference lines configuration of a line chart.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip configuration of a line chart.

" + }, + "ContributionAnalysisDefaults":{ + "shape":"ContributionAnalysisDefaultList", + "documentation":"

The default configuration of a line chart's contribution analysis.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The visual palette configuration of a line chart.

" + } + }, + "documentation":"

The configuration of a line chart.

" + }, + "LineChartDefaultSeriesSettings":{ + "type":"structure", + "members":{ + "AxisBinding":{ + "shape":"AxisBinding", + "documentation":"

The axis to which you are binding all line series to.

" + }, + "LineStyleSettings":{ + "shape":"LineChartLineStyleSettings", + "documentation":"

Line styles options for all line series in the visual.

" + }, + "MarkerStyleSettings":{ + "shape":"LineChartMarkerStyleSettings", + "documentation":"

Marker styles options for all line series in the visual.

" + } + }, + "documentation":"

The options that determine the default presentation of all line series in LineChartVisual.

" + }, + "LineChartFieldWells":{ + "type":"structure", + "members":{ + "LineChartAggregatedFieldWells":{ + "shape":"LineChartAggregatedFieldWells", + "documentation":"

The field well configuration of a line chart.

" + } + }, + "documentation":"

The field well configuration of a line chart.

" + }, + "LineChartLineStyle":{ + "type":"string", + "enum":[ + "SOLID", + "DOTTED", + "DASHED" + ] + }, + "LineChartLineStyleSettings":{ + "type":"structure", + "members":{ + "LineVisibility":{ + "shape":"Visibility", + "documentation":"

Configuration option that determines whether to show the line for the series.

" + }, + "LineInterpolation":{ + "shape":"LineInterpolation", + "documentation":"

Interpolation style for line series.

  • LINEAR: Show as default, linear style.

  • SMOOTH: Show as a smooth curve.

  • STEPPED: Show steps in line.

" + }, + "LineStyle":{ + "shape":"LineChartLineStyle", + "documentation":"

Line style for line series.

  • SOLID: Show as a solid line.

  • DOTTED: Show as a dotted line.

  • DASHED: Show as a dashed line.

" + }, + "LineWidth":{ + "shape":"PixelLength", + "documentation":"

Width that determines the line thickness.

" + } + }, + "documentation":"

Line styles options for a line series in LineChartVisual.

" + }, + "LineChartMarkerShape":{ + "type":"string", + "enum":[ + "CIRCLE", + "TRIANGLE", + "SQUARE", + "DIAMOND", + "ROUNDED_SQUARE" + ] + }, + "LineChartMarkerStyleSettings":{ + "type":"structure", + "members":{ + "MarkerVisibility":{ + "shape":"Visibility", + "documentation":"

Configuration option that determines whether to show the markers in the series.

" + }, + "MarkerShape":{ + "shape":"LineChartMarkerShape", + "documentation":"

Shape option for markers in the series.

  • CIRCLE: Show marker as a circle.

  • TRIANGLE: Show marker as a triangle.

  • SQUARE: Show marker as a square.

  • DIAMOND: Show marker as a diamond.

  • ROUNDED_SQUARE: Show marker as a rounded square.

" + }, + "MarkerSize":{ + "shape":"PixelLength", + "documentation":"

Size of marker in the series.

" + }, + "MarkerColor":{ + "shape":"HexColor", + "documentation":"

Color of marker in the series.

" + } + }, + "documentation":"

Marker styles options for a line series in LineChartVisual.

" + }, + "LineChartSeriesSettings":{ + "type":"structure", + "members":{ + "LineStyleSettings":{ + "shape":"LineChartLineStyleSettings", + "documentation":"

Line styles options for a line series in LineChartVisual.

" + }, + "MarkerStyleSettings":{ + "shape":"LineChartMarkerStyleSettings", + "documentation":"

Marker styles options for a line series in LineChartVisual.

" + } + }, + "documentation":"

The options that determine the presentation of a line series in the visual

" + }, + "LineChartSortConfiguration":{ + "type":"structure", + "members":{ + "CategorySort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the category fields.

" + }, + "CategoryItemsLimitConfiguration":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of categories that are displayed in a line chart.

" + }, + "ColorItemsLimitConfiguration":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of lines that are displayed in a line chart.

" + }, + "SmallMultiplesSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the small multiples field.

" + }, + "SmallMultiplesLimitConfiguration":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of small multiples panels that are displayed.

" + } + }, + "documentation":"

The sort configuration of a line chart.

" + }, + "LineChartType":{ + "type":"string", + "enum":[ + "LINE", + "AREA", + "STACKED_AREA" + ] + }, + "LineChartVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"LineChartConfiguration", + "documentation":"

The configuration of a line chart.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A line chart.

For more information, see Using line charts in the Amazon QuickSight User Guide.

" + }, + "LineInterpolation":{ + "type":"string", + "enum":[ + "LINEAR", + "SMOOTH", + "STEPPED" + ] + }, + "LineSeriesAxisDisplayOptions":{ + "type":"structure", + "members":{ + "AxisOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The options that determine the presentation of the line series axis.

" + }, + "MissingDataConfigurations":{ + "shape":"MissingDataConfigurationList", + "documentation":"

The configuration options that determine how missing data is treated during the rendering of a line chart.

" + } + }, + "documentation":"

The series axis configuration of a line chart.

" + }, "LinkSharingConfiguration":{ "type":"structure", "members":{ @@ -8020,6 +14324,44 @@ } } }, + "ListControlDisplayOptions":{ + "type":"structure", + "members":{ + "SearchOptions":{ + "shape":"ListControlSearchOptions", + "documentation":"

The configuration of the search options in a list control.

" + }, + "SelectAllOptions":{ + "shape":"ListControlSelectAllOptions", + "documentation":"

The configuration of the Select all options in a list control.

" + }, + "TitleOptions":{ + "shape":"LabelOptions", + "documentation":"

The options to configure the title visibility, name, and font size.

" + } + }, + "documentation":"

The display options of a control.

" + }, + "ListControlSearchOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility configuration of the search options in a list control.

" + } + }, + "documentation":"

The configuration of the search options in a list control.

" + }, + "ListControlSelectAllOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility configuration of the Select all options in a list control.

" + } + }, + "documentation":"

The configuration of the Select all options in a list control.

" + }, "ListDashboardVersionsRequest":{ "type":"structure", "required":[ @@ -8034,7 +14376,7 @@ "locationName":"AwsAccountId" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

", "location":"uri", "locationName":"DashboardId" @@ -8630,7 +14972,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

A pagination token that can be used in a subsequent request.

", + "documentation":"

A unique pagination token that can be used in a subsequent request. You will receive a pagination token in the response body of a previous ListNameSpaces API call if there is more data that can be returned. To receive the data, make another ListNamespaces API call with the returned token to retrieve the next page of data. Each token is valid for 24 hours. If you try to make a ListNamespaces API call with an expired token, you will receive a HTTP 400 InvalidNextTokenException error.

", "location":"querystring", "locationName":"next-token" }, @@ -8652,7 +14994,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

A pagination token that can be used in a subsequent request.

" + "documentation":"

A unique pagination token that can be used in a subsequent request. Receiving NextToken in your response inticates that there is more data that can be returned. To receive the data, make another ListNamespaces API call with the returned token to retrieve the next page of data. Each token is valid for 24 hours. If you try to make a ListNamespaces API call with an expired token, you will receive a HTTP 400 InvalidNextTokenException error.

" }, "RequestId":{ "shape":"String", @@ -8709,7 +15051,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

", "location":"uri", "locationName":"TemplateId" @@ -8765,7 +15107,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

", "location":"uri", "locationName":"TemplateId" @@ -8868,7 +15210,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

", "location":"uri", "locationName":"ThemeId" @@ -8924,7 +15266,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

", "location":"uri", "locationName":"ThemeId" @@ -9138,6 +15480,27 @@ } } }, + "LoadingAnimation":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility configuration of LoadingAnimation.

" + } + }, + "documentation":"

The configuration of loading animation in free-form layout.

" + }, + "LocalNavigationConfiguration":{ + "type":"structure", + "required":["TargetSheetId"], + "members":{ + "TargetSheetId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The sheet that is targeted for navigation in the same analysis.

" + } + }, + "documentation":"

The navigation configuration for CustomActionNavigationOperation.

" + }, "LogicalTable":{ "type":"structure", "required":[ @@ -9197,9 +15560,34 @@ "documentation":"

Information about the source of a logical table. This is a variant type structure. For this structure to be valid, only one of the attributes can be non-null.

" }, "Long":{"type":"long"}, - "LongList":{ - "type":"list", - "member":{"shape":"Long"} + "LongFormatText":{ + "type":"structure", + "members":{ + "PlainText":{ + "shape":"LongPlainText", + "documentation":"

Plain text format.

" + }, + "RichText":{ + "shape":"LongRichText", + "documentation":"

Rich text. Examples of rich text include bold, underline, and italics.

" + } + }, + "documentation":"

The text format for a subtitle.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "LongPlainText":{ + "type":"string", + "max":1024, + "min":1 + }, + "LongRichText":{ + "type":"string", + "max":2048, + "min":1 + }, + "Longitude":{ + "type":"double", + "max":1800, + "min":-1800 }, "ManifestFileLocation":{ "type":"structure", @@ -9219,11 +15607,18 @@ }, "documentation":"

Amazon S3 manifest file location.

" }, + "MapZoomMode":{ + "type":"string", + "enum":[ + "AUTO", + "MANUAL" + ] + }, "MarginStyle":{ "type":"structure", "members":{ "Show":{ - "shape":"boolean", + "shape":"Boolean", "documentation":"

This Boolean value controls whether to display sheet margins.

", "box":true } @@ -9258,6 +15653,81 @@ "max":100, "min":1 }, + "MaximumLabelType":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the maximum label.

" + } + }, + "documentation":"

The maximum label of a data path label.

" + }, + "MaximumMinimumComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Time", + "Type" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Time":{ + "shape":"DimensionField", + "documentation":"

The time field that is used in a computation.

" + }, + "Value":{ + "shape":"MeasureField", + "documentation":"

The value field that is used in a computation.

" + }, + "Type":{ + "shape":"MaximumMinimumComputationType", + "documentation":"

The type of computation. Choose one of the following options:

  • MAXIMUM: A maximum computation.

  • MINIMUM: A minimum computation.

" + } + }, + "documentation":"

The maximum and minimum computation configuration.

" + }, + "MaximumMinimumComputationType":{ + "type":"string", + "enum":[ + "MAXIMUM", + "MINIMUM" + ] + }, + "MeasureField":{ + "type":"structure", + "members":{ + "NumericalMeasureField":{ + "shape":"NumericalMeasureField", + "documentation":"

The measure type field with numerical type columns.

" + }, + "CategoricalMeasureField":{ + "shape":"CategoricalMeasureField", + "documentation":"

The measure type field with categorical type columns.

" + }, + "DateMeasureField":{ + "shape":"DateMeasureField", + "documentation":"

The measure type field with date type columns.

" + }, + "CalculatedMeasureField":{ + "shape":"CalculatedMeasureField", + "documentation":"

The calculated measure field only used in pivot tables.

" + } + }, + "documentation":"

The measure (metric) type field.

" + }, + "MeasureFieldList":{ + "type":"list", + "member":{"shape":"MeasureField"}, + "max":200 + }, "MemberIdArnPair":{ "type":"structure", "members":{ @@ -9280,6 +15750,71 @@ "DATASET" ] }, + "MetricComparisonComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Time", + "FromValue", + "TargetValue" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Time":{ + "shape":"DimensionField", + "documentation":"

The time field that is used in a computation.

" + }, + "FromValue":{ + "shape":"MeasureField", + "documentation":"

The field that is used in a metric comparison from value setup.

" + }, + "TargetValue":{ + "shape":"MeasureField", + "documentation":"

The field that is used in a metric comparison to value setup.

" + } + }, + "documentation":"

The metric comparison computation configuration.

" + }, + "MinimumLabelType":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the minimum label.

" + } + }, + "documentation":"

The minimum label of a data path label.

" + }, + "MissingDataConfiguration":{ + "type":"structure", + "members":{ + "TreatmentOption":{ + "shape":"MissingDataTreatmentOption", + "documentation":"

The treatment option that determines how missing data should be rendered. Choose from the following options:

  • INTERPOLATE: Interpolate missing values between the prior and the next known value.

  • SHOW_AS_ZERO: Show missing values as the value 0.

  • SHOW_AS_BLANK: Display a blank space when rendering missing data.

" + } + }, + "documentation":"

The configuration options that determine how missing data is treated during the rendering of a line chart.

" + }, + "MissingDataConfigurationList":{ + "type":"list", + "member":{"shape":"MissingDataConfiguration"}, + "max":100 + }, + "MissingDataTreatmentOption":{ + "type":"string", + "enum":[ + "INTERPOLATE", + "SHOW_AS_ZERO", + "SHOW_AS_BLANK" + ] + }, "MySqlParameters":{ "type":"structure", "required":[ @@ -9373,11 +15908,365 @@ "type":"list", "member":{"shape":"NamespaceInfoV2"} }, + "NarrativeString":{ + "type":"string", + "max":150000 + }, + "NegativeValueConfiguration":{ + "type":"structure", + "required":["DisplayMode"], + "members":{ + "DisplayMode":{ + "shape":"NegativeValueDisplayMode", + "documentation":"

Determines the display mode of the negative value configuration.

" + } + }, + "documentation":"

The options that determine the negative value configuration.

" + }, + "NegativeValueDisplayMode":{ + "type":"string", + "enum":[ + "POSITIVE", + "NEGATIVE" + ] + }, "NonEmptyString":{ "type":"string", "pattern":".*\\S.*" }, + "NullString":{ + "type":"string", + "max":128, + "min":1, + "sensitive":true + }, + "NullValueFormatConfiguration":{ + "type":"structure", + "required":["NullString"], + "members":{ + "NullString":{ + "shape":"NullString", + "documentation":"

Determines the null string of null values.

" + } + }, + "documentation":"

The options that determine the null value format configuration.

" + }, "NullableBoolean":{"type":"boolean"}, + "NumberDisplayFormatConfiguration":{ + "type":"structure", + "members":{ + "Prefix":{ + "shape":"Prefix", + "documentation":"

Determines the prefix value of the number format.

" + }, + "Suffix":{ + "shape":"Suffix", + "documentation":"

Determines the suffix value of the number format.

" + }, + "SeparatorConfiguration":{ + "shape":"NumericSeparatorConfiguration", + "documentation":"

The options that determine the numeric separator configuration.

" + }, + "DecimalPlacesConfiguration":{ + "shape":"DecimalPlacesConfiguration", + "documentation":"

The option that determines the decimal places configuration.

" + }, + "NumberScale":{ + "shape":"NumberScale", + "documentation":"

Determines the number scale value of the number format.

" + }, + "NegativeValueConfiguration":{ + "shape":"NegativeValueConfiguration", + "documentation":"

The options that determine the negative value configuration.

" + }, + "NullValueFormatConfiguration":{ + "shape":"NullValueFormatConfiguration", + "documentation":"

The options that determine the null value format configuration.

" + } + }, + "documentation":"

The options that determine the number display format configuration.

" + }, + "NumberFormatConfiguration":{ + "type":"structure", + "members":{ + "FormatConfiguration":{ + "shape":"NumericFormatConfiguration", + "documentation":"

The options that determine the numeric format configuration.

" + } + }, + "documentation":"

Formatting configuration for number fields.

" + }, + "NumberScale":{ + "type":"string", + "enum":[ + "NONE", + "AUTO", + "THOUSANDS", + "MILLIONS", + "BILLIONS", + "TRILLIONS" + ] + }, + "NumericAxisOptions":{ + "type":"structure", + "members":{ + "Scale":{ + "shape":"AxisScale", + "documentation":"

The scale setup of a numeric axis.

" + }, + "Range":{ + "shape":"AxisDisplayRange", + "documentation":"

The range setup of a numeric axis.

" + } + }, + "documentation":"

The options for an axis with a numeric field.

" + }, + "NumericEqualityDrillDownFilter":{ + "type":"structure", + "required":[ + "Column", + "Value" + ], + "members":{ + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "Value":{ + "shape":"Double", + "documentation":"

The value of the double input numeric drill down filter.

" + } + }, + "documentation":"

The category drill down filter.

" + }, + "NumericEqualityFilter":{ + "type":"structure", + "required":[ + "FilterId", + "Column", + "MatchOperator", + "NullOption" + ], + "members":{ + "FilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

An identifier that uniquely identifies a filter within a dashboard, analysis, or template.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "Value":{ + "shape":"Double", + "documentation":"

The input value.

", + "box":true + }, + "SelectAllOptions":{ + "shape":"NumericFilterSelectAllOptions", + "documentation":"

Select all of the values. Null is not the assigned value of select all.

  • FILTER_ALL_VALUES

" + }, + "MatchOperator":{ + "shape":"NumericEqualityMatchOperator", + "documentation":"

The match operator that is used to determine if a filter should be applied.

" + }, + "AggregationFunction":{ + "shape":"AggregationFunction", + "documentation":"

The aggregation function of the filter.

" + }, + "ParameterName":{ + "shape":"ParameterName", + "documentation":"

The parameter whose value should be used for the filter value.

" + }, + "NullOption":{ + "shape":"FilterNullOption", + "documentation":"

This option determines how null values should be treated when filtering data.

  • ALL_VALUES: Include null values in filtered results.

  • NULLS_ONLY: Only include null values in filtered results.

  • NON_NULLS_ONLY: Exclude null values from filtered results.

" + } + }, + "documentation":"

A NumericEqualityFilter filters values that are equal to the specified value.

" + }, + "NumericEqualityMatchOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "DOES_NOT_EQUAL" + ] + }, + "NumericFilterSelectAllOptions":{ + "type":"string", + "enum":["FILTER_ALL_VALUES"] + }, + "NumericFormatConfiguration":{ + "type":"structure", + "members":{ + "NumberDisplayFormatConfiguration":{ + "shape":"NumberDisplayFormatConfiguration", + "documentation":"

The options that determine the number display format configuration.

" + }, + "CurrencyDisplayFormatConfiguration":{ + "shape":"CurrencyDisplayFormatConfiguration", + "documentation":"

The options that determine the currency display format configuration.

" + }, + "PercentageDisplayFormatConfiguration":{ + "shape":"PercentageDisplayFormatConfiguration", + "documentation":"

The options that determine the percentage display format configuration.

" + } + }, + "documentation":"

The options that determine the numeric format configuration.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "NumericRangeFilter":{ + "type":"structure", + "required":[ + "FilterId", + "Column", + "NullOption" + ], + "members":{ + "FilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

An identifier that uniquely identifies a filter within a dashboard, analysis, or template.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "IncludeMinimum":{ + "shape":"Boolean", + "documentation":"

Determines whether the minimum value in the filter value range should be included in the filtered results.

", + "box":true + }, + "IncludeMaximum":{ + "shape":"Boolean", + "documentation":"

Determines whether the maximum value in the filter value range should be included in the filtered results.

", + "box":true + }, + "RangeMinimum":{ + "shape":"NumericRangeFilterValue", + "documentation":"

The minimum value for the filter value range.

", + "box":true + }, + "RangeMaximum":{ + "shape":"NumericRangeFilterValue", + "documentation":"

The maximum value for the filter value range.

", + "box":true + }, + "SelectAllOptions":{ + "shape":"NumericFilterSelectAllOptions", + "documentation":"

Select all of the values. Null is not the assigned value of select all.

  • FILTER_ALL_VALUES

" + }, + "AggregationFunction":{ + "shape":"AggregationFunction", + "documentation":"

The aggregation function of the filter.

" + }, + "NullOption":{ + "shape":"FilterNullOption", + "documentation":"

This option determines how null values should be treated when filtering data.

  • ALL_VALUES: Include null values in filtered results.

  • NULLS_ONLY: Only include null values in filtered results.

  • NON_NULLS_ONLY: Exclude null values from filtered results.

" + } + }, + "documentation":"

A NumericRangeFilter filters values that are within the value range.

" + }, + "NumericRangeFilterValue":{ + "type":"structure", + "members":{ + "StaticValue":{ + "shape":"Double", + "documentation":"

The static value of the numeric range filter.

", + "box":true + }, + "Parameter":{ + "shape":"ParameterName", + "documentation":"

The parameter that is used in the numeric range.

" + } + }, + "documentation":"

The value input pf the numeric range filter.

" + }, + "NumericSeparatorConfiguration":{ + "type":"structure", + "members":{ + "DecimalSeparator":{ + "shape":"NumericSeparatorSymbol", + "documentation":"

Determines the decimal separator.

" + }, + "ThousandsSeparator":{ + "shape":"ThousandSeparatorOptions", + "documentation":"

The options that determine the thousands separator configuration.

" + } + }, + "documentation":"

The options that determine the numeric separator configuration.

" + }, + "NumericSeparatorSymbol":{ + "type":"string", + "enum":[ + "COMMA", + "DOT", + "SPACE" + ] + }, + "NumericalAggregationFunction":{ + "type":"structure", + "members":{ + "SimpleNumericalAggregation":{ + "shape":"SimpleNumericalAggregationFunction", + "documentation":"

Built-in aggregation functions for numerical values.

  • SUM: The sum of a dimension or measure.

  • AVERAGE: The average of a dimension or measure.

  • MIN: The minimum value of a dimension or measure.

  • MAX: The maximum value of a dimension or measure.

  • COUNT: The count of a dimension or measure.

  • DISTINCT_COUNT: The count of distinct values in a dimension or measure.

  • VAR: The variance of a dimension or measure.

  • VARP: The partitioned variance of a dimension or measure.

  • STDEV: The standard deviation of a dimension or measure.

  • STDEVP: The partitioned standard deviation of a dimension or measure.

  • MEDIAN: The median value of a dimension or measure.

" + }, + "PercentileAggregation":{ + "shape":"PercentileAggregation", + "documentation":"

An aggregation based on the percentile of values in a dimension or measure.

" + } + }, + "documentation":"

Aggregation for numerical values.

" + }, + "NumericalDimensionField":{ + "type":"structure", + "required":[ + "FieldId", + "Column" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The custom field ID.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that is used in the NumericalDimensionField.

" + }, + "HierarchyId":{ + "shape":"HierarchyId", + "documentation":"

The custom hierarchy ID.

" + }, + "FormatConfiguration":{ + "shape":"NumberFormatConfiguration", + "documentation":"

The format configuration of the field.

" + } + }, + "documentation":"

The dimension type field with numerical type columns.

" + }, + "NumericalMeasureField":{ + "type":"structure", + "required":[ + "FieldId", + "Column" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The custom field ID.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that is used in the NumericalMeasureField.

" + }, + "AggregationFunction":{ + "shape":"NumericalAggregationFunction", + "documentation":"

The aggregation function of the measure field.

" + }, + "FormatConfiguration":{ + "shape":"NumberFormatConfiguration", + "documentation":"

The format configuration of the field.

" + } + }, + "documentation":"

The measure type field with numerical type columns.

" + }, "OnClause":{ "type":"string", "max":512, @@ -9411,6 +16300,13 @@ }, "documentation":"

The parameters for Oracle.

" }, + "OtherCategories":{ + "type":"string", + "enum":[ + "INCLUDE", + "EXCLUDE" + ] + }, "OutputColumn":{ "type":"structure", "members":{ @@ -9433,6 +16329,416 @@ "type":"list", "member":{"shape":"OutputColumn"} }, + "PageNumber":{ + "type":"long", + "min":0 + }, + "PaginationConfiguration":{ + "type":"structure", + "required":[ + "PageSize", + "PageNumber" + ], + "members":{ + "PageSize":{ + "shape":"Long", + "documentation":"

Indicates how many items render in one page.

", + "box":true + }, + "PageNumber":{ + "shape":"PageNumber", + "documentation":"

Indicates the page number.

" + } + }, + "documentation":"

The pagination configuration for a table visual or boxplot.

" + }, + "PanelBorderStyle":{ + "type":"string", + "enum":[ + "SOLID", + "DASHED", + "DOTTED" + ] + }, + "PanelConfiguration":{ + "type":"structure", + "members":{ + "Title":{ + "shape":"PanelTitleOptions", + "documentation":"

Configures the title display within each small multiples panel.

" + }, + "BorderVisibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not each panel displays a border.

" + }, + "BorderThickness":{ + "shape":"PixelLength", + "documentation":"

Sets the line thickness of panel borders.

" + }, + "BorderStyle":{ + "shape":"PanelBorderStyle", + "documentation":"

Sets the line style of panel borders.

" + }, + "BorderColor":{ + "shape":"HexColorWithTransparency", + "documentation":"

Sets the line color of panel borders.

" + }, + "GutterVisibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not negative space between sibling panels is rendered.

" + }, + "GutterSpacing":{ + "shape":"PixelLength", + "documentation":"

Sets the total amount of negative space to display between sibling panels.

" + }, + "BackgroundVisibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not a background for each small multiples panel is rendered.

" + }, + "BackgroundColor":{ + "shape":"HexColorWithTransparency", + "documentation":"

Sets the background color for each panel.

" + } + }, + "documentation":"

A collection of options that configure how each panel displays in a small multiples chart.

" + }, + "PanelTitleOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not panel titles are displayed.

" + }, + "FontConfiguration":{"shape":"FontConfiguration"}, + "HorizontalTextAlignment":{ + "shape":"HorizontalTextAlignment", + "documentation":"

Sets the horizontal text alignment of the title within each panel.

" + } + }, + "documentation":"

The options that determine the title styles for each small multiples panel.

" + }, + "PaperOrientation":{ + "type":"string", + "enum":[ + "PORTRAIT", + "LANDSCAPE" + ] + }, + "PaperSize":{ + "type":"string", + "enum":[ + "US_LETTER", + "US_LEGAL", + "US_TABLOID_LEDGER", + "A0", + "A1", + "A2", + "A3", + "A4", + "A5", + "JIS_B4", + "JIS_B5" + ] + }, + "ParameterControl":{ + "type":"structure", + "members":{ + "DateTimePicker":{ + "shape":"ParameterDateTimePickerControl", + "documentation":"

A control from a date parameter that specifies date and time.

" + }, + "List":{ + "shape":"ParameterListControl", + "documentation":"

A control to display a list with buttons or boxes that are used to select either a single value or multiple values.

" + }, + "Dropdown":{ + "shape":"ParameterDropDownControl", + "documentation":"

A control to display a dropdown list with buttons that are used to select a single value.

" + }, + "TextField":{ + "shape":"ParameterTextFieldControl", + "documentation":"

A control to display a text box that is used to enter a single entry.

" + }, + "TextArea":{ + "shape":"ParameterTextAreaControl", + "documentation":"

A control to display a text box that is used to enter multiple entries.

" + }, + "Slider":{ + "shape":"ParameterSliderControl", + "documentation":"

A control to display a horizontal toggle bar. This is used to change a value by sliding the toggle.

" + } + }, + "documentation":"

The control of a parameter that users can interact with in a dashboard or an analysis.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "ParameterControlList":{ + "type":"list", + "member":{"shape":"ParameterControl"}, + "max":200 + }, + "ParameterDateTimePickerControl":{ + "type":"structure", + "required":[ + "ParameterControlId", + "Title", + "SourceParameterName" + ], + "members":{ + "ParameterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the ParameterDateTimePickerControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the ParameterDateTimePickerControl.

" + }, + "SourceParameterName":{ + "shape":"ParameterName", + "documentation":"

The name of the ParameterDateTimePickerControl.

" + }, + "DisplayOptions":{ + "shape":"DateTimePickerControlDisplayOptions", + "documentation":"

The display options of a control.

" + } + }, + "documentation":"

A control from a date parameter that specifies date and time.

" + }, + "ParameterDeclaration":{ + "type":"structure", + "members":{ + "StringParameterDeclaration":{ + "shape":"StringParameterDeclaration", + "documentation":"

A parameter declaration for the String data type.

" + }, + "DecimalParameterDeclaration":{ + "shape":"DecimalParameterDeclaration", + "documentation":"

A parameter declaration for the Decimal data type.

" + }, + "IntegerParameterDeclaration":{ + "shape":"IntegerParameterDeclaration", + "documentation":"

A parameter declaration for the Integer data type.

" + }, + "DateTimeParameterDeclaration":{ + "shape":"DateTimeParameterDeclaration", + "documentation":"

A parameter declaration for the DateTime data type.

" + } + }, + "documentation":"

The declaration definition of a parameter.

For more information, see Parameters in Amazon QuickSight in the Amazon QuickSight User Guide.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "ParameterDeclarationList":{ + "type":"list", + "member":{"shape":"ParameterDeclaration"}, + "max":200 + }, + "ParameterDropDownControl":{ + "type":"structure", + "required":[ + "ParameterControlId", + "Title", + "SourceParameterName" + ], + "members":{ + "ParameterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the ParameterDropDownControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the ParameterDropDownControl.

" + }, + "SourceParameterName":{ + "shape":"ParameterName", + "documentation":"

The source parameter name of the ParameterDropDownControl.

" + }, + "DisplayOptions":{ + "shape":"DropDownControlDisplayOptions", + "documentation":"

The display options of a control.

" + }, + "Type":{ + "shape":"SheetControlListType", + "documentation":"

The type parameter name of the ParameterDropDownControl.

" + }, + "SelectableValues":{ + "shape":"ParameterSelectableValues", + "documentation":"

A list of selectable values that are used in a control.

" + }, + "CascadingControlConfiguration":{ + "shape":"CascadingControlConfiguration", + "documentation":"

The values that are displayed in a control can be configured to only show values that are valid based on what's selected in other controls.

" + } + }, + "documentation":"

A control to display a dropdown list with buttons that are used to select a single value.

" + }, + "ParameterListControl":{ + "type":"structure", + "required":[ + "ParameterControlId", + "Title", + "SourceParameterName" + ], + "members":{ + "ParameterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the ParameterListControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the ParameterListControl.

" + }, + "SourceParameterName":{ + "shape":"ParameterName", + "documentation":"

The source parameter name of the ParameterListControl.

" + }, + "DisplayOptions":{ + "shape":"ListControlDisplayOptions", + "documentation":"

The display options of a control.

" + }, + "Type":{ + "shape":"SheetControlListType", + "documentation":"

The type of ParameterListControl.

" + }, + "SelectableValues":{ + "shape":"ParameterSelectableValues", + "documentation":"

A list of selectable values that are used in a control.

" + }, + "CascadingControlConfiguration":{ + "shape":"CascadingControlConfiguration", + "documentation":"

The values that are displayed in a control can be configured to only show values that are valid based on what's selected in other controls.

" + } + }, + "documentation":"

A control to display a list with buttons or boxes that are used to select either a single value or multiple values.

" + }, + "ParameterName":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^[a-zA-Z0-9]+$" + }, + "ParameterSelectableValueList":{ + "type":"list", + "member":{"shape":"String"}, + "max":50000 + }, + "ParameterSelectableValues":{ + "type":"structure", + "members":{ + "Values":{ + "shape":"ParameterSelectableValueList", + "documentation":"

The values that are used in ParameterSelectableValues.

" + }, + "LinkToDataSetColumn":{ + "shape":"ColumnIdentifier", + "documentation":"

The column identifier that fetches values from the data set.

" + } + }, + "documentation":"

A list of selectable values that are used in a control.

" + }, + "ParameterSliderControl":{ + "type":"structure", + "required":[ + "ParameterControlId", + "Title", + "SourceParameterName", + "MaximumValue", + "MinimumValue", + "StepSize" + ], + "members":{ + "ParameterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the ParameterSliderControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the ParameterSliderControl.

" + }, + "SourceParameterName":{ + "shape":"ParameterName", + "documentation":"

The source parameter name of the ParameterSliderControl.

" + }, + "DisplayOptions":{ + "shape":"SliderControlDisplayOptions", + "documentation":"

The display options of a control.

" + }, + "MaximumValue":{ + "shape":"Double", + "documentation":"

The smaller value that is displayed at the left of the slider.

" + }, + "MinimumValue":{ + "shape":"Double", + "documentation":"

The larger value that is displayed at the right of the slider.

" + }, + "StepSize":{ + "shape":"Double", + "documentation":"

The number of increments that the slider bar is divided into.

" + } + }, + "documentation":"

A control to display a horizontal toggle bar. This is used to change a value by sliding the toggle.

" + }, + "ParameterTextAreaControl":{ + "type":"structure", + "required":[ + "ParameterControlId", + "Title", + "SourceParameterName" + ], + "members":{ + "ParameterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the ParameterTextAreaControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the ParameterTextAreaControl.

" + }, + "SourceParameterName":{ + "shape":"ParameterName", + "documentation":"

The source parameter name of the ParameterTextAreaControl.

" + }, + "Delimiter":{ + "shape":"TextAreaControlDelimiter", + "documentation":"

The delimiter that is used to separate the lines in text.

" + }, + "DisplayOptions":{ + "shape":"TextAreaControlDisplayOptions", + "documentation":"

The display options of a control.

" + } + }, + "documentation":"

A control to display a text box that is used to enter multiple entries.

" + }, + "ParameterTextFieldControl":{ + "type":"structure", + "required":[ + "ParameterControlId", + "Title", + "SourceParameterName" + ], + "members":{ + "ParameterControlId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the ParameterTextFieldControl.

" + }, + "Title":{ + "shape":"SheetControlTitle", + "documentation":"

The title of the ParameterTextFieldControl.

" + }, + "SourceParameterName":{ + "shape":"ParameterName", + "documentation":"

The source parameter name of the ParameterTextFieldControl.

" + }, + "DisplayOptions":{ + "shape":"TextFieldControlDisplayOptions", + "documentation":"

The display options of a control.

" + } + }, + "documentation":"

A control to display a text box that is used to enter a single entry.

" + }, + "ParameterValueType":{ + "type":"string", + "enum":[ + "MULTI_VALUED", + "SINGLE_VALUED" + ] + }, "Parameters":{ "type":"structure", "members":{ @@ -9466,6 +16772,138 @@ "max":10, "min":1 }, + "PercentNumber":{ + "type":"double", + "max":100, + "min":0 + }, + "PercentVisibleRange":{ + "type":"structure", + "members":{ + "From":{ + "shape":"PercentNumber", + "documentation":"

The lower bound of the range.

", + "box":true + }, + "To":{ + "shape":"PercentNumber", + "documentation":"

The top bound of the range.

", + "box":true + } + }, + "documentation":"

The percent range in the visible range.

" + }, + "PercentageDisplayFormatConfiguration":{ + "type":"structure", + "members":{ + "Prefix":{ + "shape":"Prefix", + "documentation":"

Determines the prefix value of the percentage format.

" + }, + "Suffix":{ + "shape":"Suffix", + "documentation":"

Determines the suffix value of the percentage format.

" + }, + "SeparatorConfiguration":{ + "shape":"NumericSeparatorConfiguration", + "documentation":"

The options that determine the numeric separator configuration.

" + }, + "DecimalPlacesConfiguration":{ + "shape":"DecimalPlacesConfiguration", + "documentation":"

The option that determines the decimal places configuration.

" + }, + "NegativeValueConfiguration":{ + "shape":"NegativeValueConfiguration", + "documentation":"

The options that determine the negative value configuration.

" + }, + "NullValueFormatConfiguration":{ + "shape":"NullValueFormatConfiguration", + "documentation":"

The options that determine the null value format configuration.

" + } + }, + "documentation":"

The options that determine the percentage display format configuration.

" + }, + "PercentileAggregation":{ + "type":"structure", + "members":{ + "PercentileValue":{ + "shape":"PercentileValue", + "documentation":"

The percentile value. This value can be any numeric constant 0–100. A percentile value of 50 computes the median value of the measure.

" + } + }, + "documentation":"

An aggregation based on the percentile of values in a dimension or measure.

" + }, + "PercentileValue":{ + "type":"double", + "max":100, + "min":0 + }, + "PeriodOverPeriodComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Time" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Time":{ + "shape":"DimensionField", + "documentation":"

The time field that is used in a computation.

" + }, + "Value":{ + "shape":"MeasureField", + "documentation":"

The value field that is used in a computation.

" + } + }, + "documentation":"

The period over period computation configuration.

" + }, + "PeriodToDateComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Time" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Time":{ + "shape":"DimensionField", + "documentation":"

The time field that is used in a computation.

" + }, + "Value":{ + "shape":"MeasureField", + "documentation":"

The value field that is used in a computation.

" + }, + "PeriodTimeGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The time granularity setup of period to date computation. Choose from the following options:

  • YEAR: Year to date.

  • MONTH: Month to date.

" + } + }, + "documentation":"

The period to date computation configuration.

" + }, + "PeriodsBackward":{ + "type":"integer", + "max":1000, + "min":0 + }, + "PeriodsForward":{ + "type":"integer", + "max":1000, + "min":1 + }, "PhysicalTable":{ "type":"structure", "members":{ @@ -9497,6 +16935,553 @@ "max":32, "min":0 }, + "PieChartAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Category":{ + "shape":"DimensionFieldList", + "documentation":"

The category (group/color) field wells of a pie chart.

" + }, + "Values":{ + "shape":"MeasureFieldList", + "documentation":"

The value field wells of a pie chart. Values are aggregated based on categories.

" + }, + "SmallMultiples":{ + "shape":"SmallMultiplesDimensionFieldList", + "documentation":"

The small multiples field well of a pie chart.

" + } + }, + "documentation":"

The field well configuration of a pie chart.

" + }, + "PieChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"PieChartFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"PieChartSortConfiguration", + "documentation":"

The sort configuration of a pie chart.

" + }, + "DonutOptions":{ + "shape":"DonutOptions", + "documentation":"

The options that determine the shape of the chart. This option determines whether the chart is a pie chart or a donut chart.

" + }, + "SmallMultiplesOptions":{ + "shape":"SmallMultiplesOptions", + "documentation":"

The small multiples setup for the visual.

" + }, + "CategoryLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options of the group/color that is displayed in a pie chart.

" + }, + "ValueLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options for the value that is displayed in a pie chart.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The options that determine if visual data labels are displayed.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip display setup of the visual.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The palette (chart color) display setup of the visual.

" + }, + "ContributionAnalysisDefaults":{ + "shape":"ContributionAnalysisDefaultList", + "documentation":"

The contribution analysis (anomaly configuration) setup of the visual.

" + } + }, + "documentation":"

The configuration of a pie chart.

" + }, + "PieChartFieldWells":{ + "type":"structure", + "members":{ + "PieChartAggregatedFieldWells":{ + "shape":"PieChartAggregatedFieldWells", + "documentation":"

The field well configuration of a pie chart.

" + } + }, + "documentation":"

The field well configuration of a pie chart.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "PieChartSortConfiguration":{ + "type":"structure", + "members":{ + "CategorySort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the category fields.

" + }, + "CategoryItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of categories that are displayed in a pie chart.

" + }, + "SmallMultiplesSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the small multiples field.

" + }, + "SmallMultiplesLimitConfiguration":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of small multiples panels that are displayed.

" + } + }, + "documentation":"

The sort configuration of a pie chart.

" + }, + "PieChartVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"PieChartConfiguration", + "documentation":"

The configuration of a pie chart.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A pie or donut chart.

The PieChartVisual structure describes a visual that is a member of the pie chart family.

The following charts can be described by using this structure:

  • Pie charts

  • Donut charts

For more information, see Using pie charts in the Amazon QuickSight User Guide.

For more information, see Using donut charts in the Amazon QuickSight User Guide.

" + }, + "PivotFieldSortOptions":{ + "type":"structure", + "required":[ + "FieldId", + "SortBy" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID for the field sort options.

" + }, + "SortBy":{ + "shape":"PivotTableSortBy", + "documentation":"

The sort by field for the field sort options.

" + } + }, + "documentation":"

The field sort options for a pivot table sort configuration.

" + }, + "PivotFieldSortOptionsList":{ + "type":"list", + "member":{"shape":"PivotFieldSortOptions"}, + "max":200 + }, + "PivotMeasureFieldList":{ + "type":"list", + "member":{"shape":"MeasureField"}, + "max":20 + }, + "PivotTableAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Rows":{ + "shape":"PivotTableDimensionList", + "documentation":"

The rows field well for a pivot table. Values are grouped by rows fields.

" + }, + "Columns":{ + "shape":"PivotTableDimensionList", + "documentation":"

The columns field well for a pivot table. Values are grouped by columns fields.

" + }, + "Values":{ + "shape":"PivotMeasureFieldList", + "documentation":"

The values field well for a pivot table. Values are aggregated based on rows and columns fields.

" + } + }, + "documentation":"

The aggregated field well for the pivot table.

" + }, + "PivotTableCellConditionalFormatting":{ + "type":"structure", + "required":["FieldId"], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID of the cell for conditional formatting.

" + }, + "TextFormat":{ + "shape":"TextConditionalFormat", + "documentation":"

The text format of the cell for conditional formatting.

" + }, + "Scope":{ + "shape":"PivotTableConditionalFormattingScope", + "documentation":"

The scope of the cell for conditional formatting.

" + } + }, + "documentation":"

The cell conditional formatting option for a pivot table.

" + }, + "PivotTableConditionalFormatting":{ + "type":"structure", + "members":{ + "ConditionalFormattingOptions":{ + "shape":"PivotTableConditionalFormattingOptionList", + "documentation":"

Conditional formatting options for a PivotTableVisual.

" + } + }, + "documentation":"

The conditional formatting for a PivotTableVisual.

" + }, + "PivotTableConditionalFormattingOption":{ + "type":"structure", + "members":{ + "Cell":{ + "shape":"PivotTableCellConditionalFormatting", + "documentation":"

The cell conditional formatting option for a pivot table.

" + } + }, + "documentation":"

Conditional formatting options for a PivotTableVisual.

" + }, + "PivotTableConditionalFormattingOptionList":{ + "type":"list", + "member":{"shape":"PivotTableConditionalFormattingOption"}, + "max":100 + }, + "PivotTableConditionalFormattingScope":{ + "type":"structure", + "members":{ + "Role":{ + "shape":"PivotTableConditionalFormattingScopeRole", + "documentation":"

The role (field, field total, grand total) of the cell for conditional formatting.

" + } + }, + "documentation":"

The scope of the cell for conditional formatting.

" + }, + "PivotTableConditionalFormattingScopeRole":{ + "type":"string", + "enum":[ + "FIELD", + "FIELD_TOTAL", + "GRAND_TOTAL" + ] + }, + "PivotTableConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"PivotTableFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"PivotTableSortConfiguration", + "documentation":"

The sort configuration for a PivotTableVisual.

" + }, + "TableOptions":{ + "shape":"PivotTableOptions", + "documentation":"

The table options for a pivot table visual.

" + }, + "TotalOptions":{ + "shape":"PivotTableTotalOptions", + "documentation":"

The total options for a pivot table visual.

" + }, + "FieldOptions":{ + "shape":"PivotTableFieldOptions", + "documentation":"

The field options for a pivot table visual.

" + }, + "PaginatedReportOptions":{ + "shape":"PivotTablePaginatedReportOptions", + "documentation":"

The paginated report options for a pivot table visual.

" + } + }, + "documentation":"

The configuration for a PivotTableVisual.

" + }, + "PivotTableDataPathOption":{ + "type":"structure", + "required":["DataPathList"], + "members":{ + "DataPathList":{ + "shape":"DataPathValueList", + "documentation":"

The list of data path values for the data path options.

" + }, + "Width":{ + "shape":"PixelLength", + "documentation":"

The width of the data path option.

" + } + }, + "documentation":"

The data path options for the pivot table field options.

" + }, + "PivotTableDataPathOptionList":{ + "type":"list", + "member":{"shape":"PivotTableDataPathOption"}, + "max":100 + }, + "PivotTableDimensionList":{ + "type":"list", + "member":{"shape":"DimensionField"}, + "max":20 + }, + "PivotTableFieldOption":{ + "type":"structure", + "required":["FieldId"], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID of the pivot table field.

" + }, + "CustomLabel":{ + "shape":"CustomLabel", + "documentation":"

The custom label of the pivot table field.

" + }, + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the pivot table field.

" + } + }, + "documentation":"

The selected field options for the pivot table field options.

" + }, + "PivotTableFieldOptionList":{ + "type":"list", + "member":{"shape":"PivotTableFieldOption"}, + "max":100 + }, + "PivotTableFieldOptions":{ + "type":"structure", + "members":{ + "SelectedFieldOptions":{ + "shape":"PivotTableFieldOptionList", + "documentation":"

The selected field options for the pivot table field options.

" + }, + "DataPathOptions":{ + "shape":"PivotTableDataPathOptionList", + "documentation":"

The data path options for the pivot table field options.

" + } + }, + "documentation":"

The field options for a pivot table visual.

" + }, + "PivotTableFieldSubtotalOptions":{ + "type":"structure", + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID of the subtotal options.

" + } + }, + "documentation":"

The optional configuration of subtotals cells.

" + }, + "PivotTableFieldSubtotalOptionsList":{ + "type":"list", + "member":{"shape":"PivotTableFieldSubtotalOptions"}, + "max":100 + }, + "PivotTableFieldWells":{ + "type":"structure", + "members":{ + "PivotTableAggregatedFieldWells":{ + "shape":"PivotTableAggregatedFieldWells", + "documentation":"

The aggregated field well for the pivot table.

" + } + }, + "documentation":"

The field wells for a pivot table visual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "PivotTableMetricPlacement":{ + "type":"string", + "enum":[ + "ROW", + "COLUMN" + ] + }, + "PivotTableOptions":{ + "type":"structure", + "members":{ + "MetricPlacement":{ + "shape":"PivotTableMetricPlacement", + "documentation":"

The metric placement (row, column) options.

" + }, + "SingleMetricVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the single metric options.

" + }, + "ColumnNamesVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the column names.

" + }, + "ToggleButtonsVisibility":{ + "shape":"Visibility", + "documentation":"

Determines the visibility of the pivot table.

" + }, + "ColumnHeaderStyle":{ + "shape":"TableCellStyle", + "documentation":"

The table cell style of the column header.

" + }, + "RowHeaderStyle":{ + "shape":"TableCellStyle", + "documentation":"

The table cell style of the row headers.

" + }, + "CellStyle":{ + "shape":"TableCellStyle", + "documentation":"

The table cell style of cells.

" + }, + "RowFieldNamesStyle":{ + "shape":"TableCellStyle", + "documentation":"

The table cell style of row field names.

" + }, + "RowAlternateColorOptions":{ + "shape":"RowAlternateColorOptions", + "documentation":"

The row alternate color options (widget status, row alternate colors).

" + } + }, + "documentation":"

The table options for a pivot table visual.

" + }, + "PivotTablePaginatedReportOptions":{ + "type":"structure", + "members":{ + "VerticalOverflowVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the printing table overflow across pages.

" + }, + "OverflowColumnHeaderVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the repeating header rows on each page.

" + } + }, + "documentation":"

The paginated report options for a pivot table visual.

" + }, + "PivotTableSortBy":{ + "type":"structure", + "members":{ + "Field":{ + "shape":"FieldSort", + "documentation":"

The field sort (field id, direction) for the pivot table sort by options.

" + }, + "Column":{ + "shape":"ColumnSort", + "documentation":"

The column sort (field id, direction) for the pivot table sort by options.

" + }, + "DataPath":{ + "shape":"DataPathSort", + "documentation":"

The data path sort (data path value, direction) for the pivot table sort by options.

" + } + }, + "documentation":"

The sort by field for the field sort options.

" + }, + "PivotTableSortConfiguration":{ + "type":"structure", + "members":{ + "FieldSortOptions":{ + "shape":"PivotFieldSortOptionsList", + "documentation":"

The field sort options for a pivot table sort configuration.

" + } + }, + "documentation":"

The sort configuration for a PivotTableVisual.

" + }, + "PivotTableSubtotalLevel":{ + "type":"string", + "enum":[ + "ALL", + "CUSTOM", + "LAST" + ] + }, + "PivotTableTotalOptions":{ + "type":"structure", + "members":{ + "RowSubtotalOptions":{ + "shape":"SubtotalOptions", + "documentation":"

The row subtotal options.

" + }, + "ColumnSubtotalOptions":{ + "shape":"SubtotalOptions", + "documentation":"

The column subtotal options.

" + }, + "RowTotalOptions":{ + "shape":"PivotTotalOptions", + "documentation":"

The row total options.

" + }, + "ColumnTotalOptions":{ + "shape":"PivotTotalOptions", + "documentation":"

The column total options.

" + } + }, + "documentation":"

The total options for a pivot table visual.

" + }, + "PivotTableVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers..

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"PivotTableConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "ConditionalFormatting":{ + "shape":"PivotTableConditionalFormatting", + "documentation":"

The conditional formatting for a PivotTableVisual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + } + }, + "documentation":"

A pivot table.

For more information, see Using pivot tables in the Amazon QuickSight User Guide.

" + }, + "PivotTotalOptions":{ + "type":"structure", + "members":{ + "TotalsVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility configuration for the total cells.

" + }, + "Placement":{ + "shape":"TableTotalsPlacement", + "documentation":"

The placement (start, end) for the total cells.

" + }, + "ScrollStatus":{ + "shape":"TableTotalsScrollStatus", + "documentation":"

The scroll status (pinned, scrolled) for the total cells.

" + }, + "CustomLabel":{ + "shape":"String", + "documentation":"

The custom label string for the total cells.

" + }, + "TotalCellStyle":{ + "shape":"TableCellStyle", + "documentation":"

The cell styling options for the total cells.

" + }, + "ValueCellStyle":{ + "shape":"TableCellStyle", + "documentation":"

The cell styling options for the totals of value cells.

" + }, + "MetricHeaderCellStyle":{ + "shape":"TableCellStyle", + "documentation":"

The cell styling options for the total of header cells.

" + } + }, + "documentation":"

The optional configuration of totals cells in a PivotTableVisual.

" + }, + "PixelLength":{ + "type":"string", + "documentation":"String based length that is composed of value and unit in px" + }, "Port":{ "type":"integer", "max":65535, @@ -9542,6 +17527,45 @@ "error":{"httpStatusCode":400}, "exception":true }, + "PredefinedHierarchy":{ + "type":"structure", + "required":[ + "HierarchyId", + "Columns" + ], + "members":{ + "HierarchyId":{ + "shape":"HierarchyId", + "documentation":"

The hierarchy ID of the predefined hierarchy.

" + }, + "Columns":{ + "shape":"PredefinedHierarchyColumnList", + "documentation":"

The list of columns that define the predefined hierarchy.

" + }, + "DrillDownFilters":{ + "shape":"DrillDownFilterList", + "documentation":"

The option that determines the drill down filters for the predefined hierarchy.

" + } + }, + "documentation":"

The option that determines the hierarchy of the fields that are defined during data preparation. These fields are available to use in any analysis that uses the data source.

" + }, + "PredefinedHierarchyColumnList":{ + "type":"list", + "member":{"shape":"ColumnIdentifier"}, + "max":10, + "min":1 + }, + "PredictionInterval":{ + "type":"integer", + "max":95, + "min":50 + }, + "Prefix":{ + "type":"string", + "max":128, + "min":1, + "sensitive":true + }, "PrestoParameters":{ "type":"structure", "required":[ @@ -9565,6 +17589,14 @@ }, "documentation":"

The parameters for Presto.

" }, + "PrimaryValueDisplayType":{ + "type":"string", + "enum":[ + "HIDDEN", + "COMPARISON", + "ACTUAL" + ] + }, "Principal":{ "type":"string", "max":256, @@ -9576,6 +17608,16 @@ "max":100, "min":1 }, + "ProgressBarOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the progress bar.

" + } + }, + "documentation":"

The options that determine the presentation of the progress bar of a KPI visual.

" + }, "ProjectOperation":{ "type":"structure", "required":["ProjectedColumns"], @@ -9629,6 +17671,16 @@ "error":{"httpStatusCode":404}, "exception":true }, + "RangeEndsLabelType":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the range ends label.

" + } + }, + "documentation":"

The range ends label type of a data path label.

" + }, "RdsParameters":{ "type":"structure", "required":[ @@ -9675,6 +17727,185 @@ }, "documentation":"

The parameters for Amazon Redshift. The ClusterId field can be blank if Host and Port are both set. The Host and Port fields can be blank if the ClusterId field is set.

" }, + "ReferenceLine":{ + "type":"structure", + "required":["DataConfiguration"], + "members":{ + "Status":{ + "shape":"WidgetStatus", + "documentation":"

The status of the reference line. Choose one of the following options:

  • ENABLE

  • DISABLE

" + }, + "DataConfiguration":{ + "shape":"ReferenceLineDataConfiguration", + "documentation":"

The data configuration of the reference line.

" + }, + "StyleConfiguration":{ + "shape":"ReferenceLineStyleConfiguration", + "documentation":"

The style configuration of the reference line.

" + }, + "LabelConfiguration":{ + "shape":"ReferenceLineLabelConfiguration", + "documentation":"

The label configuration of the reference line.

" + } + }, + "documentation":"

The reference line visual display options.

" + }, + "ReferenceLineCustomLabelConfiguration":{ + "type":"structure", + "required":["CustomLabel"], + "members":{ + "CustomLabel":{ + "shape":"NonEmptyString", + "documentation":"

The string text of the custom label.

" + } + }, + "documentation":"

The configuration for a custom label on a ReferenceLine.

" + }, + "ReferenceLineDataConfiguration":{ + "type":"structure", + "members":{ + "StaticConfiguration":{ + "shape":"ReferenceLineStaticDataConfiguration", + "documentation":"

The static data configuration of the reference line data configuration.

" + }, + "DynamicConfiguration":{ + "shape":"ReferenceLineDynamicDataConfiguration", + "documentation":"

The dynamic configuration of the reference line data configuration.

" + }, + "AxisBinding":{ + "shape":"AxisBinding", + "documentation":"

The axis binding type of the reference line. Choose one of the following options:

  • PrimaryY

  • SecondaryY

" + } + }, + "documentation":"

The data configuration of the reference line.

" + }, + "ReferenceLineDynamicDataConfiguration":{ + "type":"structure", + "required":[ + "Column", + "MeasureAggregationFunction", + "Calculation" + ], + "members":{ + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the dynamic data targets.

" + }, + "MeasureAggregationFunction":{ + "shape":"AggregationFunction", + "documentation":"

The aggregation function that is used in the dynamic data.

" + }, + "Calculation":{ + "shape":"NumericalAggregationFunction", + "documentation":"

The calculation that is used in the dynamic data.

" + } + }, + "documentation":"

The dynamic configuration of the reference line data configuration.

" + }, + "ReferenceLineLabelConfiguration":{ + "type":"structure", + "members":{ + "ValueLabelConfiguration":{ + "shape":"ReferenceLineValueLabelConfiguration", + "documentation":"

The value label configuration of the label in a reference line.

" + }, + "CustomLabelConfiguration":{ + "shape":"ReferenceLineCustomLabelConfiguration", + "documentation":"

The custom label configuration of the label in a reference line.

" + }, + "FontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

The font configuration of the label in a reference line.

" + }, + "FontColor":{ + "shape":"HexColor", + "documentation":"

The font color configuration of the label in a reference line.

" + }, + "HorizontalPosition":{ + "shape":"ReferenceLineLabelHorizontalPosition", + "documentation":"

The horizontal position configuration of the label in a reference line. Choose one of the following options:

  • LEFT

  • CENTER

  • RIGHT

" + }, + "VerticalPosition":{ + "shape":"ReferenceLineLabelVerticalPosition", + "documentation":"

The vertical position configuration of the label in a reference line. Choose one of the following options:

  • ABOVE

  • BELOW

" + } + }, + "documentation":"

The label configuration of a reference line.

" + }, + "ReferenceLineLabelHorizontalPosition":{ + "type":"string", + "enum":[ + "LEFT", + "CENTER", + "RIGHT" + ] + }, + "ReferenceLineLabelVerticalPosition":{ + "type":"string", + "enum":[ + "ABOVE", + "BELOW" + ] + }, + "ReferenceLineList":{ + "type":"list", + "member":{"shape":"ReferenceLine"}, + "max":20 + }, + "ReferenceLinePatternType":{ + "type":"string", + "enum":[ + "SOLID", + "DASHED", + "DOTTED" + ] + }, + "ReferenceLineStaticDataConfiguration":{ + "type":"structure", + "required":["Value"], + "members":{ + "Value":{ + "shape":"SensitiveDouble", + "documentation":"

The double input of the static data.

" + } + }, + "documentation":"

The static data configuration of the reference line data configuration.

" + }, + "ReferenceLineStyleConfiguration":{ + "type":"structure", + "members":{ + "Pattern":{ + "shape":"ReferenceLinePatternType", + "documentation":"

The pattern type of the line style. Choose one of the following options:

  • SOLID

  • DASHED

  • DOTTED

" + }, + "Color":{ + "shape":"HexColor", + "documentation":"

The hex color of the reference line.

" + } + }, + "documentation":"

The style configuration of the reference line.

" + }, + "ReferenceLineValueLabelConfiguration":{ + "type":"structure", + "members":{ + "RelativePosition":{ + "shape":"ReferenceLineValueLabelRelativePosition", + "documentation":"

The relative position of the value label. Choose one of the following options:

  • BEFORE_CUSTOM_LABEL

  • AFTER_CUSTOM_LABEL

" + }, + "FormatConfiguration":{ + "shape":"NumericFormatConfiguration", + "documentation":"

The format configuration of the value label.

" + } + }, + "documentation":"

The value label configuration of the label in a reference line.

" + }, + "ReferenceLineValueLabelRelativePosition":{ + "type":"string", + "enum":[ + "BEFORE_CUSTOM_LABEL", + "AFTER_CUSTOM_LABEL" + ] + }, "RegisterUserRequest":{ "type":"structure", "required":[ @@ -9766,12 +17997,23 @@ "required":["InitialDashboardId"], "members":{ "InitialDashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The dashboard ID for the dashboard that you want the user to see first. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders this dashboard if the user has permissions to view it.

If the user does not have permission to view this dashboard, they see a permissions error message.

" } }, "documentation":"

Information about the dashboard you want to embed.

" }, + "RegisteredUserDashboardVisualEmbeddingConfiguration":{ + "type":"structure", + "required":["InitialDashboardVisualId"], + "members":{ + "InitialDashboardVisualId":{ + "shape":"DashboardVisualId", + "documentation":"

The visual ID for the visual that you want the user to embed. This ID is included in the output URL. When the URL in response is accessed, Amazon QuickSight renders this visual.

The Amazon Resource Name (ARN) of the dashboard that the visual belongs to must be included in the AuthorizedResourceArns parameter. Otherwise, the request will fail with InvalidParameterValueException.

" + } + }, + "documentation":"

The experience that you are embedding. You can use this object to generate a url that embeds a visual into your application.

" + }, "RegisteredUserEmbeddingExperienceConfiguration":{ "type":"structure", "members":{ @@ -9785,7 +18027,11 @@ }, "QSearchBar":{ "shape":"RegisteredUserQSearchBarEmbeddingConfiguration", - "documentation":"

The configuration details for embedding the Q search bar.

For more information about embedding the Q search bar, see Embedding Overview.

" + "documentation":"

The configuration details for embedding the Q search bar.

For more information about embedding the Q search bar, see Embedding Overview in the Amazon QuickSight User Guide.

" + }, + "DashboardVisual":{ + "shape":"RegisteredUserDashboardVisualEmbeddingConfiguration", + "documentation":"

The type of embedding experience. In this case, Amazon QuickSight visuals.

" } }, "documentation":"

The type of experience you want to embed. For registered users, you can embed Amazon QuickSight dashboards or the Amazon QuickSight console.

Exactly one of the experience configurations is required. You can choose Dashboard or QuickSightConsole. You cannot choose more than one experience configuration.

" @@ -9854,6 +18100,95 @@ "type":"string", "max":64 }, + "RelativeDateTimeControlDisplayOptions":{ + "type":"structure", + "members":{ + "TitleOptions":{ + "shape":"LabelOptions", + "documentation":"

The options to configure the title visibility, name, and font size.

" + }, + "DateTimeFormat":{ + "shape":"DateTimeFormat", + "documentation":"

Customize how dates are formatted in controls.

" + } + }, + "documentation":"

The display options of a control.

" + }, + "RelativeDateType":{ + "type":"string", + "enum":[ + "PREVIOUS", + "THIS", + "LAST", + "NOW", + "NEXT" + ] + }, + "RelativeDatesFilter":{ + "type":"structure", + "required":[ + "FilterId", + "Column", + "AnchorDateConfiguration", + "TimeGranularity", + "RelativeDateType", + "NullOption" + ], + "members":{ + "FilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

An identifier that uniquely identifies a filter within a dashboard, analysis, or template.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "AnchorDateConfiguration":{ + "shape":"AnchorDateConfiguration", + "documentation":"

The date configuration of the filter.

" + }, + "MinimumGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The minimum granularity (period granularity) of the relative dates filter.

" + }, + "TimeGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The level of time precision that is used to aggregate DateTime values.

" + }, + "RelativeDateType":{ + "shape":"RelativeDateType", + "documentation":"

The range date type of the filter. Choose one of the options below:

  • PREVIOUS

  • THIS

  • LAST

  • NOW

  • NEXT

" + }, + "RelativeDateValue":{ + "shape":"Integer", + "documentation":"

The date value of the filter.

", + "box":true + }, + "ParameterName":{ + "shape":"ParameterName", + "documentation":"

The parameter whose value should be used for the filter value.

" + }, + "NullOption":{ + "shape":"FilterNullOption", + "documentation":"

This option determines how null values should be treated when filtering data.

  • ALL_VALUES: Include null values in filtered results.

  • NULLS_ONLY: Only include null values in filtered results.

  • NON_NULLS_ONLY: Exclude null values from filtered results.

" + }, + "ExcludePeriodConfiguration":{ + "shape":"ExcludePeriodConfiguration", + "documentation":"

The configuration for the exclude period of the filter.

" + } + }, + "documentation":"

A RelativeDatesFilter filters relative dates values.

" + }, + "RelativeFontSize":{ + "type":"string", + "enum":[ + "EXTRA_SMALL", + "SMALL", + "MEDIUM", + "LARGE", + "EXTRA_LARGE" + ] + }, "RenameColumnOperation":{ "type":"structure", "required":[ @@ -9872,6 +18207,13 @@ }, "documentation":"

A transform operation that renames a column.

" }, + "ResizeOption":{ + "type":"string", + "enum":[ + "FIXED", + "RESPONSIVE" + ] + }, "ResourceExistsException":{ "type":"structure", "members":{ @@ -9979,7 +18321,7 @@ "locationName":"AwsAccountId" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis that you're restoring.

", "location":"uri", "locationName":"AnalysisId" @@ -9999,7 +18341,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the analysis that you're restoring.

" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis that you're restoring.

" }, "RequestId":{ @@ -10014,6 +18356,11 @@ "min":1, "pattern":"[\\w\\-]+" }, + "RoleArn":{ + "type":"string", + "max":2048, + "min":20 + }, "RoleName":{ "type":"string", "max":64, @@ -10026,6 +18373,40 @@ "min":2, "pattern":"[\\w+=.@-]*" }, + "RollingDateConfiguration":{ + "type":"structure", + "required":["Expression"], + "members":{ + "DataSetIdentifier":{ + "shape":"DataSetIdentifier", + "documentation":"

The data set that is used in the rolling date configuration.

" + }, + "Expression":{ + "shape":"Expression", + "documentation":"

The expression of the rolling date configuration.

" + } + }, + "documentation":"

The rolling date configuration of a date time filter.

" + }, + "RowAlternateColorList":{ + "type":"list", + "member":{"shape":"HexColor"}, + "max":1 + }, + "RowAlternateColorOptions":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"WidgetStatus", + "documentation":"

Determines the widget status.

" + }, + "RowAlternateColors":{ + "shape":"RowAlternateColorList", + "documentation":"

Determines the list of row alternate colors.

" + } + }, + "documentation":"

Determines the row alternate color options.

" + }, "RowInfo":{ "type":"structure", "members":{ @@ -10142,6 +18523,11 @@ "max":50, "min":1 }, + "RowSortList":{ + "type":"list", + "member":{"shape":"FieldSortOptions"}, + "max":100 + }, "S3Bucket":{ "type":"string", "max":1024, @@ -10185,6 +18571,252 @@ }, "documentation":"

A physical table type for an S3 data source.

" }, + "SameSheetTargetVisualConfiguration":{ + "type":"structure", + "members":{ + "TargetVisuals":{ + "shape":"TargetVisualList", + "documentation":"

A list of the target visual IDs that are located in the same sheet of the analysis.

" + }, + "TargetVisualOptions":{ + "shape":"TargetVisualOptions", + "documentation":"

The options that choose the target visual in the same sheet.

Valid values are defined as follows:

  • ALL_VISUALS: Applies the filter operation to all visuals in the same sheet.

" + } + }, + "documentation":"

The configuration of the same-sheet target visuals that you want to be filtered.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "SankeyDiagramAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Source":{ + "shape":"DimensionFieldList", + "documentation":"

The source field wells of a sankey diagram.

" + }, + "Destination":{ + "shape":"DimensionFieldList", + "documentation":"

The destination field wells of a sankey diagram.

" + }, + "Weight":{ + "shape":"MeasureFieldList", + "documentation":"

The weight field wells of a sankey diagram.

" + } + }, + "documentation":"

The field well configuration of a sankey diagram.

" + }, + "SankeyDiagramChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"SankeyDiagramFieldWells", + "documentation":"

The field well configuration of a sankey diagram.

" + }, + "SortConfiguration":{ + "shape":"SankeyDiagramSortConfiguration", + "documentation":"

The sort configuration of a sankey diagram.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The data label configuration of a sankey diagram.

" + } + }, + "documentation":"

The configuration of a sankey diagram.

" + }, + "SankeyDiagramFieldWells":{ + "type":"structure", + "members":{ + "SankeyDiagramAggregatedFieldWells":{ + "shape":"SankeyDiagramAggregatedFieldWells", + "documentation":"

The field well configuration of a sankey diagram.

" + } + }, + "documentation":"

The field well configuration of a sankey diagram.

" + }, + "SankeyDiagramSortConfiguration":{ + "type":"structure", + "members":{ + "WeightSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the weight fields.

" + }, + "SourceItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of source nodes that are displayed in a sankey diagram.

" + }, + "DestinationItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of destination nodes that are displayed in a sankey diagram.

" + } + }, + "documentation":"

The sort configuration of a sankey diagram.

" + }, + "SankeyDiagramVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"SankeyDiagramChartConfiguration", + "documentation":"

The configuration of a sankey diagram.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + } + }, + "documentation":"

A sankey diagram.

For more information, see Using Sankey diagrams in the Amazon QuickSight User Guide.

" + }, + "ScatterPlotCategoricallyAggregatedFieldWells":{ + "type":"structure", + "members":{ + "XAxis":{ + "shape":"MeasureFieldList", + "documentation":"

The x-axis field well of a scatter plot.

The x-axis is aggregated by category.

" + }, + "YAxis":{ + "shape":"MeasureFieldList", + "documentation":"

The y-axis field well of a scatter plot.

The y-axis is aggregated by category.

" + }, + "Category":{ + "shape":"DimensionFieldList", + "documentation":"

The category field well of a scatter plot.

" + }, + "Size":{ + "shape":"MeasureFieldList", + "documentation":"

The size field well of a scatter plot.

" + } + }, + "documentation":"

The aggregated field well of a scatter plot.

" + }, + "ScatterPlotConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"ScatterPlotFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "XAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility, and sort icon visibility) of the scatter plot's x-axis.

" + }, + "XAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The label display options (grid line, range, scale, and axis step) of the scatter plot's x-axis.

" + }, + "YAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility, and sort icon visibility) of the scatter plot's y-axis.

" + }, + "YAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The label display options (grid line, range, scale, and axis step) of the scatter plot's y-axis.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The options that determine if visual data labels are displayed.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The palette (chart color) display setup of the visual.

" + } + }, + "documentation":"

The configuration of a scatter plot.

" + }, + "ScatterPlotFieldWells":{ + "type":"structure", + "members":{ + "ScatterPlotCategoricallyAggregatedFieldWells":{ + "shape":"ScatterPlotCategoricallyAggregatedFieldWells", + "documentation":"

The aggregated field wells of a scatter plot. Scatter plots that have a field in the category (group/color) field will have aggregated field wells. The x and y-axes of these scatter plots are aggregated by category.

" + }, + "ScatterPlotUnaggregatedFieldWells":{ + "shape":"ScatterPlotUnaggregatedFieldWells", + "documentation":"

The unaggregated field wells of a scatter plot. Scatter plots without a category field well have unaggregated field wells. The x and y-axes of these scatter plots are unaggregated.

" + } + }, + "documentation":"

The field well configuration of a scatter plot.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "ScatterPlotUnaggregatedFieldWells":{ + "type":"structure", + "members":{ + "XAxis":{ + "shape":"DimensionFieldList", + "documentation":"

The x-axis field well of a scatter plot.

The x-axis is a dimension field and cannot be aggregated.

" + }, + "YAxis":{ + "shape":"DimensionFieldList", + "documentation":"

The y-axis field well of a scatter plot.

The y-axis is a dimension field and cannot be aggregated.

" + }, + "Size":{ + "shape":"MeasureFieldList", + "documentation":"

The size field well of a scatter plot.

" + } + }, + "documentation":"

The unaggregated field wells of a scatter plot.

" + }, + "ScatterPlotVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"ScatterPlotConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A scatter plot.

For more information, see Using scatter plots in the Amazon QuickSight User Guide.

" + }, + "ScrollBarOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the data zoom scroll bar.

" + }, + "VisibleRange":{ + "shape":"VisibleRangeOptions", + "documentation":"

The visibility range for the data zoom scroll bar.

" + } + }, + "documentation":"

The visual display options for a data zoom scroll bar.

" + }, "SearchAnalysesRequest":{ "type":"structure", "required":[ @@ -10285,6 +18917,106 @@ } } }, + "SearchDataSetsRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "Filters" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Filters":{ + "shape":"DataSetSearchFilterList", + "documentation":"

The filters to apply to the search.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A pagination token that can be used in a subsequent request.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to be returned per request.

", + "box":true + } + } + }, + "SearchDataSetsResponse":{ + "type":"structure", + "members":{ + "DataSetSummaries":{ + "shape":"DataSetSummaryList", + "documentation":"

A DataSetSummaries object that returns a summary of a dataset.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A pagination token that can be used in a subsequent request.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, + "SearchDataSourcesRequest":{ + "type":"structure", + "required":[ + "AwsAccountId", + "Filters" + ], + "members":{ + "AwsAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID.

", + "location":"uri", + "locationName":"AwsAccountId" + }, + "Filters":{ + "shape":"DataSourceSearchFilterList", + "documentation":"

The filters to apply to the search.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A pagination token that can be used in a subsequent request.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to be returned per request.

", + "box":true + } + } + }, + "SearchDataSourcesResponse":{ + "type":"structure", + "members":{ + "DataSourceSummaries":{ + "shape":"DataSourceSummaryList", + "documentation":"

A DataSourceSummaries object that returns a summary of a data source.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A pagination token that can be used in a subsequent request.

" + }, + "Status":{ + "shape":"StatusCode", + "documentation":"

The HTTP status of the request.

", + "location":"statusCode" + }, + "RequestId":{ + "shape":"String", + "documentation":"

The Amazon Web Services request ID for this operation.

" + } + } + }, "SearchFoldersRequest":{ "type":"structure", "required":[ @@ -10396,6 +19128,229 @@ } } }, + "Seasonality":{ + "type":"integer", + "max":180, + "min":1 + }, + "SecondaryValueOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

Determines the visibility of the secondary value.

" + } + }, + "documentation":"

The options that determine the presentation of the secondary value of a KPI visual.

" + }, + "SecretArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^arn:[-a-z0-9]*:secretsmanager:[-a-z0-9]*:[0-9]{12}:secret:.+" + }, + "SectionAfterPageBreak":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"SectionPageBreakStatus", + "documentation":"

The option that enables or disables a page break at the end of a section.

" + } + }, + "documentation":"

The configuration of a page break after a section.

" + }, + "SectionBasedLayoutCanvasSizeOptions":{ + "type":"structure", + "members":{ + "PaperCanvasSizeOptions":{ + "shape":"SectionBasedLayoutPaperCanvasSizeOptions", + "documentation":"

The options for a paper canvas of a section-based layout.

" + } + }, + "documentation":"

The options for the canvas of a section-based layout.

" + }, + "SectionBasedLayoutConfiguration":{ + "type":"structure", + "required":[ + "HeaderSections", + "BodySections", + "FooterSections", + "CanvasSizeOptions" + ], + "members":{ + "HeaderSections":{ + "shape":"HeaderFooterSectionConfigurationList", + "documentation":"

A list of header section configurations.

" + }, + "BodySections":{ + "shape":"BodySectionConfigurationList", + "documentation":"

A list of body section configurations.

" + }, + "FooterSections":{ + "shape":"HeaderFooterSectionConfigurationList", + "documentation":"

A list of footer section configurations.

" + }, + "CanvasSizeOptions":{ + "shape":"SectionBasedLayoutCanvasSizeOptions", + "documentation":"

The options for the canvas of a section-based layout.

" + } + }, + "documentation":"

The configuration for a section-based layout.

" + }, + "SectionBasedLayoutPaperCanvasSizeOptions":{ + "type":"structure", + "members":{ + "PaperSize":{ + "shape":"PaperSize", + "documentation":"

The paper size that is used to define canvas dimensions.

" + }, + "PaperOrientation":{ + "shape":"PaperOrientation", + "documentation":"

The paper orientation that is used to define canvas dimensions. Choose one of the following options:

  • PORTRAIT

  • LANDSCAPE

" + }, + "PaperMargin":{ + "shape":"Spacing", + "documentation":"

Defines the spacing between the canvas content and the top, bottom, left, and right edges.

" + } + }, + "documentation":"

The options for a paper canvas of a section-based layout.

" + }, + "SectionLayoutConfiguration":{ + "type":"structure", + "required":["FreeFormLayout"], + "members":{ + "FreeFormLayout":{ + "shape":"FreeFormSectionLayoutConfiguration", + "documentation":"

The free-form layout configuration of a section.

" + } + }, + "documentation":"

The layout configuration of a section.

" + }, + "SectionPageBreakConfiguration":{ + "type":"structure", + "members":{ + "After":{ + "shape":"SectionAfterPageBreak", + "documentation":"

The configuration of a page break after a section.

" + } + }, + "documentation":"

The configuration of a page break for a section.

" + }, + "SectionPageBreakStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "SectionStyle":{ + "type":"structure", + "members":{ + "Height":{ + "shape":"PixelLength", + "documentation":"

The height of a section.

Heights can only be defined for header and footer sections. The default height margin is 0.5 inches.

" + }, + "Padding":{ + "shape":"Spacing", + "documentation":"

The spacing between section content and its top, bottom, left, and right edges.

There is no padding by default.

" + } + }, + "documentation":"

The options that style a section.

" + }, + "SelectAllValueOptions":{ + "type":"string", + "enum":["ALL_VALUES"] + }, + "SelectedFieldList":{ + "type":"list", + "member":{"shape":"FieldId"}, + "max":20, + "min":1 + }, + "SelectedFieldOptions":{ + "type":"string", + "enum":["ALL_FIELDS"] + }, + "SelectedSheetsFilterScopeConfiguration":{ + "type":"structure", + "members":{ + "SheetVisualScopingConfigurations":{ + "shape":"SheetVisualScopingConfigurations", + "documentation":"

The sheet ID and visual IDs of the sheet and visuals that the filter is applied to.

" + } + }, + "documentation":"

The configuration for applying a filter to specific sheets or visuals. You can apply this filter to multiple visuals that are on one sheet or to all visuals on a sheet.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "SelectedTooltipType":{ + "type":"string", + "enum":[ + "BASIC", + "DETAILED" + ] + }, + "SensitiveDouble":{ + "type":"double", + "sensitive":true + }, + "SensitiveDoubleList":{ + "type":"list", + "member":{"shape":"SensitiveDouble"} + }, + "SensitiveDoubleObject":{ + "type":"double", + "sensitive":true + }, + "SensitiveLong":{ + "type":"long", + "sensitive":true + }, + "SensitiveLongList":{ + "type":"list", + "member":{"shape":"SensitiveLong"} + }, + "SensitiveLongObject":{ + "type":"long", + "sensitive":true + }, + "SensitiveString":{ + "type":"string", + "sensitive":true + }, + "SensitiveStringList":{ + "type":"list", + "member":{"shape":"SensitiveString"} + }, + "SensitiveStringObject":{ + "type":"string", + "sensitive":true + }, + "SensitiveTimestamp":{ + "type":"timestamp", + "sensitive":true + }, + "SensitiveTimestampList":{ + "type":"list", + "member":{"shape":"SensitiveTimestamp"} + }, + "SeriesItem":{ + "type":"structure", + "members":{ + "FieldSeriesItem":{ + "shape":"FieldSeriesItem", + "documentation":"

The field series item configuration of a line chart.

" + }, + "DataFieldSeriesItem":{ + "shape":"DataFieldSeriesItem", + "documentation":"

The data field series item configuration of a line chart.

" + } + }, + "documentation":"

The series item configuration of a line chart.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "SeriesItemList":{ + "type":"list", + "member":{"shape":"SeriesItem"}, + "max":10 + }, "ServiceNowParameters":{ "type":"structure", "required":["SiteBaseUrl"], @@ -10460,20 +19415,112 @@ "min":1, "sensitive":true }, + "SetParameterValueConfiguration":{ + "type":"structure", + "required":[ + "DestinationParameterName", + "Value" + ], + "members":{ + "DestinationParameterName":{ + "shape":"ParameterName", + "documentation":"

The destination parameter name of the SetParameterValueConfiguration.

" + }, + "Value":{"shape":"DestinationParameterValueConfiguration"} + }, + "documentation":"

The configuration of adding parameters in action.

" + }, + "SetParameterValueConfigurationList":{ + "type":"list", + "member":{"shape":"SetParameterValueConfiguration"}, + "max":200, + "min":1 + }, + "ShapeConditionalFormat":{ + "type":"structure", + "required":["BackgroundColor"], + "members":{ + "BackgroundColor":{ + "shape":"ConditionalFormattingColor", + "documentation":"

The conditional formatting for the shape background color of a filled map visual.

" + } + }, + "documentation":"

The shape conditional formatting of a filled map visual.

" + }, "Sheet":{ "type":"structure", "members":{ "SheetId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The unique identifier associated with a sheet.

" }, "Name":{ - "shape":"NonEmptyString", + "shape":"SheetName", "documentation":"

The name of a sheet. This name is displayed on the sheet's tab in the Amazon QuickSight console.

" } }, "documentation":"

A sheet, which is an object that contains a set of visuals that are viewed together on one page in Amazon QuickSight. Every analysis and dashboard contains at least one sheet. Each sheet contains at least one visualization widget, for example a chart, pivot table, or narrative insight. Sheets can be associated with other components, such as controls, filters, and so on.

" }, + "SheetContentType":{ + "type":"string", + "enum":[ + "PAGINATED", + "INTERACTIVE" + ] + }, + "SheetControlDateTimePickerType":{ + "type":"string", + "enum":[ + "SINGLE_VALUED", + "DATE_RANGE" + ] + }, + "SheetControlLayout":{ + "type":"structure", + "required":["Configuration"], + "members":{ + "Configuration":{ + "shape":"SheetControlLayoutConfiguration", + "documentation":"

The configuration that determines the elements and canvas size options of sheet control.

" + } + }, + "documentation":"

A grid layout to define the placement of sheet control.

" + }, + "SheetControlLayoutConfiguration":{ + "type":"structure", + "members":{ + "GridLayout":{ + "shape":"GridLayoutConfiguration", + "documentation":"

The configuration that determines the elements and canvas size options of sheet control.

" + } + }, + "documentation":"

The configuration that determines the elements and canvas size options of sheet control.

" + }, + "SheetControlLayoutList":{ + "type":"list", + "member":{"shape":"SheetControlLayout"}, + "max":1, + "min":0 + }, + "SheetControlListType":{ + "type":"string", + "enum":[ + "MULTI_SELECT", + "SINGLE_SELECT" + ] + }, + "SheetControlSliderType":{ + "type":"string", + "enum":[ + "SINGLE_POINT", + "RANGE" + ] + }, + "SheetControlTitle":{ + "type":"string", + "max":2048, + "min":1 + }, "SheetControlsOption":{ "type":"structure", "members":{ @@ -10484,11 +19531,110 @@ }, "documentation":"

Sheet controls option.

" }, + "SheetDefinition":{ + "type":"structure", + "required":["SheetId"], + "members":{ + "SheetId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a sheet.

" + }, + "Title":{ + "shape":"SheetTitle", + "documentation":"

The title of the sheet.

" + }, + "Description":{ + "shape":"SheetDescription", + "documentation":"

A description of the sheet.

" + }, + "Name":{ + "shape":"SheetName", + "documentation":"

The name of the sheet. This name is displayed on the sheet's tab in the Amazon QuickSight console.

" + }, + "ParameterControls":{ + "shape":"ParameterControlList", + "documentation":"

The list of parameter controls that are on a sheet.

For more information, see Using a Control with a Parameter in Amazon QuickSight in the Amazon QuickSight User Guide.

" + }, + "FilterControls":{ + "shape":"FilterControlList", + "documentation":"

The list of filter controls that are on a sheet.

For more information, see Adding filter controls to analysis sheets in the Amazon QuickSight User Guide.

" + }, + "Visuals":{ + "shape":"VisualList", + "documentation":"

A list of the visuals that are on a sheet. Visual placement is determined by the layout of the sheet.

" + }, + "TextBoxes":{ + "shape":"SheetTextBoxList", + "documentation":"

The text boxes that are on a sheet.

" + }, + "Layouts":{ + "shape":"LayoutList", + "documentation":"

Layouts define how the components of a sheet are arranged.

For more information, see Types of layout in the Amazon QuickSight User Guide.

" + }, + "SheetControlLayouts":{ + "shape":"SheetControlLayoutList", + "documentation":"

The control layouts of the sheet.

" + }, + "ContentType":{ + "shape":"SheetContentType", + "documentation":"

The layout content type of the sheet. Choose one of the following options:

  • PAGINATED: Creates a sheet for a paginated report.

  • INTERACTIVE: Creates a sheet for an interactive dashboard.

" + } + }, + "documentation":"

A sheet is an object that contains a set of visuals that are viewed together on one page in a paginated report. Every analysis and dashboard must contain at least one sheet.

" + }, + "SheetDefinitionList":{ + "type":"list", + "member":{"shape":"SheetDefinition"}, + "max":20 + }, + "SheetDescription":{ + "type":"string", + "max":1024, + "min":1 + }, + "SheetElementConfigurationOverrides":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not the overrides are visible. Choose one of the following options:

  • VISIBLE

  • HIDDEN

" + } + }, + "documentation":"

The override configuration of the rendering rules of a sheet.

" + }, + "SheetElementRenderingRule":{ + "type":"structure", + "required":[ + "Expression", + "ConfigurationOverrides" + ], + "members":{ + "Expression":{ + "shape":"Expression", + "documentation":"

The expression of the rendering rules of a sheet.

" + }, + "ConfigurationOverrides":{ + "shape":"SheetElementConfigurationOverrides", + "documentation":"

The override configuration of the rendering rules of a sheet.

" + } + }, + "documentation":"

The rendering rules of a sheet that uses a free-form layout.

" + }, + "SheetElementRenderingRuleList":{ + "type":"list", + "member":{"shape":"SheetElementRenderingRule"}, + "max":10000 + }, "SheetList":{ "type":"list", "member":{"shape":"Sheet"}, "max":20 }, + "SheetName":{ + "type":"string", + "max":2048, + "min":1 + }, "SheetStyle":{ "type":"structure", "members":{ @@ -10503,11 +19649,179 @@ }, "documentation":"

The theme display options for sheets.

" }, + "SheetTextBox":{ + "type":"structure", + "required":["SheetTextBoxId"], + "members":{ + "SheetTextBoxId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier for a text box. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have text boxes that share identifiers.

" + }, + "Content":{ + "shape":"SheetTextBoxContent", + "documentation":"

The content that is displayed in the text box.

" + } + }, + "documentation":"

A text box.

" + }, + "SheetTextBoxContent":{ + "type":"string", + "max":150000 + }, + "SheetTextBoxList":{ + "type":"list", + "member":{"shape":"SheetTextBox"}, + "max":100 + }, + "SheetTitle":{ + "type":"string", + "max":1024, + "min":1 + }, + "SheetVisualScopingConfiguration":{ + "type":"structure", + "required":[ + "SheetId", + "Scope" + ], + "members":{ + "SheetId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The selected sheet that the filter is applied to.

" + }, + "Scope":{ + "shape":"FilterVisualScope", + "documentation":"

The scope of the applied entities. Choose one of the following options:

  • ALL_VISUALS

  • SELECTED_VISUALS

" + }, + "VisualIds":{ + "shape":"FilteredVisualsList", + "documentation":"

The selected visuals that the filter is applied to.

" + } + }, + "documentation":"

The filter that is applied to the options.

" + }, + "SheetVisualScopingConfigurations":{ + "type":"list", + "member":{"shape":"SheetVisualScopingConfiguration"}, + "max":50, + "min":1 + }, + "ShortFormatText":{ + "type":"structure", + "members":{ + "PlainText":{ + "shape":"ShortPlainText", + "documentation":"

Plain text format.

" + }, + "RichText":{ + "shape":"ShortRichText", + "documentation":"

Rich text. Examples of rich text include bold, underline, and italics.

" + } + }, + "documentation":"

The text format for the title.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "ShortPlainText":{ + "type":"string", + "max":512, + "min":1 + }, + "ShortRestrictiveResourceId":{ + "type":"string", + "max":512, + "min":1, + "pattern":"[\\w\\-]+" + }, + "ShortRichText":{ + "type":"string", + "max":1024, + "min":1 + }, + "SignupResponse":{ + "type":"structure", + "members":{ + "IAMUser":{ + "shape":"Boolean", + "documentation":"

A Boolean that is TRUE if the Amazon QuickSight uses IAM as an authentication method.

" + }, + "userLoginName":{ + "shape":"String", + "documentation":"

The user login name for your Amazon QuickSight account.

" + }, + "accountName":{ + "shape":"String", + "documentation":"

The name of your Amazon QuickSight account.

" + }, + "directoryType":{ + "shape":"String", + "documentation":"

The type of Active Directory that is being used to authenticate the Amazon QuickSight account. Valid values are SIMPLE_AD, AD_CONNECTOR, and MICROSOFT_AD.

" + } + }, + "documentation":"

A SignupResponse object that contains a summary of a newly created account.

" + }, + "SimpleClusterMarker":{ + "type":"structure", + "members":{ + "Color":{ + "shape":"HexColor", + "documentation":"

The color of the simple cluster marker.

" + } + }, + "documentation":"

The simple cluster marker of the cluster marker.

" + }, + "SimpleNumericalAggregationFunction":{ + "type":"string", + "enum":[ + "SUM", + "AVERAGE", + "MIN", + "MAX", + "COUNT", + "DISTINCT_COUNT", + "VAR", + "VARP", + "STDEV", + "STDEVP", + "MEDIAN" + ] + }, "SiteBaseUrl":{ "type":"string", "max":1024, "min":1 }, + "SliderControlDisplayOptions":{ + "type":"structure", + "members":{ + "TitleOptions":{ + "shape":"LabelOptions", + "documentation":"

The options to configure the title visibility, name, and font size.

" + } + }, + "documentation":"

The display options of a control.

" + }, + "SmallMultiplesDimensionFieldList":{ + "type":"list", + "member":{"shape":"DimensionField"}, + "max":1 + }, + "SmallMultiplesOptions":{ + "type":"structure", + "members":{ + "MaxVisibleRows":{ + "shape":"VisiblePanelRows", + "documentation":"

Sets the maximum number of visible rows to display in the grid of small multiples panels.

The default value is Auto, which automatically adjusts the rows in the grid to fit the overall layout and size of the given chart.

" + }, + "MaxVisibleColumns":{ + "shape":"VisiblePanelColumns", + "documentation":"

Sets the maximum number of visible columns to display in the grid of small multiples panels.

The default is Auto, which automatically adjusts the columns in the grid to fit the overall layout and size of the given chart.

" + }, + "PanelConfiguration":{ + "shape":"PanelConfiguration", + "documentation":"

Configures the display options for each small multiples panel.

" + } + }, + "documentation":"

Options that determine the layout and display options of a chart's small multiples.

" + }, "SnowflakeParameters":{ "type":"structure", "required":[ @@ -10531,6 +19845,35 @@ }, "documentation":"

The parameters for Snowflake.

" }, + "SortDirection":{ + "type":"string", + "enum":[ + "ASC", + "DESC" + ] + }, + "Spacing":{ + "type":"structure", + "members":{ + "Top":{ + "shape":"Length", + "documentation":"

Define the top spacing.

" + }, + "Bottom":{ + "shape":"Length", + "documentation":"

Define the bottom spacing.

" + }, + "Left":{ + "shape":"Length", + "documentation":"

Define the left spacing.

" + }, + "Right":{ + "shape":"Length", + "documentation":"

Define the right spacing.

" + } + }, + "documentation":"

The configuration of spacing (often a margin or padding).

" + }, "SparkParameters":{ "type":"structure", "required":[ @@ -10549,6 +19892,11 @@ }, "documentation":"

The parameters for Spark.

" }, + "SqlEndpointPath":{ + "type":"string", + "max":4096, + "min":1 + }, "SqlQuery":{ "type":"string", "max":65536, @@ -10596,6 +19944,39 @@ }, "StatusCode":{"type":"integer"}, "String":{"type":"string"}, + "StringDefaultValueList":{ + "type":"list", + "member":{"shape":"SensitiveStringObject"}, + "max":50000 + }, + "StringDefaultValues":{ + "type":"structure", + "members":{ + "DynamicValue":{ + "shape":"DynamicDefaultValue", + "documentation":"

The dynamic value of the StringDefaultValues. Different defaults displayed according to users, groups, and values mapping.

" + }, + "StaticValues":{ + "shape":"StringDefaultValueList", + "documentation":"

The static values of the DecimalDefaultValues.

" + } + }, + "documentation":"

The default values of the StringParameterDeclaration.

" + }, + "StringFormatConfiguration":{ + "type":"structure", + "members":{ + "NullValueFormatConfiguration":{ + "shape":"NullValueFormatConfiguration", + "documentation":"

The options that determine the null value format configuration.

" + }, + "NumericFormatConfiguration":{ + "shape":"NumericFormatConfiguration", + "documentation":"

The formatting configuration for numeric strings.

" + } + }, + "documentation":"

Formatting configuration for string fields.

" + }, "StringList":{ "type":"list", "member":{"shape":"String"} @@ -10612,17 +19993,577 @@ "documentation":"

A display name for a string parameter.

" }, "Values":{ - "shape":"StringList", + "shape":"SensitiveStringList", "documentation":"

The values of a string parameter.

" } }, "documentation":"

A string parameter.

" }, + "StringParameterDeclaration":{ + "type":"structure", + "required":[ + "ParameterValueType", + "Name" + ], + "members":{ + "ParameterValueType":{ + "shape":"ParameterValueType", + "documentation":"

The value type determines whether the parameter is a single-value or multi-value parameter.

" + }, + "Name":{ + "shape":"ParameterName", + "documentation":"

The name of the parameter that is being declared.

" + }, + "DefaultValues":{ + "shape":"StringDefaultValues", + "documentation":"

The default values of a parameter. If the parameter is a single-value parameter, a maximum of one default value can be provided.

" + }, + "ValueWhenUnset":{ + "shape":"StringValueWhenUnsetConfiguration", + "documentation":"

The configuration that defines the default value of a String parameter when a value has not been set.

" + } + }, + "documentation":"

A parameter declaration for the String data type.

" + }, "StringParameterList":{ "type":"list", "member":{"shape":"StringParameter"}, "max":100 }, + "StringValueWhenUnsetConfiguration":{ + "type":"structure", + "members":{ + "ValueWhenUnsetOption":{ + "shape":"ValueWhenUnsetOption", + "documentation":"

The built-in options for default values. The value can be one of the following:

  • RECOMMENDED: The recommended value.

  • NULL: The NULL value.

" + }, + "CustomValue":{ + "shape":"SensitiveString", + "documentation":"

A custom value that's used when the value of a parameter isn't set.

" + } + }, + "documentation":"

The configuration that defines the default value of a String parameter when a value has not been set.

" + }, + "SubtotalOptions":{ + "type":"structure", + "members":{ + "TotalsVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility configuration for the subtotal cells.

" + }, + "CustomLabel":{ + "shape":"String", + "documentation":"

The custom label string for the subtotal cells.

" + }, + "FieldLevel":{ + "shape":"PivotTableSubtotalLevel", + "documentation":"

The field level (all, custom, last) for the subtotal cells.

" + }, + "FieldLevelOptions":{ + "shape":"PivotTableFieldSubtotalOptionsList", + "documentation":"

The optional configuration of subtotal cells.

" + }, + "TotalCellStyle":{ + "shape":"TableCellStyle", + "documentation":"

The cell styling options for the subtotal cells.

" + }, + "ValueCellStyle":{ + "shape":"TableCellStyle", + "documentation":"

The cell styling options for the subtotals of value cells.

" + }, + "MetricHeaderCellStyle":{ + "shape":"TableCellStyle", + "documentation":"

The cell styling options for the subtotals of header cells.

" + } + }, + "documentation":"

The subtotal options.

" + }, + "Suffix":{ + "type":"string", + "max":128, + "min":1, + "sensitive":true + }, + "TableAggregatedFieldWells":{ + "type":"structure", + "members":{ + "GroupBy":{ + "shape":"DimensionFieldList", + "documentation":"

The group by field well for a pivot table. Values are grouped by group by fields.

" + }, + "Values":{ + "shape":"MeasureFieldList", + "documentation":"

The values field well for a pivot table. Values are aggregated based on group by fields.

" + } + }, + "documentation":"

The aggregated field well for the table.

" + }, + "TableBorderOptions":{ + "type":"structure", + "members":{ + "Color":{ + "shape":"HexColor", + "documentation":"

The color of a table border.

" + }, + "Thickness":{ + "shape":"TableBorderThickness", + "documentation":"

The thickness of a table border.

" + }, + "Style":{ + "shape":"TableBorderStyle", + "documentation":"

The style (none, solid) of a table border.

" + } + }, + "documentation":"

The border options for a table border.

" + }, + "TableBorderStyle":{ + "type":"string", + "enum":[ + "NONE", + "SOLID" + ] + }, + "TableBorderThickness":{ + "type":"integer", + "max":4, + "min":1 + }, + "TableCellConditionalFormatting":{ + "type":"structure", + "required":["FieldId"], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID of the cell for conditional formatting.

" + }, + "TextFormat":{ + "shape":"TextConditionalFormat", + "documentation":"

The text format of the cell for conditional formatting.

" + } + }, + "documentation":"

The cell conditional formatting option for a table.

" + }, + "TableCellImageScalingConfiguration":{ + "type":"string", + "enum":[ + "FIT_TO_CELL_HEIGHT", + "FIT_TO_CELL_WIDTH", + "DO_NOT_SCALE" + ] + }, + "TableCellImageSizingConfiguration":{ + "type":"structure", + "members":{ + "TableCellImageScalingConfiguration":{ + "shape":"TableCellImageScalingConfiguration", + "documentation":"

The cell scaling configuration of the sizing options for the table image configuration.

" + } + }, + "documentation":"

The sizing options for the table image configuration.

" + }, + "TableCellStyle":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the table cells.

" + }, + "FontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

The font configuration of the table cells.

" + }, + "TextWrap":{ + "shape":"TextWrap", + "documentation":"

The text wrap (none, wrap) for the table cells.

" + }, + "HorizontalTextAlignment":{ + "shape":"HorizontalTextAlignment", + "documentation":"

The horizontal text alignment (left, center, right, auto) for the table cells.

" + }, + "VerticalTextAlignment":{ + "shape":"VerticalTextAlignment", + "documentation":"

The vertical text alignment (top, middle, bottom) for the table cells.

" + }, + "BackgroundColor":{ + "shape":"HexColor", + "documentation":"

The background color for the table cells.

" + }, + "Height":{ + "shape":"TableFieldHeight", + "documentation":"

The height color for the table cells.

" + }, + "Border":{ + "shape":"GlobalTableBorderOptions", + "documentation":"

The borders for the table cells.

" + } + }, + "documentation":"

The table cell style for a cell in pivot table or table visual.

" + }, + "TableConditionalFormatting":{ + "type":"structure", + "members":{ + "ConditionalFormattingOptions":{ + "shape":"TableConditionalFormattingOptionList", + "documentation":"

Conditional formatting options for a PivotTableVisual.

" + } + }, + "documentation":"

The conditional formatting for a PivotTableVisual.

" + }, + "TableConditionalFormattingOption":{ + "type":"structure", + "members":{ + "Cell":{ + "shape":"TableCellConditionalFormatting", + "documentation":"

The cell conditional formatting option for a table.

" + }, + "Row":{ + "shape":"TableRowConditionalFormatting", + "documentation":"

The row conditional formatting option for a table.

" + } + }, + "documentation":"

Conditional formatting options for a PivotTableVisual.

" + }, + "TableConditionalFormattingOptionList":{ + "type":"list", + "member":{"shape":"TableConditionalFormattingOption"}, + "max":100 + }, + "TableConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"TableFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"TableSortConfiguration", + "documentation":"

The sort configuration for a TableVisual.

" + }, + "TableOptions":{ + "shape":"TableOptions", + "documentation":"

The table options for a table visual.

" + }, + "TotalOptions":{ + "shape":"TotalOptions", + "documentation":"

The total options for a table visual.

" + }, + "FieldOptions":{ + "shape":"TableFieldOptions", + "documentation":"

The field options for a table visual.

" + }, + "PaginatedReportOptions":{ + "shape":"TablePaginatedReportOptions", + "documentation":"

The paginated report options for a table visual.

" + } + }, + "documentation":"

The configuration for a TableVisual.

" + }, + "TableFieldCustomIconContent":{ + "type":"structure", + "members":{ + "Icon":{ + "shape":"TableFieldIconSetType", + "documentation":"

The icon set type (link) of the custom icon content for table URL link content.

" + } + }, + "documentation":"

The custom icon content for the table link content configuration.

" + }, + "TableFieldCustomTextContent":{ + "type":"structure", + "required":["FontConfiguration"], + "members":{ + "Value":{ + "shape":"String", + "documentation":"

The string value of the custom text content for the table URL link content.

" + }, + "FontConfiguration":{ + "shape":"FontConfiguration", + "documentation":"

The font configuration of the custom text content for the table URL link content.

" + } + }, + "documentation":"

The custom text content (value, font configuration) for the table link content configuration.

" + }, + "TableFieldHeight":{ + "type":"integer", + "max":500, + "min":8 + }, + "TableFieldIconSetType":{ + "type":"string", + "enum":["LINK"] + }, + "TableFieldImageConfiguration":{ + "type":"structure", + "members":{ + "SizingOptions":{ + "shape":"TableCellImageSizingConfiguration", + "documentation":"

The sizing options for the table image configuration.

" + } + }, + "documentation":"

The image configuration of a table field URL.

" + }, + "TableFieldLinkConfiguration":{ + "type":"structure", + "required":[ + "Target", + "Content" + ], + "members":{ + "Target":{ + "shape":"URLTargetConfiguration", + "documentation":"

The URL target (new tab, new window, same tab) for the table link configuration.

" + }, + "Content":{ + "shape":"TableFieldLinkContentConfiguration", + "documentation":"

The URL content (text, icon) for the table link configuration.

" + } + }, + "documentation":"

The link configuration of a table field URL.

" + }, + "TableFieldLinkContentConfiguration":{ + "type":"structure", + "members":{ + "CustomTextContent":{ + "shape":"TableFieldCustomTextContent", + "documentation":"

The custom text content (value, font configuration) for the table link content configuration.

" + }, + "CustomIconContent":{ + "shape":"TableFieldCustomIconContent", + "documentation":"

The custom icon content for the table link content configuration.

" + } + }, + "documentation":"

The URL content (text, icon) for the table link configuration.

" + }, + "TableFieldOption":{ + "type":"structure", + "required":["FieldId"], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The field ID for a table field.

" + }, + "Width":{ + "shape":"PixelLength", + "documentation":"

The width for a table field.

" + }, + "CustomLabel":{ + "shape":"CustomLabel", + "documentation":"

The custom label for a table field.

" + }, + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of a table field.

" + }, + "URLStyling":{ + "shape":"TableFieldURLConfiguration", + "documentation":"

The URL configuration for a table field.

" + } + }, + "documentation":"

The options for a table field.

" + }, + "TableFieldOptionList":{ + "type":"list", + "member":{"shape":"TableFieldOption"}, + "max":100 + }, + "TableFieldOptions":{ + "type":"structure", + "members":{ + "SelectedFieldOptions":{ + "shape":"TableFieldOptionList", + "documentation":"

The selected field options for the table field options.

" + }, + "Order":{ + "shape":"FieldOrderList", + "documentation":"

The order of field IDs of the field options for a table visual.

" + } + }, + "documentation":"

The field options for a table visual.

" + }, + "TableFieldURLConfiguration":{ + "type":"structure", + "members":{ + "LinkConfiguration":{ + "shape":"TableFieldLinkConfiguration", + "documentation":"

The link configuration of a table field URL.

" + }, + "ImageConfiguration":{ + "shape":"TableFieldImageConfiguration", + "documentation":"

The image configuration of a table field URL.

" + } + }, + "documentation":"

The URL configuration for a table field.

" + }, + "TableFieldWells":{ + "type":"structure", + "members":{ + "TableAggregatedFieldWells":{ + "shape":"TableAggregatedFieldWells", + "documentation":"

The aggregated field well for the table.

" + }, + "TableUnaggregatedFieldWells":{ + "shape":"TableUnaggregatedFieldWells", + "documentation":"

The unaggregated field well for the table.

" + } + }, + "documentation":"

The field wells for a table visual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "TableOptions":{ + "type":"structure", + "members":{ + "Orientation":{ + "shape":"TableOrientation", + "documentation":"

The orientation (vertical, horizontal) for a table.

" + }, + "HeaderStyle":{ + "shape":"TableCellStyle", + "documentation":"

The table cell style of a table header.

" + }, + "CellStyle":{ + "shape":"TableCellStyle", + "documentation":"

The table cell style of table cells.

" + }, + "RowAlternateColorOptions":{ + "shape":"RowAlternateColorOptions", + "documentation":"

The row alternate color options (widget status, row alternate colors) for a table.

" + } + }, + "documentation":"

The table options for a table visual.

" + }, + "TableOrientation":{ + "type":"string", + "enum":[ + "VERTICAL", + "HORIZONTAL" + ] + }, + "TablePaginatedReportOptions":{ + "type":"structure", + "members":{ + "VerticalOverflowVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility of printing table overflow across pages.

" + }, + "OverflowColumnHeaderVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility of repeating header rows on each page.

" + } + }, + "documentation":"

The paginated report options for a table visual.

" + }, + "TableRowConditionalFormatting":{ + "type":"structure", + "members":{ + "BackgroundColor":{ + "shape":"ConditionalFormattingColor", + "documentation":"

The conditional formatting color (solid, gradient) of the background for a table row.

" + }, + "TextColor":{ + "shape":"ConditionalFormattingColor", + "documentation":"

The conditional formatting color (solid, gradient) of the text for a table row.

" + } + }, + "documentation":"

The conditional formatting of a table row.

" + }, + "TableSideBorderOptions":{ + "type":"structure", + "members":{ + "InnerVertical":{ + "shape":"TableBorderOptions", + "documentation":"

The table border options of the inner vertical border.

" + }, + "InnerHorizontal":{ + "shape":"TableBorderOptions", + "documentation":"

The table border options of the inner horizontal border.

" + }, + "Left":{ + "shape":"TableBorderOptions", + "documentation":"

The table border options of the left border.

" + }, + "Right":{ + "shape":"TableBorderOptions", + "documentation":"

The table border options of the right border.

" + }, + "Top":{ + "shape":"TableBorderOptions", + "documentation":"

The table border options of the top border.

" + }, + "Bottom":{ + "shape":"TableBorderOptions", + "documentation":"

The table border options of the bottom border.

" + } + }, + "documentation":"

The side border options for a table.

" + }, + "TableSortConfiguration":{ + "type":"structure", + "members":{ + "RowSort":{ + "shape":"RowSortList", + "documentation":"

The field sort options for rows in the table.

" + }, + "PaginationConfiguration":{ + "shape":"PaginationConfiguration", + "documentation":"

The pagination configuration (page size, page number) for the table.

" + } + }, + "documentation":"

The sort configuration for a TableVisual.

" + }, + "TableTotalsPlacement":{ + "type":"string", + "enum":[ + "START", + "END" + ] + }, + "TableTotalsScrollStatus":{ + "type":"string", + "enum":[ + "PINNED", + "SCROLLED" + ] + }, + "TableUnaggregatedFieldWells":{ + "type":"structure", + "members":{ + "Values":{ + "shape":"UnaggregatedFieldList", + "documentation":"

The values field well for a pivot table. Values are unaggregated for an unaggregated table.

" + } + }, + "documentation":"

The unaggregated field well for the table.

" + }, + "TableVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers..

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"TableConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "ConditionalFormatting":{ + "shape":"TableConditionalFormatting", + "documentation":"

The conditional formatting for a PivotTableVisual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + } + }, + "documentation":"

A table visual.

For more information, see Using tables as visuals in the Amazon QuickSight User Guide.

" + }, "Tag":{ "type":"structure", "required":[ @@ -10714,6 +20655,16 @@ "max":256, "min":1 }, + "TargetVisualList":{ + "type":"list", + "member":{"shape":"ShortRestrictiveResourceId"}, + "max":30, + "min":1 + }, + "TargetVisualOptions":{ + "type":"string", + "enum":["ALL_VISUALS"] + }, "Template":{ "type":"structure", "members":{ @@ -10730,7 +20681,7 @@ "documentation":"

A structure describing the versions of the template.

" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template. This is unique per Amazon Web Services Region for each Amazon Web Services account.

" }, "LastUpdatedTime":{ @@ -10777,6 +20728,10 @@ "Message":{ "shape":"NonEmptyString", "documentation":"

Description of the error type.

" + }, + "ViolatedEntities":{ + "shape":"EntityList", + "documentation":"

" } }, "documentation":"

List of errors that occurred when the template version creation failed.

" @@ -10851,7 +20806,7 @@ "documentation":"

A summary of a template.

" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the template. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.

" }, "Name":{ @@ -10920,6 +20875,38 @@ }, "documentation":"

A version of a template.

" }, + "TemplateVersionDefinition":{ + "type":"structure", + "required":["DataSetConfigurations"], + "members":{ + "DataSetConfigurations":{ + "shape":"DataSetConfigurationList", + "documentation":"

An array of dataset configurations. These configurations define the required columns for each dataset used within a template.

" + }, + "Sheets":{ + "shape":"SheetDefinitionList", + "documentation":"

An array of sheet definitions for a template.

" + }, + "CalculatedFields":{ + "shape":"CalculatedFields", + "documentation":"

An array of calculated field definitions for the template.

" + }, + "ParameterDeclarations":{ + "shape":"ParameterDeclarationList", + "documentation":"

An array of parameter declarations for a template.

Parameters are named variables that can transfer a value for use by an action or an object.

For more information, see Parameters in Amazon QuickSight in the Amazon QuickSight User Guide.

" + }, + "FilterGroups":{ + "shape":"FilterGroupList", + "documentation":"

Filter definitions for a template.

For more information, see Filtering Data in the Amazon QuickSight User Guide.

" + }, + "ColumnConfigurations":{ + "shape":"ColumnConfigurationList", + "documentation":"

An array of template-level column configurations. Column configurations are used to set default formatting for a column that's used throughout a template.

" + }, + "AnalysisDefaults":{"shape":"AnalysisDefaults"} + }, + "documentation":"

The detailed definition of a template.

" + }, "TemplateVersionSummary":{ "type":"structure", "members":{ @@ -10974,6 +20961,67 @@ }, "documentation":"

The parameters for Teradata.

" }, + "TextAreaControlDelimiter":{ + "type":"string", + "max":2048, + "min":1 + }, + "TextAreaControlDisplayOptions":{ + "type":"structure", + "members":{ + "TitleOptions":{ + "shape":"LabelOptions", + "documentation":"

The options to configure the title visibility, name, and font size.

" + }, + "PlaceholderOptions":{ + "shape":"TextControlPlaceholderOptions", + "documentation":"

The configuration of the placeholder options in a text area control.

" + } + }, + "documentation":"

The display options of a control.

" + }, + "TextConditionalFormat":{ + "type":"structure", + "members":{ + "BackgroundColor":{ + "shape":"ConditionalFormattingColor", + "documentation":"

The conditional formatting for the text background color.

" + }, + "TextColor":{ + "shape":"ConditionalFormattingColor", + "documentation":"

The conditional formatting for the text color.

" + }, + "Icon":{ + "shape":"ConditionalFormattingIcon", + "documentation":"

The conditional formatting for the icon.

" + } + }, + "documentation":"

The conditional formatting for the text.

" + }, + "TextControlPlaceholderOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility configuration of the placeholder options in a text control.

" + } + }, + "documentation":"

The configuration of the placeholder options in a text control.

" + }, + "TextFieldControlDisplayOptions":{ + "type":"structure", + "members":{ + "TitleOptions":{ + "shape":"LabelOptions", + "documentation":"

The options to configure the title visibility, name, and font size.

" + }, + "PlaceholderOptions":{ + "shape":"TextControlPlaceholderOptions", + "documentation":"

The configuration of the placeholder options in a text field control.

" + } + }, + "documentation":"

The display options of a control.

" + }, "TextQualifier":{ "type":"string", "enum":[ @@ -10981,6 +21029,13 @@ "SINGLE_QUOTE" ] }, + "TextWrap":{ + "type":"string", + "enum":[ + "NONE", + "WRAP" + ] + }, "Theme":{ "type":"structure", "members":{ @@ -10993,7 +21048,7 @@ "documentation":"

The name that the user gives to the theme.

" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The identifier that the user gives to the theme.

" }, "Version":{"shape":"ThemeVersion"}, @@ -11049,7 +21104,8 @@ "Sheet":{ "shape":"SheetStyle", "documentation":"

Display options related to sheets.

" - } + }, + "Typography":{"shape":"Typography"} }, "documentation":"

The theme configuration. This configuration contains all of the display properties for a theme.

" }, @@ -11093,7 +21149,7 @@ "documentation":"

the display name for the theme.

" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the theme. This ID is unique per Amazon Web Services Region for each Amazon Web Services account.

" }, "LatestVersionNumber":{ @@ -11140,7 +21196,7 @@ "documentation":"

The description of the theme.

" }, "BaseThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The Amazon QuickSight-defined ID of the theme that a custom theme inherits from. All themes initially inherit from a default Amazon QuickSight theme.

" }, "CreatedTime":{ @@ -11193,6 +21249,20 @@ "member":{"shape":"ThemeVersionSummary"}, "max":100 }, + "ThousandSeparatorOptions":{ + "type":"structure", + "members":{ + "Symbol":{ + "shape":"NumericSeparatorSymbol", + "documentation":"

Determines the thousands separator symbol.

" + }, + "Visibility":{ + "shape":"Visibility", + "documentation":"

Determines the visibility of the thousands separator.

" + } + }, + "documentation":"

The options that determine the thousands separator configuration.

" + }, "ThrottlingException":{ "type":"structure", "members":{ @@ -11230,10 +21300,412 @@ }, "documentation":"

Display options related to tiles on a sheet.

" }, + "TimeBasedForecastProperties":{ + "type":"structure", + "members":{ + "PeriodsForward":{ + "shape":"PeriodsForward", + "documentation":"

The periods forward setup of a forecast computation.

", + "box":true + }, + "PeriodsBackward":{ + "shape":"PeriodsBackward", + "documentation":"

The periods backward setup of a forecast computation.

", + "box":true + }, + "UpperBoundary":{ + "shape":"Double", + "documentation":"

The upper boundary setup of a forecast computation.

", + "box":true + }, + "LowerBoundary":{ + "shape":"Double", + "documentation":"

The lower boundary setup of a forecast computation.

", + "box":true + }, + "PredictionInterval":{ + "shape":"PredictionInterval", + "documentation":"

The prediction interval setup of a forecast computation.

", + "box":true + }, + "Seasonality":{ + "shape":"Seasonality", + "documentation":"

The seasonality setup of a forecast computation. Choose one of the following options:

  • NULL: The input is set to NULL.

  • NON_NULL: The input is set to a custom value.

", + "box":true + } + }, + "documentation":"

The forecast properties setup of a forecast in the line chart.

" + }, + "TimeEqualityFilter":{ + "type":"structure", + "required":[ + "FilterId", + "Column" + ], + "members":{ + "FilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

An identifier that uniquely identifies a filter within a dashboard, analysis, or template.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "Value":{ + "shape":"Timestamp", + "documentation":"

The value of a TimeEquality filter.

This field is mutually exclusive to ParameterName.

" + }, + "ParameterName":{ + "shape":"ParameterName", + "documentation":"

The parameter whose value should be used for the filter value.

This field is mutually exclusive to Value.

" + }, + "TimeGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The level of time precision that is used to aggregate DateTime values.

" + } + }, + "documentation":"

A TimeEqualityFilter filters values that are equal to a given value.

" + }, + "TimeGranularity":{ + "type":"string", + "enum":[ + "YEAR", + "QUARTER", + "MONTH", + "WEEK", + "DAY", + "HOUR", + "MINUTE", + "SECOND", + "MILLISECOND" + ] + }, + "TimeRangeDrillDownFilter":{ + "type":"structure", + "required":[ + "Column", + "RangeMinimum", + "RangeMaximum", + "TimeGranularity" + ], + "members":{ + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "RangeMinimum":{ + "shape":"Timestamp", + "documentation":"

The minimum value for the filter value range.

" + }, + "RangeMaximum":{ + "shape":"Timestamp", + "documentation":"

The maximum value for the filter value range.

" + }, + "TimeGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The level of time precision that is used to aggregate DateTime values.

" + } + }, + "documentation":"

The time range drill down filter.

" + }, + "TimeRangeFilter":{ + "type":"structure", + "required":[ + "FilterId", + "Column", + "NullOption" + ], + "members":{ + "FilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

An identifier that uniquely identifies a filter within a dashboard, analysis, or template.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "IncludeMinimum":{ + "shape":"Boolean", + "documentation":"

Determines whether the minimum value in the filter value range should be included in the filtered results.

", + "box":true + }, + "IncludeMaximum":{ + "shape":"Boolean", + "documentation":"

Determines whether the maximum value in the filter value range should be included in the filtered results.

", + "box":true + }, + "RangeMinimumValue":{ + "shape":"TimeRangeFilterValue", + "documentation":"

The minimum value for the filter value range.

" + }, + "RangeMaximumValue":{ + "shape":"TimeRangeFilterValue", + "documentation":"

The maximum value for the filter value range.

" + }, + "NullOption":{ + "shape":"FilterNullOption", + "documentation":"

This option determines how null values should be treated when filtering data.

  • ALL_VALUES: Include null values in filtered results.

  • NULLS_ONLY: Only include null values in filtered results.

  • NON_NULLS_ONLY: Exclude null values from filtered results.

" + }, + "ExcludePeriodConfiguration":{ + "shape":"ExcludePeriodConfiguration", + "documentation":"

The exclude period of the time range filter.

" + }, + "TimeGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The level of time precision that is used to aggregate DateTime values.

" + } + }, + "documentation":"

A TimeRangeFilter filters values that are between two specified values.

" + }, + "TimeRangeFilterValue":{ + "type":"structure", + "members":{ + "StaticValue":{ + "shape":"Timestamp", + "documentation":"

The static input value.

" + }, + "RollingDate":{ + "shape":"RollingDateConfiguration", + "documentation":"

The rolling date input value.

" + }, + "Parameter":{ + "shape":"ParameterName", + "documentation":"

The parameter type input value.

" + } + }, + "documentation":"

The value of a time range filter.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, "Timestamp":{"type":"timestamp"}, - "TimestampList":{ + "TooltipItem":{ + "type":"structure", + "members":{ + "FieldTooltipItem":{ + "shape":"FieldTooltipItem", + "documentation":"

The tooltip item for the fields.

" + }, + "ColumnTooltipItem":{ + "shape":"ColumnTooltipItem", + "documentation":"

The tooltip item for the columns that are not part of a field well.

" + } + }, + "documentation":"

The tooltip.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "TooltipItemList":{ "type":"list", - "member":{"shape":"Timestamp"} + "member":{"shape":"TooltipItem"}, + "max":100 + }, + "TooltipOptions":{ + "type":"structure", + "members":{ + "TooltipVisibility":{ + "shape":"Visibility", + "documentation":"

Determines whether or not the tooltip is visible.

" + }, + "SelectedTooltipType":{ + "shape":"SelectedTooltipType", + "documentation":"

The selected type for the tooltip. Choose one of the following options:

  • BASIC: A basic tooltip.

  • DETAILED: A detailed tooltip.

" + }, + "FieldBasedTooltip":{ + "shape":"FieldBasedTooltip", + "documentation":"

The setup for the detailed tooltip. The tooltip setup is always saved. The display type is decided based on the tooltip type.

" + } + }, + "documentation":"

The display options for the visual tooltip.

" + }, + "TooltipTitleType":{ + "type":"string", + "enum":[ + "NONE", + "PRIMARY_VALUE" + ] + }, + "TopBottomComputationType":{ + "type":"string", + "enum":[ + "TOP", + "BOTTOM" + ] + }, + "TopBottomFilter":{ + "type":"structure", + "required":[ + "FilterId", + "Column", + "AggregationSortConfigurations" + ], + "members":{ + "FilterId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

An identifier that uniquely identifies a filter within a dashboard, analysis, or template.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that the filter is applied to.

" + }, + "Limit":{ + "shape":"Integer", + "documentation":"

The number of items to include in the top bottom filter results.

", + "box":true + }, + "AggregationSortConfigurations":{ + "shape":"AggregationSortConfigurationList", + "documentation":"

The aggregation and sort configuration of the top bottom filter.

" + }, + "TimeGranularity":{ + "shape":"TimeGranularity", + "documentation":"

The level of time precision that is used to aggregate DateTime values.

" + }, + "ParameterName":{ + "shape":"ParameterName", + "documentation":"

The parameter whose value should be used for the filter value.

" + } + }, + "documentation":"

A TopBottomFilter filters values that are at the top or the bottom.

" + }, + "TopBottomMoversComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Time", + "Category", + "Type" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Time":{ + "shape":"DimensionField", + "documentation":"

The time field that is used in a computation.

" + }, + "Category":{ + "shape":"DimensionField", + "documentation":"

The category field that is used in a computation.

" + }, + "Value":{ + "shape":"MeasureField", + "documentation":"

The value field that is used in a computation.

" + }, + "MoverSize":{ + "shape":"TopBottomMoversComputationMoverSize", + "documentation":"

The mover size setup of the top and bottom movers computation.

" + }, + "SortOrder":{ + "shape":"TopBottomSortOrder", + "documentation":"

The sort order setup of the top and bottom movers computation.

" + }, + "Type":{ + "shape":"TopBottomComputationType", + "documentation":"

The computation type. Choose from the following options:

  • TOP: Top movers computation.

  • BOTTOM: Bottom movers computation.

" + } + }, + "documentation":"

The top movers and bottom movers computation setup.

" + }, + "TopBottomMoversComputationMoverSize":{ + "type":"integer", + "max":20, + "min":1 + }, + "TopBottomRankedComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Category", + "Type" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Category":{ + "shape":"DimensionField", + "documentation":"

The category field that is used in a computation.

" + }, + "Value":{ + "shape":"MeasureField", + "documentation":"

The value field that is used in a computation.

" + }, + "ResultSize":{ + "shape":"TopBottomRankedComputationResultSize", + "documentation":"

The result size of a top and bottom ranked computation.

" + }, + "Type":{ + "shape":"TopBottomComputationType", + "documentation":"

The computation type. Choose one of the following options:

  • TOP: A top ranked computation.

  • BOTTOM: A bottom ranked computation.

" + } + }, + "documentation":"

The top ranked and bottom ranked computation configuration.

" + }, + "TopBottomRankedComputationResultSize":{ + "type":"integer", + "max":20, + "min":1 + }, + "TopBottomSortOrder":{ + "type":"string", + "enum":[ + "PERCENT_DIFFERENCE", + "ABSOLUTE_DIFFERENCE" + ] + }, + "TotalAggregationComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Value" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Value":{ + "shape":"MeasureField", + "documentation":"

The value field that is used in a computation.

" + } + }, + "documentation":"

The total aggregation computation configuration.

" + }, + "TotalOptions":{ + "type":"structure", + "members":{ + "TotalsVisibility":{ + "shape":"Visibility", + "documentation":"

The visibility configuration for the total cells.

" + }, + "Placement":{ + "shape":"TableTotalsPlacement", + "documentation":"

The placement (start, end) for the total cells.

" + }, + "ScrollStatus":{ + "shape":"TableTotalsScrollStatus", + "documentation":"

The scroll status (pinned, scrolled) for the total cells.

" + }, + "CustomLabel":{ + "shape":"String", + "documentation":"

The custom label string for the total cells.

" + }, + "TotalCellStyle":{ + "shape":"TableCellStyle", + "documentation":"

Cell styling options for the total cells.

" + } + }, + "documentation":"

The total options for a table visual.

" }, "TransformOperation":{ "type":"structure", @@ -11272,6 +21744,141 @@ "max":2048, "min":1 }, + "TreeMapAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Groups":{ + "shape":"TreeMapDimensionFieldList", + "documentation":"

The group by field well of a tree map. Values are grouped based on group by fields.

" + }, + "Sizes":{ + "shape":"TreeMapMeasureFieldList", + "documentation":"

The size field well of a tree map. Values are aggregated based on group by fields.

" + }, + "Colors":{ + "shape":"TreeMapMeasureFieldList", + "documentation":"

The color field well of a tree map. Values are grouped by aggregations based on group by fields.

" + } + }, + "documentation":"

Aggregated field wells of a tree map.

" + }, + "TreeMapConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"TreeMapFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"TreeMapSortConfiguration", + "documentation":"

The sort configuration of a tree map.

" + }, + "GroupLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility) of the groups that are displayed in a tree map.

" + }, + "SizeLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility) of the sizes that are displayed in a tree map.

" + }, + "ColorLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility) for the colors displayed in a tree map.

" + }, + "ColorScale":{ + "shape":"ColorScale", + "documentation":"

The color options (gradient color, point of divergence) of a tree map.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend display setup of the visual.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The options that determine if visual data labels are displayed.

" + }, + "Tooltip":{ + "shape":"TooltipOptions", + "documentation":"

The tooltip display setup of the visual.

" + } + }, + "documentation":"

The configuration of a tree map.

" + }, + "TreeMapDimensionFieldList":{ + "type":"list", + "member":{"shape":"DimensionField"}, + "max":1 + }, + "TreeMapFieldWells":{ + "type":"structure", + "members":{ + "TreeMapAggregatedFieldWells":{ + "shape":"TreeMapAggregatedFieldWells", + "documentation":"

The aggregated field wells of a tree map.

" + } + }, + "documentation":"

The field wells of a tree map.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "TreeMapMeasureFieldList":{ + "type":"list", + "member":{"shape":"MeasureField"}, + "max":1 + }, + "TreeMapSortConfiguration":{ + "type":"structure", + "members":{ + "TreeMapSort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of group by fields.

" + }, + "TreeMapGroupItemsLimitConfiguration":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of groups that are displayed.

" + } + }, + "documentation":"

The sort configuration of a tree map.

" + }, + "TreeMapVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers..

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"TreeMapConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A tree map.

For more information, see Using tree maps in the Amazon QuickSight User Guide.

" + }, + "TrendArrowOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the trend arrows.

" + } + }, + "documentation":"

The options that determine the presentation of trend arrows in a KPI visual.

" + }, "TwitterParameters":{ "type":"structure", "required":[ @@ -11294,6 +21901,16 @@ "type":"string", "max":32 }, + "Typography":{ + "type":"structure", + "members":{ + "FontFamilies":{ + "shape":"FontList", + "documentation":"

Determines the list of font families.

" + } + }, + "documentation":"

Determines the typography options.

" + }, "UIColorPalette":{ "type":"structure", "members":{ @@ -11364,6 +21981,76 @@ }, "documentation":"

The theme colors that apply to UI and to charts, excluding data colors. The colors description is a hexadecimal color code that consists of six alphanumerical characters, prefixed with #, for example #37BFF5. For more information, see Using Themes in Amazon QuickSight in the Amazon QuickSight User Guide.

" }, + "URLOperationTemplate":{ + "type":"string", + "max":2048, + "min":1 + }, + "URLTargetConfiguration":{ + "type":"string", + "enum":[ + "NEW_TAB", + "NEW_WINDOW", + "SAME_TAB" + ] + }, + "UnaggregatedField":{ + "type":"structure", + "required":[ + "FieldId", + "Column" + ], + "members":{ + "FieldId":{ + "shape":"FieldId", + "documentation":"

The custom field ID.

" + }, + "Column":{ + "shape":"ColumnIdentifier", + "documentation":"

The column that is used in the UnaggregatedField.

" + }, + "FormatConfiguration":{ + "shape":"FormatConfiguration", + "documentation":"

The format configuration of the field.

" + } + }, + "documentation":"

The unaggregated field for a table.

" + }, + "UnaggregatedFieldList":{ + "type":"list", + "member":{"shape":"UnaggregatedField"}, + "max":200 + }, + "UnicodeIcon":{ + "type":"string", + "pattern":"^[^\\u0000-\\u00FF]$" + }, + "UniqueValuesComputation":{ + "type":"structure", + "required":[ + "ComputationId", + "Category" + ], + "members":{ + "ComputationId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID for a computation.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of a computation.

" + }, + "Category":{ + "shape":"DimensionField", + "documentation":"

The category field that is used in a computation.

" + } + }, + "documentation":"

The unique values computation configuration.

" + }, + "UnlimitedPixelLength":{ + "type":"string", + "documentation":"String based length that is composed of value and unit in px with Integer.MAX_VALUE as maximum value" + }, "UnsupportedPricingPlanException":{ "type":"structure", "members":{ @@ -11513,11 +22200,15 @@ }, "DefaultNamespace":{ "shape":"Namespace", - "documentation":"

The default namespace for this Amazon Web Services account. Currently, the default is default. Identity and Access Management (IAM) users that register for the first time with Amazon QuickSight provide an email that becomes associated with the default namespace.

" + "documentation":"

The default namespace for this Amazon Web Services account. Currently, the default is default. Identity and Access Management (IAM) users that register for the first time with Amazon QuickSight provide an email address that becomes associated with the default namespace.

" }, "NotificationEmail":{ "shape":"String", "documentation":"

The email address that you want Amazon QuickSight to send notifications to regarding your Amazon Web Services account or Amazon QuickSight subscription.

" + }, + "TerminationProtectionEnabled":{ + "shape":"Boolean", + "documentation":"

A boolean value that determines whether or not an Amazon QuickSight account can be deleted. A True value doesn't allow the account to be deleted and results in an error message if a user tries to make a DeleteAccountSubscription request. A False value will allow the account to be deleted.

" } } }, @@ -11549,7 +22240,7 @@ "locationName":"AwsAccountId" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis whose permissions you're updating. The ID is part of the analysis URL.

", "location":"uri", "locationName":"AnalysisId" @@ -11572,7 +22263,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the analysis that you updated.

" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis that you updated permissions for.

" }, "Permissions":{ @@ -11595,8 +22286,7 @@ "required":[ "AwsAccountId", "AnalysisId", - "Name", - "SourceEntity" + "Name" ], "members":{ "AwsAccountId":{ @@ -11606,7 +22296,7 @@ "locationName":"AwsAccountId" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the analysis that you're updating. This ID displays in the URL of the analysis.

", "location":"uri", "locationName":"AnalysisId" @@ -11626,6 +22316,10 @@ "ThemeArn":{ "shape":"Arn", "documentation":"

The Amazon Resource Name (ARN) for the theme to apply to the analysis that you're creating. To see the theme in the Amazon QuickSight console, make sure that you have access to it.

" + }, + "Definition":{ + "shape":"AnalysisDefinition", + "documentation":"

The definition of an analysis.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

" } } }, @@ -11637,7 +22331,7 @@ "documentation":"

The ARN of the analysis that you're updating.

" }, "AnalysisId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID of the analysis.

" }, "UpdateStatus":{ @@ -11669,7 +22363,7 @@ "locationName":"AwsAccountId" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

", "location":"uri", "locationName":"DashboardId" @@ -11700,7 +22394,7 @@ "documentation":"

The Amazon Resource Name (ARN) of the dashboard.

" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

" }, "Permissions":{ @@ -11737,7 +22431,7 @@ "locationName":"AwsAccountId" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

", "location":"uri", "locationName":"DashboardId" @@ -11754,7 +22448,7 @@ "type":"structure", "members":{ "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

" }, "DashboardArn":{ @@ -11777,8 +22471,7 @@ "required":[ "AwsAccountId", "DashboardId", - "Name", - "SourceEntity" + "Name" ], "members":{ "AwsAccountId":{ @@ -11788,7 +22481,7 @@ "locationName":"AwsAccountId" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

", "location":"uri", "locationName":"DashboardId" @@ -11816,6 +22509,10 @@ "ThemeArn":{ "shape":"Arn", "documentation":"

The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If you add a value for this field, it overrides the value that was originally associated with the entity. The theme ARN must exist in the same Amazon Web Services account where you create the dashboard.

" + }, + "Definition":{ + "shape":"DashboardVersionDefinition", + "documentation":"

The definition of a dashboard.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

" } } }, @@ -11831,7 +22528,7 @@ "documentation":"

The ARN of the dashboard, including the version number.

" }, "DashboardId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the dashboard.

" }, "CreationStatus":{ @@ -12390,7 +23087,7 @@ }, "PublicSharingEnabled":{ "shape":"Boolean", - "documentation":"

A boolean that indicates whether or not public sharing is enabled on a Amazon QuickSight account.

" + "documentation":"

A Boolean value that indicates whether public sharing is turned on for an Amazon QuickSight account.

" } } }, @@ -12429,7 +23126,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

", "location":"uri", "locationName":"TemplateId" @@ -12478,7 +23175,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

", "location":"uri", "locationName":"TemplateId" @@ -12497,7 +23194,7 @@ "type":"structure", "members":{ "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

" }, "TemplateArn":{ @@ -12523,8 +23220,7 @@ "type":"structure", "required":[ "AwsAccountId", - "TemplateId", - "SourceEntity" + "TemplateId" ], "members":{ "AwsAccountId":{ @@ -12534,7 +23230,7 @@ "locationName":"AwsAccountId" }, "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

", "location":"uri", "locationName":"TemplateId" @@ -12550,6 +23246,10 @@ "Name":{ "shape":"TemplateName", "documentation":"

The name for the template.

" + }, + "Definition":{ + "shape":"TemplateVersionDefinition", + "documentation":"

The definition of a template.

A definition is the data model of all features in a Dashboard, Template, or Analysis.

" } } }, @@ -12557,7 +23257,7 @@ "type":"structure", "members":{ "TemplateId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the template.

" }, "Arn":{ @@ -12599,7 +23299,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

", "location":"uri", "locationName":"ThemeId" @@ -12648,7 +23348,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

", "location":"uri", "locationName":"ThemeId" @@ -12667,7 +23367,7 @@ "type":"structure", "members":{ "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

" }, "ThemeArn":{ @@ -12704,7 +23404,7 @@ "locationName":"AwsAccountId" }, "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

", "location":"uri", "locationName":"ThemeId" @@ -12714,7 +23414,7 @@ "documentation":"

The name for the theme.

" }, "BaseThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The theme ID, defined by Amazon QuickSight, that a custom theme inherits from. All themes initially inherit from a default Amazon QuickSight theme.

" }, "VersionDescription":{ @@ -12731,7 +23431,7 @@ "type":"structure", "members":{ "ThemeId":{ - "shape":"RestrictiveResourceId", + "shape":"ShortRestrictiveResourceId", "documentation":"

The ID for the theme.

" }, "Arn":{ @@ -12870,7 +23570,7 @@ }, "UserName":{ "shape":"UserName", - "documentation":"

The user's user name. In the output, the value for UserName is N/A when the value for IdentityType is IAM and the corresponding IAM user is deleted.

" + "documentation":"

The user's user name. This value is required if you are registering a user that will be managed in Amazon QuickSight. In the output, the value for UserName is N/A when the value for IdentityType is IAM and the corresponding IAM user is deleted.

" }, "Email":{ "shape":"String", @@ -12935,6 +23635,13 @@ "max":64, "min":1 }, + "ValueWhenUnsetOption":{ + "type":"string", + "enum":[ + "RECOMMENDED_VALUE", + "NULL" + ] + }, "VersionDescription":{ "type":"string", "max":512, @@ -12944,6 +23651,259 @@ "type":"long", "min":1 }, + "VerticalTextAlignment":{ + "type":"string", + "enum":[ + "TOP", + "MIDDLE", + "BOTTOM" + ] + }, + "Visibility":{ + "type":"string", + "enum":[ + "HIDDEN", + "VISIBLE" + ] + }, + "VisiblePanelColumns":{ + "type":"long", + "max":10, + "min":1 + }, + "VisiblePanelRows":{ + "type":"long", + "max":10, + "min":1 + }, + "VisibleRangeOptions":{ + "type":"structure", + "members":{ + "PercentRange":{ + "shape":"PercentVisibleRange", + "documentation":"

The percent range in the visible range.

" + } + }, + "documentation":"

The range options for the data zoom scroll bar.

" + }, + "Visual":{ + "type":"structure", + "members":{ + "TableVisual":{ + "shape":"TableVisual", + "documentation":"

A table visual.

For more information, see Using tables as visuals in the Amazon QuickSight User Guide.

" + }, + "PivotTableVisual":{ + "shape":"PivotTableVisual", + "documentation":"

A pivot table.

For more information, see Using pivot tables in the Amazon QuickSight User Guide.

" + }, + "BarChartVisual":{ + "shape":"BarChartVisual", + "documentation":"

A bar chart.

For more information, see Using bar charts in the Amazon QuickSight User Guide.

" + }, + "KPIVisual":{ + "shape":"KPIVisual", + "documentation":"

A key performance indicator (KPI).

For more information, see Using KPIs in the Amazon QuickSight User Guide.

" + }, + "PieChartVisual":{ + "shape":"PieChartVisual", + "documentation":"

A pie or donut chart.

For more information, see Using pie charts in the Amazon QuickSight User Guide.

" + }, + "GaugeChartVisual":{ + "shape":"GaugeChartVisual", + "documentation":"

A gauge chart.

For more information, see Using gauge charts in the Amazon QuickSight User Guide.

" + }, + "LineChartVisual":{ + "shape":"LineChartVisual", + "documentation":"

A line chart.

For more information, see Using line charts in the Amazon QuickSight User Guide.

" + }, + "HeatMapVisual":{ + "shape":"HeatMapVisual", + "documentation":"

A heat map.

For more information, see Using heat maps in the Amazon QuickSight User Guide.

" + }, + "TreeMapVisual":{ + "shape":"TreeMapVisual", + "documentation":"

A tree map.

For more information, see Using tree maps in the Amazon QuickSight User Guide.

" + }, + "GeospatialMapVisual":{ + "shape":"GeospatialMapVisual", + "documentation":"

A geospatial map or a points on map visual.

For more information, see Creating point maps in the Amazon QuickSight User Guide.

" + }, + "FilledMapVisual":{ + "shape":"FilledMapVisual", + "documentation":"

A filled map.

For more information, see Creating filled maps in the Amazon QuickSight User Guide.

" + }, + "FunnelChartVisual":{ + "shape":"FunnelChartVisual", + "documentation":"

A funnel chart.

For more information, see Using funnel charts in the Amazon QuickSight User Guide.

" + }, + "ScatterPlotVisual":{ + "shape":"ScatterPlotVisual", + "documentation":"

A scatter plot.

For more information, see Using scatter plots in the Amazon QuickSight User Guide.

" + }, + "ComboChartVisual":{ + "shape":"ComboChartVisual", + "documentation":"

A combo chart.

For more information, see Using combo charts in the Amazon QuickSight User Guide.

" + }, + "BoxPlotVisual":{ + "shape":"BoxPlotVisual", + "documentation":"

A box plot.

For more information, see Using box plots in the Amazon QuickSight User Guide.

" + }, + "WaterfallVisual":{ + "shape":"WaterfallVisual", + "documentation":"

A waterfall chart.

For more information, see Using waterfall charts in the Amazon QuickSight User Guide.

" + }, + "HistogramVisual":{ + "shape":"HistogramVisual", + "documentation":"

A histogram.

For more information, see Using histograms in the Amazon QuickSight User Guide.

" + }, + "WordCloudVisual":{ + "shape":"WordCloudVisual", + "documentation":"

A word cloud.

For more information, see Using word clouds in the Amazon QuickSight User Guide.

" + }, + "InsightVisual":{ + "shape":"InsightVisual", + "documentation":"

An insight visual.

For more information, see Working with insights in the Amazon QuickSight User Guide.

" + }, + "SankeyDiagramVisual":{ + "shape":"SankeyDiagramVisual", + "documentation":"

A sankey diagram.

For more information, see Using Sankey diagrams in the Amazon QuickSight User Guide.

" + }, + "CustomContentVisual":{ + "shape":"CustomContentVisual", + "documentation":"

A visual that contains custom content.

For more information, see Using custom visual content in the Amazon QuickSight User Guide.

" + }, + "EmptyVisual":{ + "shape":"EmptyVisual", + "documentation":"

An empty visual.

" + } + }, + "documentation":"

A visual displayed on a sheet in an analysis, dashboard, or template.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "VisualCustomAction":{ + "type":"structure", + "required":[ + "CustomActionId", + "Name", + "Trigger", + "ActionOperations" + ], + "members":{ + "CustomActionId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The ID of the VisualCustomAction.

" + }, + "Name":{ + "shape":"VisualCustomActionName", + "documentation":"

The name of the VisualCustomAction.

" + }, + "Status":{ + "shape":"WidgetStatus", + "documentation":"

The status of the VisualCustomAction.

" + }, + "Trigger":{ + "shape":"VisualCustomActionTrigger", + "documentation":"

The trigger of the VisualCustomAction.

Valid values are defined as follows:

  • DATA_POINT_CLICK: Initiates a custom action by a left pointer click on a data point.

  • DATA_POINT_MENU: Initiates a custom action by right pointer click from the menu.

" + }, + "ActionOperations":{ + "shape":"VisualCustomActionOperationList", + "documentation":"

A list of VisualCustomActionOperations.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + } + }, + "documentation":"

A custom action defined on a visual.

" + }, + "VisualCustomActionList":{ + "type":"list", + "member":{"shape":"VisualCustomAction"}, + "max":10 + }, + "VisualCustomActionName":{ + "type":"string", + "max":256, + "min":1 + }, + "VisualCustomActionOperation":{ + "type":"structure", + "members":{ + "FilterOperation":{ + "shape":"CustomActionFilterOperation", + "documentation":"

The filter operation that filters data included in a visual or in an entire sheet.

" + }, + "NavigationOperation":{ + "shape":"CustomActionNavigationOperation", + "documentation":"

The navigation operation that navigates between different sheets in the same analysis.

" + }, + "URLOperation":{ + "shape":"CustomActionURLOperation", + "documentation":"

The URL operation that opens a link to another webpage.

" + }, + "SetParametersOperation":{ + "shape":"CustomActionSetParametersOperation", + "documentation":"

The set parameter operation that sets parameters in custom action.

" + } + }, + "documentation":"

The operation that is defined by the custom action.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "VisualCustomActionOperationList":{ + "type":"list", + "member":{"shape":"VisualCustomActionOperation"}, + "max":2, + "min":1 + }, + "VisualCustomActionTrigger":{ + "type":"string", + "enum":[ + "DATA_POINT_CLICK", + "DATA_POINT_MENU" + ] + }, + "VisualList":{ + "type":"list", + "member":{"shape":"Visual"}, + "max":30 + }, + "VisualPalette":{ + "type":"structure", + "members":{ + "ChartColor":{ + "shape":"HexColor", + "documentation":"

The chart color options for the visual palette.

" + }, + "ColorMap":{ + "shape":"DataPathColorList", + "documentation":"

The color map options for the visual palette.

" + } + }, + "documentation":"

The visual display options for the visual palette.

" + }, + "VisualSubtitleLabelOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the subtitle label.

" + }, + "FormatText":{ + "shape":"LongFormatText", + "documentation":"

The long text format of the subtitle label, such as plain text or rich text.

" + } + }, + "documentation":"

The subtitle label options for a visual.

" + }, + "VisualTitleLabelOptions":{ + "type":"structure", + "members":{ + "Visibility":{ + "shape":"Visibility", + "documentation":"

The visibility of the title label.

" + }, + "FormatText":{ + "shape":"ShortFormatText", + "documentation":"

The short text format of the title label, such as plain text or rich text.

" + } + }, + "documentation":"

The title label options for a visual.

" + }, "VpcConnectionProperties":{ "type":"structure", "required":["VpcConnectionArn"], @@ -12959,6 +23919,356 @@ "type":"string", "max":128 }, + "WaterfallChartAggregatedFieldWells":{ + "type":"structure", + "members":{ + "Categories":{ + "shape":"DimensionFieldList", + "documentation":"

The category field wells of a waterfall visual.

" + }, + "Values":{ + "shape":"MeasureFieldList", + "documentation":"

The value field wells of a waterfall visual.

" + }, + "Breakdowns":{ + "shape":"DimensionFieldList", + "documentation":"

The breakdown field wells of a waterfall visual.

" + } + }, + "documentation":"

The field well configuration of a waterfall visual.

" + }, + "WaterfallChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"WaterfallChartFieldWells", + "documentation":"

The field well configuration of a waterfall visual.

" + }, + "SortConfiguration":{ + "shape":"WaterfallChartSortConfiguration", + "documentation":"

The sort configuration of a waterfall visual.

" + }, + "WaterfallChartOptions":{ + "shape":"WaterfallChartOptions", + "documentation":"

The options that determine the presentation of a waterfall visual.

" + }, + "CategoryAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The options that determine the presentation of the category axis label.

" + }, + "CategoryAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The options that determine the presentation of the category axis.

" + }, + "PrimaryYAxisLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The options that determine the presentation of the y-axis label.

" + }, + "PrimaryYAxisDisplayOptions":{ + "shape":"AxisDisplayOptions", + "documentation":"

The options that determine the presentation of the y-axis.

" + }, + "Legend":{ + "shape":"LegendOptions", + "documentation":"

The legend configuration of a waterfall visual.

" + }, + "DataLabels":{ + "shape":"DataLabelOptions", + "documentation":"

The data label configuration of a waterfall visual.

" + }, + "VisualPalette":{ + "shape":"VisualPalette", + "documentation":"

The visual palette configuration of a waterfall visual.

" + } + }, + "documentation":"

The configuration for a waterfall visual.

" + }, + "WaterfallChartFieldWells":{ + "type":"structure", + "members":{ + "WaterfallChartAggregatedFieldWells":{ + "shape":"WaterfallChartAggregatedFieldWells", + "documentation":"

The field well configuration of a waterfall visual.

" + } + }, + "documentation":"

The field well configuration of a waterfall visual.

" + }, + "WaterfallChartOptions":{ + "type":"structure", + "members":{ + "TotalBarLabel":{ + "shape":"String", + "documentation":"

This option determines the total bar label of a waterfall visual.

" + } + }, + "documentation":"

The options that determine the presentation of a waterfall visual.

" + }, + "WaterfallChartSortConfiguration":{ + "type":"structure", + "members":{ + "CategorySort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of the category fields.

" + }, + "BreakdownItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of bar groups that are displayed.

" + } + }, + "documentation":"

The sort configuration of a waterfall visual.

" + }, + "WaterfallVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers.

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"WaterfallChartConfiguration", + "documentation":"

The configuration for a waterfall visual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A waterfall chart.

For more information, see Using waterfall charts in the Amazon QuickSight User Guide.

" + }, + "WhatIfPointScenario":{ + "type":"structure", + "required":[ + "Date", + "Value" + ], + "members":{ + "Date":{ + "shape":"Timestamp", + "documentation":"

The date that you need the forecast results for.

" + }, + "Value":{ + "shape":"Double", + "documentation":"

The target value that you want to meet for the provided date.

" + } + }, + "documentation":"

Provides the forecast to meet the target for a particular date.

" + }, + "WhatIfRangeScenario":{ + "type":"structure", + "required":[ + "StartDate", + "EndDate", + "Value" + ], + "members":{ + "StartDate":{ + "shape":"Timestamp", + "documentation":"

The start date in the date range that you need the forecast results for.

" + }, + "EndDate":{ + "shape":"Timestamp", + "documentation":"

The end date in the date range that you need the forecast results for.

" + }, + "Value":{ + "shape":"Double", + "documentation":"

The target value that you want to meet for the provided date range.

" + } + }, + "documentation":"

Provides the forecast to meet the target for a particular date range.

" + }, + "WidgetStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "WordCloudAggregatedFieldWells":{ + "type":"structure", + "members":{ + "GroupBy":{ + "shape":"WordCloudDimensionFieldList", + "documentation":"

The group by field well of a word cloud. Values are grouped by group by fields.

" + }, + "Size":{ + "shape":"WordCloudMeasureFieldList", + "documentation":"

The size field well of a word cloud. Values are aggregated based on group by fields.

" + } + }, + "documentation":"

The aggregated field wells of a word cloud.

" + }, + "WordCloudChartConfiguration":{ + "type":"structure", + "members":{ + "FieldWells":{ + "shape":"WordCloudFieldWells", + "documentation":"

The field wells of the visual.

" + }, + "SortConfiguration":{ + "shape":"WordCloudSortConfiguration", + "documentation":"

The sort configuration of a word cloud visual.

" + }, + "CategoryLabelOptions":{ + "shape":"ChartAxisLabelOptions", + "documentation":"

The label options (label text, label visibility, and sort icon visibility) for the word cloud category.

" + }, + "WordCloudOptions":{ + "shape":"WordCloudOptions", + "documentation":"

The options for a word cloud visual.

" + } + }, + "documentation":"

The configuration of a word cloud visual.

" + }, + "WordCloudCloudLayout":{ + "type":"string", + "enum":[ + "FLUID", + "NORMAL" + ] + }, + "WordCloudDimensionFieldList":{ + "type":"list", + "member":{"shape":"DimensionField"}, + "max":10 + }, + "WordCloudFieldWells":{ + "type":"structure", + "members":{ + "WordCloudAggregatedFieldWells":{ + "shape":"WordCloudAggregatedFieldWells", + "documentation":"

The aggregated field wells of a word cloud.

" + } + }, + "documentation":"

The field wells of a word cloud visual.

This is a union type structure. For this structure to be valid, only one of the attributes can be defined.

" + }, + "WordCloudMaximumStringLength":{ + "type":"integer", + "max":100, + "min":1 + }, + "WordCloudMeasureFieldList":{ + "type":"list", + "member":{"shape":"MeasureField"}, + "max":1 + }, + "WordCloudOptions":{ + "type":"structure", + "members":{ + "WordOrientation":{ + "shape":"WordCloudWordOrientation", + "documentation":"

The word orientation options (horizontal, horizontal_and_vertical) for the words in a word cloud.

" + }, + "WordScaling":{ + "shape":"WordCloudWordScaling", + "documentation":"

The word scaling options (emphasize, normal) for the words in a word cloud.

" + }, + "CloudLayout":{ + "shape":"WordCloudCloudLayout", + "documentation":"

The cloud layout options (fluid, normal) of a word cloud.

" + }, + "WordCasing":{ + "shape":"WordCloudWordCasing", + "documentation":"

The word casing options (lower_case, existing_case) for the words in a word cloud.

" + }, + "WordPadding":{ + "shape":"WordCloudWordPadding", + "documentation":"

The word padding options (none, small, medium, large) for the words in a word cloud.

" + }, + "MaximumStringLength":{ + "shape":"WordCloudMaximumStringLength", + "documentation":"

The length limit of each word from 1-100.

" + } + }, + "documentation":"

The word cloud options for a word cloud visual.

" + }, + "WordCloudSortConfiguration":{ + "type":"structure", + "members":{ + "CategoryItemsLimit":{ + "shape":"ItemsLimitConfiguration", + "documentation":"

The limit on the number of groups that are displayed in a word cloud.

" + }, + "CategorySort":{ + "shape":"FieldSortOptionsList", + "documentation":"

The sort configuration of group by fields.

" + } + }, + "documentation":"

The sort configuration of a word cloud visual.

" + }, + "WordCloudVisual":{ + "type":"structure", + "required":["VisualId"], + "members":{ + "VisualId":{ + "shape":"ShortRestrictiveResourceId", + "documentation":"

The unique identifier of a visual. This identifier must be unique within the context of a dashboard, template, or analysis. Two dashboards, analyses, or templates can have visuals with the same identifiers..

" + }, + "Title":{ + "shape":"VisualTitleLabelOptions", + "documentation":"

The title that is displayed on the visual.

" + }, + "Subtitle":{ + "shape":"VisualSubtitleLabelOptions", + "documentation":"

The subtitle that is displayed on the visual.

" + }, + "ChartConfiguration":{ + "shape":"WordCloudChartConfiguration", + "documentation":"

The configuration settings of the visual.

" + }, + "Actions":{ + "shape":"VisualCustomActionList", + "documentation":"

The list of custom actions that are configured for a visual.

" + }, + "ColumnHierarchies":{ + "shape":"ColumnHierarchyList", + "documentation":"

The column hierarchy that is used during drill-downs and drill-ups.

" + } + }, + "documentation":"

A word cloud.

For more information, see Using word clouds in the Amazon QuickSight User Guide.

" + }, + "WordCloudWordCasing":{ + "type":"string", + "enum":[ + "LOWER_CASE", + "EXISTING_CASE" + ] + }, + "WordCloudWordOrientation":{ + "type":"string", + "enum":[ + "HORIZONTAL", + "HORIZONTAL_AND_VERTICAL" + ] + }, + "WordCloudWordPadding":{ + "type":"string", + "enum":[ + "NONE", + "SMALL", + "MEDIUM", + "LARGE" + ] + }, + "WordCloudWordScaling":{ + "type":"string", + "enum":[ + "EMPHASIZE", + "NORMAL" + ] + }, "WorkGroup":{ "type":"string", "max":128, diff --git a/botocore/data/ram/2018-01-04/endpoint-rule-set-1.json b/botocore/data/ram/2018-01-04/endpoint-rule-set-1.json new file mode 100644 index 00000000..c21450da --- /dev/null +++ b/botocore/data/ram/2018-01-04/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ram-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ram-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ram.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ram.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ram/2018-01-04/examples-1.json b/botocore/data/ram/2018-01-04/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/ram/2018-01-04/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/rbin/2021-06-15/endpoint-rule-set-1.json b/botocore/data/rbin/2021-06-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..840204cd --- /dev/null +++ b/botocore/data/rbin/2021-06-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rbin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rbin-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rbin.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rbin.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/rbin/2021-06-15/examples-1.json b/botocore/data/rbin/2021-06-15/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/rbin/2021-06-15/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/rbin/2021-06-15/service-2.json b/botocore/data/rbin/2021-06-15/service-2.json index e0fb257b..c775609d 100644 --- a/botocore/data/rbin/2021-06-15/service-2.json +++ b/botocore/data/rbin/2021-06-15/service-2.json @@ -40,7 +40,8 @@ "errors":[ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ConflictException"} ], "documentation":"

Deletes a Recycle Bin retention rule. For more information, see Delete Recycle Bin retention rules in the Amazon Elastic Compute Cloud User Guide.

" }, @@ -91,6 +92,23 @@ ], "documentation":"

Lists the tags assigned to a retention rule.

" }, + "LockRule":{ + "name":"LockRule", + "http":{ + "method":"PATCH", + "requestUri":"/rules/{identifier}/lock", + "responseCode":200 + }, + "input":{"shape":"LockRuleRequest"}, + "output":{"shape":"LockRuleResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Locks a retention rule. A locked retention rule can't be modified or deleted.

" + }, "TagResource":{ "name":"TagResource", "http":{ @@ -108,6 +126,23 @@ ], "documentation":"

Assigns tags to the specified retention rule.

" }, + "UnlockRule":{ + "name":"UnlockRule", + "http":{ + "method":"PATCH", + "requestUri":"/rules/{identifier}/unlock", + "responseCode":200 + }, + "input":{"shape":"UnlockRuleRequest"}, + "output":{"shape":"UnlockRuleResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Unlocks a retention rule. After a retention rule is unlocked, it can be modified or deleted only after the unlock delay period expires.

" + }, "UntagResource":{ "name":"UntagResource", "http":{ @@ -136,12 +171,30 @@ "errors":[ {"shape":"ValidationException"}, {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} ], - "documentation":"

Updates an existing Recycle Bin retention rule. For more information, see Update Recycle Bin retention rules in the Amazon Elastic Compute Cloud User Guide.

" + "documentation":"

Updates an existing Recycle Bin retention rule. You can update a retention rule's description, resource tags, and retention period at any time after creation. You can't update a retention rule's resource type after creation. For more information, see Update Recycle Bin retention rules in the Amazon Elastic Compute Cloud User Guide.

" } }, "shapes":{ + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"}, + "Reason":{ + "shape":"ConflictExceptionReason", + "documentation":"

The reason for the exception.

" + } + }, + "documentation":"

The specified retention rule lock request can't be completed.

", + "error":{"httpStatusCode":409}, + "exception":true + }, + "ConflictExceptionReason":{ + "type":"string", + "enum":["INVALID_RULE_STATE"] + }, "CreateRuleRequest":{ "type":"structure", "required":[ @@ -168,6 +221,10 @@ "ResourceTags":{ "shape":"ResourceTags", "documentation":"

Specifies the resource tags to use to identify resources that are to be retained by a tag-level retention rule. For tag-level retention rules, only deleted resources, of the specified resource type, that have one or more of the specified tag key and value pairs are retained. If a resource is deleted, but it does not have any of the specified tag key and value pairs, it is immediately deleted without being retained by the retention rule.

You can add the same tag key and value pair to a maximum or five retention rules.

To create a Region-level retention rule, omit this parameter. A Region-level retention rule does not have any resource tags specified. It retains all deleted resources of the specified resource type in the Region in which the rule is created, even if the resources are not tagged.

" + }, + "LockConfiguration":{ + "shape":"LockConfiguration", + "documentation":"

Information about the retention rule lock configuration.

" } } }, @@ -198,6 +255,14 @@ "Status":{ "shape":"RuleStatus", "documentation":"

The state of the retention rule. Only retention rules that are in the available state retain resources.

" + }, + "LockConfiguration":{ + "shape":"LockConfiguration", + "documentation":"

Information about the retention rule lock configuration.

" + }, + "LockState":{ + "shape":"LockState", + "documentation":"

The lock state for the retention rule.

  • locked - The retention rule is locked and can't be modified or deleted.

  • pending_unlock - The retention rule has been unlocked but it is still within the unlock delay period. The retention rule can be modified or deleted only after the unlock delay period has expired.

  • unlocked - The retention rule is unlocked and it can be modified or deleted by any user with the required permissions.

  • null - The retention rule has never been locked. Once a retention rule has been locked, it can transition between the locked and unlocked states only; it can never transition back to null.

" } } }, @@ -261,6 +326,18 @@ "Status":{ "shape":"RuleStatus", "documentation":"

The state of the retention rule. Only retention rules that are in the available state retain resources.

" + }, + "LockConfiguration":{ + "shape":"LockConfiguration", + "documentation":"

Information about the retention rule lock configuration.

" + }, + "LockState":{ + "shape":"LockState", + "documentation":"

The lock state for the retention rule.

  • locked - The retention rule is locked and can't be modified or deleted.

  • pending_unlock - The retention rule has been unlocked but it is still within the unlock delay period. The retention rule can be modified or deleted only after the unlock delay period has expired.

  • unlocked - The retention rule is unlocked and it can be modified or deleted by any user with the required permissions.

  • null - The retention rule has never been locked. Once a retention rule has been locked, it can transition between the locked and unlocked states only; it can never transition back to null.

" + }, + "LockEndTime":{ + "shape":"TimeStamp", + "documentation":"

The date and time at which the unlock delay is set to expire. Only returned for retention rules that have been unlocked and that are still within the unlock delay period.

" } } }, @@ -293,6 +370,10 @@ "ResourceTags":{ "shape":"ResourceTags", "documentation":"

Information about the resource tags used to identify resources that are retained by the retention rule.

" + }, + "LockState":{ + "shape":"LockState", + "documentation":"

The lock state of the retention rules to list. Only retention rules with the specified lock state are returned.

" } } }, @@ -330,6 +411,78 @@ } } }, + "LockConfiguration":{ + "type":"structure", + "required":["UnlockDelay"], + "members":{ + "UnlockDelay":{ + "shape":"UnlockDelay", + "documentation":"

Information about the retention rule unlock delay.

" + } + }, + "documentation":"

Information about a retention rule lock configuration.

" + }, + "LockRuleRequest":{ + "type":"structure", + "required":[ + "Identifier", + "LockConfiguration" + ], + "members":{ + "Identifier":{ + "shape":"RuleIdentifier", + "documentation":"

The unique ID of the retention rule.

", + "location":"uri", + "locationName":"identifier" + }, + "LockConfiguration":{ + "shape":"LockConfiguration", + "documentation":"

Information about the retention rule lock configuration.

" + } + } + }, + "LockRuleResponse":{ + "type":"structure", + "members":{ + "Identifier":{ + "shape":"RuleIdentifier", + "documentation":"

The unique ID of the retention rule.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The retention rule description.

" + }, + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

The resource type retained by the retention rule.

" + }, + "RetentionPeriod":{"shape":"RetentionPeriod"}, + "ResourceTags":{ + "shape":"ResourceTags", + "documentation":"

Information about the resource tags used to identify resources that are retained by the retention rule.

" + }, + "Status":{ + "shape":"RuleStatus", + "documentation":"

The state of the retention rule. Only retention rules that are in the available state retain resources.

" + }, + "LockConfiguration":{ + "shape":"LockConfiguration", + "documentation":"

Information about the retention rule lock configuration.

" + }, + "LockState":{ + "shape":"LockState", + "documentation":"

The lock state for the retention rule.

  • locked - The retention rule is locked and can't be modified or deleted.

  • pending_unlock - The retention rule has been unlocked but it is still within the unlock delay period. The retention rule can be modified or deleted only after the unlock delay period has expired.

  • unlocked - The retention rule is unlocked and it can be modified or deleted by any user with the required permissions.

  • null - The retention rule has never been locked. Once a retention rule has been locked, it can transition between the locked and unlocked states only; it can never transition back to null.

" + } + } + }, + "LockState":{ + "type":"string", + "enum":[ + "locked", + "pending_unlock", + "unlocked" + ] + }, "MaxResults":{ "type":"integer", "max":1000, @@ -450,6 +603,10 @@ "RetentionPeriod":{ "shape":"RetentionPeriod", "documentation":"

Information about the retention period for which the retention rule is to retain resources.

" + }, + "LockState":{ + "shape":"LockState", + "documentation":"

The lock state for the retention rule.

  • locked - The retention rule is locked and can't be modified or deleted.

  • pending_unlock - The retention rule has been unlocked but it is still within the unlock delay period. The retention rule can be modified or deleted only after the unlock delay period has expired.

  • unlocked - The retention rule is unlocked and it can be modified or deleted by any user with the required permissions.

  • null - The retention rule has never been locked. Once a retention rule has been locked, it can transition between the locked and unlocked states only; it can never transition back to null.

" } }, "documentation":"

Information about a Recycle Bin retention rule.

" @@ -541,6 +698,84 @@ "min":0, "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" }, + "TimeStamp":{"type":"timestamp"}, + "UnlockDelay":{ + "type":"structure", + "required":[ + "UnlockDelayValue", + "UnlockDelayUnit" + ], + "members":{ + "UnlockDelayValue":{ + "shape":"UnlockDelayValue", + "documentation":"

The unlock delay period, measured in the unit specified for UnlockDelayUnit.

" + }, + "UnlockDelayUnit":{ + "shape":"UnlockDelayUnit", + "documentation":"

The unit of time in which to measure the unlock delay. Currently, the unlock delay can be measure only in days.

" + } + }, + "documentation":"

Information about the retention rule unlock delay. The unlock delay is the period after which a retention rule can be modified or edited after it has been unlocked by a user with the required permissions. The retention rule can't be modified or deleted during the unlock delay.

" + }, + "UnlockDelayUnit":{ + "type":"string", + "enum":["DAYS"] + }, + "UnlockDelayValue":{ + "type":"integer", + "max":30, + "min":7 + }, + "UnlockRuleRequest":{ + "type":"structure", + "required":["Identifier"], + "members":{ + "Identifier":{ + "shape":"RuleIdentifier", + "documentation":"

The unique ID of the retention rule.

", + "location":"uri", + "locationName":"identifier" + } + } + }, + "UnlockRuleResponse":{ + "type":"structure", + "members":{ + "Identifier":{ + "shape":"RuleIdentifier", + "documentation":"

The unique ID of the retention rule.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The retention rule description.

" + }, + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

The resource type retained by the retention rule.

" + }, + "RetentionPeriod":{"shape":"RetentionPeriod"}, + "ResourceTags":{ + "shape":"ResourceTags", + "documentation":"

Information about the resource tags used to identify resources that are retained by the retention rule.

" + }, + "Status":{ + "shape":"RuleStatus", + "documentation":"

The state of the retention rule. Only retention rules that are in the available state retain resources.

" + }, + "LockConfiguration":{ + "shape":"LockConfiguration", + "documentation":"

Information about the retention rule lock configuration.

" + }, + "LockState":{ + "shape":"LockState", + "documentation":"

The lock state for the retention rule.

  • locked - The retention rule is locked and can't be modified or deleted.

  • pending_unlock - The retention rule has been unlocked but it is still within the unlock delay period. The retention rule can be modified or deleted only after the unlock delay period has expired.

  • unlocked - The retention rule is unlocked and it can be modified or deleted by any user with the required permissions.

  • null - The retention rule has never been locked. Once a retention rule has been locked, it can transition between the locked and unlocked states only; it can never transition back to null.

" + }, + "LockEndTime":{ + "shape":"TimeStamp", + "documentation":"

The date and time at which the unlock delay is set to expire. Only returned for retention rules that have been unlocked and that are still within the unlock delay period.

" + } + } + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -587,7 +822,7 @@ }, "ResourceType":{ "shape":"ResourceType", - "documentation":"

The resource type to be retained by the retention rule. Currently, only Amazon EBS snapshots and EBS-backed AMIs are supported. To retain snapshots, specify EBS_SNAPSHOT. To retain EBS-backed AMIs, specify EC2_IMAGE.

" + "documentation":"

This parameter is currently not supported. You can't update a retention rule's resource type after creation.

" }, "ResourceTags":{ "shape":"ResourceTags", @@ -618,6 +853,14 @@ "Status":{ "shape":"RuleStatus", "documentation":"

The state of the retention rule. Only retention rules that are in the available state retain resources.

" + }, + "LockState":{ + "shape":"LockState", + "documentation":"

The lock state for the retention rule.

  • locked - The retention rule is locked and can't be modified or deleted.

  • pending_unlock - The retention rule has been unlocked but it is still within the unlock delay period. The retention rule can be modified or deleted only after the unlock delay period has expired.

  • unlocked - The retention rule is unlocked and it can be modified or deleted by any user with the required permissions.

  • null - The retention rule has never been locked. Once a retention rule has been locked, it can transition between the locked and unlocked states only; it can never transition back to null.

" + }, + "LockEndTime":{ + "shape":"TimeStamp", + "documentation":"

The date and time at which the unlock delay is set to expire. Only returned for retention rules that have been unlocked and that are still within the unlock delay period.

" } } }, diff --git a/botocore/data/rds-data/2018-08-01/endpoint-rule-set-1.json b/botocore/data/rds-data/2018-08-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..a340d83a --- /dev/null +++ b/botocore/data/rds-data/2018-08-01/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds-data-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds-data-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds-data.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds-data.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/rds-data/2018-08-01/examples-1.json b/botocore/data/rds-data/2018-08-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/rds-data/2018-08-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/rds-data/2018-08-01/service-2.json b/botocore/data/rds-data/2018-08-01/service-2.json index d858c75a..50f272a7 100644 --- a/botocore/data/rds-data/2018-08-01/service-2.json +++ b/botocore/data/rds-data/2018-08-01/service-2.json @@ -29,7 +29,7 @@ {"shape":"ForbiddenException"}, {"shape":"ServiceUnavailableError"} ], - "documentation":"

Runs a batch SQL statement over an array of data.

You can run bulk update and insert operations for multiple records using a DML statement with different parameter sets. Bulk operations can provide a significant performance improvement over individual insert and update operations.

If a call isn't part of a transaction because it doesn't include the transactionID parameter, changes that result from the call are committed automatically.

" + "documentation":"

Runs a batch SQL statement over an array of data.

You can run bulk update and insert operations for multiple records using a DML statement with different parameter sets. Bulk operations can provide a significant performance improvement over individual insert and update operations.

If a call isn't part of a transaction because it doesn't include the transactionID parameter, changes that result from the call are committed automatically.

There isn't a fixed upper limit on the number of parameter sets. However, the maximum size of the HTTP request submitted through the Data API is 4 MiB. If the request exceeds this limit, the Data API returns an error and doesn't process the request. This 4-MiB limit includes the size of the HTTP headers and the JSON notation in the request. Thus, the number of parameter sets that you can include depends on a combination of factors, such as the size of the SQL statement and the size of each parameter set.

The response size limit is 1 MiB. If the call returns more than 1 MiB of response data, the call is terminated.

" }, "BeginTransaction":{ "name":"BeginTransaction", @@ -48,7 +48,7 @@ {"shape":"ForbiddenException"}, {"shape":"ServiceUnavailableError"} ], - "documentation":"

Starts a SQL transaction.

 <important> <p>A transaction can run for a maximum of 24 hours. A transaction is terminated and rolled back automatically after 24 hours.</p> <p>A transaction times out if no calls use its transaction ID in three minutes. If a transaction times out before it's committed, it's rolled back automatically.</p> <p>DDL statements inside a transaction cause an implicit commit. We recommend that you run each DDL statement in a separate <code>ExecuteStatement</code> call with <code>continueAfterTimeout</code> enabled.</p> </important> 
" + "documentation":"

Starts a SQL transaction.

A transaction can run for a maximum of 24 hours. A transaction is terminated and rolled back automatically after 24 hours.

A transaction times out if no calls use its transaction ID in three minutes. If a transaction times out before it's committed, it's rolled back automatically.

DDL statements inside a transaction cause an implicit commit. We recommend that you run each DDL statement in a separate ExecuteStatement call with continueAfterTimeout enabled.

" }, "CommitTransaction":{ "name":"CommitTransaction", @@ -86,7 +86,7 @@ {"shape":"ForbiddenException"}, {"shape":"ServiceUnavailableError"} ], - "documentation":"

Runs one or more SQL statements.

This operation is deprecated. Use the BatchExecuteStatement or ExecuteStatement operation.

", + "documentation":"

Runs one or more SQL statements.

This operation is deprecated. Use the BatchExecuteStatement or ExecuteStatement operation.

", "deprecated":true, "deprecatedMessage":"The ExecuteSql API is deprecated, please use the ExecuteStatement API." }, @@ -107,7 +107,7 @@ {"shape":"ForbiddenException"}, {"shape":"ServiceUnavailableError"} ], - "documentation":"

Runs a SQL statement against a database.

If a call isn't part of a transaction because it doesn't include the transactionID parameter, changes that result from the call are committed automatically.

If the binary response data from the database is more than 1 MB, the call is terminated.

" + "documentation":"

Runs a SQL statement against a database.

If a call isn't part of a transaction because it doesn't include the transactionID parameter, changes that result from the call are committed automatically.

If the binary response data from the database is more than 1 MB, the call is terminated.

" }, "RollbackTransaction":{ "name":"RollbackTransaction", @@ -156,25 +156,25 @@ "ArrayValue":{ "type":"structure", "members":{ - "arrayValues":{ - "shape":"ArrayOfArray", - "documentation":"

An array of arrays.

" - }, "booleanValues":{ "shape":"BooleanArray", "documentation":"

An array of Boolean values.

" }, - "doubleValues":{ - "shape":"DoubleArray", - "documentation":"

An array of floating-point numbers.

" - }, "longValues":{ "shape":"LongArray", "documentation":"

An array of integers.

" }, + "doubleValues":{ + "shape":"DoubleArray", + "documentation":"

An array of floating-point numbers.

" + }, "stringValues":{ "shape":"StringArray", "documentation":"

An array of strings.

" + }, + "arrayValues":{ + "shape":"ArrayOfArray", + "documentation":"

An array of arrays.

" } }, "documentation":"

Contains an array.

", @@ -207,29 +207,29 @@ "sql" ], "members":{ - "database":{ - "shape":"DbName", - "documentation":"

The name of the database.

" - }, - "parameterSets":{ - "shape":"SqlParameterSets", - "documentation":"

The parameter set for the batch operation.

The SQL statement is executed as many times as the number of parameter sets provided. To execute a SQL statement with no parameters, use one of the following options:

  • Specify one or more empty parameter sets.

  • Use the ExecuteStatement operation instead of the BatchExecuteStatement operation.

Array parameters are not supported.

" - }, "resourceArn":{ "shape":"Arn", "documentation":"

The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.

" }, - "schema":{ - "shape":"DbName", - "documentation":"

The name of the database schema.

" - }, "secretArn":{ "shape":"Arn", - "documentation":"

The name or ARN of the secret that enables access to the DB cluster.

" + "documentation":"

The ARN of the secret that enables access to the DB cluster. Enter the database user name and password for the credentials in the secret.

For information about creating the secret, see Create a database secret.

" }, "sql":{ "shape":"SqlStatement", - "documentation":"

The SQL statement to run.

" + "documentation":"

The SQL statement to run. Don't include a semicolon (;) at the end of the SQL statement.

" + }, + "database":{ + "shape":"DbName", + "documentation":"

The name of the database.

" + }, + "schema":{ + "shape":"DbName", + "documentation":"

The name of the database schema.

Currently, the schema parameter isn't supported.

" + }, + "parameterSets":{ + "shape":"SqlParameterSets", + "documentation":"

The parameter set for the batch operation.

The SQL statement is executed as many times as the number of parameter sets provided. To execute a SQL statement with no parameters, use one of the following options:

  • Specify one or more empty parameter sets.

  • Use the ExecuteStatement operation instead of the BatchExecuteStatement operation.

Array parameters are not supported.

" }, "transactionId":{ "shape":"Id", @@ -255,21 +255,21 @@ "secretArn" ], "members":{ - "database":{ - "shape":"DbName", - "documentation":"

The name of the database.

" - }, "resourceArn":{ "shape":"Arn", "documentation":"

The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.

" }, - "schema":{ - "shape":"DbName", - "documentation":"

The name of the database schema.

" - }, "secretArn":{ "shape":"Arn", "documentation":"

The name or ARN of the secret that enables access to the DB cluster.

" + }, + "database":{ + "shape":"DbName", + "documentation":"

The name of the database.

" + }, + "schema":{ + "shape":"DbName", + "documentation":"

The name of the database schema.

" } }, "documentation":"

The request parameters represent the input of a request to start a SQL transaction.

" @@ -314,33 +314,45 @@ "ColumnMetadata":{ "type":"structure", "members":{ - "arrayBaseColumnType":{ + "name":{ + "shape":"String", + "documentation":"

The name of the column.

" + }, + "type":{ "shape":"Integer", "documentation":"

The type of the column.

" }, - "isAutoIncrement":{ - "shape":"Boolean", - "documentation":"

A value that indicates whether the column increments automatically.

" - }, - "isCaseSensitive":{ - "shape":"Boolean", - "documentation":"

A value that indicates whether the column is case-sensitive.

" - }, - "isCurrency":{ - "shape":"Boolean", - "documentation":"

A value that indicates whether the column contains currency values.

" - }, - "isSigned":{ - "shape":"Boolean", - "documentation":"

A value that indicates whether an integer column is signed.

" + "typeName":{ + "shape":"String", + "documentation":"

The database-specific data type of the column.

" }, "label":{ "shape":"String", "documentation":"

The label for the column.

" }, - "name":{ + "schemaName":{ "shape":"String", - "documentation":"

The name of the column.

" + "documentation":"

The name of the schema that owns the table that includes the column.

" + }, + "tableName":{ + "shape":"String", + "documentation":"

The name of the table that includes the column.

" + }, + "isAutoIncrement":{ + "shape":"Boolean", + "documentation":"

A value that indicates whether the column increments automatically.

" + }, + "isSigned":{ + "shape":"Boolean", + "documentation":"

A value that indicates whether an integer column is signed.

" + }, + "isCurrency":{ + "shape":"Boolean", + "documentation":"

A value that indicates whether the column contains currency values.

" + }, + "isCaseSensitive":{ + "shape":"Boolean", + "documentation":"

A value that indicates whether the column is case-sensitive.

" }, "nullable":{ "shape":"Integer", @@ -354,21 +366,9 @@ "shape":"Integer", "documentation":"

The scale value of a decimal number column.

" }, - "schemaName":{ - "shape":"String", - "documentation":"

The name of the schema that owns the table that includes the column.

" - }, - "tableName":{ - "shape":"String", - "documentation":"

The name of the table that includes the column.

" - }, - "type":{ + "arrayBaseColumnType":{ "shape":"Integer", "documentation":"

The type of the column.

" - }, - "typeName":{ - "shape":"String", - "documentation":"

The database-specific data type of the column.

" } }, "documentation":"

Contains the metadata for a column.

" @@ -427,30 +427,30 @@ "ExecuteSqlRequest":{ "type":"structure", "required":[ - "awsSecretStoreArn", "dbClusterOrInstanceArn", + "awsSecretStoreArn", "sqlStatements" ], "members":{ + "dbClusterOrInstanceArn":{ + "shape":"Arn", + "documentation":"

The ARN of the Aurora Serverless DB cluster.

" + }, "awsSecretStoreArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the secret that enables access to the DB cluster.

" + "documentation":"

The Amazon Resource Name (ARN) of the secret that enables access to the DB cluster. Enter the database user name and password for the credentials in the secret.

For information about creating the secret, see Create a database secret.

" + }, + "sqlStatements":{ + "shape":"SqlStatement", + "documentation":"

One or more SQL statements to run on the DB cluster.

You can separate SQL statements from each other with a semicolon (;). Any valid SQL statement is permitted, including data definition, data manipulation, and commit statements.

" }, "database":{ "shape":"DbName", "documentation":"

The name of the database.

" }, - "dbClusterOrInstanceArn":{ - "shape":"Arn", - "documentation":"

The ARN of the Aurora Serverless DB cluster.

" - }, "schema":{ "shape":"DbName", "documentation":"

The name of the database schema.

" - }, - "sqlStatements":{ - "shape":"SqlStatement", - "documentation":"

One or more SQL statements to run on the DB cluster.

You can separate SQL statements from each other with a semicolon (;). Any valid SQL statement is permitted, including data definition, data manipulation, and commit statements.

" } }, "documentation":"

The request parameters represent the input of a request to run one or more SQL statements.

" @@ -473,49 +473,49 @@ "sql" ], "members":{ - "continueAfterTimeout":{ - "shape":"Boolean", - "documentation":"

A value that indicates whether to continue running the statement after the call times out. By default, the statement stops running when the call times out.

For DDL statements, we recommend continuing to run the statement after the call times out. When a DDL statement terminates before it is finished running, it can result in errors and possibly corrupted data structures.

" - }, - "database":{ - "shape":"DbName", - "documentation":"

The name of the database.

" - }, - "formatRecordsAs":{ - "shape":"RecordsFormatType", - "documentation":"

A value that indicates whether to format the result set as a single JSON string. This parameter only applies to SELECT statements and is ignored for other types of statements. Allowed values are NONE and JSON. The default value is NONE. The result is returned in the formattedRecords field.

For usage information about the JSON format for result sets, see Using the Data API in the Amazon Aurora User Guide.

" - }, - "includeResultMetadata":{ - "shape":"Boolean", - "documentation":"

A value that indicates whether to include metadata in the results.

" - }, - "parameters":{ - "shape":"SqlParametersList", - "documentation":"

The parameters for the SQL statement.

Array parameters are not supported.

" - }, "resourceArn":{ "shape":"Arn", "documentation":"

The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.

" }, - "resultSetOptions":{ - "shape":"ResultSetOptions", - "documentation":"

Options that control how the result set is returned.

" - }, - "schema":{ - "shape":"DbName", - "documentation":"

The name of the database schema.

Currently, the schema parameter isn't supported.

" - }, "secretArn":{ "shape":"Arn", - "documentation":"

The name or ARN of the secret that enables access to the DB cluster.

" + "documentation":"

The ARN of the secret that enables access to the DB cluster. Enter the database user name and password for the credentials in the secret.

For information about creating the secret, see Create a database secret.

" }, "sql":{ "shape":"SqlStatement", "documentation":"

The SQL statement to run.

" }, + "database":{ + "shape":"DbName", + "documentation":"

The name of the database.

" + }, + "schema":{ + "shape":"DbName", + "documentation":"

The name of the database schema.

Currently, the schema parameter isn't supported.

" + }, + "parameters":{ + "shape":"SqlParametersList", + "documentation":"

The parameters for the SQL statement.

Array parameters are not supported.

" + }, "transactionId":{ "shape":"Id", "documentation":"

The identifier of a transaction that was started by using the BeginTransaction operation. Specify the transaction ID of the transaction that you want to include the SQL statement in.

If the SQL statement is not part of a transaction, don't set this parameter.

" + }, + "includeResultMetadata":{ + "shape":"Boolean", + "documentation":"

A value that indicates whether to include metadata in the results.

" + }, + "continueAfterTimeout":{ + "shape":"Boolean", + "documentation":"

A value that indicates whether to continue running the statement after the call times out. By default, the statement stops running when the call times out.

For DDL statements, we recommend continuing to run the statement after the call times out. When a DDL statement terminates before it is finished running, it can result in errors and possibly corrupted data structures.

" + }, + "resultSetOptions":{ + "shape":"ResultSetOptions", + "documentation":"

Options that control how the result set is returned.

" + }, + "formatRecordsAs":{ + "shape":"RecordsFormatType", + "documentation":"

A value that indicates whether to format the result set as a single JSON string. This parameter only applies to SELECT statements and is ignored for other types of statements. Allowed values are NONE and JSON. The default value is NONE. The result is returned in the formattedRecords field.

For usage information about the JSON format for result sets, see Using the Data API in the Amazon Aurora User Guide.

" } }, "documentation":"

The request parameters represent the input of a request to run a SQL statement against a database.

" @@ -523,25 +523,25 @@ "ExecuteStatementResponse":{ "type":"structure", "members":{ + "records":{ + "shape":"SqlRecords", + "documentation":"

The records returned by the SQL statement. This field is blank if the formatRecordsAs parameter is set to JSON.

" + }, "columnMetadata":{ "shape":"Metadata", "documentation":"

Metadata for the columns included in the results. This field is blank if the formatRecordsAs parameter is set to JSON.

" }, - "formattedRecords":{ - "shape":"FormattedSqlRecords", - "documentation":"

A string value that represents the result set of a SELECT statement in JSON format. This value is only present when the formatRecordsAs parameter is set to JSON.

The size limit for this field is currently 10 MB. If the JSON-formatted string representing the result set requires more than 10 MB, the call returns an error.

" - }, - "generatedFields":{ - "shape":"FieldList", - "documentation":"

Values for fields generated during a DML request.

 <note> <p>The <code>generatedFields</code> data isn't supported by Aurora PostgreSQL. To get the values of generated fields, use the <code>RETURNING</code> clause. For more information, see <a href="https://www.postgresql.org/docs/10/dml-returning.html">Returning Data From Modified Rows</a> in the PostgreSQL documentation.</p> </note> 
" - }, "numberOfRecordsUpdated":{ "shape":"RecordsUpdated", "documentation":"

The number of records updated by the request.

" }, - "records":{ - "shape":"SqlRecords", - "documentation":"

The records returned by the SQL statement. This field is blank if the formatRecordsAs parameter is set to JSON.

" + "generatedFields":{ + "shape":"FieldList", + "documentation":"

Values for fields generated during a DML request.

 <note> <p>The <code>generatedFields</code> data isn't supported by Aurora PostgreSQL. To get the values of generated fields, use the <code>RETURNING</code> clause. For more information, see <a href="https://www.postgresql.org/docs/10/dml-returning.html">Returning Data From Modified Rows</a> in the PostgreSQL documentation.</p> </note> 
" + }, + "formattedRecords":{ + "shape":"FormattedSqlRecords", + "documentation":"

A string value that represents the result set of a SELECT statement in JSON format. This value is only present when the formatRecordsAs parameter is set to JSON.

The size limit for this field is currently 10 MB. If the JSON-formatted string representing the result set requires more than 10 MB, the call returns an error.

" } }, "documentation":"

The response elements represent the output of a request to run a SQL statement against a database.

" @@ -549,33 +549,37 @@ "Field":{ "type":"structure", "members":{ - "arrayValue":{ - "shape":"ArrayValue", - "documentation":"

An array of values.

" + "isNull":{ + "shape":"BoxedBoolean", + "documentation":"

A NULL value.

", + "box":true + }, + "booleanValue":{ + "shape":"BoxedBoolean", + "documentation":"

A value of Boolean data type.

", + "box":true + }, + "longValue":{ + "shape":"BoxedLong", + "documentation":"

A value of long data type.

", + "box":true + }, + "doubleValue":{ + "shape":"BoxedDouble", + "documentation":"

A value of double data type.

", + "box":true + }, + "stringValue":{ + "shape":"String", + "documentation":"

A value of string data type.

" }, "blobValue":{ "shape":"Blob", "documentation":"

A value of BLOB data type.

" }, - "booleanValue":{ - "shape":"BoxedBoolean", - "documentation":"

A value of Boolean data type.

" - }, - "doubleValue":{ - "shape":"BoxedDouble", - "documentation":"

A value of double data type.

" - }, - "isNull":{ - "shape":"BoxedBoolean", - "documentation":"

A NULL value.

" - }, - "longValue":{ - "shape":"BoxedLong", - "documentation":"

A value of long data type.

" - }, - "stringValue":{ - "shape":"String", - "documentation":"

A value of string data type.

" + "arrayValue":{ + "shape":"ArrayValue", + "documentation":"

An array of values.

" } }, "documentation":"

Contains a value.

", @@ -657,7 +661,7 @@ "documentation":"

The values returned in the record.

" } }, - "documentation":"

A record returned by a call.

This data structure is only used with the deprecated ExecuteSql operation. Use the BatchExecuteStatement or ExecuteStatement operation instead.

" + "documentation":"

A record returned by a call.

This data structure is only used with the deprecated ExecuteSql operation. Use the BatchExecuteStatement or ExecuteStatement operation instead.

" }, "Records":{ "type":"list", @@ -674,16 +678,16 @@ "ResultFrame":{ "type":"structure", "members":{ - "records":{ - "shape":"Records", - "documentation":"

The records in the result set.

" - }, "resultSetMetadata":{ "shape":"ResultSetMetadata", "documentation":"

The result-set metadata in the result set.

" + }, + "records":{ + "shape":"Records", + "documentation":"

The records in the result set.

" } }, - "documentation":"

The result set returned by a SQL statement.

This data structure is only used with the deprecated ExecuteSql operation. Use the BatchExecuteStatement or ExecuteStatement operation instead.

" + "documentation":"

The result set returned by a SQL statement.

This data structure is only used with the deprecated ExecuteSql operation. Use the BatchExecuteStatement or ExecuteStatement operation instead.

" }, "ResultSetMetadata":{ "type":"structure", @@ -704,7 +708,7 @@ "members":{ "decimalReturnType":{ "shape":"DecimalReturnType", - "documentation":"

A value that indicates how a field of DECIMAL type is represented in the response. The value of STRING, the default, specifies that it is converted to a String value. The value of DOUBLE_OR_LONG specifies that it is converted to a Long value if its scale is 0, or to a Double value otherwise.

Conversion to Double or Long can result in roundoff errors due to precision loss. We recommend converting to String, especially when working with currency values.

" + "documentation":"

A value that indicates how a field of DECIMAL type is represented in the response. The value of STRING, the default, specifies that it is converted to a String value. The value of DOUBLE_OR_LONG specifies that it is converted to a Long value if its scale is 0, or to a Double value otherwise.

Conversion to Double or Long can result in roundoff errors due to precision loss. We recommend converting to String, especially when working with currency values.

" }, "longReturnType":{ "shape":"LongReturnType", @@ -766,13 +770,13 @@ "shape":"ParameterName", "documentation":"

The name of the parameter.

" }, - "typeHint":{ - "shape":"TypeHint", - "documentation":"

A hint that specifies the correct object type for data type mapping. Possible values are as follows:

  • DATE - The corresponding String parameter value is sent as an object of DATE type to the database. The accepted format is YYYY-MM-DD.

  • DECIMAL - The corresponding String parameter value is sent as an object of DECIMAL type to the database.

  • JSON - The corresponding String parameter value is sent as an object of JSON type to the database.

  • TIME - The corresponding String parameter value is sent as an object of TIME type to the database. The accepted format is HH:MM:SS[.FFF].

  • TIMESTAMP - The corresponding String parameter value is sent as an object of TIMESTAMP type to the database. The accepted format is YYYY-MM-DD HH:MM:SS[.FFF].

  • UUID - The corresponding String parameter value is sent as an object of UUID type to the database.

" - }, "value":{ "shape":"Field", "documentation":"

The value of the parameter.

" + }, + "typeHint":{ + "shape":"TypeHint", + "documentation":"

A hint that specifies the correct object type for data type mapping. Possible values are as follows:

  • DATE - The corresponding String parameter value is sent as an object of DATE type to the database. The accepted format is YYYY-MM-DD.

  • DECIMAL - The corresponding String parameter value is sent as an object of DECIMAL type to the database.

  • JSON - The corresponding String parameter value is sent as an object of JSON type to the database.

  • TIME - The corresponding String parameter value is sent as an object of TIME type to the database. The accepted format is HH:MM:SS[.FFF].

  • TIMESTAMP - The corresponding String parameter value is sent as an object of TIMESTAMP type to the database. The accepted format is YYYY-MM-DD HH:MM:SS[.FFF].

  • UUID - The corresponding String parameter value is sent as an object of UUID type to the database.

" } }, "documentation":"

A parameter used in a SQL statement.

" @@ -797,16 +801,16 @@ "SqlStatementResult":{ "type":"structure", "members":{ - "numberOfRecordsUpdated":{ - "shape":"RecordsUpdated", - "documentation":"

The number of records updated by a SQL statement.

" - }, "resultFrame":{ "shape":"ResultFrame", "documentation":"

The result set of the SQL statement.

" + }, + "numberOfRecordsUpdated":{ + "shape":"RecordsUpdated", + "documentation":"

The number of records updated by a SQL statement.

" } }, - "documentation":"

The result of a SQL statement.

 <important> <p>This data structure is only used with the deprecated <code>ExecuteSql</code> operation. Use the <code>BatchExecuteStatement</code> or <code>ExecuteStatement</code> operation instead.</p> </important> 
" + "documentation":"

The result of a SQL statement.

 <note> <p>This data structure is only used with the deprecated <code>ExecuteSql</code> operation. Use the <code>BatchExecuteStatement</code> or <code>ExecuteStatement</code> operation instead.</p> </note> 
" }, "SqlStatementResults":{ "type":"list", @@ -815,13 +819,13 @@ "StatementTimeoutException":{ "type":"structure", "members":{ - "dbConnectionId":{ - "shape":"Long", - "documentation":"

The database connection ID that executed the SQL statement.

" - }, "message":{ "shape":"ErrorMessage", "documentation":"

The error message returned by this StatementTimeoutException error.

" + }, + "dbConnectionId":{ + "shape":"Long", + "documentation":"

The database connection ID that executed the SQL statement.

" } }, "documentation":"

The execution of the SQL statement timed out.

", @@ -845,7 +849,7 @@ "documentation":"

The attributes returned in the record.

" } }, - "documentation":"

A structure value returned by a call.

This data structure is only used with the deprecated ExecuteSql operation. Use the BatchExecuteStatement or ExecuteStatement operation instead.

" + "documentation":"

A structure value returned by a call.

This data structure is only used with the deprecated ExecuteSql operation. Use the BatchExecuteStatement or ExecuteStatement operation instead.

" }, "TransactionStatus":{ "type":"string", @@ -880,50 +884,56 @@ "Value":{ "type":"structure", "members":{ - "arrayValues":{ - "shape":"ArrayValueList", - "documentation":"

An array of column values.

" - }, - "bigIntValue":{ - "shape":"BoxedLong", - "documentation":"

A value for a column of big integer data type.

" + "isNull":{ + "shape":"BoxedBoolean", + "documentation":"

A NULL value.

", + "box":true }, "bitValue":{ "shape":"BoxedBoolean", - "documentation":"

A value for a column of BIT data type.

" + "documentation":"

A value for a column of BIT data type.

", + "box":true + }, + "bigIntValue":{ + "shape":"BoxedLong", + "documentation":"

A value for a column of big integer data type.

", + "box":true + }, + "intValue":{ + "shape":"BoxedInteger", + "documentation":"

A value for a column of integer data type.

", + "box":true + }, + "doubleValue":{ + "shape":"BoxedDouble", + "documentation":"

A value for a column of double data type.

", + "box":true + }, + "realValue":{ + "shape":"BoxedFloat", + "documentation":"

A value for a column of real data type.

", + "box":true + }, + "stringValue":{ + "shape":"String", + "documentation":"

A value for a column of string data type.

" }, "blobValue":{ "shape":"Blob", "documentation":"

A value for a column of BLOB data type.

" }, - "doubleValue":{ - "shape":"BoxedDouble", - "documentation":"

A value for a column of double data type.

" - }, - "intValue":{ - "shape":"BoxedInteger", - "documentation":"

A value for a column of integer data type.

" - }, - "isNull":{ - "shape":"BoxedBoolean", - "documentation":"

A NULL value.

" - }, - "realValue":{ - "shape":"BoxedFloat", - "documentation":"

A value for a column of real data type.

" - }, - "stringValue":{ - "shape":"String", - "documentation":"

A value for a column of string data type.

" + "arrayValues":{ + "shape":"ArrayValueList", + "documentation":"

An array of column values.

" }, "structValue":{ "shape":"StructValue", "documentation":"

A value for a column of STRUCT data type.

" } }, - "documentation":"

Contains the value of a column.

 <important> <p>This data structure is only used with the deprecated <code>ExecuteSql</code> operation. Use the <code>BatchExecuteStatement</code> or <code>ExecuteStatement</code> operation instead.</p> </important> 
", + "documentation":"

Contains the value of a column.

 <note> <p>This data structure is only used with the deprecated <code>ExecuteSql</code> operation. Use the <code>BatchExecuteStatement</code> or <code>ExecuteStatement</code> operation instead.</p> </note> 
", "union":true } }, - "documentation":"

Amazon RDS Data Service

Amazon RDS provides an HTTP endpoint to run SQL statements on an Amazon Aurora Serverless DB cluster. To run these statements, you work with the Data Service API.

For more information about the Data Service API, see Using the Data API in the Amazon Aurora User Guide.

" + "documentation":"

Amazon RDS Data Service

Amazon RDS provides an HTTP endpoint to run SQL statements on an Amazon Aurora Serverless v1 DB cluster. To run these statements, you work with the Data Service API.

The Data Service API isn't supported on Amazon Aurora Serverless v2 DB clusters.

For more information about the Data Service API, see Using the Data API in the Amazon Aurora User Guide.

" } diff --git a/botocore/data/rds/2014-09-01/endpoint-rule-set-1.json b/botocore/data/rds/2014-09-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..1becf46c --- /dev/null +++ b/botocore/data/rds/2014-09-01/endpoint-rule-set-1.json @@ -0,0 +1,435 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.ca-central-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.ca-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-east-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-east-2" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-west-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-west-2" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/rds/2014-10-31/endpoint-rule-set-1.json b/botocore/data/rds/2014-10-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..7ab4d4e1 --- /dev/null +++ b/botocore/data/rds/2014-10-31/endpoint-rule-set-1.json @@ -0,0 +1,426 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.ca-central-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.ca-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-east-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-east-2" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-west-1" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rds.us-west-2" + ] + } + ], + "endpoint": { + "url": "https://rds-fips.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rds.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/rds/2014-10-31/paginators-1.json b/botocore/data/rds/2014-10-31/paginators-1.json index 08eeee0e..33ef4ba9 100644 --- a/botocore/data/rds/2014-10-31/paginators-1.json +++ b/botocore/data/rds/2014-10-31/paginators-1.json @@ -204,6 +204,12 @@ "limit_key": "MaxRecords", "output_token": "Marker", "result_key": "DBProxyEndpoints" + }, + "DescribeBlueGreenDeployments": { + "input_token": "Marker", + "limit_key": "MaxRecords", + "output_token": "Marker", + "result_key": "BlueGreenDeployments" } } } diff --git a/botocore/data/rds/2014-10-31/service-2.json b/botocore/data/rds/2014-10-31/service-2.json index 1f3e2788..43489d35 100644 --- a/botocore/data/rds/2014-10-31/service-2.json +++ b/botocore/data/rds/2014-10-31/service-2.json @@ -71,7 +71,8 @@ {"shape":"DBClusterNotFoundFault"}, {"shape":"DBSnapshotNotFoundFault"}, {"shape":"DBProxyNotFoundFault"}, - {"shape":"DBProxyTargetGroupNotFoundFault"} + {"shape":"DBProxyTargetGroupNotFoundFault"}, + {"shape":"BlueGreenDeploymentNotFoundFault"} ], "documentation":"

Adds metadata tags to an Amazon RDS resource. These tags can also be used with cost allocation reporting to track cost associated with Amazon RDS resources, or used in a Condition statement in an IAM policy for Amazon RDS.

For an overview on tagging Amazon RDS resources, see Tagging Amazon RDS Resources.

" }, @@ -110,7 +111,7 @@ {"shape":"AuthorizationAlreadyExistsFault"}, {"shape":"AuthorizationQuotaExceededFault"} ], - "documentation":"

Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC).

You can't authorize ingress from an EC2 security group in one Amazon Web Services Region to an Amazon RDS DB instance in another. You can't authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another.

For an overview of CIDR ranges, go to the Wikipedia Tutorial.

" + "documentation":"

Enables ingress to a DBSecurityGroup using one of two forms of authorization. First, EC2 or VPC security groups can be added to the DBSecurityGroup if the application using the database is running on EC2 or VPC instances. Second, IP ranges are available if the application accessing your database is running on the internet. Required parameters for this API are one of CIDR range, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId for non-VPC).

You can't authorize ingress from an EC2 security group in one Amazon Web Services Region to an Amazon RDS DB instance in another. You can't authorize ingress from a VPC security group in one VPC to an Amazon RDS DB instance in another.

For an overview of CIDR ranges, go to the Wikipedia Tutorial.

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

" }, "BacktrackDBCluster":{ "name":"BacktrackDBCluster", @@ -127,7 +128,7 @@ {"shape":"DBClusterNotFoundFault"}, {"shape":"InvalidDBClusterStateFault"} ], - "documentation":"

Backtracks a DB cluster to a specific time, without creating a new DB cluster.

For more information on backtracking, see Backtracking an Aurora DB Cluster in the Amazon Aurora User Guide.

This action only applies to Aurora MySQL DB clusters.

" + "documentation":"

Backtracks a DB cluster to a specific time, without creating a new DB cluster.

For more information on backtracking, see Backtracking an Aurora DB Cluster in the Amazon Aurora User Guide.

This action applies only to Aurora MySQL DB clusters.

" }, "CancelExportTask":{ "name":"CancelExportTask", @@ -183,7 +184,7 @@ {"shape":"SnapshotQuotaExceededFault"}, {"shape":"KMSKeyNotAccessibleFault"} ], - "documentation":"

Copies a snapshot of a DB cluster.

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

You can copy an encrypted DB cluster snapshot from another Amazon Web Services Region. In that case, the Amazon Web Services Region where you call the CopyDBClusterSnapshot action is the destination Amazon Web Services Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another Amazon Web Services Region, you must provide the following values:

  • KmsKeyId - The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • PreSignedUrl - A URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot action to be called in the source Amazon Web Services Region where the DB cluster snapshot is copied from. The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be executed in the source Amazon Web Services Region that contains the encrypted DB cluster snapshot to be copied.

    The pre-signed URL request must contain the following parameter values:

    • KmsKeyId - The Amazon Web Services KMS key identifier for the KMS key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination Amazon Web Services Region, and the action contained in the pre-signed URL.

    • DestinationRegion - The name of the Amazon Web Services Region that the DB cluster snapshot is to be created in.

    • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 Amazon Web Services Region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

    To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

    If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region.

  • TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source Amazon Web Services Region and is the same value as the SourceDBClusterSnapshotIdentifier in the pre-signed URL.

To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

For more information on copying encrypted Amazon Aurora DB cluster snapshots from one Amazon Web Services Region to another, see Copying a Snapshot in the Amazon Aurora User Guide.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Copies a snapshot of a DB cluster.

To copy a DB cluster snapshot from a shared manual DB cluster snapshot, SourceDBClusterSnapshotIdentifier must be the Amazon Resource Name (ARN) of the shared DB cluster snapshot.

You can copy an encrypted DB cluster snapshot from another Amazon Web Services Region. In that case, the Amazon Web Services Region where you call the CopyDBClusterSnapshot operation is the destination Amazon Web Services Region for the encrypted DB cluster snapshot to be copied to. To copy an encrypted DB cluster snapshot from another Amazon Web Services Region, you must provide the following values:

  • KmsKeyId - The Amazon Web Services Key Management System (Amazon Web Services KMS) key identifier for the key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • TargetDBClusterSnapshotIdentifier - The identifier for the new copy of the DB cluster snapshot in the destination Amazon Web Services Region.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the ARN format for the source Amazon Web Services Region and is the same value as the SourceDBClusterSnapshotIdentifier in the presigned URL.

To cancel the copy operation once it is in progress, delete the target DB cluster snapshot identified by TargetDBClusterSnapshotIdentifier while that DB cluster snapshot is in \"copying\" status.

For more information on copying encrypted Amazon Aurora DB cluster snapshots from one Amazon Web Services Region to another, see Copying a Snapshot in the Amazon Aurora User Guide.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" }, "CopyDBParameterGroup":{ "name":"CopyDBParameterGroup", @@ -222,7 +223,7 @@ {"shape":"KMSKeyNotAccessibleFault"}, {"shape":"CustomAvailabilityZoneNotFoundFault"} ], - "documentation":"

Copies the specified DB snapshot. The source DB snapshot must be in the available state.

You can copy a snapshot from one Amazon Web Services Region to another. In that case, the Amazon Web Services Region where you call the CopyDBSnapshot action is the destination Amazon Web Services Region for the DB snapshot copy.

This command doesn't apply to RDS Custom.

For more information about copying snapshots, see Copying a DB Snapshot in the Amazon RDS User Guide.

" + "documentation":"

Copies the specified DB snapshot. The source DB snapshot must be in the available state.

You can copy a snapshot from one Amazon Web Services Region to another. In that case, the Amazon Web Services Region where you call the CopyDBSnapshot operation is the destination Amazon Web Services Region for the DB snapshot copy.

This command doesn't apply to RDS Custom.

For more information about copying snapshots, see Copying a DB Snapshot in the Amazon RDS User Guide.

" }, "CopyOptionGroup":{ "name":"CopyOptionGroup", @@ -242,6 +243,32 @@ ], "documentation":"

Copies the specified option group.

" }, + "CreateBlueGreenDeployment":{ + "name":"CreateBlueGreenDeployment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateBlueGreenDeploymentRequest"}, + "output":{ + "shape":"CreateBlueGreenDeploymentResponse", + "resultWrapper":"CreateBlueGreenDeploymentResult" + }, + "errors":[ + {"shape":"DBInstanceNotFoundFault"}, + {"shape":"DBClusterNotFoundFault"}, + {"shape":"SourceDatabaseNotSupportedFault"}, + {"shape":"SourceClusterNotSupportedFault"}, + {"shape":"BlueGreenDeploymentAlreadyExistsFault"}, + {"shape":"DBParameterGroupNotFoundFault"}, + {"shape":"DBClusterParameterGroupNotFoundFault"}, + {"shape":"InstanceQuotaExceededFault"}, + {"shape":"DBClusterQuotaExceededFault"}, + {"shape":"InvalidDBInstanceStateFault"}, + {"shape":"InvalidDBClusterStateFault"} + ], + "documentation":"

Creates a blue/green deployment.

A blue/green deployment creates a staging environment that copies the production environment. In a blue/green deployment, the blue environment is the current production environment. The green environment is the staging environment. The staging environment stays in sync with the current production environment using logical replication.

You can make changes to the databases in the green environment without affecting production workloads. For example, you can upgrade the major or minor DB engine version, change database parameters, or make schema changes in the staging environment. You can thoroughly test changes in the green environment. When ready, you can switch over the environments to promote the green environment to be the new production environment. The switchover typically takes under a minute.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + }, "CreateCustomDBEngineVersion":{ "name":"CreateCustomDBEngineVersion", "http":{ @@ -291,7 +318,7 @@ {"shape":"InvalidGlobalClusterStateFault"}, {"shape":"DomainNotFoundFault"} ], - "documentation":"

Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster.

You can use the ReplicationSourceIdentifier parameter to create an Amazon Aurora DB cluster as a read replica of another DB cluster or Amazon RDS MySQL or PostgreSQL DB instance. For cross-Region replication where the DB cluster identified by ReplicationSourceIdentifier is encrypted, also specify the PreSignedUrl parameter.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster.

You can use the ReplicationSourceIdentifier parameter to create an Amazon Aurora DB cluster as a read replica of another DB cluster or Amazon RDS MySQL or PostgreSQL DB instance.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" }, "CreateDBClusterEndpoint":{ "name":"CreateDBClusterEndpoint", @@ -312,7 +339,7 @@ {"shape":"DBInstanceNotFoundFault"}, {"shape":"InvalidDBInstanceStateFault"} ], - "documentation":"

Creates a new custom endpoint and associates it with an Amazon Aurora DB cluster.

This action only applies to Aurora DB clusters.

" + "documentation":"

Creates a new custom endpoint and associates it with an Amazon Aurora DB cluster.

This action applies only to Aurora DB clusters.

" }, "CreateDBClusterParameterGroup":{ "name":"CreateDBClusterParameterGroup", @@ -329,7 +356,7 @@ {"shape":"DBParameterGroupQuotaExceededFault"}, {"shape":"DBParameterGroupAlreadyExistsFault"} ], - "documentation":"

Creates a new DB cluster parameter group.

Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.

A DB cluster parameter group is initially created with the default parameters for the database engine used by instances in the DB cluster. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBClusterParameterGroup. Once you've created a DB cluster parameter group, you need to associate it with your DB cluster using ModifyDBCluster.

When you associate a new DB cluster parameter group with a running Aurora DB cluster, reboot the DB instances in the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

When you associate a new DB cluster parameter group with a running Multi-AZ DB cluster, reboot the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the DB cluster parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters action to verify that your DB cluster parameter group has been created or modified.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Creates a new DB cluster parameter group.

Parameters in a DB cluster parameter group apply to all of the instances in a DB cluster.

A DB cluster parameter group is initially created with the default parameters for the database engine used by instances in the DB cluster. To provide custom values for any of the parameters, you must modify the group after creating it using ModifyDBClusterParameterGroup. Once you've created a DB cluster parameter group, you need to associate it with your DB cluster using ModifyDBCluster.

When you associate a new DB cluster parameter group with a running Aurora DB cluster, reboot the DB instances in the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

When you associate a new DB cluster parameter group with a running Multi-AZ DB cluster, reboot the DB cluster without failover for the new DB cluster parameter group and associated settings to take effect.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the DB cluster parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters operation to verify that your DB cluster parameter group has been created or modified.

For more information on Amazon Aurora, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" }, "CreateDBClusterSnapshot":{ "name":"CreateDBClusterSnapshot", @@ -384,7 +411,7 @@ {"shape":"BackupPolicyNotFoundFault"}, {"shape":"NetworkTypeNotSupported"} ], - "documentation":"

Creates a new DB instance.

" + "documentation":"

Creates a new DB instance.

The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster. For an Aurora DB cluster, you can call this operation multiple times to add more than one DB instance to the cluster.

For more information about creating an RDS DB instance, see Creating an Amazon RDS DB instance in the Amazon RDS User Guide.

For more information about creating a DB instance in an Aurora DB cluster, see Creating an Amazon Aurora DB cluster in the Amazon Aurora User Guide.

" }, "CreateDBInstanceReadReplica":{ "name":"CreateDBInstanceReadReplica", @@ -419,7 +446,7 @@ {"shape":"DomainNotFoundFault"}, {"shape":"NetworkTypeNotSupported"} ], - "documentation":"

Creates a new DB instance that acts as a read replica for an existing source DB instance. You can create a read replica for a DB instance running MySQL, MariaDB, Oracle, PostgreSQL, or SQL Server. For more information, see Working with Read Replicas in the Amazon RDS User Guide.

Amazon Aurora doesn't support this action. Call the CreateDBInstance action to create a DB instance for an Aurora DB cluster.

All read replica DB instances are created with backups disabled. All other DB instance attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance, except as specified.

Your source DB instance must have backup retention enabled.

" + "documentation":"

Creates a new DB instance that acts as a read replica for an existing source DB instance. You can create a read replica for a DB instance running MySQL, MariaDB, Oracle, PostgreSQL, or SQL Server. For more information, see Working with Read Replicas in the Amazon RDS User Guide.

Amazon Aurora doesn't support this operation. Call the CreateDBInstance operation to create a DB instance for an Aurora DB cluster.

All read replica DB instances are created with backups disabled. All other DB instance attributes (including DB security groups and DB parameter groups) are inherited from the source DB instance, except as specified.

Your source DB instance must have backup retention enabled.

" }, "CreateDBParameterGroup":{ "name":"CreateDBParameterGroup", @@ -492,7 +519,7 @@ {"shape":"DBSecurityGroupQuotaExceededFault"}, {"shape":"DBSecurityGroupNotSupportedFault"} ], - "documentation":"

Creates a new DB security group. DB security groups control access to a DB instance.

A DB security group controls access to EC2-Classic DB instances that are not in a VPC.

" + "documentation":"

Creates a new DB security group. DB security groups control access to a DB instance.

A DB security group controls access to EC2-Classic DB instances that are not in a VPC.

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

" }, "CreateDBSnapshot":{ "name":"CreateDBSnapshot", @@ -553,7 +580,7 @@ {"shape":"SubscriptionCategoryNotFoundFault"}, {"shape":"SourceNotFoundFault"} ], - "documentation":"

Creates an RDS event notification subscription. This action requires a topic Amazon Resource Name (ARN) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

You can specify the type of source (SourceType) that you want to be notified of and provide a list of RDS sources (SourceIds) that triggers the events. You can also provide a list of event categories (EventCategories) for events that you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup.

If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIds = myDBInstance1, you are notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify SourceIds, you receive notice of the events for that source type for all your RDS sources. If you don't specify either the SourceType or the SourceIds, you are notified of events generated from all RDS sources belonging to your customer account.

RDS event notification is only available for unencrypted SNS topics. If you specify an encrypted SNS topic, event notifications aren't sent for the topic.

" + "documentation":"

Creates an RDS event notification subscription. This operation requires a topic Amazon Resource Name (ARN) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console.

You can specify the type of source (SourceType) that you want to be notified of and provide a list of RDS sources (SourceIds) that triggers the events. You can also provide a list of event categories (EventCategories) for events that you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup.

If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIds = myDBInstance1, you are notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify SourceIds, you receive notice of the events for that source type for all your RDS sources. If you don't specify either the SourceType or the SourceIds, you are notified of events generated from all RDS sources belonging to your customer account.

For more information about subscribing to an event for RDS DB engines, see Subscribing to Amazon RDS event notification in the Amazon RDS User Guide.

For more information about subscribing to an event for Aurora DB engines, see Subscribing to Amazon RDS event notification in the Amazon Aurora User Guide.

" }, "CreateGlobalCluster":{ "name":"CreateGlobalCluster", @@ -572,7 +599,7 @@ {"shape":"InvalidDBClusterStateFault"}, {"shape":"DBClusterNotFoundFault"} ], - "documentation":"

Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem.

You can create a global database that is initially empty, and then add a primary cluster and a secondary cluster to it. Or you can specify an existing Aurora cluster during the create operation, and this cluster becomes the primary cluster of the global database.

This action only applies to Aurora DB clusters.

" + "documentation":"

Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem.

You can create a global database that is initially empty, and then add a primary cluster and a secondary cluster to it. Or you can specify an existing Aurora cluster during the create operation, and this cluster becomes the primary cluster of the global database.

This action applies only to Aurora DB clusters.

" }, "CreateOptionGroup":{ "name":"CreateOptionGroup", @@ -591,6 +618,23 @@ ], "documentation":"

Creates a new option group. You can create up to 20 option groups.

This command doesn't apply to RDS Custom.

" }, + "DeleteBlueGreenDeployment":{ + "name":"DeleteBlueGreenDeployment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteBlueGreenDeploymentRequest"}, + "output":{ + "shape":"DeleteBlueGreenDeploymentResponse", + "resultWrapper":"DeleteBlueGreenDeploymentResult" + }, + "errors":[ + {"shape":"BlueGreenDeploymentNotFoundFault"}, + {"shape":"InvalidBlueGreenDeploymentStateFault"} + ], + "documentation":"

Deletes a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + }, "DeleteCustomDBEngineVersion":{ "name":"DeleteCustomDBEngineVersion", "http":{ @@ -772,7 +816,7 @@ {"shape":"InvalidDBSecurityGroupStateFault"}, {"shape":"DBSecurityGroupNotFoundFault"} ], - "documentation":"

Deletes a DB security group.

The specified DB security group must not be associated with any DB instances.

" + "documentation":"

Deletes a DB security group.

The specified DB security group must not be associated with any DB instances.

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

" }, "DeleteDBSnapshot":{ "name":"DeleteDBSnapshot", @@ -884,6 +928,22 @@ }, "documentation":"

Lists all of the attributes for a customer account. The attributes include Amazon RDS quotas for the account, such as the number of DB instances allowed. The description for a quota includes the quota name, current usage toward that quota, and the quota's maximum value.

This command doesn't take any parameters.

" }, + "DescribeBlueGreenDeployments":{ + "name":"DescribeBlueGreenDeployments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeBlueGreenDeploymentsRequest"}, + "output":{ + "shape":"DescribeBlueGreenDeploymentsResponse", + "resultWrapper":"DescribeBlueGreenDeploymentsResult" + }, + "errors":[ + {"shape":"BlueGreenDeploymentNotFoundFault"} + ], + "documentation":"

Returns information about blue/green deployments.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + }, "DescribeCertificates":{ "name":"DescribeCertificates", "http":{ @@ -1190,7 +1250,7 @@ "errors":[ {"shape":"DBSecurityGroupNotFoundFault"} ], - "documentation":"

Returns a list of DBSecurityGroup descriptions. If a DBSecurityGroupName is specified, the list will contain only the descriptions of the specified DB security group.

" + "documentation":"

Returns a list of DBSecurityGroup descriptions. If a DBSecurityGroupName is specified, the list will contain only the descriptions of the specified DB security group.

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

" }, "DescribeDBSnapshotAttributes":{ "name":"DescribeDBSnapshotAttributes", @@ -1306,7 +1366,7 @@ "shape":"EventsMessage", "resultWrapper":"DescribeEventsResult" }, - "documentation":"

Returns events related to DB instances, DB clusters, DB parameter groups, DB security groups, DB snapshots, DB cluster snapshots, and RDS Proxies for the past 14 days. Events specific to a particular DB instance, DB cluster, DB parameter group, DB security group, DB snapshot, DB cluster snapshot group, or RDS Proxy can be obtained by providing the name as a parameter.

By default, RDS returns events that were generated in the past hour.

" + "documentation":"

Returns events related to DB instances, DB clusters, DB parameter groups, DB security groups, DB snapshots, DB cluster snapshots, and RDS Proxies for the past 14 days. Events specific to a particular DB instance, DB cluster, DB parameter group, DB security group, DB snapshot, DB cluster snapshot group, or RDS Proxy can be obtained by providing the name as a parameter.

For more information on working with events, see Monitoring Amazon RDS events in the Amazon RDS User Guide and Monitoring Amazon Aurora events in the Amazon Aurora User Guide.

By default, RDS returns events that were generated in the past hour.

" }, "DescribeExportTasks":{ "name":"DescribeExportTasks", @@ -1441,7 +1501,7 @@ "shape":"SourceRegionMessage", "resultWrapper":"DescribeSourceRegionsResult" }, - "documentation":"

Returns a list of the source Amazon Web Services Regions where the current Amazon Web Services Region can create a read replica, copy a DB snapshot from, or replicate automated backups from. This API action supports pagination.

" + "documentation":"

Returns a list of the source Amazon Web Services Regions where the current Amazon Web Services Region can create a read replica, copy a DB snapshot from, or replicate automated backups from.

Use this operation to determine whether cross-Region features are supported between other Regions and your current Region. This operation supports pagination.

To return information about the Regions that are enabled for your account, or all Regions, use the EC2 operation DescribeRegions. For more information, see DescribeRegions in the Amazon EC2 API Reference.

" }, "DescribeValidDBInstanceModifications":{ "name":"DescribeValidDBInstanceModifications", @@ -1493,7 +1553,7 @@ {"shape":"InvalidDBClusterStateFault"}, {"shape":"InvalidDBInstanceStateFault"} ], - "documentation":"

Forces a failover for a DB cluster.

For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

For a Multi-AZ DB cluster, failover for a DB cluster promotes one of the readable standby DB instances (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists, when the primary DB instance fails. A Multi-AZ DB cluster automatically fails over to a readbable standby DB instance when the primary DB instance fails.

To simulate a failure of a primary instance for testing, you can force a failover. Because each instance in a DB cluster has its own endpoint address, make sure to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Forces a failover for a DB cluster.

For an Aurora DB cluster, failover for a DB cluster promotes one of the Aurora Replicas (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

For a Multi-AZ DB cluster, failover for a DB cluster promotes one of the readable standby DB instances (read-only instances) in the DB cluster to be the primary DB instance (the cluster writer).

An Amazon Aurora DB cluster automatically fails over to an Aurora Replica, if one exists, when the primary DB instance fails. A Multi-AZ DB cluster automatically fails over to a readable standby DB instance when the primary DB instance fails.

To simulate a failure of a primary instance for testing, you can force a failover. Because each instance in a DB cluster has its own endpoint address, make sure to clean up and re-establish any existing connections that use those endpoint addresses when the failover is complete.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" }, "FailoverGlobalCluster":{ "name":"FailoverGlobalCluster", @@ -1530,10 +1590,29 @@ {"shape":"DBSnapshotNotFoundFault"}, {"shape":"DBClusterNotFoundFault"}, {"shape":"DBProxyNotFoundFault"}, - {"shape":"DBProxyTargetGroupNotFoundFault"} + {"shape":"DBProxyTargetGroupNotFoundFault"}, + {"shape":"BlueGreenDeploymentNotFoundFault"} ], "documentation":"

Lists all tags on an Amazon RDS resource.

For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources in the Amazon RDS User Guide.

" }, + "ModifyActivityStream":{ + "name":"ModifyActivityStream", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyActivityStreamRequest"}, + "output":{ + "shape":"ModifyActivityStreamResponse", + "resultWrapper":"ModifyActivityStreamResult" + }, + "errors":[ + {"shape":"InvalidDBInstanceStateFault"}, + {"shape":"ResourceNotFoundFault"}, + {"shape":"DBInstanceNotFoundFault"} + ], + "documentation":"

Changes the audit policy state of a database activity stream to either locked (default) or unlocked. A locked policy is read-only, whereas an unlocked policy is read/write. If your activity stream is started and locked, you can unlock it, customize your audit policy, and then lock your activity stream. Restarting the activity stream isn't required. For more information, see Modifying a database activity stream in the Amazon RDS User Guide.

This operation is supported for RDS for Oracle only.

" + }, "ModifyCertificates":{ "name":"ModifyCertificates", "http":{ @@ -1647,7 +1726,7 @@ {"shape":"DBParameterGroupNotFoundFault"}, {"shape":"InvalidDBParameterGroupStateFault"} ], - "documentation":"

Modifies the parameters of a DB cluster parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters action to verify that your DB cluster parameter group has been created or modified.

If the modified DB cluster parameter group is used by an Aurora Serverless v1 cluster, Aurora applies the update immediately. The cluster restart might interrupt your workload. In that case, your application must reopen any connections and retry any transactions that were active when the parameter changes took effect.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" + "documentation":"

Modifies the parameters of a DB cluster parameter group. To modify more than one parameter, submit a list of the following: ParameterName, ParameterValue, and ApplyMethod. A maximum of 20 parameters can be modified in a single request.

After you create a DB cluster parameter group, you should wait at least 5 minutes before creating your first DB cluster that uses that DB cluster parameter group as the default parameter group. This allows Amazon RDS to fully complete the create action before the parameter group is used as the default for a new DB cluster. This is especially important for parameters that are critical when creating the default database for a DB cluster, such as the character set for the default database defined by the character_set_database parameter. You can use the Parameter Groups option of the Amazon RDS console or the DescribeDBClusterParameters operation to verify that your DB cluster parameter group has been created or modified.

If the modified DB cluster parameter group is used by an Aurora Serverless v1 cluster, Aurora applies the update immediately. The cluster restart might interrupt your workload. In that case, your application must reopen any connections and retry any transactions that were active when the parameter changes took effect.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" }, "ModifyDBClusterSnapshotAttribute":{ "name":"ModifyDBClusterSnapshotAttribute", @@ -1665,7 +1744,7 @@ {"shape":"InvalidDBClusterSnapshotStateFault"}, {"shape":"SharedSnapshotQuotaExceededFault"} ], - "documentation":"

Adds an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot.

To share a manual DB cluster snapshot with other Amazon Web Services accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the Amazon Web Services accounts that are authorized to restore the manual DB cluster snapshot. Use the value all to make the manual DB cluster snapshot public, which means that it can be copied or restored by all Amazon Web Services accounts.

Don't add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all Amazon Web Services accounts.

If a manual DB cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized Amazon Web Services account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which Amazon Web Services accounts have access to copy or restore a manual DB cluster snapshot, or whether a manual DB cluster snapshot is public or private, use the DescribeDBClusterSnapshotAttributes API action. The accounts are returned as values for the restore attribute.

" + "documentation":"

Adds an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot.

To share a manual DB cluster snapshot with other Amazon Web Services accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the Amazon Web Services accounts that are authorized to restore the manual DB cluster snapshot. Use the value all to make the manual DB cluster snapshot public, which means that it can be copied or restored by all Amazon Web Services accounts.

Don't add the all value for any manual DB cluster snapshots that contain private information that you don't want available to all Amazon Web Services accounts.

If a manual DB cluster snapshot is encrypted, it can be shared, but only by specifying a list of authorized Amazon Web Services account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which Amazon Web Services accounts have access to copy or restore a manual DB cluster snapshot, or whether a manual DB cluster snapshot is public or private, use the DescribeDBClusterSnapshotAttributes API operation. The accounts are returned as values for the restore attribute.

" }, "ModifyDBInstance":{ "name":"ModifyDBInstance", @@ -1806,7 +1885,7 @@ {"shape":"InvalidDBSnapshotStateFault"}, {"shape":"SharedSnapshotQuotaExceededFault"} ], - "documentation":"

Adds an attribute and values to, or removes an attribute and values from, a manual DB snapshot.

To share a manual DB snapshot with other Amazon Web Services accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the Amazon Web Services accounts that are authorized to restore the manual DB snapshot. Uses the value all to make the manual DB snapshot public, which means it can be copied or restored by all Amazon Web Services accounts.

Don't add the all value for any manual DB snapshots that contain private information that you don't want available to all Amazon Web Services accounts.

If the manual DB snapshot is encrypted, it can be shared, but only by specifying a list of authorized Amazon Web Services account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which Amazon Web Services accounts have access to copy or restore a manual DB snapshot, or whether a manual DB snapshot public or private, use the DescribeDBSnapshotAttributes API action. The accounts are returned as values for the restore attribute.

" + "documentation":"

Adds an attribute and values to, or removes an attribute and values from, a manual DB snapshot.

To share a manual DB snapshot with other Amazon Web Services accounts, specify restore as the AttributeName and use the ValuesToAdd parameter to add a list of IDs of the Amazon Web Services accounts that are authorized to restore the manual DB snapshot. Uses the value all to make the manual DB snapshot public, which means it can be copied or restored by all Amazon Web Services accounts.

Don't add the all value for any manual DB snapshots that contain private information that you don't want available to all Amazon Web Services accounts.

If the manual DB snapshot is encrypted, it can be shared, but only by specifying a list of authorized Amazon Web Services account IDs for the ValuesToAdd parameter. You can't use all as a value for that parameter in this case.

To view which Amazon Web Services accounts have access to copy or restore a manual DB snapshot, or whether a manual DB snapshot public or private, use the DescribeDBSnapshotAttributes API operation. The accounts are returned as values for the restore attribute.

" }, "ModifyDBSubnetGroup":{ "name":"ModifyDBSubnetGroup", @@ -1970,7 +2049,7 @@ {"shape":"InvalidDBInstanceStateFault"}, {"shape":"DBInstanceNotFoundFault"} ], - "documentation":"

You might need to reboot your DB instance, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB parameter group associated with the DB instance, you must reboot the instance for the changes to take effect.

Rebooting a DB instance restarts the database engine service. Rebooting a DB instance results in a momentary outage, during which the DB instance status is set to rebooting.

For more information about rebooting, see Rebooting a DB Instance in the Amazon RDS User Guide.

This command doesn't apply to RDS Custom.

" + "documentation":"

You might need to reboot your DB instance, usually for maintenance reasons. For example, if you make certain modifications, or if you change the DB parameter group associated with the DB instance, you must reboot the instance for the changes to take effect.

Rebooting a DB instance restarts the database engine service. Rebooting a DB instance results in a momentary outage, during which the DB instance status is set to rebooting.

For more information about rebooting, see Rebooting a DB Instance in the Amazon RDS User Guide.

This command doesn't apply to RDS Custom.

If your DB instance is part of a Multi-AZ DB cluster, you can reboot the DB cluster with the RebootDBCluster operation.

" }, "RegisterDBProxyTargets":{ "name":"RegisterDBProxyTargets", @@ -2071,7 +2150,8 @@ {"shape":"DBSnapshotNotFoundFault"}, {"shape":"DBClusterNotFoundFault"}, {"shape":"DBProxyNotFoundFault"}, - {"shape":"DBProxyTargetGroupNotFoundFault"} + {"shape":"DBProxyTargetGroupNotFoundFault"}, + {"shape":"BlueGreenDeploymentNotFoundFault"} ], "documentation":"

Removes metadata tags from an Amazon RDS resource.

For an overview on tagging an Amazon RDS resource, see Tagging Amazon RDS Resources in the Amazon RDS User Guide.

" }, @@ -2168,7 +2248,8 @@ {"shape":"OptionGroupNotFoundFault"}, {"shape":"KMSKeyNotAccessibleFault"}, {"shape":"DomainNotFoundFault"}, - {"shape":"DBClusterParameterGroupNotFoundFault"} + {"shape":"DBClusterParameterGroupNotFoundFault"}, + {"shape":"InvalidDBInstanceStateFault"} ], "documentation":"

Creates a new DB cluster from a DB snapshot or DB cluster snapshot.

The target DB cluster is created from the source snapshot with a default configuration. If you don't specify a security group, the new DB cluster is associated with the default security group.

This action only restores the DB cluster, not the DB instances for that DB cluster. You must invoke the CreateDBInstance action to create DB instances for the restored DB cluster, specifying the identifier of the restored DB cluster in DBClusterIdentifier. You can create DB instances only after the RestoreDBClusterFromSnapshot action has completed and the DB cluster is available.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

" }, @@ -2237,7 +2318,8 @@ {"shape":"DomainNotFoundFault"}, {"shape":"DBParameterGroupNotFoundFault"}, {"shape":"BackupPolicyNotFoundFault"}, - {"shape":"NetworkTypeNotSupported"} + {"shape":"NetworkTypeNotSupported"}, + {"shape":"DBClusterSnapshotNotFoundFault"} ], "documentation":"

Creates a new DB instance from a DB snapshot. The target database is created from the source database restore point with most of the source's original configuration, including the default security group and DB parameter group. By default, the new DB instance is created as a Single-AZ deployment, except when the instance is a SQL Server instance that has an option group associated with mirroring. In this case, the instance becomes a Multi-AZ deployment, not a Single-AZ deployment.

If you want to replace your original DB instance with the new, restored DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot action. RDS doesn't allow two DB instances with the same name. After you have renamed your original DB instance with a different identifier, then you can pass the original name of the DB instance as the DBInstanceIdentifier in the call to the RestoreDBInstanceFromDBSnapshot action. The result is that you replace the original DB instance with the DB instance created from the snapshot.

If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora, use RestoreDBClusterFromSnapshot.

" }, @@ -2328,7 +2410,7 @@ {"shape":"AuthorizationNotFoundFault"}, {"shape":"InvalidDBSecurityGroupStateFault"} ], - "documentation":"

Revokes ingress from a DBSecurityGroup for previously authorized IP ranges or EC2 or VPC security groups. Required parameters for this API are one of CIDRIP, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId).

" + "documentation":"

Revokes ingress from a DBSecurityGroup for previously authorized IP ranges or EC2 or VPC security groups. Required parameters for this API are one of CIDRIP, EC2SecurityGroupId for VPC, or (EC2SecurityGroupOwnerId and either EC2SecurityGroupName or EC2SecurityGroupId).

EC2-Classic was retired on August 15, 2022. If you haven't migrated from EC2-Classic to a VPC, we recommend that you migrate as soon as possible. For more information, see Migrate from EC2-Classic to a VPC in the Amazon EC2 User Guide, the blog EC2-Classic Networking is Retiring – Here’s How to Prepare, and Moving a DB instance not in a VPC into a VPC in the Amazon RDS User Guide.

" }, "StartActivityStream":{ "name":"StartActivityStream", @@ -2429,6 +2511,7 @@ "errors":[ {"shape":"DBSnapshotNotFoundFault"}, {"shape":"DBClusterSnapshotNotFoundFault"}, + {"shape":"DBClusterNotFoundFault"}, {"shape":"ExportTaskAlreadyExistsFault"}, {"shape":"InvalidS3BucketFault"}, {"shape":"IamRoleNotFoundFault"}, @@ -2512,7 +2595,41 @@ {"shape":"DBInstanceNotFoundFault"}, {"shape":"InvalidDBInstanceStateFault"} ], - "documentation":"

Stops automated backup replication for a DB instance.

This command doesn't apply to RDS Custom.

For more information, see Replicating Automated Backups to Another Amazon Web Services Region in the Amazon RDS User Guide.

" + "documentation":"

Stops automated backup replication for a DB instance.

This command doesn't apply to RDS Custom, Aurora MySQL, and Aurora PostgreSQL.

For more information, see Replicating Automated Backups to Another Amazon Web Services Region in the Amazon RDS User Guide.

" + }, + "SwitchoverBlueGreenDeployment":{ + "name":"SwitchoverBlueGreenDeployment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SwitchoverBlueGreenDeploymentRequest"}, + "output":{ + "shape":"SwitchoverBlueGreenDeploymentResponse", + "resultWrapper":"SwitchoverBlueGreenDeploymentResult" + }, + "errors":[ + {"shape":"BlueGreenDeploymentNotFoundFault"}, + {"shape":"InvalidBlueGreenDeploymentStateFault"} + ], + "documentation":"

Switches over a blue/green deployment.

Before you switch over, production traffic is routed to the databases in the blue environment. After you switch over, production traffic is routed to the databases in the green environment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + }, + "SwitchoverReadReplica":{ + "name":"SwitchoverReadReplica", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SwitchoverReadReplicaMessage"}, + "output":{ + "shape":"SwitchoverReadReplicaResult", + "resultWrapper":"SwitchoverReadReplicaResult" + }, + "errors":[ + {"shape":"DBInstanceNotFoundFault"}, + {"shape":"InvalidDBInstanceStateFault"} + ], + "documentation":"

Switches over an Oracle standby database in an Oracle Data Guard environment, making it the new primary database. Issue this command in the Region that hosts the current standby database.

" } }, "shapes":{ @@ -2563,6 +2680,15 @@ "type":"list", "member":{"shape":"String"} }, + "ActivityStreamPolicyStatus":{ + "type":"string", + "enum":[ + "locked", + "unlocked", + "locking-policy", + "unlocking-policy" + ] + }, "ActivityStreamStatus":{ "type":"string", "enum":[ @@ -2700,6 +2826,13 @@ "locationName":"AttributeValue" } }, + "AuditPolicyState":{ + "type":"string", + "enum":[ + "locked", + "unlocked" + ] + }, "AuthScheme":{ "type":"string", "enum":["SECRETS"] @@ -2875,6 +3008,115 @@ }, "exception":true }, + "BlueGreenDeployment":{ + "type":"structure", + "members":{ + "BlueGreenDeploymentIdentifier":{ + "shape":"BlueGreenDeploymentIdentifier", + "documentation":"

The system-generated identifier of the blue/green deployment.

" + }, + "BlueGreenDeploymentName":{ + "shape":"BlueGreenDeploymentName", + "documentation":"

The user-supplied name of the blue/green deployment.

" + }, + "Source":{ + "shape":"DatabaseArn", + "documentation":"

The source database for the blue/green deployment.

Before switchover, the source database is the production database in the blue environment.

" + }, + "Target":{ + "shape":"DatabaseArn", + "documentation":"

The target database for the blue/green deployment.

Before switchover, the target database is the clone database in the green environment.

" + }, + "SwitchoverDetails":{ + "shape":"SwitchoverDetailList", + "documentation":"

The details about each source and target resource in the blue/green deployment.

" + }, + "Tasks":{ + "shape":"BlueGreenDeploymentTaskList", + "documentation":"

Either tasks to be performed or tasks that have been completed on the target database before switchover.

" + }, + "Status":{ + "shape":"BlueGreenDeploymentStatus", + "documentation":"

The status of the blue/green deployment.

Values:

  • PROVISIONING - Resources are being created in the green environment.

  • AVAILABLE - Resources are available in the green environment.

  • SWITCHOVER_IN_PROGRESS - The deployment is being switched from the blue environment to the green environment.

  • SWITCHOVER_COMPLETED - Switchover from the blue environment to the green environment is complete.

  • INVALID_CONFIGURATION - Resources in the green environment are invalid, so switchover isn't possible.

  • SWITCHOVER_FAILED - Switchover was attempted but failed.

  • DELETING - The blue/green deployment is being deleted.

" + }, + "StatusDetails":{ + "shape":"BlueGreenDeploymentStatusDetails", + "documentation":"

Additional information about the status of the blue/green deployment.

" + }, + "CreateTime":{ + "shape":"TStamp", + "documentation":"

Specifies the time when the blue/green deployment was created, in Universal Coordinated Time (UTC).

" + }, + "DeleteTime":{ + "shape":"TStamp", + "documentation":"

Specifies the time when the blue/green deployment was deleted, in Universal Coordinated Time (UTC).

" + }, + "TagList":{"shape":"TagList"} + }, + "documentation":"

Contains the details about a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + }, + "BlueGreenDeploymentAlreadyExistsFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

A blue/green deployment with the specified name already exists.

", + "error":{ + "code":"BlueGreenDeploymentAlreadyExistsFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "BlueGreenDeploymentIdentifier":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[A-Za-z][0-9A-Za-z-:._]*" + }, + "BlueGreenDeploymentList":{ + "type":"list", + "member":{"shape":"BlueGreenDeployment"} + }, + "BlueGreenDeploymentName":{ + "type":"string", + "max":60, + "min":1, + "pattern":"[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9]+)*" + }, + "BlueGreenDeploymentNotFoundFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

BlueGreenDeploymentIdentifier doesn't refer to an existing blue/green deployment.

", + "error":{ + "code":"BlueGreenDeploymentNotFoundFault", + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "BlueGreenDeploymentStatus":{"type":"string"}, + "BlueGreenDeploymentStatusDetails":{"type":"string"}, + "BlueGreenDeploymentTask":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"BlueGreenDeploymentTaskName", + "documentation":"

The name of the blue/green deployment task.

" + }, + "Status":{ + "shape":"BlueGreenDeploymentTaskStatus", + "documentation":"

The status of the blue/green deployment task.

Values:

  • PENDING - The resources are being prepared for deployment.

  • IN_PROGRESS - The resource is being deployed.

  • COMPLETED - The resource has been deployed.

  • FAILED - Deployment of the resource failed.

" + } + }, + "documentation":"

Contains the details about a task for a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + }, + "BlueGreenDeploymentTaskList":{ + "type":"list", + "member":{"shape":"BlueGreenDeploymentTask"} + }, + "BlueGreenDeploymentTaskName":{"type":"string"}, + "BlueGreenDeploymentTaskStatus":{"type":"string"}, "Boolean":{"type":"boolean"}, "BooleanOptional":{"type":"boolean"}, "BucketName":{ @@ -3012,6 +3254,18 @@ "EngineVersion":{ "shape":"String", "documentation":"

The database engine version.

" + }, + "BackupRetentionPeriod":{ + "shape":"IntegerOptional", + "documentation":"

The number of days for which automatic DB snapshots are retained.

" + }, + "AllocatedStorage":{ + "shape":"IntegerOptional", + "documentation":"

The allocated storage size in gibibytes (GiB) for all database engines except Amazon Aurora. For Aurora, AllocatedStorage always returns 1, because Aurora DB cluster storage size isn't fixed, but instead automatically adjusts as needed.

" + }, + "Iops":{ + "shape":"IntegerOptional", + "documentation":"

The Provisioned IOPS (I/O operations per second) value. This setting is only for non-Aurora Multi-AZ DB clusters.

" } }, "documentation":"

This data type is used as a response element in the ModifyDBCluster operation and contains changes that will be applied during the next maintenance window.

" @@ -3021,11 +3275,11 @@ "members":{ "MaxConnectionsPercent":{ "shape":"IntegerOptional", - "documentation":"

The maximum size of the connection pool for each target in a target group. The value is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group.

Default: 100

Constraints: between 1 and 100

" + "documentation":"

The maximum size of the connection pool for each target in a target group. The value is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group.

If you specify MaxIdleConnectionsPercent, then you must also include a value for this parameter.

Default: 10 for RDS for Microsoft SQL Server, and 100 for all other engines

Constraints: Must be between 1 and 100.

" }, "MaxIdleConnectionsPercent":{ "shape":"IntegerOptional", - "documentation":"

Controls how actively the proxy closes idle database connections in the connection pool. The value is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. With a high value, the proxy leaves a high percentage of idle database connections open. A low value causes the proxy to close more idle connections and return them to the database.

Default: 50

Constraints: between 0 and MaxConnectionsPercent

" + "documentation":"

Controls how actively the proxy closes idle database connections in the connection pool. The value is expressed as a percentage of the max_connections setting for the RDS DB instance or Aurora DB cluster used by the target group. With a high value, the proxy leaves a high percentage of idle database connections open. A low value causes the proxy to close more idle connections and return them to the database.

If you specify this parameter, then you must also include a value for MaxConnectionsPercent.

Default: The default value is half of the value of MaxConnectionsPercent. For example, if MaxConnectionsPercent is 80, then the default value of MaxIdleConnectionsPercent is 40. If the value of MaxConnectionsPercent isn't specified, then for SQL Server, MaxIdleConnectionsPercent is 5, and for all other engines, the default is 50.

Constraints: Must be between 0 and the value of MaxConnectionsPercent.

" }, "ConnectionBorrowTimeout":{ "shape":"IntegerOptional", @@ -3059,7 +3313,7 @@ }, "SessionPinningFilters":{ "shape":"StringList", - "documentation":"

Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. Currently, the only allowed value is EXCLUDE_VARIABLE_SETS.

" + "documentation":"

Each item in the list represents a class of SQL operations that normally cause all later statements in a session using a proxy to be pinned to the same underlying database connection. Including an item in the list exempts that class of SQL operations from the pinning behavior. This setting is only supported for MySQL engine family databases. Currently, the only allowed value is EXCLUDE_VARIABLE_SETS.

" }, "InitQuery":{ "shape":"String", @@ -3118,7 +3372,7 @@ }, "PreSignedUrl":{ "shape":"String", - "documentation":"

The URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot API action in the Amazon Web Services Region that contains the source DB cluster snapshot to copy. The PreSignedUrl parameter must be used when copying an encrypted DB cluster snapshot from another Amazon Web Services Region. Don't specify PreSignedUrl when you are copying an encrypted DB cluster snapshot in the same Amazon Web Services Region.

The pre-signed URL must be a valid request for the CopyDBClusterSnapshot API action that can be executed in the source Amazon Web Services Region that contains the encrypted DB cluster snapshot to be copied. The pre-signed URL request must contain the following parameter values:

  • KmsKeyId - The Amazon Web Services KMS key identifier for the KMS key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region. This is the same identifier for both the CopyDBClusterSnapshot action that is called in the destination Amazon Web Services Region, and the action contained in the pre-signed URL.

  • DestinationRegion - The name of the Amazon Web Services Region that the DB cluster snapshot is to be created in.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 Amazon Web Services Region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region.

" + "documentation":"

When you are copying a DB cluster snapshot from one Amazon Web Services GovCloud (US) Region to another, the URL that contains a Signature Version 4 signed request for the CopyDBClusterSnapshot API operation in the Amazon Web Services Region that contains the source DB cluster snapshot to copy. Use the PreSignedUrl parameter when copying an encrypted DB cluster snapshot from another Amazon Web Services Region. Don't specify PreSignedUrl when copying an encrypted DB cluster snapshot in the same Amazon Web Services Region.

This setting applies only to Amazon Web Services GovCloud (US) Regions. It's ignored in other Amazon Web Services Regions.

The presigned URL must be a valid request for the CopyDBClusterSnapshot API operation that can run in the source Amazon Web Services Region that contains the encrypted DB cluster snapshot to copy. The presigned URL request must contain the following parameter values:

  • KmsKeyId - The KMS key identifier for the KMS key to use to encrypt the copy of the DB cluster snapshot in the destination Amazon Web Services Region. This is the same identifier for both the CopyDBClusterSnapshot operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • DestinationRegion - The name of the Amazon Web Services Region that the DB cluster snapshot is to be created in.

  • SourceDBClusterSnapshotIdentifier - The DB cluster snapshot identifier for the encrypted DB cluster snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster snapshot from the us-west-2 Amazon Web Services Region, then your SourceDBClusterSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

" }, "CopyTags":{ "shape":"BooleanOptional", @@ -3173,7 +3427,7 @@ "members":{ "SourceDBSnapshotIdentifier":{ "shape":"String", - "documentation":"

The identifier for the source DB snapshot.

If the source snapshot is in the same Amazon Web Services Region as the copy, specify a valid DB snapshot identifier. For example, you might specify rds:mysql-instance1-snapshot-20130805.

If the source snapshot is in a different Amazon Web Services Region than the copy, specify a valid DB snapshot ARN. For example, you might specify arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805.

If you are copying from a shared manual DB snapshot, this parameter must be the Amazon Resource Name (ARN) of the shared DB snapshot.

If you are copying an encrypted snapshot this parameter must be in the ARN format for the source Amazon Web Services Region, and must match the SourceDBSnapshotIdentifier in the PreSignedUrl parameter.

Constraints:

  • Must specify a valid system snapshot in the \"available\" state.

Example: rds:mydb-2012-04-02-00-01

Example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805

" + "documentation":"

The identifier for the source DB snapshot.

If the source snapshot is in the same Amazon Web Services Region as the copy, specify a valid DB snapshot identifier. For example, you might specify rds:mysql-instance1-snapshot-20130805.

If the source snapshot is in a different Amazon Web Services Region than the copy, specify a valid DB snapshot ARN. For example, you might specify arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805.

If you are copying from a shared manual DB snapshot, this parameter must be the Amazon Resource Name (ARN) of the shared DB snapshot.

If you are copying an encrypted snapshot this parameter must be in the ARN format for the source Amazon Web Services Region.

Constraints:

  • Must specify a valid system snapshot in the \"available\" state.

Example: rds:mydb-2012-04-02-00-01

Example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805

" }, "TargetDBSnapshotIdentifier":{ "shape":"String", @@ -3190,7 +3444,7 @@ }, "PreSignedUrl":{ "shape":"String", - "documentation":"

The URL that contains a Signature Version 4 signed request for the CopyDBSnapshot API action in the source Amazon Web Services Region that contains the source DB snapshot to copy.

You must specify this parameter when you copy an encrypted DB snapshot from another Amazon Web Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are copying an encrypted DB snapshot in the same Amazon Web Services Region.

The presigned URL must be a valid request for the CopyDBSnapshot API action that can be executed in the source Amazon Web Services Region that contains the encrypted DB snapshot to be copied. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The Amazon Web Services Region that the encrypted DB snapshot is copied to. This Amazon Web Services Region is the same one where the CopyDBSnapshot action is called that contains this presigned URL.

    For example, if you copy an encrypted DB snapshot from the us-west-2 Amazon Web Services Region to the us-east-1 Amazon Web Services Region, then you call the CopyDBSnapshot action in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the CopyDBSnapshot action in the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 Amazon Web Services Region.

  • KmsKeyId - The Amazon Web Services KMS key identifier for the KMS key to use to encrypt the copy of the DB snapshot in the destination Amazon Web Services Region. This is the same identifier for both the CopyDBSnapshot action that is called in the destination Amazon Web Services Region, and the action contained in the presigned URL.

  • SourceDBSnapshotIdentifier - The DB snapshot identifier for the encrypted snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB snapshot from the us-west-2 Amazon Web Services Region, then your SourceDBSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region.

" + "documentation":"

When you are copying a snapshot from one Amazon Web Services GovCloud (US) Region to another, the URL that contains a Signature Version 4 signed request for the CopyDBSnapshot API operation in the source Amazon Web Services Region that contains the source DB snapshot to copy.

This setting applies only to Amazon Web Services GovCloud (US) Regions. It's ignored in other Amazon Web Services Regions.

You must specify this parameter when you copy an encrypted DB snapshot from another Amazon Web Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are copying an encrypted DB snapshot in the same Amazon Web Services Region.

The presigned URL must be a valid request for the CopyDBClusterSnapshot API operation that can run in the source Amazon Web Services Region that contains the encrypted DB cluster snapshot to copy. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The Amazon Web Services Region that the encrypted DB snapshot is copied to. This Amazon Web Services Region is the same one where the CopyDBSnapshot operation is called that contains this presigned URL.

    For example, if you copy an encrypted DB snapshot from the us-west-2 Amazon Web Services Region to the us-east-1 Amazon Web Services Region, then you call the CopyDBSnapshot operation in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the CopyDBSnapshot operation in the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 Amazon Web Services Region.

  • KmsKeyId - The KMS key identifier for the KMS key to use to encrypt the copy of the DB snapshot in the destination Amazon Web Services Region. This is the same identifier for both the CopyDBSnapshot operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • SourceDBSnapshotIdentifier - The DB snapshot identifier for the encrypted snapshot to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB snapshot from the us-west-2 Amazon Web Services Region, then your SourceDBSnapshotIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

" }, "OptionGroupName":{ "shape":"String", @@ -3239,6 +3493,45 @@ "OptionGroup":{"shape":"OptionGroup"} } }, + "CreateBlueGreenDeploymentRequest":{ + "type":"structure", + "required":[ + "BlueGreenDeploymentName", + "Source" + ], + "members":{ + "BlueGreenDeploymentName":{ + "shape":"BlueGreenDeploymentName", + "documentation":"

The name of the blue/green deployment.

Constraints:

  • Can't be the same as an existing blue/green deployment name in the same account and Amazon Web Services Region.

" + }, + "Source":{ + "shape":"DatabaseArn", + "documentation":"

The Amazon Resource Name (ARN) of the source production database.

Specify the database that you want to clone. The blue/green deployment creates this database in the green environment. You can make updates to the database in the green environment, such as an engine version upgrade. When you are ready, you can switch the database in the green environment to be the production database.

" + }, + "TargetEngineVersion":{ + "shape":"TargetEngineVersion", + "documentation":"

The engine version of the database in the green environment.

Specify the engine version to upgrade to in the green environment.

" + }, + "TargetDBParameterGroupName":{ + "shape":"TargetDBParameterGroupName", + "documentation":"

The DB parameter group associated with the DB instance in the green environment.

To test parameter changes, specify a DB parameter group that is different from the one associated with the source DB instance.

" + }, + "TargetDBClusterParameterGroupName":{ + "shape":"TargetDBClusterParameterGroupName", + "documentation":"

The DB cluster parameter group associated with the Aurora DB cluster in the green environment.

To test parameter changes, specify a DB cluster parameter group that is different from the one associated with the source DB cluster.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Tags to assign to the blue/green deployment.

" + } + } + }, + "CreateBlueGreenDeploymentResponse":{ + "type":"structure", + "members":{ + "BlueGreenDeployment":{"shape":"BlueGreenDeployment"} + } + }, "CreateCustomDBEngineVersionMessage":{ "type":"structure", "required":[ @@ -3255,7 +3548,7 @@ }, "EngineVersion":{ "shape":"CustomEngineVersion", - "documentation":"

The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region.

" + "documentation":"

The name of your CEV. The name format is 19.customized_string. For example, a valid CEV name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region.

" }, "DatabaseInstallationFilesS3BucketName":{ "shape":"BucketName", @@ -3267,7 +3560,7 @@ }, "KMSKeyId":{ "shape":"KmsKeyIdOrArn", - "documentation":"

The Amazon Web Services KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS.

If you have an existing symmetric KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric KMS key in your account, follow the instructions in Creating symmetric KMS keys in the Amazon Web Services Key Management Service Developer Guide.

You can choose the same symmetric key when you create a CEV and a DB instance, or choose different keys.

" + "documentation":"

The Amazon Web Services KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS.

If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in Creating a symmetric encryption KMS key in the Amazon Web Services Key Management Service Developer Guide.

You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys.

" }, "Description":{ "shape":"Description", @@ -3403,11 +3696,11 @@ }, "PreSignedUrl":{ "shape":"String", - "documentation":"

A URL that contains a Signature Version 4 signed request for the CreateDBCluster action to be called in the source Amazon Web Services Region where the DB cluster is replicated from. Specify PreSignedUrl only when you are performing cross-Region replication from an encrypted DB cluster.

The pre-signed URL must be a valid request for the CreateDBCluster API action that can be executed in the source Amazon Web Services Region that contains the encrypted DB cluster to be copied.

The pre-signed URL request must contain the following parameter values:

  • KmsKeyId - The Amazon Web Services KMS key identifier for the KMS key to use to encrypt the copy of the DB cluster in the destination Amazon Web Services Region. This should refer to the same KMS key for both the CreateDBCluster action that is called in the destination Amazon Web Services Region, and the action contained in the pre-signed URL.

  • DestinationRegion - The name of the Amazon Web Services Region that Aurora read replica will be created in.

  • ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster from the us-west-2 Amazon Web Services Region, then your ReplicationSourceIdentifier would look like Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a pre-signed URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region.

Valid for: Aurora DB clusters only

" + "documentation":"

When you are replicating a DB cluster from one Amazon Web Services GovCloud (US) Region to another, an URL that contains a Signature Version 4 signed request for the CreateDBCluster operation to be called in the source Amazon Web Services Region where the DB cluster is replicated from. Specify PreSignedUrl only when you are performing cross-Region replication from an encrypted DB cluster.

The presigned URL must be a valid request for the CreateDBCluster API operation that can run in the source Amazon Web Services Region that contains the encrypted DB cluster to copy.

The presigned URL request must contain the following parameter values:

  • KmsKeyId - The KMS key identifier for the KMS key to use to encrypt the copy of the DB cluster in the destination Amazon Web Services Region. This should refer to the same KMS key for both the CreateDBCluster operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • DestinationRegion - The name of the Amazon Web Services Region that Aurora read replica will be created in.

  • ReplicationSourceIdentifier - The DB cluster identifier for the encrypted DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are copying an encrypted DB cluster from the us-west-2 Amazon Web Services Region, then your ReplicationSourceIdentifier would look like Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

Valid for: Aurora DB clusters only

" }, "EnableIAMDatabaseAuthentication":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information, see IAM Database Authentication in the Amazon Aurora User Guide..

Valid for: Aurora DB clusters only

" + "documentation":"

A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information, see IAM Database Authentication in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters only

" }, "BacktrackWindow":{ "shape":"LongOptional", @@ -3419,7 +3712,7 @@ }, "EngineMode":{ "shape":"String", - "documentation":"

The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.

The parallelquery engine mode isn't required for Aurora MySQL version 1.23 and higher 1.x versions, and version 2.09 and higher 2.x versions.

The global engine mode isn't required for Aurora MySQL version 1.22 and higher 1.x versions, and global engine mode isn't required for any 2.x versions.

The multimaster engine mode only applies for DB clusters created with Aurora MySQL version 5.6.10a.

For Aurora PostgreSQL, the global engine mode isn't required, and both the parallelquery and the multimaster engine modes currently aren't supported.

Limitations and requirements apply to some DB engine modes. For more information, see the following sections in the Amazon Aurora User Guide:

Valid for: Aurora DB clusters only

" + "documentation":"

The DB engine mode of the DB cluster, either provisioned, serverless, parallelquery, global, or multimaster.

The parallelquery engine mode isn't required for Aurora MySQL version 1.23 and higher 1.x versions, and version 2.09 and higher 2.x versions.

The global engine mode isn't required for Aurora MySQL version 1.22 and higher 1.x versions, and global engine mode isn't required for any 2.x versions.

The multimaster engine mode only applies for DB clusters created with Aurora MySQL version 5.6.10a.

The serverless engine mode only applies for Aurora Serverless v1 DB clusters.

For Aurora PostgreSQL, the global engine mode isn't required, and both the parallelquery and the multimaster engine modes currently aren't supported.

Limitations and requirements apply to some DB engine modes. For more information, see the following sections in the Amazon Aurora User Guide:

Valid for: Aurora DB clusters only

" }, "ScalingConfiguration":{ "shape":"ScalingConfiguration", @@ -3455,7 +3748,7 @@ }, "DBClusterInstanceClass":{ "shape":"String", - "documentation":"

The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes and availability for your engine, see DB instance class in the Amazon RDS User Guide.

This setting is required to create a Multi-AZ DB cluster.

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes and availability for your engine, see DB instance class in the Amazon RDS User Guide.

This setting is required to create a Multi-AZ DB cluster.

Valid for: Multi-AZ DB clusters only

" }, "AllocatedStorage":{ "shape":"IntegerOptional", @@ -3467,7 +3760,7 @@ }, "Iops":{ "shape":"IntegerOptional", - "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid Iops values, see Amazon RDS Provisioned IOPS storage to improve performance in the Amazon RDS User Guide.

This setting is required to create a Multi-AZ DB cluster.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB cluster.

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

This setting is required to create a Multi-AZ DB cluster.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB cluster.

Valid for: Multi-AZ DB clusters only

" }, "PubliclyAccessible":{ "shape":"BooleanOptional", @@ -3495,9 +3788,17 @@ }, "PerformanceInsightsRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The number of days to retain Performance Insights data. The default is 7 days. The following values are valid:

  • 7

  • month * 31, where month is a number of months from 1-23

  • 731

For example, the following values are valid:

  • 93 (3 months * 31)

  • 341 (11 months * 31)

  • 589 (19 months * 31)

  • 731

If you specify a retention period such as 94, which isn't a valid value, RDS issues an error.

Valid for: Multi-AZ DB clusters only

" }, - "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"} + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"}, + "NetworkType":{ + "shape":"String", + "documentation":"

The network type of the DB cluster.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters only

" + }, + "DBSystemId":{ + "shape":"String", + "documentation":"

Reserved for future use.

" + } }, "documentation":"

" }, @@ -3578,7 +3879,7 @@ "members":{ "DBName":{ "shape":"String", - "documentation":"

The meaning of this parameter differs according to the database engine you use.

MySQL

The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine

MariaDB

The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine

PostgreSQL

The name of the database to create when the DB instance is created. If this parameter isn't specified, a database named postgres is created in the DB instance.

Constraints:

  • Must contain 1 to 63 letters, numbers, or underscores.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine

Oracle

The Oracle System ID (SID) of the created DB instance. If you specify null, the default value ORCL is used. You can't specify the string NULL, or any other reserved word, for DBName.

Default: ORCL

Constraints:

  • Can't be longer than 8 characters

Amazon RDS Custom for Oracle

The Oracle System ID (SID) of the created RDS Custom DB instance. If you don't specify a value, the default value is ORCL.

Default: ORCL

Constraints:

  • It must contain 1 to 8 alphanumeric characters.

  • It must contain a letter.

  • It can't be a word reserved by the database engine.

Amazon RDS Custom for SQL Server

Not applicable. Must be null.

SQL Server

Not applicable. Must be null.

Amazon Aurora MySQL

The name of the database to create when the primary DB instance of the Aurora MySQL DB cluster is created. If this parameter isn't specified for an Aurora MySQL DB cluster, no database is created in the DB cluster.

Constraints:

  • It must contain 1 to 64 alphanumeric characters.

  • It can't be a word reserved by the database engine.

Amazon Aurora PostgreSQL

The name of the database to create when the primary DB instance of the Aurora PostgreSQL DB cluster is created. If this parameter isn't specified for an Aurora PostgreSQL DB cluster, a database named postgres is created in the DB cluster.

Constraints:

  • It must contain 1 to 63 alphanumeric characters.

  • It must begin with a letter or an underscore. Subsequent characters can be letters, underscores, or digits (0 to 9).

  • It can't be a word reserved by the database engine.

" + "documentation":"

The meaning of this parameter differs according to the database engine you use.

MySQL

The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine

MariaDB

The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance.

Constraints:

  • Must contain 1 to 64 letters or numbers.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine

PostgreSQL

The name of the database to create when the DB instance is created. If this parameter isn't specified, a database named postgres is created in the DB instance.

Constraints:

  • Must contain 1 to 63 letters, numbers, or underscores.

  • Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9).

  • Can't be a word reserved by the specified database engine

Oracle

The Oracle System ID (SID) of the created DB instance. If you specify null, the default value ORCL is used. You can't specify the string NULL, or any other reserved word, for DBName.

Default: ORCL

Constraints:

  • Can't be longer than 8 characters

Amazon RDS Custom for Oracle

The Oracle System ID (SID) of the created RDS Custom DB instance. If you don't specify a value, the default value is ORCL.

Default: ORCL

Constraints:

  • It must contain 1 to 8 alphanumeric characters.

  • It must contain a letter.

  • It can't be a word reserved by the database engine.

Amazon RDS Custom for SQL Server

Not applicable. Must be null.

SQL Server

Not applicable. Must be null.

Amazon Aurora MySQL

The name of the database to create when the primary DB instance of the Aurora MySQL DB cluster is created. If this parameter isn't specified for an Aurora MySQL DB cluster, no database is created in the DB cluster.

Constraints:

  • It must contain 1 to 64 alphanumeric characters.

  • It can't be a word reserved by the database engine.

Amazon Aurora PostgreSQL

The name of the database to create when the primary DB instance of the Aurora PostgreSQL DB cluster is created. If this parameter isn't specified for an Aurora PostgreSQL DB cluster, a database named postgres is created in the DB cluster.

Constraints:

  • It must contain 1 to 63 alphanumeric characters.

  • It must begin with a letter. Subsequent characters can be letters, underscores, or digits (0 to 9).

  • It can't be a word reserved by the database engine.

" }, "DBInstanceIdentifier":{ "shape":"String", @@ -3586,11 +3887,11 @@ }, "AllocatedStorage":{ "shape":"IntegerOptional", - "documentation":"

The amount of storage in gibibytes (GiB) to allocate for the DB instance.

Type: Integer

Amazon Aurora

Not applicable. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume.

Amazon RDS Custom

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2): Must be an integer from 40 to 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL Server.

  • Provisioned IOPS storage (io1): Must be an integer from 40 to 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL Server.

MySQL

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

MariaDB

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

PostgreSQL

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

Oracle

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 10 to 3072.

SQL Server

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2):

    • Enterprise and Standard editions: Must be an integer from 20 to 16384.

    • Web and Express editions: Must be an integer from 20 to 16384.

  • Provisioned IOPS storage (io1):

    • Enterprise and Standard editions: Must be an integer from 100 to 16384.

    • Web and Express editions: Must be an integer from 100 to 16384.

  • Magnetic storage (standard):

    • Enterprise and Standard editions: Must be an integer from 20 to 1024.

    • Web and Express editions: Must be an integer from 20 to 1024.

" + "documentation":"

The amount of storage in gibibytes (GiB) to allocate for the DB instance.

Type: Integer

Amazon Aurora

Not applicable. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume.

Amazon RDS Custom

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 40 to 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL Server.

  • Provisioned IOPS storage (io1): Must be an integer from 40 to 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL Server.

MySQL

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

MariaDB

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

PostgreSQL

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 5 to 3072.

Oracle

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536.

  • Provisioned IOPS storage (io1): Must be an integer from 100 to 65536.

  • Magnetic storage (standard): Must be an integer from 10 to 3072.

SQL Server

Constraints to the amount of storage for each storage type are the following:

  • General Purpose (SSD) storage (gp2, gp3):

    • Enterprise and Standard editions: Must be an integer from 20 to 16384.

    • Web and Express editions: Must be an integer from 20 to 16384.

  • Provisioned IOPS storage (io1):

    • Enterprise and Standard editions: Must be an integer from 100 to 16384.

    • Web and Express editions: Must be an integer from 100 to 16384.

  • Magnetic storage (standard):

    • Enterprise and Standard editions: Must be an integer from 20 to 1024.

    • Web and Express editions: Must be an integer from 20 to 1024.

" }, "DBInstanceClass":{ "shape":"String", - "documentation":"

The compute and memory capacity of the DB instance, for example db.m4.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

" + "documentation":"

The compute and memory capacity of the DB instance, for example db.m5.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB instance classes in the Amazon RDS User Guide or Aurora DB instance classes in the Amazon Aurora User Guide.

" }, "Engine":{ "shape":"String", @@ -3606,7 +3907,7 @@ }, "DBSecurityGroups":{ "shape":"DBSecurityGroupNameList", - "documentation":"

A list of DB security groups to associate with this DB instance.

Default: The default DB security group for the database engine.

" + "documentation":"

A list of DB security groups to associate with this DB instance.

This setting applies to the legacy EC2-Classic platform, which is no longer used to create new DB instances. Use the VpcSecurityGroupIds setting instead.

" }, "VpcSecurityGroupIds":{ "shape":"VpcSecurityGroupIdList", @@ -3626,11 +3927,11 @@ }, "DBParameterGroupName":{ "shape":"String", - "documentation":"

The name of the DB parameter group to associate with this DB instance. If you do not specify a value, then the default DB parameter group for the specified DB engine and version is used.

This setting doesn't apply to RDS Custom.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

" + "documentation":"

The name of the DB parameter group to associate with this DB instance. If you do not specify a value, then the default DB parameter group for the specified DB engine and version is used.

This setting doesn't apply to RDS Custom.

Constraints:

  • It must be 1 to 255 letters, numbers, or hyphens.

  • The first character must be a letter.

  • It can't end with a hyphen or contain two consecutive hyphens.

" }, "BackupRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Amazon Aurora

Not applicable. The retention period for automated backups is managed by the DB cluster.

Default: 1

Constraints:

  • Must be a value from 0 to 35

  • Can't be set to 0 if the DB instance is a source to read replicas

  • Can't be set to 0 or 35 for an RDS Custom for Oracle DB instance

" + "documentation":"

The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Amazon Aurora

Not applicable. The retention period for automated backups is managed by the DB cluster.

Default: 1

Constraints:

  • Must be a value from 0 to 35

  • Can't be set to 0 if the DB instance is a source to read replicas

  • Can't be set to 0 for an RDS Custom for Oracle DB instance

" }, "PreferredBackupWindow":{ "shape":"String", @@ -3642,11 +3943,11 @@ }, "MultiAZ":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether the DB instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment.

This setting doesn't apply to RDS Custom.

" + "documentation":"

A value that indicates whether the DB instance is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the DB instance is a Multi-AZ deployment.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable. DB instance Availability Zones (AZs) are managed by the DB cluster.

" }, "EngineVersion":{ "shape":"String", - "documentation":"

The version number of the database engine to use.

For a list of valid engine versions, use the DescribeDBEngineVersions action.

The following are the database engines and links to information about the major and minor versions that are available with Amazon RDS. Not every database engine is available for every Amazon Web Services Region.

Amazon Aurora

Not applicable. The version number of the database engine to be used by the DB instance is managed by the DB cluster.

Amazon RDS Custom for Oracle

A custom engine version (CEV) that you have previously created. This setting is required for RDS Custom for Oracle. The CEV name has the following format: 19.customized_string . An example identifier is 19.my_cev1. For more information, see Creating an RDS Custom for Oracle DB instance in the Amazon RDS User Guide.

Amazon RDS Custom for SQL Server

See RDS Custom for SQL Server general requirements in the Amazon RDS User Guide.

MariaDB

For information, see MariaDB on Amazon RDS Versions in the Amazon RDS User Guide.

Microsoft SQL Server

For information, see Microsoft SQL Server Versions on Amazon RDS in the Amazon RDS User Guide.

MySQL

For information, see MySQL on Amazon RDS Versions in the Amazon RDS User Guide.

Oracle

For information, see Oracle Database Engine Release Notes in the Amazon RDS User Guide.

PostgreSQL

For information, see Amazon RDS for PostgreSQL versions and extensions in the Amazon RDS User Guide.

" + "documentation":"

The version number of the database engine to use.

For a list of valid engine versions, use the DescribeDBEngineVersions operation.

The following are the database engines and links to information about the major and minor versions that are available with Amazon RDS. Not every database engine is available for every Amazon Web Services Region.

Amazon Aurora

Not applicable. The version number of the database engine to be used by the DB instance is managed by the DB cluster.

Amazon RDS Custom for Oracle

A custom engine version (CEV) that you have previously created. This setting is required for RDS Custom for Oracle. The CEV name has the following format: 19.customized_string. A valid CEV name is 19.my_cev1. For more information, see Creating an RDS Custom for Oracle DB instance in the Amazon RDS User Guide.

Amazon RDS Custom for SQL Server

See RDS Custom for SQL Server general requirements in the Amazon RDS User Guide.

MariaDB

For information, see MariaDB on Amazon RDS Versions in the Amazon RDS User Guide.

Microsoft SQL Server

For information, see Microsoft SQL Server Versions on Amazon RDS in the Amazon RDS User Guide.

MySQL

For information, see MySQL on Amazon RDS Versions in the Amazon RDS User Guide.

Oracle

For information, see Oracle Database Engine Release Notes in the Amazon RDS User Guide.

PostgreSQL

For information, see Amazon RDS for PostgreSQL versions and extensions in the Amazon RDS User Guide.

" }, "AutoMinorVersionUpgrade":{ "shape":"BooleanOptional", @@ -3654,15 +3955,15 @@ }, "LicenseModel":{ "shape":"String", - "documentation":"

License model information for this DB instance.

Valid values: license-included | bring-your-own-license | general-public-license

This setting doesn't apply to RDS Custom.

" + "documentation":"

License model information for this DB instance.

Valid values: license-included | bring-your-own-license | general-public-license

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable.

" }, "Iops":{ "shape":"IntegerOptional", - "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. For information about valid Iops values, see Amazon RDS Provisioned IOPS storage to improve performance in the Amazon RDS User Guide.

Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL DB instances, must be a multiple between .5 and 50 of the storage amount for the DB instance. For SQL Server DB instances, must be a multiple between 1 and 50 of the storage amount for the DB instance.

" + "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance. For information about valid IOPS values, see Amazon RDS DB instance storage in the Amazon RDS User Guide.

Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL DB instances, must be a multiple between .5 and 50 of the storage amount for the DB instance. For SQL Server DB instances, must be a multiple between 1 and 50 of the storage amount for the DB instance.

Amazon Aurora

Not applicable. Storage is managed by the DB cluster.

" }, "OptionGroupName":{ "shape":"String", - "documentation":"

A value that indicates that the DB instance should be associated with the specified option group.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group. Also, that option group can't be removed from a DB instance after it is associated with a DB instance.

This setting doesn't apply to RDS Custom.

" + "documentation":"

A value that indicates that the DB instance should be associated with the specified option group.

Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group. Also, that option group can't be removed from a DB instance after it is associated with a DB instance.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable.

" }, "CharacterSetName":{ "shape":"String", @@ -3686,11 +3987,11 @@ }, "StorageType":{ "shape":"String", - "documentation":"

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp2

" + "documentation":"

Specifies the storage type to be associated with the DB instance.

Valid values: gp2 | gp3 | io1 | standard

If you specify io1 or gp3, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp2

Amazon Aurora

Not applicable. Storage is managed by the DB cluster.

" }, "TdeCredentialArn":{ "shape":"String", - "documentation":"

The ARN from the key store with which to associate the instance for TDE encryption.

This setting doesn't apply to RDS Custom.

" + "documentation":"

The ARN from the key store with which to associate the instance for TDE encryption.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable.

" }, "TdeCredentialPassword":{ "shape":"String", @@ -3706,7 +4007,7 @@ }, "Domain":{ "shape":"String", - "documentation":"

The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.

For more information, see Kerberos Authentication in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

" + "documentation":"

The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain.

For more information, see Kerberos Authentication in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable. The domain is managed by the DB cluster.

" }, "CopyTagsToSnapshot":{ "shape":"BooleanOptional", @@ -3722,7 +4023,7 @@ }, "DomainIAMRoleName":{ "shape":"String", - "documentation":"

Specify the name of the IAM role to be used when making API calls to the Directory Service.

This setting doesn't apply to RDS Custom.

" + "documentation":"

Specify the name of the IAM role to be used when making API calls to the Directory Service.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable. The domain is managed by the DB cluster.

" }, "PromotionTier":{ "shape":"IntegerOptional", @@ -3734,7 +4035,7 @@ }, "EnableIAMDatabaseAuthentication":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

This setting doesn't apply to RDS Custom or Amazon Aurora. In Aurora, mapping Amazon Web Services IAM accounts to database accounts is managed by the DB cluster.

For more information, see IAM Database Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide.

" + "documentation":"

A value that indicates whether to enable mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts. By default, mapping isn't enabled.

For more information, see IAM Database Authentication for MySQL and PostgreSQL in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable. Mapping Amazon Web Services IAM accounts to database accounts is managed by the DB cluster.

" }, "EnablePerformanceInsights":{ "shape":"BooleanOptional", @@ -3746,7 +4047,7 @@ }, "PerformanceInsightsRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

This setting doesn't apply to RDS Custom.

" + "documentation":"

The number of days to retain Performance Insights data. The default is 7 days. The following values are valid:

  • 7

  • month * 31, where month is a number of months from 1-23

  • 731

For example, the following values are valid:

  • 93 (3 months * 31)

  • 341 (11 months * 31)

  • 589 (19 months * 31)

  • 731

If you specify a retention period such as 94, which isn't a valid value, RDS issues an error.

This setting doesn't apply to RDS Custom.

" }, "EnableCloudwatchLogsExports":{ "shape":"LogTypeList", @@ -3754,7 +4055,7 @@ }, "ProcessorFeatures":{ "shape":"ProcessorFeatureList", - "documentation":"

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

This setting doesn't apply to RDS Custom.

" + "documentation":"

The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable.

" }, "DeletionProtection":{ "shape":"BooleanOptional", @@ -3762,7 +4063,7 @@ }, "MaxAllocatedStorage":{ "shape":"IntegerOptional", - "documentation":"

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

For more information about this setting, including limitations that apply to it, see Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

" + "documentation":"

The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance.

For more information about this setting, including limitations that apply to it, see Managing capacity automatically with Amazon RDS storage autoscaling in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable. Storage is managed by the DB cluster.

" }, "EnableCustomerOwnedIp":{ "shape":"BooleanOptional", @@ -3779,6 +4080,10 @@ "NetworkType":{ "shape":"String", "documentation":"

The network type of the DB instance.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

Specifies the storage throughput value for the DB instance.

This setting applies only to the gp3 storage type.

This setting doesn't apply to RDS Custom or Amazon Aurora.

" } }, "documentation":"

" @@ -3828,7 +4133,7 @@ }, "DBParameterGroupName":{ "shape":"String", - "documentation":"

The name of the DB parameter group to associate with this DB instance.

If you do not specify a value for DBParameterGroupName, then Amazon RDS uses the DBParameterGroup of source DB instance for a same Region read replica, or the default DBParameterGroup for the specified DB engine for a cross-Region read replica.

Specifying a parameter group for this operation is only supported for Oracle DB instances. It isn't supported for RDS Custom.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

" + "documentation":"

The name of the DB parameter group to associate with this DB instance.

If you do not specify a value for DBParameterGroupName, then Amazon RDS uses the DBParameterGroup of source DB instance for a same Region read replica, or the default DBParameterGroup for the specified DB engine for a cross-Region read replica.

Specifying a parameter group for this operation is only supported for MySQL and Oracle DB instances. It isn't supported for RDS Custom.

Constraints:

  • Must be 1 to 255 letters, numbers, or hyphens.

  • First character must be a letter

  • Can't end with a hyphen or contain two consecutive hyphens

" }, "PubliclyAccessible":{ "shape":"BooleanOptional", @@ -3845,7 +4150,7 @@ }, "StorageType":{ "shape":"String", - "documentation":"

Specifies the storage type to be associated with the read replica.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp2

" + "documentation":"

Specifies the storage type to be associated with the read replica.

Valid values: gp2 | gp3 | io1 | standard

If you specify io1 or gp3, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp2

" }, "CopyTagsToSnapshot":{ "shape":"BooleanOptional", @@ -3865,7 +4170,7 @@ }, "PreSignedUrl":{ "shape":"String", - "documentation":"

The URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API action in the source Amazon Web Services Region that contains the source DB instance.

You must specify this parameter when you create an encrypted read replica from another Amazon Web Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are creating an encrypted read replica in the same Amazon Web Services Region.

The presigned URL must be a valid request for the CreateDBInstanceReadReplica API action that can be executed in the source Amazon Web Services Region that contains the encrypted source DB instance. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The Amazon Web Services Region that the encrypted read replica is created in. This Amazon Web Services Region is the same one where the CreateDBInstanceReadReplica action is called that contains this presigned URL.

    For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from a source DB instance in the us-east-2 Amazon Web Services Region, then you call the CreateDBInstanceReadReplica action in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica action in the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 Amazon Web Services Region.

  • KmsKeyId - The Amazon Web Services KMS key identifier for the key to use to encrypt the read replica in the destination Amazon Web Services Region. This is the same identifier for both the CreateDBInstanceReadReplica action that is called in the destination Amazon Web Services Region, and the action contained in the presigned URL.

  • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are creating an encrypted read replica from a DB instance in the us-west-2 Amazon Web Services Region, then your SourceDBInstanceIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can be executed in the source Amazon Web Services Region.

SourceRegion isn't supported for SQL Server, because SQL Server on Amazon RDS doesn't support cross-Region read replicas.

This setting doesn't apply to RDS Custom.

" + "documentation":"

When you are creating a read replica from one Amazon Web Services GovCloud (US) Region to another or from one China Amazon Web Services Region to another, the URL that contains a Signature Version 4 signed request for the CreateDBInstanceReadReplica API operation in the source Amazon Web Services Region that contains the source DB instance.

This setting applies only to Amazon Web Services GovCloud (US) Regions and China Amazon Web Services Regions. It's ignored in other Amazon Web Services Regions.

You must specify this parameter when you create an encrypted read replica from another Amazon Web Services Region by using the Amazon RDS API. Don't specify PreSignedUrl when you are creating an encrypted read replica in the same Amazon Web Services Region.

The presigned URL must be a valid request for the CreateDBInstanceReadReplica API operation that can run in the source Amazon Web Services Region that contains the encrypted source DB instance. The presigned URL request must contain the following parameter values:

  • DestinationRegion - The Amazon Web Services Region that the encrypted read replica is created in. This Amazon Web Services Region is the same one where the CreateDBInstanceReadReplica operation is called that contains this presigned URL.

    For example, if you create an encrypted DB instance in the us-west-1 Amazon Web Services Region, from a source DB instance in the us-east-2 Amazon Web Services Region, then you call the CreateDBInstanceReadReplica operation in the us-east-1 Amazon Web Services Region and provide a presigned URL that contains a call to the CreateDBInstanceReadReplica operation in the us-west-2 Amazon Web Services Region. For this example, the DestinationRegion in the presigned URL must be set to the us-east-1 Amazon Web Services Region.

  • KmsKeyId - The KMS key identifier for the key to use to encrypt the read replica in the destination Amazon Web Services Region. This is the same identifier for both the CreateDBInstanceReadReplica operation that is called in the destination Amazon Web Services Region, and the operation contained in the presigned URL.

  • SourceDBInstanceIdentifier - The DB instance identifier for the encrypted DB instance to be replicated. This identifier must be in the Amazon Resource Name (ARN) format for the source Amazon Web Services Region. For example, if you are creating an encrypted read replica from a DB instance in the us-west-2 Amazon Web Services Region, then your SourceDBInstanceIdentifier looks like the following example: arn:aws:rds:us-west-2:123456789012:instance:mysql-instance1-20161115.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

SourceRegion isn't supported for SQL Server, because Amazon RDS for SQL Server doesn't support cross-Region read replicas.

This setting doesn't apply to RDS Custom.

" }, "EnableIAMDatabaseAuthentication":{ "shape":"BooleanOptional", @@ -3881,7 +4186,7 @@ }, "PerformanceInsightsRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

This setting doesn't apply to RDS Custom.

" + "documentation":"

The number of days to retain Performance Insights data. The default is 7 days. The following values are valid:

  • 7

  • month * 31, where month is a number of months from 1-23

  • 731

For example, the following values are valid:

  • 93 (3 months * 31)

  • 341 (11 months * 31)

  • 589 (19 months * 31)

  • 731

If you specify a retention period such as 94, which isn't a valid value, RDS issues an error.

This setting doesn't apply to RDS Custom.

" }, "EnableCloudwatchLogsExports":{ "shape":"LogTypeList", @@ -3922,6 +4227,10 @@ "NetworkType":{ "shape":"String", "documentation":"

The network type of the DB instance.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for read replica. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

Specifies the storage throughput value for the read replica.

This setting doesn't apply to RDS Custom or Amazon Aurora.

" } } }, @@ -3996,7 +4305,7 @@ }, "TargetRole":{ "shape":"DBProxyEndpointTargetRole", - "documentation":"

A value that indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is READ_WRITE.

" + "documentation":"

A value that indicates whether the DB proxy endpoint can be used for read/write or read-only operations. The default is READ_WRITE. The only role that proxies for RDS for Microsoft SQL Server support is READ_WRITE.

" }, "Tags":{"shape":"TagList"} } @@ -4026,7 +4335,7 @@ }, "EngineFamily":{ "shape":"EngineFamily", - "documentation":"

The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora.

" + "documentation":"

The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. For Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases, specify MYSQL. For Aurora PostgreSQL and RDS for PostgreSQL databases, specify POSTGRESQL. For RDS for Microsoft SQL Server, specify SQLSERVER.

" }, "Auth":{ "shape":"UserAuthConfigList", @@ -4223,7 +4532,7 @@ }, "DatabaseName":{ "shape":"String", - "documentation":"

The name for your database of up to 64 alpha-numeric characters. If you do not provide a name, Amazon Aurora will not create a database in the global database cluster you are creating.

" + "documentation":"

The name for your database of up to 64 alphanumeric characters. If you do not provide a name, Amazon Aurora will not create a database in the global database cluster you are creating.

" }, "StorageEncrypted":{ "shape":"BooleanOptional", @@ -4612,9 +4921,17 @@ }, "PerformanceInsightsRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

This setting is only for non-Aurora Multi-AZ DB clusters.

" + "documentation":"

The number of days to retain Performance Insights data. The default is 7 days. The following values are valid:

  • 7

  • month * 31, where month is a number of months from 1-23

  • 731

For example, the following values are valid:

  • 93 (3 months * 31)

  • 341 (11 months * 31)

  • 589 (19 months * 31)

  • 731

This setting is only for non-Aurora Multi-AZ DB clusters.

" }, - "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfigurationInfo"} + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfigurationInfo"}, + "NetworkType":{ + "shape":"String", + "documentation":"

The network type of the DB instance.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

This setting is only for Aurora DB clusters.

" + }, + "DBSystemId":{ + "shape":"String", + "documentation":"

Reserved for future use.

" + } }, "documentation":"

Contains the details of an Amazon Aurora DB cluster or Multi-AZ DB cluster.

For an Amazon Aurora DB cluster, this data type is used as a response element in the operations CreateDBCluster, DeleteDBCluster, DescribeDBClusters, FailoverDBCluster, ModifyDBCluster, PromoteReadReplicaDBCluster, RestoreDBClusterFromS3, RestoreDBClusterFromSnapshot, RestoreDBClusterToPointInTime, StartDBCluster, and StopDBCluster.

For a Multi-AZ DB cluster, this data type is used as a response element in the operations CreateDBCluster, DeleteDBCluster, DescribeDBClusters, FailoverDBCluster, ModifyDBCluster, RebootDBCluster, RestoreDBClusterFromSnapshot, and RestoreDBClusterToPointInTime.

For more information on Amazon Aurora DB clusters, see What is Amazon Aurora? in the Amazon Aurora User Guide.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

", "wrapper":true @@ -5151,7 +5468,11 @@ "shape":"Boolean", "documentation":"

True if mapping of Amazon Web Services Identity and Access Management (IAM) accounts to database accounts is enabled, and otherwise false.

" }, - "TagList":{"shape":"TagList"} + "TagList":{"shape":"TagList"}, + "DBSystemId":{ + "shape":"String", + "documentation":"

Reserved for future use.

" + } }, "documentation":"

Contains the details for an Amazon RDS DB cluster snapshot

This data type is used as a response element in the DescribeDBClusterSnapshots action.

", "wrapper":true @@ -5340,6 +5661,10 @@ "SupportsBabelfish":{ "shape":"Boolean", "documentation":"

A value that indicates whether the engine version supports Babelfish for Aurora PostgreSQL.

" + }, + "CustomDBEngineVersionManifest":{ + "shape":"CustomDBEngineVersionManifest", + "documentation":"

JSON string that lists the installation files and parameters that RDS Custom uses to create a custom engine version (CEV). RDS Custom applies the patches in the order in which they're listed in the manifest. You can set the Oracle home, Oracle base, and UNIX/Linux user and group using the installation parameters. For more information, see JSON fields in the CEV manifest in the Amazon RDS User Guide.

" } }, "documentation":"

This data type is used as a response element in the action DescribeDBEngineVersions.

" @@ -5510,7 +5835,7 @@ }, "StorageType":{ "shape":"String", - "documentation":"

Specifies the storage type associated with DB instance.

" + "documentation":"

Specifies the storage type associated with the DB instance.

" }, "TdeCredentialArn":{ "shape":"String", @@ -5586,7 +5911,7 @@ }, "PerformanceInsightsRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

" + "documentation":"

The number of days to retain Performance Insights data. The default is 7 days. The following values are valid:

  • 7

  • month * 31, where month is a number of months from 1-23

  • 731

For example, the following values are valid:

  • 93 (3 months * 31)

  • 341 (11 months * 31)

  • 589 (19 months * 31)

  • 731

" }, "EnabledCloudwatchLogsExports":{ "shape":"LogTypeList", @@ -5664,6 +5989,18 @@ "NetworkType":{ "shape":"String", "documentation":"

The network type of the DB instance.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide and Working with a DB instance in a VPC in the Amazon Aurora User Guide.

" + }, + "ActivityStreamPolicyStatus":{ + "shape":"ActivityStreamPolicyStatus", + "documentation":"

The status of the policy state of the activity stream.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

Specifies the storage throughput for the DB instance.

This setting applies only to the gp3 storage type.

" + }, + "DBSystemId":{ + "shape":"String", + "documentation":"

The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only.

" } }, "documentation":"

Contains the details of an Amazon RDS DB instance.

This data type is used as a response element in the operations CreateDBInstance, CreateDBInstanceReadReplica, DeleteDBInstance, DescribeDBInstances, ModifyDBInstance, PromoteReadReplica, RebootDBInstance, RestoreDBInstanceFromDBSnapshot, RestoreDBInstanceFromS3, RestoreDBInstanceToPointInTime, StartDBInstance, and StopDBInstance.

", @@ -5722,7 +6059,7 @@ }, "VpcId":{ "shape":"String", - "documentation":"

Provides the VPC ID associated with the DB instance

" + "documentation":"

Provides the VPC ID associated with the DB instance.

" }, "InstanceCreateTime":{ "shape":"TStamp", @@ -5791,6 +6128,10 @@ "BackupTarget":{ "shape":"String", "documentation":"

Specifies where automated backups are stored: Amazon Web Services Outposts or the Amazon Web Services Region.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

Specifies the storage throughput for the automated backup.

" } }, "documentation":"

An automated backup of a DB instance. It consists of system backups, transaction logs, and the database instance properties that existed at the time you deleted the source instance.

", @@ -6135,7 +6476,7 @@ }, "EngineFamily":{ "shape":"String", - "documentation":"

The engine family applies to MySQL and PostgreSQL for both RDS and Aurora.

" + "documentation":"

The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. MYSQL supports Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases. POSTGRESQL supports Aurora PostgreSQL and RDS for PostgreSQL databases. SQLSERVER supports RDS for Microsoft SQL Server databases.

" }, "VpcId":{ "shape":"String", @@ -6722,9 +7063,17 @@ "shape":"TStamp", "documentation":"

Specifies the time of the CreateDBSnapshot operation in Coordinated Universal Time (UTC). Doesn't change when the snapshot is copied.

" }, + "SnapshotDatabaseTime":{ + "shape":"TStamp", + "documentation":"

The timestamp of the most recent transaction applied to the database that you're backing up. Thus, if you restore a snapshot, SnapshotDatabaseTime is the most recent transaction in the restored DB instance. In contrast, originalSnapshotCreateTime specifies the system time that the snapshot completed.

If you back up a read replica, you can determine the replica lag by comparing SnapshotDatabaseTime with originalSnapshotCreateTime. For example, if originalSnapshotCreateTime is two hours later than SnapshotDatabaseTime, then the replica lag is two hours.

" + }, "SnapshotTarget":{ "shape":"String", "documentation":"

Specifies where manual snapshots are stored: Amazon Web Services Outposts or the Amazon Web Services Region.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

Specifies the storage throughput for the DB snapshot.

" } }, "documentation":"

Contains the details of an Amazon RDS DB snapshot.

This data type is used as a response element in the DescribeDBSnapshots action.

", @@ -6952,6 +7301,32 @@ }, "exception":true }, + "DatabaseArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^arn:[A-Za-z][0-9A-Za-z-:._]*" + }, + "DeleteBlueGreenDeploymentRequest":{ + "type":"structure", + "required":["BlueGreenDeploymentIdentifier"], + "members":{ + "BlueGreenDeploymentIdentifier":{ + "shape":"BlueGreenDeploymentIdentifier", + "documentation":"

The blue/green deployment identifier of the deployment to be deleted. This parameter isn't case-sensitive.

Constraints:

  • Must match an existing blue/green deployment identifier.

" + }, + "DeleteTarget":{ + "shape":"BooleanOptional", + "documentation":"

A value that indicates whether to delete the resources in the green environment.

" + } + } + }, + "DeleteBlueGreenDeploymentResponse":{ + "type":"structure", + "members":{ + "BlueGreenDeployment":{"shape":"BlueGreenDeployment"} + } + }, "DeleteCustomDBEngineVersionMessage":{ "type":"structure", "required":[ @@ -7246,6 +7621,40 @@ }, "documentation":"

" }, + "DescribeBlueGreenDeploymentsRequest":{ + "type":"structure", + "members":{ + "BlueGreenDeploymentIdentifier":{ + "shape":"BlueGreenDeploymentIdentifier", + "documentation":"

The blue/green deployment identifier. If this parameter is specified, information from only the specific blue/green deployment is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match an existing blue/green deployment identifier.

" + }, + "Filters":{ + "shape":"FilterList", + "documentation":"

A filter that specifies one or more blue/green deployments to describe.

Supported filters:

  • blue-green-deployment-identifier - Accepts system-generated identifiers for blue/green deployments. The results list only includes information about the blue/green deployments with the specified identifiers.

  • blue-green-deployment-name - Accepts user-supplied names for blue/green deployments. The results list only includes information about the blue/green deployments with the specified names.

  • source - Accepts source databases for a blue/green deployment. The results list only includes information about the blue/green deployments with the specified source databases.

  • target - Accepts target databases for a blue/green deployment. The results list only includes information about the blue/green deployments with the specified target databases.

" + }, + "Marker":{ + "shape":"String", + "documentation":"

An optional pagination token provided by a previous DescribeBlueGreenDeployments request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords.

" + }, + "MaxRecords":{ + "shape":"MaxRecords", + "documentation":"

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + } + } + }, + "DescribeBlueGreenDeploymentsResponse":{ + "type":"structure", + "members":{ + "BlueGreenDeployments":{ + "shape":"BlueGreenDeploymentList", + "documentation":"

Contains a list of blue/green deployments for the user.

" + }, + "Marker":{ + "shape":"String", + "documentation":"

A pagination token that can be used in a later DescribeBlueGreenDeployments request.

" + } + } + }, "DescribeCertificatesMessage":{ "type":"structure", "members":{ @@ -7429,7 +7838,7 @@ "members":{ "DBClusterIdentifier":{ "shape":"String", - "documentation":"

The user-supplied DB cluster identifier. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match an existing DBClusterIdentifier.

" + "documentation":"

The user-supplied DB cluster identifier or the Amazon Resource Name (ARN) of the DB cluster. If this parameter is specified, information from only the specific DB cluster is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match an existing DBClusterIdentifier.

" }, "Filters":{ "shape":"FilterList", @@ -7530,7 +7939,7 @@ "members":{ "DBInstanceIdentifier":{ "shape":"String", - "documentation":"

The user-supplied instance identifier. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBInstance.

" + "documentation":"

The user-supplied instance identifier or the Amazon Resource Name (ARN) of the DB instance. If this parameter is specified, information from only the specific DB instance is returned. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBInstance.

" }, "Filters":{ "shape":"FilterList", @@ -7863,11 +8272,11 @@ "members":{ "DBInstanceIdentifier":{ "shape":"String", - "documentation":"

The ID of the DB instance to retrieve the list of DB snapshots for. This parameter can't be used in conjunction with DBSnapshotIdentifier. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBInstance.

" + "documentation":"

The ID of the DB instance to retrieve the list of DB snapshots for. This parameter isn't case-sensitive.

Constraints:

  • If supplied, must match the identifier of an existing DBInstance.

" }, "DBSnapshotIdentifier":{ "shape":"String", - "documentation":"

A specific DB snapshot identifier to describe. This parameter can't be used in conjunction with DBInstanceIdentifier. This value is stored as a lowercase string.

Constraints:

  • If supplied, must match the identifier of an existing DBSnapshot.

  • If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

" + "documentation":"

A specific DB snapshot identifier to describe. This value is stored as a lowercase string.

Constraints:

  • If supplied, must match the identifier of an existing DBSnapshot.

  • If this identifier is for an automated snapshot, the SnapshotType parameter must also be specified.

" }, "SnapshotType":{ "shape":"String", @@ -7957,7 +8366,7 @@ "members":{ "DBParameterGroupFamily":{ "shape":"String", - "documentation":"

The name of the DB parameter group family.

Valid Values:

  • aurora5.6

  • aurora-mysql5.7

  • aurora-mysql8.0

  • aurora-postgresql10

  • aurora-postgresql11

  • aurora-postgresql12

  • aurora-postgresql13

  • mariadb10.2

  • mariadb10.3

  • mariadb10.4

  • mariadb10.5

  • mariadb10.6

  • mysql5.7

  • mysql8.0

  • postgres10

  • postgres11

  • postgres12

  • postgres13

  • postgres14

  • sqlserver-ee-11.0

  • sqlserver-ee-12.0

  • sqlserver-ee-13.0

  • sqlserver-ee-14.0

  • sqlserver-ee-15.0

  • sqlserver-ex-11.0

  • sqlserver-ex-12.0

  • sqlserver-ex-13.0

  • sqlserver-ex-14.0

  • sqlserver-ex-15.0

  • sqlserver-se-11.0

  • sqlserver-se-12.0

  • sqlserver-se-13.0

  • sqlserver-se-14.0

  • sqlserver-se-15.0

  • sqlserver-web-11.0

  • sqlserver-web-12.0

  • sqlserver-web-13.0

  • sqlserver-web-14.0

  • sqlserver-web-15.0

" + "documentation":"

The name of the DB parameter group family.

Valid Values:

  • aurora5.6

  • aurora-mysql5.7

  • aurora-mysql8.0

  • aurora-postgresql10

  • aurora-postgresql11

  • aurora-postgresql12

  • aurora-postgresql13

  • aurora-postgresql14

  • custom-oracle-ee-19

  • mariadb10.2

  • mariadb10.3

  • mariadb10.4

  • mariadb10.5

  • mariadb10.6

  • mysql5.7

  • mysql8.0

  • oracle-ee-19

  • oracle-ee-cdb-19

  • oracle-ee-cdb-21

  • oracle-se2-19

  • oracle-se2-cdb-19

  • oracle-se2-cdb-21

  • postgres10

  • postgres11

  • postgres12

  • postgres13

  • postgres14

  • sqlserver-ee-11.0

  • sqlserver-ee-12.0

  • sqlserver-ee-13.0

  • sqlserver-ee-14.0

  • sqlserver-ee-15.0

  • sqlserver-ex-11.0

  • sqlserver-ex-12.0

  • sqlserver-ex-13.0

  • sqlserver-ex-14.0

  • sqlserver-ex-15.0

  • sqlserver-se-11.0

  • sqlserver-se-12.0

  • sqlserver-se-13.0

  • sqlserver-se-14.0

  • sqlserver-se-15.0

  • sqlserver-web-11.0

  • sqlserver-web-12.0

  • sqlserver-web-13.0

  • sqlserver-web-14.0

  • sqlserver-web-15.0

" }, "Filters":{ "shape":"FilterList", @@ -8080,6 +8489,10 @@ "MaxRecords":{ "shape":"MaxRecords", "documentation":"

The maximum number of records to include in the response. If more records exist than the specified value, a pagination token called a marker is included in the response. You can use the marker in a later DescribeExportTasks request to retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + }, + "SourceType":{ + "shape":"ExportSourceType", + "documentation":"

The type of source for the export.

" } } }, @@ -8195,7 +8608,7 @@ }, "MaxRecords":{ "shape":"IntegerOptional", - "documentation":"

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 100.

" + "documentation":"

The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that you can retrieve the remaining results.

Default: 100

Constraints: Minimum 20, maximum 10000.

" }, "Marker":{ "shape":"String", @@ -8541,7 +8954,8 @@ "type":"string", "enum":[ "MYSQL", - "POSTGRESQL" + "POSTGRESQL", + "SQLSERVER" ] }, "EngineModeList":{ @@ -8576,7 +8990,7 @@ "documentation":"

The Amazon Resource Name (ARN) for the event.

" } }, - "documentation":"

This data type is used as a response element in the DescribeEvents action.

" + "documentation":"

This data type is used as a response element in the DescribeEvents action.

" }, "EventCategoriesList":{ "type":"list", @@ -8597,7 +9011,7 @@ "documentation":"

The event categories for the specified source type

" } }, - "documentation":"

Contains the results of a successful invocation of the DescribeEventCategories operation.

", + "documentation":"

Contains the results of a successful invocation of the DescribeEventCategories operation.

", "wrapper":true }, "EventCategoriesMapList":{ @@ -8718,6 +9132,13 @@ }, "documentation":"

Contains the result of a successful invocation of the DescribeEvents action.

" }, + "ExportSourceType":{ + "type":"string", + "enum":[ + "SNAPSHOT", + "CLUSTER" + ] + }, "ExportTask":{ "type":"structure", "members":{ @@ -8780,6 +9201,10 @@ "WarningMessage":{ "shape":"String", "documentation":"

A warning about the snapshot export task.

" + }, + "SourceType":{ + "shape":"ExportSourceType", + "documentation":"

The type of source for the export.

" } }, "documentation":"

Contains the details of a snapshot export to Amazon S3.

This data type is used as a response element in the DescribeExportTasks action.

" @@ -9082,7 +9507,8 @@ "type":"string", "enum":[ "DISABLED", - "REQUIRED" + "REQUIRED", + "ENABLED" ] }, "IPRange":{ @@ -9192,6 +9618,18 @@ }, "Integer":{"type":"integer"}, "IntegerOptional":{"type":"integer"}, + "InvalidBlueGreenDeploymentStateFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The blue/green deployment can't be switched over or deleted because there is an invalid configuration in the green environment.

", + "error":{ + "code":"InvalidBlueGreenDeploymentStateFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "InvalidCustomDBEngineVersionStateFault":{ "type":"structure", "members":{ @@ -9561,6 +9999,48 @@ "locationName":"MinimumEngineVersionPerAllowedValue" } }, + "ModifyActivityStreamRequest":{ + "type":"structure", + "members":{ + "ResourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the RDS for Oracle DB instance, for example, arn:aws:rds:us-east-1:12345667890:instance:my-orcl-db.

" + }, + "AuditPolicyState":{ + "shape":"AuditPolicyState", + "documentation":"

The audit policy state. When a policy is unlocked, it is read/write. When it is locked, it is read-only. You can edit your audit policy only when the activity stream is unlocked or stopped.

" + } + } + }, + "ModifyActivityStreamResponse":{ + "type":"structure", + "members":{ + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Web Services KMS key identifier for encryption of messages in the database activity stream.

" + }, + "KinesisStreamName":{ + "shape":"String", + "documentation":"

The name of the Amazon Kinesis data stream to be used for the database activity stream.

" + }, + "Status":{ + "shape":"ActivityStreamStatus", + "documentation":"

The status of the modification to the database activity stream.

" + }, + "Mode":{ + "shape":"ActivityStreamMode", + "documentation":"

The mode of the database activity stream.

" + }, + "EngineNativeAuditFieldsIncluded":{ + "shape":"BooleanOptional", + "documentation":"

Indicates whether engine-native audit fields are included in the database activity stream.

" + }, + "PolicyStatus":{ + "shape":"ActivityStreamPolicyStatus", + "documentation":"

The status of the modification to the policy state of the database activity stream.

" + } + } + }, "ModifyCertificatesMessage":{ "type":"structure", "members":{ @@ -9751,7 +10231,7 @@ }, "DBClusterInstanceClass":{ "shape":"String", - "documentation":"

The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Valid for: Multi-AZ DB clusters only

" }, "AllocatedStorage":{ "shape":"IntegerOptional", @@ -9763,7 +10243,7 @@ }, "Iops":{ "shape":"IntegerOptional", - "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid Iops values, see Amazon RDS Provisioned IOPS Storage to Improve Performance in the Amazon RDS User Guide.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB cluster.

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB cluster.

Valid for: Multi-AZ DB clusters only

" }, "AutoMinorVersionUpgrade":{ "shape":"BooleanOptional", @@ -9787,9 +10267,13 @@ }, "PerformanceInsightsRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The number of days to retain Performance Insights data. The default is 7 days. The following values are valid:

  • 7

  • month * 31, where month is a number of months from 1-23

  • 731

For example, the following values are valid:

  • 93 (3 months * 31)

  • 341 (11 months * 31)

  • 589 (19 months * 31)

  • 731

If you specify a retention period such as 94, which isn't a valid value, RDS issues an error.

Valid for: Multi-AZ DB clusters only

" }, - "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"} + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"}, + "NetworkType":{ + "shape":"String", + "documentation":"

The network type of the DB cluster.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters only

" + } }, "documentation":"

" }, @@ -9830,7 +10314,7 @@ }, "AttributeName":{ "shape":"String", - "documentation":"

The name of the DB cluster snapshot attribute to modify.

To manage authorization for other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot, set this value to restore.

To view the list of attributes available to modify, use the DescribeDBClusterSnapshotAttributes API action.

" + "documentation":"

The name of the DB cluster snapshot attribute to modify.

To manage authorization for other Amazon Web Services accounts to copy or restore a manual DB cluster snapshot, set this value to restore.

To view the list of attributes available to modify, use the DescribeDBClusterSnapshotAttributes API operation.

" }, "ValuesToAdd":{ "shape":"AttributeValueList", @@ -9863,7 +10347,7 @@ }, "DBInstanceClass":{ "shape":"String", - "documentation":"

The new compute and memory capacity of the DB instance, for example db.m4.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless ApplyImmediately is enabled for this request.

This setting doesn't apply to RDS Custom for Oracle.

Default: Uses existing setting

" + "documentation":"

The new compute and memory capacity of the DB instance, for example db.m4.large. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines. For the full list of DB instance classes, and availability for your engine, see DB instance classes in the Amazon RDS User Guide or Aurora DB instance classes in the Amazon Aurora User Guide.

If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless ApplyImmediately is enabled for this request.

This setting doesn't apply to RDS Custom for Oracle.

Default: Uses existing setting

" }, "DBSubnetGroupName":{ "shape":"String", @@ -9883,7 +10367,7 @@ }, "MasterUserPassword":{ "shape":"String", - "documentation":"

The new password for the master user. The password can include any printable ASCII character except \"/\", \"\"\", or \"@\".

Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable. The password for the master user is managed by the DB cluster. For more information, see ModifyDBCluster.

Default: Uses existing setting

MariaDB

Constraints: Must contain from 8 to 41 characters.

Microsoft SQL Server

Constraints: Must contain from 8 to 128 characters.

MySQL

Constraints: Must contain from 8 to 41 characters.

Oracle

Constraints: Must contain from 8 to 30 characters.

PostgreSQL

Constraints: Must contain from 8 to 128 characters.

Amazon RDS API actions never return the password, so this action provides a way to regain access to a primary instance user if the password is lost. This includes restoring privileges that might have been accidentally revoked.

" + "documentation":"

The new password for the master user. The password can include any printable ASCII character except \"/\", \"\"\", or \"@\".

Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

This setting doesn't apply to RDS Custom.

Amazon Aurora

Not applicable. The password for the master user is managed by the DB cluster. For more information, see ModifyDBCluster.

Default: Uses existing setting

MariaDB

Constraints: Must contain from 8 to 41 characters.

Microsoft SQL Server

Constraints: Must contain from 8 to 128 characters.

MySQL

Constraints: Must contain from 8 to 41 characters.

Oracle

Constraints: Must contain from 8 to 30 characters.

PostgreSQL

Constraints: Must contain from 8 to 128 characters.

Amazon RDS API operations never return the password, so this action provides a way to regain access to a primary instance user if the password is lost. This includes restoring privileges that might have been accidentally revoked.

" }, "DBParameterGroupName":{ "shape":"String", @@ -9891,7 +10375,7 @@ }, "BackupRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Enabling and disabling backups can result in a brief I/O suspension that lasts from a few seconds to a few minutes, depending on the size and class of your DB instance.

These changes are applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request. If you change the parameter from one non-zero value to another non-zero value, the change is asynchronously applied as soon as possible.

Amazon Aurora

Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Default: Uses existing setting

Constraints:

  • It must be a value from 0 to 35. It can't be set to 0 if the DB instance is a source to read replicas. It can't be set to 0 or 35 for an RDS Custom for Oracle DB instance.

  • It can be specified for a MySQL read replica only if the source is running MySQL 5.6 or later.

  • It can be specified for a PostgreSQL read replica only if the source is running PostgreSQL 9.3.5.

" + "documentation":"

The number of days to retain automated backups. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups.

Enabling and disabling backups can result in a brief I/O suspension that lasts from a few seconds to a few minutes, depending on the size and class of your DB instance.

These changes are applied during the next maintenance window unless the ApplyImmediately parameter is enabled for this request. If you change the parameter from one non-zero value to another non-zero value, the change is asynchronously applied as soon as possible.

Amazon Aurora

Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see ModifyDBCluster.

Default: Uses existing setting

Constraints:

  • It must be a value from 0 to 35. It can't be set to 0 if the DB instance is a source to read replicas. It can't be set to 0 for an RDS Custom for Oracle DB instance.

  • It can be specified for a MySQL read replica only if the source is running MySQL 5.6 or later.

  • It can be specified for a PostgreSQL read replica only if the source is running PostgreSQL 9.3.5.

" }, "PreferredBackupWindow":{ "shape":"String", @@ -9935,7 +10419,7 @@ }, "StorageType":{ "shape":"String", - "documentation":"

Specifies the storage type to be associated with the DB instance.

If you specify Provisioned IOPS (io1), you must also include a value for the Iops parameter.

If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a read replica for the instance, and creating a DB snapshot of the instance.

Valid values: standard | gp2 | io1

Default: io1 if the Iops parameter is specified, otherwise gp2

" + "documentation":"

Specifies the storage type to be associated with the DB instance.

If you specify Provisioned IOPS (io1), you must also include a value for the Iops parameter.

If you choose to migrate your DB instance from using standard storage to using Provisioned IOPS, or from using Provisioned IOPS to using standard storage, the process can take time. The duration of the migration depends on several factors such as database load, storage size, storage type (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and the number of prior scale storage operations. Typical migration times are under 24 hours, but the process can take up to several days in some cases. During the migration, the DB instance is available for use, but might experience performance degradation. While the migration takes place, nightly backups for the instance are suspended. No other Amazon RDS operations can take place for the instance, including modifying the instance, rebooting the instance, deleting the instance, creating a read replica for the instance, and creating a DB snapshot of the instance.

Valid values: gp2 | gp3 | io1 | standard

Default: io1 if the Iops parameter is specified, otherwise gp2

" }, "TdeCredentialArn":{ "shape":"String", @@ -9987,7 +10471,7 @@ }, "EnablePerformanceInsights":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether to enable Performance Insights for the DB instance.

For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide..

This setting doesn't apply to RDS Custom.

" + "documentation":"

A value that indicates whether to enable Performance Insights for the DB instance.

For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide.

This setting doesn't apply to RDS Custom.

" }, "PerformanceInsightsKMSKeyId":{ "shape":"String", @@ -9995,7 +10479,7 @@ }, "PerformanceInsightsRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

This setting doesn't apply to RDS Custom.

" + "documentation":"

The number of days to retain Performance Insights data. The default is 7 days. The following values are valid:

  • 7

  • month * 31, where month is a number of months from 1-23

  • 731

For example, the following values are valid:

  • 93 (3 months * 31)

  • 341 (11 months * 31)

  • 589 (19 months * 31)

  • 731

If you specify a retention period such as 94, which isn't a valid value, RDS issues an error.

This setting doesn't apply to RDS Custom.

" }, "CloudwatchLogsExportConfiguration":{ "shape":"CloudwatchLogsExportConfiguration", @@ -10044,6 +10528,10 @@ "NetworkType":{ "shape":"String", "documentation":"

The network type of the DB instance.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

Specifies the storage throughput value for the DB instance.

This setting applies only to the gp3 storage type.

This setting doesn't apply to RDS Custom or Amazon Aurora.

" } }, "documentation":"

" @@ -10155,11 +10643,11 @@ "members":{ "TargetGroupName":{ "shape":"String", - "documentation":"

The name of the new target group to assign to the proxy.

" + "documentation":"

The name of the target group to modify.

" }, "DBProxyName":{ "shape":"String", - "documentation":"

The name of the new proxy to which to assign the target group.

" + "documentation":"

The name of the proxy.

" }, "ConnectionPoolConfig":{ "shape":"ConnectionPoolConfiguration", @@ -10193,7 +10681,7 @@ }, "AttributeName":{ "shape":"String", - "documentation":"

The name of the DB snapshot attribute to modify.

To manage authorization for other Amazon Web Services accounts to copy or restore a manual DB snapshot, set this value to restore.

To view the list of attributes available to modify, use the DescribeDBSnapshotAttributes API action.

" + "documentation":"

The name of the DB snapshot attribute to modify.

To manage authorization for other Amazon Web Services accounts to copy or restore a manual DB snapshot, set this value to restore.

To view the list of attributes available to modify, use the DescribeDBSnapshotAttributes API operation.

" }, "ValuesToAdd":{ "shape":"AttributeValueList", @@ -10924,6 +11412,26 @@ "SupportedNetworkTypes":{ "shape":"StringList", "documentation":"

The network types supported by the DB instance (IPV4 or DUAL).

A DB instance can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + }, + "SupportsStorageThroughput":{ + "shape":"Boolean", + "documentation":"

Indicates whether a DB instance supports storage throughput.

" + }, + "MinStorageThroughputPerDbInstance":{ + "shape":"IntegerOptional", + "documentation":"

Minimum storage throughput for a DB instance.

" + }, + "MaxStorageThroughputPerDbInstance":{ + "shape":"IntegerOptional", + "documentation":"

Maximum storage throughput for a DB instance.

" + }, + "MinStorageThroughputPerIops":{ + "shape":"DoubleOptional", + "documentation":"

Minimum storage throughput to provisioned IOPS ratio for a DB instance.

" + }, + "MaxStorageThroughputPerIops":{ + "shape":"DoubleOptional", + "documentation":"

Maximum storage throughput to provisioned IOPS ratio for a DB instance.

" } }, "documentation":"

Contains a list of available options for a DB instance.

This data type is used as a response element in the DescribeOrderableDBInstanceOptions action.

", @@ -11160,6 +11668,10 @@ "ResumeFullAutomationModeTime":{ "shape":"TStamp", "documentation":"

The number of minutes to pause the automation. When the time period ends, RDS Custom resumes full automation. The minimum value is 60 (default). The maximum value is 1,440.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

The storage throughput of the DB instance.

" } }, "documentation":"

This data type is used as a response element in the ModifyDBInstance operation and contains changes that will be applied during the next maintenance window.

" @@ -11848,11 +12360,11 @@ }, "Engine":{ "shape":"String", - "documentation":"

The name of the database engine to be used for this DB cluster.

Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora), and aurora-postgresql

" + "documentation":"

The name of the database engine to be used for this DB cluster.

Valid Values: aurora (for MySQL 5.6-compatible Aurora) and aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora)

" }, "EngineVersion":{ "shape":"String", - "documentation":"

The version number of the database engine to use.

To list all of the available engine versions for aurora (for MySQL 5.6-compatible Aurora), use the following command:

aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for aurora-postgresql, use the following command:

aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

Example: 5.6.10a, 5.6.mysql_aurora.1.19.2, 5.7.12, 5.7.mysql_aurora.2.04.5, 8.0.mysql_aurora.3.01.0

Aurora PostgreSQL

Example: 9.6.3, 10.7

" + "documentation":"

The version number of the database engine to use.

To list all of the available engine versions for aurora (for MySQL 5.6-compatible Aurora), use the following command:

aws rds describe-db-engine-versions --engine aurora --query \"DBEngineVersions[].EngineVersion\"

To list all of the available engine versions for aurora-mysql (for MySQL 5.7-compatible and MySQL 8.0-compatible Aurora), use the following command:

aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"

Aurora MySQL

Example: 5.6.10a, 5.6.mysql_aurora.1.19.2, 5.7.mysql_aurora.2.07.1, 8.0.mysql_aurora.3.02.0

" }, "Port":{ "shape":"IntegerOptional", @@ -11935,7 +12447,11 @@ "shape":"String", "documentation":"

Specify the name of the IAM role to be used when making API calls to the Directory Service.

" }, - "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"} + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"}, + "NetworkType":{ + "shape":"String", + "documentation":"

The network type of the DB cluster.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

" + } } }, "RestoreDBClusterFromS3Result":{ @@ -12010,7 +12526,7 @@ }, "EnableCloudwatchLogsExports":{ "shape":"LogTypeList", - "documentation":"

The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs. The values in the list depend on the DB engine being used.

RDS for MySQL

Possible values are error, general, and slowquery.

RDS for PostgreSQL

Possible values are postgresql and upgrade.

Aurora MySQL

Possible values are audit, error, general, and slowquery.

Aurora PostgreSQL

Possible value is postgresql.

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide..

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + "documentation":"

The list of logs that the restored DB cluster is to export to Amazon CloudWatch Logs. The values in the list depend on the DB engine being used.

RDS for MySQL

Possible values are error, general, and slowquery.

RDS for PostgreSQL

Possible values are postgresql and upgrade.

Aurora MySQL

Possible values are audit, error, general, and slowquery.

Aurora PostgreSQL

Possible value is postgresql.

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, "EngineMode":{ "shape":"String", @@ -12042,7 +12558,7 @@ }, "DBClusterInstanceClass":{ "shape":"String", - "documentation":"

The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes, and availability for your engine, see DB Instance Class in the Amazon RDS User Guide.

Valid for: Multi-AZ DB clusters only

" }, "StorageType":{ "shape":"String", @@ -12050,13 +12566,17 @@ }, "Iops":{ "shape":"IntegerOptional", - "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid Iops values, see Amazon RDS Provisioned IOPS Storage to Improve Performance in the Amazon RDS User Guide.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB instance.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB instance.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, "PubliclyAccessible":{ "shape":"BooleanOptional", "documentation":"

A value that indicates whether the DB cluster is publicly accessible.

When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access is not permitted if the security group assigned to the DB cluster doesn't permit it.

When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.

Default: The default behavior varies depending on whether DBSubnetGroupName is specified.

If DBSubnetGroupName isn't specified, and PubliclyAccessible isn't specified, the following applies:

  • If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.

  • If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.

If DBSubnetGroupName is specified, and PubliclyAccessible isn't specified, the following applies:

  • If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.

  • If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, - "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"} + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"}, + "NetworkType":{ + "shape":"String", + "documentation":"

The network type of the DB cluster.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters only

" + } }, "documentation":"

" }, @@ -12124,7 +12644,7 @@ }, "EnableCloudwatchLogsExports":{ "shape":"LogTypeList", - "documentation":"

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values in the list depend on the DB engine being used.

RDS for MySQL

Possible values are error, general, and slowquery.

RDS for PostgreSQL

Possible values are postgresql and upgrade.

Aurora MySQL

Possible values are audit, error, general, and slowquery.

Aurora PostgreSQL

Possible value is postgresql.

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide..

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" + "documentation":"

The list of logs that the restored DB cluster is to export to CloudWatch Logs. The values in the list depend on the DB engine being used.

RDS for MySQL

Possible values are error, general, and slowquery.

RDS for PostgreSQL

Possible values are postgresql and upgrade.

Aurora MySQL

Possible values are audit, error, general, and slowquery.

Aurora PostgreSQL

Possible value is postgresql.

For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.

For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters and Multi-AZ DB clusters

" }, "DBClusterParameterGroupName":{ "shape":"String", @@ -12156,7 +12676,7 @@ }, "DBClusterInstanceClass":{ "shape":"String", - "documentation":"

The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, for example db.m6g.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes, and availability for your engine, see DB instance class in the Amazon RDS User Guide.

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The compute and memory capacity of the each DB instance in the Multi-AZ DB cluster, for example db.m6gd.xlarge. Not all DB instance classes are available in all Amazon Web Services Regions, or for all database engines.

For the full list of DB instance classes, and availability for your engine, see DB instance class in the Amazon RDS User Guide.

Valid for: Multi-AZ DB clusters only

" }, "StorageType":{ "shape":"String", @@ -12168,9 +12688,13 @@ }, "Iops":{ "shape":"IntegerOptional", - "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid Iops values, see Amazon RDS Provisioned IOPS storage to improve performance in the Amazon RDS User Guide.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB instance.

Valid for: Multi-AZ DB clusters only

" + "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.

For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

Constraints: Must be a multiple between .5 and 50 of the storage amount for the DB instance.

Valid for: Multi-AZ DB clusters only

" }, - "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"} + "ServerlessV2ScalingConfiguration":{"shape":"ServerlessV2ScalingConfiguration"}, + "NetworkType":{ + "shape":"String", + "documentation":"

The network type of the DB cluster.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB cluster. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon Aurora User Guide.

Valid for: Aurora DB clusters only

" + } }, "documentation":"

" }, @@ -12182,10 +12706,7 @@ }, "RestoreDBInstanceFromDBSnapshotMessage":{ "type":"structure", - "required":[ - "DBInstanceIdentifier", - "DBSnapshotIdentifier" - ], + "required":["DBInstanceIdentifier"], "members":{ "DBInstanceIdentifier":{ "shape":"String", @@ -12193,7 +12714,7 @@ }, "DBSnapshotIdentifier":{ "shape":"String", - "documentation":"

The identifier for the DB snapshot to restore from.

Constraints:

  • Must match the identifier of an existing DBSnapshot.

  • If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

" + "documentation":"

The identifier for the DB snapshot to restore from.

Constraints:

  • Must match the identifier of an existing DBSnapshot.

  • Can't be specified when DBClusterSnapshotIdentifier is specified.

  • Must be specified when DBClusterSnapshotIdentifier isn't specified.

  • If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier must be the ARN of the shared DB snapshot.

" }, "DBInstanceClass":{ "shape":"String", @@ -12237,7 +12758,7 @@ }, "Iops":{ "shape":"IntegerOptional", - "documentation":"

Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter isn't specified, the IOPS value is taken from the backup. If this parameter is set to 0, the new instance is converted to a non-PIOPS instance. The conversion takes additional time, though your DB instance is available for connections before the conversion starts.

The provisioned IOPS value must follow the requirements for your database engine. For more information, see Amazon RDS Provisioned IOPS Storage to Improve Performance in the Amazon RDS User Guide.

Constraints: Must be an integer greater than 1000.

" + "documentation":"

Specifies the amount of provisioned IOPS for the DB instance, expressed in I/O operations per second. If this parameter isn't specified, the IOPS value is taken from the backup. If this parameter is set to 0, the new instance is converted to a non-PIOPS instance. The conversion takes additional time, though your DB instance is available for connections before the conversion starts.

The provisioned IOPS value must follow the requirements for your database engine. For more information, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

Constraints: Must be an integer greater than 1000.

" }, "OptionGroupName":{ "shape":"String", @@ -12246,7 +12767,7 @@ "Tags":{"shape":"TagList"}, "StorageType":{ "shape":"String", - "documentation":"

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp2

" + "documentation":"

Specifies the storage type to be associated with the DB instance.

Valid values: gp2 | gp3 | io1 | standard

If you specify io1 or gp3, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp2

" }, "TdeCredentialArn":{ "shape":"String", @@ -12311,6 +12832,14 @@ "NetworkType":{ "shape":"String", "documentation":"

The network type of the DB instance.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

Specifies the storage throughput value for the DB instance.

This setting doesn't apply to RDS Custom or Amazon Aurora.

" + }, + "DBClusterSnapshotIdentifier":{ + "shape":"String", + "documentation":"

The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from.

For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide.

Constraints:

  • Must match the identifier of an existing Multi-AZ DB cluster snapshot.

  • Can't be specified when DBSnapshotIdentifier is specified.

  • Must be specified when DBSnapshotIdentifier isn't specified.

  • If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot.

  • Can't be the identifier of an Aurora DB cluster snapshot.

  • Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot.

" } }, "documentation":"

" @@ -12415,7 +12944,7 @@ }, "Iops":{ "shape":"IntegerOptional", - "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to allocate initially for the DB instance. For information about valid Iops values, see Amazon RDS Provisioned IOPS Storage to Improve Performance in the Amazon RDS User Guide.

" + "documentation":"

The amount of Provisioned IOPS (input/output operations per second) to allocate initially for the DB instance. For information about valid IOPS values, see Amazon RDS Provisioned IOPS storage in the Amazon RDS User Guide.

" }, "OptionGroupName":{ "shape":"String", @@ -12431,7 +12960,7 @@ }, "StorageType":{ "shape":"String", - "documentation":"

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise gp2

" + "documentation":"

Specifies the storage type to be associated with the DB instance.

Valid values: gp2 | gp3 | io1 | standard

If you specify io1 or gp3, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified; otherwise gp2

" }, "StorageEncrypted":{ "shape":"BooleanOptional", @@ -12479,7 +13008,7 @@ }, "EnablePerformanceInsights":{ "shape":"BooleanOptional", - "documentation":"

A value that indicates whether to enable Performance Insights for the DB instance.

For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide..

" + "documentation":"

A value that indicates whether to enable Performance Insights for the DB instance.

For more information, see Using Amazon Performance Insights in the Amazon RDS User Guide.

" }, "PerformanceInsightsKMSKeyId":{ "shape":"String", @@ -12487,7 +13016,7 @@ }, "PerformanceInsightsRetentionPeriod":{ "shape":"IntegerOptional", - "documentation":"

The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years).

" + "documentation":"

The number of days to retain Performance Insights data. The default is 7 days. The following values are valid:

  • 7

  • month * 31, where month is a number of months from 1-23

  • 731

For example, the following values are valid:

  • 93 (3 months * 31)

  • 341 (11 months * 31)

  • 589 (19 months * 31)

  • 731

If you specify a retention period such as 94, which isn't a valid value, RDS issues an error.

" }, "EnableCloudwatchLogsExports":{ "shape":"LogTypeList", @@ -12512,6 +13041,10 @@ "NetworkType":{ "shape":"String", "documentation":"

The network type of the DB instance.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

Specifies the storage throughput value for the DB instance.

This setting doesn't apply to RDS Custom or Amazon Aurora.

" } } }, @@ -12596,7 +13129,7 @@ "Tags":{"shape":"TagList"}, "StorageType":{ "shape":"String", - "documentation":"

Specifies the storage type to be associated with the DB instance.

Valid values: standard | gp2 | io1

If you specify io1, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp2

" + "documentation":"

Specifies the storage type to be associated with the DB instance.

Valid values: gp2 | gp3 | io1 | standard

If you specify io1 or gp3, you must also include a value for the Iops parameter.

Default: io1 if the Iops parameter is specified, otherwise gp2

" }, "TdeCredentialArn":{ "shape":"String", @@ -12669,6 +13202,10 @@ "NetworkType":{ "shape":"String", "documentation":"

The network type of the DB instance.

Valid values:

  • IPV4

  • DUAL

The network type is determined by the DBSubnetGroup specified for the DB instance. A DBSubnetGroup can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (DUAL).

For more information, see Working with a DB instance in a VPC in the Amazon RDS User Guide.

" + }, + "StorageThroughput":{ + "shape":"IntegerOptional", + "documentation":"

Specifies the storage throughput value for the DB instance.

This setting doesn't apply to RDS Custom or Amazon Aurora.

" } }, "documentation":"

" @@ -12797,7 +13334,7 @@ "members":{ "MinCapacity":{ "shape":"IntegerOptional", - "documentation":"

The maximum capacity for the Aurora DB cluster in serverless DB engine mode.

" + "documentation":"

The minimum capacity for an Aurora DB cluster in serverless DB engine mode.

" }, "MaxCapacity":{ "shape":"IntegerOptional", @@ -12874,6 +13411,30 @@ }, "exception":true }, + "SourceClusterNotSupportedFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The source DB cluster isn't supported for a blue/green deployment.

", + "error":{ + "code":"SourceClusterNotSupportedFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SourceDatabaseNotSupportedFault":{ + "type":"structure", + "members":{ + }, + "documentation":"

The source DB instance isn't supported for a blue/green deployment.

", + "error":{ + "code":"SourceDatabaseNotSupportedFault", + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, "SourceIdsList":{ "type":"list", "member":{ @@ -12946,7 +13507,8 @@ "db-cluster", "db-cluster-snapshot", "custom-engine-version", - "db-proxy" + "db-proxy", + "blue-green-deployment" ] }, "StartActivityStreamRequest":{ @@ -13042,7 +13604,7 @@ }, "PreSignedUrl":{ "shape":"String", - "documentation":"

A URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication action to be called in the Amazon Web Services Region of the source DB instance. The presigned URL must be a valid request for the StartDBInstanceAutomatedBackupsReplication API action that can be executed in the Amazon Web Services Region that contains the source DB instance.

" + "documentation":"

In an Amazon Web Services GovCloud (US) Region, an URL that contains a Signature Version 4 signed request for the StartDBInstanceAutomatedBackupsReplication operation to call in the Amazon Web Services Region of the source DB instance. The presigned URL must be a valid request for the StartDBInstanceAutomatedBackupsReplication API operation that can run in the Amazon Web Services Region that contains the source DB instance.

This setting applies only to Amazon Web Services GovCloud (US) Regions. It's ignored in other Amazon Web Services Regions.

To learn how to generate a Signature Version 4 signed request, see Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version 4) and Signature Version 4 Signing Process.

If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl manually. Specifying SourceRegion autogenerates a presigned URL that is a valid request for the operation that can run in the source Amazon Web Services Region.

" } } }, @@ -13321,6 +13883,69 @@ "locationName":"Timezone" } }, + "SwitchoverBlueGreenDeploymentRequest":{ + "type":"structure", + "required":["BlueGreenDeploymentIdentifier"], + "members":{ + "BlueGreenDeploymentIdentifier":{ + "shape":"BlueGreenDeploymentIdentifier", + "documentation":"

The blue/green deployment identifier.

Constraints:

  • Must match an existing blue/green deployment identifier.

" + }, + "SwitchoverTimeout":{ + "shape":"SwitchoverTimeout", + "documentation":"

The amount of time, in seconds, for the switchover to complete. The default is 300.

If the switchover takes longer than the specified duration, then any changes are rolled back, and no changes are made to the environments.

" + } + } + }, + "SwitchoverBlueGreenDeploymentResponse":{ + "type":"structure", + "members":{ + "BlueGreenDeployment":{"shape":"BlueGreenDeployment"} + } + }, + "SwitchoverDetail":{ + "type":"structure", + "members":{ + "SourceMember":{ + "shape":"DatabaseArn", + "documentation":"

The Amazon Resource Name (ARN) of a resource in the blue environment.

" + }, + "TargetMember":{ + "shape":"DatabaseArn", + "documentation":"

The Amazon Resource Name (ARN) of a resource in the green environment.

" + }, + "Status":{ + "shape":"SwitchoverDetailStatus", + "documentation":"

The switchover status of a resource in a blue/green deployment.

Values:

  • preparing-for-switchover - The resource is being prepared to switch over.

  • ready-for-switchover - The resource is ready to switch over.

  • switchover-in-progress - The resource is being switched over.

  • switchover-completed - The resource has been switched over.

  • switchover-failed - The resource attempted to switch over but failed.

" + } + }, + "documentation":"

Contains the details about a blue/green deployment.

For more information, see Using Amazon RDS Blue/Green Deployments for database updates in the Amazon RDS User Guide and Using Amazon RDS Blue/Green Deployments for database updates in the Amazon Aurora User Guide.

" + }, + "SwitchoverDetailList":{ + "type":"list", + "member":{"shape":"SwitchoverDetail"} + }, + "SwitchoverDetailStatus":{"type":"string"}, + "SwitchoverReadReplicaMessage":{ + "type":"structure", + "required":["DBInstanceIdentifier"], + "members":{ + "DBInstanceIdentifier":{ + "shape":"String", + "documentation":"

The DB instance identifier of the current standby database. This value is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing Oracle read replica DB instance.

" + } + } + }, + "SwitchoverReadReplicaResult":{ + "type":"structure", + "members":{ + "DBInstance":{"shape":"DBInstance"} + } + }, + "SwitchoverTimeout":{ + "type":"integer", + "min":30 + }, "TStamp":{"type":"timestamp"}, "Tag":{ "type":"structure", @@ -13334,7 +13959,7 @@ "documentation":"

A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with aws: or rds:. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").

" } }, - "documentation":"

Metadata assigned to an Amazon RDS resource consisting of a key-value pair.

" + "documentation":"

Metadata assigned to an Amazon RDS resource consisting of a key-value pair.

For more information, see Tagging Amazon RDS Resources in the Amazon RDS User Guide.

" }, "TagList":{ "type":"list", @@ -13354,6 +13979,24 @@ }, "documentation":"

" }, + "TargetDBClusterParameterGroupName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[A-Za-z](?!.*--)[0-9A-Za-z-]*[^-]|^default(?!.*--)(?!.*\\.\\.)[0-9A-Za-z-.]*[^-]" + }, + "TargetDBParameterGroupName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"[A-Za-z](?!.*--)[0-9A-Za-z-]*[^-]|^default(?!.*--)(?!.*\\.\\.)[0-9A-Za-z-.]*[^-]" + }, + "TargetEngineVersion":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[0-9A-Za-z-_.]+" + }, "TargetGroupList":{ "type":"list", "member":{"shape":"DBProxyTargetGroup"} @@ -13487,7 +14130,7 @@ }, "IAMAuth":{ "shape":"IAMAuthMode", - "documentation":"

Whether to require or disallow Amazon Web Services Identity and Access Management (IAM) authentication for connections to the proxy.

" + "documentation":"

Whether to require or disallow Amazon Web Services Identity and Access Management (IAM) authentication for connections to the proxy. The ENABLED value is valid only for proxies with RDS for Microsoft SQL Server.

" } }, "documentation":"

Specifies the details of authentication used by a proxy to log in as a specific database user.

" @@ -13513,7 +14156,7 @@ }, "IAMAuth":{ "shape":"IAMAuthMode", - "documentation":"

Whether to require or disallow Amazon Web Services Identity and Access Management (IAM) authentication for connections to the proxy.

" + "documentation":"

Whether to require or disallow Amazon Web Services Identity and Access Management (IAM) authentication for connections to the proxy. The ENABLED value is valid only for proxies with RDS for Microsoft SQL Server.

" } }, "documentation":"

Returns the details of authentication used by a proxy to log in as a specific database user.

" @@ -13546,15 +14189,15 @@ "members":{ "StorageType":{ "shape":"String", - "documentation":"

The valid storage types for your DB instance. For example, gp2, io1.

" + "documentation":"

The valid storage types for your DB instance. For example: gp2, gp3, io1.

" }, "StorageSize":{ "shape":"RangeList", - "documentation":"

The valid range of storage in gibibytes (GiB). For example, 100 to 16384.

" + "documentation":"

The valid range of storage in gibibytes (GiB). For example, 100 to 16,384.

" }, "ProvisionedIops":{ "shape":"RangeList", - "documentation":"

The valid range of provisioned IOPS. For example, 1000-20000.

" + "documentation":"

The valid range of provisioned IOPS. For example, 1000-256,000.

" }, "IopsToStorageRatio":{ "shape":"DoubleRangeList", @@ -13563,6 +14206,14 @@ "SupportsStorageAutoscaling":{ "shape":"Boolean", "documentation":"

Whether or not Amazon RDS can automatically scale storage for DB instances that use the new instance class.

" + }, + "ProvisionedStorageThroughput":{ + "shape":"RangeList", + "documentation":"

The valid range of provisioned storage throughput. For example, 500-4,000 mebibytes per second (MiBps).

" + }, + "StorageThroughputToIopsRatio":{ + "shape":"DoubleRangeList", + "documentation":"

The valid range of storage throughput to provisioned IOPS ratios. For example, 0-0.25.

" } }, "documentation":"

Information about valid modifications that you can make to your DB instance. Contains the result of a successful call to the DescribeValidDBInstanceModifications action.

" @@ -13597,7 +14248,7 @@ }, "Status":{ "shape":"String", - "documentation":"

The status of the VPC security group.

" + "documentation":"

The membership status of the VPC security group.

Currently, the only valid status is active.

" } }, "documentation":"

This data type is used as a response element for queries on VPC security group membership.

" diff --git a/botocore/data/rds/2014-10-31/waiters-2.json b/botocore/data/rds/2014-10-31/waiters-2.json index 57accf12..c510617a 100644 --- a/botocore/data/rds/2014-10-31/waiters-2.json +++ b/botocore/data/rds/2014-10-31/waiters-2.json @@ -256,6 +256,91 @@ } ] }, + "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" + } + ] + }, "DBSnapshotCompleted": { "delay": 15, "operation": "DescribeDBSnapshots", diff --git a/botocore/data/redshift-data/2019-12-20/endpoint-rule-set-1.json b/botocore/data/redshift-data/2019-12-20/endpoint-rule-set-1.json new file mode 100644 index 00000000..c136deb3 --- /dev/null +++ b/botocore/data/redshift-data/2019-12-20/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-data-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-data-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-data.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://redshift-data.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/redshift-data/2019-12-20/examples-1.json b/botocore/data/redshift-data/2019-12-20/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/redshift-data/2019-12-20/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/redshift-data/2019-12-20/service-2.json b/botocore/data/redshift-data/2019-12-20/service-2.json index 6012e59c..371ee4b6 100644 --- a/botocore/data/redshift-data/2019-12-20/service-2.json +++ b/botocore/data/redshift-data/2019-12-20/service-2.json @@ -26,7 +26,7 @@ {"shape":"ActiveStatementsExceededException"}, {"shape":"BatchExecuteStatementException"} ], - "documentation":"

Runs one or more SQL statements, which can be data manipulation language (DML) or data definition language (DDL). Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless endpoint, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless endpoint, specify the database name.

" + "documentation":"

Runs one or more SQL statements, which can be data manipulation language (DML) or data definition language (DDL). Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

" }, "CancelStatement":{ "name":"CancelStatement", @@ -72,7 +72,7 @@ {"shape":"InternalServerException"}, {"shape":"DatabaseConnectionException"} ], - "documentation":"

Describes the detailed information about a table from metadata in the cluster. The information includes its columns. A token is returned to page through the column list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless endpoint, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless endpoint, specify the database name.

" + "documentation":"

Describes the detailed information about a table from metadata in the cluster. The information includes its columns. A token is returned to page through the column list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

" }, "ExecuteStatement":{ "name":"ExecuteStatement", @@ -87,7 +87,7 @@ {"shape":"ExecuteStatementException"}, {"shape":"ActiveStatementsExceededException"} ], - "documentation":"

Runs an SQL statement, which can be data manipulation language (DML) or data definition language (DDL). This statement must be a single SQL statement. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless endpoint, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless endpoint, specify the database name.

" + "documentation":"

Runs an SQL statement, which can be data manipulation language (DML) or data definition language (DDL). This statement must be a single SQL statement. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

" }, "GetStatementResult":{ "name":"GetStatementResult", @@ -117,7 +117,7 @@ {"shape":"InternalServerException"}, {"shape":"DatabaseConnectionException"} ], - "documentation":"

List the databases in a cluster. A token is returned to page through the database list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless endpoint, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless endpoint, specify the database name.

" + "documentation":"

List the databases in a cluster. A token is returned to page through the database list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

" }, "ListSchemas":{ "name":"ListSchemas", @@ -132,7 +132,7 @@ {"shape":"InternalServerException"}, {"shape":"DatabaseConnectionException"} ], - "documentation":"

Lists the schemas in a database. A token is returned to page through the schema list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless endpoint, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless endpoint, specify the database name.

" + "documentation":"

Lists the schemas in a database. A token is returned to page through the schema list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

" }, "ListStatements":{ "name":"ListStatements", @@ -161,7 +161,7 @@ {"shape":"InternalServerException"}, {"shape":"DatabaseConnectionException"} ], - "documentation":"

List the tables in a database. If neither SchemaPattern nor TablePattern are specified, then all tables in the database are returned. A token is returned to page through the table list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless endpoint, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless endpoint, specify the database name.

" + "documentation":"

List the tables in a database. If neither SchemaPattern nor TablePattern are specified, then all tables in the database are returned. A token is returned to page through the table list. Depending on the authorization method, use one of the following combinations of request parameters:

  • Secrets Manager - when connecting to a cluster, specify the Amazon Resource Name (ARN) of the secret, the database name, and the cluster identifier that matches the cluster in the secret. When connecting to a serverless workgroup, specify the Amazon Resource Name (ARN) of the secret and the database name.

  • Temporary credentials - when connecting to a cluster, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required. When connecting to a serverless workgroup, specify the workgroup name and database name. Also, permission to call the redshift-serverless:GetCredentials operation is required.

" } }, "shapes":{ @@ -224,6 +224,10 @@ "WithEvent":{ "shape":"Boolean", "documentation":"

A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statements run.

" + }, + "WorkgroupName":{ + "shape":"WorkgroupNameString", + "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -232,7 +236,7 @@ "members":{ "ClusterIdentifier":{ "shape":"Location", - "documentation":"

The cluster identifier. This parameter is not returned when connecting to a serverless endpoint.

" + "documentation":"

The cluster identifier. This element is not returned when connecting to a serverless workgroup.

" }, "CreatedAt":{ "shape":"Timestamp", @@ -253,6 +257,10 @@ "SecretArn":{ "shape":"SecretArn", "documentation":"

The name or ARN of the secret that enables access to the database.

" + }, + "WorkgroupName":{ + "shape":"WorkgroupNameString", + "documentation":"

The serverless workgroup name. This element is not returned when connecting to a provisioned cluster.

" } } }, @@ -457,6 +465,10 @@ "UpdatedAt":{ "shape":"Timestamp", "documentation":"

The date and time (UTC) that the metadata for the SQL statement was last updated. An example is the time the status last changed.

" + }, + "WorkgroupName":{ + "shape":"WorkgroupNameString", + "documentation":"

The serverless workgroup name.

" } } }, @@ -499,6 +511,10 @@ "Table":{ "shape":"String", "documentation":"

The table name. If no table is specified, then all tables for all matching schemas are returned. If no table and no schema is specified, then all tables for all schemas in the database are returned

" + }, + "WorkgroupName":{ + "shape":"WorkgroupNameString", + "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -577,6 +593,10 @@ "WithEvent":{ "shape":"Boolean", "documentation":"

A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statement runs.

" + }, + "WorkgroupName":{ + "shape":"WorkgroupNameString", + "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -585,7 +605,7 @@ "members":{ "ClusterIdentifier":{ "shape":"Location", - "documentation":"

The cluster identifier. This parameter is not returned when connecting to a serverless endpoint.

" + "documentation":"

The cluster identifier. This element is not returned when connecting to a serverless workgroup.

" }, "CreatedAt":{ "shape":"Timestamp", @@ -606,6 +626,10 @@ "SecretArn":{ "shape":"SecretArn", "documentation":"

The name or ARN of the secret that enables access to the database.

" + }, + "WorkgroupName":{ + "shape":"WorkgroupNameString", + "documentation":"

The serverless workgroup name. This element is not returned when connecting to a provisioned cluster.

" } } }, @@ -721,6 +745,10 @@ "SecretArn":{ "shape":"SecretArn", "documentation":"

The name or ARN of the secret that enables access to the database. This parameter is required when authenticating using Secrets Manager.

" + }, + "WorkgroupName":{ + "shape":"WorkgroupNameString", + "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -772,6 +800,10 @@ "SecretArn":{ "shape":"SecretArn", "documentation":"

The name or ARN of the secret that enables access to the database. This parameter is required when authenticating using Secrets Manager.

" + }, + "WorkgroupName":{ + "shape":"WorkgroupNameString", + "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -871,6 +903,10 @@ "TablePattern":{ "shape":"String", "documentation":"

A pattern to filter results by table name. Within a table pattern, \"%\" means match any substring of 0 or more characters and \"_\" means match any one character. Only table name entries matching the search pattern are returned. If TablePattern is not specified, then all tables that match SchemaPatternare returned. If neither SchemaPattern or TablePattern are specified, then all tables are returned.

" + }, + "WorkgroupName":{ + "shape":"WorkgroupNameString", + "documentation":"

The serverless workgroup name. This parameter is required when connecting to a serverless workgroup and authenticating using either Secrets Manager or temporary credentials.

" } } }, @@ -1137,7 +1173,13 @@ "documentation":"

The Amazon Redshift Data API operation failed due to invalid input.

", "exception":true }, + "WorkgroupNameString":{ + "type":"string", + "max":64, + "min":3, + "pattern":"^[a-z0-9-]+$" + }, "bool":{"type":"boolean"} }, - "documentation":"

You can use the Amazon Redshift Data API to run queries on Amazon Redshift tables. You can run SQL statements, which are committed if the statement succeeds.

For more information about the Amazon Redshift Data API, see Using the Amazon Redshift Data API in the Amazon Redshift Cluster Management Guide.

" + "documentation":"

You can use the Amazon Redshift Data API to run queries on Amazon Redshift tables. You can run SQL statements, which are committed if the statement succeeds.

For more information about the Amazon Redshift Data API and CLI usage examples, see Using the Amazon Redshift Data API in the Amazon Redshift Cluster Management Guide.

" } diff --git a/botocore/data/redshift-serverless/2021-04-21/endpoint-rule-set-1.json b/botocore/data/redshift-serverless/2021-04-21/endpoint-rule-set-1.json new file mode 100644 index 00000000..b23fa588 --- /dev/null +++ b/botocore/data/redshift-serverless/2021-04-21/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-serverless-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-serverless-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-serverless.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://redshift-serverless.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/redshift-serverless/2021-04-21/paginators-1.json b/botocore/data/redshift-serverless/2021-04-21/paginators-1.json new file mode 100644 index 00000000..54999421 --- /dev/null +++ b/botocore/data/redshift-serverless/2021-04-21/paginators-1.json @@ -0,0 +1,46 @@ +{ + "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" + } + } +} diff --git a/botocore/data/redshift-serverless/2021-04-21/service-2.json b/botocore/data/redshift-serverless/2021-04-21/service-2.json new file mode 100644 index 00000000..970f1bbb --- /dev/null +++ b/botocore/data/redshift-serverless/2021-04-21/service-2.json @@ -0,0 +1,2735 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-04-21", + "endpointPrefix":"redshift-serverless", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"Redshift Serverless", + "serviceId":"Redshift Serverless", + "signatureVersion":"v4", + "signingName":"redshift-serverless", + "targetPrefix":"RedshiftServerless", + "uid":"redshift-serverless-2021-04-21" + }, + "operations":{ + "ConvertRecoveryPointToSnapshot":{ + "name":"ConvertRecoveryPointToSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConvertRecoveryPointToSnapshotRequest"}, + "output":{"shape":"ConvertRecoveryPointToSnapshotResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"TooManyTagsException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Converts a recovery point to a snapshot. For more information about recovery points and snapshots, see Working with snapshots and recovery points.

" + }, + "CreateEndpointAccess":{ + "name":"CreateEndpointAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEndpointAccessRequest"}, + "output":{"shape":"CreateEndpointAccessResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates an Amazon Redshift Serverless managed VPC endpoint.

", + "idempotent":true + }, + "CreateNamespace":{ + "name":"CreateNamespace", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateNamespaceRequest"}, + "output":{"shape":"CreateNamespaceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"TooManyTagsException"} + ], + "documentation":"

Creates a namespace in Amazon Redshift Serverless.

", + "idempotent":true + }, + "CreateSnapshot":{ + "name":"CreateSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSnapshotRequest"}, + "output":{"shape":"CreateSnapshotResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"TooManyTagsException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a snapshot of all databases in a namespace. For more information about snapshots, see Working with snapshots and recovery points.

", + "idempotent":true + }, + "CreateUsageLimit":{ + "name":"CreateUsageLimit", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUsageLimitRequest"}, + "output":{"shape":"CreateUsageLimitResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a usage limit for a specified Amazon Redshift Serverless usage type. The usage limit is identified by the returned usage limit identifier.

", + "idempotent":true + }, + "CreateWorkgroup":{ + "name":"CreateWorkgroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWorkgroupRequest"}, + "output":{"shape":"CreateWorkgroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InsufficientCapacityException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"TooManyTagsException"} + ], + "documentation":"

Creates an workgroup in Amazon Redshift Serverless.

", + "idempotent":true + }, + "DeleteEndpointAccess":{ + "name":"DeleteEndpointAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEndpointAccessRequest"}, + "output":{"shape":"DeleteEndpointAccessResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes an Amazon Redshift Serverless managed VPC endpoint.

", + "idempotent":true + }, + "DeleteNamespace":{ + "name":"DeleteNamespace", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteNamespaceRequest"}, + "output":{"shape":"DeleteNamespaceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a namespace from Amazon Redshift Serverless. Before you delete the namespace, you can create a final snapshot that has all of the data within the namespace.

", + "idempotent":true + }, + "DeleteResourcePolicy":{ + "name":"DeleteResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteResourcePolicyRequest"}, + "output":{"shape":"DeleteResourcePolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes the specified resource policy.

" + }, + "DeleteSnapshot":{ + "name":"DeleteSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSnapshotRequest"}, + "output":{"shape":"DeleteSnapshotResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a snapshot from Amazon Redshift Serverless.

", + "idempotent":true + }, + "DeleteUsageLimit":{ + "name":"DeleteUsageLimit", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUsageLimitRequest"}, + "output":{"shape":"DeleteUsageLimitResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a usage limit from Amazon Redshift Serverless.

", + "idempotent":true + }, + "DeleteWorkgroup":{ + "name":"DeleteWorkgroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteWorkgroupRequest"}, + "output":{"shape":"DeleteWorkgroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a workgroup.

", + "idempotent":true + }, + "GetCredentials":{ + "name":"GetCredentials", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCredentialsRequest"}, + "output":{"shape":"GetCredentialsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns a database user name and temporary password with temporary authorization to log in to Amazon Redshift Serverless.

By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes).

 <p>The Identity and Access Management (IAM) user or role that runs GetCredentials must have an IAM policy attached that allows access to all necessary actions and resources.</p> <p>If the <code>DbName</code> parameter is specified, the IAM policy must allow access to the resource dbname for the specified database name.</p> 
" + }, + "GetEndpointAccess":{ + "name":"GetEndpointAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetEndpointAccessRequest"}, + "output":{"shape":"GetEndpointAccessResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information, such as the name, about a VPC endpoint.

" + }, + "GetNamespace":{ + "name":"GetNamespace", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetNamespaceRequest"}, + "output":{"shape":"GetNamespaceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a namespace in Amazon Redshift Serverless.

" + }, + "GetRecoveryPoint":{ + "name":"GetRecoveryPoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetRecoveryPointRequest"}, + "output":{"shape":"GetRecoveryPointResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a recovery point.

" + }, + "GetResourcePolicy":{ + "name":"GetResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourcePolicyRequest"}, + "output":{"shape":"GetResourcePolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns a resource policy.

" + }, + "GetSnapshot":{ + "name":"GetSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSnapshotRequest"}, + "output":{"shape":"GetSnapshotResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a specific snapshot.

" + }, + "GetTableRestoreStatus":{ + "name":"GetTableRestoreStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetTableRestoreStatusRequest"}, + "output":{"shape":"GetTableRestoreStatusResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a TableRestoreStatus object.

" + }, + "GetUsageLimit":{ + "name":"GetUsageLimit", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUsageLimitRequest"}, + "output":{"shape":"GetUsageLimitResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a usage limit.

" + }, + "GetWorkgroup":{ + "name":"GetWorkgroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetWorkgroupRequest"}, + "output":{"shape":"GetWorkgroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a specific workgroup.

" + }, + "ListEndpointAccess":{ + "name":"ListEndpointAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListEndpointAccessRequest"}, + "output":{"shape":"ListEndpointAccessResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns an array of EndpointAccess objects and relevant information.

" + }, + "ListNamespaces":{ + "name":"ListNamespaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListNamespacesRequest"}, + "output":{"shape":"ListNamespacesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a list of specified namespaces.

" + }, + "ListRecoveryPoints":{ + "name":"ListRecoveryPoints", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListRecoveryPointsRequest"}, + "output":{"shape":"ListRecoveryPointsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns an array of recovery points.

" + }, + "ListSnapshots":{ + "name":"ListSnapshots", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSnapshotsRequest"}, + "output":{"shape":"ListSnapshotsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns a list of snapshots.

" + }, + "ListTableRestoreStatus":{ + "name":"ListTableRestoreStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTableRestoreStatusRequest"}, + "output":{"shape":"ListTableRestoreStatusResponse"}, + "errors":[ + {"shape":"InvalidPaginationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about an array of TableRestoreStatus objects.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists the tags assigned to a resource.

" + }, + "ListUsageLimits":{ + "name":"ListUsageLimits", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUsageLimitsRequest"}, + "output":{"shape":"ListUsageLimitsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InvalidPaginationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists all usage limits within Amazon Redshift Serverless.

" + }, + "ListWorkgroups":{ + "name":"ListWorkgroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListWorkgroupsRequest"}, + "output":{"shape":"ListWorkgroupsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns information about a list of specified workgroups.

" + }, + "PutResourcePolicy":{ + "name":"PutResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutResourcePolicyRequest"}, + "output":{"shape":"PutResourcePolicyResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates or updates a resource policy. Currently, you can use policies to share snapshots across Amazon Web Services accounts.

" + }, + "RestoreFromRecoveryPoint":{ + "name":"RestoreFromRecoveryPoint", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreFromRecoveryPointRequest"}, + "output":{"shape":"RestoreFromRecoveryPointResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Restore the data from a recovery point.

" + }, + "RestoreFromSnapshot":{ + "name":"RestoreFromSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreFromSnapshotRequest"}, + "output":{"shape":"RestoreFromSnapshotResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Restores a namespace from a snapshot.

", + "idempotent":true + }, + "RestoreTableFromSnapshot":{ + "name":"RestoreTableFromSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RestoreTableFromSnapshotRequest"}, + "output":{"shape":"RestoreTableFromSnapshotResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Restores a table from a snapshot to your Amazon Redshift Serverless instance.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"TooManyTagsException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Assigns one or more tags to a resource.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Removes a tag or set of tags from a resource.

" + }, + "UpdateEndpointAccess":{ + "name":"UpdateEndpointAccess", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateEndpointAccessRequest"}, + "output":{"shape":"UpdateEndpointAccessResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates an Amazon Redshift Serverless managed endpoint.

" + }, + "UpdateNamespace":{ + "name":"UpdateNamespace", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateNamespaceRequest"}, + "output":{"shape":"UpdateNamespaceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates a namespace with the specified settings.

" + }, + "UpdateSnapshot":{ + "name":"UpdateSnapshot", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSnapshotRequest"}, + "output":{"shape":"UpdateSnapshotResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates a snapshot.

" + }, + "UpdateUsageLimit":{ + "name":"UpdateUsageLimit", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUsageLimitRequest"}, + "output":{"shape":"UpdateUsageLimitResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Update a usage limit in Amazon Redshift Serverless. You can't update the usage type or period of a usage limit.

" + }, + "UpdateWorkgroup":{ + "name":"UpdateWorkgroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateWorkgroupRequest"}, + "output":{"shape":"UpdateWorkgroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"InsufficientCapacityException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates a workgroup with the specified configuration settings.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "code":{"shape":"String"}, + "message":{"shape":"String"} + }, + "documentation":"

You do not have sufficient access to perform this action.

", + "exception":true + }, + "AccountIdList":{ + "type":"list", + "member":{"shape":"String"} + }, + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1 + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ConfigParameter":{ + "type":"structure", + "members":{ + "parameterKey":{ + "shape":"ParameterKey", + "documentation":"

The key of the parameter. The options are datestyle, enable_user_activity_logging, query_group, search_path, and max_query_execution_time.

" + }, + "parameterValue":{ + "shape":"ParameterValue", + "documentation":"

The value of the parameter to set.

" + } + }, + "documentation":"

An array of key-value pairs to set for advanced control over Amazon Redshift Serverless.

" + }, + "ConfigParameterList":{ + "type":"list", + "member":{"shape":"ConfigParameter"} + }, + "ConflictException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The submitted action has conflicts.

", + "exception":true + }, + "ConvertRecoveryPointToSnapshotRequest":{ + "type":"structure", + "required":[ + "recoveryPointId", + "snapshotName" + ], + "members":{ + "recoveryPointId":{ + "shape":"String", + "documentation":"

The unique identifier of the recovery point.

" + }, + "retentionPeriod":{ + "shape":"Integer", + "documentation":"

How long to retain the snapshot.

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

An array of Tag objects to associate with the created snapshot.

" + } + } + }, + "ConvertRecoveryPointToSnapshotResponse":{ + "type":"structure", + "members":{ + "snapshot":{ + "shape":"Snapshot", + "documentation":"

The snapshot converted from the recovery point.

" + } + } + }, + "CreateEndpointAccessRequest":{ + "type":"structure", + "required":[ + "endpointName", + "subnetIds", + "workgroupName" + ], + "members":{ + "endpointName":{ + "shape":"String", + "documentation":"

The name of the VPC endpoint. An endpoint name must contain 1-30 characters. Valid characters are A-Z, a-z, 0-9, and hyphen(-). The first character must be a letter. The name can't contain two consecutive hyphens or end with a hyphen.

" + }, + "subnetIds":{ + "shape":"SubnetIdList", + "documentation":"

The unique identifers of subnets from which Amazon Redshift Serverless chooses one to deploy a VPC endpoint.

" + }, + "vpcSecurityGroupIds":{ + "shape":"VpcSecurityGroupIdList", + "documentation":"

The unique identifiers of the security group that defines the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint.

" + }, + "workgroupName":{ + "shape":"String", + "documentation":"

The name of the workgroup to associate with the VPC endpoint.

" + } + } + }, + "CreateEndpointAccessResponse":{ + "type":"structure", + "members":{ + "endpoint":{ + "shape":"EndpointAccess", + "documentation":"

The created VPC endpoint.

" + } + } + }, + "CreateNamespaceRequest":{ + "type":"structure", + "required":["namespaceName"], + "members":{ + "adminUserPassword":{ + "shape":"DbPassword", + "documentation":"

The password of the administrator for the first database created in the namespace.

" + }, + "adminUsername":{ + "shape":"DbUser", + "documentation":"

The username of the administrator for the first database created in the namespace.

" + }, + "dbName":{ + "shape":"String", + "documentation":"

The name of the first database created in the namespace.

" + }, + "defaultIamRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to set as a default in the namespace.

" + }, + "iamRoles":{ + "shape":"IamRoleArnList", + "documentation":"

A list of IAM roles to associate with the namespace.

" + }, + "kmsKeyId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Key Management Service key used to encrypt your data.

" + }, + "logExports":{ + "shape":"LogExportList", + "documentation":"

The types of logs the namespace can export. Available export types are userlog, connectionlog, and useractivitylog.

" + }, + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

A list of tag instances.

" + } + } + }, + "CreateNamespaceResponse":{ + "type":"structure", + "members":{ + "namespace":{ + "shape":"Namespace", + "documentation":"

The created namespace object.

" + } + } + }, + "CreateSnapshotRequest":{ + "type":"structure", + "required":[ + "namespaceName", + "snapshotName" + ], + "members":{ + "namespaceName":{ + "shape":"String", + "documentation":"

The namespace to create a snapshot for.

" + }, + "retentionPeriod":{ + "shape":"Integer", + "documentation":"

How long to retain the created snapshot.

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

An array of Tag objects to associate with the snapshot.

" + } + } + }, + "CreateSnapshotResponse":{ + "type":"structure", + "members":{ + "snapshot":{ + "shape":"Snapshot", + "documentation":"

The created snapshot object.

" + } + } + }, + "CreateUsageLimitRequest":{ + "type":"structure", + "required":[ + "amount", + "resourceArn", + "usageType" + ], + "members":{ + "amount":{ + "shape":"Long", + "documentation":"

The limit amount. If time-based, this amount is in Redshift Processing Units (RPU) consumed per hour. If data-based, this amount is in terabytes (TB) of data transferred between Regions in cross-account sharing. The value must be a positive number.

" + }, + "breachAction":{ + "shape":"UsageLimitBreachAction", + "documentation":"

The action that Amazon Redshift Serverless takes when the limit is reached. The default is log.

" + }, + "period":{ + "shape":"UsageLimitPeriod", + "documentation":"

The time period that the amount applies to. A weekly period begins on Sunday. The default is monthly.

" + }, + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Redshift Serverless resource to create the usage limit for.

" + }, + "usageType":{ + "shape":"UsageLimitUsageType", + "documentation":"

The type of Amazon Redshift Serverless usage to create a usage limit for.

" + } + } + }, + "CreateUsageLimitResponse":{ + "type":"structure", + "members":{ + "usageLimit":{ + "shape":"UsageLimit", + "documentation":"

The returned usage limit object.

" + } + } + }, + "CreateWorkgroupRequest":{ + "type":"structure", + "required":[ + "namespaceName", + "workgroupName" + ], + "members":{ + "baseCapacity":{ + "shape":"Integer", + "documentation":"

The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs).

" + }, + "configParameters":{ + "shape":"ConfigParameterList", + "documentation":"

An array of parameters to set for more control over a serverless database. The options are datestyle, enable_user_activity_logging, query_group, search_path, and max_query_execution_time.

" + }, + "enhancedVpcRouting":{ + "shape":"Boolean", + "documentation":"

The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the internet.

" + }, + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace to associate with the workgroup.

" + }, + "port":{ + "shape":"Integer", + "documentation":"

The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439.

" + }, + "publiclyAccessible":{ + "shape":"Boolean", + "documentation":"

A value that specifies whether the workgroup can be accessed from a public network.

" + }, + "securityGroupIds":{ + "shape":"SecurityGroupIdList", + "documentation":"

An array of security group IDs to associate with the workgroup.

" + }, + "subnetIds":{ + "shape":"SubnetIdList", + "documentation":"

An array of VPC subnet IDs to associate with the workgroup.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

A array of tag instances.

" + }, + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of the created workgroup.

" + } + } + }, + "CreateWorkgroupResponse":{ + "type":"structure", + "members":{ + "workgroup":{ + "shape":"Workgroup", + "documentation":"

The created workgroup object.

" + } + } + }, + "DbName":{"type":"string"}, + "DbPassword":{ + "type":"string", + "sensitive":true + }, + "DbUser":{ + "type":"string", + "sensitive":true + }, + "DeleteEndpointAccessRequest":{ + "type":"structure", + "required":["endpointName"], + "members":{ + "endpointName":{ + "shape":"String", + "documentation":"

The name of the VPC endpoint to delete.

" + } + } + }, + "DeleteEndpointAccessResponse":{ + "type":"structure", + "members":{ + "endpoint":{ + "shape":"EndpointAccess", + "documentation":"

The deleted VPC endpoint.

" + } + } + }, + "DeleteNamespaceRequest":{ + "type":"structure", + "required":["namespaceName"], + "members":{ + "finalSnapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot to be created before the namespace is deleted.

" + }, + "finalSnapshotRetentionPeriod":{ + "shape":"Integer", + "documentation":"

How long to retain the final snapshot.

" + }, + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace to delete.

" + } + } + }, + "DeleteNamespaceResponse":{ + "type":"structure", + "required":["namespace"], + "members":{ + "namespace":{ + "shape":"Namespace", + "documentation":"

The deleted namespace object.

" + } + } + }, + "DeleteResourcePolicyRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the policy to delete.

" + } + } + }, + "DeleteResourcePolicyResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteSnapshotRequest":{ + "type":"structure", + "required":["snapshotName"], + "members":{ + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot to be deleted.

" + } + } + }, + "DeleteSnapshotResponse":{ + "type":"structure", + "members":{ + "snapshot":{ + "shape":"Snapshot", + "documentation":"

The deleted snapshot object.

" + } + } + }, + "DeleteUsageLimitRequest":{ + "type":"structure", + "required":["usageLimitId"], + "members":{ + "usageLimitId":{ + "shape":"String", + "documentation":"

The unique identifier of the usage limit to delete.

" + } + } + }, + "DeleteUsageLimitResponse":{ + "type":"structure", + "members":{ + "usageLimit":{ + "shape":"UsageLimit", + "documentation":"

The deleted usage limit object.

" + } + } + }, + "DeleteWorkgroupRequest":{ + "type":"structure", + "required":["workgroupName"], + "members":{ + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of the workgroup to be deleted.

" + } + } + }, + "DeleteWorkgroupResponse":{ + "type":"structure", + "required":["workgroup"], + "members":{ + "workgroup":{ + "shape":"Workgroup", + "documentation":"

The deleted workgroup object.

" + } + } + }, + "Double":{ + "type":"double", + "box":true + }, + "Endpoint":{ + "type":"structure", + "members":{ + "address":{ + "shape":"String", + "documentation":"

The DNS address of the VPC endpoint.

" + }, + "port":{ + "shape":"Integer", + "documentation":"

The port that Amazon Redshift Serverless listens on.

" + }, + "vpcEndpoints":{ + "shape":"VpcEndpointList", + "documentation":"

An array of VpcEndpoint objects.

" + } + }, + "documentation":"

The VPC endpoint object.

" + }, + "EndpointAccess":{ + "type":"structure", + "members":{ + "address":{ + "shape":"String", + "documentation":"

The DNS address of the endpoint.

" + }, + "endpointArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the VPC endpoint.

" + }, + "endpointCreateTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time that the endpoint was created.

" + }, + "endpointName":{ + "shape":"String", + "documentation":"

The name of the VPC endpoint.

" + }, + "endpointStatus":{ + "shape":"String", + "documentation":"

The status of the VPC endpoint.

" + }, + "port":{ + "shape":"Integer", + "documentation":"

The port number on which Amazon Redshift Serverless accepts incoming connections.

" + }, + "subnetIds":{ + "shape":"SubnetIdList", + "documentation":"

The unique identifier of subnets where Amazon Redshift Serverless choose to deploy the VPC endpoint.

" + }, + "vpcEndpoint":{ + "shape":"VpcEndpoint", + "documentation":"

The connection endpoint for connecting to Amazon Redshift Serverless.

" + }, + "vpcSecurityGroups":{ + "shape":"VpcSecurityGroupMembershipList", + "documentation":"

The security groups associated with the endpoint.

" + }, + "workgroupName":{ + "shape":"String", + "documentation":"

The name of the workgroup associated with the endpoint.

" + } + }, + "documentation":"

Information about an Amazon Redshift Serverless VPC endpoint.

" + }, + "EndpointAccessList":{ + "type":"list", + "member":{"shape":"EndpointAccess"} + }, + "GetCredentialsRequest":{ + "type":"structure", + "required":["workgroupName"], + "members":{ + "dbName":{ + "shape":"DbName", + "documentation":"

The name of the database to get temporary authorization to log on to.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens.

  • Must contain only uppercase or lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • The first character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide

" + }, + "durationSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds until the returned temporary password expires. The minimum is 900 seconds, and the maximum is 3600 seconds.

" + }, + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of the workgroup associated with the database.

" + } + } + }, + "GetCredentialsResponse":{ + "type":"structure", + "members":{ + "dbPassword":{ + "shape":"DbPassword", + "documentation":"

A temporary password that authorizes the user name returned by DbUser to log on to the database DbName.

" + }, + "dbUser":{ + "shape":"DbUser", + "documentation":"

A database user name that is authorized to log on to the database DbName using the password DbPassword. If the specified DbUser exists in the database, the new user name has the same database privileges as the the user named in DbUser. By default, the user is added to PUBLIC.

" + }, + "expiration":{ + "shape":"Timestamp", + "documentation":"

The date and time the password in DbPassword expires.

" + }, + "nextRefreshTime":{ + "shape":"Timestamp", + "documentation":"

The date and time of when the DbUser and DbPassword authorization refreshes.

" + } + } + }, + "GetEndpointAccessRequest":{ + "type":"structure", + "required":["endpointName"], + "members":{ + "endpointName":{ + "shape":"String", + "documentation":"

The name of the VPC endpoint to return information for.

" + } + } + }, + "GetEndpointAccessResponse":{ + "type":"structure", + "members":{ + "endpoint":{ + "shape":"EndpointAccess", + "documentation":"

The returned VPC endpoint.

" + } + } + }, + "GetNamespaceRequest":{ + "type":"structure", + "required":["namespaceName"], + "members":{ + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace to retrieve information for.

" + } + } + }, + "GetNamespaceResponse":{ + "type":"structure", + "required":["namespace"], + "members":{ + "namespace":{ + "shape":"Namespace", + "documentation":"

The returned namespace object.

" + } + } + }, + "GetRecoveryPointRequest":{ + "type":"structure", + "required":["recoveryPointId"], + "members":{ + "recoveryPointId":{ + "shape":"String", + "documentation":"

The unique identifier of the recovery point to return information for.

" + } + } + }, + "GetRecoveryPointResponse":{ + "type":"structure", + "members":{ + "recoveryPoint":{ + "shape":"RecoveryPoint", + "documentation":"

The returned recovery point object.

" + } + } + }, + "GetResourcePolicyRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the resource to return.

" + } + } + }, + "GetResourcePolicyResponse":{ + "type":"structure", + "members":{ + "resourcePolicy":{ + "shape":"ResourcePolicy", + "documentation":"

The returned resource policy.

" + } + } + }, + "GetSnapshotRequest":{ + "type":"structure", + "members":{ + "ownerAccount":{ + "shape":"String", + "documentation":"

The owner Amazon Web Services account of a snapshot shared with another user.

" + }, + "snapshotArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the snapshot to return.

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot to return.

" + } + } + }, + "GetSnapshotResponse":{ + "type":"structure", + "members":{ + "snapshot":{ + "shape":"Snapshot", + "documentation":"

The returned snapshot object.

" + } + } + }, + "GetTableRestoreStatusRequest":{ + "type":"structure", + "required":["tableRestoreRequestId"], + "members":{ + "tableRestoreRequestId":{ + "shape":"String", + "documentation":"

The ID of the RestoreTableFromSnapshot request to return status for.

" + } + } + }, + "GetTableRestoreStatusResponse":{ + "type":"structure", + "members":{ + "tableRestoreStatus":{ + "shape":"TableRestoreStatus", + "documentation":"

The returned TableRestoreStatus object that contains information about the status of your RestoreTableFromSnapshot request.

" + } + } + }, + "GetUsageLimitRequest":{ + "type":"structure", + "required":["usageLimitId"], + "members":{ + "usageLimitId":{ + "shape":"String", + "documentation":"

The unique identifier of the usage limit to return information for.

" + } + } + }, + "GetUsageLimitResponse":{ + "type":"structure", + "members":{ + "usageLimit":{ + "shape":"UsageLimit", + "documentation":"

The returned usage limit object.

" + } + } + }, + "GetWorkgroupRequest":{ + "type":"structure", + "required":["workgroupName"], + "members":{ + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of the workgroup to return information for.

" + } + } + }, + "GetWorkgroupResponse":{ + "type":"structure", + "required":["workgroup"], + "members":{ + "workgroup":{ + "shape":"Workgroup", + "documentation":"

The returned workgroup object.

" + } + } + }, + "IamRoleArn":{"type":"string"}, + "IamRoleArnList":{ + "type":"list", + "member":{"shape":"IamRoleArn"} + }, + "InsufficientCapacityException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

There is an insufficient capacity to perform the action.

", + "exception":true, + "retryable":{"throttling":false} + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request processing has failed because of an unknown error, exception or failure.

", + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "InvalidPaginationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The provided pagination token is invalid.

", + "exception":true + }, + "KmsKeyId":{"type":"string"}, + "ListEndpointAccessRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListEndpointAccessRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to display the next page of results.

", + "box":true + }, + "nextToken":{ + "shape":"String", + "documentation":"

If your initial ListEndpointAccess operation returns a nextToken, you can include the returned nextToken in following ListEndpointAccess operations, which returns results in the next page.

" + }, + "vpcId":{ + "shape":"String", + "documentation":"

The unique identifier of the virtual private cloud with access to Amazon Redshift Serverless.

" + }, + "workgroupName":{ + "shape":"String", + "documentation":"

The name of the workgroup associated with the VPC endpoint to return.

" + } + } + }, + "ListEndpointAccessRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListEndpointAccessResponse":{ + "type":"structure", + "required":["endpoints"], + "members":{ + "endpoints":{ + "shape":"EndpointAccessList", + "documentation":"

The returned VPC endpoints.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListNamespacesRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListNamespacesRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to display the next page of results.

", + "box":true + }, + "nextToken":{ + "shape":"String", + "documentation":"

If your initial ListNamespaces operation returns a nextToken, you can include the returned nextToken in following ListNamespaces operations, which returns results in the next page.

" + } + } + }, + "ListNamespacesRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListNamespacesResponse":{ + "type":"structure", + "required":["namespaces"], + "members":{ + "namespaces":{ + "shape":"NamespaceList", + "documentation":"

The list of returned namespaces.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListRecoveryPointsRequest":{ + "type":"structure", + "members":{ + "endTime":{ + "shape":"Timestamp", + "documentation":"

The time when creation of the recovery point finished.

" + }, + "maxResults":{ + "shape":"ListRecoveryPointsRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to display the next page of results.

", + "box":true + }, + "namespaceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the namespace from which to list recovery points.

" + }, + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace to list recovery points for.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If your initial ListRecoveryPoints operation returns a nextToken, you can include the returned nextToken in following ListRecoveryPoints operations, which returns results in the next page.

" + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

The time when the recovery point's creation was initiated.

" + } + } + }, + "ListRecoveryPointsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListRecoveryPointsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + }, + "recoveryPoints":{ + "shape":"RecoveryPointList", + "documentation":"

The returned recovery point objects.

" + } + } + }, + "ListSnapshotsRequest":{ + "type":"structure", + "members":{ + "endTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp showing when the snapshot creation finished.

" + }, + "maxResults":{ + "shape":"ListSnapshotsRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to display the next page of results.

", + "box":true + }, + "namespaceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the namespace from which to list all snapshots.

" + }, + "namespaceName":{ + "shape":"String", + "documentation":"

The namespace from which to list all snapshots.

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + }, + "ownerAccount":{ + "shape":"String", + "documentation":"

The owner Amazon Web Services account of the snapshot.

" + }, + "startTime":{ + "shape":"Timestamp", + "documentation":"

The time when the creation of the snapshot was initiated.

" + } + } + }, + "ListSnapshotsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListSnapshotsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + }, + "snapshots":{ + "shape":"SnapshotList", + "documentation":"

All of the returned snapshot objects.

" + } + } + }, + "ListTableRestoreStatusRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListTableRestoreStatusRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to display the next page of results.

", + "box":true + }, + "namespaceName":{ + "shape":"String", + "documentation":"

The namespace from which to list all of the statuses of RestoreTableFromSnapshot operations .

" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

If your initial ListTableRestoreStatus operation returns a nextToken, you can include the returned nextToken in following ListTableRestoreStatus operations. This will return results on the next page.

" + }, + "workgroupName":{ + "shape":"String", + "documentation":"

The workgroup from which to list all of the statuses of RestoreTableFromSnapshot operations.

" + } + } + }, + "ListTableRestoreStatusRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListTableRestoreStatusResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

If your initial ListTableRestoreStatus operation returns a nextToken, you can include the returned nextToken in following ListTableRestoreStatus operations. This will returns results on the next page.

" + }, + "tableRestoreStatuses":{ + "shape":"TableRestoreStatusList", + "documentation":"

The array of returned TableRestoreStatus objects.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The Amazon Resource Name (ARN) of the resource to list tags for.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagList", + "documentation":"

A map of the key-value pairs assigned to the resource.

" + } + } + }, + "ListUsageLimitsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListUsageLimitsRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. The default is 100.

", + "box":true + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

If your initial ListUsageLimits operation returns a nextToken, you can include the returned nextToken in following ListUsageLimits operations, which returns results in the next page.

" + }, + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) associated with the resource whose usage limits you want to list.

" + }, + "usageType":{ + "shape":"UsageLimitUsageType", + "documentation":"

The Amazon Redshift Serverless feature whose limits you want to see.

" + } + } + }, + "ListUsageLimitsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListUsageLimitsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

When nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page.

" + }, + "usageLimits":{ + "shape":"UsageLimits", + "documentation":"

An array of returned usage limit objects.

" + } + } + }, + "ListWorkgroupsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"ListWorkgroupsRequestMaxResultsInteger", + "documentation":"

An optional parameter that specifies the maximum number of results to return. You can use nextToken to display the next page of results.

", + "box":true + }, + "nextToken":{ + "shape":"String", + "documentation":"

If your initial ListWorkgroups operation returns a nextToken, you can include the returned nextToken in following ListNamespaces operations, which returns results in the next page.

" + } + } + }, + "ListWorkgroupsRequestMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListWorkgroupsResponse":{ + "type":"structure", + "required":["workgroups"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. To retrieve the next page, make the call again using the returned token.

" + }, + "workgroups":{ + "shape":"WorkgroupList", + "documentation":"

The returned array of workgroups.

" + } + } + }, + "LogExport":{ + "type":"string", + "enum":[ + "useractivitylog", + "userlog", + "connectionlog" + ] + }, + "LogExportList":{ + "type":"list", + "member":{"shape":"LogExport"}, + "max":16, + "min":0 + }, + "Long":{ + "type":"long", + "box":true + }, + "Namespace":{ + "type":"structure", + "members":{ + "adminUsername":{ + "shape":"DbUser", + "documentation":"

The username of the administrator for the first database created in the namespace.

" + }, + "creationDate":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date of when the namespace was created.

" + }, + "dbName":{ + "shape":"String", + "documentation":"

The name of the first database created in the namespace.

" + }, + "defaultIamRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to set as a default in the namespace.

" + }, + "iamRoles":{ + "shape":"IamRoleArnList", + "documentation":"

A list of IAM roles to associate with the namespace.

" + }, + "kmsKeyId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Key Management Service key used to encrypt your data.

" + }, + "logExports":{ + "shape":"LogExportList", + "documentation":"

The types of logs the namespace can export. Available export types are User log, Connection log, and User activity log.

" + }, + "namespaceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) associated with a namespace.

" + }, + "namespaceId":{ + "shape":"String", + "documentation":"

The unique identifier of a namespace.

" + }, + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace. Must be between 3-64 alphanumeric characters in lowercase, and it cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

" + }, + "status":{ + "shape":"NamespaceStatus", + "documentation":"

The status of the namespace.

" + } + }, + "documentation":"

A collection of database objects and users.

" + }, + "NamespaceList":{ + "type":"list", + "member":{"shape":"Namespace"} + }, + "NamespaceName":{ + "type":"string", + "max":64, + "min":3, + "pattern":"^[a-z0-9-]+$" + }, + "NamespaceStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "MODIFYING", + "DELETING" + ] + }, + "NetworkInterface":{ + "type":"structure", + "members":{ + "availabilityZone":{ + "shape":"String", + "documentation":"

The availability Zone.

" + }, + "networkInterfaceId":{ + "shape":"String", + "documentation":"

The unique identifier of the network interface.

" + }, + "privateIpAddress":{ + "shape":"String", + "documentation":"

The IPv4 address of the network interface within the subnet.

" + }, + "subnetId":{ + "shape":"String", + "documentation":"

The unique identifier of the subnet.

" + } + }, + "documentation":"

Contains information about a network interface in an Amazon Redshift Serverless managed VPC endpoint.

" + }, + "NetworkInterfaceList":{ + "type":"list", + "member":{"shape":"NetworkInterface"} + }, + "PaginationToken":{ + "type":"string", + "max":1024, + "min":8 + }, + "ParameterKey":{"type":"string"}, + "ParameterValue":{"type":"string"}, + "PutResourcePolicyRequest":{ + "type":"structure", + "required":[ + "policy", + "resourceArn" + ], + "members":{ + "policy":{ + "shape":"String", + "documentation":"

The policy to create or update. For example, the following policy grants a user authorization to restore a snapshot.

\"{\\\"Version\\\": \\\"2012-10-17\\\", \\\"Statement\\\" : [{ \\\"Sid\\\": \\\"AllowUserRestoreFromSnapshot\\\", \\\"Principal\\\":{\\\"AWS\\\": [\\\"739247239426\\\"]}, \\\"Action\\\": [\\\"redshift-serverless:RestoreFromSnapshot\\\"] , \\\"Effect\\\": \\\"Allow\\\" }]}\"

" + }, + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the account to create or update a resource policy for.

" + } + } + }, + "PutResourcePolicyResponse":{ + "type":"structure", + "members":{ + "resourcePolicy":{ + "shape":"ResourcePolicy", + "documentation":"

The policy that was created or updated.

" + } + } + }, + "RecoveryPoint":{ + "type":"structure", + "members":{ + "namespaceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the namespace the recovery point is associated with.

" + }, + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace the recovery point is associated with.

" + }, + "recoveryPointCreateTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The time the recovery point is created.

" + }, + "recoveryPointId":{ + "shape":"String", + "documentation":"

The unique identifier of the recovery point.

" + }, + "totalSizeInMegaBytes":{ + "shape":"Double", + "documentation":"

The total size of the data in the recovery point in megabytes.

" + }, + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of the workgroup the recovery point is associated with.

" + } + }, + "documentation":"

The automatically created recovery point of a namespace. Recovery points are created every 30 minutes and kept for 24 hours.

" + }, + "RecoveryPointList":{ + "type":"list", + "member":{"shape":"RecoveryPoint"} + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "resourceName":{ + "shape":"AmazonResourceName", + "documentation":"

The name of the resource that could not be found.

" + } + }, + "documentation":"

The resource could not be found.

", + "exception":true + }, + "ResourcePolicy":{ + "type":"structure", + "members":{ + "policy":{ + "shape":"String", + "documentation":"

The resource policy.

" + }, + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the policy.

" + } + }, + "documentation":"

The resource policy object. Currently, you can use policies to share snapshots across Amazon Web Services accounts.

" + }, + "RestoreFromRecoveryPointRequest":{ + "type":"structure", + "required":[ + "namespaceName", + "recoveryPointId", + "workgroupName" + ], + "members":{ + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace to restore data into.

" + }, + "recoveryPointId":{ + "shape":"String", + "documentation":"

The unique identifier of the recovery point to restore from.

" + }, + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of the workgroup used to restore data.

" + } + } + }, + "RestoreFromRecoveryPointResponse":{ + "type":"structure", + "members":{ + "namespace":{ + "shape":"Namespace", + "documentation":"

The namespace that data was restored into.

" + }, + "recoveryPointId":{ + "shape":"String", + "documentation":"

The unique identifier of the recovery point used for the restore.

" + } + } + }, + "RestoreFromSnapshotRequest":{ + "type":"structure", + "required":[ + "namespaceName", + "workgroupName" + ], + "members":{ + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace to restore the snapshot to.

" + }, + "ownerAccount":{ + "shape":"String", + "documentation":"

The Amazon Web Services account that owns the snapshot.

" + }, + "snapshotArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the snapshot to restore from. Required if restoring from Amazon Redshift Serverless to a provisioned cluster. Must not be specified at the same time as snapshotName.

The format of the ARN is arn:aws:redshift:<region>:<account_id>:snapshot:<cluster_identifier>/<snapshot_identifier>.

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot to restore from. Must not be specified at the same time as snapshotArn.

" + }, + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of the workgroup used to restore the snapshot.

" + } + } + }, + "RestoreFromSnapshotResponse":{ + "type":"structure", + "members":{ + "namespace":{"shape":"Namespace"}, + "ownerAccount":{ + "shape":"String", + "documentation":"

The owner Amazon Web Services; account of the snapshot that was restored.

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot used to restore the namespace.

" + } + } + }, + "RestoreTableFromSnapshotRequest":{ + "type":"structure", + "required":[ + "namespaceName", + "newTableName", + "snapshotName", + "sourceDatabaseName", + "sourceTableName", + "workgroupName" + ], + "members":{ + "activateCaseSensitiveIdentifier":{ + "shape":"Boolean", + "documentation":"

Indicates whether name identifiers for database, schema, and table are case sensitive. If true, the names are case sensitive. If false, the names are not case sensitive. The default is false.

" + }, + "namespaceName":{ + "shape":"String", + "documentation":"

The namespace of the snapshot to restore from.

" + }, + "newTableName":{ + "shape":"String", + "documentation":"

The name of the table to create from the restore operation.

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot to restore the table from.

" + }, + "sourceDatabaseName":{ + "shape":"String", + "documentation":"

The name of the source database that contains the table being restored.

" + }, + "sourceSchemaName":{ + "shape":"String", + "documentation":"

The name of the source schema that contains the table being restored.

" + }, + "sourceTableName":{ + "shape":"String", + "documentation":"

The name of the source table being restored.

" + }, + "targetDatabaseName":{ + "shape":"String", + "documentation":"

The name of the database to restore the table to.

" + }, + "targetSchemaName":{ + "shape":"String", + "documentation":"

The name of the schema to restore the table to.

" + }, + "workgroupName":{ + "shape":"String", + "documentation":"

The workgroup to restore the table to.

" + } + } + }, + "RestoreTableFromSnapshotResponse":{ + "type":"structure", + "members":{ + "tableRestoreStatus":{ + "shape":"TableRestoreStatus", + "documentation":"

The TableRestoreStatus object that contains the status of the restore operation.

" + } + } + }, + "SecurityGroupId":{"type":"string"}, + "SecurityGroupIdList":{ + "type":"list", + "member":{"shape":"SecurityGroupId"} + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The service limit was exceeded.

", + "exception":true + }, + "Snapshot":{ + "type":"structure", + "members":{ + "accountsWithProvisionedRestoreAccess":{ + "shape":"AccountIdList", + "documentation":"

All of the Amazon Web Services accounts that have access to restore a snapshot to a provisioned cluster.

" + }, + "accountsWithRestoreAccess":{ + "shape":"AccountIdList", + "documentation":"

All of the Amazon Web Services accounts that have access to restore a snapshot to a namespace.

" + }, + "actualIncrementalBackupSizeInMegaBytes":{ + "shape":"Double", + "documentation":"

The size of the incremental backup in megabytes.

" + }, + "adminUsername":{ + "shape":"String", + "documentation":"

The username of the database within a snapshot.

" + }, + "backupProgressInMegaBytes":{ + "shape":"Double", + "documentation":"

The size in megabytes of the data that has been backed up to a snapshot.

" + }, + "currentBackupRateInMegaBytesPerSecond":{ + "shape":"Double", + "documentation":"

The rate at which data is backed up into a snapshot in megabytes per second.

" + }, + "elapsedTimeInSeconds":{ + "shape":"Long", + "documentation":"

The amount of time it took to back up data into a snapshot.

" + }, + "estimatedSecondsToCompletion":{ + "shape":"Long", + "documentation":"

The estimated amount of seconds until the snapshot completes backup.

" + }, + "kmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

The unique identifier of the KMS key used to encrypt the snapshot.

" + }, + "namespaceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the namespace the snapshot was created from.

" + }, + "namespaceName":{ + "shape":"String", + "documentation":"

The name of the namepsace.

" + }, + "ownerAccount":{ + "shape":"String", + "documentation":"

The owner Amazon Web Services; account of the snapshot.

" + }, + "snapshotArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the snapshot.

" + }, + "snapshotCreateTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The timestamp of when the snapshot was created.

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot.

" + }, + "snapshotRemainingDays":{ + "shape":"Integer", + "documentation":"

The amount of days until the snapshot is deleted.

" + }, + "snapshotRetentionPeriod":{ + "shape":"Integer", + "documentation":"

The period of time, in days, of how long the snapshot is retained.

" + }, + "snapshotRetentionStartTime":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The timestamp of when data within the snapshot started getting retained.

" + }, + "status":{ + "shape":"SnapshotStatus", + "documentation":"

The status of the snapshot.

" + }, + "totalBackupSizeInMegaBytes":{ + "shape":"Double", + "documentation":"

The total size, in megabytes, of how big the snapshot is.

" + } + }, + "documentation":"

A snapshot object that contains databases.

" + }, + "SnapshotList":{ + "type":"list", + "member":{"shape":"Snapshot"} + }, + "SnapshotStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "CREATING", + "DELETED", + "CANCELLED", + "FAILED", + "COPYING" + ] + }, + "String":{"type":"string"}, + "SubnetId":{"type":"string"}, + "SubnetIdList":{ + "type":"list", + "member":{"shape":"SubnetId"} + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TableRestoreStatus":{ + "type":"structure", + "members":{ + "message":{ + "shape":"String", + "documentation":"

A description of the status of the table restore request. Status values include SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS.

" + }, + "namespaceName":{ + "shape":"String", + "documentation":"

The namespace of the table being restored from.

" + }, + "newTableName":{ + "shape":"String", + "documentation":"

The name of the table to create from the restore operation.

" + }, + "progressInMegaBytes":{ + "shape":"Long", + "documentation":"

The amount of data restored to the new table so far, in megabytes (MB).

" + }, + "requestTime":{ + "shape":"Timestamp", + "documentation":"

The time that the table restore request was made, in Universal Coordinated Time (UTC).

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot being restored from.

" + }, + "sourceDatabaseName":{ + "shape":"String", + "documentation":"

The name of the source database being restored from.

" + }, + "sourceSchemaName":{ + "shape":"String", + "documentation":"

The name of the source schema being restored from.

" + }, + "sourceTableName":{ + "shape":"String", + "documentation":"

The name of the source table being restored from.

" + }, + "status":{ + "shape":"String", + "documentation":"

A value that describes the current state of the table restore request. Possible values include SUCCEEDED, FAILED, CANCELED, PENDING, IN_PROGRESS.

" + }, + "tableRestoreRequestId":{ + "shape":"String", + "documentation":"

The ID of the RestoreTableFromSnapshot request.

" + }, + "targetDatabaseName":{ + "shape":"String", + "documentation":"

The name of the database to restore to.

" + }, + "targetSchemaName":{ + "shape":"String", + "documentation":"

The name of the schema to restore to.

" + }, + "totalDataInMegaBytes":{ + "shape":"Long", + "documentation":"

The total amount of data to restore to the new table, in megabytes (MB).

" + }, + "workgroupName":{ + "shape":"String", + "documentation":"

The name of the workgroup being restored from.

" + } + }, + "documentation":"

Contains information about a table restore request.

" + }, + "TableRestoreStatusList":{ + "type":"list", + "member":{"shape":"TableRestoreStatus"} + }, + "Tag":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"TagKey", + "documentation":"

The key to use in the tag.

" + }, + "value":{ + "shape":"TagValue", + "documentation":"

The value of the tag.

" + } + }, + "documentation":"

A map of key-value pairs.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The Amazon Resource Name (ARN) of the resource to tag.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

The map of the key-value pairs used to tag the resource.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "code":{"shape":"String"}, + "message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "exception":true, + "retryable":{"throttling":false} + }, + "Timestamp":{"type":"timestamp"}, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"}, + "resourceName":{ + "shape":"AmazonResourceName", + "documentation":"

The name of the resource that exceeded the number of tags allowed for a resource.

" + } + }, + "documentation":"

The request exceeded the number of tags allowed for a resource.

", + "exception":true + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The Amazon Resource Name (ARN) of the resource to remove tags from.

" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

The tag or set of tags to remove from the resource.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateEndpointAccessRequest":{ + "type":"structure", + "required":["endpointName"], + "members":{ + "endpointName":{ + "shape":"String", + "documentation":"

The name of the VPC endpoint to update.

" + }, + "vpcSecurityGroupIds":{ + "shape":"VpcSecurityGroupIdList", + "documentation":"

The list of VPC security groups associated with the endpoint after the endpoint is modified.

" + } + } + }, + "UpdateEndpointAccessResponse":{ + "type":"structure", + "members":{ + "endpoint":{ + "shape":"EndpointAccess", + "documentation":"

The updated VPC endpoint.

" + } + } + }, + "UpdateNamespaceRequest":{ + "type":"structure", + "required":["namespaceName"], + "members":{ + "adminUserPassword":{ + "shape":"DbPassword", + "documentation":"

The password of the administrator for the first database created in the namespace.

" + }, + "adminUsername":{ + "shape":"DbUser", + "documentation":"

The username of the administrator for the first database created in the namespace.

" + }, + "defaultIamRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role to set as a default in the namespace.

" + }, + "iamRoles":{ + "shape":"IamRoleArnList", + "documentation":"

A list of IAM roles to associate with the namespace.

" + }, + "kmsKeyId":{ + "shape":"String", + "documentation":"

The ID of the Amazon Web Services Key Management Service key used to encrypt your data.

" + }, + "logExports":{ + "shape":"LogExportList", + "documentation":"

The types of logs the namespace can export. The export types are userlog, connectionlog, and useractivitylog.

" + }, + "namespaceName":{ + "shape":"NamespaceName", + "documentation":"

The name of the namespace.

" + } + } + }, + "UpdateNamespaceResponse":{ + "type":"structure", + "required":["namespace"], + "members":{ + "namespace":{ + "shape":"Namespace", + "documentation":"

A list of tag instances.

" + } + } + }, + "UpdateSnapshotRequest":{ + "type":"structure", + "required":["snapshotName"], + "members":{ + "retentionPeriod":{ + "shape":"Integer", + "documentation":"

The new retention period of the snapshot.

" + }, + "snapshotName":{ + "shape":"String", + "documentation":"

The name of the snapshot.

" + } + } + }, + "UpdateSnapshotResponse":{ + "type":"structure", + "members":{ + "snapshot":{ + "shape":"Snapshot", + "documentation":"

The updated snapshot object.

" + } + } + }, + "UpdateUsageLimitRequest":{ + "type":"structure", + "required":["usageLimitId"], + "members":{ + "amount":{ + "shape":"Long", + "documentation":"

The new limit amount. If time-based, this amount is in Redshift Processing Units (RPU) consumed per hour. If data-based, this amount is in terabytes (TB) of data transferred between Regions in cross-account sharing. The value must be a positive number.

" + }, + "breachAction":{ + "shape":"UsageLimitBreachAction", + "documentation":"

The new action that Amazon Redshift Serverless takes when the limit is reached.

" + }, + "usageLimitId":{ + "shape":"String", + "documentation":"

The identifier of the usage limit to update.

" + } + } + }, + "UpdateUsageLimitResponse":{ + "type":"structure", + "members":{ + "usageLimit":{ + "shape":"UsageLimit", + "documentation":"

The updated usage limit object.

" + } + } + }, + "UpdateWorkgroupRequest":{ + "type":"structure", + "required":["workgroupName"], + "members":{ + "baseCapacity":{ + "shape":"Integer", + "documentation":"

The new base data warehouse capacity in Redshift Processing Units (RPUs).

" + }, + "configParameters":{ + "shape":"ConfigParameterList", + "documentation":"

An array of parameters to set for advanced control over a database. The options are datestyle, enable_user_activity_logging, query_group, search_path, and max_query_execution_time.

" + }, + "enhancedVpcRouting":{ + "shape":"Boolean", + "documentation":"

The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC.

" + }, + "port":{ + "shape":"Integer", + "documentation":"

The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439.

" + }, + "publiclyAccessible":{ + "shape":"Boolean", + "documentation":"

A value that specifies whether the workgroup can be accessible from a public network.

" + }, + "securityGroupIds":{ + "shape":"SecurityGroupIdList", + "documentation":"

An array of security group IDs to associate with the workgroup.

" + }, + "subnetIds":{ + "shape":"SubnetIdList", + "documentation":"

An array of VPC subnet IDs to associate with the workgroup.

" + }, + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of the workgroup to update.

" + } + } + }, + "UpdateWorkgroupResponse":{ + "type":"structure", + "required":["workgroup"], + "members":{ + "workgroup":{ + "shape":"Workgroup", + "documentation":"

The updated workgroup object.

" + } + } + }, + "UsageLimit":{ + "type":"structure", + "members":{ + "amount":{ + "shape":"Long", + "documentation":"

The limit amount. If time-based, this amount is in RPUs consumed per hour. If data-based, this amount is in terabytes (TB). The value must be a positive number.

" + }, + "breachAction":{ + "shape":"UsageLimitBreachAction", + "documentation":"

The action that Amazon Redshift Serverless takes when the limit is reached.

" + }, + "period":{ + "shape":"UsageLimitPeriod", + "documentation":"

The time period that the amount applies to. A weekly period begins on Sunday. The default is monthly.

" + }, + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) that identifies the Amazon Redshift Serverless resource.

" + }, + "usageLimitArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the resource associated with the usage limit.

" + }, + "usageLimitId":{ + "shape":"String", + "documentation":"

The identifier of the usage limit.

" + }, + "usageType":{ + "shape":"UsageLimitUsageType", + "documentation":"

The Amazon Redshift Serverless feature to limit.

" + } + }, + "documentation":"

The usage limit object.

" + }, + "UsageLimitBreachAction":{ + "type":"string", + "enum":[ + "log", + "emit-metric", + "deactivate" + ] + }, + "UsageLimitPeriod":{ + "type":"string", + "enum":[ + "daily", + "weekly", + "monthly" + ] + }, + "UsageLimitUsageType":{ + "type":"string", + "enum":[ + "serverless-compute", + "cross-region-datasharing" + ] + }, + "UsageLimits":{ + "type":"list", + "member":{"shape":"UsageLimit"}, + "max":100, + "min":1 + }, + "ValidationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The input failed to satisfy the constraints specified by an AWS service.

", + "exception":true + }, + "VpcEndpoint":{ + "type":"structure", + "members":{ + "networkInterfaces":{ + "shape":"NetworkInterfaceList", + "documentation":"

One or more network interfaces of the endpoint. Also known as an interface endpoint.

" + }, + "vpcEndpointId":{ + "shape":"String", + "documentation":"

The connection endpoint ID for connecting to Amazon Redshift Serverless.

" + }, + "vpcId":{ + "shape":"String", + "documentation":"

The VPC identifier that the endpoint is associated with.

" + } + }, + "documentation":"

The connection endpoint for connecting to Amazon Redshift Serverless through the proxy.

" + }, + "VpcEndpointList":{ + "type":"list", + "member":{"shape":"VpcEndpoint"} + }, + "VpcSecurityGroupId":{"type":"string"}, + "VpcSecurityGroupIdList":{ + "type":"list", + "member":{"shape":"VpcSecurityGroupId"} + }, + "VpcSecurityGroupMembership":{ + "type":"structure", + "members":{ + "status":{ + "shape":"String", + "documentation":"

The status of the VPC security group.

" + }, + "vpcSecurityGroupId":{ + "shape":"VpcSecurityGroupId", + "documentation":"

The unique identifier of the VPC security group.

" + } + }, + "documentation":"

Describes the members of a VPC security group.

" + }, + "VpcSecurityGroupMembershipList":{ + "type":"list", + "member":{"shape":"VpcSecurityGroupMembership"} + }, + "Workgroup":{ + "type":"structure", + "members":{ + "baseCapacity":{ + "shape":"Integer", + "documentation":"

The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs).

" + }, + "configParameters":{ + "shape":"ConfigParameterList", + "documentation":"

An array of parameters to set for finer control over a database. The options are datestyle, enable_user_activity_logging, query_group, search_path, and max_query_execution_time.

" + }, + "creationDate":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The creation date of the workgroup.

" + }, + "endpoint":{ + "shape":"Endpoint", + "documentation":"

The endpoint that is created from the workgroup.

" + }, + "enhancedVpcRouting":{ + "shape":"Boolean", + "documentation":"

The value that specifies whether to enable enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC.

" + }, + "namespaceName":{ + "shape":"String", + "documentation":"

The namespace the workgroup is associated with.

" + }, + "port":{ + "shape":"Integer", + "documentation":"

The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439.

" + }, + "publiclyAccessible":{ + "shape":"Boolean", + "documentation":"

A value that specifies whether the workgroup can be accessible from a public network

" + }, + "securityGroupIds":{ + "shape":"SecurityGroupIdList", + "documentation":"

An array of security group IDs to associate with the workgroup.

" + }, + "status":{ + "shape":"WorkgroupStatus", + "documentation":"

The status of the workgroup.

" + }, + "subnetIds":{ + "shape":"SubnetIdList", + "documentation":"

An array of subnet IDs the workgroup is associated with.

" + }, + "workgroupArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) that links to the workgroup.

" + }, + "workgroupId":{ + "shape":"String", + "documentation":"

The unique identifier of the workgroup.

" + }, + "workgroupName":{ + "shape":"WorkgroupName", + "documentation":"

The name of the workgroup.

" + } + }, + "documentation":"

The collection of computing resources from which an endpoint is created.

" + }, + "WorkgroupList":{ + "type":"list", + "member":{"shape":"Workgroup"} + }, + "WorkgroupName":{ + "type":"string", + "max":64, + "min":3, + "pattern":"^[a-z0-9-]+$" + }, + "WorkgroupStatus":{ + "type":"string", + "enum":[ + "CREATING", + "AVAILABLE", + "MODIFYING", + "DELETING" + ] + } + }, + "documentation":"

This is an interface reference for Amazon Redshift Serverless. It contains documentation for one of the programming or command line interfaces you can use to manage Amazon Redshift Serverless.

Amazon Redshift Serverless automatically provisions data warehouse capacity and intelligently scales the underlying resources based on workload demands. Amazon Redshift Serverless adjusts capacity in seconds to deliver consistently high performance and simplified operations for even the most demanding and volatile workloads. Amazon Redshift Serverless lets you focus on using your data to acquire new insights for your business and customers.

To learn more about Amazon Redshift Serverless, see What is Amazon Redshift Serverless.

" +} diff --git a/botocore/data/redshift/2012-12-01/endpoint-rule-set-1.json b/botocore/data/redshift/2012-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..5874b805 --- /dev/null +++ b/botocore/data/redshift/2012-12-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://redshift.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://redshift.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/redshift/2012-12-01/service-2.json b/botocore/data/redshift/2012-12-01/service-2.json index dbf53d62..59720248 100644 --- a/botocore/data/redshift/2012-12-01/service-2.json +++ b/botocore/data/redshift/2012-12-01/service-2.json @@ -141,7 +141,8 @@ {"shape":"AuthorizationQuotaExceededFault"}, {"shape":"DependentServiceRequestThrottlingFault"}, {"shape":"InvalidClusterSnapshotStateFault"}, - {"shape":"LimitExceededFault"} + {"shape":"LimitExceededFault"}, + {"shape":"UnsupportedOperationFault"} ], "documentation":"

Authorizes the specified Amazon Web Services account to restore the specified snapshot.

For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster Management Guide.

" }, @@ -907,7 +908,8 @@ "errors":[ {"shape":"ClusterNotFoundFault"}, {"shape":"ClusterSnapshotNotFoundFault"}, - {"shape":"InvalidTagFault"} + {"shape":"InvalidTagFault"}, + {"shape":"UnsupportedOperationFault"} ], "documentation":"

Returns one or more snapshot objects, which contain metadata about your cluster snapshots. By default, this operation returns information about all snapshots of all clusters that are owned by your Amazon Web Services account. No information is returned for snapshots owned by inactive Amazon Web Services accounts.

If you specify both tag keys and tag values in the same request, Amazon Redshift returns all snapshots that match any combination of the specified keys and values. For example, if you have owner and environment for tag keys, and admin and test for tag values, all snapshots that have any combination of those values are returned. Only snapshots that you own are returned in the response; shared snapshots are not returned with the tag key and tag value request parameters.

If both tag keys and values are omitted from the request, snapshots are returned regardless of whether they have tag keys or values associated with them.

" }, @@ -1179,7 +1181,8 @@ {"shape":"ClusterSnapshotNotFoundFault"}, {"shape":"InvalidClusterSnapshotStateFault"}, {"shape":"ClusterNotFoundFault"}, - {"shape":"AccessToSnapshotDeniedFault"} + {"shape":"AccessToSnapshotDeniedFault"}, + {"shape":"UnsupportedOperationFault"} ], "documentation":"

Returns properties of possible node configurations such as node type, number of nodes, and disk usage for the specified action type.

" }, @@ -1510,6 +1513,23 @@ ], "documentation":"

Returns a database user name and temporary password with temporary authorization to log on to an Amazon Redshift database. The action returns the database user name prefixed with IAM: if AutoCreate is False or IAMA: if AutoCreate is True. You can optionally specify one or more database user groups that the user will join at log on. By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes). For more information, see Using IAM Authentication to Generate Database User Credentials in the Amazon Redshift Cluster Management Guide.

The Identity and Access Management (IAM) user or role that runs GetClusterCredentials must have an IAM policy attached that allows access to all necessary actions and resources. For more information about permissions, see Resource Policies for GetClusterCredentials in the Amazon Redshift Cluster Management Guide.

If the DbGroups parameter is specified, the IAM policy must allow the redshift:JoinGroup action with access to the listed dbgroups.

In addition, if the AutoCreate parameter is set to True, then the policy must include the redshift:CreateClusterUser permission.

If the DbName parameter is specified, the IAM policy must allow access to the resource dbname for the specified database name.

" }, + "GetClusterCredentialsWithIAM":{ + "name":"GetClusterCredentialsWithIAM", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetClusterCredentialsWithIAMMessage"}, + "output":{ + "shape":"ClusterExtendedCredentials", + "resultWrapper":"GetClusterCredentialsWithIAMResult" + }, + "errors":[ + {"shape":"ClusterNotFoundFault"}, + {"shape":"UnsupportedOperationFault"} + ], + "documentation":"

Returns a database user name and temporary password with temporary authorization to log in to an Amazon Redshift database. The database user is mapped 1:1 to the source Identity and Access Management (IAM) identity. For more information about IAM identities, see IAM Identities (users, user groups, and roles) in the Amazon Web Services Identity and Access Management User Guide.

The Identity and Access Management (IAM) identity that runs this operation must have an IAM policy attached that allows access to all necessary actions and resources. For more information about permissions, see Using identity-based policies (IAM policies) in the Amazon Redshift Cluster Management Guide.

" + }, "GetReservedNodeExchangeConfigurationOptions":{ "name":"GetReservedNodeExchangeConfigurationOptions", "http":{ @@ -1570,7 +1590,7 @@ {"shape":"InvalidClusterStateFault"}, {"shape":"UnsupportedOperationFault"} ], - "documentation":"

Modifies whether a cluster can use AQUA (Advanced Query Accelerator).

" + "documentation":"

This operation is retired. Calling this operation does not change AQUA configuration. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

" }, "ModifyAuthenticationProfile":{ "name":"ModifyAuthenticationProfile", @@ -2124,7 +2144,8 @@ "errors":[ {"shape":"AccessToSnapshotDeniedFault"}, {"shape":"AuthorizationNotFoundFault"}, - {"shape":"ClusterSnapshotNotFoundFault"} + {"shape":"ClusterSnapshotNotFoundFault"}, + {"shape":"UnsupportedOperationFault"} ], "documentation":"

Removes the ability of the specified Amazon Web Services account to restore the specified snapshot. If the account is currently restoring the snapshot, the restore will run to completion.

For more information about working with snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster Management Guide.

" }, @@ -2273,14 +2294,14 @@ "members":{ "AquaStatus":{ "shape":"AquaStatus", - "documentation":"

The value indicates the status of AQUA on the cluster. Possible values include the following.

  • enabled - AQUA is enabled.

  • disabled - AQUA is not enabled.

  • applying - AQUA status is being applied.

" + "documentation":"

This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

" }, "AquaConfigurationStatus":{ "shape":"AquaConfigurationStatus", - "documentation":"

The value represents how the cluster is configured to use AQUA. Possible values include the following.

  • enabled - Use AQUA if it is available for the current Amazon Web Services Region and Amazon Redshift node type.

  • disabled - Don't use AQUA.

  • auto - Amazon Redshift determines whether to use AQUA.

" + "documentation":"

This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

" } }, - "documentation":"

The AQUA (Advanced Query Accelerator) configuration of the cluster.

" + "documentation":"

The operation that uses this structure is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

" }, "AquaConfigurationStatus":{ "type":"string", @@ -2526,15 +2547,16 @@ }, "AuthorizeSnapshotAccessMessage":{ "type":"structure", - "required":[ - "SnapshotIdentifier", - "AccountWithRestoreAccess" - ], + "required":["AccountWithRestoreAccess"], "members":{ "SnapshotIdentifier":{ "shape":"String", "documentation":"

The identifier of the snapshot the account is authorized to restore.

" }, + "SnapshotArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the snapshot to authorize access to.

" + }, "SnapshotClusterIdentifier":{ "shape":"String", "documentation":"

The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

" @@ -2891,7 +2913,7 @@ }, "AquaConfiguration":{ "shape":"AquaConfiguration", - "documentation":"

The AQUA (Advanced Query Accelerator) configuration of the cluster.

" + "documentation":"

This field is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

" }, "DefaultIamRoleArn":{ "shape":"String", @@ -2991,6 +3013,27 @@ } } }, + "ClusterExtendedCredentials":{ + "type":"structure", + "members":{ + "DbUser":{ + "shape":"String", + "documentation":"

A database user name that you provide when you connect to a database. The database user is mapped 1:1 to the source IAM identity.

" + }, + "DbPassword":{ + "shape":"SensitiveString", + "documentation":"

A temporary password that you provide when you connect to a database.

" + }, + "Expiration":{ + "shape":"TStamp", + "documentation":"

The time (UTC) when the temporary password expires. After this timestamp, a log in with the temporary password fails.

" + }, + "NextRefreshTime":{ + "shape":"TStamp", + "documentation":"

Reserved for future use.

" + } + } + }, "ClusterIamRole":{ "type":"structure", "members":{ @@ -3653,7 +3696,7 @@ }, "MasterUserPassword":{ "shape":"String", - "documentation":"

The password associated with the admin user account for the cluster that is being created.

Constraints:

  • Must be between 8 and 64 characters in length.

  • Must contain at least one uppercase letter.

  • Must contain at least one lowercase letter.

  • Must contain one number.

  • Can be any printable ASCII character (ASCII code 33-126) except ' (single quote), \" (double quote), \\, /, or @.

" + "documentation":"

The password associated with the admin user account for the cluster that is being created.

Constraints:

  • Must be between 8 and 64 characters in length.

  • Must contain at least one uppercase letter.

  • Must contain at least one lowercase letter.

  • Must contain one number.

  • Can be any printable ASCII character (ASCII code 33-126) except ' (single quote), \" (double quote), \\, /, or @.

" }, "ClusterSecurityGroups":{ "shape":"ClusterSecurityGroupNameList", @@ -3721,7 +3764,7 @@ }, "ElasticIp":{ "shape":"String", - "documentation":"

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. For more information about provisioning clusters in EC2-VPC, go to Supported Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management Guide.

" + "documentation":"

The Elastic IP (EIP) address for the cluster.

Constraints: The cluster must be provisioned in EC2-VPC and publicly-accessible through an Internet gateway. Don't specify the Elastic IP address for a publicly accessible cluster with availability zone relocation turned on. For more information about provisioning clusters in EC2-VPC, go to Supported Platforms to Launch Your Cluster in the Amazon Redshift Cluster Management Guide.

" }, "Tags":{ "shape":"TagList", @@ -3757,7 +3800,7 @@ }, "AquaConfigurationStatus":{ "shape":"AquaConfigurationStatus", - "documentation":"

The value represents how the cluster is configured to use AQUA (Advanced Query Accelerator) when it is created. Possible values include the following.

  • enabled - Use AQUA if it is available for the current Amazon Web Services Region and Amazon Redshift node type.

  • disabled - Don't use AQUA.

  • auto - Amazon Redshift determines whether to use AQUA.

" + "documentation":"

This parameter is retired. It does not set the AQUA configuration status. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

" }, "DefaultIamRoleArn":{ "shape":"String", @@ -4765,6 +4808,10 @@ "shape":"String", "documentation":"

The snapshot identifier of the snapshot about which to return information.

" }, + "SnapshotArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the snapshot associated with the message to describe cluster snapshots.

" + }, "SnapshotType":{ "shape":"String", "documentation":"

The type of snapshots for which you are requesting information. By default, snapshots of all types are returned.

Valid Values: automated | manual

" @@ -5225,6 +5272,10 @@ "shape":"String", "documentation":"

The identifier of the snapshot to evaluate for possible node configurations.

" }, + "SnapshotArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the snapshot associated with the message to describe node configuration.

" + }, "OwnerAccount":{ "shape":"String", "documentation":"

The Amazon Web Services account used to create or copy the snapshot. Required if you are restoring a snapshot you do not own, optional if you own the snapshot.

" @@ -6174,15 +6225,15 @@ "members":{ "DbUser":{ "shape":"String", - "documentation":"

The name of a database user. If a user name matching DbUser exists in the database, the temporary user credentials have the same permissions as the existing user. If DbUser doesn't exist in the database and Autocreate is True, a new user is created using the value for DbUser with PUBLIC permissions. If a database user matching the value for DbUser doesn't exist and Autocreate is False, then the command succeeds but the connection attempt will fail because the user doesn't exist in the database.

For more information, see CREATE USER in the Amazon Redshift Database Developer Guide.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens. The user name can't be PUBLIC.

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

" + "documentation":"

The name of a database user. If a user name matching DbUser exists in the database, the temporary user credentials have the same permissions as the existing user. If DbUser doesn't exist in the database and Autocreate is True, a new user is created using the value for DbUser with PUBLIC permissions. If a database user matching the value for DbUser doesn't exist and Autocreate is False, then the command succeeds but the connection attempt will fail because the user doesn't exist in the database.

For more information, see CREATE USER in the Amazon Redshift Database Developer Guide.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens. The user name can't be PUBLIC.

  • Must contain uppercase or lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

" }, "DbName":{ "shape":"String", - "documentation":"

The name of a database that DbUser is authorized to log on to. If DbName is not specified, DbUser can log on to any existing database.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain only lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

" + "documentation":"

The name of a database that DbUser is authorized to log on to. If DbName is not specified, DbUser can log on to any existing database.

Constraints:

  • Must be 1 to 64 alphanumeric characters or hyphens

  • Must contain uppercase or lowercase letters, numbers, underscore, plus sign, period (dot), at symbol (@), or hyphen.

  • First character must be a letter.

  • Must not contain a colon ( : ) or slash ( / ).

  • Cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.

" }, "ClusterIdentifier":{ "shape":"String", - "documentation":"

The unique identifier of the cluster that contains the database for which your are requesting credentials. This parameter is case sensitive.

" + "documentation":"

The unique identifier of the cluster that contains the database for which you are requesting credentials. This parameter is case sensitive.

" }, "DurationSeconds":{ "shape":"IntegerOptional", @@ -6199,6 +6250,24 @@ }, "documentation":"

The request parameters to get cluster credentials.

" }, + "GetClusterCredentialsWithIAMMessage":{ + "type":"structure", + "required":["ClusterIdentifier"], + "members":{ + "DbName":{ + "shape":"String", + "documentation":"

The name of the database for which you are requesting credentials. If the database name is specified, the IAM policy must allow access to the resource dbname for the specified database name. If the database name is not specified, access to all databases is allowed.

" + }, + "ClusterIdentifier":{ + "shape":"String", + "documentation":"

The unique identifier of the cluster that contains the database for which you are requesting credentials.

" + }, + "DurationSeconds":{ + "shape":"IntegerOptional", + "documentation":"

The number of seconds until the returned temporary password expires.

Range: 900-3600. Default: 900.

" + } + } + }, "GetReservedNodeExchangeConfigurationOptionsInputMessage":{ "type":"structure", "required":["ActionType"], @@ -7000,7 +7069,7 @@ }, "AquaConfigurationStatus":{ "shape":"AquaConfigurationStatus", - "documentation":"

The new value of AQUA configuration status. Possible values include the following.

  • enabled - Use AQUA if it is available for the current Amazon Web Services Region and Amazon Redshift node type.

  • disabled - Don't use AQUA.

  • auto - Amazon Redshift determines whether to use AQUA.

" + "documentation":"

This parameter is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

" } } }, @@ -7009,7 +7078,7 @@ "members":{ "AquaConfiguration":{ "shape":"AquaConfiguration", - "documentation":"

The updated AQUA configuration of the cluster.

" + "documentation":"

This parameter is retired. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

" } } }, @@ -7161,7 +7230,7 @@ }, "MasterUserPassword":{ "shape":"String", - "documentation":"

The new password for the cluster admin user. This change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

Operations never return the password, so this operation provides a way to regain access to the admin user account for a cluster if the password is lost.

Default: Uses existing setting.

Constraints:

  • Must be between 8 and 64 characters in length.

  • Must contain at least one uppercase letter.

  • Must contain at least one lowercase letter.

  • Must contain one number.

  • Can be any printable ASCII character (ASCII code 33-126) except ' (single quote), \" (double quote), \\, /, or @.

" + "documentation":"

The new password for the cluster admin user. This change is asynchronously applied as soon as possible. Between the time of the request and the completion of the request, the MasterUserPassword element exists in the PendingModifiedValues element of the operation response.

Operations never return the password, so this operation provides a way to regain access to the admin user account for a cluster if the password is lost.

Default: Uses existing setting.

Constraints:

  • Must be between 8 and 64 characters in length.

  • Must contain at least one uppercase letter.

  • Must contain at least one lowercase letter.

  • Must contain one number.

  • Can be any printable ASCII character (ASCII code 33-126) except ' (single quote), \" (double quote), \\, /, or @.

" }, "ClusterParameterGroupName":{ "shape":"String", @@ -8490,10 +8559,7 @@ }, "RestoreFromClusterSnapshotMessage":{ "type":"structure", - "required":[ - "ClusterIdentifier", - "SnapshotIdentifier" - ], + "required":["ClusterIdentifier"], "members":{ "ClusterIdentifier":{ "shape":"String", @@ -8501,7 +8567,11 @@ }, "SnapshotIdentifier":{ "shape":"String", - "documentation":"

The name of the snapshot from which to create the new cluster. This parameter isn't case sensitive.

Example: my-snapshot-id

" + "documentation":"

The name of the snapshot from which to create the new cluster. This parameter isn't case sensitive. You can specify this parameter or snapshotArn, but not both.

Example: my-snapshot-id

" + }, + "SnapshotArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the snapshot associated with the message to restore from a cluster. You can specify this parameter or snapshotIdentifier, but not both.

" }, "SnapshotClusterIdentifier":{ "shape":"String", @@ -8541,7 +8611,7 @@ }, "ElasticIp":{ "shape":"String", - "documentation":"

The elastic IP (EIP) address for the cluster.

" + "documentation":"

The Elastic IP (EIP) address for the cluster. Don't specify the Elastic IP address for a publicly accessible cluster with availability zone relocation turned on.

" }, "ClusterParameterGroupName":{ "shape":"String", @@ -8605,7 +8675,7 @@ }, "AquaConfigurationStatus":{ "shape":"AquaConfigurationStatus", - "documentation":"

The value represents how the cluster is configured to use AQUA (Advanced Query Accelerator) after the cluster is restored. Possible values include the following.

  • enabled - Use AQUA if it is available for the current Amazon Web Services Region and Amazon Redshift node type.

  • disabled - Don't use AQUA.

  • auto - Amazon Redshift determines whether to use AQUA.

" + "documentation":"

This parameter is retired. It does not set the AQUA configuration status. Amazon Redshift automatically determines whether to use AQUA (Advanced Query Accelerator).

" }, "DefaultIamRoleArn":{ "shape":"String", @@ -8811,15 +8881,16 @@ }, "RevokeSnapshotAccessMessage":{ "type":"structure", - "required":[ - "SnapshotIdentifier", - "AccountWithRestoreAccess" - ], + "required":["AccountWithRestoreAccess"], "members":{ "SnapshotIdentifier":{ "shape":"String", "documentation":"

The identifier of the snapshot that the account can no longer access.

" }, + "SnapshotArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the snapshot associated with the message to revoke access.

" + }, "SnapshotClusterIdentifier":{ "shape":"String", "documentation":"

The identifier of the cluster the snapshot was created from. This parameter is required if your IAM user has a policy containing a snapshot resource element that specifies anything other than * for the cluster name.

" diff --git a/botocore/data/rekognition/2016-06-27/endpoint-rule-set-1.json b/botocore/data/rekognition/2016-06-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..34272931 --- /dev/null +++ b/botocore/data/rekognition/2016-06-27/endpoint-rule-set-1.json @@ -0,0 +1,429 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rekognition-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rekognition.ca-central-1" + ] + } + ], + "endpoint": { + "url": "https://rekognition-fips.ca-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rekognition.us-east-1" + ] + } + ], + "endpoint": { + "url": "https://rekognition-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rekognition.us-east-2" + ] + } + ], + "endpoint": { + "url": "https://rekognition-fips.us-east-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rekognition.us-west-1" + ] + } + ], + "endpoint": { + "url": "https://rekognition-fips.us-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rekognition.us-west-2" + ] + } + ], + "endpoint": { + "url": "https://rekognition-fips.us-west-2.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "rekognition.us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://rekognition-fips.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://rekognition-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rekognition.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rekognition.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/rekognition/2016-06-27/paginators-1.json b/botocore/data/rekognition/2016-06-27/paginators-1.json index 61edad7d..1b01bead 100644 --- a/botocore/data/rekognition/2016-06-27/paginators-1.json +++ b/botocore/data/rekognition/2016-06-27/paginators-1.json @@ -47,6 +47,12 @@ "limit_key": "MaxResults", "output_token": "NextToken", "result_key": "DatasetLabelDescriptions" + }, + "ListProjectPolicies": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ProjectPolicies" } } } diff --git a/botocore/data/rekognition/2016-06-27/service-2.json b/botocore/data/rekognition/2016-06-27/service-2.json index 62099fc7..2f6693a7 100644 --- a/botocore/data/rekognition/2016-06-27/service-2.json +++ b/botocore/data/rekognition/2016-06-27/service-2.json @@ -32,6 +32,27 @@ ], "documentation":"

Compares a face in the source input image with each of the 100 largest faces detected in the target input image.

If the source image contains multiple faces, the service detects the largest face and compares it with each face detected in the target image.

CompareFaces uses machine learning algorithms, which are probabilistic. A false negative is an incorrect prediction that a face in the target image has a low similarity confidence score when compared to the face in the source image. To reduce the probability of false negatives, we recommend that you compare the target image against multiple source images. If you plan to use CompareFaces to make a decision that impacts an individual's rights, privacy, or access to services, we recommend that you pass the result to a human for review and further validation before taking action.

You pass the input and target images either as base64-encoded image bytes or as references to images in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes isn't supported. The image must be formatted as a PNG or JPEG file.

In response, the operation returns an array of face matches ordered by similarity score in descending order. For each face match, the response provides a bounding box of the face, facial landmarks, pose details (pitch, roll, and yaw), quality (brightness and sharpness), and confidence value (indicating the level of confidence that the bounding box contains a face). The response also provides a similarity score, which indicates how closely the faces match.

By default, only faces with a similarity score of greater than or equal to 80% are returned in the response. You can change this value by specifying the SimilarityThreshold parameter.

CompareFaces also returns an array of faces that don't match the source image. For each face, it returns a bounding box, confidence value, landmarks, pose details, and quality. The response also returns information about the face in the source image, including the bounding box of the face and confidence value.

The QualityFilter input parameter allows you to filter out detected faces that don’t meet a required quality bar. The quality bar is based on a variety of common use cases. Use QualityFilter to set the quality bar by specifying LOW, MEDIUM, or HIGH. If you do not want to filter detected faces, specify NONE. The default value is NONE.

If the image doesn't contain Exif metadata, CompareFaces returns orientation information for the source and target images. Use these values to display the images with the correct image orientation.

If no faces are detected in the source or target images, CompareFaces returns an InvalidParameterException error.

This is a stateless API operation. That is, data returned by this operation doesn't persist.

For an example, see Comparing Faces in Images in the Amazon Rekognition Developer Guide.

This operation requires permissions to perform the rekognition:CompareFaces action.

" }, + "CopyProjectVersion":{ + "name":"CopyProjectVersion", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CopyProjectVersionRequest"}, + "output":{"shape":"CopyProjectVersionResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"ResourceInUseException"} + ], + "documentation":"

Copies a version of an Amazon Rekognition Custom Labels model from a source project to a destination project. The source and destination projects can be in different AWS accounts but must be in the same AWS Region. You can't copy a model to another AWS service.

To copy a model version to a different AWS account, you need to create a resource-based policy known as a project policy. You attach the project policy to the source project by calling PutProjectPolicy. The project policy gives permission to copy the model version from a trusting AWS account to a trusted account.

For more information creating and attaching a project policy, see Attaching a project policy (SDK) in the Amazon Rekognition Custom Labels Developer Guide.

If you are copying a model version to a project in the same AWS account, you don't need to create a project policy.

To copy a model, the destination project, source project, and source model version must already exist.

Copying a model version takes a while to complete. To get the current status, call DescribeProjectVersions and check the value of Status in the ProjectVersionDescription object. The copy operation has finished when the value of Status is COPYING_COMPLETED.

" + }, "CreateCollection":{ "name":"CreateCollection", "http":{ @@ -205,7 +226,26 @@ {"shape":"ThrottlingException"}, {"shape":"ProvisionedThroughputExceededException"} ], - "documentation":"

Deletes an Amazon Rekognition Custom Labels project. To delete a project you must first delete all models associated with the project. To delete a model, see DeleteProjectVersion.

DeleteProject is an asynchronous operation. To check if the project is deleted, call DescribeProjects. The project is deleted when the project no longer appears in the response.

This operation requires permissions to perform the rekognition:DeleteProject action.

" + "documentation":"

Deletes an Amazon Rekognition Custom Labels project. To delete a project you must first delete all models associated with the project. To delete a model, see DeleteProjectVersion.

DeleteProject is an asynchronous operation. To check if the project is deleted, call DescribeProjects. The project is deleted when the project no longer appears in the response. Be aware that deleting a given project will also delete any ProjectPolicies associated with that project.

This operation requires permissions to perform the rekognition:DeleteProject action.

" + }, + "DeleteProjectPolicy":{ + "name":"DeleteProjectPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteProjectPolicyRequest"}, + "output":{"shape":"DeleteProjectPolicyResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"InvalidPolicyRevisionIdException"} + ], + "documentation":"

Deletes an existing project policy.

To get a list of project policies attached to a project, call ListProjectPolicies. To attach a project policy to a project, call PutProjectPolicy.

" }, "DeleteProjectVersion":{ "name":"DeleteProjectVersion", @@ -397,7 +437,7 @@ {"shape":"ProvisionedThroughputExceededException"}, {"shape":"InvalidImageFormatException"} ], - "documentation":"

Detects instances of real-world entities within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature.

For an example, see Analyzing images stored in an Amazon S3 bucket in the Amazon Rekognition Developer Guide.

DetectLabels does not support the detection of activities. However, activity detection is supported for label detection in videos. For more information, see StartLabelDetection in the Amazon Rekognition Developer Guide.

You pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

For each object, scene, and concept the API returns one or more labels. Each label provides the object name, and the level of confidence that the image contains the object. For example, suppose the input image has a lighthouse, the sea, and a rock. The response includes all three labels, one for each object.

{Name: lighthouse, Confidence: 98.4629}

{Name: rock,Confidence: 79.2097}

{Name: sea,Confidence: 75.061}

In the preceding example, the operation returns one label for each of the three objects. The operation can also return multiple labels for the same object in the image. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels.

{Name: flower,Confidence: 99.0562}

{Name: plant,Confidence: 99.0562}

{Name: tulip,Confidence: 99.0562}

In this example, the detection algorithm more precisely identifies the flower as a tulip.

In response, the API returns an array of labels. In addition, the response also includes the orientation correction. Optionally, you can specify MinConfidence to control the confidence threshold for the labels returned. The default is 55%. You can also add the MaxLabels parameter to limit the number of labels returned.

If the object detected is a person, the operation doesn't provide the same facial details that the DetectFaces operation provides.

DetectLabels returns bounding boxes for instances of common object labels in an array of Instance objects. An Instance object contains a BoundingBox object, for the location of the label on the image. It also includes the confidence by which the bounding box was detected.

DetectLabels also returns a hierarchical taxonomy of detected labels. For example, a detected car might be assigned the label car. The label car has two parent labels: Vehicle (its parent) and Transportation (its grandparent). The response returns the entire list of ancestors for a label. Each ancestor is a unique label in the response. In the previous example, Car, Vehicle, and Transportation are returned as unique labels in the response.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectLabels action.

" + "documentation":"

Detects instances of real-world entities within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature.

For an example, see Analyzing images stored in an Amazon S3 bucket in the Amazon Rekognition Developer Guide.

You pass the input image as base64-encoded image bytes or as a reference to an image in an Amazon S3 bucket. If you use the AWS CLI to call Amazon Rekognition operations, passing image bytes is not supported. The image must be either a PNG or JPEG formatted file.

Optional Parameters

You can specify one or both of the GENERAL_LABELS and IMAGE_PROPERTIES feature types when calling the DetectLabels API. Including GENERAL_LABELS will ensure the response includes the labels detected in the input image, while including IMAGE_PROPERTIES will ensure the response includes information about the image quality and color.

When using GENERAL_LABELS and/or IMAGE_PROPERTIES you can provide filtering criteria to the Settings parameter. You can filter with sets of individual labels or with label categories. You can specify inclusive filters, exclusive filters, or a combination of inclusive and exclusive filters. For more information on filtering see Detecting Labels in an Image.

You can specify MinConfidence to control the confidence threshold for the labels returned. The default is 55%. You can also add the MaxLabels parameter to limit the number of labels returned. The default and upper limit is 1000 labels.

Response Elements

For each object, scene, and concept the API returns one or more labels. The API returns the following types of information regarding labels:

  • Name - The name of the detected label.

  • Confidence - The level of confidence in the label assigned to a detected object.

  • Parents - The ancestor labels for a detected label. DetectLabels returns a hierarchical taxonomy of detected labels. For example, a detected car might be assigned the label car. The label car has two parent labels: Vehicle (its parent) and Transportation (its grandparent). The response includes the all ancestors for a label, where every ancestor is a unique label. In the previous example, Car, Vehicle, and Transportation are returned as unique labels in the response.

  • Aliases - Possible Aliases for the label.

  • Categories - The label categories that the detected label belongs to. A given label can belong to more than one category.

  • BoundingBox — Bounding boxes are described for all instances of detected common object labels, returned in an array of Instance objects. An Instance object contains a BoundingBox object, describing the location of the label on the input image. It also includes the confidence for the accuracy of the detected bounding box.

The API returns the following information regarding the image, as part of the ImageProperties structure:

  • Quality - Information about the Sharpness, Brightness, and Contrast of the input image, scored between 0 to 100. Image quality is returned for the entire image, as well as the background and the foreground.

  • Dominant Color - An array of the dominant colors in the image.

  • Foreground - Information about the Sharpness and Brightness of the input image’s foreground.

  • Background - Information about the Sharpness and Brightness of the input image’s background.

The list of returned labels will include at least one label for every detected object, along with information about that label. In the following example, suppose the input image has a lighthouse, the sea, and a rock. The response includes all three labels, one for each object, as well as the confidence in the label:

{Name: lighthouse, Confidence: 98.4629}

{Name: rock,Confidence: 79.2097}

{Name: sea,Confidence: 75.061}

The list of labels can include multiple labels for the same object. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels.

{Name: flower,Confidence: 99.0562}

{Name: plant,Confidence: 99.0562}

{Name: tulip,Confidence: 99.0562}

In this example, the detection algorithm more precisely identifies the flower as a tulip.

If the object detected is a person, the operation doesn't provide the same facial details that the DetectFaces operation provides.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectLabels action.

" }, "DetectModerationLabels":{ "name":"DetectModerationLabels", @@ -751,6 +791,25 @@ ], "documentation":"

Returns metadata for faces in the specified collection. This metadata includes information such as the bounding box coordinates, the confidence (that the bounding box contains a face), and face ID. For an example, see Listing Faces in a Collection in the Amazon Rekognition Developer Guide.

This operation requires permissions to perform the rekognition:ListFaces action.

" }, + "ListProjectPolicies":{ + "name":"ListProjectPolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListProjectPoliciesRequest"}, + "output":{"shape":"ListProjectPoliciesResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"InvalidPaginationTokenException"} + ], + "documentation":"

Gets a list of the project policies attached to a project.

To attach a project policy to a project, call PutProjectPolicy. To remove a project policy from a project, call DeleteProjectPolicy.

" + }, "ListStreamProcessors":{ "name":"ListStreamProcessors", "http":{ @@ -787,6 +846,29 @@ ], "documentation":"

Returns a list of tags in an Amazon Rekognition collection, stream processor, or Custom Labels model.

This operation requires permissions to perform the rekognition:ListTagsForResource action.

" }, + "PutProjectPolicy":{ + "name":"PutProjectPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutProjectPolicyRequest"}, + "output":{"shape":"PutProjectPolicyResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerError"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPolicyRevisionIdException"}, + {"shape":"MalformedPolicyDocumentException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Attaches a project policy to a Amazon Rekognition Custom Labels project in a trusting AWS account. A project policy specifies that a trusted AWS account can copy a model version from a trusting AWS account to a project in the trusted AWS account. To copy a model version you use the CopyProjectVersion operation.

For more information about the format of a project policy document, see Attaching a project policy (SDK) in the Amazon Rekognition Custom Labels Developer Guide.

The response from PutProjectPolicy is a revision ID for the project policy. You can attach multiple project policies to a project. You can also update an existing project policy by specifying the policy revision ID of the existing policy.

To remove a project policy from a project, call DeleteProjectPolicy. To get a list of project policies attached to a project, call ListProjectPolicies.

You copy a model version by calling CopyProjectVersion.

" + }, "RecognizeCelebrities":{ "name":"RecognizeCelebrities", "http":{ @@ -998,7 +1080,7 @@ {"shape":"ThrottlingException"}, {"shape":"ProvisionedThroughputExceededException"} ], - "documentation":"

Starts the running of the version of a model. Starting a model takes a while to complete. To check the current state of the model, use DescribeProjectVersions.

Once the model is running, you can detect custom labels in new images by calling DetectCustomLabels.

You are charged for the amount of time that the model is running. To stop a running model, call StopProjectVersion.

This operation requires permissions to perform the rekognition:StartProjectVersion action.

" + "documentation":"

Starts the running of the version of a model. Starting a model takes a while to complete. To check the current state of the model, use DescribeProjectVersions.

Once the model is running, you can detect custom labels in new images by calling DetectCustomLabels.

You are charged for the amount of time that the model is running. To stop a running model, call StopProjectVersion.

For more information, see Running a trained Amazon Rekognition Custom Labels model in the Amazon Rekognition Custom Labels Guide.

This operation requires permissions to perform the rekognition:StartProjectVersion action.

" }, "StartSegmentDetection":{ "name":"StartSegmentDetection", @@ -1391,7 +1473,7 @@ "members":{ "Timestamp":{ "shape":"Timestamp", - "documentation":"

The time, in milliseconds from the start of the video, that the celebrity was recognized.

" + "documentation":"

The time, in milliseconds from the start of the video, that the celebrity was recognized. Note that Timestamp is not guaranteed to be accurate to the individual frame where the celebrity first appears.

" }, "Celebrity":{ "shape":"CelebrityDetail", @@ -1604,7 +1686,7 @@ "members":{ "Timestamp":{ "shape":"Timestamp", - "documentation":"

Time, in milliseconds from the beginning of the video, that the content moderation label was detected.

" + "documentation":"

Time, in milliseconds from the beginning of the video, that the content moderation label was detected. Note that Timestamp is not guaranteed to be accurate to the individual frame where the moderated content first appears.

" }, "ModerationLabel":{ "shape":"ModerationLabel", @@ -1624,6 +1706,55 @@ "TIMESTAMP" ] }, + "CopyProjectVersionRequest":{ + "type":"structure", + "required":[ + "SourceProjectArn", + "SourceProjectVersionArn", + "DestinationProjectArn", + "VersionName", + "OutputConfig" + ], + "members":{ + "SourceProjectArn":{ + "shape":"ProjectArn", + "documentation":"

The ARN of the source project in the trusting AWS account.

" + }, + "SourceProjectVersionArn":{ + "shape":"ProjectVersionArn", + "documentation":"

The ARN of the model version in the source project that you want to copy to a destination project.

" + }, + "DestinationProjectArn":{ + "shape":"ProjectArn", + "documentation":"

The ARN of the project in the trusted AWS account that you want to copy the model version to.

" + }, + "VersionName":{ + "shape":"VersionName", + "documentation":"

A name for the version of the model that's copied to the destination project.

" + }, + "OutputConfig":{ + "shape":"OutputConfig", + "documentation":"

The S3 bucket and folder location where the training output for the source model version is placed.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The key-value tags to assign to the model version.

" + }, + "KmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

The identifier for your AWS Key Management Service key (AWS KMS key). You can supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key, an alias for your KMS key, or an alias ARN. The key is used to encrypt training results and manifest files written to the output Amazon S3 bucket (OutputConfig).

If you choose to use your own KMS key, you need the following permissions on the KMS key.

  • kms:CreateGrant

  • kms:DescribeKey

  • kms:GenerateDataKey

  • kms:Decrypt

If you don't specify a value for KmsKeyId, images copied into the service are encrypted using a key that AWS owns and manages.

" + } + } + }, + "CopyProjectVersionResponse":{ + "type":"structure", + "members":{ + "ProjectVersionArn":{ + "shape":"ProjectVersionArn", + "documentation":"

The ARN of the copied model version in the destination project.

" + } + } + }, "CoversBodyPart":{ "type":"structure", "members":{ @@ -1806,7 +1937,7 @@ }, "RegionsOfInterest":{ "shape":"RegionsOfInterest", - "documentation":"

Specifies locations in the frames where Amazon Rekognition checks for objects or people. You can specify up to 10 regions of interest. This is an optional parameter for label detection stream processors and should not be used to create a face search stream processor.

" + "documentation":"

Specifies locations in the frames where Amazon Rekognition checks for objects or people. You can specify up to 10 regions of interest, and each region has either a polygon or a bounding box. This is an optional parameter for label detection stream processors and should not be used to create a face search stream processor.

" }, "DataSharingPreference":{ "shape":"StreamProcessorDataSharingPreference", @@ -2106,6 +2237,32 @@ } } }, + "DeleteProjectPolicyRequest":{ + "type":"structure", + "required":[ + "ProjectArn", + "PolicyName" + ], + "members":{ + "ProjectArn":{ + "shape":"ProjectArn", + "documentation":"

The Amazon Resource Name (ARN) of the project that the project policy you want to delete is attached to.

" + }, + "PolicyName":{ + "shape":"ProjectPolicyName", + "documentation":"

The name of the policy that you want to delete.

" + }, + "PolicyRevisionId":{ + "shape":"ProjectPolicyRevisionId", + "documentation":"

The ID of the project policy revision that you want to delete.

" + } + } + }, + "DeleteProjectPolicyResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteProjectRequest":{ "type":"structure", "required":["ProjectArn"], @@ -2400,6 +2557,102 @@ } } }, + "DetectLabelsFeatureList":{ + "type":"list", + "member":{"shape":"DetectLabelsFeatureName"}, + "max":2, + "min":0 + }, + "DetectLabelsFeatureName":{ + "type":"string", + "enum":[ + "GENERAL_LABELS", + "IMAGE_PROPERTIES" + ] + }, + "DetectLabelsImageBackground":{ + "type":"structure", + "members":{ + "Quality":{ + "shape":"DetectLabelsImageQuality", + "documentation":"

The quality of the image background as defined by brightness and sharpness.

" + }, + "DominantColors":{ + "shape":"DominantColors", + "documentation":"

The dominant colors found in the background of an image, defined with RGB values, CSS color name, simplified color name, and PixelPercentage (the percentage of image pixels that have a particular color).

" + } + }, + "documentation":"

The background of the image with regard to image quality and dominant colors.

" + }, + "DetectLabelsImageForeground":{ + "type":"structure", + "members":{ + "Quality":{ + "shape":"DetectLabelsImageQuality", + "documentation":"

The quality of the image foreground as defined by brightness and sharpness.

" + }, + "DominantColors":{ + "shape":"DominantColors", + "documentation":"

The dominant colors found in the foreground of an image, defined with RGB values, CSS color name, simplified color name, and PixelPercentage (the percentage of image pixels that have a particular color).

" + } + }, + "documentation":"

The foreground of the image with regard to image quality and dominant colors.

" + }, + "DetectLabelsImageProperties":{ + "type":"structure", + "members":{ + "Quality":{ + "shape":"DetectLabelsImageQuality", + "documentation":"

Information about the quality of the image foreground as defined by brightness, sharpness, and contrast. The higher the value the greater the brightness, sharpness, and contrast respectively.

" + }, + "DominantColors":{ + "shape":"DominantColors", + "documentation":"

Information about the dominant colors found in an image, described with RGB values, CSS color name, simplified color name, and PixelPercentage (the percentage of image pixels that have a particular color).

" + }, + "Foreground":{ + "shape":"DetectLabelsImageForeground", + "documentation":"

Information about the properties of an image’s foreground, including the foreground’s quality and dominant colors, including the quality and dominant colors of the image.

" + }, + "Background":{ + "shape":"DetectLabelsImageBackground", + "documentation":"

Information about the properties of an image’s background, including the background’s quality and dominant colors, including the quality and dominant colors of the image.

" + } + }, + "documentation":"

Information about the quality and dominant colors of an input image. Quality and color information is returned for the entire image, foreground, and background.

" + }, + "DetectLabelsImagePropertiesSettings":{ + "type":"structure", + "members":{ + "MaxDominantColors":{ + "shape":"DetectLabelsMaxDominantColors", + "documentation":"

The maximum number of dominant colors to return when detecting labels in an image. The default value is 10.

" + } + }, + "documentation":"

Settings for the IMAGE_PROPERTIES feature type.

" + }, + "DetectLabelsImageQuality":{ + "type":"structure", + "members":{ + "Brightness":{ + "shape":"Float", + "documentation":"

The brightness of an image provided for label detection.

" + }, + "Sharpness":{ + "shape":"Float", + "documentation":"

The sharpness of an image provided for label detection.

" + }, + "Contrast":{ + "shape":"Float", + "documentation":"

The contrast of an image provided for label detection.

" + } + }, + "documentation":"

The quality of an image provided for label detection, with regard to brightness, sharpness, and contrast.

" + }, + "DetectLabelsMaxDominantColors":{ + "type":"integer", + "max":20, + "min":0 + }, "DetectLabelsRequest":{ "type":"structure", "required":["Image"], @@ -2415,6 +2668,14 @@ "MinConfidence":{ "shape":"Percent", "documentation":"

Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn't return any labels with confidence lower than this specified value.

If MinConfidence is not specified, the operation returns labels with a confidence values greater than or equal to 55 percent.

" + }, + "Features":{ + "shape":"DetectLabelsFeatureList", + "documentation":"

A list of the types of analysis to perform. Specifying GENERAL_LABELS uses the label detection feature, while specifying IMAGE_PROPERTIES returns information regarding image color and quality. If no option is specified GENERAL_LABELS is used by default.

" + }, + "Settings":{ + "shape":"DetectLabelsSettings", + "documentation":"

A list of the filters to be applied to returned detected labels and image properties. Specified filters can be inclusive, exclusive, or a combination of both. Filters can be used for individual labels or label categories. The exact label names or label categories must be supplied. For a full list of labels and label categories, see LINK HERE.

" } } }, @@ -2432,9 +2693,27 @@ "LabelModelVersion":{ "shape":"String", "documentation":"

Version number of the label detection model that was used to detect labels.

" + }, + "ImageProperties":{ + "shape":"DetectLabelsImageProperties", + "documentation":"

Information about the properties of the input image, such as brightness, sharpness, contrast, and dominant colors.

" } } }, + "DetectLabelsSettings":{ + "type":"structure", + "members":{ + "GeneralLabels":{ + "shape":"GeneralLabelsSettings", + "documentation":"

Contains the specified filters for GENERAL_LABELS.

" + }, + "ImageProperties":{ + "shape":"DetectLabelsImagePropertiesSettings", + "documentation":"

Contains the chosen number of maximum dominant colors in an image.

" + } + }, + "documentation":"

Settings for the DetectLabels request. Settings can include filters for both GENERAL_LABELS and IMAGE_PROPERTIES. GENERAL_LABELS filters can be inclusive or exclusive and applied to individual labels or label categories. IMAGE_PROPERTIES filters allow specification of a maximum number of dominant colors.

" + }, "DetectModerationLabelsRequest":{ "type":"structure", "required":["Image"], @@ -2589,6 +2868,44 @@ "max":2, "min":2 }, + "DominantColor":{ + "type":"structure", + "members":{ + "Red":{ + "shape":"UInteger", + "documentation":"

The Red RGB value for a dominant color.

" + }, + "Blue":{ + "shape":"UInteger", + "documentation":"

The Blue RGB value for a dominant color.

" + }, + "Green":{ + "shape":"UInteger", + "documentation":"

The Green RGB value for a dominant color.

" + }, + "HexCode":{ + "shape":"String", + "documentation":"

The Hex code equivalent of the RGB values for a dominant color.

" + }, + "CSSColor":{ + "shape":"String", + "documentation":"

The CSS color name of a dominant color.

" + }, + "SimplifiedColor":{ + "shape":"String", + "documentation":"

One of 12 simplified color names applied to a dominant color.

" + }, + "PixelPercent":{ + "shape":"Percent", + "documentation":"

The percentage of image pixels that have a given dominant color.

" + } + }, + "documentation":"

A description of the dominant colors in an image.

" + }, + "DominantColors":{ + "type":"list", + "member":{"shape":"DominantColor"} + }, "Emotion":{ "type":"structure", "members":{ @@ -2811,7 +3128,7 @@ "members":{ "Timestamp":{ "shape":"Timestamp", - "documentation":"

Time, in milliseconds from the start of the video, that the face was detected.

" + "documentation":"

Time, in milliseconds from the start of the video, that the face was detected. Note that Timestamp is not guaranteed to be accurate to the individual frame where the face first appears.

" }, "Face":{ "shape":"FaceDetail", @@ -2925,6 +3242,40 @@ "Female" ] }, + "GeneralLabelsFilterList":{ + "type":"list", + "member":{"shape":"GeneralLabelsFilterValue"}, + "max":100, + "min":0 + }, + "GeneralLabelsFilterValue":{ + "type":"string", + "max":50, + "min":0, + "pattern":"[A-Za-z0-9àâèçñó'-_(). ]*" + }, + "GeneralLabelsSettings":{ + "type":"structure", + "members":{ + "LabelInclusionFilters":{ + "shape":"GeneralLabelsFilterList", + "documentation":"

The labels that should be included in the return from DetectLabels.

" + }, + "LabelExclusionFilters":{ + "shape":"GeneralLabelsFilterList", + "documentation":"

The labels that should be excluded from the return from DetectLabels.

" + }, + "LabelCategoryInclusionFilters":{ + "shape":"GeneralLabelsFilterList", + "documentation":"

The label categories that should be included in the return from DetectLabels.

" + }, + "LabelCategoryExclusionFilters":{ + "shape":"GeneralLabelsFilterList", + "documentation":"

The label categories that should be excluded from the return from DetectLabels.

" + } + }, + "documentation":"

Contains filters for the object labels returned by DetectLabels. Filters can be inclusive, exclusive, or a combination of both and can be applied to individual l abels or entire label categories.

" + }, "Geometry":{ "type":"structure", "members":{ @@ -3573,6 +3924,10 @@ "Confidence":{ "shape":"Percent", "documentation":"

The confidence that Amazon Rekognition has in the accuracy of the bounding box.

" + }, + "DominantColors":{ + "shape":"DominantColors", + "documentation":"

The dominant colors found in an individual instance of a label.

" } }, "documentation":"

An instance of a label returned by Amazon Rekognition Image (DetectLabels) or by Amazon Rekognition Video (GetLabelDetection).

" @@ -3610,6 +3965,13 @@ "documentation":"

Input parameter violated a constraint. Validate your parameter before calling the API operation again.

", "exception":true }, + "InvalidPolicyRevisionIdException":{ + "type":"structure", + "members":{ + }, + "documentation":"

The supplied revision id for the project policy is invalid.

", + "exception":true + }, "InvalidS3ObjectException":{ "type":"structure", "members":{ @@ -3669,14 +4031,14 @@ "members":{ "ProducerTimestamp":{ "shape":"ULong", - "documentation":"

The timestamp from the producer corresponding to the fragment.

" + "documentation":"

The timestamp from the producer corresponding to the fragment, in milliseconds, expressed in unix time format.

" }, "FragmentNumber":{ "shape":"KinesisVideoStreamFragmentNumber", "documentation":"

The unique identifier of the fragment. This value monotonically increases based on the ingestion order.

" } }, - "documentation":"

Specifies the starting point in a Kinesis stream to start processing. You can use the producer timestamp or the fragment number. For more information, see Fragment.

" + "documentation":"

Specifies the starting point in a Kinesis stream to start processing. You can use the producer timestamp or the fragment number. One of either producer timestamp or fragment number is required. If you use the producer timestamp, you must put the time in milliseconds. For more information about fragment numbers, see Fragment.

" }, "KmsKeyId":{ "type":"string", @@ -3722,16 +4084,52 @@ "Parents":{ "shape":"Parents", "documentation":"

The parent labels for a label. The response includes all ancestor labels.

" + }, + "Aliases":{ + "shape":"LabelAliases", + "documentation":"

A list of potential aliases for a given label.

" + }, + "Categories":{ + "shape":"LabelCategories", + "documentation":"

A list of the categories associated with a given label.

" } }, "documentation":"

Structure containing details about the detected label, including the name, detected instances, parent labels, and level of confidence.

" }, + "LabelAlias":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"String", + "documentation":"

The name of an alias for a given label.

" + } + }, + "documentation":"

A potential alias of for a given label.

" + }, + "LabelAliases":{ + "type":"list", + "member":{"shape":"LabelAlias"} + }, + "LabelCategories":{ + "type":"list", + "member":{"shape":"LabelCategory"} + }, + "LabelCategory":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"String", + "documentation":"

The name of a category that applies to a given label.

" + } + }, + "documentation":"

The category that applies to a given label.

" + }, "LabelDetection":{ "type":"structure", "members":{ "Timestamp":{ "shape":"Timestamp", - "documentation":"

Time, in milliseconds from the start of the video, that the label was detected.

" + "documentation":"

Time, in milliseconds from the start of the video, that the label was detected. Note that Timestamp is not guaranteed to be accurate to the individual frame where the label first appears.

" }, "Label":{ "shape":"Label", @@ -3972,6 +4370,42 @@ } } }, + "ListProjectPoliciesPageSize":{ + "type":"integer", + "max":5, + "min":1 + }, + "ListProjectPoliciesRequest":{ + "type":"structure", + "required":["ProjectArn"], + "members":{ + "ProjectArn":{ + "shape":"ProjectArn", + "documentation":"

The ARN of the project for which you want to list the project policies.

" + }, + "NextToken":{ + "shape":"ExtendedPaginationToken", + "documentation":"

If the previous response was incomplete (because there is more results to retrieve), Amazon Rekognition Custom Labels returns a pagination token in the response. You can use this pagination token to retrieve the next set of results.

" + }, + "MaxResults":{ + "shape":"ListProjectPoliciesPageSize", + "documentation":"

The maximum number of results to return per paginated call. The largest value you can specify is 5. If you specify a value greater than 5, a ValidationException error occurs. The default value is 5.

" + } + } + }, + "ListProjectPoliciesResponse":{ + "type":"structure", + "members":{ + "ProjectPolicies":{ + "shape":"ProjectPolicies", + "documentation":"

A list of project policies attached to the project.

" + }, + "NextToken":{ + "shape":"ExtendedPaginationToken", + "documentation":"

If the response is truncated, Amazon Rekognition returns this token that you can use in the subsequent request to retrieve the next set of project policies.

" + } + } + }, "ListStreamProcessorsRequest":{ "type":"structure", "members":{ @@ -4017,6 +4451,13 @@ } } }, + "MalformedPolicyDocumentException":{ + "type":"structure", + "members":{ + }, + "documentation":"

The format of the project policy document that you supplied to PutProjectPolicy is incorrect.

", + "exception":true + }, "MaxDurationInSecondsULong":{ "type":"long", "max":120, @@ -4187,7 +4628,7 @@ "members":{ "Timestamp":{ "shape":"Timestamp", - "documentation":"

The time, in milliseconds from the start of the video, that the person's path was tracked.

" + "documentation":"

The time, in milliseconds from the start of the video, that the person's path was tracked. Note that Timestamp is not guaranteed to be accurate to the individual frame where the person's path first appears.

" }, "Person":{ "shape":"PersonDetail", @@ -4310,6 +4751,57 @@ "max":10, "min":1 }, + "ProjectPolicies":{ + "type":"list", + "member":{"shape":"ProjectPolicy"} + }, + "ProjectPolicy":{ + "type":"structure", + "members":{ + "ProjectArn":{ + "shape":"ProjectArn", + "documentation":"

The Amazon Resource Name (ARN) of the project to which the project policy is attached.

" + }, + "PolicyName":{ + "shape":"ProjectPolicyName", + "documentation":"

The name of the project policy.

" + }, + "PolicyRevisionId":{ + "shape":"ProjectPolicyRevisionId", + "documentation":"

The revision ID of the project policy.

" + }, + "PolicyDocument":{ + "shape":"ProjectPolicyDocument", + "documentation":"

The JSON document for the project policy.

" + }, + "CreationTimestamp":{ + "shape":"DateTime", + "documentation":"

The Unix datetime for the creation of the project policy.

" + }, + "LastUpdatedTimestamp":{ + "shape":"DateTime", + "documentation":"

The Unix datetime for when the project policy was last updated.

" + } + }, + "documentation":"

Describes a project policy in the response from ListProjectPolicies.

" + }, + "ProjectPolicyDocument":{ + "type":"string", + "max":2000, + "min":1, + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+" + }, + "ProjectPolicyName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[a-zA-Z0-9_.\\-]+" + }, + "ProjectPolicyRevisionId":{ + "type":"string", + "max":64, + "pattern":"[0-9A-Fa-f]+" + }, "ProjectStatus":{ "type":"string", "enum":[ @@ -4378,6 +4870,14 @@ "KmsKeyId":{ "shape":"KmsKeyId", "documentation":"

The identifer for the AWS Key Management Service key (AWS KMS key) that was used to encrypt the model during training.

" + }, + "MaxInferenceUnits":{ + "shape":"InferenceUnits", + "documentation":"

The maximum number of inference units Amazon Rekognition Custom Labels uses to auto-scale the model. For more information, see StartProjectVersion.

" + }, + "SourceProjectVersionArn":{ + "shape":"ProjectVersionArn", + "documentation":"

If the model version was copied from a different project, SourceProjectVersionArn contains the ARN of the source model version.

" } }, "documentation":"

A description of a version of an Amazon Rekognition Custom Labels model.

" @@ -4397,7 +4897,10 @@ "FAILED", "STOPPING", "STOPPED", - "DELETING" + "DELETING", + "COPYING_IN_PROGRESS", + "COPYING_COMPLETED", + "COPYING_FAILED" ] }, "ProjectVersionsPageSize":{ @@ -4513,6 +5016,41 @@ "documentation":"

The number of requests exceeded your throughput limit. If you want to increase this limit, contact Amazon Rekognition.

", "exception":true }, + "PutProjectPolicyRequest":{ + "type":"structure", + "required":[ + "ProjectArn", + "PolicyName", + "PolicyDocument" + ], + "members":{ + "ProjectArn":{ + "shape":"ProjectArn", + "documentation":"

The Amazon Resource Name (ARN) of the project that the project policy is attached to.

" + }, + "PolicyName":{ + "shape":"ProjectPolicyName", + "documentation":"

A name for the policy.

" + }, + "PolicyRevisionId":{ + "shape":"ProjectPolicyRevisionId", + "documentation":"

The revision ID for the Project Policy. Each time you modify a policy, Amazon Rekognition Custom Labels generates and assigns a new PolicyRevisionId and then deletes the previous version of the policy.

" + }, + "PolicyDocument":{ + "shape":"ProjectPolicyDocument", + "documentation":"

A resource policy to add to the model. The policy is a JSON structure that contains one or more statements that define the policy. The policy must follow the IAM syntax. For more information about the contents of a JSON policy document, see IAM JSON policy reference.

" + } + } + }, + "PutProjectPolicyResponse":{ + "type":"structure", + "members":{ + "PolicyRevisionId":{ + "shape":"ProjectPolicyRevisionId", + "documentation":"

The ID of the project policy.

" + } + } + }, "QualityFilter":{ "type":"string", "enum":[ @@ -4584,7 +5122,7 @@ "documentation":"

Specifies a shape made up of up to 10 Point objects to define a region of interest.

" } }, - "documentation":"

Specifies a location within the frame that Rekognition checks for objects of interest such as text, labels, or faces. It uses a BoundingBox or object or Polygon to set a region of the screen.

A word, face, or label is included in the region if it is more than half in that region. If there is more than one region, the word, face, or label is compared with all regions of the screen. Any object of interest that is more than half in a region is kept in the results.

" + "documentation":"

Specifies a location within the frame that Rekognition checks for objects of interest such as text, labels, or faces. It uses a BoundingBox or Polygon to set a region of the screen.

A word, face, or label is included in the region if it is more than half in that region. If there is more than one region, the word, face, or label is compared with all regions of the screen. Any object of interest that is more than half in a region is kept in the results.

" }, "RegionsOfInterest":{ "type":"list", @@ -5131,7 +5669,11 @@ }, "MinInferenceUnits":{ "shape":"InferenceUnits", - "documentation":"

The minimum number of inference units to use. A single inference unit represents 1 hour of processing and can support up to 5 Transaction Pers Second (TPS). Use a higher number to increase the TPS throughput of your model. You are charged for the number of inference units that you use.

" + "documentation":"

The minimum number of inference units to use. A single inference unit represents 1 hour of processing.

For information about the number of transactions per second (TPS) that an inference unit can support, see Running a trained Amazon Rekognition Custom Labels model in the Amazon Rekognition Custom Labels Guide.

Use a higher number to increase the TPS throughput of your model. You are charged for the number of inference units that you use.

" + }, + "MaxInferenceUnits":{ + "shape":"InferenceUnits", + "documentation":"

The maximum number of inference units to use for auto-scaling the model. If you don't specify a value, Amazon Rekognition Custom Labels doesn't auto-scale the model.

" } } }, @@ -5217,7 +5759,7 @@ }, "StartSelector":{ "shape":"StreamProcessingStartSelector", - "documentation":"

Specifies the starting point in the Kinesis stream to start processing. You can use the producer timestamp or the fragment number. For more information, see Fragment.

This is a required parameter for label detection stream processors and should not be used to start a face search stream processor.

" + "documentation":"

Specifies the starting point in the Kinesis stream to start processing. You can use the producer timestamp or the fragment number. If you use the producer timestamp, you must put the time in milliseconds. For more information about fragment numbers, see Fragment.

This is a required parameter for label detection stream processors and should not be used to start a face search stream processor.

" }, "StopSelector":{ "shape":"StreamProcessingStopSelector", @@ -5332,10 +5874,10 @@ "members":{ "KVSStreamStartSelector":{ "shape":"KinesisVideoStreamStartSelector", - "documentation":"

Specifies the starting point in the stream to start processing. This can be done with a timestamp or a fragment number in a Kinesis stream.

" + "documentation":"

Specifies the starting point in the stream to start processing. This can be done with a producer timestamp or a fragment number in a Kinesis stream.

" } }, - "documentation":"

" + "documentation":"

This is a required parameter for label detection stream processors and should not be used to start a face search stream processor.

" }, "StreamProcessingStopSelector":{ "type":"structure", @@ -5630,7 +6172,7 @@ "members":{ "Timestamp":{ "shape":"Timestamp", - "documentation":"

The time, in milliseconds from the start of the video, that the text was detected.

" + "documentation":"

The time, in milliseconds from the start of the video, that the text was detected. Note that Timestamp is not guaranteed to be accurate to the individual frame where the text first appears.

" }, "TextDetection":{ "shape":"TextDetection", @@ -5889,5 +6431,5 @@ "exception":true } }, - "documentation":"

This is the API Reference for Amazon Rekognition Image, Amazon Rekognition Custom Labels, Amazon Rekognition Stored Video, Amazon Rekognition Streaming Video. It provides descriptions of actions, data types, common parameters, and common errors.

Amazon Rekognition Image

Amazon Rekognition Custom Labels

Amazon Rekognition Video Stored Video

Amazon Rekognition Video Streaming Video

" + "documentation":"

This is the API Reference for Amazon Rekognition Image, Amazon Rekognition Custom Labels, Amazon Rekognition Stored Video, Amazon Rekognition Streaming Video. It provides descriptions of actions, data types, common parameters, and common errors.

Amazon Rekognition Image

Amazon Rekognition Custom Labels

Amazon Rekognition Video Stored Video

Amazon Rekognition Video Streaming Video

" } diff --git a/botocore/data/resiliencehub/2020-04-30/endpoint-rule-set-1.json b/botocore/data/resiliencehub/2020-04-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..4b3afb58 --- /dev/null +++ b/botocore/data/resiliencehub/2020-04-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://resiliencehub.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/resiliencehub/2020-04-30/examples-1.json b/botocore/data/resiliencehub/2020-04-30/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/resiliencehub/2020-04-30/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/resiliencehub/2020-04-30/service-2.json b/botocore/data/resiliencehub/2020-04-30/service-2.json index df9ff05d..80a22397 100644 --- a/botocore/data/resiliencehub/2020-04-30/service-2.json +++ b/botocore/data/resiliencehub/2020-04-30/service-2.json @@ -49,7 +49,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Creates a Resilience Hub application. A Resilience Hub application is a collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application, you provide an application name, resources from one or more–up to five–CloudFormation stacks, and an appropriate resiliency policy.

 <p>After you create a Resilience Hub application, you publish it so that you can run a resiliency assessment on it. You can then use recommendations from the assessment to improve resiliency by running another assessment, comparing results, and then iterating the process until you achieve your goals for recovery time objective (RTO) and recovery point objective (RPO).</p> 
" + "documentation":"

Creates a Resilience Hub application. A Resilience Hub application is a collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application, you provide an application name, resources from one or more–up to five–CloudFormation stacks, and an appropriate resiliency policy.

After you create a Resilience Hub application, you publish it so that you can run a resiliency assessment on it. You can then use recommendations from the assessment to improve resiliency by running another assessment, comparing results, and then iterating the process until you achieve your goals for recovery time objective (RTO) and recovery point objective (RPO).

" }, "CreateRecommendationTemplate":{ "name":"CreateRecommendationTemplate", @@ -898,7 +898,7 @@ }, "status":{ "shape":"AppStatusType", - "documentation":"

The status of the action.

" + "documentation":"

The status of the application.

" }, "tags":{ "shape":"TagMap", @@ -1154,6 +1154,10 @@ "resiliencyScore":{ "shape":"Double", "documentation":"

The current resiliency score for the application.

" + }, + "status":{ + "shape":"AppStatusType", + "documentation":"

The status of the application.

" } }, "documentation":"

Defines an application summary.

" @@ -1164,7 +1168,7 @@ }, "AppTemplateBody":{ "type":"string", - "max":51200, + "max":204800, "min":0, "pattern":"^[\\w\\s:,-\\.'{}\\[\\]:\"]+$" }, @@ -1332,7 +1336,8 @@ "LeastChange", "BestAZRecovery", "LeastErrors", - "BestAttainable" + "BestAttainable", + "BestRegionRecovery" ] }, "ConflictException":{ diff --git a/botocore/data/resource-explorer-2/2022-07-28/endpoint-rule-set-1.json b/botocore/data/resource-explorer-2/2022-07-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..6b5f902d --- /dev/null +++ b/botocore/data/resource-explorer-2/2022-07-28/endpoint-rule-set-1.json @@ -0,0 +1,248 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resource-explorer-2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://resource-explorer-2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resource-explorer-2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://resource-explorer-2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/resource-explorer-2/2022-07-28/paginators-1.json b/botocore/data/resource-explorer-2/2022-07-28/paginators-1.json new file mode 100644 index 00000000..8cb90d36 --- /dev/null +++ b/botocore/data/resource-explorer-2/2022-07-28/paginators-1.json @@ -0,0 +1,28 @@ +{ + "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" + } + } +} diff --git a/botocore/data/resource-explorer-2/2022-07-28/paginators-1.sdk-extras.json b/botocore/data/resource-explorer-2/2022-07-28/paginators-1.sdk-extras.json new file mode 100644 index 00000000..a5959a58 --- /dev/null +++ b/botocore/data/resource-explorer-2/2022-07-28/paginators-1.sdk-extras.json @@ -0,0 +1,13 @@ +{ + "version": 1.0, + "merge": { + "pagination": { + "Search": { + "non_aggregate_keys": [ + "ViewArn", + "Count" + ] + } + } + } +} diff --git a/botocore/data/resource-explorer-2/2022-07-28/service-2.json b/botocore/data/resource-explorer-2/2022-07-28/service-2.json new file mode 100644 index 00000000..28132e57 --- /dev/null +++ b/botocore/data/resource-explorer-2/2022-07-28/service-2.json @@ -0,0 +1,1346 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-07-28", + "endpointPrefix":"resource-explorer-2", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS Resource Explorer", + "serviceId":"Resource Explorer 2", + "signatureVersion":"v4", + "signingName":"resource-explorer-2", + "uid":"resource-explorer-2-2022-07-28" + }, + "operations":{ + "AssociateDefaultView":{ + "name":"AssociateDefaultView", + "http":{ + "method":"POST", + "requestUri":"/AssociateDefaultView", + "responseCode":200 + }, + "input":{"shape":"AssociateDefaultViewInput"}, + "output":{"shape":"AssociateDefaultViewOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Sets the specified view as the default for the Amazon Web Services Region in which you call this operation. When a user performs a Search that doesn't explicitly specify which view to use, then Amazon Web Services Resource Explorer automatically chooses this default view for searches performed in this Amazon Web Services Region.

If an Amazon Web Services Region doesn't have a default view configured, then users must explicitly specify a view with every Search operation performed in that Region.

", + "idempotent":true + }, + "BatchGetView":{ + "name":"BatchGetView", + "http":{ + "method":"POST", + "requestUri":"/BatchGetView", + "responseCode":200 + }, + "input":{"shape":"BatchGetViewInput"}, + "output":{"shape":"BatchGetViewOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves details about a list of views.

" + }, + "CreateIndex":{ + "name":"CreateIndex", + "http":{ + "method":"POST", + "requestUri":"/CreateIndex", + "responseCode":200 + }, + "input":{"shape":"CreateIndexInput"}, + "output":{"shape":"CreateIndexOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Turns on Amazon Web Services Resource Explorer in the Amazon Web Services Region in which you called this operation by creating an index. Resource Explorer begins discovering the resources in this Region and stores the details about the resources in the index so that they can be queried by using the Search operation. You can create only one index in a Region.

This operation creates only a local index. To promote the local index in one Amazon Web Services Region into the aggregator index for the Amazon Web Services account, use the UpdateIndexType operation. For more information, see Turning on cross-Region search by creating an aggregator index in the Amazon Web Services Resource Explorer User Guide.

For more details about what happens when you turn on Resource Explorer in an Amazon Web Services Region, see Turn on Resource Explorer to index your resources in an Amazon Web Services Region in the Amazon Web Services Resource Explorer User Guide.

If this is the first Amazon Web Services Region in which you've created an index for Resource Explorer, then this operation also creates a service-linked role in your Amazon Web Services account that allows Resource Explorer to enumerate your resources to populate the index.

  • Action: resource-explorer-2:CreateIndex

    Resource: The ARN of the index (as it will exist after the operation completes) in the Amazon Web Services Region and account in which you're trying to create the index. Use the wildcard character (*) at the end of the string to match the eventual UUID. For example, the following Resource element restricts the role or user to creating an index in only the us-east-2 Region of the specified account.

    \"Resource\": \"arn:aws:resource-explorer-2:us-west-2:<account-id>:index/*\"

    Alternatively, you can use \"Resource\": \"*\" to allow the role or user to create an index in any Region.

  • Action: iam:CreateServiceLinkedRole

    Resource: No specific resource (*).

    This permission is required only the first time you create an index to turn on Resource Explorer in the account. Resource Explorer uses this to create the service-linked role needed to index the resources in your account. Resource Explorer uses the same service-linked role for all additional indexes you create afterwards.

", + "idempotent":true + }, + "CreateView":{ + "name":"CreateView", + "http":{ + "method":"POST", + "requestUri":"/CreateView", + "responseCode":200 + }, + "input":{"shape":"CreateViewInput"}, + "output":{"shape":"CreateViewOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a view that users can query by using the Search operation. Results from queries that you make using this view include only resources that match the view's Filters. For more information about Amazon Web Services Resource Explorer views, see Managing views in the Amazon Web Services Resource Explorer User Guide.

Only the principals with an IAM identity-based policy that grants Allow to the Search action on a Resource with the Amazon resource name (ARN) of this view can Search using views you create with this operation.

" + }, + "DeleteIndex":{ + "name":"DeleteIndex", + "http":{ + "method":"POST", + "requestUri":"/DeleteIndex", + "responseCode":200 + }, + "input":{"shape":"DeleteIndexInput"}, + "output":{"shape":"DeleteIndexOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes the specified index and turns off Amazon Web Services Resource Explorer in the specified Amazon Web Services Region. When you delete an index, Resource Explorer stops discovering and indexing resources in that Region. Resource Explorer also deletes all views in that Region. These actions occur as asynchronous background tasks. You can check to see when the actions are complete by using the GetIndex operation and checking the Status response value.

", + "idempotent":true + }, + "DeleteView":{ + "name":"DeleteView", + "http":{ + "method":"POST", + "requestUri":"/DeleteView", + "responseCode":200 + }, + "input":{"shape":"DeleteViewInput"}, + "output":{"shape":"DeleteViewOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes the specified view.

If the specified view is the default view for its Amazon Web Services Region, then all Search operations in that Region must explicitly specify the view to use until you configure a new default by calling the AssociateDefaultView operation.

", + "idempotent":true + }, + "DisassociateDefaultView":{ + "name":"DisassociateDefaultView", + "http":{ + "method":"POST", + "requestUri":"/DisassociateDefaultView", + "responseCode":200 + }, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

After you call this operation, the affected Amazon Web Services Region no longer has a default view. All Search operations in that Region must explicitly specify a view or the operation fails. You can configure a new default by calling the AssociateDefaultView operation.

If an Amazon Web Services Region doesn't have a default view configured, then users must explicitly specify a view with every Search operation performed in that Region.

", + "idempotent":true + }, + "GetDefaultView":{ + "name":"GetDefaultView", + "http":{ + "method":"POST", + "requestUri":"/GetDefaultView", + "responseCode":200 + }, + "output":{"shape":"GetDefaultViewOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves the Amazon Resource Name (ARN) of the view that is the default for the Amazon Web Services Region in which you call this operation. You can then call GetView to retrieve the details of that view.

" + }, + "GetIndex":{ + "name":"GetIndex", + "http":{ + "method":"POST", + "requestUri":"/GetIndex", + "responseCode":200 + }, + "output":{"shape":"GetIndexOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves details about the Amazon Web Services Resource Explorer index in the Amazon Web Services Region in which you invoked the operation.

" + }, + "GetView":{ + "name":"GetView", + "http":{ + "method":"POST", + "requestUri":"/GetView", + "responseCode":200 + }, + "input":{"shape":"GetViewInput"}, + "output":{"shape":"GetViewOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves details of the specified view.

" + }, + "ListIndexes":{ + "name":"ListIndexes", + "http":{ + "method":"POST", + "requestUri":"/ListIndexes", + "responseCode":200 + }, + "input":{"shape":"ListIndexesInput"}, + "output":{"shape":"ListIndexesOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of all of the indexes in Amazon Web Services Regions that are currently collecting resource information for Amazon Web Services Resource Explorer.

" + }, + "ListSupportedResourceTypes":{ + "name":"ListSupportedResourceTypes", + "http":{ + "method":"POST", + "requestUri":"/ListSupportedResourceTypes", + "responseCode":200 + }, + "input":{"shape":"ListSupportedResourceTypesInput"}, + "output":{"shape":"ListSupportedResourceTypesOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves a list of all resource types currently supported by Amazon Web Services Resource Explorer.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the tags that are attached to the specified resource.

" + }, + "ListViews":{ + "name":"ListViews", + "http":{ + "method":"POST", + "requestUri":"/ListViews", + "responseCode":200 + }, + "input":{"shape":"ListViewsInput"}, + "output":{"shape":"ListViewsOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the Amazon resource names (ARNs) of the views available in the Amazon Web Services Region in which you call this operation.

Always check the NextToken response parameter for a null value when calling a paginated operation. These operations can occasionally return an empty set of results even when there are more results available. The NextToken response parameter value is null only when there are no more results to display.

" + }, + "Search":{ + "name":"Search", + "http":{ + "method":"POST", + "requestUri":"/Search", + "responseCode":200 + }, + "input":{"shape":"SearchInput"}, + "output":{"shape":"SearchOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Searches for resources and displays details about all resources that match the specified criteria. You must specify a query string.

All search queries must use a view. If you don't explicitly specify a view, then Amazon Web Services Resource Explorer uses the default view for the Amazon Web Services Region in which you call this operation. The results are the logical intersection of the results that match both the QueryString parameter supplied to this operation and the SearchFilter parameter attached to the view.

For the complete syntax supported by the QueryString parameter, see Search query syntax reference for Resource Explorer.

If your search results are empty, or are missing results that you think should be there, see Troubleshooting Resource Explorer search.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Adds one or more tag key and value pairs to an Amazon Web Services Resource Explorer view or index.

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Removes one or more tag key and value pairs from an Amazon Web Services Resource Explorer view or index.

" + }, + "UpdateIndexType":{ + "name":"UpdateIndexType", + "http":{ + "method":"POST", + "requestUri":"/UpdateIndexType", + "responseCode":200 + }, + "input":{"shape":"UpdateIndexTypeInput"}, + "output":{"shape":"UpdateIndexTypeOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Changes the type of the index from one of the following types to the other. For more information about indexes and the role they perform in Amazon Web Services Resource Explorer, see Turning on cross-Region search by creating an aggregator index in the Amazon Web Services Resource Explorer User Guide.

  • AGGREGATOR index type

    The index contains information about resources from all Amazon Web Services Regions in the Amazon Web Services account in which you've created a Resource Explorer index. Resource information from all other Regions is replicated to this Region's index.

    When you change the index type to AGGREGATOR, Resource Explorer turns on replication of all discovered resource information from the other Amazon Web Services Regions in your account to this index. You can then, from this Region only, perform resource search queries that span all Amazon Web Services Regions in the Amazon Web Services account. Turning on replication from all other Regions is performed by asynchronous background tasks. You can check the status of the asynchronous tasks by using the GetIndex operation. When the asynchronous tasks complete, the Status response of that operation changes from UPDATING to ACTIVE. After that, you can start to see results from other Amazon Web Services Regions in query results. However, it can take several hours for replication from all other Regions to complete.

    You can have only one aggregator index per Amazon Web Services account. Before you can promote a different index to be the aggregator index for the account, you must first demote the existing aggregator index to type LOCAL.

  • LOCAL index type

    The index contains information about resources in only the Amazon Web Services Region in which the index exists. If an aggregator index in another Region exists, then information in this local index is replicated to the aggregator index.

    When you change the index type to LOCAL, Resource Explorer turns off the replication of resource information from all other Amazon Web Services Regions in the Amazon Web Services account to this Region. The aggregator index remains in the UPDATING state until all replication with other Regions successfully stops. You can check the status of the asynchronous task by using the GetIndex operation. When Resource Explorer successfully stops all replication with other Regions, the Status response of that operation changes from UPDATING to ACTIVE. Separately, the resource information from other Regions that was previously stored in the index is deleted within 30 days by another background task. Until that asynchronous task completes, some results from other Regions can continue to appear in search results.

    After you demote an aggregator index to a local index, you must wait 24 hours before you can promote another index to be the new aggregator index for the account.

" + }, + "UpdateView":{ + "name":"UpdateView", + "http":{ + "method":"POST", + "requestUri":"/UpdateView", + "responseCode":200 + }, + "input":{"shape":"UpdateViewInput"}, + "output":{"shape":"UpdateViewOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"UnauthorizedException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Modifies some of the details of a view. You can change the filter string and the list of included properties. You can't change the name of the view.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The credentials that you used to call this operation don't have the minimum required permissions.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AssociateDefaultViewInput":{ + "type":"structure", + "required":["ViewArn"], + "members":{ + "ViewArn":{ + "shape":"AssociateDefaultViewInputViewArnString", + "documentation":"

The Amazon resource name (ARN) of the view to set as the default for the Amazon Web Services Region and Amazon Web Services account in which you call this operation. The specified view must already exist in the called Region.

" + } + } + }, + "AssociateDefaultViewInputViewArnString":{ + "type":"string", + "max":1011, + "min":1 + }, + "AssociateDefaultViewOutput":{ + "type":"structure", + "members":{ + "ViewArn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the view that the operation set as the default for queries made in the Amazon Web Services Region and Amazon Web Services account in which you called this operation.

" + } + } + }, + "BatchGetViewError":{ + "type":"structure", + "required":[ + "ErrorMessage", + "ViewArn" + ], + "members":{ + "ErrorMessage":{ + "shape":"String", + "documentation":"

The description of the error for the specified view.

" + }, + "ViewArn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the view for which Resource Explorer failed to retrieve details.

" + } + }, + "documentation":"

A collection of error messages for any views that Amazon Web Services Resource Explorer couldn't retrieve details.

" + }, + "BatchGetViewErrors":{ + "type":"list", + "member":{"shape":"BatchGetViewError"} + }, + "BatchGetViewInput":{ + "type":"structure", + "members":{ + "ViewArns":{ + "shape":"BatchGetViewInputViewArnsList", + "documentation":"

A list of Amazon resource names (ARNs) that identify the views you want details for.

" + } + } + }, + "BatchGetViewInputViewArnsList":{ + "type":"list", + "member":{"shape":"String"}, + "max":20, + "min":1 + }, + "BatchGetViewOutput":{ + "type":"structure", + "members":{ + "Errors":{ + "shape":"BatchGetViewErrors", + "documentation":"

If any of the specified ARNs result in an error, then this structure describes the error.

" + }, + "Views":{ + "shape":"ViewList", + "documentation":"

A structure with a list of objects with details for each of the specified views.

" + } + } + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "ConflictException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

You tried to create a new view or index when one already exists, and you either didn't specify or specified a different idempotency token as the original request.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateIndexInput":{ + "type":"structure", + "members":{ + "ClientToken":{ + "shape":"String", + "documentation":"

This value helps ensure idempotency. Resource Explorer uses this value to prevent the accidental creation of duplicate versions. We recommend that you generate a UUID-type value to ensure the uniqueness of your views.

", + "idempotencyToken":true + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The specified tags are attached only to the index created in this Amazon Web Services Region. The tags aren't attached to any of the resources listed in the index.

" + } + } + }, + "CreateIndexOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The ARN of the new local index for the Region. You can reference this ARN in IAM permission policies to authorize the following operations: DeleteIndex | GetIndex | UpdateIndexType | CreateView

" + }, + "CreatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and timestamp when the index was created.

" + }, + "State":{ + "shape":"IndexState", + "documentation":"

Indicates the current state of the index. You can check for changes to the state for asynchronous operations by calling the GetIndex operation.

The state can remain in the CREATING or UPDATING state for several hours as Resource Explorer discovers the information about your resources and populates the index.

" + } + } + }, + "CreateViewInput":{ + "type":"structure", + "required":["ViewName"], + "members":{ + "ClientToken":{ + "shape":"CreateViewInputClientTokenString", + "documentation":"

This value helps ensure idempotency. Resource Explorer uses this value to prevent the accidental creation of duplicate versions. We recommend that you generate a UUID-type value to ensure the uniqueness of your views.

", + "idempotencyToken":true + }, + "Filters":{ + "shape":"SearchFilter", + "documentation":"

An array of strings that specify which resources are included in the results of queries made using this view. When you use this view in a Search operation, the filter string is combined with the search's QueryString parameter using a logical AND operator.

For information about the supported syntax, see Search query reference for Resource Explorer in the Amazon Web Services Resource Explorer User Guide.

This query string in the context of this operation supports only filter prefixes with optional operators. It doesn't support free-form text. For example, the string region:us* service:ec2 -tag:stage=prod includes all Amazon EC2 resources in any Amazon Web Services Region that begins with the letters us and is not tagged with a key Stage that has the value prod.

" + }, + "IncludedProperties":{ + "shape":"IncludedPropertyList", + "documentation":"

Specifies optional fields that you want included in search results from this view. It is a list of objects that each describe a field to include.

The default is an empty list, with no optional fields included in the results.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

Tag key and value pairs that are attached to the view.

" + }, + "ViewName":{ + "shape":"ViewName", + "documentation":"

The name of the new view. This name appears in the list of views in Resource Explorer.

The name must be no more than 64 characters long, and can include letters, digits, and the dash (-) character. The name must be unique within its Amazon Web Services Region.

" + } + } + }, + "CreateViewInputClientTokenString":{ + "type":"string", + "max":2048, + "min":1 + }, + "CreateViewOutput":{ + "type":"structure", + "members":{ + "View":{ + "shape":"View", + "documentation":"

A structure that contains the details about the new view.

" + } + } + }, + "DeleteIndexInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the index that you want to delete.

" + } + } + }, + "DeleteIndexOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the index that you successfully started the deletion process.

This operation is asynchronous. To check its status, call the GetIndex operation.

" + }, + "LastUpdatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when you last updated this index.

" + }, + "State":{ + "shape":"IndexState", + "documentation":"

Indicates the current state of the index.

" + } + } + }, + "DeleteViewInput":{ + "type":"structure", + "required":["ViewArn"], + "members":{ + "ViewArn":{ + "shape":"DeleteViewInputViewArnString", + "documentation":"

The Amazon resource name (ARN) of the view that you want to delete.

" + } + } + }, + "DeleteViewInputViewArnString":{ + "type":"string", + "max":1011, + "min":1 + }, + "DeleteViewOutput":{ + "type":"structure", + "members":{ + "ViewArn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the view that you successfully deleted.

" + } + } + }, + "Document":{ + "type":"structure", + "members":{ + }, + "document":true + }, + "GetDefaultViewOutput":{ + "type":"structure", + "members":{ + "ViewArn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the view that is the current default for the Amazon Web Services Region in which you called this operation.

" + } + } + }, + "GetIndexOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the index.

" + }, + "CreatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the index was originally created.

" + }, + "LastUpdatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the index was last updated.

" + }, + "ReplicatingFrom":{ + "shape":"RegionList", + "documentation":"

If this index is Type=AGGREGATOR, then this response value contains a list of the Amazon Web Services Regions that replicate their content to the index in this Region. Not present for a local index.

" + }, + "ReplicatingTo":{ + "shape":"RegionList", + "documentation":"

Identifies the Amazon Web Services Region that has an index set to Type=AGGREGATOR, if one exists. If it does, then the Region you called this operation in replicates its index information to the Region specified in this response value. Not present if there isn't an aggregator index in the account.

" + }, + "State":{ + "shape":"IndexState", + "documentation":"

Indicates the current state of the index in this Amazon Web Services Region.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

Tag key and value pairs that are attached to the index.

" + }, + "Type":{ + "shape":"IndexType", + "documentation":"

Specifies the type of the index in this Region. For information about the aggregator index and how it differs from a local index, see Turning on cross-Region search by creating an aggregator index.

" + } + } + }, + "GetViewInput":{ + "type":"structure", + "required":["ViewArn"], + "members":{ + "ViewArn":{ + "shape":"GetViewInputViewArnString", + "documentation":"

The Amazon resource name (ARN) of the view that you want information about.

" + } + } + }, + "GetViewInputViewArnString":{ + "type":"string", + "max":1011, + "min":1 + }, + "GetViewOutput":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagMap", + "documentation":"

Tag key and value pairs that are attached to the view.

" + }, + "View":{ + "shape":"View", + "documentation":"

A structure that contains the details for the requested view.

" + } + } + }, + "IncludedProperty":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"IncludedPropertyNameString", + "documentation":"

The name of the property that is included in this view.

You can specify the following property names for this field:

  • Tags

" + } + }, + "documentation":"

Information about an additional property that describes a resource, that you can optionally include in the view. This lets you view that property in search results, and filter your search results based on the value of the property.

" + }, + "IncludedPropertyList":{ + "type":"list", + "member":{"shape":"IncludedProperty"} + }, + "IncludedPropertyNameString":{ + "type":"string", + "max":1011, + "min":1 + }, + "Index":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the index.

" + }, + "Region":{ + "shape":"String", + "documentation":"

The Amazon Web Services Region in which the index exists.

" + }, + "Type":{ + "shape":"IndexType", + "documentation":"

The type of index. It can be one of the following values:

  • LOCAL – The index contains information about resources from only the same Amazon Web Services Region.

  • AGGREGATOR – Resource Explorer replicates copies of the indexed information about resources in all other Amazon Web Services Regions to the aggregator index. This lets search results in the Region with the aggregator index to include resources from all Regions in the account where Resource Explorer is turned on.

" + } + }, + "documentation":"

An index is the data store used by Amazon Web Services Resource Explorer to hold information about your Amazon Web Services resources that the service discovers. Creating an index in an Amazon Web Services Region turns on Resource Explorer and lets it discover your resources.

By default, an index is local, meaning that it contains information about resources in only the same Region as the index. However, you can promote the index of one Region in the account by calling UpdateIndexType to convert it into an aggregator index. The aggregator index receives a replicated copy of the index information from all other Regions where Resource Explorer is turned on. This allows search operations in that Region to return results from all Regions in the account.

" + }, + "IndexList":{ + "type":"list", + "member":{"shape":"Index"} + }, + "IndexState":{ + "type":"string", + "enum":[ + "CREATING", + "ACTIVE", + "DELETING", + "DELETED", + "UPDATING" + ] + }, + "IndexType":{ + "type":"string", + "enum":[ + "LOCAL", + "AGGREGATOR" + ] + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The request failed because of internal service error. Try your request again later.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListIndexesInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListIndexesInputMaxResultsInteger", + "documentation":"

The maximum number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value appropriate to the operation. If additional items exist beyond those included in the current response, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results.

An API operation can return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

" + }, + "NextToken":{ + "shape":"ListIndexesInputNextTokenString", + "documentation":"

The parameter for receiving additional results if you receive a NextToken response in a previous request. A NextToken response indicates that more output is available. Set this parameter to the value of the previous call's NextToken response to indicate where the output should continue from.

" + }, + "Regions":{ + "shape":"ListIndexesInputRegionsList", + "documentation":"

If specified, limits the response to only information about the index in the specified list of Amazon Web Services Regions.

" + }, + "Type":{ + "shape":"IndexType", + "documentation":"

If specified, limits the output to only indexes of the specified Type, either LOCAL or AGGREGATOR.

Use this option to discover the aggregator index for your account.

" + } + } + }, + "ListIndexesInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "ListIndexesInputNextTokenString":{ + "type":"string", + "max":2048, + "min":1 + }, + "ListIndexesInputRegionsList":{ + "type":"list", + "member":{"shape":"String"}, + "max":20, + "min":0 + }, + "ListIndexesOutput":{ + "type":"structure", + "members":{ + "Indexes":{ + "shape":"IndexList", + "documentation":"

A structure that contains the details and status of each index.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

If present, indicates that more output is available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null.

" + } + } + }, + "ListSupportedResourceTypesInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListSupportedResourceTypesInputMaxResultsInteger", + "documentation":"

The maximum number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value appropriate to the operation. If additional items exist beyond those included in the current response, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results.

An API operation can return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The parameter for receiving additional results if you receive a NextToken response in a previous request. A NextToken response indicates that more output is available. Set this parameter to the value of the previous call's NextToken response to indicate where the output should continue from.

" + } + } + }, + "ListSupportedResourceTypesInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "ListSupportedResourceTypesOutput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

If present, indicates that more output is available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null.

" + }, + "ResourceTypes":{ + "shape":"ResourceTypeList", + "documentation":"

The list of resource types supported by Resource Explorer.

" + } + } + }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the view or index that you want to attach tags to.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagMap", + "documentation":"

The tag key and value pairs that you want to attach to the specified view or index.

" + } + } + }, + "ListViewsInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListViewsInputMaxResultsInteger", + "documentation":"

The maximum number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value appropriate to the operation. If additional items exist beyond those included in the current response, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results.

An API operation can return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

The parameter for receiving additional results if you receive a NextToken response in a previous request. A NextToken response indicates that more output is available. Set this parameter to the value of the previous call's NextToken response to indicate where the output should continue from.

" + } + } + }, + "ListViewsInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, + "ListViewsOutput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

If present, indicates that more output is available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null.

" + }, + "Views":{ + "shape":"ViewArnList", + "documentation":"

The list of views available in the Amazon Web Services Region in which you called this operation.

" + } + } + }, + "Long":{ + "type":"long", + "box":true + }, + "QueryString":{ + "type":"string", + "max":1011, + "min":0, + "sensitive":true + }, + "RegionList":{ + "type":"list", + "member":{"shape":"String"} + }, + "Resource":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the resource.

" + }, + "LastReportedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time that Resource Explorer last queried this resource and updated the index with the latest information about the resource.

" + }, + "OwningAccountId":{ + "shape":"String", + "documentation":"

The Amazon Web Services account that owns the resource.

" + }, + "Properties":{ + "shape":"ResourcePropertyList", + "documentation":"

A structure with additional type-specific details about the resource. These properties can be added by turning on integration between Resource Explorer and other Amazon Web Services services.

" + }, + "Region":{ + "shape":"String", + "documentation":"

The Amazon Web Services Region in which the resource was created and exists.

" + }, + "ResourceType":{ + "shape":"String", + "documentation":"

The type of the resource.

" + }, + "Service":{ + "shape":"String", + "documentation":"

The Amazon Web Service that owns the resource and is responsible for creating and updating it.

" + } + }, + "documentation":"

A resource in Amazon Web Services that Amazon Web Services Resource Explorer has discovered, and for which it has stored information in the index of the Amazon Web Services Region that contains the resource.

" + }, + "ResourceCount":{ + "type":"structure", + "members":{ + "Complete":{ + "shape":"Boolean", + "documentation":"

Indicates whether the TotalResources value represents an exhaustive count of search results.

  • If True, it indicates that the search was exhaustive. Every resource that matches the query was counted.

  • If False, then the search reached the limit of 1,000 matching results, and stopped counting.

" + }, + "TotalResources":{ + "shape":"Long", + "documentation":"

The number of resources that match the search query. This value can't exceed 1,000. If there are more than 1,000 resources that match the query, then only 1,000 are counted and the Complete field is set to false. We recommend that you refine your query to return a smaller number of results.

" + } + }, + "documentation":"

Information about the number of results that match the query. At this time, Amazon Web Services Resource Explorer doesn't count more than 1,000 matches for any query. This structure provides information about whether the query exceeded this limit.

This field is included in every page when you paginate the results.

" + }, + "ResourceList":{ + "type":"list", + "member":{"shape":"Resource"} + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

You specified a resource that doesn't exist. Check the ID or ARN that you used to identity the resource, and try again.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResourceProperty":{ + "type":"structure", + "members":{ + "Data":{ + "shape":"Document", + "documentation":"

Details about this property. The content of this field is a JSON object that varies based on the resource type.

" + }, + "LastReportedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time that the information about this resource property was last updated.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of this property of the resource.

" + } + }, + "documentation":"

A structure that describes a property of a resource.

" + }, + "ResourcePropertyList":{ + "type":"list", + "member":{"shape":"ResourceProperty"} + }, + "ResourceTypeList":{ + "type":"list", + "member":{"shape":"SupportedResourceType"} + }, + "SearchFilter":{ + "type":"structure", + "required":["FilterString"], + "members":{ + "FilterString":{ + "shape":"SearchFilterFilterStringString", + "documentation":"

The string that contains the search keywords, prefixes, and operators to control the results that can be returned by a Search operation. For more details, see Search query syntax.

" + } + }, + "documentation":"

A search filter defines which resources can be part of a search query result set.

", + "sensitive":true + }, + "SearchFilterFilterStringString":{ + "type":"string", + "max":2048, + "min":0 + }, + "SearchInput":{ + "type":"structure", + "required":["QueryString"], + "members":{ + "MaxResults":{ + "shape":"SearchInputMaxResultsInteger", + "documentation":"

The maximum number of results that you want included on each page of the response. If you do not include this parameter, it defaults to a value appropriate to the operation. If additional items exist beyond those included in the current response, the NextToken response element is present and has a value (is not null). Include that value as the NextToken request parameter in the next call to the operation to get the next part of the results.

An API operation can return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

" + }, + "NextToken":{ + "shape":"SearchInputNextTokenString", + "documentation":"

The parameter for receiving additional results if you receive a NextToken response in a previous request. A NextToken response indicates that more output is available. Set this parameter to the value of the previous call's NextToken response to indicate where the output should continue from.

" + }, + "QueryString":{ + "shape":"QueryString", + "documentation":"

A string that includes keywords and filters that specify the resources that you want to include in the results.

For the complete syntax supported by the QueryString parameter, see Search query syntax reference for Resource Explorer.

The search is completely case insensitive. You can specify an empty string to return all results up to the limit of 1,000 total results.

The operation can return only the first 1,000 results. If the resource you want is not included, then use a different value for QueryString to refine the results.

" + }, + "ViewArn":{ + "shape":"SearchInputViewArnString", + "documentation":"

Specifies the Amazon resource name (ARN) of the view to use for the query. If you don't specify a value for this parameter, then the operation automatically uses the default view for the Amazon Web Services Region in which you called this operation. If the Region either doesn't have a default view or if you don't have permission to use the default view, then the operation fails with a 401 Unauthorized exception.

" + } + } + }, + "SearchInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":1000, + "min":1 + }, + "SearchInputNextTokenString":{ + "type":"string", + "max":2048, + "min":1 + }, + "SearchInputViewArnString":{ + "type":"string", + "max":1000, + "min":0 + }, + "SearchOutput":{ + "type":"structure", + "members":{ + "Count":{ + "shape":"ResourceCount", + "documentation":"

The number of resources that match the query.

" + }, + "NextToken":{ + "shape":"SearchOutputNextTokenString", + "documentation":"

If present, indicates that more output is available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null.

" + }, + "Resources":{ + "shape":"ResourceList", + "documentation":"

The list of structures that describe the resources that match the query.

" + }, + "ViewArn":{ + "shape":"SearchOutputViewArnString", + "documentation":"

The Amazon resource name (ARN) of the view that this operation used to perform the search.

" + } + } + }, + "SearchOutputNextTokenString":{ + "type":"string", + "max":2048, + "min":1 + }, + "SearchOutputViewArnString":{ + "type":"string", + "max":1011, + "min":1 + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "Message", + "Name", + "Value" + ], + "members":{ + "Message":{"shape":"String"}, + "Name":{ + "shape":"String", + "documentation":"

The name of the service quota that was exceeded by the request.

" + }, + "Value":{ + "shape":"String", + "documentation":"

The current value for the quota that the request tried to exceed.

" + } + }, + "documentation":"

The request failed because it exceeds a service quota.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, + "SupportedResourceType":{ + "type":"structure", + "members":{ + "ResourceType":{ + "shape":"String", + "documentation":"

The unique identifier of the resource type.

" + }, + "Service":{ + "shape":"String", + "documentation":"

The Amazon Web Service that is associated with the resource type. This is the primary service that lets you create and interact with resources of this type.

" + } + }, + "documentation":"

A structure that describes a resource type supported by Amazon Web Services Resource Explorer.

" + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TagMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "TagResourceInput":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "Tags":{ + "shape":"TagMap", + "documentation":"

A list of tag key and value pairs that you want to attach to the specified view or index.

" + }, + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the view or index that you want to attach tags to.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The request failed because you exceeded a rate limit for this operation. For more information, see Quotas for Resource Explorer.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "UnauthorizedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The principal making the request isn't permitted to perform the operation.

", + "error":{ + "httpStatusCode":401, + "senderFault":true + }, + "exception":true + }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the view or index that you want to remove tags from.

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"StringList", + "documentation":"

A list of the keys for the tags that you want to remove from the specified view or index.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "UpdateIndexTypeInput":{ + "type":"structure", + "required":[ + "Arn", + "Type" + ], + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the index that you want to update.

" + }, + "Type":{ + "shape":"IndexType", + "documentation":"

The type of the index. To understand the difference between LOCAL and AGGREGATOR, see Turning on cross-Region search in the Amazon Web Services Resource Explorer User Guide.

" + } + } + }, + "UpdateIndexTypeOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the index that you updated.

" + }, + "LastUpdatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and timestamp when the index was last updated.

" + }, + "State":{ + "shape":"IndexState", + "documentation":"

Indicates the state of the request to update the index. This operation is asynchronous. Call the GetIndex operation to check for changes.

" + }, + "Type":{ + "shape":"IndexType", + "documentation":"

Specifies the type of the specified index after the operation completes.

" + } + } + }, + "UpdateViewInput":{ + "type":"structure", + "required":["ViewArn"], + "members":{ + "Filters":{ + "shape":"SearchFilter", + "documentation":"

An array of strings that specify which resources are included in the results of queries made using this view. When you use this view in a Search operation, the filter string is combined with the search's QueryString parameter using a logical AND operator.

For information about the supported syntax, see Search query reference for Resource Explorer in the Amazon Web Services Resource Explorer User Guide.

This query string in the context of this operation supports only filter prefixes with optional operators. It doesn't support free-form text. For example, the string region:us* service:ec2 -tag:stage=prod includes all Amazon EC2 resources in any Amazon Web Services Region that begins with the letters us and is not tagged with a key Stage that has the value prod.

" + }, + "IncludedProperties":{ + "shape":"IncludedPropertyList", + "documentation":"

Specifies optional fields that you want included in search results from this view. It is a list of objects that each describe a field to include.

The default is an empty list, with no optional fields included in the results.

" + }, + "ViewArn":{ + "shape":"UpdateViewInputViewArnString", + "documentation":"

The Amazon resource name (ARN) of the view that you want to modify.

" + } + } + }, + "UpdateViewInputViewArnString":{ + "type":"string", + "max":1011, + "min":1 + }, + "UpdateViewOutput":{ + "type":"structure", + "members":{ + "View":{ + "shape":"View", + "documentation":"

Details about the view that you changed with this operation.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":["Message"], + "members":{ + "FieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

An array of the request fields that had validation errors.

" + }, + "Message":{"shape":"String"} + }, + "documentation":"

You provided an invalid value for one of the operation's parameters. Check the syntax for the operation, and try again.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "Name", + "ValidationIssue" + ], + "members":{ + "Name":{ + "shape":"String", + "documentation":"

The name of the request field that had a validation error.

" + }, + "ValidationIssue":{ + "shape":"String", + "documentation":"

The validation error caused by the request field.

" + } + }, + "documentation":"

A structure that describes a request field with a validation error.

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "View":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"SearchFilter", + "documentation":"

An array of SearchFilter objects that specify which resources can be included in the results of queries made using this view.

" + }, + "IncludedProperties":{ + "shape":"IncludedPropertyList", + "documentation":"

A structure that contains additional information about the view.

" + }, + "LastUpdatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when this view was last modified.

" + }, + "Owner":{ + "shape":"String", + "documentation":"

The Amazon Web Services account that owns this view.

" + }, + "Scope":{ + "shape":"String", + "documentation":"

An Amazon resource name (ARN) of an Amazon Web Services account, an organization, or an organizational unit (OU) that specifies whether this view includes resources from only the specified Amazon Web Services account, all accounts in the specified organization, or all accounts in the specified OU.

If not specified, the value defaults to the Amazon Web Services account used to call this operation.

" + }, + "ViewArn":{ + "shape":"String", + "documentation":"

The Amazon resource name (ARN) of the view.

" + } + }, + "documentation":"

A view is a structure that defines a set of filters that provide a view into the information in the Amazon Web Services Resource Explorer index. The filters specify which information from the index is visible to the users of the view. For example, you can specify filters that include only resources that are tagged with the key \"ENV\" and the value \"DEVELOPMENT\" in the results returned by this view. You could also create a second view that includes only resources that are tagged with \"ENV\" and \"PRODUCTION\".

" + }, + "ViewArnList":{ + "type":"list", + "member":{"shape":"String"} + }, + "ViewList":{ + "type":"list", + "member":{"shape":"View"} + }, + "ViewName":{ + "type":"string", + "pattern":"^[a-zA-Z0-9\\-]{1,64}$" + } + }, + "documentation":"

Amazon Web Services Resource Explorer is a resource search and discovery service. By using Resource Explorer, you can explore your resources using an internet search engine-like experience. Examples of resources include Amazon Relational Database Service (Amazon RDS) instances, Amazon Simple Storage Service (Amazon S3) buckets, or Amazon DynamoDB tables. You can search for your resources using resource metadata like names, tags, and IDs. Resource Explorer can search across all of the Amazon Web Services Regions in your account in which you turn the service on, to simplify your cross-Region workloads.

Resource Explorer scans the resources in each of the Amazon Web Services Regions in your Amazon Web Services account in which you turn on Resource Explorer. Resource Explorer creates and maintains an index in each Region, with the details of that Region's resources.

You can search across all of the indexed Regions in your account by designating one of your Amazon Web Services Regions to contain the aggregator index for the account. When you promote a local index in a Region to become the aggregator index for the account, Resource Explorer automatically replicates the index information from all local indexes in the other Regions to the aggregator index. Therefore, the Region with the aggregator index has a copy of all resource information for all Regions in the account where you turned on Resource Explorer. As a result, views in the aggregator index Region include resources from all of the indexed Regions in your account.

For more information about Amazon Web Services Resource Explorer, including how to enable and configure the service, see the Amazon Web Services Resource Explorer User Guide.

" +} diff --git a/botocore/data/resource-groups/2017-11-27/endpoint-rule-set-1.json b/botocore/data/resource-groups/2017-11-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..8568a12f --- /dev/null +++ b/botocore/data/resource-groups/2017-11-27/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resource-groups-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://resource-groups.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://resource-groups-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://resource-groups.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://resource-groups.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/resourcegroupstaggingapi/2017-01-26/endpoint-rule-set-1.json b/botocore/data/resourcegroupstaggingapi/2017-01-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..5555fd9a --- /dev/null +++ b/botocore/data/resourcegroupstaggingapi/2017-01-26/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://tagging-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://tagging-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://tagging.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://tagging.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/robomaker/2018-06-29/endpoint-rule-set-1.json b/botocore/data/robomaker/2018-06-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..63546e2b --- /dev/null +++ b/botocore/data/robomaker/2018-06-29/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://robomaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://robomaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://robomaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://robomaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/robomaker/2018-06-29/examples-1.json b/botocore/data/robomaker/2018-06-29/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/robomaker/2018-06-29/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/rolesanywhere/2018-05-10/endpoint-rule-set-1.json b/botocore/data/rolesanywhere/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..2587572f --- /dev/null +++ b/botocore/data/rolesanywhere/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rolesanywhere-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rolesanywhere-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rolesanywhere.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rolesanywhere.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/rolesanywhere/2018-05-10/paginators-1.json b/botocore/data/rolesanywhere/2018-05-10/paginators-1.json new file mode 100644 index 00000000..97298614 --- /dev/null +++ b/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/botocore/data/rolesanywhere/2018-05-10/service-2.json b/botocore/data/rolesanywhere/2018-05-10/service-2.json new file mode 100644 index 00000000..36b873b5 --- /dev/null +++ b/botocore/data/rolesanywhere/2018-05-10/service-2.json @@ -0,0 +1,1327 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-05-10", + "endpointPrefix":"rolesanywhere", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"IAM Roles Anywhere", + "serviceId":"RolesAnywhere", + "signatureVersion":"v4", + "signingName":"rolesanywhere", + "uid":"rolesanywhere-2018-05-10" + }, + "operations":{ + "CreateProfile":{ + "name":"CreateProfile", + "http":{ + "method":"POST", + "requestUri":"/profiles", + "responseCode":201 + }, + "input":{"shape":"CreateProfileRequest"}, + "output":{"shape":"ProfileDetailResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a profile. A profile is configuration resource to list the roles that RolesAnywhere service is trusted to assume. In addition, by applying a profile you can intersect permissions with IAM managed policies.

Required permissions: rolesanywhere:CreateProfile.

" + }, + "CreateTrustAnchor":{ + "name":"CreateTrustAnchor", + "http":{ + "method":"POST", + "requestUri":"/trustanchors", + "responseCode":201 + }, + "input":{"shape":"CreateTrustAnchorRequest"}, + "output":{"shape":"TrustAnchorDetailResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates a trust anchor. You establish trust between IAM Roles Anywhere and your certificate authority (CA) by configuring a trust anchor. A Trust Anchor is defined either as a reference to a AWS Certificate Manager Private Certificate Authority (ACM PCA), or by uploading a Certificate Authority (CA) certificate. Your AWS workloads can authenticate with the trust anchor using certificates issued by the trusted Certificate Authority (CA) in exchange for temporary AWS credentials.

Required permissions: rolesanywhere:CreateTrustAnchor.

" + }, + "DeleteCrl":{ + "name":"DeleteCrl", + "http":{ + "method":"DELETE", + "requestUri":"/crl/{crlId}", + "responseCode":200 + }, + "input":{"shape":"ScalarCrlRequest"}, + "output":{"shape":"CrlDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a certificate revocation list (CRL).

Required permissions: rolesanywhere:DeleteCrl.

", + "idempotent":true + }, + "DeleteProfile":{ + "name":"DeleteProfile", + "http":{ + "method":"DELETE", + "requestUri":"/profile/{profileId}", + "responseCode":200 + }, + "input":{"shape":"ScalarProfileRequest"}, + "output":{"shape":"ProfileDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a profile.

Required permissions: rolesanywhere:DeleteProfile.

", + "idempotent":true + }, + "DeleteTrustAnchor":{ + "name":"DeleteTrustAnchor", + "http":{ + "method":"DELETE", + "requestUri":"/trustanchor/{trustAnchorId}", + "responseCode":200 + }, + "input":{"shape":"ScalarTrustAnchorRequest"}, + "output":{"shape":"TrustAnchorDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a trust anchor.

Required permissions: rolesanywhere:DeleteTrustAnchor.

", + "idempotent":true + }, + "DisableCrl":{ + "name":"DisableCrl", + "http":{ + "method":"POST", + "requestUri":"/crl/{crlId}/disable", + "responseCode":200 + }, + "input":{"shape":"ScalarCrlRequest"}, + "output":{"shape":"CrlDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Disables a certificate revocation list (CRL).

Required permissions: rolesanywhere:DisableCrl.

" + }, + "DisableProfile":{ + "name":"DisableProfile", + "http":{ + "method":"POST", + "requestUri":"/profile/{profileId}/disable", + "responseCode":200 + }, + "input":{"shape":"ScalarProfileRequest"}, + "output":{"shape":"ProfileDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Disables a profile. When disabled, CreateSession requests with this profile fail.

Required permissions: rolesanywhere:DisableProfile.

" + }, + "DisableTrustAnchor":{ + "name":"DisableTrustAnchor", + "http":{ + "method":"POST", + "requestUri":"/trustanchor/{trustAnchorId}/disable", + "responseCode":200 + }, + "input":{"shape":"ScalarTrustAnchorRequest"}, + "output":{"shape":"TrustAnchorDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Disables a trust anchor. When disabled, CreateSession requests specifying this trust anchor are unauthorized.

Required permissions: rolesanywhere:DisableTrustAnchor.

" + }, + "EnableCrl":{ + "name":"EnableCrl", + "http":{ + "method":"POST", + "requestUri":"/crl/{crlId}/enable", + "responseCode":200 + }, + "input":{"shape":"ScalarCrlRequest"}, + "output":{"shape":"CrlDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Enables a certificate revocation list (CRL). When enabled, certificates stored in the CRL are unauthorized to receive session credentials.

Required permissions: rolesanywhere:EnableCrl.

" + }, + "EnableProfile":{ + "name":"EnableProfile", + "http":{ + "method":"POST", + "requestUri":"/profile/{profileId}/enable", + "responseCode":200 + }, + "input":{"shape":"ScalarProfileRequest"}, + "output":{"shape":"ProfileDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Enables the roles in a profile to receive session credentials in CreateSession.

Required permissions: rolesanywhere:EnableProfile.

" + }, + "EnableTrustAnchor":{ + "name":"EnableTrustAnchor", + "http":{ + "method":"POST", + "requestUri":"/trustanchor/{trustAnchorId}/enable", + "responseCode":200 + }, + "input":{"shape":"ScalarTrustAnchorRequest"}, + "output":{"shape":"TrustAnchorDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Enables a trust anchor. When enabled, certificates in the trust anchor chain are authorized for trust validation.

Required permissions: rolesanywhere:EnableTrustAnchor.

" + }, + "GetCrl":{ + "name":"GetCrl", + "http":{ + "method":"GET", + "requestUri":"/crl/{crlId}", + "responseCode":200 + }, + "input":{"shape":"ScalarCrlRequest"}, + "output":{"shape":"CrlDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets a certificate revocation list (CRL).

Required permissions: rolesanywhere:GetCrl.

" + }, + "GetProfile":{ + "name":"GetProfile", + "http":{ + "method":"GET", + "requestUri":"/profile/{profileId}", + "responseCode":200 + }, + "input":{"shape":"ScalarProfileRequest"}, + "output":{"shape":"ProfileDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets a profile.

Required permissions: rolesanywhere:GetProfile.

" + }, + "GetSubject":{ + "name":"GetSubject", + "http":{ + "method":"GET", + "requestUri":"/subject/{subjectId}", + "responseCode":200 + }, + "input":{"shape":"ScalarSubjectRequest"}, + "output":{"shape":"SubjectDetailResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets a Subject. A Subject associates a certificate identity with authentication attempts by CreateSession. The Subject resources stores audit information such as status of the last authentication attempt, the certificate data used in the attempt, and the last time the associated identity attempted authentication.

Required permissions: rolesanywhere:GetSubject.

" + }, + "GetTrustAnchor":{ + "name":"GetTrustAnchor", + "http":{ + "method":"GET", + "requestUri":"/trustanchor/{trustAnchorId}", + "responseCode":200 + }, + "input":{"shape":"ScalarTrustAnchorRequest"}, + "output":{"shape":"TrustAnchorDetailResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Gets a trust anchor.

Required permissions: rolesanywhere:GetTrustAnchor.

" + }, + "ImportCrl":{ + "name":"ImportCrl", + "http":{ + "method":"POST", + "requestUri":"/crls", + "responseCode":201 + }, + "input":{"shape":"ImportCrlRequest"}, + "output":{"shape":"CrlDetailResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Imports the certificate revocation list (CRL). CRl is a list of certificates that have been revoked by the issuing certificate Authority (CA). IAM Roles Anywhere validates against the crl list before issuing credentials.

Required permissions: rolesanywhere:ImportCrl.

" + }, + "ListCrls":{ + "name":"ListCrls", + "http":{ + "method":"GET", + "requestUri":"/crls", + "responseCode":200 + }, + "input":{"shape":"ListRequest"}, + "output":{"shape":"ListCrlsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all Crls in the authenticated account and Amazon Web Services Region.

Required permissions: rolesanywhere:ListCrls.

" + }, + "ListProfiles":{ + "name":"ListProfiles", + "http":{ + "method":"GET", + "requestUri":"/profiles", + "responseCode":200 + }, + "input":{"shape":"ListRequest"}, + "output":{"shape":"ListProfilesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all profiles in the authenticated account and Amazon Web Services Region.

Required permissions: rolesanywhere:ListProfiles.

" + }, + "ListSubjects":{ + "name":"ListSubjects", + "http":{ + "method":"GET", + "requestUri":"/subjects", + "responseCode":200 + }, + "input":{"shape":"ListRequest"}, + "output":{"shape":"ListSubjectsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the subjects in the authenticated account and Amazon Web Services Region.

Required permissions: rolesanywhere:ListSubjects.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/ListTagsForResource", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the tags attached to the resource.

Required permissions: rolesanywhere:ListTagsForResource.

" + }, + "ListTrustAnchors":{ + "name":"ListTrustAnchors", + "http":{ + "method":"GET", + "requestUri":"/trustanchors", + "responseCode":200 + }, + "input":{"shape":"ListRequest"}, + "output":{"shape":"ListTrustAnchorsResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists the trust anchors in the authenticated account and Amazon Web Services Region.

Required permissions: rolesanywhere:ListTrustAnchors.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/TagResource", + "responseCode":201 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"TooManyTagsException"} + ], + "documentation":"

Attaches tags to a resource.

Required permissions: rolesanywhere:TagResource.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/UntagResource", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Removes tags from the resource.

Required permissions: rolesanywhere:UntagResource.

" + }, + "UpdateCrl":{ + "name":"UpdateCrl", + "http":{ + "method":"PATCH", + "requestUri":"/crl/{crlId}", + "responseCode":200 + }, + "input":{"shape":"UpdateCrlRequest"}, + "output":{"shape":"CrlDetailResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates the certificate revocation list (CRL). CRl is a list of certificates that have been revoked by the issuing certificate Authority (CA). IAM Roles Anywhere validates against the crl list before issuing credentials.

Required permissions: rolesanywhere:UpdateCrl.

" + }, + "UpdateProfile":{ + "name":"UpdateProfile", + "http":{ + "method":"PATCH", + "requestUri":"/profile/{profileId}", + "responseCode":200 + }, + "input":{"shape":"UpdateProfileRequest"}, + "output":{"shape":"ProfileDetailResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates the profile. A profile is configuration resource to list the roles that RolesAnywhere service is trusted to assume. In addition, by applying a profile you can scope-down permissions with IAM managed policies.

Required permissions: rolesanywhere:UpdateProfile.

", + "idempotent":true + }, + "UpdateTrustAnchor":{ + "name":"UpdateTrustAnchor", + "http":{ + "method":"PATCH", + "requestUri":"/trustanchor/{trustAnchorId}", + "responseCode":200 + }, + "input":{"shape":"UpdateTrustAnchorRequest"}, + "output":{"shape":"TrustAnchorDetailResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Updates the trust anchor.You establish trust between IAM Roles Anywhere and your certificate authority (CA) by configuring a trust anchor. A Trust Anchor is defined either as a reference to a AWS Certificate Manager Private Certificate Authority (ACM PCA), or by uploading a Certificate Authority (CA) certificate. Your AWS workloads can authenticate with the trust anchor using certificates issued by the trusted Certificate Authority (CA) in exchange for temporary AWS credentials.

Required permissions: rolesanywhere:UpdateTrustAnchor.

", + "idempotent":true + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You do not have sufficient access to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AmazonResourceName":{ + "type":"string", + "max":1011, + "min":1 + }, + "Blob":{"type":"blob"}, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CreateProfileRequest":{ + "type":"structure", + "required":[ + "name", + "roleArns" + ], + "members":{ + "durationSeconds":{ + "shape":"CreateProfileRequestDurationSecondsInteger", + "documentation":"

The number of seconds the vended session credentials are valid for.

" + }, + "enabled":{ + "shape":"Boolean", + "documentation":"

Specifies whether the profile is enabled.

" + }, + "managedPolicyArns":{ + "shape":"ManagedPolicyList", + "documentation":"

A list of managed policy ARNs that apply to the vended session credentials.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the profile.

" + }, + "requireInstanceProperties":{ + "shape":"Boolean", + "documentation":"

Specifies whether instance properties are required in CreateSession requests with this profile.

" + }, + "roleArns":{ + "shape":"RoleArnList", + "documentation":"

A list of IAM roles that this profile can assume in a CreateSession operation.

" + }, + "sessionPolicy":{ + "shape":"String", + "documentation":"

A session policy that applies to the trust boundary of the vended session credentials.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

The tags to attach to the profile.

" + } + } + }, + "CreateProfileRequestDurationSecondsInteger":{ + "type":"integer", + "box":true, + "max":43200, + "min":900 + }, + "CreateTrustAnchorRequest":{ + "type":"structure", + "required":[ + "name", + "source" + ], + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Specifies whether the trust anchor is enabled.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the trust anchor.

" + }, + "source":{ + "shape":"Source", + "documentation":"

The trust anchor type and its related certificate data.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

The tags to attach to the trust anchor.

" + } + } + }, + "CredentialSummaries":{ + "type":"list", + "member":{"shape":"CredentialSummary"} + }, + "CredentialSummary":{ + "type":"structure", + "members":{ + "enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether the credential is enabled.

" + }, + "failed":{ + "shape":"Boolean", + "documentation":"

Indicates whether the CreateSession operation was successful.

" + }, + "issuer":{ + "shape":"String", + "documentation":"

The fully qualified domain name of the issuing certificate for the presented end-entity certificate.

" + }, + "seenAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 time stamp of when the certificate was last used in a CreateSession operation.

" + }, + "serialNumber":{ + "shape":"String", + "documentation":"

The serial number of the certificate.

" + }, + "x509CertificateData":{ + "shape":"String", + "documentation":"

The PEM-encoded data of the certificate.

" + } + }, + "documentation":"

A record of a presented X509 credential to CreateSession.

" + }, + "CrlDetail":{ + "type":"structure", + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp when the certificate revocation list (CRL) was created.

" + }, + "crlArn":{ + "shape":"String", + "documentation":"

The ARN of the certificate revocation list (CRL).

" + }, + "crlData":{ + "shape":"Blob", + "documentation":"

The state of the certificate revocation list (CRL) after a read or write operation.

" + }, + "crlId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the certificate revocation list (CRL).

" + }, + "enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether the certificate revocation list (CRL) is enabled.

" + }, + "name":{ + "shape":"String", + "documentation":"

The name of the certificate revocation list (CRL).

" + }, + "trustAnchorArn":{ + "shape":"String", + "documentation":"

The ARN of the TrustAnchor the certificate revocation list (CRL) will provide revocation for.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp when the certificate revocation list (CRL) was last updated.

" + } + }, + "documentation":"

The state of the certificate revocation list (CRL) after a read or write operation.

" + }, + "CrlDetailResponse":{ + "type":"structure", + "required":["crl"], + "members":{ + "crl":{ + "shape":"CrlDetail", + "documentation":"

The state of the certificate revocation list (CRL) after a read or write operation.

" + } + } + }, + "CrlDetails":{ + "type":"list", + "member":{"shape":"CrlDetail"} + }, + "ImportCrlRequest":{ + "type":"structure", + "required":[ + "crlData", + "name", + "trustAnchorArn" + ], + "members":{ + "crlData":{ + "shape":"ImportCrlRequestCrlDataBlob", + "documentation":"

The x509 v3 specified certificate revocation list

" + }, + "enabled":{ + "shape":"Boolean", + "documentation":"

Specifies whether the certificate revocation list (CRL) is enabled.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the certificate revocation list (CRL).

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

A list of tags to attach to the certificate revocation list (CRL).

" + }, + "trustAnchorArn":{ + "shape":"TrustAnchorArn", + "documentation":"

The ARN of the TrustAnchor the certificate revocation list (CRL) will provide revocation for.

" + } + } + }, + "ImportCrlRequestCrlDataBlob":{ + "type":"blob", + "max":300000, + "min":1 + }, + "InstanceProperties":{ + "type":"list", + "member":{"shape":"InstanceProperty"} + }, + "InstanceProperty":{ + "type":"structure", + "members":{ + "failed":{ + "shape":"Boolean", + "documentation":"

Indicates whether the CreateSession operation was successful.

" + }, + "properties":{ + "shape":"InstancePropertyMap", + "documentation":"

A list of instanceProperty objects.

" + }, + "seenAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 time stamp of when the certificate was last used in a CreateSession operation.

" + } + }, + "documentation":"

A key-value pair you set that identifies a property of the authenticating instance.

" + }, + "InstancePropertyMap":{ + "type":"map", + "key":{"shape":"InstancePropertyMapKeyString"}, + "value":{"shape":"InstancePropertyMapValueString"}, + "max":50, + "min":0 + }, + "InstancePropertyMapKeyString":{ + "type":"string", + "max":200, + "min":1 + }, + "InstancePropertyMapValueString":{ + "type":"string", + "max":200, + "min":1 + }, + "Integer":{ + "type":"integer", + "box":true + }, + "ListCrlsResponse":{ + "type":"structure", + "members":{ + "crls":{ + "shape":"CrlDetails", + "documentation":"

A list of certificate revocation lists (CRL).

" + }, + "nextToken":{ + "shape":"String", + "documentation":"

A token that indicates where the output should continue from, if a previous operation did not show all results. To get the next results, call the operation again with this value.

" + } + } + }, + "ListProfilesResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

A token that indicates where the output should continue from, if a previous operation did not show all results. To get the next results, call the operation again with this value.

" + }, + "profiles":{ + "shape":"ProfileDetails", + "documentation":"

A list of profiles.

" + } + } + }, + "ListRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"ListRequestNextTokenString", + "documentation":"

A token that indicates where the output should continue from, if a previous operation did not show all results. To get the next results, call the operation again with this value.

", + "location":"querystring", + "locationName":"nextToken" + }, + "pageSize":{ + "shape":"Integer", + "documentation":"

The number of resources in the paginated list.

", + "location":"querystring", + "locationName":"pageSize" + } + } + }, + "ListRequestNextTokenString":{ + "type":"string", + "max":10000, + "min":1 + }, + "ListSubjectsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

A token that indicates where the output should continue from, if a previous operation did not show all results. To get the next results, call the operation again with this value.

" + }, + "subjects":{ + "shape":"SubjectSummaries", + "documentation":"

A list of subjects.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource.

", + "location":"querystring", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagList", + "documentation":"

A list of tags attached to the resource.

" + } + } + }, + "ListTrustAnchorsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

A token that indicates where the output should continue from, if a previous operation did not show all results. To get the next results, call the operation again with this value.

" + }, + "trustAnchors":{ + "shape":"TrustAnchorDetails", + "documentation":"

A list of trust anchors.

" + } + } + }, + "ManagedPolicyList":{ + "type":"list", + "member":{"shape":"ManagedPolicyListMemberString"}, + "max":50, + "min":0 + }, + "ManagedPolicyListMemberString":{ + "type":"string", + "max":200, + "min":1 + }, + "ProfileArn":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"^arn:aws(-[^:]+)?:rolesanywhere(:.*){2}(:profile.*)$" + }, + "ProfileDetail":{ + "type":"structure", + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp when the profile was created.

" + }, + "createdBy":{ + "shape":"String", + "documentation":"

The Amazon Web Services account that created the profile.

" + }, + "durationSeconds":{ + "shape":"Integer", + "documentation":"

The number of seconds the vended session credentials are valid for.

" + }, + "enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether the profile is enabled.

" + }, + "managedPolicyArns":{ + "shape":"ManagedPolicyList", + "documentation":"

A list of managed policy ARNs that apply to the vended session credentials.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the profile.

" + }, + "profileArn":{ + "shape":"ProfileArn", + "documentation":"

The ARN of the profile.

" + }, + "profileId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the profile.

" + }, + "requireInstanceProperties":{ + "shape":"Boolean", + "documentation":"

Specifies whether instance properties are required in CreateSession requests with this profile.

" + }, + "roleArns":{ + "shape":"RoleArnList", + "documentation":"

A list of IAM roles that this profile can assume in a CreateSession operation.

" + }, + "sessionPolicy":{ + "shape":"String", + "documentation":"

A session policy that applies to the trust boundary of the vended session credentials.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp when the profile was last updated.

" + } + }, + "documentation":"

The state of the profile after a read or write operation.

" + }, + "ProfileDetailResponse":{ + "type":"structure", + "members":{ + "profile":{ + "shape":"ProfileDetail", + "documentation":"

The state of the profile after a read or write operation.

" + } + } + }, + "ProfileDetails":{ + "type":"list", + "member":{"shape":"ProfileDetail"} + }, + "ResourceName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^[ a-zA-Z0-9-_]*$" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The resource could not be found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RoleArn":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"^arn:aws(-[^:]+)?:iam(:.*){2}(:role.*)$" + }, + "RoleArnList":{ + "type":"list", + "member":{"shape":"RoleArn"}, + "max":50, + "min":0 + }, + "ScalarCrlRequest":{ + "type":"structure", + "required":["crlId"], + "members":{ + "crlId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the certificate revocation list (CRL).

", + "location":"uri", + "locationName":"crlId" + } + } + }, + "ScalarProfileRequest":{ + "type":"structure", + "required":["profileId"], + "members":{ + "profileId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the profile.

", + "location":"uri", + "locationName":"profileId" + } + } + }, + "ScalarSubjectRequest":{ + "type":"structure", + "required":["subjectId"], + "members":{ + "subjectId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the subject.

", + "location":"uri", + "locationName":"subjectId" + } + } + }, + "ScalarTrustAnchorRequest":{ + "type":"structure", + "required":["trustAnchorId"], + "members":{ + "trustAnchorId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the trust anchor.

", + "location":"uri", + "locationName":"trustAnchorId" + } + } + }, + "Source":{ + "type":"structure", + "members":{ + "sourceData":{ + "shape":"SourceData", + "documentation":"

The data field of the trust anchor depending on its type.

" + }, + "sourceType":{ + "shape":"TrustAnchorType", + "documentation":"

The type of the trust anchor.

" + } + }, + "documentation":"

The trust anchor type and its related certificate data.

" + }, + "SourceData":{ + "type":"structure", + "members":{ + "acmPcaArn":{ + "shape":"String", + "documentation":"

The root certificate of the Certificate Manager Private Certificate Authority specified by this ARN is used in trust validation for CreateSession operations. Included for trust anchors of type AWS_ACM_PCA.

" + }, + "x509CertificateData":{ + "shape":"String", + "documentation":"

The PEM-encoded data for the certificate anchor. Included for trust anchors of type CERTIFICATE_BUNDLE.

" + } + }, + "documentation":"

The data field of the trust anchor depending on its type.

", + "union":true + }, + "String":{"type":"string"}, + "SubjectDetail":{ + "type":"structure", + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp when the subject was created.

" + }, + "credentials":{ + "shape":"CredentialSummaries", + "documentation":"

The temporary session credentials vended at the last authenticating call with this Subject.

" + }, + "enabled":{ + "shape":"Boolean", + "documentation":"

The enabled status of the subject.

" + }, + "instanceProperties":{ + "shape":"InstanceProperties", + "documentation":"

The specified instance properties associated with the request.

" + }, + "lastSeenAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp of the last time this Subject requested temporary session credentials.

" + }, + "subjectArn":{ + "shape":"String", + "documentation":"

The ARN of the resource.

" + }, + "subjectId":{ + "shape":"Uuid", + "documentation":"

The id of the resource

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp when the subject was last updated.

" + }, + "x509Subject":{ + "shape":"String", + "documentation":"

The x509 principal identifier of the authenticating certificate.

" + } + }, + "documentation":"

The state of the subject after a read or write operation.

" + }, + "SubjectDetailResponse":{ + "type":"structure", + "members":{ + "subject":{ + "shape":"SubjectDetail", + "documentation":"

The state of the subject after a read or write operation.

" + } + } + }, + "SubjectSummaries":{ + "type":"list", + "member":{"shape":"SubjectSummary"} + }, + "SubjectSummary":{ + "type":"structure", + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 time stamp of when the certificate was first used in a CreateSession operation.

" + }, + "enabled":{ + "shape":"Boolean", + "documentation":"

The enabled status of the Subject.

" + }, + "lastSeenAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 time stamp of when the certificate was last used in a CreateSession operation.

" + }, + "subjectArn":{ + "shape":"String", + "documentation":"

The ARN of the resource.

" + }, + "subjectId":{ + "shape":"Uuid", + "documentation":"

The id of the resource.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp when the subject was last updated.

" + }, + "x509Subject":{ + "shape":"String", + "documentation":"

The x509 principal identifier of the authenticating certificate.

" + } + }, + "documentation":"

A summary representation of Subject resources returned in read operations; primarily ListSubjects.

" + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "Tag":{ + "type":"structure", + "required":[ + "key", + "value" + ], + "members":{ + "key":{ + "shape":"TagKey", + "documentation":"

The tag key.

" + }, + "value":{ + "shape":"TagValue", + "documentation":"

The tag value.

" + } + }, + "documentation":"

A label that consists of a key and value you define.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[ a-zA-Z0-9_.:/=+@-]*$", + "sensitive":true + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":50, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

The tags to attach to the resource.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"^[ a-zA-Z0-9_.:/=+@-]*$", + "sensitive":true + }, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Too many tags.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "TrustAnchorArn":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"^arn:aws(-[^:]+)?:rolesanywhere(:.*){2}(:trust-anchor.*)$" + }, + "TrustAnchorDetail":{ + "type":"structure", + "members":{ + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp when the trust anchor was created.

" + }, + "enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether the trust anchor is enabled.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the trust anchor.

" + }, + "source":{ + "shape":"Source", + "documentation":"

The trust anchor type and its related certificate data.

" + }, + "trustAnchorArn":{ + "shape":"String", + "documentation":"

The ARN of the trust anchor.

" + }, + "trustAnchorId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the trust anchor.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The ISO-8601 timestamp when the trust anchor was last updated.

" + } + }, + "documentation":"

The state of the trust anchor after a read or write operation.

" + }, + "TrustAnchorDetailResponse":{ + "type":"structure", + "required":["trustAnchor"], + "members":{ + "trustAnchor":{ + "shape":"TrustAnchorDetail", + "documentation":"

The state of the trust anchor after a read or write operation.

" + } + } + }, + "TrustAnchorDetails":{ + "type":"list", + "member":{"shape":"TrustAnchorDetail"} + }, + "TrustAnchorType":{ + "type":"string", + "enum":[ + "AWS_ACM_PCA", + "CERTIFICATE_BUNDLE", + "SELF_SIGNED_REPOSITORY" + ] + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The ARN of the resource.

" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

A list of keys. Tag keys are the unique identifiers of tags.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateCrlRequest":{ + "type":"structure", + "required":["crlId"], + "members":{ + "crlData":{ + "shape":"UpdateCrlRequestCrlDataBlob", + "documentation":"

The x509 v3 specified certificate revocation list

" + }, + "crlId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the certificate revocation list (CRL).

", + "location":"uri", + "locationName":"crlId" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the Crl.

" + } + } + }, + "UpdateCrlRequestCrlDataBlob":{ + "type":"blob", + "max":300000, + "min":1 + }, + "UpdateProfileRequest":{ + "type":"structure", + "required":["profileId"], + "members":{ + "durationSeconds":{ + "shape":"UpdateProfileRequestDurationSecondsInteger", + "documentation":"

The number of seconds the vended session credentials are valid for.

" + }, + "managedPolicyArns":{ + "shape":"ManagedPolicyList", + "documentation":"

A list of managed policy ARNs that apply to the vended session credentials.

" + }, + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the profile.

" + }, + "profileId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the profile.

", + "location":"uri", + "locationName":"profileId" + }, + "roleArns":{ + "shape":"RoleArnList", + "documentation":"

A list of IAM roles that this profile can assume in a CreateSession operation.

" + }, + "sessionPolicy":{ + "shape":"UpdateProfileRequestSessionPolicyString", + "documentation":"

A session policy that applies to the trust boundary of the vended session credentials.

" + } + } + }, + "UpdateProfileRequestDurationSecondsInteger":{ + "type":"integer", + "box":true, + "max":43200, + "min":900 + }, + "UpdateProfileRequestSessionPolicyString":{ + "type":"string", + "max":100000, + "min":1 + }, + "UpdateTrustAnchorRequest":{ + "type":"structure", + "required":["trustAnchorId"], + "members":{ + "name":{ + "shape":"ResourceName", + "documentation":"

The name of the trust anchor.

" + }, + "source":{ + "shape":"Source", + "documentation":"

The trust anchor type and its related certificate data.

" + }, + "trustAnchorId":{ + "shape":"Uuid", + "documentation":"

The unique identifier of the trust anchor.

", + "location":"uri", + "locationName":"trustAnchorId" + } + } + }, + "Uuid":{ + "type":"string", + "max":36, + "min":36, + "pattern":"[a-f0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}" + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Validation exception error.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + }, + "documentation":"

AWS Identity and Access Management Roles Anywhere provides a secure way for your workloads such as servers, containers, and applications running outside of AWS to obtain Temporary AWS credentials. Your workloads can use the same IAM policies and roles that you have configured with native AWS applications to access AWS resources. Using IAM Roles Anywhere will eliminate the need to manage long term credentials for workloads running outside of AWS.

To use IAM Roles Anywhere customer workloads will need to use X.509 certificates issued by their Certificate Authority (CA) . The Certificate Authority (CA) needs to be registered with IAM Roles Anywhere as a trust anchor to establish trust between customer PKI and IAM Roles Anywhere. Customers who do not manage their own PKI system can use AWS Certificate Manager Private Certificate Authority (ACM PCA) to create a Certificate Authority and use that to establish trust with IAM Roles Anywhere

This guide describes the IAM rolesanywhere operations that you can call programmatically. For general information about IAM Roles Anywhere see https://docs.aws.amazon.com/

" +} diff --git a/botocore/data/route53-recovery-cluster/2019-12-02/endpoint-rule-set-1.json b/botocore/data/route53-recovery-cluster/2019-12-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..65dd6ef3 --- /dev/null +++ b/botocore/data/route53-recovery-cluster/2019-12-02/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-cluster-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-cluster-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-cluster.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-cluster.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/route53-recovery-cluster/2019-12-02/examples-1.json b/botocore/data/route53-recovery-cluster/2019-12-02/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/route53-recovery-cluster/2019-12-02/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/route53-recovery-control-config/2020-11-02/endpoint-rule-set-1.json b/botocore/data/route53-recovery-control-config/2020-11-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..9e5de3bd --- /dev/null +++ b/botocore/data/route53-recovery-control-config/2020-11-02/endpoint-rule-set-1.json @@ -0,0 +1,348 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-control-config-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-control-config-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-control-config.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://route53-recovery-control-config.us-west-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "route53-recovery-control-config", + "signingRegion": "us-west-2" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-control-config.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/route53-recovery-readiness/2019-12-02/endpoint-rule-set-1.json b/botocore/data/route53-recovery-readiness/2019-12-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..fcd41a55 --- /dev/null +++ b/botocore/data/route53-recovery-readiness/2019-12-02/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-readiness-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-readiness-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-readiness.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53-recovery-readiness.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/route53/2013-04-01/endpoint-rule-set-1.json b/botocore/data/route53/2013-04-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..64bd6300 --- /dev/null +++ b/botocore/data/route53/2013-04-01/endpoint-rule-set-1.json @@ -0,0 +1,1437 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route-53-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route-53.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route-53-fips.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route-53-fips.{Region}.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route-53.{Region}.api.amazonwebservices.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-us-gov" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route-53-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route-53.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route-53-fips.{Region}.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws-iso-b" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route-53-fips.{Region}.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://route53-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://route53.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://route53.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://route53.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "cn-northwest-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://route53.us-gov.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-gov-west-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-iso-global" + ] + } + ], + "endpoint": { + "url": "https://route53.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-iso-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-iso-b-global" + ] + } + ], + "endpoint": { + "url": "https://route53.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-isob-east-1", + "signingName": "route53" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/route53/2013-04-01/paginators-1.json b/botocore/data/route53/2013-04-01/paginators-1.json index 8d8e433d..2c370965 100644 --- a/botocore/data/route53/2013-04-01/paginators-1.json +++ b/botocore/data/route53/2013-04-01/paginators-1.json @@ -44,6 +44,24 @@ "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/botocore/data/route53/2013-04-01/service-2.json b/botocore/data/route53/2013-04-01/service-2.json index 37747203..b11c5f0f 100644 --- a/botocore/data/route53/2013-04-01/service-2.json +++ b/botocore/data/route53/2013-04-01/service-2.json @@ -54,6 +54,28 @@ ], "documentation":"

Associates an Amazon VPC with a private hosted zone.

To perform the association, the VPC and the private hosted zone must already exist. You can't convert a public hosted zone into a private hosted zone.

If you want to associate a VPC that was created by using one Amazon Web Services account with a private hosted zone that was created by using a different account, the Amazon Web Services account that created the private hosted zone must first submit a CreateVPCAssociationAuthorization request. Then the account that created the VPC must submit an AssociateVPCWithHostedZone request.

When granting access, the hosted zone and the Amazon VPC must belong to the same partition. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition.

The following are the supported partitions:

  • aws - Amazon Web Services Regions

  • aws-cn - China Regions

  • aws-us-gov - Amazon Web Services GovCloud (US) Region

For more information, see Access Management in the Amazon Web Services General Reference.

" }, + "ChangeCidrCollection":{ + "name":"ChangeCidrCollection", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/cidrcollection/{CidrCollectionId}" + }, + "input":{ + "shape":"ChangeCidrCollectionRequest", + "locationName":"ChangeCidrCollectionRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"} + }, + "output":{"shape":"ChangeCidrCollectionResponse"}, + "errors":[ + {"shape":"NoSuchCidrCollectionException"}, + {"shape":"CidrCollectionVersionMismatchException"}, + {"shape":"InvalidInput"}, + {"shape":"CidrBlockInUseException"}, + {"shape":"LimitsExceeded"}, + {"shape":"ConcurrentModification"} + ], + "documentation":"

Creates, changes, or deletes CIDR blocks within a collection. Contains authoritative IP information mapping blocks to one or multiple locations.

A change request can update multiple locations in a collection at a time, which is helpful if you want to move one or more CIDR blocks from one location to another in one transaction, without downtime.

Limits

The max number of CIDR blocks included in the request is 1000. As a result, big updates require multiple API calls.

PUT and DELETE_IF_EXISTS

Use ChangeCidrCollection to perform the following actions:

  • PUT: Create a CIDR block within the specified collection.

  • DELETE_IF_EXISTS: Delete an existing CIDR block from the collection.

" + }, "ChangeResourceRecordSets":{ "name":"ChangeResourceRecordSets", "http":{ @@ -96,6 +118,27 @@ ], "documentation":"

Adds, edits, or deletes tags for a health check or a hosted zone.

For information about using tags for cost allocation, see Using Cost Allocation Tags in the Billing and Cost Management User Guide.

" }, + "CreateCidrCollection":{ + "name":"CreateCidrCollection", + "http":{ + "method":"POST", + "requestUri":"/2013-04-01/cidrcollection", + "responseCode":201 + }, + "input":{ + "shape":"CreateCidrCollectionRequest", + "locationName":"CreateCidrCollectionRequest", + "xmlNamespace":{"uri":"https://route53.amazonaws.com/doc/2013-04-01/"} + }, + "output":{"shape":"CreateCidrCollectionResponse"}, + "errors":[ + {"shape":"LimitsExceeded"}, + {"shape":"InvalidInput"}, + {"shape":"CidrCollectionAlreadyExistsException"}, + {"shape":"ConcurrentModification"} + ], + "documentation":"

Creates a CIDR collection in the current Amazon Web Services account.

" + }, "CreateHealthCheck":{ "name":"CreateHealthCheck", "http":{ @@ -140,7 +183,7 @@ {"shape":"NoSuchDelegationSet"}, {"shape":"DelegationSetNotReusable"} ], - "documentation":"

Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to route traffic on the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a private hosted zone to define how you want to route traffic for a domain and its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs).

You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the same name and create new resource record sets.

For more information about charges for hosted zones, see Amazon Route 53 Pricing.

Note the following:

  • You can't create a hosted zone for a top-level domain (TLD) such as .com.

  • For public hosted zones, Route 53 automatically creates a default SOA record and four NS records for the zone. For more information about SOA and NS records, see NS and SOA Records that Route 53 Creates for a Hosted Zone in the Amazon Route 53 Developer Guide.

    If you want to use the same name servers for multiple public hosted zones, you can optionally associate a reusable delegation set with the hosted zone. See the DelegationSetId element.

  • If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make Route 53 the DNS service for the domain. For more information, see Migrating DNS Service for an Existing Domain to Amazon Route 53 in the Amazon Route 53 Developer Guide.

When you submit a CreateHostedZone request, the initial status of the hosted zone is PENDING. For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to INSYNC.

The CreateHostedZone request requires the caller to have an ec2:DescribeVpcs permission.

When creating private hosted zones, the Amazon VPC must belong to the same partition where the hosted zone is created. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition.

The following are the supported partitions:

  • aws - Amazon Web Services Regions

  • aws-cn - China Regions

  • aws-us-gov - Amazon Web Services GovCloud (US) Region

For more information, see Access Management in the Amazon Web Services General Reference.

" + "documentation":"

Creates a new public or private hosted zone. You create records in a public hosted zone to define how you want to route traffic on the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a private hosted zone to define how you want to route traffic for a domain and its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs).

You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the same name and create new resource record sets.

For more information about charges for hosted zones, see Amazon Route 53 Pricing.

Note the following:

  • You can't create a hosted zone for a top-level domain (TLD) such as .com.

  • For public hosted zones, Route 53 automatically creates a default SOA record and four NS records for the zone. For more information about SOA and NS records, see NS and SOA Records that Route 53 Creates for a Hosted Zone in the Amazon Route 53 Developer Guide.

    If you want to use the same name servers for multiple public hosted zones, you can optionally associate a reusable delegation set with the hosted zone. See the DelegationSetId element.

  • If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make Route 53 the DNS service for the domain. For more information, see Migrating DNS Service for an Existing Domain to Amazon Route 53 in the Amazon Route 53 Developer Guide.

When you submit a CreateHostedZone request, the initial status of the hosted zone is PENDING. For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to INSYNC.

The CreateHostedZone request requires the caller to have an ec2:DescribeVpcs permission.

When creating private hosted zones, the Amazon VPC must belong to the same partition where the hosted zone is created. A partition is a group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one partition.

The following are the supported partitions:

  • aws - Amazon Web Services Regions

  • aws-cn - China Regions

  • aws-us-gov - Amazon Web Services GovCloud (US) Region

For more information, see Access Management in the Amazon Web Services General Reference.

" }, "CreateKeySigningKey":{ "name":"CreateKeySigningKey", @@ -321,6 +364,22 @@ ], "documentation":"

Deactivates a key-signing key (KSK) so that it will not be used for signing by DNSSEC. This operation changes the KSK status to INACTIVE.

" }, + "DeleteCidrCollection":{ + "name":"DeleteCidrCollection", + "http":{ + "method":"DELETE", + "requestUri":"/2013-04-01/cidrcollection/{CidrCollectionId}" + }, + "input":{"shape":"DeleteCidrCollectionRequest"}, + "output":{"shape":"DeleteCidrCollectionResponse"}, + "errors":[ + {"shape":"NoSuchCidrCollectionException"}, + {"shape":"CidrCollectionInUseException"}, + {"shape":"InvalidInput"}, + {"shape":"ConcurrentModification"} + ], + "documentation":"

Deletes a CIDR collection in the current Amazon Web Services account. The collection must be empty before it can be deleted.

" + }, "DeleteHealthCheck":{ "name":"DeleteHealthCheck", "http":{ @@ -351,7 +410,7 @@ {"shape":"InvalidInput"}, {"shape":"InvalidDomainName"} ], - "documentation":"

Deletes a hosted zone.

If the hosted zone was created by another service, such as Cloud Map, see Deleting Public Hosted Zones That Were Created by Another Service in the Amazon Route 53 Developer Guide for information about how to delete it. (The process is the same for public and private hosted zones that were created by another service.)

If you want to keep your domain registration but you want to stop routing internet traffic to your website or web application, we recommend that you delete resource record sets in the hosted zone instead of deleting the hosted zone.

If you delete a hosted zone, you can't undelete it. You must create a new hosted zone and update the name servers for your domain registration, which can require up to 48 hours to take effect. (If you delegated responsibility for a subdomain to a hosted zone and you delete the child hosted zone, you must update the name servers in the parent hosted zone.) In addition, if you delete a hosted zone, someone could hijack the domain and route traffic to their own resources using your domain name.

If you want to avoid the monthly charge for the hosted zone, you can transfer DNS service for the domain to a free DNS service. When you transfer DNS service, you have to update the name servers for the domain registration. If the domain is registered with Route 53, see UpdateDomainNameservers for information about how to replace Route 53 name servers with name servers for the new DNS service. If the domain is registered with another registrar, use the method provided by the registrar to update name servers for the domain registration. For more information, perform an internet search on \"free DNS service.\"

You can delete a hosted zone only if it contains only the default SOA record and NS resource record sets. If the hosted zone contains other resource record sets, you must delete them before you can delete the hosted zone. If you try to delete a hosted zone that contains other resource record sets, the request fails, and Route 53 returns a HostedZoneNotEmpty error. For information about deleting records from your hosted zone, see ChangeResourceRecordSets.

To verify that the hosted zone has been deleted, do one of the following:

  • Use the GetHostedZone action to request information about the hosted zone.

  • Use the ListHostedZones action to get a list of the hosted zones associated with the current Amazon Web Services account.

" + "documentation":"

Deletes a hosted zone.

If the hosted zone was created by another service, such as Cloud Map, see Deleting Public Hosted Zones That Were Created by Another Service in the Amazon Route 53 Developer Guide for information about how to delete it. (The process is the same for public and private hosted zones that were created by another service.)

If you want to keep your domain registration but you want to stop routing internet traffic to your website or web application, we recommend that you delete resource record sets in the hosted zone instead of deleting the hosted zone.

If you delete a hosted zone, you can't undelete it. You must create a new hosted zone and update the name servers for your domain registration, which can require up to 48 hours to take effect. (If you delegated responsibility for a subdomain to a hosted zone and you delete the child hosted zone, you must update the name servers in the parent hosted zone.) In addition, if you delete a hosted zone, someone could hijack the domain and route traffic to their own resources using your domain name.

If you want to avoid the monthly charge for the hosted zone, you can transfer DNS service for the domain to a free DNS service. When you transfer DNS service, you have to update the name servers for the domain registration. If the domain is registered with Route 53, see UpdateDomainNameservers for information about how to replace Route 53 name servers with name servers for the new DNS service. If the domain is registered with another registrar, use the method provided by the registrar to update name servers for the domain registration. For more information, perform an internet search on \"free DNS service.\"

You can delete a hosted zone only if it contains only the default SOA record and NS resource record sets. If the hosted zone contains other resource record sets, you must delete them before you can delete the hosted zone. If you try to delete a hosted zone that contains other resource record sets, the request fails, and Route 53 returns a HostedZoneNotEmpty error. For information about deleting records from your hosted zone, see ChangeResourceRecordSets.

To verify that the hosted zone has been deleted, do one of the following:

  • Use the GetHostedZone action to request information about the hosted zone.

  • Use the ListHostedZones action to get a list of the hosted zones associated with the current Amazon Web Services account.

" }, "DeleteKeySigningKey":{ "name":"DeleteKeySigningKey", @@ -758,6 +817,48 @@ "output":{"shape":"GetTrafficPolicyInstanceCountResponse"}, "documentation":"

Gets the number of traffic policy instances that are associated with the current Amazon Web Services account.

" }, + "ListCidrBlocks":{ + "name":"ListCidrBlocks", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/cidrcollection/{CidrCollectionId}/cidrblocks" + }, + "input":{"shape":"ListCidrBlocksRequest"}, + "output":{"shape":"ListCidrBlocksResponse"}, + "errors":[ + {"shape":"NoSuchCidrCollectionException"}, + {"shape":"NoSuchCidrLocationException"}, + {"shape":"InvalidInput"} + ], + "documentation":"

Returns a paginated list of location objects and their CIDR blocks.

" + }, + "ListCidrCollections":{ + "name":"ListCidrCollections", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/cidrcollection" + }, + "input":{"shape":"ListCidrCollectionsRequest"}, + "output":{"shape":"ListCidrCollectionsResponse"}, + "errors":[ + {"shape":"InvalidInput"} + ], + "documentation":"

Returns a paginated list of CIDR collections in the Amazon Web Services account (metadata only).

" + }, + "ListCidrLocations":{ + "name":"ListCidrLocations", + "http":{ + "method":"GET", + "requestUri":"/2013-04-01/cidrcollection/{CidrCollectionId}" + }, + "input":{"shape":"ListCidrLocationsRequest"}, + "output":{"shape":"ListCidrLocationsResponse"}, + "errors":[ + {"shape":"NoSuchCidrCollectionException"}, + {"shape":"InvalidInput"} + ], + "documentation":"

Returns a paginated list of CIDR locations for the given collection (metadata only, does not include CIDR blocks).

" + }, "ListGeoLocations":{ "name":"ListGeoLocations", "http":{ @@ -1088,6 +1189,12 @@ } }, "shapes":{ + "ARN":{ + "type":"string", + "max":2048, + "min":20, + "pattern":".*\\S.*" + }, "AWSAccountID":{"type":"string"}, "AccountLimit":{ "type":"structure", @@ -1190,7 +1297,7 @@ "documentation":"

Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record sets: When EvaluateTargetHealth is true, an alias resource record set inherits the health of the referenced Amazon Web Services resource, such as an ELB load balancer or another resource record set in the hosted zone.

Note the following:

CloudFront distributions

You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution.

Elastic Beanstalk environments that have regionalized subdomains

If you specify an Elastic Beanstalk environment in DNSName and the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. (An environment automatically contains an ELB load balancer if it includes more than one Amazon EC2 instance.) If you set EvaluateTargetHealth to true and either no Amazon EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other available resources that are healthy, if any.

If the environment contains a single Amazon EC2 instance, there are no special requirements.

ELB load balancers

Health checking behavior depends on the type of load balancer:

  • Classic Load Balancers: If you specify an ELB Classic Load Balancer in DNSName, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. If you set EvaluateTargetHealth to true and either no EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other resources.

  • Application and Network Load Balancers: If you specify an ELB Application or Network Load Balancer and you set EvaluateTargetHealth to true, Route 53 routes queries to the load balancer based on the health of the target groups that are associated with the load balancer:

    • For an Application or Network Load Balancer to be considered healthy, every target group that contains targets must contain at least one healthy target. If any target group contains only unhealthy targets, the load balancer is considered unhealthy, and Route 53 routes queries to other resources.

    • A target group that has no registered targets is considered unhealthy.

When you create a load balancer, you configure settings for Elastic Load Balancing health checks; they're not Route 53 health checks, but they perform a similar function. Do not create Route 53 health checks for the EC2 instances that you register with an ELB load balancer.

S3 buckets

There are no special requirements for setting EvaluateTargetHealth to true when the alias target is an S3 bucket.

Other records in the same hosted zone

If the Amazon Web Services resource that you specify in DNSName is a record or a group of records (for example, a group of weighted records) but is not another alias record, we recommend that you associate a health check with all of the records in the alias target. For more information, see What Happens When You Omit Health Checks? in the Amazon Route 53 Developer Guide.

For more information and examples, see Amazon Route 53 Health Checks and DNS Failover in the Amazon Route 53 Developer Guide.

" } }, - "documentation":"

Alias resource record sets only: Information about the Amazon Web Services resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to.

When creating resource record sets for a private hosted zone, note the following:

  • Creating geolocation alias resource record sets or latency alias resource record sets in a private hosted zone is unsupported.

  • For information about creating failover resource record sets in a private hosted zone, see Configuring Failover in a Private Hosted Zone.

" + "documentation":"

Alias resource record sets only: Information about the Amazon Web Services resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to.

When creating resource record sets for a private hosted zone, note the following:

" }, "AssociateVPCComment":{"type":"string"}, "AssociateVPCWithHostedZoneRequest":{ @@ -1269,6 +1376,44 @@ }, "documentation":"

The information for a change request.

" }, + "ChangeCidrCollectionRequest":{ + "type":"structure", + "required":[ + "Id", + "Changes" + ], + "members":{ + "Id":{ + "shape":"UUID", + "documentation":"

The UUID of the CIDR collection to update.

", + "location":"uri", + "locationName":"CidrCollectionId" + }, + "CollectionVersion":{ + "shape":"CollectionVersion", + "documentation":"

A sequential counter that Amazon Route 53 sets to 1 when you create a collection and increments it by 1 each time you update the collection.

We recommend that you use ListCidrCollection to get the current value of CollectionVersion for the collection that you want to update, and then include that value with the change request. This prevents Route 53 from overwriting an intervening update:

  • If the value in the request matches the value of CollectionVersion in the collection, Route 53 updates the collection.

  • If the value of CollectionVersion in the collection is greater than the value in the request, the collection was changed after you got the version number. Route 53 does not update the collection, and it returns a CidrCollectionVersionMismatch error.

" + }, + "Changes":{ + "shape":"CidrCollectionChanges", + "documentation":"

Information about changes to a CIDR collection.

" + } + } + }, + "ChangeCidrCollectionResponse":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"ChangeId", + "documentation":"

The ID that is returned by ChangeCidrCollection. You can use it as input to GetChange to see if a CIDR collection change has propagated or not.

" + } + } + }, + "ChangeId":{ + "type":"string", + "max":6500, + "min":1 + }, "ChangeInfo":{ "type":"structure", "required":[ @@ -1390,6 +1535,168 @@ }, "max":256 }, + "Cidr":{ + "type":"string", + "max":50, + "min":1, + "pattern":".*\\S.*" + }, + "CidrBlockInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

This CIDR block is already in use.

", + "error":{"httpStatusCode":400}, + "exception":true + }, + "CidrBlockSummaries":{ + "type":"list", + "member":{"shape":"CidrBlockSummary"} + }, + "CidrBlockSummary":{ + "type":"structure", + "members":{ + "CidrBlock":{ + "shape":"Cidr", + "documentation":"

Value for the CIDR block.

" + }, + "LocationName":{ + "shape":"CidrLocationNameDefaultNotAllowed", + "documentation":"

The location name of the CIDR block.

" + } + }, + "documentation":"

A complex type that lists the CIDR blocks.

" + }, + "CidrCollection":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"ARN", + "documentation":"

The ARN of the collection. Can be used to reference the collection in IAM policy or in another Amazon Web Services account.

" + }, + "Id":{ + "shape":"UUID", + "documentation":"

The unique ID of the CIDR collection.

" + }, + "Name":{ + "shape":"CollectionName", + "documentation":"

The name of a CIDR collection.

" + }, + "Version":{ + "shape":"CollectionVersion", + "documentation":"

A sequential counter that Route 53 sets to 1 when you create a CIDR collection and increments by 1 each time you update settings for the CIDR collection.

" + } + }, + "documentation":"

A complex type that identifies a CIDR collection.

" + }, + "CidrCollectionAlreadyExistsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

A CIDR collection with this name and a different caller reference already exists in this account.

", + "exception":true + }, + "CidrCollectionChange":{ + "type":"structure", + "required":[ + "LocationName", + "Action", + "CidrList" + ], + "members":{ + "LocationName":{ + "shape":"CidrLocationNameDefaultNotAllowed", + "documentation":"

Name of the location that is associated with the CIDR collection.

" + }, + "Action":{ + "shape":"CidrCollectionChangeAction", + "documentation":"

CIDR collection change action.

" + }, + "CidrList":{ + "shape":"CidrList", + "documentation":"

List of CIDR blocks.

" + } + }, + "documentation":"

A complex type that contains information about the CIDR collection change.

" + }, + "CidrCollectionChangeAction":{ + "type":"string", + "enum":[ + "PUT", + "DELETE_IF_EXISTS" + ] + }, + "CidrCollectionChanges":{ + "type":"list", + "member":{"shape":"CidrCollectionChange"}, + "max":1000, + "min":1 + }, + "CidrCollectionInUseException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

This CIDR collection is in use, and isn't empty.

", + "error":{"httpStatusCode":400}, + "exception":true + }, + "CidrCollectionVersionMismatchException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The CIDR collection version you provided, doesn't match the one in the ListCidrCollections operation.

", + "error":{"httpStatusCode":409}, + "exception":true + }, + "CidrList":{ + "type":"list", + "member":{ + "shape":"Cidr", + "locationName":"Cidr" + }, + "max":1000, + "min":1 + }, + "CidrLocationNameDefaultAllowed":{ + "type":"string", + "max":16, + "min":1, + "pattern":"[0-9A-Za-z_\\-\\*]+" + }, + "CidrLocationNameDefaultNotAllowed":{ + "type":"string", + "max":16, + "min":1, + "pattern":"[0-9A-Za-z_\\-]+" + }, + "CidrNonce":{ + "type":"string", + "max":64, + "min":1, + "pattern":"\\p{ASCII}+" + }, + "CidrRoutingConfig":{ + "type":"structure", + "required":[ + "CollectionId", + "LocationName" + ], + "members":{ + "CollectionId":{ + "shape":"UUID", + "documentation":"

The CIDR collection ID.

" + }, + "LocationName":{ + "shape":"CidrLocationNameDefaultAllowed", + "documentation":"

The CIDR collection location name.

" + } + }, + "documentation":"

The object that is specified in resource record set object when you are linking a resource record set to a CIDR location.

A LocationName with an asterisk “*” can be used to create a default CIDR record. CollectionId is still required for default record.

" + }, "CloudWatchAlarmConfiguration":{ "type":"structure", "required":[ @@ -1447,12 +1754,15 @@ "us-west-2", "ca-central-1", "eu-central-1", + "eu-central-2", "eu-west-1", "eu-west-2", "eu-west-3", "ap-east-1", "me-south-1", + "me-central-1", "ap-south-1", + "ap-south-2", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3", @@ -1465,6 +1775,7 @@ "cn-north-1", "af-south-1", "eu-south-1", + "eu-south-2", "us-gov-west-1", "us-gov-east-1", "us-iso-east-1", @@ -1474,6 +1785,42 @@ "max":64, "min":1 }, + "CollectionName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[0-9A-Za-z_\\-]+" + }, + "CollectionSummaries":{ + "type":"list", + "member":{"shape":"CollectionSummary"} + }, + "CollectionSummary":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"ARN", + "documentation":"

The ARN of the collection summary. Can be used to reference the collection in IAM policy or cross-account.

" + }, + "Id":{ + "shape":"UUID", + "documentation":"

Unique ID for the CIDR collection.

" + }, + "Name":{ + "shape":"CollectionName", + "documentation":"

The name of a CIDR collection.

" + }, + "Version":{ + "shape":"CollectionVersion", + "documentation":"

A sequential counter that Route 53 sets to 1 when you create a CIDR collection and increments by 1 each time you update settings for the CIDR collection.

" + } + }, + "documentation":"

A complex type that is an entry in an CidrCollection array.

" + }, + "CollectionVersion":{ + "type":"long", + "min":1 + }, "ComparisonOperator":{ "type":"string", "enum":[ @@ -1515,6 +1862,38 @@ "error":{"httpStatusCode":400}, "exception":true }, + "CreateCidrCollectionRequest":{ + "type":"structure", + "required":[ + "Name", + "CallerReference" + ], + "members":{ + "Name":{ + "shape":"CollectionName", + "documentation":"

A unique identifier for the account that can be used to reference the collection from other API calls.

" + }, + "CallerReference":{ + "shape":"CidrNonce", + "documentation":"

A client-specific token that allows requests to be securely retried so that the intended outcome will only occur once, retries receive a similar response, and there are no additional edge cases to handle.

" + } + } + }, + "CreateCidrCollectionResponse":{ + "type":"structure", + "members":{ + "Collection":{ + "shape":"CidrCollection", + "documentation":"

A complex type that contains information about the CIDR collection.

" + }, + "Location":{ + "shape":"ResourceURI", + "documentation":"

A unique URL that represents the location for the CIDR collection.

", + "location":"header", + "locationName":"Location" + } + } + }, "CreateHealthCheckRequest":{ "type":"structure", "required":[ @@ -1562,7 +1941,7 @@ "members":{ "Name":{ "shape":"DNSName", - "documentation":"

The name of the domain. Specify a fully qualified domain name, for example, www.example.com. The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified. This means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical.

If you're creating a public hosted zone, this is the name you have registered with your DNS registrar. If your domain name is registered with a registrar other than Route 53, change the name servers for your domain to the set of NameServers that CreateHostedZone returns in DelegationSet.

" + "documentation":"

The name of the domain. Specify a fully qualified domain name, for example, www.example.com. The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified. This means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. (with a trailing dot) as identical.

If you're creating a public hosted zone, this is the name you have registered with your DNS registrar. If your domain name is registered with a registrar other than Route 53, change the name servers for your domain to the set of NameServers that CreateHostedZone returns in DelegationSet.

" }, "VPC":{ "shape":"VPC", @@ -1578,7 +1957,7 @@ }, "DelegationSetId":{ "shape":"ResourceId", - "documentation":"

If you want to associate a reusable delegation set with this hosted zone, the ID that Amazon Route 53 assigned to the reusable delegation set when you created it. For more information about reusable delegation sets, see CreateReusableDelegationSet.

" + "documentation":"

If you want to associate a reusable delegation set with this hosted zone, the ID that Amazon Route 53 assigned to the reusable delegation set when you created it. For more information about reusable delegation sets, see CreateReusableDelegationSet.

" } }, "documentation":"

A complex type that contains information about the request to create a public or private hosted zone.

" @@ -2061,6 +2440,23 @@ "locationName":"DelegationSet" } }, + "DeleteCidrCollectionRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"UUID", + "documentation":"

The UUID of the collection to delete.

", + "location":"uri", + "locationName":"CidrCollectionId" + } + } + }, + "DeleteCidrCollectionResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteHealthCheckRequest":{ "type":"structure", "required":["HealthCheckId"], @@ -2490,7 +2886,7 @@ "required":["Id"], "members":{ "Id":{ - "shape":"ResourceId", + "shape":"ChangeId", "documentation":"

The ID of the change batch request. The value that you specify here is the value that ChangeResourceRecordSets returned in the Id element when you submitted the request.

", "location":"uri", "locationName":"Id" @@ -3370,7 +3766,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

Amazon Route 53 doesn't have the permissions required to create log streams and send query logs to log streams. Possible causes include the following:

  • There is no resource policy that specifies the log group ARN in the value for Resource.

  • The resource policy that includes the log group ARN in the value for Resource doesn't have the necessary permissions.

  • The resource policy hasn't finished propagating yet.

  • The Key management service (KMS) key you specified doesn’t exist or it can’t be used with the log group associated with query log. Update or provide a resource policy to grant permissions for the KMS key.

", + "documentation":"

Amazon Route 53 doesn't have the permissions required to create log streams and send query logs to log streams. Possible causes include the following:

  • There is no resource policy that specifies the log group ARN in the value for Resource.

  • The resource policy that includes the log group ARN in the value for Resource doesn't have the necessary permissions.

  • The resource policy hasn't finished propagating yet.

  • The Key management service (KMS) key you specified doesn’t exist or it can’t be used with the log group associated with query log. Update or provide a resource policy to grant permissions for the KMS key.

  • The Key management service (KMS) key you specified is marked as disabled for the log group associated with query log. Update or provide a resource policy to grant permissions for the KMS key.

", "error":{"httpStatusCode":400}, "exception":true }, @@ -3630,7 +4026,7 @@ "documentation":"

" } }, - "documentation":"

This operation can't be completed either because the current account has reached the limit on reusable delegation sets that it can create or because you've reached the limit on the number of Amazon VPCs that you can associate with a private hosted zone. To get the current limit on the number of reusable delegation sets, see GetAccountLimit. To get the current limit on the number of Amazon VPCs that you can associate with a private hosted zone, see GetHostedZoneLimit. To request a higher limit, create a case with the Amazon Web Services Support Center.

", + "documentation":"

This operation can't be completed because the current account has reached the limit on the resource you are trying to create. To request a higher limit, create a case with the Amazon Web Services Support Center.

", "exception":true }, "LinkedService":{ @@ -3647,6 +4043,116 @@ }, "documentation":"

If a health check or hosted zone was created by another service, LinkedService is a complex type that describes the service that created the resource. When a resource is created by another service, you can't edit or delete it using Amazon Route 53.

" }, + "ListCidrBlocksRequest":{ + "type":"structure", + "required":["CollectionId"], + "members":{ + "CollectionId":{ + "shape":"UUID", + "documentation":"

The UUID of the CIDR collection.

", + "location":"uri", + "locationName":"CidrCollectionId" + }, + "LocationName":{ + "shape":"CidrLocationNameDefaultNotAllowed", + "documentation":"

The name of the CIDR collection location.

", + "location":"querystring", + "locationName":"location" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

An opaque pagination token to indicate where the service is to begin enumerating results.

", + "location":"querystring", + "locationName":"nexttoken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

Maximum number of results you want returned.

", + "location":"querystring", + "locationName":"maxresults" + } + } + }, + "ListCidrBlocksResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

An opaque pagination token to indicate where the service is to begin enumerating results.

If no value is provided, the listing of results starts from the beginning.

" + }, + "CidrBlocks":{ + "shape":"CidrBlockSummaries", + "documentation":"

A complex type that contains information about the CIDR blocks.

" + } + } + }, + "ListCidrCollectionsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

An opaque pagination token to indicate where the service is to begin enumerating results.

If no value is provided, the listing of results starts from the beginning.

", + "location":"querystring", + "locationName":"nexttoken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of CIDR collections to return in the response.

", + "location":"querystring", + "locationName":"maxresults" + } + } + }, + "ListCidrCollectionsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

An opaque pagination token to indicate where the service is to begin enumerating results.

If no value is provided, the listing of results starts from the beginning.

" + }, + "CidrCollections":{ + "shape":"CollectionSummaries", + "documentation":"

A complex type with information about the CIDR collection.

" + } + } + }, + "ListCidrLocationsRequest":{ + "type":"structure", + "required":["CollectionId"], + "members":{ + "CollectionId":{ + "shape":"UUID", + "documentation":"

The CIDR collection ID.

", + "location":"uri", + "locationName":"CidrCollectionId" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

An opaque pagination token to indicate where the service is to begin enumerating results.

If no value is provided, the listing of results starts from the beginning.

", + "location":"querystring", + "locationName":"nexttoken" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of CIDR collection locations to return in the response.

", + "location":"querystring", + "locationName":"maxresults" + } + } + }, + "ListCidrLocationsResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

An opaque pagination token to indicate where the service is to begin enumerating results.

If no value is provided, the listing of results starts from the beginning.

" + }, + "CidrLocations":{ + "shape":"LocationSummaries", + "documentation":"

A complex type that contains information about the list of CIDR locations.

" + } + } + }, "ListGeoLocationsRequest":{ "type":"structure", "members":{ @@ -4512,6 +5018,20 @@ }, "documentation":"

A complex type that contains the response information for the request.

" }, + "LocationSummaries":{ + "type":"list", + "member":{"shape":"LocationSummary"} + }, + "LocationSummary":{ + "type":"structure", + "members":{ + "LocationName":{ + "shape":"CidrLocationNameDefaultAllowed", + "documentation":"

A string that specifies a location name.

" + } + }, + "documentation":"

A complex type that contains information about the CIDR location.

" + }, "MaxResults":{"type":"string"}, "MeasureLatency":{"type":"boolean"}, "Message":{ @@ -4542,6 +5062,24 @@ "error":{"httpStatusCode":404}, "exception":true }, + "NoSuchCidrCollectionException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The CIDR collection you specified, doesn't exist.

", + "error":{"httpStatusCode":404}, + "exception":true + }, + "NoSuchCidrLocationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The CIDR collection location doesn't match any locations in your account.

", + "error":{"httpStatusCode":404}, + "exception":true + }, "NoSuchCloudWatchLogsLogGroup":{ "type":"structure", "members":{ @@ -4848,7 +5386,7 @@ }, "Region":{ "shape":"ResourceRecordSetRegion", - "documentation":"

Latency-based resource record sets only: The Amazon EC2 Region where you created the resource that this resource record set refers to. The resource typically is an Amazon Web Services resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type.

Although creating latency and latency alias resource record sets in a private hosted zone is allowed, it's not supported.

When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. Route 53 then returns the value that is associated with the selected resource record set.

Note the following:

  • You can only specify one ResourceRecord per latency resource record set.

  • You can only create one latency resource record set for each Amazon EC2 Region.

  • You aren't required to create latency resource record sets for all Amazon EC2 Regions. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for.

  • You can't create non-latency resource record sets that have the same values for the Name and Type elements as latency resource record sets.

" + "documentation":"

Latency-based resource record sets only: The Amazon EC2 Region where you created the resource that this resource record set refers to. The resource typically is an Amazon Web Services resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type.

When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. Route 53 then returns the value that is associated with the selected resource record set.

Note the following:

  • You can only specify one ResourceRecord per latency resource record set.

  • You can only create one latency resource record set for each Amazon EC2 Region.

  • You aren't required to create latency resource record sets for all Amazon EC2 Regions. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for.

  • You can't create non-latency resource record sets that have the same values for the Name and Type elements as latency resource record sets.

" }, "GeoLocation":{ "shape":"GeoLocation", @@ -4872,7 +5410,7 @@ }, "AliasTarget":{ "shape":"AliasTarget", - "documentation":"

Alias resource record sets only: Information about the Amazon Web Services resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to.

If you're creating resource records sets for a private hosted zone, note the following:

  • You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution.

  • Creating geolocation alias resource record sets or latency alias resource record sets in a private hosted zone is unsupported.

  • For information about creating failover resource record sets in a private hosted zone, see Configuring Failover in a Private Hosted Zone in the Amazon Route 53 Developer Guide.

" + "documentation":"

Alias resource record sets only: Information about the Amazon Web Services resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to.

If you're creating resource records sets for a private hosted zone, note the following:

  • You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution.

  • For information about creating failover resource record sets in a private hosted zone, see Configuring Failover in a Private Hosted Zone in the Amazon Route 53 Developer Guide.

" }, "HealthCheckId":{ "shape":"HealthCheckId", @@ -4881,7 +5419,8 @@ "TrafficPolicyInstanceId":{ "shape":"TrafficPolicyInstanceId", "documentation":"

When you create a traffic policy instance, Amazon Route 53 automatically creates a resource record set. TrafficPolicyInstanceId is the ID of the traffic policy instance that Route 53 created this resource record set for.

To delete the resource record set that is associated with a traffic policy instance, use DeleteTrafficPolicyInstance. Route 53 will delete the resource record set automatically. If you delete the resource record set by using ChangeResourceRecordSets, Route 53 doesn't automatically delete the traffic policy instance, and you'll continue to be charged for it even though it's no longer in use.

" - } + }, + "CidrRoutingConfig":{"shape":"CidrRoutingConfig"} }, "documentation":"

Information about the resource record set to create or delete.

" }, @@ -4910,6 +5449,7 @@ "eu-west-2", "eu-west-3", "eu-central-1", + "eu-central-2", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3", @@ -4922,9 +5462,12 @@ "cn-northwest-1", "ap-east-1", "me-south-1", + "me-central-1", "ap-south-1", + "ap-south-2", "af-south-1", - "eu-south-1" + "eu-south-1", + "eu-south-2" ], "max":64, "min":1 @@ -5521,6 +6064,10 @@ "max":4 }, "TransportProtocol":{"type":"string"}, + "UUID":{ + "type":"string", + "pattern":"[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}" + }, "UpdateHealthCheckRequest":{ "type":"structure", "required":["HealthCheckId"], @@ -5771,6 +6318,7 @@ "eu-west-2", "eu-west-3", "eu-central-1", + "eu-central-2", "ap-east-1", "me-south-1", "us-gov-west-1", @@ -5778,10 +6326,12 @@ "us-iso-east-1", "us-iso-west-1", "us-isob-east-1", + "me-central-1", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3", "ap-south-1", + "ap-south-2", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", @@ -5790,7 +6340,8 @@ "ca-central-1", "cn-north-1", "af-south-1", - "eu-south-1" + "eu-south-1", + "eu-south-2" ], "max":64, "min":1 @@ -5805,5 +6356,5 @@ "min":1 } }, - "documentation":"

Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service.

" + "documentation":"

Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service.

You can use Route 53 to:

" } diff --git a/botocore/data/route53domains/2014-05-15/endpoint-rule-set-1.json b/botocore/data/route53domains/2014-05-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..c89dea42 --- /dev/null +++ b/botocore/data/route53domains/2014-05-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53domains-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53domains-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53domains.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53domains.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/route53resolver/2018-04-01/endpoint-rule-set-1.json b/botocore/data/route53resolver/2018-04-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..47ec5c69 --- /dev/null +++ b/botocore/data/route53resolver/2018-04-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53resolver-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53resolver-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://route53resolver.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://route53resolver.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/route53resolver/2018-04-01/examples-1.json b/botocore/data/route53resolver/2018-04-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/route53resolver/2018-04-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/rum/2018-05-10/endpoint-rule-set-1.json b/botocore/data/rum/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..448f04b6 --- /dev/null +++ b/botocore/data/rum/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rum-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rum-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://rum.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://rum.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/rum/2018-05-10/examples-1.json b/botocore/data/rum/2018-05-10/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/rum/2018-05-10/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/rum/2018-05-10/paginators-1.json b/botocore/data/rum/2018-05-10/paginators-1.json index cf26166d..1a044920 100644 --- a/botocore/data/rum/2018-05-10/paginators-1.json +++ b/botocore/data/rum/2018-05-10/paginators-1.json @@ -11,6 +11,18 @@ "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/botocore/data/rum/2018-05-10/service-2.json b/botocore/data/rum/2018-05-10/service-2.json index fb7b7a75..24396191 100644 --- a/botocore/data/rum/2018-05-10/service-2.json +++ b/botocore/data/rum/2018-05-10/service-2.json @@ -12,6 +12,64 @@ "uid":"rum-2018-05-10" }, "operations":{ + "BatchCreateRumMetricDefinitions":{ + "name":"BatchCreateRumMetricDefinitions", + "http":{ + "method":"POST", + "requestUri":"/rummetrics/{AppMonitorName}/metrics", + "responseCode":200 + }, + "input":{"shape":"BatchCreateRumMetricDefinitionsRequest"}, + "output":{"shape":"BatchCreateRumMetricDefinitionsResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Specifies the extended metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid destinations include CloudWatch and Evidently.

By default, RUM app monitors send some metrics to CloudWatch. These default metrics are listed in CloudWatch metrics that you can collect with CloudWatch RUM.

If you also send extended metrics, you can send metrics to Evidently as well as CloudWatch, and you can also optionally send the metrics with additional dimensions. The valid dimension names for the additional dimensions are BrowserName, CountryCode, DeviceType, FileType, OSName, and PageId. For more information, see Extended metrics that you can send to CloudWatch and CloudWatch Evidently.

The maximum number of metric definitions that you can specify in one BatchCreateRumMetricDefinitions operation is 200.

The maximum number of metric definitions that one destination can contain is 2000.

Extended metrics sent are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension value counts as a custom metric. For more information, see Amazon CloudWatch Pricing.

You must have already created a destination for the metrics before you send them. For more information, see PutRumMetricsDestination.

If some metric definitions specified in a BatchCreateRumMetricDefinitions operations are not valid, those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.

", + "idempotent":true + }, + "BatchDeleteRumMetricDefinitions":{ + "name":"BatchDeleteRumMetricDefinitions", + "http":{ + "method":"DELETE", + "requestUri":"/rummetrics/{AppMonitorName}/metrics", + "responseCode":200 + }, + "input":{"shape":"BatchDeleteRumMetricDefinitionsRequest"}, + "output":{"shape":"BatchDeleteRumMetricDefinitionsResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Removes the specified metrics from being sent to an extended metrics destination.

If some metric definition IDs specified in a BatchDeleteRumMetricDefinitions operations are not valid, those metric definitions fail and return errors, but all valid metric definition IDs in the same operation are still deleted.

The maximum number of metric definitions that you can specify in one BatchDeleteRumMetricDefinitions operation is 200.

", + "idempotent":true + }, + "BatchGetRumMetricDefinitions":{ + "name":"BatchGetRumMetricDefinitions", + "http":{ + "method":"GET", + "requestUri":"/rummetrics/{AppMonitorName}/metrics", + "responseCode":200 + }, + "input":{"shape":"BatchGetRumMetricDefinitionsRequest"}, + "output":{"shape":"BatchGetRumMetricDefinitionsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Retrieves the list of metrics and dimensions that a RUM app monitor is sending to a single destination.

" + }, "CreateAppMonitor":{ "name":"CreateAppMonitor", "http":{ @@ -24,6 +82,7 @@ "errors":[ {"shape":"ConflictException"}, {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"}, @@ -52,6 +111,26 @@ "documentation":"

Deletes an existing app monitor. This immediately stops the collection of data.

", "idempotent":true }, + "DeleteRumMetricsDestination":{ + "name":"DeleteRumMetricsDestination", + "http":{ + "method":"DELETE", + "requestUri":"/rummetrics/{AppMonitorName}/metricsdestination", + "responseCode":200 + }, + "input":{"shape":"DeleteRumMetricsDestinationRequest"}, + "output":{"shape":"DeleteRumMetricsDestinationResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes a destination for CloudWatch RUM extended metrics, so that the specified app monitor stops sending extended metrics to that destination.

", + "idempotent":true + }, "GetAppMonitor":{ "name":"GetAppMonitor", "http":{ @@ -105,6 +184,23 @@ ], "documentation":"

Returns a list of the Amazon CloudWatch RUM app monitors in the account.

" }, + "ListRumMetricsDestinations":{ + "name":"ListRumMetricsDestinations", + "http":{ + "method":"GET", + "requestUri":"/rummetrics/{AppMonitorName}/metricsdestination", + "responseCode":200 + }, + "input":{"shape":"ListRumMetricsDestinationsRequest"}, + "output":{"shape":"ListRumMetricsDestinationsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Returns a list of destinations that you have created to receive RUM extended metrics, for the specified app monitor.

For more information about extended metrics, see AddRumMetrics.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -140,6 +236,26 @@ "documentation":"

Sends telemetry events about your application performance and user behavior to CloudWatch RUM. The code snippet that RUM generates for you to add to your application includes PutRumEvents operations to send this data to RUM.

Each PutRumEvents operation can send a batch of events from one user session.

", "endpoint":{"hostPrefix":"dataplane."} }, + "PutRumMetricsDestination":{ + "name":"PutRumMetricsDestination", + "http":{ + "method":"POST", + "requestUri":"/rummetrics/{AppMonitorName}/metricsdestination", + "responseCode":200 + }, + "input":{"shape":"PutRumMetricsDestinationRequest"}, + "output":{"shape":"PutRumMetricsDestinationResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Creates or updates a destination to receive extended metrics from CloudWatch RUM. You can send extended metrics to CloudWatch or to a CloudWatch Evidently experiment.

For more information about extended metrics, see AddRumMetrics.

", + "idempotent":true + }, "TagResource":{ "name":"TagResource", "http":{ @@ -192,6 +308,27 @@ {"shape":"AccessDeniedException"} ], "documentation":"

Updates the configuration of an existing app monitor. When you use this operation, only the parts of the app monitor configuration that you specify in this operation are changed. For any parameters that you omit, the existing values are kept.

You can't use this operation to change the tags of an existing app monitor. To change the tags of an existing app monitor, use TagResource.

To create a new app monitor, use CreateAppMonitor.

After you update an app monitor, sign in to the CloudWatch RUM console to get the updated JavaScript code snippet to add to your web application. For more information, see How do I find a code snippet that I've already generated?

" + }, + "UpdateRumMetricDefinition":{ + "name":"UpdateRumMetricDefinition", + "http":{ + "method":"PATCH", + "requestUri":"/rummetrics/{AppMonitorName}/metrics", + "responseCode":200 + }, + "input":{"shape":"UpdateRumMetricDefinitionRequest"}, + "output":{"shape":"UpdateRumMetricDefinitionResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Modifies one existing metric definition for CloudWatch RUM extended metrics. For more information about extended metrics, see BatchCreateRumMetricsDefinitions.

", + "idempotent":true } }, "shapes":{ @@ -219,6 +356,10 @@ "shape":"ISOTimestampString", "documentation":"

The date and time that this app monitor was created.

" }, + "CustomEvents":{ + "shape":"CustomEvents", + "documentation":"

Specifies whether this app monitor allows the web client to define and send custom events.

For more information about custom events, see Send custom events.

" + }, "DataStorage":{ "shape":"DataStorage", "documentation":"

A structure that contains information about whether this app monitor stores a copy of the telemetry data that RUM collects using CloudWatch Logs.

" @@ -267,7 +408,7 @@ }, "FavoritePages":{ "shape":"FavoritePages", - "documentation":"

A list of pages in the CloudWatch RUM console that are to be displayed with a \"favorite\" icon.

" + "documentation":"

A list of pages in your application that are to be displayed with a \"favorite\" icon in the CloudWatch RUM console.

" }, "GuestRoleArn":{ "shape":"Arn", @@ -279,11 +420,11 @@ }, "IncludedPages":{ "shape":"Pages", - "documentation":"

If this app monitor is to collect data from only certain pages in your application, this structure lists those pages.

 <p>You can't include both <code>ExcludedPages</code> and <code>IncludedPages</code> in the same operation.</p> 
" + "documentation":"

If this app monitor is to collect data from only certain pages in your application, this structure lists those pages.

You can't include both ExcludedPages and IncludedPages in the same operation.

" }, "SessionSampleRate":{ "shape":"SessionSampleRate", - "documentation":"

Specifies the percentage of user sessions to use for RUM data collection. Choosing a higher percentage gives you more data but also incurs more costs.

The number you specify is the percentage of user sessions that will be used.

If you omit this parameter, the default of 10 is used.

" + "documentation":"

Specifies the portion of user sessions to use for RUM data collection. Choosing a higher portion gives you more data but also incurs more costs.

The range for this value is 0 to 1 inclusive. Setting this to 1 means that 100% of user sessions are sampled, and setting it to 0.1 means that 10% of user sessions are sampled.

If you omit this parameter, the default of 0.1 is used, and 10% of sessions will be sampled.

" }, "Telemetries":{ "shape":"Telemetries", @@ -362,6 +503,202 @@ "type":"string", "pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:.*" }, + "BatchCreateRumMetricDefinitionsError":{ + "type":"structure", + "required":[ + "ErrorCode", + "ErrorMessage", + "MetricDefinition" + ], + "members":{ + "ErrorCode":{ + "shape":"String", + "documentation":"

The error code.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

The error message for this metric definition.

" + }, + "MetricDefinition":{ + "shape":"MetricDefinitionRequest", + "documentation":"

The metric definition that caused this error.

" + } + }, + "documentation":"

A structure that defines one error caused by a BatchCreateRumMetricsDefinitions operation.

" + }, + "BatchCreateRumMetricDefinitionsErrors":{ + "type":"list", + "member":{"shape":"BatchCreateRumMetricDefinitionsError"} + }, + "BatchCreateRumMetricDefinitionsRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination", + "MetricDefinitions" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "documentation":"

The name of the CloudWatch RUM app monitor that is to send the metrics.

", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{ + "shape":"MetricDestination", + "documentation":"

The destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the CloudWatchEvidently experiment that will receive the metrics and an IAM role that has permission to write to the experiment.

" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "documentation":"

This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter.

This parameter specifies the ARN of the Evidently experiment that is to receive the metrics. You must have already defined this experiment as a valid destination. For more information, see PutRumMetricsDestination.

" + }, + "MetricDefinitions":{ + "shape":"MetricDefinitionsRequest", + "documentation":"

An array of structures which define the metrics that you want to send.

" + } + } + }, + "BatchCreateRumMetricDefinitionsResponse":{ + "type":"structure", + "required":["Errors"], + "members":{ + "Errors":{ + "shape":"BatchCreateRumMetricDefinitionsErrors", + "documentation":"

An array of error objects, if the operation caused any errors.

" + }, + "MetricDefinitions":{ + "shape":"MetricDefinitions", + "documentation":"

An array of structures that define the extended metrics.

" + } + } + }, + "BatchDeleteRumMetricDefinitionsError":{ + "type":"structure", + "required":[ + "ErrorCode", + "ErrorMessage", + "MetricDefinitionId" + ], + "members":{ + "ErrorCode":{ + "shape":"String", + "documentation":"

The error code.

" + }, + "ErrorMessage":{ + "shape":"String", + "documentation":"

The error message for this metric definition.

" + }, + "MetricDefinitionId":{ + "shape":"MetricDefinitionId", + "documentation":"

The ID of the metric definition that caused this error.

" + } + }, + "documentation":"

A structure that defines one error caused by a BatchCreateRumMetricsDefinitions operation.

" + }, + "BatchDeleteRumMetricDefinitionsErrors":{ + "type":"list", + "member":{"shape":"BatchDeleteRumMetricDefinitionsError"} + }, + "BatchDeleteRumMetricDefinitionsRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination", + "MetricDefinitionIds" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "documentation":"

The name of the CloudWatch RUM app monitor that is sending these metrics.

", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{ + "shape":"MetricDestination", + "documentation":"

Defines the destination where you want to stop sending the specified metrics. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the CloudWatchEvidently experiment that is to be the destination and an IAM role that has permission to write to the experiment.

", + "location":"querystring", + "locationName":"destination" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "documentation":"

This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter.

This parameter specifies the ARN of the Evidently experiment that was receiving the metrics that are being deleted.

", + "location":"querystring", + "locationName":"destinationArn" + }, + "MetricDefinitionIds":{ + "shape":"MetricDefinitionIds", + "documentation":"

An array of structures which define the metrics that you want to stop sending.

", + "location":"querystring", + "locationName":"metricDefinitionIds" + } + } + }, + "BatchDeleteRumMetricDefinitionsResponse":{ + "type":"structure", + "required":["Errors"], + "members":{ + "Errors":{ + "shape":"BatchDeleteRumMetricDefinitionsErrors", + "documentation":"

An array of error objects, if the operation caused any errors.

" + }, + "MetricDefinitionIds":{ + "shape":"MetricDefinitionIds", + "documentation":"

The IDs of the metric definitions that were deleted.

" + } + } + }, + "BatchGetRumMetricDefinitionsRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "documentation":"

The name of the CloudWatch RUM app monitor that is sending the metrics.

", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{ + "shape":"MetricDestination", + "documentation":"

The type of destination that you want to view metrics for. Valid values are CloudWatch and Evidently.

", + "location":"querystring", + "locationName":"destination" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "documentation":"

This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter.

This parameter specifies the ARN of the Evidently experiment that corresponds to the destination.

", + "location":"querystring", + "locationName":"destinationArn" + }, + "MaxResults":{ + "shape":"MaxResultsInteger", + "documentation":"

The maximum number of results to return in one operation. The default is 50. The maximum that you can specify is 100.

To retrieve the remaining results, make another call with the returned NextToken value.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Use the token returned by the previous operation to request the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "BatchGetRumMetricDefinitionsResponse":{ + "type":"structure", + "members":{ + "MetricDefinitions":{ + "shape":"MetricDefinitions", + "documentation":"

An array of structures that display information about the metrics that are sent by the specified app monitor to the specified destination.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A token that you can use in a subsequent operation to retrieve the next set of results.

" + } + } + }, "Boolean":{ "type":"boolean", "box":true @@ -401,6 +738,10 @@ "shape":"AppMonitorConfiguration", "documentation":"

A structure that contains much of the configuration data for the app monitor. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own authorization method. For more information, see Authorize your application to send data to Amazon Web Services.

If you omit this argument, the sample rate used for RUM is set to 10% of the user sessions.

" }, + "CustomEvents":{ + "shape":"CustomEvents", + "documentation":"

Specifies whether this app monitor allows the web client to define and send custom events. If you omit this parameter, custom events are DISABLED.

For more information about custom events, see Send custom events.

" + }, "CwLogEnabled":{ "shape":"Boolean", "documentation":"

Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to Amazon CloudWatch Logs in your account. This enables you to keep the telemetry data for more than 30 days, but it does incur Amazon CloudWatch Logs charges.

If you omit this parameter, the default is false.

" @@ -415,7 +756,7 @@ }, "Tags":{ "shape":"TagMap", - "documentation":"

Assigns one or more tags (key-value pairs) to the app monitor.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

 <p>You can associate as many as 50 tags with an app monitor.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a>.</p> 
" + "documentation":"

Assigns one or more tags (key-value pairs) to the app monitor.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can associate as many as 50 tags with an app monitor.

For more information, see Tagging Amazon Web Services resources.

" } } }, @@ -428,6 +769,23 @@ } } }, + "CustomEvents":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"CustomEventsStatus", + "documentation":"

Specifies whether this app monitor allows the web client to define and send custom events. The default is for custom events to be DISABLED.

" + } + }, + "documentation":"

A structure that contains information about custom events for this app monitor.

" + }, + "CustomEventsStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "CwLog":{ "type":"structure", "members":{ @@ -469,11 +827,70 @@ "members":{ } }, + "DeleteRumMetricsDestinationRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "documentation":"

The name of the app monitor that is sending metrics to the destination that you want to delete.

", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{ + "shape":"MetricDestination", + "documentation":"

The type of destination to delete. Valid values are CloudWatch and Evidently.

", + "location":"querystring", + "locationName":"destination" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "documentation":"

This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter. This parameter specifies the ARN of the Evidently experiment that corresponds to the destination to delete.

", + "location":"querystring", + "locationName":"destinationArn" + } + } + }, + "DeleteRumMetricsDestinationResponse":{ + "type":"structure", + "members":{ + } + }, + "DestinationArn":{ + "type":"string", + "max":2048, + "min":0, + "pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:.*" + }, + "DimensionKey":{ + "type":"string", + "max":280, + "min":1 + }, + "DimensionKeysMap":{ + "type":"map", + "key":{"shape":"DimensionKey"}, + "value":{"shape":"DimensionName"} + }, + "DimensionName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^(?!:).*[^\\s].*" + }, "EventData":{"type":"string"}, "EventDataList":{ "type":"list", "member":{"shape":"EventData"} }, + "EventPattern":{ + "type":"string", + "max":4000, + "min":0 + }, "FavoritePages":{ "type":"list", "member":{"shape":"String"}, @@ -548,8 +965,11 @@ "ISOTimestampString":{ "type":"string", "max":19, - "min":19, - "pattern":"/d{4}-[01]/d-[0-3]/dT[0-2]/d:[0-5]/d:[0-5]/d/./d+([+-][0-2]/d:[0-5]/d|Z)" + "min":19 + }, + "IamRoleArn":{ + "type":"string", + "pattern":"arn:[^:]*:[^:]*:[^:]*:[^:]*:.*" }, "IdentityPoolId":{ "type":"string", @@ -584,8 +1004,8 @@ "type":"structure", "members":{ "MaxResults":{ - "shape":"Integer", - "documentation":"

The maximum number of results to return in one operation.

", + "shape":"MaxResultsInteger", + "documentation":"

The maximum number of results to return in one operation. The default is 50. The maximum that you can specify is 100.

", "location":"querystring", "locationName":"maxResults" }, @@ -610,6 +1030,43 @@ } } }, + "ListRumMetricsDestinationsRequest":{ + "type":"structure", + "required":["AppMonitorName"], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "documentation":"

The name of the app monitor associated with the destinations that you want to retrieve.

", + "location":"uri", + "locationName":"AppMonitorName" + }, + "MaxResults":{ + "shape":"MaxResultsInteger", + "documentation":"

The maximum number of results to return in one operation. The default is 50. The maximum that you can specify is 100.

To retrieve the remaining results, make another call with the returned NextToken value.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"String", + "documentation":"

Use the token returned by the previous operation to request the next page of results.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListRumMetricsDestinationsResponse":{ + "type":"structure", + "members":{ + "Destinations":{ + "shape":"MetricDestinationSummaryList", + "documentation":"

The list of CloudWatch RUM extended metrics destinations associated with the app monitor that you specified.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A token that you can use in a subsequent operation to retrieve the next set of results.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceArn"], @@ -644,6 +1101,124 @@ "max":100, "min":0 }, + "MaxResultsInteger":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "MetricDefinition":{ + "type":"structure", + "required":[ + "MetricDefinitionId", + "Name" + ], + "members":{ + "DimensionKeys":{ + "shape":"DimensionKeysMap", + "documentation":"

This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch The value of this field is used only if the metric destination is CloudWatch. If the metric destination is Evidently, the value of DimensionKeys is ignored.

" + }, + "EventPattern":{ + "shape":"EventPattern", + "documentation":"

The pattern that defines the metric. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destination.

If the metrics destination is CloudWatch and the event also matches a value in DimensionKeys, then the metric is published with the specified dimensions.

" + }, + "MetricDefinitionId":{ + "shape":"MetricDefinitionId", + "documentation":"

The ID of this metric definition.

" + }, + "Name":{ + "shape":"MetricName", + "documentation":"

The name of the metric that is defined in this structure.

" + }, + "UnitLabel":{ + "shape":"UnitLabel", + "documentation":"

Use this field only if you are sending this metric to CloudWatch. It defines the CloudWatch metric unit that this metric is measured in.

" + }, + "ValueKey":{ + "shape":"ValueKey", + "documentation":"

The field within the event object that the metric value is sourced from.

" + } + }, + "documentation":"

A structure that displays the definition of one extended metric that RUM sends to CloudWatch or CloudWatch Evidently. For more information, see Additional metrics that you can send to CloudWatch and CloudWatch Evidently.

" + }, + "MetricDefinitionId":{ + "type":"string", + "max":255, + "min":1 + }, + "MetricDefinitionIds":{ + "type":"list", + "member":{"shape":"MetricDefinitionId"} + }, + "MetricDefinitionRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "DimensionKeys":{ + "shape":"DimensionKeysMap", + "documentation":"

Use this field only if you are sending the metric to CloudWatch.

This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch. Valid values for the entries in this field are the following:

  • \"metadata.pageId\": \"PageId\"

  • \"metadata.browserName\": \"BrowserName\"

  • \"metadata.deviceType\": \"DeviceType\"

  • \"metadata.osName\": \"OSName\"

  • \"metadata.countryCode\": \"CountryCode\"

  • \"event_details.fileType\": \"FileType\"

All dimensions listed in this field must also be included in EventPattern.

" + }, + "EventPattern":{ + "shape":"EventPattern", + "documentation":"

The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destination.

When you define extended metrics, the metric definition is not valid if EventPattern is omitted.

Example event patterns:

  • '{ \"event_type\": [\"com.amazon.rum.js_error_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Safari\" ], } }'

  • '{ \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Firefox\" ] }, \"event_details\": { \"duration\": [{ \"numeric\": [ \"<\", 2000 ] }] } }'

  • '{ \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"metadata\": { \"browserName\": [ \"Chrome\", \"Safari\" ], \"countryCode\": [ \"US\" ] }, \"event_details\": { \"duration\": [{ \"numeric\": [ \">=\", 2000, \"<\", 8000 ] }] } }'

If the metrics destination' is CloudWatch and the event also matches a value in DimensionKeys, then the metric is published with the specified dimensions.

" + }, + "Name":{ + "shape":"MetricName", + "documentation":"

The name for the metric that is defined in this structure. Valid values are the following:

  • PerformanceNavigationDuration

  • PerformanceResourceDuration

  • NavigationSatisfiedTransaction

  • NavigationToleratedTransaction

  • NavigationFrustratedTransaction

  • WebVitalsCumulativeLayoutShift

  • WebVitalsFirstInputDelay

  • WebVitalsLargestContentfulPaint

  • JsErrorCount

  • HttpErrorCount

  • SessionCount

" + }, + "UnitLabel":{ + "shape":"UnitLabel", + "documentation":"

The CloudWatch metric unit to use for this metric. If you omit this field, the metric is recorded with no unit.

" + }, + "ValueKey":{ + "shape":"ValueKey", + "documentation":"

The field within the event object that the metric value is sourced from.

If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you just want to count the number of events that the filter catches.

If this metric is sent to CloudWatch Evidently, this field will be passed to Evidently raw and Evidently will handle data extraction from the event.

" + } + }, + "documentation":"

Use this structure to define one extended metric that RUM will send to CloudWatch or CloudWatch Evidently. For more information, see Additional metrics that you can send to CloudWatch and CloudWatch Evidently.

Only certain combinations of values for Name, ValueKey, and EventPattern are valid. In addition to what is displayed in the list below, the EventPattern can also include information used by the DimensionKeys field.

  • If Name is PerformanceNavigationDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_navigation_event\"]}

  • If Name is PerformanceResourceDuration, then ValueKeymust be event_details.duration and the EventPattern must include {\"event_type\":[\"com.amazon.rum.performance_resource_event\"]}

  • If Name is NavigationSatisfiedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">\",2000] }] } }

  • If Name is NavigationToleratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",2000,\"<\"8000] }] } }

  • If Name is NavigationFrustratedTransaction, then ValueKeymust be null and the EventPattern must include { \"event_type\": [\"com.amazon.rum.performance_navigation_event\"], \"event_details\": { \"duration\": [{ \"numeric\": [\">=\",8000] }] } }

  • If Name is WebVitalsCumulativeLayoutShift, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.cumulative_layout_shift_event\"]}

  • If Name is WebVitalsFirstInputDelay, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.first_input_delay_event\"]}

  • If Name is WebVitalsLargestContentfulPaint, then ValueKeymust be event_details.value and the EventPattern must include {\"event_type\":[\"com.amazon.rum.largest_contentful_paint_event\"]}

  • If Name is JsErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.js_error_event\"]}

  • If Name is HttpErrorCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.http_event\"]}

  • If Name is SessionCount, then ValueKeymust be null and the EventPattern must include {\"event_type\":[\"com.amazon.rum.session_start_event\"]}

" + }, + "MetricDefinitions":{ + "type":"list", + "member":{"shape":"MetricDefinition"} + }, + "MetricDefinitionsRequest":{ + "type":"list", + "member":{"shape":"MetricDefinitionRequest"} + }, + "MetricDestination":{ + "type":"string", + "enum":[ + "CloudWatch", + "Evidently" + ] + }, + "MetricDestinationSummary":{ + "type":"structure", + "members":{ + "Destination":{ + "shape":"MetricDestination", + "documentation":"

Specifies whether the destination is CloudWatch or Evidently.

" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "documentation":"

If the destination is Evidently, this specifies the ARN of the Evidently experiment that receives the metrics.

" + }, + "IamRoleArn":{ + "shape":"IamRoleArn", + "documentation":"

This field appears only when the destination is Evidently. It specifies the ARN of the IAM role that is used to write to the Evidently experiment that receives the metrics.

" + } + }, + "documentation":"

A structure that displays information about one destination that CloudWatch RUM sends extended metrics to.

" + }, + "MetricDestinationSummaryList":{ + "type":"list", + "member":{"shape":"MetricDestinationSummary"} + }, + "MetricName":{ + "type":"string", + "max":255, + "min":1 + }, "Pages":{ "type":"list", "member":{"shape":"Url"}, @@ -689,6 +1264,38 @@ "members":{ } }, + "PutRumMetricsDestinationRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "documentation":"

The name of the CloudWatch RUM app monitor that will send the metrics.

", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{ + "shape":"MetricDestination", + "documentation":"

Defines the destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the CloudWatchEvidently experiment that is to be the destination and an IAM role that has permission to write to the experiment.

" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "documentation":"

Use this parameter only if Destination is Evidently. This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics.

" + }, + "IamRoleArn":{ + "shape":"IamRoleArn", + "documentation":"

This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter.

This parameter specifies the ARN of an IAM role that RUM will assume to write to the Evidently experiment that you are sending metrics to. This role must have permission to write to that experiment.

" + } + } + }, + "PutRumMetricsDestinationResponse":{ + "type":"structure", + "members":{ + } + }, "QueryFilter":{ "type":"structure", "members":{ @@ -906,6 +1513,11 @@ }, "Timestamp":{"type":"timestamp"}, "Token":{"type":"string"}, + "UnitLabel":{ + "type":"string", + "max":256, + "min":1 + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -940,6 +1552,10 @@ "shape":"AppMonitorConfiguration", "documentation":"

A structure that contains much of the configuration data for the app monitor. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include the ID of the Amazon Cognito identity pool to use for authorization. If you don't include AppMonitorConfiguration, you must set up your own authorization method. For more information, see Authorize your application to send data to Amazon Web Services.

" }, + "CustomEvents":{ + "shape":"CustomEvents", + "documentation":"

Specifies whether this app monitor allows the web client to define and send custom events. The default is for custom events to be DISABLED.

For more information about custom events, see Send custom events.

" + }, "CwLogEnabled":{ "shape":"Boolean", "documentation":"

Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to Amazon CloudWatch Logs in your account. This enables you to keep the telemetry data for more than 30 days, but it does incur Amazon CloudWatch Logs charges.

" @@ -961,11 +1577,49 @@ "members":{ } }, + "UpdateRumMetricDefinitionRequest":{ + "type":"structure", + "required":[ + "AppMonitorName", + "Destination", + "MetricDefinition", + "MetricDefinitionId" + ], + "members":{ + "AppMonitorName":{ + "shape":"AppMonitorName", + "documentation":"

The name of the CloudWatch RUM app monitor that sends these metrics.

", + "location":"uri", + "locationName":"AppMonitorName" + }, + "Destination":{ + "shape":"MetricDestination", + "documentation":"

The destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the CloudWatchEvidently experiment that will receive the metrics and an IAM role that has permission to write to the experiment.

" + }, + "DestinationArn":{ + "shape":"DestinationArn", + "documentation":"

This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter.

This parameter specifies the ARN of the Evidently experiment that is to receive the metrics. You must have already defined this experiment as a valid destination. For more information, see PutRumMetricsDestination.

" + }, + "MetricDefinition":{ + "shape":"MetricDefinitionRequest", + "documentation":"

A structure that contains the new definition that you want to use for this metric.

" + }, + "MetricDefinitionId":{ + "shape":"MetricDefinitionId", + "documentation":"

The ID of the metric definition to update.

" + } + } + }, + "UpdateRumMetricDefinitionResponse":{ + "type":"structure", + "members":{ + } + }, "Url":{ "type":"string", "max":1260, "min":1, - "pattern":"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)" + "pattern":"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&*//=]*)" }, "UserDetails":{ "type":"structure", @@ -993,7 +1647,12 @@ "senderFault":true }, "exception":true + }, + "ValueKey":{ + "type":"string", + "max":280, + "min":1 } }, - "documentation":"

With Amazon CloudWatch RUM, you can perform real-user monitoring to collect client-side data about your web application performance from actual user sessions in real time. The data collected includes page load times, client-side errors, and user behavior. When you view this data, you can see it all aggregated together and also see breakdowns by the browsers and devices that your customers use.

 <p>You can use the collected data to quickly identify and debug client-side performance issues. CloudWatch RUM helps you visualize anomalies in your application performance and find relevant debugging data such as error messages, stack traces, and user sessions. You can also use RUM to understand the range of end-user impact including the number of users, geolocations, and browsers used.</p> 
" + "documentation":"

With Amazon CloudWatch RUM, you can perform real-user monitoring to collect client-side data about your web application performance from actual user sessions in real time. The data collected includes page load times, client-side errors, and user behavior. When you view this data, you can see it all aggregated together and also see breakdowns by the browsers and devices that your customers use.

You can use the collected data to quickly identify and debug client-side performance issues. CloudWatch RUM helps you visualize anomalies in your application performance and find relevant debugging data such as error messages, stack traces, and user sessions. You can also use RUM to understand the range of end-user impact including the number of users, geolocations, and browsers used.

" } diff --git a/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json b/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..819bfe14 --- /dev/null +++ b/botocore/data/s3/2006-03-01/endpoint-rule-set-1.json @@ -0,0 +1,10285 @@ +{ + "version": "1.0", + "parameters": { + "Bucket": { + "required": false, + "documentation": "The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.", + "type": "String" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "ForcePathStyle": { + "builtIn": "AWS::S3::ForcePathStyle", + "required": false, + "documentation": "When true, force a path-style endpoint to be used where the bucket name is part of the path.", + "type": "Boolean" + }, + "Accelerate": { + "builtIn": "AWS::S3::Accelerate", + "required": true, + "default": false, + "documentation": "When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.", + "type": "Boolean" + }, + "UseGlobalEndpoint": { + "builtIn": "AWS::S3::UseGlobalEndpoint", + "required": true, + "default": false, + "documentation": "Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.", + "type": "Boolean" + }, + "UseObjectLambdaEndpoint": { + "required": false, + "documentation": "Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)", + "type": "Boolean" + }, + "DisableAccessPoints": { + "required": false, + "documentation": "Internal parameter to disable Access Point Buckets", + "type": "Boolean" + }, + "DisableMultiRegionAccessPoints": { + "builtIn": "AWS::S3::DisableMultiRegionAccessPoints", + "required": true, + "default": false, + "documentation": "Whether multi-region access points (MRAP) should be disabled.", + "type": "Boolean" + }, + "UseArnRegion": { + "builtIn": "AWS::S3::UseArnRegion", + "required": false, + "documentation": "When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.", + "type": "Boolean" + } + }, + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 49, + 50, + true + ], + "assign": "hardwareType" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 8, + 12, + true + ], + "assign": "regionPrefix" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 7, + true + ], + "assign": "abbaSuffix" + }, + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 32, + 49, + true + ], + "assign": "outpostId" + }, + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "regionPartition" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "abbaSuffix" + }, + "--op-s3" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "hardwareType" + }, + "e" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "regionPrefix" + }, + "beta" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ], + "error": "Expected a endpoint to be specified but no endpoint was found", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "https://{Bucket}.ec2.{url#authority}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "hardwareType" + }, + "o" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "regionPrefix" + }, + "beta" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ], + "error": "Expected a endpoint to be specified but no endpoint was found", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "https://{Bucket}.op-{outpostId}.{url#authority}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "Unrecognized hardware type: \"Expected hardware type o or e but got {hardwareType}\"", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ] + } + ], + "error": "Custom endpoint `{Endpoint}` was not a valid URI", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "ForcePathStyle" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "ForcePathStyle" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ], + "error": "Path-style addressing cannot be used with ARN buckets", + "type": "error" + }, + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "error": "Cannot set dual-stack in combination with a custom endpoint.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with FIPS", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with S3 Accelerate", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Accelerate cannot be used with FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "S3 Accelerate cannot be used in this region", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "scheme" + ] + }, + "http" + ] + }, + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "bucketArn" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-object-lambda" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "accessPointName" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "accessPointName" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support Dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableAccessPoints" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableAccessPoints" + }, + true + ] + } + ], + "error": "Access points are not supported for this operation", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ] + } + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + "" + ] + } + ], + "error": "Invalid ARN: Missing account id", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region `{bucketArn#region}`", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: bucket ARN is missing a region", + "type": "error" + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "accessPointName" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "accessPointName" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableAccessPoints" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableAccessPoints" + }, + true + ] + } + ], + "error": "Access points are not supported for this operation", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ] + } + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + "{partitionResult#name}" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "Access Points do not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "error": "DualStack cannot be combined with a Host override (PrivateLink)", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region `{bucketArn#region}`", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: bucket ARN is missing a region", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 MRAP does not support dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "S3 MRAP does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 MRAP does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableMultiRegionAccessPoints" + }, + true + ] + } + ], + "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "mrapPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "mrapPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "partition" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegionSet": [ + "*" + ] + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "{Region} was not a valid region", + "type": "error" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Access Point Name", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-outposts" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Outposts does not support Dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "S3 Outposts does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 Outposts does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[4]" + ] + } + ] + } + ], + "error": "Invalid Arn: Outpost Access Point ARN contains sub resources", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "outpostId" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ], + "assign": "outpostType" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[3]" + ], + "assign": "accessPointName" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "outpostType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "disableDoubleEncoding": true, + "signingRegion": "{bucketArn#region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Expected an outpost type `accesspoint`, found {outpostType}", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: expected an access point name", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a 4-component resource", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region {bucketArn#region}", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The Outpost Id was not set", + "type": "error" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 4, + false + ], + "assign": "arnPrefix" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnPrefix" + }, + "arn:" + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ] + } + ] + } + ], + "error": "Invalid ARN: `{Bucket}` was not a valid ARN", + "type": "error" + }, + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "error": "Cannot set dual-stack in combination with a custom endpoint.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with FIPS", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with S3 Accelerate", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseObjectLambdaEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseObjectLambdaEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support Dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "A region must be set when sending requests to S3.", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/s3/2006-03-01/service-2.json b/botocore/data/s3/2006-03-01/service-2.json index 37dfda75..ba057f86 100644 --- a/botocore/data/s3/2006-03-01/service-2.json +++ b/botocore/data/s3/2006-03-01/service-2.json @@ -68,7 +68,10 @@ ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html", "documentation":"

Creates a new S3 bucket. To create a bucket, you must register with Amazon S3 and have a valid Amazon Web Services Access Key ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the bucket, you become the bucket owner.

Not every string is an acceptable bucket name. For information about bucket naming restrictions, see Bucket naming rules.

If you want to create an Amazon S3 on Outposts bucket, see Create Bucket.

By default, the bucket is created in the US East (N. Virginia) Region. You can optionally specify a Region in the request body. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region. For more information, see Accessing a bucket.

If you send your create bucket request to the s3.amazonaws.com endpoint, the request goes to the us-east-1 Region. Accordingly, the signature calculations in Signature Version 4 must use us-east-1 as the Region, even if the location constraint in the request specifies another Region where the bucket is to be created. If you create a bucket in a Region other than US East (N. Virginia), your application must be able to handle 307 redirect. For more information, see Virtual hosting of buckets.

Access control lists (ACLs)

When creating a bucket using this operation, you can optionally configure the bucket ACL to specify the accounts or groups that should be granted specific permissions on the bucket.

If your CreateBucket request sets bucket owner enforced for S3 Object Ownership and specifies a bucket ACL that provides access to an external Amazon Web Services account, your request fails with a 400 error and returns the InvalidBucketAclWithObjectOwnership error code. For more information, see Controlling object ownership in the Amazon S3 User Guide.

There are two ways to grant the appropriate permissions using the request headers.

  • Specify a canned ACL using the x-amz-acl request header. Amazon S3 supports a set of predefined ACLs, known as canned ACLs. Each canned ACL has a predefined set of grantees and permissions. For more information, see Canned ACL.

  • Specify access permissions explicitly using the x-amz-grant-read, x-amz-grant-write, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control headers. These headers map to the set of permissions Amazon S3 supports in an ACL. For more information, see Access control list (ACL) overview.

    You specify each grantee as a type=value pair, where the type is one of the following:

    • id – if the value specified is the canonical user ID of an Amazon Web Services account

    • uri – if you are granting permissions to a predefined group

    • emailAddress – if the value specified is the email address of an Amazon Web Services account

      Using email addresses to specify a grantee is only supported in the following Amazon Web Services Regions:

      • US East (N. Virginia)

      • US West (N. California)

      • US West (Oregon)

      • Asia Pacific (Singapore)

      • Asia Pacific (Sydney)

      • Asia Pacific (Tokyo)

      • Europe (Ireland)

      • South America (São Paulo)

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the Amazon Web Services General Reference.

    For example, the following x-amz-grant-read header grants the Amazon Web Services accounts identified by account IDs permissions to read object data and its metadata:

    x-amz-grant-read: id=\"11112222333\", id=\"444455556666\"

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Permissions

In addition to s3:CreateBucket, the following permissions are required when your CreateBucket includes specific headers:

  • ACLs - If your CreateBucket request specifies ACL permissions and the ACL is public-read, public-read-write, authenticated-read, or if you specify access permissions explicitly through any other ACL, both s3:CreateBucket and s3:PutBucketAcl permissions are needed. If the ACL the CreateBucket request is private or doesn't specify any ACLs, only s3:CreateBucket permission is needed.

  • Object Lock - If ObjectLockEnabledForBucket is set to true in your CreateBucket request, s3:PutBucketObjectLockConfiguration and s3:PutBucketVersioning permissions are required.

  • S3 Object Ownership - If your CreateBucket request includes the the x-amz-object-ownership header, s3:PutBucketOwnershipControls permission is required.

The following operations are related to CreateBucket:

", - "alias":"PutBucket" + "alias":"PutBucket", + "staticContextParams":{ + "DisableAccessPoints":{"value":true} + } }, "CreateMultipartUpload":{ "name":"CreateMultipartUpload", @@ -1173,6 +1176,9 @@ "authtype":"v4-unsigned-body", "endpoint":{ "hostPrefix":"{RequestRoute}." + }, + "staticContextParams":{ + "UseObjectLambdaEndpoint":{"value":true} } } }, @@ -1209,6 +1215,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name to which the upload was taking place.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -1475,6 +1482,7 @@ "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "cn-north-1", "cn-northwest-1", @@ -1814,6 +1822,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Name of the bucket to which the multipart upload was initiated.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2060,6 +2069,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the destination bucket.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2408,6 +2418,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket to create.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2554,6 +2565,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket to which to initiate the upload

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2777,6 +2789,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket from which an analytics configuration is deleted.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2801,6 +2814,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket whose cors configuration is being deleted.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2819,6 +2833,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the server-side encryption configuration to delete.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2840,6 +2855,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2861,6 +2877,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the inventory configuration to delete.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2885,6 +2902,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name of the lifecycle to delete.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2906,6 +2924,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the metrics configuration to delete.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2930,6 +2949,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The Amazon S3 bucket whose OwnershipControls you want to delete.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2948,6 +2968,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2966,6 +2987,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2984,6 +3006,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket being deleted.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3002,6 +3025,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket that has the tag set to be removed.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3020,6 +3044,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name for which you want to remove the website configuration.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3113,6 +3138,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name of the bucket containing the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3174,6 +3200,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name containing the objects from which to remove the tags.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3226,6 +3253,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name containing the objects to delete.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3274,6 +3302,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3572,6 +3601,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which the accelerate configuration is retrieved.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3604,6 +3634,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the S3 bucket whose ACL is being requested.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3635,6 +3666,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket from which an analytics configuration is retrieved.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3669,6 +3701,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name for which to get the cors configuration.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3694,6 +3727,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket from which the server-side encryption configuration is retrieved.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3725,6 +3759,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3756,6 +3791,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the inventory configuration to retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3790,6 +3826,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to get the lifecycle information.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3818,6 +3855,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to get the lifecycle information.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3845,6 +3883,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to get the location.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3869,6 +3908,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name for which to get the logging information.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3900,6 +3940,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the metrics configuration to retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3924,6 +3965,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to get the notification configuration.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3952,6 +3994,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the Amazon S3 bucket whose OwnershipControls you want to retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3980,6 +4023,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name for which to get the bucket policy.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4008,6 +4052,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the Amazon S3 bucket whose policy status you want to retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4033,6 +4078,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name for which to get the replication information.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4060,6 +4106,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to get the payment request configuration

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4088,6 +4135,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to get the tagging information.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4120,6 +4168,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to get the versioning information.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4159,6 +4208,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name for which to get the website configuration.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4199,6 +4249,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name that contains the object for which to get the ACL information.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4318,6 +4369,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket that contains the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4402,6 +4454,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name containing the object whose legal hold status you want to retrieve.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4447,6 +4500,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket whose Object Lock configuration you want to retrieve.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4688,6 +4742,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name containing the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using an Object Lambda access point the hostname takes the form AccessPointName-AccountId.s3-object-lambda.Region.amazonaws.com.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4833,6 +4888,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name containing the object whose retention settings you want to retrieve.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4887,6 +4943,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name containing the object for which to get the tagging information.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4941,6 +4998,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the object for which to get the torrent files.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4980,6 +5038,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5068,6 +5127,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5297,6 +5357,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5918,6 +5979,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket from which analytics configurations are retrieved.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5964,6 +6026,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6004,6 +6067,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the inventory configurations to retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6050,6 +6114,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the metrics configurations to retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6141,6 +6206,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket to which the multipart upload was initiated.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6253,6 +6319,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name that contains the objects.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6351,6 +6418,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket containing the objects.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6457,6 +6525,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Bucket name to list.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6598,6 +6667,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket to which the parts are being uploaded.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7494,6 +7564,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which the accelerate configuration is set.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7537,6 +7608,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket to which to apply the ACL.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7602,6 +7674,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket to which an analytics configuration is stored.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7636,6 +7709,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket impacted by the corsconfiguration.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7676,6 +7750,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3) or customer managed keys (SSE-KMS). For information about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket Encryption in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7716,6 +7791,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the Amazon S3 bucket whose configuration you want to modify or retrieve.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7745,6 +7821,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket where the inventory configuration will be stored.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7776,6 +7853,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to set the configuration.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7807,6 +7885,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7847,6 +7926,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to set the logging parameters.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7888,6 +7968,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which the metrics configuration is set.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7922,6 +8003,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7955,6 +8037,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7995,6 +8078,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the Amazon S3 bucket whose OwnershipControls you want to set.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8029,6 +8113,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8073,6 +8158,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8118,6 +8204,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8158,6 +8245,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8198,6 +8286,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8244,6 +8333,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8306,6 +8396,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name that contains the object to which you want to attach the ACL.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8397,6 +8488,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name containing the object that you want to place a legal hold on.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8461,6 +8553,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket whose Object Lock configuration you want to create or replace.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8611,6 +8704,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name to which the PUT action was initiated.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8840,6 +8934,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name that contains the object you want to apply this Object Retention configuration to.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8915,6 +9010,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name containing the object.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8972,6 +9068,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to set.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -9355,6 +9452,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name containing the object to restore.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -9642,6 +9740,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The S3 bucket.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -10154,6 +10253,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket name.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -10353,6 +10453,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket to which the multipart upload was initiated.

When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.

When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -10747,5 +10848,23 @@ }, "Years":{"type":"integer"} }, - "documentation":"

" + "documentation":"

", + "clientContextParams":{ + "Accelerate":{ + "documentation":"Enables this client to use S3 Transfer Acceleration endpoints.", + "type":"boolean" + }, + "DisableMultiRegionAccessPoints":{ + "documentation":"Disables this client's usage of Multi-Region Access Points.", + "type":"boolean" + }, + "ForcePathStyle":{ + "documentation":"Forces this client to use path-style addressing for buckets.", + "type":"boolean" + }, + "UseArnRegion":{ + "documentation":"Enables this client to use an ARN's region when constructing an endpoint instead of the client's configured region.", + "type":"boolean" + } + } } diff --git a/botocore/data/s3control/2018-08-20/endpoint-rule-set-1.json b/botocore/data/s3control/2018-08-20/endpoint-rule-set-1.json new file mode 100644 index 00000000..f739e632 --- /dev/null +++ b/botocore/data/s3control/2018-08-20/endpoint-rule-set-1.json @@ -0,0 +1,2351 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "AccountId": { + "required": false, + "documentation": "The Account ID used to send the request. This is an optional parameter that will be set automatically for operations that require it.", + "type": "String" + }, + "RequiresAccountId": { + "required": false, + "documentation": "Internal parameter for operations that require account id host prefix.", + "type": "Boolean" + }, + "OutpostId": { + "required": false, + "documentation": "The Outpost ID. Some operations have an optional OutpostId which should be used in endpoint construction.", + "type": "String" + }, + "Bucket": { + "required": false, + "documentation": "The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.", + "type": "String" + }, + "AccessPointName": { + "required": false, + "documentation": "The S3 AccessPointName used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 AccessPoint.", + "type": "String" + }, + "UseArnRegion": { + "builtIn": "AWS::S3Control::UseArnRegion", + "required": false, + "documentation": "When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.", + "type": "Boolean" + } + }, + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "OutpostId" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ] + } + ], + "error": "AccountId is required but not set", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "AccountId" + }, + false + ] + } + ] + } + ], + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "OutpostId" + }, + false + ] + } + ] + } + ], + "error": "OutpostId must only contain a-z, A-Z, 0-9 and `-`.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid configuration: Outposts do not support dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccessPointName" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "AccessPointName" + } + ], + "assign": "accessPointArn" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "service" + ] + }, + "s3-outposts" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid configuration: Outpost Access Points do not support dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "resourceId[1]" + ], + "assign": "outpostId" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "region" + ] + } + ], + "assign": "arnPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arnPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "accountId" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountId" + }, + "{accessPointArn#accountId}" + ] + } + ] + } + ], + "error": "Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "resourceId[2]" + ], + "assign": "outpostType" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "resourceId[3]" + ], + "assign": "accessPointName" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "outpostType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{accessPointArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{accessPointArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{accessPointArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{accessPointArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{accessPointArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{accessPointArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Expected an outpost type `accesspoint`, found `{outpostType}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: expected an access point name", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a 4-component resource", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: missing account ID", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region `{accessPointArn#region}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The Outpost Id was not set", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "bucketArn" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-outposts" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid configuration: Outpost buckets do not support dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "outpostId" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "arnPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arnPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountId" + }, + "{bucketArn#accountId}" + ] + } + ] + } + ], + "error": "Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ], + "assign": "outpostType" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[3]" + ], + "assign": "bucketName" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "outpostType" + }, + "bucket" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{bucketArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{bucketArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{bucketArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: expected a bucket name", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a 4-component resource", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: missing account ID", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region `{bucketArn#region}`", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The Outpost Id was not set", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ] + } + ], + "error": "AccountId is required but not set", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "AccountId" + }, + false + ] + } + ] + } + ], + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{AccountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-control.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Region must be set", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/s3control/2018-08-20/examples-1.json b/botocore/data/s3control/2018-08-20/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/s3control/2018-08-20/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/s3control/2018-08-20/service-2.json b/botocore/data/s3control/2018-08-20/service-2.json index d712b5d4..492f88f0 100644 --- a/botocore/data/s3control/2018-08-20/service-2.json +++ b/botocore/data/s3control/2018-08-20/service-2.json @@ -23,9 +23,12 @@ "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} }, "output":{"shape":"CreateAccessPointResult"}, - "documentation":"

Creates an access point and associates it with the specified bucket. For more information, see Managing Data Access with Amazon S3 Access Points in the Amazon S3 User Guide.

S3 on Outposts only supports VPC-style access points.

For more information, see Accessing Amazon S3 on Outposts using virtual private cloud (VPC) only access points in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to CreateAccessPoint:

", + "documentation":"

Creates an access point and associates it with the specified bucket. For more information, see Managing Data Access with Amazon S3 Access Points in the Amazon S3 User Guide.

S3 on Outposts only supports VPC-style access points.

For more information, see Accessing Amazon S3 on Outposts using virtual private cloud (VPC) only access points in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to CreateAccessPoint:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "CreateAccessPointForObjectLambda":{ @@ -43,6 +46,9 @@ "documentation":"

Creates an Object Lambda Access Point. For more information, see Transforming objects with Object Lambda Access Points in the Amazon S3 User Guide.

The following actions are related to CreateAccessPointForObjectLambda:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "CreateBucket":{ @@ -81,6 +87,9 @@ "documentation":"

You can use S3 Batch Operations to perform large-scale batch actions on Amazon S3 objects. Batch Operations can run a single action on lists of Amazon S3 objects that you specify. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

This action creates a S3 Batch Operations job.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "CreateMultiRegionAccessPoint":{ @@ -99,7 +108,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "DeleteAccessPoint":{ "name":"DeleteAccessPoint", @@ -108,9 +120,12 @@ "requestUri":"/v20180820/accesspoint/{name}" }, "input":{"shape":"DeleteAccessPointRequest"}, - "documentation":"

Deletes the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPoint:

", + "documentation":"

Deletes the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPoint:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteAccessPointForObjectLambda":{ @@ -123,6 +138,9 @@ "documentation":"

Deletes the specified Object Lambda Access Point.

The following actions are related to DeleteAccessPointForObjectLambda:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteAccessPointPolicy":{ @@ -132,9 +150,12 @@ "requestUri":"/v20180820/accesspoint/{name}/policy" }, "input":{"shape":"DeleteAccessPointPolicyRequest"}, - "documentation":"

Deletes the access point policy for the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPointPolicy:

", + "documentation":"

Deletes the access point policy for the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteAccessPointPolicy:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteAccessPointPolicyForObjectLambda":{ @@ -147,6 +168,9 @@ "documentation":"

Removes the resource policy for an Object Lambda Access Point.

The following actions are related to DeleteAccessPointPolicyForObjectLambda:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteBucket":{ @@ -156,9 +180,12 @@ "requestUri":"/v20180820/bucket/{name}" }, "input":{"shape":"DeleteBucketRequest"}, - "documentation":"

This action deletes an Amazon S3 on Outposts bucket. To delete an S3 bucket, see DeleteBucket in the Amazon S3 API Reference.

Deletes the Amazon S3 on Outposts bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

Related Resources

", + "documentation":"

This action deletes an Amazon S3 on Outposts bucket. To delete an S3 bucket, see DeleteBucket in the Amazon S3 API Reference.

Deletes the Amazon S3 on Outposts bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

Related Resources

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteBucketLifecycleConfiguration":{ @@ -168,9 +195,12 @@ "requestUri":"/v20180820/bucket/{name}/lifecycleconfiguration" }, "input":{"shape":"DeleteBucketLifecycleConfigurationRequest"}, - "documentation":"

This action deletes an Amazon S3 on Outposts bucket's lifecycle configuration. To delete an S3 bucket's lifecycle configuration, see DeleteBucketLifecycle in the Amazon S3 API Reference.

Deletes the lifecycle configuration from the specified Outposts bucket. Amazon S3 on Outposts removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 on Outposts no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

To use this action, you must have permission to perform the s3-outposts:DeleteLifecycleConfiguration action. By default, the bucket owner has this permission and the Outposts bucket owner can grant this permission to others.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

For more information about object expiration, see Elements to Describe Lifecycle Actions.

Related actions include:

", + "documentation":"

This action deletes an Amazon S3 on Outposts bucket's lifecycle configuration. To delete an S3 bucket's lifecycle configuration, see DeleteBucketLifecycle in the Amazon S3 API Reference.

Deletes the lifecycle configuration from the specified Outposts bucket. Amazon S3 on Outposts removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 on Outposts no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

To use this action, you must have permission to perform the s3-outposts:DeleteLifecycleConfiguration action. By default, the bucket owner has this permission and the Outposts bucket owner can grant this permission to others.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

For more information about object expiration, see Elements to Describe Lifecycle Actions.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteBucketPolicy":{ @@ -180,9 +210,12 @@ "requestUri":"/v20180820/bucket/{name}/policy" }, "input":{"shape":"DeleteBucketPolicyRequest"}, - "documentation":"

This action deletes an Amazon S3 on Outposts bucket policy. To delete an S3 bucket policy, see DeleteBucketPolicy in the Amazon S3 API Reference.

This implementation of the DELETE action uses the policy subresource to delete the policy of a specified Amazon S3 on Outposts bucket. If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the s3-outposts:DeleteBucketPolicy permissions on the specified Outposts bucket and belong to the bucket owner's account to use this action. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to DeleteBucketPolicy:

", + "documentation":"

This action deletes an Amazon S3 on Outposts bucket policy. To delete an S3 bucket policy, see DeleteBucketPolicy in the Amazon S3 API Reference.

This implementation of the DELETE action uses the policy subresource to delete the policy of a specified Amazon S3 on Outposts bucket. If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the s3-outposts:DeleteBucketPolicy permissions on the specified Outposts bucket and belong to the bucket owner's account to use this action. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteBucketPolicy:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteBucketTagging":{ @@ -193,9 +226,12 @@ "responseCode":204 }, "input":{"shape":"DeleteBucketTaggingRequest"}, - "documentation":"

This action deletes an Amazon S3 on Outposts bucket's tags. To delete an S3 bucket tags, see DeleteBucketTagging in the Amazon S3 API Reference.

Deletes the tags from the Outposts bucket. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

To use this action, you must have permission to perform the PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to DeleteBucketTagging:

", + "documentation":"

This action deletes an Amazon S3 on Outposts bucket's tags. To delete an S3 bucket tags, see DeleteBucketTagging in the Amazon S3 API Reference.

Deletes the tags from the Outposts bucket. For more information, see Using Amazon S3 on Outposts in Amazon S3 User Guide.

To use this action, you must have permission to perform the PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to DeleteBucketTagging:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteJobTagging":{ @@ -214,6 +250,9 @@ "documentation":"

Removes the entire tag set from the specified S3 Batch Operations job. To use this operation, you must have permission to perform the s3:DeleteJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteMultiRegionAccessPoint":{ @@ -232,7 +271,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "DeletePublicAccessBlock":{ "name":"DeletePublicAccessBlock", @@ -244,6 +286,9 @@ "documentation":"

Removes the PublicAccessBlock configuration for an Amazon Web Services account. For more information, see Using Amazon S3 block public access.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteStorageLensConfiguration":{ @@ -256,6 +301,9 @@ "documentation":"

Deletes the Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:DeleteStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteStorageLensConfigurationTagging":{ @@ -269,6 +317,9 @@ "documentation":"

Deletes the Amazon S3 Storage Lens configuration tags. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:DeleteStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DescribeJob":{ @@ -288,6 +339,9 @@ "documentation":"

Retrieves the configuration parameters and status for a Batch Operations job. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DescribeMultiRegionAccessPointOperation":{ @@ -302,7 +356,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "GetAccessPoint":{ "name":"GetAccessPoint", @@ -312,9 +369,12 @@ }, "input":{"shape":"GetAccessPointRequest"}, "output":{"shape":"GetAccessPointResult"}, - "documentation":"

Returns configuration information about the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to GetAccessPoint:

", + "documentation":"

Returns configuration information about the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to GetAccessPoint:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointConfigurationForObjectLambda":{ @@ -328,6 +388,9 @@ "documentation":"

Returns configuration for an Object Lambda Access Point.

The following actions are related to GetAccessPointConfigurationForObjectLambda:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointForObjectLambda":{ @@ -341,6 +404,9 @@ "documentation":"

Returns configuration information about the specified Object Lambda Access Point

The following actions are related to GetAccessPointForObjectLambda:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointPolicy":{ @@ -354,6 +420,9 @@ "documentation":"

Returns the access point policy associated with the specified access point.

The following actions are related to GetAccessPointPolicy:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointPolicyForObjectLambda":{ @@ -367,6 +436,9 @@ "documentation":"

Returns the resource policy for an Object Lambda Access Point.

The following actions are related to GetAccessPointPolicyForObjectLambda:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointPolicyStatus":{ @@ -380,6 +452,9 @@ "documentation":"

Indicates whether the specified access point currently has a policy that allows public access. For more information about public access through access points, see Managing Data Access with Amazon S3 access points in the Amazon S3 User Guide.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointPolicyStatusForObjectLambda":{ @@ -393,6 +468,9 @@ "documentation":"

Returns the status of the resource policy associated with an Object Lambda Access Point.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetBucket":{ @@ -403,9 +481,12 @@ }, "input":{"shape":"GetBucketRequest"}, "output":{"shape":"GetBucketResult"}, - "documentation":"

Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the Outposts bucket, the calling identity must have the s3-outposts:GetBucket permissions on the specified Outposts bucket and belong to the Outposts bucket owner's account in order to use this action. Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket.

If you don't have s3-outposts:GetBucket permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access Denied error.

The following actions are related to GetBucket for Amazon S3 on Outposts:

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

", + "documentation":"

Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the Outposts bucket, the calling identity must have the s3-outposts:GetBucket permissions on the specified Outposts bucket and belong to the Outposts bucket owner's account in order to use this action. Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket.

If you don't have s3-outposts:GetBucket permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access Denied error.

The following actions are related to GetBucket for Amazon S3 on Outposts:

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetBucketLifecycleConfiguration":{ @@ -416,9 +497,12 @@ }, "input":{"shape":"GetBucketLifecycleConfigurationRequest"}, "output":{"shape":"GetBucketLifecycleConfigurationResult"}, - "documentation":"

This action gets an Amazon S3 on Outposts bucket's lifecycle configuration. To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration in the Amazon S3 API Reference.

Returns the lifecycle configuration information set on the Outposts bucket. For more information, see Using Amazon S3 on Outposts and for information about lifecycle configuration, see Object Lifecycle Management in Amazon S3 User Guide.

To use this action, you must have permission to perform the s3-outposts:GetLifecycleConfiguration action. The Outposts bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

GetBucketLifecycleConfiguration has the following special error:

  • Error code: NoSuchLifecycleConfiguration

    • Description: The lifecycle configuration does not exist.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

The following actions are related to GetBucketLifecycleConfiguration:

", + "documentation":"

This action gets an Amazon S3 on Outposts bucket's lifecycle configuration. To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration in the Amazon S3 API Reference.

Returns the lifecycle configuration information set on the Outposts bucket. For more information, see Using Amazon S3 on Outposts and for information about lifecycle configuration, see Object Lifecycle Management in Amazon S3 User Guide.

To use this action, you must have permission to perform the s3-outposts:GetLifecycleConfiguration action. The Outposts bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

GetBucketLifecycleConfiguration has the following special error:

  • Error code: NoSuchLifecycleConfiguration

    • Description: The lifecycle configuration does not exist.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

The following actions are related to GetBucketLifecycleConfiguration:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetBucketPolicy":{ @@ -429,9 +513,12 @@ }, "input":{"shape":"GetBucketPolicyRequest"}, "output":{"shape":"GetBucketPolicyResult"}, - "documentation":"

This action gets a bucket policy for an Amazon S3 on Outposts bucket. To get a policy for an S3 bucket, see GetBucketPolicy in the Amazon S3 API Reference.

Returns the policy of a specified Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this action.

Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucketPolicy permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access Denied error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to GetBucketPolicy:

", + "documentation":"

This action gets a bucket policy for an Amazon S3 on Outposts bucket. To get a policy for an S3 bucket, see GetBucketPolicy in the Amazon S3 API Reference.

Returns the policy of a specified Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the bucket, the calling identity must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this action.

Only users from Outposts bucket owner account with the right permissions can perform actions on an Outposts bucket. If you don't have s3-outposts:GetBucketPolicy permissions or you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 403 Access Denied error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to GetBucketPolicy:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetBucketTagging":{ @@ -442,7 +529,23 @@ }, "input":{"shape":"GetBucketTaggingRequest"}, "output":{"shape":"GetBucketTaggingResult"}, - "documentation":"

This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket tags, see GetBucketTagging in the Amazon S3 API Reference.

Returns the tag set associated with the Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

To use this action, you must have permission to perform the GetBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

GetBucketTagging has the following special error:

  • Error code: NoSuchTagSetError

    • Description: There is no tag set associated with the bucket.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to GetBucketTagging:

", + "documentation":"

This action gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket tags, see GetBucketTagging in the Amazon S3 API Reference.

Returns the tag set associated with the Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

To use this action, you must have permission to perform the GetBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

GetBucketTagging has the following special error:

  • Error code: NoSuchTagSetError

    • Description: There is no tag set associated with the bucket.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to GetBucketTagging:

", + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "GetBucketVersioning":{ + "name":"GetBucketVersioning", + "http":{ + "method":"GET", + "requestUri":"/v20180820/bucket/{name}/versioning" + }, + "input":{"shape":"GetBucketVersioningRequest"}, + "output":{"shape":"GetBucketVersioningResult"}, + "documentation":"

This operation returns the versioning state only for S3 on Outposts buckets. To return the versioning state for an S3 bucket, see GetBucketVersioning in the Amazon S3 API Reference.

Returns the versioning state for an S3 on Outposts bucket. With versioning, you can save multiple distinct copies of your data and recover from unintended user actions and application failures.

If you've never set versioning on your bucket, it has no versioning state. In that case, the GetBucketVersioning request does not return a versioning state value.

For more information about versioning, see Versioning in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following operations are related to GetBucketVersioning for S3 on Outposts.

", "endpoint":{ "hostPrefix":"{AccountId}." } @@ -463,13 +566,16 @@ "documentation":"

Returns the tags on an S3 Batch Operations job. To use this operation, you must have permission to perform the s3:GetJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetMultiRegionAccessPoint":{ "name":"GetMultiRegionAccessPoint", "http":{ "method":"GET", - "requestUri":"/v20180820/mrap/instances/{name}" + "requestUri":"/v20180820/mrap/instances/{name+}" }, "input":{"shape":"GetMultiRegionAccessPointRequest"}, "output":{"shape":"GetMultiRegionAccessPointResult"}, @@ -477,13 +583,16 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "GetMultiRegionAccessPointPolicy":{ "name":"GetMultiRegionAccessPointPolicy", "http":{ "method":"GET", - "requestUri":"/v20180820/mrap/instances/{name}/policy" + "requestUri":"/v20180820/mrap/instances/{name+}/policy" }, "input":{"shape":"GetMultiRegionAccessPointPolicyRequest"}, "output":{"shape":"GetMultiRegionAccessPointPolicyResult"}, @@ -491,13 +600,16 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "GetMultiRegionAccessPointPolicyStatus":{ "name":"GetMultiRegionAccessPointPolicyStatus", "http":{ "method":"GET", - "requestUri":"/v20180820/mrap/instances/{name}/policystatus" + "requestUri":"/v20180820/mrap/instances/{name+}/policystatus" }, "input":{"shape":"GetMultiRegionAccessPointPolicyStatusRequest"}, "output":{"shape":"GetMultiRegionAccessPointPolicyStatusResult"}, @@ -505,7 +617,27 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "GetMultiRegionAccessPointRoutes":{ + "name":"GetMultiRegionAccessPointRoutes", + "http":{ + "method":"GET", + "requestUri":"/v20180820/mrap/instances/{mrap+}/routes" + }, + "input":{"shape":"GetMultiRegionAccessPointRoutesRequest"}, + "output":{"shape":"GetMultiRegionAccessPointRoutesResult"}, + "documentation":"

Returns the routing configuration for a Multi-Region Access Point, indicating which Regions are active or passive.

To obtain routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions:

  • us-east-1

  • us-west-2

  • ap-southeast-2

  • ap-northeast-1

  • eu-west-1

Your Amazon S3 bucket does not need to be in these five Regions.

", + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "GetPublicAccessBlock":{ "name":"GetPublicAccessBlock", @@ -521,6 +653,9 @@ "documentation":"

Retrieves the PublicAccessBlock configuration for an Amazon Web Services account. For more information, see Using Amazon S3 block public access.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetStorageLensConfiguration":{ @@ -531,9 +666,12 @@ }, "input":{"shape":"GetStorageLensConfigurationRequest"}, "output":{"shape":"GetStorageLensConfigurationResult"}, - "documentation":"

Gets the Amazon S3 Storage Lens configuration. For more information, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:GetStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", + "documentation":"

Gets the Amazon S3 Storage Lens configuration. For more information, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:GetStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetStorageLensConfigurationTagging":{ @@ -547,6 +685,9 @@ "documentation":"

Gets the tags of Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:GetStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListAccessPoints":{ @@ -557,9 +698,12 @@ }, "input":{"shape":"ListAccessPointsRequest"}, "output":{"shape":"ListAccessPointsResult"}, - "documentation":"

Returns a list of the access points currently associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in maxResults, whichever is less), the response will include a continuation token that you can use to list the additional access points.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to ListAccessPoints:

", + "documentation":"

Returns a list of the access points owned by the current account associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in maxResults, whichever is less), the response will include a continuation token that you can use to list the additional access points.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to ListAccessPoints:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListAccessPointsForObjectLambda":{ @@ -573,6 +717,9 @@ "documentation":"

Returns some or all (up to 1,000) access points associated with the Object Lambda Access Point per call. If there are more access points than what can be returned in one call, the response will include a continuation token that you can use to list the additional access points.

The following actions are related to ListAccessPointsForObjectLambda:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListJobs":{ @@ -591,6 +738,9 @@ "documentation":"

Lists current S3 Batch Operations jobs and jobs that have ended within the last 30 days for the Amazon Web Services account making the request. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListMultiRegionAccessPoints":{ @@ -605,7 +755,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "ListRegionalBuckets":{ "name":"ListRegionalBuckets", @@ -618,6 +771,9 @@ "documentation":"

Returns a list of all Outposts buckets in an Outpost that are owned by the authenticated sender of the request. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and x-amz-outpost-id in your request, see the Examples section.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListStorageLensConfigurations":{ @@ -631,6 +787,9 @@ "documentation":"

Gets a list of Amazon S3 Storage Lens configurations. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:ListStorageLensConfigurations action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutAccessPointConfigurationForObjectLambda":{ @@ -647,6 +806,9 @@ "documentation":"

Replaces configuration for an Object Lambda Access Point.

The following actions are related to PutAccessPointConfigurationForObjectLambda:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutAccessPointPolicy":{ @@ -660,9 +822,12 @@ "locationName":"PutAccessPointPolicyRequest", "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} }, - "documentation":"

Associates an access policy with the specified access point. Each access point can have only one policy, so a request made to this API replaces any existing policy associated with the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to PutAccessPointPolicy:

", + "documentation":"

Associates an access policy with the specified access point. Each access point can have only one policy, so a request made to this API replaces any existing policy associated with the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutAccessPointPolicy:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutAccessPointPolicyForObjectLambda":{ @@ -679,6 +844,9 @@ "documentation":"

Creates or replaces resource policy for an Object Lambda Access Point. For an example policy, see Creating Object Lambda Access Points in the Amazon S3 User Guide.

The following actions are related to PutAccessPointPolicyForObjectLambda:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutBucketLifecycleConfiguration":{ @@ -688,11 +856,14 @@ "requestUri":"/v20180820/bucket/{name}/lifecycleconfiguration" }, "input":{"shape":"PutBucketLifecycleConfigurationRequest"}, - "documentation":"

This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket. To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration in the Amazon S3 API Reference.

Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces an existing lifecycle configuration. Outposts buckets only support lifecycle configurations that delete/expire objects after a certain period of time and abort incomplete multipart uploads.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to PutBucketLifecycleConfiguration:

", + "documentation":"

This action puts a lifecycle configuration to an Amazon S3 on Outposts bucket. To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration in the Amazon S3 API Reference.

Creates a new lifecycle configuration for the S3 on Outposts bucket or replaces an existing lifecycle configuration. Outposts buckets only support lifecycle configurations that delete/expire objects after a certain period of time and abort incomplete multipart uploads.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutBucketLifecycleConfiguration:

", "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "PutBucketPolicy":{ "name":"PutBucketPolicy", @@ -705,11 +876,14 @@ "locationName":"PutBucketPolicyRequest", "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} }, - "documentation":"

This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put a policy on an S3 bucket, see PutBucketPolicy in the Amazon S3 API Reference.

Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the Outposts bucket, the calling identity must have the PutBucketPolicy permissions on the specified Outposts bucket and belong to the bucket owner's account in order to use this action.

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to PutBucketPolicy:

", + "documentation":"

This action puts a bucket policy to an Amazon S3 on Outposts bucket. To put a policy on an S3 bucket, see PutBucketPolicy in the Amazon S3 API Reference.

Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

If you are using an identity other than the root user of the Amazon Web Services account that owns the Outposts bucket, the calling identity must have the PutBucketPolicy permissions on the specified Outposts bucket and belong to the bucket owner's account in order to use this action.

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the Amazon Web Services account that owns a bucket can always use this action, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutBucketPolicy:

", "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "PutBucketTagging":{ "name":"PutBucketTagging", @@ -718,7 +892,23 @@ "requestUri":"/v20180820/bucket/{name}/tagging" }, "input":{"shape":"PutBucketTaggingRequest"}, - "documentation":"

This action puts tags on an Amazon S3 on Outposts bucket. To put tags on an S3 bucket, see PutBucketTagging in the Amazon S3 API Reference.

Sets the tags for an S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see Cost allocation and tagging.

Within a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites the old value. For more information, see Using cost allocation in Amazon S3 bucket tags.

To use this action, you must have permissions to perform the s3-outposts:PutBucketTagging action. The Outposts bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing access permissions to your Amazon S3 resources.

PutBucketTagging has the following special errors:

  • Error code: InvalidTagError

  • Error code: MalformedXMLError

    • Description: The XML provided does not match the schema.

  • Error code: OperationAbortedError

    • Description: A conflicting conditional action is currently in progress against this resource. Try again.

  • Error code: InternalError

    • Description: The service was unable to apply the provided tag to the bucket.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived using the access point ARN, see the Examples section.

The following actions are related to PutBucketTagging:

", + "documentation":"

This action puts tags on an Amazon S3 on Outposts bucket. To put tags on an S3 bucket, see PutBucketTagging in the Amazon S3 API Reference.

Sets the tags for an S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.

Use tags to organize your Amazon Web Services bill to reflect your own cost structure. To do this, sign up to get your Amazon Web Services account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see Cost allocation and tagging.

Within a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites the old value. For more information, see Using cost allocation in Amazon S3 bucket tags.

To use this action, you must have permissions to perform the s3-outposts:PutBucketTagging action. The Outposts bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing access permissions to your Amazon S3 resources.

PutBucketTagging has the following special errors:

  • Error code: InvalidTagError

  • Error code: MalformedXMLError

    • Description: The XML provided does not match the schema.

  • Error code: OperationAbortedError

    • Description: A conflicting conditional action is currently in progress against this resource. Try again.

  • Error code: InternalError

    • Description: The service was unable to apply the provided tag to the bucket.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following actions are related to PutBucketTagging:

", + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "PutBucketVersioning":{ + "name":"PutBucketVersioning", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/bucket/{name}/versioning" + }, + "input":{"shape":"PutBucketVersioningRequest"}, + "documentation":"

This operation sets the versioning state only for S3 on Outposts buckets. To set the versioning state for an S3 bucket, see PutBucketVersioning in the Amazon S3 API Reference.

Sets the versioning state for an S3 on Outposts bucket. With versioning, you can save multiple distinct copies of your data and recover from unintended user actions and application failures.

You can set the versioning state to one of the following:

  • Enabled - Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

  • Suspended - Suspends versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

If you've never set versioning on your bucket, it has no versioning state. In that case, a GetBucketVersioning request does not return a versioning state value.

When you enable S3 Versioning, for each object in your bucket, you have a current version and zero or more noncurrent versions. You can configure your bucket S3 Lifecycle rules to expire noncurrent versions after a specified time period. For more information, see Creating and managing a lifecycle configuration for your S3 on Outposts bucket in the Amazon S3 User Guide.

If you have an object expiration lifecycle policy in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle policy will manage the deletes of the noncurrent object versions in the version-enabled bucket. For more information, see Versioning in the Amazon S3 User Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of x-amz-outpost-id to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the x-amz-outpost-id derived by using the access point ARN, see the Examples section.

The following operations are related to PutBucketVersioning for S3 on Outposts.

", "endpoint":{ "hostPrefix":"{AccountId}." }, @@ -745,6 +935,9 @@ "documentation":"

Sets the supplied tag-set on an S3 Batch Operations job.

A tag is a key-value pair. You can associate S3 Batch Operations tags with any job by sending a PUT request against the tagging subresource that is associated with the job. To modify the existing tag set, you can either replace the existing tag set entirely, or make changes within the existing tag set by retrieving the existing tag set using GetJobTagging, modify that tag set, and use this action to replace the tag set with the one you modified. For more information, see Controlling access and labeling jobs using tags in the Amazon S3 User Guide.

  • If you send this request with an empty tag set, Amazon S3 deletes the existing tag set on the Batch Operations job. If you use this method, you are charged for a Tier 1 Request (PUT). For more information, see Amazon S3 pricing.

  • For deleting existing tags for your Batch Operations job, a DeleteJobTagging request is preferred because it achieves the same result without incurring charges.

  • A few things to consider about using tags:

    • Amazon S3 limits the maximum number of tags to 50 tags per job.

    • You can associate up to 50 tags with a job as long as they have unique tag keys.

    • A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length.

    • The key and values are case sensitive.

    • For tagging-related restrictions related to characters and encodings, see User-Defined Tag Restrictions in the Billing and Cost Management User Guide.

To use this action, you must have permission to perform the s3:PutJobTagging action.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutMultiRegionAccessPointPolicy":{ @@ -763,7 +956,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "PutPublicAccessBlock":{ "name":"PutPublicAccessBlock", @@ -772,9 +968,12 @@ "requestUri":"/v20180820/configuration/publicAccessBlock" }, "input":{"shape":"PutPublicAccessBlockRequest"}, - "documentation":"

Creates or modifies the PublicAccessBlock configuration for an Amazon Web Services account. For this operation, users must have the s3:PutBucketPublicAccessBlock permission. For more information, see Using Amazon S3 block public access.

Related actions include:

", + "documentation":"

Creates or modifies the PublicAccessBlock configuration for an Amazon Web Services account. For this operation, users must have the s3:PutAccountPublicAccessBlock permission. For more information, see Using Amazon S3 block public access.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutStorageLensConfiguration":{ @@ -788,9 +987,12 @@ "locationName":"PutStorageLensConfigurationRequest", "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} }, - "documentation":"

Puts an Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Working with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:PutStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", + "documentation":"

Puts an Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Working with Amazon S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:PutStorageLensConfiguration action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutStorageLensConfigurationTagging":{ @@ -808,6 +1010,30 @@ "documentation":"

Put or replace tags on an existing Amazon S3 Storage Lens configuration. For more information about S3 Storage Lens, see Assessing your storage activity and usage with Amazon S3 Storage Lens in the Amazon S3 User Guide.

To use this action, you must have permission to perform the s3:PutStorageLensConfigurationTagging action. For more information, see Setting permissions to use Amazon S3 Storage Lens in the Amazon S3 User Guide.

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } + }, + "SubmitMultiRegionAccessPointRoutes":{ + "name":"SubmitMultiRegionAccessPointRoutes", + "http":{ + "method":"PATCH", + "requestUri":"/v20180820/mrap/instances/{mrap+}/routes" + }, + "input":{ + "shape":"SubmitMultiRegionAccessPointRoutesRequest", + "locationName":"SubmitMultiRegionAccessPointRoutesRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "output":{"shape":"SubmitMultiRegionAccessPointRoutesResult"}, + "documentation":"

Submits an updated route configuration for a Multi-Region Access Point. This API operation updates the routing status for the specified Regions from active to passive, or from passive to active. A value of 0 indicates a passive status, which means that traffic won't be routed to the specified Region. A value of 100 indicates an active status, which means that traffic will be routed to the specified Region. At least one Region must be active at all times.

When the routing configuration is changed, any in-progress operations (uploads, copies, deletes, and so on) to formerly active Regions will continue to run to their final completion state (success or failure). The routing configurations of any Regions that aren’t specified remain unchanged.

Updated routing configurations might not be immediately applied. It can take up to 2 minutes for your changes to take effect.

To submit routing control changes and failover requests, use the Amazon S3 failover control infrastructure endpoints in these five Amazon Web Services Regions:

  • us-east-1

  • us-west-2

  • ap-southeast-2

  • ap-northeast-1

  • eu-west-1

Your Amazon S3 bucket does not need to be in these five Regions.

", + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "UpdateJobPriority":{ @@ -827,6 +1053,9 @@ "documentation":"

Updates an existing S3 Batch Operations job's priority. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "UpdateJobStatus":{ @@ -847,6 +1076,9 @@ "documentation":"

Updates the status for the specified job. Use this action to confirm that you want to run a job or to cancel an existing job. For more information, see S3 Batch Operations in the Amazon S3 User Guide.

Related actions include:

", "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } } }, @@ -892,6 +1124,10 @@ "Alias":{ "shape":"Alias", "documentation":"

The name or alias of the access point.

" + }, + "BucketAccountId":{ + "shape":"AccountId", + "documentation":"

The Amazon Web Services account ID associated with the S3 bucket associated with this access point.

" } }, "documentation":"

An access point used to access a bucket.

" @@ -919,24 +1155,56 @@ "members":{ "ActivityMetrics":{ "shape":"ActivityMetrics", - "documentation":"

A container for the S3 Storage Lens activity metrics.

" + "documentation":"

A container for S3 Storage Lens activity metrics.

" }, "BucketLevel":{ "shape":"BucketLevel", "documentation":"

A container for the S3 Storage Lens bucket-level configuration.

" + }, + "AdvancedCostOptimizationMetrics":{ + "shape":"AdvancedCostOptimizationMetrics", + "documentation":"

A container for S3 Storage Lens advanced cost-optimization metrics.

" + }, + "AdvancedDataProtectionMetrics":{ + "shape":"AdvancedDataProtectionMetrics", + "documentation":"

A container for S3 Storage Lens advanced data-protection metrics.

" + }, + "DetailedStatusCodesMetrics":{ + "shape":"DetailedStatusCodesMetrics", + "documentation":"

A container for detailed status code metrics.

" } }, - "documentation":"

A container for the account level Amazon S3 Storage Lens configuration.

" + "documentation":"

A container for the account-level Amazon S3 Storage Lens configuration.

For more information about S3 Storage Lens, see Assessing your storage activity and usage with S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

" }, "ActivityMetrics":{ "type":"structure", "members":{ "IsEnabled":{ "shape":"IsEnabled", - "documentation":"

A container for whether the activity metrics are enabled.

" + "documentation":"

A container that indicates whether activity metrics are enabled.

" } }, - "documentation":"

A container for the activity metrics.

" + "documentation":"

The container element for Amazon S3 Storage Lens activity metrics. Activity metrics show details about how your storage is requested, such as requests (for example, All requests, Get requests, Put requests), bytes uploaded or downloaded, and errors.

For more information about S3 Storage Lens, see Assessing your storage activity and usage with S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

" + }, + "AdvancedCostOptimizationMetrics":{ + "type":"structure", + "members":{ + "IsEnabled":{ + "shape":"IsEnabled", + "documentation":"

A container that indicates whether advanced cost-optimization metrics are enabled.

" + } + }, + "documentation":"

The container element for Amazon S3 Storage Lens advanced cost-optimization metrics. Advanced cost-optimization metrics provide insights that you can use to manage and optimize your storage costs, for example, lifecycle rule counts for transitions, expirations, and incomplete multipart uploads.

For more information about S3 Storage Lens, see Assessing your storage activity and usage with S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

" + }, + "AdvancedDataProtectionMetrics":{ + "type":"structure", + "members":{ + "IsEnabled":{ + "shape":"IsEnabled", + "documentation":"

A container that indicates whether advanced data-protection metrics are enabled.

" + } + }, + "documentation":"

The container element for Amazon S3 Storage Lens advanced data-protection metrics. Advanced data-protection metrics provide insights that you can use to perform audits and protect your data, for example replication rule counts within and across Regions.

For more information about S3 Storage Lens, see Assessing your storage activity and usage with S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

" }, "Alias":{ "type":"string", @@ -953,7 +1221,7 @@ }, "Message":{ "shape":"MaxLength1024String", - "documentation":"

A generic descritpion of the error condition in English.

" + "documentation":"

A generic description of the error condition in English.

" }, "Resource":{ "shape":"MaxLength1024String", @@ -1102,14 +1370,26 @@ "members":{ "ActivityMetrics":{ "shape":"ActivityMetrics", - "documentation":"

A container for the bucket-level activity metrics for Amazon S3 Storage Lens

" + "documentation":"

A container for the bucket-level activity metrics for S3 Storage Lens.

" }, "PrefixLevel":{ "shape":"PrefixLevel", - "documentation":"

A container for the bucket-level prefix-level metrics for S3 Storage Lens

" + "documentation":"

A container for the prefix-level metrics for S3 Storage Lens.

" + }, + "AdvancedCostOptimizationMetrics":{ + "shape":"AdvancedCostOptimizationMetrics", + "documentation":"

A container for bucket-level advanced cost-optimization metrics for S3 Storage Lens.

" + }, + "AdvancedDataProtectionMetrics":{ + "shape":"AdvancedDataProtectionMetrics", + "documentation":"

A container for bucket-level advanced data-protection metrics for S3 Storage Lens.

" + }, + "DetailedStatusCodesMetrics":{ + "shape":"DetailedStatusCodesMetrics", + "documentation":"

A container for bucket-level detailed status code metrics for S3 Storage Lens.

" } }, - "documentation":"

A container for the bucket-level configuration.

" + "documentation":"

A container for the bucket-level configuration for Amazon S3 Storage Lens.

For more information about S3 Storage Lens, see Assessing your storage activity and usage with S3 Storage Lens in the Amazon S3 User Guide.

" }, "BucketLocationConstraint":{ "type":"string", @@ -1132,6 +1412,13 @@ "max":255, "min":3 }, + "BucketVersioningStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Suspended" + ] + }, "Buckets":{ "type":"list", "member":{ @@ -1170,6 +1457,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for owner of the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1205,7 +1493,8 @@ "members":{ "AccountId":{ "shape":"AccountId", - "documentation":"

The Amazon Web Services account ID for the owner of the bucket for which you want to create an access point.

", + "documentation":"

The Amazon Web Services account ID for the account that owns the specified access point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1218,7 +1507,8 @@ }, "Bucket":{ "shape":"BucketName", - "documentation":"

The name of the bucket that you want to associate this access point with.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

" + "documentation":"

The name of the bucket that you want to associate this access point with.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"} }, "VpcConfiguration":{ "shape":"VpcConfiguration", @@ -1227,6 +1517,10 @@ "PublicAccessBlockConfiguration":{ "shape":"PublicAccessBlockConfiguration", "documentation":"

The PublicAccessBlock configuration that you want to apply to the access point.

" + }, + "BucketAccountId":{ + "shape":"AccountId", + "documentation":"

The Amazon Web Services account ID associated with the S3 bucket associated with this access point.

" } } }, @@ -1266,6 +1560,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" }, @@ -1313,7 +1608,8 @@ }, "OutpostId":{ "shape":"NonEmptyMaxLength64String", - "documentation":"

The ID of the Outposts where the bucket is being created.

This is required by Amazon S3 on Outposts buckets.

", + "documentation":"

The ID of the Outposts where the bucket is being created.

This ID is required by Amazon S3 on Outposts buckets.

", + "contextParam":{"name":"OutpostId"}, "location":"header", "locationName":"x-amz-outpost-id" } @@ -1349,6 +1645,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID that creates the job.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1437,6 +1734,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point. The owner of the Multi-Region Access Point also must own the underlying buckets.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1476,6 +1774,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1498,6 +1797,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1520,6 +1820,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified access point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1527,6 +1828,7 @@ "Name":{ "shape":"AccessPointName", "documentation":"

The name of the access point whose policy you want to delete.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -1541,7 +1843,8 @@ "members":{ "AccountId":{ "shape":"AccountId", - "documentation":"

The account ID for the account that owns the specified access point.

", + "documentation":"

The Amazon Web Services account ID for the account that owns the specified access point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1549,6 +1852,7 @@ "Name":{ "shape":"AccessPointName", "documentation":"

The name of the access point you want to delete.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -1564,6 +1868,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID of the lifecycle configuration to delete.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1571,6 +1876,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1586,6 +1892,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID of the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1593,6 +1900,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1608,6 +1916,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID that owns the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1615,6 +1924,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket being deleted.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1630,6 +1940,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID of the Outposts bucket tag set to be removed.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1637,6 +1948,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The bucket ARN that has the tag set to be removed.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1652,6 +1964,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1691,6 +2004,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1722,6 +2036,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to remove.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1744,6 +2059,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID of the requester.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1766,6 +2082,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID of the requester.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1787,6 +2104,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1818,6 +2136,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1839,6 +2158,16 @@ } } }, + "DetailedStatusCodesMetrics":{ + "type":"structure", + "members":{ + "IsEnabled":{ + "shape":"IsEnabled", + "documentation":"

A container that indicates whether detailed status code metrics are enabled.

" + } + }, + "documentation":"

The container element for Amazon S3 Storage Lens detailed status code metrics. Detailed status code metrics generate metrics for HTTP status codes, such as 200 OK, 403 Forbidden, 503 Service Unavailable and others.

For more information about S3 Storage Lens, see Assessing your storage activity and usage with S3 Storage Lens in the Amazon S3 User Guide. For a complete list of S3 Storage Lens metrics, see S3 Storage Lens metrics glossary in the Amazon S3 User Guide.

" + }, "Endpoints":{ "type":"map", "key":{"shape":"NonEmptyMaxLength64String"}, @@ -1924,6 +2253,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1955,6 +2285,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1994,6 +2325,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2025,6 +2357,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified access point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2032,6 +2365,7 @@ "Name":{ "shape":"AccessPointName", "documentation":"

The name of the access point whose policy you want to retrieve.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -2056,6 +2390,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2084,6 +2419,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified access point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2091,6 +2427,7 @@ "Name":{ "shape":"AccessPointName", "documentation":"

The name of the access point whose policy status you want to retrieve.

", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -2114,7 +2451,8 @@ "members":{ "AccountId":{ "shape":"AccountId", - "documentation":"

The account ID for the account that owns the specified access point.

", + "documentation":"

The Amazon Web Services account ID for the account that owns the specified access point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2122,6 +2460,7 @@ "Name":{ "shape":"AccessPointName", "documentation":"

The name of the access point whose configuration information you want to retrieve.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -2162,6 +2501,10 @@ "Endpoints":{ "shape":"Endpoints", "documentation":"

The VPC endpoint for the access point.

" + }, + "BucketAccountId":{ + "shape":"AccountId", + "documentation":"

The Amazon Web Services account ID associated with the S3 bucket associated with this access point.

" } } }, @@ -2175,6 +2518,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID of the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2182,6 +2526,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The Amazon Resource Name (ARN) of the bucket.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -2206,6 +2551,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID of the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2213,6 +2559,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -2237,6 +2584,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID of the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2244,6 +2592,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -2276,6 +2625,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID of the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2283,6 +2633,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -2298,6 +2649,42 @@ } } }, + "GetBucketVersioningRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

The Amazon Web Services account ID of the S3 on Outposts bucket.

", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "documentation":"

The S3 on Outposts bucket to return the versioning state for.

", + "location":"uri", + "locationName":"name" + } + } + }, + "GetBucketVersioningResult":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"BucketVersioningStatus", + "documentation":"

The versioning state of the S3 on Outposts bucket.

" + }, + "MFADelete":{ + "shape":"MFADeleteStatus", + "documentation":"

Specifies whether MFA delete is enabled in the bucket versioning configuration. This element is returned only if the bucket has been configured with MFA delete. If MFA delete has never been configured for the bucket, this element is not returned.

", + "locationName":"MfaDelete" + } + } + }, "GetJobTaggingRequest":{ "type":"structure", "required":[ @@ -2308,6 +2695,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2339,6 +2727,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2370,6 +2759,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2398,6 +2788,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2419,6 +2810,42 @@ } } }, + "GetMultiRegionAccessPointRoutesRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Mrap" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Mrap":{ + "shape":"MultiRegionAccessPointId", + "documentation":"

The Multi-Region Access Point ARN.

", + "location":"uri", + "locationName":"mrap" + } + } + }, + "GetMultiRegionAccessPointRoutesResult":{ + "type":"structure", + "members":{ + "Mrap":{ + "shape":"MultiRegionAccessPointId", + "documentation":"

The Multi-Region Access Point ARN.

" + }, + "Routes":{ + "shape":"RouteList", + "documentation":"

The different routes that make up the route configuration. Active routes return a value of 100, and passive routes return a value of 0.

" + } + } + }, "GetPublicAccessBlockOutput":{ "type":"structure", "members":{ @@ -2436,6 +2863,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to retrieve.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2458,6 +2886,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID of the requester.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2490,6 +2919,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID of the requester.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2878,7 +3308,7 @@ }, "S3PutObjectAcl":{ "shape":"S3SetObjectAclOperation", - "documentation":"

Directs the specified job to run a PUT Object acl call on every object in the manifest.

", + "documentation":"

Directs the specified job to run a PutObjectAcl call on every object in the manifest.

", "box":true }, "S3PutObjectTagging":{ @@ -3112,7 +3542,7 @@ }, "NoncurrentVersionExpiration":{ "shape":"NoncurrentVersionExpiration", - "documentation":"

The noncurrent version expiration of the lifecycle rule.

This is not supported by Amazon S3 on Outposts buckets.

" + "documentation":"

The noncurrent version expiration of the lifecycle rule.

" }, "AbortIncompleteMultipartUpload":{ "shape":"AbortIncompleteMultipartUpload", @@ -3131,6 +3561,16 @@ "Tags":{ "shape":"S3TagSet", "documentation":"

All of these tags must exist in the object's tag set in order for the rule to apply.

" + }, + "ObjectSizeGreaterThan":{ + "shape":"ObjectSizeGreaterThanBytes", + "documentation":"

Minimum object size to which the rule applies.

", + "box":true + }, + "ObjectSizeLessThan":{ + "shape":"ObjectSizeLessThanBytes", + "documentation":"

Maximum object size to which the rule applies.

", + "box":true } }, "documentation":"

The container for the Outposts bucket lifecycle rule and operator.

" @@ -3146,6 +3586,16 @@ "And":{ "shape":"LifecycleRuleAndOperator", "documentation":"

The container for the AND condition for the lifecycle rule.

" + }, + "ObjectSizeGreaterThan":{ + "shape":"ObjectSizeGreaterThanBytes", + "documentation":"

Minimum object size to which the rule applies.

", + "box":true + }, + "ObjectSizeLessThan":{ + "shape":"ObjectSizeLessThanBytes", + "documentation":"

Maximum object size to which the rule applies.

", + "box":true } }, "documentation":"

The container for the filter of the lifecycle rule.

" @@ -3164,6 +3614,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3201,7 +3652,8 @@ "members":{ "AccountId":{ "shape":"AccountId", - "documentation":"

The Amazon Web Services account ID for owner of the bucket whose access points you want to list.

", + "documentation":"

The Amazon Web Services account ID for the account that owns the specified access points.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3209,6 +3661,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket whose associated access points you want to list.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"querystring", "locationName":"bucket" }, @@ -3246,6 +3699,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3291,6 +3745,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3329,6 +3784,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID of the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3347,7 +3803,8 @@ }, "OutpostId":{ "shape":"NonEmptyMaxLength64String", - "documentation":"

The ID of the Outposts.

This is required by Amazon S3 on Outposts buckets.

", + "documentation":"

The ID of the Outposts resource.

This ID is required by Amazon S3 on Outposts buckets.

", + "contextParam":{"name":"OutpostId"}, "location":"header", "locationName":"x-amz-outpost-id" } @@ -3400,6 +3857,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID of the requester.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3426,6 +3884,21 @@ } }, "Location":{"type":"string"}, + "MFA":{"type":"string"}, + "MFADelete":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "MFADeleteStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, "ManifestPrefixString":{ "type":"string", "max":512, @@ -3455,6 +3928,11 @@ "max":64, "pattern":"\\S+" }, + "MultiRegionAccessPointId":{ + "type":"string", + "max":200, + "pattern":"^[a-zA-Z0-9\\:.-]{3,200}$" + }, "MultiRegionAccessPointName":{ "type":"string", "max":50, @@ -3513,7 +3991,7 @@ "PublicAccessBlock":{"shape":"PublicAccessBlockConfiguration"}, "Status":{ "shape":"MultiRegionAccessPointStatus", - "documentation":"

The current status of the Multi-Region Access Point.

CREATING and DELETING are temporary states that exist while the request is propogating and being completed. If a Multi-Region Access Point has a status of PARTIALLY_CREATED, you can retry creation or send a request to delete the Multi-Region Access Point. If a Multi-Region Access Point has a status of PARTIALLY_DELETED, you can retry a delete request to finish the deletion of the Multi-Region Access Point.

" + "documentation":"

The current status of the Multi-Region Access Point.

CREATING and DELETING are temporary states that exist while the request is propagating and being completed. If a Multi-Region Access Point has a status of PARTIALLY_CREATED, you can retry creation or send a request to delete the Multi-Region Access Point. If a Multi-Region Access Point has a status of PARTIALLY_DELETED, you can retry a delete request to finish the deletion of the Multi-Region Access Point.

" }, "Regions":{ "shape":"RegionReportList", @@ -3529,6 +4007,25 @@ "locationName":"AccessPoint" } }, + "MultiRegionAccessPointRoute":{ + "type":"structure", + "required":["TrafficDialPercentage"], + "members":{ + "Bucket":{ + "shape":"BucketName", + "documentation":"

The name of the Amazon S3 bucket for which you'll submit a routing configuration change. Either the Bucket or the Region value must be provided. If both are provided, the bucket must be in the specified Region.

" + }, + "Region":{ + "shape":"RegionName", + "documentation":"

The Amazon Web Services Region to which you'll be submitting a routing configuration change. Either the Bucket or the Region value must be provided. If both are provided, the bucket must be in the specified Region.

" + }, + "TrafficDialPercentage":{ + "shape":"TrafficDialPercentage", + "documentation":"

The traffic state for the specified bucket or Amazon Web Services Region.

A value of 0 indicates a passive state, which means that no new traffic will be routed to the Region.

A value of 100 indicates an active state, which means that traffic will be routed to the specified Region.

When the routing configuration for a Region is changed from active to passive, any in-progress operations (uploads, copies, deletes, and so on) to the formerly active Region will continue to run to until a final success or failure status is reached.

If all Regions in the routing configuration are designated as passive, you'll receive an InvalidRequest error.

" + } + }, + "documentation":"

A structure for a Multi-Region Access Point that indicates where Amazon S3 traffic can be routed. Routes can be either active or passive. Active routes can process Amazon S3 requests through the Multi-Region Access Point, but passive routes are not eligible to process Amazon S3 requests.

Each route contains the Amazon S3 bucket name and the Amazon Web Services Region that the bucket is located in. The route also includes the TrafficDialPercentage value, which shows whether the bucket and Region are active (indicated by a value of 100) or passive (indicated by a value of 0).

" + }, "MultiRegionAccessPointStatus":{ "type":"string", "enum":[ @@ -3587,12 +4084,18 @@ "max":64, "min":1 }, + "NoncurrentVersionCount":{"type":"integer"}, "NoncurrentVersionExpiration":{ "type":"structure", "members":{ "NoncurrentDays":{ "shape":"Days", "documentation":"

Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon S3 User Guide.

" + }, + "NewerNoncurrentVersions":{ + "shape":"NoncurrentVersionCount", + "documentation":"

Specifies how many noncurrent versions S3 on Outposts will retain. If there are this many more recent noncurrent versions, S3 on Outposts will take the associated action. For more information about noncurrent versions, see Lifecycle configuration elements in the Amazon S3 User Guide.

", + "box":true } }, "documentation":"

The container of the noncurrent version expiration.

" @@ -3665,7 +4168,9 @@ "type":"string", "enum":[ "GetObject-Range", - "GetObject-PartNumber" + "GetObject-PartNumber", + "HeadObject-Range", + "HeadObject-PartNumber" ] }, "ObjectLambdaAllowedFeaturesList":{ @@ -3692,7 +4197,7 @@ }, "AllowedFeatures":{ "shape":"ObjectLambdaAllowedFeaturesList", - "documentation":"

A container for allowed features. Valid inputs are GetObject-Range and GetObject-PartNumber.

" + "documentation":"

A container for allowed features. Valid inputs are GetObject-Range, GetObject-PartNumber, HeadObject-Range, and HeadObject-PartNumber.

" }, "TransformationConfigurations":{ "shape":"ObjectLambdaTransformationConfigurationsList", @@ -3728,7 +4233,7 @@ "members":{ "Actions":{ "shape":"ObjectLambdaTransformationConfigurationActionsList", - "documentation":"

A container for the action of an Object Lambda Access Point configuration. Valid input is GetObject.

" + "documentation":"

A container for the action of an Object Lambda Access Point configuration. Valid inputs are GetObject, ListObjects, HeadObject, and ListObjectsV2.

" }, "ContentTransformation":{ "shape":"ObjectLambdaContentTransformation", @@ -3739,7 +4244,12 @@ }, "ObjectLambdaTransformationConfigurationAction":{ "type":"string", - "enum":["GetObject"] + "enum":[ + "GetObject", + "HeadObject", + "ListObjects", + "ListObjectsV2" + ] }, "ObjectLambdaTransformationConfigurationActionsList":{ "type":"list", @@ -3756,6 +4266,8 @@ } }, "ObjectLockEnabledForBucket":{"type":"boolean"}, + "ObjectSizeGreaterThanBytes":{"type":"long"}, + "ObjectSizeLessThanBytes":{"type":"long"}, "OperationName":{ "type":"string", "enum":[ @@ -3824,26 +4336,26 @@ "members":{ "BlockPublicAcls":{ "shape":"Setting", - "documentation":"

Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to TRUE causes the following behavior:

  • PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.

  • PUT Object calls fail if the request includes a public ACL.

  • PUT Bucket calls fail if the request includes a public ACL.

Enabling this setting doesn't affect existing policies or ACLs.

This is not supported for Amazon S3 on Outposts.

", + "documentation":"

Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to TRUE causes the following behavior:

  • PutBucketAcl and PutObjectAcl calls fail if the specified ACL is public.

  • PUT Object calls fail if the request includes a public ACL.

  • PUT Bucket calls fail if the request includes a public ACL.

Enabling this setting doesn't affect existing policies or ACLs.

This property is not supported for Amazon S3 on Outposts.

", "locationName":"BlockPublicAcls" }, "IgnorePublicAcls":{ "shape":"Setting", - "documentation":"

Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects that they contain.

Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.

This is not supported for Amazon S3 on Outposts.

", + "documentation":"

Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects that they contain.

Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.

This property is not supported for Amazon S3 on Outposts.

", "locationName":"IgnorePublicAcls" }, "BlockPublicPolicy":{ "shape":"Setting", - "documentation":"

Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.

Enabling this setting doesn't affect existing bucket policies.

This is not supported for Amazon S3 on Outposts.

", + "documentation":"

Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.

Enabling this setting doesn't affect existing bucket policies.

This property is not supported for Amazon S3 on Outposts.

", "locationName":"BlockPublicPolicy" }, "RestrictPublicBuckets":{ "shape":"Setting", - "documentation":"

Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to TRUE restricts access to buckets with public policies to only Amazon Web Service principals and authorized users within this account.

Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.

This is not supported for Amazon S3 on Outposts.

", + "documentation":"

Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to TRUE restricts access to buckets with public policies to only Amazon Web Service principals and authorized users within this account.

Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.

This property is not supported for Amazon S3 on Outposts.

", "locationName":"RestrictPublicBuckets" } }, - "documentation":"

The PublicAccessBlock configuration that you want to apply to this Amazon S3 account. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see The Meaning of \"Public\" in the Amazon S3 User Guide.

This is not supported for Amazon S3 on Outposts.

" + "documentation":"

The PublicAccessBlock configuration that you want to apply to this Amazon S3 account. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see The Meaning of \"Public\" in the Amazon S3 User Guide.

This data type is not supported for Amazon S3 on Outposts.

" }, "PublicAccessBlockEnabled":{"type":"boolean"}, "PutAccessPointConfigurationForObjectLambdaRequest":{ @@ -3857,6 +4369,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3884,6 +4397,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the account that owns the specified Object Lambda Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3911,6 +4425,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for owner of the bucket associated with the specified access point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3918,6 +4433,7 @@ "Name":{ "shape":"AccessPointName", "documentation":"

The name of the access point that you want to associate with the specified policy.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" }, @@ -3937,6 +4453,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID of the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3944,6 +4461,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The name of the bucket for which to set the configuration.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" }, @@ -3967,6 +4485,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID of the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3974,6 +4493,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

Specifies the bucket.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" }, @@ -4000,6 +4520,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID of the Outposts bucket.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -4007,6 +4528,7 @@ "Bucket":{ "shape":"BucketName", "documentation":"

The Amazon Resource Name (ARN) of the bucket.

For using this parameter with Amazon S3 on Outposts with the REST API, you must specify the name and the x-amz-outpost-id as well.

For using this parameter with S3 on Outposts with the Amazon Web Services SDK and CLI, you must specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" }, @@ -4019,6 +4541,42 @@ }, "payload":"Tagging" }, + "PutBucketVersioningRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket", + "VersioningConfiguration" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

The Amazon Web Services account ID of the S3 on Outposts bucket.

", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "documentation":"

The S3 on Outposts bucket to set the versioning state for.

", + "location":"uri", + "locationName":"name" + }, + "MFA":{ + "shape":"MFA", + "documentation":"

The concatenation of the authentication device's serial number, a space, and the value that is displayed on your authentication device.

", + "location":"header", + "locationName":"x-amz-mfa" + }, + "VersioningConfiguration":{ + "shape":"VersioningConfiguration", + "documentation":"

The root-level tag for the VersioningConfiguration parameters.

", + "locationName":"VersioningConfiguration", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + } + }, + "payload":"VersioningConfiguration" + }, "PutJobTaggingRequest":{ "type":"structure", "required":[ @@ -4030,6 +4588,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -4080,6 +4639,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -4120,6 +4680,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to set.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -4144,6 +4705,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID of the requester.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -4175,6 +4737,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The account ID of the requester.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -4304,6 +4867,13 @@ "Ready" ] }, + "RouteList":{ + "type":"list", + "member":{ + "shape":"MultiRegionAccessPointRoute", + "locationName":"Route" + } + }, "S3AWSRegion":{ "type":"string", "max":30, @@ -4418,7 +4988,7 @@ "members":{ "TargetResource":{ "shape":"S3BucketArnString", - "documentation":"

Specifies the destination bucket ARN for the batch copy operation. For example, to copy objects to a bucket named \"destinationBucket\", set the TargetResource to \"arn:aws:s3:::destinationBucket\".

" + "documentation":"

Specifies the destination bucket ARN for the batch copy operation. For example, to copy objects to a bucket named destinationBucket, set the TargetResource property to arn:aws:s3:::destinationBucket.

" }, "CannedAccessControlList":{ "shape":"S3CannedAccessControlList", @@ -4806,7 +5376,7 @@ "documentation":"

" } }, - "documentation":"

Contains the configuration parameters for a Set Object ACL operation. S3 Batch Operations passes every object to the underlying PUT Object acl API. For more information about the parameters for this operation, see PUT Object acl.

" + "documentation":"

Contains the configuration parameters for a Set Object ACL operation. S3 Batch Operations passes every object to the underlying PutObjectAcl API. For more information about the parameters for this operation, see PutObjectAcl .

" }, "S3SetObjectLegalHoldOperation":{ "type":"structure", @@ -4866,14 +5436,14 @@ "members":{ "Key":{ "shape":"TagKeyString", - "documentation":"

" + "documentation":"

Key of the tag

" }, "Value":{ "shape":"TagValueString", - "documentation":"

" + "documentation":"

Value of the tag

" } }, - "documentation":"

" + "documentation":"

A container for a key-value name pair.

" }, "S3TagSet":{ "type":"list", @@ -4903,7 +5473,7 @@ "members":{ "KeyId":{ "shape":"KmsKeyArnString", - "documentation":"

Specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric customer managed key to use for encrypting generated manifest objects.

" + "documentation":"

Specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetric encryption customer managed key to use for encrypting generated manifest objects.

" } }, "documentation":"

Configuration for the use of SSE-KMS to encrypt generated manifest objects.

", @@ -5081,6 +5651,39 @@ "min":1, "pattern":"^[A-Za-z0-9\\+\\:\\/\\=\\?\\#-_]+$" }, + "SubmitMultiRegionAccessPointRoutesRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Mrap", + "RouteUpdates" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "documentation":"

The Amazon Web Services account ID for the owner of the Multi-Region Access Point.

", + "contextParam":{"name":"AccountId"}, + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Mrap":{ + "shape":"MultiRegionAccessPointId", + "documentation":"

The Multi-Region Access Point ARN.

", + "location":"uri", + "locationName":"mrap" + }, + "RouteUpdates":{ + "shape":"RouteList", + "documentation":"

The different routes that make up the new route configuration. Active routes return a value of 100, and passive routes return a value of 0.

" + } + } + }, + "SubmitMultiRegionAccessPointRoutesResult":{ + "type":"structure", + "members":{ + } + }, "SuspendedCause":{ "type":"string", "max":1024, @@ -5126,6 +5729,11 @@ "documentation":"

Amazon S3 throws this exception if you have too many tags in your tag set.

", "exception":true }, + "TrafficDialPercentage":{ + "type":"integer", + "max":100, + "min":0 + }, "Transition":{ "type":"structure", "members":{ @@ -5172,6 +5780,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -5218,6 +5827,7 @@ "AccountId":{ "shape":"AccountId", "documentation":"

The Amazon Web Services account ID associated with the S3 Batch Operations job.

", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -5259,6 +5869,21 @@ } } }, + "VersioningConfiguration":{ + "type":"structure", + "members":{ + "MFADelete":{ + "shape":"MFADelete", + "documentation":"

Specifies whether MFA delete is enabled or disabled in the bucket versioning configuration for the S3 on Outposts bucket.

", + "locationName":"MfaDelete" + }, + "Status":{ + "shape":"BucketVersioningStatus", + "documentation":"

Sets the versioning state of the S3 on Outposts bucket.

" + } + }, + "documentation":"

Describes the versioning state of an Amazon S3 on Outposts bucket. For more information, see PutBucketVersioning.

" + }, "VpcConfiguration":{ "type":"structure", "required":["VpcId"], @@ -5276,5 +5901,11 @@ "min":1 } }, - "documentation":"

Amazon Web Services S3 Control provides access to Amazon S3 control plane actions.

" + "documentation":"

Amazon Web Services S3 Control provides access to Amazon S3 control plane actions.

", + "clientContextParams":{ + "UseArnRegion":{ + "documentation":"Enables this client to use an ARN's region when constructing an endpoint instead of the client's configured region.", + "type":"boolean" + } + } } diff --git a/botocore/data/s3outposts/2017-07-25/endpoint-rule-set-1.json b/botocore/data/s3outposts/2017-07-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..2af9fd6b --- /dev/null +++ b/botocore/data/s3outposts/2017-07-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/s3outposts/2017-07-25/examples-1.json b/botocore/data/s3outposts/2017-07-25/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/s3outposts/2017-07-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/sagemaker-a2i-runtime/2019-11-07/endpoint-rule-set-1.json b/botocore/data/sagemaker-a2i-runtime/2019-11-07/endpoint-rule-set-1.json new file mode 100644 index 00000000..cf4bf480 --- /dev/null +++ b/botocore/data/sagemaker-a2i-runtime/2019-11-07/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://a2i-runtime.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://a2i-runtime.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://a2i-runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://a2i-runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sagemaker-a2i-runtime/2019-11-07/examples-1.json b/botocore/data/sagemaker-a2i-runtime/2019-11-07/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/sagemaker-a2i-runtime/2019-11-07/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json b/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json index 72fa3693..7a6d02c5 100644 --- a/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json +++ b/botocore/data/sagemaker-a2i-runtime/2019-11-07/service-2.json @@ -3,7 +3,6 @@ "metadata":{ "apiVersion":"2019-11-07", "endpointPrefix":"a2i-runtime.sagemaker", - "jsonVersion":"1.1", "protocol":"rest-json", "serviceFullName":"Amazon Augmented AI Runtime", "serviceId":"SageMaker A2I Runtime", @@ -447,7 +446,10 @@ "error":{"httpStatusCode":429}, "exception":true }, - "Timestamp":{"type":"timestamp"}, + "Timestamp":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, "ValidationException":{ "type":"structure", "members":{ diff --git a/botocore/data/sagemaker-edge/2020-09-23/endpoint-rule-set-1.json b/botocore/data/sagemaker-edge/2020-09-23/endpoint-rule-set-1.json new file mode 100644 index 00000000..01c3fa5b --- /dev/null +++ b/botocore/data/sagemaker-edge/2020-09-23/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://edge.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://edge.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://edge.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://edge.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sagemaker-edge/2020-09-23/examples-1.json b/botocore/data/sagemaker-edge/2020-09-23/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/sagemaker-edge/2020-09-23/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/sagemaker-edge/2020-09-23/service-2.json b/botocore/data/sagemaker-edge/2020-09-23/service-2.json index 502ead13..71b8a3c6 100644 --- a/botocore/data/sagemaker-edge/2020-09-23/service-2.json +++ b/botocore/data/sagemaker-edge/2020-09-23/service-2.json @@ -12,6 +12,19 @@ "uid":"sagemaker-edge-2020-09-23" }, "operations":{ + "GetDeployments":{ + "name":"GetDeployments", + "http":{ + "method":"POST", + "requestUri":"/GetDeployments" + }, + "input":{"shape":"GetDeploymentsRequest"}, + "output":{"shape":"GetDeploymentsResult"}, + "errors":[ + {"shape":"InternalServiceException"} + ], + "documentation":"

Use to get the active deployments from a device.

" + }, "GetDeviceRegistration":{ "name":"GetDeviceRegistration", "http":{ @@ -44,6 +57,139 @@ "max":1000, "min":1 }, + "Checksum":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"ChecksumType", + "documentation":"

The type of the checksum.

" + }, + "Sum":{ + "shape":"ChecksumString", + "documentation":"

The checksum of the model.

" + } + }, + "documentation":"

Information about the checksum of a model deployed on a device.

" + }, + "ChecksumString":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-z0-9](-*[a-z0-9])*$" + }, + "ChecksumType":{ + "type":"string", + "enum":["SHA1"] + }, + "Definition":{ + "type":"structure", + "members":{ + "ModelHandle":{ + "shape":"EntityName", + "documentation":"

The unique model handle.

" + }, + "S3Url":{ + "shape":"S3Uri", + "documentation":"

The absolute S3 location of the model.

" + }, + "Checksum":{ + "shape":"Checksum", + "documentation":"

The checksum information of the model.

" + }, + "State":{ + "shape":"ModelState", + "documentation":"

The desired state of the model.

" + } + }, + "documentation":"

" + }, + "Definitions":{ + "type":"list", + "member":{"shape":"Definition"} + }, + "DeploymentModel":{ + "type":"structure", + "members":{ + "ModelHandle":{ + "shape":"EntityName", + "documentation":"

The unique handle of the model.

" + }, + "ModelName":{ + "shape":"ModelName", + "documentation":"

The name of the model.

" + }, + "ModelVersion":{ + "shape":"Version", + "documentation":"

The version of the model.

" + }, + "DesiredState":{ + "shape":"ModelState", + "documentation":"

The desired state of the model.

" + }, + "State":{ + "shape":"ModelState", + "documentation":"

Returns the current state of the model.

" + }, + "Status":{ + "shape":"DeploymentStatus", + "documentation":"

Returns the deployment status of the model.

" + }, + "StatusReason":{ + "shape":"String", + "documentation":"

Returns the error message for the deployment status result.

" + }, + "RollbackFailureReason":{ + "shape":"String", + "documentation":"

Returns the error message if there is a rollback.

" + } + }, + "documentation":"

" + }, + "DeploymentModels":{ + "type":"list", + "member":{"shape":"DeploymentModel"} + }, + "DeploymentResult":{ + "type":"structure", + "members":{ + "DeploymentName":{ + "shape":"EntityName", + "documentation":"

The name and unique ID of the deployment.

" + }, + "DeploymentStatus":{ + "shape":"EntityName", + "documentation":"

Returns the bucket error code.

" + }, + "DeploymentStatusMessage":{ + "shape":"String", + "documentation":"

Returns the detailed error message.

" + }, + "DeploymentStartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the deployment was started on the agent.

" + }, + "DeploymentEndTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp of when the deployment was ended, and the agent got the deployment results.

" + }, + "DeploymentModels":{ + "shape":"DeploymentModels", + "documentation":"

Returns a list of models deployed on the agent.

" + } + }, + "documentation":"

Information about the result of a deployment on an edge device that is registered with SageMaker Edge Manager.

" + }, + "DeploymentStatus":{ + "type":"string", + "enum":[ + "SUCCESS", + "FAIL" + ] + }, + "DeploymentType":{ + "type":"string", + "enum":["Model"] + }, "DeviceFleetName":{ "type":"string", "max":63, @@ -67,6 +213,32 @@ "min":1, "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9\\/])*$" }, + "EdgeDeployment":{ + "type":"structure", + "members":{ + "DeploymentName":{ + "shape":"EntityName", + "documentation":"

The name and unique ID of the deployment.

" + }, + "Type":{ + "shape":"DeploymentType", + "documentation":"

The type of the deployment.

" + }, + "FailureHandlingPolicy":{ + "shape":"FailureHandlingPolicy", + "documentation":"

Determines whether to rollback to previous configuration if deployment fails.

" + }, + "Definitions":{ + "shape":"Definitions", + "documentation":"

Returns a list of Definition objects.

" + } + }, + "documentation":"

Information about a deployment on an edge device that is registered with SageMaker Edge Manager.

" + }, + "EdgeDeployments":{ + "type":"list", + "member":{"shape":"EdgeDeployment"} + }, "EdgeMetric":{ "type":"structure", "members":{ @@ -93,7 +265,46 @@ "type":"list", "member":{"shape":"EdgeMetric"} }, + "EntityName":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" + }, "ErrorMessage":{"type":"string"}, + "FailureHandlingPolicy":{ + "type":"string", + "enum":[ + "ROLLBACK_ON_FAILURE", + "DO_NOTHING" + ] + }, + "GetDeploymentsRequest":{ + "type":"structure", + "required":[ + "DeviceName", + "DeviceFleetName" + ], + "members":{ + "DeviceName":{ + "shape":"DeviceName", + "documentation":"

The unique name of the device you want to get the configuration of active deployments from.

" + }, + "DeviceFleetName":{ + "shape":"DeviceFleetName", + "documentation":"

The name of the fleet that the device belongs to.

" + } + } + }, + "GetDeploymentsResult":{ + "type":"structure", + "members":{ + "Deployments":{ + "shape":"EdgeDeployments", + "documentation":"

Returns a list of the configurations of the active deployments on the device.

" + } + } + }, "GetDeviceRegistrationRequest":{ "type":"structure", "required":[ @@ -129,7 +340,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

An internal failure occurred. Try your request again. If the problem persists, contact AWS customer support.

", + "documentation":"

An internal failure occurred. Try your request again. If the problem persists, contact Amazon Web Services customer support.

", "exception":true }, "Metric":{ @@ -170,10 +381,22 @@ "min":4, "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*$" }, + "ModelState":{ + "type":"string", + "enum":[ + "DEPLOY", + "UNDEPLOY" + ] + }, "Models":{ "type":"list", "member":{"shape":"Model"} }, + "S3Uri":{ + "type":"string", + "max":1024, + "pattern":"^s3://([^/]+)/?(.*)$" + }, "SendHeartbeatRequest":{ "type":"structure", "required":[ @@ -201,9 +424,14 @@ "DeviceFleetName":{ "shape":"DeviceFleetName", "documentation":"

The name of the fleet that the device belongs to.

" + }, + "DeploymentResult":{ + "shape":"DeploymentResult", + "documentation":"

Returns the result of a deployment on the device.

" } } }, + "String":{"type":"string"}, "Timestamp":{"type":"timestamp"}, "Value":{"type":"double"}, "Version":{ diff --git a/botocore/data/sagemaker-featurestore-runtime/2020-07-01/endpoint-rule-set-1.json b/botocore/data/sagemaker-featurestore-runtime/2020-07-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..ce0f2c07 --- /dev/null +++ b/botocore/data/sagemaker-featurestore-runtime/2020-07-01/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://featurestore-runtime.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://featurestore-runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sagemaker-featurestore-runtime/2020-07-01/examples-1.json b/botocore/data/sagemaker-featurestore-runtime/2020-07-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/sagemaker-featurestore-runtime/2020-07-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/sagemaker-featurestore-runtime/2020-07-01/service-2.json b/botocore/data/sagemaker-featurestore-runtime/2020-07-01/service-2.json index 48baa362..6129ec75 100644 --- a/botocore/data/sagemaker-featurestore-runtime/2020-07-01/service-2.json +++ b/botocore/data/sagemaker-featurestore-runtime/2020-07-01/service-2.json @@ -41,7 +41,7 @@ {"shape":"ServiceUnavailable"}, {"shape":"AccessForbidden"} ], - "documentation":"

Deletes a Record from a FeatureGroup. A new record will show up in the OfflineStore when the DeleteRecord API is called. This record will have a value of True in the is_deleted column.

" + "documentation":"

Deletes a Record from a FeatureGroup. When the DeleteRecord API is called a new record will be added to the OfflineStore and the Record will be removed from the OnlineStore. This record will have a value of True in the is_deleted column.

" }, "GetRecord":{ "name":"GetRecord", @@ -106,7 +106,7 @@ }, "ErrorCode":{ "shape":"ValueAsString", - "documentation":"

The error code of an error that has occured when attempting to retrieve a batch of Records. For more information on errors, see Errors.

" + "documentation":"

The error code of an error that has occured when attempting to retrieve a batch of Records. For more information on errors, see Errors.

" }, "ErrorMessage":{ "shape":"Message", @@ -172,7 +172,7 @@ }, "Errors":{ "shape":"BatchGetRecordErrors", - "documentation":"

A list of errors that have occured when retrieving a batch of Records.

" + "documentation":"

A list of errors that have occurred when retrieving a batch of Records.

" }, "UnprocessedIdentifiers":{ "shape":"UnprocessedIdentifiers", @@ -233,6 +233,12 @@ "documentation":"

Timestamp indicating when the deletion event occurred. EventTime can be used to query data at a certain point in time.

", "location":"querystring", "locationName":"EventTime" + }, + "TargetStores":{ + "shape":"TargetStores", + "documentation":"

A list of stores from which you're deleting the record. By default, Feature Store deletes the record from all of the stores that you're using for the FeatureGroup.

", + "location":"querystring", + "locationName":"TargetStores" } } }, @@ -240,13 +246,13 @@ "type":"string", "max":64, "min":1, - "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*" + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,63}" }, "FeatureName":{ "type":"string", "max":64, "min":1, - "pattern":"^[a-zA-Z0-9]([-_]*[a-zA-Z0-9])*" + "pattern":"^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}" }, "FeatureNames":{ "type":"list", @@ -280,7 +286,7 @@ "members":{ "FeatureGroupName":{ "shape":"FeatureGroupName", - "documentation":"

The name of the feature group in which you want to put the records.

", + "documentation":"

The name of the feature group from which you want to retrieve a record.

", "location":"uri", "locationName":"FeatureGroupName" }, @@ -312,7 +318,7 @@ "members":{ "Message":{"shape":"Message"} }, - "documentation":"

An internal failure occurred. Try your request again. If the problem persists, contact AWS customer support.

", + "documentation":"

An internal failure occurred. Try your request again. If the problem persists, contact Amazon Web Services customer support.

", "error":{"httpStatusCode":500}, "exception":true, "fault":true, @@ -338,6 +344,10 @@ "Record":{ "shape":"Record", "documentation":"

List of FeatureValues to be inserted. This will be a full over-write. If you only want to update few of the feature values, do the following:

  • Use GetRecord to retrieve the latest record.

  • Update the record returned from GetRecord.

  • Use PutRecord to update feature values.

" + }, + "TargetStores":{ + "shape":"TargetStores", + "documentation":"

A list of stores to which you're adding the record. By default, Feature Store adds the record to all of the stores that you're using for the FeatureGroup.

" } } }, @@ -372,6 +382,19 @@ "fault":true, "synthetic":true }, + "TargetStore":{ + "type":"string", + "enum":[ + "OnlineStore", + "OfflineStore" + ] + }, + "TargetStores":{ + "type":"list", + "member":{"shape":"TargetStore"}, + "max":2, + "min":1 + }, "UnprocessedIdentifiers":{ "type":"list", "member":{"shape":"BatchGetRecordIdentifier"}, diff --git a/botocore/data/sagemaker-geospatial/2020-05-27/endpoint-rule-set-1.json b/botocore/data/sagemaker-geospatial/2020-05-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..a2d3b9b5 --- /dev/null +++ b/botocore/data/sagemaker-geospatial/2020-05-27/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sagemaker-geospatial-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sagemaker-geospatial-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sagemaker-geospatial.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://sagemaker-geospatial.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sagemaker-geospatial/2020-05-27/paginators-1.json b/botocore/data/sagemaker-geospatial/2020-05-27/paginators-1.json new file mode 100644 index 00000000..8802d943 --- /dev/null +++ b/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/botocore/data/sagemaker-geospatial/2020-05-27/service-2.json b/botocore/data/sagemaker-geospatial/2020-05-27/service-2.json new file mode 100644 index 00000000..656d03e2 --- /dev/null +++ b/botocore/data/sagemaker-geospatial/2020-05-27/service-2.json @@ -0,0 +1,2872 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2020-05-27", + "endpointPrefix":"sagemaker-geospatial", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon SageMaker geospatial capabilities", + "serviceId":"SageMaker Geospatial", + "signatureVersion":"v4", + "signingName":"sagemaker-geospatial", + "uid":"sagemaker-geospatial-2020-05-27" + }, + "operations":{ + "DeleteEarthObservationJob":{ + "name":"DeleteEarthObservationJob", + "http":{ + "method":"DELETE", + "requestUri":"/earth-observation-jobs/{Arn}", + "responseCode":200 + }, + "input":{"shape":"DeleteEarthObservationJobInput"}, + "output":{"shape":"DeleteEarthObservationJobOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Use this operation to delete an Earth Observation job.

", + "idempotent":true + }, + "DeleteVectorEnrichmentJob":{ + "name":"DeleteVectorEnrichmentJob", + "http":{ + "method":"DELETE", + "requestUri":"/vector-enrichment-jobs/{Arn}", + "responseCode":200 + }, + "input":{"shape":"DeleteVectorEnrichmentJobInput"}, + "output":{"shape":"DeleteVectorEnrichmentJobOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Use this operation to delete a Vector Enrichment job.

", + "idempotent":true + }, + "ExportEarthObservationJob":{ + "name":"ExportEarthObservationJob", + "http":{ + "method":"POST", + "requestUri":"/export-earth-observation-job", + "responseCode":200 + }, + "input":{"shape":"ExportEarthObservationJobInput"}, + "output":{"shape":"ExportEarthObservationJobOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Use this operation to export results of an Earth Observation job and optionally source images used as input to the EOJ to an S3 location.

" + }, + "ExportVectorEnrichmentJob":{ + "name":"ExportVectorEnrichmentJob", + "http":{ + "method":"POST", + "requestUri":"/export-vector-enrichment-jobs", + "responseCode":200 + }, + "input":{"shape":"ExportVectorEnrichmentJobInput"}, + "output":{"shape":"ExportVectorEnrichmentJobOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Use this operation to copy results of a Vector Enrichment job to an S3 location.

" + }, + "GetEarthObservationJob":{ + "name":"GetEarthObservationJob", + "http":{ + "method":"GET", + "requestUri":"/earth-observation-jobs/{Arn}", + "responseCode":200 + }, + "input":{"shape":"GetEarthObservationJobInput"}, + "output":{"shape":"GetEarthObservationJobOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Get the details for a previously initiated Earth Observation job.

" + }, + "GetRasterDataCollection":{ + "name":"GetRasterDataCollection", + "http":{ + "method":"GET", + "requestUri":"/raster-data-collection/{Arn}", + "responseCode":200 + }, + "input":{"shape":"GetRasterDataCollectionInput"}, + "output":{"shape":"GetRasterDataCollectionOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Use this operation to get details of a specific raster data collection.

" + }, + "GetTile":{ + "name":"GetTile", + "http":{ + "method":"GET", + "requestUri":"/tile/{z}/{x}/{y}", + "responseCode":200 + }, + "input":{"shape":"GetTileInput"}, + "output":{"shape":"GetTileOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets a web mercator tile for the given Earth Observation job.

" + }, + "GetVectorEnrichmentJob":{ + "name":"GetVectorEnrichmentJob", + "http":{ + "method":"GET", + "requestUri":"/vector-enrichment-jobs/{Arn}", + "responseCode":200 + }, + "input":{"shape":"GetVectorEnrichmentJobInput"}, + "output":{"shape":"GetVectorEnrichmentJobOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retrieves details of a Vector Enrichment Job for a given job Amazon Resource Name (ARN).

" + }, + "ListEarthObservationJobs":{ + "name":"ListEarthObservationJobs", + "http":{ + "method":"POST", + "requestUri":"/list-earth-observation-jobs", + "responseCode":200 + }, + "input":{"shape":"ListEarthObservationJobInput"}, + "output":{"shape":"ListEarthObservationJobOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Use this operation to get a list of the Earth Observation jobs associated with the calling Amazon Web Services account.

" + }, + "ListRasterDataCollections":{ + "name":"ListRasterDataCollections", + "http":{ + "method":"GET", + "requestUri":"/raster-data-collections", + "responseCode":200 + }, + "input":{"shape":"ListRasterDataCollectionsInput"}, + "output":{"shape":"ListRasterDataCollectionsOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Use this operation to get raster data collections.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists the tags attached to the resource.

" + }, + "ListVectorEnrichmentJobs":{ + "name":"ListVectorEnrichmentJobs", + "http":{ + "method":"POST", + "requestUri":"/list-vector-enrichment-jobs", + "responseCode":200 + }, + "input":{"shape":"ListVectorEnrichmentJobInput"}, + "output":{"shape":"ListVectorEnrichmentJobOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Retrieves a list of vector enrichment jobs.

" + }, + "SearchRasterDataCollection":{ + "name":"SearchRasterDataCollection", + "http":{ + "method":"POST", + "requestUri":"/search-raster-data-collection", + "responseCode":200 + }, + "input":{"shape":"SearchRasterDataCollectionInput"}, + "output":{"shape":"SearchRasterDataCollectionOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Allows you run image query on a specific raster data collection to get a list of the satellite imagery matching the selected filters.

" + }, + "StartEarthObservationJob":{ + "name":"StartEarthObservationJob", + "http":{ + "method":"POST", + "requestUri":"/earth-observation-jobs", + "responseCode":200 + }, + "input":{"shape":"StartEarthObservationJobInput"}, + "output":{"shape":"StartEarthObservationJobOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Use this operation to create an Earth observation job.

", + "idempotent":true + }, + "StartVectorEnrichmentJob":{ + "name":"StartVectorEnrichmentJob", + "http":{ + "method":"POST", + "requestUri":"/vector-enrichment-jobs", + "responseCode":200 + }, + "input":{"shape":"StartVectorEnrichmentJobInput"}, + "output":{"shape":"StartVectorEnrichmentJobOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates a Vector Enrichment job for the supplied job type. Currently, there are two supported job types: reverse geocoding and map matching.

", + "idempotent":true + }, + "StopEarthObservationJob":{ + "name":"StopEarthObservationJob", + "http":{ + "method":"POST", + "requestUri":"/earth-observation-jobs/stop", + "responseCode":200 + }, + "input":{"shape":"StopEarthObservationJobInput"}, + "output":{"shape":"StopEarthObservationJobOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Use this operation to stop an existing earth observation job.

" + }, + "StopVectorEnrichmentJob":{ + "name":"StopVectorEnrichmentJob", + "http":{ + "method":"POST", + "requestUri":"/vector-enrichment-jobs/stop", + "responseCode":200 + }, + "input":{"shape":"StopVectorEnrichmentJobInput"}, + "output":{"shape":"StopVectorEnrichmentJobOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Stops the Vector Enrichment job for a given job ARN.

", + "idempotent":true + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"PUT", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

The resource you want to tag.

", + "idempotent":true + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

The resource you want to untag.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

You do not have sufficient access to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AlgorithmNameCloudRemoval":{ + "type":"string", + "enum":["INTERPOLATION"] + }, + "AlgorithmNameGeoMosaic":{ + "type":"string", + "enum":[ + "NEAR", + "BILINEAR", + "CUBIC", + "CUBICSPLINE", + "LANCZOS", + "AVERAGE", + "RMS", + "MODE", + "MAX", + "MIN", + "MED", + "Q1", + "Q3", + "SUM" + ] + }, + "AlgorithmNameResampling":{ + "type":"string", + "enum":[ + "NEAR", + "BILINEAR", + "CUBIC", + "CUBICSPLINE", + "LANCZOS", + "AVERAGE", + "RMS", + "MODE", + "MAX", + "MIN", + "MED", + "Q1", + "Q3", + "SUM" + ] + }, + "AreaOfInterest":{ + "type":"structure", + "members":{ + "AreaOfInterestGeometry":{ + "shape":"AreaOfInterestGeometry", + "documentation":"

" + } + }, + "documentation":"

", + "union":true + }, + "AreaOfInterestGeometry":{ + "type":"structure", + "members":{ + "MultiPolygonGeometry":{ + "shape":"MultiPolygonGeometryInput", + "documentation":"

" + }, + "PolygonGeometry":{ + "shape":"PolygonGeometryInput", + "documentation":"

" + } + }, + "documentation":"

", + "union":true + }, + "Arn":{ + "type":"string", + "max":2048, + "min":1 + }, + "AssetValue":{ + "type":"structure", + "members":{ + "Href":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

" + }, + "AssetsMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"AssetValue"} + }, + "BandMathConfigInput":{ + "type":"structure", + "members":{ + "CustomIndices":{ + "shape":"CustomIndicesInput", + "documentation":"

" + }, + "PredefinedIndices":{ + "shape":"StringListInput", + "documentation":"

" + } + }, + "documentation":"

" + }, + "BinaryFile":{ + "type":"blob", + "streaming":true + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "CloudMaskingConfigInput":{ + "type":"structure", + "members":{ + }, + "documentation":"

" + }, + "CloudRemovalConfigInput":{ + "type":"structure", + "members":{ + "AlgorithmName":{ + "shape":"AlgorithmNameCloudRemoval", + "documentation":"

The name of the algorithm used for cloud removal.

" + }, + "InterpolationValue":{ + "shape":"String", + "documentation":"

The interpolation value you provide for cloud removal.

" + }, + "TargetBands":{ + "shape":"StringListInput", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ComparisonOperator":{ + "type":"string", + "enum":[ + "EQUALS", + "NOT_EQUALS", + "STARTS_WITH" + ] + }, + "ConflictException":{ + "type":"structure", + "required":[ + "Message", + "ResourceId" + ], + "members":{ + "Message":{"shape":"String"}, + "ResourceId":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CustomIndicesInput":{ + "type":"structure", + "members":{ + "Operations":{ + "shape":"OperationsListInput", + "documentation":"

" + } + }, + "documentation":"

" + }, + "DataCollectionArn":{ + "type":"string", + "pattern":"^arn:aws[a-z-]{0,12}:sagemaker-geospatial:[a-z0-9-]{1,25}:[0-9]{12}:raster-data-collection/(public|premium|user)/[a-z0-9]{12,}$" + }, + "DataCollectionType":{ + "type":"string", + "enum":[ + "PUBLIC", + "PREMIUM", + "USER" + ] + }, + "DataCollectionsList":{ + "type":"list", + "member":{"shape":"RasterDataCollectionMetadata"} + }, + "DeleteEarthObservationJobInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"EarthObservationJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the Earth Observation job being deleted.

", + "location":"uri", + "locationName":"Arn" + } + } + }, + "DeleteEarthObservationJobOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteVectorEnrichmentJobInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"VectorEnrichmentJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the Vector Enrichment job being deleted.

", + "location":"uri", + "locationName":"Arn" + } + } + }, + "DeleteVectorEnrichmentJobOutput":{ + "type":"structure", + "members":{ + } + }, + "Double":{ + "type":"double", + "box":true + }, + "EarthObservationJobArn":{ + "type":"string", + "pattern":"^arn:aws[a-z-]{0,12}:sagemaker-geospatial:[a-z0-9-]{1,25}:[0-9]{12}:earth-observation-job/[a-z0-9]{12,}$" + }, + "EarthObservationJobErrorDetails":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"String", + "documentation":"

" + }, + "Type":{ + "shape":"EarthObservationJobErrorType", + "documentation":"

" + } + }, + "documentation":"

The structure representing the errors in an EarthObservationJob.

" + }, + "EarthObservationJobErrorType":{ + "type":"string", + "enum":[ + "CLIENT_ERROR", + "SERVER_ERROR" + ] + }, + "EarthObservationJobExportStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "SUCCEEDED", + "FAILED" + ] + }, + "EarthObservationJobList":{ + "type":"list", + "member":{"shape":"ListEarthObservationJobOutputConfig"} + }, + "EarthObservationJobOutputBands":{ + "type":"list", + "member":{"shape":"OutputBand"} + }, + "EarthObservationJobStatus":{ + "type":"string", + "enum":[ + "INITIALIZING", + "IN_PROGRESS", + "STOPPING", + "COMPLETED", + "STOPPED", + "FAILED", + "DELETING", + "DELETED" + ] + }, + "EoCloudCoverInput":{ + "type":"structure", + "required":[ + "LowerBound", + "UpperBound" + ], + "members":{ + "LowerBound":{ + "shape":"Float", + "documentation":"

" + }, + "UpperBound":{ + "shape":"Float", + "documentation":"

" + } + }, + "documentation":"

" + }, + "EojDataSourceConfigInput":{ + "type":"structure", + "members":{ + "S3Data":{ + "shape":"S3DataInput", + "documentation":"

" + } + }, + "documentation":"

", + "union":true + }, + "ExportEarthObservationJobInput":{ + "type":"structure", + "required":[ + "Arn", + "ExecutionRoleArn", + "OutputConfig" + ], + "members":{ + "Arn":{ + "shape":"EarthObservationJobArn", + "documentation":"

The input Amazon Resource Name (ARN) of the Earth Observation job being exported.

" + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

" + }, + "ExportSourceImages":{ + "shape":"Boolean", + "documentation":"

The source images provided to the Earth Observation job being exported.

" + }, + "OutputConfig":{ + "shape":"OutputConfigInput", + "documentation":"

An object containing information about the output file.

" + } + } + }, + "ExportEarthObservationJobOutput":{ + "type":"structure", + "required":[ + "Arn", + "CreationTime", + "ExecutionRoleArn", + "ExportStatus", + "OutputConfig" + ], + "members":{ + "Arn":{ + "shape":"EarthObservationJobArn", + "documentation":"

The output Amazon Resource Name (ARN) of the Earth Observation job being exported.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The creation time.

" + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

" + }, + "ExportSourceImages":{ + "shape":"Boolean", + "documentation":"

The source images provided to the Earth Observation job being exported.

" + }, + "ExportStatus":{ + "shape":"EarthObservationJobExportStatus", + "documentation":"

The status of the results of the Earth Observation job being exported.

" + }, + "OutputConfig":{ + "shape":"OutputConfigInput", + "documentation":"

An object containing information about the output file.

" + } + } + }, + "ExportErrorDetails":{ + "type":"structure", + "members":{ + "ExportResults":{ + "shape":"ExportErrorDetailsOutput", + "documentation":"

" + }, + "ExportSourceImages":{ + "shape":"ExportErrorDetailsOutput", + "documentation":"

" + } + }, + "documentation":"

The structure for returning the export error details in a GetEarthObservationJob.

" + }, + "ExportErrorDetailsOutput":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"String", + "documentation":"

" + }, + "Type":{ + "shape":"ExportErrorType", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ExportErrorType":{ + "type":"string", + "enum":[ + "CLIENT_ERROR", + "SERVER_ERROR" + ] + }, + "ExportS3DataInput":{ + "type":"structure", + "required":["S3Uri"], + "members":{ + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Key Management Service (KMS) key ID for server-side encryption.

" + }, + "S3Uri":{ + "shape":"String", + "documentation":"

The URL to the Amazon S3 data input.

" + } + }, + "documentation":"

" + }, + "ExportVectorEnrichmentJobInput":{ + "type":"structure", + "required":[ + "Arn", + "ExecutionRoleArn", + "OutputConfig" + ], + "members":{ + "Arn":{ + "shape":"VectorEnrichmentJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the Vector Enrichment job.

" + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM rolewith permission to upload to the location in OutputConfig.

" + }, + "OutputConfig":{ + "shape":"ExportVectorEnrichmentJobOutputConfig", + "documentation":"

Output location information for exporting Vector Enrichment Job results.

" + } + } + }, + "ExportVectorEnrichmentJobOutput":{ + "type":"structure", + "required":[ + "Arn", + "CreationTime", + "ExecutionRoleArn", + "ExportStatus", + "OutputConfig" + ], + "members":{ + "Arn":{ + "shape":"VectorEnrichmentJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the Vector Enrichment job being exported.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The creation time.

" + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role with permission to upload to the location in OutputConfig.

" + }, + "ExportStatus":{ + "shape":"VectorEnrichmentJobExportStatus", + "documentation":"

The status of the results the Vector Enrichment job being exported.

" + }, + "OutputConfig":{ + "shape":"ExportVectorEnrichmentJobOutputConfig", + "documentation":"

Output location information for exporting Vector Enrichment Job results.

" + } + } + }, + "ExportVectorEnrichmentJobOutputConfig":{ + "type":"structure", + "required":["S3Data"], + "members":{ + "S3Data":{ + "shape":"VectorEnrichmentJobS3Data", + "documentation":"

" + } + }, + "documentation":"

An object containing information about the output file.

" + }, + "Filter":{ + "type":"structure", + "required":[ + "Name", + "Type" + ], + "members":{ + "Maximum":{ + "shape":"Float", + "documentation":"

The maximum value of the filter.

" + }, + "Minimum":{ + "shape":"Float", + "documentation":"

The minimum value of the filter.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the filter.

" + }, + "Type":{ + "shape":"String", + "documentation":"

The type of the filter being used.

" + } + }, + "documentation":"

The structure representing the filters supported by a RasterDataCollection.

" + }, + "FilterList":{ + "type":"list", + "member":{"shape":"Filter"} + }, + "Float":{ + "type":"float", + "box":true + }, + "GeoMosaicConfigInput":{ + "type":"structure", + "members":{ + "AlgorithmName":{ + "shape":"AlgorithmNameGeoMosaic", + "documentation":"

The name of the algorithm being used for geomosaic.

" + }, + "TargetBands":{ + "shape":"StringListInput", + "documentation":"

The target bands for geomosaic.

" + } + }, + "documentation":"

Input configuration information for the geomosaic.

" + }, + "Geometry":{ + "type":"structure", + "required":[ + "Coordinates", + "Type" + ], + "members":{ + "Coordinates":{ + "shape":"LinearRings", + "documentation":"

" + }, + "Type":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

" + }, + "GetEarthObservationJobInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"EarthObservationJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the Earth Observation job.

", + "location":"uri", + "locationName":"Arn" + } + } + }, + "GetEarthObservationJobOutput":{ + "type":"structure", + "required":[ + "Arn", + "CreationTime", + "DurationInSeconds", + "InputConfig", + "JobConfig", + "Name", + "Status" + ], + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the Earth Observation job.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The creation time of the initiated Earth Observation job.

" + }, + "DurationInSeconds":{ + "shape":"Integer", + "documentation":"

The duration of Earth Observation job, in seconds.

" + }, + "ErrorDetails":{ + "shape":"EarthObservationJobErrorDetails", + "documentation":"

Details about the errors generated during the Earth Observation job.

" + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

" + }, + "ExportErrorDetails":{ + "shape":"ExportErrorDetails", + "documentation":"

Details about the errors generated during ExportEarthObservationJob.

" + }, + "ExportStatus":{ + "shape":"EarthObservationJobExportStatus", + "documentation":"

The status of the Earth Observation job.

" + }, + "InputConfig":{ + "shape":"InputConfigOutput", + "documentation":"

Input data for the Earth Observation job.

" + }, + "JobConfig":{ + "shape":"JobConfigInput", + "documentation":"

An object containing information about the job configuration.

" + }, + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Key Management Service (KMS) key ID for server-side encryption.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the Earth Observation job.

" + }, + "OutputBands":{ + "shape":"EarthObservationJobOutputBands", + "documentation":"

" + }, + "Status":{ + "shape":"EarthObservationJobStatus", + "documentation":"

The status of a previously initiated Earth Observation job.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + } + } + }, + "GetRasterDataCollectionInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"DataCollectionArn", + "documentation":"

The Amazon Resource Name (ARN) of the raster data collection.

", + "location":"uri", + "locationName":"Arn" + } + } + }, + "GetRasterDataCollectionOutput":{ + "type":"structure", + "required":[ + "Arn", + "Description", + "DescriptionPageUrl", + "ImageSourceBands", + "Name", + "SupportedFilters", + "Type" + ], + "members":{ + "Arn":{ + "shape":"DataCollectionArn", + "documentation":"

The Amazon Resource Name (ARN) of the raster data collection.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description of the raster data collection.

" + }, + "DescriptionPageUrl":{ + "shape":"String", + "documentation":"

The URL of the description page.

" + }, + "ImageSourceBands":{ + "shape":"ImageSourceBandList", + "documentation":"

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the raster data collection.

" + }, + "SupportedFilters":{ + "shape":"FilterList", + "documentation":"

The filters supported by the raster data collection.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + }, + "Type":{ + "shape":"DataCollectionType", + "documentation":"

The raster data collection type.

" + } + } + }, + "GetTileInput":{ + "type":"structure", + "required":[ + "Arn", + "ImageAssets", + "Target", + "x", + "y", + "z" + ], + "members":{ + "Arn":{ + "shape":"EarthObservationJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the tile operation.

", + "location":"querystring", + "locationName":"Arn" + }, + "ImageAssets":{ + "shape":"StringListInput", + "documentation":"

The particular assets or bands to tile.

", + "location":"querystring", + "locationName":"ImageAssets" + }, + "ImageMask":{ + "shape":"Boolean", + "documentation":"

Determines whether or not to return a valid data mask.

", + "location":"querystring", + "locationName":"ImageMask" + }, + "OutputDataType":{ + "shape":"OutputType", + "documentation":"

The output data type of the tile operation.

", + "location":"querystring", + "locationName":"OutputDataType" + }, + "OutputFormat":{ + "shape":"String", + "documentation":"

The data format of the output tile. The formats include .npy, .png and .jpg.

", + "location":"querystring", + "locationName":"OutputFormat" + }, + "PropertyFilters":{ + "shape":"String", + "documentation":"

Property filters for the imagery to tile.

", + "location":"querystring", + "locationName":"PropertyFilters" + }, + "Target":{ + "shape":"TargetOptions", + "documentation":"

Determines what part of the Earth Observation job to tile. 'INPUT' or 'OUTPUT' are the valid options.

", + "location":"querystring", + "locationName":"Target" + }, + "TimeRangeFilter":{ + "shape":"String", + "documentation":"

Time range filter applied to imagery to find the images to tile.

", + "location":"querystring", + "locationName":"TimeRangeFilter" + }, + "x":{ + "shape":"Integer", + "documentation":"

The x coordinate of the tile input.

", + "location":"uri", + "locationName":"x" + }, + "y":{ + "shape":"Integer", + "documentation":"

The y coordinate of the tile input.

", + "location":"uri", + "locationName":"y" + }, + "z":{ + "shape":"Integer", + "documentation":"

The z coordinate of the tile input.

", + "location":"uri", + "locationName":"z" + } + } + }, + "GetTileOutput":{ + "type":"structure", + "members":{ + "BinaryFile":{ + "shape":"BinaryFile", + "documentation":"

The output binary file.

" + } + }, + "payload":"BinaryFile" + }, + "GetVectorEnrichmentJobInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"VectorEnrichmentJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the Vector Enrichment job.

", + "location":"uri", + "locationName":"Arn" + } + } + }, + "GetVectorEnrichmentJobOutput":{ + "type":"structure", + "required":[ + "Arn", + "CreationTime", + "DurationInSeconds", + "ExecutionRoleArn", + "InputConfig", + "JobConfig", + "Name", + "Status", + "Type" + ], + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the Vector Enrichment job.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The creation time.

" + }, + "DurationInSeconds":{ + "shape":"Integer", + "documentation":"

The duration of the Vector Enrichment job, in seconds.

" + }, + "ErrorDetails":{ + "shape":"VectorEnrichmentJobErrorDetails", + "documentation":"

Details about the errors generated during the Vector Enrichment job.

" + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

" + }, + "ExportErrorDetails":{ + "shape":"VectorEnrichmentJobExportErrorDetails", + "documentation":"

Details about the errors generated during the ExportVectorEnrichmentJob.

" + }, + "ExportStatus":{ + "shape":"VectorEnrichmentJobExportStatus", + "documentation":"

The export status of the Vector Enrichment job being initiated.

" + }, + "InputConfig":{ + "shape":"VectorEnrichmentJobInputConfig", + "documentation":"

Input configuration information for the Vector Enrichment job.

" + }, + "JobConfig":{ + "shape":"VectorEnrichmentJobConfig", + "documentation":"

An object containing information about the job configuration.

" + }, + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Key Management Service (KMS) key ID for server-side encryption.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the Vector Enrichment job.

" + }, + "Status":{ + "shape":"VectorEnrichmentJobStatus", + "documentation":"

The status of the initiated Vector Enrichment job.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + }, + "Type":{ + "shape":"VectorEnrichmentJobType", + "documentation":"

The type of the Vector Enrichment job being initiated.

" + } + } + }, + "GroupBy":{ + "type":"string", + "enum":[ + "ALL", + "YEARLY" + ] + }, + "ImageSourceBandList":{ + "type":"list", + "member":{"shape":"String"} + }, + "InputConfigInput":{ + "type":"structure", + "members":{ + "DataSourceConfig":{ + "shape":"EojDataSourceConfigInput", + "documentation":"

The location of the input data.>

" + }, + "PreviousEarthObservationJobArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the previous Earth Observation job.

" + }, + "RasterDataCollectionQuery":{ + "shape":"RasterDataCollectionQueryInput", + "documentation":"

" + } + }, + "documentation":"

Input configuration information.

" + }, + "InputConfigOutput":{ + "type":"structure", + "members":{ + "DataSourceConfig":{ + "shape":"EojDataSourceConfigInput", + "documentation":"

The location of the input data.

" + }, + "PreviousEarthObservationJobArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the previous Earth Observation job.

" + }, + "RasterDataCollectionQuery":{ + "shape":"RasterDataCollectionQueryOutput", + "documentation":"

" + } + }, + "documentation":"

The InputConfig for an EarthObservationJob response.

" + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":[ + "Message", + "ResourceId" + ], + "members":{ + "Message":{"shape":"String"}, + "ResourceId":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

The request processing has failed because of an unknown error, exception, or failure.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ItemSource":{ + "type":"structure", + "required":[ + "DateTime", + "Geometry", + "Id" + ], + "members":{ + "Assets":{ + "shape":"AssetsMap", + "documentation":"

" + }, + "DateTime":{ + "shape":"Timestamp", + "documentation":"

" + }, + "Geometry":{ + "shape":"Geometry", + "documentation":"

" + }, + "Id":{ + "shape":"String", + "documentation":"

A unique Id for the source item.

" + }, + "Properties":{ + "shape":"Properties", + "documentation":"

" + } + }, + "documentation":"

Structure representing the items in the response for SearchRasterDataCollection.

" + }, + "ItemSourceList":{ + "type":"list", + "member":{"shape":"ItemSource"} + }, + "JobConfigInput":{ + "type":"structure", + "members":{ + "BandMathConfig":{ + "shape":"BandMathConfigInput", + "documentation":"

" + }, + "CloudMaskingConfig":{ + "shape":"CloudMaskingConfigInput", + "documentation":"

An object containing information about the job configuration for cloud masking.

" + }, + "CloudRemovalConfig":{ + "shape":"CloudRemovalConfigInput", + "documentation":"

An object containing information about the job configuration for cloud removal.

" + }, + "GeoMosaicConfig":{ + "shape":"GeoMosaicConfigInput", + "documentation":"

An object containing information about the job configuration for geomosaic.

" + }, + "LandCoverSegmentationConfig":{ + "shape":"LandCoverSegmentationConfigInput", + "documentation":"

An object containing information about the job configuration for land cover segmentation.

" + }, + "ResamplingConfig":{ + "shape":"ResamplingConfigInput", + "documentation":"

An object containing information about the job configuration for resampling.

" + }, + "StackConfig":{ + "shape":"StackConfigInput", + "documentation":"

" + }, + "TemporalStatisticsConfig":{ + "shape":"TemporalStatisticsConfigInput", + "documentation":"

An object containing information about the job configuration for temporal statistics.

" + }, + "ZonalStatisticsConfig":{ + "shape":"ZonalStatisticsConfigInput", + "documentation":"

An object containing information about the job configuration for zonal statistics.

" + } + }, + "documentation":"

The input structure for the JobConfig in an EarthObservationJob.

", + "union":true + }, + "LandCoverSegmentationConfigInput":{ + "type":"structure", + "members":{ + }, + "documentation":"

" + }, + "LandsatCloudCoverLandInput":{ + "type":"structure", + "required":[ + "LowerBound", + "UpperBound" + ], + "members":{ + "LowerBound":{ + "shape":"Float", + "documentation":"

" + }, + "UpperBound":{ + "shape":"Float", + "documentation":"

" + } + }, + "documentation":"

" + }, + "LinearRing":{ + "type":"list", + "member":{"shape":"Position"}, + "min":4 + }, + "LinearRings":{ + "type":"list", + "member":{"shape":"LinearRing"}, + "min":1 + }, + "LinearRingsList":{ + "type":"list", + "member":{"shape":"LinearRings"} + }, + "ListEarthObservationJobInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListEarthObservationJobInputMaxResultsInteger", + "documentation":"

The total number of items to return.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.

" + }, + "SortBy":{ + "shape":"String", + "documentation":"

The parameter by which to sort the results.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

An optional value that specifies whether you want the results sorted in Ascending or Descending order.

" + }, + "StatusEquals":{ + "shape":"EarthObservationJobStatus", + "documentation":"

A filter that retrieves only jobs with a specific status.

" + } + } + }, + "ListEarthObservationJobInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, + "ListEarthObservationJobOutput":{ + "type":"structure", + "required":["EarthObservationJobSummaries"], + "members":{ + "EarthObservationJobSummaries":{ + "shape":"EarthObservationJobList", + "documentation":"

Contains summary information about the Earth Observation jobs.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.

" + } + } + }, + "ListEarthObservationJobOutputConfig":{ + "type":"structure", + "required":[ + "Arn", + "CreationTime", + "DurationInSeconds", + "Name", + "OperationType", + "Status" + ], + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the list of the Earth Observation jobs.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The creation time.

" + }, + "DurationInSeconds":{ + "shape":"Integer", + "documentation":"

The duration of the session, in seconds.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The names of the Earth Observation jobs in the list.

" + }, + "OperationType":{ + "shape":"String", + "documentation":"

" + }, + "Status":{ + "shape":"EarthObservationJobStatus", + "documentation":"

The status of the list of the Earth Observation jobs.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + } + }, + "documentation":"

An object containing information about the output file.

" + }, + "ListRasterDataCollectionsInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListRasterDataCollectionsInputMaxResultsInteger", + "documentation":"

The total number of items to return.

", + "location":"querystring", + "locationName":"MaxResults" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.

", + "location":"querystring", + "locationName":"NextToken" + } + } + }, + "ListRasterDataCollectionsInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, + "ListRasterDataCollectionsOutput":{ + "type":"structure", + "required":["RasterDataCollectionSummaries"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.

" + }, + "RasterDataCollectionSummaries":{ + "shape":"DataCollectionsList", + "documentation":"

Contains summary information about the raster data collection.

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource you want to tag.

", + "location":"uri", + "locationName":"ResourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + } + } + }, + "ListVectorEnrichmentJobInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"ListVectorEnrichmentJobInputMaxResultsInteger", + "documentation":"

The maximum number of items to return.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.

" + }, + "SortBy":{ + "shape":"String", + "documentation":"

The parameter by which to sort the results.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

An optional value that specifies whether you want the results sorted in Ascending or Descending order.

" + }, + "StatusEquals":{ + "shape":"String", + "documentation":"

A filter that retrieves only jobs with a specific status.

" + } + } + }, + "ListVectorEnrichmentJobInputMaxResultsInteger":{ + "type":"integer", + "box":true, + "max":20, + "min":1 + }, + "ListVectorEnrichmentJobOutput":{ + "type":"structure", + "required":["VectorEnrichmentJobSummaries"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.

" + }, + "VectorEnrichmentJobSummaries":{ + "shape":"VectorEnrichmentJobList", + "documentation":"

Contains summary information about the Vector Enrichment jobs.

" + } + } + }, + "ListVectorEnrichmentJobOutputConfig":{ + "type":"structure", + "required":[ + "Arn", + "CreationTime", + "DurationInSeconds", + "Name", + "Status", + "Type" + ], + "members":{ + "Arn":{ + "shape":"VectorEnrichmentJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the list of the Vector Enrichment jobs.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The creation time.

" + }, + "DurationInSeconds":{ + "shape":"Integer", + "documentation":"

The duration of the session, in seconds.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The names of the Vector Enrichment jobs in the list.

" + }, + "Status":{ + "shape":"VectorEnrichmentJobStatus", + "documentation":"

The status of the Vector Enrichment jobs list.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + }, + "Type":{ + "shape":"VectorEnrichmentJobType", + "documentation":"

The type of the list of Vector Enrichment jobs.

" + } + }, + "documentation":"

An object containing information about the output file.

" + }, + "LogicalOperator":{ + "type":"string", + "enum":["AND"] + }, + "MapMatchingConfig":{ + "type":"structure", + "required":[ + "IdAttributeName", + "TimestampAttributeName", + "XAttributeName", + "YAttributeName" + ], + "members":{ + "IdAttributeName":{ + "shape":"String", + "documentation":"

" + }, + "TimestampAttributeName":{ + "shape":"String", + "documentation":"

The name of the timestamp attribute.

" + }, + "XAttributeName":{ + "shape":"String", + "documentation":"

The name of the X-attribute

" + }, + "YAttributeName":{ + "shape":"String", + "documentation":"

The name of the Y-attribute

" + } + }, + "documentation":"

" + }, + "MetadataProvider":{ + "type":"string", + "enum":["PLANET_ORDER"] + }, + "MultiPolygonGeometryInput":{ + "type":"structure", + "required":["Coordinates"], + "members":{ + "Coordinates":{ + "shape":"LinearRingsList", + "documentation":"

The coordinates of the multipolygon geometry.

" + } + }, + "documentation":"

" + }, + "NextToken":{ + "type":"string", + "max":8192, + "min":0, + "sensitive":true + }, + "Operation":{ + "type":"structure", + "required":[ + "Equation", + "Name" + ], + "members":{ + "Equation":{ + "shape":"String", + "documentation":"

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the operation.

" + }, + "OutputType":{ + "shape":"OutputType", + "documentation":"

The type of the operation.

" + } + }, + "documentation":"

" + }, + "OperationsListInput":{ + "type":"list", + "member":{"shape":"Operation"}, + "min":1 + }, + "OutputBand":{ + "type":"structure", + "required":[ + "BandName", + "OutputDataType" + ], + "members":{ + "BandName":{ + "shape":"String", + "documentation":"

The name of the band.

" + }, + "OutputDataType":{ + "shape":"OutputType", + "documentation":"

The datatype of the output band.

" + } + }, + "documentation":"

A single EarthObservationJob output band.

" + }, + "OutputConfigInput":{ + "type":"structure", + "required":["S3Data"], + "members":{ + "S3Data":{ + "shape":"ExportS3DataInput", + "documentation":"

Path to Amazon S3 storage location for the output configuration file.

" + } + }, + "documentation":"

The response structure for an OutputConfig returned by an ExportEarthObservationJob.

" + }, + "OutputResolutionResamplingInput":{ + "type":"structure", + "required":["UserDefined"], + "members":{ + "UserDefined":{ + "shape":"UserDefined", + "documentation":"

" + } + }, + "documentation":"

" + }, + "OutputResolutionStackInput":{ + "type":"structure", + "members":{ + "Predefined":{ + "shape":"PredefinedResolution", + "documentation":"

" + }, + "UserDefined":{ + "shape":"UserDefined", + "documentation":"

" + } + }, + "documentation":"

" + }, + "OutputType":{ + "type":"string", + "enum":[ + "INT32", + "FLOAT32", + "INT16", + "FLOAT64", + "UINT16" + ] + }, + "PlatformInput":{ + "type":"structure", + "required":["Value"], + "members":{ + "ComparisonOperator":{ + "shape":"ComparisonOperator", + "documentation":"

" + }, + "Value":{ + "shape":"String", + "documentation":"

The value of the platform.

" + } + }, + "documentation":"

" + }, + "PolygonGeometryInput":{ + "type":"structure", + "required":["Coordinates"], + "members":{ + "Coordinates":{ + "shape":"LinearRings", + "documentation":"

" + } + }, + "documentation":"

" + }, + "Position":{ + "type":"list", + "member":{"shape":"Double"}, + "max":2, + "min":2, + "sensitive":true + }, + "PredefinedResolution":{ + "type":"string", + "enum":[ + "HIGHEST", + "LOWEST", + "AVERAGE" + ] + }, + "Properties":{ + "type":"structure", + "members":{ + "EoCloudCover":{ + "shape":"Float", + "documentation":"

" + }, + "LandsatCloudCoverLand":{ + "shape":"Float", + "documentation":"

" + }, + "Platform":{ + "shape":"String", + "documentation":"

" + }, + "ViewOffNadir":{ + "shape":"Float", + "documentation":"

" + }, + "ViewSunAzimuth":{ + "shape":"Float", + "documentation":"

" + }, + "ViewSunElevation":{ + "shape":"Float", + "documentation":"

" + } + }, + "documentation":"

" + }, + "Property":{ + "type":"structure", + "members":{ + "EoCloudCover":{ + "shape":"EoCloudCoverInput", + "documentation":"

" + }, + "LandsatCloudCoverLand":{ + "shape":"LandsatCloudCoverLandInput", + "documentation":"

" + }, + "Platform":{ + "shape":"PlatformInput", + "documentation":"

" + }, + "ViewOffNadir":{ + "shape":"ViewOffNadirInput", + "documentation":"

" + }, + "ViewSunAzimuth":{ + "shape":"ViewSunAzimuthInput", + "documentation":"

" + }, + "ViewSunElevation":{ + "shape":"ViewSunElevationInput", + "documentation":"

" + } + }, + "documentation":"

", + "union":true + }, + "PropertyFilter":{ + "type":"structure", + "required":["Property"], + "members":{ + "Property":{ + "shape":"Property", + "documentation":"

" + } + }, + "documentation":"

" + }, + "PropertyFilters":{ + "type":"structure", + "members":{ + "LogicalOperator":{ + "shape":"LogicalOperator", + "documentation":"

" + }, + "Properties":{ + "shape":"PropertyFiltersList", + "documentation":"

" + } + }, + "documentation":"

" + }, + "PropertyFiltersList":{ + "type":"list", + "member":{"shape":"PropertyFilter"} + }, + "RasterDataCollectionMetadata":{ + "type":"structure", + "required":[ + "Arn", + "Description", + "Name", + "SupportedFilters", + "Type" + ], + "members":{ + "Arn":{ + "shape":"DataCollectionArn", + "documentation":"

The Amazon Resource Name (ARN) of the raster data collection.

" + }, + "Description":{ + "shape":"String", + "documentation":"

A description of the raster data collection.

" + }, + "DescriptionPageUrl":{ + "shape":"String", + "documentation":"

The description URL of the raster data collection.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the raster data collection.

" + }, + "SupportedFilters":{ + "shape":"FilterList", + "documentation":"

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + }, + "Type":{ + "shape":"DataCollectionType", + "documentation":"

The type of raster data collection.

" + } + }, + "documentation":"

Response object containing details for a specific RasterDataCollection.

" + }, + "RasterDataCollectionQueryInput":{ + "type":"structure", + "required":[ + "RasterDataCollectionArn", + "TimeRangeFilter" + ], + "members":{ + "AreaOfInterest":{ + "shape":"AreaOfInterest", + "documentation":"

The area of interest being queried for the raster data collection.

" + }, + "PropertyFilters":{ + "shape":"PropertyFilters", + "documentation":"

" + }, + "RasterDataCollectionArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the raster data collection.

" + }, + "TimeRangeFilter":{ + "shape":"TimeRangeFilterInput", + "documentation":"

" + } + }, + "documentation":"

" + }, + "RasterDataCollectionQueryOutput":{ + "type":"structure", + "required":[ + "RasterDataCollectionArn", + "RasterDataCollectionName", + "TimeRangeFilter" + ], + "members":{ + "AreaOfInterest":{ + "shape":"AreaOfInterest", + "documentation":"

" + }, + "PropertyFilters":{ + "shape":"PropertyFilters", + "documentation":"

" + }, + "RasterDataCollectionArn":{ + "shape":"String", + "documentation":"

" + }, + "RasterDataCollectionName":{ + "shape":"String", + "documentation":"

The name of the raster data collection.

" + }, + "TimeRangeFilter":{ + "shape":"TimeRangeFilterInput", + "documentation":"

" + } + }, + "documentation":"

" + }, + "RasterDataCollectionQueryWithBandFilterInput":{ + "type":"structure", + "required":["TimeRangeFilter"], + "members":{ + "AreaOfInterest":{ + "shape":"AreaOfInterest", + "documentation":"

" + }, + "BandFilter":{ + "shape":"StringListInput", + "documentation":"

" + }, + "PropertyFilters":{ + "shape":"PropertyFilters", + "documentation":"

" + }, + "TimeRangeFilter":{ + "shape":"TimeRangeFilterInput", + "documentation":"

" + } + }, + "documentation":"

This is a RasterDataCollectionQueryInput containing AreaOfInterest, Time Range filter and Property filters.

" + }, + "ResamplingConfigInput":{ + "type":"structure", + "required":["OutputResolution"], + "members":{ + "AlgorithmName":{ + "shape":"AlgorithmNameResampling", + "documentation":"

The name of the algorithm used for resampling.

" + }, + "OutputResolution":{ + "shape":"OutputResolutionResamplingInput", + "documentation":"

" + }, + "TargetBands":{ + "shape":"StringListInput", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "Message", + "ResourceId" + ], + "members":{ + "Message":{"shape":"String"}, + "ResourceId":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ReverseGeocodingConfig":{ + "type":"structure", + "required":[ + "XAttributeName", + "YAttributeName" + ], + "members":{ + "XAttributeName":{ + "shape":"String", + "documentation":"

" + }, + "YAttributeName":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

" + }, + "S3DataInput":{ + "type":"structure", + "required":[ + "MetadataProvider", + "S3Uri" + ], + "members":{ + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Key Management Service (KMS) key ID for server-side encryption.

" + }, + "MetadataProvider":{ + "shape":"MetadataProvider", + "documentation":"

" + }, + "S3Uri":{ + "shape":"String", + "documentation":"

The URL to the Amazon S3 input.

" + } + }, + "documentation":"

Path to Amazon S3 storage location for input data.

" + }, + "SearchRasterDataCollectionInput":{ + "type":"structure", + "required":[ + "Arn", + "RasterDataCollectionQuery" + ], + "members":{ + "Arn":{ + "shape":"DataCollectionArn", + "documentation":"

The Amazon Resource Name (ARN) of the raster data collection.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.

" + }, + "RasterDataCollectionQuery":{ + "shape":"RasterDataCollectionQueryWithBandFilterInput", + "documentation":"

" + } + } + }, + "SearchRasterDataCollectionOutput":{ + "type":"structure", + "required":["ApproximateResultCount"], + "members":{ + "ApproximateResultCount":{ + "shape":"Integer", + "documentation":"

" + }, + "Items":{ + "shape":"ItemSourceList", + "documentation":"

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you receive this token. Use it in your next request to receive the next set of results.

" + } + } + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "Message", + "ResourceId" + ], + "members":{ + "Message":{"shape":"String"}, + "ResourceId":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

You have exceeded the service quota.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SortOrder":{ + "type":"string", + "enum":[ + "ASCENDING", + "DESCENDING" + ] + }, + "StackConfigInput":{ + "type":"structure", + "members":{ + "OutputResolution":{ + "shape":"OutputResolutionStackInput", + "documentation":"

" + }, + "TargetBands":{ + "shape":"StringListInput", + "documentation":"

" + } + }, + "documentation":"

" + }, + "StartEarthObservationJobInput":{ + "type":"structure", + "required":[ + "InputConfig", + "JobConfig", + "Name" + ], + "members":{ + "ClientToken":{ + "shape":"String", + "documentation":"

A unique token that guarantees that the call to this API is idempotent.

", + "idempotencyToken":true + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

" + }, + "InputConfig":{ + "shape":"InputConfigInput", + "documentation":"

Input configuration information for the Earth Observation job.

" + }, + "JobConfig":{ + "shape":"JobConfigInput", + "documentation":"

An object containing information about the job configuration.

" + }, + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Key Management Service (KMS) key ID for server-side encryption.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the Earth Observation job.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + } + } + }, + "StartEarthObservationJobOutput":{ + "type":"structure", + "required":[ + "Arn", + "CreationTime", + "DurationInSeconds", + "JobConfig", + "Name", + "Status" + ], + "members":{ + "Arn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the Earth Observation job.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The creation time.

" + }, + "DurationInSeconds":{ + "shape":"Integer", + "documentation":"

The duration of the session, in seconds.

" + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

" + }, + "InputConfig":{ + "shape":"InputConfigOutput", + "documentation":"

Input configuration information for the Earth Observation job.

" + }, + "JobConfig":{ + "shape":"JobConfigInput", + "documentation":"

An object containing information about the job configuration.

" + }, + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Key Management Service (KMS) key ID for server-side encryption.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the Earth Observation job.

" + }, + "Status":{ + "shape":"EarthObservationJobStatus", + "documentation":"

The status of the Earth Observation job.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + } + } + }, + "StartVectorEnrichmentJobInput":{ + "type":"structure", + "required":[ + "ExecutionRoleArn", + "InputConfig", + "JobConfig", + "Name" + ], + "members":{ + "ClientToken":{ + "shape":"String", + "documentation":"

A unique token that guarantees that the call to this API is idempotent.

", + "idempotencyToken":true + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

" + }, + "InputConfig":{ + "shape":"VectorEnrichmentJobInputConfig", + "documentation":"

Input configuration information for the Vector Enrichment job.

" + }, + "JobConfig":{ + "shape":"VectorEnrichmentJobConfig", + "documentation":"

An object containing information about the job configuration.

" + }, + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Key Management Service (KMS) key ID for server-side encryption.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the Vector Enrichment job.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + } + } + }, + "StartVectorEnrichmentJobOutput":{ + "type":"structure", + "required":[ + "Arn", + "CreationTime", + "DurationInSeconds", + "ExecutionRoleArn", + "InputConfig", + "JobConfig", + "Name", + "Status", + "Type" + ], + "members":{ + "Arn":{ + "shape":"VectorEnrichmentJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the Vector Enrichment job.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The creation time.

" + }, + "DurationInSeconds":{ + "shape":"Integer", + "documentation":"

The duration of the Vector Enrichment job, in seconds.

" + }, + "ExecutionRoleArn":{ + "shape":"String", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that you specified for the job.

" + }, + "InputConfig":{ + "shape":"VectorEnrichmentJobInputConfig", + "documentation":"

Input configuration information for starting the Vector Enrichment job.

" + }, + "JobConfig":{ + "shape":"VectorEnrichmentJobConfig", + "documentation":"

An object containing information about the job configuration.

" + }, + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Key Management Service (KMS) key ID for server-side encryption.

" + }, + "Name":{ + "shape":"String", + "documentation":"

The name of the Vector Enrichment job.

" + }, + "Status":{ + "shape":"VectorEnrichmentJobStatus", + "documentation":"

The status of the Vector Enrichment job being started.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + }, + "Type":{ + "shape":"VectorEnrichmentJobType", + "documentation":"

The type of the Vector Enrichment job.

" + } + } + }, + "StopEarthObservationJobInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"EarthObservationJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the Earth Observation job being stopped.

" + } + } + }, + "StopEarthObservationJobOutput":{ + "type":"structure", + "members":{ + } + }, + "StopVectorEnrichmentJobInput":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"VectorEnrichmentJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the Vector Enrichment job.

" + } + } + }, + "StopVectorEnrichmentJobOutput":{ + "type":"structure", + "members":{ + } + }, + "String":{"type":"string"}, + "StringListInput":{ + "type":"list", + "member":{"shape":"String"}, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"String"}, + "max":50, + "min":1 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource you want to tag.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Each tag consists of a key and a value.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "Tags":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "TargetOptions":{ + "type":"string", + "enum":[ + "INPUT", + "OUTPUT" + ] + }, + "TemporalStatistics":{ + "type":"string", + "enum":[ + "MEAN", + "MEDIAN", + "STANDARD_DEVIATION" + ] + }, + "TemporalStatisticsConfigInput":{ + "type":"structure", + "required":["Statistics"], + "members":{ + "GroupBy":{ + "shape":"GroupBy", + "documentation":"

" + }, + "Statistics":{ + "shape":"TemporalStatisticsListInput", + "documentation":"

" + }, + "TargetBands":{ + "shape":"StringListInput", + "documentation":"

" + } + }, + "documentation":"

" + }, + "TemporalStatisticsListInput":{ + "type":"list", + "member":{"shape":"TemporalStatistics"}, + "min":1 + }, + "ThrottlingException":{ + "type":"structure", + "required":[ + "Message", + "ResourceId" + ], + "members":{ + "Message":{"shape":"String"}, + "ResourceId":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "TimeRangeFilterInput":{ + "type":"structure", + "required":[ + "EndTime", + "StartTime" + ], + "members":{ + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The end time for the time-range filter.

" + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The start time for the time-range filter.

" + } + }, + "documentation":"

The input for the time-range filter.

", + "sensitive":true + }, + "Timestamp":{"type":"timestamp"}, + "Unit":{ + "type":"string", + "enum":["METERS"] + }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the resource you want to untag.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

Keys of the tags you want to remove.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UserDefined":{ + "type":"structure", + "required":[ + "Unit", + "Value" + ], + "members":{ + "Unit":{ + "shape":"Unit", + "documentation":"

" + }, + "Value":{ + "shape":"Float", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ValidationException":{ + "type":"structure", + "required":[ + "Message", + "ResourceId" + ], + "members":{ + "Message":{"shape":"String"}, + "ResourceId":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

The input fails to satisfy the constraints specified by an Amazon Web Services service.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "VectorEnrichmentJobArn":{ + "type":"string", + "pattern":"^arn:aws[a-z-]{0,12}:sagemaker-geospatial:[a-z0-9-]{1,25}:[0-9]{12}:vector-enrichment-job/[a-z0-9]{12,}$" + }, + "VectorEnrichmentJobConfig":{ + "type":"structure", + "members":{ + "MapMatchingConfig":{ + "shape":"MapMatchingConfig", + "documentation":"

" + }, + "ReverseGeocodingConfig":{ + "shape":"ReverseGeocodingConfig", + "documentation":"

" + } + }, + "documentation":"

It contains configs such as ReverseGeocodingConfig and MapMatchingConfig.

", + "union":true + }, + "VectorEnrichmentJobDataSourceConfigInput":{ + "type":"structure", + "members":{ + "S3Data":{ + "shape":"VectorEnrichmentJobS3Data", + "documentation":"

" + } + }, + "documentation":"

", + "union":true + }, + "VectorEnrichmentJobDocumentType":{ + "type":"string", + "enum":["CSV"] + }, + "VectorEnrichmentJobErrorDetails":{ + "type":"structure", + "members":{ + "ErrorMessage":{ + "shape":"String", + "documentation":"

A message that you define and then is processed and rendered by the Vector Enrichment job when the error occurs.

" + }, + "ErrorType":{ + "shape":"VectorEnrichmentJobErrorType", + "documentation":"

The type of error generated during the Vector Enrichment job.

" + } + }, + "documentation":"

VectorEnrichmentJob error details in response from GetVectorEnrichmentJob.

" + }, + "VectorEnrichmentJobErrorType":{ + "type":"string", + "enum":[ + "CLIENT_ERROR", + "SERVER_ERROR" + ] + }, + "VectorEnrichmentJobExportErrorDetails":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"String", + "documentation":"

The message providing details about the errors generated during the Vector Enrichment job.

" + }, + "Type":{ + "shape":"VectorEnrichmentJobExportErrorType", + "documentation":"

" + } + }, + "documentation":"

VectorEnrichmentJob export error details in response from GetVectorEnrichmentJob.

" + }, + "VectorEnrichmentJobExportErrorType":{ + "type":"string", + "enum":[ + "CLIENT_ERROR", + "SERVER_ERROR" + ] + }, + "VectorEnrichmentJobExportStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "SUCCEEDED", + "FAILED" + ] + }, + "VectorEnrichmentJobInputConfig":{ + "type":"structure", + "required":[ + "DataSourceConfig", + "DocumentType" + ], + "members":{ + "DataSourceConfig":{ + "shape":"VectorEnrichmentJobDataSourceConfigInput", + "documentation":"

" + }, + "DocumentType":{ + "shape":"VectorEnrichmentJobDocumentType", + "documentation":"

" + } + }, + "documentation":"

The input structure for the InputConfig in a VectorEnrichmentJob.

" + }, + "VectorEnrichmentJobList":{ + "type":"list", + "member":{"shape":"ListVectorEnrichmentJobOutputConfig"} + }, + "VectorEnrichmentJobS3Data":{ + "type":"structure", + "required":["S3Uri"], + "members":{ + "KmsKeyId":{ + "shape":"String", + "documentation":"

The Amazon Key Management Service (KMS) key ID for server-side encryption.

" + }, + "S3Uri":{ + "shape":"String", + "documentation":"

The URL to the Amazon S3 data for the Vector Enrichment job.

" + } + }, + "documentation":"

The Amazon S3 data for the Vector Enrichment job.

" + }, + "VectorEnrichmentJobStatus":{ + "type":"string", + "enum":[ + "INITIALIZING", + "IN_PROGRESS", + "STOPPING", + "STOPPED", + "COMPLETED", + "FAILED", + "DELETING", + "DELETED" + ] + }, + "VectorEnrichmentJobType":{ + "type":"string", + "enum":[ + "REVERSE_GEOCODING", + "MAP_MATCHING" + ] + }, + "ViewOffNadirInput":{ + "type":"structure", + "required":[ + "LowerBound", + "UpperBound" + ], + "members":{ + "LowerBound":{ + "shape":"Float", + "documentation":"

" + }, + "UpperBound":{ + "shape":"Float", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ViewSunAzimuthInput":{ + "type":"structure", + "required":[ + "LowerBound", + "UpperBound" + ], + "members":{ + "LowerBound":{ + "shape":"Float", + "documentation":"

" + }, + "UpperBound":{ + "shape":"Float", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ViewSunElevationInput":{ + "type":"structure", + "required":[ + "LowerBound", + "UpperBound" + ], + "members":{ + "LowerBound":{ + "shape":"Float", + "documentation":"

The lower bound to view the sun elevation.

" + }, + "UpperBound":{ + "shape":"Float", + "documentation":"

The upper bound to view the sun elevation.

" + } + }, + "documentation":"

" + }, + "ZonalStatistics":{ + "type":"string", + "enum":[ + "MEAN", + "MEDIAN", + "STANDARD_DEVIATION", + "MAX", + "MIN", + "SUM" + ] + }, + "ZonalStatisticsConfigInput":{ + "type":"structure", + "required":[ + "Statistics", + "ZoneS3Path" + ], + "members":{ + "Statistics":{ + "shape":"ZonalStatisticsListInput", + "documentation":"

" + }, + "TargetBands":{ + "shape":"StringListInput", + "documentation":"

" + }, + "ZoneS3Path":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ZonalStatisticsListInput":{ + "type":"list", + "member":{"shape":"ZonalStatistics"}, + "min":1 + } + }, + "documentation":"

Provides APIs for creating and managing SageMaker geospatial resources.

" +} diff --git a/botocore/data/sagemaker-runtime/2017-05-13/endpoint-rule-set-1.json b/botocore/data/sagemaker-runtime/2017-05-13/endpoint-rule-set-1.json new file mode 100644 index 00000000..b337dc26 --- /dev/null +++ b/botocore/data/sagemaker-runtime/2017-05-13/endpoint-rule-set-1.json @@ -0,0 +1,365 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://runtime-fips.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://runtime.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://runtime.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sagemaker-runtime/2017-05-13/service-2.json b/botocore/data/sagemaker-runtime/2017-05-13/service-2.json index 030da597..3570ca17 100644 --- a/botocore/data/sagemaker-runtime/2017-05-13/service-2.json +++ b/botocore/data/sagemaker-runtime/2017-05-13/service-2.json @@ -59,6 +59,12 @@ "pattern":"\\p{ASCII}*", "sensitive":true }, + "EnableExplanationsHeader":{ + "type":"string", + "max":64, + "min":1, + "pattern":".*" + }, "EndpointName":{ "type":"string", "max":63, @@ -227,6 +233,12 @@ "documentation":"

If you provide a value, it is added to the captured data when you enable data capture on the endpoint. For information about data capture, see Capture Data.

", "location":"header", "locationName":"X-Amzn-SageMaker-Inference-Id" + }, + "EnableExplanations":{ + "shape":"EnableExplanationsHeader", + "documentation":"

An optional JMESPath expression used to override the EnableExplanations parameter of the ClarifyExplainerConfig API. See the EnableExplanations section in the developer guide for more information.

", + "location":"header", + "locationName":"X-Amzn-SageMaker-Enable-Explanations" } }, "payload":"Body" @@ -237,7 +249,7 @@ "members":{ "Body":{ "shape":"BodyBlob", - "documentation":"

Includes the inference provided by the model.

For information about the format of the response body, see Common Data Formats-Inference.

" + "documentation":"

Includes the inference provided by the model.

For information about the format of the response body, see Common Data Formats-Inference.

If the explainer is activated, the body includes the explanations provided by the model. For more information, see the Response section under Invoke the Endpoint in the Developer Guide.

" }, "ContentType":{ "shape":"Header", diff --git a/botocore/data/sagemaker/2017-07-24/endpoint-rule-set-1.json b/botocore/data/sagemaker/2017-07-24/endpoint-rule-set-1.json new file mode 100644 index 00000000..602de7bd --- /dev/null +++ b/botocore/data/sagemaker/2017-07-24/endpoint-rule-set-1.json @@ -0,0 +1,384 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.sagemaker-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://api-fips.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1-secondary" + ] + } + ], + "endpoint": { + "url": "https://api.sagemaker.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://api-fips.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.sagemaker-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.sagemaker.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.sagemaker.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sagemaker/2017-07-24/paginators-1.json b/botocore/data/sagemaker/2017-07-24/paginators-1.json index 2301b579..4ea44747 100644 --- a/botocore/data/sagemaker/2017-07-24/paginators-1.json +++ b/botocore/data/sagemaker/2017-07-24/paginators-1.json @@ -341,6 +341,66 @@ "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" } } } diff --git a/botocore/data/sagemaker/2017-07-24/service-2.json b/botocore/data/sagemaker/2017-07-24/service-2.json index 0cdc3da8..9c5c3c8c 100644 --- a/botocore/data/sagemaker/2017-07-24/service-2.json +++ b/botocore/data/sagemaker/2017-07-24/service-2.json @@ -97,7 +97,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceInUse"} ], - "documentation":"

Creates a running app for the specified UserProfile. Supported apps are JupyterServer and KernelGateway. This operation is automatically invoked by Amazon SageMaker Studio upon access to the associated Domain, and when new kernel configurations are selected by the user. A user may have multiple Apps active simultaneously.

" + "documentation":"

Creates a running app for the specified UserProfile. This operation is automatically invoked by Amazon SageMaker Studio upon access to the associated Domain, and when new kernel configurations are selected by the user. A user may have multiple Apps active simultaneously.

" }, "CreateAppImageConfig":{ "name":"CreateAppImageConfig", @@ -217,6 +217,31 @@ ], "documentation":"

Creates a Domain used by Amazon SageMaker Studio. A domain consists of an associated Amazon Elastic File System (EFS) volume, a list of authorized users, and a variety of security, application, policy, and Amazon Virtual Private Cloud (VPC) configurations. An Amazon Web Services account is limited to one domain per region. Users within a domain can share notebook files and other artifacts with each other.

EFS storage

When a domain is created, an EFS volume is created for use by all of the users within the domain. Each user receives a private home directory within the EFS volume for notebooks, Git repositories, and data files.

SageMaker uses the Amazon Web Services Key Management Service (Amazon Web Services KMS) to encrypt the EFS volume attached to the domain with an Amazon Web Services managed key by default. For more control, you can specify a customer managed key. For more information, see Protect Data at Rest Using Encryption.

VPC configuration

All SageMaker Studio traffic between the domain and the EFS volume is through the specified VPC and subnets. For other Studio traffic, you can specify the AppNetworkAccessType parameter. AppNetworkAccessType corresponds to the network access type that you choose when you onboard to Studio. The following options are available:

  • PublicInternetOnly - Non-EFS traffic goes through a VPC managed by Amazon SageMaker, which allows internet access. This is the default value.

  • VpcOnly - All Studio traffic is through the specified VPC and subnets. Internet access is disabled by default. To allow internet access, you must specify a NAT gateway.

    When internet access is disabled, you won't be able to run a Studio notebook or to train or host models unless your VPC has an interface endpoint to the SageMaker API and runtime or a NAT gateway and your security groups allow outbound connections.

NFS traffic over TCP on port 2049 needs to be allowed in both inbound and outbound rules in order to launch a SageMaker Studio app successfully.

For more information, see Connect SageMaker Studio Notebooks to Resources in a VPC.

" }, + "CreateEdgeDeploymentPlan":{ + "name":"CreateEdgeDeploymentPlan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEdgeDeploymentPlanRequest"}, + "output":{"shape":"CreateEdgeDeploymentPlanResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ], + "documentation":"

Creates an edge deployment plan, consisting of multiple stages. Each stage may have a different deployment configuration and devices.

" + }, + "CreateEdgeDeploymentStage":{ + "name":"CreateEdgeDeploymentStage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateEdgeDeploymentStageRequest"}, + "errors":[ + {"shape":"ResourceLimitExceeded"} + ], + "documentation":"

Creates a new stage in an existing edge deployment plan.

" + }, "CreateEdgePackagingJob":{ "name":"CreateEdgePackagingJob", "http":{ @@ -296,6 +321,20 @@ ], "documentation":"

Creates a flow definition.

" }, + "CreateHub":{ + "name":"CreateHub", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateHubRequest"}, + "output":{"shape":"CreateHubResponse"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceLimitExceeded"} + ], + "documentation":"

Create a hub.

" + }, "CreateHumanTaskUi":{ "name":"CreateHumanTaskUi", "http":{ @@ -322,7 +361,7 @@ {"shape":"ResourceInUse"}, {"shape":"ResourceLimitExceeded"} ], - "documentation":"

Starts a hyperparameter tuning job. A hyperparameter tuning job finds the best version of a model by running many training jobs on your dataset using the algorithm you choose and values for hyperparameters within ranges that you specify. It then chooses the hyperparameter values that result in a model that performs the best, as measured by an objective metric that you choose.

" + "documentation":"

Starts a hyperparameter tuning job. A hyperparameter tuning job finds the best version of a model by running many training jobs on your dataset using the algorithm you choose and values for hyperparameters within ranges that you specify. It then chooses the hyperparameter values that result in a model that performs the best, as measured by an objective metric that you choose.

A hyperparameter tuning job automatically creates Amazon SageMaker experiments, trials, and trial components for each training job that it runs. You can view these entities in Amazon SageMaker Studio. For more information, see View Experiments, Trials, and Trial Components.

Do not include any security-sensitive information including account access IDs, secrets or tokens in any hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject your training job request and return an exception error.

" }, "CreateImage":{ "name":"CreateImage", @@ -353,6 +392,20 @@ ], "documentation":"

Creates a version of the SageMaker image specified by ImageName. The version represents the Amazon Elastic Container Registry (ECR) container image specified by BaseImage.

" }, + "CreateInferenceExperiment":{ + "name":"CreateInferenceExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateInferenceExperimentRequest"}, + "output":{"shape":"CreateInferenceExperimentResponse"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceLimitExceeded"} + ], + "documentation":"

Creates an inference experiment using the configurations specified in the request.

Use this API to schedule an experiment to compare model variants on a Amazon SageMaker inference endpoint. For more information about inference experiments, see Shadow tests.

Amazon SageMaker begins your experiment at the scheduled time and routes traffic to your endpoint's model variants based on your specified configuration.

While the experiment is in progress or after it has concluded, you can view metrics that compare your model variants. For more information, see View, monitor, and edit shadow tests.

" + }, "CreateInferenceRecommendationsJob":{ "name":"CreateInferenceRecommendationsJob", "http":{ @@ -392,7 +445,7 @@ "errors":[ {"shape":"ResourceLimitExceeded"} ], - "documentation":"

Creates a model in SageMaker. In the request, you name the model and describe a primary container. For the primary container, you specify the Docker image that contains inference code, artifacts (from prior training), and a custom environment map that the inference code uses when you deploy the model for predictions.

Use this API to create a model if you want to use SageMaker hosting services or run a batch transform job.

To host your model, you create an endpoint configuration with the CreateEndpointConfig API, and then create an endpoint with the CreateEndpoint API. SageMaker then deploys all of the containers that you defined for the model in the hosting environment.

For an example that calls this method when deploying a model to SageMaker hosting services, see Deploy the Model to Amazon SageMaker Hosting Services (Amazon Web Services SDK for Python (Boto 3)).

To run a batch transform using your model, you start a job with the CreateTransformJob API. SageMaker uses your model and your dataset to get inferences which are then saved to a specified S3 location.

In the request, you also provide an IAM role that SageMaker can assume to access model artifacts and docker image for deployment on ML compute hosting instances or for batch transform jobs. In addition, you also use the IAM role to manage permissions the inference code needs. For example, if the inference code access any other Amazon Web Services resources, you grant necessary permissions via this role.

" + "documentation":"

Creates a model in SageMaker. In the request, you name the model and describe a primary container. For the primary container, you specify the Docker image that contains inference code, artifacts (from prior training), and a custom environment map that the inference code uses when you deploy the model for predictions.

Use this API to create a model if you want to use SageMaker hosting services or run a batch transform job.

To host your model, you create an endpoint configuration with the CreateEndpointConfig API, and then create an endpoint with the CreateEndpoint API. SageMaker then deploys all of the containers that you defined for the model in the hosting environment.

For an example that calls this method when deploying a model to SageMaker hosting services, see Create a Model (Amazon Web Services SDK for Python (Boto 3)).

To run a batch transform using your model, you start a job with the CreateTransformJob API. SageMaker uses your model and your dataset to get inferences which are then saved to a specified S3 location.

In the request, you also provide an IAM role that SageMaker can assume to access model artifacts and docker image for deployment on ML compute hosting instances or for batch transform jobs. In addition, you also use the IAM role to manage permissions the inference code needs. For example, if the inference code access any other Amazon Web Services resources, you grant necessary permissions via this role.

" }, "CreateModelBiasJobDefinition":{ "name":"CreateModelBiasJobDefinition", @@ -408,6 +461,35 @@ ], "documentation":"

Creates the definition for a model bias job.

" }, + "CreateModelCard":{ + "name":"CreateModelCard", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateModelCardRequest"}, + "output":{"shape":"CreateModelCardResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates an Amazon SageMaker Model Card.

For information about how to use model cards, see Amazon SageMaker Model Card.

" + }, + "CreateModelCardExportJob":{ + "name":"CreateModelCardExportJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateModelCardExportJobRequest"}, + "output":{"shape":"CreateModelCardExportJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"ResourceLimitExceeded"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates an Amazon SageMaker Model Card export job.

" + }, "CreateModelExplainabilityJobDefinition":{ "name":"CreateModelExplainabilityJobDefinition", "http":{ @@ -528,7 +610,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

Creates a URL for a specified UserProfile in a Domain. When accessed in a web browser, the user will be automatically signed in to Amazon SageMaker Studio, and granted access to all of the Apps and files associated with the Domain's Amazon Elastic File System (EFS) volume. This operation can only be called when the authentication mode equals IAM.

The IAM role or user used to call this API defines the permissions to access the app. Once the presigned URL is created, no additional permission is required to access this URL. IAM authorization policies for this API are also enforced for every HTTP request and WebSocket frame that attempts to connect to the app.

You can restrict access to this API and to the URL that it returns to a list of IP addresses, Amazon VPCs or Amazon VPC Endpoints that you specify. For more information, see Connect to SageMaker Studio Through an Interface VPC Endpoint .

The URL that you get from a call to CreatePresignedDomainUrl has a default timeout of 5 minutes. You can configure this value using ExpiresInSeconds. If you try to use the URL after the timeout limit expires, you are directed to the Amazon Web Services console sign-in page.

" + "documentation":"

Creates a URL for a specified UserProfile in a Domain. When accessed in a web browser, the user will be automatically signed in to Amazon SageMaker Studio, and granted access to all of the Apps and files associated with the Domain's Amazon Elastic File System (EFS) volume. This operation can only be called when the authentication mode equals IAM.

The IAM role or user passed to this API defines the permissions to access the app. Once the presigned URL is created, no additional permission is required to access this URL. IAM authorization policies for this API are also enforced for every HTTP request and WebSocket frame that attempts to connect to the app.

You can restrict access to this API and to the URL that it returns to a list of IP addresses, Amazon VPCs or Amazon VPC Endpoints that you specify. For more information, see Connect to SageMaker Studio Through an Interface VPC Endpoint .

The URL that you get from a call to CreatePresignedDomainUrl has a default timeout of 5 minutes. You can configure this value using ExpiresInSeconds. If you try to use the URL after the timeout limit expires, you are directed to the Amazon Web Services console sign-in page.

" }, "CreatePresignedNotebookInstanceUrl":{ "name":"CreatePresignedNotebookInstanceUrl", @@ -568,6 +650,20 @@ ], "documentation":"

Creates a machine learning (ML) project that can contain one or more templates that set up an ML pipeline from training to deploying an approved model.

" }, + "CreateSpace":{ + "name":"CreateSpace", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateSpaceRequest"}, + "output":{"shape":"CreateSpaceResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"} + ], + "documentation":"

Creates a space used for real time collaboration in a Domain.

" + }, "CreateStudioLifecycleConfig":{ "name":"CreateStudioLifecycleConfig", "http":{ @@ -594,7 +690,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceNotFound"} ], - "documentation":"

Starts a model training job. After training completes, SageMaker saves the resulting model artifacts to an Amazon S3 location that you specify.

If you choose to host your model using SageMaker hosting services, you can use the resulting model artifacts as part of the model. You can also use the artifacts in a machine learning service other than SageMaker, provided that you know how to use them for inference.

In the request body, you provide the following:

  • AlgorithmSpecification - Identifies the training algorithm to use.

  • HyperParameters - Specify these algorithm-specific parameters to enable the estimation of model parameters during training. Hyperparameters can be tuned to optimize this learning process. For a list of hyperparameters for each training algorithm provided by SageMaker, see Algorithms.

  • InputDataConfig - Describes the training dataset and the Amazon S3, EFS, or FSx location where it is stored.

  • OutputDataConfig - Identifies the Amazon S3 bucket where you want SageMaker to save the results of model training.

  • ResourceConfig - Identifies the resources, ML compute instances, and ML storage volumes to deploy for model training. In distributed training, you specify more than one instance.

  • EnableManagedSpotTraining - Optimize the cost of training machine learning models by up to 80% by using Amazon EC2 Spot instances. For more information, see Managed Spot Training.

  • RoleArn - The Amazon Resource Name (ARN) that SageMaker assumes to perform tasks on your behalf during model training. You must grant this role the necessary permissions so that SageMaker can successfully complete model training.

  • StoppingCondition - To help cap training costs, use MaxRuntimeInSeconds to set a time limit for training. Use MaxWaitTimeInSeconds to specify how long a managed spot training job has to complete.

  • Environment - The environment variables to set in the Docker container.

  • RetryStrategy - The number of times to retry the job when the job fails due to an InternalServerError.

For more information about SageMaker, see How It Works.

" + "documentation":"

Starts a model training job. After training completes, SageMaker saves the resulting model artifacts to an Amazon S3 location that you specify.

If you choose to host your model using SageMaker hosting services, you can use the resulting model artifacts as part of the model. You can also use the artifacts in a machine learning service other than SageMaker, provided that you know how to use them for inference.

In the request body, you provide the following:

  • AlgorithmSpecification - Identifies the training algorithm to use.

  • HyperParameters - Specify these algorithm-specific parameters to enable the estimation of model parameters during training. Hyperparameters can be tuned to optimize this learning process. For a list of hyperparameters for each training algorithm provided by SageMaker, see Algorithms.

    Do not include any security-sensitive information including account access IDs, secrets or tokens in any hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject your training job request and return an exception error.

  • InputDataConfig - Describes the input required by the training job and the Amazon S3, EFS, or FSx location where it is stored.

  • OutputDataConfig - Identifies the Amazon S3 bucket where you want SageMaker to save the results of model training.

  • ResourceConfig - Identifies the resources, ML compute instances, and ML storage volumes to deploy for model training. In distributed training, you specify more than one instance.

  • EnableManagedSpotTraining - Optimize the cost of training machine learning models by up to 80% by using Amazon EC2 Spot instances. For more information, see Managed Spot Training.

  • RoleArn - The Amazon Resource Name (ARN) that SageMaker assumes to perform tasks on your behalf during model training. You must grant this role the necessary permissions so that SageMaker can successfully complete model training.

  • StoppingCondition - To help cap training costs, use MaxRuntimeInSeconds to set a time limit for training. Use MaxWaitTimeInSeconds to specify how long a managed spot training job has to complete.

  • Environment - The environment variables to set in the Docker container.

  • RetryStrategy - The number of times to retry the job when the job fails due to an InternalServerError.

For more information about SageMaker, see How It Works.

" }, "CreateTransformJob":{ "name":"CreateTransformJob", @@ -650,7 +746,7 @@ {"shape":"ResourceLimitExceeded"}, {"shape":"ResourceInUse"} ], - "documentation":"

Creates a user profile. A user profile represents a single user within a domain, and is the main way to reference a \"person\" for the purposes of sharing, reporting, and other user-oriented features. This entity is created when a user onboards to Amazon SageMaker Studio. If an administrator invites a person by email or imports them from SSO, a user profile is automatically created. A user profile is the primary holder of settings for an individual user and has a reference to the user's private Amazon Elastic File System (EFS) home directory.

" + "documentation":"

Creates a user profile. A user profile represents a single user within a domain, and is the main way to reference a \"person\" for the purposes of sharing, reporting, and other user-oriented features. This entity is created when a user onboards to Amazon SageMaker Studio. If an administrator invites a person by email or imports them from IAM Identity Center, a user profile is automatically created. A user profile is the primary holder of settings for an individual user and has a reference to the user's private Amazon Elastic File System (EFS) home directory.

" }, "CreateWorkforce":{ "name":"CreateWorkforce", @@ -806,7 +902,31 @@ {"shape":"ResourceInUse"}, {"shape":"ResourceNotFound"} ], - "documentation":"

Used to delete a domain. If you onboarded with IAM mode, you will need to delete your domain to onboard again using SSO. Use with caution. All of the members of the domain will lose access to their EFS volume, including data, notebooks, and other artifacts.

" + "documentation":"

Used to delete a domain. If you onboarded with IAM mode, you will need to delete your domain to onboard again using IAM Identity Center. Use with caution. All of the members of the domain will lose access to their EFS volume, including data, notebooks, and other artifacts.

" + }, + "DeleteEdgeDeploymentPlan":{ + "name":"DeleteEdgeDeploymentPlan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEdgeDeploymentPlanRequest"}, + "errors":[ + {"shape":"ResourceInUse"} + ], + "documentation":"

Deletes an edge deployment plan if (and only if) all the stages in the plan are inactive or there are no stages in the plan.

" + }, + "DeleteEdgeDeploymentStage":{ + "name":"DeleteEdgeDeploymentStage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteEdgeDeploymentStageRequest"}, + "errors":[ + {"shape":"ResourceInUse"} + ], + "documentation":"

Delete a stage in an edge deployment plan if (and only if) the stage is inactive.

" }, "DeleteEndpoint":{ "name":"DeleteEndpoint", @@ -865,6 +985,32 @@ ], "documentation":"

Deletes the specified flow definition.

" }, + "DeleteHub":{ + "name":"DeleteHub", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteHubRequest"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Delete a hub.

" + }, + "DeleteHubContent":{ + "name":"DeleteHubContent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteHubContentRequest"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Delete the contents of a hub.

" + }, "DeleteHumanTaskUi":{ "name":"DeleteHumanTaskUi", "http":{ @@ -906,6 +1052,20 @@ ], "documentation":"

Deletes a version of a SageMaker image. The container image the version represents isn't deleted.

" }, + "DeleteInferenceExperiment":{ + "name":"DeleteInferenceExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteInferenceExperimentRequest"}, + "output":{"shape":"DeleteInferenceExperimentResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Deletes an inference experiment.

This operation does not delete your endpoint, variants, or any underlying resources. This operation only deletes the metadata of your experiment.

" + }, "DeleteModel":{ "name":"DeleteModel", "http":{ @@ -927,6 +1087,19 @@ ], "documentation":"

Deletes an Amazon SageMaker model bias job definition.

" }, + "DeleteModelCard":{ + "name":"DeleteModelCard", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteModelCardRequest"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes an Amazon SageMaker Model Card.

" + }, "DeleteModelExplainabilityJobDefinition":{ "name":"DeleteModelExplainabilityJobDefinition", "http":{ @@ -1039,6 +1212,19 @@ ], "documentation":"

Delete the specified project.

" }, + "DeleteSpace":{ + "name":"DeleteSpace", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteSpaceRequest"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Used to delete a space.

" + }, "DeleteStudioLifecycleConfig":{ "name":"DeleteStudioLifecycleConfig", "http":{ @@ -1296,6 +1482,19 @@ ], "documentation":"

The description of the domain.

" }, + "DescribeEdgeDeploymentPlan":{ + "name":"DescribeEdgeDeploymentPlan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEdgeDeploymentPlanRequest"}, + "output":{"shape":"DescribeEdgeDeploymentPlanResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Describes an edge deployment plan with deployment status per stage.

" + }, "DescribeEdgePackagingJob":{ "name":"DescribeEdgePackagingJob", "http":{ @@ -1355,6 +1554,19 @@ ], "documentation":"

Use this operation to describe a FeatureGroup. The response includes information on the creation time, FeatureGroup name, the unique identifier for each FeatureGroup, and more.

" }, + "DescribeFeatureMetadata":{ + "name":"DescribeFeatureMetadata", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeFeatureMetadataRequest"}, + "output":{"shape":"DescribeFeatureMetadataResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Shows the metadata for a feature within a feature group.

" + }, "DescribeFlowDefinition":{ "name":"DescribeFlowDefinition", "http":{ @@ -1368,6 +1580,32 @@ ], "documentation":"

Returns information about the specified flow definition.

" }, + "DescribeHub":{ + "name":"DescribeHub", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeHubRequest"}, + "output":{"shape":"DescribeHubResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Describe a hub.

" + }, + "DescribeHubContent":{ + "name":"DescribeHubContent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeHubContentRequest"}, + "output":{"shape":"DescribeHubContentResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Describe the content of a hub.

" + }, "DescribeHumanTaskUi":{ "name":"DescribeHumanTaskUi", "http":{ @@ -1420,6 +1658,19 @@ ], "documentation":"

Describes a version of a SageMaker image.

" }, + "DescribeInferenceExperiment":{ + "name":"DescribeInferenceExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeInferenceExperimentRequest"}, + "output":{"shape":"DescribeInferenceExperimentResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Returns details about an inference experiment.

" + }, "DescribeInferenceRecommendationsJob":{ "name":"DescribeInferenceRecommendationsJob", "http":{ @@ -1482,6 +1733,32 @@ ], "documentation":"

Returns a description of a model bias job definition.

" }, + "DescribeModelCard":{ + "name":"DescribeModelCard", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeModelCardRequest"}, + "output":{"shape":"DescribeModelCardResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Describes the content, creation time, and security configuration of an Amazon SageMaker Model Card.

" + }, + "DescribeModelCardExportJob":{ + "name":"DescribeModelCardExportJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeModelCardExportJobRequest"}, + "output":{"shape":"DescribeModelCardExportJobResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Describes an Amazon SageMaker Model Card export job.

" + }, "DescribeModelExplainabilityJobDefinition":{ "name":"DescribeModelExplainabilityJobDefinition", "http":{ @@ -1623,6 +1900,19 @@ "output":{"shape":"DescribeProjectOutput"}, "documentation":"

Describes the details of a project.

" }, + "DescribeSpace":{ + "name":"DescribeSpace", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeSpaceRequest"}, + "output":{"shape":"DescribeSpaceResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Describes the space.

" + }, "DescribeStudioLifecycleConfig":{ "name":"DescribeStudioLifecycleConfig", "http":{ @@ -1817,6 +2107,21 @@ "output":{"shape":"GetSearchSuggestionsResponse"}, "documentation":"

An auto-complete API for the search functionality in the Amazon SageMaker console. It returns suggestions of possible matches for the property name to use in Search queries. Provides suggestions for HyperParameters, Tags, and Metrics.

" }, + "ImportHubContent":{ + "name":"ImportHubContent", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportHubContentRequest"}, + "output":{"shape":"ImportHubContentResponse"}, + "errors":[ + {"shape":"ResourceInUse"}, + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Import hub content.

" + }, "ListActions":{ "name":"ListActions", "http":{ @@ -1982,6 +2287,16 @@ "output":{"shape":"ListDomainsResponse"}, "documentation":"

Lists the domains.

" }, + "ListEdgeDeploymentPlans":{ + "name":"ListEdgeDeploymentPlans", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListEdgeDeploymentPlansRequest"}, + "output":{"shape":"ListEdgeDeploymentPlansResponse"}, + "documentation":"

Lists all edge deployment plans.

" + }, "ListEdgePackagingJobs":{ "name":"ListEdgePackagingJobs", "http":{ @@ -2042,6 +2357,42 @@ "output":{"shape":"ListFlowDefinitionsResponse"}, "documentation":"

Returns information about the flow definitions in your account.

" }, + "ListHubContentVersions":{ + "name":"ListHubContentVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListHubContentVersionsRequest"}, + "output":{"shape":"ListHubContentVersionsResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

List hub content versions.

" + }, + "ListHubContents":{ + "name":"ListHubContents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListHubContentsRequest"}, + "output":{"shape":"ListHubContentsResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

List the contents of a hub.

" + }, + "ListHubs":{ + "name":"ListHubs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListHubsRequest"}, + "output":{"shape":"ListHubsResponse"}, + "documentation":"

List all existing hubs.

" + }, "ListHumanTaskUis":{ "name":"ListHumanTaskUis", "http":{ @@ -2085,6 +2436,26 @@ "output":{"shape":"ListImagesResponse"}, "documentation":"

Lists the images in your account and their properties. The list can be filtered by creation time or modified time, and whether the image name contains a specified string.

" }, + "ListInferenceExperiments":{ + "name":"ListInferenceExperiments", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListInferenceExperimentsRequest"}, + "output":{"shape":"ListInferenceExperimentsResponse"}, + "documentation":"

Returns the list of all inference experiments.

" + }, + "ListInferenceRecommendationsJobSteps":{ + "name":"ListInferenceRecommendationsJobSteps", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListInferenceRecommendationsJobStepsRequest"}, + "output":{"shape":"ListInferenceRecommendationsJobStepsResponse"}, + "documentation":"

Returns a list of the subtasks for an Inference Recommender job.

The supported subtasks are benchmarks, which evaluate the performance of your model on different instance types.

" + }, "ListInferenceRecommendationsJobs":{ "name":"ListInferenceRecommendationsJobs", "http":{ @@ -2138,6 +2509,39 @@ "output":{"shape":"ListModelBiasJobDefinitionsResponse"}, "documentation":"

Lists model bias jobs definitions that satisfy various filters.

" }, + "ListModelCardExportJobs":{ + "name":"ListModelCardExportJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListModelCardExportJobsRequest"}, + "output":{"shape":"ListModelCardExportJobsResponse"}, + "documentation":"

List the export jobs for the Amazon SageMaker Model Card.

" + }, + "ListModelCardVersions":{ + "name":"ListModelCardVersions", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListModelCardVersionsRequest"}, + "output":{"shape":"ListModelCardVersionsResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

List existing versions of an Amazon SageMaker Model Card.

" + }, + "ListModelCards":{ + "name":"ListModelCards", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListModelCardsRequest"}, + "output":{"shape":"ListModelCardsResponse"}, + "documentation":"

List existing model cards.

" + }, "ListModelExplainabilityJobDefinitions":{ "name":"ListModelExplainabilityJobDefinitions", "http":{ @@ -2198,6 +2602,32 @@ "output":{"shape":"ListModelsOutput"}, "documentation":"

Lists models created with the CreateModel API.

" }, + "ListMonitoringAlertHistory":{ + "name":"ListMonitoringAlertHistory", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMonitoringAlertHistoryRequest"}, + "output":{"shape":"ListMonitoringAlertHistoryResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Gets a list of past alerts in a model monitoring schedule.

" + }, + "ListMonitoringAlerts":{ + "name":"ListMonitoringAlerts", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMonitoringAlertsRequest"}, + "output":{"shape":"ListMonitoringAlertsResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Gets the alerts for a single monitoring schedule.

" + }, "ListMonitoringExecutions":{ "name":"ListMonitoringExecutions", "http":{ @@ -2307,6 +2737,26 @@ "output":{"shape":"ListProjectsOutput"}, "documentation":"

Gets a list of the projects in an Amazon Web Services account.

" }, + "ListSpaces":{ + "name":"ListSpaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListSpacesRequest"}, + "output":{"shape":"ListSpacesResponse"}, + "documentation":"

Lists spaces.

" + }, + "ListStageDevices":{ + "name":"ListStageDevices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListStageDevicesRequest"}, + "output":{"shape":"ListStageDevicesResponse"}, + "documentation":"

Lists devices allocated to the stage, containing detailed device information and deployment status.

" + }, "ListStudioLifecycleConfigs":{ "name":"ListStudioLifecycleConfigs", "http":{ @@ -2530,6 +2980,29 @@ ], "documentation":"

Notifies the pipeline that the execution of a callback step succeeded and provides a list of the step's output parameters. When a callback step is run, the pipeline generates a callback token and includes the token in a message sent to Amazon Simple Queue Service (Amazon SQS).

" }, + "StartEdgeDeploymentStage":{ + "name":"StartEdgeDeploymentStage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartEdgeDeploymentStageRequest"}, + "documentation":"

Starts a stage in an edge deployment plan.

" + }, + "StartInferenceExperiment":{ + "name":"StartInferenceExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartInferenceExperimentRequest"}, + "output":{"shape":"StartInferenceExperimentResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Starts an inference experiment.

" + }, "StartMonitoringSchedule":{ "name":"StartMonitoringSchedule", "http":{ @@ -2592,6 +3065,15 @@ ], "documentation":"

Stops a model compilation job.

To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal. This gracefully shuts the job down. If the job hasn't stopped, it sends the SIGKILL signal.

When it receives a StopCompilationJob request, Amazon SageMaker changes the CompilationJobSummary$CompilationJobStatus of the job to Stopping. After Amazon SageMaker stops the job, it sets the CompilationJobSummary$CompilationJobStatus to Stopped.

" }, + "StopEdgeDeploymentStage":{ + "name":"StopEdgeDeploymentStage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopEdgeDeploymentStageRequest"}, + "documentation":"

Stops a stage in an edge deployment plan.

" + }, "StopEdgePackagingJob":{ "name":"StopEdgePackagingJob", "http":{ @@ -2613,6 +3095,20 @@ ], "documentation":"

Stops a running hyperparameter tuning job and all running training jobs that the tuning job launched.

All model artifacts output from the training jobs are stored in Amazon Simple Storage Service (Amazon S3). All data that the training jobs write to Amazon CloudWatch Logs are still available in CloudWatch. After the tuning job moves to the Stopped state, it releases all reserved resources for the tuning job.

" }, + "StopInferenceExperiment":{ + "name":"StopInferenceExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopInferenceExperimentRequest"}, + "output":{"shape":"StopInferenceExperimentResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Stops an inference experiment.

" + }, "StopInferenceRecommendationsJob":{ "name":"StopInferenceRecommendationsJob", "http":{ @@ -2848,6 +3344,44 @@ ], "documentation":"

Adds, updates, or removes the description of an experiment. Updates the display name of an experiment.

" }, + "UpdateFeatureGroup":{ + "name":"UpdateFeatureGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateFeatureGroupRequest"}, + "output":{"shape":"UpdateFeatureGroupResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Updates the feature group.

" + }, + "UpdateFeatureMetadata":{ + "name":"UpdateFeatureMetadata", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateFeatureMetadataRequest"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Updates the description and parameters of the feature group.

" + }, + "UpdateHub":{ + "name":"UpdateHub", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateHubRequest"}, + "output":{"shape":"UpdateHubResponse"}, + "errors":[ + {"shape":"ResourceNotFound"} + ], + "documentation":"

Update a hub.

" + }, "UpdateImage":{ "name":"UpdateImage", "http":{ @@ -2862,6 +3396,35 @@ ], "documentation":"

Updates the properties of a SageMaker image. To change the image's tags, use the AddTags and DeleteTags APIs.

" }, + "UpdateInferenceExperiment":{ + "name":"UpdateInferenceExperiment", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateInferenceExperimentRequest"}, + "output":{"shape":"UpdateInferenceExperimentResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Updates an inference experiment that you created. The status of the inference experiment has to be either Created, Running. For more information on the status of an inference experiment, see DescribeInferenceExperimentResponse$Status.

" + }, + "UpdateModelCard":{ + "name":"UpdateModelCard", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateModelCardRequest"}, + "output":{"shape":"UpdateModelCardResponse"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"ResourceLimitExceeded"}, + {"shape":"ConflictException"} + ], + "documentation":"

Update an Amazon SageMaker Model Card.

You cannot update both model card content and model card status in a single call.

" + }, "UpdateModelPackage":{ "name":"UpdateModelPackage", "http":{ @@ -2872,6 +3435,20 @@ "output":{"shape":"UpdateModelPackageOutput"}, "documentation":"

Updates a versioned model.

" }, + "UpdateMonitoringAlert":{ + "name":"UpdateMonitoringAlert", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMonitoringAlertRequest"}, + "output":{"shape":"UpdateMonitoringAlertResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Update the parameters of a model monitor alert.

" + }, "UpdateMonitoringSchedule":{ "name":"UpdateMonitoringSchedule", "http":{ @@ -2948,6 +3525,21 @@ "output":{"shape":"UpdateProjectOutput"}, "documentation":"

Updates a machine learning (ML) project that is created from a template that sets up an ML pipeline from training to deploying an approved model.

You must not update a project that is in use. If you update the ServiceCatalogProvisioningUpdateDetails of a project that is active or being created, or updated, you may lose resources already created by the project.

" }, + "UpdateSpace":{ + "name":"UpdateSpace", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateSpaceRequest"}, + "output":{"shape":"UpdateSpaceResponse"}, + "errors":[ + {"shape":"ResourceLimitExceeded"}, + {"shape":"ResourceInUse"}, + {"shape":"ResourceNotFound"} + ], + "documentation":"

Updates the settings of a space.

" + }, "UpdateTrainingJob":{ "name":"UpdateTrainingJob", "http":{ @@ -2959,7 +3551,7 @@ "errors":[ {"shape":"ResourceNotFound"} ], - "documentation":"

Update a model training job to request a new Debugger profiling configuration.

" + "documentation":"

Update a model training job to request a new Debugger profiling configuration or to change warm pool retention length.

" }, "UpdateTrial":{ "name":"UpdateTrial", @@ -3012,7 +3604,10 @@ }, "input":{"shape":"UpdateWorkforceRequest"}, "output":{"shape":"UpdateWorkforceResponse"}, - "documentation":"

Use this operation to update your workforce. You can use this operation to require that workers use specific IP addresses to work on tasks and to update your OpenID Connect (OIDC) Identity Provider (IdP) workforce configuration.

Use SourceIpConfig to restrict worker access to tasks to a specific range of IP addresses. You specify allowed IP addresses by creating a list of up to ten CIDRs. By default, a workforce isn't restricted to specific IP addresses. If you specify a range of IP addresses, workers who attempt to access tasks using any IP address outside the specified range are denied and get a Not Found error message on the worker portal.

Use OidcConfig to update the configuration of a workforce created using your own OIDC IdP.

You can only update your OIDC IdP configuration when there are no work teams associated with your workforce. You can delete work teams using the operation.

After restricting access to a range of IP addresses or updating your OIDC IdP configuration with this operation, you can view details about your update workforce using the operation.

This operation only applies to private workforces.

" + "errors":[ + {"shape":"ConflictException"} + ], + "documentation":"

Use this operation to update your workforce. You can use this operation to require that workers use specific IP addresses to work on tasks and to update your OpenID Connect (OIDC) Identity Provider (IdP) workforce configuration.

The worker portal is now supported in VPC and public internet.

Use SourceIpConfig to restrict worker access to tasks to a specific range of IP addresses. You specify allowed IP addresses by creating a list of up to ten CIDRs. By default, a workforce isn't restricted to specific IP addresses. If you specify a range of IP addresses, workers who attempt to access tasks using any IP address outside the specified range are denied and get a Not Found error message on the worker portal.

To restrict access to all the workers in public internet, add the SourceIpConfig CIDR value as \"0.0.0.0/0\".

Amazon SageMaker does not support Source Ip restriction for worker portals in VPC.

Use OidcConfig to update the configuration of a workforce created using your own OIDC IdP.

You can only update your OIDC IdP configuration when there are no work teams associated with your workforce. You can delete work teams using the operation.

After restricting access to a range of IP addresses or updating your OIDC IdP configuration with this operation, you can view details about your update workforce using the operation.

This operation only applies to private workforces.

" }, "UpdateWorkteam":{ "name":"UpdateWorkteam", @@ -3288,11 +3883,11 @@ "members":{ "TrainingImage":{ "shape":"AlgorithmImage", - "documentation":"

The registry path of the Docker image that contains the training algorithm. For information about docker registry paths for built-in algorithms, see Algorithms Provided by Amazon SageMaker: Common Parameters. SageMaker supports both registry/repository[:tag] and registry/repository[@digest] image path formats. For more information, see Using Your Own Algorithms with Amazon SageMaker.

" + "documentation":"

The registry path of the Docker image that contains the training algorithm. For information about docker registry paths for SageMaker built-in algorithms, see Docker Registry Paths and Example Code in the Amazon SageMaker developer guide. SageMaker supports both registry/repository[:tag] and registry/repository[@digest] image path formats. For more information about using your custom training container, see Using Your Own Algorithms with Amazon SageMaker.

You must specify either the algorithm name to the AlgorithmName parameter or the image URI of the algorithm container to the TrainingImage parameter.

For more information, see the note in the AlgorithmName parameter description.

" }, "AlgorithmName":{ "shape":"ArnOrName", - "documentation":"

The name of the algorithm resource to use for the training job. This must be an algorithm resource that you created or subscribe to on Amazon Web Services Marketplace. If you specify a value for this parameter, you can't specify a value for TrainingImage.

" + "documentation":"

The name of the algorithm resource to use for the training job. This must be an algorithm resource that you created or subscribe to on Amazon Web Services Marketplace.

You must specify either the algorithm name to the AlgorithmName parameter or the image URI of the algorithm container to the TrainingImage parameter.

Note that the AlgorithmName parameter is mutually exclusive with the TrainingImage parameter. If you specify a value for the AlgorithmName parameter, you can't specify a value for TrainingImage, and vice versa.

If you specify values for both parameters, the training job might break; if you don't specify any value for both parameters, the training job might raise a null error.

" }, "TrainingInputMode":{"shape":"TrainingInputMode"}, "MetricDefinitions":{ @@ -3302,6 +3897,14 @@ "EnableSageMakerMetricsTimeSeries":{ "shape":"Boolean", "documentation":"

To generate and save time-series metrics during training, set to true. The default is false and time-series metrics aren't generated except in the following cases:

" + }, + "ContainerEntrypoint":{ + "shape":"TrainingContainerEntrypoint", + "documentation":"

The entrypoint script for a Docker container used to run a training job. This script takes precedence over the default train processing instructions. See How Amazon SageMaker Runs Your Training Image for more information.

" + }, + "ContainerArguments":{ + "shape":"TrainingContainerArguments", + "documentation":"

The arguments for a container used to run a training job. See How Amazon SageMaker Runs Your Training Image for additional information.

" } }, "documentation":"

Specifies the training algorithm to use in a CreateTrainingJob request.

For more information about algorithms provided by SageMaker, see Algorithms. For information about using your own algorithms, see Using Your Own Algorithms with Amazon SageMaker.

" @@ -3480,6 +4083,10 @@ "CreationTime":{ "shape":"CreationTime", "documentation":"

The creation time.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" } }, "documentation":"

Details about an Amazon SageMaker app.

" @@ -3583,7 +4190,15 @@ "ml.r5.8xlarge", "ml.r5.12xlarge", "ml.r5.16xlarge", - "ml.r5.24xlarge" + "ml.r5.24xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.16xlarge", + "ml.g5.12xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge" ] }, "AppList":{ @@ -3782,7 +4397,7 @@ "members":{ "TrialComponentArn":{ "shape":"TrialComponentArn", - "documentation":"

The ARN of the trial component.

" + "documentation":"

The Amazon Resource Name (ARN) of the trial component.

" }, "TrialArn":{ "shape":"TrialArn", @@ -4059,7 +4674,7 @@ "members":{ "FeatureSpecificationS3Uri":{ "shape":"S3Uri", - "documentation":"

A URL to the Amazon S3 data source containing selected features from the input data source to run an Autopilot job (optional). This file should be in json format as shown below:

{ \"FeatureAttributeNames\":[\"col1\", \"col2\", ...] }.

The key name FeatureAttributeNames is fixed. The values listed in [\"col1\", \"col2\", ...] is case sensitive and should be a list of strings containing unique values that are a subset of the column names in the input data. The list of columns provided must not include the target column.

" + "documentation":"

A URL to the Amazon S3 data source containing selected features from the input data source to run an Autopilot job. You can input FeatureAttributeNames (optional) in JSON format as shown below:

{ \"FeatureAttributeNames\":[\"col1\", \"col2\", ...] }.

You can also specify the data type of the feature (optional) in the format shown below:

{ \"FeatureDataTypes\":{\"col1\":\"numeric\", \"col2\":\"categorical\" ... } }

These column keys may not include the target column.

In ensembling mode, Autopilot will only support the following data types: numeric, categorical, text and datetime. In HPO mode, Autopilot can support numeric, categorical, text, datetime and sequence.

If only FeatureDataTypes is provided, the column keys (col1, col2,..) should be a subset of the column names in the input data.

If both FeatureDataTypes and FeatureAttributeNames are provided, then the column keys should be a subset of the column names provided in FeatureAttributeNames.

The key name FeatureAttributeNames is fixed. The values listed in [\"col1\", \"col2\", ...] is case sensitive and should be a list of strings containing unique values that are a subset of the column names in the input data. The list of columns provided must not include the target column.

" } }, "documentation":"

Stores the config information for how a candidate is generated (optional).

" @@ -4161,7 +4776,7 @@ "members":{ "S3DataSource":{ "shape":"AutoMLS3DataSource", - "documentation":"

The Amazon S3 location of the input data.

The input data must be in CSV format and contain at least 500 rows.

" + "documentation":"

The Amazon S3 location of the input data.

" } }, "documentation":"

The data source for the Autopilot job.

" @@ -4174,7 +4789,7 @@ "documentation":"

The validation fraction (optional) is a float that specifies the portion of the training dataset to be used for validation. The default value is 0.2, and values must be greater than 0 and less than 1. We recommend setting this value to be less than 0.5.

" } }, - "documentation":"

This structure specifies how to split the data into train and test datasets. The validation and training datasets must contain the same headers. The validation dataset must be less than 2 GB in size.

" + "documentation":"

This structure specifies how to split the data into train and validation datasets. The validation and training datasets must contain the same headers. The validation dataset must be less than 2 GB in size.

" }, "AutoMLFailureReason":{ "type":"string", @@ -4215,7 +4830,7 @@ }, "MaxRuntimePerTrainingJobInSeconds":{ "shape":"MaxRuntimePerTrainingJobInSeconds", - "documentation":"

The maximum time, in seconds, that each training job is allowed to run as part of a hyperparameter tuning job. For more information, see the used by the action.

" + "documentation":"

The maximum time, in seconds, that each training job executed inside hyperparameter tuning is allowed to run as part of a hyperparameter tuning job. For more information, see the used by the action.

" }, "MaxAutoMLJobRuntimeInSeconds":{ "shape":"MaxAutoMLJobRuntimeInSeconds", @@ -4242,6 +4857,10 @@ "CandidateGenerationConfig":{ "shape":"AutoMLCandidateGenerationConfig", "documentation":"

The configuration for generating a candidate for an AutoML job (optional).

" + }, + "Mode":{ + "shape":"AutoMLMode", + "documentation":"

The method that Autopilot uses to train the data. You can either specify the mode manually or let Autopilot choose for you based on the dataset size by selecting AUTO. In AUTO mode, Autopilot chooses ENSEMBLING for datasets smaller than 100 MB, and HYPERPARAMETER_TUNING for larger ones.

The ENSEMBLING mode uses a multi-stack ensemble model to predict classification and regression tasks directly from your dataset. This machine learning mode combines several base models to produce an optimal predictive model. It then uses a stacking ensemble method to combine predictions from contributing members. A multi-stack ensemble model can provide better performance over a single model by combining the predictive capabilities of multiple models. See Autopilot algorithm support for a list of algorithms supported by ENSEMBLING mode.

The HYPERPARAMETER_TUNING (HPO) mode uses the best hyperparameters to train the best version of a model. HPO will automatically select an algorithm for the type of problem you want to solve. Then HPO finds the best hyperparameters according to your objective metric. See Autopilot algorithm support for a list of algorithms supported by HYPERPARAMETER_TUNING mode.

" } }, "documentation":"

A collection of settings used for an AutoML job.

" @@ -4302,6 +4921,16 @@ "Stopping" ] }, + "AutoMLJobStepMetadata":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"AutoMLJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the AutoML job.

" + } + }, + "documentation":"

Metadata for an AutoML job step.

" + }, "AutoMLJobSummaries":{ "type":"list", "member":{"shape":"AutoMLJobSummary"} @@ -4387,7 +5016,16 @@ "PrecisionMacro", "Recall", "RecallMacro", - "LogLoss" + "LogLoss", + "InferenceLatency" + ] + }, + "AutoMLMode":{ + "type":"string", + "enum":[ + "AUTO", + "ENSEMBLING", + "HYPERPARAMETER_TUNING" ] }, "AutoMLNameContains":{ @@ -4401,7 +5039,7 @@ "members":{ "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

The Amazon Web Services KMS encryption key ID.

" + "documentation":"

The Key Management Service (KMS) encryption key ID.

" }, "S3OutputPath":{ "shape":"S3Uri", @@ -4435,7 +5073,7 @@ "members":{ "S3DataType":{ "shape":"AutoMLS3DataType", - "documentation":"

The data type.

" + "documentation":"

The data type.

A ManifestFile should have the format shown below:

[ {\"prefix\": \"s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER/DOC-EXAMPLE-PREFIX/\"},

\"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-1\",

\"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-2\",

... \"DOC-EXAMPLE-RELATIVE-PATH/DOC-EXAMPLE-FOLDER/DATA-N\" ]

An S3Prefix should have the following format:

s3://DOC-EXAMPLE-BUCKET/DOC-EXAMPLE-FOLDER-OR-FILE

" }, "S3Uri":{ "shape":"S3Uri", @@ -4501,6 +5139,25 @@ "AWS/Textract/AnalyzeDocument/Forms/V1" ] }, + "BatchDataCaptureConfig":{ + "type":"structure", + "required":["DestinationS3Uri"], + "members":{ + "DestinationS3Uri":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 location being used to capture the data.

" + }, + "KmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service key that SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the batch transform job.

The KmsKeyId can be any of the following formats:

  • Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab

  • Key ARN: arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

  • Alias name: alias/ExampleAlias

  • Alias name ARN: arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias

" + }, + "GenerateInferenceId":{ + "shape":"Boolean", + "documentation":"

Flag that indicates whether to append inference id to the output.

" + } + }, + "documentation":"

Configuration to control how SageMaker captures inference data for batch transform jobs.

" + }, "BatchDescribeModelPackageError":{ "type":"structure", "required":[ @@ -4596,6 +5253,61 @@ "SingleRecord" ] }, + "BatchTransformInput":{ + "type":"structure", + "required":[ + "DataCapturedDestinationS3Uri", + "DatasetFormat", + "LocalPath" + ], + "members":{ + "DataCapturedDestinationS3Uri":{ + "shape":"DestinationS3Uri", + "documentation":"

The Amazon S3 location being used to capture the data.

" + }, + "DatasetFormat":{ + "shape":"MonitoringDatasetFormat", + "documentation":"

The dataset format for your batch transform job.

" + }, + "LocalPath":{ + "shape":"ProcessingLocalPath", + "documentation":"

Path to the filesystem where the batch transform data is available to the container.

" + }, + "S3InputMode":{ + "shape":"ProcessingS3InputMode", + "documentation":"

Whether the Pipe or File is used as the input mode for transferring data for the monitoring job. Pipe mode is recommended for large datasets. File mode is useful for small files that fit in memory. Defaults to File.

" + }, + "S3DataDistributionType":{ + "shape":"ProcessingS3DataDistributionType", + "documentation":"

Whether input data distributed in Amazon S3 is fully replicated or sharded by an S3 key. Defaults to FullyReplicated

" + }, + "FeaturesAttribute":{ + "shape":"String", + "documentation":"

The attributes of the input data that are the input features.

" + }, + "InferenceAttribute":{ + "shape":"String", + "documentation":"

The attribute of the input data that represents the ground truth label.

" + }, + "ProbabilityAttribute":{ + "shape":"String", + "documentation":"

In a classification problem, the attribute that represents the class probability.

" + }, + "ProbabilityThresholdAttribute":{ + "shape":"ProbabilityThresholdAttribute", + "documentation":"

The threshold for the class probability to be evaluated as a positive result.

" + }, + "StartTimeOffset":{ + "shape":"MonitoringTimeOffsetString", + "documentation":"

If specified, monitoring jobs substract this time from the start time. For information about using offsets for scheduling monitoring jobs, see Schedule Model Quality Monitoring Jobs.

" + }, + "EndTimeOffset":{ + "shape":"MonitoringTimeOffsetString", + "documentation":"

If specified, monitoring jobs substract this time from the end time. For information about using offsets for scheduling monitoring jobs, see Schedule Model Quality Monitoring Jobs.

" + } + }, + "documentation":"

Input object for the batch transform job.

" + }, "Bias":{ "type":"structure", "members":{ @@ -4603,8 +5315,14 @@ "shape":"MetricsSource", "documentation":"

The bias report for a model

" }, - "PreTrainingReport":{"shape":"MetricsSource"}, - "PostTrainingReport":{"shape":"MetricsSource"} + "PreTrainingReport":{ + "shape":"MetricsSource", + "documentation":"

The pre-training bias report for a model.

" + }, + "PostTrainingReport":{ + "shape":"MetricsSource", + "documentation":"

The post-training bias report for a model.

" + } }, "documentation":"

Contains bias metrics for a model.

" }, @@ -4768,6 +5486,16 @@ "type":"list", "member":{"shape":"AutoMLCandidateStep"} }, + "CanvasAppSettings":{ + "type":"structure", + "members":{ + "TimeSeriesForecastingSettings":{ + "shape":"TimeSeriesForecastingSettings", + "documentation":"

Time series forecast settings for the Canvas app.

" + } + }, + "documentation":"

The SageMaker Canvas app settings.

" + }, "CapacitySize":{ "type":"structure", "required":[ @@ -4904,7 +5632,7 @@ "CategoricalParameterRanges":{ "type":"list", "member":{"shape":"CategoricalParameterRange"}, - "max":20, + "max":30, "min":0 }, "CategoricalParameters":{ @@ -5067,6 +5795,307 @@ }, "documentation":"

The container for the metadata for the ClarifyCheck step. For more information, see the topic on ClarifyCheck step in the Amazon SageMaker Developer Guide.

" }, + "ClarifyContentTemplate":{ + "type":"string", + "max":64, + "min":1, + "pattern":".*" + }, + "ClarifyEnableExplanations":{ + "type":"string", + "max":64, + "min":1, + "pattern":".*" + }, + "ClarifyExplainerConfig":{ + "type":"structure", + "required":["ShapConfig"], + "members":{ + "EnableExplanations":{ + "shape":"ClarifyEnableExplanations", + "documentation":"

A JMESPath boolean expression used to filter which records to explain. Explanations are activated by default. See EnableExplanations for additional information.

" + }, + "InferenceConfig":{ + "shape":"ClarifyInferenceConfig", + "documentation":"

The inference configuration parameter for the model container.

" + }, + "ShapConfig":{ + "shape":"ClarifyShapConfig", + "documentation":"

The configuration for SHAP analysis.

" + } + }, + "documentation":"

The configuration parameters for the SageMaker Clarify explainer.

" + }, + "ClarifyFeatureHeaders":{ + "type":"list", + "member":{"shape":"ClarifyHeader"}, + "max":256, + "min":1 + }, + "ClarifyFeatureType":{ + "type":"string", + "enum":[ + "numerical", + "categorical", + "text" + ] + }, + "ClarifyFeatureTypes":{ + "type":"list", + "member":{"shape":"ClarifyFeatureType"}, + "max":256, + "min":1 + }, + "ClarifyFeaturesAttribute":{ + "type":"string", + "max":64, + "min":1, + "pattern":".*" + }, + "ClarifyHeader":{ + "type":"string", + "max":64, + "min":1, + "pattern":".*" + }, + "ClarifyInferenceConfig":{ + "type":"structure", + "members":{ + "FeaturesAttribute":{ + "shape":"ClarifyFeaturesAttribute", + "documentation":"

Provides the JMESPath expression to extract the features from a model container input in JSON Lines format. For example, if FeaturesAttribute is the JMESPath expression 'myfeatures', it extracts a list of features [1,2,3] from request data '{\"myfeatures\":[1,2,3]}'.

" + }, + "ContentTemplate":{ + "shape":"ClarifyContentTemplate", + "documentation":"

A template string used to format a JSON record into an acceptable model container input. For example, a ContentTemplate string '{\"myfeatures\":$features}' will format a list of features [1,2,3] into the record string '{\"myfeatures\":[1,2,3]}'. Required only when the model container input is in JSON Lines format.

" + }, + "MaxRecordCount":{ + "shape":"ClarifyMaxRecordCount", + "documentation":"

The maximum number of records in a request that the model container can process when querying the model container for the predictions of a synthetic dataset. A record is a unit of input data that inference can be made on, for example, a single line in CSV data. If MaxRecordCount is 1, the model container expects one record per request. A value of 2 or greater means that the model expects batch requests, which can reduce overhead and speed up the inferencing process. If this parameter is not provided, the explainer will tune the record count per request according to the model container's capacity at runtime.

" + }, + "MaxPayloadInMB":{ + "shape":"ClarifyMaxPayloadInMB", + "documentation":"

The maximum payload size (MB) allowed of a request from the explainer to the model container. Defaults to 6 MB.

" + }, + "ProbabilityIndex":{ + "shape":"ClarifyProbabilityIndex", + "documentation":"

A zero-based index used to extract a probability value (score) or list from model container output in CSV format. If this value is not provided, the entire model container output will be treated as a probability value (score) or list.

Example for a single class model: If the model container output consists of a string-formatted prediction label followed by its probability: '1,0.6', set ProbabilityIndex to 1 to select the probability value 0.6.

Example for a multiclass model: If the model container output consists of a string-formatted prediction label followed by its probability: '\"[\\'cat\\',\\'dog\\',\\'fish\\']\",\"[0.1,0.6,0.3]\"', set ProbabilityIndex to 1 to select the probability values [0.1,0.6,0.3].

" + }, + "LabelIndex":{ + "shape":"ClarifyLabelIndex", + "documentation":"

A zero-based index used to extract a label header or list of label headers from model container output in CSV format.

Example for a multiclass model: If the model container output consists of label headers followed by probabilities: '\"[\\'cat\\',\\'dog\\',\\'fish\\']\",\"[0.1,0.6,0.3]\"', set LabelIndex to 0 to select the label headers ['cat','dog','fish'].

" + }, + "ProbabilityAttribute":{ + "shape":"ClarifyProbabilityAttribute", + "documentation":"

A JMESPath expression used to extract the probability (or score) from the model container output if the model container is in JSON Lines format.

Example: If the model container output of a single request is '{\"predicted_label\":1,\"probability\":0.6}', then set ProbabilityAttribute to 'probability'.

" + }, + "LabelAttribute":{ + "shape":"ClarifyLabelAttribute", + "documentation":"

A JMESPath expression used to locate the list of label headers in the model container output.

Example: If the model container output of a batch request is '{\"labels\":[\"cat\",\"dog\",\"fish\"],\"probability\":[0.6,0.3,0.1]}', then set LabelAttribute to 'labels' to extract the list of label headers [\"cat\",\"dog\",\"fish\"]

" + }, + "LabelHeaders":{ + "shape":"ClarifyLabelHeaders", + "documentation":"

For multiclass classification problems, the label headers are the names of the classes. Otherwise, the label header is the name of the predicted label. These are used to help readability for the output of the InvokeEndpoint API. See the response section under Invoke the endpoint in the Developer Guide for more information. If there are no label headers in the model container output, provide them manually using this parameter.

" + }, + "FeatureHeaders":{ + "shape":"ClarifyFeatureHeaders", + "documentation":"

The names of the features. If provided, these are included in the endpoint response payload to help readability of the InvokeEndpoint output. See the Response section under Invoke the endpoint in the Developer Guide for more information.

" + }, + "FeatureTypes":{ + "shape":"ClarifyFeatureTypes", + "documentation":"

A list of data types of the features (optional). Applicable only to NLP explainability. If provided, FeatureTypes must have at least one 'text' string (for example, ['text']). If FeatureTypes is not provided, the explainer infers the feature types based on the baseline data. The feature types are included in the endpoint response payload. For additional information see the response section under Invoke the endpoint in the Developer Guide for more information.

" + } + }, + "documentation":"

The inference configuration parameter for the model container.

" + }, + "ClarifyLabelAttribute":{ + "type":"string", + "max":64, + "min":1, + "pattern":".*" + }, + "ClarifyLabelHeaders":{ + "type":"list", + "member":{"shape":"ClarifyHeader"}, + "max":16, + "min":1 + }, + "ClarifyLabelIndex":{ + "type":"integer", + "min":0 + }, + "ClarifyMaxPayloadInMB":{ + "type":"integer", + "max":25, + "min":1 + }, + "ClarifyMaxRecordCount":{ + "type":"integer", + "min":1 + }, + "ClarifyMimeType":{ + "type":"string", + "max":255, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9])*\\/[a-zA-Z0-9](-*[a-zA-Z0-9+.])*" + }, + "ClarifyProbabilityAttribute":{ + "type":"string", + "max":64, + "min":1, + "pattern":".*" + }, + "ClarifyProbabilityIndex":{ + "type":"integer", + "min":0 + }, + "ClarifyShapBaseline":{ + "type":"string", + "max":4096, + "min":1, + "pattern":"[\\s\\S]+" + }, + "ClarifyShapBaselineConfig":{ + "type":"structure", + "members":{ + "MimeType":{ + "shape":"ClarifyMimeType", + "documentation":"

The MIME type of the baseline data. Choose from 'text/csv' or 'application/jsonlines'. Defaults to 'text/csv'.

" + }, + "ShapBaseline":{ + "shape":"ClarifyShapBaseline", + "documentation":"

The inline SHAP baseline data in string format. ShapBaseline can have one or multiple records to be used as the baseline dataset. The format of the SHAP baseline file should be the same format as the training dataset. For example, if the training dataset is in CSV format and each record contains four features, and all features are numerical, then the format of the baseline data should also share these characteristics. For natural language processing (NLP) of text columns, the baseline value should be the value used to replace the unit of text specified by the Granularity of the TextConfig parameter. The size limit for ShapBasline is 4 KB. Use the ShapBaselineUri parameter if you want to provide more than 4 KB of baseline data.

" + }, + "ShapBaselineUri":{ + "shape":"Url", + "documentation":"

The uniform resource identifier (URI) of the S3 bucket where the SHAP baseline file is stored. The format of the SHAP baseline file should be the same format as the format of the training dataset. For example, if the training dataset is in CSV format, and each record in the training dataset has four features, and all features are numerical, then the baseline file should also have this same format. Each record should contain only the features. If you are using a virtual private cloud (VPC), the ShapBaselineUri should be accessible to the VPC. For more information about setting up endpoints with Amazon Virtual Private Cloud, see Give SageMaker access to Resources in your Amazon Virtual Private Cloud.

" + } + }, + "documentation":"

The configuration for the SHAP baseline (also called the background or reference dataset) of the Kernal SHAP algorithm.

  • The number of records in the baseline data determines the size of the synthetic dataset, which has an impact on latency of explainability requests. For more information, see the Synthetic data of Configure and create an endpoint.

  • ShapBaseline and ShapBaselineUri are mutually exclusive parameters. One or the either is required to configure a SHAP baseline.

" + }, + "ClarifyShapConfig":{ + "type":"structure", + "required":["ShapBaselineConfig"], + "members":{ + "ShapBaselineConfig":{ + "shape":"ClarifyShapBaselineConfig", + "documentation":"

The configuration for the SHAP baseline of the Kernal SHAP algorithm.

" + }, + "NumberOfSamples":{ + "shape":"ClarifyShapNumberOfSamples", + "documentation":"

The number of samples to be used for analysis by the Kernal SHAP algorithm.

The number of samples determines the size of the synthetic dataset, which has an impact on latency of explainability requests. For more information, see the Synthetic data of Configure and create an endpoint.

" + }, + "UseLogit":{ + "shape":"ClarifyShapUseLogit", + "documentation":"

A Boolean toggle to indicate if you want to use the logit function (true) or log-odds units (false) for model predictions. Defaults to false.

" + }, + "Seed":{ + "shape":"ClarifyShapSeed", + "documentation":"

The starting value used to initialize the random number generator in the explainer. Provide a value for this parameter to obtain a deterministic SHAP result.

" + }, + "TextConfig":{ + "shape":"ClarifyTextConfig", + "documentation":"

A parameter that indicates if text features are treated as text and explanations are provided for individual units of text. Required for natural language processing (NLP) explainability only.

" + } + }, + "documentation":"

The configuration for SHAP analysis using SageMaker Clarify Explainer.

" + }, + "ClarifyShapNumberOfSamples":{ + "type":"integer", + "min":1 + }, + "ClarifyShapSeed":{"type":"integer"}, + "ClarifyShapUseLogit":{"type":"boolean"}, + "ClarifyTextConfig":{ + "type":"structure", + "required":[ + "Language", + "Granularity" + ], + "members":{ + "Language":{ + "shape":"ClarifyTextLanguage", + "documentation":"

Specifies the language of the text features in ISO 639-1 or ISO 639-3 code of a supported language.

For a mix of multiple languages, use code 'xx'.

" + }, + "Granularity":{ + "shape":"ClarifyTextGranularity", + "documentation":"

The unit of granularity for the analysis of text features. For example, if the unit is 'token', then each token (like a word in English) of the text is treated as a feature. SHAP values are computed for each unit/feature.

" + } + }, + "documentation":"

A parameter used to configure the SageMaker Clarify explainer to treat text features as text so that explanations are provided for individual units of text. Required only for natural language processing (NLP) explainability.

" + }, + "ClarifyTextGranularity":{ + "type":"string", + "enum":[ + "token", + "sentence", + "paragraph" + ] + }, + "ClarifyTextLanguage":{ + "type":"string", + "enum":[ + "af", + "sq", + "ar", + "hy", + "eu", + "bn", + "bg", + "ca", + "zh", + "hr", + "cs", + "da", + "nl", + "en", + "et", + "fi", + "fr", + "de", + "el", + "gu", + "he", + "hi", + "hu", + "is", + "id", + "ga", + "it", + "kn", + "ky", + "lv", + "lt", + "lb", + "mk", + "ml", + "mr", + "ne", + "nb", + "fa", + "pl", + "pt", + "ro", + "ru", + "sa", + "sr", + "tn", + "si", + "sk", + "sl", + "es", + "sv", + "tl", + "ta", + "tt", + "te", + "tr", + "uk", + "ur", + "yo", + "lij", + "xx" + ] + }, "ClientId":{ "type":"string", "max":1024, @@ -5086,6 +6115,22 @@ "min":1, "pattern":"^[a-zA-Z0-9-]+$" }, + "CodeRepositories":{ + "type":"list", + "member":{"shape":"CodeRepository"}, + "max":10 + }, + "CodeRepository":{ + "type":"structure", + "required":["RepositoryUrl"], + "members":{ + "RepositoryUrl":{ + "shape":"RepositoryUrl", + "documentation":"

The URL of the Git repository.

" + } + }, + "documentation":"

A Git repository that SageMaker automatically displays to users for cloning in the JupyterServer application.

" + }, "CodeRepositoryArn":{ "type":"string", "max":2048, @@ -5224,7 +6269,7 @@ "documentation":"

Parameter values for the tensor collection. The allowed parameters are \"name\", \"include_regex\", \"reduction_config\", \"save_config\", \"tensor_names\", and \"save_histogram\".

" } }, - "documentation":"

Configuration information for the Debugger output tensor collections.

" + "documentation":"

Configuration information for the Amazon SageMaker Debugger output tensor collections.

" }, "CollectionConfigurations":{ "type":"list", @@ -5592,7 +6637,7 @@ "ContinuousParameterRanges":{ "type":"list", "member":{"shape":"ContinuousParameterRange"}, - "max":20, + "max":30, "min":0 }, "CreateActionRequest":{ @@ -5704,7 +6749,7 @@ }, "KernelGatewayImageConfig":{ "shape":"KernelGatewayImageConfig", - "documentation":"

The KernelGatewayImageConfig.

" + "documentation":"

The KernelGatewayImageConfig. You can only specify one image kernel in the AppImageConfig API. This kernel will be shown to users before the image starts. Once the image runs, all kernels are visible in JupyterLab.

" } } }, @@ -5721,7 +6766,6 @@ "type":"structure", "required":[ "DomainId", - "UserProfileName", "AppType", "AppName" ], @@ -5736,7 +6780,7 @@ }, "AppType":{ "shape":"AppType", - "documentation":"

The type of app. Supported apps are JupyterServer and KernelGateway. TensorBoard is not supported.

" + "documentation":"

The type of app.

" }, "AppName":{ "shape":"AppName", @@ -5748,7 +6792,11 @@ }, "ResourceSpec":{ "shape":"ResourceSpec", - "documentation":"

The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.

" + "documentation":"

The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.

The value of InstanceType passed as part of the ResourceSpec in the CreateApp call overrides the value passed as part of the ResourceSpec configured for the user profile or the domain. If InstanceType is not specified in any of those three ResourceSpec values for a KernelGateway app, the CreateApp call fails with a request validation error.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" } } }, @@ -6130,6 +7178,10 @@ "DomainSettings":{ "shape":"DomainSettings", "documentation":"

A collection of Domain settings.

" + }, + "DefaultSpaceSettings":{ + "shape":"DefaultSpaceSettings", + "documentation":"

The default settings used to create a space.

" } } }, @@ -6146,6 +7198,63 @@ } } }, + "CreateEdgeDeploymentPlanRequest":{ + "type":"structure", + "required":[ + "EdgeDeploymentPlanName", + "ModelConfigs", + "DeviceFleetName" + ], + "members":{ + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan.

" + }, + "ModelConfigs":{ + "shape":"EdgeDeploymentModelConfigs", + "documentation":"

List of models associated with the edge deployment plan.

" + }, + "DeviceFleetName":{ + "shape":"EntityName", + "documentation":"

The device fleet used for this edge deployment plan.

" + }, + "Stages":{ + "shape":"DeploymentStages", + "documentation":"

List of stages of the edge deployment plan. The number of stages is limited to 10 per deployment.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

List of tags with which to tag the edge deployment plan.

" + } + } + }, + "CreateEdgeDeploymentPlanResponse":{ + "type":"structure", + "required":["EdgeDeploymentPlanArn"], + "members":{ + "EdgeDeploymentPlanArn":{ + "shape":"EdgeDeploymentPlanArn", + "documentation":"

The ARN of the edge deployment plan.

" + } + } + }, + "CreateEdgeDeploymentStageRequest":{ + "type":"structure", + "required":[ + "EdgeDeploymentPlanName", + "Stages" + ], + "members":{ + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan.

" + }, + "Stages":{ + "shape":"DeploymentStages", + "documentation":"

List of stages to be added to the edge deployment plan.

" + } + } + }, "CreateEdgePackagingJobRequest":{ "type":"structure", "required":[ @@ -6218,6 +7327,14 @@ "AsyncInferenceConfig":{ "shape":"AsyncInferenceConfig", "documentation":"

Specifies configuration for how an endpoint performs asynchronous inference. This is a required field in order for your Endpoint to be invoked using InvokeEndpointAsync.

" + }, + "ExplainerConfig":{ + "shape":"ExplainerConfig", + "documentation":"

A member of CreateEndpointConfig that enables explainers.

" + }, + "ShadowProductionVariants":{ + "shape":"ProductionVariantList", + "documentation":"

Array of ProductionVariant objects. There is one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on ProductionVariants.If you use this field, you can only specify one variant for ProductionVariants and one variant for ShadowProductionVariants.

" } } }, @@ -6400,6 +7517,49 @@ } } }, + "CreateHubRequest":{ + "type":"structure", + "required":[ + "HubName", + "HubDescription" + ], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub to create.

" + }, + "HubDescription":{ + "shape":"HubDescription", + "documentation":"

A description of the hub.

" + }, + "HubDisplayName":{ + "shape":"HubDisplayName", + "documentation":"

The display name of the hub.

" + }, + "HubSearchKeywords":{ + "shape":"HubSearchKeywordList", + "documentation":"

The searchable keywords for the hub.

" + }, + "S3StorageConfig":{ + "shape":"HubS3StorageConfig", + "documentation":"

The Amazon S3 storage configuration for the hub.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Any tags to associate with the hub.

" + } + } + }, + "CreateHubResponse":{ + "type":"structure", + "required":["HubArn"], + "members":{ + "HubArn":{ + "shape":"HubArn", + "documentation":"

The Amazon Resource Name (ARN) of the hub.

" + } + } + }, "CreateHumanTaskUiRequest":{ "type":"structure", "required":[ @@ -6541,6 +7701,73 @@ } } }, + "CreateInferenceExperimentRequest":{ + "type":"structure", + "required":[ + "Name", + "Type", + "RoleArn", + "EndpointName", + "ModelVariants", + "ShadowModeConfig" + ], + "members":{ + "Name":{ + "shape":"InferenceExperimentName", + "documentation":"

The name for the inference experiment.

" + }, + "Type":{ + "shape":"InferenceExperimentType", + "documentation":"

The type of the inference experiment that you want to run. The following types of experiments are possible:

  • ShadowMode: You can use this type to validate a shadow variant. For more information, see Shadow tests.

" + }, + "Schedule":{ + "shape":"InferenceExperimentSchedule", + "documentation":"

The duration for which you want the inference experiment to run. If you don't specify this field, the experiment automatically concludes after 7 days.

" + }, + "Description":{ + "shape":"InferenceExperimentDescription", + "documentation":"

A description for the inference experiment.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The ARN of the IAM role that Amazon SageMaker can assume to access model artifacts and container images.

" + }, + "EndpointName":{ + "shape":"EndpointName", + "documentation":"

The name of the Amazon SageMaker endpoint on which you want to run the inference experiment.

" + }, + "ModelVariants":{ + "shape":"ModelVariantConfigList", + "documentation":"

Array of ModelVariantConfigSummary objects. There is one for each variant in the inference experiment. Each ModelVariantConfigSummary object in the array describes the infrastructure configuration for the corresponding variant.

" + }, + "DataStorageConfig":{ + "shape":"InferenceExperimentDataStorageConfig", + "documentation":"

The storage configuration for the inference experiment. This is an optional parameter that you can use for data capture. For more information, see Capture data.

" + }, + "ShadowModeConfig":{ + "shape":"ShadowModeConfig", + "documentation":"

Shows which variant is the production variant and which variant is the shadow variant. For the shadow variant, also shows the sampling percentage.

" + }, + "KmsKey":{ + "shape":"KmsKeyId", + "documentation":"

The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint. The KmsKey can be any of the following formats:

  • KMS key ID

    \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS key

    \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

  • KMS key Alias

    \"alias/ExampleAlias\"

  • Amazon Resource Name (ARN) of a KMS key Alias

    \"arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias\"

If you use a KMS key ID or an alias of your KMS key, the Amazon SageMaker execution role must include permissions to call kms:Encrypt. If you don't provide a KMS key ID, Amazon SageMaker uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker uses server-side encryption with KMS managed keys for OutputDataConfig. If you use a bucket policy with an s3:PutObject permission that only allows objects with server-side encryption, set the condition key of s3:x-amz-server-side-encryption to \"aws:kms\". For more information, see KMS managed Encryption Keys in the Amazon Simple Storage Service Developer Guide.

The KMS key policy must grant permission to the IAM role that you specify in your CreateEndpoint and UpdateEndpoint requests. For more information, see Using Key Policies in Amazon Web Services KMS in the Amazon Web Services Key Management Service Developer Guide.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see Tagging your Amazon Web Services Resources.

" + } + } + }, + "CreateInferenceExperimentResponse":{ + "type":"structure", + "required":["InferenceExperimentArn"], + "members":{ + "InferenceExperimentArn":{ + "shape":"InferenceExperimentArn", + "documentation":"

The ARN for your inference experiment.

" + } + } + }, "CreateInferenceRecommendationsJobRequest":{ "type":"structure", "required":[ @@ -6711,6 +7938,82 @@ } } }, + "CreateModelCardExportJobRequest":{ + "type":"structure", + "required":[ + "ModelCardName", + "ModelCardExportJobName", + "OutputConfig" + ], + "members":{ + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of the model card to export.

" + }, + "ModelCardVersion":{ + "shape":"Integer", + "documentation":"

The version of the model card to export. If a version is not provided, then the latest version of the model card is exported.

" + }, + "ModelCardExportJobName":{ + "shape":"EntityName", + "documentation":"

The name of the model card export job.

" + }, + "OutputConfig":{ + "shape":"ModelCardExportOutputConfig", + "documentation":"

The model card output configuration that specifies the Amazon S3 path for exporting.

" + } + } + }, + "CreateModelCardExportJobResponse":{ + "type":"structure", + "required":["ModelCardExportJobArn"], + "members":{ + "ModelCardExportJobArn":{ + "shape":"ModelCardExportJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the model card export job.

" + } + } + }, + "CreateModelCardRequest":{ + "type":"structure", + "required":[ + "ModelCardName", + "Content", + "ModelCardStatus" + ], + "members":{ + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The unique name of the model card.

" + }, + "SecurityConfig":{ + "shape":"ModelCardSecurityConfig", + "documentation":"

An optional Key Management Service key to encrypt, decrypt, and re-encrypt model card content for regulated workloads with highly sensitive data.

" + }, + "Content":{ + "shape":"ModelCardContent", + "documentation":"

The content of the model card. Content must be in model card JSON schema and provided as a string.

" + }, + "ModelCardStatus":{ + "shape":"ModelCardStatus", + "documentation":"

The approval status of the model card within your organization. Different organizations might have different criteria for model card review and approval.

  • Draft: The model card is a work in progress.

  • PendingReview: The model card is pending review.

  • Approved: The model card is approved.

  • Archived: The model card is archived. No more updates should be made to the model card, but it can still be exported.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Key-value pairs used to manage metadata for model cards.

" + } + } + }, + "CreateModelCardResponse":{ + "type":"structure", + "required":["ModelCardArn"], + "members":{ + "ModelCardArn":{ + "shape":"ModelCardArn", + "documentation":"

The Amazon Resource Name (ARN) of the successfully created model card.

" + } + } + }, "CreateModelExplainabilityJobDefinitionRequest":{ "type":"structure", "required":[ @@ -7081,6 +8384,10 @@ "PlatformIdentifier":{ "shape":"PlatformIdentifier", "documentation":"

The platform identifier of the notebook instance runtime environment.

" + }, + "InstanceMetadataServiceConfiguration":{ + "shape":"InstanceMetadataServiceConfiguration", + "documentation":"

Information on the IMDS configuration of the notebook instance

" } } }, @@ -7198,6 +8505,10 @@ "ExpiresInSeconds":{ "shape":"ExpiresInSeconds", "documentation":"

The number of seconds until the pre-signed URL expires. This value defaults to 300.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" } } }, @@ -7337,6 +8648,40 @@ } } }, + "CreateSpaceRequest":{ + "type":"structure", + "required":[ + "DomainId", + "SpaceName" + ], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

The ID of the associated Domain.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Tags to associated with the space. Each tag consists of a key and an optional value. Tag keys must be unique for each resource. Tags are searchable using the Search API.

" + }, + "SpaceSettings":{ + "shape":"SpaceSettings", + "documentation":"

A collection of space settings.

" + } + } + }, + "CreateSpaceResponse":{ + "type":"structure", + "members":{ + "SpaceArn":{ + "shape":"SpaceArn", + "documentation":"

The space's Amazon Resource Name (ARN).

" + } + } + }, "CreateStudioLifecycleConfigRequest":{ "type":"structure", "required":[ @@ -7389,7 +8734,7 @@ }, "HyperParameters":{ "shape":"HyperParameters", - "documentation":"

Algorithm-specific parameters that influence the quality of the model. You set hyperparameters before you start the learning process. For a list of hyperparameters for each training algorithm provided by SageMaker, see Algorithms.

You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and value is limited to 256 characters, as specified by the Length Constraint.

" + "documentation":"

Algorithm-specific parameters that influence the quality of the model. You set hyperparameters before you start the learning process. For a list of hyperparameters for each training algorithm provided by SageMaker, see Algorithms.

You can specify a maximum of 100 hyperparameters. Each hyperparameter is a key-value pair. Each key and value is limited to 256 characters, as specified by the Length Constraint.

Do not include any security-sensitive information including account access IDs, secrets or tokens in any hyperparameter field. If the use of security-sensitive credentials are detected, SageMaker will reject your training job request and return an exception error.

" }, "AlgorithmSpecification":{ "shape":"AlgorithmSpecification", @@ -7442,14 +8787,14 @@ "DebugHookConfig":{"shape":"DebugHookConfig"}, "DebugRuleConfigurations":{ "shape":"DebugRuleConfigurations", - "documentation":"

Configuration information for Debugger rules for debugging output tensors.

" + "documentation":"

Configuration information for Amazon SageMaker Debugger rules for debugging output tensors.

" }, "TensorBoardOutputConfig":{"shape":"TensorBoardOutputConfig"}, "ExperimentConfig":{"shape":"ExperimentConfig"}, "ProfilerConfig":{"shape":"ProfilerConfig"}, "ProfilerRuleConfigurations":{ "shape":"ProfilerRuleConfigurations", - "documentation":"

Configuration information for Debugger rules for profiling system and framework metrics.

" + "documentation":"

Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics.

" }, "Environment":{ "shape":"TrainingEnvironmentMap", @@ -7517,6 +8862,10 @@ "shape":"TransformOutput", "documentation":"

Describes the results of the transform job.

" }, + "DataCaptureConfig":{ + "shape":"BatchDataCaptureConfig", + "documentation":"

Configuration to control how SageMaker captures inference data.

" + }, "TransformResources":{ "shape":"TransformResources", "documentation":"

Describes the resources, including ML instance types and ML instance count, to use for the transform job.

" @@ -7646,11 +8995,11 @@ }, "SingleSignOnUserIdentifier":{ "shape":"SingleSignOnUserIdentifier", - "documentation":"

A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is \"UserName\". If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified.

" + "documentation":"

A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is \"UserName\". If the Domain's AuthMode is IAM Identity Center, this field is required. If the Domain's AuthMode is not IAM Identity Center, this field cannot be specified.

" }, "SingleSignOnUserValue":{ "shape":"String256", - "documentation":"

The username of the associated Amazon Web Services Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified.

" + "documentation":"

The username of the associated Amazon Web Services Single Sign-On User for this UserProfile. If the Domain's AuthMode is IAM Identity Center, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not IAM Identity Center, this field cannot be specified.

" }, "Tags":{ "shape":"TagList", @@ -7691,6 +9040,10 @@ "Tags":{ "shape":"TagList", "documentation":"

An array of key-value pairs that contain metadata to help you categorize and organize our workforce. Each tag consists of a key and a value, both of which you define.

" + }, + "WorkforceVpcConfig":{ + "shape":"WorkforceVpcConfigRequest", + "documentation":"

Use this parameter to configure a workforce using VPC.

" } } }, @@ -7982,9 +9335,12 @@ }, "DataQualityJobInput":{ "type":"structure", - "required":["EndpointInput"], "members":{ - "EndpointInput":{"shape":"EndpointInput"} + "EndpointInput":{"shape":"EndpointInput"}, + "BatchTransformInput":{ + "shape":"BatchTransformInput", + "documentation":"

Input object for the batch transform job.

" + } }, "documentation":"

The input for the data quality monitoring job. Currently endpoints are supported for input.

" }, @@ -8042,14 +9398,14 @@ }, "HookParameters":{ "shape":"HookParameters", - "documentation":"

Configuration information for the Debugger hook parameters.

" + "documentation":"

Configuration information for the Amazon SageMaker Debugger hook parameters.

" }, "CollectionConfigurations":{ "shape":"CollectionConfigurations", - "documentation":"

Configuration information for Debugger tensor collections. To learn more about how to configure the CollectionConfiguration parameter, see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

" + "documentation":"

Configuration information for Amazon SageMaker Debugger tensor collections. To learn more about how to configure the CollectionConfiguration parameter, see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

" } }, - "documentation":"

Configuration information for the Debugger hook parameters, metric and tensor collections, and storage paths. To learn more about how to configure the DebugHookConfig parameter, see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

" + "documentation":"

Configuration information for the Amazon SageMaker Debugger hook parameters, metric and tensor collections, and storage paths. To learn more about how to configure the DebugHookConfig parameter, see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

" }, "DebugRuleConfiguration":{ "type":"structure", @@ -8076,7 +9432,7 @@ }, "InstanceType":{ "shape":"ProcessingInstanceType", - "documentation":"

The instance type to deploy a Debugger custom rule for debugging a training job.

" + "documentation":"

The instance type to deploy a custom rule for debugging a training job.

" }, "VolumeSizeInGB":{ "shape":"OptionalVolumeSizeInGB", @@ -8132,6 +9488,22 @@ "max":65535, "min":0 }, + "DefaultSpaceSettings":{ + "type":"structure", + "members":{ + "ExecutionRole":{ + "shape":"RoleArn", + "documentation":"

The execution role for the space.

" + }, + "SecurityGroups":{ + "shape":"SecurityGroupIds", + "documentation":"

The security groups for the Amazon Virtual Private Cloud that the space uses for communication.

" + }, + "JupyterServerAppSettings":{"shape":"JupyterServerAppSettings"}, + "KernelGatewayAppSettings":{"shape":"KernelGatewayAppSettings"} + }, + "documentation":"

A collection of settings that apply to spaces created in the Domain.

" + }, "DefaultUid":{ "type":"integer", "max":65535, @@ -8180,7 +9552,6 @@ "type":"structure", "required":[ "DomainId", - "UserProfileName", "AppType", "AppName" ], @@ -8200,6 +9571,10 @@ "AppName":{ "shape":"AppName", "documentation":"

The name of the app.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" } } }, @@ -8318,6 +9693,33 @@ } } }, + "DeleteEdgeDeploymentPlanRequest":{ + "type":"structure", + "required":["EdgeDeploymentPlanName"], + "members":{ + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan to delete.

" + } + } + }, + "DeleteEdgeDeploymentStageRequest":{ + "type":"structure", + "required":[ + "EdgeDeploymentPlanName", + "StageName" + ], + "members":{ + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan from which the stage will be deleted.

" + }, + "StageName":{ + "shape":"EntityName", + "documentation":"

The name of the stage.

" + } + } + }, "DeleteEndpointConfigInput":{ "type":"structure", "required":["EndpointConfigName"], @@ -8382,6 +9784,43 @@ "members":{ } }, + "DeleteHubContentRequest":{ + "type":"structure", + "required":[ + "HubName", + "HubContentType", + "HubContentName", + "HubContentVersion" + ], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub that you want to delete content in.

" + }, + "HubContentType":{ + "shape":"HubContentType", + "documentation":"

The type of content that you want to delete from a hub.

" + }, + "HubContentName":{ + "shape":"HubContentName", + "documentation":"

The name of the content that you want to delete from a hub.

" + }, + "HubContentVersion":{ + "shape":"HubContentVersion", + "documentation":"

The version of the content that you want to delete from a hub.

" + } + } + }, + "DeleteHubRequest":{ + "type":"structure", + "required":["HubName"], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub to delete.

" + } + } + }, "DeleteHumanTaskUiRequest":{ "type":"structure", "required":["HumanTaskUiName"], @@ -8434,6 +9873,26 @@ "members":{ } }, + "DeleteInferenceExperimentRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"InferenceExperimentName", + "documentation":"

The name of the inference experiment you want to delete.

" + } + } + }, + "DeleteInferenceExperimentResponse":{ + "type":"structure", + "required":["InferenceExperimentArn"], + "members":{ + "InferenceExperimentArn":{ + "shape":"InferenceExperimentArn", + "documentation":"

The ARN of the deleted inference experiment.

" + } + } + }, "DeleteModelBiasJobDefinitionRequest":{ "type":"structure", "required":["JobDefinitionName"], @@ -8444,6 +9903,16 @@ } } }, + "DeleteModelCardRequest":{ + "type":"structure", + "required":["ModelCardName"], + "members":{ + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of the model card to delete.

" + } + } + }, "DeleteModelExplainabilityJobDefinitionRequest":{ "type":"structure", "required":["JobDefinitionName"], @@ -8571,6 +10040,23 @@ } } }, + "DeleteSpaceRequest":{ + "type":"structure", + "required":[ + "DomainId", + "SpaceName" + ], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

The ID of the associated Domain.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" + } + } + }, "DeleteStudioLifecycleConfigRequest":{ "type":"structure", "required":["StudioLifecycleConfigName"], @@ -8693,6 +10179,16 @@ } } }, + "DependencyCopyPath":{ + "type":"string", + "max":1023, + "pattern":".*" + }, + "DependencyOriginPath":{ + "type":"string", + "max":1023, + "pattern":".*" + }, "DeployedImage":{ "type":"structure", "members":{ @@ -8730,6 +10226,68 @@ }, "documentation":"

The deployment configuration for an endpoint, which contains the desired deployment strategy and rollback configurations.

" }, + "DeploymentStage":{ + "type":"structure", + "required":[ + "StageName", + "DeviceSelectionConfig" + ], + "members":{ + "StageName":{ + "shape":"EntityName", + "documentation":"

The name of the stage.

" + }, + "DeviceSelectionConfig":{ + "shape":"DeviceSelectionConfig", + "documentation":"

Configuration of the devices in the stage.

" + }, + "DeploymentConfig":{ + "shape":"EdgeDeploymentConfig", + "documentation":"

Configuration of the deployment details.

" + } + }, + "documentation":"

Contains information about a stage in an edge deployment plan.

" + }, + "DeploymentStageMaxResults":{ + "type":"integer", + "max":10 + }, + "DeploymentStageStatusSummaries":{ + "type":"list", + "member":{"shape":"DeploymentStageStatusSummary"} + }, + "DeploymentStageStatusSummary":{ + "type":"structure", + "required":[ + "StageName", + "DeviceSelectionConfig", + "DeploymentConfig", + "DeploymentStatus" + ], + "members":{ + "StageName":{ + "shape":"EntityName", + "documentation":"

The name of the stage.

" + }, + "DeviceSelectionConfig":{ + "shape":"DeviceSelectionConfig", + "documentation":"

Configuration of the devices in the stage.

" + }, + "DeploymentConfig":{ + "shape":"EdgeDeploymentConfig", + "documentation":"

Configuration of the deployment details.

" + }, + "DeploymentStatus":{ + "shape":"EdgeDeploymentStatus", + "documentation":"

General status of the current state.

" + } + }, + "documentation":"

Contains information summarizing the deployment stage results.

" + }, + "DeploymentStages":{ + "type":"list", + "member":{"shape":"DeploymentStage"} + }, "DeregisterDevicesRequest":{ "type":"structure", "required":[ @@ -8911,7 +10469,6 @@ "type":"structure", "required":[ "DomainId", - "UserProfileName", "AppType", "AppName" ], @@ -8931,6 +10488,10 @@ "AppName":{ "shape":"AppName", "documentation":"

The name of the app.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" } } }, @@ -8980,6 +10541,10 @@ "ResourceSpec":{ "shape":"ResourceSpec", "documentation":"

The instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" } } }, @@ -9075,7 +10640,7 @@ }, "RoleArn":{ "shape":"RoleArn", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that has read permission to the input data location and write permission to the output data location in Amazon S3.

" }, "AutoMLJobObjective":{ "shape":"AutoMLJobObjective", @@ -9553,7 +11118,7 @@ }, "SingleSignOnManagedApplicationInstanceId":{ "shape":"String256", - "documentation":"

The SSO managed application instance ID.

" + "documentation":"

The IAM Identity Center managed application instance ID.

" }, "Status":{ "shape":"DomainStatus", @@ -9616,6 +11181,84 @@ "SecurityGroupIdForDomainBoundary":{ "shape":"SecurityGroupId", "documentation":"

The ID of the security group that authorizes traffic between the RSessionGateway apps and the RStudioServerPro app.

" + }, + "DefaultSpaceSettings":{ + "shape":"DefaultSpaceSettings", + "documentation":"

The default settings used to create a space.

" + } + } + }, + "DescribeEdgeDeploymentPlanRequest":{ + "type":"structure", + "required":["EdgeDeploymentPlanName"], + "members":{ + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the deployment plan to describe.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the edge deployment plan has enough stages to require tokening, then this is the response from the last list of stages returned.

" + }, + "MaxResults":{ + "shape":"DeploymentStageMaxResults", + "documentation":"

The maximum number of results to select (50 by default).

" + } + } + }, + "DescribeEdgeDeploymentPlanResponse":{ + "type":"structure", + "required":[ + "EdgeDeploymentPlanArn", + "EdgeDeploymentPlanName", + "ModelConfigs", + "DeviceFleetName", + "Stages" + ], + "members":{ + "EdgeDeploymentPlanArn":{ + "shape":"EdgeDeploymentPlanArn", + "documentation":"

The ARN of edge deployment plan.

" + }, + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan.

" + }, + "ModelConfigs":{ + "shape":"EdgeDeploymentModelConfigs", + "documentation":"

List of models associated with the edge deployment plan.

" + }, + "DeviceFleetName":{ + "shape":"EntityName", + "documentation":"

The device fleet used for this edge deployment plan.

" + }, + "EdgeDeploymentSuccess":{ + "shape":"Integer", + "documentation":"

The number of edge devices with the successful deployment.

" + }, + "EdgeDeploymentPending":{ + "shape":"Integer", + "documentation":"

The number of edge devices yet to pick up deployment, or in progress.

" + }, + "EdgeDeploymentFailed":{ + "shape":"Integer", + "documentation":"

The number of edge devices that failed the deployment.

" + }, + "Stages":{ + "shape":"DeploymentStageStatusSummaries", + "documentation":"

List of stages in the edge deployment plan.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

Token to use when calling the next set of stages in the edge deployment plan.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time when the edge deployment plan was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The time when the edge deployment plan was last updated.

" } } }, @@ -9742,6 +11385,14 @@ "AsyncInferenceConfig":{ "shape":"AsyncInferenceConfig", "documentation":"

Returns the description of an endpoint configuration created using the CreateEndpointConfig API.

" + }, + "ExplainerConfig":{ + "shape":"ExplainerConfig", + "documentation":"

The configuration parameters for an explainer.

" + }, + "ShadowProductionVariants":{ + "shape":"ProductionVariantList", + "documentation":"

Array of ProductionVariant objects. There is one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on ProductionVariants.If you use this field, you can only specify one variant for ProductionVariants and one variant for ShadowProductionVariants.

" } } }, @@ -9810,6 +11461,14 @@ "PendingDeploymentSummary":{ "shape":"PendingDeploymentSummary", "documentation":"

Returns the summary of an in-progress deployment. This field is only returned when the endpoint is creating or updating with a new endpoint configuration.

" + }, + "ExplainerConfig":{ + "shape":"ExplainerConfig", + "documentation":"

The configuration parameters for an explainer.

" + }, + "ShadowProductionVariants":{ + "shape":"ProductionVariantSummaryList", + "documentation":"

Array of ProductionVariant objects. There is one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on ProductionVariants.If you use this field, you can only specify one variant for ProductionVariants and one variant for ShadowProductionVariants.

" } } }, @@ -9840,7 +11499,7 @@ }, "Source":{ "shape":"ExperimentSource", - "documentation":"

The ARN of the source and, optionally, the type.

" + "documentation":"

The Amazon Resource Name (ARN) of the source and, optionally, the type.

" }, "Description":{ "shape":"ExperimentDescription", @@ -9914,6 +11573,10 @@ "shape":"CreationTime", "documentation":"

A timestamp indicating when SageMaker created the FeatureGroup.

" }, + "LastModifiedTime":{ + "shape":"LastModifiedTime", + "documentation":"

A timestamp indicating when the feature group was last updated.

" + }, "OnlineStoreConfig":{ "shape":"OnlineStoreConfig", "documentation":"

The configuration for the OnlineStore.

" @@ -9934,6 +11597,10 @@ "shape":"OfflineStoreStatus", "documentation":"

The status of the OfflineStore. Notifies you if replicating data into the OfflineStore has failed. Returns either: Active or Blocked

" }, + "LastUpdateStatus":{ + "shape":"LastUpdateStatus", + "documentation":"

A value indicating whether the update made to the feature group was successful.

" + }, "FailureReason":{ "shape":"FailureReason", "documentation":"

The reason that the FeatureGroup failed to be replicated in the OfflineStore. This is failure can occur because:

  • The FeatureGroup could not be created in the OfflineStore.

  • The FeatureGroup could not be deleted from the OfflineStore.

" @@ -9945,6 +11612,72 @@ "NextToken":{ "shape":"NextToken", "documentation":"

A token to resume pagination of the list of Features (FeatureDefinitions).

" + }, + "OnlineStoreTotalSizeBytes":{ + "shape":"OnlineStoreTotalSizeBytes", + "documentation":"

The size of the OnlineStore in bytes.

" + } + } + }, + "DescribeFeatureMetadataRequest":{ + "type":"structure", + "required":[ + "FeatureGroupName", + "FeatureName" + ], + "members":{ + "FeatureGroupName":{ + "shape":"FeatureGroupName", + "documentation":"

The name of the feature group containing the feature.

" + }, + "FeatureName":{ + "shape":"FeatureName", + "documentation":"

The name of the feature.

" + } + } + }, + "DescribeFeatureMetadataResponse":{ + "type":"structure", + "required":[ + "FeatureGroupArn", + "FeatureGroupName", + "FeatureName", + "FeatureType", + "CreationTime", + "LastModifiedTime" + ], + "members":{ + "FeatureGroupArn":{ + "shape":"FeatureGroupArn", + "documentation":"

The Amazon Resource Number (ARN) of the feature group that contains the feature.

" + }, + "FeatureGroupName":{ + "shape":"FeatureGroupName", + "documentation":"

The name of the feature group that you've specified.

" + }, + "FeatureName":{ + "shape":"FeatureName", + "documentation":"

The name of the feature that you've specified.

" + }, + "FeatureType":{ + "shape":"FeatureType", + "documentation":"

The data type of the feature.

" + }, + "CreationTime":{ + "shape":"CreationTime", + "documentation":"

A timestamp indicating when the feature was created.

" + }, + "LastModifiedTime":{ + "shape":"LastModifiedTime", + "documentation":"

A timestamp indicating when the metadata for the feature group was modified. For example, if you add a parameter describing the feature, the timestamp changes to reflect the last time you

" + }, + "Description":{ + "shape":"FeatureDescription", + "documentation":"

The description you added to describe the feature.

" + }, + "Parameters":{ + "shape":"FeatureParameters", + "documentation":"

The key-value pairs that you added to describe the feature.

" } } }, @@ -10012,6 +11745,175 @@ } } }, + "DescribeHubContentRequest":{ + "type":"structure", + "required":[ + "HubName", + "HubContentType", + "HubContentName" + ], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub that contains the content to describe.

" + }, + "HubContentType":{ + "shape":"HubContentType", + "documentation":"

The type of content in the hub.

" + }, + "HubContentName":{ + "shape":"HubContentName", + "documentation":"

The name of the content to describe.

" + }, + "HubContentVersion":{ + "shape":"HubContentVersion", + "documentation":"

The version of the content to describe.

" + } + } + }, + "DescribeHubContentResponse":{ + "type":"structure", + "required":[ + "HubContentName", + "HubContentArn", + "HubContentVersion", + "HubContentType", + "DocumentSchemaVersion", + "HubName", + "HubArn", + "HubContentDocument", + "HubContentStatus", + "CreationTime" + ], + "members":{ + "HubContentName":{ + "shape":"HubContentName", + "documentation":"

The name of the hub content.

" + }, + "HubContentArn":{ + "shape":"HubContentArn", + "documentation":"

The Amazon Resource Name (ARN) of the hub content.

" + }, + "HubContentVersion":{ + "shape":"HubContentVersion", + "documentation":"

The version of the hub content.

" + }, + "HubContentType":{ + "shape":"HubContentType", + "documentation":"

The type of hub content.

" + }, + "DocumentSchemaVersion":{ + "shape":"DocumentSchemaVersion", + "documentation":"

The document schema version for the hub content.

" + }, + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub that contains the content.

" + }, + "HubArn":{ + "shape":"HubArn", + "documentation":"

The Amazon Resource Name (ARN) of the hub that contains the content.

" + }, + "HubContentDisplayName":{ + "shape":"HubContentDisplayName", + "documentation":"

The display name of the hub content.

" + }, + "HubContentDescription":{ + "shape":"HubContentDescription", + "documentation":"

A description of the hub content.

" + }, + "HubContentMarkdown":{ + "shape":"HubContentMarkdown", + "documentation":"

Markdown files associated with the hub content to import.

" + }, + "HubContentDocument":{ + "shape":"HubContentDocument", + "documentation":"

The hub content document that describes information about the hub content such as type, associated containers, scripts, and more.

" + }, + "HubContentSearchKeywords":{ + "shape":"HubContentSearchKeywordList", + "documentation":"

The searchable keywords for the hub content.

" + }, + "HubContentDependencies":{ + "shape":"HubContentDependencyList", + "documentation":"

The location of any dependencies that the hub content has, such as scripts, model artifacts, datasets, or notebooks.

" + }, + "HubContentStatus":{ + "shape":"HubContentStatus", + "documentation":"

The status of the hub content.

" + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

The failure reason if importing hub content failed.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that hub content was created.

" + } + } + }, + "DescribeHubRequest":{ + "type":"structure", + "required":["HubName"], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub to describe.

" + } + } + }, + "DescribeHubResponse":{ + "type":"structure", + "required":[ + "HubName", + "HubArn", + "HubStatus", + "CreationTime", + "LastModifiedTime" + ], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub.

" + }, + "HubArn":{ + "shape":"HubArn", + "documentation":"

The Amazon Resource Name (ARN) of the hub.

" + }, + "HubDisplayName":{ + "shape":"HubDisplayName", + "documentation":"

The display name of the hub.

" + }, + "HubDescription":{ + "shape":"HubDescription", + "documentation":"

A description of the hub.

" + }, + "HubSearchKeywords":{ + "shape":"HubSearchKeywordList", + "documentation":"

The searchable keywords for the hub.

" + }, + "S3StorageConfig":{ + "shape":"HubS3StorageConfig", + "documentation":"

The Amazon S3 storage configuration for the hub.

" + }, + "HubStatus":{ + "shape":"HubStatus", + "documentation":"

The status of the hub.

" + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

The failure reason if importing hub content failed.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the hub was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the hub was last modified.

" + } + } + }, "DescribeHumanTaskUiRequest":{ "type":"structure", "required":["HumanTaskUiName"], @@ -10240,6 +12142,93 @@ } } }, + "DescribeInferenceExperimentRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"InferenceExperimentName", + "documentation":"

The name of the inference experiment to describe.

" + } + } + }, + "DescribeInferenceExperimentResponse":{ + "type":"structure", + "required":[ + "Arn", + "Name", + "Type", + "Status", + "EndpointMetadata", + "ModelVariants" + ], + "members":{ + "Arn":{ + "shape":"InferenceExperimentArn", + "documentation":"

The ARN of the inference experiment being described.

" + }, + "Name":{ + "shape":"InferenceExperimentName", + "documentation":"

The name of the inference experiment.

" + }, + "Type":{ + "shape":"InferenceExperimentType", + "documentation":"

The type of the inference experiment.

" + }, + "Schedule":{ + "shape":"InferenceExperimentSchedule", + "documentation":"

The duration for which the inference experiment ran or will run.

" + }, + "Status":{ + "shape":"InferenceExperimentStatus", + "documentation":"

The status of the inference experiment. The following are the possible statuses for an inference experiment:

  • Creating - Amazon SageMaker is creating your experiment.

  • Created - Amazon SageMaker has finished creating your experiment and it will begin at the scheduled time.

  • Updating - When you make changes to your experiment, your experiment shows as updating.

  • Starting - Amazon SageMaker is beginning your experiment.

  • Running - Your experiment is in progress.

  • Stopping - Amazon SageMaker is stopping your experiment.

  • Completed - Your experiment has completed.

  • Cancelled - When you conclude your experiment early, it shows as canceled.

" + }, + "StatusReason":{ + "shape":"InferenceExperimentStatusReason", + "documentation":"

The error message for the inference experiment status result.

" + }, + "Description":{ + "shape":"InferenceExperimentDescription", + "documentation":"

The description of the inference experiment.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which you created the inference experiment.

" + }, + "CompletionTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the inference experiment was completed or will complete.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which you last modified the inference experiment.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The ARN of the IAM role that Amazon SageMaker can assume to access model artifacts and container images.

" + }, + "EndpointMetadata":{ + "shape":"EndpointMetadata", + "documentation":"

The metadata of the endpoint on which the inference experiment ran.

" + }, + "ModelVariants":{ + "shape":"ModelVariantConfigSummaryList", + "documentation":"

Array of ModelVariantConfigSummary objects. There is one for each variant in the inference experiment. Each ModelVariantConfigSummary object in the array describes the infrastructure configuration for deploying the corresponding variant.

" + }, + "DataStorageConfig":{ + "shape":"InferenceExperimentDataStorageConfig", + "documentation":"

The Amazon S3 storage configuration for the inference experiment.

" + }, + "ShadowModeConfig":{ + "shape":"ShadowModeConfig", + "documentation":"

Shows which variant is a production variant and which variant is a shadow variant. For shadow variants, also shows the sampling percentage.

" + }, + "KmsKey":{ + "shape":"KmsKeyId", + "documentation":"

The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint. For more information, see CreateInferenceExperimentRequest$KmsKey.

" + } + } + }, "DescribeInferenceRecommendationsJobRequest":{ "type":"structure", "required":["JobName"], @@ -10314,6 +12303,10 @@ "InferenceRecommendations":{ "shape":"InferenceRecommendations", "documentation":"

The recommendations made by Inference Recommender.

" + }, + "EndpointPerformances":{ + "shape":"EndpointPerformances", + "documentation":"

The performance results from running an Inference Recommender job on an existing endpoint.

" } } }, @@ -10518,6 +12511,137 @@ "StoppingCondition":{"shape":"MonitoringStoppingCondition"} } }, + "DescribeModelCardExportJobRequest":{ + "type":"structure", + "required":["ModelCardExportJobArn"], + "members":{ + "ModelCardExportJobArn":{ + "shape":"ModelCardExportJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the model card export job to describe.

" + } + } + }, + "DescribeModelCardExportJobResponse":{ + "type":"structure", + "required":[ + "ModelCardExportJobName", + "ModelCardExportJobArn", + "Status", + "ModelCardName", + "ModelCardVersion", + "OutputConfig", + "CreatedAt", + "LastModifiedAt" + ], + "members":{ + "ModelCardExportJobName":{ + "shape":"EntityName", + "documentation":"

The name of the model card export job to describe.

" + }, + "ModelCardExportJobArn":{ + "shape":"ModelCardExportJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the model card export job.

" + }, + "Status":{ + "shape":"ModelCardExportJobStatus", + "documentation":"

The completion status of the model card export job.

  • InProgress: The model card export job is in progress.

  • Completed: The model card export job is complete.

  • Failed: The model card export job failed. To see the reason for the failure, see the FailureReason field in the response to a DescribeModelCardExportJob call.

" + }, + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of the model card that the model export job exports.

" + }, + "ModelCardVersion":{ + "shape":"Integer", + "documentation":"

The version of the model card that the model export job exports.

" + }, + "OutputConfig":{ + "shape":"ModelCardExportOutputConfig", + "documentation":"

The export output details for the model card.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the model export job was created.

" + }, + "LastModifiedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the model export job was last modified.

" + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

The failure reason if the model export job fails.

" + }, + "ExportArtifacts":{ + "shape":"ModelCardExportArtifacts", + "documentation":"

The exported model card artifacts.

" + } + } + }, + "DescribeModelCardRequest":{ + "type":"structure", + "required":["ModelCardName"], + "members":{ + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of the model card to describe.

" + }, + "ModelCardVersion":{ + "shape":"Integer", + "documentation":"

The version of the model card to describe. If a version is not provided, then the latest version of the model card is described.

" + } + } + }, + "DescribeModelCardResponse":{ + "type":"structure", + "required":[ + "ModelCardArn", + "ModelCardName", + "ModelCardVersion", + "Content", + "ModelCardStatus", + "CreationTime", + "CreatedBy" + ], + "members":{ + "ModelCardArn":{ + "shape":"ModelCardArn", + "documentation":"

The Amazon Resource Name (ARN) of the model card.

" + }, + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of the model card.

" + }, + "ModelCardVersion":{ + "shape":"Integer", + "documentation":"

The version of the model card.

" + }, + "Content":{ + "shape":"ModelCardContent", + "documentation":"

The content of the model card.

" + }, + "ModelCardStatus":{ + "shape":"ModelCardStatus", + "documentation":"

The approval status of the model card within your organization. Different organizations might have different criteria for model card review and approval.

  • Draft: The model card is a work in progress.

  • PendingReview: The model card is pending review.

  • Approved: The model card is approved.

  • Archived: The model card is archived. No more updates should be made to the model card, but it can still be exported.

" + }, + "SecurityConfig":{ + "shape":"ModelCardSecurityConfig", + "documentation":"

The security configuration used to protect model card content.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The date and time the model card was created.

" + }, + "CreatedBy":{"shape":"UserContext"}, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time the model card was last modified.

" + }, + "LastModifiedBy":{"shape":"UserContext"}, + "ModelCardProcessingStatus":{ + "shape":"ModelCardProcessingStatus", + "documentation":"

The processing status of model card deletion. The ModelCardProcessingStatus updates throughout the different deletion steps.

  • DeletePending: Model card deletion request received.

  • DeleteInProgress: Model card deletion is in progress.

  • ContentDeleted: Deleted model card content.

  • ExportJobsDeleted: Deleted all export jobs associated with the model card.

  • DeleteCompleted: Successfully deleted the model card.

  • DeleteFailed: The model card failed to delete.

" + } + } + }, "DescribeModelExplainabilityJobDefinitionRequest":{ "type":"structure", "required":["JobDefinitionName"], @@ -11049,6 +13173,10 @@ "PlatformIdentifier":{ "shape":"PlatformIdentifier", "documentation":"

The platform identifier of the notebook instance runtime environment.

" + }, + "InstanceMetadataServiceConfiguration":{ + "shape":"InstanceMetadataServiceConfiguration", + "documentation":"

Information on the IMDS configuration of the notebook instance

" } } }, @@ -11134,7 +13262,7 @@ "required":["PipelineName"], "members":{ "PipelineName":{ - "shape":"PipelineName", + "shape":"PipelineNameOrArn", "documentation":"

The name of the pipeline to describe.

" } } @@ -11358,6 +13486,64 @@ "LastModifiedBy":{"shape":"UserContext"} } }, + "DescribeSpaceRequest":{ + "type":"structure", + "required":[ + "DomainId", + "SpaceName" + ], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

The ID of the associated Domain.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" + } + } + }, + "DescribeSpaceResponse":{ + "type":"structure", + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

The ID of the associated Domain.

" + }, + "SpaceArn":{ + "shape":"SpaceArn", + "documentation":"

The space's Amazon Resource Name (ARN).

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" + }, + "HomeEfsFileSystemUid":{ + "shape":"EfsUid", + "documentation":"

The ID of the space's profile in the Amazon Elastic File System volume.

" + }, + "Status":{ + "shape":"SpaceStatus", + "documentation":"

The status.

" + }, + "LastModifiedTime":{ + "shape":"LastModifiedTime", + "documentation":"

The last modified time.

" + }, + "CreationTime":{ + "shape":"CreationTime", + "documentation":"

The creation time.

" + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

The failure reason.

" + }, + "SpaceSettings":{ + "shape":"SpaceSettings", + "documentation":"

A collection of space settings.

" + } + } + }, "DescribeStudioLifecycleConfigRequest":{ "type":"structure", "required":["StudioLifecycleConfigName"], @@ -11558,21 +13744,21 @@ "ExperimentConfig":{"shape":"ExperimentConfig"}, "DebugRuleConfigurations":{ "shape":"DebugRuleConfigurations", - "documentation":"

Configuration information for Debugger rules for debugging output tensors.

" + "documentation":"

Configuration information for Amazon SageMaker Debugger rules for debugging output tensors.

" }, "TensorBoardOutputConfig":{"shape":"TensorBoardOutputConfig"}, "DebugRuleEvaluationStatuses":{ "shape":"DebugRuleEvaluationStatuses", - "documentation":"

Evaluation status of Debugger rules for debugging on a training job.

" + "documentation":"

Evaluation status of Amazon SageMaker Debugger rules for debugging on a training job.

" }, "ProfilerConfig":{"shape":"ProfilerConfig"}, "ProfilerRuleConfigurations":{ "shape":"ProfilerRuleConfigurations", - "documentation":"

Configuration information for Debugger rules for profiling system and framework metrics.

" + "documentation":"

Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics.

" }, "ProfilerRuleEvaluationStatuses":{ "shape":"ProfilerRuleEvaluationStatuses", - "documentation":"

Evaluation status of Debugger rules for profiling on a training job.

" + "documentation":"

Evaluation status of Amazon SageMaker Debugger rules for profiling on a training job.

" }, "ProfilingStatus":{ "shape":"ProfilingStatus", @@ -11585,6 +13771,10 @@ "Environment":{ "shape":"TrainingEnvironmentMap", "documentation":"

The environment variables to set in the Docker container.

" + }, + "WarmPoolStatus":{ + "shape":"WarmPoolStatus", + "documentation":"

The status of the warm pool associated with the training job.

" } } }, @@ -11658,6 +13848,10 @@ "shape":"TransformOutput", "documentation":"

Identifies the Amazon S3 location where you want Amazon SageMaker to save the results from the transform job.

" }, + "DataCaptureConfig":{ + "shape":"BatchDataCaptureConfig", + "documentation":"

Configuration to control how SageMaker captures inference data.

" + }, "TransformResources":{ "shape":"TransformResources", "documentation":"

Describes the resources, including ML instance types and ML instance count, to use for the transform job.

" @@ -11763,6 +13957,10 @@ "LineageGroupArn":{ "shape":"LineageGroupArn", "documentation":"

The Amazon Resource Name (ARN) of the lineage group.

" + }, + "Sources":{ + "shape":"TrialComponentSources", + "documentation":"

A list of the Amazon Resource Name (ARN) and, if applicable, job type for multiple sources of an experiment run.

" } } }, @@ -11872,11 +14070,11 @@ }, "SingleSignOnUserIdentifier":{ "shape":"SingleSignOnUserIdentifier", - "documentation":"

The SSO user identifier.

" + "documentation":"

The IAM Identity Center user identifier.

" }, "SingleSignOnUserValue":{ "shape":"String256", - "documentation":"

The SSO user value.

" + "documentation":"

The IAM Identity Center user value.

" }, "UserSettings":{ "shape":"UserSettings", @@ -12000,6 +14198,78 @@ "min":20, "pattern":"^arn:aws[a-z\\-]*:[a-z\\-]*:[a-z\\-]*:\\d{12}:[a-z\\-]*/?[a-zA-Z_0-9+=,.@\\-_/]+$" }, + "DeviceDeploymentStatus":{ + "type":"string", + "enum":[ + "READYTODEPLOY", + "INPROGRESS", + "DEPLOYED", + "FAILED", + "STOPPING", + "STOPPED" + ] + }, + "DeviceDeploymentSummaries":{ + "type":"list", + "member":{"shape":"DeviceDeploymentSummary"} + }, + "DeviceDeploymentSummary":{ + "type":"structure", + "required":[ + "EdgeDeploymentPlanArn", + "EdgeDeploymentPlanName", + "StageName", + "DeviceName", + "DeviceArn" + ], + "members":{ + "EdgeDeploymentPlanArn":{ + "shape":"EdgeDeploymentPlanArn", + "documentation":"

The ARN of the edge deployment plan.

" + }, + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan.

" + }, + "StageName":{ + "shape":"EntityName", + "documentation":"

The name of the stage in the edge deployment plan.

" + }, + "DeployedStageName":{ + "shape":"EntityName", + "documentation":"

The name of the deployed stage.

" + }, + "DeviceFleetName":{ + "shape":"EntityName", + "documentation":"

The name of the fleet to which the device belongs to.

" + }, + "DeviceName":{ + "shape":"DeviceName", + "documentation":"

The name of the device.

" + }, + "DeviceArn":{ + "shape":"DeviceArn", + "documentation":"

The ARN of the device.

" + }, + "DeviceDeploymentStatus":{ + "shape":"DeviceDeploymentStatus", + "documentation":"

The deployment status of the device.

" + }, + "DeviceDeploymentStatusMessage":{ + "shape":"String", + "documentation":"

The detailed error message for the deployoment status result.

" + }, + "Description":{ + "shape":"DeviceDescription", + "documentation":"

The description of the device.

" + }, + "DeploymentStartTime":{ + "shape":"Timestamp", + "documentation":"

The time when the deployment on the device started.

" + } + }, + "documentation":"

Contains information summarizing device details and deployment status.

" + }, "DeviceDescription":{ "type":"string", "max":40, @@ -12056,6 +14326,29 @@ "type":"list", "member":{"shape":"DeviceName"} }, + "DeviceSelectionConfig":{ + "type":"structure", + "required":["DeviceSubsetType"], + "members":{ + "DeviceSubsetType":{ + "shape":"DeviceSubsetType", + "documentation":"

Type of device subsets to deploy to the current stage.

" + }, + "Percentage":{ + "shape":"Percentage", + "documentation":"

Percentage of devices in the fleet to deploy to the current stage.

" + }, + "DeviceNames":{ + "shape":"DeviceNames", + "documentation":"

List of devices chosen to deploy.

" + }, + "DeviceNameContains":{ + "shape":"DeviceName", + "documentation":"

A filter to select devices with names containing this name.

" + } + }, + "documentation":"

Contains information about the configurations of selected devices.

" + }, "DeviceStats":{ "type":"structure", "required":[ @@ -12074,6 +14367,14 @@ }, "documentation":"

Status of devices.

" }, + "DeviceSubsetType":{ + "type":"string", + "enum":[ + "PERCENTAGE", + "SELECTION", + "NAMECONTAINS" + ] + }, "DeviceSummaries":{ "type":"list", "member":{"shape":"DeviceSummary"} @@ -12185,7 +14486,7 @@ "members":{ "TrialComponentArn":{ "shape":"TrialComponentArn", - "documentation":"

The ARN of the trial component.

" + "documentation":"

The Amazon Resource Name (ARN) of the trial component.

" }, "TrialArn":{ "shape":"TrialArn", @@ -12193,6 +14494,12 @@ } } }, + "DocumentSchemaVersion":{ + "type":"string", + "max":14, + "min":5, + "pattern":"^\\d{1,4}.\\d{1,4}.\\d{1,4}$" + }, "Dollars":{ "type":"integer", "max":2, @@ -12265,6 +14572,10 @@ "RStudioServerProDomainSettings":{ "shape":"RStudioServerProDomainSettings", "documentation":"

A collection of settings that configure the RStudioServerPro Domain-level app.

" + }, + "ExecutionRoleIdentityConfig":{ + "shape":"ExecutionRoleIdentityConfig", + "documentation":"

The configuration for attaching a SageMaker user profile name to the execution role as a sts:SourceIdentity key.

" } }, "documentation":"

A collection of settings that apply to the SageMaker Domain. These settings are specified through the CreateDomain API call.

" @@ -12275,6 +14586,10 @@ "RStudioServerProDomainSettingsForUpdate":{ "shape":"RStudioServerProDomainSettingsForUpdate", "documentation":"

A collection of RStudioServerPro Domain-level app settings to update.

" + }, + "ExecutionRoleIdentityConfig":{ + "shape":"ExecutionRoleIdentityConfig", + "documentation":"

The configuration for attaching a SageMaker user profile name to the execution role as a sts:SourceIdentity key. This configuration can only be modified if there are no apps in the InService or Pending state.

" } }, "documentation":"

A collection of Domain configuration settings to update.

" @@ -12321,15 +14636,24 @@ "shape":"FileSource", "documentation":"

The bias config file for a model.

" }, - "PreTrainingConstraints":{"shape":"MetricsSource"}, - "PostTrainingConstraints":{"shape":"MetricsSource"} + "PreTrainingConstraints":{ + "shape":"MetricsSource", + "documentation":"

The pre-training constraints.

" + }, + "PostTrainingConstraints":{ + "shape":"MetricsSource", + "documentation":"

The post-training constraints.

" + } }, "documentation":"

Represents the drift check bias baselines that can be used when the model monitor is set using the model package.

" }, "DriftCheckExplainability":{ "type":"structure", "members":{ - "Constraints":{"shape":"MetricsSource"}, + "Constraints":{ + "shape":"MetricsSource", + "documentation":"

The drift check explainability constraints.

" + }, "ConfigFile":{ "shape":"FileSource", "documentation":"

The explainability config file for the model.

" @@ -12340,16 +14664,28 @@ "DriftCheckModelDataQuality":{ "type":"structure", "members":{ - "Statistics":{"shape":"MetricsSource"}, - "Constraints":{"shape":"MetricsSource"} + "Statistics":{ + "shape":"MetricsSource", + "documentation":"

The drift check model data quality statistics.

" + }, + "Constraints":{ + "shape":"MetricsSource", + "documentation":"

The drift check model data quality constraints.

" + } }, "documentation":"

Represents the drift check data quality baselines that can be used when the model monitor is set using the model package.

" }, "DriftCheckModelQuality":{ "type":"structure", "members":{ - "Statistics":{"shape":"MetricsSource"}, - "Constraints":{"shape":"MetricsSource"} + "Statistics":{ + "shape":"MetricsSource", + "documentation":"

The drift check model quality statistics.

" + }, + "Constraints":{ + "shape":"MetricsSource", + "documentation":"

The drift check model quality constraints.

" + } }, "documentation":"

Represents the drift check model quality baselines that can be used when the model monitor is set using the model package.

" }, @@ -12393,6 +14729,131 @@ }, "documentation":"

A directed edge connecting two lineage entities.

" }, + "EdgeDeploymentConfig":{ + "type":"structure", + "required":["FailureHandlingPolicy"], + "members":{ + "FailureHandlingPolicy":{ + "shape":"FailureHandlingPolicy", + "documentation":"

Toggle that determines whether to rollback to previous configuration if the current deployment fails. By default this is turned on. You may turn this off if you want to investigate the errors yourself.

" + } + }, + "documentation":"

Contains information about the configuration of a deployment.

" + }, + "EdgeDeploymentModelConfig":{ + "type":"structure", + "required":[ + "ModelHandle", + "EdgePackagingJobName" + ], + "members":{ + "ModelHandle":{ + "shape":"EntityName", + "documentation":"

The name the device application uses to reference this model.

" + }, + "EdgePackagingJobName":{ + "shape":"EntityName", + "documentation":"

The edge packaging job associated with this deployment.

" + } + }, + "documentation":"

Contains information about the configuration of a model in a deployment.

" + }, + "EdgeDeploymentModelConfigs":{ + "type":"list", + "member":{"shape":"EdgeDeploymentModelConfig"} + }, + "EdgeDeploymentPlanArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"^arn:aws[a-z\\-]*:sagemaker:[a-z\\-]*:\\d{12}:edge-deployment/?[a-zA-Z_0-9+=,.@\\-_/]+$" + }, + "EdgeDeploymentPlanSummaries":{ + "type":"list", + "member":{"shape":"EdgeDeploymentPlanSummary"} + }, + "EdgeDeploymentPlanSummary":{ + "type":"structure", + "required":[ + "EdgeDeploymentPlanArn", + "EdgeDeploymentPlanName", + "DeviceFleetName", + "EdgeDeploymentSuccess", + "EdgeDeploymentPending", + "EdgeDeploymentFailed" + ], + "members":{ + "EdgeDeploymentPlanArn":{ + "shape":"EdgeDeploymentPlanArn", + "documentation":"

The ARN of the edge deployment plan.

" + }, + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan.

" + }, + "DeviceFleetName":{ + "shape":"EntityName", + "documentation":"

The name of the device fleet used for the deployment.

" + }, + "EdgeDeploymentSuccess":{ + "shape":"Integer", + "documentation":"

The number of edge devices with the successful deployment.

" + }, + "EdgeDeploymentPending":{ + "shape":"Integer", + "documentation":"

The number of edge devices yet to pick up the deployment, or in progress.

" + }, + "EdgeDeploymentFailed":{ + "shape":"Integer", + "documentation":"

The number of edge devices that failed the deployment.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time when the edge deployment plan was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The time when the edge deployment plan was last updated.

" + } + }, + "documentation":"

Contains information summarizing an edge deployment plan.

" + }, + "EdgeDeploymentStatus":{ + "type":"structure", + "required":[ + "StageStatus", + "EdgeDeploymentSuccessInStage", + "EdgeDeploymentPendingInStage", + "EdgeDeploymentFailedInStage" + ], + "members":{ + "StageStatus":{ + "shape":"StageStatus", + "documentation":"

The general status of the current stage.

" + }, + "EdgeDeploymentSuccessInStage":{ + "shape":"Integer", + "documentation":"

The number of edge devices with the successful deployment in the current stage.

" + }, + "EdgeDeploymentPendingInStage":{ + "shape":"Integer", + "documentation":"

The number of edge devices yet to pick up the deployment in current stage, or in progress.

" + }, + "EdgeDeploymentFailedInStage":{ + "shape":"Integer", + "documentation":"

The number of edge devices that failed the deployment in current stage.

" + }, + "EdgeDeploymentStatusMessage":{ + "shape":"String", + "documentation":"

A detailed message about deployment status in current stage.

" + }, + "EdgeDeploymentStageStartTime":{ + "shape":"Timestamp", + "documentation":"

The time when the deployment API started.

" + } + }, + "documentation":"

Contains information summarizing the deployment stage results.

" + }, "EdgeModel":{ "type":"structure", "required":[ @@ -12691,6 +15152,10 @@ "Tags":{ "shape":"TagList", "documentation":"

A list of the tags associated with the endpoint. For more information, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference Guide.

" + }, + "ShadowProductionVariants":{ + "shape":"ProductionVariantSummaryList", + "documentation":"

Array of ProductionVariant objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on ProductionVariants.If you use this field, you can only specify one variant for ProductionVariants and one variant for ShadowProductionVariants.

" } }, "documentation":"

A hosted endpoint for real-time inference.

" @@ -12751,6 +15216,17 @@ "type":"list", "member":{"shape":"EndpointConfigSummary"} }, + "EndpointInfo":{ + "type":"structure", + "required":["EndpointName"], + "members":{ + "EndpointName":{ + "shape":"EndpointName", + "documentation":"

The name of a customer's endpoint.

" + } + }, + "documentation":"

Details about a customer endpoint that was compared in an Inference Recommender job.

" + }, "EndpointInput":{ "type":"structure", "required":[ @@ -12826,6 +15302,29 @@ "max":10, "min":1 }, + "EndpointMetadata":{ + "type":"structure", + "required":["EndpointName"], + "members":{ + "EndpointName":{ + "shape":"EndpointName", + "documentation":"

The name of the endpoint.

" + }, + "EndpointConfigName":{ + "shape":"EndpointConfigName", + "documentation":"

The name of the endpoint configuration.

" + }, + "EndpointStatus":{ + "shape":"EndpointStatus", + "documentation":"

The status of the endpoint. For possible values of the status of an endpoint, see EndpointSummary$EndpointStatus.

" + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

If the status of the endpoint is Failed, this provides the reason why it failed.

" + } + }, + "documentation":"

The metadata of the endpoint.

" + }, "EndpointName":{ "type":"string", "max":63, @@ -12864,6 +15363,26 @@ }, "documentation":"

The endpoint configuration made by Inference Recommender during a recommendation job.

" }, + "EndpointPerformance":{ + "type":"structure", + "required":[ + "Metrics", + "EndpointInfo" + ], + "members":{ + "Metrics":{ + "shape":"InferenceMetrics", + "documentation":"

The metrics for an existing endpoint.

" + }, + "EndpointInfo":{"shape":"EndpointInfo"} + }, + "documentation":"

The performance results from running an Inference Recommender job on an existing endpoint.

" + }, + "EndpointPerformances":{ + "type":"list", + "member":{"shape":"EndpointPerformance"}, + "max":1 + }, "EndpointSortKey":{ "type":"string", "enum":[ @@ -12922,6 +15441,11 @@ "type":"list", "member":{"shape":"EndpointSummary"} }, + "Endpoints":{ + "type":"list", + "member":{"shape":"EndpointInfo"}, + "max":1 + }, "EntityDescription":{ "type":"string", "max":1024, @@ -12988,6 +15512,13 @@ "max":1024, "pattern":"[\\S\\s]*" }, + "ExecutionRoleIdentityConfig":{ + "type":"string", + "enum":[ + "USER_PROFILE_NAME", + "DISABLED" + ] + }, "ExecutionStatus":{ "type":"string", "enum":[ @@ -13064,6 +15595,10 @@ "TrialComponentDisplayName":{ "shape":"ExperimentEntityName", "documentation":"

The display name for the trial component. If this key isn't specified, the display name is the trial component name.

" + }, + "RunName":{ + "shape":"ExperimentEntityName", + "documentation":"

The name of the experiment run to associate the trial component with.

" } }, "documentation":"

Associates a SageMaker job as a trial component with an experiment and trial. Specified when you call the following APIs:

" @@ -13155,6 +15690,16 @@ "type":"string", "min":1 }, + "ExplainerConfig":{ + "type":"structure", + "members":{ + "ClarifyExplainerConfig":{ + "shape":"ClarifyExplainerConfig", + "documentation":"

A member of ExplainerConfig that contains configuration parameters for the SageMaker Clarify explainer.

" + } + }, + "documentation":"

A parameter to activate explainers.

" + }, "FailStepMetadata":{ "type":"structure", "members":{ @@ -13165,10 +15710,23 @@ }, "documentation":"

The container for the metadata for Fail step.

" }, + "FailureHandlingPolicy":{ + "type":"string", + "enum":[ + "ROLLBACK_ON_FAILURE", + "DO_NOTHING" + ] + }, "FailureReason":{ "type":"string", "max":1024 }, + "FeatureAdditions":{ + "type":"list", + "member":{"shape":"FeatureDefinition"}, + "max":100, + "min":1 + }, "FeatureDefinition":{ "type":"structure", "members":{ @@ -13189,6 +15747,12 @@ "max":2500, "min":1 }, + "FeatureDescription":{ + "type":"string", + "max":255, + "min":0, + "pattern":".*" + }, "FeatureGroup":{ "type":"structure", "members":{ @@ -13216,6 +15780,10 @@ "shape":"CreationTime", "documentation":"

The time a FeatureGroup was created.

" }, + "LastModifiedTime":{ + "shape":"LastModifiedTime", + "documentation":"

A timestamp indicating the last time you updated the feature group.

" + }, "OnlineStoreConfig":{"shape":"OnlineStoreConfig"}, "OfflineStoreConfig":{"shape":"OfflineStoreConfig"}, "RoleArn":{ @@ -13227,6 +15795,10 @@ "documentation":"

A FeatureGroup status.

" }, "OfflineStoreStatus":{"shape":"OfflineStoreStatus"}, + "LastUpdateStatus":{ + "shape":"LastUpdateStatus", + "documentation":"

A value that indicates whether the feature group was updated successfully.

" + }, "FailureReason":{ "shape":"FailureReason", "documentation":"

The reason that the FeatureGroup failed to be replicated in the OfflineStore. This is failure may be due to a failure to create a FeatureGroup in or delete a FeatureGroup from the OfflineStore.

" @@ -13324,12 +15896,99 @@ }, "documentation":"

The name, Arn, CreationTime, FeatureGroup values, LastUpdatedTime and EnableOnlineStorage status of a FeatureGroup.

" }, + "FeatureMetadata":{ + "type":"structure", + "members":{ + "FeatureGroupArn":{ + "shape":"FeatureGroupArn", + "documentation":"

The Amazon Resource Number (ARN) of the feature group.

" + }, + "FeatureGroupName":{ + "shape":"FeatureGroupName", + "documentation":"

The name of the feature group containing the feature.

" + }, + "FeatureName":{ + "shape":"FeatureName", + "documentation":"

The name of feature.

" + }, + "FeatureType":{ + "shape":"FeatureType", + "documentation":"

The data type of the feature.

" + }, + "CreationTime":{ + "shape":"CreationTime", + "documentation":"

A timestamp indicating when the feature was created.

" + }, + "LastModifiedTime":{ + "shape":"LastModifiedTime", + "documentation":"

A timestamp indicating when the feature was last modified.

" + }, + "Description":{ + "shape":"FeatureDescription", + "documentation":"

An optional description that you specify to better describe the feature.

" + }, + "Parameters":{ + "shape":"FeatureParameters", + "documentation":"

Optional key-value pairs that you specify to better describe the feature.

" + } + }, + "documentation":"

The metadata for a feature. It can either be metadata that you specify, or metadata that is updated automatically.

" + }, "FeatureName":{ "type":"string", "max":64, "min":1, "pattern":"^[a-zA-Z0-9]([-_]*[a-zA-Z0-9]){0,63}" }, + "FeatureParameter":{ + "type":"structure", + "members":{ + "Key":{ + "shape":"FeatureParameterKey", + "documentation":"

A key that must contain a value to describe the feature.

" + }, + "Value":{ + "shape":"FeatureParameterValue", + "documentation":"

The value that belongs to a key.

" + } + }, + "documentation":"

A key-value pair that you specify to describe the feature.

" + }, + "FeatureParameterAdditions":{ + "type":"list", + "member":{"shape":"FeatureParameter"}, + "max":25 + }, + "FeatureParameterKey":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$" + }, + "FeatureParameterRemovals":{ + "type":"list", + "member":{"shape":"FeatureParameterKey"}, + "max":25 + }, + "FeatureParameterValue":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$" + }, + "FeatureParameters":{ + "type":"list", + "member":{"shape":"FeatureParameter"}, + "max":25, + "min":0 + }, + "FeatureStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "FeatureType":{ "type":"string", "enum":[ @@ -13820,6 +16479,260 @@ "max":20, "min":0 }, + "HubArn":{ + "type":"string", + "max":255, + "pattern":".*" + }, + "HubContentArn":{ + "type":"string", + "max":255, + "pattern":".*" + }, + "HubContentDependency":{ + "type":"structure", + "members":{ + "DependencyOriginPath":{ + "shape":"DependencyOriginPath", + "documentation":"

The hub content dependency origin path.

" + }, + "DependencyCopyPath":{ + "shape":"DependencyCopyPath", + "documentation":"

The hub content dependency copy path.

" + } + }, + "documentation":"

Any dependencies related to hub content, such as scripts, model artifacts, datasets, or notebooks.

" + }, + "HubContentDependencyList":{ + "type":"list", + "member":{"shape":"HubContentDependency"}, + "max":50 + }, + "HubContentDescription":{ + "type":"string", + "max":1023, + "pattern":".*" + }, + "HubContentDisplayName":{ + "type":"string", + "max":255, + "pattern":".*" + }, + "HubContentDocument":{ + "type":"string", + "max":65535, + "pattern":".*" + }, + "HubContentInfo":{ + "type":"structure", + "required":[ + "HubContentName", + "HubContentArn", + "HubContentVersion", + "HubContentType", + "DocumentSchemaVersion", + "HubContentStatus", + "CreationTime" + ], + "members":{ + "HubContentName":{ + "shape":"HubContentName", + "documentation":"

The name of the hub content.

" + }, + "HubContentArn":{ + "shape":"HubContentArn", + "documentation":"

The Amazon Resource Name (ARN) of the hub content.

" + }, + "HubContentVersion":{ + "shape":"HubContentVersion", + "documentation":"

The version of the hub content.

" + }, + "HubContentType":{ + "shape":"HubContentType", + "documentation":"

The type of hub content.

" + }, + "DocumentSchemaVersion":{ + "shape":"DocumentSchemaVersion", + "documentation":"

The version of the hub content document schema.

" + }, + "HubContentDisplayName":{ + "shape":"HubContentDisplayName", + "documentation":"

The display name of the hub content.

" + }, + "HubContentDescription":{ + "shape":"HubContentDescription", + "documentation":"

A description of the hub content.

" + }, + "HubContentSearchKeywords":{ + "shape":"HubContentSearchKeywordList", + "documentation":"

The searchable keywords for the hub content.

" + }, + "HubContentStatus":{ + "shape":"HubContentStatus", + "documentation":"

The status of the hub content.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the hub content was created.

" + } + }, + "documentation":"

Information about hub content.

" + }, + "HubContentInfoList":{ + "type":"list", + "member":{"shape":"HubContentInfo"} + }, + "HubContentMarkdown":{ + "type":"string", + "max":65535, + "pattern":".*" + }, + "HubContentName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + }, + "HubContentSearchKeywordList":{ + "type":"list", + "member":{"shape":"HubSearchKeyword"}, + "max":50 + }, + "HubContentSortBy":{ + "type":"string", + "enum":[ + "HubContentName", + "CreationTime", + "HubContentStatus" + ] + }, + "HubContentStatus":{ + "type":"string", + "enum":[ + "Available", + "Importing", + "Deleting", + "ImportFailed", + "DeleteFailed" + ] + }, + "HubContentType":{ + "type":"string", + "enum":[ + "Model", + "Notebook" + ] + }, + "HubContentVersion":{ + "type":"string", + "max":14, + "min":5, + "pattern":"^\\d{1,4}.\\d{1,4}.\\d{1,4}$" + }, + "HubDescription":{ + "type":"string", + "max":1023, + "pattern":".*" + }, + "HubDisplayName":{ + "type":"string", + "max":255, + "pattern":".*" + }, + "HubInfo":{ + "type":"structure", + "required":[ + "HubName", + "HubArn", + "HubStatus", + "CreationTime", + "LastModifiedTime" + ], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub.

" + }, + "HubArn":{ + "shape":"HubArn", + "documentation":"

The Amazon Resource Name (ARN) of the hub.

" + }, + "HubDisplayName":{ + "shape":"HubDisplayName", + "documentation":"

The display name of the hub.

" + }, + "HubDescription":{ + "shape":"HubDescription", + "documentation":"

A description of the hub.

" + }, + "HubSearchKeywords":{ + "shape":"HubSearchKeywordList", + "documentation":"

The searchable keywords for the hub.

" + }, + "HubStatus":{ + "shape":"HubStatus", + "documentation":"

The status of the hub.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the hub was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the hub was last modified.

" + } + }, + "documentation":"

Information about a hub.

" + }, + "HubInfoList":{ + "type":"list", + "member":{"shape":"HubInfo"} + }, + "HubName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + }, + "HubS3StorageConfig":{ + "type":"structure", + "members":{ + "S3OutputPath":{ + "shape":"S3OutputPath", + "documentation":"

The Amazon S3 output path for the hub.

" + } + }, + "documentation":"

The Amazon S3 storage configuration of a hub.

" + }, + "HubSearchKeyword":{ + "type":"string", + "max":255, + "pattern":"^[^A-Z]*$" + }, + "HubSearchKeywordList":{ + "type":"list", + "member":{"shape":"HubSearchKeyword"}, + "max":50 + }, + "HubSortBy":{ + "type":"string", + "enum":[ + "HubName", + "CreationTime", + "HubStatus", + "AccountIdOwner" + ] + }, + "HubStatus":{ + "type":"string", + "enum":[ + "InService", + "Creating", + "Updating", + "Deleting", + "CreateFailed", + "UpdateFailed", + "DeleteFailed" + ] + }, "HumanLoopActivationConditions":{ "type":"string", "max":10240 @@ -13955,7 +16868,7 @@ }, "MaxConcurrentTaskCount":{ "shape":"MaxConcurrentTaskCount", - "documentation":"

Defines the maximum number of data objects that can be labeled by human workers at the same time. Also referred to as batch size. Each object may have more than one worker at one time. The default value is 1000 objects.

" + "documentation":"

Defines the maximum number of data objects that can be labeled by human workers at the same time. Also referred to as batch size. Each object may have more than one worker at one time. The default value is 1000 objects. To increase the maximum value to 5000 objects, contact Amazon Web Services Support.

" }, "AnnotationConsolidationConfig":{ "shape":"AnnotationConsolidationConfig", @@ -14097,7 +17010,6 @@ "AlgorithmSpecification", "RoleArn", "OutputDataConfig", - "ResourceConfig", "StoppingCondition" ], "members":{ @@ -14133,7 +17045,7 @@ }, "ResourceConfig":{ "shape":"ResourceConfig", - "documentation":"

The resources, including the compute instances and storage volumes, to use for the training jobs that the tuning job launches.

Storage volumes store model artifacts and incremental states. Training algorithms might also use storage volumes for scratch space. If you want SageMaker to use the storage volume to store the training data, choose File as the TrainingInputMode in the algorithm specification. For distributed training algorithms, specify an instance count greater than 1.

" + "documentation":"

The resources, including the compute instances and storage volumes, to use for the training jobs that the tuning job launches.

Storage volumes store model artifacts and incremental states. Training algorithms might also use storage volumes for scratch space. If you want SageMaker to use the storage volume to store the training data, choose File as the TrainingInputMode in the algorithm specification. For distributed training algorithms, specify an instance count greater than 1.

If you want to use hyperparameter optimization with instance type flexibility, use HyperParameterTuningResourceConfig instead.

" }, "StoppingCondition":{ "shape":"StoppingCondition", @@ -14155,6 +17067,10 @@ "RetryStrategy":{ "shape":"RetryStrategy", "documentation":"

The number of times to retry the job when the job fails due to an InternalServerError.

" + }, + "HyperParameterTuningResourceConfig":{ + "shape":"HyperParameterTuningResourceConfig", + "documentation":"

The configuration for the hyperparameter tuning resources, including the compute instances and storage volumes, used for training jobs launched by the tuning job. By default, storage volumes hold model artifacts and incremental states. Choose File for TrainingInputMode in the AlgorithmSpecification parameter to additionally store training data in the storage volume (optional).

" } }, "documentation":"

Defines the training jobs launched by a hyperparameter tuning job.

" @@ -14236,6 +17152,39 @@ }, "documentation":"

The container for the summary information about a training job.

" }, + "HyperParameterTuningAllocationStrategy":{ + "type":"string", + "enum":["Prioritized"] + }, + "HyperParameterTuningInstanceConfig":{ + "type":"structure", + "required":[ + "InstanceType", + "InstanceCount", + "VolumeSizeInGB" + ], + "members":{ + "InstanceType":{ + "shape":"TrainingInstanceType", + "documentation":"

The instance type used for processing of hyperparameter optimization jobs. Choose from general purpose (no GPUs) instance types: ml.m5.xlarge, ml.m5.2xlarge, and ml.m5.4xlarge or compute optimized (no GPUs) instance types: ml.c5.xlarge and ml.c5.2xlarge. For more information about instance types, see instance type descriptions.

" + }, + "InstanceCount":{ + "shape":"TrainingInstanceCount", + "documentation":"

The number of instances of the type specified by InstanceType. Choose an instance count larger than 1 for distributed training algorithms. See SageMaker distributed training jobs for more information.

" + }, + "VolumeSizeInGB":{ + "shape":"VolumeSizeInGB", + "documentation":"

The volume size in GB of the data to be processed for hyperparameter optimization (optional).

" + } + }, + "documentation":"

The configuration for hyperparameter tuning resources for use in training jobs launched by the tuning job. These resources include compute instances and storage volumes. Specify one or more compute instance configurations and allocation strategies to select resources (optional).

" + }, + "HyperParameterTuningInstanceConfigs":{ + "type":"list", + "member":{"shape":"HyperParameterTuningInstanceConfig"}, + "max":6, + "min":1 + }, "HyperParameterTuningJobArn":{ "type":"string", "max":256, @@ -14250,7 +17199,11 @@ "members":{ "Strategy":{ "shape":"HyperParameterTuningJobStrategyType", - "documentation":"

Specifies how hyperparameter tuning chooses the combinations of hyperparameter values to use for the training job it launches. To use the Bayesian search strategy, set this to Bayesian. To randomly search, set it to Random. For information about search strategies, see How Hyperparameter Tuning Works.

" + "documentation":"

Specifies how hyperparameter tuning chooses the combinations of hyperparameter values to use for the training job it launches. For information about search strategies, see How Hyperparameter Tuning Works.

" + }, + "StrategyConfig":{ + "shape":"HyperParameterTuningJobStrategyConfig", + "documentation":"

The configuration for the Hyperband optimization strategy. This parameter should be provided only if Hyperband is selected as the strategy for HyperParameterTuningJobConfig.

" }, "HyperParameterTuningJobObjective":{ "shape":"HyperParameterTuningJobObjective", @@ -14266,7 +17219,7 @@ }, "TrainingJobEarlyStoppingType":{ "shape":"TrainingJobEarlyStoppingType", - "documentation":"

Specifies whether to use early stopping for training jobs launched by the hyperparameter tuning job. This can be one of the following values (the default value is OFF):

OFF

Training jobs launched by the hyperparameter tuning job do not use early stopping.

AUTO

SageMaker stops training jobs launched by the hyperparameter tuning job when they are unlikely to perform better than previously completed training jobs. For more information, see Stop Training Jobs Early.

" + "documentation":"

Specifies whether to use early stopping for training jobs launched by the hyperparameter tuning job. Because the Hyperband strategy has its own advanced internal early stopping mechanism, TrainingJobEarlyStoppingType must be OFF to use Hyperband. This parameter can take on one of the following values (the default value is OFF):

OFF

Training jobs launched by the hyperparameter tuning job do not use early stopping.

AUTO

SageMaker stops training jobs launched by the hyperparameter tuning job when they are unlikely to perform better than previously completed training jobs. For more information, see Stop Training Jobs Early.

" }, "TuningJobCompletionCriteria":{ "shape":"TuningJobCompletionCriteria", @@ -14310,6 +17263,55 @@ "type":"list", "member":{"shape":"HyperParameterTuningJobObjective"} }, + "HyperParameterTuningJobSearchEntity":{ + "type":"structure", + "members":{ + "HyperParameterTuningJobName":{ + "shape":"HyperParameterTuningJobName", + "documentation":"

The name of a hyperparameter tuning job.

" + }, + "HyperParameterTuningJobArn":{ + "shape":"HyperParameterTuningJobArn", + "documentation":"

The Amazon Resource Name (ARN) of a hyperparameter tuning job.

" + }, + "HyperParameterTuningJobConfig":{"shape":"HyperParameterTuningJobConfig"}, + "TrainingJobDefinition":{"shape":"HyperParameterTrainingJobDefinition"}, + "TrainingJobDefinitions":{ + "shape":"HyperParameterTrainingJobDefinitions", + "documentation":"

The job definitions included in a hyperparameter tuning job.

" + }, + "HyperParameterTuningJobStatus":{ + "shape":"HyperParameterTuningJobStatus", + "documentation":"

The status of a hyperparameter tuning job.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time that a hyperparameter tuning job was created.

" + }, + "HyperParameterTuningEndTime":{ + "shape":"Timestamp", + "documentation":"

The time that a hyperparameter tuning job ended.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The time that a hyperparameter tuning job was last modified.

" + }, + "TrainingJobStatusCounters":{"shape":"TrainingJobStatusCounters"}, + "ObjectiveStatusCounters":{"shape":"ObjectiveStatusCounters"}, + "BestTrainingJob":{"shape":"HyperParameterTrainingJobSummary"}, + "OverallBestTrainingJob":{"shape":"HyperParameterTrainingJobSummary"}, + "WarmStartConfig":{"shape":"HyperParameterTuningJobWarmStartConfig"}, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

The error that was created when a hyperparameter tuning job failed.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags associated with a hyperparameter tuning job. For more information see Tagging Amazon Web Services resources.

" + } + }, + "documentation":"

An entity returned by the SearchRecord API containing the properties of a hyperparameter tuning job.

" + }, "HyperParameterTuningJobSortByOptions":{ "type":"string", "enum":[ @@ -14328,12 +17330,24 @@ "Stopping" ] }, + "HyperParameterTuningJobStrategyConfig":{ + "type":"structure", + "members":{ + "HyperbandStrategyConfig":{ + "shape":"HyperbandStrategyConfig", + "documentation":"

The configuration for the object that specifies the Hyperband strategy. This parameter is only supported for the Hyperband selection for Strategy within the HyperParameterTuningJobConfig API.

" + } + }, + "documentation":"

The configuration for a training job launched by a hyperparameter tuning job. Choose Bayesian for Bayesian optimization, and Random for random search optimization. For more advanced use cases, use Hyperband, which evaluates objective metrics for training jobs after every epoch. For more information about strategies, see How Hyperparameter Tuning Works.

" + }, "HyperParameterTuningJobStrategyType":{ "type":"string", "documentation":"

The strategy hyperparameter tuning uses to find the best combination of hyperparameters for your model. Currently, the only supported value is Bayesian.

", "enum":[ "Bayesian", - "Random" + "Random", + "Hyperband", + "Grid" ] }, "HyperParameterTuningJobSummaries":{ @@ -14366,7 +17380,7 @@ }, "Strategy":{ "shape":"HyperParameterTuningJobStrategyType", - "documentation":"

Specifies the search strategy hyperparameter tuning uses to choose which hyperparameters to use for each iteration. Currently, the only valid value is Bayesian.

" + "documentation":"

Specifies the search strategy hyperparameter tuning uses to choose which hyperparameters to evaluate at each iteration.

" }, "CreationTime":{ "shape":"Timestamp", @@ -14420,6 +17434,36 @@ "TransferLearning" ] }, + "HyperParameterTuningResourceConfig":{ + "type":"structure", + "members":{ + "InstanceType":{ + "shape":"TrainingInstanceType", + "documentation":"

The instance type used to run hyperparameter optimization tuning jobs. See descriptions of instance types for more information.

" + }, + "InstanceCount":{ + "shape":"TrainingInstanceCount", + "documentation":"

The number of compute instances of type InstanceType to use. For distributed training, select a value greater than 1.

" + }, + "VolumeSizeInGB":{ + "shape":"OptionalVolumeSizeInGB", + "documentation":"

The volume size in GB for the storage volume to be used in processing hyperparameter optimization jobs (optional). These volumes store model artifacts, incremental states and optionally, scratch space for training algorithms. Do not provide a value for this parameter if a value for InstanceConfigs is also specified.

Some instance types have a fixed total local storage size. If you select one of these instances for training, VolumeSizeInGB cannot be greater than this total size. For a list of instance types with local instance storage and their sizes, see instance store volumes.

SageMaker supports only the General Purpose SSD (gp2) storage volume type.

" + }, + "VolumeKmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

A key used by Amazon Web Services Key Management Service to encrypt data on the storage volume attached to the compute instances used to run the training job. You can use either of the following formats to specify a key.

KMS Key ID:

\"1234abcd-12ab-34cd-56ef-1234567890ab\"

Amazon Resource Name (ARN) of a KMS key:

\"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

Some instances use local storage, which use a hardware module to encrypt storage volumes. If you choose one of these instance types, you cannot request a VolumeKmsKeyId. For a list of instance types that use local storage, see instance store volumes. For more information about Amazon Web Services Key Management Service, see KMS encryption for more information.

" + }, + "AllocationStrategy":{ + "shape":"HyperParameterTuningAllocationStrategy", + "documentation":"

The strategy that determines the order of preference for resources specified in InstanceConfigs used in hyperparameter optimization.

" + }, + "InstanceConfigs":{ + "shape":"HyperParameterTuningInstanceConfigs", + "documentation":"

A list containing the configuration(s) for one or more resources for processing hyperparameter jobs. These resources include compute instances and storage volumes to use in model training jobs launched by hyperparameter tuning jobs. The AllocationStrategy controls the order in which multiple configurations provided in InstanceConfigs are used.

If you only want to use a single instance configuration inside the HyperParameterTuningResourceConfig API, do not provide a value for InstanceConfigs. Instead, use InstanceType, VolumeSizeInGB and InstanceCount. If you use InstanceConfigs, do not provide values for InstanceType, VolumeSizeInGB or InstanceCount.

" + } + }, + "documentation":"

The configuration of resources, including compute instances and storage volumes for use in training jobs launched by hyperparameter tuning jobs. Specify one or more instance type and count and the allocation strategy for instance selection.

HyperParameterTuningResourceConfig supports all of the capabilities of ResourceConfig with added functionality for flexible instance management.

" + }, "HyperParameterValue":{ "type":"string", "max":2500, @@ -14432,6 +17476,28 @@ "max":100, "min":0 }, + "HyperbandStrategyConfig":{ + "type":"structure", + "members":{ + "MinResource":{ + "shape":"HyperbandStrategyMinResource", + "documentation":"

The minimum number of resources (such as epochs) that can be used by a training job launched by a hyperparameter tuning job. If the value for MinResource has not been reached, the training job will not be stopped by Hyperband.

" + }, + "MaxResource":{ + "shape":"HyperbandStrategyMaxResource", + "documentation":"

The maximum number of resources (such as epochs) that can be used by a training job launched by a hyperparameter tuning job. Once a job reaches the MaxResource value, it is stopped. If a value for MaxResource is not provided, and Hyperband is selected as the hyperparameter tuning strategy, HyperbandTrainingJ attempts to infer MaxResource from the following keys (if present) in StaticsHyperParameters:

  • epochs

  • numepochs

  • n-epochs

  • n_epochs

  • num_epochs

If HyperbandStrategyConfig is unable to infer a value for MaxResource, it generates a validation error. The maximum value is 20,000 epochs. All metrics that correspond to an objective metric are used to derive early stopping decisions. For distributive training jobs, ensure that duplicate metrics are not printed in the logs across the individual nodes in a training job. If multiple nodes are publishing duplicate or incorrect metrics, training jobs may make an incorrect stopping decision and stop the job prematurely.

" + } + }, + "documentation":"

The configuration for Hyperband, a multi-fidelity based hyperparameter tuning strategy. Hyperband uses the final and intermediate results of a training job to dynamically allocate resources to utilized hyperparameter configurations while automatically stopping under-performing configurations. This parameter should be provided only if Hyperband is selected as the StrategyConfig under the HyperParameterTuningJobConfig API.

" + }, + "HyperbandStrategyMaxResource":{ + "type":"integer", + "min":1 + }, + "HyperbandStrategyMinResource":{ + "type":"integer", + "min":1 + }, "IdempotencyToken":{ "type":"string", "max":128, @@ -14668,6 +17734,79 @@ "type":"list", "member":{"shape":"Image"} }, + "ImportHubContentRequest":{ + "type":"structure", + "required":[ + "HubContentName", + "HubContentType", + "DocumentSchemaVersion", + "HubName", + "HubContentDocument" + ], + "members":{ + "HubContentName":{ + "shape":"HubContentName", + "documentation":"

The name of the hub content to import.

" + }, + "HubContentVersion":{ + "shape":"HubContentVersion", + "documentation":"

The version of the hub content to import.

" + }, + "HubContentType":{ + "shape":"HubContentType", + "documentation":"

The type of hub content to import.

" + }, + "DocumentSchemaVersion":{ + "shape":"DocumentSchemaVersion", + "documentation":"

The version of the hub content schema to import.

" + }, + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub to import content into.

" + }, + "HubContentDisplayName":{ + "shape":"HubContentDisplayName", + "documentation":"

The display name of the hub content to import.

" + }, + "HubContentDescription":{ + "shape":"HubContentDescription", + "documentation":"

A description of the hub content to import.

" + }, + "HubContentMarkdown":{ + "shape":"HubContentMarkdown", + "documentation":"

Markdown files associated with the hub content to import.

" + }, + "HubContentDocument":{ + "shape":"HubContentDocument", + "documentation":"

The hub content document that describes information about the hub content such as type, associated containers, scripts, and more.

" + }, + "HubContentSearchKeywords":{ + "shape":"HubContentSearchKeywordList", + "documentation":"

The searchable keywords of the hub content.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Any tags associated with the hub content.

" + } + } + }, + "ImportHubContentResponse":{ + "type":"structure", + "required":[ + "HubArn", + "HubContentArn" + ], + "members":{ + "HubArn":{ + "shape":"HubArn", + "documentation":"

The ARN of the hub that the content was imported into.

" + }, + "HubContentArn":{ + "shape":"HubContentArn", + "documentation":"

The ARN of the hub content that was imported.

" + } + } + }, "InferenceExecutionConfig":{ "type":"structure", "required":["Mode"], @@ -14686,10 +17825,160 @@ "Direct" ] }, + "InferenceExperimentArn":{ + "type":"string", + "max":256, + "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:inference-experiment/.*" + }, + "InferenceExperimentDataStorageConfig":{ + "type":"structure", + "required":["Destination"], + "members":{ + "Destination":{ + "shape":"DestinationS3Uri", + "documentation":"

The Amazon S3 bucket where the inference experiment data is stored.

" + }, + "KmsKey":{ + "shape":"KmsKeyId", + "documentation":"

The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service key that Amazon SageMaker uses to encrypt captured data when uploading to Amazon S3.

" + }, + "ContentType":{"shape":"CaptureContentTypeHeader"} + }, + "documentation":"

The Amazon S3 location and configuration for storing inference experiment data.

" + }, + "InferenceExperimentDescription":{ + "type":"string", + "max":1024, + "pattern":".*" + }, + "InferenceExperimentList":{ + "type":"list", + "member":{"shape":"InferenceExperimentSummary"} + }, + "InferenceExperimentName":{ + "type":"string", + "max":120, + "min":1, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,119}" + }, + "InferenceExperimentSchedule":{ + "type":"structure", + "members":{ + "StartTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the inference experiment started or will start.

" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the inference experiment ended or will end.

" + } + }, + "documentation":"

The start and end times of an inference experiment.

The maximum duration that you can set for an inference experiment is 30 days.

" + }, + "InferenceExperimentStatus":{ + "type":"string", + "enum":[ + "Creating", + "Created", + "Updating", + "Running", + "Starting", + "Stopping", + "Completed", + "Cancelled" + ] + }, + "InferenceExperimentStatusReason":{ + "type":"string", + "max":1024, + "pattern":".*" + }, + "InferenceExperimentStopDesiredState":{ + "type":"string", + "enum":[ + "Completed", + "Cancelled" + ] + }, + "InferenceExperimentSummary":{ + "type":"structure", + "required":[ + "Name", + "Type", + "Status", + "CreationTime", + "LastModifiedTime" + ], + "members":{ + "Name":{ + "shape":"InferenceExperimentName", + "documentation":"

The name of the inference experiment.

" + }, + "Type":{ + "shape":"InferenceExperimentType", + "documentation":"

The type of the inference experiment.

" + }, + "Schedule":{ + "shape":"InferenceExperimentSchedule", + "documentation":"

The duration for which the inference experiment ran or will run.

The maximum duration that you can set for an inference experiment is 30 days.

" + }, + "Status":{ + "shape":"InferenceExperimentStatus", + "documentation":"

The status of the inference experiment.

" + }, + "StatusReason":{ + "shape":"InferenceExperimentStatusReason", + "documentation":"

The error message for the inference experiment status result.

" + }, + "Description":{ + "shape":"InferenceExperimentDescription", + "documentation":"

The description of the inference experiment.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the inference experiment was created.

" + }, + "CompletionTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp at which the inference experiment was completed.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The timestamp when you last modified the inference experiment.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The ARN of the IAM role that Amazon SageMaker can assume to access model artifacts and container images.

" + } + }, + "documentation":"

Lists a summary of properties of an inference experiment.

" + }, + "InferenceExperimentType":{ + "type":"string", + "enum":["ShadowMode"] + }, "InferenceImage":{ "type":"string", "max":256 }, + "InferenceMetrics":{ + "type":"structure", + "required":[ + "MaxInvocations", + "ModelLatency" + ], + "members":{ + "MaxInvocations":{ + "shape":"Integer", + "documentation":"

The expected maximum number of requests per minute for the instance.

" + }, + "ModelLatency":{ + "shape":"Integer", + "documentation":"

The expected model latency at maximum invocations per minute for the instance.

" + } + }, + "documentation":"

The metrics for an existing endpoint compared in an Inference Recommender job.

" + }, "InferenceRecommendation":{ "type":"structure", "required":[ @@ -14775,6 +18064,37 @@ }, "documentation":"

A structure that contains a list of recommendation jobs.

" }, + "InferenceRecommendationsJobStep":{ + "type":"structure", + "required":[ + "StepType", + "JobName", + "Status" + ], + "members":{ + "StepType":{ + "shape":"RecommendationStepType", + "documentation":"

The type of the subtask.

BENCHMARK: Evaluate the performance of your model on different instance types.

" + }, + "JobName":{ + "shape":"RecommendationJobName", + "documentation":"

The name of the Inference Recommender job.

" + }, + "Status":{ + "shape":"RecommendationJobStatus", + "documentation":"

The current status of the benchmark.

" + }, + "InferenceBenchmark":{ + "shape":"RecommendationJobInferenceBenchmark", + "documentation":"

The details for a specific benchmark.

" + } + }, + "documentation":"

A returned array object for the Steps response field in the ListInferenceRecommendationsJobSteps API command.

" + }, + "InferenceRecommendationsJobSteps":{ + "type":"list", + "member":{"shape":"InferenceRecommendationsJobStep"} + }, "InferenceRecommendationsJobs":{ "type":"list", "member":{"shape":"InferenceRecommendationsJob"} @@ -14846,7 +18166,7 @@ }, "FrameworkVersion":{ "shape":"FrameworkVersion", - "documentation":"

Specifies the framework version to use. This API field is only supported for the PyTorch and TensorFlow frameworks.

For information about framework versions supported for cloud targets and edge devices, see Cloud Supported Instance Types and Frameworks and Edge Supported Frameworks.

" + "documentation":"

Specifies the framework version to use. This API field is only supported for the MXNet, PyTorch, TensorFlow and TensorFlow Lite frameworks.

For information about framework versions supported for cloud targets and edge devices, see Cloud Supported Instance Types and Frameworks and Edge Supported Frameworks.

" } }, "documentation":"

Contains information about the location of input model artifacts, the name and shape of the expected data inputs, and the framework in which the model was trained.

" @@ -14869,6 +18189,56 @@ "member":{"shape":"TrainingInputMode"}, "min":1 }, + "InstanceGroup":{ + "type":"structure", + "required":[ + "InstanceType", + "InstanceCount", + "InstanceGroupName" + ], + "members":{ + "InstanceType":{ + "shape":"TrainingInstanceType", + "documentation":"

Specifies the instance type of the instance group.

" + }, + "InstanceCount":{ + "shape":"TrainingInstanceCount", + "documentation":"

Specifies the number of instances of the instance group.

" + }, + "InstanceGroupName":{ + "shape":"InstanceGroupName", + "documentation":"

Specifies the name of the instance group.

" + } + }, + "documentation":"

Defines an instance group for heterogeneous cluster training. When requesting a training job using the CreateTrainingJob API, you can configure multiple instance groups .

" + }, + "InstanceGroupName":{ + "type":"string", + "max":64, + "min":1, + "pattern":".+" + }, + "InstanceGroupNames":{ + "type":"list", + "member":{"shape":"InstanceGroupName"}, + "max":5 + }, + "InstanceGroups":{ + "type":"list", + "member":{"shape":"InstanceGroup"}, + "max":5 + }, + "InstanceMetadataServiceConfiguration":{ + "type":"structure", + "required":["MinimumInstanceMetadataServiceVersion"], + "members":{ + "MinimumInstanceMetadataServiceVersion":{ + "shape":"MinimumInstanceMetadataServiceVersion", + "documentation":"

Indicates the minimum IMDS version that the notebook instance supports. When passed as part of CreateNotebookInstance, if no value is selected, then it defaults to IMDSv1. This means that both IMDSv1 and IMDSv2 are supported. If passed as part of UpdateNotebookInstance, there is no default.

" + } + }, + "documentation":"

Information on the IMDS configuration of the notebook instance

" + }, "InstanceType":{ "type":"string", "enum":[ @@ -14992,7 +18362,7 @@ "IntegerParameterRanges":{ "type":"list", "member":{"shape":"IntegerParameterRange"}, - "max":20, + "max":30, "min":0 }, "IntegerValue":{"type":"integer"}, @@ -15059,10 +18429,19 @@ "LifecycleConfigArns":{ "shape":"LifecycleConfigArns", "documentation":"

The Amazon Resource Name (ARN) of the Lifecycle Configurations attached to the JupyterServerApp. If you use this parameter, the DefaultResourceSpec parameter is also required.

To remove a Lifecycle Config, you must set LifecycleConfigArns to an empty list.

" + }, + "CodeRepositories":{ + "shape":"CodeRepositories", + "documentation":"

A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterServer application.

" } }, "documentation":"

The JupyterServer app settings.

" }, + "KeepAlivePeriodInSeconds":{ + "type":"integer", + "max":3600, + "min":0 + }, "KernelDisplayName":{ "type":"string", "max":1024 @@ -15343,7 +18722,8 @@ "VolumeKmsKeyId":{ "shape":"KmsKeyId", "documentation":"

The Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training and inference jobs used for automated data labeling.

You can only specify a VolumeKmsKeyId when you create a labeling job with automated data labeling enabled using the API operation CreateLabelingJob. You cannot specify an Amazon Web Services KMS key to encrypt the storage volume used for automated data labeling model training and inference when you create a labeling job using the console. To learn more, see Output Data and Storage Volume Encryption.

The VolumeKmsKeyId can be any of the following formats:

  • KMS Key ID

    \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • Amazon Resource Name (ARN) of a KMS Key

    \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" - } + }, + "VpcConfig":{"shape":"VpcConfig"} }, "documentation":"

Configure encryption on the storage volume attached to the ML compute instance used to run automated data labeling model training and inference.

" }, @@ -15482,6 +18862,29 @@ "documentation":"

Metadata for a Lambda step.

" }, "LastModifiedTime":{"type":"timestamp"}, + "LastUpdateStatus":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{ + "shape":"LastUpdateStatusValue", + "documentation":"

A value that indicates whether the update was made successful.

" + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

If the update wasn't successful, indicates the reason why it failed.

" + } + }, + "documentation":"

A value that indicates whether the update was successful.

" + }, + "LastUpdateStatusValue":{ + "type":"string", + "enum":[ + "Successful", + "Failed", + "InProgress" + ] + }, "LifecycleConfigArns":{ "type":"list", "member":{"shape":"StudioLifecycleConfigArn"} @@ -15719,6 +19122,10 @@ "UserProfileNameEquals":{ "shape":"UserProfileName", "documentation":"

A parameter to search by user profile name.

" + }, + "SpaceNameEquals":{ + "shape":"SpaceName", + "documentation":"

A parameter to search by space name.

" } } }, @@ -16310,6 +19717,75 @@ } } }, + "ListEdgeDeploymentPlansRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

The response from the last list when returning a list large enough to need tokening.

" + }, + "MaxResults":{ + "shape":"ListMaxResults", + "documentation":"

The maximum number of results to select (50 by default).

", + "box":true + }, + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Selects edge deployment plans created after this time.

" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Selects edge deployment plans created before this time.

" + }, + "LastModifiedTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Selects edge deployment plans that were last updated after this time.

" + }, + "LastModifiedTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Selects edge deployment plans that were last updated before this time.

" + }, + "NameContains":{ + "shape":"NameContains", + "documentation":"

Selects edge deployment plans with names containing this name.

" + }, + "DeviceFleetNameContains":{ + "shape":"NameContains", + "documentation":"

Selects edge deployment plans with a device fleet name containing this name.

" + }, + "SortBy":{ + "shape":"ListEdgeDeploymentPlansSortBy", + "documentation":"

The column by which to sort the edge deployment plans. Can be one of NAME, DEVICEFLEETNAME, CREATIONTIME, LASTMODIFIEDTIME.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

The direction of the sorting (ascending or descending).

" + } + } + }, + "ListEdgeDeploymentPlansResponse":{ + "type":"structure", + "required":["EdgeDeploymentPlanSummaries"], + "members":{ + "EdgeDeploymentPlanSummaries":{ + "shape":"EdgeDeploymentPlanSummaries", + "documentation":"

List of summaries of edge deployment plans.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use when calling the next page of results.

" + } + } + }, + "ListEdgeDeploymentPlansSortBy":{ + "type":"string", + "enum":[ + "NAME", + "DEVICE_FLEET_NAME", + "CREATION_TIME", + "LAST_MODIFIED_TIME" + ] + }, "ListEdgePackagingJobsRequest":{ "type":"structure", "members":{ @@ -16630,6 +20106,192 @@ } } }, + "ListHubContentVersionsRequest":{ + "type":"structure", + "required":[ + "HubName", + "HubContentType", + "HubContentName" + ], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub to list the content versions of.

" + }, + "HubContentType":{ + "shape":"HubContentType", + "documentation":"

The type of hub content to list versions of.

" + }, + "HubContentName":{ + "shape":"HubContentName", + "documentation":"

The name of the hub content.

" + }, + "MinVersion":{ + "shape":"HubContentVersion", + "documentation":"

The lower bound of the hub content versions to list.

" + }, + "MaxSchemaVersion":{ + "shape":"DocumentSchemaVersion", + "documentation":"

The upper bound of the hub content schema version.

" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Only list hub content versions that were created before the time specified.

" + }, + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Only list hub content versions that were created after the time specified.

" + }, + "SortBy":{ + "shape":"HubContentSortBy", + "documentation":"

Sort hub content versions by either name or creation time.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

Sort hub content versions by ascending or descending order.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of hub content versions to list.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response to a previous ListHubContentVersions request was truncated, the response includes a NextToken. To retrieve the next set of hub content versions, use the token in the next request.

" + } + } + }, + "ListHubContentVersionsResponse":{ + "type":"structure", + "required":["HubContentSummaries"], + "members":{ + "HubContentSummaries":{ + "shape":"HubContentInfoList", + "documentation":"

The summaries of the listed hub content versions.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content versions, use it in the subsequent request.

" + } + } + }, + "ListHubContentsRequest":{ + "type":"structure", + "required":[ + "HubName", + "HubContentType" + ], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub to list the contents of.

" + }, + "HubContentType":{ + "shape":"HubContentType", + "documentation":"

The type of hub content to list.

" + }, + "NameContains":{ + "shape":"NameContains", + "documentation":"

Only list hub content if the name contains the specified string.

" + }, + "MaxSchemaVersion":{ + "shape":"DocumentSchemaVersion", + "documentation":"

The upper bound of the hub content schema verion.

" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Only list hub content that was created before the time specified.

" + }, + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Only list hub content that was created after the time specified.

" + }, + "SortBy":{ + "shape":"HubContentSortBy", + "documentation":"

Sort hub content versions by either name or creation time.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

Sort hubs by ascending or descending order.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum amount of hub content to list.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response to a previous ListHubContents request was truncated, the response includes a NextToken. To retrieve the next set of hub content, use the token in the next request.

" + } + } + }, + "ListHubContentsResponse":{ + "type":"structure", + "required":["HubContentSummaries"], + "members":{ + "HubContentSummaries":{ + "shape":"HubContentInfoList", + "documentation":"

The summaries of the listed hub content.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, SageMaker returns this token. To retrieve the next set of hub content, use it in the subsequent request.

" + } + } + }, + "ListHubsRequest":{ + "type":"structure", + "members":{ + "NameContains":{ + "shape":"NameContains", + "documentation":"

Only list hubs with names that contain the specified string.

" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Only list hubs that were created before the time specified.

" + }, + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Only list hubs that were created after the time specified.

" + }, + "LastModifiedTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Only list hubs that were last modified before the time specified.

" + }, + "LastModifiedTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Only list hubs that were last modified after the time specified.

" + }, + "SortBy":{ + "shape":"HubSortBy", + "documentation":"

Sort hubs by either name or creation time.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

Sort hubs by ascending or descending order.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of hubs to list.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response to a previous ListHubs request was truncated, the response includes a NextToken. To retrieve the next set of hubs, use the token in the next request.

" + } + } + }, + "ListHubsResponse":{ + "type":"structure", + "required":["HubSummaries"], + "members":{ + "HubSummaries":{ + "shape":"HubInfoList", + "documentation":"

The summaries of the listed hubs.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, SageMaker returns this token. To retrieve the next set of hubs, use it in the subsequent request.

" + } + } + }, "ListHumanTaskUisRequest":{ "type":"structure", "members":{ @@ -16839,6 +20501,107 @@ } } }, + "ListInferenceExperimentsRequest":{ + "type":"structure", + "members":{ + "NameContains":{ + "shape":"NameContains", + "documentation":"

Selects inference experiments whose names contain this name.

" + }, + "Type":{ + "shape":"InferenceExperimentType", + "documentation":"

Selects inference experiments of this type. For the possible types of inference experiments, see CreateInferenceExperimentRequest$Type.

" + }, + "StatusEquals":{ + "shape":"InferenceExperimentStatus", + "documentation":"

Selects inference experiments which are in this status. For the possible statuses, see DescribeInferenceExperimentResponse$Status.

" + }, + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Selects inference experiments which were created after this timestamp.

" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Selects inference experiments which were created before this timestamp.

" + }, + "LastModifiedTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Selects inference experiments which were last modified after this timestamp.

" + }, + "LastModifiedTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Selects inference experiments which were last modified before this timestamp.

" + }, + "SortBy":{ + "shape":"SortInferenceExperimentsBy", + "documentation":"

The column by which to sort the listed inference experiments.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

The direction of sorting (ascending or descending).

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The response from the last list when returning a list large enough to need tokening.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to select.

" + } + } + }, + "ListInferenceExperimentsResponse":{ + "type":"structure", + "members":{ + "InferenceExperiments":{ + "shape":"InferenceExperimentList", + "documentation":"

List of inference experiments.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use when calling the next page of results.

" + } + } + }, + "ListInferenceRecommendationsJobStepsRequest":{ + "type":"structure", + "required":["JobName"], + "members":{ + "JobName":{ + "shape":"RecommendationJobName", + "documentation":"

The name for the Inference Recommender job.

" + }, + "Status":{ + "shape":"RecommendationJobStatus", + "documentation":"

A filter to return benchmarks of a specified status. If this field is left empty, then all benchmarks are returned.

" + }, + "StepType":{ + "shape":"RecommendationStepType", + "documentation":"

A filter to return details about the specified type of subtask.

BENCHMARK: Evaluate the performance of your model on different instance types.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A token that you can specify to return more results from the list. Specify this field if you have a token that was returned from a previous request.

" + } + } + }, + "ListInferenceRecommendationsJobStepsResponse":{ + "type":"structure", + "members":{ + "Steps":{ + "shape":"InferenceRecommendationsJobSteps", + "documentation":"

A list of all subtask details in Inference Recommender.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A token that you can specify in your next request to return more results from the list.

" + } + } + }, "ListInferenceRecommendationsJobsRequest":{ "type":"structure", "members":{ @@ -17121,6 +20884,169 @@ } } }, + "ListModelCardExportJobsRequest":{ + "type":"structure", + "required":["ModelCardName"], + "members":{ + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

List export jobs for the model card with the specified name.

" + }, + "ModelCardVersion":{ + "shape":"Integer", + "documentation":"

List export jobs for the model card with the specified version.

" + }, + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Only list model card export jobs that were created after the time specified.

" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Only list model card export jobs that were created before the time specified.

" + }, + "ModelCardExportJobNameContains":{ + "shape":"EntityName", + "documentation":"

Only list model card export jobs with names that contain the specified string.

" + }, + "StatusEquals":{ + "shape":"ModelCardExportJobStatus", + "documentation":"

Only list model card export jobs with the specified status.

" + }, + "SortBy":{ + "shape":"ModelCardExportJobSortBy", + "documentation":"

Sort model card export jobs by either name or creation time. Sorts by creation time by default.

" + }, + "SortOrder":{ + "shape":"ModelCardExportJobSortOrder", + "documentation":"

Sort model card export jobs by ascending or descending order.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response to a previous ListModelCardExportJobs request was truncated, the response includes a NextToken. To retrieve the next set of model card export jobs, use the token in the next request.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of model card export jobs to list.

" + } + } + }, + "ListModelCardExportJobsResponse":{ + "type":"structure", + "required":["ModelCardExportJobSummaries"], + "members":{ + "ModelCardExportJobSummaries":{ + "shape":"ModelCardExportJobSummaryList", + "documentation":"

The summaries of the listed model card export jobs.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, SageMaker returns this token. To retrieve the next set of model card export jobs, use it in the subsequent request.

" + } + } + }, + "ListModelCardVersionsRequest":{ + "type":"structure", + "required":["ModelCardName"], + "members":{ + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Only list model card versions that were created after the time specified.

" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Only list model card versions that were created before the time specified.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of model card versions to list.

" + }, + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

List model card versions for the model card with the specified name.

" + }, + "ModelCardStatus":{ + "shape":"ModelCardStatus", + "documentation":"

Only list model card versions with the specified approval status.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response to a previous ListModelCardVersions request was truncated, the response includes a NextToken. To retrieve the next set of model card versions, use the token in the next request.

" + }, + "SortBy":{ + "shape":"ModelCardVersionSortBy", + "documentation":"

Sort listed model card versions by version. Sorts by version by default.

" + }, + "SortOrder":{ + "shape":"ModelCardSortOrder", + "documentation":"

Sort model card versions by ascending or descending order.

" + } + } + }, + "ListModelCardVersionsResponse":{ + "type":"structure", + "required":["ModelCardVersionSummaryList"], + "members":{ + "ModelCardVersionSummaryList":{ + "shape":"ModelCardVersionSummaryList", + "documentation":"

The summaries of the listed versions of the model card.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, SageMaker returns this token. To retrieve the next set of model card versions, use it in the subsequent request.

" + } + } + }, + "ListModelCardsRequest":{ + "type":"structure", + "members":{ + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

Only list model cards that were created after the time specified.

" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

Only list model cards that were created before the time specified.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of model cards to list.

" + }, + "NameContains":{ + "shape":"EntityName", + "documentation":"

Only list model cards with names that contain the specified string.

" + }, + "ModelCardStatus":{ + "shape":"ModelCardStatus", + "documentation":"

Only list model cards with the specified approval status.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response to a previous ListModelCards request was truncated, the response includes a NextToken. To retrieve the next set of model cards, use the token in the next request.

" + }, + "SortBy":{ + "shape":"ModelCardSortBy", + "documentation":"

Sort model cards by either name or creation time. Sorts by creation time by default.

" + }, + "SortOrder":{ + "shape":"ModelCardSortOrder", + "documentation":"

Sort model cards by ascending or descending order.

" + } + } + }, + "ListModelCardsResponse":{ + "type":"structure", + "required":["ModelCardSummaries"], + "members":{ + "ModelCardSummaries":{ + "shape":"ModelCardSummaryList", + "documentation":"

The summaries of the listed model cards.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, SageMaker returns this token. To retrieve the next set of model cards, use it in the subsequent request.

" + } + } + }, "ListModelExplainabilityJobDefinitionsRequest":{ "type":"structure", "members":{ @@ -17407,6 +21333,91 @@ } } }, + "ListMonitoringAlertHistoryRequest":{ + "type":"structure", + "members":{ + "MonitoringScheduleName":{ + "shape":"MonitoringScheduleName", + "documentation":"

The name of a monitoring schedule.

" + }, + "MonitoringAlertName":{ + "shape":"MonitoringAlertName", + "documentation":"

The name of a monitoring alert.

" + }, + "SortBy":{ + "shape":"MonitoringAlertHistorySortKey", + "documentation":"

The field used to sort results. The default is CreationTime.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

The sort order, whether Ascending or Descending, of the alert history. The default is Descending.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the result of the previous ListMonitoringAlertHistory request was truncated, the response includes a NextToken. To retrieve the next set of alerts in the history, use the token in the next request.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to display. The default is 100.

" + }, + "CreationTimeBefore":{ + "shape":"Timestamp", + "documentation":"

A filter that returns only alerts created on or before the specified time.

" + }, + "CreationTimeAfter":{ + "shape":"Timestamp", + "documentation":"

A filter that returns only alerts created on or after the specified time.

" + }, + "StatusEquals":{ + "shape":"MonitoringAlertStatus", + "documentation":"

A filter that retrieves only alerts with a specific status.

" + } + } + }, + "ListMonitoringAlertHistoryResponse":{ + "type":"structure", + "members":{ + "MonitoringAlertHistory":{ + "shape":"MonitoringAlertHistoryList", + "documentation":"

An alert history for a model monitoring schedule.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.

" + } + } + }, + "ListMonitoringAlertsRequest":{ + "type":"structure", + "required":["MonitoringScheduleName"], + "members":{ + "MonitoringScheduleName":{ + "shape":"MonitoringScheduleName", + "documentation":"

The name of a monitoring schedule.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the result of the previous ListMonitoringAlerts request was truncated, the response includes a NextToken. To retrieve the next set of alerts in the history, use the token in the next request.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to display. The default is 100.

" + } + } + }, + "ListMonitoringAlertsResponse":{ + "type":"structure", + "members":{ + "MonitoringAlertSummaries":{ + "shape":"MonitoringAlertSummaryList", + "documentation":"

A JSON array where each element is a summary for a monitoring alert.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response is truncated, SageMaker returns this token. To retrieve the next set of alerts, use it in the subsequent request.

" + } + } + }, "ListMonitoringExecutionsRequest":{ "type":"structure", "members":{ @@ -17720,7 +21731,7 @@ "required":["PipelineName"], "members":{ "PipelineName":{ - "shape":"PipelineName", + "shape":"PipelineNameOrArn", "documentation":"

The name of the pipeline.

" }, "CreatedAfter":{ @@ -17946,6 +21957,92 @@ } } }, + "ListSpacesRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

Returns a list up to a specified limit.

" + }, + "SortOrder":{ + "shape":"SortOrder", + "documentation":"

The sort order for the results. The default is Ascending.

" + }, + "SortBy":{ + "shape":"SpaceSortKey", + "documentation":"

The parameter by which to sort the results. The default is CreationTime.

" + }, + "DomainIdEquals":{ + "shape":"DomainId", + "documentation":"

A parameter to search for the Domain ID.

" + }, + "SpaceNameContains":{ + "shape":"SpaceName", + "documentation":"

A parameter by which to filter the results.

" + } + } + }, + "ListSpacesResponse":{ + "type":"structure", + "members":{ + "Spaces":{ + "shape":"SpaceList", + "documentation":"

The list of spaces.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the previous response was truncated, you will receive this token. Use it in your next request to receive the next set of results.

" + } + } + }, + "ListStageDevicesRequest":{ + "type":"structure", + "required":[ + "EdgeDeploymentPlanName", + "StageName" + ], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

The response from the last list when returning a list large enough to neeed tokening.

" + }, + "MaxResults":{ + "shape":"ListMaxResults", + "documentation":"

The maximum number of requests to select.

", + "box":true + }, + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan.

" + }, + "ExcludeDevicesDeployedInOtherStage":{ + "shape":"Boolean", + "documentation":"

Toggle for excluding devices deployed in other stages.

" + }, + "StageName":{ + "shape":"EntityName", + "documentation":"

The name of the stage in the deployment.

" + } + } + }, + "ListStageDevicesResponse":{ + "type":"structure", + "required":["DeviceDeploymentSummaries"], + "members":{ + "DeviceDeploymentSummaries":{ + "shape":"DeviceDeploymentSummaries", + "documentation":"

List of summaries of devices allocated to the stage.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use when calling the next page of results.

" + } + } + }, "ListStudioLifecycleConfigsRequest":{ "type":"structure", "members":{ @@ -18158,6 +22255,10 @@ "SortOrder":{ "shape":"SortOrder", "documentation":"

The sort order for results. The default is Ascending.

" + }, + "WarmPoolStatusEquals":{ + "shape":"WarmPoolResourceStatus", + "documentation":"

A filter that retrieves only training jobs with a specific warm pool status.

" } } }, @@ -18495,7 +22596,7 @@ }, "MaxConcurrentTaskCount":{ "type":"integer", - "max":1000, + "max":5000, "min":1 }, "MaxConcurrentTransforms":{ @@ -18714,18 +22815,60 @@ "members":{ "ContentType":{ "shape":"ContentType", - "documentation":"

" + "documentation":"

The metric source content type.

" }, "ContentDigest":{ "shape":"ContentDigest", - "documentation":"

" + "documentation":"

The hash key used for the metrics source.

" }, "S3Uri":{ "shape":"S3Uri", - "documentation":"

" + "documentation":"

The S3 URI for the metrics source.

" } }, - "documentation":"

" + "documentation":"

Details about the metrics source.

" + }, + "MinimumInstanceMetadataServiceVersion":{ + "type":"string", + "max":1, + "pattern":"1|2" + }, + "Model":{ + "type":"structure", + "members":{ + "ModelName":{ + "shape":"ModelName", + "documentation":"

The name of the model.

" + }, + "PrimaryContainer":{"shape":"ContainerDefinition"}, + "Containers":{ + "shape":"ContainerDefinitionList", + "documentation":"

The containers in the inference pipeline.

" + }, + "InferenceExecutionConfig":{"shape":"InferenceExecutionConfig"}, + "ExecutionRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that you specified for the model.

" + }, + "VpcConfig":{"shape":"VpcConfig"}, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when the model was created.

" + }, + "ModelArn":{ + "shape":"ModelArn", + "documentation":"

The Amazon Resource Name (ARN) of the model.

" + }, + "EnableNetworkIsolation":{ + "shape":"Boolean", + "documentation":"

Isolates the model container. No inbound or outbound network calls can be made to or from the model container.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

A list of key-value pairs associated with the model. For more information, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference Guide.

" + } + }, + "documentation":"

The properties of a model as returned by the Search API.

" }, "ModelApprovalStatus":{ "type":"string", @@ -18765,7 +22908,7 @@ }, "ConfigUri":{ "shape":"S3Uri", - "documentation":"

JSON formatted S3 file that defines bias parameters. For more information on this JSON configuration file, see Configure bias parameters.

" + "documentation":"

JSON formatted S3 file that defines bias parameters. For more information on this JSON configuration file, see Configure bias parameters.

" }, "Environment":{ "shape":"MonitoringEnvironmentMap", @@ -18787,12 +22930,13 @@ }, "ModelBiasJobInput":{ "type":"structure", - "required":[ - "EndpointInput", - "GroundTruthS3Input" - ], + "required":["GroundTruthS3Input"], "members":{ "EndpointInput":{"shape":"EndpointInput"}, + "BatchTransformInput":{ + "shape":"BatchTransformInput", + "documentation":"

Input object for the batch transform job.

" + }, "GroundTruthS3Input":{ "shape":"MonitoringGroundTruthS3Input", "documentation":"

Location of ground truth labels to use in model bias job.

" @@ -18807,6 +22951,293 @@ "Disabled" ] }, + "ModelCard":{ + "type":"structure", + "members":{ + "ModelCardArn":{ + "shape":"ModelCardArn", + "documentation":"

The Amazon Resource Name (ARN) of the model card.

" + }, + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The unique name of the model card.

" + }, + "ModelCardVersion":{ + "shape":"Integer", + "documentation":"

The version of the model card.

" + }, + "Content":{ + "shape":"ModelCardContent", + "documentation":"

The content of the model card. Content uses the model card JSON schema and provided as a string.

" + }, + "ModelCardStatus":{ + "shape":"ModelCardStatus", + "documentation":"

The approval status of the model card within your organization. Different organizations might have different criteria for model card review and approval.

  • Draft: The model card is a work in progress.

  • PendingReview: The model card is pending review.

  • Approved: The model card is approved.

  • Archived: The model card is archived. No more updates should be made to the model card, but it can still be exported.

" + }, + "SecurityConfig":{ + "shape":"ModelCardSecurityConfig", + "documentation":"

The security configuration used to protect model card data.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the model card was created.

" + }, + "CreatedBy":{"shape":"UserContext"}, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the model card was last modified.

" + }, + "LastModifiedBy":{"shape":"UserContext"}, + "Tags":{ + "shape":"TagList", + "documentation":"

Key-value pairs used to manage metadata for the model card.

" + }, + "ModelId":{ + "shape":"String", + "documentation":"

The unique name (ID) of the model.

" + }, + "RiskRating":{ + "shape":"String", + "documentation":"

The risk rating of the model. Different organizations might have different criteria for model card risk ratings. For more information, see Risk ratings.

" + } + }, + "documentation":"

An Amazon SageMaker Model Card.

" + }, + "ModelCardArn":{ + "type":"string", + "max":256, + "pattern":"^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]{9,16}:[0-9]{12}:model-card/[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$" + }, + "ModelCardContent":{ + "type":"string", + "max":100000, + "min":0, + "pattern":".*", + "sensitive":true + }, + "ModelCardExportArtifacts":{ + "type":"structure", + "required":["S3ExportArtifacts"], + "members":{ + "S3ExportArtifacts":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 URI of the exported model artifacts.

" + } + }, + "documentation":"

The artifacts of the model card export job.

" + }, + "ModelCardExportJobArn":{ + "type":"string", + "max":256, + "pattern":"^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]{9,16}:[0-9]{12}:model-card/[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}/export-job/[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$" + }, + "ModelCardExportJobSortBy":{ + "type":"string", + "documentation":"Attribute by which to sort returned export jobs.", + "enum":[ + "Name", + "CreationTime", + "Status" + ] + }, + "ModelCardExportJobSortOrder":{ + "type":"string", + "enum":[ + "Ascending", + "Descending" + ] + }, + "ModelCardExportJobStatus":{ + "type":"string", + "enum":[ + "InProgress", + "Completed", + "Failed" + ] + }, + "ModelCardExportJobSummary":{ + "type":"structure", + "required":[ + "ModelCardExportJobName", + "ModelCardExportJobArn", + "Status", + "ModelCardName", + "ModelCardVersion", + "CreatedAt", + "LastModifiedAt" + ], + "members":{ + "ModelCardExportJobName":{ + "shape":"EntityName", + "documentation":"

The name of the model card export job.

" + }, + "ModelCardExportJobArn":{ + "shape":"ModelCardExportJobArn", + "documentation":"

The Amazon Resource Name (ARN) of the model card export job.

" + }, + "Status":{ + "shape":"ModelCardExportJobStatus", + "documentation":"

The completion status of the model card export job.

" + }, + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of the model card that the export job exports.

" + }, + "ModelCardVersion":{ + "shape":"Integer", + "documentation":"

The version of the model card that the export job exports.

" + }, + "CreatedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the model card export job was created.

" + }, + "LastModifiedAt":{ + "shape":"Timestamp", + "documentation":"

The date and time that the model card export job was last modified..

" + } + }, + "documentation":"

The summary of the Amazon SageMaker Model Card export job.

" + }, + "ModelCardExportJobSummaryList":{ + "type":"list", + "member":{"shape":"ModelCardExportJobSummary"} + }, + "ModelCardExportOutputConfig":{ + "type":"structure", + "required":["S3OutputPath"], + "members":{ + "S3OutputPath":{ + "shape":"S3Uri", + "documentation":"

The Amazon S3 output path to export your model card PDF.

" + } + }, + "documentation":"

Configure the export output details for an Amazon SageMaker Model Card.

" + }, + "ModelCardProcessingStatus":{ + "type":"string", + "enum":[ + "DeleteInProgress", + "DeletePending", + "ContentDeleted", + "ExportJobsDeleted", + "DeleteCompleted", + "DeleteFailed" + ] + }, + "ModelCardSecurityConfig":{ + "type":"structure", + "members":{ + "KmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

A Key Management Service key ID to use for encrypting a model card.

" + } + }, + "documentation":"

Configure the security settings to protect model card data.

" + }, + "ModelCardSortBy":{ + "type":"string", + "enum":[ + "Name", + "CreationTime" + ] + }, + "ModelCardSortOrder":{ + "type":"string", + "enum":[ + "Ascending", + "Descending" + ] + }, + "ModelCardStatus":{ + "type":"string", + "enum":[ + "Draft", + "PendingReview", + "Approved", + "Archived" + ] + }, + "ModelCardSummary":{ + "type":"structure", + "required":[ + "ModelCardName", + "ModelCardArn", + "ModelCardStatus", + "CreationTime" + ], + "members":{ + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of the model card.

" + }, + "ModelCardArn":{ + "shape":"ModelCardArn", + "documentation":"

The Amazon Resource Name (ARN) of the model card.

" + }, + "ModelCardStatus":{ + "shape":"ModelCardStatus", + "documentation":"

The approval status of the model card within your organization. Different organizations might have different criteria for model card review and approval.

  • Draft: The model card is a work in progress.

  • PendingReview: The model card is pending review.

  • Approved: The model card is approved.

  • Archived: The model card is archived. No more updates should be made to the model card, but it can still be exported.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the model card was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the model card was last modified.

" + } + }, + "documentation":"

A summary of the model card.

" + }, + "ModelCardSummaryList":{ + "type":"list", + "member":{"shape":"ModelCardSummary"} + }, + "ModelCardVersionSortBy":{ + "type":"string", + "enum":["Version"] + }, + "ModelCardVersionSummary":{ + "type":"structure", + "required":[ + "ModelCardName", + "ModelCardArn", + "ModelCardStatus", + "ModelCardVersion", + "CreationTime" + ], + "members":{ + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of the model card.

" + }, + "ModelCardArn":{ + "shape":"ModelCardArn", + "documentation":"

The Amazon Resource Name (ARN) of the model card.

" + }, + "ModelCardStatus":{ + "shape":"ModelCardStatus", + "documentation":"

The approval status of the model card version within your organization. Different organizations might have different criteria for model card review and approval.

  • Draft: The model card is a work in progress.

  • PendingReview: The model card is pending review.

  • Approved: The model card is approved.

  • Archived: The model card is archived. No more updates should be made to the model card, but it can still be exported.

" + }, + "ModelCardVersion":{ + "shape":"Integer", + "documentation":"

A version of the model card.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the model card version was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The time date and time that the model card version was last modified.

" + } + }, + "documentation":"

A summary of a specific version of the model card.

" + }, + "ModelCardVersionSummaryList":{ + "type":"list", + "member":{"shape":"ModelCardVersionSummary"} + }, "ModelClientConfig":{ "type":"structure", "members":{ @@ -18835,6 +23266,172 @@ }, "documentation":"

Defines the model configuration. Includes the specification name and environment parameters.

" }, + "ModelDashboardEndpoint":{ + "type":"structure", + "required":[ + "EndpointName", + "EndpointArn", + "CreationTime", + "LastModifiedTime", + "EndpointStatus" + ], + "members":{ + "EndpointName":{ + "shape":"EndpointName", + "documentation":"

The endpoint name.

" + }, + "EndpointArn":{ + "shape":"EndpointArn", + "documentation":"

The Amazon Resource Name (ARN) of the endpoint.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when the endpoint was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The last time the endpoint was modified.

" + }, + "EndpointStatus":{ + "shape":"EndpointStatus", + "documentation":"

The endpoint status.

" + } + }, + "documentation":"

An endpoint that hosts a model displayed in the Amazon SageMaker Model Dashboard.

" + }, + "ModelDashboardEndpoints":{ + "type":"list", + "member":{"shape":"ModelDashboardEndpoint"} + }, + "ModelDashboardIndicatorAction":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether the alert action is turned on.

" + } + }, + "documentation":"

An alert action taken to light up an icon on the Amazon SageMaker Model Dashboard when an alert goes into InAlert status.

" + }, + "ModelDashboardModel":{ + "type":"structure", + "members":{ + "Model":{ + "shape":"Model", + "documentation":"

A model displayed in the Model Dashboard.

" + }, + "Endpoints":{ + "shape":"ModelDashboardEndpoints", + "documentation":"

The endpoints that host a model.

" + }, + "LastBatchTransformJob":{"shape":"TransformJob"}, + "MonitoringSchedules":{ + "shape":"ModelDashboardMonitoringSchedules", + "documentation":"

The monitoring schedules for a model.

" + }, + "ModelCard":{ + "shape":"ModelDashboardModelCard", + "documentation":"

The model card for a model.

" + } + }, + "documentation":"

A model displayed in the Amazon SageMaker Model Dashboard.

" + }, + "ModelDashboardModelCard":{ + "type":"structure", + "members":{ + "ModelCardArn":{ + "shape":"ModelCardArn", + "documentation":"

The Amazon Resource Name (ARN) for a model card.

" + }, + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of a model card.

" + }, + "ModelCardVersion":{ + "shape":"Integer", + "documentation":"

The model card version.

" + }, + "ModelCardStatus":{ + "shape":"ModelCardStatus", + "documentation":"

The model card status.

" + }, + "SecurityConfig":{ + "shape":"ModelCardSecurityConfig", + "documentation":"

The KMS Key ID (KMSKeyId) for encryption of model card information.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when the model card was created.

" + }, + "CreatedBy":{"shape":"UserContext"}, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when the model card was last updated.

" + }, + "LastModifiedBy":{"shape":"UserContext"}, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags associated with a model card.

" + }, + "ModelId":{ + "shape":"String", + "documentation":"

For models created in SageMaker, this is the model ARN. For models created outside of SageMaker, this is a user-customized string.

" + }, + "RiskRating":{ + "shape":"String", + "documentation":"

A model card's risk rating. Can be low, medium, or high.

" + } + }, + "documentation":"

The model card for a model displayed in the Amazon SageMaker Model Dashboard.

" + }, + "ModelDashboardMonitoringSchedule":{ + "type":"structure", + "members":{ + "MonitoringScheduleArn":{ + "shape":"MonitoringScheduleArn", + "documentation":"

The Amazon Resource Name (ARN) of a monitoring schedule.

" + }, + "MonitoringScheduleName":{ + "shape":"MonitoringScheduleName", + "documentation":"

The name of a monitoring schedule.

" + }, + "MonitoringScheduleStatus":{ + "shape":"ScheduleStatus", + "documentation":"

The status of the monitoring schedule.

" + }, + "MonitoringType":{ + "shape":"MonitoringType", + "documentation":"

The monitor type of a model monitor.

" + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

If a monitoring job failed, provides the reason.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when the monitoring schedule was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when the monitoring schedule was last updated.

" + }, + "MonitoringScheduleConfig":{"shape":"MonitoringScheduleConfig"}, + "EndpointName":{ + "shape":"EndpointName", + "documentation":"

The endpoint which is monitored.

" + }, + "MonitoringAlertSummaries":{ + "shape":"MonitoringAlertSummaryList", + "documentation":"

A JSON array where each element is a summary for a monitoring alert.

" + }, + "LastMonitoringExecutionSummary":{"shape":"MonitoringExecutionSummary"} + }, + "documentation":"

A monitoring schedule for a model displayed in the Amazon SageMaker Model Dashboard.

" + }, + "ModelDashboardMonitoringSchedules":{ + "type":"list", + "member":{"shape":"ModelDashboardMonitoringSchedule"} + }, "ModelDataQuality":{ "type":"structure", "members":{ @@ -18896,7 +23493,7 @@ }, "ConfigUri":{ "shape":"S3Uri", - "documentation":"

JSON formatted S3 file that defines explainability parameters. For more information on this JSON configuration file, see Configure model explainability parameters.

" + "documentation":"

JSON formatted S3 file that defines explainability parameters. For more information on this JSON configuration file, see Configure model explainability parameters.

" }, "Environment":{ "shape":"MonitoringEnvironmentMap", @@ -18918,12 +23515,37 @@ }, "ModelExplainabilityJobInput":{ "type":"structure", - "required":["EndpointInput"], "members":{ - "EndpointInput":{"shape":"EndpointInput"} + "EndpointInput":{"shape":"EndpointInput"}, + "BatchTransformInput":{ + "shape":"BatchTransformInput", + "documentation":"

Input object for the batch transform job.

" + } }, "documentation":"

Inputs for the model explainability job.

" }, + "ModelInfrastructureConfig":{ + "type":"structure", + "required":[ + "InfrastructureType", + "RealTimeInferenceConfig" + ], + "members":{ + "InfrastructureType":{ + "shape":"ModelInfrastructureType", + "documentation":"

The inference option to which to deploy your model. Possible values are the following:

  • RealTime: Deploy to real-time inference.

" + }, + "RealTimeInferenceConfig":{ + "shape":"RealTimeInferenceConfig", + "documentation":"

The infrastructure configuration for deploying the model to real-time inference.

" + } + }, + "documentation":"

The configuration for the infrastructure that the model will be deployed to.

" + }, + "ModelInfrastructureType":{ + "type":"string", + "enum":["RealTimeInference"] + }, "ModelInput":{ "type":"structure", "required":["DataInputConfig"], @@ -19098,14 +23720,26 @@ "shape":"CreationTime", "documentation":"

The time that the model package was created.

" }, - "InferenceSpecification":{"shape":"InferenceSpecification"}, - "SourceAlgorithmSpecification":{"shape":"SourceAlgorithmSpecification"}, - "ValidationSpecification":{"shape":"ModelPackageValidationSpecification"}, + "InferenceSpecification":{ + "shape":"InferenceSpecification", + "documentation":"

Defines how to perform inference generation after a training job is run.

" + }, + "SourceAlgorithmSpecification":{ + "shape":"SourceAlgorithmSpecification", + "documentation":"

A list of algorithms that were used to create a model package.

" + }, + "ValidationSpecification":{ + "shape":"ModelPackageValidationSpecification", + "documentation":"

Specifies batch transform jobs that SageMaker runs to validate your model package.

" + }, "ModelPackageStatus":{ "shape":"ModelPackageStatus", "documentation":"

The status of the model package. This can be one of the following values.

  • PENDING - The model package is pending being created.

  • IN_PROGRESS - The model package is in the process of being created.

  • COMPLETED - The model package was successfully created.

  • FAILED - The model package failed.

  • DELETING - The model package is in the process of being deleted.

" }, - "ModelPackageStatusDetails":{"shape":"ModelPackageStatusDetails"}, + "ModelPackageStatusDetails":{ + "shape":"ModelPackageStatusDetails", + "documentation":"

Specifies the validation and image scan statuses of the model package.

" + }, "CertifyForMarketplace":{ "shape":"CertifyForMarketplace", "documentation":"

Whether the model package is to be certified to be listed on Amazon Web Services Marketplace. For information about listing model packages on Amazon Web Services Marketplace, see List Your Algorithm or Model Package on Amazon Web Services Marketplace.

" @@ -19114,8 +23748,14 @@ "shape":"ModelApprovalStatus", "documentation":"

The approval status of the model. This can be one of the following values.

  • APPROVED - The model is approved

  • REJECTED - The model is rejected.

  • PENDING_MANUAL_APPROVAL - The model is waiting for manual approval.

" }, - "CreatedBy":{"shape":"UserContext"}, - "MetadataProperties":{"shape":"MetadataProperties"}, + "CreatedBy":{ + "shape":"UserContext", + "documentation":"

Information about the user who created or modified an experiment, trial, trial component, lineage group, or project.

" + }, + "MetadataProperties":{ + "shape":"MetadataProperties", + "documentation":"

Metadata properties of the tracking entity, trial, or trial component.

" + }, "ModelMetrics":{ "shape":"ModelMetrics", "documentation":"

Metrics for the model.

" @@ -19124,7 +23764,10 @@ "shape":"Timestamp", "documentation":"

The last time the model package was modified.

" }, - "LastModifiedBy":{"shape":"UserContext"}, + "LastModifiedBy":{ + "shape":"UserContext", + "documentation":"

Information about the user who created or modified an experiment, trial, trial component, lineage group, or project.

" + }, "ApprovalDescription":{ "shape":"ApprovalDescription", "documentation":"

A description provided when the model approval is set.

" @@ -19209,7 +23852,7 @@ "documentation":"

The machine learning framework of the model package container image.

" }, "FrameworkVersion":{ - "shape":"FrameworkVersion", + "shape":"ModelPackageFrameworkVersion", "documentation":"

The framework version of the Model Package Container Image.

" }, "NearestModelName":{ @@ -19225,6 +23868,12 @@ "max":15, "min":1 }, + "ModelPackageFrameworkVersion":{ + "type":"string", + "max":10, + "min":3, + "pattern":"[0-9]\\.[A-Za-z0-9.-]+" + }, "ModelPackageGroup":{ "type":"structure", "members":{ @@ -19543,12 +24192,13 @@ }, "ModelQualityJobInput":{ "type":"structure", - "required":[ - "EndpointInput", - "GroundTruthS3Input" - ], + "required":["GroundTruthS3Input"], "members":{ "EndpointInput":{"shape":"EndpointInput"}, + "BatchTransformInput":{ + "shape":"BatchTransformInput", + "documentation":"

Input object for the batch transform job.

" + }, "GroundTruthS3Input":{ "shape":"MonitoringGroundTruthS3Input", "documentation":"

The ground truth label provided for the model.

" @@ -19600,6 +24250,208 @@ "type":"list", "member":{"shape":"ModelSummary"} }, + "ModelVariantAction":{ + "type":"string", + "enum":[ + "Retain", + "Remove", + "Promote" + ] + }, + "ModelVariantActionMap":{ + "type":"map", + "key":{"shape":"ModelVariantName"}, + "value":{"shape":"ModelVariantAction"}, + "max":2, + "min":1 + }, + "ModelVariantConfig":{ + "type":"structure", + "required":[ + "ModelName", + "VariantName", + "InfrastructureConfig" + ], + "members":{ + "ModelName":{ + "shape":"ModelName", + "documentation":"

The name of the model.

" + }, + "VariantName":{ + "shape":"ModelVariantName", + "documentation":"

The name of the variant.

" + }, + "InfrastructureConfig":{ + "shape":"ModelInfrastructureConfig", + "documentation":"

The configuration for the infrastructure that the model will be deployed to.

" + } + }, + "documentation":"

Contains information about the deployment options of a model.

" + }, + "ModelVariantConfigList":{ + "type":"list", + "member":{"shape":"ModelVariantConfig"}, + "max":2, + "min":1 + }, + "ModelVariantConfigSummary":{ + "type":"structure", + "required":[ + "ModelName", + "VariantName", + "InfrastructureConfig", + "Status" + ], + "members":{ + "ModelName":{ + "shape":"ModelName", + "documentation":"

The name of the model.

" + }, + "VariantName":{ + "shape":"ModelVariantName", + "documentation":"

The name of the variant.

" + }, + "InfrastructureConfig":{ + "shape":"ModelInfrastructureConfig", + "documentation":"

The configuration of the infrastructure that the model has been deployed to.

" + }, + "Status":{ + "shape":"ModelVariantStatus", + "documentation":"

The status of the deployment.

" + } + }, + "documentation":"

Summary of the deployment configuration of a model.

" + }, + "ModelVariantConfigSummaryList":{ + "type":"list", + "member":{"shape":"ModelVariantConfigSummary"} + }, + "ModelVariantName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9]([\\-a-zA-Z0-9]*[a-zA-Z0-9])?" + }, + "ModelVariantStatus":{ + "type":"string", + "enum":[ + "Creating", + "Updating", + "InService", + "Deleting", + "Deleted" + ] + }, + "MonitoringAlertActions":{ + "type":"structure", + "members":{ + "ModelDashboardIndicator":{ + "shape":"ModelDashboardIndicatorAction", + "documentation":"

An alert action taken to light up an icon on the Model Dashboard when an alert goes into InAlert status.

" + } + }, + "documentation":"

A list of alert actions taken in response to an alert going into InAlert status.

" + }, + "MonitoringAlertHistoryList":{ + "type":"list", + "member":{"shape":"MonitoringAlertHistorySummary"} + }, + "MonitoringAlertHistorySortKey":{ + "type":"string", + "enum":[ + "CreationTime", + "Status" + ] + }, + "MonitoringAlertHistorySummary":{ + "type":"structure", + "required":[ + "MonitoringScheduleName", + "MonitoringAlertName", + "CreationTime", + "AlertStatus" + ], + "members":{ + "MonitoringScheduleName":{ + "shape":"MonitoringScheduleName", + "documentation":"

The name of a monitoring schedule.

" + }, + "MonitoringAlertName":{ + "shape":"MonitoringAlertName", + "documentation":"

The name of a monitoring alert.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when the first alert transition occurred in an alert history. An alert transition can be from status InAlert to OK, or from OK to InAlert.

" + }, + "AlertStatus":{ + "shape":"MonitoringAlertStatus", + "documentation":"

The current alert status of an alert.

" + } + }, + "documentation":"

Provides summary information of an alert's history.

" + }, + "MonitoringAlertName":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$" + }, + "MonitoringAlertStatus":{ + "type":"string", + "enum":[ + "InAlert", + "OK" + ] + }, + "MonitoringAlertSummary":{ + "type":"structure", + "required":[ + "MonitoringAlertName", + "CreationTime", + "LastModifiedTime", + "AlertStatus", + "DatapointsToAlert", + "EvaluationPeriod", + "Actions" + ], + "members":{ + "MonitoringAlertName":{ + "shape":"MonitoringAlertName", + "documentation":"

The name of a monitoring alert.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when a monitor alert was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

A timestamp that indicates when a monitor alert was last updated.

" + }, + "AlertStatus":{ + "shape":"MonitoringAlertStatus", + "documentation":"

The current status of an alert.

" + }, + "DatapointsToAlert":{ + "shape":"MonitoringDatapointsToAlert", + "documentation":"

Within EvaluationPeriod, how many execution failures will raise an alert.

" + }, + "EvaluationPeriod":{ + "shape":"MonitoringEvaluationPeriod", + "documentation":"

The number of most recent monitoring executions to consider when evaluating alert status.

" + }, + "Actions":{ + "shape":"MonitoringAlertActions", + "documentation":"

A list of alert actions taken in response to an alert going into InAlert status.

" + } + }, + "documentation":"

Provides summary information about a monitor alert.

" + }, + "MonitoringAlertSummaryList":{ + "type":"list", + "member":{"shape":"MonitoringAlertSummary"}, + "max":100, + "min":1 + }, "MonitoringAppSpecification":{ "type":"structure", "required":["ImageUri"], @@ -19688,12 +24540,50 @@ "max":50, "min":1 }, + "MonitoringCsvDatasetFormat":{ + "type":"structure", + "members":{ + "Header":{ + "shape":"Boolean", + "documentation":"

Indicates if the CSV data has a header.

" + } + }, + "documentation":"

Represents the CSV dataset format used when running a monitoring job.

" + }, + "MonitoringDatapointsToAlert":{ + "type":"integer", + "max":100, + "min":1 + }, + "MonitoringDatasetFormat":{ + "type":"structure", + "members":{ + "Csv":{ + "shape":"MonitoringCsvDatasetFormat", + "documentation":"

The CSV dataset used in the monitoring job.

" + }, + "Json":{ + "shape":"MonitoringJsonDatasetFormat", + "documentation":"

The JSON dataset used in the monitoring job

" + }, + "Parquet":{ + "shape":"MonitoringParquetDatasetFormat", + "documentation":"

The Parquet dataset used in the monitoring job

" + } + }, + "documentation":"

Represents the dataset format used when running a monitoring job.

" + }, "MonitoringEnvironmentMap":{ "type":"map", "key":{"shape":"ProcessingEnvironmentKey"}, "value":{"shape":"ProcessingEnvironmentValue"}, "max":50 }, + "MonitoringEvaluationPeriod":{ + "type":"integer", + "max":100, + "min":1 + }, "MonitoringExecutionSortKey":{ "type":"string", "enum":[ @@ -19771,11 +24661,14 @@ }, "MonitoringInput":{ "type":"structure", - "required":["EndpointInput"], "members":{ "EndpointInput":{ "shape":"EndpointInput", "documentation":"

The endpoint for a monitoring job.

" + }, + "BatchTransformInput":{ + "shape":"BatchTransformInput", + "documentation":"

Input object for the batch transform job.

" } }, "documentation":"

The inputs for a monitoring job.

" @@ -19885,6 +24778,16 @@ "type":"list", "member":{"shape":"MonitoringJobDefinitionSummary"} }, + "MonitoringJsonDatasetFormat":{ + "type":"structure", + "members":{ + "Line":{ + "shape":"Boolean", + "documentation":"

Indicates if the file should be read as a json object per line.

" + } + }, + "documentation":"

Represents the JSON dataset format used when running a monitoring job.

" + }, "MonitoringMaxRuntimeInSeconds":{ "type":"integer", "max":86400, @@ -19937,6 +24840,12 @@ "max":1, "min":1 }, + "MonitoringParquetDatasetFormat":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the Parquet dataset format used when running a monitoring job.

" + }, "MonitoringProblemType":{ "type":"string", "enum":[ @@ -20529,6 +25438,10 @@ "DataCatalogConfig":{ "shape":"DataCatalogConfig", "documentation":"

The meta data of the Glue table that is autogenerated when an OfflineStore is created.

" + }, + "TableFormat":{ + "shape":"TableFormat", + "documentation":"

Format for the offline store feature group. Iceberg is the optimal format for feature groups shared between offline and online stores.

" } }, "documentation":"

The configuration of an OfflineStore.

Provide an OfflineStoreConfig in a request to CreateFeatureGroup to create an OfflineStore.

To encrypt an OfflineStore using at rest data encryption, specify Amazon Web Services Key Management Service (KMS) key ID, or KMSKeyId, in S3StorageConfig.

" @@ -20678,6 +25591,7 @@ }, "documentation":"

The security configuration for OnlineStore.

" }, + "OnlineStoreTotalSizeBytes":{"type":"long"}, "Operator":{ "type":"string", "enum":[ @@ -20856,7 +25770,7 @@ "documentation":"

The array of CategoricalParameterRange objects that specify ranges of categorical hyperparameters that a hyperparameter tuning job searches.

" } }, - "documentation":"

Specifies ranges of integer, continuous, and categorical hyperparameters that a hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs with hyperparameter values within these ranges to find the combination of values that result in the training job with the best performance as measured by the objective metric of the hyperparameter tuning job.

You can specify a maximum of 20 hyperparameters that a hyperparameter tuning job can search over. Every possible value of a categorical parameter range counts against this limit.

" + "documentation":"

Specifies ranges of integer, continuous, and categorical hyperparameters that a hyperparameter tuning job searches. The hyperparameter tuning job launches training jobs with hyperparameter values within these ranges to find the combination of values that result in the training job with the best performance as measured by the objective metric of the hyperparameter tuning job.

The maximum number of items specified for Array Members refers to the maximum number of hyperparameters for each range and also the maximum for the hyperparameter tuning job itself. That is, the sum of the number of hyperparameters for all the ranges can't exceed the maximum number specified.

" }, "ParameterType":{ "type":"string", @@ -20875,7 +25789,7 @@ "ParameterValues":{ "type":"list", "member":{"shape":"ParameterValue"}, - "max":20, + "max":30, "min":1 }, "Parent":{ @@ -20927,6 +25841,10 @@ "StartTime":{ "shape":"Timestamp", "documentation":"

The start time of the deployment.

" + }, + "ShadowProductionVariants":{ + "shape":"PendingProductionVariantSummaryList", + "documentation":"

Array of ProductionVariant objects, one for each model that you want to host at this endpoint in shadow mode with production traffic replicated from the model specified on ProductionVariants.If you use this field, you can only specify one variant for ProductionVariants and one variant for ShadowProductionVariants.

" } }, "documentation":"

The summary of an in-progress deployment when an endpoint is creating or updating with a new endpoint configuration.

" @@ -20987,6 +25905,10 @@ "member":{"shape":"PendingProductionVariantSummary"}, "min":1 }, + "Percentage":{ + "type":"integer", + "max":100 + }, "Phase":{ "type":"structure", "members":{ @@ -21223,7 +26145,7 @@ }, "Metadata":{ "shape":"PipelineExecutionStepMetadata", - "documentation":"

Metadata for the step execution.

" + "documentation":"

Metadata to run the pipeline step.

" } }, "documentation":"

An execution of a step in a pipeline.

" @@ -21259,7 +26181,7 @@ }, "RegisterModel":{ "shape":"RegisterModelStepMetadata", - "documentation":"

The Amazon Resource Name (ARN) of the model package the model was registered to by this step execution.

" + "documentation":"

The Amazon Resource Name (ARN) of the model package that the model was registered to by this step execution.

" }, "Condition":{ "shape":"ConditionStepMetadata", @@ -21275,7 +26197,7 @@ }, "QualityCheck":{ "shape":"QualityCheckStepMetadata", - "documentation":"

The configurations and outcomes of the check step execution. This includes:

  • The type of the check conducted,

  • The Amazon S3 URIs of baseline constraints and statistics files to be used for the drift check.

  • The Amazon S3 URIs of newly calculated baseline constraints and statistics.

  • The model package group name provided.

  • The Amazon S3 URI of the violation report if violations detected.

  • The Amazon Resource Name (ARN) of check processing job initiated by the step execution.

  • The boolean flags indicating if the drift check is skipped.

  • If step property BaselineUsedForDriftCheck is set the same as CalculatedBaseline.

" + "documentation":"

The configurations and outcomes of the check step execution. This includes:

  • The type of the check conducted.

  • The Amazon S3 URIs of baseline constraints and statistics files to be used for the drift check.

  • The Amazon S3 URIs of newly calculated baseline constraints and statistics.

  • The model package group name provided.

  • The Amazon S3 URI of the violation report if violations detected.

  • The Amazon Resource Name (ARN) of check processing job initiated by the step execution.

  • The Boolean flags indicating if the drift check is skipped.

  • If step property BaselineUsedForDriftCheck is set the same as CalculatedBaseline.

" }, "ClarifyCheck":{ "shape":"ClarifyCheckStepMetadata", @@ -21283,11 +26205,15 @@ }, "EMR":{ "shape":"EMRStepMetadata", - "documentation":"

The configurations and outcomes of an EMR step execution.

" + "documentation":"

The configurations and outcomes of an Amazon EMR step execution.

" }, "Fail":{ "shape":"FailStepMetadata", "documentation":"

The configurations and outcomes of a Fail step execution.

" + }, + "AutoMLJob":{ + "shape":"AutoMLJobStepMetadata", + "documentation":"

The Amazon Resource Name (ARN) of the AutoML job that was run by this step.

" } }, "documentation":"

Metadata for a step execution.

" @@ -21348,6 +26274,12 @@ "min":1, "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,255}" }, + "PipelineNameOrArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:pipeline/.*)?([a-zA-Z0-9](-*[a-zA-Z0-9]){0,255})" + }, "PipelineParameterName":{ "type":"string", "max":256, @@ -21405,7 +26337,7 @@ "PlatformIdentifier":{ "type":"string", "max":15, - "pattern":"^(notebook-al1-v1|notebook-al2-v1)$" + "pattern":"^(notebook-al1-v1|notebook-al2-v1|notebook-al2-v2)$" }, "PolicyString":{ "type":"string", @@ -21935,6 +26867,18 @@ "ServerlessConfig":{ "shape":"ProductionVariantServerlessConfig", "documentation":"

The serverless configuration for an endpoint. Specifies a serverless endpoint configuration instead of an instance-based endpoint configuration.

" + }, + "VolumeSizeInGB":{ + "shape":"ProductionVariantVolumeSizeInGB", + "documentation":"

The size, in GB, of the ML storage volume attached to individual inference instance associated with the production variant. Currenly only Amazon EBS gp2 storage volumes are supported.

" + }, + "ModelDataDownloadTimeoutInSeconds":{ + "shape":"ProductionVariantModelDataDownloadTimeoutInSeconds", + "documentation":"

The timeout value, in seconds, to download and extract the model that you want to host from Amazon S3 to the individual inference instance associated with this production variant.

" + }, + "ContainerStartupHealthCheckTimeoutInSeconds":{ + "shape":"ProductionVariantContainerStartupHealthCheckTimeoutInSeconds", + "documentation":"

The timeout value, in seconds, for your inference container to pass health check by SageMaker Hosting. For more information about health check, see How Your Container Should Respond to Health Check (Ping) Requests.

" } }, "documentation":"

Identifies a model that you want to host and the resources chosen to deploy for hosting it. If you are deploying multiple models, tell SageMaker how to distribute traffic among the models by specifying variant weights.

" @@ -21950,6 +26894,11 @@ "ml.eia2.xlarge" ] }, + "ProductionVariantContainerStartupHealthCheckTimeoutInSeconds":{ + "type":"integer", + "max":3600, + "min":60 + }, "ProductionVariantCoreDumpConfig":{ "type":"structure", "required":["DestinationS3Uri"], @@ -22033,7 +26982,81 @@ "ml.inf1.xlarge", "ml.inf1.2xlarge", "ml.inf1.6xlarge", - "ml.inf1.24xlarge" + "ml.inf1.24xlarge", + "ml.c6i.large", + "ml.c6i.xlarge", + "ml.c6i.2xlarge", + "ml.c6i.4xlarge", + "ml.c6i.8xlarge", + "ml.c6i.12xlarge", + "ml.c6i.16xlarge", + "ml.c6i.24xlarge", + "ml.c6i.32xlarge", + "ml.g5.xlarge", + "ml.g5.2xlarge", + "ml.g5.4xlarge", + "ml.g5.8xlarge", + "ml.g5.12xlarge", + "ml.g5.16xlarge", + "ml.g5.24xlarge", + "ml.g5.48xlarge", + "ml.p4d.24xlarge", + "ml.c7g.large", + "ml.c7g.xlarge", + "ml.c7g.2xlarge", + "ml.c7g.4xlarge", + "ml.c7g.8xlarge", + "ml.c7g.12xlarge", + "ml.c7g.16xlarge", + "ml.m6g.large", + "ml.m6g.xlarge", + "ml.m6g.2xlarge", + "ml.m6g.4xlarge", + "ml.m6g.8xlarge", + "ml.m6g.12xlarge", + "ml.m6g.16xlarge", + "ml.m6gd.large", + "ml.m6gd.xlarge", + "ml.m6gd.2xlarge", + "ml.m6gd.4xlarge", + "ml.m6gd.8xlarge", + "ml.m6gd.12xlarge", + "ml.m6gd.16xlarge", + "ml.c6g.large", + "ml.c6g.xlarge", + "ml.c6g.2xlarge", + "ml.c6g.4xlarge", + "ml.c6g.8xlarge", + "ml.c6g.12xlarge", + "ml.c6g.16xlarge", + "ml.c6gd.large", + "ml.c6gd.xlarge", + "ml.c6gd.2xlarge", + "ml.c6gd.4xlarge", + "ml.c6gd.8xlarge", + "ml.c6gd.12xlarge", + "ml.c6gd.16xlarge", + "ml.c6gn.large", + "ml.c6gn.xlarge", + "ml.c6gn.2xlarge", + "ml.c6gn.4xlarge", + "ml.c6gn.8xlarge", + "ml.c6gn.12xlarge", + "ml.c6gn.16xlarge", + "ml.r6g.large", + "ml.r6g.xlarge", + "ml.r6g.2xlarge", + "ml.r6g.4xlarge", + "ml.r6g.8xlarge", + "ml.r6g.12xlarge", + "ml.r6g.16xlarge", + "ml.r6gd.large", + "ml.r6gd.xlarge", + "ml.r6gd.2xlarge", + "ml.r6gd.4xlarge", + "ml.r6gd.8xlarge", + "ml.r6gd.12xlarge", + "ml.r6gd.16xlarge" ] }, "ProductionVariantList":{ @@ -22042,6 +27065,11 @@ "max":10, "min":1 }, + "ProductionVariantModelDataDownloadTimeoutInSeconds":{ + "type":"integer", + "max":3600, + "min":60 + }, "ProductionVariantServerlessConfig":{ "type":"structure", "required":[ @@ -22133,9 +27161,13 @@ "member":{"shape":"ProductionVariantSummary"}, "min":1 }, + "ProductionVariantVolumeSizeInGB":{ + "type":"integer", + "max":512, + "min":1 + }, "ProfilerConfig":{ "type":"structure", - "required":["S3OutputPath"], "members":{ "S3OutputPath":{ "shape":"S3Uri", @@ -22148,9 +27180,13 @@ "ProfilingParameters":{ "shape":"ProfilingParameters", "documentation":"

Configuration information for capturing framework metrics. Available key strings for different profiling options are DetailedProfilingConfig, PythonProfilingConfig, and DataLoaderProfilingConfig. The following codes are configuration structures for the ProfilingParameters parameter. To learn more about how to configure the ProfilingParameters parameter, see Use the SageMaker and Debugger Configuration API Operations to Create, Update, and Debug Your Training Job.

" + }, + "DisableProfiler":{ + "shape":"DisableProfiler", + "documentation":"

Configuration to turn off Amazon SageMaker Debugger's system monitoring and profiling functionality. To turn it off, set to True.

" } }, - "documentation":"

Configuration information for Debugger system monitoring, framework profiling, and storage paths.

" + "documentation":"

Configuration information for Amazon SageMaker Debugger system monitoring, framework profiling, and storage paths.

" }, "ProfilerConfigForUpdate":{ "type":"structure", @@ -22169,10 +27205,10 @@ }, "DisableProfiler":{ "shape":"DisableProfiler", - "documentation":"

To disable Debugger monitoring and profiling, set to True.

" + "documentation":"

To turn off Amazon SageMaker Debugger monitoring and profiling while a training job is in progress, set to True.

" } }, - "documentation":"

Configuration information for updating the Debugger profile parameters, system and framework metrics configurations, and storage paths.

" + "documentation":"

Configuration information for updating the Amazon SageMaker Debugger profile parameters, system and framework metrics configurations, and storage paths.

" }, "ProfilerRuleConfiguration":{ "type":"structure", @@ -22195,11 +27231,11 @@ }, "RuleEvaluatorImage":{ "shape":"AlgorithmImage", - "documentation":"

The Amazon Elastic Container (ECR) Image for the managed rule evaluation.

" + "documentation":"

The Amazon Elastic Container Registry Image for the managed rule evaluation.

" }, "InstanceType":{ "shape":"ProcessingInstanceType", - "documentation":"

The instance type to deploy a Debugger custom rule for profiling a training job.

" + "documentation":"

The instance type to deploy a custom rule for profiling a training job.

" }, "VolumeSizeInGB":{ "shape":"OptionalVolumeSizeInGB", @@ -22589,7 +27625,6 @@ }, "QueryLineageRequest":{ "type":"structure", - "required":["StartArns"], "members":{ "StartArns":{ "shape":"QueryLineageStartArns", @@ -22642,7 +27677,7 @@ "type":"list", "member":{"shape":"AssociationEntityArn"}, "max":1, - "min":1 + "min":0 }, "QueryLineageTypes":{ "type":"list", @@ -22731,10 +27766,29 @@ "R_STUDIO_USER" ] }, + "RealTimeInferenceConfig":{ + "type":"structure", + "required":[ + "InstanceType", + "InstanceCount" + ], + "members":{ + "InstanceType":{ + "shape":"InstanceType", + "documentation":"

The number of instances of the type specified by InstanceType.

" + }, + "InstanceCount":{ + "shape":"TaskCount", + "documentation":"

The instance type the model is deployed to.

" + } + }, + "documentation":"

The infrastructure configuration for deploying the model to real-time inference.

" + }, "RealtimeInferenceInstanceTypes":{ "type":"list", "member":{"shape":"ProductionVariantInstanceType"} }, + "RecommendationFailureReason":{"type":"string"}, "RecommendationJobArn":{ "type":"string", "max":256, @@ -22750,10 +27804,58 @@ }, "documentation":"

Provides information about the output configuration for the compiled model.

" }, + "RecommendationJobContainerConfig":{ + "type":"structure", + "members":{ + "Domain":{ + "shape":"String", + "documentation":"

The machine learning domain of the model and its components.

Valid Values: COMPUTER_VISION | NATURAL_LANGUAGE_PROCESSING | MACHINE_LEARNING

" + }, + "Task":{ + "shape":"String", + "documentation":"

The machine learning task that the model accomplishes.

Valid Values: IMAGE_CLASSIFICATION | OBJECT_DETECTION | TEXT_GENERATION | IMAGE_SEGMENTATION | FILL_MASK | CLASSIFICATION | REGRESSION | OTHER

" + }, + "Framework":{ + "shape":"String", + "documentation":"

The machine learning framework of the container image.

Valid Values: TENSORFLOW | PYTORCH | XGBOOST | SAGEMAKER-SCIKIT-LEARN

" + }, + "FrameworkVersion":{ + "shape":"String", + "documentation":"

The framework version of the container image.

" + }, + "PayloadConfig":{ + "shape":"RecommendationJobPayloadConfig", + "documentation":"

Specifies the SamplePayloadUrl and all other sample payload-related fields.

" + }, + "NearestModelName":{ + "shape":"String", + "documentation":"

The name of a pre-trained machine learning model benchmarked by Amazon SageMaker Inference Recommender that matches your model.

Valid Values: efficientnetb7 | unet | xgboost | faster-rcnn-resnet101 | nasnetlarge | vgg16 | inception-v3 | mask-rcnn | sagemaker-scikit-learn | densenet201-gluon | resnet18v2-gluon | xception | densenet201 | yolov4 | resnet152 | bert-base-cased | xceptionV1-keras | resnet50 | retinanet

" + }, + "SupportedInstanceTypes":{ + "shape":"RecommendationJobSupportedInstanceTypes", + "documentation":"

A list of the instance types that are used to generate inferences in real-time.

" + } + }, + "documentation":"

Specifies mandatory fields for running an Inference Recommender job directly in the CreateInferenceRecommendationsJob API. The fields specified in ContainerConfig override the corresponding fields in the model package. Use ContainerConfig if you want to specify these fields for the recommendation job but don't want to edit them in your model package.

" + }, "RecommendationJobDescription":{ "type":"string", "max":128 }, + "RecommendationJobInferenceBenchmark":{ + "type":"structure", + "required":["ModelConfiguration"], + "members":{ + "Metrics":{"shape":"RecommendationMetrics"}, + "EndpointConfiguration":{"shape":"EndpointOutputConfiguration"}, + "ModelConfiguration":{"shape":"ModelConfiguration"}, + "FailureReason":{ + "shape":"RecommendationFailureReason", + "documentation":"

The reason why a benchmark failed.

" + } + }, + "documentation":"

The details for a specific benchmark from an Inference Recommender job.

" + }, "RecommendationJobInputConfig":{ "type":"structure", "required":["ModelPackageVersionArn"], @@ -22781,6 +27883,14 @@ "VolumeKmsKeyId":{ "shape":"KmsKeyId", "documentation":"

The Amazon Resource Name (ARN) of a Amazon Web Services Key Management Service (Amazon Web Services KMS) key that Amazon SageMaker uses to encrypt data on the storage volume attached to the ML compute instance that hosts the endpoint. This key will be passed to SageMaker Hosting for endpoint creation.

The SageMaker execution role must have kms:CreateGrant permission in order to encrypt data on the storage volume of the endpoints created for inference recommendation. The inference recommendation job will fail asynchronously during endpoint configuration creation if the role passed does not have kms:CreateGrant permission.

The KmsKeyId can be any of the following formats:

  • // KMS Key ID

    \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • // Amazon Resource Name (ARN) of a KMS Key

    \"arn:aws:kms:<region>:<account>:key/<key-id-12ab-34cd-56ef-1234567890ab>\"

  • // KMS Key Alias

    \"alias/ExampleAlias\"

  • // Amazon Resource Name (ARN) of a KMS Key Alias

    \"arn:aws:kms:<region>:<account>:alias/<ExampleAlias>\"

For more information about key identifiers, see Key identifiers (KeyID) in the Amazon Web Services Key Management Service (Amazon Web Services KMS) documentation.

" + }, + "ContainerConfig":{ + "shape":"RecommendationJobContainerConfig", + "documentation":"

Specifies mandatory fields for running an Inference Recommender job. The fields specified in ContainerConfig override the corresponding fields in the model package.

" + }, + "Endpoints":{ + "shape":"Endpoints", + "documentation":"

Existing customer endpoints on which to run an Inference Recommender job.

" } }, "documentation":"

The input configuration of the recommendation job.

" @@ -22805,6 +27915,20 @@ }, "documentation":"

Provides information about the output configuration for the compiled model.

" }, + "RecommendationJobPayloadConfig":{ + "type":"structure", + "members":{ + "SamplePayloadUrl":{ + "shape":"String", + "documentation":"

The Amazon Simple Storage Service (Amazon S3) path where the sample payload is stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).

" + }, + "SupportedContentTypes":{ + "shape":"RecommendationJobSupportedContentTypes", + "documentation":"

The supported MIME types for the input data.

" + } + }, + "documentation":"

The configuration for the payload for a recommendation job.

" + }, "RecommendationJobResourceLimit":{ "type":"structure", "members":{ @@ -22844,6 +27968,14 @@ }, "documentation":"

Specifies conditions for stopping a job. When a job reaches a stopping condition limit, SageMaker ends the job.

" }, + "RecommendationJobSupportedContentTypes":{ + "type":"list", + "member":{"shape":"String"} + }, + "RecommendationJobSupportedInstanceTypes":{ + "type":"list", + "member":{"shape":"String"} + }, "RecommendationJobType":{ "type":"string", "enum":[ @@ -22879,6 +28011,10 @@ }, "documentation":"

The metrics of recommendations.

" }, + "RecommendationStepType":{ + "type":"string", + "enum":["BENCHMARK"] + }, "RecordWrapper":{ "type":"string", "enum":[ @@ -23096,6 +28232,11 @@ "min":1, "pattern":".*" }, + "RepositoryUrl":{ + "type":"string", + "max":1024, + "pattern":"^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$" + }, "ResolvedAttributes":{ "type":"structure", "members":{ @@ -23115,11 +28256,7 @@ }, "ResourceConfig":{ "type":"structure", - "required":[ - "InstanceType", - "InstanceCount", - "VolumeSizeInGB" - ], + "required":["VolumeSizeInGB"], "members":{ "InstanceType":{ "shape":"TrainingInstanceType", @@ -23131,15 +28268,34 @@ }, "VolumeSizeInGB":{ "shape":"VolumeSizeInGB", - "documentation":"

The size of the ML storage volume that you want to provision.

ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose File as the TrainingInputMode in the algorithm specification.

You must specify sufficient ML storage for your scenario.

SageMaker supports only the General Purpose SSD (gp2) ML storage volume type.

Certain Nitro-based instances include local storage with a fixed total size, dependent on the instance type. When using these instances for training, SageMaker mounts the local instance storage instead of Amazon EBS gp2 storage. You can't request a VolumeSizeInGB greater than the total size of the local instance storage.

For a list of instance types that support local instance storage, including the total size per instance type, see Instance Store Volumes.

" + "documentation":"

The size of the ML storage volume that you want to provision.

ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose File as the TrainingInputMode in the algorithm specification.

When using an ML instance with NVMe SSD volumes, SageMaker doesn't provision Amazon EBS General Purpose SSD (gp2) storage. Available storage is fixed to the NVMe-type instance's storage capacity. SageMaker configures storage paths for training datasets, checkpoints, model artifacts, and outputs to use the entire capacity of the instance storage. For example, ML instance families with the NVMe-type instance storage include ml.p4d, ml.g4dn, and ml.g5.

When using an ML instance with the EBS-only storage option and without instance storage, you must define the size of EBS volume through VolumeSizeInGB in the ResourceConfig API. For example, ML instance families that use EBS volumes include ml.c5 and ml.p2.

To look up instance types and their instance storage types and volumes, see Amazon EC2 Instance Types.

To find the default local paths defined by the SageMaker training platform, see Amazon SageMaker Training Storage Folders for Training Datasets, Checkpoints, Model Artifacts, and Outputs.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", "documentation":"

The Amazon Web Services KMS key that SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training job.

Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a VolumeKmsKeyId when using an instance type with local storage.

For a list of instance types that support local instance storage, see Instance Store Volumes.

For more information about local instance storage encryption, see SSD Instance Store Volumes.

The VolumeKmsKeyId can be in any of the following formats:

  • // KMS Key ID

    \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • // Amazon Resource Name (ARN) of a KMS Key

    \"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

" + }, + "InstanceGroups":{ + "shape":"InstanceGroups", + "documentation":"

The configuration of a heterogeneous cluster in JSON format.

" + }, + "KeepAlivePeriodInSeconds":{ + "shape":"KeepAlivePeriodInSeconds", + "documentation":"

The duration of time in seconds to retain configured resources in a warm pool for subsequent training jobs.

" } }, "documentation":"

Describes the resources, including ML compute instances and ML storage volumes, to use for model training.

" }, + "ResourceConfigForUpdate":{ + "type":"structure", + "required":["KeepAlivePeriodInSeconds"], + "members":{ + "KeepAlivePeriodInSeconds":{ + "shape":"KeepAlivePeriodInSeconds", + "documentation":"

The KeepAlivePeriodInSeconds value specified in the ResourceConfig to update.

" + } + }, + "documentation":"

The ResourceConfig to update KeepAlivePeriodInSeconds. Other fields in the ResourceConfig cannot be updated.

" + }, "ResourceId":{ "type":"string", "max":32 @@ -23162,10 +28318,7 @@ }, "ResourceLimits":{ "type":"structure", - "required":[ - "MaxNumberOfTrainingJobs", - "MaxParallelTrainingJobs" - ], + "required":["MaxParallelTrainingJobs"], "members":{ "MaxNumberOfTrainingJobs":{ "shape":"MaxNumberOfTrainingJobs", @@ -23197,6 +28350,10 @@ "min":1, "pattern":".+" }, + "ResourceRetainedBillableTimeInSeconds":{ + "type":"integer", + "min":0 + }, "ResourceSpec":{ "type":"structure", "members":{ @@ -23210,7 +28367,7 @@ }, "InstanceType":{ "shape":"AppInstanceType", - "documentation":"

The instance type that the image version runs on.

JupyterServer Apps only support the system value. KernelGateway Apps do not support the system value, but support all other values for available instance types.

" + "documentation":"

The instance type that the image version runs on.

JupyterServer apps only support the system value.

For KernelGateway apps, the system value is translated to ml.t3.medium. KernelGateway apps also support all other values for available instance types.

" }, "LifecycleConfigArn":{ "shape":"StudioLifecycleConfigArn", @@ -23232,7 +28389,11 @@ "Pipeline", "PipelineExecution", "FeatureGroup", - "Project" + "Project", + "FeatureMetadata", + "HyperParameterTuningJob", + "ModelCard", + "Model" ] }, "ResponseMIMEType":{ @@ -23369,6 +28530,10 @@ "AttributeNames":{ "shape":"AttributeNames", "documentation":"

A list of one or more attribute names to use that are found in a specified augmented manifest file.

" + }, + "InstanceGroupNames":{ + "shape":"InstanceGroupNames", + "documentation":"

A list of names of instance groups that get data from the S3 data source.

" } }, "documentation":"

Describes the S3 data source.

" @@ -23381,6 +28546,11 @@ "AugmentedManifestFile" ] }, + "S3OutputPath":{ + "type":"string", + "max":1024, + "pattern":"^(https|s3)://([^/]+)/?(.*)$" + }, "S3StorageConfig":{ "type":"structure", "required":["S3Uri"], @@ -23498,6 +28668,19 @@ "Project":{ "shape":"Project", "documentation":"

The properties of a project.

" + }, + "FeatureMetadata":{ + "shape":"FeatureMetadata", + "documentation":"

The feature metadata used to search through the features.

" + }, + "HyperParameterTuningJob":{ + "shape":"HyperParameterTuningJobSearchEntity", + "documentation":"

The properties of a hyperparameter tuning job.

" + }, + "Model":{"shape":"ModelDashboardModel"}, + "ModelCard":{ + "shape":"ModelCard", + "documentation":"

An Amazon SageMaker Model Card that documents details about a machine learning model.

" } }, "documentation":"

A single resource returned as part of the Search API response.

" @@ -23753,6 +28936,48 @@ "max":43200, "min":1800 }, + "ShadowModeConfig":{ + "type":"structure", + "required":[ + "SourceModelVariantName", + "ShadowModelVariants" + ], + "members":{ + "SourceModelVariantName":{ + "shape":"ModelVariantName", + "documentation":"

The name of the production variant.

" + }, + "ShadowModelVariants":{ + "shape":"ShadowModelVariantConfigList", + "documentation":"

List of shadow variant configurations.

" + } + }, + "documentation":"

Shows which variant is a production variant and which variant is a shadow variant. For shadow variants, also shows the sampling percentages.

" + }, + "ShadowModelVariantConfig":{ + "type":"structure", + "required":[ + "ShadowModelVariantName", + "SamplingPercentage" + ], + "members":{ + "ShadowModelVariantName":{ + "shape":"ModelVariantName", + "documentation":"

The name of the shadow variant.

" + }, + "SamplingPercentage":{ + "shape":"Percentage", + "documentation":"

The percentage of inference requests that are replicated to the shadow variant.

" + } + }, + "documentation":"

The name and sampling percentage of a shadow variant.

" + }, + "ShadowModelVariantConfigList":{ + "type":"list", + "member":{"shape":"ShadowModelVariantConfig"}, + "max":1, + "min":1 + }, "SharingSettings":{ "type":"structure", "members":{ @@ -23834,6 +29059,14 @@ "CreationTime" ] }, + "SortInferenceExperimentsBy":{ + "type":"string", + "enum":[ + "Name", + "CreationTime", + "Status" + ] + }, "SortLineageGroupsBy":{ "type":"string", "enum":[ @@ -23928,6 +29161,73 @@ "max":2048, "pattern":".*" }, + "SpaceArn":{ + "type":"string", + "max":256, + "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:space/.*" + }, + "SpaceDetails":{ + "type":"structure", + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

The ID of the associated Domain.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" + }, + "Status":{ + "shape":"SpaceStatus", + "documentation":"

The status.

" + }, + "CreationTime":{ + "shape":"CreationTime", + "documentation":"

The creation time.

" + }, + "LastModifiedTime":{ + "shape":"LastModifiedTime", + "documentation":"

The last modified time.

" + } + }, + "documentation":"

The space's details.

" + }, + "SpaceList":{ + "type":"list", + "member":{"shape":"SpaceDetails"} + }, + "SpaceName":{ + "type":"string", + "max":63, + "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}" + }, + "SpaceSettings":{ + "type":"structure", + "members":{ + "JupyterServerAppSettings":{"shape":"JupyterServerAppSettings"}, + "KernelGatewayAppSettings":{"shape":"KernelGatewayAppSettings"} + }, + "documentation":"

A collection of space settings.

" + }, + "SpaceSortKey":{ + "type":"string", + "enum":[ + "CreationTime", + "LastModifiedTime" + ] + }, + "SpaceStatus":{ + "type":"string", + "enum":[ + "Deleting", + "Failed", + "InService", + "Pending", + "Updating", + "Update_Failed", + "Delete_Failed" + ] + }, "SpawnRate":{ "type":"integer", "min":0 @@ -23941,6 +29241,56 @@ "TFRecord" ] }, + "StageStatus":{ + "type":"string", + "enum":[ + "CREATING", + "READYTODEPLOY", + "STARTING", + "INPROGRESS", + "DEPLOYED", + "FAILED", + "STOPPING", + "STOPPED" + ] + }, + "StartEdgeDeploymentStageRequest":{ + "type":"structure", + "required":[ + "EdgeDeploymentPlanName", + "StageName" + ], + "members":{ + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan to start.

" + }, + "StageName":{ + "shape":"EntityName", + "documentation":"

The name of the stage to start.

" + } + } + }, + "StartInferenceExperimentRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"InferenceExperimentName", + "documentation":"

The name of the inference experiment to start.

" + } + } + }, + "StartInferenceExperimentResponse":{ + "type":"structure", + "required":["InferenceExperimentArn"], + "members":{ + "InferenceExperimentArn":{ + "shape":"InferenceExperimentArn", + "documentation":"

The ARN of the started inference experiment to start.

" + } + } + }, "StartMonitoringScheduleRequest":{ "type":"structure", "required":["MonitoringScheduleName"], @@ -23969,7 +29319,7 @@ ], "members":{ "PipelineName":{ - "shape":"PipelineName", + "shape":"PipelineNameOrArn", "documentation":"

The name of the pipeline.

" }, "PipelineExecutionDisplayName":{ @@ -24058,6 +29408,23 @@ } } }, + "StopEdgeDeploymentStageRequest":{ + "type":"structure", + "required":[ + "EdgeDeploymentPlanName", + "StageName" + ], + "members":{ + "EdgeDeploymentPlanName":{ + "shape":"EntityName", + "documentation":"

The name of the edge deployment plan to stop.

" + }, + "StageName":{ + "shape":"EntityName", + "documentation":"

The name of the stage to stop.

" + } + } + }, "StopEdgePackagingJobRequest":{ "type":"structure", "required":["EdgePackagingJobName"], @@ -24078,6 +29445,45 @@ } } }, + "StopInferenceExperimentRequest":{ + "type":"structure", + "required":[ + "Name", + "ModelVariantActions" + ], + "members":{ + "Name":{ + "shape":"InferenceExperimentName", + "documentation":"

The name of the inference experiment to stop.

" + }, + "ModelVariantActions":{ + "shape":"ModelVariantActionMap", + "documentation":"

Array of key-value pairs, with names of variants mapped to actions. The possible actions are the following:

  • Promote - Promote the shadow variant to a production variant

  • Remove - Delete the variant

  • Retain - Keep the variant as it is

" + }, + "DesiredModelVariants":{ + "shape":"ModelVariantConfigList", + "documentation":"

Array of ModelVariantConfig objects. There is one for each variant that you want to deploy after the inference experiment stops. Each ModelVariantConfig describes the infrastructure configuration for deploying the corresponding variant.

" + }, + "DesiredState":{ + "shape":"InferenceExperimentStopDesiredState", + "documentation":"

The desired state of the experiment after stopping. The possible states are the following:

  • Completed: The experiment completed successfully

  • Cancelled: The experiment was canceled

" + }, + "Reason":{ + "shape":"InferenceExperimentStatusReason", + "documentation":"

The reason for stopping the experiment.

" + } + } + }, + "StopInferenceExperimentResponse":{ + "type":"structure", + "required":["InferenceExperimentArn"], + "members":{ + "InferenceExperimentArn":{ + "shape":"InferenceExperimentArn", + "documentation":"

The ARN of the stopped inference experiment.

" + } + } + }, "StopInferenceRecommendationsJobRequest":{ "type":"structure", "required":["JobName"], @@ -24180,7 +29586,7 @@ "members":{ "MaxRuntimeInSeconds":{ "shape":"MaxRuntimeInSeconds", - "documentation":"

The maximum length of time, in seconds, that a training or compilation job can run.

For compilation jobs, if the job does not complete during this time, a TimeOut error is generated. We recommend starting with 900 seconds and increasing as necessary based on your model.

For all other jobs, if the job does not complete during this time, SageMaker ends the job. When RetryStrategy is specified in the job request, MaxRuntimeInSeconds specifies the maximum time for all of the attempts in total, not each individual attempt. The default value is 1 day. The maximum value is 28 days.

" + "documentation":"

The maximum length of time, in seconds, that a training or compilation job can run before it is stopped.

For compilation jobs, if the job does not complete during this time, a TimeOut error is generated. We recommend starting with 900 seconds and increasing as necessary based on your model.

For all other jobs, if the job does not complete during this time, SageMaker ends the job. When RetryStrategy is specified in the job request, MaxRuntimeInSeconds specifies the maximum time for all of the attempts in total, not each individual attempt. The default value is 1 day. The maximum value is 28 days.

The maximum time that a TrainingJob can run in total, including any time spent publishing metrics or archiving and uploading models after it has been stopped, is 30 days.

" }, "MaxWaitTimeInSeconds":{ "shape":"MaxWaitTimeInSeconds", @@ -24347,6 +29753,13 @@ }, "documentation":"

Specified in the GetSearchSuggestions request. Limits the property names that are included in the response.

" }, + "TableFormat":{ + "type":"string", + "enum":[ + "Glue", + "Iceberg" + ] + }, "TableName":{ "type":"string", "max":255, @@ -24566,7 +29979,7 @@ "documentation":"

Path to Amazon S3 storage location for TensorBoard output.

" } }, - "documentation":"

Configuration of storage locations for the Debugger TensorBoard output data.

" + "documentation":"

Configuration of storage locations for the Amazon SageMaker Debugger TensorBoard output data.

" }, "TenthFractionsOfACent":{ "type":"integer", @@ -24583,6 +29996,20 @@ "max":128, "pattern":"[a-zA-Z0-9:_-]+" }, + "TimeSeriesForecastingSettings":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"FeatureStatus", + "documentation":"

Describes whether time series forecasting is enabled or disabled in the Canvas app.

" + }, + "AmazonForecastRoleArn":{ + "shape":"RoleArn", + "documentation":"

The IAM role that Canvas passes to Amazon Forecast for time series forecasting. By default, Canvas uses the execution role specified in the UserProfile that launches the Canvas app. If an execution role is not specified in the UserProfile, Canvas uses the execution role specified in the Domain that owns the UserProfile. To allow time series forecasting, this IAM role should have the AmazonSageMakerCanvasForecastAccess policy attached and forecast.amazonaws.com added in the trust relationship as a service principal.

" + } + }, + "documentation":"

Time series forecast settings for the SageMaker Canvas app.

" + }, "Timestamp":{"type":"timestamp"}, "TrafficDurationInSeconds":{ "type":"integer", @@ -24640,6 +30067,28 @@ "type":"string", "enum":["PHASES"] }, + "TrainingContainerArgument":{ + "type":"string", + "max":256, + "pattern":".*" + }, + "TrainingContainerArguments":{ + "type":"list", + "member":{"shape":"TrainingContainerArgument"}, + "max":100, + "min":1 + }, + "TrainingContainerEntrypoint":{ + "type":"list", + "member":{"shape":"TrainingContainerEntrypointString"}, + "max":10, + "min":1 + }, + "TrainingContainerEntrypointString":{ + "type":"string", + "max":256, + "pattern":".*" + }, "TrainingEnvironmentKey":{ "type":"string", "max":512, @@ -24667,7 +30116,7 @@ }, "TrainingInstanceCount":{ "type":"integer", - "min":1 + "min":0 }, "TrainingInstanceType":{ "type":"string", @@ -24718,7 +30167,9 @@ "ml.g5.16xlarge", "ml.g5.12xlarge", "ml.g5.24xlarge", - "ml.g5.48xlarge" + "ml.g5.48xlarge", + "ml.trn1.2xlarge", + "ml.trn1.32xlarge" ] }, "TrainingInstanceTypes":{ @@ -25014,6 +30465,10 @@ "TrainingJobStatus":{ "shape":"TrainingJobStatus", "documentation":"

The status of the training job.

" + }, + "WarmPoolStatus":{ + "shape":"WarmPoolStatus", + "documentation":"

The status of the warm pool associated with the training job.

" } }, "documentation":"

Provides summary information about a training job.

" @@ -25383,7 +30838,7 @@ }, "InstanceCount":{ "shape":"TransformInstanceCount", - "documentation":"

The number of ML compute instances to use in the transform job. For distributed transform jobs, specify a value greater than 1. The default value is 1.

" + "documentation":"

The number of ML compute instances to use in the transform job. The default value is 1, and the maximum is 100. For distributed transform jobs, specify a value greater than 1.

" }, "VolumeKmsKeyId":{ "shape":"KmsKeyId", @@ -25533,6 +30988,10 @@ "Parents":{ "shape":"Parents", "documentation":"

An array of the parents of the component. A parent is a trial the component is associated with and the experiment the trial is part of. A component might not have any parents.

" + }, + "RunName":{ + "shape":"ExperimentEntityName", + "documentation":"

The name of the experiment run.

" } }, "documentation":"

The properties of a trial component as returned by the Search API.

" @@ -25684,7 +31143,7 @@ "members":{ "SourceArn":{ "shape":"TrialComponentSourceArn", - "documentation":"

The source ARN.

" + "documentation":"

The source Amazon Resource Name (ARN).

" }, "SourceType":{ "shape":"SourceType", @@ -25720,6 +31179,10 @@ }, "documentation":"

Detailed information about the source of a trial component. Either ProcessingJob or TrainingJob is returned.

" }, + "TrialComponentSources":{ + "type":"list", + "member":{"shape":"TrialComponentSource"} + }, "TrialComponentStatus":{ "type":"structure", "members":{ @@ -25752,7 +31215,7 @@ }, "TrialComponentArn":{ "shape":"TrialComponentArn", - "documentation":"

The ARN of the trial component.

" + "documentation":"

The Amazon Resource Name (ARN) of the trial component.

" }, "DisplayName":{ "shape":"ExperimentEntityName", @@ -26124,6 +31587,10 @@ "DomainSettingsForUpdate":{ "shape":"DomainSettingsForUpdate", "documentation":"

A collection of DomainSettings configuration values to update.

" + }, + "DefaultSpaceSettings":{ + "shape":"DefaultSpaceSettings", + "documentation":"

The default settings used to create a space within the Domain.

" } } }, @@ -26233,6 +31700,91 @@ } } }, + "UpdateFeatureGroupRequest":{ + "type":"structure", + "required":["FeatureGroupName"], + "members":{ + "FeatureGroupName":{ + "shape":"FeatureGroupName", + "documentation":"

The name of the feature group that you're updating.

" + }, + "FeatureAdditions":{ + "shape":"FeatureAdditions", + "documentation":"

Updates the feature group. Updating a feature group is an asynchronous operation. When you get an HTTP 200 response, you've made a valid request. It takes some time after you've made a valid request for Feature Store to update the feature group.

" + } + } + }, + "UpdateFeatureGroupResponse":{ + "type":"structure", + "required":["FeatureGroupArn"], + "members":{ + "FeatureGroupArn":{ + "shape":"FeatureGroupArn", + "documentation":"

The Amazon Resource Number (ARN) of the feature group that you're updating.

" + } + } + }, + "UpdateFeatureMetadataRequest":{ + "type":"structure", + "required":[ + "FeatureGroupName", + "FeatureName" + ], + "members":{ + "FeatureGroupName":{ + "shape":"FeatureGroupName", + "documentation":"

The name of the feature group containing the feature that you're updating.

" + }, + "FeatureName":{ + "shape":"FeatureName", + "documentation":"

The name of the feature that you're updating.

" + }, + "Description":{ + "shape":"FeatureDescription", + "documentation":"

A description that you can write to better describe the feature.

" + }, + "ParameterAdditions":{ + "shape":"FeatureParameterAdditions", + "documentation":"

A list of key-value pairs that you can add to better describe the feature.

" + }, + "ParameterRemovals":{ + "shape":"FeatureParameterRemovals", + "documentation":"

A list of parameter keys that you can specify to remove parameters that describe your feature.

" + } + } + }, + "UpdateHubRequest":{ + "type":"structure", + "required":["HubName"], + "members":{ + "HubName":{ + "shape":"HubName", + "documentation":"

The name of the hub to update.

" + }, + "HubDescription":{ + "shape":"HubDescription", + "documentation":"

A description of the updated hub.

" + }, + "HubDisplayName":{ + "shape":"HubDisplayName", + "documentation":"

The display name of the hub.

" + }, + "HubSearchKeywords":{ + "shape":"HubSearchKeywordList", + "documentation":"

The searchable keywords for the hub.

" + } + } + }, + "UpdateHubResponse":{ + "type":"structure", + "required":["HubArn"], + "members":{ + "HubArn":{ + "shape":"HubArn", + "documentation":"

The Amazon Resource Name (ARN) of the updated hub.

" + } + } + }, "UpdateImageRequest":{ "type":"structure", "required":["ImageName"], @@ -26268,6 +31820,74 @@ } } }, + "UpdateInferenceExperimentRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"InferenceExperimentName", + "documentation":"

The name of the inference experiment to be updated.

" + }, + "Schedule":{ + "shape":"InferenceExperimentSchedule", + "documentation":"

The duration for which the inference experiment will run. If the status of the inference experiment is Created, then you can update both the start and end dates. If the status of the inference experiment is Running, then you can update only the end date.

" + }, + "Description":{ + "shape":"InferenceExperimentDescription", + "documentation":"

The description of the inference experiment.

" + }, + "ModelVariants":{ + "shape":"ModelVariantConfigList", + "documentation":"

Array of ModelVariantConfigSummary objects. There is one for each variant, whose infrastructure configuration you want to update.

" + }, + "DataStorageConfig":{ + "shape":"InferenceExperimentDataStorageConfig", + "documentation":"

The Amazon S3 storage configuration for the inference experiment.

" + }, + "ShadowModeConfig":{ + "shape":"ShadowModeConfig", + "documentation":"

The Amazon S3 storage configuration for the inference experiment.

" + } + } + }, + "UpdateInferenceExperimentResponse":{ + "type":"structure", + "required":["InferenceExperimentArn"], + "members":{ + "InferenceExperimentArn":{ + "shape":"InferenceExperimentArn", + "documentation":"

The ARN of the updated inference experiment.

" + } + } + }, + "UpdateModelCardRequest":{ + "type":"structure", + "required":["ModelCardName"], + "members":{ + "ModelCardName":{ + "shape":"EntityName", + "documentation":"

The name of the model card to update.

" + }, + "Content":{ + "shape":"ModelCardContent", + "documentation":"

The updated model card content. Content must be in model card JSON schema and provided as a string.

When updating model card content, be sure to include the full content and not just updated content.

" + }, + "ModelCardStatus":{ + "shape":"ModelCardStatus", + "documentation":"

The approval status of the model card within your organization. Different organizations might have different criteria for model card review and approval.

  • Draft: The model card is a work in progress.

  • PendingReview: The model card is pending review.

  • Approved: The model card is approved.

  • Archived: The model card is archived. No more updates should be made to the model card, but it can still be exported.

" + } + } + }, + "UpdateModelCardResponse":{ + "type":"structure", + "required":["ModelCardArn"], + "members":{ + "ModelCardArn":{ + "shape":"ModelCardArn", + "documentation":"

The Amazon Resource Name (ARN) of the updated model card.

" + } + } + }, "UpdateModelPackageInput":{ "type":"structure", "required":["ModelPackageArn"], @@ -26308,6 +31928,47 @@ } } }, + "UpdateMonitoringAlertRequest":{ + "type":"structure", + "required":[ + "MonitoringScheduleName", + "MonitoringAlertName", + "DatapointsToAlert", + "EvaluationPeriod" + ], + "members":{ + "MonitoringScheduleName":{ + "shape":"MonitoringScheduleName", + "documentation":"

The name of a monitoring schedule.

" + }, + "MonitoringAlertName":{ + "shape":"MonitoringAlertName", + "documentation":"

The name of a monitoring alert.

" + }, + "DatapointsToAlert":{ + "shape":"MonitoringDatapointsToAlert", + "documentation":"

Within EvaluationPeriod, how many execution failures will raise an alert.

" + }, + "EvaluationPeriod":{ + "shape":"MonitoringEvaluationPeriod", + "documentation":"

The number of most recent monitoring executions to consider when evaluating alert status.

" + } + } + }, + "UpdateMonitoringAlertResponse":{ + "type":"structure", + "required":["MonitoringScheduleArn"], + "members":{ + "MonitoringScheduleArn":{ + "shape":"MonitoringScheduleArn", + "documentation":"

The Amazon Resource Name (ARN) of the monitoring schedule.

" + }, + "MonitoringAlertName":{ + "shape":"MonitoringAlertName", + "documentation":"

The name of a monitoring alert.

" + } + } + }, "UpdateMonitoringScheduleRequest":{ "type":"structure", "required":[ @@ -26390,6 +32051,10 @@ "RootAccess":{ "shape":"RootAccess", "documentation":"

Whether root access is enabled or disabled for users of the notebook instance. The default value is Enabled.

If you set this to Disabled, users don't have root access on the notebook instance, but lifecycle configuration scripts still run with root permissions.

" + }, + "InstanceMetadataServiceConfiguration":{ + "shape":"InstanceMetadataServiceConfiguration", + "documentation":"

Information on the IMDS configuration of the notebook instance

" } } }, @@ -26513,7 +32178,7 @@ }, "Tags":{ "shape":"TagList", - "documentation":"

An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services Resources.

" + "documentation":"

An array of key-value pairs. You can use tags to categorize your Amazon Web Services resources in different ways, for example, by purpose, owner, or environment. For more information, see Tagging Amazon Web Services Resources. In addition, the project must have tag update constraints set in order to include this parameter in the request. For more information, see Amazon Web Services Service Catalog Tag Update Constraints.

" } } }, @@ -26527,6 +32192,36 @@ } } }, + "UpdateSpaceRequest":{ + "type":"structure", + "required":[ + "DomainId", + "SpaceName" + ], + "members":{ + "DomainId":{ + "shape":"DomainId", + "documentation":"

The ID of the associated Domain.

" + }, + "SpaceName":{ + "shape":"SpaceName", + "documentation":"

The name of the space.

" + }, + "SpaceSettings":{ + "shape":"SpaceSettings", + "documentation":"

A collection of space settings.

" + } + } + }, + "UpdateSpaceResponse":{ + "type":"structure", + "members":{ + "SpaceArn":{ + "shape":"SpaceArn", + "documentation":"

The space's Amazon Resource Name (ARN).

" + } + } + }, "UpdateTrainingJobRequest":{ "type":"structure", "required":["TrainingJobName"], @@ -26537,11 +32232,15 @@ }, "ProfilerConfig":{ "shape":"ProfilerConfigForUpdate", - "documentation":"

Configuration information for Debugger system monitoring, framework profiling, and storage paths.

" + "documentation":"

Configuration information for Amazon SageMaker Debugger system monitoring, framework profiling, and storage paths.

" }, "ProfilerRuleConfigurations":{ "shape":"ProfilerRuleConfigurations", - "documentation":"

Configuration information for Debugger rules for profiling system and framework metrics.

" + "documentation":"

Configuration information for Amazon SageMaker Debugger rules for profiling system and framework metrics.

" + }, + "ResourceConfig":{ + "shape":"ResourceConfigForUpdate", + "documentation":"

The training job ResourceConfig to update warm pool retention length.

" } } }, @@ -26682,6 +32381,10 @@ "OidcConfig":{ "shape":"OidcConfig", "documentation":"

Use this parameter to update your OIDC Identity Provider (IdP) configuration for a workforce made using your own IdP.

" + }, + "WorkforceVpcConfig":{ + "shape":"WorkforceVpcConfigRequest", + "documentation":"

Use this parameter to update your VPC configuration for a workforce.

" } } }, @@ -26748,7 +32451,7 @@ "documentation":"

The domain associated with the user.

" } }, - "documentation":"

Information about the user who created or modified an experiment, trial, trial component, lineage group, or project.

" + "documentation":"

Information about the user who created or modified an experiment, trial, trial component, lineage group, project, or model card.

" }, "UserProfileArn":{ "type":"string", @@ -26843,6 +32546,10 @@ "RSessionAppSettings":{ "shape":"RSessionAppSettings", "documentation":"

A collection of settings that configure the RSessionGateway app.

" + }, + "CanvasAppSettings":{ + "shape":"CanvasAppSettings", + "documentation":"

The Canvas app settings.

" } }, "documentation":"

A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.

SecurityGroups is aggregated when specified in both calls. For all other settings in UserSettings, the values specified in CreateUserProfile take precedence over those specified in CreateDomain.

" @@ -26972,6 +32679,34 @@ "max":3600, "min":0 }, + "WarmPoolResourceStatus":{ + "type":"string", + "enum":[ + "Available", + "Terminated", + "Reused", + "InUse" + ] + }, + "WarmPoolStatus":{ + "type":"structure", + "required":["Status"], + "members":{ + "Status":{ + "shape":"WarmPoolResourceStatus", + "documentation":"

The status of the warm pool.

  • InUse: The warm pool is in use for the training job.

  • Available: The warm pool is available to reuse for a matching training job.

  • Reused: The warm pool moved to a matching training job for reuse.

  • Terminated: The warm pool is no longer available. Warm pools are unavailable if they are terminated by a user, terminated for a patch update, or terminated for exceeding the specified KeepAlivePeriodInSeconds.

" + }, + "ResourceRetainedBillableTimeInSeconds":{ + "shape":"ResourceRetainedBillableTimeInSeconds", + "documentation":"

The billable time in seconds used by the warm pool. Billable time refers to the absolute wall-clock time.

Multiply ResourceRetainedBillableTimeInSeconds by the number of instances (InstanceCount) in your training cluster to get the total compute time SageMaker bills you if you run warm pool training. The formula is as follows: ResourceRetainedBillableTimeInSeconds * InstanceCount.

" + }, + "ReusedByJob":{ + "shape":"TrainingJobName", + "documentation":"

The name of the matching training job that reused the warm pool.

" + } + }, + "documentation":"

Status and billing information about the warm pool.

" + }, "Workforce":{ "type":"structure", "required":[ @@ -27010,6 +32745,18 @@ "CreateDate":{ "shape":"Timestamp", "documentation":"

The date that the workforce is created.

" + }, + "WorkforceVpcConfig":{ + "shape":"WorkforceVpcConfigResponse", + "documentation":"

The configuration of a VPC workforce.

" + }, + "Status":{ + "shape":"WorkforceStatus", + "documentation":"

The status of your workforce.

" + }, + "FailureReason":{ + "shape":"WorkforceFailureReason", + "documentation":"

The reason your workforce failed.

" } }, "documentation":"

A single private workforce, which is automatically created when you create your first private work team. You can create one private work force in each Amazon Web Services Region. By default, any workforce-related API operation used in a specific region will apply to the workforce created in that region. To learn how to create a private workforce, see Create a Private Workforce.

" @@ -27019,12 +32766,106 @@ "max":256, "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:workforce/.*" }, + "WorkforceFailureReason":{ + "type":"string", + "max":1024, + "min":1, + "pattern":".+" + }, "WorkforceName":{ "type":"string", "max":63, "min":1, "pattern":"^[a-zA-Z0-9]([a-zA-Z0-9\\-]){0,62}$" }, + "WorkforceSecurityGroupId":{ + "type":"string", + "max":32, + "pattern":"^sg-[0-9a-z]*$" + }, + "WorkforceSecurityGroupIds":{ + "type":"list", + "member":{"shape":"WorkforceSecurityGroupId"}, + "max":5, + "min":1 + }, + "WorkforceStatus":{ + "type":"string", + "enum":[ + "Initializing", + "Updating", + "Deleting", + "Failed", + "Active" + ] + }, + "WorkforceSubnetId":{ + "type":"string", + "max":32, + "pattern":"^subnet-[0-9a-z]*$" + }, + "WorkforceSubnets":{ + "type":"list", + "member":{"shape":"WorkforceSubnetId"}, + "max":16, + "min":1 + }, + "WorkforceVpcConfigRequest":{ + "type":"structure", + "members":{ + "VpcId":{ + "shape":"WorkforceVpcId", + "documentation":"

The ID of the VPC that the workforce uses for communication.

" + }, + "SecurityGroupIds":{ + "shape":"WorkforceSecurityGroupIds", + "documentation":"

The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must be for the same VPC as specified in the subnet.

" + }, + "Subnets":{ + "shape":"WorkforceSubnets", + "documentation":"

The ID of the subnets in the VPC that you want to connect.

" + } + }, + "documentation":"

The VPC object you use to create or update a workforce.

" + }, + "WorkforceVpcConfigResponse":{ + "type":"structure", + "required":[ + "VpcId", + "SecurityGroupIds", + "Subnets" + ], + "members":{ + "VpcId":{ + "shape":"WorkforceVpcId", + "documentation":"

The ID of the VPC that the workforce uses for communication.

" + }, + "SecurityGroupIds":{ + "shape":"WorkforceSecurityGroupIds", + "documentation":"

The VPC security group IDs, in the form sg-xxxxxxxx. The security groups must be for the same VPC as specified in the subnet.

" + }, + "Subnets":{ + "shape":"WorkforceSubnets", + "documentation":"

The ID of the subnets in the VPC that you want to connect.

" + }, + "VpcEndpointId":{ + "shape":"WorkforceVpcEndpointId", + "documentation":"

The IDs for the VPC service endpoints of your VPC workforce when it is created and updated.

" + } + }, + "documentation":"

A VpcConfig object that specifies the VPC that you want your workforce to connect to.

" + }, + "WorkforceVpcEndpointId":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^vpce-[0-9a-z]*$" + }, + "WorkforceVpcId":{ + "type":"string", + "max":32, + "pattern":"^vpc-[0-9a-z]*$" + }, "Workforces":{ "type":"list", "member":{"shape":"Workforce"} diff --git a/botocore/data/savingsplans/2019-06-28/endpoint-rule-set-1.json b/botocore/data/savingsplans/2019-06-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..b9857204 --- /dev/null +++ b/botocore/data/savingsplans/2019-06-28/endpoint-rule-set-1.json @@ -0,0 +1,591 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://savingsplans-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "savingsplans", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://savingsplans-fips.{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "savingsplans", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://savingsplans.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "savingsplans", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://savingsplans.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "savingsplans", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://savingsplans-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://savingsplans-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://savingsplans.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://savingsplans.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "savingsplans", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://savingsplans.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/savingsplans/2019-06-28/examples-1.json b/botocore/data/savingsplans/2019-06-28/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/savingsplans/2019-06-28/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/scheduler/2021-06-30/endpoint-rule-set-1.json b/botocore/data/scheduler/2021-06-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..f8fc299f --- /dev/null +++ b/botocore/data/scheduler/2021-06-30/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://scheduler-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://scheduler-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://scheduler.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://scheduler.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/scheduler/2021-06-30/paginators-1.json b/botocore/data/scheduler/2021-06-30/paginators-1.json new file mode 100644 index 00000000..93b98ee2 --- /dev/null +++ b/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/botocore/data/scheduler/2021-06-30/service-2.json b/botocore/data/scheduler/2021-06-30/service-2.json new file mode 100644 index 00000000..527a65ed --- /dev/null +++ b/botocore/data/scheduler/2021-06-30/service-2.json @@ -0,0 +1,1555 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-06-30", + "endpointPrefix":"scheduler", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon EventBridge Scheduler", + "serviceId":"Scheduler", + "signatureVersion":"v4", + "signingName":"scheduler", + "uid":"scheduler-2021-06-30" + }, + "operations":{ + "CreateSchedule":{ + "name":"CreateSchedule", + "http":{ + "method":"POST", + "requestUri":"/schedules/{Name}", + "responseCode":200 + }, + "input":{"shape":"CreateScheduleInput"}, + "output":{"shape":"CreateScheduleOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates the specified schedule.

", + "idempotent":true + }, + "CreateScheduleGroup":{ + "name":"CreateScheduleGroup", + "http":{ + "method":"POST", + "requestUri":"/schedule-groups/{Name}", + "responseCode":200 + }, + "input":{"shape":"CreateScheduleGroupInput"}, + "output":{"shape":"CreateScheduleGroupOutput"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates the specified schedule group.

", + "idempotent":true + }, + "DeleteSchedule":{ + "name":"DeleteSchedule", + "http":{ + "method":"DELETE", + "requestUri":"/schedules/{Name}", + "responseCode":200 + }, + "input":{"shape":"DeleteScheduleInput"}, + "output":{"shape":"DeleteScheduleOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deletes the specified schedule.

", + "idempotent":true + }, + "DeleteScheduleGroup":{ + "name":"DeleteScheduleGroup", + "http":{ + "method":"DELETE", + "requestUri":"/schedule-groups/{Name}", + "responseCode":200 + }, + "input":{"shape":"DeleteScheduleGroupInput"}, + "output":{"shape":"DeleteScheduleGroupOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deletes the specified schedule group. Deleting a schedule group results in EventBridge Scheduler deleting all schedules associated with the group. When you delete a group, it remains in a DELETING state until all of its associated schedules are deleted. Schedules associated with the group that are set to run while the schedule group is in the process of being deleted might continue to invoke their targets until the schedule group and its associated schedules are deleted.

This operation is eventually consistent.

", + "idempotent":true + }, + "GetSchedule":{ + "name":"GetSchedule", + "http":{ + "method":"GET", + "requestUri":"/schedules/{Name}", + "responseCode":200 + }, + "input":{"shape":"GetScheduleInput"}, + "output":{"shape":"GetScheduleOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the specified schedule.

" + }, + "GetScheduleGroup":{ + "name":"GetScheduleGroup", + "http":{ + "method":"GET", + "requestUri":"/schedule-groups/{Name}", + "responseCode":200 + }, + "input":{"shape":"GetScheduleGroupInput"}, + "output":{"shape":"GetScheduleGroupOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Retrieves the specified schedule group.

" + }, + "ListScheduleGroups":{ + "name":"ListScheduleGroups", + "http":{ + "method":"GET", + "requestUri":"/schedule-groups", + "responseCode":200 + }, + "input":{"shape":"ListScheduleGroupsInput"}, + "output":{"shape":"ListScheduleGroupsOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns a paginated list of your schedule groups.

" + }, + "ListSchedules":{ + "name":"ListSchedules", + "http":{ + "method":"GET", + "requestUri":"/schedules", + "responseCode":200 + }, + "input":{"shape":"ListSchedulesInput"}, + "output":{"shape":"ListSchedulesOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Returns a paginated list of your EventBridge Scheduler schedules.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Lists the tags associated with the Scheduler resource.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Assigns one or more tags (key-value pairs) to the specified EventBridge Scheduler resource. You can only assign tags to schedule groups.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Removes one or more tags from the specified EventBridge Scheduler schedule group.

", + "idempotent":true + }, + "UpdateSchedule":{ + "name":"UpdateSchedule", + "http":{ + "method":"PUT", + "requestUri":"/schedules/{Name}", + "responseCode":200 + }, + "input":{"shape":"UpdateScheduleInput"}, + "output":{"shape":"UpdateScheduleOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"}, + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates the specified schedule. When you call UpdateSchedule, EventBridge Scheduler uses all values, including empty values, specified in the request and overrides the existing schedule. This is by design. This means that if you do not set an optional field in your request, that field will be set to its system-default value after the update.

Before calling this operation, we recommend that you call the GetSchedule API operation and make a note of all optional parameters for your UpdateSchedule call.

", + "idempotent":true + } + }, + "shapes":{ + "AssignPublicIp":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "AwsVpcConfiguration":{ + "type":"structure", + "required":["Subnets"], + "members":{ + "AssignPublicIp":{ + "shape":"AssignPublicIp", + "documentation":"

Specifies whether the task's elastic network interface receives a public IP address. You can specify ENABLED only when LaunchType in EcsParameters is set to FARGATE.

" + }, + "SecurityGroups":{ + "shape":"SecurityGroups", + "documentation":"

Specifies the security groups associated with the task. These security groups must all be in the same VPC. You can specify as many as five security groups. If you do not specify a security group, the default security group for the VPC is used.

" + }, + "Subnets":{ + "shape":"Subnets", + "documentation":"

Specifies the subnets associated with the task. These subnets must all be in the same VPC. You can specify as many as 16 subnets.

" + } + }, + "documentation":"

This structure specifies the VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode.

" + }, + "CapacityProvider":{ + "type":"string", + "max":255, + "min":1 + }, + "CapacityProviderStrategy":{ + "type":"list", + "member":{"shape":"CapacityProviderStrategyItem"}, + "max":6, + "min":0 + }, + "CapacityProviderStrategyItem":{ + "type":"structure", + "required":["capacityProvider"], + "members":{ + "base":{ + "shape":"CapacityProviderStrategyItemBase", + "documentation":"

The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, the default value of 0 is used.

" + }, + "capacityProvider":{ + "shape":"CapacityProvider", + "documentation":"

The short name of the capacity provider.

" + }, + "weight":{ + "shape":"CapacityProviderStrategyItemWeight", + "documentation":"

The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied.

" + } + }, + "documentation":"

The details of a capacity provider strategy.

" + }, + "CapacityProviderStrategyItemBase":{ + "type":"integer", + "max":100000, + "min":0 + }, + "CapacityProviderStrategyItemWeight":{ + "type":"integer", + "max":1000, + "min":0 + }, + "ClientToken":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z0-9-_]+$" + }, + "ConflictException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

Updating or deleting the resource can cause an inconsistent state.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateScheduleGroupInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.

", + "idempotencyToken":true + }, + "Name":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group that you are creating.

", + "location":"uri", + "locationName":"Name" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The list of tags to associate with the schedule group.

" + } + } + }, + "CreateScheduleGroupOutput":{ + "type":"structure", + "required":["ScheduleGroupArn"], + "members":{ + "ScheduleGroupArn":{ + "shape":"ScheduleGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the schedule group.

" + } + } + }, + "CreateScheduleInput":{ + "type":"structure", + "required":[ + "FlexibleTimeWindow", + "Name", + "ScheduleExpression", + "Target" + ], + "members":{ + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.

", + "idempotencyToken":true + }, + "Description":{ + "shape":"Description", + "documentation":"

The description you specify for the schedule.

" + }, + "EndDate":{ + "shape":"EndDate", + "documentation":"

The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify. EventBridge Scheduler ignores EndDate for one-time schedules.

" + }, + "FlexibleTimeWindow":{ + "shape":"FlexibleTimeWindow", + "documentation":"

Allows you to configure a time window during which EventBridge Scheduler invokes the schedule.

" + }, + "GroupName":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group to associate with this schedule. If you omit this, the default schedule group is used.

" + }, + "KmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

The Amazon Resource Name (ARN) for the customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt your data.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the schedule that you are creating.

", + "location":"uri", + "locationName":"Name" + }, + "ScheduleExpression":{ + "shape":"ScheduleExpression", + "documentation":"

The expression that defines when the schedule runs. The following formats are supported.

  • at expression - at(yyyy-mm-ddThh:mm:ss)

  • rate expression - rate(unit value)

  • cron expression - cron(fields)

You can use at expressions to create one-time schedules that invoke a target once, at the time and in the time zone, that you specify. You can use rate and cron expressions to create recurring schedules. Rate-based schedules are useful when you want to invoke a target at regular intervals, such as every 15 minutes or every five days. Cron-based schedules are useful when you want to invoke a target periodically at a specific time, such as at 8:00 am (UTC+0) every 1st day of the month.

A cron expression consists of six fields separated by white spaces: (minutes hours day_of_month month day_of_week year).

A rate expression consists of a value as a positive integer, and a unit with the following options: minute | minutes | hour | hours | day | days

For more information and examples, see Schedule types on EventBridge Scheduler in the EventBridge Scheduler User Guide.

" + }, + "ScheduleExpressionTimezone":{ + "shape":"ScheduleExpressionTimezone", + "documentation":"

The timezone in which the scheduling expression is evaluated.

" + }, + "StartDate":{ + "shape":"StartDate", + "documentation":"

The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify. EventBridge Scheduler ignores StartDate for one-time schedules.

" + }, + "State":{ + "shape":"ScheduleState", + "documentation":"

Specifies whether the schedule is enabled or disabled.

" + }, + "Target":{ + "shape":"Target", + "documentation":"

The schedule's target.

" + } + } + }, + "CreateScheduleOutput":{ + "type":"structure", + "required":["ScheduleArn"], + "members":{ + "ScheduleArn":{ + "shape":"ScheduleArn", + "documentation":"

The Amazon Resource Name (ARN) of the schedule.

" + } + } + }, + "CreationDate":{"type":"timestamp"}, + "DeadLetterConfig":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"DeadLetterConfigArnString", + "documentation":"

The Amazon Resource Name (ARN) of the SQS queue specified as the destination for the dead-letter queue.

" + } + }, + "documentation":"

An object that contains information about an Amazon SQS queue that EventBridge Scheduler uses as a dead-letter queue for your schedule. If specified, EventBridge Scheduler delivers failed events that could not be successfully delivered to a target to the queue.

" + }, + "DeadLetterConfigArnString":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"^arn:aws(-[a-z]+)?:sqs:[a-z0-9\\-]+:\\d{12}:[a-zA-Z0-9\\-_]+$" + }, + "DeleteScheduleGroupInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, + "Name":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group to delete.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "DeleteScheduleGroupOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteScheduleInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.

", + "idempotencyToken":true, + "location":"querystring", + "locationName":"clientToken" + }, + "GroupName":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group associated with this schedule. If you omit this, the default schedule group is used.

", + "location":"querystring", + "locationName":"groupName" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the schedule to delete.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "DeleteScheduleOutput":{ + "type":"structure", + "members":{ + } + }, + "Description":{ + "type":"string", + "max":512, + "min":0 + }, + "DetailType":{ + "type":"string", + "max":128, + "min":1 + }, + "EcsParameters":{ + "type":"structure", + "required":["TaskDefinitionArn"], + "members":{ + "CapacityProviderStrategy":{ + "shape":"CapacityProviderStrategy", + "documentation":"

The capacity provider strategy to use for the task.

" + }, + "EnableECSManagedTags":{ + "shape":"EnableECSManagedTags", + "documentation":"

Specifies whether to enable Amazon ECS managed tags for the task. For more information, see Tagging Your Amazon ECS Resources in the Amazon ECS Developer Guide.

" + }, + "EnableExecuteCommand":{ + "shape":"EnableExecuteCommand", + "documentation":"

Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task.

" + }, + "Group":{ + "shape":"Group", + "documentation":"

Specifies an ECS task group for the task. The maximum length is 255 characters.

" + }, + "LaunchType":{ + "shape":"LaunchType", + "documentation":"

Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. The FARGATE value is supported only in the Regions where Fargate with Amazon ECS is supported. For more information, see AWS Fargate on Amazon ECS in the Amazon ECS Developer Guide.

" + }, + "NetworkConfiguration":{ + "shape":"NetworkConfiguration", + "documentation":"

This structure specifies the network configuration for an ECS task.

" + }, + "PlacementConstraints":{ + "shape":"PlacementConstraints", + "documentation":"

An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime).

" + }, + "PlacementStrategy":{ + "shape":"PlacementStrategies", + "documentation":"

The task placement strategy for a task or service.

" + }, + "PlatformVersion":{ + "shape":"PlatformVersion", + "documentation":"

Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as 1.1.0.

" + }, + "PropagateTags":{ + "shape":"PropagateTags", + "documentation":"

Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use Amazon ECS's TagResource API action.

" + }, + "ReferenceId":{ + "shape":"ReferenceId", + "documentation":"

The reference ID to use for the task.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

The metadata that you apply to the task to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. For more information, see RunTask in the Amazon ECS API Reference.

" + }, + "TaskCount":{ + "shape":"TaskCount", + "documentation":"

The number of tasks to create based on TaskDefinition. The default is 1.

" + }, + "TaskDefinitionArn":{ + "shape":"TaskDefinitionArn", + "documentation":"

The Amazon Resource Name (ARN) of the task definition to use if the event target is an Amazon ECS task.

" + } + }, + "documentation":"

The templated target type for the Amazon ECS RunTask API operation.

" + }, + "EnableECSManagedTags":{ + "type":"boolean", + "box":true + }, + "EnableExecuteCommand":{ + "type":"boolean", + "box":true + }, + "EndDate":{"type":"timestamp"}, + "EventBridgeParameters":{ + "type":"structure", + "required":[ + "DetailType", + "Source" + ], + "members":{ + "DetailType":{ + "shape":"DetailType", + "documentation":"

A free-form string, with a maximum of 128 characters, used to decide what fields to expect in the event detail.

" + }, + "Source":{ + "shape":"Source", + "documentation":"

The source of the event.

" + } + }, + "documentation":"

The templated target type for the EventBridge PutEvents API operation.

" + }, + "FlexibleTimeWindow":{ + "type":"structure", + "required":["Mode"], + "members":{ + "MaximumWindowInMinutes":{ + "shape":"MaximumWindowInMinutes", + "documentation":"

The maximum time window during which a schedule can be invoked.

" + }, + "Mode":{ + "shape":"FlexibleTimeWindowMode", + "documentation":"

Determines whether the schedule is invoked within a flexible time window.

" + } + }, + "documentation":"

Allows you to configure a time window during which EventBridge Scheduler invokes the schedule.

" + }, + "FlexibleTimeWindowMode":{ + "type":"string", + "enum":[ + "OFF", + "FLEXIBLE" + ] + }, + "GetScheduleGroupInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group to retrieve.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "GetScheduleGroupOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"ScheduleGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the schedule group.

" + }, + "CreationDate":{ + "shape":"CreationDate", + "documentation":"

The time at which the schedule group was created.

" + }, + "LastModificationDate":{ + "shape":"LastModificationDate", + "documentation":"

The time at which the schedule group was last modified.

" + }, + "Name":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group.

" + }, + "State":{ + "shape":"ScheduleGroupState", + "documentation":"

Specifies the state of the schedule group.

" + } + } + }, + "GetScheduleInput":{ + "type":"structure", + "required":["Name"], + "members":{ + "GroupName":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group associated with this schedule. If you omit this, EventBridge Scheduler assumes that the schedule is associated with the default group.

", + "location":"querystring", + "locationName":"groupName" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the schedule to retrieve.

", + "location":"uri", + "locationName":"Name" + } + } + }, + "GetScheduleOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"ScheduleArn", + "documentation":"

The Amazon Resource Name (ARN) of the schedule.

" + }, + "CreationDate":{ + "shape":"CreationDate", + "documentation":"

The time at which the schedule was created.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The description of the schedule.

" + }, + "EndDate":{ + "shape":"EndDate", + "documentation":"

The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify. EventBridge Scheduler ignores EndDate for one-time schedules.

" + }, + "FlexibleTimeWindow":{ + "shape":"FlexibleTimeWindow", + "documentation":"

Allows you to configure a time window during which EventBridge Scheduler invokes the schedule.

" + }, + "GroupName":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group associated with this schedule.

" + }, + "KmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

The ARN for a customer managed KMS Key that is be used to encrypt and decrypt your data.

" + }, + "LastModificationDate":{ + "shape":"LastModificationDate", + "documentation":"

The time at which the schedule was last modified.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the schedule.

" + }, + "ScheduleExpression":{ + "shape":"ScheduleExpression", + "documentation":"

The expression that defines when the schedule runs. The following formats are supported.

  • at expression - at(yyyy-mm-ddThh:mm:ss)

  • rate expression - rate(unit value)

  • cron expression - cron(fields)

You can use at expressions to create one-time schedules that invoke a target once, at the time and in the time zone, that you specify. You can use rate and cron expressions to create recurring schedules. Rate-based schedules are useful when you want to invoke a target at regular intervals, such as every 15 minutes or every five days. Cron-based schedules are useful when you want to invoke a target periodically at a specific time, such as at 8:00 am (UTC+0) every 1st day of the month.

A cron expression consists of six fields separated by white spaces: (minutes hours day_of_month month day_of_week year).

A rate expression consists of a value as a positive integer, and a unit with the following options: minute | minutes | hour | hours | day | days

For more information and examples, see Schedule types on EventBridge Scheduler in the EventBridge Scheduler User Guide.

" + }, + "ScheduleExpressionTimezone":{ + "shape":"ScheduleExpressionTimezone", + "documentation":"

The timezone in which the scheduling expression is evaluated.

" + }, + "StartDate":{ + "shape":"StartDate", + "documentation":"

The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify. EventBridge Scheduler ignores StartDate for one-time schedules.

" + }, + "State":{ + "shape":"ScheduleState", + "documentation":"

Specifies whether the schedule is enabled or disabled.

" + }, + "Target":{ + "shape":"Target", + "documentation":"

The schedule target.

" + } + } + }, + "Group":{ + "type":"string", + "max":255, + "min":1 + }, + "InternalServerException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

Unexpected error encountered while processing the request.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "KinesisParameters":{ + "type":"structure", + "required":["PartitionKey"], + "members":{ + "PartitionKey":{ + "shape":"TargetPartitionKey", + "documentation":"

Specifies the shard to which EventBridge Scheduler sends the event. For more information, see Amazon Kinesis Data Streams terminology and concepts in the Amazon Kinesis Streams Developer Guide.

" + } + }, + "documentation":"

The templated target type for the Amazon Kinesis PutRecord API operation.

" + }, + "KmsKeyArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"^arn:aws(-[a-z]+)?:kms:[a-z0-9\\-]+:\\d{12}:(key|alias)\\/[0-9a-zA-Z-_]*$" + }, + "LastModificationDate":{"type":"timestamp"}, + "LaunchType":{ + "type":"string", + "enum":[ + "EC2", + "FARGATE", + "EXTERNAL" + ] + }, + "ListScheduleGroupsInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

If specified, limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.

", + "location":"querystring", + "locationName":"MaxResults" + }, + "NamePrefix":{ + "shape":"ScheduleGroupNamePrefix", + "documentation":"

The name prefix that you can use to return a filtered list of your schedule groups.

", + "location":"querystring", + "locationName":"NamePrefix" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token returned by a previous call to retrieve the next set of results.

", + "location":"querystring", + "locationName":"NextToken" + } + } + }, + "ListScheduleGroupsOutput":{ + "type":"structure", + "required":["ScheduleGroups"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

Indicates whether there are additional results to retrieve. If the value is null, there are no more results.

" + }, + "ScheduleGroups":{ + "shape":"ScheduleGroupList", + "documentation":"

The schedule groups that match the specified criteria.

" + } + } + }, + "ListSchedulesInput":{ + "type":"structure", + "members":{ + "GroupName":{ + "shape":"ScheduleGroupName", + "documentation":"

If specified, only lists the schedules whose associated schedule group matches the given filter.

", + "location":"querystring", + "locationName":"ScheduleGroup" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

If specified, limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results.

", + "location":"querystring", + "locationName":"MaxResults" + }, + "NamePrefix":{ + "shape":"NamePrefix", + "documentation":"

Schedule name prefix to return the filtered list of resources.

", + "location":"querystring", + "locationName":"NamePrefix" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token returned by a previous call to retrieve the next set of results.

", + "location":"querystring", + "locationName":"NextToken" + }, + "State":{ + "shape":"ScheduleState", + "documentation":"

If specified, only lists the schedules whose current state matches the given filter.

", + "location":"querystring", + "locationName":"State" + } + } + }, + "ListSchedulesOutput":{ + "type":"structure", + "required":["Schedules"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

Indicates whether there are additional results to retrieve. If the value is null, there are no more results.

" + }, + "Schedules":{ + "shape":"ScheduleList", + "documentation":"

The schedules that match the specified criteria.

" + } + } + }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"TagResourceArn", + "documentation":"

The ARN of the EventBridge Scheduler resource for which you want to view tags.

", + "location":"uri", + "locationName":"ResourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagList", + "documentation":"

The list of tags associated with the specified resource.

" + } + } + }, + "MaxResults":{ + "type":"integer", + "box":true, + "max":100, + "min":1 + }, + "MaximumEventAgeInSeconds":{ + "type":"integer", + "box":true, + "max":86400, + "min":60 + }, + "MaximumRetryAttempts":{ + "type":"integer", + "box":true, + "max":185, + "min":0 + }, + "MaximumWindowInMinutes":{ + "type":"integer", + "box":true, + "max":1440, + "min":1 + }, + "MessageGroupId":{ + "type":"string", + "max":128, + "min":1 + }, + "Name":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[0-9a-zA-Z-_.]+$" + }, + "NamePrefix":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z][0-9a-zA-Z-_]*$" + }, + "NetworkConfiguration":{ + "type":"structure", + "members":{ + "awsvpcConfiguration":{ + "shape":"AwsVpcConfiguration", + "documentation":"

Specifies the Amazon VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode.

" + } + }, + "documentation":"

Specifies the network configuration for an ECS task.

" + }, + "NextToken":{ + "type":"string", + "max":2048, + "min":1 + }, + "PlacementConstraint":{ + "type":"structure", + "members":{ + "expression":{ + "shape":"PlacementConstraintExpression", + "documentation":"

A cluster query language expression to apply to the constraint. You cannot specify an expression if the constraint type is distinctInstance. For more information, see Cluster query language in the Amazon ECS Developer Guide.

" + }, + "type":{ + "shape":"PlacementConstraintType", + "documentation":"

The type of constraint. Use distinctInstance to ensure that each task in a particular group is running on a different container instance. Use memberOf to restrict the selection to a group of valid candidates.

" + } + }, + "documentation":"

An object representing a constraint on task placement.

" + }, + "PlacementConstraintExpression":{ + "type":"string", + "max":2000, + "min":0 + }, + "PlacementConstraintType":{ + "type":"string", + "enum":[ + "distinctInstance", + "memberOf" + ] + }, + "PlacementConstraints":{ + "type":"list", + "member":{"shape":"PlacementConstraint"}, + "max":10, + "min":0 + }, + "PlacementStrategies":{ + "type":"list", + "member":{"shape":"PlacementStrategy"}, + "max":5, + "min":0 + }, + "PlacementStrategy":{ + "type":"structure", + "members":{ + "field":{ + "shape":"PlacementStrategyField", + "documentation":"

The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or instanceId, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used.

" + }, + "type":{ + "shape":"PlacementStrategyType", + "documentation":"

The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task).

" + } + }, + "documentation":"

The task placement strategy for a task or service.

" + }, + "PlacementStrategyField":{ + "type":"string", + "max":255, + "min":0 + }, + "PlacementStrategyType":{ + "type":"string", + "enum":[ + "random", + "spread", + "binpack" + ] + }, + "PlatformVersion":{ + "type":"string", + "max":64, + "min":1 + }, + "PropagateTags":{ + "type":"string", + "enum":["TASK_DEFINITION"] + }, + "ReferenceId":{ + "type":"string", + "max":1024, + "min":0 + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The request references a resource which does not exist.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RetryPolicy":{ + "type":"structure", + "members":{ + "MaximumEventAgeInSeconds":{ + "shape":"MaximumEventAgeInSeconds", + "documentation":"

The maximum amount of time, in seconds, to continue to make retry attempts.

" + }, + "MaximumRetryAttempts":{ + "shape":"MaximumRetryAttempts", + "documentation":"

The maximum number of retry attempts to make before the request fails. Retry attempts with exponential backoff continue until either the maximum number of attempts is made or until the duration of the MaximumEventAgeInSeconds is reached.

" + } + }, + "documentation":"

A RetryPolicy object that includes information about the retry policy settings, including the maximum age of an event, and the maximum number of times EventBridge Scheduler will try to deliver the event to a target.

" + }, + "RoleArn":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"^arn:aws(-[a-z]+)?:iam::\\d{12}:role\\/(service-role\\/){0,1}[a-zA-Z0-9\\+=,\\.@\\-_]+$" + }, + "SageMakerPipelineParameter":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{ + "shape":"SageMakerPipelineParameterName", + "documentation":"

Name of parameter to start execution of a SageMaker Model Building Pipeline.

" + }, + "Value":{ + "shape":"SageMakerPipelineParameterValue", + "documentation":"

Value of parameter to start execution of a SageMaker Model Building Pipeline.

" + } + }, + "documentation":"

The name and value pair of a parameter to use to start execution of a SageMaker Model Building Pipeline.

" + }, + "SageMakerPipelineParameterList":{ + "type":"list", + "member":{"shape":"SageMakerPipelineParameter"}, + "max":200, + "min":0 + }, + "SageMakerPipelineParameterName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^[A-Za-z0-9\\-_]*$" + }, + "SageMakerPipelineParameterValue":{ + "type":"string", + "max":1024, + "min":1 + }, + "SageMakerPipelineParameters":{ + "type":"structure", + "members":{ + "PipelineParameterList":{ + "shape":"SageMakerPipelineParameterList", + "documentation":"

List of parameter names and values to use when executing the SageMaker Model Building Pipeline.

" + } + }, + "documentation":"

The templated target type for the Amazon SageMaker StartPipelineExecution API operation.

" + }, + "ScheduleArn":{ + "type":"string", + "max":1224, + "min":1, + "pattern":"^arn:aws(-[a-z]+)?:scheduler:[a-z0-9\\-]+:\\d{12}:schedule\\/[0-9a-zA-Z-_.]+\\/[0-9a-zA-Z-_.]+$" + }, + "ScheduleExpression":{ + "type":"string", + "max":256, + "min":1 + }, + "ScheduleExpressionTimezone":{ + "type":"string", + "max":50, + "min":1 + }, + "ScheduleGroupArn":{ + "type":"string", + "max":1224, + "min":1, + "pattern":"^arn:aws(-[a-z]+)?:scheduler:[a-z0-9\\-]+:\\d{12}:schedule-group\\/[0-9a-zA-Z-_.]+$" + }, + "ScheduleGroupList":{ + "type":"list", + "member":{"shape":"ScheduleGroupSummary"} + }, + "ScheduleGroupName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[0-9a-zA-Z-_.]+$" + }, + "ScheduleGroupNamePrefix":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z][0-9a-zA-Z-_]*$" + }, + "ScheduleGroupState":{ + "type":"string", + "enum":[ + "ACTIVE", + "DELETING" + ] + }, + "ScheduleGroupSummary":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"ScheduleGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the schedule group.

" + }, + "CreationDate":{ + "shape":"CreationDate", + "documentation":"

The time at which the schedule group was created.

" + }, + "LastModificationDate":{ + "shape":"LastModificationDate", + "documentation":"

The time at which the schedule group was last modified.

" + }, + "Name":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group.

" + }, + "State":{ + "shape":"ScheduleGroupState", + "documentation":"

Specifies the state of the schedule group.

" + } + }, + "documentation":"

The details of a schedule group.

" + }, + "ScheduleList":{ + "type":"list", + "member":{"shape":"ScheduleSummary"} + }, + "ScheduleState":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, + "ScheduleSummary":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"ScheduleArn", + "documentation":"

The Amazon Resource Name (ARN) of the schedule.

" + }, + "CreationDate":{ + "shape":"CreationDate", + "documentation":"

The time at which the schedule was created.

" + }, + "GroupName":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group associated with this schedule.

" + }, + "LastModificationDate":{ + "shape":"LastModificationDate", + "documentation":"

The time at which the schedule was last modified.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the schedule.

" + }, + "State":{ + "shape":"ScheduleState", + "documentation":"

Specifies whether the schedule is enabled or disabled.

" + }, + "Target":{ + "shape":"TargetSummary", + "documentation":"

The schedule's target details.

" + } + }, + "documentation":"

The details of a schedule.

" + }, + "SecurityGroup":{ + "type":"string", + "max":1000, + "min":1 + }, + "SecurityGroups":{ + "type":"list", + "member":{"shape":"SecurityGroup"}, + "max":5, + "min":1 + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The request exceeds a service quota.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "Source":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^(?=[/\\.\\-_A-Za-z0-9]+)((?!aws\\.).*)|(\\$(\\.[\\w_-]+(\\[(\\d+|\\*)\\])*)*)$" + }, + "SqsParameters":{ + "type":"structure", + "members":{ + "MessageGroupId":{ + "shape":"MessageGroupId", + "documentation":"

The FIFO message group ID to use as the target.

" + } + }, + "documentation":"

The templated target type for the Amazon SQS SendMessage API operation. Contains the message group ID to use when the target is a FIFO queue. If you specify an Amazon SQS FIFO queue as a target, the queue must have content-based deduplication enabled. For more information, see Using the Amazon SQS message deduplication ID in the Amazon SQS Developer Guide.

" + }, + "StartDate":{"type":"timestamp"}, + "String":{"type":"string"}, + "Subnet":{ + "type":"string", + "max":1000, + "min":1 + }, + "Subnets":{ + "type":"list", + "member":{"shape":"Subnet"}, + "max":16, + "min":1 + }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

The key for the tag.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

The value for the tag.

" + } + }, + "documentation":"

Tag to associate with a schedule group.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":0 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "TagResourceArn":{ + "type":"string", + "max":1011, + "min":1, + "pattern":"^arn:aws(-[a-z]+)?:scheduler:[a-z0-9\\-]+:\\d{12}:schedule-group\\/[0-9a-zA-Z-_.]+$" + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"TagResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the schedule group that you are adding tags to.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The list of tags to associate with the schedule group.

" + } + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":1 + }, + "Tags":{ + "type":"list", + "member":{"shape":"TagMap"}, + "max":50, + "min":0 + }, + "Target":{ + "type":"structure", + "required":[ + "Arn", + "RoleArn" + ], + "members":{ + "Arn":{ + "shape":"TargetArn", + "documentation":"

The Amazon Resource Name (ARN) of the target.

" + }, + "DeadLetterConfig":{ + "shape":"DeadLetterConfig", + "documentation":"

An object that contains information about an Amazon SQS queue that EventBridge Scheduler uses as a dead-letter queue for your schedule. If specified, EventBridge Scheduler delivers failed events that could not be successfully delivered to a target to the queue.

" + }, + "EcsParameters":{ + "shape":"EcsParameters", + "documentation":"

The templated target type for the Amazon ECS RunTask API operation.

" + }, + "EventBridgeParameters":{ + "shape":"EventBridgeParameters", + "documentation":"

The templated target type for the EventBridge PutEvents API operation.

" + }, + "Input":{ + "shape":"TargetInput", + "documentation":"

The text, or well-formed JSON, passed to the target. If you are configuring a templated Lambda, AWS Step Functions, or Amazon EventBridge target, the input must be a well-formed JSON. For all other target types, a JSON is not required. If you do not specify anything for this field, EventBridge Scheduler delivers a default notification to the target.

" + }, + "KinesisParameters":{ + "shape":"KinesisParameters", + "documentation":"

The templated target type for the Amazon Kinesis PutRecord API operation.

" + }, + "RetryPolicy":{ + "shape":"RetryPolicy", + "documentation":"

A RetryPolicy object that includes information about the retry policy settings, including the maximum age of an event, and the maximum number of times EventBridge Scheduler will try to deliver the event to a target.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the IAM role that EventBridge Scheduler will use for this target when the schedule is invoked.

" + }, + "SageMakerPipelineParameters":{ + "shape":"SageMakerPipelineParameters", + "documentation":"

The templated target type for the Amazon SageMaker StartPipelineExecution API operation.

" + }, + "SqsParameters":{ + "shape":"SqsParameters", + "documentation":"

The templated target type for the Amazon SQS SendMessage API operation. Contains the message group ID to use when the target is a FIFO queue. If you specify an Amazon SQS FIFO queue as a target, the queue must have content-based deduplication enabled. For more information, see Using the Amazon SQS message deduplication ID in the Amazon SQS Developer Guide.

" + } + }, + "documentation":"

The schedule's target. EventBridge Scheduler supports templated target that invoke common API operations, as well as universal targets that you can customize to invoke over 6,000 API operations across more than 270 services. You can only specify one templated or universal target for a schedule.

" + }, + "TargetArn":{ + "type":"string", + "max":1600, + "min":1 + }, + "TargetInput":{ + "type":"string", + "min":1 + }, + "TargetPartitionKey":{ + "type":"string", + "max":256, + "min":1 + }, + "TargetSummary":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"TargetArn", + "documentation":"

The Amazon Resource Name (ARN) of the target.

" + } + }, + "documentation":"

The details of a target.

" + }, + "TaskCount":{ + "type":"integer", + "box":true, + "max":10, + "min":1 + }, + "TaskDefinitionArn":{ + "type":"string", + "max":1600, + "min":1 + }, + "ThrottlingException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The request was denied due to request throttling.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true + }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"TagResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the schedule group from which you are removing tags.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

The list of tag keys to remove from the resource.

", + "location":"querystring", + "locationName":"TagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "UpdateScheduleInput":{ + "type":"structure", + "required":[ + "FlexibleTimeWindow", + "Name", + "ScheduleExpression", + "Target" + ], + "members":{ + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.

", + "idempotencyToken":true + }, + "Description":{ + "shape":"Description", + "documentation":"

The description you specify for the schedule.

" + }, + "EndDate":{ + "shape":"EndDate", + "documentation":"

The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify. EventBridge Scheduler ignores EndDate for one-time schedules.

" + }, + "FlexibleTimeWindow":{ + "shape":"FlexibleTimeWindow", + "documentation":"

Allows you to configure a time window during which EventBridge Scheduler invokes the schedule.

" + }, + "GroupName":{ + "shape":"ScheduleGroupName", + "documentation":"

The name of the schedule group with which the schedule is associated. You must provide this value in order for EventBridge Scheduler to find the schedule you want to update. If you omit this value, EventBridge Scheduler assumes the group is associated to the default group.

" + }, + "KmsKeyArn":{ + "shape":"KmsKeyArn", + "documentation":"

The ARN for the customer managed KMS key that that you want EventBridge Scheduler to use to encrypt and decrypt your data.

" + }, + "Name":{ + "shape":"Name", + "documentation":"

The name of the schedule that you are updating.

", + "location":"uri", + "locationName":"Name" + }, + "ScheduleExpression":{ + "shape":"ScheduleExpression", + "documentation":"

The expression that defines when the schedule runs. The following formats are supported.

  • at expression - at(yyyy-mm-ddThh:mm:ss)

  • rate expression - rate(unit value)

  • cron expression - cron(fields)

You can use at expressions to create one-time schedules that invoke a target once, at the time and in the time zone, that you specify. You can use rate and cron expressions to create recurring schedules. Rate-based schedules are useful when you want to invoke a target at regular intervals, such as every 15 minutes or every five days. Cron-based schedules are useful when you want to invoke a target periodically at a specific time, such as at 8:00 am (UTC+0) every 1st day of the month.

A cron expression consists of six fields separated by white spaces: (minutes hours day_of_month month day_of_week year).

A rate expression consists of a value as a positive integer, and a unit with the following options: minute | minutes | hour | hours | day | days

For more information and examples, see Schedule types on EventBridge Scheduler in the EventBridge Scheduler User Guide.

" + }, + "ScheduleExpressionTimezone":{ + "shape":"ScheduleExpressionTimezone", + "documentation":"

The timezone in which the scheduling expression is evaluated.

" + }, + "StartDate":{ + "shape":"StartDate", + "documentation":"

The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify. EventBridge Scheduler ignores StartDate for one-time schedules.

" + }, + "State":{ + "shape":"ScheduleState", + "documentation":"

Specifies whether the schedule is enabled or disabled.

" + }, + "Target":{ + "shape":"Target", + "documentation":"

The schedule target. You can use this operation to change the target that your schedule invokes.

" + } + } + }, + "UpdateScheduleOutput":{ + "type":"structure", + "required":["ScheduleArn"], + "members":{ + "ScheduleArn":{ + "shape":"ScheduleArn", + "documentation":"

The Amazon Resource Name (ARN) of the schedule that you updated.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":["Message"], + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The input fails to satisfy the constraints specified by an AWS service.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + }, + "documentation":"

Amazon EventBridge Scheduler is a serverless scheduler that allows you to create, run, and manage tasks from one central, managed service. EventBridge Scheduler delivers your tasks reliably, with built-in mechanisms that adjust your schedules based on the availability of downstream targets. The following reference lists the available API actions, and data types for EventBridge Scheduler.

" +} diff --git a/botocore/data/schemas/2019-12-02/endpoint-rule-set-1.json b/botocore/data/schemas/2019-12-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..0867d35d --- /dev/null +++ b/botocore/data/schemas/2019-12-02/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://schemas-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://schemas-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://schemas.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://schemas.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sdb/2009-04-15/endpoint-rule-set-1.json b/botocore/data/sdb/2009-04-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..790f66de --- /dev/null +++ b/botocore/data/sdb/2009-04-15/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sdb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sdb-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sdb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://sdb.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://sdb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/secretsmanager/2017-10-17/endpoint-rule-set-1.json b/botocore/data/secretsmanager/2017-10-17/endpoint-rule-set-1.json new file mode 100644 index 00000000..87086075 --- /dev/null +++ b/botocore/data/secretsmanager/2017-10-17/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://secretsmanager-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://secretsmanager-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://secretsmanager.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://secretsmanager.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/secretsmanager/2017-10-17/examples-1.json b/botocore/data/secretsmanager/2017-10-17/examples-1.json index fb14a047..43a3ec4f 100644 --- a/botocore/data/secretsmanager/2017-10-17/examples-1.json +++ b/botocore/data/secretsmanager/2017-10-17/examples-1.json @@ -27,7 +27,7 @@ "ClientRequestToken": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1", "Description": "My test database secret created with the CLI", "Name": "MyTestDatabaseSecret", - "SecretString": "{\"username\":\"david\",\"password\":\"BnQw!XDWgaEeT9XGTT29\"}" + "SecretString": "{\"username\":\"david\",\"password\":\"EXAMPLE-PASSWORD\"}" }, "output": { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", @@ -103,7 +103,9 @@ "RotationEnabled": true, "RotationLambdaARN": "arn:aws:lambda:us-west-2:123456789012:function:MyTestRotationLambda", "RotationRules": { - "AutomaticallyAfterDays": 30 + "AutomaticallyAfterDays": 14, + "Duration": "2h", + "ScheduleExpression": "cron(0 16 1,15 * ? *)" }, "Tags": [ { @@ -143,7 +145,7 @@ "RequireEachIncludedType": true }, "output": { - "RandomPassword": "N+Z43a,>vx7j O8^*<8i3" + "RandomPassword": "EXAMPLE-PASSWORD" }, "comments": { "input": { @@ -180,14 +182,13 @@ "GetSecretValue": [ { "input": { - "SecretId": "MyTestDatabaseSecret", - "VersionStage": "AWSPREVIOUS" + "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\":\"BnQw&XDWgaEeT9XGTT29\"\n}\n", + "SecretString": "{\n \"username\":\"david\",\n \"password\":\"EXAMPLE-PASSWORD\"\n}\n", "VersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1", "VersionStages": [ "AWSPREVIOUS" @@ -199,7 +200,7 @@ "output": { } }, - "description": "The following example shows how to retrieve the secret string value from the version of the secret that has the AWSPREVIOUS staging label attached. If you want to retrieve the AWSCURRENT version of the secret, then you can omit the VersionStage parameter because it defaults to AWSCURRENT.", + "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" } @@ -312,7 +313,7 @@ "input": { "ClientRequestToken": "EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE", "SecretId": "MyTestDatabaseSecret", - "SecretString": "{\"username\":\"david\",\"password\":\"BnQw!XDWgaEeT9XGTT29\"}" + "SecretString": "{\"username\":\"david\",\"password\":\"EXAMPLE-PASSWORD\"}" }, "output": { "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", @@ -358,7 +359,8 @@ "input": { "RotationLambdaARN": "arn:aws:lambda:us-west-2:123456789012:function:MyTestDatabaseRotationLambda", "RotationRules": { - "AutomaticallyAfterDays": 30 + "Duration": "2h", + "ScheduleExpression": "cron(0 16 1,15 * ? *)" }, "SecretId": "MyTestDatabaseSecret" }, @@ -373,9 +375,28 @@ "output": { } }, - "description": "The following example configures rotation for a secret by providing the ARN of a Lambda rotation function (which must already exist) and the number of days between rotation. The first rotation happens immediately upon completion of this command. The rotation function runs asynchronously in the background.", + "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": [ @@ -547,6 +568,29 @@ "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/botocore/data/secretsmanager/2017-10-17/service-2.json b/botocore/data/secretsmanager/2017-10-17/service-2.json index aa84e5c7..247a36e7 100644 --- a/botocore/data/secretsmanager/2017-10-17/service-2.json +++ b/botocore/data/secretsmanager/2017-10-17/service-2.json @@ -27,7 +27,7 @@ {"shape":"InternalServiceError"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Turns off automatic rotation, and if a rotation is currently in progress, cancels the rotation.

If you cancel a rotation in progress, it can leave the VersionStage labels in an unexpected state. You might need to remove the staging label AWSPENDING from the partially created version. You also need to determine whether to roll back to the previous version of the secret by moving the staging label AWSCURRENT to the version that has AWSPENDING. To determine which version has a specific staging label, call ListSecretVersionIds. Then use UpdateSecretVersionStage to change staging labels. For more information, see How rotation works.

To turn on automatic rotation again, call RotateSecret.

Required permissions: secretsmanager:CancelRotateSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Turns off automatic rotation, and if a rotation is currently in progress, cancels the rotation.

If you cancel a rotation in progress, it can leave the VersionStage labels in an unexpected state. You might need to remove the staging label AWSPENDING from the partially created version. You also need to determine whether to roll back to the previous version of the secret by moving the staging label AWSCURRENT to the version that has AWSPENDING. To determine which version has a specific staging label, call ListSecretVersionIds. Then use UpdateSecretVersionStage to change staging labels. For more information, see How rotation works.

To turn on automatic rotation again, call RotateSecret.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:CancelRotateSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "CreateSecret":{ "name":"CreateSecret", @@ -49,7 +49,7 @@ {"shape":"PreconditionNotMetException"}, {"shape":"DecryptionFailure"} ], - "documentation":"

Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret.

For information about creating a secret in the console, see Create a secret.

To create a secret, you can provide the secret value to be encrypted in either the SecretString parameter or the SecretBinary parameter, but not both. If you include SecretString or SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the staging label AWSCURRENT to it.

For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the JSON you store in the SecretString matches the JSON structure of a database secret.

If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result.

If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key.

Required permissions: secretsmanager:CreateSecret. If you include tags in the secret, you also need secretsmanager:TagResource. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

To encrypt the secret with a KMS key other than aws/secretsmanager, you need kms:GenerateDataKey and kms:Decrypt permission to the key.

" + "documentation":"

Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret.

For information about creating a secret in the console, see Create a secret.

To create a secret, you can provide the secret value to be encrypted in either the SecretString parameter or the SecretBinary parameter, but not both. If you include SecretString or SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the staging label AWSCURRENT to it.

For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the JSON you store in the SecretString matches the JSON structure of a database secret.

If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result.

If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:CreateSecret. If you include tags in the secret, you also need secretsmanager:TagResource. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

To encrypt the secret with a KMS key other than aws/secretsmanager, you need kms:GenerateDataKey and kms:Decrypt permission to the key.

" }, "DeleteResourcePolicy":{ "name":"DeleteResourcePolicy", @@ -65,7 +65,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Deletes the resource-based permission policy attached to the secret. To attach a policy to a secret, use PutResourcePolicy.

Required permissions: secretsmanager:DeleteResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Deletes the resource-based permission policy attached to the secret. To attach a policy to a secret, use PutResourcePolicy.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:DeleteResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "DeleteSecret":{ "name":"DeleteSecret", @@ -81,7 +81,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceError"} ], - "documentation":"

Deletes a secret and all of its versions. You can specify a recovery window during which you can restore the secret. The minimum recovery window is 7 days. The default recovery window is 30 days. Secrets Manager attaches a DeletionDate stamp to the secret that specifies the end of the recovery window. At the end of the recovery window, Secrets Manager deletes the secret permanently.

You can't delete a primary secret that is replicated to other Regions. You must first delete the replicas using RemoveRegionsFromReplication, and then delete the primary secret. When you delete a replica, it is deleted immediately.

You can't directly delete a version of a secret. Instead, you remove all staging labels from the version using UpdateSecretVersionStage. This marks the version as deprecated, and then Secrets Manager can automatically delete the version in the background.

To determine whether an application still uses a secret, you can create an Amazon CloudWatch alarm to alert you to any attempts to access a secret during the recovery window. For more information, see Monitor secrets scheduled for deletion.

Secrets Manager performs the permanent secret deletion at the end of the waiting period as a background task with low priority. There is no guarantee of a specific time after the recovery window for the permanent delete to occur.

At any time before recovery window ends, you can use RestoreSecret to remove the DeletionDate and cancel the deletion of the secret.

When a secret is scheduled for deletion, you cannot retrieve the secret value. You must first cancel the deletion with RestoreSecret and then you can retrieve the secret.

Required permissions: secretsmanager:DeleteSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Deletes a secret and all of its versions. You can specify a recovery window during which you can restore the secret. The minimum recovery window is 7 days. The default recovery window is 30 days. Secrets Manager attaches a DeletionDate stamp to the secret that specifies the end of the recovery window. At the end of the recovery window, Secrets Manager deletes the secret permanently.

You can't delete a primary secret that is replicated to other Regions. You must first delete the replicas using RemoveRegionsFromReplication, and then delete the primary secret. When you delete a replica, it is deleted immediately.

You can't directly delete a version of a secret. Instead, you remove all staging labels from the version using UpdateSecretVersionStage. This marks the version as deprecated, and then Secrets Manager can automatically delete the version in the background.

To determine whether an application still uses a secret, you can create an Amazon CloudWatch alarm to alert you to any attempts to access a secret during the recovery window. For more information, see Monitor secrets scheduled for deletion.

Secrets Manager performs the permanent secret deletion at the end of the waiting period as a background task with low priority. There is no guarantee of a specific time after the recovery window for the permanent delete to occur.

At any time before recovery window ends, you can use RestoreSecret to remove the DeletionDate and cancel the deletion of the secret.

When a secret is scheduled for deletion, you cannot retrieve the secret value. You must first cancel the deletion with RestoreSecret and then you can retrieve the secret.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:DeleteSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "DescribeSecret":{ "name":"DescribeSecret", @@ -96,7 +96,7 @@ {"shape":"InternalServiceError"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager only returns fields that have a value in the response.

Required permissions: secretsmanager:DescribeSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager only returns fields that have a value in the response.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:DescribeSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "GetRandomPassword":{ "name":"GetRandomPassword", @@ -111,7 +111,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceError"} ], - "documentation":"

Generates a random password. We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support.

Required permissions: secretsmanager:GetRandomPassword. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Generates a random password. We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:GetRandomPassword. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "GetResourcePolicy":{ "name":"GetResourcePolicy", @@ -127,7 +127,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Retrieves the JSON text of the resource-based policy document attached to the secret. For more information about permissions policies attached to a secret, see Permissions policies attached to a secret.

Required permissions: secretsmanager:GetResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Retrieves the JSON text of the resource-based policy document attached to the secret. For more information about permissions policies attached to a secret, see Permissions policies attached to a secret.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:GetResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "GetSecretValue":{ "name":"GetSecretValue", @@ -144,7 +144,7 @@ {"shape":"DecryptionFailure"}, {"shape":"InternalServiceError"} ], - "documentation":"

Retrieves the contents of the encrypted fields SecretString or SecretBinary from the specified version of a secret, whichever contains content.

We recommend that you cache your secret values by using client-side caching. Caching secrets improves speed and reduces your costs. For more information, see Cache secrets for your applications.

Required permissions: secretsmanager:GetSecretValue. If the secret is encrypted using a customer-managed key instead of the Amazon Web Services managed key aws/secretsmanager, then you also need kms:Decrypt permissions for that key. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Retrieves the contents of the encrypted fields SecretString or SecretBinary from the specified version of a secret, whichever contains content.

We recommend that you cache your secret values by using client-side caching. Caching secrets improves speed and reduces your costs. For more information, see Cache secrets for your applications.

To retrieve the previous version of a secret, use VersionStage and specify AWSPREVIOUS. To revert to the previous version of a secret, call UpdateSecretVersionStage.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:GetSecretValue. If the secret is encrypted using a customer-managed key instead of the Amazon Web Services managed key aws/secretsmanager, then you also need kms:Decrypt permissions for that key. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "ListSecretVersionIds":{ "name":"ListSecretVersionIds", @@ -160,7 +160,7 @@ {"shape":"InternalServiceError"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Lists the versions of a secret. Secrets Manager uses staging labels to indicate the different versions of a secret. For more information, see Secrets Manager concepts: Versions.

To list the secrets in the account, use ListSecrets.

Required permissions: secretsmanager:ListSecretVersionIds. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Lists the versions of a secret. Secrets Manager uses staging labels to indicate the different versions of a secret. For more information, see Secrets Manager concepts: Versions.

To list the secrets in the account, use ListSecrets.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:ListSecretVersionIds. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "ListSecrets":{ "name":"ListSecrets", @@ -175,7 +175,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"InternalServiceError"} ], - "documentation":"

Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account, not including secrets that are marked for deletion. To see secrets marked for deletion, use the Secrets Manager console.

To list the versions of a secret, use ListSecretVersionIds.

To get the secret value from SecretString or SecretBinary, call GetSecretValue.

For information about finding secrets in the console, see Find secrets in Secrets Manager.

Required permissions: secretsmanager:ListSecrets. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account, not including secrets that are marked for deletion. To see secrets marked for deletion, use the Secrets Manager console.

ListSecrets is eventually consistent, however it might not reflect changes from the last five minutes. To get the latest information for a specific secret, use DescribeSecret.

To list the versions of a secret, use ListSecretVersionIds.

To get the secret value from SecretString or SecretBinary, call GetSecretValue.

For information about finding secrets in the console, see Find secrets in Secrets Manager.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:ListSecrets. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "PutResourcePolicy":{ "name":"PutResourcePolicy", @@ -193,7 +193,7 @@ {"shape":"InvalidRequestException"}, {"shape":"PublicPolicyException"} ], - "documentation":"

Attaches a resource-based permission policy to a secret. A resource-based policy is optional. For more information, see Authentication and access control for Secrets Manager

For information about attaching a policy in the console, see Attach a permissions policy to a secret.

Required permissions: secretsmanager:PutResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Attaches a resource-based permission policy to a secret. A resource-based policy is optional. For more information, see Authentication and access control for Secrets Manager

For information about attaching a policy in the console, see Attach a permissions policy to a secret.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:PutResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "PutSecretValue":{ "name":"PutSecretValue", @@ -213,7 +213,7 @@ {"shape":"InternalServiceError"}, {"shape":"DecryptionFailure"} ], - "documentation":"

Creates a new version with a new encrypted secret value and attaches it to the secret. The version can contain a new SecretString value or a new SecretBinary value.

We recommend you avoid calling PutSecretValue at a sustained rate of more than once every 10 minutes. When you update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you call PutSecretValue more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions.

You can specify the staging labels to attach to the new version in VersionStages. If you don't include VersionStages, then Secrets Manager automatically moves the staging label AWSCURRENT to this version. If this operation creates the first version for the secret, then Secrets Manager automatically attaches the staging label AWSCURRENT to it .

If this operation moves the staging label AWSCURRENT from another version to this version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from.

This operation is idempotent. If a version with a VersionId with the same value as the ClientRequestToken parameter already exists, and you specify the same secret data, the operation succeeds but does nothing. However, if the secret data is different, then the operation fails because you can't modify an existing version; you can only create new ones.

Required permissions: secretsmanager:PutSecretValue. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Creates a new version with a new encrypted secret value and attaches it to the secret. The version can contain a new SecretString value or a new SecretBinary value.

We recommend you avoid calling PutSecretValue at a sustained rate of more than once every 10 minutes. When you update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you call PutSecretValue more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions.

You can specify the staging labels to attach to the new version in VersionStages. If you don't include VersionStages, then Secrets Manager automatically moves the staging label AWSCURRENT to this version. If this operation creates the first version for the secret, then Secrets Manager automatically attaches the staging label AWSCURRENT to it. If this operation moves the staging label AWSCURRENT from another version to this version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from.

This operation is idempotent. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, and you specify the same secret data, the operation succeeds but does nothing. However, if the secret data is different, then the operation fails because you can't modify an existing version; you can only create new ones.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:PutSecretValue. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "RemoveRegionsFromReplication":{ "name":"RemoveRegionsFromReplication", @@ -229,7 +229,7 @@ {"shape":"InvalidParameterException"}, {"shape":"InternalServiceError"} ], - "documentation":"

For a secret that is replicated to other Regions, deletes the secret replicas from the Regions you specify.

Required permissions: secretsmanager:RemoveRegionsFromReplication. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

For a secret that is replicated to other Regions, deletes the secret replicas from the Regions you specify.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:RemoveRegionsFromReplication. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "ReplicateSecretToRegions":{ "name":"ReplicateSecretToRegions", @@ -245,7 +245,7 @@ {"shape":"InvalidParameterException"}, {"shape":"InternalServiceError"} ], - "documentation":"

Replicates the secret to a new Regions. See Multi-Region secrets.

Required permissions: secretsmanager:ReplicateSecretToRegions. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Replicates the secret to a new Regions. See Multi-Region secrets.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:ReplicateSecretToRegions. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "RestoreSecret":{ "name":"RestoreSecret", @@ -261,7 +261,7 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceError"} ], - "documentation":"

Cancels the scheduled deletion of a secret by removing the DeletedDate time stamp. You can access a secret again after it has been restored.

Required permissions: secretsmanager:RestoreSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Cancels the scheduled deletion of a secret by removing the DeletedDate time stamp. You can access a secret again after it has been restored.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:RestoreSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "RotateSecret":{ "name":"RotateSecret", @@ -277,7 +277,7 @@ {"shape":"InternalServiceError"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Configures and starts the asynchronous process of rotating the secret. For more information about rotation, see Rotate secrets.

If you include the configuration parameters, the operation sets the values for the secret and then immediately starts a rotation. If you don't include the configuration parameters, the operation starts a rotation with the values already stored in the secret.

For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the secret value is in the JSON structure of a database secret. In particular, if you want to use the alternating users strategy, your secret must contain the ARN of a superuser secret.

To configure rotation, you also need the ARN of an Amazon Web Services Lambda function and the schedule for the rotation. The Lambda rotation function creates a new version of the secret and creates or updates the credentials on the database or service to match. After testing the new credentials, the function marks the new secret version with the staging label AWSCURRENT. Then anyone who retrieves the secret gets the new version. For more information, see How rotation works.

You can create the Lambda rotation function based on the rotation function templates that Secrets Manager provides. Choose a template that matches your Rotation strategy.

When rotation is successful, the AWSPENDING staging label might be attached to the same version as the AWSCURRENT version, or it might not be attached to any version. If the AWSPENDING staging label is present but not attached to the same version as AWSCURRENT, then any later invocation of RotateSecret assumes that a previous rotation request is still in progress and returns an error.

Required permissions: secretsmanager:RotateSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager. You also need lambda:InvokeFunction permissions on the rotation function. For more information, see Permissions for rotation.

" + "documentation":"

Configures and starts the asynchronous process of rotating the secret. For more information about rotation, see Rotate secrets.

If you include the configuration parameters, the operation sets the values for the secret and then immediately starts a rotation. If you don't include the configuration parameters, the operation starts a rotation with the values already stored in the secret.

For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the secret value is in the JSON structure of a database secret. In particular, if you want to use the alternating users strategy, your secret must contain the ARN of a superuser secret.

To configure rotation, you also need the ARN of an Amazon Web Services Lambda function and the schedule for the rotation. The Lambda rotation function creates a new version of the secret and creates or updates the credentials on the database or service to match. After testing the new credentials, the function marks the new secret version with the staging label AWSCURRENT. Then anyone who retrieves the secret gets the new version. For more information, see How rotation works.

You can create the Lambda rotation function based on the rotation function templates that Secrets Manager provides. Choose a template that matches your Rotation strategy.

When rotation is successful, the AWSPENDING staging label might be attached to the same version as the AWSCURRENT version, or it might not be attached to any version. If the AWSPENDING staging label is present but not attached to the same version as AWSCURRENT, then any later invocation of RotateSecret assumes that a previous rotation request is still in progress and returns an error.

When rotation is unsuccessful, the AWSPENDING staging label might be attached to an empty secret version. For more information, see Troubleshoot rotation in the Secrets Manager User Guide.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:RotateSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager. You also need lambda:InvokeFunction permissions on the rotation function. For more information, see Permissions for rotation.

" }, "StopReplicationToReplica":{ "name":"StopReplicationToReplica", @@ -293,7 +293,7 @@ {"shape":"InvalidParameterException"}, {"shape":"InternalServiceError"} ], - "documentation":"

Removes the link between the replica secret and the primary secret and promotes the replica to a primary secret in the replica Region.

You must call this operation from the Region in which you want to promote the replica to a primary secret.

Required permissions: secretsmanager:StopReplicationToReplica. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Removes the link between the replica secret and the primary secret and promotes the replica to a primary secret in the replica Region.

You must call this operation from the Region in which you want to promote the replica to a primary secret.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:StopReplicationToReplica. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "TagResource":{ "name":"TagResource", @@ -308,7 +308,7 @@ {"shape":"InvalidParameterException"}, {"shape":"InternalServiceError"} ], - "documentation":"

Attaches tags to a secret. Tags consist of a key name and a value. Tags are part of the secret's metadata. They are not associated with specific versions of the secret. This operation appends tags to the existing list of tags.

The following restrictions apply to tags:

  • Maximum number of tags per secret: 50

  • Maximum key length: 127 Unicode characters in UTF-8

  • Maximum value length: 255 Unicode characters in UTF-8

  • Tag keys and values are case sensitive.

  • Do not use the aws: prefix in your tag names or values because Amazon Web Services reserves it for Amazon Web Services use. You can't edit or delete tag names or values with this prefix. Tags with this prefix do not count against your tags per secret limit.

  • If you use your tagging schema across multiple services and resources, other services might have restrictions on allowed characters. Generally allowed characters: letters, spaces, and numbers representable in UTF-8, plus the following special characters: + - = . _ : / @.

If you use tags as part of your security strategy, then adding or removing a tag can change permissions. If successfully completing this operation would result in you losing your permissions for this secret, then the operation is blocked and returns an Access Denied error.

Required permissions: secretsmanager:TagResource. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Attaches tags to a secret. Tags consist of a key name and a value. Tags are part of the secret's metadata. They are not associated with specific versions of the secret. This operation appends tags to the existing list of tags.

The following restrictions apply to tags:

  • Maximum number of tags per secret: 50

  • Maximum key length: 127 Unicode characters in UTF-8

  • Maximum value length: 255 Unicode characters in UTF-8

  • Tag keys and values are case sensitive.

  • Do not use the aws: prefix in your tag names or values because Amazon Web Services reserves it for Amazon Web Services use. You can't edit or delete tag names or values with this prefix. Tags with this prefix do not count against your tags per secret limit.

  • If you use your tagging schema across multiple services and resources, other services might have restrictions on allowed characters. Generally allowed characters: letters, spaces, and numbers representable in UTF-8, plus the following special characters: + - = . _ : / @.

If you use tags as part of your security strategy, then adding or removing a tag can change permissions. If successfully completing this operation would result in you losing your permissions for this secret, then the operation is blocked and returns an Access Denied error.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:TagResource. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "UntagResource":{ "name":"UntagResource", @@ -323,7 +323,7 @@ {"shape":"InvalidParameterException"}, {"shape":"InternalServiceError"} ], - "documentation":"

Removes specific tags from a secret.

This operation is idempotent. If a requested tag is not attached to the secret, no error is returned and the secret metadata is unchanged.

If you use tags as part of your security strategy, then removing a tag can change permissions. If successfully completing this operation would result in you losing your permissions for this secret, then the operation is blocked and returns an Access Denied error.

Required permissions: secretsmanager:UntagResource. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Removes specific tags from a secret.

This operation is idempotent. If a requested tag is not attached to the secret, no error is returned and the secret metadata is unchanged.

If you use tags as part of your security strategy, then removing a tag can change permissions. If successfully completing this operation would result in you losing your permissions for this secret, then the operation is blocked and returns an Access Denied error.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:UntagResource. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "UpdateSecret":{ "name":"UpdateSecret", @@ -345,7 +345,7 @@ {"shape":"PreconditionNotMetException"}, {"shape":"DecryptionFailure"} ], - "documentation":"

Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use PutSecretValue.

To change the rotation configuration of a secret, use RotateSecret instead.

We recommend you avoid calling UpdateSecret at a sustained rate of more than once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you update the secret value more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions.

If you include SecretString or SecretBinary to create a new secret version, Secrets Manager automatically attaches the staging label AWSCURRENT to the new version.

If you call this operation with a VersionId that matches an existing version's ClientRequestToken, the operation results in an error. You can't modify an existing version, you can only create a new version. To remove a version, remove all staging labels from it. See UpdateSecretVersionStage.

If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result.

If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed key.

Required permissions: secretsmanager:UpdateSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager. If you use a customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions on the key. For more information, see Secret encryption and decryption.

" + "documentation":"

Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use PutSecretValue.

To change the rotation configuration of a secret, use RotateSecret instead.

We recommend you avoid calling UpdateSecret at a sustained rate of more than once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you update the secret value more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions.

If you include SecretString or SecretBinary to create a new secret version, Secrets Manager automatically moves the staging label AWSCURRENT to the new version. Then it attaches the label AWSPREVIOUS to the version that AWSCURRENT was removed from.

If you call this operation with a ClientRequestToken that matches an existing version's VersionId, the operation results in an error. You can't modify an existing version, you can only create a new version. To remove a version, remove all staging labels from it. See UpdateSecretVersionStage.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:UpdateSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager. If you use a customer managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions on the key. For more information, see Secret encryption and decryption.

" }, "UpdateSecretVersionStage":{ "name":"UpdateSecretVersionStage", @@ -362,7 +362,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalServiceError"} ], - "documentation":"

Modifies the staging labels attached to a version of a secret. Secrets Manager uses staging labels to track a version as it progresses through the secret rotation process. Each staging label can be attached to only one version at a time. To add a staging label to a version when it is already attached to another version, Secrets Manager first removes it from the other version first and then attaches it to this one. For more information about versions and staging labels, see Concepts: Version.

The staging labels that you specify in the VersionStage parameter are added to the existing list of staging labels for the version.

You can move the AWSCURRENT staging label to this version by including it in this call.

Whenever you move AWSCURRENT, Secrets Manager automatically moves the label AWSPREVIOUS to the version that AWSCURRENT was removed from.

If this action results in the last label being removed from a version, then the version is considered to be 'deprecated' and can be deleted by Secrets Manager.

Required permissions: secretsmanager:UpdateSecretVersionStage. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Modifies the staging labels attached to a version of a secret. Secrets Manager uses staging labels to track a version as it progresses through the secret rotation process. Each staging label can be attached to only one version at a time. To add a staging label to a version when it is already attached to another version, Secrets Manager first removes it from the other version first and then attaches it to this one. For more information about versions and staging labels, see Concepts: Version.

The staging labels that you specify in the VersionStage parameter are added to the existing list of staging labels for the version.

You can move the AWSCURRENT staging label to this version by including it in this call.

Whenever you move AWSCURRENT, Secrets Manager automatically moves the label AWSPREVIOUS to the version that AWSCURRENT was removed from.

If this action results in the last label being removed from a version, then the version is considered to be 'deprecated' and can be deleted by Secrets Manager.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:UpdateSecretVersionStage. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" }, "ValidateResourcePolicy":{ "name":"ValidateResourcePolicy", @@ -379,7 +379,7 @@ {"shape":"InternalServiceError"}, {"shape":"InvalidRequestException"} ], - "documentation":"

Validates that a resource policy does not grant a wide range of principals access to your secret. A resource-based policy is optional for secrets.

The API performs three checks when validating the policy:

  • Sends a call to Zelkova, an automated reasoning engine, to ensure your resource policy does not allow broad access to your secret, for example policies that use a wildcard for the principal.

  • Checks for correct syntax in a policy.

  • Verifies the policy does not lock out a caller.

Required permissions: secretsmanager:ValidateResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" + "documentation":"

Validates that a resource policy does not grant a wide range of principals access to your secret. A resource-based policy is optional for secrets.

The API performs three checks when validating the policy:

  • Sends a call to Zelkova, an automated reasoning engine, to ensure your resource policy does not allow broad access to your secret, for example policies that use a wildcard for the principal.

  • Checks for correct syntax in a policy.

  • Verifies the policy does not lock out a caller.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:ValidateResourcePolicy. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

" } }, "shapes":{ @@ -445,7 +445,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyIdType", - "documentation":"

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt the secret value in the secret.

To use a KMS key in a different account, use the key ARN or the alias ARN.

If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If that key doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value.

If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key.

" + "documentation":"

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt the secret value in the secret. An alias is always prefixed by alias/, for example alias/aws/secretsmanager. For more information, see About aliases.

To use a KMS key in a different account, use the key ARN or the alias ARN.

If you don't specify this value, then Secrets Manager uses the key aws/secretsmanager. If that key doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value.

If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key.

" }, "SecretBinary":{ "shape":"SecretBinaryType", @@ -537,7 +537,7 @@ }, "ForceDeleteWithoutRecovery":{ "shape":"BooleanType", - "documentation":"

Specifies whether to delete the secret without any recovery window. You can't use both this parameter and RecoveryWindowInDays in the same call. If you don't use either, then Secrets Manager defaults to a 30 day recovery window.

Secrets Manager performs the actual deletion with an asynchronous background process, so there might be a short delay before the secret is permanently deleted. If you delete a secret and then immediately create a secret with the same name, use appropriate back off and retry logic.

Use this parameter with caution. This parameter causes the operation to skip the normal recovery window before the permanent deletion that Secrets Manager would normally impose with the RecoveryWindowInDays parameter. If you delete a secret with the ForceDeleteWithouRecovery parameter, then you have no opportunity to recover the secret. You lose the secret permanently.

", + "documentation":"

Specifies whether to delete the secret without any recovery window. You can't use both this parameter and RecoveryWindowInDays in the same call. If you don't use either, then Secrets Manager defaults to a 30 day recovery window.

Secrets Manager performs the actual deletion with an asynchronous background process, so there might be a short delay before the secret is permanently deleted. If you delete a secret and then immediately create a secret with the same name, use appropriate back off and retry logic.

Use this parameter with caution. This parameter causes the operation to skip the normal recovery window before the permanent deletion that Secrets Manager would normally impose with the RecoveryWindowInDays parameter. If you delete a secret with the ForceDeleteWithoutRecovery parameter, then you have no opportunity to recover the secret. You lose the secret permanently.

", "box":true } } @@ -589,7 +589,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyIdType", - "documentation":"

The ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If the secret is encrypted with the Amazon Web Services managed key aws/secretsmanager, this field is omitted.

" + "documentation":"

The key ID or alias ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If the secret is encrypted with the Amazon Web Services managed key aws/secretsmanager, this field is omitted. Secrets created using the console use an KMS key ID.

" }, "RotationEnabled":{ "shape":"RotationEnabledType", @@ -616,7 +616,7 @@ }, "LastAccessedDate":{ "shape":"LastAccessedDateType", - "documentation":"

The last date that the secret value was retrieved. This value does not include the time. This field is omitted if the secret has never been retrieved.

", + "documentation":"

The date that the secret was last accessed in the Region. This field is omitted if the secret has never been retrieved in the Region.

", "box":true }, "DeletedDate":{ @@ -634,7 +634,7 @@ }, "OwningService":{ "shape":"OwningServiceType", - "documentation":"

The name of the service that created this secret.

" + "documentation":"

The ID of the service that created this secret. For more information, see Secrets managed by other Amazon Web Services services.

" }, "CreatedDate":{ "shape":"TimestampType", @@ -883,7 +883,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

A parameter value is not valid for the current state of the resource.

Possible causes:

  • The secret is scheduled for deletion.

  • You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and you didn't include such an ARN as a parameter in this call.

", + "documentation":"

A parameter value is not valid for the current state of the resource.

Possible causes:

  • The secret is scheduled for deletion.

  • You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and you didn't include such an ARN as a parameter in this call.

  • The secret is managed by another service, and you must use that service to update it. For more information, see Secrets managed by other Amazon Web Services services.

", "exception":true }, "KmsKeyIdListType":{ @@ -969,7 +969,7 @@ }, "SortOrder":{ "shape":"SortOrderType", - "documentation":"

Lists secrets in the requested order.

" + "documentation":"

Secrets are listed by CreatedDate.

" } } }, @@ -1244,7 +1244,7 @@ }, "LastAccessedDate":{ "shape":"LastAccessedDateType", - "documentation":"

The date that you last accessed the secret in the Region.

" + "documentation":"

The date that the secret was last accessed in the Region. This field is omitted if the secret has never been retrieved in the Region.

" } }, "documentation":"

A replication object consisting of a RegionReplicationStatus object and includes a Region, KMSKeyId, status, and status message.

" @@ -1346,16 +1346,16 @@ "members":{ "AutomaticallyAfterDays":{ "shape":"AutomaticallyRotateAfterDaysType", - "documentation":"

The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated.

In DescribeSecret and ListSecrets, this value is calculated from the rotation schedule after every successful rotation. In RotateSecret, you can set the rotation schedule in RotationRules with AutomaticallyAfterDays or ScheduleExpression, but not both.

", + "documentation":"

The number of days between automatic scheduled rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated.

In DescribeSecret and ListSecrets, this value is calculated from the rotation schedule after every successful rotation. In RotateSecret, you can set the rotation schedule in RotationRules with AutomaticallyAfterDays or ScheduleExpression, but not both. To set a rotation schedule in hours, use ScheduleExpression.

", "box":true }, "Duration":{ "shape":"DurationType", - "documentation":"

The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not go into the next UTC day. If you don't specify this value, the window automatically ends at the end of the UTC day. The window begins according to the ScheduleExpression. For more information, including examples, see Schedule expressions in Secrets Manager rotation.

" + "documentation":"

The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don't specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. For more information, including examples, see Schedule expressions in Secrets Manager rotation in the Secrets Manager Users Guide.

" }, "ScheduleExpression":{ "shape":"ScheduleExpressionType", - "documentation":"

A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone.

Secrets Manager rate() expressions represent the interval in days that you want to rotate your secret, for example rate(10 days). If you use a rate() expression, the rotation window opens at midnight, and Secrets Manager rotates your secret any time that day after midnight. You can set a Duration to shorten the rotation window.

You can use a cron() expression to create rotation schedules that are more detailed than a rotation interval. For more information, including examples, see Schedule expressions in Secrets Manager rotation. If you use a cron() expression, Secrets Manager rotates your secret any time during that day after the window opens. For example, cron(0 8 1 * ? *) represents a rotation window that occurs on the first day of every month beginning at 8:00 AM UTC. Secrets Manager rotates the secret any time that day after 8:00 AM. You can set a Duration to shorten the rotation window.

" + "documentation":"

A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. Secrets Manager rotates your secret any time during a rotation window.

Secrets Manager rate() expressions represent the interval in hours or days that you want to rotate your secret, for example rate(12 hours) or rate(10 days). You can rotate a secret as often as every four hours. If you use a rate() expression, the rotation window starts at midnight. For a rate in hours, the default rotation window closes after one hour. For a rate in days, the default rotation window closes at the end of the day. You can set the Duration to change the rotation window. The rotation window must not extend into the next UTC day or into the next rotation window.

You can use a cron() expression to create a rotation schedule that is more detailed than a rotation interval. For more information, including examples, see Schedule expressions in Secrets Manager rotation in the Secrets Manager Users Guide. For a cron expression that represents a schedule in hours, the default rotation window closes after one hour. For a cron expression that represents a schedule in days, the default rotation window closes at the end of the day. You can set the Duration to change the rotation window. The rotation window must not extend into the next UTC day or into the next rotation window.

" } }, "documentation":"

A structure that defines the rotation configuration for the secret.

" @@ -1426,7 +1426,7 @@ }, "LastAccessedDate":{ "shape":"LastAccessedDateType", - "documentation":"

The last date that this secret was accessed. This value is truncated to midnight of the date and therefore shows only the date, not the time.

", + "documentation":"

The date that the secret was last accessed in the Region. This field is omitted if the secret has never been retrieved in the Region.

", "box":true }, "DeletedDate":{ @@ -1650,7 +1650,7 @@ }, "KmsKeyId":{ "shape":"KmsKeyIdType", - "documentation":"

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt new secret versions as well as any existing versions the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. For more information about versions and staging labels, see Concepts: Version.

You can only use the Amazon Web Services managed key aws/secretsmanager if you call this operation using credentials from the same Amazon Web Services account that owns the secret. If the secret is in a different account, then you must use a customer managed key and provide the ARN of that KMS key in this field. The user making the call must have permissions to both the secret and the KMS key in their respective accounts.

" + "documentation":"

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt new secret versions as well as any existing versions with the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. For more information about versions and staging labels, see Concepts: Version.

A key alias is always prefixed by alias/, for example alias/aws/secretsmanager. For more information, see About aliases.

If you set this to an empty string, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result.

You can only use the Amazon Web Services managed key aws/secretsmanager if you call this operation using credentials from the same Amazon Web Services account that owns the secret. If the secret is in a different account, then you must use a customer managed key and provide the ARN of that KMS key in this field. The user making the call must have permissions to both the secret and the KMS key in their respective accounts.

" }, "SecretBinary":{ "shape":"SecretBinaryType", diff --git a/botocore/data/securityhub/2018-10-26/endpoint-rule-set-1.json b/botocore/data/securityhub/2018-10-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..5f1adabc --- /dev/null +++ b/botocore/data/securityhub/2018-10-26/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securityhub-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securityhub-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securityhub.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://securityhub.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/securityhub/2018-10-26/examples-1.json b/botocore/data/securityhub/2018-10-26/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/securityhub/2018-10-26/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/securityhub/2018-10-26/service-2.json b/botocore/data/securityhub/2018-10-26/service-2.json index cd24d790..bdbc08dd 100644 --- a/botocore/data/securityhub/2018-10-26/service-2.json +++ b/botocore/data/securityhub/2018-10-26/service-2.json @@ -1637,7 +1637,7 @@ }, "HealthCheckType":{ "shape":"NonEmptyString", - "documentation":"

The service to use for the health checks.

" + "documentation":"

The service to use for the health checks. Valid values are EC2 or ELB.

" }, "HealthCheckGracePeriod":{ "shape":"Integer", @@ -1703,7 +1703,7 @@ "members":{ "OnDemandAllocationStrategy":{ "shape":"NonEmptyString", - "documentation":"

How to allocate instance types to fulfill On-Demand capacity.

" + "documentation":"

How to allocate instance types to fulfill On-Demand capacity. The valid value is prioritized.

" }, "OnDemandBaseCapacity":{ "shape":"Integer", @@ -1715,7 +1715,7 @@ }, "SpotAllocationStrategy":{ "shape":"NonEmptyString", - "documentation":"

How to allocate instances across Spot Instance pools.

" + "documentation":"

How to allocate instances across Spot Instance pools. Valid values are as follows:

  • lowest-price

  • capacity-optimized

  • capacity-optimized-prioritized

" }, "SpotInstancePools":{ "shape":"Integer", @@ -1825,7 +1825,7 @@ }, "VolumeType":{ "shape":"NonEmptyString", - "documentation":"

The volume type.

" + "documentation":"

The volume type. Valid values are as follows:

  • gp2

  • gp3

  • io1

  • sc1

  • st1

  • standard

" } }, "documentation":"

Parameters that are used to automatically set up EBS volumes when an instance is launched.

" @@ -1944,6 +1944,314 @@ }, "documentation":"

The metadata options for the instances.

" }, + "AwsBackupBackupPlanAdvancedBackupSettingsDetails":{ + "type":"structure", + "members":{ + "BackupOptions":{ + "shape":"FieldMap", + "documentation":"

Specifies the backup option for a selected resource. This option is only available for Windows Volume Shadow Copy Service (VSS) backup jobs. Valid values are as follows:

  • Set to WindowsVSS: enabled to enable the WindowsVSS backup option and create a Windows VSS backup.

  • Set to WindowsVSS: disabled to create a regular backup. The WindowsVSS option is not enabled by default.

" + }, + "ResourceType":{ + "shape":"NonEmptyString", + "documentation":"

The name of a resource type. The only supported resource type is Amazon EC2 instances with Windows VSS.

The only valid value is EC2.

" + } + }, + "documentation":"

Provides a list of backup options for each resource type.

" + }, + "AwsBackupBackupPlanAdvancedBackupSettingsList":{ + "type":"list", + "member":{"shape":"AwsBackupBackupPlanAdvancedBackupSettingsDetails"} + }, + "AwsBackupBackupPlanBackupPlanDetails":{ + "type":"structure", + "members":{ + "BackupPlanName":{ + "shape":"NonEmptyString", + "documentation":"

The display name of a backup plan.

" + }, + "AdvancedBackupSettings":{ + "shape":"AwsBackupBackupPlanAdvancedBackupSettingsList", + "documentation":"

A list of backup options for each resource type.

" + }, + "BackupPlanRule":{ + "shape":"AwsBackupBackupPlanRuleList", + "documentation":"

An array of BackupRule objects, each of which specifies a scheduled task that is used to back up a selection of resources.

" + } + }, + "documentation":"

Provides details about an Backup backup plan and an array of BackupRule objects, each of which specifies a backup rule.

" + }, + "AwsBackupBackupPlanDetails":{ + "type":"structure", + "members":{ + "BackupPlan":{ + "shape":"AwsBackupBackupPlanBackupPlanDetails", + "documentation":"

Uniquely identifies the backup plan to be associated with the selection of resources.

" + }, + "BackupPlanArn":{ + "shape":"NonEmptyString", + "documentation":"

An Amazon Resource Name (ARN) that uniquely identifies the backup plan.

" + }, + "BackupPlanId":{ + "shape":"NonEmptyString", + "documentation":"

A unique ID for the backup plan.

" + }, + "VersionId":{ + "shape":"NonEmptyString", + "documentation":"

Unique, randomly generated, Unicode, UTF-8 encoded strings. Version IDs cannot be edited.

" + } + }, + "documentation":"

Provides details about an Backup backup plan and an array of BackupRule objects, each of which specifies a backup rule.

" + }, + "AwsBackupBackupPlanLifecycleDetails":{ + "type":"structure", + "members":{ + "DeleteAfterDays":{ + "shape":"Long", + "documentation":"

Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus MoveToColdStorageAfterDays.

" + }, + "MoveToColdStorageAfterDays":{ + "shape":"Long", + "documentation":"

Specifies the number of days after creation that a recovery point is moved to cold storage.

" + } + }, + "documentation":"

Provides lifecycle details for the backup plan. A lifecycle defines when a backup is transitioned to cold storage and when it expires.

" + }, + "AwsBackupBackupPlanRuleCopyActionsDetails":{ + "type":"structure", + "members":{ + "DestinationBackupVaultArn":{ + "shape":"NonEmptyString", + "documentation":"

An Amazon Resource Name (ARN) that uniquely identifies the destination backup vault for the copied backup.

" + }, + "Lifecycle":{ + "shape":"AwsBackupBackupPlanLifecycleDetails", + "documentation":"

Defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define. If you do not specify a lifecycle, Backup applies the lifecycle policy of the source backup to the destination backup.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days.

" + } + }, + "documentation":"

An array of CopyAction objects, each of which contains details of the copy operation.

" + }, + "AwsBackupBackupPlanRuleCopyActionsList":{ + "type":"list", + "member":{"shape":"AwsBackupBackupPlanRuleCopyActionsDetails"} + }, + "AwsBackupBackupPlanRuleDetails":{ + "type":"structure", + "members":{ + "TargetBackupVault":{ + "shape":"NonEmptyString", + "documentation":"

The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the Amazon Web Services account used to create them and the Amazon Web Services Region where they are created. They consist of letters, numbers, and hyphens.

" + }, + "StartWindowMinutes":{ + "shape":"Long", + "documentation":"

A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully.

" + }, + "ScheduleExpression":{ + "shape":"NonEmptyString", + "documentation":"

A cron expression in UTC specifying when Backup initiates a backup job.

" + }, + "RuleName":{ + "shape":"NonEmptyString", + "documentation":"

A display name for a backup rule. Must contain 1 to 50 alphanumeric or '-_.' characters.

" + }, + "RuleId":{ + "shape":"NonEmptyString", + "documentation":"

Uniquely identifies a rule that is used to schedule the backup of a selection of resources.

" + }, + "EnableContinuousBackup":{ + "shape":"Boolean", + "documentation":"

Specifies whether Backup creates continuous backups capable of point-in-time restore (PITR).

" + }, + "CompletionWindowMinutes":{ + "shape":"Long", + "documentation":"

A value in minutes after a backup job is successfully started before it must be completed, or it is canceled by Backup.

" + }, + "CopyActions":{ + "shape":"AwsBackupBackupPlanRuleCopyActionsList", + "documentation":"

An array of CopyAction objects, each of which contains details of the copy operation.

" + }, + "Lifecycle":{ + "shape":"AwsBackupBackupPlanLifecycleDetails", + "documentation":"

Defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define. If you do not specify a lifecycle, Backup applies the lifecycle policy of the source backup to the destination backup.

Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days.

" + } + }, + "documentation":"

Provides details about an array of BackupRule objects, each of which specifies a scheduled task that is used to back up a selection of resources.

" + }, + "AwsBackupBackupPlanRuleList":{ + "type":"list", + "member":{"shape":"AwsBackupBackupPlanRuleDetails"} + }, + "AwsBackupBackupVaultDetails":{ + "type":"structure", + "members":{ + "BackupVaultArn":{ + "shape":"NonEmptyString", + "documentation":"

An Amazon Resource Name (ARN) that uniquely identifies a backup vault.

" + }, + "BackupVaultName":{ + "shape":"NonEmptyString", + "documentation":"

The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the Amazon Web Services account used to create them and the Amazon Web Services Region where they are created. They consist of lowercase letters, numbers, and hyphens.

" + }, + "EncryptionKeyArn":{ + "shape":"NonEmptyString", + "documentation":"

The unique ARN associated with the server-side encryption key. You can specify a key to encrypt your backups from services that support full Backup management. If you do not specify a key, Backup creates an KMS key for you by default.

" + }, + "Notifications":{ + "shape":"AwsBackupBackupVaultNotificationsDetails", + "documentation":"

The Amazon SNS event notifications for the specified backup vault.

" + }, + "AccessPolicy":{ + "shape":"NonEmptyString", + "documentation":"

A resource-based policy that is used to manage access permissions on the target backup vault.

" + } + }, + "documentation":"

Provides details about an Backup backup vault. In Backup, a backup vault is a container that stores and organizes your backups.

" + }, + "AwsBackupBackupVaultNotificationsDetails":{ + "type":"structure", + "members":{ + "BackupVaultEvents":{ + "shape":"NonEmptyStringList", + "documentation":"

An array of events that indicate the status of jobs to back up resources to the backup vault. The following events are supported:

  • BACKUP_JOB_STARTED | BACKUP_JOB_COMPLETED

  • COPY_JOB_STARTED | COPY_JOB_SUCCESSFUL | COPY_JOB_FAILED

  • RESTORE_JOB_STARTED | RESTORE_JOB_COMPLETED | RECOVERY_POINT_MODIFIED

  • S3_BACKUP_OBJECT_FAILED | S3_RESTORE_OBJECT_FAILED

" + }, + "SnsTopicArn":{ + "shape":"NonEmptyString", + "documentation":"

An ARN that uniquely identifies the Amazon SNS topic for a backup vault’s events.

" + } + }, + "documentation":"

Provides details about the Amazon SNS event notifications for the specified backup vault.

" + }, + "AwsBackupRecoveryPointCalculatedLifecycleDetails":{ + "type":"structure", + "members":{ + "DeleteAt":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus MoveToColdStorageAfterDays.

" + }, + "MoveToColdStorageAt":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the number of days after creation that a recovery point is moved to cold storage.

" + } + }, + "documentation":"

Specifies how long in days before a recovery point transitions to cold storage or is deleted.

" + }, + "AwsBackupRecoveryPointCreatedByDetails":{ + "type":"structure", + "members":{ + "BackupPlanArn":{ + "shape":"NonEmptyString", + "documentation":"

An Amazon Resource Name (ARN) that uniquely identifies a backup plan.

" + }, + "BackupPlanId":{ + "shape":"NonEmptyString", + "documentation":"

Uniquely identifies a backup plan.

" + }, + "BackupPlanVersion":{ + "shape":"NonEmptyString", + "documentation":"

Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited.

" + }, + "BackupRuleId":{ + "shape":"NonEmptyString", + "documentation":"

Uniquely identifies a rule used to schedule the backup of a selection of resources.

" + } + }, + "documentation":"

Contains information about the backup plan and rule that Backup used to initiate the recovery point backup.

" + }, + "AwsBackupRecoveryPointDetails":{ + "type":"structure", + "members":{ + "BackupSizeInBytes":{ + "shape":"Long", + "documentation":"

The size, in bytes, of a backup.

" + }, + "BackupVaultArn":{ + "shape":"NonEmptyString", + "documentation":"

An Amazon Resource Name (ARN) that uniquely identifies a backup vault.

" + }, + "BackupVaultName":{ + "shape":"NonEmptyString", + "documentation":"

The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the Amazon Web Services account used to create them and the Amazon Web Services Region where they are created. They consist of lowercase letters, numbers, and hyphens.

" + }, + "CalculatedLifecycle":{ + "shape":"AwsBackupRecoveryPointCalculatedLifecycleDetails", + "documentation":"

A CalculatedLifecycle object containing DeleteAt and MoveToColdStorageAt timestamps.

" + }, + "CompletionDate":{ + "shape":"NonEmptyString", + "documentation":"

The date and time that a job to create a recovery point is completed, in Unix format and UTC. The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + }, + "CreatedBy":{ + "shape":"AwsBackupRecoveryPointCreatedByDetails", + "documentation":"

Contains identifying information about the creation of a recovery point, including the BackupPlanArn, BackupPlanId, BackupPlanVersion, and BackupRuleId of the backup plan that is used to create it.

" + }, + "CreationDate":{ + "shape":"NonEmptyString", + "documentation":"

The date and time a recovery point is created, in Unix format and UTC. The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + }, + "EncryptionKeyArn":{ + "shape":"NonEmptyString", + "documentation":"

The ARN for the server-side encryption key that is used to protect your backups.

" + }, + "IamRoleArn":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the IAM role ARN used to create the target recovery point

" + }, + "IsEncrypted":{ + "shape":"Boolean", + "documentation":"

A Boolean value that is returned as TRUE if the specified recovery point is encrypted, or FALSE if the recovery point is not encrypted.

" + }, + "LastRestoreTime":{ + "shape":"NonEmptyString", + "documentation":"

The date and time that a recovery point was last restored, in Unix format and UTC. The value of LastRestoreTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.

" + }, + "Lifecycle":{ + "shape":"AwsBackupRecoveryPointLifecycleDetails", + "documentation":"

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. Backup transitions and expires backups automatically according to the lifecycle that you define

" + }, + "RecoveryPointArn":{ + "shape":"NonEmptyString", + "documentation":"

An ARN that uniquely identifies a recovery point.

" + }, + "ResourceArn":{ + "shape":"NonEmptyString", + "documentation":"

An ARN that uniquely identifies a resource. The format of the ARN depends on the resource type.

" + }, + "ResourceType":{ + "shape":"NonEmptyString", + "documentation":"

The type of Amazon Web Services resource saved as a recovery point, such as an Amazon EBS volume or an Amazon RDS database.

" + }, + "SourceBackupVaultArn":{ + "shape":"NonEmptyString", + "documentation":"

The ARN for the backup vault where the recovery point was originally copied from. If the recovery point is restored to the same account, this value will be null.

" + }, + "Status":{ + "shape":"NonEmptyString", + "documentation":"

A status code specifying the state of the recovery point. Valid values are as follows:

  • COMPLETED

  • DELETING

  • EXPIRED

  • PARTIAL

" + }, + "StatusMessage":{ + "shape":"NonEmptyString", + "documentation":"

A message explaining the reason of the recovery point deletion failure.

" + }, + "StorageClass":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the storage class of the recovery point. Valid values are as follows:

  • COLD

  • DELETED

  • WARM

" + } + }, + "documentation":"

Contains detailed information about the recovery points stored in an Backup backup vault. A backup, or recovery point, represents the content of a resource at a specified time.

" + }, + "AwsBackupRecoveryPointLifecycleDetails":{ + "type":"structure", + "members":{ + "DeleteAfterDays":{ + "shape":"Long", + "documentation":"

Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus MoveToColdStorageAfterDays.

" + }, + "MoveToColdStorageAfterDays":{ + "shape":"Long", + "documentation":"

Specifies the number of days after creation that a recovery point is moved to cold storage.

" + } + }, + "documentation":"

Contains an array of Transition objects specifying how long in days before a recovery point transitions to cold storage or is deleted.

" + }, "AwsCertificateManagerCertificateDetails":{ "type":"structure", "members":{ @@ -2131,7 +2439,7 @@ }, "RenewalStatusReason":{ "shape":"NonEmptyString", - "documentation":"

The reason that a renewal request was unsuccessful.

Valid values: NO_AVAILABLE_CONTACTS | ADDITIONAL_VERIFICATION_REQUIRED | DOMAIN_NOT_ALLOWED | INVALID_PUBLIC_DOMAIN | DOMAIN_VALIDATION_DENIED | CAA_ERROR | PCA_LIMIT_EXCEEDED | PCA_INVALID_ARN | PCA_INVALID_STATE | PCA_REQUEST_FAILED | PCA_NAME_CONSTRAINTS_VALIDATION | PCA_RESOURCE_NOT_FOUND | PCA_INVALID_ARGS | PCA_INVALID_DURATION | PCA_ACCESS_DENIED | SLR_NOT_FOUND | OTHER

" + "documentation":"

The reason that a renewal request was unsuccessful. This attribute is used only when RenewalStatus is FAILED.

Valid values: NO_AVAILABLE_CONTACTS | ADDITIONAL_VERIFICATION_REQUIRED | DOMAIN_NOT_ALLOWED | INVALID_PUBLIC_DOMAIN | DOMAIN_VALIDATION_DENIED | CAA_ERROR | PCA_LIMIT_EXCEEDED | PCA_INVALID_ARN | PCA_INVALID_STATE | PCA_REQUEST_FAILED | PCA_NAME_CONSTRAINTS_VALIDATION | PCA_RESOURCE_NOT_FOUND | PCA_INVALID_ARGS | PCA_INVALID_DURATION | PCA_ACCESS_DENIED | SLR_NOT_FOUND | OTHER

" }, "UpdatedAt":{ "shape":"NonEmptyString", @@ -2158,6 +2466,104 @@ }, "documentation":"

Provides details about the CNAME record that is added to the DNS database for domain validation.

" }, + "AwsCloudFormationStackDetails":{ + "type":"structure", + "members":{ + "Capabilities":{ + "shape":"NonEmptyStringList", + "documentation":"

The capabilities allowed in the stack.

" + }, + "CreationTime":{ + "shape":"NonEmptyString", + "documentation":"

The time at which the stack was created.

" + }, + "Description":{ + "shape":"NonEmptyString", + "documentation":"

A user-defined description associated with the stack.

" + }, + "DisableRollback":{ + "shape":"Boolean", + "documentation":"

Boolean to enable or disable rollback on stack creation failures.

" + }, + "DriftInformation":{ + "shape":"AwsCloudFormationStackDriftInformationDetails", + "documentation":"

Information about whether a stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters.

" + }, + "EnableTerminationProtection":{ + "shape":"Boolean", + "documentation":"

Whether termination protection is enabled for the stack.

" + }, + "LastUpdatedTime":{ + "shape":"NonEmptyString", + "documentation":"

The time the nested stack was last updated. This field will only be returned if the stack has been updated at least once.

" + }, + "NotificationArns":{ + "shape":"NonEmptyStringList", + "documentation":"

The Amazon Resource Names (ARNs) of the Amazon SNS topic to which stack-related events are published.

" + }, + "Outputs":{ + "shape":"AwsCloudFormationStackOutputsList", + "documentation":"

A list of output structures.

" + }, + "RoleArn":{ + "shape":"NonEmptyString", + "documentation":"

The ARN of an IAM role that's associated with the stack.

" + }, + "StackId":{ + "shape":"NonEmptyString", + "documentation":"

Unique identifier of the stack.

" + }, + "StackName":{ + "shape":"NonEmptyString", + "documentation":"

The name associated with the stack.

" + }, + "StackStatus":{ + "shape":"NonEmptyString", + "documentation":"

Current status of the stack.

" + }, + "StackStatusReason":{ + "shape":"NonEmptyString", + "documentation":"

Success or failure message associated with the stack status.

" + }, + "TimeoutInMinutes":{ + "shape":"Integer", + "documentation":"

The length of time, in minutes, that CloudFormation waits for the nested stack to reach the CREATE_COMPLETE state.

" + } + }, + "documentation":"

Nests a stack as a resource in a top-level template. Nested stacks are stacks created as resources for another stack.

" + }, + "AwsCloudFormationStackDriftInformationDetails":{ + "type":"structure", + "members":{ + "StackDriftStatus":{ + "shape":"NonEmptyString", + "documentation":"

Status of the stack's actual configuration compared to its expected template configuration.

" + } + }, + "documentation":"

Provides information about the stack's conformity to its expected template configuration.

" + }, + "AwsCloudFormationStackOutputsDetails":{ + "type":"structure", + "members":{ + "Description":{ + "shape":"NonEmptyString", + "documentation":"

A user-defined description associated with the output.

" + }, + "OutputKey":{ + "shape":"NonEmptyString", + "documentation":"

The key associated with the output.

" + }, + "OutputValue":{ + "shape":"NonEmptyString", + "documentation":"

The value associated with the output.

" + } + }, + "documentation":"

Provides information about the CloudFormation stack output.

" + }, + "AwsCloudFormationStackOutputsList":{ + "type":"list", + "member":{"shape":"AwsCloudFormationStackOutputsDetails"} + }, "AwsCloudFrontDistributionCacheBehavior":{ "type":"structure", "members":{ @@ -2176,7 +2582,7 @@ "documentation":"

The cache behaviors for the distribution.

" } }, - "documentation":"

Provides information about caching for the distribution.

" + "documentation":"

Provides information about caching for the CloudFront distribution.

" }, "AwsCloudFrontDistributionCacheBehaviorsItemList":{ "type":"list", @@ -2190,7 +2596,7 @@ "documentation":"

The protocol that viewers can use to access the files in an origin. You can specify the following options:

  • allow-all - Viewers can use HTTP or HTTPS.

  • redirect-to-https - CloudFront responds to HTTP requests with an HTTP status code of 301 (Moved Permanently) and the HTTPS URL. The viewer then uses the new URL to resubmit.

  • https-only - CloudFront responds to HTTP request with an HTTP status code of 403 (Forbidden).

" } }, - "documentation":"

Contains information about the default cache configuration for the distribution.

" + "documentation":"

Contains information about the default cache configuration for the CloudFront distribution.

" }, "AwsCloudFrontDistributionDetails":{ "type":"structure", @@ -2244,7 +2650,7 @@ "documentation":"

A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution.

" } }, - "documentation":"

A distribution configuration.

" + "documentation":"

A CloudFront distribution configuration.

" }, "AwsCloudFrontDistributionLogging":{ "type":"structure", @@ -2266,7 +2672,37 @@ "documentation":"

An optional string that you want CloudFront to use as a prefix to the access log filenames for this distribution.

" } }, - "documentation":"

A complex type that controls whether access logs are written for the distribution.

" + "documentation":"

A complex type that controls whether access logs are written for the CloudFront distribution.

" + }, + "AwsCloudFrontDistributionOriginCustomOriginConfig":{ + "type":"structure", + "members":{ + "HttpPort":{ + "shape":"Integer", + "documentation":"

The HTTP port that CloudFront uses to connect to the origin.

" + }, + "HttpsPort":{ + "shape":"Integer", + "documentation":"

The HTTPS port that CloudFront uses to connect to the origin.

" + }, + "OriginKeepaliveTimeout":{ + "shape":"Integer", + "documentation":"

Specifies how long, in seconds, CloudFront persists its connection to the origin.

" + }, + "OriginProtocolPolicy":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the origin.

" + }, + "OriginReadTimeout":{ + "shape":"Integer", + "documentation":"

Specifies how long, in seconds, CloudFront waits for a response from the origin.

" + }, + "OriginSslProtocols":{ + "shape":"AwsCloudFrontDistributionOriginSslProtocols", + "documentation":"

Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS.

" + } + }, + "documentation":"

A custom origin. A custom origin is any origin that is not an Amazon S3 bucket, with one exception. An Amazon S3 bucket that is configured with static website hosting is a custom origin.

" }, "AwsCloudFrontDistributionOriginGroup":{ "type":"structure", @@ -2276,7 +2712,7 @@ "documentation":"

Provides the criteria for an origin group to fail over.

" } }, - "documentation":"

Information about an origin group for the distribution.

" + "documentation":"

Information about an origin group for the CloudFront distribution.

" }, "AwsCloudFrontDistributionOriginGroupFailover":{ "type":"structure", @@ -2314,7 +2750,7 @@ "documentation":"

The list of origin groups.

" } }, - "documentation":"

Provides information about origin groups that are associated with the distribution.

" + "documentation":"

Provides information about origin groups that are associated with the CloudFront distribution.

" }, "AwsCloudFrontDistributionOriginGroupsItemList":{ "type":"list", @@ -2338,9 +2774,13 @@ "S3OriginConfig":{ "shape":"AwsCloudFrontDistributionOriginS3OriginConfig", "documentation":"

An origin that is an S3 bucket that is not configured with static website hosting.

" + }, + "CustomOriginConfig":{ + "shape":"AwsCloudFrontDistributionOriginCustomOriginConfig", + "documentation":"

An origin that is not an Amazon S3 bucket, with one exception. If the Amazon S3 bucket is configured with static website hosting, use this attribute. If the Amazon S3 bucket is not configured with static website hosting, use the S3OriginConfig type instead.

" } }, - "documentation":"

A complex type that describes the S3 bucket, HTTP server (for example, a web server), AWS Elemental MediaStore, or other server from which CloudFront gets your files.

" + "documentation":"

A complex type that describes the Amazon S3 bucket, HTTP server (for example, a web server), AWS Elemental MediaStore, or other server from which CloudFront gets your files.

" }, "AwsCloudFrontDistributionOriginItemList":{ "type":"list", @@ -2354,7 +2794,21 @@ "documentation":"

The CloudFront origin access identity to associate with the origin.

" } }, - "documentation":"

Information about an origin that is an S3 bucket that is not configured with static website hosting.

" + "documentation":"

Information about an origin that is an Amazon S3 bucket that is not configured with static website hosting.

" + }, + "AwsCloudFrontDistributionOriginSslProtocols":{ + "type":"structure", + "members":{ + "Items":{ + "shape":"NonEmptyStringList", + "documentation":"

A list that contains allowed SSL/TLS protocols for this distribution.

" + }, + "Quantity":{ + "shape":"Integer", + "documentation":"

The number of SSL/TLS protocols that you want to allow CloudFront to use when establishing an HTTPS connection with this origin.

" + } + }, + "documentation":"

A complex type that contains information about the SSL/TLS protocols that CloudFront can use when establishing an HTTPS connection with your origin.

" }, "AwsCloudFrontDistributionOrigins":{ "type":"structure", @@ -2364,7 +2818,7 @@ "documentation":"

A complex type that contains origins or origin groups for this distribution.

" } }, - "documentation":"

A complex type that contains information about origins and origin groups for this distribution.

" + "documentation":"

A complex type that contains information about origins and origin groups for this CloudFront distribution.

" }, "AwsCloudFrontDistributionViewerCertificate":{ "type":"structure", @@ -2398,7 +2852,7 @@ "documentation":"

The viewers that the distribution accepts HTTPS connections from.

" } }, - "documentation":"

Provides information about the TLS/SSL configuration that the distribution uses to communicate with viewers.

" + "documentation":"

Provides information about the TLS/SSL configuration that the CloudFront distribution uses to communicate with viewers.

" }, "AwsCloudTrailTrailDetails":{ "type":"structure", @@ -2466,6 +2920,118 @@ }, "documentation":"

Provides details about a CloudTrail trail.

" }, + "AwsCloudWatchAlarmDetails":{ + "type":"structure", + "members":{ + "ActionsEnabled":{ + "shape":"Boolean", + "documentation":"

Indicates whether actions should be executed during any changes to the alarm state.

" + }, + "AlarmActions":{ + "shape":"NonEmptyStringList", + "documentation":"

The list of actions, specified as Amazon Resource Names (ARNs) to execute when this alarm transitions into an ALARM state from any other state.

" + }, + "AlarmArn":{ + "shape":"NonEmptyString", + "documentation":"

The ARN of the alarm.

" + }, + "AlarmConfigurationUpdatedTimestamp":{ + "shape":"NonEmptyString", + "documentation":"

The time stamp of the last update to the alarm configuration.

" + }, + "AlarmDescription":{ + "shape":"NonEmptyString", + "documentation":"

The description of the alarm.

" + }, + "AlarmName":{ + "shape":"NonEmptyString", + "documentation":"

The name of the alarm. If you don't specify a name, CloudFront generates a unique physical ID and uses that ID for the alarm name.

" + }, + "ComparisonOperator":{ + "shape":"NonEmptyString", + "documentation":"

The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand.

" + }, + "DatapointsToAlarm":{ + "shape":"Integer", + "documentation":"

The number of datapoints that must be breaching to trigger the alarm.

" + }, + "Dimensions":{ + "shape":"AwsCloudWatchAlarmDimensionsList", + "documentation":"

The dimensions for the metric associated with the alarm.

" + }, + "EvaluateLowSampleCountPercentile":{ + "shape":"NonEmptyString", + "documentation":"

Used only for alarms based on percentiles. If ignore, the alarm state does not change during periods with too few data points to be statistically significant. If evaluate or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available.

" + }, + "EvaluationPeriods":{ + "shape":"Integer", + "documentation":"

The number of periods over which data is compared to the specified threshold.

" + }, + "ExtendedStatistic":{ + "shape":"NonEmptyString", + "documentation":"

The percentile statistic for the metric associated with the alarm.

" + }, + "InsufficientDataActions":{ + "shape":"NonEmptyStringList", + "documentation":"

The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an ARN.

" + }, + "MetricName":{ + "shape":"NonEmptyString", + "documentation":"

The name of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you use Metrics instead and you can't specify MetricName.

" + }, + "Namespace":{ + "shape":"NonEmptyString", + "documentation":"

The namespace of the metric associated with the alarm. This is required for an alarm based on a metric. For an alarm based on a math expression, you can't specify Namespace and you use Metrics instead.

" + }, + "OkActions":{ + "shape":"NonEmptyStringList", + "documentation":"

The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an ARN.

" + }, + "Period":{ + "shape":"Integer", + "documentation":"

The period, in seconds, over which the statistic is applied. This is required for an alarm based on a metric.

" + }, + "Statistic":{ + "shape":"NonEmptyString", + "documentation":"

The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ExtendedStatistic.

For an alarm based on a metric, you must specify either Statistic or ExtendedStatistic but not both.

For an alarm based on a math expression, you can't specify Statistic. Instead, you use Metrics.

" + }, + "Threshold":{ + "shape":"Double", + "documentation":"

The value to compare with the specified statistic.

" + }, + "ThresholdMetricId":{ + "shape":"NonEmptyString", + "documentation":"

n an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm.

" + }, + "TreatMissingData":{ + "shape":"NonEmptyString", + "documentation":"

Sets how this alarm is to handle missing data points.

" + }, + "Unit":{ + "shape":"NonEmptyString", + "documentation":"

The unit of the metric associated with the alarm.

" + } + }, + "documentation":"

Specifies an alarm and associates it with the specified metric or metric math expression.

" + }, + "AwsCloudWatchAlarmDimensionsDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NonEmptyString", + "documentation":"

The name of a dimension.

" + }, + "Value":{ + "shape":"NonEmptyString", + "documentation":"

The value of a dimension.

" + } + }, + "documentation":"

Details about the dimensions for the metric associated with the alarm.

" + }, + "AwsCloudWatchAlarmDimensionsList":{ + "type":"list", + "member":{"shape":"AwsCloudWatchAlarmDimensionsDetails"} + }, "AwsCodeBuildProjectArtifactsDetails":{ "type":"structure", "members":{ @@ -2849,7 +3415,7 @@ }, "TableStatus":{ "shape":"NonEmptyString", - "documentation":"

The current status of the table.

" + "documentation":"

The current status of the table. Valid values are as follows:

  • ACTIVE

  • ARCHIVED

  • ARCHIVING

  • CREATING

  • DELETING

  • INACCESSIBLE_ENCRYPTION_CREDENTIALS

  • UPDATING

" } }, "documentation":"

Provides details about a DynamoDB table.

" @@ -2875,7 +3441,7 @@ }, "IndexStatus":{ "shape":"NonEmptyString", - "documentation":"

The current status of the index.

" + "documentation":"

The current status of the index.

  • ACTIVE

  • CREATING

  • DELETING

  • UPDATING

" }, "ItemCount":{ "shape":"Integer", @@ -2909,7 +3475,7 @@ }, "KeyType":{ "shape":"NonEmptyString", - "documentation":"

The type of key used for the key schema attribute.

" + "documentation":"

The type of key used for the key schema attribute. Valid values are HASH or RANGE.

" } }, "documentation":"

A component of the key schema for the DynamoDB table, a global secondary index, or a local secondary index.

" @@ -2953,7 +3519,7 @@ }, "ProjectionType":{ "shape":"NonEmptyString", - "documentation":"

The types of attributes that are projected into the index.

" + "documentation":"

The types of attributes that are projected into the index. Valid values are as follows:

  • ALL

  • INCLUDE

  • KEYS_ONLY

" } }, "documentation":"

For global and local secondary indexes, identifies the attributes that are copied from the table into the index.

" @@ -3015,7 +3581,7 @@ }, "ReplicaStatus":{ "shape":"NonEmptyString", - "documentation":"

The current status of the replica.

" + "documentation":"

The current status of the replica. Valid values are as follows:

  • ACTIVE

  • CREATING

  • CREATION_FAILED

  • DELETING

  • UPDATING

" }, "ReplicaStatusDescription":{ "shape":"NonEmptyString", @@ -3192,9 +3758,43 @@ "NetworkInterfaces":{ "shape":"AwsEc2InstanceNetworkInterfacesList", "documentation":"

The identifiers of the network interfaces for the EC2 instance. The details for each network interface are in a corresponding AwsEc2NetworkInterfacesDetails object.

" + }, + "VirtualizationType":{ + "shape":"NonEmptyString", + "documentation":"

The virtualization type of the Amazon Machine Image (AMI) required to launch the instance.

" + }, + "MetadataOptions":{ + "shape":"AwsEc2InstanceMetadataOptions", + "documentation":"

Details about the metadata options for the Amazon EC2 instance.

" } }, - "documentation":"

The details of an EC2 instance.

" + "documentation":"

The details of an Amazon EC2 instance.

" + }, + "AwsEc2InstanceMetadataOptions":{ + "type":"structure", + "members":{ + "HttpEndpoint":{ + "shape":"NonEmptyString", + "documentation":"

Enables or disables the HTTP metadata endpoint on the instance.

" + }, + "HttpProtocolIpv6":{ + "shape":"NonEmptyString", + "documentation":"

Enables or disables the IPv6 endpoint for the instance metadata service.

" + }, + "HttpPutResponseHopLimit":{ + "shape":"Integer", + "documentation":"

The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel.

" + }, + "HttpTokens":{ + "shape":"NonEmptyString", + "documentation":"

The state of token usage for your instance metadata requests.

" + }, + "InstanceMetadataTags":{ + "shape":"NonEmptyString", + "documentation":"

Specifies whether to allow access to instance tags from the instance metadata.

" + } + }, + "documentation":"

Metadata options that allow you to configure and secure the Amazon EC2 instance.

" }, "AwsEc2InstanceNetworkInterfacesDetails":{ "type":"structure", @@ -3204,7 +3804,7 @@ "documentation":"

The identifier of the network interface. The details are in a corresponding AwsEc2NetworkInterfacesDetails object.

" } }, - "documentation":"

Identifies a network interface for the EC2 instance.

" + "documentation":"

Identifies a network interface for the Amazon EC2 instance.

" }, "AwsEc2InstanceNetworkInterfacesList":{ "type":"list", @@ -3260,7 +3860,7 @@ "documentation":"

The set of rules in the network ACL.

" } }, - "documentation":"

Contains details about an EC2 network access control list (ACL).

" + "documentation":"

Contains details about an Amazon EC2 network access control list (ACL).

" }, "AwsEc2NetworkAclEntry":{ "type":"structure", @@ -3287,7 +3887,7 @@ }, "Protocol":{ "shape":"NonEmptyString", - "documentation":"

The protocol that the rule applies to. To deny or allow access to all protocols, use the value -1.

" + "documentation":"

The protocol that the rule applies to. To deny or allow access to all protocols, use the value -1.

" }, "RuleAction":{ "shape":"NonEmptyString", @@ -3454,14 +4054,14 @@ "documentation":"

[VPC only] The outbound rules associated with the security group.

" } }, - "documentation":"

Details about an EC2 security group.

" + "documentation":"

Details about an Amazon EC2 security group.

" }, "AwsEc2SecurityGroupIpPermission":{ "type":"structure", "members":{ "IpProtocol":{ "shape":"NonEmptyString", - "documentation":"

The IP protocol name (tcp, udp, icmp, icmpv6) or number.

[VPC only] Use -1 to specify all protocols.

When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless of any port range you specify.

For tcp, udp, and icmp, you must specify a port range.

For icmpv6, the port range is optional. If you omit the port range, traffic for all types and codes is allowed.

" + "documentation":"

The IP protocol name (tcp, udp, icmp, icmpv6) or number.

[VPC only] Use -1 to specify all protocols.

When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless of any port range you specify.

For tcp, udp, and icmp, you must specify a port range.

For icmpv6, the port range is optional. If you omit the port range, traffic for all types and codes is allowed.

" }, "FromPort":{ "shape":"Integer", @@ -3469,7 +4069,7 @@ }, "ToPort":{ "shape":"Integer", - "documentation":"

The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code.

A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.

" + "documentation":"

The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code.

A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.

" }, "UserIdGroupPairs":{ "shape":"AwsEc2SecurityGroupUserIdGroupPairList", @@ -3607,7 +4207,7 @@ }, "State":{ "shape":"NonEmptyString", - "documentation":"

The current state of the subnet.

" + "documentation":"

The current state of the subnet. Valid values are available or pending.

" }, "SubnetArn":{ "shape":"NonEmptyString", @@ -3628,6 +4228,60 @@ }, "documentation":"

Contains information about a subnet in Amazon EC2.

" }, + "AwsEc2TransitGatewayDetails":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the transit gateway.

" + }, + "Description":{ + "shape":"NonEmptyString", + "documentation":"

The description of the transit gateway.

" + }, + "DefaultRouteTablePropagation":{ + "shape":"NonEmptyString", + "documentation":"

Turn on or turn off automatic propagation of routes to the default propagation route table.

" + }, + "AutoAcceptSharedAttachments":{ + "shape":"NonEmptyString", + "documentation":"

Turn on or turn off automatic acceptance of attachment requests.

" + }, + "DefaultRouteTableAssociation":{ + "shape":"NonEmptyString", + "documentation":"

Turn on or turn off automatic association with the default association route table.

" + }, + "TransitGatewayCidrBlocks":{ + "shape":"NonEmptyStringList", + "documentation":"

The transit gateway Classless Inter-Domain Routing (CIDR) blocks.

" + }, + "AssociationDefaultRouteTableId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the default association route table.

" + }, + "PropagationDefaultRouteTableId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the default propagation route table.

" + }, + "VpnEcmpSupport":{ + "shape":"NonEmptyString", + "documentation":"

Turn on or turn off Equal Cost Multipath Protocol (ECMP) support.

" + }, + "DnsSupport":{ + "shape":"NonEmptyString", + "documentation":"

Turn on or turn off DNS support.

" + }, + "MulticastSupport":{ + "shape":"NonEmptyString", + "documentation":"

Indicates whether multicast is supported on the transit gateway.

" + }, + "AmazonSideAsn":{ + "shape":"Integer", + "documentation":"

A private Autonomous System Number (ASN) for the Amazon side of a BGP session.

" + } + }, + "documentation":"

Information about an Amazon Web Services Amazon EC2 Transit Gateway that interconnects virtual private clouds (VPCs) and on-premises networks.

" + }, "AwsEc2VolumeAttachment":{ "type":"structure", "members":{ @@ -3645,7 +4299,7 @@ }, "Status":{ "shape":"NonEmptyString", - "documentation":"

The attachment state of the volume.

" + "documentation":"

The attachment state of the volume. Valid values are as follows:

  • attaching

  • attached

  • busy

  • detaching

  • detached

" } }, "documentation":"

An attachment to an Amazon EC2 volume.

" @@ -3661,9 +4315,13 @@ "shape":"NonEmptyString", "documentation":"

Indicates when the volume was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

" }, + "DeviceName":{ + "shape":"NonEmptyString", + "documentation":"

The device name for the volume that is attached to the instance.

" + }, "Encrypted":{ "shape":"Boolean", - "documentation":"

Whether the volume is encrypted.

" + "documentation":"

Specifies whether the volume is encrypted.

" }, "Size":{ "shape":"Integer", @@ -3675,7 +4333,7 @@ }, "Status":{ "shape":"NonEmptyString", - "documentation":"

The volume state.

" + "documentation":"

The volume state. Valid values are as follows:

  • available

  • creating

  • deleted

  • deleting

  • error

  • in-use

" }, "KmsKeyId":{ "shape":"NonEmptyString", @@ -3684,6 +4342,18 @@ "Attachments":{ "shape":"AwsEc2VolumeAttachmentList", "documentation":"

The volume attachments.

" + }, + "VolumeId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the volume.

" + }, + "VolumeType":{ + "shape":"NonEmptyString", + "documentation":"

The volume type.

" + }, + "VolumeScanStatus":{ + "shape":"NonEmptyString", + "documentation":"

Indicates whether the volume was scanned or skipped.

" } }, "documentation":"

Details about an EC2 volume.

" @@ -3705,7 +4375,7 @@ }, "State":{ "shape":"NonEmptyString", - "documentation":"

The current state of the VPC.

" + "documentation":"

The current state of the VPC. Valid values are available or pending.

" } }, "documentation":"

Details about an EC2 VPC.

" @@ -3751,7 +4421,7 @@ }, "ServiceState":{ "shape":"NonEmptyString", - "documentation":"

The current state of the service.

" + "documentation":"

The current state of the service. Valid values are as follows:

  • Available

  • Deleted

  • Deleting

  • Failed

  • Pending

" }, "ServiceType":{ "shape":"AwsEc2VpcEndpointServiceServiceTypeList", @@ -3774,6 +4444,80 @@ "type":"list", "member":{"shape":"AwsEc2VpcEndpointServiceServiceTypeDetails"} }, + "AwsEc2VpcPeeringConnectionDetails":{ + "type":"structure", + "members":{ + "AccepterVpcInfo":{ + "shape":"AwsEc2VpcPeeringConnectionVpcInfoDetails", + "documentation":"

Information about the accepter VPC.

" + }, + "ExpirationTime":{ + "shape":"NonEmptyString", + "documentation":"

The time at which an unaccepted VPC peering connection will expire.

" + }, + "RequesterVpcInfo":{ + "shape":"AwsEc2VpcPeeringConnectionVpcInfoDetails", + "documentation":"

Information about the requester VPC.

" + }, + "Status":{ + "shape":"AwsEc2VpcPeeringConnectionStatusDetails", + "documentation":"

The status of the VPC peering connection.

" + }, + "VpcPeeringConnectionId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the VPC peering connection.

" + } + }, + "documentation":"

Provides information about a VPC peering connection between two VPCs: a requester VPC that you own and an accepter VPC with which to create the connection.

" + }, + "AwsEc2VpcPeeringConnectionStatusDetails":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"NonEmptyString", + "documentation":"

The status of the VPC peering connection.

" + }, + "Message":{ + "shape":"NonEmptyString", + "documentation":"

A message that provides more information about the status, if applicable.

" + } + }, + "documentation":"

Details about the status of the VPC peering connection.

" + }, + "AwsEc2VpcPeeringConnectionVpcInfoDetails":{ + "type":"structure", + "members":{ + "CidrBlock":{ + "shape":"NonEmptyString", + "documentation":"

The IPv4 CIDR block for the VPC.

" + }, + "CidrBlockSet":{ + "shape":"VpcInfoCidrBlockSetList", + "documentation":"

Information about the IPv4 CIDR blocks for the VPC.

" + }, + "Ipv6CidrBlockSet":{ + "shape":"VpcInfoIpv6CidrBlockSetList", + "documentation":"

The IPv6 CIDR block for the VPC.

" + }, + "OwnerId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the Amazon Web Services account that owns the VPC.

" + }, + "PeeringOptions":{ + "shape":"VpcInfoPeeringOptionsDetails", + "documentation":"

Information about the VPC peering connection options for the accepter or requester VPC.

" + }, + "Region":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Web Services Region in which the VPC is located.

" + }, + "VpcId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the VPC.

" + } + }, + "documentation":"

Describes a VPC in a VPC peering connection.

" + }, "AwsEc2VpnConnectionDetails":{ "type":"structure", "members":{ @@ -3783,7 +4527,7 @@ }, "State":{ "shape":"NonEmptyString", - "documentation":"

The current state of the VPN connection.

" + "documentation":"

The current state of the VPN connection. Valid values are as follows:

  • available

  • deleted

  • deleting

  • pending

" }, "CustomerGatewayId":{ "shape":"NonEmptyString", @@ -3951,7 +4695,7 @@ }, "Status":{ "shape":"NonEmptyString", - "documentation":"

The status of the VPN tunnel.

" + "documentation":"

The status of the VPN tunnel. Valid values are DOWN or UP.

" }, "StatusMessage":{ "shape":"NonEmptyString", @@ -3977,7 +4721,7 @@ }, "Architecture":{ "shape":"NonEmptyString", - "documentation":"

The architecture of the image.

" + "documentation":"

The architecture of the image. Valid values are as follows:

  • arm64

  • i386

  • x86_64

" }, "ImageDigest":{ "shape":"NonEmptyString", @@ -4007,7 +4751,7 @@ }, "ImageTagMutability":{ "shape":"NonEmptyString", - "documentation":"

The tag mutability setting for the repository.

" + "documentation":"

The tag mutability setting for the repository. Valid values are IMMUTABLE or MUTABLE.

" }, "LifecyclePolicy":{ "shape":"AwsEcrRepositoryLifecyclePolicyDetails", @@ -4053,11 +4797,11 @@ "members":{ "Name":{ "shape":"NonEmptyString", - "documentation":"

The name of the setting.

" + "documentation":"

The name of the setting. The valid value is containerInsights.

" }, "Value":{ "shape":"NonEmptyString", - "documentation":"

The value of the setting.

" + "documentation":"

The value of the setting. Valid values are disabled or enabled.

" } }, "documentation":"

Indicates whether to enable CloudWatch Container Insights for the ECS cluster.

" @@ -4145,6 +4889,14 @@ "AwsEcsClusterDetails":{ "type":"structure", "members":{ + "ClusterArn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) that identifies the cluster.

" + }, + "ActiveServicesCount":{ + "shape":"Integer", + "documentation":"

The number of services that are running on the cluster in an ACTIVE state. You can view these services with the Amazon ECS ListServices API operation.

" + }, "CapacityProviders":{ "shape":"NonEmptyStringList", "documentation":"

The short name of one or more capacity providers to associate with the cluster.

" @@ -4160,9 +4912,51 @@ "DefaultCapacityProviderStrategy":{ "shape":"AwsEcsClusterDefaultCapacityProviderStrategyList", "documentation":"

The default capacity provider strategy for the cluster. The default capacity provider strategy is used when services or tasks are run without a specified launch type or capacity provider strategy.

" + }, + "ClusterName":{ + "shape":"NonEmptyString", + "documentation":"

A name that you use to identify your cluster.

" + }, + "RegisteredContainerInstancesCount":{ + "shape":"Integer", + "documentation":"

The number of container instances registered into the cluster. This includes container instances in both ACTIVE and DRAINING status.

" + }, + "RunningTasksCount":{ + "shape":"Integer", + "documentation":"

The number of tasks in the cluster that are in the RUNNING state.

" + }, + "Status":{ + "shape":"NonEmptyString", + "documentation":"

The status of the cluster.

" } }, - "documentation":"

provides details about an ECS cluster.

" + "documentation":"

Provides details about an Amazon ECS cluster.

" + }, + "AwsEcsContainerDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NonEmptyString", + "documentation":"

The name of the container.

" + }, + "Image":{ + "shape":"NonEmptyString", + "documentation":"

The image used for the container.

" + }, + "MountPoints":{ + "shape":"AwsMountPointList", + "documentation":"

The mount points for data volumes in your container.

" + }, + "Privileged":{ + "shape":"Boolean", + "documentation":"

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user).

" + } + }, + "documentation":"

Provides information about an Amazon ECS container.

" + }, + "AwsEcsContainerDetailsList":{ + "type":"list", + "member":{"shape":"AwsEcsContainerDetails"} }, "AwsEcsServiceCapacityProviderStrategyDetails":{ "type":"structure", @@ -4443,7 +5237,7 @@ "members":{ "Condition":{ "shape":"NonEmptyString", - "documentation":"

The dependency condition of the dependent container. Indicates the required status of the dependent container before the current container can start.

" + "documentation":"

The dependency condition of the dependent container. Indicates the required status of the dependent container before the current container can start. Valid values are as follows:

  • COMPLETE

  • HEALTHY

  • SUCCESS

  • START

" }, "ContainerName":{ "shape":"NonEmptyString", @@ -4637,7 +5431,7 @@ "members":{ "Type":{ "shape":"NonEmptyString", - "documentation":"

The type of environment file.

" + "documentation":"

The type of environment file. The valid value is s3.

" }, "Value":{ "shape":"NonEmptyString", @@ -4681,7 +5475,7 @@ }, "Type":{ "shape":"NonEmptyString", - "documentation":"

The log router to use.

" + "documentation":"

The log router to use. Valid values are fluentbit or fluentd.

" } }, "documentation":"

The FireLens configuration for the container. The configuration specifies and configures a log router for container logs.

" @@ -4717,11 +5511,11 @@ "members":{ "Add":{ "shape":"NonEmptyStringList", - "documentation":"

The Linux capabilities for the container that are added to the default configuration provided by Docker.

" + "documentation":"

The Linux capabilities for the container that are added to the default configuration provided by Docker. Valid values are as follows:

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"

" }, "Drop":{ "shape":"NonEmptyStringList", - "documentation":"

The Linux capabilities for the container that are dropped from the default configuration provided by Docker.

" + "documentation":"

The Linux capabilities for the container that are dropped from the default configuration provided by Docker.

Valid values: \"ALL\" | \"AUDIT_CONTROL\" | \"AUDIT_WRITE\" | \"BLOCK_SUSPEND\" | \"CHOWN\" | \"DAC_OVERRIDE\" | \"DAC_READ_SEARCH\" | \"FOWNER\" | \"FSETID\" | \"IPC_LOCK\" | \"IPC_OWNER\" | \"KILL\" | \"LEASE\" | \"LINUX_IMMUTABLE\" | \"MAC_ADMIN\" | \"MAC_OVERRIDE\" | \"MKNOD\" | \"NET_ADMIN\" | \"NET_BIND_SERVICE\" | \"NET_BROADCAST\" | \"NET_RAW\" | \"SETFCAP\" | \"SETGID\" | \"SETPCAP\" | \"SETUID\" | \"SYS_ADMIN\" | \"SYS_BOOT\" | \"SYS_CHROOT\" | \"SYS_MODULE\" | \"SYS_NICE\" | \"SYS_PACCT\" | \"SYS_PTRACE\" | \"SYS_RAWIO\" | \"SYS_RESOURCE\" | \"SYS_TIME\" | \"SYS_TTY_CONFIG\" | \"SYSLOG\" | \"WAKE_ALARM\"

" } }, "documentation":"

The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.

" @@ -4791,7 +5585,7 @@ }, "MountOptions":{ "shape":"NonEmptyStringList", - "documentation":"

The list of tmpfs volume mount options.

" + "documentation":"

The list of tmpfs volume mount options.

Valid values: \"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"

" }, "Size":{ "shape":"Integer", @@ -4813,7 +5607,7 @@ "members":{ "LogDriver":{ "shape":"NonEmptyString", - "documentation":"

The log driver to use for the container.

" + "documentation":"

The log driver to use for the container.

Valid values on Fargate are as follows:

  • awsfirelens

  • awslogs

  • splunk

Valid values on Amazon EC2 are as follows:

  • awsfirelens

  • awslogs

  • fluentd

  • gelf

  • journald

  • json-file

  • logentries

  • splunk

  • syslog

" }, "Options":{ "shape":"FieldMap", @@ -4903,7 +5697,7 @@ "members":{ "Type":{ "shape":"NonEmptyString", - "documentation":"

The type of resource to assign to a container.

" + "documentation":"

The type of resource to assign to a container. Valid values are GPU or InferenceAccelerator.

" }, "Value":{ "shape":"NonEmptyString", @@ -4961,7 +5755,7 @@ }, "Name":{ "shape":"NonEmptyString", - "documentation":"

The type of the ulimit.

" + "documentation":"

The type of the ulimit. Valid values are as follows:

  • core

  • cpu

  • data

  • fsize

  • locks

  • memlock

  • msgqueue

  • nice

  • nofile

  • nproc

  • rss

  • rtprio

  • rttime

  • sigpending

  • stack

" }, "SoftLimit":{ "shape":"Integer", @@ -5001,7 +5795,7 @@ }, "Cpu":{ "shape":"NonEmptyString", - "documentation":"

The number of CPU units used by the task.

" + "documentation":"

The number of CPU units used by the task.Valid values are as follows:

  • 256 (.25 vCPU)

  • 512 (.5 vCPU)

  • 1024 (1 vCPU)

  • 2048 (2 vCPU)

  • 4096 (4 vCPU)

" }, "ExecutionRoleArn":{ "shape":"NonEmptyString", @@ -5017,19 +5811,19 @@ }, "IpcMode":{ "shape":"NonEmptyString", - "documentation":"

The IPC resource namespace to use for the containers in the task.

" + "documentation":"

The inter-process communication (IPC) resource namespace to use for the containers in the task. Valid values are as follows:

  • host

  • none

  • task

" }, "Memory":{ "shape":"NonEmptyString", - "documentation":"

The amount (in MiB) of memory used by the task.

" + "documentation":"

The amount (in MiB) of memory used by the task.

For tasks that are hosted on Amazon EC2, you can provide a task-level memory value or a container-level memory value. For tasks that are hosted on Fargate, you must use one of the specified values in the Amazon Elastic Container Service Developer Guide , which determines your range of supported values for the Cpu and Memory parameters.

" }, "NetworkMode":{ "shape":"NonEmptyString", - "documentation":"

The Docker networking mode to use for the containers in the task.

" + "documentation":"

The Docker networking mode to use for the containers in the task. Valid values are as follows:

  • awsvpc

  • bridge

  • host

  • none

" }, "PidMode":{ "shape":"NonEmptyString", - "documentation":"

The process namespace to use for the containers in the task.

" + "documentation":"

The process namespace to use for the containers in the task. Valid values are host or task.

" }, "PlacementConstraints":{ "shape":"AwsEcsTaskDefinitionPlacementConstraintsList", @@ -5052,7 +5846,7 @@ "documentation":"

The data volume definitions for the task.

" } }, - "documentation":"

details about a task definition. A task definition describes the container and volume definitions of an Amazon Elastic Container Service task.

" + "documentation":"

Details about a task definition. A task definition describes the container and volume definitions of an Amazon Elastic Container Service task.

" }, "AwsEcsTaskDefinitionInferenceAcceleratorsDetails":{ "type":"structure", @@ -5169,7 +5963,7 @@ }, "Scope":{ "shape":"NonEmptyString", - "documentation":"

The scope for the Docker volume that determines its lifecycle. Docker volumes that are scoped to a task are provisioned automatically when the task starts and destroyed when the task stops. Docker volumes that are shared persist after the task stops.

" + "documentation":"

The scope for the Docker volume that determines its lifecycle. Docker volumes that are scoped to a task are provisioned automatically when the task starts and destroyed when the task stops. Docker volumes that are shared persist after the task stops. Valid values are shared or task.

" } }, "documentation":"

Information about a Docker volume.

" @@ -5228,6 +6022,156 @@ "type":"list", "member":{"shape":"AwsEcsTaskDefinitionVolumesDetails"} }, + "AwsEcsTaskDetails":{ + "type":"structure", + "members":{ + "ClusterArn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the cluster that hosts the task.

" + }, + "TaskDefinitionArn":{ + "shape":"NonEmptyString", + "documentation":"

The ARN of the task definition that creates the task.

" + }, + "Version":{ + "shape":"NonEmptyString", + "documentation":"

The version counter for the task.

" + }, + "CreatedAt":{ + "shape":"NonEmptyString", + "documentation":"

The Unix timestamp for the time when the task was created. More specifically, it's for the time when the task entered the PENDING state.

" + }, + "StartedAt":{ + "shape":"NonEmptyString", + "documentation":"

The Unix timestamp for the time when the task started. More specifically, it's for the time when the task transitioned from the PENDING state to the RUNNING state.

" + }, + "StartedBy":{ + "shape":"NonEmptyString", + "documentation":"

The tag specified when a task is started. If an Amazon ECS service started the task, the startedBy parameter contains the deployment ID of that service.

" + }, + "Group":{ + "shape":"NonEmptyString", + "documentation":"

The name of the task group that's associated with the task.

" + }, + "Volumes":{ + "shape":"AwsEcsTaskVolumeDetailsList", + "documentation":"

Details about the data volume that is used in a task definition.

" + }, + "Containers":{ + "shape":"AwsEcsContainerDetailsList", + "documentation":"

The containers that are associated with the task.

" + } + }, + "documentation":"

Provides details about a task in a cluster.

" + }, + "AwsEcsTaskVolumeDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NonEmptyString", + "documentation":"

The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This name is referenced in the sourceVolume parameter of container definition mountPoints.

" + }, + "Host":{ + "shape":"AwsEcsTaskVolumeHostDetails", + "documentation":"

This parameter is specified when you use bind mount host volumes. The contents of the host parameter determine whether your bind mount host volume persists on the host container instance and where it's stored.

" + } + }, + "documentation":"

Provides information about a data volume that's used in a task definition.

" + }, + "AwsEcsTaskVolumeDetailsList":{ + "type":"list", + "member":{"shape":"AwsEcsTaskVolumeDetails"} + }, + "AwsEcsTaskVolumeHostDetails":{ + "type":"structure", + "members":{ + "SourcePath":{ + "shape":"NonEmptyString", + "documentation":"

When the host parameter is used, specify a sourcePath to declare the path on the host container instance that's presented to the container.

" + } + }, + "documentation":"

Provides details on a container instance bind mount host volume.

" + }, + "AwsEfsAccessPointDetails":{ + "type":"structure", + "members":{ + "AccessPointId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the Amazon EFS access point.

" + }, + "Arn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon EFS access point.

" + }, + "ClientToken":{ + "shape":"NonEmptyString", + "documentation":"

The opaque string specified in the request to ensure idempotent creation.

" + }, + "FileSystemId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the Amazon EFS file system that the access point applies to.

" + }, + "PosixUser":{ + "shape":"AwsEfsAccessPointPosixUserDetails", + "documentation":"

The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point, that is used for all file operations by NFS clients using the access point.

" + }, + "RootDirectory":{ + "shape":"AwsEfsAccessPointRootDirectoryDetails", + "documentation":"

The directory on the Amazon EFS file system that the access point exposes as the root directory to NFS clients using the access point.

" + } + }, + "documentation":"

Provides information about an Amazon EFS access point.

" + }, + "AwsEfsAccessPointPosixUserDetails":{ + "type":"structure", + "members":{ + "Gid":{ + "shape":"NonEmptyString", + "documentation":"

The POSIX group ID used for all file system operations using this access point.

" + }, + "SecondaryGids":{ + "shape":"NonEmptyStringList", + "documentation":"

Secondary POSIX group IDs used for all file system operations using this access point.

" + }, + "Uid":{ + "shape":"NonEmptyString", + "documentation":"

The POSIX user ID used for all file system operations using this access point.

" + } + }, + "documentation":"

Provides details for all file system operations using this Amazon EFS access point.

" + }, + "AwsEfsAccessPointRootDirectoryCreationInfoDetails":{ + "type":"structure", + "members":{ + "OwnerGid":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the POSIX group ID to apply to the root directory.

" + }, + "OwnerUid":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the POSIX user ID to apply to the root directory.

" + }, + "Permissions":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the POSIX permissions to apply to the root directory, in the format of an octal number representing the file's mode bits.

" + } + }, + "documentation":"

Provides information about the settings that Amazon EFS uses to create the root directory when a client connects to an access point.

" + }, + "AwsEfsAccessPointRootDirectoryDetails":{ + "type":"structure", + "members":{ + "CreationInfo":{ + "shape":"AwsEfsAccessPointRootDirectoryCreationInfoDetails", + "documentation":"

Specifies the POSIX IDs and permissions to apply to the access point's root directory.

" + }, + "Path":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the path on the Amazon EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide CreationInfo.

" + } + }, + "documentation":"

Provides information about the directory on the Amazon EFS file system that the access point exposes as the root directory to NFS clients using the access point.

" + }, "AwsEksClusterDetails":{ "type":"structure", "members":{ @@ -5241,7 +6185,7 @@ }, "ClusterStatus":{ "shape":"NonEmptyString", - "documentation":"

The status of the cluster.

" + "documentation":"

The status of the cluster. Valid values are as follows:

  • ACTIVE

  • CREATING

  • DELETING

  • FAILED

  • PENDING

  • UPDATING

" }, "Endpoint":{ "shape":"NonEmptyString", @@ -5279,7 +6223,7 @@ }, "Types":{ "shape":"NonEmptyStringList", - "documentation":"

A list of logging types.

" + "documentation":"

A list of logging types. Valid values are as follows:

  • api

  • audit

  • authenticator

  • controllerManager

  • scheduler

" } }, "documentation":"

Details for a cluster logging configuration.

" @@ -5369,7 +6313,7 @@ }, "Status":{ "shape":"NonEmptyString", - "documentation":"

The current operational status of the environment.

" + "documentation":"

The current operational status of the environment. Valid values are as follows:

  • Aborting

  • Launching

  • LinkingFrom

  • LinkingTo

  • Ready

  • Terminated

  • Terminating

  • Updating

" }, "Tier":{ "shape":"AwsElasticBeanstalkEnvironmentTier", @@ -5431,11 +6375,11 @@ "members":{ "Name":{ "shape":"NonEmptyString", - "documentation":"

The name of the environment tier.

" + "documentation":"

The name of the environment tier. Valid values are WebServer or Worker.

" }, "Type":{ "shape":"NonEmptyString", - "documentation":"

The type of environment tier.

" + "documentation":"

The type of environment tier. Valid values are Standard or SQS/HTTP.

" }, "Version":{ "shape":"NonEmptyString", @@ -5529,7 +6473,7 @@ }, "DedicatedMasterType":{ "shape":"NonEmptyString", - "documentation":"

The hardware configuration of the computer that hosts the dedicated master node. For example, m3.medium.elasticsearch. If this attribute is specified, then DedicatedMasterEnabled must be true.

" + "documentation":"

The hardware configuration of the computer that hosts the dedicated master node. A sample value is m3.medium.elasticsearch. If this attribute is specified, then DedicatedMasterEnabled must be true.

For a list of valid values, see Supported instance types in Amazon OpenSearch Service in the Amazon OpenSearch Service Developer Guide.

" }, "InstanceCount":{ "shape":"Integer", @@ -5537,7 +6481,7 @@ }, "InstanceType":{ "shape":"NonEmptyString", - "documentation":"

The instance type for your data nodes. For example, m3.medium.elasticsearch.

" + "documentation":"

The instance type for your data nodes. For example, m3.medium.elasticsearch.

For a list of valid values, see Supported instance types in Amazon OpenSearch Service in the Amazon OpenSearch Service Developer Guide.

" }, "ZoneAwarenessConfig":{ "shape":"AwsElasticsearchDomainElasticsearchClusterConfigZoneAwarenessConfigDetails", @@ -5569,7 +6513,7 @@ }, "KmsKeyId":{ "shape":"NonEmptyString", - "documentation":"

The KMS key ID. Takes the form 1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a.

" + "documentation":"

The KMS key ID. Takes the form 1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a.

" } }, "documentation":"

Details about the configuration for encryption at rest.

" @@ -5642,7 +6586,7 @@ }, "UpdateStatus":{ "shape":"NonEmptyString", - "documentation":"

The status of the service software update.

" + "documentation":"

The status of the service software update. Valid values are as follows:

  • COMPLETED

  • ELIGIBLE

  • IN_PROGRESS

  • NOT_ELIGIBLE

  • PENDING_UPDATE

" } }, "documentation":"

Information about the state of the domain relative to the latest service software.

" @@ -6517,6 +7461,46 @@ "type":"list", "member":{"shape":"AwsIamUserPolicy"} }, + "AwsKinesisStreamDetails":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NonEmptyString", + "documentation":"

The name of the Kinesis stream. If you don't specify a name, CloudFront generates a unique physical ID and uses that ID for the stream name.

" + }, + "Arn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the Kinesis data stream.

" + }, + "StreamEncryption":{ + "shape":"AwsKinesisStreamStreamEncryptionDetails", + "documentation":"

When specified, enables or updates server-side encryption using an KMS key for a specified stream. Removing this property from your stack template and updating your stack disables encryption.

" + }, + "ShardCount":{ + "shape":"Integer", + "documentation":"

The number of shards that the stream uses.

" + }, + "RetentionPeriodHours":{ + "shape":"Integer", + "documentation":"

The number of hours for the data records that are stored in shards to remain accessible.

" + } + }, + "documentation":"

Provides information about an Amazon Kinesis data stream.

" + }, + "AwsKinesisStreamStreamEncryptionDetails":{ + "type":"structure", + "members":{ + "EncryptionType":{ + "shape":"NonEmptyString", + "documentation":"

The encryption type to use.

" + }, + "KeyId":{ + "shape":"NonEmptyString", + "documentation":"

The globally unique identifier for the customer-managed KMS key to use for encryption.

" + } + }, + "documentation":"

Provides information about stream encryption.

" + }, "AwsKmsKeyDetails":{ "type":"structure", "members":{ @@ -6538,7 +7522,7 @@ }, "KeyState":{ "shape":"NonEmptyString", - "documentation":"

The state of the KMS key.

" + "documentation":"

The state of the KMS key. Valid values are as follows:

  • Disabled

  • Enabled

  • PendingDeletion

  • PendingImport

  • Unavailable

" }, "Origin":{ "shape":"NonEmptyString", @@ -6546,7 +7530,7 @@ }, "Description":{ "shape":"NonEmptyString", - "documentation":"

A description of the key.

" + "documentation":"

A description of the KMS key.

" }, "KeyRotationStatus":{ "shape":"Boolean", @@ -6661,9 +7645,17 @@ "Version":{ "shape":"NonEmptyString", "documentation":"

The version of the Lambda function.

" + }, + "Architectures":{ + "shape":"NonEmptyStringList", + "documentation":"

The instruction set architecture that the function uses. Valid values are x86_64 or arm64.

" + }, + "PackageType":{ + "shape":"NonEmptyString", + "documentation":"

The type of deployment package that's used to deploy the function code to Lambda. Set to Image for a container image and Zip for a .zip file archive.

" } }, - "documentation":"

Details about a function's configuration.

" + "documentation":"

Details about an Lambda function's configuration.

" }, "AwsLambdaFunctionEnvironment":{ "type":"structure", @@ -6758,6 +7750,24 @@ "documentation":"

Details about a Lambda layer version.

" }, "AwsLambdaLayerVersionNumber":{"type":"long"}, + "AwsMountPoint":{ + "type":"structure", + "members":{ + "SourceVolume":{ + "shape":"NonEmptyString", + "documentation":"

The name of the volume to mount. Must be a volume name referenced in the name parameter of task definition volume.

" + }, + "ContainerPath":{ + "shape":"NonEmptyString", + "documentation":"

The path on the container to mount the host volume at.

" + } + }, + "documentation":"

Details for a volume mount point that's used in a container definition.

" + }, + "AwsMountPointList":{ + "type":"list", + "member":{"shape":"AwsMountPoint"} + }, "AwsNetworkFirewallFirewallDetails":{ "type":"structure", "members":{ @@ -6878,6 +7888,24 @@ }, "documentation":"

Details about an Network Firewall rule group. Rule groups are used to inspect and control network traffic. Stateless rule groups apply to individual packets. Stateful rule groups apply to packets in the context of their traffic flow.

Rule groups are referenced in firewall policies.

" }, + "AwsOpenSearchServiceDomainAdvancedSecurityOptionsDetails":{ + "type":"structure", + "members":{ + "Enabled":{ + "shape":"Boolean", + "documentation":"

Enables fine-grained access control.

" + }, + "InternalUserDatabaseEnabled":{ + "shape":"Boolean", + "documentation":"

Enables the internal user database.

" + }, + "MasterUserOptions":{ + "shape":"AwsOpenSearchServiceDomainMasterUserOptionsDetails", + "documentation":"

Specifies information about the master user of the domain.

" + } + }, + "documentation":"

Provides information about domain access control options.

" + }, "AwsOpenSearchServiceDomainClusterConfigDetails":{ "type":"structure", "members":{ @@ -6907,7 +7935,7 @@ }, "InstanceType":{ "shape":"NonEmptyString", - "documentation":"

The instance type for your data nodes.

" + "documentation":"

The instance type for your data nodes.

For a list of valid values, see Supported instance types in Amazon OpenSearch Service in the Amazon OpenSearch Service Developer Guide.

" }, "WarmType":{ "shape":"NonEmptyString", @@ -6929,7 +7957,7 @@ "members":{ "AvailabilityZoneCount":{ "shape":"Integer", - "documentation":"

The number of Availability Zones that the domain uses. Valid values are 2 and 3. The default is 2.

" + "documentation":"

The number of Availability Zones that the domain uses. Valid values are 2 or 3. The default is 2.

" } }, "documentation":"

Configuration options for zone awareness.

" @@ -6992,6 +8020,10 @@ "DomainEndpoints":{ "shape":"FieldMap", "documentation":"

The domain endpoints. Used if the OpenSearch domain resides in a VPC.

This is a map of key-value pairs. The key is always vpc. The value is the endpoint.

" + }, + "AdvancedSecurityOptions":{ + "shape":"AwsOpenSearchServiceDomainAdvancedSecurityOptionsDetails", + "documentation":"

Specifies options for fine-grained access control.

" } }, "documentation":"

Information about an Amazon OpenSearch Service domain.

" @@ -7068,6 +8100,24 @@ }, "documentation":"

Configures the CloudWatch Logs to publish for the OpenSearch domain.

" }, + "AwsOpenSearchServiceDomainMasterUserOptionsDetails":{ + "type":"structure", + "members":{ + "MasterUserArn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) for the master user.

" + }, + "MasterUserName":{ + "shape":"NonEmptyString", + "documentation":"

The username for the master user.

" + }, + "MasterUserPassword":{ + "shape":"NonEmptyString", + "documentation":"

The password for the master user.

" + } + }, + "documentation":"

Specifies information about the master user of the domain.

" + }, "AwsOpenSearchServiceDomainNodeToNodeEncryptionOptionsDetails":{ "type":"structure", "members":{ @@ -7107,7 +8157,7 @@ }, "UpdateStatus":{ "shape":"NonEmptyString", - "documentation":"

The status of the service software update.

" + "documentation":"

The status of the service software update. Valid values are as follows:

  • COMPLETED

  • ELIGIBLE

  • IN_PROGRESS

  • NOT_ELIGIBLE

  • PENDING_UPDATE

" }, "OptionalDeployment":{ "shape":"Boolean", @@ -7139,7 +8189,7 @@ }, "Status":{ "shape":"NonEmptyString", - "documentation":"

The status of the association between the IAM role and the DB cluster.

" + "documentation":"

The status of the association between the IAM role and the DB cluster. Valid values are as follows:

  • ACTIVE

  • INVALID

  • PENDING

" } }, "documentation":"

An IAM role that is associated with the Amazon RDS DB cluster.

" @@ -7189,7 +8239,7 @@ }, "Engine":{ "shape":"NonEmptyString", - "documentation":"

The name of the database engine to use for this DB cluster.

" + "documentation":"

The name of the database engine to use for this DB cluster. Valid values are as follows:

  • aurora

  • aurora-mysql

  • aurora-postgresql

" }, "EngineVersion":{ "shape":"NonEmptyString", @@ -7249,7 +8299,7 @@ }, "EngineMode":{ "shape":"NonEmptyString", - "documentation":"

The database engine mode of the DB cluster.

" + "documentation":"

The database engine mode of the DB cluster.Valid values are as follows:

  • global

  • multimaster

  • parallelquery

  • provisioned

  • serverless

" }, "DeletionProtection":{ "shape":"Boolean", @@ -7261,7 +8311,7 @@ }, "ActivityStreamStatus":{ "shape":"NonEmptyString", - "documentation":"

The status of the database activity stream.

" + "documentation":"

The status of the database activity stream. Valid values are as follows:

  • started

  • starting

  • stopped

  • stopping

" }, "CopyTagsToSnapshot":{ "shape":"Boolean", @@ -7846,7 +8896,7 @@ "members":{ "Name":{ "shape":"NonEmptyString", - "documentation":"

The name of the processor feature.

" + "documentation":"

The name of the processor feature. Valid values are coreCount or threadsPerCore.

" }, "Value":{ "shape":"NonEmptyString", @@ -7954,7 +9004,7 @@ }, "Engine":{ "shape":"NonEmptyString", - "documentation":"

The name of the database engine to use for this DB instance.

" + "documentation":"

The name of the database engine to use for this DB instance. Valid values are as follows:

  • aurora

  • aurora-mysql

  • aurora-postgresql

  • c

  • mariadb

  • mysql

  • oracle-ee

  • oracle-se

  • oracle-se1

  • oracle-se2

  • sqlserver-ee

  • sqlserver-ex

  • sqlserver-se

  • sqlserver-web

" }, "AllocatedStorage":{ "shape":"Integer", @@ -8018,7 +9068,7 @@ }, "StorageType":{ "shape":"NonEmptyString", - "documentation":"

The storage type associated with the DB snapshot.

" + "documentation":"

The storage type associated with the DB snapshot. Valid values are as follows:

  • gp2

  • io1

  • standard

" }, "TdeCredentialArn":{ "shape":"NonEmptyString", @@ -8292,7 +9342,7 @@ }, "ManualSnapshotRetentionPeriod":{ "shape":"Integer", - "documentation":"

The number of days that manual snapshots are retained in the destination region after they are copied from a source region.

If the value is -1, then the manual snapshot is retained indefinitely.

Valid values: Either -1 or an integer between 1 and 3,653

" + "documentation":"

The number of days that manual snapshots are retained in the destination region after they are copied from a source region.

If the value is -1, then the manual snapshot is retained indefinitely.

Valid values: Either -1 or an integer between 1 and 3,653

" }, "RetentionPeriod":{ "shape":"Integer", @@ -8444,7 +9494,7 @@ }, "ManualSnapshotRetentionPeriod":{ "shape":"Integer", - "documentation":"

The default number of days to retain a manual snapshot.

If the value is -1, the snapshot is retained indefinitely.

This setting doesn't change the retention period of existing snapshots.

Valid values: Either -1 or an integer between 1 and 3,653

" + "documentation":"

The default number of days to retain a manual snapshot.

If the value is -1, the snapshot is retained indefinitely.

This setting doesn't change the retention period of existing snapshots.

Valid values: Either -1 or an integer between 1 and 3,653

" }, "MasterUsername":{ "shape":"NonEmptyString", @@ -8834,7 +9884,7 @@ }, "Type":{ "shape":"NonEmptyString", - "documentation":"

Whether to use AND or OR to join the operands.

" + "documentation":"

Whether to use AND or OR to join the operands. Valid values are LifecycleAndOperator or LifecycleOrOperator.

" } }, "documentation":"

The configuration for the filter.

" @@ -8852,7 +9902,7 @@ }, "Type":{ "shape":"NonEmptyString", - "documentation":"

The type of filter value.

" + "documentation":"

The type of filter value. Valid values are LifecyclePrefixPredicate or LifecycleTagPredicate.

" } }, "documentation":"

A value to use for the filter.

" @@ -8924,7 +9974,7 @@ }, "StorageClass":{ "shape":"NonEmptyString", - "documentation":"

The storage class to transition the object to.

" + "documentation":"

The storage class to transition the object to. Valid values are as follows:

  • DEEP_ARCHIVE

  • GLACIER

  • INTELLIGENT_TIERING

  • ONEZONE_IA

  • STANDARD_IA

" } }, "documentation":"

A rule for when objects transition to specific storage classes.

" @@ -8942,7 +9992,7 @@ }, "Status":{ "shape":"NonEmptyString", - "documentation":"

The versioning status of the S3 bucket.

" + "documentation":"

The versioning status of the S3 bucket. Valid values are Enabled or Suspended.

" } }, "documentation":"

Describes the versioning state of an S3 bucket.

" @@ -9042,7 +10092,7 @@ }, "Type":{ "shape":"NonEmptyString", - "documentation":"

Indicates the type of notification. Notifications can be generated using Lambda functions, Amazon SQS queues or Amazon SNS topics.

" + "documentation":"

Indicates the type of notification. Notifications can be generated using Lambda functions, Amazon SQS queues, or Amazon SNS topics, with corresponding valid values as follows:

  • LambdaConfiguration

  • QueueConfiguration

  • TopicConfiguration

" } }, "documentation":"

Details for an S3 bucket notification configuration.

" @@ -9105,7 +10155,7 @@ "members":{ "SSEAlgorithm":{ "shape":"NonEmptyString", - "documentation":"

Server-side encryption algorithm to use for the default encryption.

" + "documentation":"

Server-side encryption algorithm to use for the default encryption. Valid values are aws: kms or AES256.

" }, "KMSMasterKeyID":{ "shape":"NonEmptyString", @@ -9169,7 +10219,7 @@ }, "Protocol":{ "shape":"NonEmptyString", - "documentation":"

The protocol to use when redirecting requests. By default, uses the same protocol as the original request.

" + "documentation":"

The protocol to use when redirecting requests. By default, this field uses the same protocol as the original request. Valid values are http or https.

" } }, "documentation":"

The redirect behavior for requests to the website.

" @@ -9429,6 +10479,10 @@ "shape":"ProcessDetails", "documentation":"

The details of process-related information about a finding.

" }, + "Threats":{ + "shape":"ThreatList", + "documentation":"

Details about the threat detected in a security finding and the file paths that were affected by the threat.

" + }, "ThreatIntelIndicators":{ "shape":"ThreatIntelIndicatorList", "documentation":"

Threat intelligence details related to a finding.

" @@ -9486,7 +10540,7 @@ "documentation":"

Indicates whether the finding is a sample finding.

" } }, - "documentation":"

Provides consistent format for the contents of the Security Hub-aggregated findings. AwsSecurityFinding format enables you to share findings between Amazon Web Services security services and third-party solutions, and security standards checks.

A finding is a potential security issue generated either by Amazon Web Services services or by the integrated third-party solutions and standards checks.

" + "documentation":"

Provides a consistent format for Security Hub findings. AwsSecurityFinding format allows you to share findings between Amazon Web Services security services and third-party solutions.

A finding is a potential security issue generated either by Amazon Web Services services or by the integrated third-party solutions and standards checks.

" }, "AwsSecurityFindingFilters":{ "type":"structure", @@ -9917,18 +10971,46 @@ }, "Subscription":{ "shape":"AwsSnsTopicSubscriptionList", - "documentation":"

Subscription is an embedded property that describes the subscription endpoints of an SNS topic.

" + "documentation":"

Subscription is an embedded property that describes the subscription endpoints of an Amazon SNS topic.

" }, "TopicName":{ "shape":"NonEmptyString", - "documentation":"

The name of the topic.

" + "documentation":"

The name of the Amazon SNS topic.

" }, "Owner":{ "shape":"NonEmptyString", "documentation":"

The subscription's owner.

" + }, + "SqsSuccessFeedbackRoleArn":{ + "shape":"NonEmptyString", + "documentation":"

Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Amazon SQS endpoint.

" + }, + "SqsFailureFeedbackRoleArn":{ + "shape":"NonEmptyString", + "documentation":"

Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Amazon SQS endpoint.

" + }, + "ApplicationSuccessFeedbackRoleArn":{ + "shape":"NonEmptyString", + "documentation":"

Indicates failed message delivery status for an Amazon SNS topic that is subscribed to a platform application endpoint.

" + }, + "FirehoseSuccessFeedbackRoleArn":{ + "shape":"NonEmptyString", + "documentation":"

Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an Amazon Kinesis Data Firehose endpoint.

" + }, + "FirehoseFailureFeedbackRoleArn":{ + "shape":"NonEmptyString", + "documentation":"

Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an Amazon Kinesis Data Firehose endpoint.

" + }, + "HttpSuccessFeedbackRoleArn":{ + "shape":"NonEmptyString", + "documentation":"

Indicates successful message delivery status for an Amazon SNS topic that is subscribed to an HTTP endpoint.

" + }, + "HttpFailureFeedbackRoleArn":{ + "shape":"NonEmptyString", + "documentation":"

Indicates failed message delivery status for an Amazon SNS topic that is subscribed to an HTTP endpoint.

" } }, - "documentation":"

A wrapper type for the topic's ARN.

" + "documentation":"

Provides information about an Amazon SNS topic to which notifications can be published.

" }, "AwsSnsTopicSubscription":{ "type":"structure", @@ -9975,7 +11057,7 @@ "members":{ "Status":{ "shape":"NonEmptyString", - "documentation":"

The current patch compliance status.

The possible status values are:

  • COMPLIANT

  • NON_COMPLIANT

  • UNSPECIFIED_DATA

" + "documentation":"

The current patch compliance status. Valid values are as follows:

  • COMPLIANT

  • NON_COMPLIANT

  • UNSPECIFIED_DATA

" }, "CompliantCriticalCount":{ "shape":"Integer", @@ -10031,7 +11113,7 @@ }, "OverallSeverity":{ "shape":"NonEmptyString", - "documentation":"

The highest severity for the patches.

" + "documentation":"

The highest severity for the patches. Valid values are as follows:

  • CRITICAL

  • HIGH

  • MEDIUM

  • LOW

  • INFORMATIONAL

  • UNSPECIFIED

" }, "NonCompliantMediumCount":{ "shape":"Integer", @@ -10111,7 +11193,7 @@ }, "Type":{ "shape":"NonEmptyString", - "documentation":"

The type of predicate.

" + "documentation":"

The type of predicate. Valid values are as follows:

  • ByteMatch

  • GeoMatch

  • IPMatch

  • RegexMatch

  • SizeConstraint

  • SqlInjectionMatch

  • XssMatch

" } }, "documentation":"

A match predicate. A predicate might look for characteristics such as specific IP addresses, geographic locations, or sizes.

" @@ -10163,7 +11245,7 @@ }, "Type":{ "shape":"NonEmptyString", - "documentation":"

The type of predicate.

" + "documentation":"

The type of predicate. Valid values are as follows:

  • ByteMatch

  • GeoMatch

  • IPMatch

  • RegexMatch

  • SizeConstraint

  • SqlInjectionMatch

  • XssMatch

" } }, "documentation":"

Details for a match predicate. A predicate might look for characteristics such as specific IP addresses, geographic locations, or sizes.

" @@ -10172,27 +11254,307 @@ "type":"list", "member":{"shape":"AwsWafRegionalRateBasedRuleMatchPredicate"} }, + "AwsWafRegionalRuleDetails":{ + "type":"structure", + "members":{ + "MetricName":{ + "shape":"NonEmptyString", + "documentation":"

A name for the metrics for the rule.

" + }, + "Name":{ + "shape":"NonEmptyString", + "documentation":"

A descriptive name for the rule.

" + }, + "PredicateList":{ + "shape":"AwsWafRegionalRulePredicateList", + "documentation":"

Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, and SizeConstraintSet objects that you want to add to a rule and, for each object, indicates whether you want to negate the settings.

" + }, + "RuleId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the rule.

" + } + }, + "documentation":"

Provides information about an WAF Regional rule. This rule identifies the web requests that you want to allow, block, or count.

" + }, + "AwsWafRegionalRuleGroupDetails":{ + "type":"structure", + "members":{ + "MetricName":{ + "shape":"NonEmptyString", + "documentation":"

A name for the metrics for this rule group.

" + }, + "Name":{ + "shape":"NonEmptyString", + "documentation":"

The descriptive name of the rule group.

" + }, + "RuleGroupId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the rule group.

" + }, + "Rules":{ + "shape":"AwsWafRegionalRuleGroupRulesList", + "documentation":"

Provides information about the rule statements used to identify the web requests that you want to allow, block, or count.

" + } + }, + "documentation":"

Provides information about an WAF Regional rule group. The rule group is a collection of rules for inspecting and controlling web requests.

" + }, + "AwsWafRegionalRuleGroupRulesActionDetails":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"NonEmptyString", + "documentation":"

Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, and SizeConstraintSet objects that you want to add to a rule and, for each object, indicates whether you want to negate the settings.

" + } + }, + "documentation":"

Describes the action that WAF should take on a web request when it matches the criteria defined in the rule.

" + }, + "AwsWafRegionalRuleGroupRulesDetails":{ + "type":"structure", + "members":{ + "Action":{ + "shape":"AwsWafRegionalRuleGroupRulesActionDetails", + "documentation":"

The action that WAF should take on a web request when it matches the criteria defined in the rule.

" + }, + "Priority":{ + "shape":"Integer", + "documentation":"

If you define more than one rule in a web ACL, WAF evaluates each request against the rules in order based on the value of Priority.

" + }, + "RuleId":{ + "shape":"NonEmptyString", + "documentation":"

The ID for a rule.

" + }, + "Type":{ + "shape":"NonEmptyString", + "documentation":"

The type of rule in the rule group.

" + } + }, + "documentation":"

Provides information about the rules attached to a rule group

" + }, + "AwsWafRegionalRuleGroupRulesList":{ + "type":"list", + "member":{"shape":"AwsWafRegionalRuleGroupRulesDetails"} + }, + "AwsWafRegionalRulePredicateList":{ + "type":"list", + "member":{"shape":"AwsWafRegionalRulePredicateListDetails"} + }, + "AwsWafRegionalRulePredicateListDetails":{ + "type":"structure", + "members":{ + "DataId":{ + "shape":"NonEmptyString", + "documentation":"

A unique identifier for a predicate in a rule, such as ByteMatchSetId or IPSetId.

" + }, + "Negated":{ + "shape":"Boolean", + "documentation":"

Specifies if you want WAF to allow, block, or count requests based on the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet.

" + }, + "Type":{ + "shape":"NonEmptyString", + "documentation":"

The type of predicate in a rule, such as ByteMatch or IPSet.

" + } + }, + "documentation":"

Provides details about the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, and SizeConstraintSet objects that you want to add to a rule and, for each object, indicates whether you want to negate the settings.

" + }, + "AwsWafRegionalWebAclDetails":{ + "type":"structure", + "members":{ + "DefaultAction":{ + "shape":"NonEmptyString", + "documentation":"

The action to perform if none of the rules contained in the web ACL match.

" + }, + "MetricName":{ + "shape":"NonEmptyString", + "documentation":"

A name for the metrics for this web ACL.

" + }, + "Name":{ + "shape":"NonEmptyString", + "documentation":"

A descriptive name for the web ACL.

" + }, + "RulesList":{ + "shape":"AwsWafRegionalWebAclRulesList", + "documentation":"

An array that contains the action for each rule in a web ACL, the priority of the rule, and the ID of the rule.

" + }, + "WebAclId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the web ACL.

" + } + }, + "documentation":"

Provides information about the web access control list (web ACL). The web ACL contains the rules that identify the requests that you want to allow, block, or count.

" + }, + "AwsWafRegionalWebAclRulesList":{ + "type":"list", + "member":{"shape":"AwsWafRegionalWebAclRulesListDetails"} + }, + "AwsWafRegionalWebAclRulesListActionDetails":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"NonEmptyString", + "documentation":"

For actions that are associated with a rule, the action that WAF takes when a web request matches all conditions in a rule.

" + } + }, + "documentation":"

The action that WAF takes when a web request matches all conditions in the rule, such as allow, block, or count the request.

" + }, + "AwsWafRegionalWebAclRulesListDetails":{ + "type":"structure", + "members":{ + "Action":{ + "shape":"AwsWafRegionalWebAclRulesListActionDetails", + "documentation":"

The action that WAF takes when a web request matches all conditions in the rule, such as allow, block, or count the request.

" + }, + "OverrideAction":{ + "shape":"AwsWafRegionalWebAclRulesListOverrideActionDetails", + "documentation":"

Overrides the rule evaluation result in the rule group.

" + }, + "Priority":{ + "shape":"Integer", + "documentation":"

The order in which WAF evaluates the rules in a web ACL.

" + }, + "RuleId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of an WAF Regional rule to associate with a web ACL.

" + }, + "Type":{ + "shape":"NonEmptyString", + "documentation":"

For actions that are associated with a rule, the action that WAF takes when a web request matches all conditions in a rule.

" + } + }, + "documentation":"

A combination of ByteMatchSet, IPSet, and/or SqlInjectionMatchSet objects that identify the web requests that you want to allow, block, or count.

" + }, + "AwsWafRegionalWebAclRulesListOverrideActionDetails":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"NonEmptyString", + "documentation":"

Overrides the rule evaluation result in the rule group.

" + } + }, + "documentation":"

Provides details about the action to use in the place of the action that results from the rule group evaluation.

" + }, + "AwsWafRuleDetails":{ + "type":"structure", + "members":{ + "MetricName":{ + "shape":"NonEmptyString", + "documentation":"

The name of the metrics for this rule.

" + }, + "Name":{ + "shape":"NonEmptyString", + "documentation":"

A descriptive name for the rule.

" + }, + "PredicateList":{ + "shape":"AwsWafRulePredicateList", + "documentation":"

Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, and SizeConstraintSet objects that you want to add to a rule and, for each object, indicates whether you want to negate the settings.

" + }, + "RuleId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the WAF rule.

" + } + }, + "documentation":"

Provides information about a WAF rule. This rule specifies the web requests that you want to allow, block, or count.

" + }, + "AwsWafRuleGroupDetails":{ + "type":"structure", + "members":{ + "MetricName":{ + "shape":"NonEmptyString", + "documentation":"

The name of the metrics for this rule group.

" + }, + "Name":{ + "shape":"NonEmptyString", + "documentation":"

The name of the rule group.

" + }, + "RuleGroupId":{ + "shape":"NonEmptyString", + "documentation":"

The ID of the rule group.

" + }, + "Rules":{ + "shape":"AwsWafRuleGroupRulesList", + "documentation":"

Provides information about the rules attached to the rule group. These rules identify the web requests that you want to allow, block, or count.

" + } + }, + "documentation":"

Provides information about an WAF rule group. A rule group is a collection of rules for inspecting and controlling web requests.

" + }, + "AwsWafRuleGroupRulesActionDetails":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"NonEmptyString", + "documentation":"

The action that WAF should take on a web request when it matches the rule's statement.

" + } + }, + "documentation":"

Provides information about what action WAF should take on a web request when it matches the criteria defined in the rule.

" + }, + "AwsWafRuleGroupRulesDetails":{ + "type":"structure", + "members":{ + "Action":{ + "shape":"AwsWafRuleGroupRulesActionDetails", + "documentation":"

Provides information about what action WAF should take on a web request when it matches the criteria defined in the rule.

" + }, + "Priority":{ + "shape":"Integer", + "documentation":"

If you define more than one rule in a web ACL, WAF evaluates each request against the rules in order based on the value of Priority.

" + }, + "RuleId":{ + "shape":"NonEmptyString", + "documentation":"

The rule ID for a rule.

" + }, + "Type":{ + "shape":"NonEmptyString", + "documentation":"

The type of rule.

" + } + }, + "documentation":"

Provides information about the rules attached to the rule group. These rules identify the web requests that you want to allow, block, or count.

" + }, + "AwsWafRuleGroupRulesList":{ + "type":"list", + "member":{"shape":"AwsWafRuleGroupRulesDetails"} + }, + "AwsWafRulePredicateList":{ + "type":"list", + "member":{"shape":"AwsWafRulePredicateListDetails"} + }, + "AwsWafRulePredicateListDetails":{ + "type":"structure", + "members":{ + "DataId":{ + "shape":"NonEmptyString", + "documentation":"

A unique identifier for a predicate in a rule, such as ByteMatchSetId or IPSetId.

" + }, + "Negated":{ + "shape":"Boolean", + "documentation":"

Specifies if you want WAF to allow, block, or count requests based on the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet.

" + }, + "Type":{ + "shape":"NonEmptyString", + "documentation":"

The type of predicate in a rule, such as ByteMatch or IPSet.

" + } + }, + "documentation":"

Provides details about the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet, and SizeConstraintSet objects that you want to add to a rule and, for each object, indicates whether you want to negate the settings.

" + }, "AwsWafWebAclDetails":{ "type":"structure", "members":{ "Name":{ "shape":"NonEmptyString", - "documentation":"

A friendly name or description of the WebACL. You can't change the name of a WebACL after you create it.

" + "documentation":"

A friendly name or description of the web ACL. You can't change the name of a web ACL after you create it.

" }, "DefaultAction":{ "shape":"NonEmptyString", - "documentation":"

The action to perform if none of the rules contained in the WebACL match.

" + "documentation":"

The action to perform if none of the rules contained in the web ACL match.

" }, "Rules":{ "shape":"AwsWafWebAclRuleList", - "documentation":"

An array that contains the action for each rule in a WebACL, the priority of the rule, and the ID of the rule.

" + "documentation":"

An array that contains the action for each rule in a web ACL, the priority of the rule, and the ID of the rule.

" }, "WebAclId":{ "shape":"NonEmptyString", - "documentation":"

A unique identifier for a WebACL.

" + "documentation":"

A unique identifier for a web ACL.

" } }, - "documentation":"

Details about an WAF WebACL.

" + "documentation":"

Provides information about an WAF web access control list (web ACL).

" }, "AwsWafWebAclRule":{ "type":"structure", @@ -10207,11 +11569,11 @@ }, "OverrideAction":{ "shape":"WafOverrideAction", - "documentation":"

Use the OverrideAction to test your RuleGroup.

Any rule in a RuleGroup can potentially block a request. If you set the OverrideAction to None, the RuleGroup blocks a request if any individual rule in the RuleGroup matches the request and is configured to block that request.

However, if you first want to test the RuleGroup, set the OverrideAction to Count. The RuleGroup then overrides any block action specified by individual rules contained within the group. Instead of blocking matching requests, those requests are counted.

ActivatedRule|OverrideAction applies only when updating or adding a RuleGroup to a WebACL. In this case you do not use ActivatedRule|Action. For all other update requests, ActivatedRule|Action is used instead of ActivatedRule|OverrideAction.

" + "documentation":"

Use the OverrideAction to test your RuleGroup.

Any rule in a RuleGroup can potentially block a request. If you set the OverrideAction to None, the RuleGroup blocks a request if any individual rule in the RuleGroup matches the request and is configured to block that request.

However, if you first want to test the RuleGroup, set the OverrideAction to Count. The RuleGroup then overrides any block action specified by individual rules contained within the group. Instead of blocking matching requests, those requests are counted.

ActivatedRule|OverrideAction applies only when updating or adding a RuleGroup to a web ACL. In this case you do not use ActivatedRule Action. For all other update requests, ActivatedRule Action is used instead of ActivatedRule OverrideAction.

" }, "Priority":{ "shape":"Integer", - "documentation":"

Specifies the order in which the rules in a WebACL are evaluated. Rules with a lower value for Priority are evaluated before rules with a higher value. The value must be a unique integer. If you add multiple rules to a WebACL, the values do not need to be consecutive.

" + "documentation":"

Specifies the order in which the rules in a web ACL are evaluated. Rules with a lower value for Priority are evaluated before rules with a higher value. The value must be a unique integer. If you add multiple rules to a web ACL, the values do not need to be consecutive.

" }, "RuleId":{ "shape":"NonEmptyString", @@ -10222,7 +11584,7 @@ "documentation":"

The rule type.

Valid values: REGULAR | RATE_BASED | GROUP

The default is REGULAR.

" } }, - "documentation":"

Details for a rule in an WAF WebACL.

" + "documentation":"

Details for a rule in an WAF web ACL.

" }, "AwsWafWebAclRuleList":{ "type":"list", @@ -10237,11 +11599,11 @@ }, "Status":{ "shape":"NonEmptyString", - "documentation":"

The current status of the encryption configuration. When Status is UPDATING, X-Ray might use both the old and new encryption.

" + "documentation":"

The current status of the encryption configuration. Valid values are ACTIVE or UPDATING.

When Status is equal to UPDATING, X-Ray might use both the old and new encryption.

" }, "Type":{ "shape":"NonEmptyString", - "documentation":"

The type of encryption. KMS indicates that the encryption uses KMS keys. NONE indicates to use the default encryption.

" + "documentation":"

The type of encryption. KMS indicates that the encryption uses KMS keys. NONE indicates the default encryption.

" } }, "documentation":"

Information about the encryption configuration for X-Ray.

" @@ -10395,11 +11757,11 @@ }, "ErrorCode":{ "shape":"NonEmptyString", - "documentation":"

The code associated with the error.

" + "documentation":"

The code associated with the error. Possible values are:

  • ConcurrentUpdateError - Another request attempted to update the finding while this request was being processed. This error may also occur if you call BatchUpdateFindings and BatchImportFindings at the same time.

  • DuplicatedFindingIdentifier - The request included two or more findings with the same FindingIdentifier.

  • FindingNotFound - The FindingIdentifier included in the request did not match an existing finding.

  • FindingSizeExceeded - The finding size was greater than the permissible value of 240 KB.

  • InternalFailure - An internal service failure occurred when updating the finding.

  • InvalidInput - The finding update contained an invalid value that did not satisfy the Amazon Web Services Security Finding Format syntax.

" }, "ErrorMessage":{ "shape":"NonEmptyString", - "documentation":"

The message associated with the error.

" + "documentation":"

The message associated with the error. Possible values are:

  • Concurrent finding updates detected

  • Finding Identifier is duplicated

  • Finding Not Found

  • Finding size exceeded 240 KB

  • Internal service failure

  • Invalid Input

" } }, "documentation":"

A finding from a BatchUpdateFindings request that Security Hub was unable to update.

" @@ -10559,21 +11921,33 @@ "ContainerDetails":{ "type":"structure", "members":{ + "ContainerRuntime":{ + "shape":"NonEmptyString", + "documentation":"

The runtime of the container.

" + }, "Name":{ "shape":"NonEmptyString", "documentation":"

The name of the container related to a finding.

" }, "ImageId":{ "shape":"NonEmptyString", - "documentation":"

The identifier of the image related to a finding.

" + "documentation":"

The identifier of the container image related to a finding.

" }, "ImageName":{ "shape":"NonEmptyString", - "documentation":"

The name of the image related to a finding.

" + "documentation":"

The name of the container image related to a finding.

" }, "LaunchedAt":{ "shape":"NonEmptyString", "documentation":"

Indicates when the container started.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

" + }, + "VolumeMounts":{ + "shape":"VolumeMountList", + "documentation":"

Provides information about the mounting of a volume in a container.

" + }, + "Privileged":{ + "shape":"Boolean", + "documentation":"

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user).

" } }, "documentation":"

Container details related to a finding.

" @@ -10641,7 +12015,7 @@ }, "Regions":{ "shape":"StringList", - "documentation":"

If RegionLinkingMode is ALL_REGIONS_EXCEPT_SPECIFIED, then this is a comma-separated list of Regions that do not aggregate findings to the aggregation Region.

If RegionLinkingMode is SPECIFIED_REGIONS, then this is a comma-separated list of Regions that do aggregate findings to the aggregation Region.

" + "documentation":"

If RegionLinkingMode is ALL_REGIONS_EXCEPT_SPECIFIED, then this is a space-separated list of Regions that do not aggregate findings to the aggregation Region.

If RegionLinkingMode is SPECIFIED_REGIONS, then this is a space-separated list of Regions that do aggregate findings to the aggregation Region.

" } } }, @@ -11302,6 +12676,32 @@ "key":{"shape":"NonEmptyString"}, "value":{"shape":"NonEmptyString"} }, + "FilePathList":{ + "type":"list", + "member":{"shape":"FilePaths"} + }, + "FilePaths":{ + "type":"structure", + "members":{ + "FilePath":{ + "shape":"NonEmptyString", + "documentation":"

Path to the infected or suspicious file on the resource it was detected on.

" + }, + "FileName":{ + "shape":"NonEmptyString", + "documentation":"

The name of the infected or suspicious file corresponding to the hash.

" + }, + "ResourceId":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the resource on which the threat was detected.

" + }, + "Hash":{ + "shape":"NonEmptyString", + "documentation":"

The hash value for the infected or suspicious file.

" + } + }, + "documentation":"

Provides information about the file paths that were affected by the threat.

" + }, "FindingAggregator":{ "type":"structure", "members":{ @@ -11664,11 +13064,11 @@ "members":{ "Code":{ "shape":"Integer", - "documentation":"

The ICMP code for which to deny or allow access. To deny or allow all codes, use the value -1.

" + "documentation":"

The ICMP code for which to deny or allow access. To deny or allow all codes, use the value -1.

" }, "Type":{ "shape":"Integer", - "documentation":"

The ICMP type for which to deny or allow access. To deny or allow all types, use the value -1.

" + "documentation":"

The ICMP type for which to deny or allow access. To deny or allow all types, use the value -1.

" } }, "documentation":"

An Internet Control Message Protocol (ICMP) type and code.

" @@ -11918,7 +13318,7 @@ }, "CidrBlockState":{ "shape":"NonEmptyString", - "documentation":"

Information about the state of the CIDR block.

" + "documentation":"

Information about the state of the CIDR block. Valid values are as follows:

  • associating

  • associated

  • disassociating

  • disassociated

  • failed

  • failing

" } }, "documentation":"

An IPV6 CIDR block association.

" @@ -12936,11 +14336,11 @@ }, "AwsEc2Volume":{ "shape":"AwsEc2VolumeDetails", - "documentation":"

Details for an EC2 volume.

" + "documentation":"

Details for an Amazon EC2 volume.

" }, "AwsEc2Vpc":{ "shape":"AwsEc2VpcDetails", - "documentation":"

Details for an EC2 VPC.

" + "documentation":"

Details for an Amazon EC2 VPC.

" }, "AwsEc2Eip":{ "shape":"AwsEc2EipDetails", @@ -13068,7 +14468,7 @@ }, "AwsWafWebAcl":{ "shape":"AwsWafWebAclDetails", - "documentation":"

Details for an WAF WebACL.

" + "documentation":"

Details for an WAF web ACL.

" }, "AwsRdsDbSnapshot":{ "shape":"AwsRdsDbSnapshotDetails", @@ -13084,7 +14484,11 @@ }, "AwsEcsCluster":{ "shape":"AwsEcsClusterDetails", - "documentation":"

Details about an ECS cluster.

" + "documentation":"

Details about an Amazon ECS cluster.

" + }, + "AwsEcsContainer":{ + "shape":"AwsEcsContainerDetails", + "documentation":"

Provides information about a Docker container that's part of a task.

" }, "AwsEcsTaskDefinition":{ "shape":"AwsEcsTaskDefinitionDetails", @@ -13112,7 +14516,7 @@ }, "AwsEc2VpnConnection":{ "shape":"AwsEc2VpnConnectionDetails", - "documentation":"

Details about an EC2 VPN connection.

" + "documentation":"

Details about an Amazon EC2 VPN connection.

" }, "AwsEcrContainerImage":{ "shape":"AwsEcrContainerImageDetails", @@ -13161,6 +14565,66 @@ "AwsRdsDbSecurityGroup":{ "shape":"AwsRdsDbSecurityGroupDetails", "documentation":"

Details about an Amazon RDS DB security group.

" + }, + "AwsKinesisStream":{ + "shape":"AwsKinesisStreamDetails", + "documentation":"

Details about an Amazon Kinesis data stream.

" + }, + "AwsEc2TransitGateway":{ + "shape":"AwsEc2TransitGatewayDetails", + "documentation":"

Details about an Amazon EC2 transit gateway that interconnects your virtual private clouds (VPC) and on-premises networks.

" + }, + "AwsEfsAccessPoint":{ + "shape":"AwsEfsAccessPointDetails", + "documentation":"

Details about an Amazon EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point.

" + }, + "AwsCloudFormationStack":{ + "shape":"AwsCloudFormationStackDetails", + "documentation":"

Details about an CloudFormation stack. A stack is a collection of Amazon Web Services resources that you can manage as a single unit.

" + }, + "AwsCloudWatchAlarm":{ + "shape":"AwsCloudWatchAlarmDetails", + "documentation":"

Details about an Amazon CloudWatch alarm. An alarm allows you to monitor and receive alerts about your Amazon Web Services resources and applications across multiple Regions.

" + }, + "AwsEc2VpcPeeringConnection":{ + "shape":"AwsEc2VpcPeeringConnectionDetails", + "documentation":"

Details about an Amazon EC2 VPC peering connection. A VPC peering connection is a networking connection between two VPCs that enables you to route traffic between them privately.

" + }, + "AwsWafRegionalRuleGroup":{ + "shape":"AwsWafRegionalRuleGroupDetails", + "documentation":"

Details about an WAF rule group for Regional resources.

" + }, + "AwsWafRegionalRule":{ + "shape":"AwsWafRegionalRuleDetails", + "documentation":"

Details about an WAF rule for Regional resources.

" + }, + "AwsWafRegionalWebAcl":{ + "shape":"AwsWafRegionalWebAclDetails", + "documentation":"

Details about an WAF web access control list (web ACL) for Regional resources.

" + }, + "AwsWafRule":{ + "shape":"AwsWafRuleDetails", + "documentation":"

Details about an WAF rule for global resources.

" + }, + "AwsWafRuleGroup":{ + "shape":"AwsWafRuleGroupDetails", + "documentation":"

Details about an WAF rule group for global resources.

" + }, + "AwsEcsTask":{ + "shape":"AwsEcsTaskDetails", + "documentation":"

Details about a task in a cluster.

" + }, + "AwsBackupBackupVault":{ + "shape":"AwsBackupBackupVaultDetails", + "documentation":"

Provides details about an Backup backup vault.

" + }, + "AwsBackupBackupPlan":{ + "shape":"AwsBackupBackupPlanDetails", + "documentation":"

Provides details about an Backup backup plan.

" + }, + "AwsBackupRecoveryPoint":{ + "shape":"AwsBackupRecoveryPointDetails", + "documentation":"

Provides details about an Backup backup, or recovery point.

" } }, "documentation":"

Additional details about a resource related to a finding.

To provide the details, use the object that corresponds to the resource type. For example, if the resource type is AwsEc2Instance, then you use the AwsEc2Instance object to provide the details.

If the type-specific object does not contain all of the fields you want to populate, then you use the Other object to populate those additional fields.

You also use the Other object to populate the details when the selected type does not have a corresponding object.

" @@ -13677,6 +15141,22 @@ "FilePath":{ "shape":"NonEmptyString", "documentation":"

The file system path to the package manager inventory file.

" + }, + "FixedInVersion":{ + "shape":"NonEmptyString", + "documentation":"

The version of the software package in which the vulnerability has been resolved.

" + }, + "Remediation":{ + "shape":"NonEmptyString", + "documentation":"

Describes the actions a customer can take to resolve the vulnerability in the software package.

" + }, + "SourceLayerHash":{ + "shape":"NonEmptyString", + "documentation":"

The source layer hash of the vulnerable package.

" + }, + "SourceLayerArn":{ + "shape":"NonEmptyString", + "documentation":"

The Amazon Resource Name (ARN) of the source layer.

" } }, "documentation":"

Information about a software package.

" @@ -13728,9 +15208,13 @@ "EnabledByDefault":{ "shape":"Boolean", "documentation":"

Whether the standard is enabled by default. When Security Hub is enabled from the console, if a standard is enabled by default, the check box for that standard is selected by default.

When Security Hub is enabled using the EnableSecurityHub API operation, the standard is enabled by default unless EnableDefaultStandards is set to false.

" + }, + "StandardsManagedBy":{ + "shape":"StandardsManagedBy", + "documentation":"

Provides details about the management of a standard.

" } }, - "documentation":"

Provides information about a specific standard.

" + "documentation":"

Provides information about a specific security standard.

" }, "Standards":{ "type":"list", @@ -13791,6 +15275,20 @@ "key":{"shape":"NonEmptyString"}, "value":{"shape":"NonEmptyString"} }, + "StandardsManagedBy":{ + "type":"structure", + "members":{ + "Company":{ + "shape":"NonEmptyString", + "documentation":"

An identifier for the company that manages a specific security standard. For existing standards, the value is equal to Amazon Web Services.

" + }, + "Product":{ + "shape":"NonEmptyString", + "documentation":"

An identifier for the product that manages a specific security standard. For existing standards, the value is equal to the Amazon Web Services service that manages the standard.

" + } + }, + "documentation":"

Provides details about the management of a security standard.

" + }, "StandardsStatus":{ "type":"string", "enum":[ @@ -14013,6 +15511,28 @@ "type":"string", "max":256 }, + "Threat":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NonEmptyString", + "documentation":"

The name of the threat.

" + }, + "Severity":{ + "shape":"NonEmptyString", + "documentation":"

The severity of the threat.

" + }, + "ItemCount":{ + "shape":"Integer", + "documentation":"

This total number of items in which the threat has been detected.

" + }, + "FilePaths":{ + "shape":"FilePathList", + "documentation":"

Provides information about the file paths that were affected by the threat.

" + } + }, + "documentation":"

Provides information about the threat detected in a security finding and the file paths that were affected by the threat.

" + }, "ThreatIntelIndicator":{ "type":"structure", "members":{ @@ -14074,6 +15594,10 @@ "URL" ] }, + "ThreatList":{ + "type":"list", + "member":{"shape":"Threat"} + }, "Timestamp":{ "type":"timestamp", "timestampFormat":"iso8601" @@ -14150,7 +15674,7 @@ }, "Regions":{ "shape":"StringList", - "documentation":"

If RegionLinkingMode is ALL_REGIONS_EXCEPT_SPECIFIED, then this is a comma-separated list of Regions that do not aggregate findings to the aggregation Region.

If RegionLinkingMode is SPECIFIED_REGIONS, then this is a comma-separated list of Regions that do aggregate findings to the aggregation Region.

" + "documentation":"

If RegionLinkingMode is ALL_REGIONS_EXCEPT_SPECIFIED, then this is a space-separated list of Regions that do not aggregate findings to the aggregation Region.

If RegionLinkingMode is SPECIFIED_REGIONS, then this is a space-separated list of Regions that do aggregate findings to the aggregation Region.

" } } }, @@ -14294,6 +15818,70 @@ "BENIGN_POSITIVE" ] }, + "VolumeMount":{ + "type":"structure", + "members":{ + "Name":{ + "shape":"NonEmptyString", + "documentation":"

The name of the volume.

" + }, + "MountPath":{ + "shape":"NonEmptyString", + "documentation":"

The path in the container at which the volume should be mounted.

" + } + }, + "documentation":"

Describes the mounting of a volume in a container.

" + }, + "VolumeMountList":{ + "type":"list", + "member":{"shape":"VolumeMount"} + }, + "VpcInfoCidrBlockSetDetails":{ + "type":"structure", + "members":{ + "CidrBlock":{ + "shape":"NonEmptyString", + "documentation":"

The IPv4 CIDR block for the VPC.

" + } + }, + "documentation":"

Provides details about the IPv4 CIDR blocks for the VPC.

" + }, + "VpcInfoCidrBlockSetList":{ + "type":"list", + "member":{"shape":"VpcInfoCidrBlockSetDetails"} + }, + "VpcInfoIpv6CidrBlockSetDetails":{ + "type":"structure", + "members":{ + "Ipv6CidrBlock":{ + "shape":"NonEmptyString", + "documentation":"

The IPv6 CIDR block for the VPC.

" + } + }, + "documentation":"

Provides details about the IPv6 CIDR blocks for the VPC.

" + }, + "VpcInfoIpv6CidrBlockSetList":{ + "type":"list", + "member":{"shape":"VpcInfoIpv6CidrBlockSetDetails"} + }, + "VpcInfoPeeringOptionsDetails":{ + "type":"structure", + "members":{ + "AllowDnsResolutionFromRemoteVpc":{ + "shape":"Boolean", + "documentation":"

Indicates whether a local VPC can resolve public DNS hostnames to private IP addresses when queried from instances in a peer VPC.

" + }, + "AllowEgressFromLocalClassicLinkToRemoteVpc":{ + "shape":"Boolean", + "documentation":"

Indicates whether a local ClassicLink connection can communicate with the peer VPC over the VPC peering connection.

" + }, + "AllowEgressFromLocalVpcToRemoteClassicLink":{ + "shape":"Boolean", + "documentation":"

Indicates whether a local VPC can communicate with a ClassicLink connection in the peer VPC over the VPC peering connection.

" + } + }, + "documentation":"

Provides information about the VPC peering connection options for the accepter or requester VPC.

" + }, "Vulnerability":{ "type":"structure", "required":["Id"], @@ -14321,10 +15909,22 @@ "ReferenceUrls":{ "shape":"StringList", "documentation":"

A list of URLs that provide additional information about the vulnerability.

" + }, + "FixAvailable":{ + "shape":"VulnerabilityFixAvailable", + "documentation":"

Specifies if all vulnerable packages in a finding have a value for FixedInVersion and Remediation. This field is evaluated for each vulnerability Id based on the number of vulnerable packages that have a value for both FixedInVersion and Remediation. Valid values are as follows:

  • YES if all vulnerable packages have a value for both FixedInVersion and Remediation

  • NO if no vulnerable packages have a value for FixedInVersion and Remediation

  • PARTIAL otherwise

" } }, "documentation":"

A vulnerability associated with a finding.

" }, + "VulnerabilityFixAvailable":{ + "type":"string", + "enum":[ + "YES", + "NO", + "PARTIAL" + ] + }, "VulnerabilityList":{ "type":"list", "member":{"shape":"Vulnerability"} @@ -14361,7 +15961,7 @@ "members":{ "Type":{ "shape":"NonEmptyString", - "documentation":"

Specifies how you want WAF to respond to requests that match the settings in a rule.

Valid settings include the following:

  • ALLOW - WAF allows requests

  • BLOCK - WAF blocks requests

  • COUNT - WAF increments a counter of the requests that match all of the conditions in the rule. WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify COUNT for the default action for a WebACL.

" + "documentation":"

Specifies how you want WAF to respond to requests that match the settings in a rule.

Valid settings include the following:

  • ALLOW - WAF allows requests

  • BLOCK - WAF blocks requests

  • COUNT - WAF increments a counter of the requests that match all of the conditions in the rule. WAF then continues to inspect the web request based on the remaining rules in the web ACL. You can't specify COUNT for the default action for a web ACL.

" } }, "documentation":"

Details about the action that CloudFront or WAF takes when a web request matches the conditions in the rule.

" diff --git a/botocore/data/securitylake/2018-05-10/endpoint-rule-set-1.json b/botocore/data/securitylake/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..14d2d67c --- /dev/null +++ b/botocore/data/securitylake/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securitylake-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securitylake-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://securitylake.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://securitylake.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/securitylake/2018-05-10/paginators-1.json b/botocore/data/securitylake/2018-05-10/paginators-1.json new file mode 100644 index 00000000..47207173 --- /dev/null +++ b/botocore/data/securitylake/2018-05-10/paginators-1.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "GetDatalakeStatus": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxAccountResults", + "result_key": "accountSourcesList" + }, + "ListDatalakeExceptions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxFailures", + "result_key": "nonRetryableFailures" + }, + "ListLogSources": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "regionSourceTypesAccountsList" + }, + "ListSubscribers": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "subscribers" + } + } +} diff --git a/botocore/data/securitylake/2018-05-10/service-2.json b/botocore/data/securitylake/2018-05-10/service-2.json new file mode 100644 index 00000000..85963fee --- /dev/null +++ b/botocore/data/securitylake/2018-05-10/service-2.json @@ -0,0 +1,2224 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-05-10", + "endpointPrefix":"securitylake", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"Amazon Security Lake", + "serviceId":"SecurityLake", + "signatureVersion":"v4", + "signingName":"securitylake", + "uid":"securitylake-2018-05-10" + }, + "operations":{ + "CreateAwsLogSource":{ + "name":"CreateAwsLogSource", + "http":{ + "method":"POST", + "requestUri":"/v1/logsources/aws", + "responseCode":200 + }, + "input":{"shape":"CreateAwsLogSourceRequest"}, + "output":{"shape":"CreateAwsLogSourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"S3Exception"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Adds a natively-supported Amazon Web Services service as a Security Lake source. Enables source types for member accounts in required Regions, based on specified parameters. You can choose any source type in any Region for accounts that are either part of a trusted organization or standalone accounts. At least one of the three dimensions is a mandatory input to this API. However, any combination of the three dimensions can be supplied to this API.

By default, dimension refers to the entire set. When you don't provide a dimension, Security Lake assumes that the missing dimension refers to the entire set. This is overridden when you supply any one of the inputs. For instance, when members is not specified, the API disables all Security Lake member accounts for sources. Similarly, when Regions are not specified, Security Lake is disabled for all the Regions where Security Lake is available as a service.

You can use this API only to enable a natively-supported Amazon Web Services services as a source. Use CreateCustomLogSource to enable data collection from a custom source.

" + }, + "CreateCustomLogSource":{ + "name":"CreateCustomLogSource", + "http":{ + "method":"POST", + "requestUri":"/v1/logsources/custom", + "responseCode":200 + }, + "input":{"shape":"CreateCustomLogSourceRequest"}, + "output":{"shape":"CreateCustomLogSourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictSourceNamesException"}, + {"shape":"AccessDeniedException"}, + {"shape":"BucketNotFoundException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Adds a third-party custom source in Amazon Security Lake, from the Region where you want to create a custom source. Security Lake can collect logs and events from third-party custom sources. After creating the appropriate API roles, use this API to add a custom source name in Security Lake. This operation creates a partition in the Security Lake S3 bucket as the target location for log files from the custom source, an associated Glue table, and an Glue crawler.

" + }, + "CreateDatalake":{ + "name":"CreateDatalake", + "http":{ + "method":"POST", + "requestUri":"/v1/datalake", + "responseCode":200 + }, + "input":{"shape":"CreateDatalakeRequest"}, + "output":{"shape":"CreateDatalakeResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Initializes an Amazon Security Lake instance with the provided (or default) configuration. You can enable Security Lake in Regions with customized settings in advance before enabling log collection in Regions. You can either use the enableAll parameter to specify all Regions or you can specify the Regions you want to enable Security Lake using the Regions parameter and configure these Regions using the configurations parameter. When the CreateDataLake API is called multiple times, if that Region is already enabled, it will update the Region if configuration for that Region is provided. If that Region is a new Region, it will be set up with the customized configurations if it is specified.

When you enable Security Lake, it starts ingesting security data after the CreateAwsLogSource call. This includes ingesting security data from sources, storing data, and making data accessible to subscribers. Security Lake also enables all the existing settings and resources that it stores or maintains for your account in the current Region, including security log and event data. For more information, see the Amazon Security Lake User Guide.

" + }, + "CreateDatalakeAutoEnable":{ + "name":"CreateDatalakeAutoEnable", + "http":{ + "method":"POST", + "requestUri":"/v1/datalake/autoenable", + "responseCode":200 + }, + "input":{"shape":"CreateDatalakeAutoEnableRequest"}, + "output":{"shape":"CreateDatalakeAutoEnableResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Automatically enable Security Lake in the specified Regions to begin ingesting security data. When you choose to enable organization accounts automatically, then Security Lake begins to enable new accounts as member accounts as they are added to the organization. Security Lake does not enable existing organization accounts that are not yet enabled.

" + }, + "CreateDatalakeDelegatedAdmin":{ + "name":"CreateDatalakeDelegatedAdmin", + "http":{ + "method":"POST", + "requestUri":"/v1/datalake/delegate", + "responseCode":200 + }, + "input":{"shape":"CreateDatalakeDelegatedAdminRequest"}, + "output":{"shape":"CreateDatalakeDelegatedAdminResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Designates the Security Lake administrator account for the organization. This API can only be called by the organization management account. The organization management account cannot be the delegated administrator account.

" + }, + "CreateDatalakeExceptionsSubscription":{ + "name":"CreateDatalakeExceptionsSubscription", + "http":{ + "method":"POST", + "requestUri":"/v1/datalake/exceptions/subscription", + "responseCode":200 + }, + "input":{"shape":"CreateDatalakeExceptionsSubscriptionRequest"}, + "output":{"shape":"CreateDatalakeExceptionsSubscriptionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Creates the specified notification subscription in Security Lake. Creates the specified subscription notifications in the specified organization.

" + }, + "CreateSubscriber":{ + "name":"CreateSubscriber", + "http":{ + "method":"POST", + "requestUri":"/v1/subscribers", + "responseCode":200 + }, + "input":{"shape":"CreateSubscriberRequest"}, + "output":{"shape":"CreateSubscriberResponse"}, + "errors":[ + {"shape":"ConflictSubscriptionException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"BucketNotFoundException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Creates a subscription permission for accounts that are already enabled in Security Lake.

" + }, + "CreateSubscriptionNotificationConfiguration":{ + "name":"CreateSubscriptionNotificationConfiguration", + "http":{ + "method":"POST", + "requestUri":"/subscription-notifications/{subscriptionId}", + "responseCode":200 + }, + "input":{"shape":"CreateSubscriptionNotificationConfigurationRequest"}, + "output":{"shape":"CreateSubscriptionNotificationConfigurationResponse"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Creates the specified notification subscription in Security Lake. Creates the specified subscription notifications from the specified organization.

" + }, + "DeleteAwsLogSource":{ + "name":"DeleteAwsLogSource", + "http":{ + "method":"POST", + "requestUri":"/v1/logsources/aws/delete", + "responseCode":200 + }, + "input":{"shape":"DeleteAwsLogSourceRequest"}, + "output":{"shape":"DeleteAwsLogSourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Removes a natively-supported Amazon Web Services service as a Amazon Security Lake source. When you remove the source, Security Lake stops collecting data from that source, and subscribers can no longer consume new data from the source. Subscribers can still consume data that Amazon Security Lake collected from the source before disablement.

You can choose any source type in any Region for accounts that are either part of a trusted organization or standalone accounts. At least one of the three dimensions is a mandatory input to this API. However, any combination of the three dimensions can be supplied to this API.

By default, dimension refers to the entire set. This is overridden when you supply any one of the inputs. For instance, when members is not specified, the API disables all Security Lake member accounts for sources. Similarly, when Regions are not specified, Security Lake is disabled for all the Regions where Security Lake is available as a service.

You can use this API to remove a natively-supported Amazon Web Services service as a source. Use DeregisterCustomData to remove a custom source.

When you don't provide a dimension, Security Lake assumes that the missing dimension refers to the entire set. For example, if you don't provide specific accounts, the API applies to the entire set of accounts in your organization.

" + }, + "DeleteCustomLogSource":{ + "name":"DeleteCustomLogSource", + "http":{ + "method":"DELETE", + "requestUri":"/v1/logsources/custom", + "responseCode":200 + }, + "input":{"shape":"DeleteCustomLogSourceRequest"}, + "output":{"shape":"DeleteCustomLogSourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictSourceNamesException"}, + {"shape":"AccessDeniedException"}, + {"shape":"BucketNotFoundException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Removes a custom log source from Security Lake.

", + "idempotent":true + }, + "DeleteDatalake":{ + "name":"DeleteDatalake", + "http":{ + "method":"DELETE", + "requestUri":"/v1/datalake", + "responseCode":200 + }, + "input":{"shape":"DeleteDatalakeRequest"}, + "output":{"shape":"DeleteDatalakeResponse"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

When you delete Amazon Security Lake from your account, Security Lake is disabled in all Regions. Also, this API automatically performs the off-boarding steps to off-board the account from Security Lake . This includes ingesting security data from sources, storing data, and making data accessible to subscribers. Security Lake also deletes all the existing settings and resources that it stores or maintains for your account in the current Region, including security log and event data. DeleteDatalake does not delete the S3 bucket which is owned by the Amazon Web Services account. For more information, see the Amazon Security Lake User Guide.

", + "idempotent":true + }, + "DeleteDatalakeAutoEnable":{ + "name":"DeleteDatalakeAutoEnable", + "http":{ + "method":"POST", + "requestUri":"/v1/datalake/autoenable/delete", + "responseCode":200 + }, + "input":{"shape":"DeleteDatalakeAutoEnableRequest"}, + "output":{"shape":"DeleteDatalakeAutoEnableResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Automatically delete Security Lake in the specified Regions to stop ingesting security data. When you delete Amazon Security Lake from your account, Security Lake is disabled in all Regions. Also, this API automatically performs the off-boarding steps to off-board the account from Security Lake . This includes ingesting security data from sources, storing data, and making data accessible to subscribers. Security Lake also deletes all the existing settings and resources that it stores or maintains for your account in the current Region, including security log and event data. For more information, see the Amazon Security Lake User Guide.

" + }, + "DeleteDatalakeDelegatedAdmin":{ + "name":"DeleteDatalakeDelegatedAdmin", + "http":{ + "method":"DELETE", + "requestUri":"/v1/datalake/delegate/{account}", + "responseCode":200 + }, + "input":{"shape":"DeleteDatalakeDelegatedAdminRequest"}, + "output":{"shape":"DeleteDatalakeDelegatedAdminResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes the Security Lake administrator account for the organization. This API can only be called by the organization management account. The organization management account cannot be the delegated administrator account.

" + }, + "DeleteDatalakeExceptionsSubscription":{ + "name":"DeleteDatalakeExceptionsSubscription", + "http":{ + "method":"DELETE", + "requestUri":"/v1/datalake/exceptions/subscription", + "responseCode":200 + }, + "input":{"shape":"DeleteDatalakeExceptionsSubscriptionRequest"}, + "output":{"shape":"DeleteDatalakeExceptionsSubscriptionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Deletes the specified notification subscription in Security Lake. Deletes the specified subscription notifications in the specified organization.

" + }, + "DeleteSubscriber":{ + "name":"DeleteSubscriber", + "http":{ + "method":"DELETE", + "requestUri":"/v1/subscribers", + "responseCode":200 + }, + "input":{"shape":"DeleteSubscriberRequest"}, + "output":{"shape":"DeleteSubscriberResponse"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"BucketNotFoundException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Deletes the specified subscription permissions to Security Lake. Deletes the specified subscription permissions from the specified organization.

", + "idempotent":true + }, + "DeleteSubscriptionNotificationConfiguration":{ + "name":"DeleteSubscriptionNotificationConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/subscription-notifications/{subscriptionId}", + "responseCode":200 + }, + "input":{"shape":"DeleteSubscriptionNotificationConfigurationRequest"}, + "output":{"shape":"DeleteSubscriptionNotificationConfigurationResponse"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Deletes the specified notification subscription in Security Lake. Deletes the specified subscription notifications from the specified organization.

", + "idempotent":true + }, + "GetDatalake":{ + "name":"GetDatalake", + "http":{ + "method":"GET", + "requestUri":"/v1/datalake", + "responseCode":200 + }, + "input":{"shape":"GetDatalakeRequest"}, + "output":{"shape":"GetDatalakeResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Retrieve the Security Lake configuration object for the specified account ID. This API does not take input parameters.

" + }, + "GetDatalakeAutoEnable":{ + "name":"GetDatalakeAutoEnable", + "http":{ + "method":"GET", + "requestUri":"/v1/datalake/autoenable", + "responseCode":200 + }, + "input":{"shape":"GetDatalakeAutoEnableRequest"}, + "output":{"shape":"GetDatalakeAutoEnableResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Retrieves the configuration that will be automatically set up for accounts added to the organization after the organization has on boarded to Amazon Security Lake. This API does not take input parameters.

" + }, + "GetDatalakeExceptionsExpiry":{ + "name":"GetDatalakeExceptionsExpiry", + "http":{ + "method":"GET", + "requestUri":"/v1/datalake/exceptions/expiry", + "responseCode":200 + }, + "input":{"shape":"GetDatalakeExceptionsExpiryRequest"}, + "output":{"shape":"GetDatalakeExceptionsExpiryResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Retrieves the expiration period and time-to-live (TTL) for which the exception message will remain. Exceptions are stored by default, for a 2 week period of time from when a record was created in Security Lake. This API does not take input parameters. This API does not take input parameters.

" + }, + "GetDatalakeExceptionsSubscription":{ + "name":"GetDatalakeExceptionsSubscription", + "http":{ + "method":"GET", + "requestUri":"/v1/datalake/exceptions/subscription", + "responseCode":200 + }, + "input":{"shape":"GetDatalakeExceptionsSubscriptionRequest"}, + "output":{"shape":"GetDatalakeExceptionsSubscriptionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Retrieves the details of exception notifications for the account in Amazon Security Lake.

" + }, + "GetDatalakeStatus":{ + "name":"GetDatalakeStatus", + "http":{ + "method":"POST", + "requestUri":"/v1/datalake/status", + "responseCode":200 + }, + "input":{"shape":"GetDatalakeStatusRequest"}, + "output":{"shape":"GetDatalakeStatusResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Retrieve the Security Lake configuration object for the specified account ID. This API does not take input parameters.

" + }, + "GetSubscriber":{ + "name":"GetSubscriber", + "http":{ + "method":"GET", + "requestUri":"/v1/subscribers/{id}", + "responseCode":200 + }, + "input":{"shape":"GetSubscriberRequest"}, + "output":{"shape":"GetSubscriberResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Retrieves subscription information for the specified subscription ID.

" + }, + "ListDatalakeExceptions":{ + "name":"ListDatalakeExceptions", + "http":{ + "method":"POST", + "requestUri":"/v1/datalake/exceptions", + "responseCode":200 + }, + "input":{"shape":"ListDatalakeExceptionsRequest"}, + "output":{"shape":"ListDatalakeExceptionsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

List the Amazon Security Lake exceptions that you can use to find the source of problems and fix them.

" + }, + "ListLogSources":{ + "name":"ListLogSources", + "http":{ + "method":"POST", + "requestUri":"/v1/logsources/list", + "responseCode":200 + }, + "input":{"shape":"ListLogSourcesRequest"}, + "output":{"shape":"ListLogSourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Lists the log sources in the current region.

" + }, + "ListSubscribers":{ + "name":"ListSubscribers", + "http":{ + "method":"GET", + "requestUri":"/v1/subscribers", + "responseCode":200 + }, + "input":{"shape":"ListSubscribersRequest"}, + "output":{"shape":"ListSubscribersResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

List all subscribers for the specific Security Lake account ID.

" + }, + "UpdateDatalake":{ + "name":"UpdateDatalake", + "http":{ + "method":"PUT", + "requestUri":"/v1/datalake", + "responseCode":200 + }, + "input":{"shape":"UpdateDatalakeRequest"}, + "output":{"shape":"UpdateDatalakeResponse"}, + "errors":[ + {"shape":"EventBridgeException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Amazon Security Lake allows you to specify where to store your security data and for how long. You can specify a rollup Region to consolidate data from multiple regions.

You can update the properties of a Region or source. Input can either be directly specified to the API.

", + "idempotent":true + }, + "UpdateDatalakeExceptionsExpiry":{ + "name":"UpdateDatalakeExceptionsExpiry", + "http":{ + "method":"PUT", + "requestUri":"/v1/datalake/exceptions/expiry", + "responseCode":200 + }, + "input":{"shape":"UpdateDatalakeExceptionsExpiryRequest"}, + "output":{"shape":"UpdateDatalakeExceptionsExpiryResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Update the expiration period for the exception message to your preferred time, and control the time-to-live (TTL) for the exception message to remain. Exceptions are stored by default, for a 2 week period of time from when a record was created in Security Lake.

" + }, + "UpdateDatalakeExceptionsSubscription":{ + "name":"UpdateDatalakeExceptionsSubscription", + "http":{ + "method":"PUT", + "requestUri":"/v1/datalake/exceptions/subscription", + "responseCode":200 + }, + "input":{"shape":"UpdateDatalakeExceptionsSubscriptionRequest"}, + "output":{"shape":"UpdateDatalakeExceptionsSubscriptionResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"} + ], + "documentation":"

Update the subscription notification for exception notification.

" + }, + "UpdateSubscriber":{ + "name":"UpdateSubscriber", + "http":{ + "method":"PUT", + "requestUri":"/v1/subscribers/{id}", + "responseCode":200 + }, + "input":{"shape":"UpdateSubscriberRequest"}, + "output":{"shape":"UpdateSubscriberResponse"}, + "errors":[ + {"shape":"ConflictSubscriptionException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"AccountNotFoundException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Update the subscription permission for the given Security Lake account ID.

", + "idempotent":true + }, + "UpdateSubscriptionNotificationConfiguration":{ + "name":"UpdateSubscriptionNotificationConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/subscription-notifications/{subscriptionId}", + "responseCode":200 + }, + "input":{"shape":"UpdateSubscriptionNotificationConfigurationRequest"}, + "output":{"shape":"UpdateSubscriptionNotificationConfigurationResponse"}, + "errors":[ + {"shape":"ConcurrentModificationException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccountNotFoundException"}, + {"shape":"InvalidInputException"} + ], + "documentation":"

Create a new subscription notification or add the existing subscription notification setting for the specified subscription ID.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization request. An explicit denial occurs when a policy contains a Deny statement for the specific Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also no applicable Allow statement.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AccessType":{ + "type":"string", + "enum":[ + "LAKEFORMATION", + "S3" + ] + }, + "AccessTypeList":{ + "type":"list", + "member":{"shape":"AccessType"} + }, + "AccountList":{ + "type":"list", + "member":{"shape":"String"} + }, + "AccountNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Amazon Security Lake can't find an Amazon Web Services account with the accountID that you specified, or the account whose credentials you used to make this request isn't a member of an organization.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AccountSources":{ + "type":"structure", + "required":[ + "account", + "sourceType" + ], + "members":{ + "account":{ + "shape":"String", + "documentation":"

Account ID of the Security Lake account for which logs are collected.

" + }, + "eventClass":{ + "shape":"OcsfEventClass", + "documentation":"

Initializes a new instance of the Event class.

" + }, + "logsStatus":{ + "shape":"LogsStatusList", + "documentation":"

Log status for the Security Lake account.

" + }, + "sourceType":{ + "shape":"String", + "documentation":"

The supported Amazon Web Services services from which logs and events are collected. Amazon Security Lake supports logs and events collection for natively-supported Amazon Web Services services. For more information, see the Amazon Security Lake User Guide.

" + } + }, + "documentation":"

Security Lake can collect logs and events from supported Amazon Web Services services and custom sources.

" + }, + "AccountSourcesList":{ + "type":"list", + "member":{"shape":"AccountSources"} + }, + "AllDimensionsMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"TwoDimensionsMap"} + }, + "AutoEnableNewRegionConfiguration":{ + "type":"structure", + "required":[ + "region", + "sources" + ], + "members":{ + "region":{ + "shape":"Region", + "documentation":"

The Regions where Security Lake is auto enabled

" + }, + "sources":{ + "shape":"AwsSourceTypeList", + "documentation":"

The Amazon Web Services sources which are auto enabled in Security Lake.

" + } + }, + "documentation":"

Automatically enable new organization accounts as member accounts from a Security Lake administrator account.

" + }, + "AutoEnableNewRegionConfigurationList":{ + "type":"list", + "member":{"shape":"AutoEnableNewRegionConfiguration"} + }, + "AwsAccountId":{ + "type":"string", + "max":12, + "min":12, + "pattern":"^\\d+$" + }, + "AwsLogSourceType":{ + "type":"string", + "enum":[ + "ROUTE53", + "VPC_FLOW", + "CLOUD_TRAIL", + "SH_FINDINGS" + ] + }, + "AwsSourceTypeList":{ + "type":"list", + "member":{"shape":"AwsLogSourceType"} + }, + "Boolean":{ + "type":"boolean", + "box":true + }, + "BucketNotFoundException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Amazon Security Lake generally returns 404 errors if the requested object is missing from the bucket.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ConcurrentModificationException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

More than one process tried to modify a resource at the same time.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":false} + }, + "ConflictException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

A conflict occurred when prompting for the Resource ID.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The resource type.

" + } + }, + "documentation":"

Occurs when a conflict with a previous successful write is detected. This generally occurs when the previous write did not have time to propagate to the host serving the current request. A retry (with appropriate backoff logic) is the recommended response to this exception.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "ConflictSourceNamesException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

There was a conflict when you attempted to modify a Security Lake source name.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ConflictSubscriptionException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

A conflicting subscription exception operation is in progress.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "CreateAwsLogSourceRequest":{ + "type":"structure", + "required":["inputOrder"], + "members":{ + "enableAllDimensions":{ + "shape":"AllDimensionsMap", + "documentation":"

Enables specific sources in all Regions and source types.

" + }, + "enableSingleDimension":{ + "shape":"InputSet", + "documentation":"

Enables all sources in specific accounts or Regions.

" + }, + "enableTwoDimensions":{ + "shape":"TwoDimensionsMap", + "documentation":"

Enables specific service sources in specific accounts or Regions.

" + }, + "inputOrder":{ + "shape":"DimensionSet", + "documentation":"

Specifies the input order to enable dimensions in Security Lake, namely region, source type, and member account.

" + } + } + }, + "CreateAwsLogSourceResponse":{ + "type":"structure", + "members":{ + "failed":{ + "shape":"AccountList", + "documentation":"

List of all accounts in which enabling a natively-supported Amazon Web Services service as a Security Lake failed. The failure occurred as these accounts are not part of an organization.

" + }, + "processing":{ + "shape":"AccountList", + "documentation":"

List of all accounts which are in the process of enabling a natively-supported Amazon Web Services service as a Security Lake.

" + } + } + }, + "CreateCustomLogSourceRequest":{ + "type":"structure", + "required":[ + "customSourceName", + "eventClass", + "glueInvocationRoleArn", + "logProviderAccountId" + ], + "members":{ + "customSourceName":{ + "shape":"CustomSourceType", + "documentation":"

The custom source name for a third-party custom source.

" + }, + "eventClass":{ + "shape":"OcsfEventClass", + "documentation":"

The Open Cybersecurity Schema Framework (OCSF) event class.

" + }, + "glueInvocationRoleArn":{ + "shape":"RoleArn", + "documentation":"

The IAM Role ARN to be used by the Glue Crawler. The recommended IAM policies are:

  • The managed policy AWSGlueServiceRole

  • A custom policy granting access to your S3 Data Lake

" + }, + "logProviderAccountId":{ + "shape":"AwsAccountId", + "documentation":"

The Account ID that will assume the above Role to put logs into the Data Lake.

" + } + } + }, + "CreateCustomLogSourceResponse":{ + "type":"structure", + "required":[ + "customDataLocation", + "glueCrawlerName", + "glueDatabaseName", + "glueTableName", + "logProviderAccessRoleArn" + ], + "members":{ + "customDataLocation":{ + "shape":"String", + "documentation":"

The location of the partition in the Security Lake S3 bucket.

" + }, + "glueCrawlerName":{ + "shape":"String", + "documentation":"

The name of the Glue crawler.

" + }, + "glueDatabaseName":{ + "shape":"String", + "documentation":"

The Glue database where results are written, such as: arn:aws:daylight:us-east-1::database/sometable/*.

" + }, + "glueTableName":{ + "shape":"String", + "documentation":"

The table name of the Glue crawler.

" + }, + "logProviderAccessRoleArn":{ + "shape":"String", + "documentation":"

IAM Role ARN to be used by the entity putting logs into your Custom Source partition. Security Lake will apply the correct access policies to this Role, but this Role must have the trust policy created manually. This Role's name must start with the text 'Security Lake'. It must trust the logProviderAccountId to assume it.

" + } + } + }, + "CreateDatalakeAutoEnableRequest":{ + "type":"structure", + "required":["configurationForNewAccounts"], + "members":{ + "configurationForNewAccounts":{ + "shape":"AutoEnableNewRegionConfigurationList", + "documentation":"

Enable Amazon Security Lake with the specified configurations settings to begin ingesting security data for new accounts in Security Lake.

" + } + } + }, + "CreateDatalakeAutoEnableResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateDatalakeDelegatedAdminRequest":{ + "type":"structure", + "required":["account"], + "members":{ + "account":{ + "shape":"SafeString", + "documentation":"

Account ID of the Security Lake delegated administrator.

" + } + } + }, + "CreateDatalakeDelegatedAdminResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateDatalakeExceptionsSubscriptionRequest":{ + "type":"structure", + "required":[ + "notificationEndpoint", + "subscriptionProtocol" + ], + "members":{ + "notificationEndpoint":{ + "shape":"SafeString", + "documentation":"

The account in which the exception notifications subscription is created.

" + }, + "subscriptionProtocol":{ + "shape":"SubscriptionProtocolType", + "documentation":"

The subscription protocol to which exception messages are posted.

" + } + } + }, + "CreateDatalakeExceptionsSubscriptionResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateDatalakeRequest":{ + "type":"structure", + "members":{ + "configurations":{ + "shape":"LakeConfigurationRequestMap", + "documentation":"

Enable Security Lake with the specified configurations settings to begin ingesting security data.

" + }, + "enableAll":{ + "shape":"Boolean", + "documentation":"

Enable Security Lake in all Regions to begin ingesting security data.

" + }, + "metaStoreManagerRoleArn":{ + "shape":"RoleArn", + "documentation":"

The Role ARN used to create and update the Glue table with partitions generated by ingestion and normalization of Amazon Web Services log sources and custom sources.

" + }, + "regions":{ + "shape":"RegionSet", + "documentation":"

Enable Security Lake in the specified Regions to begin ingesting security data. To enable Security Lake in specific Amazon Web Services Regions, such as us-east-1 or ap-northeast-3, provide the Region codes. For a list of Region codes, see Region codes in the Amazon Web Services General Reference.

" + } + } + }, + "CreateDatalakeResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateSubscriberRequest":{ + "type":"structure", + "required":[ + "accountId", + "externalId", + "sourceTypes", + "subscriberName" + ], + "members":{ + "accessTypes":{ + "shape":"AccessTypeList", + "documentation":"

The Amazon S3 or Lake Formation access type.

" + }, + "accountId":{ + "shape":"AwsAccountId", + "documentation":"

The third party Amazon Web Services account ID used to access your data.

" + }, + "externalId":{ + "shape":"SafeString", + "documentation":"

The external ID of the subscriber. External ID allows the user that is assuming the role to assert the circumstances in which they are operating. It also provides a way for the account owner to permit the role to be assumed only under specific circumstances.

" + }, + "sourceTypes":{ + "shape":"SourceTypeList", + "documentation":"

The supported Amazon Web Services services from which logs and events are collected. Amazon Security Lake supports logs and events collection for natively-supported Amazon Web Services services.

" + }, + "subscriberDescription":{ + "shape":"SafeString", + "documentation":"

The subscriber descriptions for the subscriber account in Amazon Security Lake.

" + }, + "subscriberName":{ + "shape":"CreateSubscriberRequestSubscriberNameString", + "documentation":"

The name of your Amazon Security Lake subscriber account.

" + } + } + }, + "CreateSubscriberRequestSubscriberNameString":{ + "type":"string", + "max":64, + "min":0 + }, + "CreateSubscriberResponse":{ + "type":"structure", + "required":["subscriptionId"], + "members":{ + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) created by the user to provide to the subscriber. For more information about ARNs and how to use them in policies, see IAM identifiers in the IAM User Guide.

" + }, + "s3BucketArn":{ + "shape":"S3BucketArn", + "documentation":"

The Amazon Resource Name (ARN) for the Amazon S3 bucket.

" + }, + "snsArn":{ + "shape":"SnsTopicArn", + "documentation":"

The Amazon Resource Name (ARN) for the Amazon Simple Notification Service.

" + }, + "subscriptionId":{ + "shape":"UUID", + "documentation":"

The subscriptionId that was created by the CreateSubscriber API call.

" + } + } + }, + "CreateSubscriptionNotificationConfigurationRequest":{ + "type":"structure", + "required":["subscriptionId"], + "members":{ + "createSqs":{ + "shape":"Boolean", + "documentation":"

Create a new subscription notification for the specified subscription ID in Security Lake.

" + }, + "httpsApiKeyName":{ + "shape":"String", + "documentation":"

The key name for the subscription notification.

" + }, + "httpsApiKeyValue":{ + "shape":"String", + "documentation":"

The key value for the subscription notification.

" + }, + "httpsMethod":{ + "shape":"HttpsMethod", + "documentation":"

The HTTPS method used for the subscription notification.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) specifying the role of the subscriber.

" + }, + "subscriptionEndpoint":{ + "shape":"CreateSubscriptionNotificationConfigurationRequestSubscriptionEndpointString", + "documentation":"

The subscription endpoint in Security Lake.

" + }, + "subscriptionId":{ + "shape":"UUID", + "documentation":"

The subscription ID for which the subscription notification is specified.

", + "location":"uri", + "locationName":"subscriptionId" + } + } + }, + "CreateSubscriptionNotificationConfigurationRequestSubscriptionEndpointString":{ + "type":"string", + "pattern":"^(arn:aws:.+$|https?://.+$)" + }, + "CreateSubscriptionNotificationConfigurationResponse":{ + "type":"structure", + "members":{ + "queueArn":{ + "shape":"SafeString", + "documentation":"

Returns the Amazon resource name (ARN) of the queue.

" + } + } + }, + "CustomSourceType":{ + "type":"string", + "pattern":"^[\\\\\\w\\-_:/.]*$" + }, + "DeleteAwsLogSourceRequest":{ + "type":"structure", + "required":["inputOrder"], + "members":{ + "disableAllDimensions":{ + "shape":"AllDimensionsMap", + "documentation":"

Removes the specific Amazon Web Services sources from all Regions and source types.

" + }, + "disableSingleDimension":{ + "shape":"InputSet", + "documentation":"

Removes all Amazon Web Services sources from specific accounts or Regions.

" + }, + "disableTwoDimensions":{ + "shape":"TwoDimensionsMap", + "documentation":"

Remove a specific Amazon Web Services source from specific accounts or Regions.

" + }, + "inputOrder":{ + "shape":"DimensionSet", + "documentation":"

This is a mandatory input. Specifies the input order to disable dimensions in Security Lake, namely Region, source type, and member.

" + } + } + }, + "DeleteAwsLogSourceResponse":{ + "type":"structure", + "members":{ + "failed":{ + "shape":"AccountList", + "documentation":"

Deletion of the Amazon Web Services sources failed as the account is not a part of the organization.

" + }, + "processing":{ + "shape":"AccountList", + "documentation":"

Deletion of the Amazon Web Services sources is in-progress.

" + } + } + }, + "DeleteCustomLogSourceRequest":{ + "type":"structure", + "required":["customSourceName"], + "members":{ + "customSourceName":{ + "shape":"String", + "documentation":"

The custom source name for the custome log source.

", + "location":"querystring", + "locationName":"customSourceName" + } + } + }, + "DeleteCustomLogSourceResponse":{ + "type":"structure", + "required":["customDataLocation"], + "members":{ + "customDataLocation":{ + "shape":"String", + "documentation":"

The location of the partition in the Security Lake S3 bucket.

" + } + } + }, + "DeleteDatalakeAutoEnableRequest":{ + "type":"structure", + "required":["removeFromConfigurationForNewAccounts"], + "members":{ + "removeFromConfigurationForNewAccounts":{ + "shape":"AutoEnableNewRegionConfigurationList", + "documentation":"

Delete Amazon Security Lake with the specified configurations settings to stop ingesting security data for new accounts in Security Lake.

" + } + } + }, + "DeleteDatalakeAutoEnableResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteDatalakeDelegatedAdminRequest":{ + "type":"structure", + "required":["account"], + "members":{ + "account":{ + "shape":"SafeString", + "documentation":"

Account ID the Security Lake delegated administrator.

", + "location":"uri", + "locationName":"account" + } + } + }, + "DeleteDatalakeDelegatedAdminResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteDatalakeExceptionsSubscriptionRequest":{ + "type":"structure", + "members":{ + } + }, + "DeleteDatalakeExceptionsSubscriptionResponse":{ + "type":"structure", + "required":["status"], + "members":{ + "status":{ + "shape":"SafeString", + "documentation":"

Retrieves the status of the delete Security Lake operation for an account.

" + } + } + }, + "DeleteDatalakeRequest":{ + "type":"structure", + "members":{ + } + }, + "DeleteDatalakeResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteSubscriberRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"String", + "documentation":"

A value created by Security Lake that uniquely identifies your DeleteSubscriber API request.

", + "location":"querystring", + "locationName":"id" + } + } + }, + "DeleteSubscriberResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteSubscriptionNotificationConfigurationRequest":{ + "type":"structure", + "required":["subscriptionId"], + "members":{ + "subscriptionId":{ + "shape":"UUID", + "documentation":"

The subscription ID of the Amazon Security Lake subscriber account.

", + "location":"uri", + "locationName":"subscriptionId" + } + } + }, + "DeleteSubscriptionNotificationConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, + "Dimension":{ + "type":"string", + "enum":[ + "REGION", + "SOURCE_TYPE", + "MEMBER" + ] + }, + "DimensionSet":{ + "type":"list", + "member":{"shape":"Dimension"} + }, + "EndpointProtocol":{ + "type":"string", + "enum":[ + "HTTPS", + "SQS" + ] + }, + "EventBridgeException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Represents an error interacting with the Amazon EventBridge service.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "Failures":{ + "type":"structure", + "required":[ + "exceptionMessage", + "remediation", + "timestamp" + ], + "members":{ + "exceptionMessage":{ + "shape":"SafeString", + "documentation":"

List of all exception messages.

" + }, + "remediation":{ + "shape":"SafeString", + "documentation":"

List of all remediation steps for failures.

" + }, + "timestamp":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

This error can occur if you configure the wrong timestamp format, or if the subset of entries used for validation had errors or missing values.

" + } + }, + "documentation":"

List of all failures.

" + }, + "FailuresResponse":{ + "type":"structure", + "members":{ + "failures":{ + "shape":"Failureslist", + "documentation":"

List of all failures.

" + }, + "region":{ + "shape":"SafeString", + "documentation":"

List of Regions where the failure occurred.

" + } + }, + "documentation":"

Response element for actions which make changes namely create, update, or delete actions.

" + }, + "FailuresResponseList":{ + "type":"list", + "member":{"shape":"FailuresResponse"} + }, + "Failureslist":{ + "type":"list", + "member":{"shape":"Failures"} + }, + "GetDatalakeAutoEnableRequest":{ + "type":"structure", + "members":{ + } + }, + "GetDatalakeAutoEnableResponse":{ + "type":"structure", + "required":["autoEnableNewAccounts"], + "members":{ + "autoEnableNewAccounts":{ + "shape":"AutoEnableNewRegionConfigurationList", + "documentation":"

The configuration for new accounts.

" + } + } + }, + "GetDatalakeExceptionsExpiryRequest":{ + "type":"structure", + "members":{ + } + }, + "GetDatalakeExceptionsExpiryResponse":{ + "type":"structure", + "required":["exceptionMessageExpiry"], + "members":{ + "exceptionMessageExpiry":{ + "shape":"Long", + "documentation":"

The expiration period and time-to-live (TTL).

" + } + } + }, + "GetDatalakeExceptionsSubscriptionRequest":{ + "type":"structure", + "members":{ + } + }, + "GetDatalakeExceptionsSubscriptionResponse":{ + "type":"structure", + "required":["protocolAndNotificationEndpoint"], + "members":{ + "protocolAndNotificationEndpoint":{ + "shape":"ProtocolAndNotificationEndpoint", + "documentation":"

Retrieves the exception notification subscription information.

" + } + } + }, + "GetDatalakeRequest":{ + "type":"structure", + "members":{ + } + }, + "GetDatalakeResponse":{ + "type":"structure", + "required":["configurations"], + "members":{ + "configurations":{ + "shape":"LakeConfigurationResponseMap", + "documentation":"

Retrieves the Security Lake configuration object.

" + } + } + }, + "GetDatalakeStatusRequest":{ + "type":"structure", + "members":{ + "accountSet":{ + "shape":"InputSet", + "documentation":"

The account IDs for which a static snapshot of the current Region, including enabled accounts and log sources is retrieved.

" + }, + "maxAccountResults":{ + "shape":"Integer", + "documentation":"

The maximum limit of accounts for which the static snapshot of the current Region including enabled accounts and log sources is retrieved.

" + }, + "nextToken":{ + "shape":"SafeString", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + } + } + }, + "GetDatalakeStatusResponse":{ + "type":"structure", + "required":["accountSourcesList"], + "members":{ + "accountSourcesList":{ + "shape":"AccountSourcesList", + "documentation":"

The list of enabled accounts and enabled sources.

" + }, + "nextToken":{ + "shape":"SafeString", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + } + } + }, + "GetSubscriberRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "id":{ + "shape":"String", + "documentation":"

A value created by Security Lake that uniquely identifies your GetSubscriber API request.

", + "location":"uri", + "locationName":"id" + } + } + }, + "GetSubscriberResponse":{ + "type":"structure", + "members":{ + "subscriber":{ + "shape":"SubscriberResource", + "documentation":"

Subscription information for the specified subscription ID

" + } + } + }, + "HttpsMethod":{ + "type":"string", + "enum":[ + "POST", + "PUT" + ] + }, + "InputSet":{ + "type":"list", + "member":{"shape":"SafeString"} + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

Retry the request after the specified time.

", + "location":"header", + "locationName":"Retry-After" + } + }, + "documentation":"

Internal service exceptions are sometimes caused by transient issues. Before you start troubleshooting, perform the operation again.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true, + "retryable":{"throttling":false} + }, + "InvalidInputException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

The request was rejected because an invalid or out-of-range value was supplied for an input parameter.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "LakeConfigurationRequest":{ + "type":"structure", + "members":{ + "encryptionKey":{ + "shape":"String", + "documentation":"

The type of encryption key used by Security Lake to encrypt the lake configuration object.

" + }, + "replicationDestinationRegions":{ + "shape":"RegionSet", + "documentation":"

Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. Amazon S3 buckets that are configured for object replication can be owned by the same Amazon Web Services account or by different accounts. You can replicate objects to a single destination bucket or to multiple destination buckets. The destination buckets can be in different Amazon Web Services Regions or within the same Region as the source bucket.

Set up one or more rollup Regions by providing the Region or Regions that should contribute to the central rollup Region.

" + }, + "replicationRoleArn":{ + "shape":"RoleArn", + "documentation":"

Replication settings for the Amazon S3 buckets. This parameter uses the IAM role created by you that is managed by Security Lake, to ensure the replication setting is correct.

" + }, + "retentionSettings":{ + "shape":"RetentionSettingList", + "documentation":"

Retention settings for the destination Amazon S3 buckets.

" + }, + "tagsMap":{ + "shape":"TagsMap", + "documentation":"

A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value, both of which you define.

" + } + }, + "documentation":"

Provides details of lake configuration object in Amazon Security Lake.

" + }, + "LakeConfigurationRequestMap":{ + "type":"map", + "key":{"shape":"Region"}, + "value":{"shape":"LakeConfigurationRequest"} + }, + "LakeConfigurationResponse":{ + "type":"structure", + "members":{ + "encryptionKey":{ + "shape":"String", + "documentation":"

The type of encryption key used by Security Lake to encrypt the lake configuration

" + }, + "replicationDestinationRegions":{ + "shape":"RegionSet", + "documentation":"

Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. Amazon S3 buckets that are configured for object replication can be owned by the same AWS account or by different accounts. You can replicate objects to a single destination bucket or to multiple destination buckets. The destination buckets can be in different Amazon Web Services Regions or within the same Region as the source bucket.

Set up one or more rollup Regions by providing the Region or Regions that should contribute to the central rollup Region.

" + }, + "replicationRoleArn":{ + "shape":"RoleArn", + "documentation":"

Replication settings for the Amazon S3 buckets. This parameter uses the IAM role created by you that is managed by Security Lake, to ensure the replication setting is correct.

" + }, + "retentionSettings":{ + "shape":"RetentionSettingList", + "documentation":"

Retention settings for the destination Amazon S3 buckets.

" + }, + "s3BucketArn":{ + "shape":"S3BucketArn", + "documentation":"

Amazon Resource Names (ARNs) uniquely identify Amazon Web Services resources. Security Lake requires an ARN when you need to specify a resource unambiguously across all of Amazon Web Services, such as in IAM policies, Amazon Relational Database Service (Amazon RDS) tags, and API calls.

" + }, + "status":{ + "shape":"settingsStatus", + "documentation":"

Retrieves the status of the configuration operation for an account in Amazon Security Lake.

" + }, + "tagsMap":{ + "shape":"TagsMap", + "documentation":"

A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value, both of which you define.

" + } + }, + "documentation":"

Provides details of lake configuration object in Amazon Security Lake.

" + }, + "LakeConfigurationResponseMap":{ + "type":"map", + "key":{"shape":"Region"}, + "value":{"shape":"LakeConfigurationResponse"} + }, + "ListDatalakeExceptionsRequest":{ + "type":"structure", + "members":{ + "maxFailures":{ + "shape":"Integer", + "documentation":"

List the maximum number of failures in Security Lake.

" + }, + "nextToken":{ + "shape":"SafeString", + "documentation":"

List if there are more results available. if nextToken is returned, You can make the call again using the returned token to retrieve the next page

" + }, + "regionSet":{ + "shape":"RegionSet", + "documentation":"

List the regions from which exceptions are retrieved.

" + } + } + }, + "ListDatalakeExceptionsResponse":{ + "type":"structure", + "required":["nonRetryableFailures"], + "members":{ + "nextToken":{ + "shape":"SafeString", + "documentation":"

List if there are more results available. if nextToken is returned, You can make the call again using the returned token to retrieve the next page

" + }, + "nonRetryableFailures":{ + "shape":"FailuresResponseList", + "documentation":"

Lists the non-retryable failures in the current region.

" + } + } + }, + "ListLogSourcesRequest":{ + "type":"structure", + "members":{ + "inputOrder":{ + "shape":"DimensionSet", + "documentation":"

Lists the log sources in input order, namely Region, source type, and member account.

" + }, + "listAllDimensions":{ + "shape":"AllDimensionsMap", + "documentation":"

List the view of log sources for enabled Security Lake accounts in all Regions and source types.

" + }, + "listSingleDimension":{ + "shape":"InputSet", + "documentation":"

List the view of log sources for enabled Security Lake accounts for the entire region.

" + }, + "listTwoDimensions":{ + "shape":"TwoDimensionsMap", + "documentation":"

Lists the log sources for the specified source types in enabled Security Lake accounts for the entire Region, for selected member accounts.

" + }, + "maxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of accounts for which the configuration is displayed.

" + }, + "nextToken":{ + "shape":"SafeString", + "documentation":"

If nextToken is returned, there are more results available. You can make the call again using the returned token to retrieve the next page.

" + } + } + }, + "ListLogSourcesResponse":{ + "type":"structure", + "required":["regionSourceTypesAccountsList"], + "members":{ + "nextToken":{ + "shape":"String", + "documentation":"

If nextToken is returned, there are more results available. You can make the call again using the returned token to retrieve the next page.

" + }, + "regionSourceTypesAccountsList":{ + "shape":"RegionSourceTypesAccountsList", + "documentation":"

Lists the log sources in the Regions for enabled Security Lake accounts.

" + } + } + }, + "ListSubscribersRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"Integer", + "documentation":"

The maximum number of accounts for which the configuration is displayed.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"SafeString", + "documentation":"

If nextToken is returned, there are more results available. You can make the call again using the returned token to retrieve the next page.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListSubscribersResponse":{ + "type":"structure", + "required":["subscribers"], + "members":{ + "nextToken":{ + "shape":"SafeString", + "documentation":"

If nextToken is returned, there are more results available. You can make the call again using the returned token to retrieve the next page.

" + }, + "subscribers":{ + "shape":"SubscriberList", + "documentation":"

The subscribers available in the specified Security Lake account ID.

" + } + } + }, + "LogsStatus":{ + "type":"structure", + "required":[ + "healthStatus", + "pathToLogs" + ], + "members":{ + "healthStatus":{ + "shape":"SourceStatus", + "documentation":"

Health status of services including error codes and patterns.

" + }, + "pathToLogs":{ + "shape":"String", + "documentation":"

Defines path the stored logs are available which has information on your systems, applications, and services.

" + } + }, + "documentation":"

Log status for the Security Lake account.

" + }, + "LogsStatusList":{ + "type":"list", + "member":{"shape":"LogsStatus"} + }, + "Long":{ + "type":"long", + "box":true + }, + "OcsfEventClass":{ + "type":"string", + "enum":[ + "ACCESS_ACTIVITY", + "FILE_ACTIVITY", + "KERNEL_ACTIVITY", + "KERNEL_EXTENSION", + "MEMORY_ACTIVITY", + "MODULE_ACTIVITY", + "PROCESS_ACTIVITY", + "REGISTRY_KEY_ACTIVITY", + "REGISTRY_VALUE_ACTIVITY", + "RESOURCE_ACTIVITY", + "SCHEDULED_JOB_ACTIVITY", + "SECURITY_FINDING", + "ACCOUNT_CHANGE", + "AUTHENTICATION", + "AUTHORIZATION", + "ENTITY_MANAGEMENT_AUDIT", + "DHCP_ACTIVITY", + "NETWORK_ACTIVITY", + "DNS_ACTIVITY", + "FTP_ACTIVITY", + "HTTP_ACTIVITY", + "RDP_ACTIVITY", + "SMB_ACTIVITY", + "SSH_ACTIVITY", + "CLOUD_API", + "CONTAINER_LIFECYCLE", + "DATABASE_LIFECYCLE", + "CONFIG_STATE", + "CLOUD_STORAGE", + "INVENTORY_INFO", + "RFB_ACTIVITY", + "SMTP_ACTIVITY", + "VIRTUAL_MACHINE_ACTIVITY" + ] + }, + "ProtocolAndNotificationEndpoint":{ + "type":"structure", + "members":{ + "endpoint":{ + "shape":"SafeString", + "documentation":"

The account which is subscribed to receive exception notifications.

" + }, + "protocol":{ + "shape":"SafeString", + "documentation":"

The protocol to which notification messages are posted.

" + } + }, + "documentation":"

Notifications in Security Lake which dictates how notifications are posted at the endpoint.

" + }, + "Region":{ + "type":"string", + "enum":[ + "us-east-1", + "us-west-2", + "eu-central-1", + "us-east-2", + "eu-west-1", + "ap-northeast-1", + "ap-southeast-2" + ] + }, + "RegionSet":{ + "type":"list", + "member":{"shape":"Region"} + }, + "RegionSourceTypesAccountsList":{ + "type":"list", + "member":{"shape":"AllDimensionsMap"} + }, + "ResourceNotFoundException":{ + "type":"structure", + "required":[ + "message", + "resourceId", + "resourceType" + ], + "members":{ + "message":{"shape":"String"}, + "resourceId":{ + "shape":"String", + "documentation":"

The ID of the resource for which the type of resource could not be found.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of the resource that could not be found.

" + } + }, + "documentation":"

The resource could not be found.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RetentionSetting":{ + "type":"structure", + "members":{ + "retentionPeriod":{ + "shape":"RetentionSettingRetentionPeriodInteger", + "documentation":"

The retention period specifies a fixed period of time during which the Security Lake object remains locked. You can specify the retention period for one or more source in days.

" + }, + "storageClass":{ + "shape":"StorageClass", + "documentation":"

The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads.

" + } + }, + "documentation":"

Retention settings for the destination Amazon S3 buckets in Security Lake.

" + }, + "RetentionSettingList":{ + "type":"list", + "member":{"shape":"RetentionSetting"} + }, + "RetentionSettingRetentionPeriodInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "RoleArn":{ + "type":"string", + "pattern":"^arn:.*" + }, + "S3BucketArn":{"type":"string"}, + "S3Exception":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"} + }, + "documentation":"

Provides an extension of the AmazonServiceException for errors reported by Amazon S3 while processing a request. In particular, this class provides access to Amazon S3's extended request ID. This ID is required debugging information in the case the user needs to contact Amazon about an issue where Amazon S3 is incorrectly handling a request.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "SafeString":{ + "type":"string", + "pattern":"^[\\\\\\w\\-_:/.@=+]*$" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "required":[ + "message", + "quotaCode", + "resourceId", + "resourceType", + "serviceCode" + ], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

That the rate of requests to Security Lake is exceeding the request quotas for your Amazon Web Services account.

" + }, + "resourceId":{ + "shape":"String", + "documentation":"

The ID of the resource that exceeds the service quota.

" + }, + "resourceType":{ + "shape":"String", + "documentation":"

The type of the resource that exceeds the service quota.

" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

The code for the service in Service Quotas.

" + } + }, + "documentation":"

You have exceeded your service quota. To perform the requested action, remove some of the relevant resources, or use Service Quotas to request a service quota increase.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SnsTopicArn":{"type":"string"}, + "SourceStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "DEACTIVATED", + "PENDING" + ] + }, + "SourceType":{ + "type":"structure", + "members":{ + "awsSourceType":{ + "shape":"AwsLogSourceType", + "documentation":"

Amazon Security Lake supports logs and events collection for natively-supported Amazon Web Services services. For more information, see the Amazon Security Lake User Guide.

" + }, + "customSourceType":{ + "shape":"CustomSourceType", + "documentation":"

Amazon Security Lake supports custom source types. For the detailed list, see the Amazon Security Lake User Guide.

" + } + }, + "documentation":"

The supported source types from which logs and events are collected in Amazon Security Lake.

", + "union":true + }, + "SourceTypeList":{ + "type":"list", + "member":{"shape":"SourceType"} + }, + "StorageClass":{ + "type":"string", + "enum":[ + "STANDARD_IA", + "ONEZONE_IA", + "INTELLIGENT_TIERING", + "GLACIER_IR", + "GLACIER", + "DEEP_ARCHIVE", + "EXPIRE" + ] + }, + "String":{"type":"string"}, + "SubscriberList":{ + "type":"list", + "member":{"shape":"SubscriberResource"} + }, + "SubscriberResource":{ + "type":"structure", + "required":[ + "accountId", + "sourceTypes", + "subscriptionId" + ], + "members":{ + "accessTypes":{ + "shape":"AccessTypeList", + "documentation":"

You can choose to notify subscribers of new objects with an Amazon Simple Queue Service (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the subscriber.

Subscribers can consume data by directly querying Lake Formation tables in your S3 bucket via services like Amazon Athena. This subscription type is defined as LAKEFORMATION.

" + }, + "accountId":{ + "shape":"AwsAccountId", + "documentation":"

The Amazon Web Services account ID of the account that you are using to create your Amazon Security Lake account.

" + }, + "createdAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the subscription was created.

" + }, + "externalId":{ + "shape":"SafeString", + "documentation":"

The external ID of the subscriber. External ID allows the user that is assuming the role to assert the circumstances in which they are operating. It also provides a way for the account owner to permit the role to be assumed only under specific circumstances.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) specifying the role of the subscriber.

" + }, + "s3BucketArn":{ + "shape":"S3BucketArn", + "documentation":"

The Amazon Resource Name (ARN) for the Amazon S3 bucket.

" + }, + "snsArn":{ + "shape":"SnsTopicArn", + "documentation":"

The Amazon Resource Name (ARN) for the Amazon Simple Notification Service.

" + }, + "sourceTypes":{ + "shape":"SourceTypeList", + "documentation":"

Amazon Security Lake supports logs and events collection for the natively-supported Amazon Web Services services. For more information, see the Amazon Security Lake User Guide.

" + }, + "subscriberDescription":{ + "shape":"SafeString", + "documentation":"

The subscriber descriptions for a subscriber account. The description for a subscriber includes subscriberName, accountID, externalID, and subscriptionId.

" + }, + "subscriberName":{ + "shape":"SafeString", + "documentation":"

The name of your Amazon Security Lake subscriber account.

" + }, + "subscriptionEndpoint":{ + "shape":"String", + "documentation":"

The subscription endpoint to which exception messages are posted.

" + }, + "subscriptionId":{ + "shape":"UUID", + "documentation":"

The subscription ID of the Amazon Security Lake subscriber account.

" + }, + "subscriptionProtocol":{ + "shape":"EndpointProtocol", + "documentation":"

The subscription protocol to which exception messages are posted.

" + }, + "subscriptionStatus":{ + "shape":"SubscriptionStatus", + "documentation":"

Subscription status of the Amazon Security Lake subscriber account.

" + }, + "updatedAt":{ + "shape":"SyntheticTimestamp_date_time", + "documentation":"

The date and time when the subscription was created.

" + } + }, + "documentation":"

Provides details of the Amazon Security Lake account subscription. Subscribers are notified of new objects for a source as the data is written to your Amazon Security Lake S3 bucket.

" + }, + "SubscriptionProtocolType":{ + "type":"string", + "enum":[ + "HTTP", + "HTTPS", + "EMAIL", + "EMAIL_JSON", + "SMS", + "SQS", + "LAMBDA", + "APP", + "FIREHOSE" + ] + }, + "SubscriptionStatus":{ + "type":"string", + "enum":[ + "ACTIVE", + "DEACTIVATED", + "PENDING", + "READY" + ] + }, + "SyntheticTimestamp_date_time":{ + "type":"timestamp", + "timestampFormat":"iso8601" + }, + "TagsMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "ThrottlingException":{ + "type":"structure", + "required":["message"], + "members":{ + "message":{"shape":"String"}, + "quotaCode":{ + "shape":"String", + "documentation":"

That the rate of requests to Security Lake is exceeding the request quotas for your Amazon Web Services account.

" + }, + "retryAfterSeconds":{ + "shape":"Integer", + "documentation":"

Retry the request after the specified time.

", + "location":"header", + "locationName":"Retry-After" + }, + "serviceCode":{ + "shape":"String", + "documentation":"

The code for the service in Service Quotas.

" + } + }, + "documentation":"

The limit on the number of requests per second was exceeded.

", + "error":{ + "httpStatusCode":429, + "senderFault":true + }, + "exception":true, + "retryable":{"throttling":true} + }, + "TwoDimensionsMap":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"ValueSet"} + }, + "UUID":{ + "type":"string", + "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, + "UpdateDatalakeExceptionsExpiryRequest":{ + "type":"structure", + "required":["exceptionMessageExpiry"], + "members":{ + "exceptionMessageExpiry":{ + "shape":"UpdateDatalakeExceptionsExpiryRequestExceptionMessageExpiryLong", + "documentation":"

The time-to-live (TTL) for the exception message to remain.

" + } + } + }, + "UpdateDatalakeExceptionsExpiryRequestExceptionMessageExpiryLong":{ + "type":"long", + "box":true, + "min":1 + }, + "UpdateDatalakeExceptionsExpiryResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateDatalakeExceptionsSubscriptionRequest":{ + "type":"structure", + "required":[ + "notificationEndpoint", + "subscriptionProtocol" + ], + "members":{ + "notificationEndpoint":{ + "shape":"SafeString", + "documentation":"

The account which is subscribed to receive exception notifications.

" + }, + "subscriptionProtocol":{ + "shape":"SubscriptionProtocolType", + "documentation":"

The subscription protocol to which exception messages are posted.

" + } + } + }, + "UpdateDatalakeExceptionsSubscriptionResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateDatalakeRequest":{ + "type":"structure", + "required":["configurations"], + "members":{ + "configurations":{ + "shape":"LakeConfigurationRequestMap", + "documentation":"

The configuration object

" + } + } + }, + "UpdateDatalakeResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateSubscriberRequest":{ + "type":"structure", + "required":["id"], + "members":{ + "externalId":{ + "shape":"SafeString", + "documentation":"

External ID of the Security Lake account.

" + }, + "id":{ + "shape":"String", + "documentation":"

A value created by Security Lake that uniquely identifies your UpdateSubscriber API request.

", + "location":"uri", + "locationName":"id" + }, + "sourceTypes":{ + "shape":"SourceTypeList", + "documentation":"

The supported Amazon Web Services services from which logs and events are collected. Amazon Security Lake supports logs and events collection for the following natively-supported Amazon Web Services services. For more information, see the Amazon Security Lake User Guide.

" + }, + "subscriberDescription":{ + "shape":"SafeString", + "documentation":"

Description of the Security Lake account subscriber.

" + }, + "subscriberName":{ + "shape":"UpdateSubscriberRequestSubscriberNameString", + "documentation":"

Name of the Security Lake account subscriber.

" + } + } + }, + "UpdateSubscriberRequestSubscriberNameString":{ + "type":"string", + "max":64, + "min":0, + "pattern":"^[\\\\\\w\\-_:/.@=+]*$" + }, + "UpdateSubscriberResponse":{ + "type":"structure", + "members":{ + "subscriber":{ + "shape":"SubscriberResource", + "documentation":"

The account subscriber in Amazon Security Lake.

" + } + } + }, + "UpdateSubscriptionNotificationConfigurationRequest":{ + "type":"structure", + "required":["subscriptionId"], + "members":{ + "createSqs":{ + "shape":"Boolean", + "documentation":"

Create a new subscription notification for the specified subscription ID in Security Lake.

" + }, + "httpsApiKeyName":{ + "shape":"String", + "documentation":"

The key name for the subscription notification.

" + }, + "httpsApiKeyValue":{ + "shape":"String", + "documentation":"

The key value for the subscription notification.

" + }, + "httpsMethod":{ + "shape":"HttpsMethod", + "documentation":"

The HTTPS method used for the subscription notification.

" + }, + "roleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) specifying the role of the subscriber.

" + }, + "subscriptionEndpoint":{ + "shape":"UpdateSubscriptionNotificationConfigurationRequestSubscriptionEndpointString", + "documentation":"

The subscription endpoint in Security Lake.

" + }, + "subscriptionId":{ + "shape":"UUID", + "documentation":"

The subscription ID for which the subscription notification is specified.

", + "location":"uri", + "locationName":"subscriptionId" + } + } + }, + "UpdateSubscriptionNotificationConfigurationRequestSubscriptionEndpointString":{ + "type":"string", + "pattern":"^(arn:aws:.+$|https?://.+$)" + }, + "UpdateSubscriptionNotificationConfigurationResponse":{ + "type":"structure", + "members":{ + "queueArn":{ + "shape":"SafeString", + "documentation":"

Returns the Amazon resource name (ARN) of the queue.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "required":[ + "message", + "reason" + ], + "members":{ + "fieldList":{ + "shape":"ValidationExceptionFieldList", + "documentation":"

The list of parameters that failed to validate.

" + }, + "message":{"shape":"String"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

The reason for the validation exception.

" + } + }, + "documentation":"

Your signing certificate could not be validated.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "ValidationExceptionField":{ + "type":"structure", + "required":[ + "message", + "name" + ], + "members":{ + "message":{ + "shape":"String", + "documentation":"

Describes the error encountered.

" + }, + "name":{ + "shape":"String", + "documentation":"

Name of the validation exception.

" + } + }, + "documentation":"

The input fails to meet the constraints specified in Amazon Security Lake

" + }, + "ValidationExceptionFieldList":{ + "type":"list", + "member":{"shape":"ValidationExceptionField"} + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "unknownOperation", + "cannotParse", + "fieldValidationFailed", + "other" + ] + }, + "ValueSet":{ + "type":"list", + "member":{"shape":"String"} + }, + "settingsStatus":{ + "type":"string", + "enum":[ + "INITIALIZED", + "PENDING", + "COMPLETED", + "FAILED" + ] + } + }, + "documentation":"

Amazon Security Lake is in preview release. Your use of the Amazon Security Lake preview is subject to Section 2 of the Amazon Web Services Service Terms(\"Betas and Previews\").

Amazon Security Lake is a fully-managed security data lake service. You can use Security Lake to automatically centralize security data from cloud, on-premises, and custom sources into a data lake that's stored in your account. Security Lake helps you analyze security data, so you can get a more complete understanding of your security posture across the entire organization and improve the protection of your workloads, applications, and data.

The data lake is backed by Amazon Simple Storage Service (Amazon S3) buckets, and you retain ownership over your data.

Security Lake automates the collection of security-related log and event data from integrated Amazon Web Services. and third-party services and manages the lifecycle of data with customizable retention and replication settings. Security Lake also converts ingested data into Apache Parquet format and a standard open-source schema called the Open Cybersecurity Schema Framework (OCSF).

Other Amazon Web Services and third-party services can subscribe to the data that's stored in Security Lake for incident response and security data analytics.

" +} diff --git a/botocore/data/serverlessrepo/2017-09-08/endpoint-rule-set-1.json b/botocore/data/serverlessrepo/2017-09-08/endpoint-rule-set-1.json new file mode 100644 index 00000000..3538f6ca --- /dev/null +++ b/botocore/data/serverlessrepo/2017-09-08/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://serverlessrepo-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://serverlessrepo-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://serverlessrepo.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://serverlessrepo.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/service-quotas/2019-06-24/endpoint-rule-set-1.json b/botocore/data/service-quotas/2019-06-24/endpoint-rule-set-1.json new file mode 100644 index 00000000..05489b7f --- /dev/null +++ b/botocore/data/service-quotas/2019-06-24/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicequotas-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://servicequotas.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://servicequotas-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicequotas.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://servicequotas.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/service-quotas/2019-06-24/examples-1.json b/botocore/data/service-quotas/2019-06-24/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/service-quotas/2019-06-24/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/servicecatalog-appregistry/2020-06-24/endpoint-rule-set-1.json b/botocore/data/servicecatalog-appregistry/2020-06-24/endpoint-rule-set-1.json new file mode 100644 index 00000000..e2b677e6 --- /dev/null +++ b/botocore/data/servicecatalog-appregistry/2020-06-24/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://servicecatalog-appregistry.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-appregistry.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-appregistry.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/servicecatalog-appregistry/2020-06-24/examples-1.json b/botocore/data/servicecatalog-appregistry/2020-06-24/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/servicecatalog-appregistry/2020-06-24/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/servicecatalog-appregistry/2020-06-24/paginators-1.json b/botocore/data/servicecatalog-appregistry/2020-06-24/paginators-1.json index 8c9a3bd7..55281fb7 100644 --- a/botocore/data/servicecatalog-appregistry/2020-06-24/paginators-1.json +++ b/botocore/data/servicecatalog-appregistry/2020-06-24/paginators-1.json @@ -23,6 +23,12 @@ "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/botocore/data/servicecatalog-appregistry/2020-06-24/service-2.json b/botocore/data/servicecatalog-appregistry/2020-06-24/service-2.json index 9dfd7f6a..4e7d6cc0 100644 --- a/botocore/data/servicecatalog-appregistry/2020-06-24/service-2.json +++ b/botocore/data/servicecatalog-appregistry/2020-06-24/service-2.json @@ -25,7 +25,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, {"shape":"InternalServerException"}, - {"shape":"ServiceQuotaExceededException"} + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} ], "documentation":"

Associates an attribute group with an application to augment the application's metadata with the group's attributes. This feature enables applications to be described with user-defined details that are machine-readable, such as third-party integrations.

" }, @@ -41,7 +42,8 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InternalServerException"}, {"shape":"ServiceQuotaExceededException"}, - {"shape":"ConflictException"} + {"shape":"ConflictException"}, + {"shape":"ValidationException"} ], "documentation":"

Associates a resource with an application. Both the resource and the application can be specified either by ID or name.

" }, @@ -57,7 +59,8 @@ "errors":[ {"shape":"ServiceQuotaExceededException"}, {"shape":"ConflictException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} ], "documentation":"

Creates a new application that is the top-level node in a hierarchy of related cloud resource abstractions.

" }, @@ -133,7 +136,8 @@ "output":{"shape":"DisassociateResourceResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} ], "documentation":"

Disassociates a resource from application. Both the resource and the application can be specified either by ID or name.

" }, @@ -148,7 +152,8 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ConflictException"} ], "documentation":"

Retrieves metadata information about one of your applications. The application can be specified either by its unique ID or by its name (which is unique within one account in one region at a given point in time). Specify by ID in automated workflows if you want to make sure that the exact same application is returned or a ResourceNotFoundException is thrown, avoiding the ABA addressing problem.

" }, @@ -179,10 +184,23 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, - {"shape":"InternalServerException"} + {"shape":"InternalServerException"}, + {"shape":"ConflictException"} ], "documentation":"

Retrieves an attribute group, either by its name or its ID. The attribute group can be specified either by its unique ID or by its name.

" }, + "GetConfiguration":{ + "name":"GetConfiguration", + "http":{ + "method":"GET", + "requestUri":"/configuration" + }, + "output":{"shape":"GetConfigurationResponse"}, + "errors":[ + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves a TagKey configuration from an account.

" + }, "ListApplications":{ "name":"ListApplications", "http":{ @@ -227,7 +245,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Lists all resources that are associated with specified application. Results are paginated.

", + "documentation":"

Lists all of the resources that are associated with the specified application. Results are paginated.

If you share an application, and a consumer account associates a tag query to the application, all of the users who can access the application can also view the tag values in all accounts that are associated with it using this API.

", "idempotent":true }, "ListAttributeGroups":{ @@ -245,6 +263,22 @@ "documentation":"

Lists all attribute groups which you have access to. Results are paginated.

", "idempotent":true }, + "ListAttributeGroupsForApplication":{ + "name":"ListAttributeGroupsForApplication", + "http":{ + "method":"GET", + "requestUri":"/applications/{application}/attribute-group-details" + }, + "input":{"shape":"ListAttributeGroupsForApplicationRequest"}, + "output":{"shape":"ListAttributeGroupsForApplicationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists the details of all attribute groups associated with a specific application. The results display in pages.

", + "idempotent":true + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -260,6 +294,20 @@ ], "documentation":"

Lists all of the tags on the resource.

" }, + "PutConfiguration":{ + "name":"PutConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/configuration" + }, + "input":{"shape":"PutConfigurationRequest"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Associates a TagKey configuration to an account.

" + }, "SyncResource":{ "name":"SyncResource", "http":{ @@ -316,6 +364,7 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"}, + {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], "documentation":"

Updates an existing application with new attributes.

" @@ -338,6 +387,16 @@ } }, "shapes":{ + "AppRegistryConfiguration":{ + "type":"structure", + "members":{ + "tagQueryConfiguration":{ + "shape":"TagQueryConfiguration", + "documentation":"

Includes the definition of a tagQuery.

" + } + }, + "documentation":"

Includes all of the Service Catalog AppRegistry settings.

" + }, "Application":{ "type":"structure", "members":{ @@ -545,6 +604,30 @@ "type":"string", "pattern":"arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/attribute-groups/[a-z0-9]+" }, + "AttributeGroupDetails":{ + "type":"structure", + "members":{ + "id":{ + "shape":"AttributeGroupId", + "documentation":"

The unique identifier of the attribute group.

" + }, + "arn":{ + "shape":"AttributeGroupArn", + "documentation":"

The Amazon resource name (ARN) that specifies the attribute group.

" + }, + "name":{ + "shape":"Name", + "documentation":"

This field is no longer supported. We recommend you don't use the field when using ListAttributeGroupsForApplication.

The name of the attribute group.

", + "deprecated":true, + "deprecatedMessage":"This field is deprecated. We recommend not using the field when using ListAttributeGroupsForApplication." + } + }, + "documentation":"

The details related to a specific AttributeGroup.

" + }, + "AttributeGroupDetailsList":{ + "type":"list", + "member":{"shape":"AttributeGroupDetails"} + }, "AttributeGroupId":{ "type":"string", "max":26, @@ -861,7 +944,7 @@ }, "integrations":{ "shape":"Integrations", - "documentation":"

The information about the integration of the application with other services, such as Resource Groups.

" + "documentation":"

The information about the integration of the application with other services, such as Resource Groups.

" } } }, @@ -951,6 +1034,15 @@ } } }, + "GetConfigurationResponse":{ + "type":"structure", + "members":{ + "configuration":{ + "shape":"AppRegistryConfiguration", + "documentation":"

Retrieves TagKey configuration from an account.

" + } + } + }, "Integrations":{ "type":"structure", "members":{ @@ -1078,6 +1170,44 @@ } } }, + "ListAttributeGroupsForApplicationRequest":{ + "type":"structure", + "required":["application"], + "members":{ + "application":{ + "shape":"ApplicationSpecifier", + "documentation":"

The name or ID of the application.

", + "location":"uri", + "locationName":"application" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

This token retrieves the next page of results after a previous API call.

", + "location":"querystring", + "locationName":"nextToken" + }, + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The upper bound of the number of results to return. The value cannot exceed 25. If you omit this parameter, it defaults to 25. This value is optional.

", + "box":true, + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListAttributeGroupsForApplicationResponse":{ + "type":"structure", + "members":{ + "attributeGroupsDetails":{ + "shape":"AttributeGroupDetailsList", + "documentation":"

The details related to a specific attribute group.

" + }, + "nextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to get the next page of results after a previous API call.

" + } + } + }, "ListAttributeGroupsRequest":{ "type":"structure", "members":{ @@ -1132,7 +1262,7 @@ }, "MaxResults":{ "type":"integer", - "max":25, + "max":100, "min":1 }, "Name":{ @@ -1147,6 +1277,16 @@ "min":1, "pattern":"[A-Za-z0-9+/=]+" }, + "PutConfigurationRequest":{ + "type":"structure", + "required":["configuration"], + "members":{ + "configuration":{ + "shape":"AppRegistryConfiguration", + "documentation":"

Associates a TagKey configuration to an account.

" + } + } + }, "Resource":{ "type":"structure", "members":{ @@ -1169,6 +1309,16 @@ }, "documentation":"

The information about the resource.

" }, + "ResourceDetails":{ + "type":"structure", + "members":{ + "tagValue":{ + "shape":"TagValue", + "documentation":"

The value of the tag.

" + } + }, + "documentation":"

The details related to the resource.

" + }, "ResourceGroup":{ "type":"structure", "members":{ @@ -1206,8 +1356,16 @@ "documentation":"

The name of the resource.

" }, "arn":{ - "shape":"StackArn", + "shape":"Arn", "documentation":"

The Amazon resource name (ARN) that specifies the resource across services.

" + }, + "resourceType":{ + "shape":"ResourceType", + "documentation":"

Provides information about the Service Catalog App Registry resource type.

" + }, + "resourceDetails":{ + "shape":"ResourceDetails", + "documentation":"

The details related to the resource.

" } }, "documentation":"

The information about the resource.

" @@ -1239,7 +1397,10 @@ }, "ResourceType":{ "type":"string", - "enum":["CFN_STACK"] + "enum":[ + "CFN_STACK", + "RESOURCE_TAG_VALUE" + ] }, "Resources":{ "type":"list", @@ -1308,7 +1469,13 @@ "type":"string", "max":128, "min":1, - "pattern":"(?!aws:)[a-zA-Z+-=._:/]+" + "pattern":"[a-zA-Z+-=._:/]+" + }, + "TagKeyConfig":{ + "type":"string", + "max":128, + "min":0, + "pattern":"^(?!\\s+$)[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*" }, "TagKeys":{ "type":"list", @@ -1316,6 +1483,16 @@ "max":50, "min":0 }, + "TagQueryConfiguration":{ + "type":"structure", + "members":{ + "tagKey":{ + "shape":"TagKeyConfig", + "documentation":"

Condition in the IAM policy that associates resources to an application.

" + } + }, + "documentation":"

The definition of tagQuery. Specifies which resources are associated with an application.

" + }, "TagResourceRequest":{ "type":"structure", "required":[ @@ -1394,7 +1571,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The new name of the application. The name must be unique in the region in which you are updating the application.

", + "documentation":"

Deprecated: The new name of the application. The name must be unique in the region in which you are updating the application. Please do not use this field as we have stopped supporting name updates.

", "deprecated":true, "deprecatedMessage":"Name update for application is deprecated." }, @@ -1425,7 +1602,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The new name of the attribute group. The name must be unique in the region in which you are updating the attribute group.

", + "documentation":"

Deprecated: The new name of the attribute group. The name must be unique in the region in which you are updating the attribute group. Please do not use this field as we have stopped supporting name updates.

", "deprecated":true, "deprecatedMessage":"Name update for attribute group is deprecated." }, diff --git a/botocore/data/servicecatalog/2015-12-10/endpoint-rule-set-1.json b/botocore/data/servicecatalog/2015-12-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..91983d9e --- /dev/null +++ b/botocore/data/servicecatalog/2015-12-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://servicecatalog.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/servicecatalog/2015-12-10/service-2.json b/botocore/data/servicecatalog/2015-12-10/service-2.json index 0d4e6968..0cbfb8e5 100644 --- a/botocore/data/servicecatalog/2015-12-10/service-2.json +++ b/botocore/data/servicecatalog/2015-12-10/service-2.json @@ -56,7 +56,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Associates the specified principal ARN with the specified portfolio.

" + "documentation":"

Associates the specified principal ARN with the specified portfolio.

If you share the portfolio with principal name sharing enabled, the PrincipalARN association is included in the share.

The PortfolioID, PrincipalARN, and PrincipalType parameters are required.

You can associate a maximum of 10 Principals with a portfolio using PrincipalType as IAM_PATTERN

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal name association for the portfolio. Although this user may not know which principal names are associated through Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then Service Catalog recommends using PrincipalType as IAM. With this configuration, the PrincipalARN must already exist in the recipient account before it can be associated.

" }, "AssociateProductWithPortfolio":{ "name":"AssociateProductWithPortfolio", @@ -144,7 +144,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"} ], - "documentation":"

Copies the specified source product to the specified target product or a new product.

You can copy a product to the same account or another account. You can copy a product to the same region or another region.

This operation is performed asynchronously. To track the progress of the operation, use DescribeCopyProductStatus.

" + "documentation":"

Copies the specified source product to the specified target product or a new product.

You can copy a product to the same account or another account. You can copy a product to the same Region or another Region. If you copy a product to another account, you must first share the product in a portfolio using CreatePortfolioShare.

This operation is performed asynchronously. To track the progress of the operation, use DescribeCopyProductStatus.

" }, "CreateConstraint":{ "name":"CreateConstraint", @@ -192,7 +192,7 @@ {"shape":"OperationNotSupportedException"}, {"shape":"InvalidStateException"} ], - "documentation":"

Shares the specified portfolio with the specified account or organization node. Shares to an organization node can only be created by the management account of an organization or by a delegated administrator. You can share portfolios to an organization, an organizational unit, or a specific account.

Note that if a delegated admin is de-registered, they can no longer create portfolio shares.

AWSOrganizationsAccess must be enabled in order to create a portfolio share to an organization node.

You can't share a shared resource, including portfolios that contain a shared product.

If the portfolio share with the specified account or organization node already exists, this action will have no effect and will not return an error. To update an existing share, you must use the UpdatePortfolioShare API instead.

" + "documentation":"

Shares the specified portfolio with the specified account or organization node. Shares to an organization node can only be created by the management account of an organization or by a delegated administrator. You can share portfolios to an organization, an organizational unit, or a specific account.

Note that if a delegated admin is de-registered, they can no longer create portfolio shares.

AWSOrganizationsAccess must be enabled in order to create a portfolio share to an organization node.

You can't share a shared resource, including portfolios that contain a shared product.

If the portfolio share with the specified account or organization node already exists, this action will have no effect and will not return an error. To update an existing share, you must use the UpdatePortfolioShare API instead.

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal name association for the portfolio. Although this user may not know which principal names are associated through Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then Service Catalog recommends using PrincipalType as IAM. With this configuration, the PrincipalARN must already exist in the recipient account before it can be associated.

" }, "CreateProduct":{ "name":"CreateProduct", @@ -222,7 +222,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidStateException"} ], - "documentation":"

Creates a plan. A plan includes the list of resources to be created (when provisioning a new product) or modified (when updating a provisioned product) when the plan is executed.

You can create one plan per provisioned product. To create a plan for an existing provisioned product, the product status must be AVAILBLE or TAINTED.

To view the resource changes in the change set, use DescribeProvisionedProductPlan. To create or modify the provisioned product, use ExecuteProvisionedProductPlan.

" + "documentation":"

Creates a plan.

A plan includes the list of resources to be created (when provisioning a new product) or modified (when updating a provisioned product) when the plan is executed.

You can create one plan for each provisioned product. To create a plan for an existing provisioned product, the product status must be AVAILABLE or TAINTED.

To view the resource changes in the change set, use DescribeProvisionedProductPlan. To create or modify the provisioned product, use ExecuteProvisionedProductPlan.

" }, "CreateProvisioningArtifact":{ "name":"CreateProvisioningArtifact", @@ -621,7 +621,7 @@ {"shape":"InvalidStateException"}, {"shape":"OperationNotSupportedException"} ], - "documentation":"

Disable portfolio sharing through AWS Organizations feature. This feature will not delete your current shares but it will prevent you from creating new shares throughout your organization. Current shares will not be in sync with your organization structure if it changes after calling this API. This API can only be called by the management account in the organization.

This API can't be invoked if there are active delegated administrators in the organization.

Note that a delegated administrator is not authorized to invoke DisableAWSOrganizationsAccess.

" + "documentation":"

Disable portfolio sharing through the Organizations service. This command will not delete your current shares, but prevents you from creating new shares throughout your organization. Current shares are not kept in sync with your organization structure if the structure changes after calling this API. Only the management account in the organization can call this API.

You cannot call this API if there are active delegated administrators in the organization.

Note that a delegated administrator is not authorized to invoke DisableAWSOrganizationsAccess.

If you share an Service Catalog portfolio in an organization within Organizations, and then disable Organizations access for Service Catalog, the portfolio access permissions will not sync with the latest changes to the organization structure. Specifically, accounts that you removed from the organization after disabling Service Catalog access will retain access to the previously shared portfolio.

" }, "DisassociateBudgetFromResource":{ "name":"DisassociateBudgetFromResource", @@ -648,7 +648,7 @@ {"shape":"InvalidParametersException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Disassociates a previously associated principal ARN from a specified portfolio.

" + "documentation":"

Disassociates a previously associated principal ARN from a specified portfolio.

The PrincipalType and PrincipalARN must match the AssociatePrincipalWithPortfolio call request details. For example, to disassociate an association created with a PrincipalARN of PrincipalType IAM you must use the PrincipalType IAM when calling DisassociatePrincipalFromPortfolio.

For portfolios that have been shared with principal name sharing enabled: after disassociating a principal, share recipient accounts will no longer be able to provision products in this portfolio using a role matching the name of the associated principal.

" }, "DisassociateProductFromPortfolio":{ "name":"DisassociateProductFromPortfolio", @@ -705,7 +705,7 @@ {"shape":"InvalidStateException"}, {"shape":"OperationNotSupportedException"} ], - "documentation":"

Enable portfolio sharing feature through AWS Organizations. This API will allow Service Catalog to receive updates on your organization in order to sync your shares with the current structure. This API can only be called by the management account in the organization.

By calling this API Service Catalog will make a call to organizations:EnableAWSServiceAccess on your behalf so that your shares can be in sync with any changes in your AWS Organizations structure.

Note that a delegated administrator is not authorized to invoke EnableAWSOrganizationsAccess.

" + "documentation":"

Enable portfolio sharing feature through Organizations. This API will allow Service Catalog to receive updates on your organization in order to sync your shares with the current structure. This API can only be called by the management account in the organization.

When you call this API, Service Catalog calls organizations:EnableAWSServiceAccess on your behalf so that your shares stay in sync with any changes in your Organizations structure.

Note that a delegated administrator is not authorized to invoke EnableAWSOrganizationsAccess.

If you have previously disabled Organizations access for Service Catalog, and then enable access again, the portfolio access permissions might not sync with the latest changes to the organization structure. Specifically, accounts that you removed from the organization after disabling Service Catalog access, and before you enabled access again, can retain access to the previously shared portfolio. As a result, an account that has been removed from the organization might still be able to create or manage Amazon Web Services resources when it is no longer authorized to do so. Amazon Web Services is working to resolve this issue.

" }, "ExecuteProvisionedProductPlan":{ "name":"ExecuteProvisionedProductPlan", @@ -749,7 +749,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"OperationNotSupportedException"} ], - "documentation":"

Get the Access Status for AWS Organization portfolio share feature. This API can only be called by the management account in the organization or by a delegated admin.

" + "documentation":"

Get the Access Status for Organizations portfolio share feature. This API can only be called by the management account in the organization or by a delegated admin.

" }, "GetProvisionedProductOutputs":{ "name":"GetProvisionedProductOutputs", @@ -779,7 +779,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"} ], - "documentation":"

Requests the import of a resource as a Service Catalog provisioned product that is associated to a Service Catalog product and provisioning artifact. Once imported, all supported Service Catalog governance actions are supported on the provisioned product.

Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets and non-root nested stacks are not supported.

The CloudFormation stack must have one of the following statuses to be imported: CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE, IMPORT_COMPLETE, IMPORT_ROLLBACK_COMPLETE.

Import of the resource requires that the CloudFormation stack template matches the associated Service Catalog product provisioning artifact.

The user or role that performs this operation must have the cloudformation:GetTemplate and cloudformation:DescribeStacks IAM policy permissions.

" + "documentation":"

Requests the import of a resource as an Service Catalog provisioned product that is associated to an Service Catalog product and provisioning artifact. Once imported, all supported Service Catalog governance actions are supported on the provisioned product.

Resource import only supports CloudFormation stack ARNs. CloudFormation StackSets and non-root nested stacks are not supported.

The CloudFormation stack must have one of the following statuses to be imported: CREATE_COMPLETE, UPDATE_COMPLETE, UPDATE_ROLLBACK_COMPLETE, IMPORT_COMPLETE, IMPORT_ROLLBACK_COMPLETE.

Import of the resource requires that the CloudFormation stack template matches the associated Service Catalog product provisioning artifact.

The user or role that performs this operation must have the cloudformation:GetTemplate and cloudformation:DescribeStacks IAM policy permissions.

" }, "ListAcceptedPortfolioShares":{ "name":"ListAcceptedPortfolioShares", @@ -905,7 +905,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParametersException"} ], - "documentation":"

Lists all principal ARNs associated with the specified portfolio.

" + "documentation":"

Lists all PrincipalARNs and corresponding PrincipalTypes associated with the specified portfolio.

" }, "ListProvisionedProductPlans":{ "name":"ListProvisionedProductPlans", @@ -1016,7 +1016,7 @@ {"shape":"InvalidParametersException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Returns summary information about stack instances that are associated with the specified CFN_STACKSET type provisioned product. You can filter for stack instances that are associated with a specific AWS account name or region.

" + "documentation":"

Returns summary information about stack instances that are associated with the specified CFN_STACKSET type provisioned product. You can filter for stack instances that are associated with a specific Amazon Web Services account name or Region.

" }, "ListTagOptions":{ "name":"ListTagOptions", @@ -1111,7 +1111,7 @@ "errors":[ {"shape":"InvalidParametersException"} ], - "documentation":"

Gets information about the provisioned products that meet the specified criteria.

" + "documentation":"

Gets information about the provisioned products that meet the specified criteria.

To ensure a complete list of provisioned products and remove duplicate products, use sort-by createdTime.

Here is a CLI example:

aws servicecatalog search-provisioned-products --sort-by createdTime

" }, "TerminateProvisionedProduct":{ "name":"TerminateProvisionedProduct", @@ -1170,7 +1170,7 @@ {"shape":"OperationNotSupportedException"}, {"shape":"InvalidStateException"} ], - "documentation":"

Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing for an existing portfolio share.

The portfolio share cannot be updated if the CreatePortfolioShare operation is IN_PROGRESS, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.

You must provide the accountId or organization node in the input, but not both.

If the portfolio is shared to both an external account and an organization node, and both shares need to be updated, you must invoke UpdatePortfolioShare separately for each share type.

This API cannot be used for removing the portfolio share. You must use DeletePortfolioShare API for that action.

" + "documentation":"

Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing or Principal sharing for an existing portfolio share.

The portfolio share cannot be updated if the CreatePortfolioShare operation is IN_PROGRESS, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.

You must provide the accountId or organization node in the input, but not both.

If the portfolio is shared to both an external account and an organization node, and both shares need to be updated, you must invoke UpdatePortfolioShare separately for each share type.

This API cannot be used for removing the portfolio share. You must use DeletePortfolioShare API for that action.

When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is then shared with other accounts. For a user in a recipient account who is not an Service Catalog Admin, but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal name association for the portfolio. Although this user may not know which principal names are associated through Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then Service Catalog recommends using PrincipalType as IAM. With this configuration, the PrincipalARN must already exist in the recipient account before it can be associated.

" }, "UpdateProduct":{ "name":"UpdateProduct", @@ -1378,11 +1378,11 @@ }, "PrincipalARN":{ "shape":"PrincipalARN", - "documentation":"

The ARN of the principal (IAM user, role, or group).

" + "documentation":"

The ARN of the principal (IAM user, role, or group). This field allows an ARN with no accountID if PrincipalType is IAM_PATTERN.

You can associate multiple IAM patterns even if the account has no principal with that name. This is useful in Principal Name Sharing if you want to share a principal without creating it in the account that owns the portfolio.

" }, "PrincipalType":{ "shape":"PrincipalType", - "documentation":"

The principal type. The supported value is IAM.

" + "documentation":"

The principal type. The supported value is IAM if you use a fully defined ARN, or IAM_PATTERN if you use an ARN with no accountID.

" } } }, @@ -1565,6 +1565,40 @@ "type":"list", "member":{"shape":"CloudWatchDashboard"} }, + "CodeStarConnectionArn":{ + "type":"string", + "max":1224, + "min":1, + "pattern":"arn:[a-z0-9][-.a-z0-9]{0,62}:codestar-connections:([a-z0-9][-.a-z0-9]{0,62})?:([a-z0-9][-.a-z0-9]{0,62})?:[^/].{0,1023}$" + }, + "CodeStarParameters":{ + "type":"structure", + "required":[ + "ConnectionArn", + "Repository", + "Branch", + "ArtifactPath" + ], + "members":{ + "ConnectionArn":{ + "shape":"CodeStarConnectionArn", + "documentation":"

The CodeStar ARN, which is the connection between Service Catalog and the external repository.

" + }, + "Repository":{ + "shape":"Repository", + "documentation":"

The specific repository where the product’s artifact-to-be-synced resides, formatted as \"Account/Repo.\"

" + }, + "Branch":{ + "shape":"RepositoryBranch", + "documentation":"

The specific branch where the artifact resides.

" + }, + "ArtifactPath":{ + "shape":"RepositoryArtifactPath", + "documentation":"

The absolute path wehre the artifact resides within the repo and branch, formatted as \"folder/file.json.\"

" + } + }, + "documentation":"

The subtype containing details about the Codestar connection Type.

" + }, "ConstraintDescription":{ "type":"string", "max":2000 @@ -1714,7 +1748,7 @@ }, "Parameters":{ "shape":"ConstraintParameters", - "documentation":"

The constraint parameters, in JSON format. The syntax depends on the constraint type as follows:

LAUNCH

You are required to specify either the RoleArn or the LocalRoleName but can't use both.

Specify the RoleArn property as follows:

{\"RoleArn\" : \"arn:aws:iam::123456789012:role/LaunchRole\"}

Specify the LocalRoleName property as follows:

{\"LocalRoleName\": \"SCBasicLaunchRole\"}

If you specify the LocalRoleName property, when an account uses the launch constraint, the IAM role with that name in the account will be used. This allows launch-role constraints to be account-agnostic so the administrator can create fewer resources per shared account.

The given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint.

You cannot have both a LAUNCH and a STACKSET constraint.

You also cannot have more than one LAUNCH constraint on a product and portfolio.

NOTIFICATION

Specify the NotificationArns property as follows:

{\"NotificationArns\" : [\"arn:aws:sns:us-east-1:123456789012:Topic\"]}

RESOURCE_UPDATE

Specify the TagUpdatesOnProvisionedProduct property as follows:

{\"Version\":\"2.0\",\"Properties\":{\"TagUpdateOnProvisionedProduct\":\"String\"}}

The TagUpdatesOnProvisionedProduct property accepts a string value of ALLOWED or NOT_ALLOWED.

STACKSET

Specify the Parameters property as follows:

{\"Version\": \"String\", \"Properties\": {\"AccountList\": [ \"String\" ], \"RegionList\": [ \"String\" ], \"AdminRole\": \"String\", \"ExecutionRole\": \"String\"}}

You cannot have both a LAUNCH and a STACKSET constraint.

You also cannot have more than one STACKSET constraint on a product and portfolio.

Products with a STACKSET constraint will launch an AWS CloudFormation stack set.

TEMPLATE

Specify the Rules property. For more information, see Template Constraint Rules.

" + "documentation":"

The constraint parameters, in JSON format. The syntax depends on the constraint type as follows:

LAUNCH

You are required to specify either the RoleArn or the LocalRoleName but can't use both.

Specify the RoleArn property as follows:

{\"RoleArn\" : \"arn:aws:iam::123456789012:role/LaunchRole\"}

Specify the LocalRoleName property as follows:

{\"LocalRoleName\": \"SCBasicLaunchRole\"}

If you specify the LocalRoleName property, when an account uses the launch constraint, the IAM role with that name in the account will be used. This allows launch-role constraints to be account-agnostic so the administrator can create fewer resources per shared account.

The given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint.

You cannot have both a LAUNCH and a STACKSET constraint.

You also cannot have more than one LAUNCH constraint on a product and portfolio.

NOTIFICATION

Specify the NotificationArns property as follows:

{\"NotificationArns\" : [\"arn:aws:sns:us-east-1:123456789012:Topic\"]}

RESOURCE_UPDATE

Specify the TagUpdatesOnProvisionedProduct property as follows:

{\"Version\":\"2.0\",\"Properties\":{\"TagUpdateOnProvisionedProduct\":\"String\"}}

The TagUpdatesOnProvisionedProduct property accepts a string value of ALLOWED or NOT_ALLOWED.

STACKSET

Specify the Parameters property as follows:

{\"Version\": \"String\", \"Properties\": {\"AccountList\": [ \"String\" ], \"RegionList\": [ \"String\" ], \"AdminRole\": \"String\", \"ExecutionRole\": \"String\"}}

You cannot have both a LAUNCH and a STACKSET constraint.

You also cannot have more than one STACKSET constraint on a product and portfolio.

Products with a STACKSET constraint will launch an CloudFormation stack set.

TEMPLATE

Specify the Rules property. For more information, see Template Constraint Rules.

" }, "Type":{ "shape":"ConstraintType", @@ -1810,15 +1844,19 @@ }, "AccountId":{ "shape":"AccountId", - "documentation":"

The AWS account ID. For example, 123456789012.

" + "documentation":"

The Amazon Web Services account ID. For example, 123456789012.

" }, "OrganizationNode":{ "shape":"OrganizationNode", - "documentation":"

The organization node to whom you are going to share. If OrganizationNode is passed in, PortfolioShare will be created for the node an ListOrganizationPortfolioAccessd its children (when applies), and a PortfolioShareToken will be returned in the output in order for the administrator to monitor the status of the PortfolioShare creation process.

" + "documentation":"

The organization node to whom you are going to share. When you pass OrganizationNode, it creates PortfolioShare for all of the Amazon Web Services accounts that are associated to the OrganizationNode. The output returns a PortfolioShareToken, which enables the administrator to monitor the status of the PortfolioShare creation process.

" }, "ShareTagOptions":{ "shape":"Boolean", "documentation":"

Enables or disables TagOptions sharing when creating the portfolio share. If this flag is not provided, TagOptions sharing is disabled.

" + }, + "SharePrincipals":{ + "shape":"Boolean", + "documentation":"

Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided, principal sharing is disabled.

When you enable Principal Name Sharing for a portfolio share, the share recipient account end users with a principal that matches any of the associated IAM patterns can provision products from the portfolio. Once shared, the share recipient can view associations of PrincipalType: IAM_PATTERN on their portfolio. You can create the principals in the recipient account before or after creating the share.

" } } }, @@ -1837,7 +1875,6 @@ "Name", "Owner", "ProductType", - "ProvisioningArtifactParameters", "IdempotencyToken" ], "members":{ @@ -1889,6 +1926,10 @@ "shape":"IdempotencyToken", "documentation":"

A unique identifier that you provide to ensure idempotency. If multiple requests differ only by the idempotency token, the same response is returned for each repeated request.

", "idempotencyToken":true + }, + "SourceConnection":{ + "shape":"SourceConnection", + "documentation":"

Specifies connection details for the created product and syncs the product to the connection source artifact. This automatically manages the product's artifacts based on changes to the source. The SourceConnection parameter consists of the following sub-fields.

  • Type

  • ConnectionParamters

" } } }, @@ -1946,7 +1987,7 @@ }, "ProvisionedProductName":{ "shape":"ProvisionedProductName", - "documentation":"

A user-friendly name for the provisioned product. This value must be unique for the AWS account and cannot be updated after the product is provisioned.

" + "documentation":"

A user-friendly name for the provisioned product. This value must be unique for the Amazon Web Services account and cannot be updated after the product is provisioned.

" }, "ProvisioningArtifactId":{ "shape":"Id", @@ -2028,7 +2069,7 @@ }, "Info":{ "shape":"ProvisioningArtifactInfo", - "documentation":"

Specify the template source with one of the following options, but not both. Keys accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ].

The URL of the CloudFormation template in Amazon S3, in JSON format.

LoadTemplateFromURL

Use the URL of the CloudFormation template in Amazon S3 in JSON format.

ImportFromPhysicalId

Use the physical id of the resource that contains the template; currently supports CloudFormation stack ARN.

" + "documentation":"

Specify the template source with one of the following options, but not both. Keys accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ].

Use the URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

LoadTemplateFromURL

Use the URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

ImportFromPhysicalId

Use the physical id of the resource that contains the template; currently supports CloudFormation stack ARN.

" }, "Status":{ "shape":"Status", @@ -2055,7 +2096,7 @@ }, "Definition":{ "shape":"ServiceActionDefinitionMap", - "documentation":"

The self-service action definition. Can be one of the following:

Name

The name of the AWS Systems Manager document (SSM document). For example, AWS-RestartEC2Instance.

If you are using a shared SSM document, you must provide the ARN instead of the name.

Version

The AWS Systems Manager automation document version. For example, \"Version\": \"1\"

AssumeRole

The Amazon Resource Name (ARN) of the role that performs the self-service actions on your behalf. For example, \"AssumeRole\": \"arn:aws:iam::12345678910:role/ActionRole\".

To reuse the provisioned product launch role, set to \"AssumeRole\": \"LAUNCH_ROLE\".

Parameters

The list of parameters in JSON format.

For example: [{\\\"Name\\\":\\\"InstanceId\\\",\\\"Type\\\":\\\"TARGET\\\"}] or [{\\\"Name\\\":\\\"InstanceId\\\",\\\"Type\\\":\\\"TEXT_VALUE\\\"}].

" + "documentation":"

The self-service action definition. Can be one of the following:

Name

The name of the Amazon Web Services Systems Manager document (SSM document). For example, AWS-RestartEC2Instance.

If you are using a shared SSM document, you must provide the ARN instead of the name.

Version

The Amazon Web Services Systems Manager automation document version. For example, \"Version\": \"1\"

AssumeRole

The Amazon Resource Name (ARN) of the role that performs the self-service actions on your behalf. For example, \"AssumeRole\": \"arn:aws:iam::12345678910:role/ActionRole\".

To reuse the provisioned product launch role, set to \"AssumeRole\": \"LAUNCH_ROLE\".

Parameters

The list of parameters in JSON format.

For example: [{\\\"Name\\\":\\\"InstanceId\\\",\\\"Type\\\":\\\"TARGET\\\"}] or [{\\\"Name\\\":\\\"InstanceId\\\",\\\"Type\\\":\\\"TEXT_VALUE\\\"}].

" }, "Description":{ "shape":"ServiceActionDescription", @@ -2162,7 +2203,7 @@ }, "AccountId":{ "shape":"AccountId", - "documentation":"

The AWS account ID.

" + "documentation":"

The Amazon Web Services account ID.

" }, "OrganizationNode":{ "shape":"OrganizationNode", @@ -2212,7 +2253,7 @@ }, "IgnoreErrors":{ "shape":"IgnoreErrors", - "documentation":"

If set to true, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources.

" + "documentation":"

If set to true, Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources.

" } } }, @@ -2679,7 +2720,7 @@ }, "Info":{ "shape":"ProvisioningArtifactInfo", - "documentation":"

The URL of the CloudFormation template in Amazon S3.

" + "documentation":"

The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

" }, "Status":{ "shape":"Status", @@ -2741,7 +2782,7 @@ }, "ProvisioningArtifactPreferences":{ "shape":"ProvisioningArtifactPreferences", - "documentation":"

An object that contains information about preferences, such as regions and accounts, for the provisioning artifact.

" + "documentation":"

An object that contains information about preferences, such as Regions and accounts, for the provisioning artifact.

" }, "ProvisioningArtifactOutputs":{ "shape":"ProvisioningArtifactOutputs", @@ -2917,7 +2958,11 @@ }, "PrincipalARN":{ "shape":"PrincipalARN", - "documentation":"

The ARN of the principal (IAM user, role, or group).

" + "documentation":"

The ARN of the principal (IAM user, role, or group). This field allows an ARN with no accountID if PrincipalType is IAM_PATTERN.

" + }, + "PrincipalType":{ + "shape":"PrincipalType", + "documentation":"

The supported value is IAM if you use a fully defined ARN, or IAM_PATTERN if you use no accountID.

" } } }, @@ -3090,7 +3135,7 @@ }, "Parameters":{ "shape":"ExecutionParameterMap", - "documentation":"

A map of all self-service action parameters and their values. If a provided parameter is of a special type, such as TARGET, the provided value will override the default value generated by AWS Service Catalog. If the parameters field is not provided, no additional parameters are passed and default values will be used for any special parameters such as TARGET.

" + "documentation":"

A map of all self-service action parameters and their values. If a provided parameter is of a special type, such as TARGET, the provided value will override the default value generated by Service Catalog. If the parameters field is not provided, no additional parameters are passed and default values will be used for any special parameters such as TARGET.

" } } }, @@ -3278,7 +3323,7 @@ }, "ProvisionedProductName":{ "shape":"ProvisionedProductName", - "documentation":"

The user-friendly name of the provisioned product. The value must be unique for the AWS account. The name cannot be updated after the product is provisioned.

" + "documentation":"

The user-friendly name of the provisioned product. The value must be unique for the Amazon Web Services account. The name cannot be updated after the product is provisioned.

" }, "PhysicalId":{ "shape":"PhysicalId", @@ -3314,6 +3359,42 @@ "exception":true }, "LastRequestId":{"type":"string"}, + "LastSuccessfulSyncTime":{"type":"timestamp"}, + "LastSync":{ + "type":"structure", + "members":{ + "LastSyncTime":{ + "shape":"LastSyncTime", + "documentation":"

The time of the last attempted sync from the repository to the Service Catalog product.

" + }, + "LastSyncStatus":{ + "shape":"LastSyncStatus", + "documentation":"

The current status of the sync. Responses include SUCCEEDED or FAILED.

" + }, + "LastSyncStatusMessage":{ + "shape":"LastSyncStatusMessage", + "documentation":"

The sync's status message.

" + }, + "LastSuccessfulSyncTime":{ + "shape":"LastSuccessfulSyncTime", + "documentation":"

The time of the latest successful sync from the source repo artifact to the Service Catalog product.

" + }, + "LastSuccessfulSyncProvisioningArtifactId":{ + "shape":"Id", + "documentation":"

The ProvisioningArtifactID of the ProvisioningArtifact created from the latest successful sync.

" + } + }, + "documentation":"

Provides details about the product's connection sync and contains the following sub-fields.

  • LastSyncTime

  • LastSyncStatus

  • LastSyncStatusMessage

  • LastSuccessfulSyncTime

  • LastSuccessfulSyncProvisioningArtifactID

" + }, + "LastSyncStatus":{ + "type":"string", + "enum":[ + "SUCCEEDED", + "FAILED" + ] + }, + "LastSyncStatusMessage":{"type":"string"}, + "LastSyncTime":{"type":"timestamp"}, "LaunchPath":{ "type":"structure", "members":{ @@ -3581,7 +3662,7 @@ "members":{ "AccountIds":{ "shape":"AccountIds", - "documentation":"

Information about the AWS accounts with access to the portfolio.

" + "documentation":"

Information about the Amazon Web Services accounts with access to the portfolio.

" }, "NextPageToken":{ "shape":"PageToken", @@ -3681,7 +3762,7 @@ "members":{ "Principals":{ "shape":"Principals", - "documentation":"

The IAM principals (users or roles) associated with the portfolio.

" + "documentation":"

The PrincipalARNs and corresponding PrincipalTypes associated with the portfolio.

" }, "NextPageToken":{ "shape":"PageToken", @@ -4217,7 +4298,7 @@ "members":{ "PrincipalId":{ "shape":"Id", - "documentation":"

The identifier of the recipient entity that received the portfolio share. The recipient entities can be one of the following:

1. An external account.

2. An organziation member account.

3. An organzational unit (OU).

4. The organization itself. (This shares with every account in the organization).

" + "documentation":"

The identifier of the recipient entity that received the portfolio share. The recipient entity can be one of the following:

1. An external account.

2. An organziation member account.

3. An organzational unit (OU).

4. The organization itself. (This shares with every account in the organization).

" }, "Type":{ "shape":"DescribePortfolioShareType", @@ -4230,6 +4311,10 @@ "ShareTagOptions":{ "shape":"Boolean", "documentation":"

Indicates whether TagOptions sharing is enabled or disabled for the portfolio share.

" + }, + "SharePrincipals":{ + "shape":"Boolean", + "documentation":"

Indicates if Principal sharing is enabled or disabled for the portfolio share.

" } }, "documentation":"

Information about the portfolio share.

" @@ -4251,11 +4336,11 @@ "members":{ "PrincipalARN":{ "shape":"PrincipalARN", - "documentation":"

The ARN of the principal (IAM user, role, or group).

" + "documentation":"

The ARN of the principal (IAM user, role, or group). This field allows for an ARN with no accountID if the PrincipalType is an IAM_PATTERN.

" }, "PrincipalType":{ "shape":"PrincipalType", - "documentation":"

The principal type. The supported value is IAM.

" + "documentation":"

The principal type. The supported value is IAM if you use a fully defined ARN, or IAM_PATTERN if you use an ARN with no accountID.

" } }, "documentation":"

Information about a principal.

" @@ -4267,7 +4352,10 @@ }, "PrincipalType":{ "type":"string", - "enum":["IAM"] + "enum":[ + "IAM", + "IAM_PATTERN" + ] }, "Principals":{ "type":"list", @@ -4333,6 +4421,10 @@ "CreatedTime":{ "shape":"CreatedTime", "documentation":"

The UTC time stamp of the creation time.

" + }, + "SourceConnection":{ + "shape":"SourceConnectionDetail", + "documentation":"

A top level ProductViewDetail response containing details about the product’s connection. Service Catalog returns this field for the CreateProduct, UpdateProduct, DescribeProductAsAdmin, and SearchProductAsAdmin APIs. This response contains the same fields as the ConnectionParameters request, with the addition of the LastSync response.

" } }, "documentation":"

Information about a product view.

" @@ -4410,7 +4502,7 @@ }, "Type":{ "shape":"ProductType", - "documentation":"

The product type. Contact the product administrator for the significance of this value. If this value is MARKETPLACE, the product was created by AWS Marketplace.

" + "documentation":"

The product type. Contact the product administrator for the significance of this value. If this value is MARKETPLACE, the product was created by Amazon Web Services Marketplace.

" }, "Distributor":{ "shape":"ProductViewDistributor", @@ -4492,7 +4584,7 @@ }, "ProvisionedProductName":{ "shape":"ProvisionedProductName", - "documentation":"

A user-friendly name for the provisioned product. This value must be unique for the AWS account and cannot be updated after the product is provisioned.

" + "documentation":"

A user-friendly name for the provisioned product. This value must be unique for the Amazon Web Services account and cannot be updated after the product is provisioned.

" }, "ProvisioningParameters":{ "shape":"ProvisioningParameters", @@ -4741,7 +4833,7 @@ }, "UpdatedTime":{ "shape":"UpdatedTime", - "documentation":"

The time when the plan was last updated.

" + "documentation":"

The UTC time stamp when the plan was last updated.

" }, "NotificationArns":{ "shape":"NotificationArns", @@ -4889,7 +4981,7 @@ }, "Type":{ "shape":"ProvisioningArtifactType", - "documentation":"

The type of provisioning artifact.

  • CLOUD_FORMATION_TEMPLATE - AWS CloudFormation template

  • MARKETPLACE_AMI - AWS Marketplace AMI

  • MARKETPLACE_CAR - AWS Marketplace Clusters and AWS Resources

" + "documentation":"

The type of provisioning artifact.

  • CLOUD_FORMATION_TEMPLATE - CloudFormation template

  • MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

  • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters and Amazon Web Services Resources

" }, "CreatedTime":{ "shape":"CreationTime", @@ -4902,6 +4994,10 @@ "Guidance":{ "shape":"ProvisioningArtifactGuidance", "documentation":"

Information set by the administrator to provide guidance to end users about which provisioning artifacts to use.

" + }, + "SourceRevision":{ + "shape":"SourceRevision", + "documentation":"

Specifies the revision of the external artifact that was used to automatically sync the Service Catalog product and create the provisioning artifact. Service Catalog includes this response parameter as a high level field to the existing ProvisioningArtifactDetail type, which is returned as part of the response for CreateProduct, UpdateProduct, DescribeProductAsAdmin, DescribeProvisioningArtifact, ListProvisioningArtifact, and UpdateProvisioningArticat APIs.

This field only exists for Repo-Synced products.

" } }, "documentation":"

Information about a provisioning artifact (also known as a version) for a product.

" @@ -4994,18 +5090,17 @@ "members":{ "StackSetAccounts":{ "shape":"StackSetAccounts", - "documentation":"

One or more AWS accounts where stack instances are deployed from the stack set. These accounts can be scoped in ProvisioningPreferences$StackSetAccounts and UpdateProvisioningPreferences$StackSetAccounts.

Applicable only to a CFN_STACKSET provisioned product type.

" + "documentation":"

One or more Amazon Web Services accounts where stack instances are deployed from the stack set. These accounts can be scoped in ProvisioningPreferences$StackSetAccounts and UpdateProvisioningPreferences$StackSetAccounts.

Applicable only to a CFN_STACKSET provisioned product type.

" }, "StackSetRegions":{ "shape":"StackSetRegions", - "documentation":"

One or more AWS Regions where stack instances are deployed from the stack set. These regions can be scoped in ProvisioningPreferences$StackSetRegions and UpdateProvisioningPreferences$StackSetRegions.

Applicable only to a CFN_STACKSET provisioned product type.

" + "documentation":"

One or more Amazon Web Services Regions where stack instances are deployed from the stack set. These Regions can be scoped in ProvisioningPreferences$StackSetRegions and UpdateProvisioningPreferences$StackSetRegions.

Applicable only to a CFN_STACKSET provisioned product type.

" } }, - "documentation":"

The user-defined preferences that will be applied during product provisioning, unless overridden by ProvisioningPreferences or UpdateProvisioningPreferences.

For more information on maximum concurrent accounts and failure tolerance, see Stack set operation options in the AWS CloudFormation User Guide.

" + "documentation":"

The user-defined preferences that will be applied during product provisioning, unless overridden by ProvisioningPreferences or UpdateProvisioningPreferences.

For more information on maximum concurrent accounts and failure tolerance, see Stack set operation options in the CloudFormation User Guide.

" }, "ProvisioningArtifactProperties":{ "type":"structure", - "required":["Info"], "members":{ "Name":{ "shape":"ProvisioningArtifactName", @@ -5017,15 +5112,15 @@ }, "Info":{ "shape":"ProvisioningArtifactInfo", - "documentation":"

Specify the template source with one of the following options, but not both. Keys accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ]

The URL of the CloudFormation template in Amazon S3. Specify the URL in JSON format as follows:

\"LoadTemplateFromURL\": \"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/...\"

ImportFromPhysicalId: The physical id of the resource that contains the template. Currently only supports CloudFormation stack arn. Specify the physical id in JSON format as follows: ImportFromPhysicalId: “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId]

" + "documentation":"

Specify the template source with one of the following options, but not both. Keys accepted: [ LoadTemplateFromURL, ImportFromPhysicalId ]

The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format. Specify the URL in JSON format as follows:

\"LoadTemplateFromURL\": \"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/...\"

ImportFromPhysicalId: The physical id of the resource that contains the template. Currently only supports CloudFormation stack arn. Specify the physical id in JSON format as follows: ImportFromPhysicalId: “arn:aws:cloudformation:[us-east-1]:[accountId]:stack/[StackName]/[resourceId]

" }, "Type":{ "shape":"ProvisioningArtifactType", - "documentation":"

The type of provisioning artifact.

  • CLOUD_FORMATION_TEMPLATE - AWS CloudFormation template

  • MARKETPLACE_AMI - AWS Marketplace AMI

  • MARKETPLACE_CAR - AWS Marketplace Clusters and AWS Resources

" + "documentation":"

The type of provisioning artifact.

  • CLOUD_FORMATION_TEMPLATE - CloudFormation template

  • MARKETPLACE_AMI - Amazon Web Services Marketplace AMI

  • MARKETPLACE_CAR - Amazon Web Services Marketplace Clusters and Amazon Web Services Resources

" }, "DisableTemplateValidation":{ "shape":"DisableTemplateValidation", - "documentation":"

If set to true, AWS Service Catalog stops validating the specified provisioning artifact even if it is invalid.

" + "documentation":"

If set to true, Service Catalog stops validating the specified provisioning artifact even if it is invalid.

" } }, "documentation":"

Information about a provisioning artifact (also known as a version) for a product.

" @@ -5060,7 +5155,7 @@ }, "ProvisioningArtifactMetadata":{ "shape":"ProvisioningArtifactInfo", - "documentation":"

The metadata for the provisioning artifact. This is used with AWS Marketplace products.

" + "documentation":"

The metadata for the provisioning artifact. This is used with Amazon Web Services Marketplace products.

" } }, "documentation":"

Summary information about a provisioning artifact (also known as a version) for a product.

" @@ -5118,19 +5213,19 @@ "members":{ "StackSetAccounts":{ "shape":"StackSetAccounts", - "documentation":"

One or more AWS accounts where the provisioned product will be available.

Applicable only to a CFN_STACKSET provisioned product type.

The specified accounts should be within the list of accounts from the STACKSET constraint. To get the list of accounts in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all acounts from the STACKSET constraint.

" + "documentation":"

One or more Amazon Web Services accounts where the provisioned product will be available.

Applicable only to a CFN_STACKSET provisioned product type.

The specified accounts should be within the list of accounts from the STACKSET constraint. To get the list of accounts in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all acounts from the STACKSET constraint.

" }, "StackSetRegions":{ "shape":"StackSetRegions", - "documentation":"

One or more AWS Regions where the provisioned product will be available.

Applicable only to a CFN_STACKSET provisioned product type.

The specified regions should be within the list of regions from the STACKSET constraint. To get the list of regions in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all regions from the STACKSET constraint.

" + "documentation":"

One or more Amazon Web Services Regions where the provisioned product will be available.

Applicable only to a CFN_STACKSET provisioned product type.

The specified Regions should be within the list of Regions from the STACKSET constraint. To get the list of Regions in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all Regions from the STACKSET constraint.

" }, "StackSetFailureToleranceCount":{ "shape":"StackSetFailureToleranceCount", - "documentation":"

The number of accounts, per region, for which this operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both.

The default value is 0 if no value is specified.

" + "documentation":"

The number of accounts, per Region, for which this operation can fail before Service Catalog stops the operation in that Region. If the operation is stopped in a Region, Service Catalog doesn't attempt the operation in any subsequent Regions.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both.

The default value is 0 if no value is specified.

" }, "StackSetFailureTolerancePercentage":{ "shape":"StackSetFailureTolerancePercentage", - "documentation":"

The percentage of accounts, per region, for which this stack operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions.

When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both.

" + "documentation":"

The percentage of accounts, per Region, for which this stack operation can fail before Service Catalog stops the operation in that Region. If the operation is stopped in a Region, Service Catalog doesn't attempt the operation in any subsequent Regions.

When calculating the number of accounts based on the specified percentage, Service Catalog rounds down to the next whole number.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both.

" }, "StackSetMaxConcurrencyCount":{ "shape":"StackSetMaxConcurrencyCount", @@ -5138,10 +5233,10 @@ }, "StackSetMaxConcurrencyPercentage":{ "shape":"StackSetMaxConcurrencyPercentage", - "documentation":"

The maximum percentage of accounts in which to perform this operation at one time.

When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, AWS Service Catalog sets the number as 1 instead.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetMaxConcurrentCount or StackSetMaxConcurrentPercentage, but not both.

" + "documentation":"

The maximum percentage of accounts in which to perform this operation at one time.

When calculating the number of accounts based on the specified percentage, Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, Service Catalog sets the number as 1 instead.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetMaxConcurrentCount or StackSetMaxConcurrentPercentage, but not both.

" } }, - "documentation":"

The user-defined preferences that will be applied when updating a provisioned product. Not all preferences are applicable to all provisioned product type

One or more AWS accounts that will have access to the provisioned product.

Applicable only to a CFN_STACKSET provisioned product type.

The AWS accounts specified should be within the list of accounts in the STACKSET constraint. To get the list of accounts in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all accounts from the STACKSET constraint.

" + "documentation":"

The user-defined preferences that will be applied when updating a provisioned product. Not all preferences are applicable to all provisioned product type

One or more Amazon Web Services accounts that will have access to the provisioned product.

Applicable only to a CFN_STACKSET provisioned product type.

The Amazon Web Services accounts specified should be within the list of accounts in the STACKSET constraint. To get the list of accounts in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all accounts from the STACKSET constraint.

" }, "RecordDetail":{ "type":"structure", @@ -5323,6 +5418,21 @@ "CONDITIONAL" ] }, + "Repository":{ + "type":"string", + "max":100, + "min":1 + }, + "RepositoryArtifactPath":{ + "type":"string", + "max":4096, + "min":1 + }, + "RepositoryBranch":{ + "type":"string", + "max":250, + "min":1 + }, "RequiresRecreation":{ "type":"string", "enum":[ @@ -5847,6 +5957,49 @@ "DESCENDING" ] }, + "SourceConnection":{ + "type":"structure", + "required":["ConnectionParameters"], + "members":{ + "Type":{ + "shape":"SourceType", + "documentation":"

The only supported SourceConnection type is Codestar.

" + }, + "ConnectionParameters":{ + "shape":"SourceConnectionParameters", + "documentation":"

The connection details based on the connection Type.

" + } + }, + "documentation":"

A top level ProductViewDetail response containing details about the product’s connection. Service Catalog returns this field for the CreateProduct, UpdateProduct, DescribeProductAsAdmin, and SearchProductAsAdmin APIs. This response contains the same fields as the ConnectionParameters request, with the addition of the LastSync response.

" + }, + "SourceConnectionDetail":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"SourceType", + "documentation":"

The only supported SourceConnection type is Codestar.

" + }, + "ConnectionParameters":{ + "shape":"SourceConnectionParameters", + "documentation":"

The connection details based on the connection Type.

" + }, + "LastSync":{ + "shape":"LastSync", + "documentation":"

Provides details about the product's connection sync and contains the following sub-fields.

  • LastSyncTime

  • LastSyncStatus

  • LastSyncStatusMessage

  • LastSuccessfulSyncTime

  • LastSuccessfulSyncProvisioningArtifactID

" + } + }, + "documentation":"

Provides details about the configured SourceConnection.

" + }, + "SourceConnectionParameters":{ + "type":"structure", + "members":{ + "CodeStar":{ + "shape":"CodeStarParameters", + "documentation":"

Provides ConnectionType details.

" + } + }, + "documentation":"

Provides connection details.

" + }, "SourceProvisioningArtifactProperties":{ "type":"list", "member":{"shape":"SourceProvisioningArtifactPropertiesMap"} @@ -5856,23 +6009,32 @@ "key":{"shape":"ProvisioningArtifactPropertyName"}, "value":{"shape":"ProvisioningArtifactPropertyValue"} }, + "SourceRevision":{ + "type":"string", + "max":512, + "min":1 + }, + "SourceType":{ + "type":"string", + "enum":["CODESTAR"] + }, "StackInstance":{ "type":"structure", "members":{ "Account":{ "shape":"AccountId", - "documentation":"

The name of the AWS account that the stack instance is associated with.

" + "documentation":"

The name of the Amazon Web Services account that the stack instance is associated with.

" }, "Region":{ "shape":"Region", - "documentation":"

The name of the AWS region that the stack instance is associated with.

" + "documentation":"

The name of the Amazon Web Services Region that the stack instance is associated with.

" }, "StackInstanceStatus":{ "shape":"StackInstanceStatus", "documentation":"

The status of the stack instance, in terms of its synchronization with its associated stack set.

  • INOPERABLE: A DeleteStackInstances operation has failed and left the stack in an unstable state. Stacks in this state are excluded from further UpdateStackSet operations. You might need to perform a DeleteStackInstances operation, with RetainStacks set to true, to delete the stack instance, and then delete the stack manually.

  • OUTDATED: The stack isn't currently up to date with the stack set because either the associated stack failed during a CreateStackSet or UpdateStackSet operation, or the stack was part of a CreateStackSet or UpdateStackSet operation that failed or was stopped before the stack was created or updated.

  • CURRENT: The stack is currently up to date with the stack set.

" } }, - "documentation":"

An AWS CloudFormation stack, in a specific account and region, that's part of a stack set operation. A stack instance is a reference to an attempted or actual stack in a given account within a given region. A stack instance can exist without a stack—for example, if the stack couldn't be created for some reason. A stack instance is associated with only one stack set. Each stack instance contains the ID of its associated stack set, as well as the ID of the actual stack and the stack status.

" + "documentation":"

An CloudFormation stack, in a specific account and Region, that's part of a stack set operation. A stack instance is a reference to an attempted or actual stack in a given account within a given Region. A stack instance can exist without a stack—for example, if the stack couldn't be created for some reason. A stack instance is associated with only one stack set. Each stack instance contains the ID of its associated stack set, as well as the ID of the actual stack and the stack status.

" }, "StackInstanceStatus":{ "type":"string", @@ -6000,7 +6162,7 @@ }, "Owner":{ "shape":"Owner", - "documentation":"

The AWS account Id of the owner account that created the TagOption.

" + "documentation":"

The Amazon Web Services account Id of the owner account that created the TagOption.

" } }, "documentation":"

Information about a TagOption.

" @@ -6024,7 +6186,7 @@ "type":"structure", "members":{ }, - "documentation":"

An operation requiring TagOptions failed because the TagOptions migration process has not been performed for this account. Please use the AWS console to perform the migration process before retrying the operation.

", + "documentation":"

An operation requiring TagOptions failed because the TagOptions migration process has not been performed for this account. Use the Amazon Web Services Management Console to perform the migration process before retrying the operation.

", "exception":true }, "TagOptionSummaries":{ @@ -6085,7 +6247,7 @@ }, "IgnoreErrors":{ "shape":"IgnoreErrors", - "documentation":"

If set to true, AWS Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources.

" + "documentation":"

If set to true, Service Catalog stops managing the specified provisioned product even if it cannot delete the underlying resources.

" }, "AcceptLanguage":{ "shape":"AcceptLanguage", @@ -6125,7 +6287,7 @@ }, "Parameters":{ "shape":"ConstraintParameters", - "documentation":"

The constraint parameters, in JSON format. The syntax depends on the constraint type as follows:

LAUNCH

You are required to specify either the RoleArn or the LocalRoleName but can't use both.

Specify the RoleArn property as follows:

{\"RoleArn\" : \"arn:aws:iam::123456789012:role/LaunchRole\"}

Specify the LocalRoleName property as follows:

{\"LocalRoleName\": \"SCBasicLaunchRole\"}

If you specify the LocalRoleName property, when an account uses the launch constraint, the IAM role with that name in the account will be used. This allows launch-role constraints to be account-agnostic so the administrator can create fewer resources per shared account.

The given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint.

You cannot have both a LAUNCH and a STACKSET constraint.

You also cannot have more than one LAUNCH constraint on a product and portfolio.

NOTIFICATION

Specify the NotificationArns property as follows:

{\"NotificationArns\" : [\"arn:aws:sns:us-east-1:123456789012:Topic\"]}

RESOURCE_UPDATE

Specify the TagUpdatesOnProvisionedProduct property as follows:

{\"Version\":\"2.0\",\"Properties\":{\"TagUpdateOnProvisionedProduct\":\"String\"}}

The TagUpdatesOnProvisionedProduct property accepts a string value of ALLOWED or NOT_ALLOWED.

STACKSET

Specify the Parameters property as follows:

{\"Version\": \"String\", \"Properties\": {\"AccountList\": [ \"String\" ], \"RegionList\": [ \"String\" ], \"AdminRole\": \"String\", \"ExecutionRole\": \"String\"}}

You cannot have both a LAUNCH and a STACKSET constraint.

You also cannot have more than one STACKSET constraint on a product and portfolio.

Products with a STACKSET constraint will launch an AWS CloudFormation stack set.

TEMPLATE

Specify the Rules property. For more information, see Template Constraint Rules.

" + "documentation":"

The constraint parameters, in JSON format. The syntax depends on the constraint type as follows:

LAUNCH

You are required to specify either the RoleArn or the LocalRoleName but can't use both.

Specify the RoleArn property as follows:

{\"RoleArn\" : \"arn:aws:iam::123456789012:role/LaunchRole\"}

Specify the LocalRoleName property as follows:

{\"LocalRoleName\": \"SCBasicLaunchRole\"}

If you specify the LocalRoleName property, when an account uses the launch constraint, the IAM role with that name in the account will be used. This allows launch-role constraints to be account-agnostic so the administrator can create fewer resources per shared account.

The given role name must exist in the account used to create the launch constraint and the account of the user who launches a product with this launch constraint.

You cannot have both a LAUNCH and a STACKSET constraint.

You also cannot have more than one LAUNCH constraint on a product and portfolio.

NOTIFICATION

Specify the NotificationArns property as follows:

{\"NotificationArns\" : [\"arn:aws:sns:us-east-1:123456789012:Topic\"]}

RESOURCE_UPDATE

Specify the TagUpdatesOnProvisionedProduct property as follows:

{\"Version\":\"2.0\",\"Properties\":{\"TagUpdateOnProvisionedProduct\":\"String\"}}

The TagUpdatesOnProvisionedProduct property accepts a string value of ALLOWED or NOT_ALLOWED.

STACKSET

Specify the Parameters property as follows:

{\"Version\": \"String\", \"Properties\": {\"AccountList\": [ \"String\" ], \"RegionList\": [ \"String\" ], \"AdminRole\": \"String\", \"ExecutionRole\": \"String\"}}

You cannot have both a LAUNCH and a STACKSET constraint.

You also cannot have more than one STACKSET constraint on a product and portfolio.

Products with a STACKSET constraint will launch an CloudFormation stack set.

TEMPLATE

Specify the Rules property. For more information, see Template Constraint Rules.

" } } }, @@ -6207,12 +6369,16 @@ }, "AccountId":{ "shape":"AccountId", - "documentation":"

The AWS Account Id of the recipient account. This field is required when updating an external account to account type share.

" + "documentation":"

The Amazon Web Services account Id of the recipient account. This field is required when updating an external account to account type share.

" }, "OrganizationNode":{"shape":"OrganizationNode"}, "ShareTagOptions":{ "shape":"NullableBoolean", - "documentation":"

A flag to enable or disable TagOptions sharing for the portfolio share. If this field is not provided, the current state of TagOptions sharing on the portfolio share will not be modified.

" + "documentation":"

Enables or disables TagOptions sharing for the portfolio share. If this field is not provided, the current state of TagOptions sharing on the portfolio share will not be modified.

" + }, + "SharePrincipals":{ + "shape":"NullableBoolean", + "documentation":"

A flag to enables or disables Principals sharing in the portfolio. If this field is not provided, the current state of the Principals sharing on the portfolio share will not be modified.

" } } }, @@ -6276,6 +6442,10 @@ "RemoveTags":{ "shape":"TagKeys", "documentation":"

The tags to remove from the product.

" + }, + "SourceConnection":{ + "shape":"SourceConnection", + "documentation":"

Specifies connection details for the updated product and syncs the product to the connection source artifact. This automatically manages the product's artifacts based on changes to the source. The SourceConnection parameter consists of the following sub-fields.

  • Type

  • ConnectionParamters

" } } }, @@ -6378,7 +6548,7 @@ }, "ProvisionedProductProperties":{ "shape":"ProvisionedProductProperties", - "documentation":"

A map that contains the provisioned product properties to be updated.

The LAUNCH_ROLE key accepts role ARNs. This key allows an administrator to call UpdateProvisionedProductProperties to update the launch role that is associated with a provisioned product. This role is used when an end user calls a provisioning operation such as UpdateProvisionedProduct, TerminateProvisionedProduct, or ExecuteProvisionedProductServiceAction. Only a role ARN is valid. A user ARN is invalid.

The OWNER key accepts user ARNs and role ARNs. The owner is the user that has permission to see, update, terminate, and execute service actions in the provisioned product.

The administrator can change the owner of a provisioned product to another IAM user within the same account. Both end user owners and administrators can see ownership history of the provisioned product using the ListRecordHistory API. The new owner can describe all past records for the provisioned product using the DescribeRecord API. The previous owner can no longer use DescribeRecord, but can still see the product's history from when he was an owner using ListRecordHistory.

If a provisioned product ownership is assigned to an end user, they can see and perform any action through the API or Service Catalog console such as update, terminate, and execute service actions. If an end user provisions a product and the owner is updated to someone else, they will no longer be able to see or perform any actions through API or the Service Catalog console on that provisioned product.

" + "documentation":"

A map that contains the provisioned product properties to be updated.

The LAUNCH_ROLE key accepts role ARNs. This key allows an administrator to call UpdateProvisionedProductProperties to update the launch role that is associated with a provisioned product. This role is used when an end user calls a provisioning operation such as UpdateProvisionedProduct, TerminateProvisionedProduct, or ExecuteProvisionedProductServiceAction. Only a role ARN is valid. A user ARN is invalid.

The OWNER key accepts IAM user ARNs, IAM role ARNs, and STS assumed-role ARNs. The owner is the user that has permission to see, update, terminate, and execute service actions in the provisioned product.

The administrator can change the owner of a provisioned product to another IAM or STS entity within the same account. Both end user owners and administrators can see ownership history of the provisioned product using the ListRecordHistory API. The new owner can describe all past records for the provisioned product using the DescribeRecord API. The previous owner can no longer use DescribeRecord, but can still see the product's history from when he was an owner using ListRecordHistory.

If a provisioned product ownership is assigned to an end user, they can see and perform any action through the API or Service Catalog console such as update, terminate, and execute service actions. If an end user provisions a product and the owner is updated to someone else, they will no longer be able to see or perform any actions through API or the Service Catalog console on that provisioned product.

" }, "IdempotencyToken":{ "shape":"IdempotencyToken", @@ -6454,7 +6624,7 @@ }, "Info":{ "shape":"ProvisioningArtifactInfo", - "documentation":"

The URL of the CloudFormation template in Amazon S3.

" + "documentation":"

The URL of the CloudFormation template in Amazon S3 or GitHub in JSON format.

" }, "Status":{ "shape":"Status", @@ -6489,19 +6659,19 @@ "members":{ "StackSetAccounts":{ "shape":"StackSetAccounts", - "documentation":"

One or more AWS accounts that will have access to the provisioned product.

Applicable only to a CFN_STACKSET provisioned product type.

The AWS accounts specified should be within the list of accounts in the STACKSET constraint. To get the list of accounts in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all accounts from the STACKSET constraint.

" + "documentation":"

One or more Amazon Web Services accounts that will have access to the provisioned product.

Applicable only to a CFN_STACKSET provisioned product type.

The Amazon Web Services accounts specified should be within the list of accounts in the STACKSET constraint. To get the list of accounts in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all accounts from the STACKSET constraint.

" }, "StackSetRegions":{ "shape":"StackSetRegions", - "documentation":"

One or more AWS Regions where the provisioned product will be available.

Applicable only to a CFN_STACKSET provisioned product type.

The specified regions should be within the list of regions from the STACKSET constraint. To get the list of regions in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all regions from the STACKSET constraint.

" + "documentation":"

One or more Amazon Web Services Regions where the provisioned product will be available.

Applicable only to a CFN_STACKSET provisioned product type.

The specified Regions should be within the list of Regions from the STACKSET constraint. To get the list of Regions in the STACKSET constraint, use the DescribeProvisioningParameters operation.

If no values are specified, the default value is all Regions from the STACKSET constraint.

" }, "StackSetFailureToleranceCount":{ "shape":"StackSetFailureToleranceCount", - "documentation":"

The number of accounts, per region, for which this operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both.

The default value is 0 if no value is specified.

" + "documentation":"

The number of accounts, per Region, for which this operation can fail before Service Catalog stops the operation in that Region. If the operation is stopped in a Region, Service Catalog doesn't attempt the operation in any subsequent Regions.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both.

The default value is 0 if no value is specified.

" }, "StackSetFailureTolerancePercentage":{ "shape":"StackSetFailureTolerancePercentage", - "documentation":"

The percentage of accounts, per region, for which this stack operation can fail before AWS Service Catalog stops the operation in that region. If the operation is stopped in a region, AWS Service Catalog doesn't attempt the operation in any subsequent regions.

When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both.

" + "documentation":"

The percentage of accounts, per Region, for which this stack operation can fail before Service Catalog stops the operation in that Region. If the operation is stopped in a Region, Service Catalog doesn't attempt the operation in any subsequent Regions.

When calculating the number of accounts based on the specified percentage, Service Catalog rounds down to the next whole number.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetFailureToleranceCount or StackSetFailureTolerancePercentage, but not both.

" }, "StackSetMaxConcurrencyCount":{ "shape":"StackSetMaxConcurrencyCount", @@ -6509,11 +6679,11 @@ }, "StackSetMaxConcurrencyPercentage":{ "shape":"StackSetMaxConcurrencyPercentage", - "documentation":"

The maximum percentage of accounts in which to perform this operation at one time.

When calculating the number of accounts based on the specified percentage, AWS Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, AWS Service Catalog sets the number as 1 instead.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetMaxConcurrentCount or StackSetMaxConcurrentPercentage, but not both.

" + "documentation":"

The maximum percentage of accounts in which to perform this operation at one time.

When calculating the number of accounts based on the specified percentage, Service Catalog rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, Service Catalog sets the number as 1 instead.

Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling.

Applicable only to a CFN_STACKSET provisioned product type.

Conditional: You must specify either StackSetMaxConcurrentCount or StackSetMaxConcurrentPercentage, but not both.

" }, "StackSetOperationType":{ "shape":"StackSetOperationType", - "documentation":"

Determines what action AWS Service Catalog performs to a stack set or a stack instance represented by the provisioned product. The default value is UPDATE if nothing is specified.

Applicable only to a CFN_STACKSET provisioned product type.

CREATE

Creates a new stack instance in the stack set represented by the provisioned product. In this case, only new stack instances are created based on accounts and regions; if new ProductId or ProvisioningArtifactID are passed, they will be ignored.

UPDATE

Updates the stack set represented by the provisioned product and also its stack instances.

DELETE

Deletes a stack instance in the stack set represented by the provisioned product.

" + "documentation":"

Determines what action Service Catalog performs to a stack set or a stack instance represented by the provisioned product. The default value is UPDATE if nothing is specified.

Applicable only to a CFN_STACKSET provisioned product type.

CREATE

Creates a new stack instance in the stack set represented by the provisioned product. In this case, only new stack instances are created based on accounts and Regions; if new ProductId or ProvisioningArtifactID are passed, they will be ignored.

UPDATE

Updates the stack set represented by the provisioned product and also its stack instances.

DELETE

Deletes a stack instance in the stack set represented by the provisioned product.

" } }, "documentation":"

The user-defined preferences that will be applied when updating a provisioned product. Not all preferences are applicable to all provisioned product types.

" @@ -6604,5 +6774,5 @@ "UserArnSession":{"type":"string"}, "Verbose":{"type":"boolean"} }, - "documentation":"AWS Service Catalog

AWS Service Catalog enables organizations to create and manage catalogs of IT services that are approved for AWS. To get the most out of this documentation, you should be familiar with the terminology discussed in AWS Service Catalog Concepts.

" + "documentation":"Service Catalog

Service Catalog enables organizations to create and manage catalogs of IT services that are approved for Amazon Web Services. To get the most out of this documentation, you should be familiar with the terminology discussed in Service Catalog Concepts.

" } diff --git a/botocore/data/servicediscovery/2017-03-14/endpoint-rule-set-1.json b/botocore/data/servicediscovery/2017-03-14/endpoint-rule-set-1.json new file mode 100644 index 00000000..46ad4510 --- /dev/null +++ b/botocore/data/servicediscovery/2017-03-14/endpoint-rule-set-1.json @@ -0,0 +1,353 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicediscovery-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "servicediscovery" + ] + } + ], + "endpoint": { + "url": "https://servicediscovery-fips.ca-central-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "servicediscovery" + ] + } + ], + "endpoint": { + "url": "https://servicediscovery-fips.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://servicediscovery-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://servicediscovery.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://servicediscovery.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/servicediscovery/2017-03-14/examples-1.json b/botocore/data/servicediscovery/2017-03-14/examples-1.json index 0ea7e3b0..cc99fe4c 100644 --- a/botocore/data/servicediscovery/2017-03-14/examples-1.json +++ b/botocore/data/servicediscovery/2017-03-14/examples-1.json @@ -1,5 +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/botocore/data/servicediscovery/2017-03-14/service-2.json b/botocore/data/servicediscovery/2017-03-14/service-2.json index fd4180cd..e7cb834d 100644 --- a/botocore/data/servicediscovery/2017-03-14/service-2.json +++ b/botocore/data/servicediscovery/2017-03-14/service-2.json @@ -28,7 +28,7 @@ {"shape":"DuplicateRequest"}, {"shape":"TooManyTagsException"} ], - "documentation":"

Creates an HTTP namespace. Service instances registered using an HTTP namespace can be discovered using a DiscoverInstances request but can't be discovered using DNS.

For the current quota on the number of namespaces that you can create using the same account, see Cloud Map quotas in the Cloud Map Developer Guide.

" + "documentation":"

Creates an HTTP namespace. Service instances registered using an HTTP namespace can be discovered using a DiscoverInstances request but can't be discovered using DNS.

For the current quota on the number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map quotas in the Cloud Map Developer Guide.

" }, "CreatePrivateDnsNamespace":{ "name":"CreatePrivateDnsNamespace", @@ -45,7 +45,7 @@ {"shape":"DuplicateRequest"}, {"shape":"TooManyTagsException"} ], - "documentation":"

Creates a private namespace based on DNS, which is visible only inside a specified Amazon VPC. The namespace defines your service naming scheme. For example, if you name your namespace example.com and name your service backend, the resulting DNS name for the service is backend.example.com. Service instances that are registered using a private DNS namespace can be discovered using either a DiscoverInstances request or using DNS. For the current quota on the number of namespaces that you can create using the same account, see Cloud Map quotas in the Cloud Map Developer Guide.

" + "documentation":"

Creates a private namespace based on DNS, which is visible only inside a specified Amazon VPC. The namespace defines your service naming scheme. For example, if you name your namespace example.com and name your service backend, the resulting DNS name for the service is backend.example.com. Service instances that are registered using a private DNS namespace can be discovered using either a DiscoverInstances request or using DNS. For the current quota on the number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map quotas in the Cloud Map Developer Guide.

" }, "CreatePublicDnsNamespace":{ "name":"CreatePublicDnsNamespace", @@ -62,7 +62,7 @@ {"shape":"DuplicateRequest"}, {"shape":"TooManyTagsException"} ], - "documentation":"

Creates a public namespace based on DNS, which is visible on the internet. The namespace defines your service naming scheme. For example, if you name your namespace example.com and name your service backend, the resulting DNS name for the service is backend.example.com. You can discover instances that were registered with a public DNS namespace by using either a DiscoverInstances request or using DNS. For the current quota on the number of namespaces that you can create using the same account, see Cloud Map quotas in the Cloud Map Developer Guide.

" + "documentation":"

Creates a public namespace based on DNS, which is visible on the internet. The namespace defines your service naming scheme. For example, if you name your namespace example.com and name your service backend, the resulting DNS name for the service is backend.example.com. You can discover instances that were registered with a public DNS namespace by using either a DiscoverInstances request or using DNS. For the current quota on the number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map quotas in the Cloud Map Developer Guide.

The CreatePublicDnsNamespace API operation is not supported in the Amazon Web Services GovCloud (US) Regions.

" }, "CreateService":{ "name":"CreateService", @@ -79,7 +79,7 @@ {"shape":"ServiceAlreadyExists"}, {"shape":"TooManyTagsException"} ], - "documentation":"

Creates a service. This action defines the configuration for the following entities:

  • For public and private DNS namespaces, one of the following combinations of DNS records in Amazon Route 53:

    • A

    • AAAA

    • A and AAAA

    • SRV

    • CNAME

  • Optionally, a health check

After you create the service, you can submit a RegisterInstance request, and Cloud Map uses the values in the configuration to create the specified entities.

For the current quota on the number of instances that you can register using the same namespace and using the same service, see Cloud Map quotas in the Cloud Map Developer Guide.

" + "documentation":"

Creates a service. This action defines the configuration for the following entities:

  • For public and private DNS namespaces, one of the following combinations of DNS records in Amazon Route 53:

    • A

    • AAAA

    • A and AAAA

    • SRV

    • CNAME

  • Optionally, a health check

After you create the service, you can submit a RegisterInstance request, and Cloud Map uses the values in the configuration to create the specified entities.

For the current quota on the number of instances that you can register using the same namespace and using the same service, see Cloud Map quotas in the Cloud Map Developer Guide.

" }, "DeleteNamespace":{ "name":"DeleteNamespace", @@ -127,7 +127,7 @@ {"shape":"ResourceInUse"}, {"shape":"ServiceNotFound"} ], - "documentation":"

Deletes the Amazon Route 53 DNS records and health check, if any, that Cloud Map created for the specified instance.

" + "documentation":"

Deletes the Amazon Route 53 DNS records and health check, if any, that Cloud Map created for the specified instance.

" }, "DiscoverInstances":{ "name":"DiscoverInstances", @@ -243,7 +243,7 @@ "errors":[ {"shape":"InvalidInput"} ], - "documentation":"

Lists summary information about the namespaces that were created by the current account.

" + "documentation":"

Lists summary information about the namespaces that were created by the current Amazon Web Services account.

" }, "ListOperations":{ "name":"ListOperations", @@ -360,7 +360,7 @@ {"shape":"CustomHealthNotFound"}, {"shape":"InvalidInput"} ], - "documentation":"

Submits a request to change the health status of a custom health check to healthy or unhealthy.

You can use UpdateInstanceCustomHealthStatus to change the status only for custom health checks, which you define using HealthCheckCustomConfig when you create a service. You can't use it to change the status for Route 53 health checks, which you define using HealthCheckConfig.

For more information, see HealthCheckCustomConfig.

" + "documentation":"

Submits a request to change the health status of a custom health check to healthy or unhealthy.

You can use UpdateInstanceCustomHealthStatus to change the status only for custom health checks, which you define using HealthCheckCustomConfig when you create a service. You can't use it to change the status for Route 53 health checks, which you define using HealthCheckConfig.

For more information, see HealthCheckCustomConfig.

" }, "UpdatePrivateDnsNamespace":{ "name":"UpdatePrivateDnsNamespace", @@ -477,7 +477,7 @@ "members":{ "Name":{ "shape":"NamespaceNamePrivate", - "documentation":"

The name that you want to assign to this namespace. When you create a private DNS namespace, Cloud Map automatically creates an Amazon Route 53 private hosted zone that has the same name as the namespace.

" + "documentation":"

The name that you want to assign to this namespace. When you create a private DNS namespace, Cloud Map automatically creates an Amazon Route 53 private hosted zone that has the same name as the namespace.

" }, "CreatorRequestId":{ "shape":"ResourceId", @@ -517,7 +517,7 @@ "members":{ "Name":{ "shape":"NamespaceNamePublic", - "documentation":"

The name that you want to assign to this namespace.

" + "documentation":"

The name that you want to assign to this namespace.

Do not include sensitive information in the name. The name is publicly available using DNS queries.

" }, "CreatorRequestId":{ "shape":"ResourceId", @@ -553,7 +553,7 @@ "members":{ "Name":{ "shape":"ServiceName", - "documentation":"

The name that you want to assign to the service.

If you want Cloud Map to create an SRV record when you register an instance and you're using a system that requires a specific SRV format, such as HAProxy, specify the following for Name:

  • Start the name with an underscore (_), such as _exampleservice.

  • End the name with ._protocol, such as ._tcp.

When you register an instance, Cloud Map creates an SRV record and assigns a name to the record by concatenating the service name and the namespace name (for example,

_exampleservice._tcp.example.com).

For services that are accessible by DNS queries, you can't create multiple services with names that differ only by case (such as EXAMPLE and example). Otherwise, these services have the same DNS name and can't be distinguished. However, if you use a namespace that's only accessible by API calls, then you can create services that with names that differ only by case.

" + "documentation":"

The name that you want to assign to the service.

Do not include sensitive information in the name if the namespace is discoverable by public DNS queries.

If you want Cloud Map to create an SRV record when you register an instance and you're using a system that requires a specific SRV format, such as HAProxy, specify the following for Name:

  • Start the name with an underscore (_), such as _exampleservice.

  • End the name with ._protocol, such as ._tcp.

When you register an instance, Cloud Map creates an SRV record and assigns a name to the record by concatenating the service name and the namespace name (for example,

_exampleservice._tcp.example.com).

For services that are accessible by DNS queries, you can't create multiple services with names that differ only by case (such as EXAMPLE and example). Otherwise, these services have the same DNS name and can't be distinguished. However, if you use a namespace that's only accessible by API calls, then you can create services that with names that differ only by case.

" }, "NamespaceId":{ "shape":"ResourceId", @@ -570,11 +570,11 @@ }, "DnsConfig":{ "shape":"DnsConfig", - "documentation":"

A complex type that contains information about the Amazon Route 53 records that you want Cloud Map to create when you register an instance.

" + "documentation":"

A complex type that contains information about the Amazon Route 53 records that you want Cloud Map to create when you register an instance.

" }, "HealthCheckConfig":{ "shape":"HealthCheckConfig", - "documentation":"

Public DNS and HTTP namespaces only. A complex type that contains settings for an optional Route 53 health check. If you specify settings for a health check, Cloud Map associates the health check with all the Route 53 DNS records that you specify in DnsConfig.

If you specify a health check configuration, you can specify either HealthCheckCustomConfig or HealthCheckConfig but not both.

For information about the charges for health checks, see Cloud Map Pricing.

" + "documentation":"

Public DNS and HTTP namespaces only. A complex type that contains settings for an optional Route 53 health check. If you specify settings for a health check, Cloud Map associates the health check with all the Route 53 DNS records that you specify in DnsConfig.

If you specify a health check configuration, you can specify either HealthCheckCustomConfig or HealthCheckConfig but not both.

For information about the charges for health checks, see Cloud Map Pricing.

" }, "HealthCheckCustomConfig":{ "shape":"HealthCheckCustomConfig", @@ -727,20 +727,20 @@ "members":{ "NamespaceId":{ "shape":"ResourceId", - "documentation":"

The ID of the namespace to use for DNS configuration.

", + "documentation":"

Use NamespaceId in Service instead.

The ID of the namespace to use for DNS configuration.

", "deprecated":true, "deprecatedMessage":"Top level attribute in request should be used to reference namespace-id" }, "RoutingPolicy":{ "shape":"RoutingPolicy", - "documentation":"

The routing policy that you want to apply to all Route 53 DNS records that Cloud Map creates when you register an instance and specify this service.

If you want to use this service to register instances that create alias records, specify WEIGHTED for the routing policy.

You can specify the following values:

MULTIVALUE

If you define a health check for the service and the health check is healthy, Route 53 returns the applicable value for up to eight instances.

For example, suppose that the service includes configurations for one A record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with IP addresses for up to eight healthy instances. If fewer than eight instances are healthy, Route 53 responds to every DNS query with the IP addresses for all of the healthy instances.

If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the values for up to eight instances.

For more information about the multivalue routing policy, see Multivalue Answer Routing in the Route 53 Developer Guide.

WEIGHTED

Route 53 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service. Currently, all records have the same weight, so you can't route more or less traffic to any instances.

For example, suppose that the service includes configurations for one A record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances. If no instances are healthy, Route 53 responds to DNS queries as if all of the instances were healthy.

If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the applicable value for one randomly selected instance.

For more information about the weighted routing policy, see Weighted Routing in the Route 53 Developer Guide.

" + "documentation":"

The routing policy that you want to apply to all Route 53 DNS records that Cloud Map creates when you register an instance and specify this service.

If you want to use this service to register instances that create alias records, specify WEIGHTED for the routing policy.

You can specify the following values:

MULTIVALUE

If you define a health check for the service and the health check is healthy, Route 53 returns the applicable value for up to eight instances.

For example, suppose that the service includes configurations for one A record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with IP addresses for up to eight healthy instances. If fewer than eight instances are healthy, Route 53 responds to every DNS query with the IP addresses for all of the healthy instances.

If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the values for up to eight instances.

For more information about the multivalue routing policy, see Multivalue Answer Routing in the Route 53 Developer Guide.

WEIGHTED

Route 53 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service. Currently, all records have the same weight, so you can't route more or less traffic to any instances.

For example, suppose that the service includes configurations for one A record and a health check. You use the service to register 10 instances. Route 53 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances. If no instances are healthy, Route 53 responds to DNS queries as if all of the instances were healthy.

If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the applicable value for one randomly selected instance.

For more information about the weighted routing policy, see Weighted Routing in the Route 53 Developer Guide.

" }, "DnsRecords":{ "shape":"DnsRecordList", - "documentation":"

An array that contains one DnsRecord object for each Route 53 DNS record that you want Cloud Map to create when you register an instance.

" + "documentation":"

An array that contains one DnsRecord object for each Route 53 DNS record that you want Cloud Map to create when you register an instance.

" } }, - "documentation":"

A complex type that contains information about the Amazon Route 53 DNS records that you want Cloud Map to create when you register an instance.

" + "documentation":"

A complex type that contains information about the Amazon Route 53 DNS records that you want Cloud Map to create when you register an instance.

The record types of a service can only be changed by deleting the service and recreating it with a new Dnsconfig.

" }, "DnsConfigChange":{ "type":"structure", @@ -748,24 +748,24 @@ "members":{ "DnsRecords":{ "shape":"DnsRecordList", - "documentation":"

An array that contains one DnsRecord object for each Route 53 record that you want Cloud Map to create when you register an instance.

" + "documentation":"

An array that contains one DnsRecord object for each Route 53 record that you want Cloud Map to create when you register an instance.

" } }, - "documentation":"

A complex type that contains information about changes to the Route 53 DNS records that Cloud Map creates when you register an instance.

" + "documentation":"

A complex type that contains information about changes to the Route 53 DNS records that Cloud Map creates when you register an instance.

" }, "DnsProperties":{ "type":"structure", "members":{ "HostedZoneId":{ "shape":"ResourceId", - "documentation":"

The ID for the Route 53 hosted zone that Cloud Map creates when you create a namespace.

" + "documentation":"

The ID for the Route 53 hosted zone that Cloud Map creates when you create a namespace.

" }, "SOA":{ "shape":"SOA", "documentation":"

Start of Authority (SOA) record for the hosted zone.

" } }, - "documentation":"

A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when you create a namespace.

" + "documentation":"

A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when you create a namespace.

" }, "DnsRecord":{ "type":"structure", @@ -776,14 +776,14 @@ "members":{ "Type":{ "shape":"RecordType", - "documentation":"

The type of the resource, which indicates the type of value that Route 53 returns in response to DNS queries. You can specify values for Type in the following combinations:

  • A

  • AAAA

  • A and AAAA

  • SRV

  • CNAME

If you want Cloud Map to create a Route 53 alias record when you register an instance, specify A or AAAA for Type.

You specify other settings, such as the IP address for A and AAAA records, when you register an instance. For more information, see RegisterInstance.

The following values are supported:

A

Route 53 returns the IP address of the resource in IPv4 format, such as 192.0.2.44.

AAAA

Route 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345.

CNAME

Route 53 returns the domain name of the resource, such as www.example.com. Note the following:

  • You specify the domain name that you want to route traffic to when you register an instance. For more information, see Attributes in the topic RegisterInstance.

  • You must specify WEIGHTED for the value of RoutingPolicy.

  • You can't specify both CNAME for Type and settings for HealthCheckConfig. If you do, the request will fail with an InvalidInput error.

SRV

Route 53 returns the value for an SRV record. The value for an SRV record uses the following values:

priority weight port service-hostname

Note the following about the values:

  • The values of priority and weight are both set to 1 and can't be changed.

  • The value of port comes from the value that you specify for the AWS_INSTANCE_PORT attribute when you submit a RegisterInstance request.

  • The value of service-hostname is a concatenation of the following values:

    • The value that you specify for InstanceId when you register an instance.

    • The name of the service.

    • The name of the namespace.

    For example, if the value of InstanceId is test, the name of the service is backend, and the name of the namespace is example.com, the value of service-hostname is the following:

    test.backend.example.com

If you specify settings for an SRV record, note the following:

  • If you specify values for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both in the RegisterInstance request, Cloud Map automatically creates A and/or AAAA records that have the same name as the value of service-hostname in the SRV record. You can ignore these records.

  • If you're using a system that requires a specific SRV format, such as HAProxy, see the Name element in the documentation about CreateService for information about how to specify the correct name format.

" + "documentation":"

The type of the resource, which indicates the type of value that Route 53 returns in response to DNS queries. You can specify values for Type in the following combinations:

  • A

  • AAAA

  • A and AAAA

  • SRV

  • CNAME

If you want Cloud Map to create a Route 53 alias record when you register an instance, specify A or AAAA for Type.

You specify other settings, such as the IP address for A and AAAA records, when you register an instance. For more information, see RegisterInstance.

The following values are supported:

A

Route 53 returns the IP address of the resource in IPv4 format, such as 192.0.2.44.

AAAA

Route 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345.

CNAME

Route 53 returns the domain name of the resource, such as www.example.com. Note the following:

  • You specify the domain name that you want to route traffic to when you register an instance. For more information, see Attributes in the topic RegisterInstance.

  • You must specify WEIGHTED for the value of RoutingPolicy.

  • You can't specify both CNAME for Type and settings for HealthCheckConfig. If you do, the request will fail with an InvalidInput error.

SRV

Route 53 returns the value for an SRV record. The value for an SRV record uses the following values:

priority weight port service-hostname

Note the following about the values:

  • The values of priority and weight are both set to 1 and can't be changed.

  • The value of port comes from the value that you specify for the AWS_INSTANCE_PORT attribute when you submit a RegisterInstance request.

  • The value of service-hostname is a concatenation of the following values:

    • The value that you specify for InstanceId when you register an instance.

    • The name of the service.

    • The name of the namespace.

    For example, if the value of InstanceId is test, the name of the service is backend, and the name of the namespace is example.com, the value of service-hostname is the following:

    test.backend.example.com

If you specify settings for an SRV record, note the following:

  • If you specify values for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both in the RegisterInstance request, Cloud Map automatically creates A and/or AAAA records that have the same name as the value of service-hostname in the SRV record. You can ignore these records.

  • If you're using a system that requires a specific SRV format, such as HAProxy, see the Name element in the documentation about CreateService for information about how to specify the correct name format.

" }, "TTL":{ "shape":"RecordTTL", - "documentation":"

The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record.

Alias records don't include a TTL because Route 53 uses the TTL for the Amazon Web Services resource that an alias record routes traffic to. If you include the AWS_ALIAS_DNS_NAME attribute when you submit a RegisterInstance request, the TTL value is ignored. Always specify a TTL for the service; you can use a service to register instances that create either alias or non-alias records.

" + "documentation":"

The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record.

Alias records don't include a TTL because Route 53 uses the TTL for the Amazon Web Services resource that an alias record routes traffic to. If you include the AWS_ALIAS_DNS_NAME attribute when you submit a RegisterInstance request, the TTL value is ignored. Always specify a TTL for the service; you can use a service to register instances that create either alias or non-alias records.

" } }, - "documentation":"

A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.

" + "documentation":"

A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.

" }, "DnsRecordList":{ "type":"list", @@ -812,7 +812,8 @@ "enum":[ "EQ", "IN", - "BETWEEN" + "BETWEEN", + "BEGINS_WITH" ] }, "FilterValue":{ @@ -948,18 +949,18 @@ "members":{ "Type":{ "shape":"HealthCheckType", - "documentation":"

The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy.

You can't change the value of Type after you create a health check.

You can create the following types of health checks:

  • HTTP: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400.

  • HTTPS: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400.

    If you specify HTTPS for the value of Type, the endpoint must support TLS v1.0 or later.

  • TCP: Route 53 tries to establish a TCP connection.

    If you specify TCP for Type, don't specify a value for ResourcePath.

For more information, see How Route 53 Determines Whether an Endpoint Is Healthy in the Route 53 Developer Guide.

" + "documentation":"

The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy.

You can't change the value of Type after you create a health check.

You can create the following types of health checks:

  • HTTP: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400.

  • HTTPS: Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400.

    If you specify HTTPS for the value of Type, the endpoint must support TLS v1.0 or later.

  • TCP: Route 53 tries to establish a TCP connection.

    If you specify TCP for Type, don't specify a value for ResourcePath.

For more information, see How Route 53 Determines Whether an Endpoint Is Healthy in the Route 53 Developer Guide.

" }, "ResourcePath":{ "shape":"ResourcePath", - "documentation":"

The path that you want Route 53 to request when performing health checks. The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy. An example file is /docs/route53-health-check.html. Route 53 automatically adds the DNS name for the service. If you don't specify a value for ResourcePath, the default value is /.

If you specify TCP for Type, you must not specify a value for ResourcePath.

" + "documentation":"

The path that you want Route 53 to request when performing health checks. The path can be any value that your endpoint returns an HTTP status code of a 2xx or 3xx format for when the endpoint is healthy. An example file is /docs/route53-health-check.html. Route 53 automatically adds the DNS name for the service. If you don't specify a value for ResourcePath, the default value is /.

If you specify TCP for Type, you must not specify a value for ResourcePath.

" }, "FailureThreshold":{ "shape":"FailureThreshold", - "documentation":"

The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or the other way around. For more information, see How Route 53 Determines Whether an Endpoint Is Healthy in the Route 53 Developer Guide.

" + "documentation":"

The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or the other way around. For more information, see How Route 53 Determines Whether an Endpoint Is Healthy in the Route 53 Developer Guide.

" } }, - "documentation":"

Public DNS and HTTP namespaces only. A complex type that contains settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in DnsConfig.

If you specify a health check configuration, you can specify either HealthCheckCustomConfig or HealthCheckConfig but not both.

Health checks are basic Route 53 health checks that monitor an Amazon Web Services endpoint. For information about pricing for health checks, see Amazon Route 53 Pricing.

Note the following about configuring health checks.

A and AAAA records

If DnsConfig includes configurations for both A and AAAA records, Cloud Map creates a health check that uses the IPv4 address to check the health of the resource. If the endpoint tthat's specified by the IPv4 address is unhealthy, Route 53 considers both the A and AAAA records to be unhealthy.

CNAME records

You can't specify settings for HealthCheckConfig when the DNSConfig includes CNAME for the value of Type. If you do, the CreateService request will fail with an InvalidInput error.

Request interval

A Route 53 health checker in each health-checking Amazon Web Services Region sends a health check request to an endpoint every 30 seconds. On average, your endpoint receives a health check request about every two seconds. However, health checkers don't coordinate with one another. Therefore, you might sometimes see several requests in one second that's followed by a few seconds with no health checks at all.

Health checking regions

Health checkers perform checks from all Route 53 health-checking Regions. For a list of the current Regions, see Regions.

Alias records

When you register an instance, if you include the AWS_ALIAS_DNS_NAME attribute, Cloud Map creates a Route 53 alias record. Note the following:

  • Route 53 automatically sets EvaluateTargetHealth to true for alias records. When EvaluateTargetHealth is true, the alias record inherits the health of the referenced Amazon Web Services resource. such as an ELB load balancer. For more information, see EvaluateTargetHealth.

  • If you include HealthCheckConfig and then use the service to register an instance that creates an alias record, Route 53 doesn't create the health check.

Charges for health checks

Health checks are basic Route 53 health checks that monitor an Amazon Web Services endpoint. For information about pricing for health checks, see Amazon Route 53 Pricing.

" + "documentation":"

Public DNS and HTTP namespaces only. A complex type that contains settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in DnsConfig.

If you specify a health check configuration, you can specify either HealthCheckCustomConfig or HealthCheckConfig but not both.

Health checks are basic Route 53 health checks that monitor an Amazon Web Services endpoint. For information about pricing for health checks, see Amazon Route 53 Pricing.

Note the following about configuring health checks.

A and AAAA records

If DnsConfig includes configurations for both A and AAAA records, Cloud Map creates a health check that uses the IPv4 address to check the health of the resource. If the endpoint tthat's specified by the IPv4 address is unhealthy, Route 53 considers both the A and AAAA records to be unhealthy.

CNAME records

You can't specify settings for HealthCheckConfig when the DNSConfig includes CNAME for the value of Type. If you do, the CreateService request will fail with an InvalidInput error.

Request interval

A Route 53 health checker in each health-checking Amazon Web Services Region sends a health check request to an endpoint every 30 seconds. On average, your endpoint receives a health check request about every two seconds. However, health checkers don't coordinate with one another. Therefore, you might sometimes see several requests in one second that's followed by a few seconds with no health checks at all.

Health checking regions

Health checkers perform checks from all Route 53 health-checking Regions. For a list of the current Regions, see Regions.

Alias records

When you register an instance, if you include the AWS_ALIAS_DNS_NAME attribute, Cloud Map creates a Route 53 alias record. Note the following:

  • Route 53 automatically sets EvaluateTargetHealth to true for alias records. When EvaluateTargetHealth is true, the alias record inherits the health of the referenced Amazon Web Services resource. such as an ELB load balancer. For more information, see EvaluateTargetHealth.

  • If you include HealthCheckConfig and then use the service to register an instance that creates an alias record, Route 53 doesn't create the health check.

Charges for health checks

Health checks are basic Route 53 health checks that monitor an Amazon Web Services endpoint. For information about pricing for health checks, see Amazon Route 53 Pricing.

" }, "HealthCheckCustomConfig":{ "type":"structure", @@ -1063,7 +1064,7 @@ }, "Attributes":{ "shape":"Attributes", - "documentation":"

A string map that contains the following information for the service that you specify in ServiceId:

  • The attributes that apply to the records that are defined in the service.

  • For each attribute, the applicable value.

Supported attribute keys include the following:

AWS_ALIAS_DNS_NAME

If you want Cloud Map to create a Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For information about how to get the DNS name, see AliasTarget->DNSName in the Route 53 API Reference.

Note the following:

  • The configuration for the service that's specified by ServiceId must include settings for an A record, an AAAA record, or both.

  • In the service that's specified by ServiceId, the value of RoutingPolicy must be WEIGHTED.

  • If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud Map creates the health check, but it won't associate the health check with the alias record.

  • Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources other than ELB load balancers.

  • If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any of the AWS_INSTANCE attributes.

AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 instance ID for the instance. The AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.

AWS_INIT_HEALTH_STATUS

If the service configuration includes HealthCheckCustomConfig, you can optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

AWS_INSTANCE_CNAME

If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries (for example, example.com).

This value is required if the service specified by ServiceId includes settings for an CNAME record.

AWS_INSTANCE_IPV4

If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

This value is required if the service specified by ServiceId includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_IPV6

If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).

This value is required if the service specified by ServiceId includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_PORT

If the service includes an SRV record, the value that you want Route 53 to return for the port.

If the service includes HealthCheckConfig, the port on the endpoint that you want Route 53 to send requests to.

This value is required if you specified settings for an SRV record or a Route 53 health check when you created the service.

" + "documentation":"

A string map that contains the following information for the service that you specify in ServiceId:

  • The attributes that apply to the records that are defined in the service.

  • For each attribute, the applicable value.

Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries.

Supported attribute keys include the following:

AWS_ALIAS_DNS_NAME

If you want Cloud Map to create a Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For information about how to get the DNS name, see AliasTarget->DNSName in the Route 53 API Reference.

Note the following:

  • The configuration for the service that's specified by ServiceId must include settings for an A record, an AAAA record, or both.

  • In the service that's specified by ServiceId, the value of RoutingPolicy must be WEIGHTED.

  • If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud Map creates the health check, but it won't associate the health check with the alias record.

  • Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources other than ELB load balancers.

  • If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any of the AWS_INSTANCE attributes.

AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 instance ID for the instance. The AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.

AWS_INIT_HEALTH_STATUS

If the service configuration includes HealthCheckCustomConfig, you can optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

AWS_INSTANCE_CNAME

If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries (for example, example.com).

This value is required if the service specified by ServiceId includes settings for an CNAME record.

AWS_INSTANCE_IPV4

If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

This value is required if the service specified by ServiceId includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_IPV6

If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).

This value is required if the service specified by ServiceId includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_PORT

If the service includes an SRV record, the value that you want Route 53 to return for the port.

If the service includes HealthCheckConfig, the port on the endpoint that you want Route 53 to send requests to.

This value is required if you specified settings for an SRV record or a Route 53 health check when you created the service.

" } }, "documentation":"

A complex type that contains information about an instance that Cloud Map creates when you submit a RegisterInstance request.

" @@ -1100,7 +1101,7 @@ }, "Attributes":{ "shape":"Attributes", - "documentation":"

A string map that contains the following information:

  • The attributes that are associated with the instance.

  • For each attribute, the applicable value.

Supported attribute keys include the following:

AWS_ALIAS_DNS_NAME

For an alias record that routes traffic to an Elastic Load Balancing load balancer, the DNS name that's associated with the load balancer.

AWS_EC2_INSTANCE_ID (HTTP namespaces only)

The Amazon EC2 instance ID for the instance. When the AWS_EC2_INSTANCE_ID attribute is specified, then the AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.

AWS_INIT_HEALTH_STATUS

If the service configuration includes HealthCheckCustomConfig, you can optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

AWS_INSTANCE_CNAME

For a CNAME record, the domain name that Route 53 returns in response to DNS queries (for example, example.com).

AWS_INSTANCE_IPV4

For an A record, the IPv4 address that Route 53 returns in response to DNS queries (for example, 192.0.2.44).

AWS_INSTANCE_IPV6

For an AAAA record, the IPv6 address that Route 53 returns in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).

AWS_INSTANCE_PORT

For an SRV record, the value that Route 53 returns for the port. In addition, if the service includes HealthCheckConfig, the port on the endpoint that Route 53 sends requests to.

" + "documentation":"

A string map that contains the following information:

  • The attributes that are associated with the instance.

  • For each attribute, the applicable value.

Supported attribute keys include the following:

AWS_ALIAS_DNS_NAME

For an alias record that routes traffic to an Elastic Load Balancing load balancer, the DNS name that's associated with the load balancer.

AWS_EC2_INSTANCE_ID (HTTP namespaces only)

The Amazon EC2 instance ID for the instance. When the AWS_EC2_INSTANCE_ID attribute is specified, then the AWS_INSTANCE_IPV4 attribute contains the primary private IPv4 address.

AWS_INIT_HEALTH_STATUS

If the service configuration includes HealthCheckCustomConfig, you can optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

AWS_INSTANCE_CNAME

For a CNAME record, the domain name that Route 53 returns in response to DNS queries (for example, example.com).

AWS_INSTANCE_IPV4

For an A record, the IPv4 address that Route 53 returns in response to DNS queries (for example, 192.0.2.44).

AWS_INSTANCE_IPV6

For an AAAA record, the IPv6 address that Route 53 returns in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).

AWS_INSTANCE_PORT

For an SRV record, the value that Route 53 returns for the port. In addition, if the service includes HealthCheckConfig, the port on the endpoint that Route 53 sends requests to.

" } }, "documentation":"

A complex type that contains information about the instances that you registered by using a specified service.

" @@ -1330,22 +1331,26 @@ "members":{ "Name":{ "shape":"NamespaceFilterName", - "documentation":"

Specify TYPE.

" + "documentation":"

Specify the namespaces that you want to get using one of the following.

  • TYPE: Gets the namespaces of the specified type.

  • NAME: Gets the namespaces with the specified name.

  • HTTP_NAME: Gets the namespaces with the specified HTTP name.

" }, "Values":{ "shape":"FilterValues", - "documentation":"

If you specify EQ for Condition, specify either DNS_PUBLIC or DNS_PRIVATE.

If you specify IN for Condition, you can specify DNS_PUBLIC, DNS_PRIVATE, or both.

" + "documentation":"

Specify the values that are applicable to the value that you specify for Name.

  • TYPE: Specify HTTP, DNS_PUBLIC, or DNS_PRIVATE.

  • NAME: Specify the name of the namespace, which is found in Namespace.Name.

  • HTTP_NAME: Specify the HTTP name of the namespace, which is found in Namespace.Properties.HttpProperties.HttpName.

" }, "Condition":{ "shape":"FilterCondition", - "documentation":"

The operator that you want to use to determine whether ListNamespaces returns a namespace. Valid values for condition include:

EQ

When you specify EQ for the condition, you can choose to list only public namespaces or private namespaces, but not both. EQ is the default condition and can be omitted.

IN

When you specify IN for the condition, you can choose to list public namespaces, private namespaces, or both.

BETWEEN

Not applicable

" + "documentation":"

Specify the operator that you want to use to determine whether a namespace matches the specified value. Valid values for Condition are one of the following.

  • EQ: When you specify EQ for Condition, you can specify only one value. EQ is supported for TYPE, NAME, and HTTP_NAME. EQ is the default condition and can be omitted.

  • BEGINS_WITH: When you specify BEGINS_WITH for Condition, you can specify only one value. BEGINS_WITH is supported for TYPE, NAME, and HTTP_NAME.

" } }, "documentation":"

A complex type that identifies the namespaces that you want to list. You can choose to list public or private namespaces.

" }, "NamespaceFilterName":{ "type":"string", - "enum":["TYPE"] + "enum":[ + "TYPE", + "NAME", + "HTTP_NAME" + ] }, "NamespaceFilters":{ "type":"list", @@ -1362,12 +1367,12 @@ }, "NamespaceNamePrivate":{ "type":"string", - "max":1024, - "pattern":"^[!-~]{1,1024}$" + "max":253, + "pattern":"^[!-~]{1,253}$" }, "NamespaceNamePublic":{ "type":"string", - "max":1024, + "max":253, "pattern":"^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?$" }, "NamespaceNotFound":{ @@ -1383,7 +1388,7 @@ "members":{ "DnsProperties":{ "shape":"DnsProperties", - "documentation":"

A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when you create a namespace.

" + "documentation":"

A complex type that contains the ID for the Route 53 hosted zone that Cloud Map creates when you create a namespace.

" }, "HttpProperties":{ "shape":"HttpProperties", @@ -1409,7 +1414,7 @@ }, "Name":{ "shape":"NamespaceName", - "documentation":"

The name of the namespace. When you create a namespace, Cloud Map automatically creates a Route 53 hosted zone that has the same name as the namespace.

" + "documentation":"

The name of the namespace. When you create a namespace, Cloud Map automatically creates a Route 53 hosted zone that has the same name as the namespace.

" }, "Type":{ "shape":"NamespaceType", @@ -1727,7 +1732,7 @@ }, "InstanceId":{ "shape":"InstanceId", - "documentation":"

An identifier that you want to associate with the instance. Note the following:

  • If the service that's specified by ServiceId includes settings for an SRV record, the value of InstanceId is automatically included as part of the value for the SRV record. For more information, see DnsRecord > Type.

  • You can use this value to update an existing instance.

  • To register a new instance, you must specify a value that's unique among instances that you register by using the same service.

  • If you specify an existing InstanceId and ServiceId, Cloud Map updates the existing DNS records, if any. If there's also an existing health check, Cloud Map deletes the old health check and creates a new one.

    The health check isn't deleted immediately, so it will still appear for a while if you submit a ListHealthChecks request, for example.

" + "documentation":"

An identifier that you want to associate with the instance. Note the following:

  • If the service that's specified by ServiceId includes settings for an SRV record, the value of InstanceId is automatically included as part of the value for the SRV record. For more information, see DnsRecord > Type.

  • You can use this value to update an existing instance.

  • To register a new instance, you must specify a value that's unique among instances that you register by using the same service.

  • If you specify an existing InstanceId and ServiceId, Cloud Map updates the existing DNS records, if any. If there's also an existing health check, Cloud Map deletes the old health check and creates a new one.

    The health check isn't deleted immediately, so it will still appear for a while if you submit a ListHealthChecks request, for example.

Do not include sensitive information in InstanceId if the namespace is discoverable by public DNS queries and any Type member of DnsRecord for the service contains SRV because the InstanceId is discoverable by public DNS queries.

" }, "CreatorRequestId":{ "shape":"ResourceId", @@ -1736,7 +1741,7 @@ }, "Attributes":{ "shape":"Attributes", - "documentation":"

A string map that contains the following information for the service that you specify in ServiceId:

  • The attributes that apply to the records that are defined in the service.

  • For each attribute, the applicable value.

Supported attribute keys include the following:

AWS_ALIAS_DNS_NAME

If you want Cloud Map to create an Amazon Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For information about how to get the DNS name, see \"DNSName\" in the topic AliasTarget in the Route 53 API Reference.

Note the following:

  • The configuration for the service that's specified by ServiceId must include settings for an A record, an AAAA record, or both.

  • In the service that's specified by ServiceId, the value of RoutingPolicy must be WEIGHTED.

  • If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud Map will create the Route 53 health check, but it doesn't associate the health check with the alias record.

  • Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources other than Elastic Load Balancing load balancers.

  • If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any of the AWS_INSTANCE attributes.

AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that can be specified is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified, then the AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4 address.

AWS_INIT_HEALTH_STATUS

If the service configuration includes HealthCheckCustomConfig, you can optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

AWS_INSTANCE_CNAME

If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries (for example, example.com).

This value is required if the service specified by ServiceId includes settings for an CNAME record.

AWS_INSTANCE_IPV4

If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

This value is required if the service specified by ServiceId includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_IPV6

If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).

This value is required if the service specified by ServiceId includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_PORT

If the service includes an SRV record, the value that you want Route 53 to return for the port.

If the service includes HealthCheckConfig, the port on the endpoint that you want Route 53 to send requests to.

This value is required if you specified settings for an SRV record or a Route 53 health check when you created the service.

Custom attributes

You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided attributes (sum of all keys and values) must not exceed 5,000 characters.

" + "documentation":"

A string map that contains the following information for the service that you specify in ServiceId:

  • The attributes that apply to the records that are defined in the service.

  • For each attribute, the applicable value.

Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries.

Supported attribute keys include the following:

AWS_ALIAS_DNS_NAME

If you want Cloud Map to create an Amazon Route 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For information about how to get the DNS name, see \"DNSName\" in the topic AliasTarget in the Route 53 API Reference.

Note the following:

  • The configuration for the service that's specified by ServiceId must include settings for an A record, an AAAA record, or both.

  • In the service that's specified by ServiceId, the value of RoutingPolicy must be WEIGHTED.

  • If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud Map will create the Route 53 health check, but it doesn't associate the health check with the alias record.

  • Auto naming currently doesn't support creating alias records that route traffic to Amazon Web Services resources other than Elastic Load Balancing load balancers.

  • If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any of the AWS_INSTANCE attributes.

AWS_EC2_INSTANCE_ID

HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that can be specified is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified, then the AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4 address.

AWS_INIT_HEALTH_STATUS

If the service configuration includes HealthCheckCustomConfig, you can optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

AWS_INSTANCE_CNAME

If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries (for example, example.com).

This value is required if the service specified by ServiceId includes settings for an CNAME record.

AWS_INSTANCE_IPV4

If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries (for example, 192.0.2.44).

This value is required if the service specified by ServiceId includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_IPV6

If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries (for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345).

This value is required if the service specified by ServiceId includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4, AWS_INSTANCE_IPV6, or both.

AWS_INSTANCE_PORT

If the service includes an SRV record, the value that you want Route 53 to return for the port.

If the service includes HealthCheckConfig, the port on the endpoint that you want Route 53 to send requests to.

This value is required if you specified settings for an SRV record or a Route 53 health check when you created the service.

Custom attributes

You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided attributes (sum of all keys and values) must not exceed 5,000 characters.

" } } }, @@ -1852,7 +1857,7 @@ }, "DnsConfig":{ "shape":"DnsConfig", - "documentation":"

A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.

" + "documentation":"

A complex type that contains information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.

The record types of a service can only be changed by deleting the service and recreating it with a new Dnsconfig.

" }, "Type":{ "shape":"ServiceType", @@ -1860,7 +1865,7 @@ }, "HealthCheckConfig":{ "shape":"HealthCheckConfig", - "documentation":"

Public DNS and HTTP namespaces only. A complex type that contains settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in DnsConfig.

For information about the charges for health checks, see Amazon Route 53 Pricing.

" + "documentation":"

Public DNS and HTTP namespaces only. A complex type that contains settings for an optional health check. If you specify settings for a health check, Cloud Map associates the health check with the records that you specify in DnsConfig.

For information about the charges for health checks, see Amazon Route 53 Pricing.

" }, "HealthCheckCustomConfig":{ "shape":"HealthCheckCustomConfig", @@ -1902,7 +1907,7 @@ }, "DnsConfig":{ "shape":"DnsConfigChange", - "documentation":"

Information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.

" + "documentation":"

Information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.

" }, "HealthCheckConfig":{ "shape":"HealthCheckConfig", @@ -1928,7 +1933,7 @@ }, "Condition":{ "shape":"FilterCondition", - "documentation":"

The operator that you want to use to determine whether a service is returned by ListServices. Valid values for Condition include the following:

  • EQ: When you specify EQ, specify one namespace ID for Values. EQ is the default condition and can be omitted.

  • IN: When you specify IN, specify a list of the IDs for the namespaces that you want ListServices to return a list of services for.

  • BETWEEN: Not applicable.

" + "documentation":"

The operator that you want to use to determine whether a service is returned by ListServices. Valid values for Condition include the following:

  • EQ: When you specify EQ, specify one namespace ID for Values. EQ is the default condition and can be omitted.

" } }, "documentation":"

A complex type that lets you specify the namespaces that you want to list services for.

" @@ -1986,7 +1991,7 @@ }, "DnsConfig":{ "shape":"DnsConfig", - "documentation":"

Information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.

" + "documentation":"

Information about the Route 53 DNS records that you want Cloud Map to create when you register an instance.

" }, "HealthCheckConfig":{ "shape":"HealthCheckConfig", diff --git a/botocore/data/ses/2010-12-01/endpoint-rule-set-1.json b/botocore/data/ses/2010-12-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..103753b5 --- /dev/null +++ b/botocore/data/ses/2010-12-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://email.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sesv2/2019-09-27/endpoint-rule-set-1.json b/botocore/data/sesv2/2019-09-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..15ffbd7a --- /dev/null +++ b/botocore/data/sesv2/2019-09-27/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://email.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://email.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sesv2/2019-09-27/examples-1.json b/botocore/data/sesv2/2019-09-27/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/sesv2/2019-09-27/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/sesv2/2019-09-27/service-2.json b/botocore/data/sesv2/2019-09-27/service-2.json index 01180f44..e4b19080 100644 --- a/botocore/data/sesv2/2019-09-27/service-2.json +++ b/botocore/data/sesv2/2019-09-27/service-2.json @@ -13,6 +13,22 @@ "uid":"sesv2-2019-09-27" }, "operations":{ + "BatchGetMetricData":{ + "name":"BatchGetMetricData", + "http":{ + "method":"POST", + "requestUri":"/v2/email/metrics/batch" + }, + "input":{"shape":"BatchGetMetricDataRequest"}, + "output":{"shape":"BatchGetMetricDataResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"InternalServiceErrorException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Retrieves batches of metric data collected based on your sending activity.

You can execute this operation no more than 16 times per second, and with at most 160 queries from the batches per second (cumulative).

" + }, "CreateConfigurationSet":{ "name":"CreateConfigurationSet", "http":{ @@ -95,7 +111,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Creates a new custom verification email template.

For more information about custom verification email templates, see Using Custom Verification Email Templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" + "documentation":"

Creates a new custom verification email template.

For more information about custom verification email templates, see Using custom verification email templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" }, "CreateDedicatedIpPool":{ "name":"CreateDedicatedIpPool", @@ -276,7 +292,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"BadRequestException"} ], - "documentation":"

Deletes an existing custom verification email template.

For more information about custom verification email templates, see Using Custom Verification Email Templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" + "documentation":"

Deletes an existing custom verification email template.

For more information about custom verification email templates, see Using custom verification email templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" }, "DeleteDedicatedIpPool":{ "name":"DeleteDedicatedIpPool", @@ -457,7 +473,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"BadRequestException"} ], - "documentation":"

Returns the custom email verification template for the template name you specify.

For more information about custom verification email templates, see Using Custom Verification Email Templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" + "documentation":"

Returns the custom email verification template for the template name you specify.

For more information about custom verification email templates, see Using custom verification email templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" }, "GetDedicatedIp":{ "name":"GetDedicatedIp", @@ -474,6 +490,21 @@ ], "documentation":"

Get information about a dedicated IP address, including the name of the dedicated IP pool that it's associated with, as well information about the automatic warm-up process for the address.

" }, + "GetDedicatedIpPool":{ + "name":"GetDedicatedIpPool", + "http":{ + "method":"GET", + "requestUri":"/v2/email/dedicated-ip-pools/{PoolName}" + }, + "input":{"shape":"GetDedicatedIpPoolRequest"}, + "output":{"shape":"GetDedicatedIpPoolResponse"}, + "errors":[ + {"shape":"TooManyRequestsException"}, + {"shape":"NotFoundException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Retrieve information about the dedicated pool.

" + }, "GetDedicatedIps":{ "name":"GetDedicatedIps", "http":{ @@ -679,7 +710,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"BadRequestException"} ], - "documentation":"

Lists the existing custom verification email templates for your account in the current Amazon Web Services Region.

For more information about custom verification email templates, see Using Custom Verification Email Templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" + "documentation":"

Lists the existing custom verification email templates for your account in the current Amazon Web Services Region.

For more information about custom verification email templates, see Using custom verification email templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" }, "ListDedicatedIpPools":{ "name":"ListDedicatedIpPools", @@ -767,6 +798,21 @@ ], "documentation":"

Lists all of the import jobs.

" }, + "ListRecommendations":{ + "name":"ListRecommendations", + "http":{ + "method":"POST", + "requestUri":"/v2/email/vdm/recommendations" + }, + "input":{"shape":"ListRecommendationsRequest"}, + "output":{"shape":"ListRecommendationsResponse"}, + "errors":[ + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"} + ], + "documentation":"

Lists the recommendations present in your Amazon SES account in the current Amazon Web Services Region.

You can execute this operation no more than once per second.

" + }, "ListSuppressedDestinations":{ "name":"ListSuppressedDestinations", "http":{ @@ -854,6 +900,20 @@ ], "documentation":"

Change the settings for the account-level suppression list.

" }, + "PutAccountVdmAttributes":{ + "name":"PutAccountVdmAttributes", + "http":{ + "method":"PUT", + "requestUri":"/v2/email/account/vdm" + }, + "input":{"shape":"PutAccountVdmAttributesRequest"}, + "output":{"shape":"PutAccountVdmAttributesResponse"}, + "errors":[ + {"shape":"BadRequestException"}, + {"shape":"TooManyRequestsException"} + ], + "documentation":"

Update your Amazon SES account VDM attributes.

You can execute this operation no more than once per second.

" + }, "PutConfigurationSetDeliveryOptions":{ "name":"PutConfigurationSetDeliveryOptions", "http":{ @@ -929,6 +989,21 @@ ], "documentation":"

Specify a custom domain to use for open and click tracking elements in email that you send.

" }, + "PutConfigurationSetVdmOptions":{ + "name":"PutConfigurationSetVdmOptions", + "http":{ + "method":"PUT", + "requestUri":"/v2/email/configuration-sets/{ConfigurationSetName}/vdm-options" + }, + "input":{"shape":"PutConfigurationSetVdmOptionsRequest"}, + "output":{"shape":"PutConfigurationSetVdmOptionsResponse"}, + "errors":[ + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"BadRequestException"} + ], + "documentation":"

Specify VDM preferences for email that you send using the configuration set.

You can execute this operation no more than once per second.

" + }, "PutDedicatedIpInPool":{ "name":"PutDedicatedIpInPool", "http":{ @@ -1102,7 +1177,7 @@ {"shape":"NotFoundException"}, {"shape":"BadRequestException"} ], - "documentation":"

Adds an email address to the list of identities for your Amazon SES account in the current Amazon Web Services Region and attempts to verify it. As a result of executing this operation, a customized verification email is sent to the specified address.

To use this operation, you must first create a custom verification email template. For more information about creating and using custom verification email templates, see Using Custom Verification Email Templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" + "documentation":"

Adds an email address to the list of identities for your Amazon SES account in the current Amazon Web Services Region and attempts to verify it. As a result of executing this operation, a customized verification email is sent to the specified address.

To use this operation, you must first create a custom verification email template. For more information about creating and using custom verification email templates, see Using custom verification email templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" }, "SendEmail":{ "name":"SendEmail", @@ -1231,7 +1306,7 @@ {"shape":"BadRequestException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Updates an existing custom verification email template.

For more information about custom verification email templates, see Using Custom Verification Email Templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" + "documentation":"

Updates an existing custom verification email template.

For more information about custom verification email templates, see Using custom verification email templates in the Amazon SES Developer Guide.

You can execute this operation no more than once per second.

" }, "UpdateEmailIdentityPolicy":{ "name":"UpdateEmailIdentityPolicy", @@ -1335,6 +1410,74 @@ "error":{"httpStatusCode":400}, "exception":true }, + "BatchGetMetricDataQueries":{ + "type":"list", + "member":{"shape":"BatchGetMetricDataQuery"}, + "max":10, + "min":1 + }, + "BatchGetMetricDataQuery":{ + "type":"structure", + "required":[ + "Id", + "Namespace", + "Metric", + "StartDate", + "EndDate" + ], + "members":{ + "Id":{ + "shape":"QueryIdentifier", + "documentation":"

The query identifier.

" + }, + "Namespace":{ + "shape":"MetricNamespace", + "documentation":"

The query namespace - e.g. VDM

" + }, + "Metric":{ + "shape":"Metric", + "documentation":"

The queried metric. This can be one of the following:

  • SEND – Emails sent eligible for tracking in the VDM dashboard. This excludes emails sent to the mailbox simulator and emails addressed to more than one recipient.

  • COMPLAINT – Complaints received for your account. This excludes complaints from the mailbox simulator, those originating from your account-level suppression list (if enabled), and those for emails addressed to more than one recipient

  • PERMANENT_BOUNCE – Permanent bounces - i.e. feedback received for emails sent to non-existent mailboxes. Excludes bounces from the mailbox simulator, those originating from your account-level suppression list (if enabled), and those for emails addressed to more than one recipient.

  • TRANSIENT_BOUNCE – Transient bounces - i.e. feedback received for delivery failures excluding issues with non-existent mailboxes. Excludes bounces from the mailbox simulator, and those for emails addressed to more than one recipient.

  • OPEN – Unique open events for emails including open trackers. Excludes opens for emails addressed to more than one recipient.

  • CLICK – Unique click events for emails including wrapped links. Excludes clicks for emails addressed to more than one recipient.

  • DELIVERY – Successful deliveries for email sending attempts. Excludes deliveries to the mailbox simulator and for emails addressed to more than one recipient.

  • DELIVERY_OPEN – Successful deliveries for email sending attempts. Excludes deliveries to the mailbox simulator, for emails addressed to more than one recipient, and emails without open trackers.

  • DELIVERY_CLICK – Successful deliveries for email sending attempts. Excludes deliveries to the mailbox simulator, for emails addressed to more than one recipient, and emails without click trackers.

  • DELIVERY_COMPLAINT – Successful deliveries for email sending attempts. Excludes deliveries to the mailbox simulator, for emails addressed to more than one recipient, and emails addressed to recipients hosted by ISPs with which Amazon SES does not have a feedback loop agreement.

" + }, + "Dimensions":{ + "shape":"Dimensions", + "documentation":"

An object that contains mapping between MetricDimensionName and MetricDimensionValue to filter metrics by.

" + }, + "StartDate":{ + "shape":"Timestamp", + "documentation":"

Represents the start date for the query interval.

" + }, + "EndDate":{ + "shape":"Timestamp", + "documentation":"

Represents the end date for the query interval.

" + } + }, + "documentation":"

Represents a single metric data query to include in a batch.

" + }, + "BatchGetMetricDataRequest":{ + "type":"structure", + "required":["Queries"], + "members":{ + "Queries":{ + "shape":"BatchGetMetricDataQueries", + "documentation":"

A list of queries for metrics to be retrieved.

" + } + }, + "documentation":"

Represents a request to retrieve a batch of metric data.

" + }, + "BatchGetMetricDataResponse":{ + "type":"structure", + "members":{ + "Results":{ + "shape":"MetricDataResultList", + "documentation":"

A list of successfully retrieved MetricDataResult.

" + }, + "Errors":{ + "shape":"MetricDataErrorList", + "documentation":"

A list of MetricDataError encountered while processing your metric data batch request.

" + } + }, + "documentation":"

Represents the result of processing your metric data batch request

" + }, "BehaviorOnMxFailure":{ "type":"string", "documentation":"

The action to take if the required MX record can't be found when you send an email. When you set this value to UseDefaultValue, the mail is sent using amazonses.com as the MAIL FROM domain. When you set this value to RejectMessage, the Amazon SES API v2 returns a MailFromDomainNotVerified error, and doesn't attempt to deliver the email.

These behaviors are taken when the custom MAIL FROM domain configuration is in the Pending, Failed, and TemporaryFailure states.

", @@ -1356,7 +1499,7 @@ }, "ListingTime":{ "shape":"Timestamp", - "documentation":"

The time when the blacklisting event occurred, shown in Unix time format.

" + "documentation":"

The time when the blacklisting event occurred.

" }, "Description":{ "shape":"BlacklistingDescription", @@ -1503,7 +1646,7 @@ }, "DefaultDimensionValue":{ "shape":"DefaultDimensionValue", - "documentation":"

The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email. This value has to meet the following criteria:

  • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

  • It can contain no more than 256 characters.

" + "documentation":"

The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email. This value has to meet the following criteria:

  • Can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-), at signs (@), and periods (.).

  • It can contain no more than 256 characters.

" } }, "documentation":"

An object that defines the dimension configuration to use when you send email events to Amazon CloudWatch.

" @@ -1625,6 +1768,7 @@ }, "documentation":"

An object that represents the content of the email, and optionally a character set specification.

" }, + "Counter":{"type":"long"}, "CreateConfigurationSetEventDestinationRequest":{ "type":"structure", "required":[ @@ -1684,7 +1828,11 @@ "shape":"TagList", "documentation":"

An array of objects that define the tags (keys and values) to associate with the configuration set.

" }, - "SuppressionOptions":{"shape":"SuppressionOptions"} + "SuppressionOptions":{"shape":"SuppressionOptions"}, + "VdmOptions":{ + "shape":"VdmOptions", + "documentation":"

An object that defines the VDM options for emails that you send using the configuration set.

" + } }, "documentation":"

A request to create a configuration set.

" }, @@ -1782,7 +1930,7 @@ }, "TemplateContent":{ "shape":"TemplateContent", - "documentation":"

The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations. For more information, see Custom Verification Email Frequently Asked Questions in the Amazon SES Developer Guide.

" + "documentation":"

The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations. For more information, see Custom verification email frequently asked questions in the Amazon SES Developer Guide.

" }, "SuccessRedirectionURL":{ "shape":"SuccessRedirectionURL", @@ -1812,6 +1960,10 @@ "Tags":{ "shape":"TagList", "documentation":"

An object that defines the tags (keys and values) that you want to associate with the pool.

" + }, + "ScalingMode":{ + "shape":"ScalingMode", + "documentation":"

The type of scaling mode.

" } }, "documentation":"

A request to create a new dedicated IP pool.

" @@ -2049,6 +2201,26 @@ "type":"list", "member":{"shape":"DailyVolume"} }, + "DashboardAttributes":{ + "type":"structure", + "members":{ + "EngagementMetrics":{ + "shape":"FeatureStatus", + "documentation":"

Specifies the status of your VDM engagement metrics collection. Can be one of the following:

  • ENABLED – Amazon SES enables engagement metrics for your account.

  • DISABLED – Amazon SES disables engagement metrics for your account.

" + } + }, + "documentation":"

An object containing additional settings for your VDM configuration as applicable to the Dashboard.

" + }, + "DashboardOptions":{ + "type":"structure", + "members":{ + "EngagementMetrics":{ + "shape":"FeatureStatus", + "documentation":"

Specifies the status of your VDM engagement metrics collection. Can be one of the following:

  • ENABLED – Amazon SES enables engagement metrics for the configuration set.

  • DISABLED – Amazon SES disables engagement metrics for the configuration set.

" + } + }, + "documentation":"

An object containing additional settings for your VDM configuration as applicable to the Dashboard.

" + }, "DataFormat":{ "type":"string", "documentation":"

The data format of the import job's data source.

", @@ -2089,6 +2261,24 @@ "member":{"shape":"DedicatedIp"}, "documentation":"

A list of dedicated IP addresses that are associated with your Amazon Web Services account.

" }, + "DedicatedIpPool":{ + "type":"structure", + "required":[ + "PoolName", + "ScalingMode" + ], + "members":{ + "PoolName":{ + "shape":"PoolName", + "documentation":"

The name of the dedicated IP pool.

" + }, + "ScalingMode":{ + "shape":"ScalingMode", + "documentation":"

The type of the dedicated IP pool.

  • STANDARD – A dedicated IP pool where the customer can control which IPs are part of the pool.

  • MANAGED – A dedicated IP pool where the reputation and number of IPs is automatically managed by Amazon SES.

" + } + }, + "documentation":"

Contains information about a dedicated IP pool.

" + }, "DefaultDimensionValue":{ "type":"string", "documentation":"

The default value of the dimension that is published to Amazon CloudWatch if you don't provide the value of the dimension when you send an email. This value has to meet the following criteria:

  • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

  • It can contain no more than 256 characters.

" @@ -2336,7 +2526,7 @@ }, "CreateDate":{ "shape":"Timestamp", - "documentation":"

The date and time when the predictive inbox placement test was created, in Unix time format.

" + "documentation":"

The date and time when the predictive inbox placement test was created.

" }, "DeliverabilityTestStatus":{ "shape":"DeliverabilityTestStatus", @@ -2407,6 +2597,13 @@ "LINK_TAG" ] }, + "Dimensions":{ + "type":"map", + "key":{"shape":"MetricDimensionName"}, + "value":{"shape":"MetricDimensionValue"}, + "max":3, + "min":1 + }, "DisplayName":{"type":"string"}, "DkimAttributes":{ "type":"structure", @@ -2516,11 +2713,11 @@ }, "FirstSeenDateTime":{ "shape":"Timestamp", - "documentation":"

The first time, in Unix time format, when the email message was delivered to any recipient's inbox. This value can help you determine how long it took for a campaign to deliver an email message.

" + "documentation":"

The first time when the email message was delivered to any recipient's inbox. This value can help you determine how long it took for a campaign to deliver an email message.

" }, "LastSeenDateTime":{ "shape":"Timestamp", - "documentation":"

The last time, in Unix time format, when the email message was delivered to any recipient's inbox. This value can help you determine how long it took for a campaign to deliver an email message.

" + "documentation":"

The last time when the email message was delivered to any recipient's inbox. This value can help you determine how long it took for a campaign to deliver an email message.

" }, "InboxCount":{ "shape":"Volume", @@ -2567,7 +2764,7 @@ }, "SubscriptionStartDate":{ "shape":"Timestamp", - "documentation":"

The date, in Unix time format, when you enabled the Deliverability dashboard for the domain.

" + "documentation":"

The date when you enabled the Deliverability dashboard for the domain.

" }, "InboxPlacementTrackingOption":{ "shape":"InboxPlacementTrackingOption", @@ -2817,6 +3014,13 @@ "type":"string", "documentation":"

The URL that the recipient of the verification email is sent to if his or her address is not successfully verified.

" }, + "FeatureStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "FeedbackId":{"type":"string"}, "GeneralEnforcementStatus":{"type":"string"}, "GetAccountRequest":{ @@ -2855,6 +3059,10 @@ "Details":{ "shape":"AccountDetails", "documentation":"

An object that defines your account details.

" + }, + "VdmAttributes":{ + "shape":"VdmAttributes", + "documentation":"

The VDM attributes that apply to your Amazon SES account.

" } }, "documentation":"

A list of details about the email-sending capabilities of your Amazon SES account in the current Amazon Web Services Region.

" @@ -2949,6 +3157,10 @@ "SuppressionOptions":{ "shape":"SuppressionOptions", "documentation":"

An object that contains information about the suppression list preferences for your account.

" + }, + "VdmOptions":{ + "shape":"VdmOptions", + "documentation":"

An object that contains information about the VDM preferences for your configuration set.

" } }, "documentation":"

Information about a configuration set.

" @@ -3095,6 +3307,29 @@ }, "documentation":"

The following elements are returned by the service.

" }, + "GetDedicatedIpPoolRequest":{ + "type":"structure", + "required":["PoolName"], + "members":{ + "PoolName":{ + "shape":"PoolName", + "documentation":"

The name of the dedicated IP pool to retrieve.

", + "location":"uri", + "locationName":"PoolName" + } + }, + "documentation":"

A request to obtain more information about a dedicated IP pool.

" + }, + "GetDedicatedIpPoolResponse":{ + "type":"structure", + "members":{ + "DedicatedIpPool":{ + "shape":"DedicatedIpPool", + "documentation":"

An object that contains information about a dedicated IP pool.

" + } + }, + "documentation":"

The following element is returned by the service.

" + }, "GetDedicatedIpRequest":{ "type":"structure", "required":["Ip"], @@ -3172,7 +3407,7 @@ }, "SubscriptionExpiryDate":{ "shape":"Timestamp", - "documentation":"

The date, in Unix time format, when your current subscription to the Deliverability dashboard is scheduled to expire, if your subscription is scheduled to expire at the end of the current calendar month. This value is null if you have an active subscription that isn’t due to expire at the end of the month.

" + "documentation":"

The date when your current subscription to the Deliverability dashboard is scheduled to expire, if your subscription is scheduled to expire at the end of the current calendar month. This value is null if you have an active subscription that isn’t due to expire at the end of the month.

" }, "AccountStatus":{ "shape":"DeliverabilityDashboardAccountStatus", @@ -3374,6 +3609,10 @@ "ConfigurationSetName":{ "shape":"ConfigurationSetName", "documentation":"

The configuration set used by default when sending from this identity.

" + }, + "VerificationStatus":{ + "shape":"VerificationStatus", + "documentation":"

The verification status of the identity. The status can be one of the following:

  • PENDING – The verification process was initiated, but Amazon SES hasn't yet been able to verify the identity.

  • SUCCESS – The verification process completed successfully.

  • FAILED – The verification process failed.

  • TEMPORARY_FAILURE – A temporary issue is preventing Amazon SES from determining the verification status of the identity.

  • NOT_STARTED – The verification process hasn't been initiated for the identity.

" } }, "documentation":"

Details about an email identity.

" @@ -3488,6 +3727,26 @@ }, "documentation":"

Information about the suppressed email address.

" }, + "GuardianAttributes":{ + "type":"structure", + "members":{ + "OptimizedSharedDelivery":{ + "shape":"FeatureStatus", + "documentation":"

Specifies the status of your VDM optimized shared delivery. Can be one of the following:

  • ENABLED – Amazon SES enables optimized shared delivery for your account.

  • DISABLED – Amazon SES disables optimized shared delivery for your account.

" + } + }, + "documentation":"

An object containing additional settings for your VDM configuration as applicable to the Guardian.

" + }, + "GuardianOptions":{ + "type":"structure", + "members":{ + "OptimizedSharedDelivery":{ + "shape":"FeatureStatus", + "documentation":"

Specifies the status of your VDM optimized shared delivery. Can be one of the following:

  • ENABLED – Amazon SES enables optimized shared delivery for the configuration set.

  • DISABLED – Amazon SES disables optimized shared delivery for the configuration set.

" + } + }, + "documentation":"

An object containing additional settings for your VDM configuration as applicable to the Guardian.

" + }, "Identity":{ "type":"string", "min":1 @@ -3506,6 +3765,10 @@ "SendingEnabled":{ "shape":"Enabled", "documentation":"

Indicates whether or not you can send email from the identity.

An identity is an email address or domain that you send email from. Before you can send email from an identity, you have to demostrate that you own the identity, and that you authorize Amazon SES to send email from that identity.

" + }, + "VerificationStatus":{ + "shape":"VerificationStatus", + "documentation":"

The verification status of the identity. The status can be one of the following:

  • PENDING – The verification process was initiated, but Amazon SES hasn't yet been able to verify the identity.

  • SUCCESS – The verification process completed successfully.

  • FAILED – The verification process failed.

  • TEMPORARY_FAILURE – A temporary issue is preventing Amazon SES from determining the verification status of the identity.

  • NOT_STARTED – The verification process hasn't been initiated for the identity.

" } }, "documentation":"

Information about an email identity.

" @@ -3572,6 +3835,14 @@ "CreatedTimestamp":{ "shape":"Timestamp", "documentation":"

The date and time when the import job was created.

" + }, + "ProcessedRecordsCount":{ + "shape":"ProcessedRecordsCount", + "documentation":"

The current number of records processed.

" + }, + "FailedRecordsCount":{ + "shape":"FailedRecordsCount", + "documentation":"

The number of records that failed processing because of invalid input or other reasons.

" } }, "documentation":"

A summary of the import job.

" @@ -3595,6 +3866,15 @@ }, "documentation":"

An object that contains information about the inbox placement data settings for a verified domain that’s associated with your Amazon Web Services account. This data is available only if you enabled the Deliverability dashboard for the domain.

" }, + "InternalServiceErrorException":{ + "type":"structure", + "members":{ + }, + "documentation":"

The request couldn't be processed because an error occurred with the Amazon SES API v2.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, "InvalidNextTokenException":{ "type":"structure", "members":{ @@ -3906,13 +4186,13 @@ "members":{ "StartDate":{ "shape":"Timestamp", - "documentation":"

The first day, in Unix time format, that you want to obtain deliverability data for.

", + "documentation":"

The first day that you want to obtain deliverability data for.

", "location":"querystring", "locationName":"StartDate" }, "EndDate":{ "shape":"Timestamp", - "documentation":"

The last day, in Unix time format, that you want to obtain deliverability data for. This value has to be less than or equal to 30 days after the value of the StartDate parameter.

", + "documentation":"

The last day that you want to obtain deliverability data for. This value has to be less than or equal to 30 days after the value of the StartDate parameter.

", "location":"querystring", "locationName":"EndDate" }, @@ -4080,6 +4360,61 @@ "member":{"shape":"PoolName"}, "documentation":"

A list of dedicated IP pools that are associated with your Amazon Web Services account.

" }, + "ListRecommendationFilterValue":{ + "type":"string", + "max":512, + "min":1 + }, + "ListRecommendationsFilter":{ + "type":"map", + "key":{"shape":"ListRecommendationsFilterKey"}, + "value":{"shape":"ListRecommendationFilterValue"}, + "documentation":"

An object that contains mapping between ListRecommendationsFilterKey and ListRecommendationFilterValue to filter by.

", + "max":2, + "min":1 + }, + "ListRecommendationsFilterKey":{ + "type":"string", + "documentation":"

The ListRecommendations filter type. This can be one of the following:

  • TYPE – The recommendation type, with values like DKIM, SPF or DMARC.

  • IMPACT – The recommendation impact, with values like HIGH or LOW.

  • STATUS – The recommendation status, with values like OPEN or FIXED.

  • RESOURCE_ARN – The resource affected by the recommendation, with values like arn:aws:ses:us-east-1:123456789012:identity/example.com.

", + "enum":[ + "TYPE", + "IMPACT", + "STATUS", + "RESOURCE_ARN" + ] + }, + "ListRecommendationsRequest":{ + "type":"structure", + "members":{ + "Filter":{ + "shape":"ListRecommendationsFilter", + "documentation":"

Filters applied when retrieving recommendations. Can eiter be an individual filter, or combinations of STATUS and IMPACT or STATUS and TYPE

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A token returned from a previous call to ListRecommendations to indicate the position in the list of recommendations.

" + }, + "PageSize":{ + "shape":"MaxItems", + "documentation":"

The number of results to show in a single call to ListRecommendations. If the number of results is larger than the number you specified in this parameter, then the response includes a NextToken element, which you can use to obtain additional results.

The value you specify has to be at least 1, and can be no more than 100.

" + } + }, + "documentation":"

Represents a request to list the existing recommendations for your account.

" + }, + "ListRecommendationsResponse":{ + "type":"structure", + "members":{ + "Recommendations":{ + "shape":"RecommendationsList", + "documentation":"

The recommendations applicable to your account.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

A string token indicating that there might be additional recommendations available to be listed. Use the token provided in the ListRecommendationsResponse to use in the subsequent call to ListRecommendations with the same parameters to retrieve the next page of recommendations.

" + } + }, + "documentation":"

Contains the response to your request to retrieve the list of recommendations for your account.

" + }, "ListSuppressedDestinationsRequest":{ "type":"structure", "members":{ @@ -4091,13 +4426,13 @@ }, "StartDate":{ "shape":"Timestamp", - "documentation":"

Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list after a specific date. The date that you specify should be in Unix time format.

", + "documentation":"

Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list after a specific date.

", "location":"querystring", "locationName":"StartDate" }, "EndDate":{ "shape":"Timestamp", - "documentation":"

Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list before a specific date. The date that you specify should be in Unix time format.

", + "documentation":"

Used to filter the list of suppressed email destinations so that it only includes addresses that were added to the list before a specific date.

", "location":"querystring", "locationName":"EndDate" }, @@ -4170,7 +4505,7 @@ }, "BehaviorOnMxFailure":{ "shape":"BehaviorOnMxFailure", - "documentation":"

The action to take if the required MX record can't be found when you send an email. When you set this value to UseDefaultValue, the mail is sent using amazonses.com as the MAIL FROM domain. When you set this value to RejectMessage, the Amazon SES API v2 returns a MailFromDomainNotVerified error, and doesn't attempt to deliver the email.

These behaviors are taken when the custom MAIL FROM domain configuration is in the Pending, Failed, and TemporaryFailure states.

" + "documentation":"

The action to take if the required MX record can't be found when you send an email. When you set this value to USE_DEFAULT_VALUE, the mail is sent using amazonses.com as the MAIL FROM domain. When you set this value to REJECT_MESSAGE, the Amazon SES API v2 returns a MailFromDomainNotVerified error, and doesn't attempt to deliver the email.

These behaviors are taken when the custom MAIL FROM domain configuration is in the Pending, Failed, and TemporaryFailure states.

" } }, "documentation":"

A list of attributes that are associated with a MAIL FROM domain.

" @@ -4269,6 +4604,83 @@ "type":"string", "documentation":"

The value of the message tag. The message tag value has to meet the following criteria:

  • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

  • It can contain no more than 256 characters.

" }, + "Metric":{ + "type":"string", + "enum":[ + "SEND", + "COMPLAINT", + "PERMANENT_BOUNCE", + "TRANSIENT_BOUNCE", + "OPEN", + "CLICK", + "DELIVERY", + "DELIVERY_OPEN", + "DELIVERY_CLICK", + "DELIVERY_COMPLAINT" + ] + }, + "MetricDataError":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"QueryIdentifier", + "documentation":"

The query identifier.

" + }, + "Code":{ + "shape":"QueryErrorCode", + "documentation":"

The query error code. Can be one of:

  • INTERNAL_FAILURE – Amazon SES has failed to process one of the queries.

  • ACCESS_DENIED – You have insufficient access to retrieve metrics based on the given query.

" + }, + "Message":{ + "shape":"QueryErrorMessage", + "documentation":"

The error message associated with the current query error.

" + } + }, + "documentation":"

An error corresponding to the unsuccessful processing of a single metric data query.

" + }, + "MetricDataErrorList":{ + "type":"list", + "member":{"shape":"MetricDataError"} + }, + "MetricDataResult":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"QueryIdentifier", + "documentation":"

The query identifier.

" + }, + "Timestamps":{ + "shape":"TimestampList", + "documentation":"

A list of timestamps for the metric data results.

" + }, + "Values":{ + "shape":"MetricValueList", + "documentation":"

A list of values (cumulative / sum) for the metric data results.

" + } + }, + "documentation":"

The result of a single metric data query.

" + }, + "MetricDataResultList":{ + "type":"list", + "member":{"shape":"MetricDataResult"} + }, + "MetricDimensionName":{ + "type":"string", + "documentation":"

The BatchGetMetricDataQuery dimension name. This can be one of the following:

  • EMAIL_IDENTITY – The email identity used when sending messages.

  • CONFIGURATION_SET – The configuration set used when sending messages (if one was used).

  • ISP – The recipient ISP (e.g. Gmail, Yahoo, etc.).

", + "enum":[ + "EMAIL_IDENTITY", + "CONFIGURATION_SET", + "ISP" + ] + }, + "MetricDimensionValue":{"type":"string"}, + "MetricNamespace":{ + "type":"string", + "enum":["VDM"] + }, + "MetricValueList":{ + "type":"list", + "member":{"shape":"Counter"} + }, "NextToken":{"type":"string"}, "NotFoundException":{ "type":"structure", @@ -4456,6 +4868,22 @@ }, "documentation":"

An HTTP 200 response if the request succeeds, or an error message if the request fails.

" }, + "PutAccountVdmAttributesRequest":{ + "type":"structure", + "required":["VdmAttributes"], + "members":{ + "VdmAttributes":{ + "shape":"VdmAttributes", + "documentation":"

The VDM attributes that you wish to apply to your Amazon SES account.

" + } + }, + "documentation":"

A request to submit new account VDM attributes.

" + }, + "PutAccountVdmAttributesResponse":{ + "type":"structure", + "members":{ + } + }, "PutConfigurationSetDeliveryOptionsRequest":{ "type":"structure", "required":["ConfigurationSetName"], @@ -4575,6 +5003,29 @@ }, "documentation":"

An HTTP 200 response if the request succeeds, or an error message if the request fails.

" }, + "PutConfigurationSetVdmOptionsRequest":{ + "type":"structure", + "required":["ConfigurationSetName"], + "members":{ + "ConfigurationSetName":{ + "shape":"ConfigurationSetName", + "documentation":"

The name of the configuration set.

", + "location":"uri", + "locationName":"ConfigurationSetName" + }, + "VdmOptions":{ + "shape":"VdmOptions", + "documentation":"

The VDM options to apply to the configuration set.

" + } + }, + "documentation":"

A request to add specific VDM settings to a configuration set.

" + }, + "PutConfigurationSetVdmOptionsResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

An HTTP 200 response if the request succeeds, or an error message if the request fails.

" + }, "PutDedicatedIpInPoolRequest":{ "type":"structure", "required":[ @@ -4806,6 +5257,19 @@ }, "documentation":"

An HTTP 200 response if the request succeeds, or an error message if the request fails.

" }, + "QueryErrorCode":{ + "type":"string", + "enum":[ + "INTERNAL_FAILURE", + "ACCESS_DENIED" + ] + }, + "QueryErrorMessage":{"type":"string"}, + "QueryIdentifier":{ + "type":"string", + "max":255, + "min":1 + }, "RawMessage":{ "type":"structure", "required":["Data"], @@ -4825,6 +5289,67 @@ "type":"string", "documentation":"

The name of a blacklist that an IP address was found on.

" }, + "Recommendation":{ + "type":"structure", + "members":{ + "ResourceArn":{ + "shape":"AmazonResourceName", + "documentation":"

The resource affected by the recommendation, with values like arn:aws:ses:us-east-1:123456789012:identity/example.com.

" + }, + "Type":{ + "shape":"RecommendationType", + "documentation":"

The recommendation type, with values like DKIM, SPF or DMARC.

" + }, + "Description":{ + "shape":"RecommendationDescription", + "documentation":"

The recommendation description / disambiguator - e.g. DKIM1 and DKIM2 are different recommendations about your DKIM setup.

" + }, + "Status":{ + "shape":"RecommendationStatus", + "documentation":"

The recommendation status, with values like OPEN or FIXED.

" + }, + "CreatedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The first time this issue was encountered and the recommendation was generated.

" + }, + "LastUpdatedTimestamp":{ + "shape":"Timestamp", + "documentation":"

The last time the recommendation was updated.

" + }, + "Impact":{ + "shape":"RecommendationImpact", + "documentation":"

The recommendation impact, with values like HIGH or LOW.

" + } + }, + "documentation":"

A recommendation generated for your account.

" + }, + "RecommendationDescription":{"type":"string"}, + "RecommendationImpact":{ + "type":"string", + "enum":[ + "LOW", + "HIGH" + ] + }, + "RecommendationStatus":{ + "type":"string", + "enum":[ + "OPEN", + "FIXED" + ] + }, + "RecommendationType":{ + "type":"string", + "enum":[ + "DKIM", + "DMARC", + "SPF" + ] + }, + "RecommendationsList":{ + "type":"list", + "member":{"shape":"Recommendation"} + }, "RenderedEmailTemplate":{ "type":"string", "documentation":"

The complete MIME message rendered by applying the data in the TemplateData parameter to the template specified in the TemplateName parameter.

" @@ -4899,6 +5424,13 @@ "documentation":"

An Amazon S3 URL in the format s3://<bucket_name>/<object>.

", "pattern":"^s3:\\/\\/([^\\/]+)\\/(.*?([^\\/]+)\\/?)$" }, + "ScalingMode":{ + "type":"string", + "enum":[ + "STANDARD", + "MANAGED" + ] + }, "Selector":{ "type":"string", "max":63, @@ -5056,7 +5588,7 @@ "members":{ "Max24HourSend":{ "shape":"Max24HourSend", - "documentation":"

The maximum number of emails that you can send in the current Amazon Web Services Region over a 24-hour period. This value is also called your sending quota.

" + "documentation":"

The maximum number of emails that you can send in the current Amazon Web Services Region over a 24-hour period. A value of -1 signifies an unlimited quota. (This value is also referred to as your sending quota.)

" }, "MaxSendRate":{ "shape":"MaxSendRate", @@ -5338,6 +5870,10 @@ "documentation":"

The following element is returned by the service.

" }, "Timestamp":{"type":"timestamp"}, + "TimestampList":{ + "type":"list", + "member":{"shape":"Timestamp"} + }, "TlsPolicy":{ "type":"string", "documentation":"

Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is Require, messages are only delivered if a TLS connection can be established. If the value is Optional, messages can be delivered in plain text if a TLS connection can't be established.

", @@ -5583,7 +6119,7 @@ }, "TemplateContent":{ "shape":"TemplateContent", - "documentation":"

The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations. For more information, see Custom Verification Email Frequently Asked Questions in the Amazon SES Developer Guide.

" + "documentation":"

The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML, with some limitations. For more information, see Custom verification email frequently asked questions in the Amazon SES Developer Guide.

" }, "SuccessRedirectionURL":{ "shape":"SuccessRedirectionURL", @@ -5668,6 +6204,49 @@ "sensitive":true }, "UseDefaultIfPreferenceUnavailable":{"type":"boolean"}, + "VdmAttributes":{ + "type":"structure", + "required":["VdmEnabled"], + "members":{ + "VdmEnabled":{ + "shape":"FeatureStatus", + "documentation":"

Specifies the status of your VDM configuration. Can be one of the following:

  • ENABLED – Amazon SES enables VDM for your account.

  • DISABLED – Amazon SES disables VDM for your account.

" + }, + "DashboardAttributes":{ + "shape":"DashboardAttributes", + "documentation":"

Specifies additional settings for your VDM configuration as applicable to the Dashboard.

" + }, + "GuardianAttributes":{ + "shape":"GuardianAttributes", + "documentation":"

Specifies additional settings for your VDM configuration as applicable to the Guardian.

" + } + }, + "documentation":"

The VDM attributes that apply to your Amazon SES account.

" + }, + "VdmOptions":{ + "type":"structure", + "members":{ + "DashboardOptions":{ + "shape":"DashboardOptions", + "documentation":"

Specifies additional settings for your VDM configuration as applicable to the Dashboard.

" + }, + "GuardianOptions":{ + "shape":"GuardianOptions", + "documentation":"

Specifies additional settings for your VDM configuration as applicable to the Guardian.

" + } + }, + "documentation":"

An object that defines the VDM settings that apply to emails that you send using the configuration set.

" + }, + "VerificationStatus":{ + "type":"string", + "enum":[ + "PENDING", + "SUCCESS", + "FAILED", + "TEMPORARY_FAILURE", + "NOT_STARTED" + ] + }, "Volume":{ "type":"long", "documentation":"

An object that contains information about inbox placement volume.

" diff --git a/botocore/data/shield/2016-06-02/endpoint-rule-set-1.json b/botocore/data/shield/2016-06-02/endpoint-rule-set-1.json new file mode 100644 index 00000000..ecf990a9 --- /dev/null +++ b/botocore/data/shield/2016-06-02/endpoint-rule-set-1.json @@ -0,0 +1,610 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://shield-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "shield", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://shield-fips.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "shield", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://shield.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "shield", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://shield.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "shield", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://shield-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://shield-fips.us-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://shield-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://shield.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://shield.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "shield", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://shield.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/shield/2016-06-02/service-2.json b/botocore/data/shield/2016-06-02/service-2.json index 18d41d82..7be50499 100644 --- a/botocore/data/shield/2016-06-02/service-2.json +++ b/botocore/data/shield/2016-06-02/service-2.json @@ -31,7 +31,7 @@ {"shape":"OptimisticLockException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Authorizes the Shield Response Team (SRT) to access the specified Amazon S3 bucket containing log data such as Application Load Balancer access logs, CloudFront logs, or logs from third party sources. You can associate up to 10 Amazon S3 buckets with your subscription.

To use the services of the SRT and make an AssociateDRTLogBucket request, you must be subscribed to the Business Support plan or the Enterprise Support plan.

" + "documentation":"

Authorizes the Shield Response Team (SRT) to access the specified Amazon S3 bucket containing log data such as Application Load Balancer access logs, CloudFront logs, or logs from third party sources. You can associate up to 10 Amazon S3 buckets with your subscription.

To use the services of the SRT and make an AssociateDRTLogBucket request, you must be subscribed to the Business Support plan or the Enterprise Support plan.

" }, "AssociateDRTRole":{ "name":"AssociateDRTRole", @@ -49,7 +49,7 @@ {"shape":"OptimisticLockException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Authorizes the Shield Response Team (SRT) using the specified role, to access your Amazon Web Services account to assist with DDoS attack mitigation during potential attacks. This enables the SRT to inspect your WAF configuration and create or update WAF rules and web ACLs.

You can associate only one RoleArn with your subscription. If you submit an AssociateDRTRole request for an account that already has an associated role, the new RoleArn will replace the existing RoleArn.

Prior to making the AssociateDRTRole request, you must attach the AWSShieldDRTAccessPolicy managed policy to the role that you'll specify in the request. You can access this policy in the IAM console at AWSShieldDRTAccessPolicy. For more information see Adding and removing IAM identity permissions. The role must also trust the service principal drt.shield.amazonaws.com. For more information, see IAM JSON policy elements: Principal.

The SRT will have access only to your WAF and Shield resources. By submitting this request, you authorize the SRT to inspect your WAF and Shield configuration and create and update WAF rules and web ACLs on your behalf. The SRT takes these actions only if explicitly authorized by you.

You must have the iam:PassRole permission to make an AssociateDRTRole request. For more information, see Granting a user permissions to pass a role to an Amazon Web Services service.

To use the services of the SRT and make an AssociateDRTRole request, you must be subscribed to the Business Support plan or the Enterprise Support plan.

" + "documentation":"

Authorizes the Shield Response Team (SRT) using the specified role, to access your Amazon Web Services account to assist with DDoS attack mitigation during potential attacks. This enables the SRT to inspect your WAF configuration and create or update WAF rules and web ACLs.

You can associate only one RoleArn with your subscription. If you submit an AssociateDRTRole request for an account that already has an associated role, the new RoleArn will replace the existing RoleArn.

Prior to making the AssociateDRTRole request, you must attach the AWSShieldDRTAccessPolicy managed policy to the role that you'll specify in the request. You can access this policy in the IAM console at AWSShieldDRTAccessPolicy. For more information see Adding and removing IAM identity permissions. The role must also trust the service principal drt.shield.amazonaws.com. For more information, see IAM JSON policy elements: Principal.

The SRT will have access only to your WAF and Shield resources. By submitting this request, you authorize the SRT to inspect your WAF and Shield configuration and create and update WAF rules and web ACLs on your behalf. The SRT takes these actions only if explicitly authorized by you.

You must have the iam:PassRole permission to make an AssociateDRTRole request. For more information, see Granting a user permissions to pass a role to an Amazon Web Services service.

To use the services of the SRT and make an AssociateDRTRole request, you must be subscribed to the Business Support plan or the Enterprise Support plan.

" }, "AssociateHealthCheck":{ "name":"AssociateHealthCheck", @@ -104,7 +104,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Enables Shield Advanced for a specific Amazon Web Services resource. The resource can be an Amazon CloudFront distribution, Elastic Load Balancing load balancer, Global Accelerator accelerator, Elastic IP Address, or an Amazon Route 53 hosted zone.

You can add protection to only a single resource with each CreateProtection request. You can add protection to multiple resources at once through the Shield Advanced console at https://console.aws.amazon.com/wafv2/shieldv2#/. For more information see Getting Started with Shield Advanced and Adding Shield Advanced protection to Amazon Web Services resources.

" + "documentation":"

Enables Shield Advanced for a specific Amazon Web Services resource. The resource can be an Amazon CloudFront distribution, Amazon Route 53 hosted zone, Global Accelerator standard accelerator, Elastic IP Address, Application Load Balancer, or a Classic Load Balancer. You can protect Amazon EC2 instances and Network Load Balancers by association with protected Amazon EC2 Elastic IP addresses.

You can add protection to only a single resource with each CreateProtection request. You can add protection to multiple resources at once through the Shield Advanced console at https://console.aws.amazon.com/wafv2/shieldv2#/. For more information see Getting Started with Shield Advanced and Adding Shield Advanced protection to Amazon Web Services resources.

" }, "CreateProtectionGroup":{ "name":"CreateProtectionGroup", @@ -136,7 +136,7 @@ {"shape":"InternalErrorException"}, {"shape":"ResourceAlreadyExistsException"} ], - "documentation":"

Activates Shield Advanced for an account.

When you initally create a subscription, your subscription is set to be automatically renewed at the end of the existing subscription period. You can change this by submitting an UpdateSubscription request.

" + "documentation":"

Activates Shield Advanced for an account.

For accounts that are members of an Organizations organization, Shield Advanced subscriptions are billed against the organization's payer account, regardless of whether the payer account itself is subscribed.

When you initially create a subscription, your subscription is set to be automatically renewed at the end of the existing subscription period. You can change this by submitting an UpdateSubscription request.

" }, "DeleteProtection":{ "name":"DeleteProtection", @@ -297,7 +297,7 @@ {"shape":"OptimisticLockException"}, {"shape":"InvalidOperationException"} ], - "documentation":"

Disable the Shield Advanced automatic application layer DDoS mitigation feature for the resource. This stops Shield Advanced from creating, verifying, and applying WAF rules for attacks that it detects for the resource.

" + "documentation":"

Disable the Shield Advanced automatic application layer DDoS mitigation feature for the protected resource. This stops Shield Advanced from creating, verifying, and applying WAF rules for attacks that it detects for the resource.

" }, "DisableProactiveEngagement":{ "name":"DisableProactiveEngagement", @@ -383,7 +383,7 @@ {"shape":"OptimisticLockException"}, {"shape":"InvalidOperationException"} ], - "documentation":"

Enable the Shield Advanced automatic application layer DDoS mitigation for the resource.

This feature is available for Amazon CloudFront distributions only.

This causes Shield Advanced to create, verify, and apply WAF rules for DDoS attacks that it detects for the resource. Shield Advanced applies the rules in a Shield rule group inside the web ACL that you've associated with the resource. For information about how automatic mitigation works and the requirements for using it, see Shield Advanced automatic application layer DDoS mitigation.

Don't use this action to make changes to automatic mitigation settings when it's already enabled for a resource. Instead, use UpdateApplicationLayerAutomaticResponse.

To use this feature, you must associate a web ACL with the protected resource. The web ACL must be created using the latest version of WAF (v2). You can associate the web ACL through the Shield Advanced console at https://console.aws.amazon.com/wafv2/shieldv2#/. For more information, see Getting Started with Shield Advanced.

You can also do this through the WAF console or the WAF API, but you must manage Shield Advanced automatic mitigation through Shield Advanced. For information about WAF, see WAF Developer Guide.

" + "documentation":"

Enable the Shield Advanced automatic application layer DDoS mitigation for the protected resource.

This feature is available for Amazon CloudFront distributions and Application Load Balancers only.

This causes Shield Advanced to create, verify, and apply WAF rules for DDoS attacks that it detects for the resource. Shield Advanced applies the rules in a Shield rule group inside the web ACL that you've associated with the resource. For information about how automatic mitigation works and the requirements for using it, see Shield Advanced automatic application layer DDoS mitigation.

Don't use this action to make changes to automatic mitigation settings when it's already enabled for a resource. Instead, use UpdateApplicationLayerAutomaticResponse.

To use this feature, you must associate a web ACL with the protected resource. The web ACL must be created using the latest version of WAF (v2). You can associate the web ACL through the Shield Advanced console at https://console.aws.amazon.com/wafv2/shieldv2#/. For more information, see Getting Started with Shield Advanced. You can also associate the web ACL to the resource through the WAF console or the WAF API, but you must manage Shield Advanced automatic mitigation through Shield Advanced. For information about WAF, see WAF Developer Guide.

" }, "EnableProactiveEngagement":{ "name":"EnableProactiveEngagement", @@ -443,7 +443,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidPaginationTokenException"} ], - "documentation":"

Retrieves the ProtectionGroup objects for the account.

" + "documentation":"

Retrieves ProtectionGroup objects for the account. You can retrieve all protection groups or you can provide filtering criteria and retrieve just the subset of protection groups that match the criteria.

" }, "ListProtections":{ "name":"ListProtections", @@ -458,7 +458,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidPaginationTokenException"} ], - "documentation":"

Lists all Protection objects for the account.

" + "documentation":"

Retrieves Protection objects for the account. You can retrieve all protections or you can provide filtering criteria and retrieve just the subset of protections that match the criteria.

" }, "ListResourcesInProtectionGroup":{ "name":"ListResourcesInProtectionGroup", @@ -586,7 +586,7 @@ {"shape":"InvalidParameterException"}, {"shape":"OptimisticLockException"} ], - "documentation":"

Updates the details of an existing subscription. Only enter values for parameters you want to change. Empty parameters are not updated.

" + "documentation":"

Updates the details of an existing subscription. Only enter values for parameters you want to change. Empty parameters are not updated.

For accounts that are members of an Organizations organization, Shield Advanced subscriptions are billed against the organization's payer account, regardless of whether the payer account itself is subscribed.

" } }, "shapes":{ @@ -617,7 +617,10 @@ "shape":"ApplicationLayerAutomaticResponseStatus", "documentation":"

Indicates whether automatic application layer DDoS mitigation is enabled for the protection.

" }, - "Action":{"shape":"ResponseAction"} + "Action":{ + "shape":"ResponseAction", + "documentation":"

Specifies the action setting that Shield Advanced should use in the WAF rules that it creates on behalf of the protected resource in response to DDoS attacks. You specify this as part of the configuration for the automatic application layer DDoS mitigation feature, when you enable or update automatic mitigation. Shield Advanced creates the WAF rules in a Shield Advanced-managed rule group, inside the web ACL that you have associated with the resource.

" + } }, "documentation":"

The automatic application layer DDoS mitigation settings for a Protection. This configuration determines whether Shield Advanced automatically manages rules in the web ACL in order to respond to application layer events that Shield Advanced determines to be DDoS attacks.

" }, @@ -974,7 +977,7 @@ }, "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The ARN (Amazon Resource Name) of the resource to be protected.

The ARN should be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Elastic Load Balancer (Classic Load Balancer): arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name

  • For an Amazon CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id

  • For an Global Accelerator accelerator: arn:aws:globalaccelerator::account-id:accelerator/accelerator-id

  • For Amazon Route 53: arn:aws:route53:::hostedzone/hosted-zone-id

  • For an Elastic IP address: arn:aws:ec2:region:account-id:eip-allocation/allocation-id

" + "documentation":"

The ARN (Amazon Resource Name) of the resource to be protected.

The ARN should be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Elastic Load Balancer (Classic Load Balancer): arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name

  • For an Amazon CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id

  • For an Global Accelerator standard accelerator: arn:aws:globalaccelerator::account-id:accelerator/accelerator-id

  • For Amazon Route 53: arn:aws:route53:::hostedzone/hosted-zone-id

  • For an Elastic IP address: arn:aws:ec2:region:account-id:eip-allocation/allocation-id

" }, "Tags":{ "shape":"TagList", @@ -1058,7 +1061,7 @@ "members":{ "Attack":{ "shape":"AttackDetail", - "documentation":"

The attack that is described.

" + "documentation":"

The attack that you requested.

" } } }, @@ -1074,7 +1077,10 @@ "DataItems" ], "members":{ - "TimeRange":{"shape":"TimeRange"}, + "TimeRange":{ + "shape":"TimeRange", + "documentation":"

The time range of the attack.

" + }, "DataItems":{ "shape":"AttackStatisticsDataList", "documentation":"

The data that describes the attacks detected during the time period.

" @@ -1138,11 +1144,11 @@ "members":{ "ProtectionId":{ "shape":"ProtectionId", - "documentation":"

The unique identifier (ID) for the Protection object that is described. When submitting the DescribeProtection request you must provide either the ResourceArn or the ProtectionID, but not both.

" + "documentation":"

The unique identifier (ID) for the Protection object to describe. You must provide either the ResourceArn of the protected resource or the ProtectionID of the protection, but not both.

" }, "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The ARN (Amazon Resource Name) of the Amazon Web Services resource for the Protection object that is described. When submitting the DescribeProtection request you must provide either the ResourceArn or the ProtectionID, but not both.

" + "documentation":"

The ARN (Amazon Resource Name) of the protected Amazon Web Services resource. You must provide either the ResourceArn of the protected resource or the ProtectionID of the protection, but not both.

" } } }, @@ -1151,7 +1157,7 @@ "members":{ "Protection":{ "shape":"Protection", - "documentation":"

The Protection object that is described.

" + "documentation":"

The Protection that you requested.

" } } }, @@ -1175,7 +1181,7 @@ "members":{ "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The ARN (Amazon Resource Name) of the resource.

" + "documentation":"

The ARN (Amazon Resource Name) of the protected resource.

" } } }, @@ -1286,7 +1292,7 @@ "members":{ "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The ARN (Amazon Resource Name) of the resource.

" + "documentation":"

The ARN (Amazon Resource Name) of the protected resource.

" }, "Action":{ "shape":"ResponseAction", @@ -1335,6 +1341,46 @@ "type":"list", "member":{"shape":"HealthCheckId"} }, + "InclusionProtectionFilters":{ + "type":"structure", + "members":{ + "ResourceArns":{ + "shape":"ResourceArnFilters", + "documentation":"

The ARN (Amazon Resource Name) of the resource whose protection you want to retrieve.

" + }, + "ProtectionNames":{ + "shape":"ProtectionNameFilters", + "documentation":"

The name of the protection that you want to retrieve.

" + }, + "ResourceTypes":{ + "shape":"ProtectedResourceTypeFilters", + "documentation":"

The type of protected resource whose protections you want to retrieve.

" + } + }, + "documentation":"

Narrows the set of protections that the call retrieves. You can retrieve a single protection by providing its name or the ARN (Amazon Resource Name) of its protected resource. You can also retrieve all protections for a specific resource type. You can provide up to one criteria per filter type. Shield Advanced returns protections that exactly match all of the filter criteria that you provide.

" + }, + "InclusionProtectionGroupFilters":{ + "type":"structure", + "members":{ + "ProtectionGroupIds":{ + "shape":"ProtectionGroupIdFilters", + "documentation":"

The ID of the protection group that you want to retrieve.

" + }, + "Patterns":{ + "shape":"ProtectionGroupPatternFilters", + "documentation":"

The pattern specification of the protection groups that you want to retrieve.

" + }, + "ResourceTypes":{ + "shape":"ProtectedResourceTypeFilters", + "documentation":"

The resource type configuration of the protection groups that you want to retrieve. In the protection group configuration, you specify the resource type when you set the group's Pattern to BY_RESOURCE_TYPE.

" + }, + "Aggregations":{ + "shape":"ProtectionGroupAggregationFilters", + "documentation":"

The aggregation setting of the protection groups that you want to retrieve.

" + } + }, + "documentation":"

Narrows the set of protection groups that the call retrieves. You can retrieve a single protection group by its name and you can retrieve all protection groups that are configured with a specific pattern, aggregation, or resource type. You can provide up to one criteria per filter type. Shield Advanced returns the protection groups that exactly match all of the search criteria that you provide.

" + }, "Integer":{"type":"integer"}, "InternalErrorException":{ "type":"structure", @@ -1469,6 +1515,10 @@ "MaxResults":{ "shape":"MaxResults", "documentation":"

The greatest number of objects that you want Shield Advanced to return to the list request. Shield Advanced might return fewer objects than you indicate in this setting, even if more objects are available. If there are more objects remaining, Shield Advanced will always also return a NextToken value in the response.

The default setting is 20.

" + }, + "InclusionFilters":{ + "shape":"InclusionProtectionGroupFilters", + "documentation":"

Narrows the set of protection groups that the call retrieves. You can retrieve a single protection group by its name and you can retrieve all protection groups that are configured with specific pattern or aggregation settings. You can provide up to one criteria per filter type. Shield Advanced returns the protection groups that exactly match all of the search criteria that you provide.

" } } }, @@ -1496,6 +1546,10 @@ "MaxResults":{ "shape":"MaxResults", "documentation":"

The greatest number of objects that you want Shield Advanced to return to the list request. Shield Advanced might return fewer objects than you indicate in this setting, even if more objects are available. If there are more objects remaining, Shield Advanced will always also return a NextToken value in the response.

The default setting is 20.

" + }, + "InclusionFilters":{ + "shape":"InclusionProtectionFilters", + "documentation":"

Narrows the set of protections that the call retrieves. You can retrieve a single protection by providing its name or the ARN (Amazon Resource Name) of its protected resource. You can also retrieve all protections for a specific resource type. You can provide up to one criteria per filter type. Shield Advanced returns protections that exactly match all of the filter criteria that you provide.

" } } }, @@ -1609,7 +1663,7 @@ "members":{ "message":{"shape":"errorMessage"} }, - "documentation":"

The ARN of the role that you specifed does not exist.

", + "documentation":"

The ARN of the role that you specified does not exist.

", "exception":true }, "OptimisticLockException":{ @@ -1645,6 +1699,12 @@ "GLOBAL_ACCELERATOR" ] }, + "ProtectedResourceTypeFilters":{ + "type":"list", + "member":{"shape":"ProtectedResourceType"}, + "max":1, + "min":1 + }, "Protection":{ "type":"structure", "members":{ @@ -1694,7 +1754,7 @@ }, "Pattern":{ "shape":"ProtectionGroupPattern", - "documentation":"

The criteria to use to choose the protected resources for inclusion in the group. You can include all resources that have protections, provide a list of resource Amazon Resource Names (ARNs), or include all resources of a specified resource type.

" + "documentation":"

The criteria to use to choose the protected resources for inclusion in the group. You can include all resources that have protections, provide a list of resource ARNs (Amazon Resource Names), or include all resources of a specified resource type.

" }, "ResourceType":{ "shape":"ProtectedResourceType", @@ -1702,7 +1762,7 @@ }, "Members":{ "shape":"ProtectionGroupMembers", - "documentation":"

The Amazon Resource Names (ARNs) of the resources to include in the protection group. You must set this when you set Pattern to ARBITRARY and you must not set it for any other Pattern setting.

" + "documentation":"

The ARNs (Amazon Resource Names) of the resources to include in the protection group. You must set this when you set Pattern to ARBITRARY and you must not set it for any other Pattern setting.

" }, "ProtectionGroupArn":{ "shape":"ResourceArn", @@ -1719,6 +1779,12 @@ "MAX" ] }, + "ProtectionGroupAggregationFilters":{ + "type":"list", + "member":{"shape":"ProtectionGroupAggregation"}, + "max":1, + "min":1 + }, "ProtectionGroupArbitraryPatternLimits":{ "type":"structure", "required":["MaxMembers"], @@ -1736,6 +1802,12 @@ "min":1, "pattern":"[a-zA-Z0-9\\\\-]*" }, + "ProtectionGroupIdFilters":{ + "type":"list", + "member":{"shape":"ProtectionGroupId"}, + "max":1, + "min":1 + }, "ProtectionGroupLimits":{ "type":"structure", "required":[ @@ -1768,6 +1840,12 @@ "BY_RESOURCE_TYPE" ] }, + "ProtectionGroupPatternFilters":{ + "type":"list", + "member":{"shape":"ProtectionGroupPattern"}, + "max":1, + "min":1 + }, "ProtectionGroupPatternTypeLimits":{ "type":"structure", "required":["ArbitraryPatternLimits"], @@ -1806,6 +1884,12 @@ "min":1, "pattern":"[ a-zA-Z0-9_\\\\.\\\\-]*" }, + "ProtectionNameFilters":{ + "type":"list", + "member":{"shape":"ProtectionName"}, + "max":1, + "min":1 + }, "Protections":{ "type":"list", "member":{"shape":"Protection"} @@ -1832,6 +1916,12 @@ "type":"list", "member":{"shape":"ResourceArn"} }, + "ResourceArnFilters":{ + "type":"list", + "member":{"shape":"ResourceArn"}, + "max":1, + "min":1 + }, "ResourceArnList":{ "type":"list", "member":{"shape":"ResourceArn"} diff --git a/botocore/data/signer/2017-08-25/endpoint-rule-set-1.json b/botocore/data/signer/2017-08-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..d1addb57 --- /dev/null +++ b/botocore/data/signer/2017-08-25/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://signer-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://signer-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://signer.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://signer.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/simspaceweaver/2022-10-28/endpoint-rule-set-1.json b/botocore/data/simspaceweaver/2022-10-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..b458c7af --- /dev/null +++ b/botocore/data/simspaceweaver/2022-10-28/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://simspaceweaver-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://simspaceweaver-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://simspaceweaver.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://simspaceweaver.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/simspaceweaver/2022-10-28/paginators-1.json b/botocore/data/simspaceweaver/2022-10-28/paginators-1.json new file mode 100644 index 00000000..ea142457 --- /dev/null +++ b/botocore/data/simspaceweaver/2022-10-28/paginators-1.json @@ -0,0 +1,3 @@ +{ + "pagination": {} +} diff --git a/botocore/data/simspaceweaver/2022-10-28/service-2.json b/botocore/data/simspaceweaver/2022-10-28/service-2.json new file mode 100644 index 00000000..dc729716 --- /dev/null +++ b/botocore/data/simspaceweaver/2022-10-28/service-2.json @@ -0,0 +1,1232 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2022-10-28", + "endpointPrefix":"simspaceweaver", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceFullName":"AWS SimSpace Weaver", + "serviceId":"SimSpaceWeaver", + "signatureVersion":"v4", + "signingName":"simspaceweaver", + "uid":"simspaceweaver-2022-10-28" + }, + "operations":{ + "DeleteApp":{ + "name":"DeleteApp", + "http":{ + "method":"DELETE", + "requestUri":"/deleteapp", + "responseCode":200 + }, + "input":{"shape":"DeleteAppInput"}, + "output":{"shape":"DeleteAppOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes the instance of the given custom app.

", + "idempotent":true + }, + "DeleteSimulation":{ + "name":"DeleteSimulation", + "http":{ + "method":"DELETE", + "requestUri":"/deletesimulation", + "responseCode":200 + }, + "input":{"shape":"DeleteSimulationInput"}, + "output":{"shape":"DeleteSimulationOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes all SimSpace Weaver resources assigned to the given simulation.

Your simulation uses resources in other Amazon Web Services services. This API operation doesn't delete resources in other Amazon Web Services services.

", + "idempotent":true + }, + "DescribeApp":{ + "name":"DescribeApp", + "http":{ + "method":"GET", + "requestUri":"/describeapp", + "responseCode":200 + }, + "input":{"shape":"DescribeAppInput"}, + "output":{"shape":"DescribeAppOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns the state of the given custom app.

" + }, + "DescribeSimulation":{ + "name":"DescribeSimulation", + "http":{ + "method":"GET", + "requestUri":"/describesimulation", + "responseCode":200 + }, + "input":{"shape":"DescribeSimulationInput"}, + "output":{"shape":"DescribeSimulationOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns the current state of the given simulation.

" + }, + "ListApps":{ + "name":"ListApps", + "http":{ + "method":"GET", + "requestUri":"/listapps", + "responseCode":200 + }, + "input":{"shape":"ListAppsInput"}, + "output":{"shape":"ListAppsOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists all custom apps or service apps for the given simulation and domain.

" + }, + "ListSimulations":{ + "name":"ListSimulations", + "http":{ + "method":"GET", + "requestUri":"/listsimulations", + "responseCode":200 + }, + "input":{"shape":"ListSimulationsInput"}, + "output":{"shape":"ListSimulationsOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists the SimSpace Weaver simulations in the Amazon Web Services account used to make the API call.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceInput"}, + "output":{"shape":"ListTagsForResourceOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Lists all tags on a SimSpace Weaver resource.

" + }, + "StartApp":{ + "name":"StartApp", + "http":{ + "method":"POST", + "requestUri":"/startapp", + "responseCode":200 + }, + "input":{"shape":"StartAppInput"}, + "output":{"shape":"StartAppOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Starts a custom app with the configuration specified in the simulation schema.

" + }, + "StartClock":{ + "name":"StartClock", + "http":{ + "method":"POST", + "requestUri":"/startclock", + "responseCode":200 + }, + "input":{"shape":"StartClockInput"}, + "output":{"shape":"StartClockOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Starts the simulation clock.

" + }, + "StartSimulation":{ + "name":"StartSimulation", + "http":{ + "method":"POST", + "requestUri":"/startsimulation", + "responseCode":200 + }, + "input":{"shape":"StartSimulationInput"}, + "output":{"shape":"StartSimulationOutput"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Starts a simulation with the given name and schema.

" + }, + "StopApp":{ + "name":"StopApp", + "http":{ + "method":"POST", + "requestUri":"/stopapp", + "responseCode":200 + }, + "input":{"shape":"StopAppInput"}, + "output":{"shape":"StopAppOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Stops the given custom app and shuts down all of its allocated compute resources.

" + }, + "StopClock":{ + "name":"StopClock", + "http":{ + "method":"POST", + "requestUri":"/stopclock", + "responseCode":200 + }, + "input":{"shape":"StopClockInput"}, + "output":{"shape":"StopClockOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Stops the simulation clock.

" + }, + "StopSimulation":{ + "name":"StopSimulation", + "http":{ + "method":"POST", + "requestUri":"/stopsimulation", + "responseCode":200 + }, + "input":{"shape":"StopSimulationInput"}, + "output":{"shape":"StopSimulationOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Stops the given simulation.

You can't restart a simulation after you stop it. If you need to restart a simulation, you must stop it, delete it, and start a new instance of it.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceInput"}, + "output":{"shape":"TagResourceOutput"}, + "errors":[ + {"shape":"TooManyTagsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Adds tags to a SimSpace Weaver resource. For more information about tags, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{ResourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceInput"}, + "output":{"shape":"UntagResourceOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Removes tags from a SimSpace Weaver resource. For more information about tags, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"NonEmptyString"} + }, + "documentation":"

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AppPortMappings":{ + "type":"list", + "member":{"shape":"SimulationAppPortMapping"} + }, + "BucketName":{ + "type":"string", + "max":63, + "min":3 + }, + "ClientToken":{ + "type":"string", + "max":128, + "min":32, + "pattern":"^[a-zA-Z0-9-]+$", + "sensitive":true + }, + "ClockStatus":{ + "type":"string", + "enum":[ + "UNKNOWN", + "STARTING", + "STARTED", + "STOPPING", + "STOPPED" + ] + }, + "ClockTargetStatus":{ + "type":"string", + "enum":[ + "UNKNOWN", + "STARTED", + "STOPPED" + ] + }, + "CloudWatchLogsLogGroup":{ + "type":"structure", + "members":{ + "LogGroupArn":{ + "shape":"LogGroupArn", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon CloudWatch Logs log group for the simulation. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference. For more information about log groups, see Working with log groups and log streams in the Amazon CloudWatch Logs User Guide.

" + } + }, + "documentation":"

The Amazon CloudWatch Logs log group for the simulation. For more information about log groups, see Working with log groups and log streams in the Amazon CloudWatch Logs User Guide.

" + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"NonEmptyString"} + }, + "documentation":"

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "DeleteAppInput":{ + "type":"structure", + "required":[ + "App", + "Domain", + "Simulation" + ], + "members":{ + "App":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the app.

", + "location":"querystring", + "locationName":"app" + }, + "Domain":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the domain of the app.

", + "location":"querystring", + "locationName":"domain" + }, + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation of the app.

", + "location":"querystring", + "locationName":"simulation" + } + } + }, + "DeleteAppOutput":{ + "type":"structure", + "members":{ + } + }, + "DeleteSimulationInput":{ + "type":"structure", + "required":["Simulation"], + "members":{ + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation.

", + "location":"querystring", + "locationName":"simulation" + } + } + }, + "DeleteSimulationOutput":{ + "type":"structure", + "members":{ + } + }, + "DescribeAppInput":{ + "type":"structure", + "required":[ + "App", + "Domain", + "Simulation" + ], + "members":{ + "App":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the app.

", + "location":"querystring", + "locationName":"app" + }, + "Domain":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the domain of the app.

", + "location":"querystring", + "locationName":"domain" + }, + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation of the app.

", + "location":"querystring", + "locationName":"simulation" + } + } + }, + "DescribeAppOutput":{ + "type":"structure", + "members":{ + "Description":{ + "shape":"Description", + "documentation":"

The description of the app.

" + }, + "Domain":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the domain of the app.

" + }, + "EndpointInfo":{ + "shape":"SimulationAppEndpointInfo", + "documentation":"

Information about the network endpoint for the custom app. You can use the endpoint to connect to the custom app.

" + }, + "LaunchOverrides":{"shape":"LaunchOverrides"}, + "Name":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the app.

" + }, + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation of the app.

" + }, + "Status":{ + "shape":"SimulationAppStatus", + "documentation":"

The current lifecycle state of the custom app.

" + }, + "TargetStatus":{ + "shape":"SimulationAppTargetStatus", + "documentation":"

The desired lifecycle state of the custom app.

" + } + } + }, + "DescribeSimulationInput":{ + "type":"structure", + "required":["Simulation"], + "members":{ + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation.

", + "location":"querystring", + "locationName":"simulation" + } + } + }, + "DescribeSimulationOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"SimSpaceWeaverArn", + "documentation":"

The Amazon Resource Name (ARN) of the simulation. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time when the simulation was created, expressed as the number of seconds and milliseconds in UTC since the Unix epoch (0:0:0.000, January 1, 1970).

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The description of the simulation.

" + }, + "ExecutionId":{ + "shape":"UUID", + "documentation":"

A universally unique identifier (UUID) for this simulation.

" + }, + "LiveSimulationState":{ + "shape":"LiveSimulationState", + "documentation":"

A collection of additional state information, such as domain and clock configuration.

" + }, + "LoggingConfiguration":{ + "shape":"LoggingConfiguration", + "documentation":"

Settings that control how SimSpace Weaver handles your simulation log data.

" + }, + "MaximumDuration":{ + "shape":"TimeToLiveString", + "documentation":"

The maximum running time of the simulation, specified as a number of months (m or M), hours (h or H), or days (d or D). The simulation stops when it reaches this limit.

" + }, + "Name":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that the simulation assumes to perform actions. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference. For more information about IAM roles, see IAM roles in the Identity and Access Management User Guide.

" + }, + "SchemaError":{ + "shape":"OptionalString", + "documentation":"

An error message that SimSpace Weaver returns only if there is a problem with the simulation schema.

" + }, + "SchemaS3Location":{ + "shape":"S3Location", + "documentation":"

The location of the simulation schema in Amazon Simple Storage Service (Amazon S3). For more information about Amazon S3, see the Amazon Simple Storage Service User Guide .

" + }, + "Status":{ + "shape":"SimulationStatus", + "documentation":"

The current lifecycle state of the simulation.

" + }, + "TargetStatus":{ + "shape":"SimulationTargetStatus", + "documentation":"

The desired lifecycle state of the simulation.

" + } + } + }, + "Description":{ + "type":"string", + "max":500, + "min":0 + }, + "Domain":{ + "type":"structure", + "members":{ + "Lifecycle":{ + "shape":"LifecycleManagementStrategy", + "documentation":"

The type of lifecycle management for apps in the domain. This value indicates whether apps in this domain are managed (SimSpace Weaver starts and stops the apps) or unmanaged (you must start and stop the apps).

Lifecycle types

  • PerWorker – Managed: SimSpace Weaver starts 1 app on each worker

  • BySpatialSubdivision – Managed: SimSpace Weaver starts 1 app for each spatial partition

  • ByRequest – Unmanaged: You use the StartApp API to start the apps and use the StopApp API to stop the apps.

The lifecycle types will change when the service is released for general availability (GA).

" + }, + "Name":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the domain.

" + } + }, + "documentation":"

A collection of app instances that run the same executable app code and have the same launch options and commands.

For more information about domains, see Key concepts in the Amazon Web Services SimSpace Weaver User Guide.

" + }, + "DomainList":{ + "type":"list", + "member":{"shape":"Domain"} + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"NonEmptyString"} + }, + "documentation":"

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "LaunchCommandList":{ + "type":"list", + "member":{"shape":"NonEmptyString"} + }, + "LaunchOverrides":{ + "type":"structure", + "members":{ + "LaunchCommands":{ + "shape":"LaunchCommandList", + "documentation":"

App launch commands and command line parameters that override the launch command configured in the simulation schema.

" + } + }, + "documentation":"

Options that apply when the app starts. These optiAons override default behavior.

" + }, + "LifecycleManagementStrategy":{ + "type":"string", + "enum":[ + "Unknown", + "PerWorker", + "BySpatialSubdivision", + "ByRequest" + ] + }, + "ListAppsInput":{ + "type":"structure", + "required":["Simulation"], + "members":{ + "Domain":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the domain that you want to list apps for.

", + "location":"querystring", + "locationName":"domain" + }, + "MaxResults":{ + "shape":"PositiveInteger", + "documentation":"

The maximum number of apps to list.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"OptionalString", + "documentation":"

If SimSpace Weaver returns nextToken, there are more results available. The value of nextToken is a unique pagination token for each page. To retrieve the next page, call the operation again using the returned token. Keep all other arguments unchanged. If no results remain, nextToken is set to null. Each pagination token expires after 24 hours. If you provide a token that isn't valid, you receive an HTTP 400 ValidationException error.

", + "location":"querystring", + "locationName":"nextToken" + }, + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation that you want to list apps for.

", + "location":"querystring", + "locationName":"simulation" + } + } + }, + "ListAppsOutput":{ + "type":"structure", + "members":{ + "Apps":{ + "shape":"SimulationAppList", + "documentation":"

The list of apps for the given simulation and domain.

" + }, + "NextToken":{ + "shape":"OptionalString", + "documentation":"

If SimSpace Weaver returns nextToken, there are more results available. The value of nextToken is a unique pagination token for each page. To retrieve the next page, call the operation again using the returned token. Keep all other arguments unchanged. If no results remain, nextToken is set to null. Each pagination token expires after 24 hours. If you provide a token that isn't valid, you receive an HTTP 400 ValidationException error.

" + } + } + }, + "ListSimulationsInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"PositiveInteger", + "documentation":"

The maximum number of simulations to list.

", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"OptionalString", + "documentation":"

If SimSpace Weaver returns nextToken, there are more results available. The value of nextToken is a unique pagination token for each page. To retrieve the next page, call the operation again using the returned token. Keep all other arguments unchanged. If no results remain, nextToken is set to null. Each pagination token expires after 24 hours. If you provide a token that isn't valid, you receive an HTTP 400 ValidationException error.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListSimulationsOutput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"OptionalString", + "documentation":"

If SimSpace Weaver returns nextToken, there are more results available. The value of nextToken is a unique pagination token for each page. To retrieve the next page, call the operation again using the returned token. Keep all other arguments unchanged. If no results remain, nextToken is set to null. Each pagination token expires after 24 hours. If you provide a token that isn't valid, you receive an HTTP 400 ValidationException error.

" + }, + "Simulations":{ + "shape":"SimulationList", + "documentation":"

The list of simulations.

" + } + } + }, + "ListTagsForResourceInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"SimSpaceWeaverArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "location":"uri", + "locationName":"ResourceArn" + } + } + }, + "ListTagsForResourceOutput":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagMap", + "documentation":"

The list of tags for the resource.

" + } + } + }, + "LiveSimulationState":{ + "type":"structure", + "members":{ + "Clocks":{ + "shape":"SimulationClockList", + "documentation":"

A list of simulation clocks.

At this time, a simulation has only one clock.

" + }, + "Domains":{ + "shape":"DomainList", + "documentation":"

A list of domains for the simulation. For more information about domains, see Key concepts in the Amazon Web Services SimSpace Weaver User Guide.

" + } + }, + "documentation":"

A collection of additional state information, such as domain and clock configuration.

" + }, + "LogDestination":{ + "type":"structure", + "members":{ + "CloudWatchLogsLogGroup":{ + "shape":"CloudWatchLogsLogGroup", + "documentation":"

An Amazon CloudWatch Logs log group that stores simulation log data. For more information about log groups, see Working with log groups and log streams in the Amazon CloudWatch Logs User Guide.

" + } + }, + "documentation":"

The location where SimSpace Weaver sends simulation log data.

" + }, + "LogDestinations":{ + "type":"list", + "member":{"shape":"LogDestination"} + }, + "LogGroupArn":{ + "type":"string", + "max":1600, + "min":0, + "pattern":"^arn:(?:aws|aws-cn):log-group:([a-z]{2}-[a-z]+-\\d{1}):(\\d{12})?:role\\/(.+)$" + }, + "LoggingConfiguration":{ + "type":"structure", + "members":{ + "Destinations":{ + "shape":"LogDestinations", + "documentation":"

A list of the locations where SimSpace Weaver sends simulation log data.

" + } + }, + "documentation":"

The logging configuration for a simulation.

" + }, + "NonEmptyString":{ + "type":"string", + "max":1600, + "min":1 + }, + "ObjectKey":{ + "type":"string", + "max":1024, + "min":1 + }, + "OptionalString":{"type":"string"}, + "PortNumber":{ + "type":"integer", + "box":true, + "max":65535, + "min":0 + }, + "PositiveInteger":{ + "type":"integer", + "box":true, + "min":1 + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"NonEmptyString"} + }, + "documentation":"

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "RoleArn":{ + "type":"string", + "max":1600, + "min":0, + "pattern":"^arn:(?:aws|aws-cn):iam::(\\d{12})?:role\\/(.+)$" + }, + "S3Location":{ + "type":"structure", + "members":{ + "BucketName":{ + "shape":"BucketName", + "documentation":"

The name of an Amazon S3 bucket. For more information about buckets, see Creating, configuring, and working with Amazon S3 buckets in the Amazon Simple Storage Service User Guide.

" + }, + "ObjectKey":{ + "shape":"ObjectKey", + "documentation":"

The key name of an object in Amazon S3. For more information about Amazon S3 objects and object keys, see Uploading, downloading, and working with objects in Amazon S3 in the Amazon Simple Storage Service User Guide.

" + } + }, + "documentation":"

A location in Amazon Simple Storage Service (Amazon S3) where SimSpace Weaver stores simulation data, such as your app zip files and schema file. For more information about Amazon S3, see the Amazon Simple Storage Service User Guide .

" + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"NonEmptyString"} + }, + "documentation":"

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SimSpaceWeaverArn":{ + "type":"string", + "max":1600, + "min":0, + "pattern":"^arn:(?:aws|aws-cn):simspaceweaver:([a-z]{2}-[a-z]+-\\d{1}):(\\d{12})?:([a-z]+)\\/(.+)$" + }, + "SimSpaceWeaverResourceName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"^[a-zA-Z0-9_.-]+$" + }, + "SimulationAppEndpointInfo":{ + "type":"structure", + "members":{ + "Address":{ + "shape":"NonEmptyString", + "documentation":"

The IP address of the app. SimSpace Weaver dynamically assigns this IP address when the app starts.

" + }, + "IngressPortMappings":{ + "shape":"AppPortMappings", + "documentation":"

The inbound TCP/UDP port numbers of the app. The combination of an IP address and a port number form a network endpoint.

" + } + }, + "documentation":"

Information about the network endpoint that you can use to connect to your custom or service app.

" + }, + "SimulationAppList":{ + "type":"list", + "member":{"shape":"SimulationAppMetadata"} + }, + "SimulationAppMetadata":{ + "type":"structure", + "members":{ + "Domain":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The domain of the app. For more information about domains, see Key concepts in the Amazon Web Services SimSpace Weaver User Guide.

" + }, + "Name":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the app.

" + }, + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation of the app.

" + }, + "Status":{ + "shape":"SimulationAppStatus", + "documentation":"

The current status of the app.

" + }, + "TargetStatus":{ + "shape":"SimulationAppTargetStatus", + "documentation":"

The desired status of the app.

" + } + }, + "documentation":"

A collection of metadata about an app.

" + }, + "SimulationAppPortMapping":{ + "type":"structure", + "members":{ + "Actual":{ + "shape":"PortNumber", + "documentation":"

The TCP/UDP port number of the running app. SimSpace Weaver dynamically assigns this port number when the app starts. SimSpace Weaver maps the Declared port to the Actual port. Clients connect to the app using the app's IP address and the Actual port number.

" + }, + "Declared":{ + "shape":"PortNumber", + "documentation":"

The TCP/UDP port number of the app, declared in the simulation schema. SimSpace Weaver maps the Declared port to the Actual port. The source code for the app should bind to the Declared port.

" + } + }, + "documentation":"

A collection of TCP/UDP ports for a custom or service app.

" + }, + "SimulationAppStatus":{ + "type":"string", + "enum":[ + "STARTING", + "STARTED", + "STOPPING", + "STOPPED", + "ERROR", + "UNKNOWN" + ] + }, + "SimulationAppTargetStatus":{ + "type":"string", + "enum":[ + "UNKNOWN", + "STARTED", + "STOPPED" + ] + }, + "SimulationClock":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"ClockStatus", + "documentation":"

The current status of the simulation clock.

" + }, + "TargetStatus":{ + "shape":"ClockTargetStatus", + "documentation":"

The desired status of the simulation clock.

" + } + }, + "documentation":"

Status information about the simulation clock.

" + }, + "SimulationClockList":{ + "type":"list", + "member":{"shape":"SimulationClock"} + }, + "SimulationList":{ + "type":"list", + "member":{"shape":"SimulationMetadata"} + }, + "SimulationMetadata":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"SimSpaceWeaverArn", + "documentation":"

The Amazon Resource Name (ARN) of the simulation. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time when the simulation was created, expressed as the number of seconds and milliseconds in UTC since the Unix epoch (0:0:0.000, January 1, 1970).

" + }, + "Name":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation.

" + }, + "Status":{ + "shape":"SimulationStatus", + "documentation":"

The current status of the simulation.

" + }, + "TargetStatus":{ + "shape":"SimulationTargetStatus", + "documentation":"

The desired status of the simulation.

" + } + }, + "documentation":"

A collection of data about the simulation.

" + }, + "SimulationStatus":{ + "type":"string", + "enum":[ + "UNKNOWN", + "STARTING", + "STARTED", + "STOPPING", + "STOPPED", + "FAILED", + "DELETING", + "DELETED" + ] + }, + "SimulationTargetStatus":{ + "type":"string", + "enum":[ + "UNKNOWN", + "STARTED", + "STOPPED", + "DELETED" + ] + }, + "StartAppInput":{ + "type":"structure", + "required":[ + "Domain", + "Name", + "Simulation" + ], + "members":{ + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

A value that you provide to ensure that repeated calls to this API operation using the same parameters complete only once. A ClientToken is also known as an idempotency token. A ClientToken expires after 24 hours.

", + "idempotencyToken":true + }, + "Description":{ + "shape":"Description", + "documentation":"

The description of the app.

" + }, + "Domain":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the domain of the app.

" + }, + "LaunchOverrides":{"shape":"LaunchOverrides"}, + "Name":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the app.

" + }, + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation of the app.

" + } + } + }, + "StartAppOutput":{ + "type":"structure", + "members":{ + "Domain":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the domain of the app.

" + }, + "Name":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the app.

" + }, + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation of the app.

" + } + } + }, + "StartClockInput":{ + "type":"structure", + "required":["Simulation"], + "members":{ + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation.

" + } + } + }, + "StartClockOutput":{ + "type":"structure", + "members":{ + } + }, + "StartSimulationInput":{ + "type":"structure", + "required":[ + "Name", + "RoleArn", + "SchemaS3Location" + ], + "members":{ + "ClientToken":{ + "shape":"ClientToken", + "documentation":"

A value that you provide to ensure that repeated calls to this API operation using the same parameters complete only once. A ClientToken is also known as an idempotency token. A ClientToken expires after 24 hours.

", + "idempotencyToken":true + }, + "Description":{ + "shape":"Description", + "documentation":"

The description of the simulation.

" + }, + "MaximumDuration":{ + "shape":"TimeToLiveString", + "documentation":"

The maximum running time of the simulation, specified as a number of months (m or M), hours (h or H), or days (d or D). The simulation stops when it reaches this limit.

" + }, + "Name":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation.

" + }, + "RoleArn":{ + "shape":"RoleArn", + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that the simulation assumes to perform actions. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference. For more information about IAM roles, see IAM roles in the Identity and Access Management User Guide.

" + }, + "SchemaS3Location":{ + "shape":"S3Location", + "documentation":"

The location of the simulation schema in Amazon Simple Storage Service (Amazon S3). For more information about Amazon S3, see the Amazon Simple Storage Service User Guide .

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

A list of tags for the simulation. For more information about tags, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference.

" + } + } + }, + "StartSimulationOutput":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"SimSpaceWeaverArn", + "documentation":"

The Amazon Resource Name (ARN) of the simulation. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + }, + "CreationTime":{ + "shape":"Timestamp", + "documentation":"

The time when the simulation was created, expressed as the number of seconds and milliseconds in UTC since the Unix epoch (0:0:0.000, January 1, 1970).

" + }, + "ExecutionId":{ + "shape":"UUID", + "documentation":"

A universally unique identifier (UUID) for this simulation.

" + } + } + }, + "StopAppInput":{ + "type":"structure", + "required":[ + "App", + "Domain", + "Simulation" + ], + "members":{ + "App":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the app.

" + }, + "Domain":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the domain of the app.

" + }, + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation of the app.

" + } + } + }, + "StopAppOutput":{ + "type":"structure", + "members":{ + } + }, + "StopClockInput":{ + "type":"structure", + "required":["Simulation"], + "members":{ + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation.

" + } + } + }, + "StopClockOutput":{ + "type":"structure", + "members":{ + } + }, + "StopSimulationInput":{ + "type":"structure", + "required":["Simulation"], + "members":{ + "Simulation":{ + "shape":"SimSpaceWeaverResourceName", + "documentation":"

The name of the simulation.

" + } + } + }, + "StopSimulationOutput":{ + "type":"structure", + "members":{ + } + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":50, + "min":1 + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":1 + }, + "TagResourceInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"SimSpaceWeaverArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource that you want to add tags to. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

A list of tags to apply to the resource.

" + } + } + }, + "TagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, + "TimeToLiveString":{ + "type":"string", + "max":6, + "min":2, + "pattern":"^\\d{1,5}[mhdMHD]$" + }, + "Timestamp":{"type":"timestamp"}, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"NonEmptyString"} + }, + "documentation":"

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "UUID":{ + "type":"string", + "min":36, + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "UntagResourceInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"SimSpaceWeaverArn", + "documentation":"

The Amazon Resource Name (ARN) of the resource that you want to remove tags from. For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "location":"uri", + "locationName":"ResourceArn" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

A list of tag keys to remove from the resource.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceOutput":{ + "type":"structure", + "members":{ + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"NonEmptyString"} + }, + "documentation":"

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + }, + "documentation":"

Amazon Web Services SimSpace Weaver (SimSpace Weaver) is a managed service that you can use to build and operate large-scale spatial simulations in the Amazon Web Services Cloud. For example, you can create a digital twin of a city, crowd simulations with millions of people and objects, and massilvely-multiplayer games with hundreds of thousands of connected players. For more information about SimSpace Weaver, see the Amazon Web Services SimSpace Weaver User Guide .

This API reference describes the API operations and data types that you can use to communicate directly with SimSpace Weaver.

SimSpace Weaver also provides the SimSpace Weaver app SDK, which you use for app development. The SimSpace Weaver app SDK API reference is included in the SimSpace Weaver app SDK documentation, which is part of the SimSpace Weaver app SDK distributable package.

" +} diff --git a/botocore/data/sms-voice/2018-09-05/endpoint-rule-set-1.json b/botocore/data/sms-voice/2018-09-05/endpoint-rule-set-1.json new file mode 100644 index 00000000..ac4860b4 --- /dev/null +++ b/botocore/data/sms-voice/2018-09-05/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.pinpoint.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://sms-voice.pinpoint.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sms/2016-10-24/endpoint-rule-set-1.json b/botocore/data/sms/2016-10-24/endpoint-rule-set-1.json new file mode 100644 index 00000000..2ccac3a9 --- /dev/null +++ b/botocore/data/sms/2016-10-24/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sms.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://sms.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/snow-device-management/2021-08-04/endpoint-rule-set-1.json b/botocore/data/snow-device-management/2021-08-04/endpoint-rule-set-1.json new file mode 100644 index 00000000..566a844d --- /dev/null +++ b/botocore/data/snow-device-management/2021-08-04/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://snow-device-management-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://snow-device-management-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://snow-device-management.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://snow-device-management.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/snow-device-management/2021-08-04/examples-1.json b/botocore/data/snow-device-management/2021-08-04/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/snow-device-management/2021-08-04/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/snowball/2016-06-30/endpoint-rule-set-1.json b/botocore/data/snowball/2016-06-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..85c845f0 --- /dev/null +++ b/botocore/data/snowball/2016-06-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://snowball-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://snowball-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://snowball.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://snowball.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/snowball/2016-06-30/examples-1.json b/botocore/data/snowball/2016-06-30/examples-1.json index 9d699718..2b13f7b4 100644 --- a/botocore/data/snowball/2016-06-30/examples-1.json +++ b/botocore/data/snowball/2016-06-30/examples-1.json @@ -413,7 +413,7 @@ "input": { "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b", "ClusterId": "CID123e4567-e89b-12d3-a456-426655440000", - "Description": "Updated the address to send this to image processing - RJ" + "Description": "updated-cluster-name" }, "comments": { }, @@ -426,7 +426,7 @@ { "input": { "AddressId": "ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b", - "Description": "Upgraded to Edge, shipped to Finance Dept, and requested faster shipping speed - TS.", + "Description": "updated-job-name", "JobId": "JID123e4567-e89b-12d3-a456-426655440000", "ShippingOption": "NEXT_DAY", "SnowballCapacityPreference": "T100" diff --git a/botocore/data/snowball/2016-06-30/paginators-1.json b/botocore/data/snowball/2016-06-30/paginators-1.json index e4e974f3..05a7ea84 100644 --- a/botocore/data/snowball/2016-06-30/paginators-1.json +++ b/botocore/data/snowball/2016-06-30/paginators-1.json @@ -29,6 +29,12 @@ "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/botocore/data/snowball/2016-06-30/service-2.json b/botocore/data/snowball/2016-06-30/service-2.json index 1f2bc55c..917203ea 100644 --- a/botocore/data/snowball/2016-06-30/service-2.json +++ b/botocore/data/snowball/2016-06-30/service-2.json @@ -88,7 +88,7 @@ {"shape":"ClusterLimitExceededException"}, {"shape":"Ec2RequestFailedException"} ], - "documentation":"

Creates a job to import or export data between Amazon S3 and your on-premises data center. Your Amazon Web Services account must have the right trust policies and permissions in place to create a job for a Snow device. 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.

Only the Snowball; Edge device type is supported when ordering clustered jobs.

The device capacity is optional.

Availability of device types differ by Amazon Web Services Region. For more information about Region availability, see Amazon Web Services Regional Services.

Snow Family Devices and their capacities.

  • Snow Family device type: SNC1_SSD

    • Capacity: T14

    • Description: Snowcone

  • Snow Family device type: SNC1_HDD

    • Capacity: T8

    • Description: Snowcone

  • Device type: EDGE_S

    • Capacity: T98

    • Description: Snowball Edge Storage Optimized for data transfer only

  • Device type: EDGE_CG

    • Capacity: T42

    • Description: Snowball Edge Compute Optimized with GPU

  • Device type: EDGE_C

    • Capacity: T42

    • Description: Snowball Edge Compute Optimized without GPU

  • Device type: EDGE

    • Capacity: T100

    • Description: Snowball Edge Storage Optimized with EC2 Compute

  • Device type: STANDARD

    • Capacity: T50

    • Description: Original Snowball device

      This device is only available in the Ningxia, Beijing, and Singapore Amazon Web Services Region

  • Device type: STANDARD

    • Capacity: T80

    • Description: Original Snowball device

      This device is only available in the Ningxia, Beijing, and Singapore Amazon Web Services Region.

" + "documentation":"

Creates a job to import or export data between Amazon S3 and your on-premises data center. Your Amazon Web Services account must have the right trust policies and permissions in place to create a job for a Snow device. 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.

Only the Snowball; Edge device type is supported when ordering clustered jobs.

The device capacity is optional.

Availability of device types differ by Amazon Web Services Region. For more information about Region availability, see Amazon Web Services Regional Services.

Snow Family devices and their capacities.

  • Snow Family device type: SNC1_SSD

    • Capacity: T14

    • Description: Snowcone

  • Snow Family device type: SNC1_HDD

    • Capacity: T8

    • Description: Snowcone

  • Device type: EDGE_S

    • Capacity: T98

    • Description: Snowball Edge Storage Optimized for data transfer only

  • Device type: EDGE_CG

    • Capacity: T42

    • Description: Snowball Edge Compute Optimized with GPU

  • Device type: EDGE_C

    • Capacity: T42

    • Description: Snowball Edge Compute Optimized without GPU

  • Device type: EDGE

    • Capacity: T100

    • Description: Snowball Edge Storage Optimized with EC2 Compute

  • Device type: V3_5C

    • Capacity: T32

    • Description: Snowball Edge Compute Optimized without GPU

  • Device type: STANDARD

    • Capacity: T50

    • Description: Original Snowball device

      This device is only available in the Ningxia, Beijing, and Singapore Amazon Web Services Region

  • Device type: STANDARD

    • Capacity: T80

    • Description: Original Snowball device

      This device is only available in the Ningxia, Beijing, and Singapore Amazon Web Services Region.

" }, "CreateLongTermPricing":{ "name":"CreateLongTermPricing", @@ -200,7 +200,7 @@ {"shape":"InvalidResourceException"}, {"shape":"InvalidJobStateException"} ], - "documentation":"

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.

The 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 Snow device through the Snowball client when the client is started for the first time.

As 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 Snow device associated with that job.

The credentials of a given job, including its manifest file and unlock code, expire 360 days after the job is created.

" + "documentation":"

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.

The manifest is an encrypted file that you can download after your job enters the WithCustomer status. This is the only valid status for calling this API as the manifest and UnlockCode code value are used for securing your device and should only be used when you have the device. The manifest is decrypted by using the UnlockCode code value, when you pass both values to the Snow device through the Snowball client when the client is started for the first time.

As 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 Snow device associated with that job.

The credentials of a given job, including its manifest file and unlock code, expire 360 days after the job is created.

" }, "GetJobUnlockCode":{ "name":"GetJobUnlockCode", @@ -214,7 +214,7 @@ {"shape":"InvalidResourceException"}, {"shape":"InvalidJobStateException"} ], - "documentation":"

Returns the UnlockCode code value for the specified job. A particular UnlockCode value can be accessed for up to 360 days after the associated job has been created.

The 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 Snow device through the Snowball client when the client is started for the first time.

As 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 Snow device associated with that job.

" + "documentation":"

Returns the UnlockCode code value for the specified job. A particular UnlockCode value can be accessed for up to 360 days after the associated job has been created.

The 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 Snow device through the Snowball client when the client is started for the first time. The only valid status for calling this API is WithCustomer as the manifest and Unlock code values are used for securing your device and should only be used when you have the device.

As 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 Snow device associated with that job.

" }, "GetSnowballUsage":{ "name":"GetSnowballUsage", @@ -687,7 +687,7 @@ }, "SnowballType":{ "shape":"SnowballType", - "documentation":"

The type of Snow Family Devices to use for this cluster.

For cluster jobs, Amazon Web Services Snow Family currently supports only the EDGE device type.

For more information, see \"https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html\" (Snow Family Devices and Capacity) in the Snowcone User Guide or \"https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html\" (Snow Family Devices and Capacity) in the Snowcone User Guide.

" + "documentation":"

The type of Snow Family devices to use for this cluster.

For cluster jobs, Amazon Web Services Snow Family currently supports only the EDGE device type.

For more information, see \"https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html\" (Snow Family Devices and Capacity) in the Snowcone User Guide or \"https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html\" (Snow Family Devices and Capacity) in the Snowcone User Guide.

" }, "ShippingOption":{ "shape":"ShippingOption", @@ -769,7 +769,7 @@ }, "SnowballType":{ "shape":"SnowballType", - "documentation":"

The type of Snow Family Devices to use for this job.

For cluster jobs, Amazon Web Services Snow Family currently supports only the EDGE device type.

The type of Amazon Web Services Snow device to use for this job. Currently, the only supported device type for cluster jobs is EDGE.

For more information, see Snowball Edge Device Options in the Snowball Edge Developer Guide.

For more information, see \"https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html\" (Snow Family Devices and Capacity) in the Snowcone User Guide or \"https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html\" (Snow Family Devices and Capacity) in the Snowcone User Guide.

" + "documentation":"

The type of Snow Family devices to use for this job.

For cluster jobs, Amazon Web Services Snow Family currently supports only the EDGE device type.

The type of Amazon Web Services Snow device to use for this job. Currently, the only supported device type for cluster jobs is EDGE.

For more information, see Snowball Edge Device Options in the Snowball Edge Developer Guide.

For more information, see \"https://docs.aws.amazon.com/snowball/latest/snowcone-guide/snow-device-types.html\" (Snow Family Devices and Capacity) in the Snowcone User Guide or \"https://docs.aws.amazon.com/snowball/latest/developer-guide/snow-device-types.html\" (Snow Family Devices and Capacity) in the Snowcone User Guide.

" }, "ForwardingAddressId":{ "shape":"AddressId", @@ -812,11 +812,11 @@ }, "IsLongTermPricingAutoRenew":{ "shape":"JavaBoolean", - "documentation":"

Specifies whether the current long-term pricing type for the device should be renewed.

" + "documentation":"

snowballty

Specifies whether the current long-term pricing type for the device should be renewed.

" }, "SnowballType":{ "shape":"SnowballType", - "documentation":"

The type of Snow Family Devices to use for the long-term pricing job.

" + "documentation":"

The type of Snow Family devices to use for the long-term pricing job.

" } } }, @@ -1625,7 +1625,7 @@ }, "SnowballType":{ "shape":"SnowballType", - "documentation":"

The type of Snow Family Devices associated with this long-term pricing job.

" + "documentation":"

The type of Snow Family devices associated with this long-term pricing job.

" }, "JobIds":{ "shape":"LongTermPricingAssociatedJobIdList", @@ -1801,7 +1801,8 @@ "T98", "T8", "T14", - "NoPreference" + "NoPreference", + "T32" ] }, "SnowballType":{ @@ -1813,7 +1814,8 @@ "EDGE_CG", "EDGE_S", "SNC1_HDD", - "SNC1_SSD" + "SNC1_SSD", + "V3_5C" ] }, "SnowconeDeviceConfiguration":{ diff --git a/botocore/data/sns/2010-03-31/endpoint-rule-set-1.json b/botocore/data/sns/2010-03-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..91aeae9f --- /dev/null +++ b/botocore/data/sns/2010-03-31/endpoint-rule-set-1.json @@ -0,0 +1,353 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sns-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://sns.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://sns.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://sns-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sns.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://sns.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sns/2010-03-31/service-2.json b/botocore/data/sns/2010-03-31/service-2.json index 4063a054..aa68c448 100644 --- a/botocore/data/sns/2010-03-31/service-2.json +++ b/botocore/data/sns/2010-03-31/service-2.json @@ -25,7 +25,7 @@ {"shape":"AuthorizationErrorException"}, {"shape":"NotFoundException"} ], - "documentation":"

Adds a statement to a topic's access control policy, granting access for the specified Amazon Web Services accounts to the specified actions.

" + "documentation":"

Adds a statement to a topic's access control policy, granting access for the specified Amazon Web Services accounts to the specified actions.

To remove the ability to change topic permissions, you must deny permissions to the AddPermission, RemovePermission, and SetTopicAttributes actions in your IAM policy.

" }, "CheckIfPhoneNumberIsOptedOut":{ "name":"CheckIfPhoneNumberIsOptedOut", @@ -216,6 +216,26 @@ ], "documentation":"

Deletes a topic and all its subscriptions. Deleting a topic might prevent some messages previously sent to the topic from being delivered to subscribers. This action is idempotent, so deleting a topic that does not exist does not result in an error.

" }, + "GetDataProtectionPolicy":{ + "name":"GetDataProtectionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDataProtectionPolicyInput"}, + "output":{ + "shape":"GetDataProtectionPolicyResponse", + "resultWrapper":"GetDataProtectionPolicyResult" + }, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"InternalErrorException"}, + {"shape":"NotFoundException"}, + {"shape":"AuthorizationErrorException"}, + {"shape":"InvalidSecurityException"} + ], + "documentation":"

Retrieves the specified inline DataProtectionPolicy document that is stored in the specified Amazon SNS topic.

" + }, "GetEndpointAttributes":{ "name":"GetEndpointAttributes", "http":{ @@ -545,7 +565,8 @@ {"shape":"KMSOptInRequired"}, {"shape":"KMSThrottlingException"}, {"shape":"KMSAccessDeniedException"}, - {"shape":"InvalidSecurityException"} + {"shape":"InvalidSecurityException"}, + {"shape":"ValidationException"} ], "documentation":"

Sends a message to an Amazon SNS topic, a text message (SMS message) directly to a phone number, or a message to a mobile platform endpoint (when you specify the TargetArn).

If you send a message to a topic, Amazon SNS delivers the message to each endpoint that is subscribed to the topic. The format of the message depends on the notification protocol for each subscribed endpoint.

When a messageId is returned, the message is saved and Amazon SNS immediately delivers it to subscribers.

To use the Publish action for publishing a message to a mobile endpoint, such as an app on a Kindle device or mobile phone, you must specify the EndpointArn for the TargetArn parameter. The EndpointArn is returned when making a call with the CreatePlatformEndpoint action.

For more information about formatting messages, see Send Custom Platform-Specific Payloads in Messages to Mobile Devices.

You can publish messages only to topics and endpoints in the same Amazon Web Services Region.

" }, @@ -579,10 +600,27 @@ {"shape":"KMSOptInRequired"}, {"shape":"KMSThrottlingException"}, {"shape":"KMSAccessDeniedException"}, - {"shape":"InvalidSecurityException"} + {"shape":"InvalidSecurityException"}, + {"shape":"ValidationException"} ], "documentation":"

Publishes up to ten messages to the specified topic. This is a batch version of Publish. For FIFO topics, multiple messages within a single batch are published in the order they are sent, and messages are deduplicated within the batch and across batches for 5 minutes.

The result of publishing each message is reported individually in the response. Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200.

The maximum allowed individual message size and the maximum total payload size (the sum of the individual lengths of all of the batched messages) are both 256 KB (262,144 bytes).

Some actions take lists of parameters. These lists are specified using the param.n notation. Values of n are integers starting from 1. For example, a parameter list with two elements looks like this:

&AttributeName.1=first

&AttributeName.2=second

If you send a batch message to a topic, Amazon SNS publishes the batch message to each endpoint that is subscribed to the topic. The format of the batch message depends on the notification protocol for each subscribed endpoint.

When a messageId is returned, the batch message is saved and Amazon SNS immediately delivers the message to subscribers.

" }, + "PutDataProtectionPolicy":{ + "name":"PutDataProtectionPolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutDataProtectionPolicyInput"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"InternalErrorException"}, + {"shape":"NotFoundException"}, + {"shape":"AuthorizationErrorException"}, + {"shape":"InvalidSecurityException"} + ], + "documentation":"

Adds or updates an inline policy document that is stored in the specified Amazon SNS topic.

" + }, "RemovePermission":{ "name":"RemovePermission", "http":{ @@ -596,7 +634,7 @@ {"shape":"AuthorizationErrorException"}, {"shape":"NotFoundException"} ], - "documentation":"

Removes a statement from a topic's access control policy.

" + "documentation":"

Removes a statement from a topic's access control policy.

To remove the ability to change topic permissions, you must deny permissions to the AddPermission, RemovePermission, and SetTopicAttributes actions in your IAM policy.

" }, "SetEndpointAttributes":{ "name":"SetEndpointAttributes", @@ -677,7 +715,7 @@ {"shape":"AuthorizationErrorException"}, {"shape":"InvalidSecurityException"} ], - "documentation":"

Allows a topic owner to set an attribute of the topic to a new value.

" + "documentation":"

Allows a topic owner to set an attribute of the topic to a new value.

To remove the ability to change topic permissions, you must deny permissions to the AddPermission, RemovePermission, and SetTopicAttributes actions in your IAM policy.

" }, "Subscribe":{ "name":"Subscribe", @@ -737,7 +775,7 @@ {"shape":"NotFoundException"}, {"shape":"InvalidSecurityException"} ], - "documentation":"

Deletes a subscription. If the subscription requires authentication for deletion, only the owner of the subscription or the topic's owner can unsubscribe, and an Amazon Web Services signature is required. If the Unsubscribe call does not require authentication and the requester is not the subscription owner, a final cancellation message is delivered to the endpoint, so that the endpoint owner can easily resubscribe to the topic if the Unsubscribe request was unintended.

This action is throttled at 100 transactions per second (TPS).

" + "documentation":"

Deletes a subscription. If the subscription requires authentication for deletion, only the owner of the subscription or the topic's owner can unsubscribe, and an Amazon Web Services signature is required. If the Unsubscribe call does not require authentication and the requester is not the subscription owner, a final cancellation message is delivered to the endpoint, so that the endpoint owner can easily resubscribe to the topic if the Unsubscribe request was unintended.

Amazon SQS queue subscriptions require authentication for deletion. Only the owner of the subscription, or the owner of the topic can unsubscribe using the required Amazon Web Services signature.

This action is throttled at 100 transactions per second (TPS).

" }, "UntagResource":{ "name":"UntagResource", @@ -1055,11 +1093,15 @@ }, "Attributes":{ "shape":"TopicAttributesMap", - "documentation":"

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that the CreateTopic action uses:

  • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

  • DisplayName – The display name to use for a topic with SMS subscriptions.

  • FifoTopic – Set to true to create a FIFO topic.

  • Policy – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic.

The following attribute applies only to server-side encryption:

  • KmsMasterKeyId – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

The following attributes apply only to FIFO topics:

  • FifoTopic – When this is set to true, a FIFO topic is created.

  • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

    • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

    • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

" + "documentation":"

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that the CreateTopic action uses:

  • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

  • DisplayName – The display name to use for a topic with SMS subscriptions.

  • FifoTopic – Set to true to create a FIFO topic.

  • Policy – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic.

  • SignatureVersion – The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS. By default, SignatureVersion is set to 1.

  • TracingConfig – Tracing mode of an Amazon SNS topic. By default TracingConfig is set to PassThrough, and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set to Active, Amazon SNS will vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true. This is only supported on standard topics.

The following attribute applies only to server-side encryption:

  • KmsMasterKeyId – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

The following attributes apply only to FIFO topics:

  • FifoTopic – When this is set to true, a FIFO topic is created.

  • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

    • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

    • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

" }, "Tags":{ "shape":"TagList", "documentation":"

The list of tags to add to a new topic.

To be able to tag a topic on creation, you must have the sns:CreateTopic and sns:TagResource permissions.

" + }, + "DataProtectionPolicy":{ + "shape":"attributeValue", + "documentation":"

The body of the policy document you want to use for this topic.

You can only add one policy per topic.

The policy must be in JSON string format.

Length Constraints: Maximum length of 30,720.

" } }, "documentation":"

Input for CreateTopic action.

" @@ -1181,6 +1223,25 @@ }, "exception":true }, + "GetDataProtectionPolicyInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"topicARN", + "documentation":"

The ARN of the topic whose DataProtectionPolicy you want to get.

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + } + } + }, + "GetDataProtectionPolicyResponse":{ + "type":"structure", + "members":{ + "DataProtectionPolicy":{ + "shape":"attributeValue", + "documentation":"

Retrieves the DataProtectionPolicy in JSON string format.

" + } + } + }, "GetEndpointAttributesInput":{ "type":"structure", "required":["EndpointArn"], @@ -1274,7 +1335,7 @@ "members":{ "Attributes":{ "shape":"SubscriptionAttributesMap", - "documentation":"

A map of the subscription's attributes. Attributes in this map include the following:

  • ConfirmationWasAuthenticatedtrue if the subscription confirmation request was authenticated.

  • DeliveryPolicy – The JSON serialization of the subscription's delivery policy.

  • EffectiveDeliveryPolicy – The JSON serialization of the effective delivery policy that takes into account the topic delivery policy and account system defaults.

  • FilterPolicy – The filter policy JSON that is assigned to the subscription. For more information, see Amazon SNS Message Filtering in the Amazon SNS Developer Guide.

  • Owner – The Amazon Web Services account ID of the subscription's owner.

  • PendingConfirmationtrue if the subscription hasn't been confirmed. To confirm a pending subscription, call the ConfirmSubscription action with a confirmation token.

  • RawMessageDeliverytrue if raw message delivery is enabled for the subscription. Raw messages are free of JSON formatting and can be sent to HTTP/S and Amazon SQS endpoints.

  • RedrivePolicy – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing.

  • SubscriptionArn – The subscription's ARN.

  • TopicArn – The topic ARN that the subscription is associated with.

The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions:

  • SubscriptionRoleArn – The ARN of the IAM role that has the following:

    • Permission to write to the Kinesis Data Firehose delivery stream

    • Amazon SNS listed as a trusted entity

    Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon SNS Developer Guide.

" + "documentation":"

A map of the subscription's attributes. Attributes in this map include the following:

  • ConfirmationWasAuthenticatedtrue if the subscription confirmation request was authenticated.

  • DeliveryPolicy – The JSON serialization of the subscription's delivery policy.

  • EffectiveDeliveryPolicy – The JSON serialization of the effective delivery policy that takes into account the topic delivery policy and account system defaults.

  • FilterPolicy – The filter policy JSON that is assigned to the subscription. For more information, see Amazon SNS Message Filtering in the Amazon SNS Developer Guide.

  • FilterPolicyScope – This attribute lets you choose the filtering scope by using one of the following string value types:

    • MessageAttributes (default) – The filter is applied on the message attributes.

    • MessageBody – The filter is applied on the message body.

  • Owner – The Amazon Web Services account ID of the subscription's owner.

  • PendingConfirmationtrue if the subscription hasn't been confirmed. To confirm a pending subscription, call the ConfirmSubscription action with a confirmation token.

  • RawMessageDeliverytrue if raw message delivery is enabled for the subscription. Raw messages are free of JSON formatting and can be sent to HTTP/S and Amazon SQS endpoints.

  • RedrivePolicy – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing.

  • SubscriptionArn – The subscription's ARN.

  • TopicArn – The topic ARN that the subscription is associated with.

The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions:

  • SubscriptionRoleArn – The ARN of the IAM role that has the following:

    • Permission to write to the Kinesis Data Firehose delivery stream

    • Amazon SNS listed as a trusted entity

    Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon SNS Developer Guide.

" } }, "documentation":"

Response for GetSubscriptionAttributes action.

" @@ -1295,7 +1356,7 @@ "members":{ "Attributes":{ "shape":"TopicAttributesMap", - "documentation":"

A map of the topic's attributes. Attributes in this map include the following:

  • DeliveryPolicy – The JSON serialization of the topic's delivery policy.

  • DisplayName – The human-readable name used in the From field for notifications to email and email-json endpoints.

  • Owner – The Amazon Web Services account ID of the topic's owner.

  • Policy – The JSON serialization of the topic's access control policy.

  • SubscriptionsConfirmed – The number of confirmed subscriptions for the topic.

  • SubscriptionsDeleted – The number of deleted subscriptions for the topic.

  • SubscriptionsPending – The number of subscriptions pending confirmation for the topic.

  • TopicArn – The topic's ARN.

  • EffectiveDeliveryPolicy – The JSON serialization of the effective delivery policy, taking system defaults into account.

The following attribute applies only to server-side-encryption:

  • KmsMasterKeyId - The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

The following attributes apply only to FIFO topics:

  • FifoTopic – When this is set to true, a FIFO topic is created.

  • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

    • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

    • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

" + "documentation":"

A map of the topic's attributes. Attributes in this map include the following:

  • DeliveryPolicy – The JSON serialization of the topic's delivery policy.

  • DisplayName – The human-readable name used in the From field for notifications to email and email-json endpoints.

  • EffectiveDeliveryPolicy – The JSON serialization of the effective delivery policy, taking system defaults into account.

  • Owner – The Amazon Web Services account ID of the topic's owner.

  • Policy – The JSON serialization of the topic's access control policy.

  • SignatureVersion – The version of the Amazon SNS signature used for the topic.

    • By default, SignatureVersion is set to 1. The signature is a Base64-encoded SHA1withRSA signature.

    • When you set SignatureVersion to 2. Amazon SNS uses a Base64-encoded SHA256withRSA signature.

      If the API response does not include the SignatureVersion attribute, it means that the SignatureVersion for the topic has value 1.

  • SubscriptionsConfirmed – The number of confirmed subscriptions for the topic.

  • SubscriptionsDeleted – The number of deleted subscriptions for the topic.

  • SubscriptionsPending – The number of subscriptions pending confirmation for the topic.

  • TopicArn – The topic's ARN.

  • TracingConfig – Tracing mode of an Amazon SNS topic. By default TracingConfig is set to PassThrough, and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set to Active, Amazon SNS will vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true. This is only supported on standard topics.

The following attribute applies only to server-side-encryption:

  • KmsMasterKeyId - The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

The following attributes apply only to FIFO topics:

  • FifoTopic – When this is set to true, a FIFO topic is created.

  • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

    • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

    • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

" } }, "documentation":"

Response for GetTopicAttributes action.

" @@ -2043,6 +2104,23 @@ }, "documentation":"

Response for Publish action.

" }, + "PutDataProtectionPolicyInput":{ + "type":"structure", + "required":[ + "ResourceArn", + "DataProtectionPolicy" + ], + "members":{ + "ResourceArn":{ + "shape":"topicARN", + "documentation":"

The ARN of the topic whose DataProtectionPolicy you want to add or update.

For more information about ARNs, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" + }, + "DataProtectionPolicy":{ + "shape":"attributeValue", + "documentation":"

The JSON serialization of the topic's DataProtectionPolicy.

The DataProtectionPolicy must be in JSON string format.

Length Constraints: Maximum length of 30,720.

" + } + } + }, "RemovePermissionInput":{ "type":"structure", "required":[ @@ -2175,7 +2253,7 @@ }, "AttributeName":{ "shape":"attributeName", - "documentation":"

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that this action uses:

  • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

  • FilterPolicy – The simple JSON object that lets your subscriber receive only a subset of messages, rather than receiving every message published to the topic.

  • RawMessageDelivery – When set to true, enables raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need for the endpoints to process JSON formatting, which is otherwise created for Amazon SNS metadata.

  • RedrivePolicy – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing.

The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions:

  • SubscriptionRoleArn – The ARN of the IAM role that has the following:

    • Permission to write to the Kinesis Data Firehose delivery stream

    • Amazon SNS listed as a trusted entity

    Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon SNS Developer Guide.

" + "documentation":"

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that this action uses:

  • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

  • FilterPolicy – The simple JSON object that lets your subscriber receive only a subset of messages, rather than receiving every message published to the topic.

  • FilterPolicyScope – This attribute lets you choose the filtering scope by using one of the following string value types:

    • MessageAttributes (default) – The filter is applied on the message attributes.

    • MessageBody – The filter is applied on the message body.

  • RawMessageDelivery – When set to true, enables raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need for the endpoints to process JSON formatting, which is otherwise created for Amazon SNS metadata.

  • RedrivePolicy – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing.

The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions:

  • SubscriptionRoleArn – The ARN of the IAM role that has the following:

    • Permission to write to the Kinesis Data Firehose delivery stream

    • Amazon SNS listed as a trusted entity

    Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon SNS Developer Guide.

" }, "AttributeValue":{ "shape":"attributeValue", @@ -2197,7 +2275,7 @@ }, "AttributeName":{ "shape":"attributeName", - "documentation":"

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that the SetTopicAttributes action uses:

  • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

  • DisplayName – The display name to use for a topic with SMS subscriptions.

  • Policy – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic.

The following attribute applies only to server-side-encryption:

  • KmsMasterKeyId – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

The following attribute applies only to FIFO topics:

  • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

    • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

    • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

" + "documentation":"

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that the SetTopicAttributes action uses:

  • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

  • DisplayName – The display name to use for a topic with SMS subscriptions.

  • Policy – The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic.

  • TracingConfig – Tracing mode of an Amazon SNS topic. By default TracingConfig is set to PassThrough, and the topic passes through the tracing header it receives from an Amazon SNS publisher to its subscriptions. If set to Active, Amazon SNS will vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true. This is only supported on standard topics.

The following attribute applies only to server-side-encryption:

  • KmsMasterKeyId – The ID of an Amazon Web Services managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the Key Management Service API Reference.

  • SignatureVersion – The signature version corresponds to the hashing algorithm used while creating the signature of the notifications, subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS.

The following attribute applies only to FIFO topics:

  • ContentBasedDeduplication – Enables content-based deduplication for FIFO topics.

    • By default, ContentBasedDeduplication is set to false. If you create a FIFO topic and this attribute is false, you must specify a value for the MessageDeduplicationId parameter for the Publish action.

    • When you set ContentBasedDeduplication to true, Amazon SNS uses a SHA-256 hash to generate the MessageDeduplicationId using the body of the message (but not the attributes of the message).

      (Optional) To override the generated value, you can specify a value for the MessageDeduplicationId parameter for the Publish action.

" }, "AttributeValue":{ "shape":"attributeValue", @@ -2241,7 +2319,7 @@ }, "Attributes":{ "shape":"SubscriptionAttributesMap", - "documentation":"

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that the Subscribe action uses:

  • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

  • FilterPolicy – The simple JSON object that lets your subscriber receive only a subset of messages, rather than receiving every message published to the topic.

  • RawMessageDelivery – When set to true, enables raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need for the endpoints to process JSON formatting, which is otherwise created for Amazon SNS metadata.

  • RedrivePolicy – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing.

The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions:

  • SubscriptionRoleArn – The ARN of the IAM role that has the following:

    • Permission to write to the Kinesis Data Firehose delivery stream

    • Amazon SNS listed as a trusted entity

    Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon SNS Developer Guide.

" + "documentation":"

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the special request parameters that the Subscribe action uses:

  • DeliveryPolicy – The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints.

  • FilterPolicy – The simple JSON object that lets your subscriber receive only a subset of messages, rather than receiving every message published to the topic.

  • FilterPolicyScope – This attribute lets you choose the filtering scope by using one of the following string value types:

    • MessageAttributes (default) – The filter is applied on the message attributes.

    • MessageBody – The filter is applied on the message body.

  • RawMessageDelivery – When set to true, enables raw message delivery to Amazon SQS or HTTP/S endpoints. This eliminates the need for the endpoints to process JSON formatting, which is otherwise created for Amazon SNS metadata.

  • RedrivePolicy – When specified, sends undeliverable messages to the specified Amazon SQS dead-letter queue. Messages that can't be delivered due to client errors (for example, when the subscribed endpoint is unreachable) or server errors (for example, when the service that powers the subscribed endpoint becomes unavailable) are held in the dead-letter queue for further analysis or reprocessing.

The following attribute applies only to Amazon Kinesis Data Firehose delivery stream subscriptions:

  • SubscriptionRoleArn – The ARN of the IAM role that has the following:

    • Permission to write to the Kinesis Data Firehose delivery stream

    • Amazon SNS listed as a trusted entity

    Specifying a valid ARN for this attribute is required for Kinesis Data Firehose delivery stream subscriptions. For more information, see Fanout to Kinesis Data Firehose delivery streams in the Amazon SNS Developer Guide.

" }, "ReturnSubscriptionArn":{ "shape":"boolean", diff --git a/botocore/data/sqs/2012-11-05/endpoint-rule-set-1.json b/botocore/data/sqs/2012-11-05/endpoint-rule-set-1.json new file mode 100644 index 00000000..763e7e63 --- /dev/null +++ b/botocore/data/sqs/2012-11-05/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sqs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://sqs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://sqs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sqs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://sqs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ssm-contacts/2021-05-03/endpoint-rule-set-1.json b/botocore/data/ssm-contacts/2021-05-03/endpoint-rule-set-1.json new file mode 100644 index 00000000..ae305170 --- /dev/null +++ b/botocore/data/ssm-contacts/2021-05-03/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-contacts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-contacts-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-contacts.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ssm-contacts.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ssm-contacts/2021-05-03/examples-1.json b/botocore/data/ssm-contacts/2021-05-03/examples-1.json new file mode 100644 index 00000000..d7c714d8 --- /dev/null +++ b/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/botocore/data/ssm-incidents/2018-05-10/endpoint-rule-set-1.json b/botocore/data/ssm-incidents/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..575ce3d8 --- /dev/null +++ b/botocore/data/ssm-incidents/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-incidents-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-incidents-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-incidents.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ssm-incidents.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ssm-incidents/2018-05-10/examples-1.json b/botocore/data/ssm-incidents/2018-05-10/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/ssm-incidents/2018-05-10/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/ssm-incidents/2018-05-10/service-2.json b/botocore/data/ssm-incidents/2018-05-10/service-2.json index 5d9145ea..e4033dd2 100644 --- a/botocore/data/ssm-incidents/2018-05-10/service-2.json +++ b/botocore/data/ssm-incidents/2018-05-10/service-2.json @@ -371,7 +371,7 @@ {"shape":"ValidationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Adds a resource policy to the specified response plan. The resource policy is used to share the response plan using Resource Access Manager (RAM). For more information about cross-account sharing, see Setting up cross-account functionality.

" + "documentation":"

Adds a resource policy to the specified response plan. The resource policy is used to share the response plan using Resource Access Manager (RAM). For more information about cross-account sharing, see Cross-Region and cross-account incident management.

" }, "StartIncident":{ "name":"StartIncident", @@ -715,12 +715,16 @@ "members":{ "clientToken":{ "shape":"ClientToken", - "documentation":"

A token ensuring that the operation is called only once with the specified details.

", + "documentation":"

A token that ensures that the operation is called only once with the specified details.

", "idempotencyToken":true }, "regions":{ "shape":"RegionMapInput", "documentation":"

The Regions that Incident Manager replicates your data to. You can have up to three Regions in your replication set.

" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

A list of tags to add to the replication set.

" } } }, @@ -760,12 +764,16 @@ }, "engagements":{ "shape":"EngagementSet", - "documentation":"

The contacts and escalation plans that the response plan engages during an incident.

" + "documentation":"

The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.

" }, "incidentTemplate":{ "shape":"IncidentTemplate", "documentation":"

Details used to create an incident when using this response plan.

" }, + "integrations":{ + "shape":"Integrations", + "documentation":"

Information about third-party services integrated into the response plan.

" + }, "name":{ "shape":"ResponsePlanName", "documentation":"

The short format name of the response plan. Can't include spaces.

" @@ -804,6 +812,10 @@ "shape":"EventData", "documentation":"

A short description of the event.

" }, + "eventReferences":{ + "shape":"EventReferenceList", + "documentation":"

Adds one or more references to the TimelineEvent. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.

" + }, "eventTime":{ "shape":"Timestamp", "documentation":"

The time that the event occurred.

" @@ -979,7 +991,28 @@ }, "EventData":{ "type":"string", - "max":6000, + "max":12000, + "min":0 + }, + "EventReference":{ + "type":"structure", + "members":{ + "relatedItemId":{ + "shape":"GeneratedId", + "documentation":"

The ID of a RelatedItem referenced in a TimelineEvent.

" + }, + "resource":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of an Amazon Web Services resource referenced in a TimelineEvent.

" + } + }, + "documentation":"

An item referenced in a TimelineEvent that is involved in or somehow associated with an incident. You can specify an Amazon Resource Name (ARN) for an Amazon Web Services resource or a RelatedItem ID.

", + "union":true + }, + "EventReferenceList":{ + "type":"list", + "member":{"shape":"EventReference"}, + "max":10, "min":0 }, "EventSummary":{ @@ -996,6 +1029,10 @@ "shape":"UUID", "documentation":"

The timeline event ID.

" }, + "eventReferences":{ + "shape":"EventReferenceList", + "documentation":"

A list of references in a TimelineEvent.

" + }, "eventTime":{ "shape":"Timestamp", "documentation":"

The time that the event occurred.

" @@ -1051,6 +1088,12 @@ "max":5, "min":0 }, + "GeneratedId":{ + "type":"string", + "max":200, + "min":0, + "pattern":"^related-item/(ANALYSIS|INCIDENT|METRIC|PARENT|ATTACHMENT|OTHER|AUTOMATION|INVOLVED_RESOURCE|TASK)/([0-9]|[A-F]){32}$" + }, "GetIncidentRecordInput":{ "type":"structure", "required":["arn"], @@ -1101,7 +1144,7 @@ "members":{ "maxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of resource policies to display per page of results.

" + "documentation":"

The maximum number of resource policies to display for each page of results.

" }, "nextToken":{ "shape":"NextToken", @@ -1167,12 +1210,16 @@ }, "engagements":{ "shape":"EngagementSet", - "documentation":"

The contacts and escalation plans that the response plan engages during an incident.

" + "documentation":"

The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.

" }, "incidentTemplate":{ "shape":"IncidentTemplate", "documentation":"

Details used to create the incident when using this response plan.

" }, + "integrations":{ + "shape":"Integrations", + "documentation":"

Information about third-party services integrated into the Incident Manager response plan.

" + }, "name":{ "shape":"ResponsePlanName", "documentation":"

The short format name of the response plan. The name can't contain spaces.

" @@ -1395,6 +1442,10 @@ "shape":"Impact", "documentation":"

The impact of the incident on your customers and applications.

" }, + "incidentTags":{ + "shape":"TagMap", + "documentation":"

Tags to assign to the template. When the StartIncident API action is called, Incident Manager assigns the tags specified in the template to the incident.

" + }, "notificationTargets":{ "shape":"NotificationTargetSet", "documentation":"

The Amazon SNS targets that are notified when updates are made to an incident.

" @@ -1425,6 +1476,23 @@ "max":100, "min":0 }, + "Integration":{ + "type":"structure", + "members":{ + "pagerDutyConfiguration":{ + "shape":"PagerDutyConfiguration", + "documentation":"

Information about the PagerDuty service where the response plan creates an incident.

" + } + }, + "documentation":"

Information about third-party services integrated into a response plan.

", + "union":true + }, + "Integrations":{ + "type":"list", + "member":{"shape":"Integration"}, + "max":1, + "min":0 + }, "InternalServerException":{ "type":"structure", "required":["message"], @@ -1464,7 +1532,8 @@ "ATTACHMENT", "OTHER", "AUTOMATION", - "INVOLVED_RESOURCE" + "INVOLVED_RESOURCE", + "TASK" ] }, "ItemValue":{ @@ -1478,6 +1547,10 @@ "shape":"MetricDefinition", "documentation":"

The metric definition, if the related item is a metric in Amazon CloudWatch.

" }, + "pagerDutyIncidentDetail":{ + "shape":"PagerDutyIncidentDetail", + "documentation":"

Details about an incident that is associated with a PagerDuty incident.

" + }, "url":{ "shape":"Url", "documentation":"

The URL, if the related item is a non-Amazon Web Services resource.

" @@ -1702,6 +1775,84 @@ "max":10, "min":0 }, + "PagerDutyConfiguration":{ + "type":"structure", + "required":[ + "name", + "pagerDutyIncidentConfiguration", + "secretId" + ], + "members":{ + "name":{ + "shape":"PagerDutyConfigurationNameString", + "documentation":"

The name of the PagerDuty configuration.

" + }, + "pagerDutyIncidentConfiguration":{ + "shape":"PagerDutyIncidentConfiguration", + "documentation":"

Details about the PagerDuty service associated with the configuration.

" + }, + "secretId":{ + "shape":"PagerDutyConfigurationSecretIdString", + "documentation":"

The ID of the Amazon Web Services Secrets Manager secret that stores your PagerDuty key, either a General Access REST API Key or User Token REST API Key, and other user credentials.

" + } + }, + "documentation":"

Details about the PagerDuty configuration for a response plan.

" + }, + "PagerDutyConfigurationNameString":{ + "type":"string", + "max":200, + "min":1 + }, + "PagerDutyConfigurationSecretIdString":{ + "type":"string", + "max":512, + "min":1 + }, + "PagerDutyIncidentConfiguration":{ + "type":"structure", + "required":["serviceId"], + "members":{ + "serviceId":{ + "shape":"PagerDutyIncidentConfigurationServiceIdString", + "documentation":"

The ID of the PagerDuty service that the response plan associates with an incident when it launches.

" + } + }, + "documentation":"

Details about the PagerDuty service where the response plan creates an incident.

" + }, + "PagerDutyIncidentConfigurationServiceIdString":{ + "type":"string", + "max":200, + "min":1 + }, + "PagerDutyIncidentDetail":{ + "type":"structure", + "required":["id"], + "members":{ + "autoResolve":{ + "shape":"Boolean", + "documentation":"

Indicates whether to resolve the PagerDuty incident when you resolve the associated Incident Manager incident.

" + }, + "id":{ + "shape":"PagerDutyIncidentDetailIdString", + "documentation":"

The ID of the incident associated with the PagerDuty service for the response plan.

" + }, + "secretId":{ + "shape":"PagerDutyIncidentDetailSecretIdString", + "documentation":"

The ID of the Amazon Web Services Secrets Manager secret that stores your PagerDuty key, either a General Access REST API Key or User Token REST API Key, and other user credentials.

" + } + }, + "documentation":"

Details about the PagerDuty incident associated with an incident created by an Incident Manager response plan.

" + }, + "PagerDutyIncidentDetailIdString":{ + "type":"string", + "max":200, + "min":1 + }, + "PagerDutyIncidentDetailSecretIdString":{ + "type":"string", + "max":512, + "min":1 + }, "Policy":{ "type":"string", "max":4000, @@ -1725,7 +1876,7 @@ }, "resourceArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the response plan you're adding the resource policy to.

" + "documentation":"

The Amazon Resource Name (ARN) of the response plan to add the resource policy to.

" } } }, @@ -1810,6 +1961,10 @@ "type":"structure", "required":["identifier"], "members":{ + "generatedId":{ + "shape":"GeneratedId", + "documentation":"

A unique ID for a RelatedItem.

Don't specify this parameter when you add a RelatedItem by using the UpdateRelatedItems API action.

" + }, "identifier":{ "shape":"ItemIdentifier", "documentation":"

Details about the related item.

" @@ -2223,6 +2378,13 @@ "max":50, "min":1 }, + "TagMapUpdate":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":0 + }, "TagResourceRequest":{ "type":"structure", "required":[ @@ -2238,7 +2400,7 @@ }, "tags":{ "shape":"TagMap", - "documentation":"

A list of tags that you are adding to the response plan.

" + "documentation":"

A list of tags to add to the response plan.

" } } }, @@ -2297,6 +2459,10 @@ "shape":"UUID", "documentation":"

The ID of the timeline event.

" }, + "eventReferences":{ + "shape":"EventReferenceList", + "documentation":"

A list of references in a TimelineEvent.

" + }, "eventTime":{ "shape":"Timestamp", "documentation":"

The time that the event occurred.

" @@ -2372,7 +2538,7 @@ }, "tagKeys":{ "shape":"TagKeyList", - "documentation":"

The name of the tag you're removing from the response plan.

", + "documentation":"

The name of the tag to remove from the response plan.

", "location":"querystring", "locationName":"tagKeys" } @@ -2392,16 +2558,16 @@ "members":{ "arn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the replication set you're updating.

" + "documentation":"

The Amazon Resource Name (ARN) of the replication set to update.

" }, "clientToken":{ "shape":"ClientToken", - "documentation":"

A token ensuring that the operation is called only once with the specified details.

", + "documentation":"

A token that ensures that the operation is called only once with the specified details.

", "idempotencyToken":true }, "deletionProtected":{ "shape":"Boolean", - "documentation":"

Details if deletion protection is enabled or disabled in your account.

" + "documentation":"

Specifies if deletion protection is turned on or off in your account.

" } } }, @@ -2513,7 +2679,7 @@ }, "clientToken":{ "shape":"ClientToken", - "documentation":"

A token ensuring that the operation is called only once with the specified details.

", + "documentation":"

A token that ensures that the operation is called only once with the specified details.

", "idempotencyToken":true } } @@ -2556,7 +2722,7 @@ }, "engagements":{ "shape":"EngagementSet", - "documentation":"

The contacts and escalation plans that Incident Manager engages at the start of the incident.

" + "documentation":"

The Amazon Resource Name (ARN) for the contacts and escalation plans that the response plan engages during an incident.

" }, "incidentTemplateDedupeString":{ "shape":"DedupeString", @@ -2574,9 +2740,17 @@ "shape":"IncidentSummary", "documentation":"

A brief summary of the incident. This typically contains what has happened, what's currently happening, and next steps.

" }, + "incidentTemplateTags":{ + "shape":"TagMapUpdate", + "documentation":"

Tags to assign to the template. When the StartIncident API action is called, Incident Manager assigns the tags specified in the template to the incident. To call this action, you must also have permission to call the TagResource API action for the incident record resource.

" + }, "incidentTemplateTitle":{ "shape":"IncidentTitle", "documentation":"

The short format name of the incident. The title can't contain spaces.

" + }, + "integrations":{ + "shape":"Integrations", + "documentation":"

Information about third-party services integrated into the response plan.

" } } }, @@ -2605,6 +2779,10 @@ "shape":"UUID", "documentation":"

The ID of the event you are updating. You can find this by using ListTimelineEvents.

" }, + "eventReferences":{ + "shape":"EventReferenceList", + "documentation":"

Updates all existing references in a TimelineEvent. A reference can be an Amazon Web Services resource involved in the incident or in some way associated with it. When you specify a reference, you enter the Amazon Resource Name (ARN) of the resource. You can also specify a related item. As an example, you could specify the ARN of an Amazon DynamoDB (DynamoDB) table. The table for this example is the resource. You could also specify a Amazon CloudWatch metric for that table. The metric is the related item.

This update action overrides all existing references. If you want to keep existing references, you must specify them in the call. If you don't, this action removes them and enters only new references.

" + }, "eventTime":{ "shape":"Timestamp", "documentation":"

The time that the event occurred.

" diff --git a/botocore/data/ssm-sap/2018-05-10/endpoint-rule-set-1.json b/botocore/data/ssm-sap/2018-05-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..8c216ad5 --- /dev/null +++ b/botocore/data/ssm-sap/2018-05-10/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-sap-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-sap-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-sap.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ssm-sap.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ssm-sap/2018-05-10/paginators-1.json b/botocore/data/ssm-sap/2018-05-10/paginators-1.json new file mode 100644 index 00000000..eee580c9 --- /dev/null +++ b/botocore/data/ssm-sap/2018-05-10/paginators-1.json @@ -0,0 +1,22 @@ +{ + "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" + } + } +} diff --git a/botocore/data/ssm-sap/2018-05-10/service-2.json b/botocore/data/ssm-sap/2018-05-10/service-2.json new file mode 100644 index 00000000..15a09f59 --- /dev/null +++ b/botocore/data/ssm-sap/2018-05-10/service-2.json @@ -0,0 +1,1268 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-05-10", + "endpointPrefix":"ssm-sap", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"SsmSap", + "serviceFullName":"AWS Systems Manager for SAP", + "serviceId":"Ssm Sap", + "signatureVersion":"v4", + "signingName":"ssm-sap", + "uid":"ssm-sap-2018-05-10" + }, + "operations":{ + "DeleteResourcePermission":{ + "name":"DeleteResourcePermission", + "http":{ + "method":"POST", + "requestUri":"/delete-resource-permission", + "responseCode":200 + }, + "input":{"shape":"DeleteResourcePermissionInput"}, + "output":{"shape":"DeleteResourcePermissionOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Removes permissions associated with the target database.

" + }, + "DeregisterApplication":{ + "name":"DeregisterApplication", + "http":{ + "method":"POST", + "requestUri":"/deregister-application", + "responseCode":200 + }, + "input":{"shape":"DeregisterApplicationInput"}, + "output":{"shape":"DeregisterApplicationOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deregister an SAP application with AWS Systems Manager for SAP. This action does not affect the existing setup of your SAP workloads on Amazon EC2.

" + }, + "GetApplication":{ + "name":"GetApplication", + "http":{ + "method":"POST", + "requestUri":"/get-application", + "responseCode":200 + }, + "input":{"shape":"GetApplicationInput"}, + "output":{"shape":"GetApplicationOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets an application registered with AWS Systems Manager for SAP. It also returns the components of the application.

" + }, + "GetComponent":{ + "name":"GetComponent", + "http":{ + "method":"POST", + "requestUri":"/get-component", + "responseCode":200 + }, + "input":{"shape":"GetComponentInput"}, + "output":{"shape":"GetComponentOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets the component of an application registered with AWS Systems Manager for SAP.

" + }, + "GetDatabase":{ + "name":"GetDatabase", + "http":{ + "method":"POST", + "requestUri":"/get-database", + "responseCode":200 + }, + "input":{"shape":"GetDatabaseInput"}, + "output":{"shape":"GetDatabaseOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets the SAP HANA database of an application registered with AWS Systems Manager for SAP.

" + }, + "GetOperation":{ + "name":"GetOperation", + "http":{ + "method":"POST", + "requestUri":"/get-operation", + "responseCode":200 + }, + "input":{"shape":"GetOperationInput"}, + "output":{"shape":"GetOperationOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets the details of an operation by specifying the operation ID.

" + }, + "GetResourcePermission":{ + "name":"GetResourcePermission", + "http":{ + "method":"POST", + "requestUri":"/get-resource-permission", + "responseCode":200 + }, + "input":{"shape":"GetResourcePermissionInput"}, + "output":{"shape":"GetResourcePermissionOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Gets permissions associated with the target database.

" + }, + "ListApplications":{ + "name":"ListApplications", + "http":{ + "method":"POST", + "requestUri":"/list-applications", + "responseCode":200 + }, + "input":{"shape":"ListApplicationsInput"}, + "output":{"shape":"ListApplicationsOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists all the applications registered with AWS Systems Manager for SAP.

" + }, + "ListComponents":{ + "name":"ListComponents", + "http":{ + "method":"POST", + "requestUri":"/list-components", + "responseCode":200 + }, + "input":{"shape":"ListComponentsInput"}, + "output":{"shape":"ListComponentsOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists all the components registered with AWS Systems Manager for SAP.

" + }, + "ListDatabases":{ + "name":"ListDatabases", + "http":{ + "method":"POST", + "requestUri":"/list-databases", + "responseCode":200 + }, + "input":{"shape":"ListDatabasesInput"}, + "output":{"shape":"ListDatabasesOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists the SAP HANA databases of an application registered with AWS Systems Manager for SAP.

" + }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"GET", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Lists all tags on an SAP HANA application and/or database registered with AWS Systems Manager for SAP.

" + }, + "PutResourcePermission":{ + "name":"PutResourcePermission", + "http":{ + "method":"POST", + "requestUri":"/put-resource-permission", + "responseCode":200 + }, + "input":{"shape":"PutResourcePermissionInput"}, + "output":{"shape":"PutResourcePermissionOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Adds permissions to the target database.

" + }, + "RegisterApplication":{ + "name":"RegisterApplication", + "http":{ + "method":"POST", + "requestUri":"/register-application", + "responseCode":200 + }, + "input":{"shape":"RegisterApplicationInput"}, + "output":{"shape":"RegisterApplicationOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Register an SAP application with AWS Systems Manager for SAP. You must meet the following requirements before registering.

The SAP application you want to register with AWS Systems Manager for SAP is running on Amazon EC2.

AWS Systems Manager Agent must be setup on an Amazon EC2 instance along with the required IAM permissions.

Amazon EC2 instance(s) must have access to the secrets created in AWS Secrets Manager to manage SAP applications and components.

" + }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates tag for a resource by specifying the ARN.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"DELETE", + "requestUri":"/tags/{resourceArn}", + "responseCode":200 + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Delete the tags for a resource.

", + "idempotent":true + }, + "UpdateApplicationSettings":{ + "name":"UpdateApplicationSettings", + "http":{ + "method":"POST", + "requestUri":"/update-application-settings", + "responseCode":200 + }, + "input":{"shape":"UpdateApplicationSettingsInput"}, + "output":{"shape":"UpdateApplicationSettingsOutput"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

" + } + }, + "shapes":{ + "AppRegistryArn":{ + "type":"string", + "pattern":"arn:aws:servicecatalog:[a-z0-9:\\/-]+" + }, + "Application":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "Type":{ + "shape":"ApplicationType", + "documentation":"

" + }, + "Arn":{ + "shape":"SsmSapArn", + "documentation":"

" + }, + "AppRegistryArn":{ + "shape":"AppRegistryArn", + "documentation":"

" + }, + "Status":{ + "shape":"ApplicationStatus", + "documentation":"

" + }, + "Components":{ + "shape":"ComponentIdList", + "documentation":"

" + }, + "LastUpdated":{ + "shape":"Timestamp", + "documentation":"

" + }, + "StatusMessage":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ApplicationCredential":{ + "type":"structure", + "required":[ + "DatabaseName", + "CredentialType", + "SecretId" + ], + "members":{ + "DatabaseName":{ + "shape":"DatabaseName", + "documentation":"

" + }, + "CredentialType":{ + "shape":"CredentialType", + "documentation":"

" + }, + "SecretId":{ + "shape":"SecretId", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ApplicationCredentialList":{ + "type":"list", + "member":{"shape":"ApplicationCredential"}, + "max":20, + "min":1 + }, + "ApplicationId":{ + "type":"string", + "pattern":"[\\w\\d]{1,50}" + }, + "ApplicationStatus":{ + "type":"string", + "enum":[ + "ACTIVATED", + "STARTING", + "STOPPED", + "STOPPING", + "FAILED", + "REGISTERING", + "DELETING", + "UNKNOWN" + ] + }, + "ApplicationSummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "Type":{ + "shape":"ApplicationType", + "documentation":"

" + }, + "Arn":{ + "shape":"SsmSapArn", + "documentation":"

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ApplicationSummaryList":{ + "type":"list", + "member":{"shape":"ApplicationSummary"} + }, + "ApplicationType":{ + "type":"string", + "enum":["HANA"] + }, + "Arn":{ + "type":"string", + "pattern":"arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+" + }, + "Component":{ + "type":"structure", + "members":{ + "ComponentId":{ + "shape":"ComponentId", + "documentation":"

" + }, + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "ComponentType":{ + "shape":"ComponentType", + "documentation":"

" + }, + "Status":{ + "shape":"ComponentStatus", + "documentation":"

" + }, + "Databases":{ + "shape":"DatabaseIdList", + "documentation":"

" + }, + "Hosts":{ + "shape":"HostList", + "documentation":"

" + }, + "PrimaryHost":{ + "shape":"String", + "documentation":"

" + }, + "LastUpdated":{ + "shape":"Timestamp", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ComponentId":{ + "type":"string", + "pattern":"[\\w\\d-]+" + }, + "ComponentIdList":{ + "type":"list", + "member":{"shape":"ComponentId"} + }, + "ComponentStatus":{ + "type":"string", + "enum":["ACTIVATED"] + }, + "ComponentSummary":{ + "type":"structure", + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "ComponentId":{ + "shape":"ComponentId", + "documentation":"

" + }, + "ComponentType":{ + "shape":"ComponentType", + "documentation":"

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

" + } + }, + "documentation":"

" + }, + "ComponentSummaryList":{ + "type":"list", + "member":{"shape":"ComponentSummary"} + }, + "ComponentType":{ + "type":"string", + "enum":["HANA"] + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CredentialType":{ + "type":"string", + "enum":["ADMIN"] + }, + "Database":{ + "type":"structure", + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "ComponentId":{ + "shape":"ComponentId", + "documentation":"

" + }, + "Credentials":{ + "shape":"ApplicationCredentialList", + "documentation":"

" + }, + "DatabaseId":{ + "shape":"DatabaseId", + "documentation":"

" + }, + "DatabaseName":{ + "shape":"String", + "documentation":"

" + }, + "DatabaseType":{ + "shape":"DatabaseType", + "documentation":"

" + }, + "Arn":{ + "shape":"SsmSapArn", + "documentation":"

" + }, + "Status":{ + "shape":"DatabaseStatus", + "documentation":"

" + }, + "PrimaryHost":{ + "shape":"String", + "documentation":"

" + }, + "SQLPort":{ + "shape":"Integer", + "documentation":"

" + }, + "LastUpdated":{ + "shape":"Timestamp", + "documentation":"

" + } + }, + "documentation":"

" + }, + "DatabaseId":{ + "type":"string", + "pattern":".*[\\w\\d]+" + }, + "DatabaseIdList":{ + "type":"list", + "member":{"shape":"DatabaseId"} + }, + "DatabaseName":{ + "type":"string", + "max":100, + "min":1 + }, + "DatabaseStatus":{ + "type":"string", + "enum":[ + "RUNNING", + "STARTING", + "STOPPED", + "WARNING", + "UNKNOWN" + ] + }, + "DatabaseSummary":{ + "type":"structure", + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "ComponentId":{ + "shape":"ComponentId", + "documentation":"

" + }, + "DatabaseId":{ + "shape":"DatabaseId", + "documentation":"

" + }, + "DatabaseType":{ + "shape":"DatabaseType", + "documentation":"

" + }, + "Arn":{ + "shape":"SsmSapArn", + "documentation":"

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

" + } + }, + "documentation":"

" + }, + "DatabaseSummaryList":{ + "type":"list", + "member":{"shape":"DatabaseSummary"} + }, + "DatabaseType":{ + "type":"string", + "enum":[ + "SYSTEM", + "TENANT" + ] + }, + "DeleteResourcePermissionInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ActionType":{ + "shape":"PermissionActionType", + "documentation":"

" + }, + "SourceResourceArn":{ + "shape":"Arn", + "documentation":"

" + }, + "ResourceArn":{ + "shape":"Arn", + "documentation":"

" + } + } + }, + "DeleteResourcePermissionOutput":{ + "type":"structure", + "members":{ + "Policy":{ + "shape":"String", + "documentation":"

" + } + } + }, + "DeregisterApplicationInput":{ + "type":"structure", + "required":["ApplicationId"], + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + } + } + }, + "DeregisterApplicationOutput":{ + "type":"structure", + "members":{ + } + }, + "GetApplicationInput":{ + "type":"structure", + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "ApplicationArn":{ + "shape":"SsmSapArn", + "documentation":"

" + } + } + }, + "GetApplicationOutput":{ + "type":"structure", + "members":{ + "Application":{ + "shape":"Application", + "documentation":"

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

" + } + } + }, + "GetComponentInput":{ + "type":"structure", + "required":[ + "ApplicationId", + "ComponentId" + ], + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "ComponentId":{ + "shape":"ComponentId", + "documentation":"

" + } + } + }, + "GetComponentOutput":{ + "type":"structure", + "members":{ + "Component":{ + "shape":"Component", + "documentation":"

" + } + } + }, + "GetDatabaseInput":{ + "type":"structure", + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "ComponentId":{ + "shape":"ComponentId", + "documentation":"

" + }, + "DatabaseId":{ + "shape":"DatabaseId", + "documentation":"

" + }, + "DatabaseArn":{ + "shape":"SsmSapArn", + "documentation":"

" + } + } + }, + "GetDatabaseOutput":{ + "type":"structure", + "members":{ + "Database":{ + "shape":"Database", + "documentation":"

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

" + } + } + }, + "GetOperationInput":{ + "type":"structure", + "required":["OperationId"], + "members":{ + "OperationId":{ + "shape":"OperationId", + "documentation":"

" + } + } + }, + "GetOperationOutput":{ + "type":"structure", + "members":{ + "Operation":{ + "shape":"Operation", + "documentation":"

" + } + } + }, + "GetResourcePermissionInput":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ActionType":{ + "shape":"PermissionActionType", + "documentation":"

" + }, + "ResourceArn":{ + "shape":"Arn", + "documentation":"

" + } + } + }, + "GetResourcePermissionOutput":{ + "type":"structure", + "members":{ + "Policy":{ + "shape":"String", + "documentation":"

" + } + } + }, + "Host":{ + "type":"structure", + "members":{ + "HostName":{ + "shape":"String", + "documentation":"

" + }, + "HostRole":{ + "shape":"HostRole", + "documentation":"

" + }, + "HostIp":{ + "shape":"String", + "documentation":"

" + }, + "InstanceId":{ + "shape":"String", + "documentation":"

" + } + }, + "documentation":"

" + }, + "HostList":{ + "type":"list", + "member":{"shape":"Host"} + }, + "HostRole":{ + "type":"string", + "enum":[ + "LEADER", + "WORKER", + "STANDBY", + "UNKNOWN" + ] + }, + "InstanceId":{ + "type":"string", + "pattern":"i-[\\w\\d]{8}$|^i-[\\w\\d]{17}" + }, + "InstanceList":{ + "type":"list", + "member":{"shape":"InstanceId"}, + "max":1, + "min":1 + }, + "Integer":{ + "type":"integer", + "box":true + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListApplicationsInput":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

", + "box":true + } + } + }, + "ListApplicationsOutput":{ + "type":"structure", + "members":{ + "Applications":{ + "shape":"ApplicationSummaryList", + "documentation":"

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

" + } + } + }, + "ListComponentsInput":{ + "type":"structure", + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

", + "box":true + } + } + }, + "ListComponentsOutput":{ + "type":"structure", + "members":{ + "Components":{ + "shape":"ComponentSummaryList", + "documentation":"

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

" + } + } + }, + "ListDatabasesInput":{ + "type":"structure", + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "ComponentId":{ + "shape":"ComponentId", + "documentation":"

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

", + "box":true + } + } + }, + "ListDatabasesOutput":{ + "type":"structure", + "members":{ + "Databases":{ + "shape":"DatabaseSummaryList", + "documentation":"

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

" + } + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["resourceArn"], + "members":{ + "resourceArn":{ + "shape":"SsmSapArn", + "documentation":"

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "tags":{ + "shape":"TagMap", + "documentation":"

" + } + } + }, + "MaxResults":{ + "type":"integer", + "max":50, + "min":1 + }, + "NextToken":{ + "type":"string", + "pattern":".{16,1024}" + }, + "Operation":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"OperationId", + "documentation":"

" + }, + "Type":{ + "shape":"OperationType", + "documentation":"

" + }, + "Status":{ + "shape":"OperationStatus", + "documentation":"

" + }, + "StatusMessage":{ + "shape":"String", + "documentation":"

" + }, + "Properties":{ + "shape":"OperationProperties", + "documentation":"

" + }, + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

" + }, + "ResourceId":{ + "shape":"ResourceId", + "documentation":"

" + }, + "ResourceArn":{ + "shape":"Arn", + "documentation":"

" + }, + "StartTime":{ + "shape":"Timestamp", + "documentation":"

" + }, + "EndTime":{ + "shape":"Timestamp", + "documentation":"

" + }, + "LastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

" + } + }, + "documentation":"

" + }, + "OperationId":{ + "type":"string", + "pattern":"[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?" + }, + "OperationIdList":{ + "type":"list", + "member":{"shape":"OperationId"} + }, + "OperationProperties":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "OperationStatus":{ + "type":"string", + "enum":[ + "INPROGRESS", + "SUCCESS", + "ERROR" + ] + }, + "OperationType":{"type":"string"}, + "PermissionActionType":{ + "type":"string", + "enum":["RESTORE"] + }, + "PutResourcePermissionInput":{ + "type":"structure", + "required":[ + "ActionType", + "SourceResourceArn", + "ResourceArn" + ], + "members":{ + "ActionType":{ + "shape":"PermissionActionType", + "documentation":"

" + }, + "SourceResourceArn":{ + "shape":"Arn", + "documentation":"

" + }, + "ResourceArn":{ + "shape":"Arn", + "documentation":"

" + } + } + }, + "PutResourcePermissionOutput":{ + "type":"structure", + "members":{ + "Policy":{ + "shape":"String", + "documentation":"

" + } + } + }, + "RegisterApplicationInput":{ + "type":"structure", + "required":[ + "ApplicationId", + "ApplicationType", + "Instances", + "Credentials" + ], + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "ApplicationType":{ + "shape":"ApplicationType", + "documentation":"

" + }, + "Instances":{ + "shape":"InstanceList", + "documentation":"

" + }, + "SapInstanceNumber":{ + "shape":"SAPInstanceNumber", + "documentation":"

" + }, + "Sid":{ + "shape":"SID", + "documentation":"

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

" + }, + "Credentials":{ + "shape":"ApplicationCredentialList", + "documentation":"

" + } + } + }, + "RegisterApplicationOutput":{ + "type":"structure", + "members":{ + "Application":{ + "shape":"Application", + "documentation":"

" + }, + "OperationId":{ + "shape":"OperationId", + "documentation":"

" + } + } + }, + "ResourceId":{ + "type":"string", + "max":64, + "min":1 + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ResourceType":{ + "type":"string", + "max":64, + "min":1 + }, + "SAPInstanceNumber":{ + "type":"string", + "pattern":"[0-9]{2}" + }, + "SID":{ + "type":"string", + "pattern":"[A-Z][A-Z0-9]{2}" + }, + "SecretId":{ + "type":"string", + "max":100, + "min":1, + "sensitive":true + }, + "SsmSapArn":{ + "type":"string", + "pattern":"arn:(.+:){2,4}.+$|^arn:(.+:){1,3}.+\\/.+" + }, + "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "pattern":"(?!aws:)[a-zA-Z+-=._:/]+" + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"} + }, + "TagMap":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"} + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tags" + ], + "members":{ + "resourceArn":{ + "shape":"SsmSapArn", + "documentation":"

", + "location":"uri", + "locationName":"resourceArn" + }, + "tags":{ + "shape":"TagMap", + "documentation":"

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":1 + }, + "Timestamp":{"type":"timestamp"}, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "resourceArn", + "tagKeys" + ], + "members":{ + "resourceArn":{ + "shape":"SsmSapArn", + "documentation":"

", + "location":"uri", + "locationName":"resourceArn" + }, + "tagKeys":{ + "shape":"TagKeyList", + "documentation":"

Adds/updates or removes credentials for applications registered with AWS Systems Manager for SAP.

", + "location":"querystring", + "locationName":"tagKeys" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateApplicationSettingsInput":{ + "type":"structure", + "required":["ApplicationId"], + "members":{ + "ApplicationId":{ + "shape":"ApplicationId", + "documentation":"

" + }, + "CredentialsToAddOrUpdate":{ + "shape":"ApplicationCredentialList", + "documentation":"

" + }, + "CredentialsToRemove":{ + "shape":"ApplicationCredentialList", + "documentation":"

" + } + } + }, + "UpdateApplicationSettingsOutput":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"String", + "documentation":"

" + }, + "OperationIds":{ + "shape":"OperationIdList", + "documentation":"

" + } + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + }, + "documentation":"

This API reference provides descriptions, syntax, and other details about each of the actions and data types for AWS Systems Manager for SAP. The topic for each action shows the API request parameters and responses.

" +} diff --git a/botocore/data/ssm/2014-11-06/endpoint-rule-set-1.json b/botocore/data/ssm/2014-11-06/endpoint-rule-set-1.json new file mode 100644 index 00000000..0bf2ed70 --- /dev/null +++ b/botocore/data/ssm/2014-11-06/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://ssm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://ssm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ssm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ssm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/ssm/2014-11-06/paginators-1.json b/botocore/data/ssm/2014-11-06/paginators-1.json index fe5d0cd4..871cef8b 100644 --- a/botocore/data/ssm/2014-11-06/paginators-1.json +++ b/botocore/data/ssm/2014-11-06/paginators-1.json @@ -275,6 +275,12 @@ "limit_key": "MaxResults", "output_token": "NextToken", "result_key": "Summaries" + }, + "GetResourcePolicies": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Policies" } } } diff --git a/botocore/data/ssm/2014-11-06/service-2.json b/botocore/data/ssm/2014-11-06/service-2.json index 76403077..2d1f02cd 100644 --- a/botocore/data/ssm/2014-11-06/service-2.json +++ b/botocore/data/ssm/2014-11-06/service-2.json @@ -28,7 +28,7 @@ {"shape":"TooManyTagsError"}, {"shape":"TooManyUpdates"} ], - "documentation":"

Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your automations, documents, managed nodes, maintenance windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed nodes that helps you track each node's owner and stack level. For example:

  • Key=Owner,Value=DbAdmin

  • Key=Owner,Value=SysAdmin

  • Key=Owner,Value=Dev

  • Key=Stack,Value=Production

  • Key=Stack,Value=Pre-Production

  • Key=Stack,Value=Test

Most resources can have a maximum of 50 tags. Automations can have a maximum of 5 tags.

We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to and are interpreted strictly as a string of characters.

For more information about using tags with Amazon Elastic Compute Cloud (Amazon EC2) instances, see Tagging your Amazon EC2 resources in the Amazon EC2 User Guide.

" + "documentation":"

Adds or overwrites one or more tags for the specified resource. Tags are metadata that you can assign to your automations, documents, managed nodes, maintenance windows, Parameter Store parameters, and patch baselines. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define. For example, you could define a set of tags for your account's managed nodes that helps you track each node's owner and stack level. For example:

  • Key=Owner,Value=DbAdmin

  • Key=Owner,Value=SysAdmin

  • Key=Owner,Value=Dev

  • Key=Stack,Value=Production

  • Key=Stack,Value=Pre-Production

  • Key=Stack,Value=Test

Most resources can have a maximum of 50 tags. Automations can have a maximum of 5 tags.

We recommend that you devise a set of tag keys that meets your needs for each resource type. Using a consistent set of tag keys makes it easier for you to manage your resources. You can search and filter the resources based on the tags you add. Tags don't have any semantic meaning to and are interpreted strictly as a string of characters.

For more information about using tags with Amazon Elastic Compute Cloud (Amazon EC2) instances, see Tagging your Amazon EC2 resources in the Amazon EC2 User Guide.

" }, "AssociateOpsItemRelatedItem":{ "name":"AssociateOpsItemRelatedItem", @@ -111,7 +111,8 @@ {"shape":"InvalidParameters"}, {"shape":"InvalidTarget"}, {"shape":"InvalidSchedule"}, - {"shape":"InvalidTargetMaps"} + {"shape":"InvalidTargetMaps"}, + {"shape":"InvalidTag"} ], "documentation":"

A State Manager association defines the state that you want to maintain on your managed nodes. For example, an association can specify that anti-virus software must be installed and running on your managed nodes, or that certain ports must be closed. For static targets, the association specifies a schedule for when the configuration is reapplied. For dynamic targets, such as an Amazon Web Services resource group or an Amazon Web Services autoscaling group, State Manager, a capability of Amazon Web Services Systems Manager applies the configuration when new managed nodes are added to the group. The association also specifies actions to take when applying the configuration. For example, an association for anti-virus software might run once a day. If the software isn't installed, then State Manager installs it. If the software is installed, but the service isn't running, then the association might instruct State Manager to start the service.

" }, @@ -184,7 +185,8 @@ {"shape":"InternalServerError"}, {"shape":"OpsItemAlreadyExistsException"}, {"shape":"OpsItemLimitExceededException"}, - {"shape":"OpsItemInvalidParameterException"} + {"shape":"OpsItemInvalidParameterException"}, + {"shape":"OpsItemAccessDeniedException"} ], "documentation":"

Creates a new OpsItem. You must have permission in Identity and Access Management (IAM) to create a new OpsItem. For more information, see Getting started with OpsCenter in the Amazon Web Services Systems Manager User Guide.

Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see Amazon Web Services Systems Manager OpsCenter in the Amazon Web Services Systems Manager User Guide.

" }, @@ -386,6 +388,21 @@ ], "documentation":"

Deletes a resource data sync configuration. After the configuration is deleted, changes to data on managed nodes are no longer synced to or from the target. Deleting a sync configuration doesn't delete data.

" }, + "DeleteResourcePolicy":{ + "name":"DeleteResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteResourcePolicyRequest"}, + "output":{"shape":"DeleteResourcePolicyResponse"}, + "errors":[ + {"shape":"InternalServerError"}, + {"shape":"ResourcePolicyInvalidParameterException"}, + {"shape":"ResourcePolicyConflictException"} + ], + "documentation":"

Deletes a Systems Manager resource policy. A resource policy helps you to define the IAM entity (for example, an Amazon Web Services account) that can manage your Systems Manager resources. Currently, OpsItemGroup is the only resource that supports Systems Manager resource policies. The resource policy for OpsItemGroup enables Amazon Web Services accounts to view and interact with OpsCenter operational work items (OpsItems).

" + }, "DeregisterManagedInstance":{ "name":"DeregisterManagedInstance", "http":{ @@ -1147,7 +1164,8 @@ "output":{"shape":"GetOpsItemResponse"}, "errors":[ {"shape":"InternalServerError"}, - {"shape":"OpsItemNotFoundException"} + {"shape":"OpsItemNotFoundException"}, + {"shape":"OpsItemAccessDeniedException"} ], "documentation":"

Get information about an OpsItem by using the ID. You must have permission in Identity and Access Management (IAM) to view information about an OpsItem. For more information, see Getting started with OpsCenter in the Amazon Web Services Systems Manager User Guide.

Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see OpsCenter in the Amazon Web Services Systems Manager User Guide.

" }, @@ -1276,6 +1294,20 @@ ], "documentation":"

Retrieves the patch baseline that should be used for the specified patch group.

" }, + "GetResourcePolicies":{ + "name":"GetResourcePolicies", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetResourcePoliciesRequest"}, + "output":{"shape":"GetResourcePoliciesResponse"}, + "errors":[ + {"shape":"InternalServerError"}, + {"shape":"ResourcePolicyInvalidParameterException"} + ], + "documentation":"

Returns an array of the Policy object.

" + }, "GetServiceSetting":{ "name":"GetServiceSetting", "http":{ @@ -1588,7 +1620,7 @@ {"shape":"InvalidResourceType"}, {"shape":"InvalidResourceId"} ], - "documentation":"

Registers a compliance type and other compliance details on a designated resource. This operation lets you register custom compliance details with a resource. This call overwrites existing compliance information on the resource, so you must provide a full list of compliance items each time that you send the request.

ComplianceType can be one of the following:

  • ExecutionId: The execution ID when the patch, association, or custom compliance item was applied.

  • ExecutionType: Specify patch, association, or Custom:string.

  • ExecutionTime. The time the patch, association, or custom compliance item was applied to the managed node.

  • Id: The patch, association, or custom compliance ID.

  • Title: A title.

  • Status: The status of the compliance item. For example, approved for patches, or Failed for associations.

  • Severity: A patch severity. For example, critical.

  • DocumentName: An SSM document name. For example, AWS-RunPatchBaseline.

  • DocumentVersion: An SSM document version number. For example, 4.

  • Classification: A patch classification. For example, security updates.

  • PatchBaselineId: A patch baseline ID.

  • PatchSeverity: A patch severity. For example, Critical.

  • PatchState: A patch state. For example, InstancesWithFailedPatches.

  • PatchGroup: The name of a patch group.

  • InstalledTime: The time the association, patch, or custom compliance item was applied to the resource. Specify the time by using the following format: yyyy-MM-dd'T'HH:mm:ss'Z'

" + "documentation":"

Registers a compliance type and other compliance details on a designated resource. This operation lets you register custom compliance details with a resource. This call overwrites existing compliance information on the resource, so you must provide a full list of compliance items each time that you send the request.

ComplianceType can be one of the following:

  • ExecutionId: The execution ID when the patch, association, or custom compliance item was applied.

  • ExecutionType: Specify patch, association, or Custom:string.

  • ExecutionTime. The time the patch, association, or custom compliance item was applied to the managed node.

  • Id: The patch, association, or custom compliance ID.

  • Title: A title.

  • Status: The status of the compliance item. For example, approved for patches, or Failed for associations.

  • Severity: A patch severity. For example, Critical.

  • DocumentName: An SSM document name. For example, AWS-RunPatchBaseline.

  • DocumentVersion: An SSM document version number. For example, 4.

  • Classification: A patch classification. For example, security updates.

  • PatchBaselineId: A patch baseline ID.

  • PatchSeverity: A patch severity. For example, Critical.

  • PatchState: A patch state. For example, InstancesWithFailedPatches.

  • PatchGroup: The name of a patch group.

  • InstalledTime: The time the association, patch, or custom compliance item was applied to the resource. Specify the time by using the following format: yyyy-MM-dd'T'HH:mm:ss'Z'

" }, "PutInventory":{ "name":"PutInventory", @@ -1641,6 +1673,22 @@ ], "documentation":"

Add a parameter to the system.

" }, + "PutResourcePolicy":{ + "name":"PutResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutResourcePolicyRequest"}, + "output":{"shape":"PutResourcePolicyResponse"}, + "errors":[ + {"shape":"InternalServerError"}, + {"shape":"ResourcePolicyInvalidParameterException"}, + {"shape":"ResourcePolicyLimitExceededException"}, + {"shape":"ResourcePolicyConflictException"} + ], + "documentation":"

Creates or updates a Systems Manager resource policy. A resource policy helps you to define the IAM entity (for example, an Amazon Web Services account) that can manage your Systems Manager resources. Currently, OpsItemGroup is the only resource that supports Systems Manager resource policies. The resource policy for OpsItemGroup enables Amazon Web Services accounts to view and interact with OpsCenter operational work items (OpsItems).

" + }, "RegisterDefaultPatchBaseline":{ "name":"RegisterDefaultPatchBaseline", "http":{ @@ -2067,7 +2115,8 @@ {"shape":"OpsItemNotFoundException"}, {"shape":"OpsItemAlreadyExistsException"}, {"shape":"OpsItemLimitExceededException"}, - {"shape":"OpsItemInvalidParameterException"} + {"shape":"OpsItemInvalidParameterException"}, + {"shape":"OpsItemAccessDeniedException"} ], "documentation":"

Edit or change an OpsItem. You must have permission in Identity and Access Management (IAM) to update an OpsItem. For more information, see Getting started with OpsCenter in the Amazon Web Services Systems Manager User Guide.

Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational issues impacting the performance and health of their Amazon Web Services resources. For more information, see OpsCenter in the Amazon Web Services Systems Manager User Guide.

" }, @@ -2266,6 +2315,68 @@ "max":10 }, "AggregatorSchemaOnly":{"type":"boolean"}, + "Alarm":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"AlarmName", + "documentation":"

The name of your CloudWatch alarm.

" + } + }, + "documentation":"

A CloudWatch alarm you apply to an automation or command.

" + }, + "AlarmConfiguration":{ + "type":"structure", + "required":["Alarms"], + "members":{ + "IgnorePollAlarmFailure":{ + "shape":"Boolean", + "documentation":"

If you specify true for this value, your automation or command continue to run even if we can't gather information about the state of your CloudWatch alarm. The default value is false.

" + }, + "Alarms":{ + "shape":"AlarmList", + "documentation":"

The name of the CloudWatch alarm specified in the configuration.

" + } + }, + "documentation":"

The details for the CloudWatch alarm you want to apply to an automation or command.

" + }, + "AlarmList":{ + "type":"list", + "member":{"shape":"Alarm"}, + "max":1, + "min":1 + }, + "AlarmName":{ + "type":"string", + "max":255, + "min":1, + "pattern":"^(?!\\s*$).+" + }, + "AlarmStateInformation":{ + "type":"structure", + "required":[ + "Name", + "State" + ], + "members":{ + "Name":{ + "shape":"AlarmName", + "documentation":"

The name of your CloudWatch alarm.

" + }, + "State":{ + "shape":"ExternalAlarmState", + "documentation":"

The state of your CloudWatch alarm.

" + } + }, + "documentation":"

The details about the state of your CloudWatch alarm.

" + }, + "AlarmStateInformationList":{ + "type":"list", + "member":{"shape":"AlarmStateInformation"}, + "max":1, + "min":1 + }, "AllowedPattern":{ "type":"string", "max":1024, @@ -2509,6 +2620,11 @@ "shape":"TargetMaps", "documentation":"

A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

", "box":true + }, + "AlarmConfiguration":{"shape":"AlarmConfiguration"}, + "TriggeredAlarms":{ + "shape":"AlarmStateInformationList", + "documentation":"

The CloudWatch alarm that was invoked during the association.

" } }, "documentation":"

Describes the parameters for a document.

" @@ -2559,6 +2675,11 @@ "ResourceCountByStatus":{ "shape":"ResourceCountByStatus", "documentation":"

An aggregate status of the resources in the execution based on the status type.

" + }, + "AlarmConfiguration":{"shape":"AlarmConfiguration"}, + "TriggeredAlarms":{ + "shape":"AlarmStateInformationList", + "documentation":"

The CloudWatch alarms that were invoked by the association.

" } }, "documentation":"

Includes information about the specified association.

" @@ -3195,6 +3316,14 @@ "shape":"ProgressCounters", "documentation":"

An aggregate of step execution statuses displayed in the Amazon Web Services Systems Manager console for a multi-Region and multi-account Automation execution.

" }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The details for the CloudWatch alarm applied to your automation.

" + }, + "TriggeredAlarms":{ + "shape":"AlarmStateInformationList", + "documentation":"

The CloudWatch alarm that was invoked by the automation.

" + }, "AutomationSubtype":{ "shape":"AutomationSubtype", "documentation":"

The subtype of the Automation operation. Currently, the only supported value is ChangeRequest.

" @@ -3378,6 +3507,14 @@ "shape":"AutomationType", "documentation":"

Use this filter with DescribeAutomationExecutions. Specify either Local or CrossAccount. CrossAccount is an Automation that runs in multiple Amazon Web Services Regions and Amazon Web Services accounts. For more information, see Running Automation workflows in multiple Amazon Web Services Regions and accounts in the Amazon Web Services Systems Manager User Guide.

" }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The details for the CloudWatch alarm applied to your automation.

" + }, + "TriggeredAlarms":{ + "shape":"AlarmStateInformationList", + "documentation":"

The CloudWatch alarm that was invoked by the automation.

" + }, "AutomationSubtype":{ "shape":"AutomationSubtype", "documentation":"

The subtype of the Automation operation. Currently, the only supported value is ChangeRequest.

" @@ -3666,7 +3803,7 @@ }, "ExpiresAfter":{ "shape":"DateTime", - "documentation":"

If this time is reached and the command hasn't already started running, it won't run. Calculated based on the ExpiresAfter user input provided as part of the SendCommand API operation.

" + "documentation":"

If a command expires, it changes status to DeliveryTimedOut for all invocations that have the status InProgress, Pending, or Delayed. ExpiresAfter is calculated based on the total timeout for the overall command. For more information, see Understanding command timeout values in the Amazon Web Services Systems Manager User Guide.

" }, "Parameters":{ "shape":"Parameters", @@ -3690,7 +3827,7 @@ }, "StatusDetails":{ "shape":"StatusDetails", - "documentation":"

A detailed status of the command execution. StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see Understanding command statuses in the Amazon Web Services Systems Manager User Guide. StatusDetails can be one of the following values:

  • Pending: The command hasn't been sent to any managed nodes.

  • In Progress: The command has been sent to at least one managed node but hasn't reached a final state on all managed nodes.

  • Success: The command successfully ran on all invocations. This is a terminal state.

  • Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state.

  • Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state.

  • Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state.

  • Incomplete: The command was attempted on all managed nodes and one or more invocations doesn't have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state.

  • Cancelled: The command was terminated before it was completed. This is a terminal state.

  • Rate Exceeded: The number of managed nodes targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before running it on any managed node. This is a terminal state.

" + "documentation":"

A detailed status of the command execution. StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see Understanding command statuses in the Amazon Web Services Systems Manager User Guide. StatusDetails can be one of the following values:

  • Pending: The command hasn't been sent to any managed nodes.

  • In Progress: The command has been sent to at least one managed node but hasn't reached a final state on all managed nodes.

  • Success: The command successfully ran on all invocations. This is a terminal state.

  • Delivery Timed Out: The value of MaxErrors or more command invocations shows a status of Delivery Timed Out. This is a terminal state.

  • Execution Timed Out: The value of MaxErrors or more command invocations shows a status of Execution Timed Out. This is a terminal state.

  • Failed: The value of MaxErrors or more command invocations shows a status of Failed. This is a terminal state.

  • Incomplete: The command was attempted on all managed nodes and one or more invocations doesn't have a value of Success but not enough invocations failed for the status to be Failed. This is a terminal state.

  • Cancelled: The command was terminated before it was completed. This is a terminal state.

  • Rate Exceeded: The number of managed nodes targeted by the command exceeded the account limit for pending invocations. The system has canceled the command before running it on any managed node. This is a terminal state.

  • Delayed: The system attempted to send the command to the managed node but wasn't successful. The system retries again.

" }, "OutputS3Region":{ "shape":"S3Region", @@ -3743,6 +3880,14 @@ "TimeoutSeconds":{ "shape":"TimeoutSeconds", "documentation":"

The TimeoutSeconds value specified for a command.

" + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The details for the CloudWatch alarm applied to your command.

" + }, + "TriggeredAlarms":{ + "shape":"AlarmStateInformationList", + "documentation":"

The CloudWatch alarm that was invoked by the command.

" } }, "documentation":"

Describes a command request.

" @@ -3828,7 +3973,7 @@ }, "StatusDetails":{ "shape":"StatusDetails", - "documentation":"

A detailed status of the command execution for each invocation (each managed node targeted by the command). StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see Understanding command statuses in the Amazon Web Services Systems Manager User Guide. StatusDetails can be one of the following values:

  • Pending: The command hasn't been sent to the managed node.

  • In Progress: The command has been sent to the managed node but hasn't reached a terminal state.

  • Success: The execution of the command or plugin was successfully completed. This is a terminal state.

  • Delivery Timed Out: The command wasn't delivered to the managed node before the delivery timeout expired. Delivery timeouts don't count against the parent command's MaxErrors limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state.

  • Execution Timed Out: Command execution started on the managed node, but the execution wasn't complete before the execution timeout expired. Execution timeouts count against the MaxErrors limit of the parent command. This is a terminal state.

  • Failed: The command wasn't successful on the managed node. For a plugin, this indicates that the result code wasn't zero. For a command invocation, this indicates that the result code for one or more plugins wasn't zero. Invocation failures count against the MaxErrors limit of the parent command. This is a terminal state.

  • Cancelled: The command was terminated before it was completed. This is a terminal state.

  • Undeliverable: The command can't be delivered to the managed node. The managed node might not exist or might not be responding. Undeliverable invocations don't count against the parent command's MaxErrors limit and don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state.

  • Terminated: The parent command exceeded its MaxErrors limit and subsequent command invocations were canceled by the system. This is a terminal state.

" + "documentation":"

A detailed status of the command execution for each invocation (each managed node targeted by the command). StatusDetails includes more information than Status because it includes states resulting from error and concurrency control parameters. StatusDetails can show different results than Status. For more information about these statuses, see Understanding command statuses in the Amazon Web Services Systems Manager User Guide. StatusDetails can be one of the following values:

  • Pending: The command hasn't been sent to the managed node.

  • In Progress: The command has been sent to the managed node but hasn't reached a terminal state.

  • Success: The execution of the command or plugin was successfully completed. This is a terminal state.

  • Delivery Timed Out: The command wasn't delivered to the managed node before the delivery timeout expired. Delivery timeouts don't count against the parent command's MaxErrors limit, but they do contribute to whether the parent command status is Success or Incomplete. This is a terminal state.

  • Execution Timed Out: Command execution started on the managed node, but the execution wasn't complete before the execution timeout expired. Execution timeouts count against the MaxErrors limit of the parent command. This is a terminal state.

  • Failed: The command wasn't successful on the managed node. For a plugin, this indicates that the result code wasn't zero. For a command invocation, this indicates that the result code for one or more plugins wasn't zero. Invocation failures count against the MaxErrors limit of the parent command. This is a terminal state.

  • Cancelled: The command was terminated before it was completed. This is a terminal state.

  • Undeliverable: The command can't be delivered to the managed node. The managed node might not exist or might not be responding. Undeliverable invocations don't count against the parent command's MaxErrors limit and don't contribute to whether the parent command status is Success or Incomplete. This is a terminal state.

  • Terminated: The parent command exceeded its MaxErrors limit and subsequent command invocations were canceled by the system. This is a terminal state.

  • Delayed: The system attempted to send the command to the managed node but wasn't successful. The system retries again.

" }, "TraceOutput":{ "shape":"InvocationTraceOutput", @@ -4271,7 +4416,7 @@ }, "IamRole":{ "shape":"IamRole", - "documentation":"

The name of the Identity and Access Management (IAM) role that you want to assign to the managed node. This IAM role must provide AssumeRole permissions for the Amazon Web Services Systems Manager service principal ssm.amazonaws.com. For more information, see Create an IAM service role for a hybrid environment in the Amazon Web Services Systems Manager User Guide.

" + "documentation":"

The name of the Identity and Access Management (IAM) role that you want to assign to the managed node. This IAM role must provide AssumeRole permissions for the Amazon Web Services Systems Manager service principal ssm.amazonaws.com. For more information, see Create an IAM service role for a hybrid environment in the Amazon Web Services Systems Manager User Guide.

You can't specify an IAM service-linked role for this parameter. You must create a unique role.

" }, "RegistrationLimit":{ "shape":"RegistrationLimit", @@ -4397,7 +4542,8 @@ "shape":"TargetMaps", "documentation":"

A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

", "box":true - } + }, + "AlarmConfiguration":{"shape":"AlarmConfiguration"} }, "documentation":"

Describes the association of a Amazon Web Services Systems Manager document (SSM document) and a managed node.

" }, @@ -4491,7 +4637,13 @@ "shape":"TargetMaps", "documentation":"

A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

", "box":true - } + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Adds or overwrites one or more tags for a State Manager association. Tags are metadata that you can assign to your Amazon Web Services resources. Tags enable you to categorize your resources in different ways, for example, by purpose, owner, or environment. Each tag consists of a key and an optional value, both of which you define.

", + "box":true + }, + "AlarmConfiguration":{"shape":"AlarmConfiguration"} } }, "CreateAssociationResult":{ @@ -4524,7 +4676,7 @@ }, "Name":{ "shape":"DocumentName", - "documentation":"

A name for the SSM document.

You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:

  • aws-

  • amazon

  • amzn

" + "documentation":"

A name for the SSM document.

You can't use the following strings as document name prefixes. These are reserved by Amazon Web Services for use as document name prefixes:

  • aws

  • amazon

  • amzn

" }, "DisplayName":{ "shape":"DocumentDisplayName", @@ -4532,7 +4684,7 @@ }, "VersionName":{ "shape":"DocumentVersionName", - "documentation":"

An optional field specifying the version of the artifact you are creating with the document. For example, \"Release 12, Update 6\". This value is unique across all versions of a document, and can't be changed.

" + "documentation":"

An optional field specifying the version of the artifact you are creating with the document. For example, Release12.1. This value is unique across all versions of a document, and can't be changed.

" }, "DocumentType":{ "shape":"DocumentType", @@ -4646,7 +4798,7 @@ }, "OpsItemType":{ "shape":"OpsItemType", - "documentation":"

The type of OpsItem to create. Currently, the only valid values are /aws/changerequest and /aws/issue.

" + "documentation":"

The type of OpsItem to create. Systems Manager supports the following types of OpsItems:

  • /aws/issue

    This type of OpsItem is used for default OpsItems created by OpsCenter.

  • /aws/changerequest

    This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.

  • /aws/insights

    This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.

" }, "OperationalData":{ "shape":"OpsItemOperationalData", @@ -4699,6 +4851,10 @@ "PlannedEndTime":{ "shape":"DateTime", "documentation":"

The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type /aws/changerequest.

" + }, + "AccountId":{ + "shape":"OpsItemAccountId", + "documentation":"

The target Amazon Web Services account where you want to create an OpsItem. To make this call, your account must be configured to work with OpsItems across accounts. For more information, see Setting up OpsCenter to work with OpsItems across accounts in the Amazon Web Services Systems Manager User Guide.

" } } }, @@ -4708,6 +4864,10 @@ "OpsItemId":{ "shape":"String", "documentation":"

The ID of the OpsItem.

" + }, + "OpsItemArn":{ + "shape":"OpsItemArn", + "documentation":"

The OpsItem Amazon Resource Name (ARN).

" } } }, @@ -5065,6 +5225,33 @@ "members":{ } }, + "DeleteResourcePolicyRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "PolicyId", + "PolicyHash" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceArnString", + "documentation":"

Amazon Resource Name (ARN) of the resource to which the policies are attached.

" + }, + "PolicyId":{ + "shape":"PolicyId", + "documentation":"

The policy ID.

" + }, + "PolicyHash":{ + "shape":"PolicyHash", + "documentation":"

ID of the current policy version. The hash helps to prevent multiple calls from attempting to overwrite a policy.

" + } + } + }, + "DeleteResourcePolicyResponse":{ + "type":"structure", + "members":{ + } + }, "DeliveryTimedOutCount":{"type":"integer"}, "DeregisterManagedInstanceRequest":{ "type":"structure", @@ -5620,7 +5807,7 @@ }, "Filters":{ "shape":"InstanceInformationStringFilterList", - "documentation":"

One or more filters. Use a filter to return a more specific list of managed nodes. You can filter based on tags applied to EC2 instances. Use this Filters data type instead of InstanceInformationFilterList, which is deprecated.

" + "documentation":"

One or more filters. Use a filter to return a more specific list of managed nodes. You can filter based on tags applied to your managed nodes. Use this Filters data type instead of InstanceInformationFilterList, which is deprecated.

" }, "MaxResults":{ "shape":"MaxResultsEC2Compatible", @@ -6772,7 +6959,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

The document can't be shared with more Amazon Web Services user accounts. You can share a document with a maximum of 20 accounts. You can publicly share up to five documents. If you need to increase this limit, contact Amazon Web Services Support.

", + "documentation":"

The document can't be shared with more Amazon Web Services user accounts. You can specify a maximum of 20 accounts per API operation to share a private document.

By default, you can share a private document with a maximum of 1,000 accounts and publicly share up to five documents.

If you need to increase the quota for privately or publicly shared Systems Manager documents, contact Amazon Web Services Support.

", "exception":true }, "DocumentPermissionMaxResults":{ @@ -6919,7 +7106,9 @@ "ChangeCalendar", "Automation.ChangeTemplate", "ProblemAnalysis", - "ProblemAnalysisTemplate" + "ProblemAnalysisTemplate", + "CloudFormation", + "ConformancePackTemplate" ] }, "DocumentVersion":{ @@ -7063,6 +7252,13 @@ "pattern":"[\\w+=,.@/-]+" }, "ExpirationDate":{"type":"timestamp"}, + "ExternalAlarmState":{ + "type":"string", + "enum":[ + "UNKNOWN", + "ALARM" + ] + }, "FailedCreateAssociation":{ "type":"structure", "members":{ @@ -7698,6 +7894,14 @@ "EndTime":{ "shape":"DateTime", "documentation":"

The time the task execution completed.

" + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The details for the CloudWatch alarm you applied to your maintenance window task.

" + }, + "TriggeredAlarms":{ + "shape":"AlarmStateInformationList", + "documentation":"

The CloudWatch alarms that were invoked by the maintenance window task.

" } } }, @@ -7857,6 +8061,10 @@ "shape":"MaintenanceWindowTaskCutoffBehavior", "documentation":"

The action to take on tasks when the maintenance window cutoff time is reached. CONTINUE_TASK means that tasks continue to run. For Automation, Lambda, Step Functions tasks, CANCEL_TASK means that currently running task invocations continue, but no new task invocations are started. For Run Command tasks, CANCEL_TASK means the system attempts to stop the task by sending a CancelCommand operation.

", "box":true + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The details for the CloudWatch alarm you applied to your maintenance window task.

" } } }, @@ -7867,6 +8075,10 @@ "OpsItemId":{ "shape":"OpsItemId", "documentation":"

The ID of the OpsItem that you want to get.

" + }, + "OpsItemArn":{ + "shape":"OpsItemArn", + "documentation":"

The OpsItem Amazon Resource Name (ARN).

" } } }, @@ -8210,13 +8422,66 @@ } } }, + "GetResourcePoliciesRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"ResourceArnString", + "documentation":"

Amazon Resource Name (ARN) of the resource to which the policies are attached.

" + }, + "NextToken":{ + "shape":"String", + "documentation":"

A token to start the list. Use this token to get the next set of results.

" + }, + "MaxResults":{ + "shape":"ResourcePolicyMaxResults", + "documentation":"

The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results.

" + } + } + }, + "GetResourcePoliciesResponse":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"String", + "documentation":"

The token for the next set of items to return. Use this token to get the next set of results.

" + }, + "Policies":{ + "shape":"GetResourcePoliciesResponseEntries", + "documentation":"

An array of the Policy object.

" + } + } + }, + "GetResourcePoliciesResponseEntries":{ + "type":"list", + "member":{"shape":"GetResourcePoliciesResponseEntry"} + }, + "GetResourcePoliciesResponseEntry":{ + "type":"structure", + "members":{ + "PolicyId":{ + "shape":"PolicyId", + "documentation":"

A policy ID.

" + }, + "PolicyHash":{ + "shape":"PolicyHash", + "documentation":"

ID of the current policy version. The hash helps to prevent a situation where multiple users attempt to overwrite a policy. You must provide this hash when updating or deleting a policy.

" + }, + "Policy":{ + "shape":"Policy", + "documentation":"

A resource policy helps you to define the IAM entity (for example, an Amazon Web Services account) that can manage your Systems Manager resources. Currently, OpsItemGroup is the only resource that supports Systems Manager resource policies. The resource policy for OpsItemGroup enables Amazon Web Services accounts to view and interact with OpsCenter operational work items (OpsItems).

" + } + }, + "documentation":"

A resource policy helps you to define the IAM entity (for example, an Amazon Web Services account) that can manage your Systems Manager resources. Currently, OpsItemGroup is the only resource that supports Systems Manager resource policies. The resource policy for OpsItemGroup enables Amazon Web Services accounts to view and interact with OpsCenter operational work items (OpsItems).

" + }, "GetServiceSettingRequest":{ "type":"structure", "required":["SettingId"], "members":{ "SettingId":{ "shape":"ServiceSettingId", - "documentation":"

The ID of the service setting to get. The setting ID can be one of the following.

  • /ssm/automation/customer-script-log-destination

  • /ssm/automation/customer-script-log-group-name

  • /ssm/documents/console/public-sharing-permission

  • /ssm/parameter-store/default-parameter-tier

  • /ssm/parameter-store/high-throughput-enabled

  • /ssm/managed-instance/activation-tier

" + "documentation":"

The ID of the service setting to get. The setting ID can be one of the following.

  • /ssm/automation/customer-script-log-destination

  • /ssm/automation/customer-script-log-group-name

  • /ssm/documents/console/public-sharing-permission

  • /ssm/managed-instance/activation-tier

  • /ssm/opsinsights/opscenter

  • /ssm/parameter-store/default-parameter-tier

  • /ssm/parameter-store/high-throughput-enabled

" } }, "documentation":"

The request body of the GetServiceSetting API operation.

" @@ -8582,7 +8847,7 @@ "members":{ "Key":{ "shape":"InstanceInformationStringFilterKey", - "documentation":"

The filter key name to describe your managed nodes. For example:

\"InstanceIds\"|\"AgentVersion\"|\"PingStatus\"|\"PlatformTypes\"|\"ActivationIds\"|\"IamRole\"|\"ResourceType\"|\"AssociationStatus\"|\"Tag Key\"

Tag key isn't a valid filter. You must specify either tag-key or tag:keyname and a string. Here are some valid examples: tag-key, tag:123, tag:al!, tag:Windows. Here are some invalid examples: tag-keys, Tag Key, tag:, tagKey, abc:keyname.

" + "documentation":"

The filter key name to describe your managed nodes.

Valid filter key values: ActivationIds | AgentVersion | AssociationStatus | IamRole | InstanceIds | PingStatus | PlatformTypes | ResourceType | SourceIds | SourceTypes | \"tag-key\" | \"tag:{keyname}

  • Valid values for the AssociationStatus filter key: Success | Pending | Failed

  • Valid values for the PingStatus filter key: Online | ConnectionLost | Inactive (deprecated)

  • Valid values for the PlatformType filter key: Windows | Linux | MacOS

  • Valid values for the ResourceType filter key: EC2Instance | ManagedInstance

  • Valid values for the SourceType filter key: AWS::EC2::Instance | AWS::SSM::ManagedInstance | AWS::IoT::Thing

  • Valid tag examples: Key=tag-key,Values=Purpose | Key=tag:Purpose,Values=Test.

" }, "Values":{ "shape":"InstanceInformationFilterValueSet", @@ -8692,17 +8957,17 @@ }, "CriticalNonCompliantCount":{ "shape":"PatchCriticalNonCompliantCount", - "documentation":"

The number of managed nodes where patches that are specified as Critical for compliance reporting in the patch baseline aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is NON_COMPLIANT.

", + "documentation":"

The number of patches per node that are specified as Critical for compliance reporting in the patch baseline aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is NON_COMPLIANT.

", "box":true }, "SecurityNonCompliantCount":{ "shape":"PatchSecurityNonCompliantCount", - "documentation":"

The number of managed nodes where patches that are specified as Security in a patch advisory aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is NON_COMPLIANT.

", + "documentation":"

The number of patches per node that are specified as Security in a patch advisory aren't installed. These patches might be missing, have failed installation, were rejected, or were installed but awaiting a required managed node reboot. The status of these managed nodes is NON_COMPLIANT.

", "box":true }, "OtherNonCompliantCount":{ "shape":"PatchOtherNonCompliantCount", - "documentation":"

The number of managed nodes with patches installed that are specified as other than Critical or Security but aren't compliant with the patch baseline. The status of these managed nodes is NON_COMPLIANT.

", + "documentation":"

The number of patches per node that are specified as other than Critical or Security but aren't compliant with the patch baseline. The status of these managed nodes is NON_COMPLIANT.

", "box":true } }, @@ -9141,6 +9406,14 @@ "documentation":"

The schedule is invalid. Verify your cron or rate expression and try again.

", "exception":true }, + "InvalidTag":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The specified tag key or value isn't valid.

", + "exception":true + }, "InvalidTarget":{ "type":"structure", "members":{ @@ -10253,7 +10526,7 @@ "members":{ "S3BucketName":{ "shape":"S3BucketName", - "documentation":"

The name of an S3 bucket where execution logs are stored .

" + "documentation":"

The name of an S3 bucket where execution logs are stored.

" }, "S3KeyPrefix":{ "shape":"S3KeyPrefix", @@ -10402,6 +10675,14 @@ "TaskType":{ "shape":"MaintenanceWindowTaskType", "documentation":"

The type of task that ran.

" + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The details for the CloudWatch alarm applied to your maintenance window task.

" + }, + "TriggeredAlarms":{ + "shape":"AlarmStateInformationList", + "documentation":"

The CloudWatch alarm that was invoked by the maintenance window task.

" } }, "documentation":"

Information about a task execution performed as part of a maintenance window execution.

" @@ -10832,6 +11113,10 @@ "shape":"MaintenanceWindowTaskCutoffBehavior", "documentation":"

The specification for whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached.

", "box":true + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The details for the CloudWatch alarm applied to your maintenance window task.

" } }, "documentation":"

Information about a task defined for a maintenance window.

" @@ -11117,6 +11402,7 @@ "WINDOWS", "AMAZON_LINUX", "AMAZON_LINUX_2", + "AMAZON_LINUX_2022", "UBUNTU", "REDHAT_ENTERPRISE_LINUX", "SUSE", @@ -11318,7 +11604,7 @@ }, "OpsItemType":{ "shape":"OpsItemType", - "documentation":"

The type of OpsItem. Currently, the only valid values are /aws/changerequest and /aws/issue.

" + "documentation":"

The type of OpsItem. Systems Manager supports the following types of OpsItems:

  • /aws/issue

    This type of OpsItem is used for default OpsItems created by OpsCenter.

  • /aws/changerequest

    This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.

  • /aws/insights

    This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.

" }, "CreatedTime":{ "shape":"DateTime", @@ -11395,10 +11681,26 @@ "PlannedEndTime":{ "shape":"DateTime", "documentation":"

The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type /aws/changerequest.

" + }, + "OpsItemArn":{ + "shape":"OpsItemArn", + "documentation":"

The OpsItem Amazon Resource Name (ARN).

" } }, "documentation":"

Operations engineers and IT professionals use Amazon Web Services Systems Manager OpsCenter to view, investigate, and remediate operational work items (OpsItems) impacting the performance and health of their Amazon Web Services resources. OpsCenter is integrated with Amazon EventBridge and Amazon CloudWatch. This means you can configure these services to automatically create an OpsItem in OpsCenter when a CloudWatch alarm enters the ALARM state or when EventBridge processes an event from any Amazon Web Services service that publishes events. Configuring Amazon CloudWatch alarms and EventBridge events to automatically create OpsItems allows you to quickly diagnose and remediate issues with Amazon Web Services resources from a single console.

To help you diagnose issues, each OpsItem includes contextually relevant information such as the name and ID of the Amazon Web Services resource that generated the OpsItem, alarm or event details, alarm history, and an alarm timeline graph. For the Amazon Web Services resource, OpsCenter aggregates information from Config, CloudTrail logs, and EventBridge, so you don't have to navigate across multiple console pages during your investigation. For more information, see OpsCenter in the Amazon Web Services Systems Manager User Guide.

" }, + "OpsItemAccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

You don't have permission to view OpsItems in the specified account. Verify that your account is configured either as a Systems Manager delegated administrator or that you are logged into the Organizations management account.

", + "exception":true + }, + "OpsItemAccountId":{ + "type":"string", + "pattern":"^[0-9]{12}$" + }, "OpsItemAlreadyExistsException":{ "type":"structure", "members":{ @@ -11408,6 +11710,12 @@ "documentation":"

The OpsItem already exists.

", "exception":true }, + "OpsItemArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:(aws[a-zA-Z-]*)?:ssm:[a-z0-9-\\.]{0,63}:[0-9]{12}:opsitem.*" + }, "OpsItemCategory":{ "type":"string", "max":64, @@ -11591,7 +11899,8 @@ "ChangeRequestByApproverName", "ChangeRequestByTemplate", "ChangeRequestByTargetsResourceGroup", - "InsightByType" + "InsightByType", + "AccountId" ] }, "OpsItemFilterOperator":{ @@ -11895,7 +12204,7 @@ }, "OpsItemType":{ "shape":"OpsItemType", - "documentation":"

The type of OpsItem. Currently, the only valid values are /aws/changerequest and /aws/issue.

" + "documentation":"

The type of OpsItem. Systems Manager supports the following types of OpsItems:

  • /aws/issue

    This type of OpsItem is used for default OpsItems created by OpsCenter.

  • /aws/changerequest

    This type of OpsItem is used by Change Manager for reviewing and approving or rejecting change requests.

  • /aws/insights

    This type of OpsItem is used by OpsCenter for aggregating and reporting on duplicate OpsItems.

" }, "ActualStartTime":{ "shape":"DateTime", @@ -13105,6 +13414,12 @@ "documentation":"

You specified more than the maximum number of allowed policies for the parameter. The maximum is 10.

", "exception":true }, + "Policy":{ + "type":"string", + "pattern":"\\S+" + }, + "PolicyHash":{"type":"string"}, + "PolicyId":{"type":"string"}, "Product":{"type":"string"}, "ProgressCounters":{ "type":"structure", @@ -13272,6 +13587,44 @@ } } }, + "PutResourcePolicyRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Policy" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceArnString", + "documentation":"

Amazon Resource Name (ARN) of the resource to which the policies are attached.

" + }, + "Policy":{ + "shape":"Policy", + "documentation":"

A policy you want to associate with a resource.

" + }, + "PolicyId":{ + "shape":"PolicyId", + "documentation":"

The policy ID.

" + }, + "PolicyHash":{ + "shape":"PolicyHash", + "documentation":"

ID of the current policy version. The hash helps to prevent a situation where multiple users attempt to overwrite a policy.

" + } + } + }, + "PutResourcePolicyResponse":{ + "type":"structure", + "members":{ + "PolicyId":{ + "shape":"PolicyId", + "documentation":"

The policy ID. To update a policy, you must specify PolicyId and PolicyHash.

" + }, + "PolicyHash":{ + "shape":"PolicyHash", + "documentation":"

ID of the current policy version. The hash helps to prevent a situation where multiple users attempt to overwrite a policy. You must provide this hash when updating or deleting a policy.

" + } + } + }, "RebootOption":{ "type":"string", "enum":[ @@ -13456,6 +13809,10 @@ "shape":"MaintenanceWindowTaskCutoffBehavior", "documentation":"

Indicates whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached.

  • CONTINUE_TASK: When the cutoff time is reached, any tasks that are running continue. The default value.

  • CANCEL_TASK:

    • For Automation, Lambda, Step Functions tasks: When the cutoff time is reached, any task invocations that are already running continue, but no new task invocations are started.

    • For Run Command tasks: When the cutoff time is reached, the system sends a CancelCommand operation that attempts to cancel the command associated with the task. However, there is no guarantee that the command will be terminated and the underlying process stopped.

    The status for tasks that are not completed is TIMED_OUT.

", "box":true + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The CloudWatch alarm you want to apply to your maintenance window task.

" } } }, @@ -13561,7 +13918,7 @@ "members":{ "SettingId":{ "shape":"ServiceSettingId", - "documentation":"

The Amazon Resource Name (ARN) of the service setting to reset. The setting ID can be one of the following.

  • /ssm/automation/customer-script-log-destination

  • /ssm/automation/customer-script-log-group-name

  • /ssm/documents/console/public-sharing-permission

  • /ssm/parameter-store/default-parameter-tier

  • /ssm/parameter-store/high-throughput-enabled

  • /ssm/managed-instance/activation-tier

" + "documentation":"

The Amazon Resource Name (ARN) of the service setting to reset. The setting ID can be one of the following.

  • /ssm/automation/customer-script-log-destination

  • /ssm/automation/customer-script-log-group-name

  • /ssm/documents/console/public-sharing-permission

  • /ssm/managed-instance/activation-tier

  • /ssm/opsinsights/opscenter

  • /ssm/parameter-store/default-parameter-tier

  • /ssm/parameter-store/high-throughput-enabled

" } }, "documentation":"

The request body of the ResetServiceSetting API operation.

" @@ -13590,6 +13947,11 @@ }, "documentation":"

Information about targets that resolved during the Automation execution.

" }, + "ResourceArnString":{ + "type":"string", + "max":2048, + "min":20 + }, "ResourceComplianceSummaryItem":{ "type":"structure", "members":{ @@ -13953,6 +14315,42 @@ "documentation":"

Error returned when the caller has exceeded the default resource quotas. For example, too many maintenance windows or patch baselines have been created.

For information about resource quotas in Systems Manager, see Systems Manager service quotas in the Amazon Web Services General Reference.

", "exception":true }, + "ResourcePolicyConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

The hash provided in the call doesn't match the stored hash. This exception is thrown when trying to update an obsolete policy version or when multiple requests to update a policy are sent.

", + "exception":true + }, + "ResourcePolicyInvalidParameterException":{ + "type":"structure", + "members":{ + "ParameterNames":{"shape":"ResourcePolicyParameterNamesList"}, + "Message":{"shape":"String"} + }, + "documentation":"

One or more parameters specified for the call aren't valid. Verify the parameters and their values and try again.

", + "exception":true + }, + "ResourcePolicyLimitExceededException":{ + "type":"structure", + "members":{ + "Limit":{"shape":"Integer"}, + "LimitType":{"shape":"String"}, + "Message":{"shape":"String"} + }, + "documentation":"

The PutResourcePolicy API action enforces two limits. A policy can't be greater than 1024 bytes in size. And only one policy can be attached to OpsItemGroup. Verify these limits and try again.

", + "exception":true + }, + "ResourcePolicyMaxResults":{ + "type":"integer", + "max":50, + "min":1 + }, + "ResourcePolicyParameterNamesList":{ + "type":"list", + "member":{"shape":"String"} + }, "ResourceType":{ "type":"string", "enum":[ @@ -13971,7 +14369,8 @@ "PatchBaseline", "OpsItem", "OpsMetadata", - "Automation" + "Automation", + "Association" ] }, "ResponseCode":{"type":"integer"}, @@ -14270,7 +14669,7 @@ }, "ServiceRoleArn":{ "shape":"ServiceRole", - "documentation":"

The ARN of the Identity and Access Management (IAM) service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for Run Command commands.

" + "documentation":"

The ARN of the Identity and Access Management (IAM) service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for Run Command commands.

This role must provide the sns:Publish permission for your notification topic. For information about creating and using this service role, see Monitoring Systems Manager status changes using Amazon SNS notifications in the Amazon Web Services Systems Manager User Guide.

" }, "NotificationConfig":{ "shape":"NotificationConfig", @@ -14279,6 +14678,10 @@ "CloudWatchOutputConfig":{ "shape":"CloudWatchOutputConfig", "documentation":"

Enables Amazon Web Services Systems Manager to send Run Command output to Amazon CloudWatch Logs. Run Command is a capability of Amazon Web Services Systems Manager.

" + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The CloudWatch alarm you want to apply to your command.

" } } }, @@ -14531,7 +14934,7 @@ "members":{ "CriticalCount":{ "shape":"ComplianceSummaryCount", - "documentation":"

The total number of resources or compliance items that have a severity level of critical. Critical severity is determined by the organization that published the compliance items.

" + "documentation":"

The total number of resources or compliance items that have a severity level of Critical. Critical severity is determined by the organization that published the compliance items.

" }, "HighCount":{ "shape":"ComplianceSummaryCount", @@ -14669,6 +15072,10 @@ "Tags":{ "shape":"TagList", "documentation":"

Optional metadata that you assign to a resource. You can specify a maximum of five tags for an automation. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an automation to identify an environment or operating system. In this case, you could specify the following key-value pairs:

  • Key=environment,Value=test

  • Key=OS,Value=Windows

To add tags to an existing automation, use the AddTagsToResource operation.

" + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The CloudWatch alarm you want to apply to your automation.

" } } }, @@ -14754,7 +15161,7 @@ }, "DocumentName":{ "shape":"DocumentARN", - "documentation":"

The name of the SSM document to define the parameters and plugin settings for the session. For example, SSM-SessionManagerRunShell. You can call the GetDocument API to verify the document exists before attempting to start a session. If no document name is provided, a shell to the managed node is launched by default.

" + "documentation":"

The name of the SSM document you want to use to define the type of session, input parameters, or preferences for the session. For example, SSM-SessionManagerRunShell. You can call the GetDocument API to verify the document exists before attempting to start a session. If no document name is provided, a shell to the managed node is launched by default. For more information, see Start a session in the Amazon Web Services Systems Manager User Guide.

" }, "Reason":{ "shape":"SessionReason", @@ -14775,7 +15182,7 @@ }, "TokenValue":{ "shape":"TokenValue", - "documentation":"

An encrypted token value containing session and caller information. Used to authenticate the connection to the managed node.

" + "documentation":"

An encrypted token value containing session and caller information. This token is used to authenticate the connection to the managed node, and is valid only long enough to ensure the connection is successful. Never share your session's token.

" }, "StreamUrl":{ "shape":"StreamUrl", @@ -14902,6 +15309,10 @@ "shape":"TargetLocation", "documentation":"

The combination of Amazon Web Services Regions and Amazon Web Services accounts targeted by the current Automation execution.

", "box":true + }, + "TriggeredAlarms":{ + "shape":"AlarmStateInformationList", + "documentation":"

The CloudWatch alarms that were invoked by the automation.

" } }, "documentation":"

Detailed information about an the execution state of an Automation step.

" @@ -15089,6 +15500,10 @@ "shape":"ExecutionRoleName", "documentation":"

The Automation execution role used by the currently running Automation. If not specified, the default value is AWS-SystemsManager-AutomationExecutionRole.

", "box":true + }, + "TargetLocationAlarmConfiguration":{ + "shape":"AlarmConfiguration", + "box":true } }, "documentation":"

The combination of Amazon Web Services Regions and Amazon Web Services accounts targeted by the current Automation execution.

" @@ -15389,7 +15804,8 @@ "shape":"TargetMaps", "documentation":"

A key-value mapping of document parameters to target resources. Both Targets and TargetMaps can't be specified together.

", "box":true - } + }, + "AlarmConfiguration":{"shape":"AlarmConfiguration"} } }, "UpdateAssociationResult":{ @@ -15788,6 +16204,10 @@ "shape":"MaintenanceWindowTaskCutoffBehavior", "documentation":"

Indicates whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached.

  • CONTINUE_TASK: When the cutoff time is reached, any tasks that are running continue. The default value.

  • CANCEL_TASK:

    • For Automation, Lambda, Step Functions tasks: When the cutoff time is reached, any task invocations that are already running continue, but no new task invocations are started.

    • For Run Command tasks: When the cutoff time is reached, the system sends a CancelCommand operation that attempts to cancel the command associated with the task. However, there is no guarantee that the command will be terminated and the underlying process stopped.

    The status for tasks that are not completed is TIMED_OUT.

", "box":true + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The CloudWatch alarm you want to apply to your maintenance window task.

" } } }, @@ -15850,6 +16270,10 @@ "shape":"MaintenanceWindowTaskCutoffBehavior", "documentation":"

The specification for whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached.

", "box":true + }, + "AlarmConfiguration":{ + "shape":"AlarmConfiguration", + "documentation":"

The details for the CloudWatch alarm you applied to your maintenance window task.

" } } }, @@ -15866,7 +16290,7 @@ }, "IamRole":{ "shape":"IamRole", - "documentation":"

The IAM role you want to assign or change.

" + "documentation":"

The name of the Identity and Access Management (IAM) role that you want to assign to the managed node. This IAM role must provide AssumeRole permissions for the Amazon Web Services Systems Manager service principal ssm.amazonaws.com. For more information, see Create an IAM service role for a hybrid environment in the Amazon Web Services Systems Manager User Guide.

You can't specify an IAM service-linked role for this parameter. You must create a unique role.

" } } }, @@ -15938,6 +16362,10 @@ "PlannedEndTime":{ "shape":"DateTime", "documentation":"

The time specified in a change request for a runbook workflow to end. Currently supported only for the OpsItem type /aws/changerequest.

" + }, + "OpsItemArn":{ + "shape":"OpsItemArn", + "documentation":"

The OpsItem Amazon Resource Name (ARN).

" } } }, @@ -16127,11 +16555,11 @@ "members":{ "SettingId":{ "shape":"ServiceSettingId", - "documentation":"

The Amazon Resource Name (ARN) of the service setting to reset. For example, arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled. The setting ID can be one of the following.

  • /ssm/automation/customer-script-log-destination

  • /ssm/automation/customer-script-log-group-name

  • /ssm/documents/console/public-sharing-permission

  • /ssm/parameter-store/default-parameter-tier

  • /ssm/parameter-store/high-throughput-enabled

  • /ssm/managed-instance/activation-tier

" + "documentation":"

The Amazon Resource Name (ARN) of the service setting to reset. For example, arn:aws:ssm:us-east-1:111122223333:servicesetting/ssm/parameter-store/high-throughput-enabled. The setting ID can be one of the following.

  • /ssm/automation/customer-script-log-destination

  • /ssm/automation/customer-script-log-group-name

  • /ssm/documents/console/public-sharing-permission

  • /ssm/managed-instance/activation-tier

  • /ssm/opsinsights/opscenter

  • /ssm/parameter-store/default-parameter-tier

  • /ssm/parameter-store/high-throughput-enabled

" }, "SettingValue":{ "shape":"ServiceSettingValue", - "documentation":"

The new value to specify for the service setting. The following list specifies the available values for each setting.

  • /ssm/parameter-store/default-parameter-tier: Standard, Advanced, Intelligent-Tiering

  • /ssm/parameter-store/high-throughput-enabled: true or false

  • /ssm/managed-instance/activation-tier: true or false

  • /ssm/automation/customer-script-log-destination: CloudWatch

  • /ssm/automation/customer-script-log-group-name: the name of an Amazon CloudWatch Logs log group

  • /ssm/documents/console/public-sharing-permission: Enable or Disable

  • /ssm/managed-instance/activation-tier: standard or advanced

" + "documentation":"

The new value to specify for the service setting. The following list specifies the available values for each setting.

  • /ssm/automation/customer-script-log-destination: CloudWatch

  • /ssm/automation/customer-script-log-group-name: the name of an Amazon CloudWatch Logs log group

  • /ssm/documents/console/public-sharing-permission: Enable or Disable

  • /ssm/managed-instance/activation-tier: standard or advanced

  • /ssm/opsinsights/opscenter: Enabled or Disabled

  • /ssm/parameter-store/default-parameter-tier: Standard, Advanced, Intelligent-Tiering

  • /ssm/parameter-store/high-throughput-enabled: true or false

" } }, "documentation":"

The request body of the UpdateServiceSetting API operation.

" @@ -16157,5 +16585,5 @@ "pattern":"^[0-9]{1,6}(\\.[0-9]{1,6}){2,3}$" } }, - "documentation":"

Amazon Web Services Systems Manager is a collection of capabilities that helps you automate management tasks such as collecting system inventory, applying operating system (OS) patches, automating the creation of Amazon Machine Images (AMIs), and configuring operating systems (OSs) and applications at scale. Systems Manager lets you remotely and securely manage the configuration of your managed nodes. A managed node is any Amazon Elastic Compute Cloud (Amazon EC2) instance, edge device, or on-premises server or virtual machine (VM) that has been configured for Systems Manager.

With support for IoT Greengrass core devices, the phrase managed instance has been changed to managed node in most of the Systems Manager documentation. The Systems Manager console, API calls, error messages, and SSM documents still use the term instance.

This reference is intended to be used with the Amazon Web Services Systems Manager User Guide.

To get started, verify prerequisites and configure managed nodes. For more information, see Setting up Amazon Web Services Systems Manager in the Amazon Web Services Systems Manager User Guide.

Related resources

" + "documentation":"

Amazon Web Services Systems Manager is a collection of capabilities to help you manage your applications and infrastructure running in the Amazon Web Services Cloud;. Systems Manager simplifies application and resource management, shortens the time to detect and resolve operational problems, and helps you manage your Amazon Web Services resources securely at scale.

This reference is intended to be used with the Amazon Web Services Systems Manager User Guide.

To get started, verify prerequisites. For more information, see Setting up Amazon Web Services Systems Manager.

Related resources

" } diff --git a/botocore/data/sso-admin/2020-07-20/endpoint-rule-set-1.json b/botocore/data/sso-admin/2020-07-20/endpoint-rule-set-1.json new file mode 100644 index 00000000..b5a54ee8 --- /dev/null +++ b/botocore/data/sso-admin/2020-07-20/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sso-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sso.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://sso.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sso-admin/2020-07-20/examples-1.json b/botocore/data/sso-admin/2020-07-20/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/sso-admin/2020-07-20/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/sso-admin/2020-07-20/paginators-1.json b/botocore/data/sso-admin/2020-07-20/paginators-1.json index 1ca3159a..ad0b7736 100644 --- a/botocore/data/sso-admin/2020-07-20/paginators-1.json +++ b/botocore/data/sso-admin/2020-07-20/paginators-1.json @@ -58,6 +58,12 @@ "input_token": "NextToken", "output_token": "NextToken", "result_key": "Tags" + }, + "ListCustomerManagedPolicyReferencesInPermissionSet": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "CustomerManagedPolicyReferences" } } } diff --git a/botocore/data/sso-admin/2020-07-20/service-2.json b/botocore/data/sso-admin/2020-07-20/service-2.json index 20b14cf3..b17b1df1 100644 --- a/botocore/data/sso-admin/2020-07-20/service-2.json +++ b/botocore/data/sso-admin/2020-07-20/service-2.json @@ -14,6 +14,25 @@ "uid":"sso-admin-2020-07-20" }, "operations":{ + "AttachCustomerManagedPolicyReferenceToPermissionSet":{ + "name":"AttachCustomerManagedPolicyReferenceToPermissionSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AttachCustomerManagedPolicyReferenceToPermissionSetRequest"}, + "output":{"shape":"AttachCustomerManagedPolicyReferenceToPermissionSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Attaches the specified customer managed policy to the specified PermissionSet.

" + }, "AttachManagedPolicyToPermissionSet":{ "name":"AttachManagedPolicyToPermissionSet", "http":{ @@ -31,7 +50,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"} ], - "documentation":"

Attaches an IAM managed policy ARN to a permission set.

If the permission set is already referenced by one or more account assignments, you will need to call ProvisionPermissionSet after this operation. Calling ProvisionPermissionSet applies the corresponding IAM policy updates to all assigned accounts.

" + "documentation":"

Attaches an AWS managed policy ARN to a permission set.

If the permission set is already referenced by one or more account assignments, you will need to call ProvisionPermissionSet after this operation. Calling ProvisionPermissionSet applies the corresponding IAM policy updates to all assigned accounts.

" }, "CreateAccountAssignment":{ "name":"CreateAccountAssignment", @@ -50,7 +69,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"} ], - "documentation":"

Assigns access to a principal for a specified Amazon Web Services account using a specified permission set.

The term principal here refers to a user or group that is defined in Amazon Web Services SSO.

As part of a successful CreateAccountAssignment call, the specified permission set will automatically be provisioned to the account in the form of an IAM policy. That policy is attached to the SSO-created IAM role. If the permission set is subsequently updated, the corresponding IAM policies attached to roles in your accounts will not be updated automatically. In this case, you must call ProvisionPermissionSet to make these updates.

" + "documentation":"

Assigns access to a principal for a specified AWS account using a specified permission set.

The term principal here refers to a user or group that is defined in IAM Identity Center.

As part of a successful CreateAccountAssignment call, the specified permission set will automatically be provisioned to the account in the form of an IAM policy. That policy is attached to the IAM role created in IAM Identity Center. If the permission set is subsequently updated, the corresponding IAM policies attached to roles in your accounts will not be updated automatically. In this case, you must call ProvisionPermissionSet to make these updates.

After a successful response, call DescribeAccountAssignmentCreationStatus to describe the status of an assignment creation request.

" }, "CreateInstanceAccessControlAttributeConfiguration":{ "name":"CreateInstanceAccessControlAttributeConfiguration", @@ -68,7 +87,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

Enables the attributes-based access control (ABAC) feature for the specified Amazon Web Services SSO instance. You can also specify new attributes to add to your ABAC configuration during the enabling process. For more information about ABAC, see Attribute-Based Access Control in the Amazon Web Services SSO User Guide.

" + "documentation":"

Enables the attributes-based access control (ABAC) feature for the specified IAM Identity Center instance. You can also specify new attributes to add to your ABAC configuration during the enabling process. For more information about ABAC, see Attribute-Based Access Control in the IAM Identity Center User Guide.

After a successful response, call DescribeInstanceAccessControlAttributeConfiguration to validate that InstanceAccessControlAttributeConfiguration was created.

" }, "CreatePermissionSet":{ "name":"CreatePermissionSet", @@ -87,7 +106,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"} ], - "documentation":"

Creates a permission set within a specified SSO instance.

To grant users and groups access to Amazon Web Services account resources, use CreateAccountAssignment .

" + "documentation":"

Creates a permission set within a specified IAM Identity Center instance.

To grant users and groups access to AWS account resources, use CreateAccountAssignment .

" }, "DeleteAccountAssignment":{ "name":"DeleteAccountAssignment", @@ -105,7 +124,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"} ], - "documentation":"

Deletes a principal's access from a specified Amazon Web Services account using a specified permission set.

" + "documentation":"

Deletes a principal's access from a specified AWS account using a specified permission set.

After a successful response, call DescribeAccountAssignmentCreationStatus to describe the status of an assignment deletion request.

" }, "DeleteInlinePolicyFromPermissionSet":{ "name":"DeleteInlinePolicyFromPermissionSet", @@ -141,7 +160,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

Disables the attributes-based access control (ABAC) feature for the specified Amazon Web Services SSO instance and deletes all of the attribute mappings that have been configured. Once deleted, any attributes that are received from an identity source and any custom attributes you have previously configured will not be passed. For more information about ABAC, see Attribute-Based Access Control in the Amazon Web Services SSO User Guide.

" + "documentation":"

Disables the attributes-based access control (ABAC) feature for the specified IAM Identity Center instance and deletes all of the attribute mappings that have been configured. Once deleted, any attributes that are received from an identity source and any custom attributes you have previously configured will not be passed. For more information about ABAC, see Attribute-Based Access Control in the IAM Identity Center User Guide.

" }, "DeletePermissionSet":{ "name":"DeletePermissionSet", @@ -161,6 +180,23 @@ ], "documentation":"

Deletes the specified permission set.

" }, + "DeletePermissionsBoundaryFromPermissionSet":{ + "name":"DeletePermissionsBoundaryFromPermissionSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeletePermissionsBoundaryFromPermissionSetRequest"}, + "output":{"shape":"DeletePermissionsBoundaryFromPermissionSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Deletes the permissions boundary from a specified PermissionSet.

" + }, "DescribeAccountAssignmentCreationStatus":{ "name":"DescribeAccountAssignmentCreationStatus", "http":{ @@ -210,7 +246,7 @@ {"shape":"ThrottlingException"}, {"shape":"ValidationException"} ], - "documentation":"

Returns the list of Amazon Web Services SSO identity store attributes that have been configured to work with attributes-based access control (ABAC) for the specified Amazon Web Services SSO instance. This will not return attributes configured and sent by an external identity provider. For more information about ABAC, see Attribute-Based Access Control in the Amazon Web Services SSO User Guide.

" + "documentation":"

Returns the list of IAM Identity Center identity store attributes that have been configured to work with attributes-based access control (ABAC) for the specified IAM Identity Center instance. This will not return attributes configured and sent by an external identity provider. For more information about ABAC, see Attribute-Based Access Control in the IAM Identity Center User Guide.

" }, "DescribePermissionSet":{ "name":"DescribePermissionSet", @@ -246,6 +282,24 @@ ], "documentation":"

Describes the status for the given permission set provisioning request.

" }, + "DetachCustomerManagedPolicyReferenceFromPermissionSet":{ + "name":"DetachCustomerManagedPolicyReferenceFromPermissionSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DetachCustomerManagedPolicyReferenceFromPermissionSetRequest"}, + "output":{"shape":"DetachCustomerManagedPolicyReferenceFromPermissionSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Detaches the specified customer managed policy from the specified PermissionSet.

" + }, "DetachManagedPolicyFromPermissionSet":{ "name":"DetachManagedPolicyFromPermissionSet", "http":{ @@ -262,7 +316,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"} ], - "documentation":"

Detaches the attached IAM managed policy ARN from the specified permission set.

" + "documentation":"

Detaches the attached AWS managed policy ARN from the specified permission set.

" }, "GetInlinePolicyForPermissionSet":{ "name":"GetInlinePolicyForPermissionSet", @@ -281,6 +335,23 @@ ], "documentation":"

Obtains the inline policy assigned to the permission set.

" }, + "GetPermissionsBoundaryForPermissionSet":{ + "name":"GetPermissionsBoundaryForPermissionSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPermissionsBoundaryForPermissionSetRequest"}, + "output":{"shape":"GetPermissionsBoundaryForPermissionSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Obtains the permissions boundary for a specified PermissionSet.

" + }, "ListAccountAssignmentCreationStatus":{ "name":"ListAccountAssignmentCreationStatus", "http":{ @@ -296,7 +367,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the status of the Amazon Web Services account assignment creation requests for a specified SSO instance.

" + "documentation":"

Lists the status of the AWS account assignment creation requests for a specified IAM Identity Center instance.

" }, "ListAccountAssignmentDeletionStatus":{ "name":"ListAccountAssignmentDeletionStatus", @@ -313,7 +384,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the status of the Amazon Web Services account assignment deletion requests for a specified SSO instance.

" + "documentation":"

Lists the status of the AWS account assignment deletion requests for a specified IAM Identity Center instance.

" }, "ListAccountAssignments":{ "name":"ListAccountAssignments", @@ -330,7 +401,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the assignee of the specified Amazon Web Services account with the specified permission set.

" + "documentation":"

Lists the assignee of the specified AWS account with the specified permission set.

" }, "ListAccountsForProvisionedPermissionSet":{ "name":"ListAccountsForProvisionedPermissionSet", @@ -347,7 +418,24 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists all the Amazon Web Services accounts where the specified permission set is provisioned.

" + "documentation":"

Lists all the AWS accounts where the specified permission set is provisioned.

" + }, + "ListCustomerManagedPolicyReferencesInPermissionSet":{ + "name":"ListCustomerManagedPolicyReferencesInPermissionSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCustomerManagedPolicyReferencesInPermissionSetRequest"}, + "output":{"shape":"ListCustomerManagedPolicyReferencesInPermissionSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"} + ], + "documentation":"

Lists all customer managed policies attached to a specified PermissionSet.

" }, "ListInstances":{ "name":"ListInstances", @@ -363,7 +451,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ValidationException"} ], - "documentation":"

Lists the SSO instances that the caller has access to.

" + "documentation":"

Lists the IAM Identity Center instances that the caller has access to.

" }, "ListManagedPoliciesInPermissionSet":{ "name":"ListManagedPoliciesInPermissionSet", @@ -380,7 +468,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the IAM managed policy that is attached to a specified permission set.

" + "documentation":"

Lists the AWS managed policy that is attached to a specified permission set.

" }, "ListPermissionSetProvisioningStatus":{ "name":"ListPermissionSetProvisioningStatus", @@ -397,7 +485,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the status of the permission set provisioning requests for a specified SSO instance.

" + "documentation":"

Lists the status of the permission set provisioning requests for a specified IAM Identity Center instance.

" }, "ListPermissionSets":{ "name":"ListPermissionSets", @@ -414,7 +502,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists the PermissionSets in an SSO instance.

" + "documentation":"

Lists the PermissionSets in an IAM Identity Center instance.

" }, "ListPermissionSetsProvisionedToAccount":{ "name":"ListPermissionSetsProvisionedToAccount", @@ -431,7 +519,7 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Lists all the permission sets that are provisioned to a specified Amazon Web Services account.

" + "documentation":"

Lists all the permission sets that are provisioned to a specified AWS account.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -485,7 +573,25 @@ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"} ], - "documentation":"

Attaches an IAM inline policy to a permission set.

If the permission set is already referenced by one or more account assignments, you will need to call ProvisionPermissionSet after this action to apply the corresponding IAM policy updates to all assigned accounts.

" + "documentation":"

Attaches an inline policy to a permission set.

If the permission set is already referenced by one or more account assignments, you will need to call ProvisionPermissionSet after this action to apply the corresponding IAM policy updates to all assigned accounts.

" + }, + "PutPermissionsBoundaryToPermissionSet":{ + "name":"PutPermissionsBoundaryToPermissionSet", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutPermissionsBoundaryToPermissionSetRequest"}, + "output":{"shape":"PutPermissionsBoundaryToPermissionSetResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Attaches an AWS managed or customer managed policy to the specified PermissionSet as a permissions boundary.

" }, "TagResource":{ "name":"TagResource", @@ -540,7 +646,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

Updates the Amazon Web Services SSO identity store attributes that you can use with the Amazon Web Services SSO instance for attributes-based access control (ABAC). When using an external identity provider as an identity source, you can pass attributes through the SAML assertion as an alternative to configuring attributes from the Amazon Web Services SSO identity store. If a SAML assertion passes any of these attributes, Amazon Web Services SSO replaces the attribute value with the value from the Amazon Web Services SSO identity store. For more information about ABAC, see Attribute-Based Access Control in the Amazon Web Services SSO User Guide.

" + "documentation":"

Updates the IAM Identity Center identity store attributes that you can use with the IAM Identity Center instance for attributes-based access control (ABAC). When using an external identity provider as an identity source, you can pass attributes through the SAML assertion as an alternative to configuring attributes from the IAM Identity Center identity store. If a SAML assertion passes any of these attributes, IAM Identity Center replaces the attribute value with the value from the IAM Identity Center identity store. For more information about ABAC, see Attribute-Based Access Control in the IAM Identity Center User Guide.

" }, "UpdatePermissionSet":{ "name":"UpdatePermissionSet", @@ -571,14 +677,14 @@ "members":{ "Key":{ "shape":"AccessControlAttributeKey", - "documentation":"

The name of the attribute associated with your identities in your identity source. This is used to map a specified attribute in your identity source with an attribute in Amazon Web Services SSO.

" + "documentation":"

The name of the attribute associated with your identities in your identity source. This is used to map a specified attribute in your identity source with an attribute in IAM Identity Center.

" }, "Value":{ "shape":"AccessControlAttributeValue", "documentation":"

The value used for mapping a specified attribute to an identity source.

" } }, - "documentation":"

These are Amazon Web Services SSO identity store attributes that you can configure for use in attributes-based access control (ABAC). You can create permissions policies that determine who can access your Amazon Web Services resources based upon the configured attribute values. When you enable ABAC and specify AccessControlAttributes, Amazon Web Services SSO passes the attribute values of the authenticated user into IAM for use in policy evaluation.

" + "documentation":"

These are IAM Identity Center identity store attributes that you can configure for use in attributes-based access control (ABAC). You can create permissions policies that determine who can access your AWS resources based upon the configured attribute values. When you enable ABAC and specify AccessControlAttributes, IAM Identity Center passes the attribute values of the authenticated user into IAM for use in policy evaluation.

" }, "AccessControlAttributeKey":{ "type":"string", @@ -598,10 +704,10 @@ "members":{ "Source":{ "shape":"AccessControlAttributeValueSourceList", - "documentation":"

The identity source to use when mapping a specified attribute to Amazon Web Services SSO.

" + "documentation":"

The identity source to use when mapping a specified attribute to IAM Identity Center.

" } }, - "documentation":"

The value used for mapping a specified attribute to an identity source.

" + "documentation":"

The value used for mapping a specified attribute to an identity source. For more information, see Attribute mappings in the IAM Identity Center User Guide.

" }, "AccessControlAttributeValueSource":{ "type":"string", @@ -629,11 +735,11 @@ "members":{ "AccountId":{ "shape":"AccountId", - "documentation":"

The identifier of the Amazon Web Services account.

" + "documentation":"

The identifier of the AWS account.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", - "documentation":"

The ARN of the permission set. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the permission set. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PrincipalType":{ "shape":"PrincipalType", @@ -641,10 +747,10 @@ }, "PrincipalId":{ "shape":"PrincipalId", - "documentation":"

An identifier for an object in Amazon Web Services SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in Amazon Web Services SSO, see the Amazon Web Services SSO Identity Store API Reference.

" + "documentation":"

An identifier for an object in IAM Identity Center, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in IAM Identity Center, see the IAM Identity Center Identity Store API Reference.

" } }, - "documentation":"

The assignment that indicates a principal's limited access to a specified Amazon Web Services account with a specified permission set.

The term principal here refers to a user or group that is defined in Amazon Web Services SSO.

" + "documentation":"

The assignment that indicates a principal's limited access to a specified AWS account with a specified permission set.

The term principal here refers to a user or group that is defined in IAM Identity Center.

" }, "AccountAssignmentList":{ "type":"list", @@ -667,7 +773,7 @@ }, "TargetId":{ "shape":"TargetId", - "documentation":"

TargetID is an Amazon Web Services account identifier, typically a 10-12 digit string (For example, 123456789012).

" + "documentation":"

TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).

" }, "TargetType":{ "shape":"TargetType", @@ -675,7 +781,7 @@ }, "PermissionSetArn":{ "shape":"PermissionSetArn", - "documentation":"

The ARN of the permission set. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the permission set. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PrincipalType":{ "shape":"PrincipalType", @@ -683,7 +789,7 @@ }, "PrincipalId":{ "shape":"PrincipalId", - "documentation":"

An identifier for an object in Amazon Web Services SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in Amazon Web Services SSO, see the Amazon Web Services SSO Identity Store API Reference.

" + "documentation":"

An identifier for an object in IAM Identity Center, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in IAM Identity Center, see the IAM Identity Center Identity Store API Reference.

" }, "CreatedDate":{ "shape":"Date", @@ -716,12 +822,41 @@ }, "AccountId":{ "type":"string", + "max":12, + "min":12, "pattern":"\\d{12}" }, "AccountList":{ "type":"list", "member":{"shape":"AccountId"} }, + "AttachCustomerManagedPolicyReferenceToPermissionSetRequest":{ + "type":"structure", + "required":[ + "InstanceArn", + "PermissionSetArn", + "CustomerManagedPolicyReference" + ], + "members":{ + "InstanceArn":{ + "shape":"InstanceArn", + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" + }, + "PermissionSetArn":{ + "shape":"PermissionSetArn", + "documentation":"

The ARN of the PermissionSet.

" + }, + "CustomerManagedPolicyReference":{ + "shape":"CustomerManagedPolicyReference", + "documentation":"

Specifies the name and path of a customer managed policy. You must have an IAM policy that matches the name and path in each AWS account where you want to deploy your permission set.

" + } + } + }, + "AttachCustomerManagedPolicyReferenceToPermissionSetResponse":{ + "type":"structure", + "members":{ + } + }, "AttachManagedPolicyToPermissionSetRequest":{ "type":"structure", "required":[ @@ -732,7 +867,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -740,7 +875,7 @@ }, "ManagedPolicyArn":{ "shape":"ManagedPolicyArn", - "documentation":"

The IAM managed policy ARN to be attached to a permission set.

" + "documentation":"

The AWS managed policy ARN to be attached to a permission set.

" } } }, @@ -754,14 +889,14 @@ "members":{ "Name":{ "shape":"Name", - "documentation":"

The name of the IAM managed policy.

" + "documentation":"

The name of the AWS managed policy.

" }, "Arn":{ "shape":"ManagedPolicyArn", - "documentation":"

The ARN of the IAM managed policy. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the AWS managed policy. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" } }, - "documentation":"

A structure that stores the details of the IAM managed policy.

" + "documentation":"

A structure that stores the details of the AWS managed policy.

" }, "AttachedManagedPolicyList":{ "type":"list", @@ -789,11 +924,11 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "TargetId":{ "shape":"TargetId", - "documentation":"

TargetID is an Amazon Web Services account identifier, typically a 10-12 digit string (For example, 123456789012).

" + "documentation":"

TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).

" }, "TargetType":{ "shape":"TargetType", @@ -809,7 +944,7 @@ }, "PrincipalId":{ "shape":"PrincipalId", - "documentation":"

An identifier for an object in Amazon Web Services SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in Amazon Web Services SSO, see the Amazon Web Services SSO Identity Store API Reference.

" + "documentation":"

An identifier for an object in IAM Identity Center, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in IAM Identity Center, see the IAM Identity Center Identity Store API Reference.

" } } }, @@ -831,11 +966,11 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" }, "InstanceAccessControlAttributeConfiguration":{ "shape":"InstanceAccessControlAttributeConfiguration", - "documentation":"

Specifies the Amazon Web Services SSO identity store attributes to add to your ABAC configuration. When using an external identity provider as an identity source, you can pass attributes through the SAML assertion. Doing so provides an alternative to configuring attributes from the Amazon Web Services SSO identity store. If a SAML assertion passes any of these attributes, Amazon Web Services SSO will replace the attribute value with the value from the Amazon Web Services SSO identity store.

" + "documentation":"

Specifies the IAM Identity Center identity store attributes to add to your ABAC configuration. When using an external identity provider as an identity source, you can pass attributes through the SAML assertion. Doing so provides an alternative to configuring attributes from the IAM Identity Center identity store. If a SAML assertion passes any of these attributes, IAM Identity Center will replace the attribute value with the value from the IAM Identity Center identity store.

" } } }, @@ -861,7 +996,7 @@ }, "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "SessionDuration":{ "shape":"Duration", @@ -882,10 +1017,29 @@ "members":{ "PermissionSet":{ "shape":"PermissionSet", - "documentation":"

Defines the level of access on an Amazon Web Services account.

" + "documentation":"

Defines the level of access on an AWS account.

" } } }, + "CustomerManagedPolicyReference":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"ManagedPolicyName", + "documentation":"

The name of the IAM policy that you have configured in each account where you want to deploy your permission set.

" + }, + "Path":{ + "shape":"ManagedPolicyPath", + "documentation":"

The path to the IAM policy that you have configured in each account where you want to deploy your permission set. The default is /. For more information, see Friendly names and paths in the IAM User Guide.

" + } + }, + "documentation":"

Specifies the name and path of a customer managed policy. You must have an IAM policy that matches the name and path in each AWS account where you want to deploy your permission set.

" + }, + "CustomerManagedPolicyReferenceList":{ + "type":"list", + "member":{"shape":"CustomerManagedPolicyReference"} + }, "Date":{"type":"timestamp"}, "DeleteAccountAssignmentRequest":{ "type":"structure", @@ -900,11 +1054,11 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "TargetId":{ "shape":"TargetId", - "documentation":"

TargetID is an Amazon Web Services account identifier, typically a 10-12 digit string (For example, 123456789012).

" + "documentation":"

TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).

" }, "TargetType":{ "shape":"TargetType", @@ -920,7 +1074,7 @@ }, "PrincipalId":{ "shape":"PrincipalId", - "documentation":"

An identifier for an object in Amazon Web Services SSO, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in Amazon Web Services SSO, see the Amazon Web Services SSO Identity Store API Reference.

" + "documentation":"

An identifier for an object in IAM Identity Center, such as a user or group. PrincipalIds are GUIDs (For example, f81d4fae-7dec-11d0-a765-00a0c91e6bf6). For more information about PrincipalIds in IAM Identity Center, see the IAM Identity Center Identity Store API Reference.

" } } }, @@ -942,7 +1096,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -961,7 +1115,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" } } }, @@ -979,7 +1133,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -992,6 +1146,28 @@ "members":{ } }, + "DeletePermissionsBoundaryFromPermissionSetRequest":{ + "type":"structure", + "required":[ + "InstanceArn", + "PermissionSetArn" + ], + "members":{ + "InstanceArn":{ + "shape":"InstanceArn", + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" + }, + "PermissionSetArn":{ + "shape":"PermissionSetArn", + "documentation":"

The ARN of the PermissionSet.

" + } + } + }, + "DeletePermissionsBoundaryFromPermissionSetResponse":{ + "type":"structure", + "members":{ + } + }, "DescribeAccountAssignmentCreationStatusRequest":{ "type":"structure", "required":[ @@ -1001,7 +1177,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "AccountAssignmentCreationRequestId":{ "shape":"UUId", @@ -1027,7 +1203,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "AccountAssignmentDeletionRequestId":{ "shape":"UUId", @@ -1050,7 +1226,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" } } }, @@ -1067,7 +1243,7 @@ }, "InstanceAccessControlAttributeConfiguration":{ "shape":"InstanceAccessControlAttributeConfiguration", - "documentation":"

Gets the list of Amazon Web Services SSO identity store attributes that have been added to your ABAC configuration.

" + "documentation":"

Gets the list of IAM Identity Center identity store attributes that have been added to your ABAC configuration.

" } } }, @@ -1080,7 +1256,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "ProvisionPermissionSetRequestId":{ "shape":"UUId", @@ -1106,11 +1282,11 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", - "documentation":"

The ARN of the permission set.

" + "documentation":"

The ARN of the permission set.

" } } }, @@ -1119,10 +1295,37 @@ "members":{ "PermissionSet":{ "shape":"PermissionSet", - "documentation":"

Describes the level of access on an Amazon Web Services account.

" + "documentation":"

Describes the level of access on an AWS account.

" } } }, + "DetachCustomerManagedPolicyReferenceFromPermissionSetRequest":{ + "type":"structure", + "required":[ + "InstanceArn", + "PermissionSetArn", + "CustomerManagedPolicyReference" + ], + "members":{ + "InstanceArn":{ + "shape":"InstanceArn", + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" + }, + "PermissionSetArn":{ + "shape":"PermissionSetArn", + "documentation":"

The ARN of the PermissionSet.

" + }, + "CustomerManagedPolicyReference":{ + "shape":"CustomerManagedPolicyReference", + "documentation":"

Specifies the name and path of a customer managed policy. You must have an IAM policy that matches the name and path in each AWS account where you want to deploy your permission set.

" + } + } + }, + "DetachCustomerManagedPolicyReferenceFromPermissionSetResponse":{ + "type":"structure", + "members":{ + } + }, "DetachManagedPolicyFromPermissionSetRequest":{ "type":"structure", "required":[ @@ -1133,7 +1336,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -1141,7 +1344,7 @@ }, "ManagedPolicyArn":{ "shape":"ManagedPolicyArn", - "documentation":"

The IAM managed policy ARN to be attached to a permission set.

" + "documentation":"

The AWS managed policy ARN to be detached from a permission set.

" } } }, @@ -1156,12 +1359,6 @@ "min":1, "pattern":"^(-?)P(?=\\d|T\\d)(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)([DW]))?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$" }, - "GeneralArn":{ - "type":"string", - "max":2048, - "min":10, - "pattern":"arn:aws:sso:([a-zA-Z0-9-]+)?:(\\d{12})?:[a-zA-Z0-9-]+/[a-zA-Z0-9-/.]+" - }, "GetInlinePolicyForPermissionSetRequest":{ "type":"structure", "required":[ @@ -1171,7 +1368,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -1184,7 +1381,33 @@ "members":{ "InlinePolicy":{ "shape":"PermissionSetPolicyDocument", - "documentation":"

The IAM inline policy that is attached to the permission set.

" + "documentation":"

The inline policy that is attached to the permission set.

" + } + } + }, + "GetPermissionsBoundaryForPermissionSetRequest":{ + "type":"structure", + "required":[ + "InstanceArn", + "PermissionSetArn" + ], + "members":{ + "InstanceArn":{ + "shape":"InstanceArn", + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" + }, + "PermissionSetArn":{ + "shape":"PermissionSetArn", + "documentation":"

The ARN of the PermissionSet.

" + } + } + }, + "GetPermissionsBoundaryForPermissionSetResponse":{ + "type":"structure", + "members":{ + "PermissionsBoundary":{ + "shape":"PermissionsBoundary", + "documentation":"

The permissions boundary attached to the specified permission set.

" } } }, @@ -1200,7 +1423,7 @@ "members":{ "AccessControlAttributes":{ "shape":"AccessControlAttributeList", - "documentation":"

Lists the attributes that are configured for ABAC in the specified Amazon Web Services SSO instance.

" + "documentation":"

Lists the attributes that are configured for ABAC in the specified IAM Identity Center instance.

" } }, "documentation":"

Specifies the attributes to add to your attribute-based access control (ABAC) configuration.

" @@ -1218,7 +1441,7 @@ "type":"string", "max":1224, "min":10, - "pattern":"arn:aws:sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}" + "pattern":"arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::instance/(sso)?ins-[a-zA-Z0-9-.]{16}" }, "InstanceList":{ "type":"list", @@ -1229,14 +1452,14 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "IdentityStoreId":{ "shape":"Id", - "documentation":"

The identifier of the identity store that is connected to the SSO instance.

" + "documentation":"

The identifier of the identity store that is connected to the IAM Identity Center instance.

" } }, - "documentation":"

Provides information about the SSO instance.

" + "documentation":"

Provides information about the IAM Identity Center instance.

" }, "InternalFailureMessage":{"type":"string"}, "InternalServerException":{ @@ -1253,7 +1476,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "MaxResults":{ "shape":"MaxResults", @@ -1288,7 +1511,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "MaxResults":{ "shape":"MaxResults", @@ -1327,11 +1550,11 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "AccountId":{ "shape":"TargetId", - "documentation":"

The identifier of the Amazon Web Services account from which to list the assignments.

" + "documentation":"

The identifier of the AWS account from which to list the assignments.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -1352,7 +1575,7 @@ "members":{ "AccountAssignments":{ "shape":"AccountAssignmentList", - "documentation":"

The list of assignments that match the input Amazon Web Services account and permission set.

" + "documentation":"

The list of assignments that match the input AWS account and permission set.

" }, "NextToken":{ "shape":"Token", @@ -1369,15 +1592,15 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", - "documentation":"

The ARN of the PermissionSet from which the associated Amazon Web Services accounts will be listed.

" + "documentation":"

The ARN of the PermissionSet from which the associated AWS accounts will be listed.

" }, "ProvisioningStatus":{ "shape":"ProvisioningStatus", - "documentation":"

The permission set provisioning status for an Amazon Web Services account.

" + "documentation":"

The permission set provisioning status for an AWS account.

" }, "MaxResults":{ "shape":"MaxResults", @@ -1394,7 +1617,45 @@ "members":{ "AccountIds":{ "shape":"AccountList", - "documentation":"

The list of Amazon Web Services AccountIds.

" + "documentation":"

The list of AWS AccountIds.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.

" + } + } + }, + "ListCustomerManagedPolicyReferencesInPermissionSetRequest":{ + "type":"structure", + "required":[ + "InstanceArn", + "PermissionSetArn" + ], + "members":{ + "InstanceArn":{ + "shape":"InstanceArn", + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" + }, + "PermissionSetArn":{ + "shape":"PermissionSetArn", + "documentation":"

The ARN of the PermissionSet.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to display for the list call.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

The pagination token for the list API. Initially the value is null. Use the output of previous API calls to make subsequent calls.

" + } + } + }, + "ListCustomerManagedPolicyReferencesInPermissionSetResponse":{ + "type":"structure", + "members":{ + "CustomerManagedPolicyReferences":{ + "shape":"CustomerManagedPolicyReferenceList", + "documentation":"

Specifies the names and paths of the customer managed policies that you have attached to your permission set.

" }, "NextToken":{ "shape":"Token", @@ -1420,7 +1681,7 @@ "members":{ "Instances":{ "shape":"InstanceList", - "documentation":"

Lists the SSO instances that the caller has access to.

" + "documentation":"

Lists the IAM Identity Center instances that the caller has access to.

" }, "NextToken":{ "shape":"Token", @@ -1437,7 +1698,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -1458,7 +1719,7 @@ "members":{ "AttachedManagedPolicies":{ "shape":"AttachedManagedPolicyList", - "documentation":"

The array of the AttachedManagedPolicy data type object.

" + "documentation":"

An array of the AttachedManagedPolicy data type object.

" }, "NextToken":{ "shape":"Token", @@ -1472,7 +1733,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "MaxResults":{ "shape":"MaxResults", @@ -1510,11 +1771,11 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "AccountId":{ "shape":"AccountId", - "documentation":"

The identifier of the Amazon Web Services account from which to list the assignments.

" + "documentation":"

The identifier of the AWS account from which to list the assignments.

" }, "ProvisioningStatus":{ "shape":"ProvisioningStatus", @@ -1539,7 +1800,7 @@ }, "PermissionSets":{ "shape":"PermissionSetList", - "documentation":"

Defines the level of access that an Amazon Web Services account has.

" + "documentation":"

Defines the level of access that an AWS account has.

" } } }, @@ -1549,7 +1810,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "NextToken":{ "shape":"Token", @@ -1566,7 +1827,7 @@ "members":{ "PermissionSets":{ "shape":"PermissionSetList", - "documentation":"

Defines the level of access on an Amazon Web Services account.

" + "documentation":"

Defines the level of access on an AWS account.

" }, "NextToken":{ "shape":"Token", @@ -1583,10 +1844,10 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "ResourceArn":{ - "shape":"GeneralArn", + "shape":"TaggableResourceArn", "documentation":"

The ARN of the resource with the tags to be listed.

" }, "NextToken":{ @@ -1611,7 +1872,20 @@ "ManagedPolicyArn":{ "type":"string", "max":2048, - "min":20 + "min":20, + "pattern":"arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):iam::aws:policy/[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]+" + }, + "ManagedPolicyName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w+=,.@-]+" + }, + "ManagedPolicyPath":{ + "type":"string", + "max":512, + "min":1, + "pattern":"((/[A-Za-z0-9\\.,\\+@=_-]+)*)/" }, "MaxResults":{ "type":"integer", @@ -1642,7 +1916,7 @@ }, "PermissionSetArn":{ "shape":"PermissionSetArn", - "documentation":"

The ARN of the permission set. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the permission set. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "Description":{ "shape":"PermissionSetDescription", @@ -1667,13 +1941,13 @@ "type":"string", "max":1224, "min":10, - "pattern":"arn:aws:sso:::permissionSet/(sso)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16}" + "pattern":"arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::permissionSet/(sso)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16}" }, "PermissionSetDescription":{ "type":"string", "max":700, "min":1, - "pattern":"[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*" + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u007E\\u00A0-\\u00FF]*" }, "PermissionSetList":{ "type":"list", @@ -1689,8 +1963,7 @@ "type":"string", "max":10240, "min":1, - "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+", - "sensitive":true + "pattern":"[\\u0009\\u000A\\u000D\\u0020-\\u00FF]+" }, "PermissionSetProvisioningStatus":{ "type":"structure", @@ -1705,11 +1978,11 @@ }, "AccountId":{ "shape":"AccountId", - "documentation":"

The identifier of the Amazon Web Services account from which to list the assignments.

" + "documentation":"

The identifier of the AWS account from which to list the assignments.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", - "documentation":"

The ARN of the permission set that is being provisioned. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the permission set that is being provisioned. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "FailureReason":{ "shape":"Reason", @@ -1744,6 +2017,20 @@ }, "documentation":"

Provides information about the permission set provisioning status.

" }, + "PermissionsBoundary":{ + "type":"structure", + "members":{ + "CustomerManagedPolicyReference":{ + "shape":"CustomerManagedPolicyReference", + "documentation":"

Specifies the name and path of a customer managed policy. You must have an IAM policy that matches the name and path in each AWS account where you want to deploy your permission set.

" + }, + "ManagedPolicyArn":{ + "shape":"ManagedPolicyArn", + "documentation":"

The AWS managed policy ARN that you want to attach to a permission set as a permissions boundary.

" + } + }, + "documentation":"

Specifies the configuration of the AWS managed or customer managed policy that you want to set as a permissions boundary. Specify either CustomerManagedPolicyReference to use the name and path of a customer managed policy, or ManagedPolicyArn to use the ARN of an AWS managed policy. A permissions boundary represents the maximum permissions that any policy can grant your role. For more information, see Permissions boundaries for IAM entities in the IAM User Guide.

Policies used as permissions boundaries don't provide permissions. You must also attach an IAM policy to the role. To learn how the effective permissions for a role are evaluated, see IAM JSON policy evaluation logic in the IAM User Guide.

" + }, "PrincipalId":{ "type":"string", "max":47, @@ -1767,7 +2054,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -1775,7 +2062,7 @@ }, "TargetId":{ "shape":"TargetId", - "documentation":"

TargetID is an Amazon Web Services account identifier, typically a 10-12 digit string (For example, 123456789012).

" + "documentation":"

TargetID is an AWS account identifier, typically a 10-12 digit string (For example, 123456789012).

" }, "TargetType":{ "shape":"ProvisionTargetType", @@ -1816,7 +2103,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -1824,7 +2111,7 @@ }, "InlinePolicy":{ "shape":"PermissionSetPolicyDocument", - "documentation":"

The IAM inline policy to attach to a PermissionSet.

" + "documentation":"

The inline policy to attach to a PermissionSet.

" } } }, @@ -1833,6 +2120,33 @@ "members":{ } }, + "PutPermissionsBoundaryToPermissionSetRequest":{ + "type":"structure", + "required":[ + "InstanceArn", + "PermissionSetArn", + "PermissionsBoundary" + ], + "members":{ + "InstanceArn":{ + "shape":"InstanceArn", + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" + }, + "PermissionSetArn":{ + "shape":"PermissionSetArn", + "documentation":"

The ARN of the PermissionSet.

" + }, + "PermissionsBoundary":{ + "shape":"PermissionsBoundary", + "documentation":"

The permissions boundary that you want to attach to a PermissionSet.

" + } + } + }, + "PutPermissionsBoundaryToPermissionSetResponse":{ + "type":"structure", + "members":{ + } + }, "Reason":{ "type":"string", "pattern":"[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*" @@ -1871,6 +2185,10 @@ }, "Tag":{ "type":"structure", + "required":[ + "Key", + "Value" + ], "members":{ "Key":{ "shape":"TagKey", @@ -1881,7 +2199,7 @@ "documentation":"

The value of the tag.

" } }, - "documentation":"

A set of key-value pairs that are used to manage the resource. Tags can only be applied to permission sets and cannot be applied to corresponding roles that Amazon Web Services SSO creates in Amazon Web Services accounts.

" + "documentation":"

A set of key-value pairs that are used to manage the resource. Tags can only be applied to permission sets and cannot be applied to corresponding roles that IAM Identity Center creates in AWS accounts.

" }, "TagKey":{ "type":"string", @@ -1911,10 +2229,10 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "ResourceArn":{ - "shape":"GeneralArn", + "shape":"TaggableResourceArn", "documentation":"

The ARN of the resource with the tags to be listed.

" }, "Tags":{ @@ -1934,8 +2252,16 @@ "min":0, "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" }, + "TaggableResourceArn":{ + "type":"string", + "max":2048, + "min":10, + "pattern":"arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso:::permissionSet/(sso)?ins-[a-zA-Z0-9-.]{16}/ps-[a-zA-Z0-9-./]{16}" + }, "TargetId":{ "type":"string", + "max":12, + "min":12, "pattern":"\\d{12}" }, "TargetType":{ @@ -1958,6 +2284,8 @@ }, "UUId":{ "type":"string", + "max":36, + "min":36, "pattern":"\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b" }, "UntagResourceRequest":{ @@ -1970,10 +2298,10 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "ResourceArn":{ - "shape":"GeneralArn", + "shape":"TaggableResourceArn", "documentation":"

The ARN of the resource with the tags to be listed.

" }, "TagKeys":{ @@ -1996,7 +2324,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed.

" }, "InstanceAccessControlAttributeConfiguration":{ "shape":"InstanceAccessControlAttributeConfiguration", @@ -2018,7 +2346,7 @@ "members":{ "InstanceArn":{ "shape":"InstanceArn", - "documentation":"

The ARN of the SSO instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

" + "documentation":"

The ARN of the IAM Identity Center instance under which the operation will be executed. For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

" }, "PermissionSetArn":{ "shape":"PermissionSetArn", @@ -2053,5 +2381,5 @@ }, "ValidationExceptionMessage":{"type":"string"} }, - "documentation":"

Amazon Web Services Single Sign On (SSO) is a cloud SSO service that makes it easy to centrally manage SSO access to multiple Amazon Web Services accounts and business applications. This guide provides information on SSO operations which could be used for access management of Amazon Web Services accounts. For information about Amazon Web Services SSO features, see the Amazon Web Services Single Sign-On User Guide.

Many operations in the SSO APIs rely on identifiers for users and groups, known as principals. For more information about how to work with principals and principal IDs in Amazon Web Services SSO, see the Amazon Web Services SSO Identity Store API Reference.

" + "documentation":"

AWS IAM Identity Center (successor to AWS Single Sign-On) helps you securely create, or connect, your workforce identities and manage their access centrally across AWS accounts and applications. IAM Identity Center is the recommended approach for workforce authentication and authorization in AWS, for organizations of any size and type.

Although AWS Single Sign-On was renamed, the sso and identitystore API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see IAM Identity Center rename.

This reference guide provides information on single sign-on operations which could be used for access management of AWS accounts. For information about IAM Identity Center features, see the IAM Identity Center User Guide.

Many operations in the IAM Identity Center APIs rely on identifiers for users and groups, known as principals. For more information about how to work with principals and principal IDs in IAM Identity Center, see the Identity Store API Reference.

AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms (Java, Ruby, .Net, iOS, Android, and more). The SDKs provide a convenient way to create programmatic access to IAM Identity Center and other AWS services. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services.

" } diff --git a/botocore/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json b/botocore/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..6d1b7f68 --- /dev/null +++ b/botocore/data/sso-oidc/2019-06-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://oidc.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sso-oidc/2019-06-10/examples-1.json b/botocore/data/sso-oidc/2019-06-10/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/sso-oidc/2019-06-10/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/sso-oidc/2019-06-10/service-2.json b/botocore/data/sso-oidc/2019-06-10/service-2.json index 79b2efe1..68e11e17 100644 --- a/botocore/data/sso-oidc/2019-06-10/service-2.json +++ b/botocore/data/sso-oidc/2019-06-10/service-2.json @@ -51,7 +51,7 @@ {"shape":"InvalidClientMetadataException"}, {"shape":"InternalServerException"} ], - "documentation":"

Registers a client with AWS SSO. This allows clients to initiate device authorization. The output should be persisted for reuse through many authentication requests.

", + "documentation":"

Registers a client with IAM Identity Center. This allows clients to initiate device authorization. The output should be persisted for reuse through many authentication requests.

", "authtype":"none" }, "StartDeviceAuthorization":{ @@ -105,8 +105,7 @@ "required":[ "clientId", "clientSecret", - "grantType", - "deviceCode" + "grantType" ], "members":{ "clientId":{ @@ -119,7 +118,7 @@ }, "grantType":{ "shape":"GrantType", - "documentation":"

Supports grant types for authorization code, refresh token, and device code request.

" + "documentation":"

Supports grant types for the authorization code, refresh token, and device code request. For device code requests, specify the following value:

urn:ietf:params:oauth:grant-type:device_code

For information about how to obtain the device code, see the StartDeviceAuthorization topic.

" }, "deviceCode":{ "shape":"DeviceCode", @@ -131,7 +130,7 @@ }, "refreshToken":{ "shape":"RefreshToken", - "documentation":"

The token used to obtain an access token in the event that the access token is invalid or expired. This token is not issued by the service.

" + "documentation":"

Currently, refreshToken is not yet implemented and is not supported. For more information about the features and limitations of the current IAM Identity Center OIDC implementation, see Considerations for Using this Guide in the IAM Identity Center OIDC API Reference.

The token used to obtain an access token in the event that the access token is invalid or expired.

" }, "scope":{ "shape":"Scopes", @@ -148,7 +147,7 @@ "members":{ "accessToken":{ "shape":"AccessToken", - "documentation":"

An opaque token to access AWS SSO resources assigned to a user.

" + "documentation":"

An opaque token to access IAM Identity Center resources assigned to a user.

" }, "tokenType":{ "shape":"TokenType", @@ -160,11 +159,11 @@ }, "refreshToken":{ "shape":"RefreshToken", - "documentation":"

A token that, if present, can be used to refresh a previously issued access token that might have expired.

" + "documentation":"

Currently, refreshToken is not yet implemented and is not supported. For more information about the features and limitations of the current IAM Identity Center OIDC implementation, see Considerations for Using this Guide in the IAM Identity Center OIDC API Reference.

A token that, if present, can be used to refresh a previously issued access token that might have expired.

" }, "idToken":{ "shape":"IdToken", - "documentation":"

The identifier of the user that associated with the access token, if present.

" + "documentation":"

Currently, idToken is not yet implemented and is not supported. For more information about the features and limitations of the current IAM Identity Center OIDC implementation, see Considerations for Using this Guide in the IAM Identity Center OIDC API Reference.

The identifier of the user that associated with the access token, if present.

" } } }, @@ -323,7 +322,7 @@ "members":{ "clientId":{ "shape":"ClientId", - "documentation":"

The unique identifier string for the client that is registered with AWS SSO. This value should come from the persisted result of the RegisterClient API operation.

" + "documentation":"

The unique identifier string for the client that is registered with IAM Identity Center. This value should come from the persisted result of the RegisterClient API operation.

" }, "clientSecret":{ "shape":"ClientSecret", @@ -331,7 +330,7 @@ }, "startUrl":{ "shape":"URI", - "documentation":"

The URL for the AWS SSO user portal. For more information, see Using the User Portal in the AWS Single Sign-On User Guide.

" + "documentation":"

The URL for the AWS access portal. For more information, see Using the AWS access portal in the IAM Identity Center User Guide.

" } } }, @@ -388,5 +387,5 @@ }, "UserCode":{"type":"string"} }, - "documentation":"

AWS Single Sign-On (SSO) OpenID Connect (OIDC) is a web service that enables a client (such as AWS CLI or a native application) to register with AWS SSO. The service also enables the client to fetch the user’s access token upon successful authentication and authorization with AWS SSO. This service conforms with the OAuth 2.0 based implementation of the device authorization grant standard (https://tools.ietf.org/html/rfc8628).

For general information about AWS SSO, see What is AWS Single Sign-On? in the AWS SSO User Guide.

This API reference guide describes the AWS SSO OIDC operations that you can call programatically and includes detailed information on data types and errors.

AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms such as Java, Ruby, .Net, iOS, and Android. The SDKs provide a convenient way to create programmatic access to AWS SSO and other AWS services. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services.

" + "documentation":"

AWS IAM Identity Center (successor to AWS Single Sign-On) OpenID Connect (OIDC) is a web service that enables a client (such as AWS CLI or a native application) to register with IAM Identity Center. The service also enables the client to fetch the user’s access token upon successful authentication and authorization with IAM Identity Center.

Although AWS Single Sign-On was renamed, the sso and identitystore API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see IAM Identity Center rename.

Considerations for Using This Guide

Before you begin using this guide, we recommend that you first review the following important information about how the IAM Identity Center OIDC service works.

  • The IAM Identity Center OIDC service currently implements only the portions of the OAuth 2.0 Device Authorization Grant standard (https://tools.ietf.org/html/rfc8628) that are necessary to enable single sign-on authentication with the AWS CLI. Support for other OIDC flows frequently needed for native applications, such as Authorization Code Flow (+ PKCE), will be addressed in future releases.

  • The service emits only OIDC access tokens, such that obtaining a new token (For example, token refresh) requires explicit user re-authentication.

  • The access tokens provided by this service grant access to all AWS account entitlements assigned to an IAM Identity Center user, not just a particular application.

  • The documentation in this guide does not describe the mechanism to convert the access token into AWS Auth (“sigv4”) credentials for use with IAM-protected AWS service endpoints. For more information, see GetRoleCredentials in the IAM Identity Center Portal API Reference Guide.

For general information about IAM Identity Center, see What is IAM Identity Center? in the IAM Identity Center User Guide.

" } diff --git a/botocore/data/sso/2019-06-10/endpoint-rule-set-1.json b/botocore/data/sso/2019-06-10/endpoint-rule-set-1.json new file mode 100644 index 00000000..9b9757c9 --- /dev/null +++ b/botocore/data/sso/2019-06-10/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://portal.sso.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sso/2019-06-10/examples-1.json b/botocore/data/sso/2019-06-10/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/sso/2019-06-10/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/sso/2019-06-10/service-2.json b/botocore/data/sso/2019-06-10/service-2.json index 84e4fa40..11848d06 100644 --- a/botocore/data/sso/2019-06-10/service-2.json +++ b/botocore/data/sso/2019-06-10/service-2.json @@ -61,7 +61,7 @@ {"shape":"TooManyRequestsException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists all AWS accounts assigned to the user. These AWS accounts are assigned by the administrator of the account. For more information, see Assign User Access in the AWS SSO User Guide. This operation returns a paginated response.

", + "documentation":"

Lists all AWS accounts assigned to the user. These AWS accounts are assigned by the administrator of the account. For more information, see Assign User Access in the IAM Identity Center User Guide. This operation returns a paginated response.

", "authtype":"none" }, "Logout":{ @@ -76,7 +76,7 @@ {"shape":"UnauthorizedException"}, {"shape":"TooManyRequestsException"} ], - "documentation":"

Removes the client- and server-side session that is associated with the user.

", + "documentation":"

Removes the locally stored SSO tokens from the client-side cache and sends an API call to the IAM Identity Center service to invalidate the corresponding server-side IAM Identity Center sign in session.

If a user uses IAM Identity Center to access the AWS CLI, the user’s IAM Identity Center sign in session is used to obtain an IAM session, as specified in the corresponding IAM Identity Center permission set. More specifically, IAM Identity Center assumes an IAM role in the target account on behalf of the user, and the corresponding temporary AWS credentials are returned to the client.

After user logout, any existing IAM role sessions that were created by using IAM Identity Center permission sets continue based on the duration configured in the permission set. For more information, see User authentications in the IAM Identity Center User Guide.

", "authtype":"none" } }, @@ -139,7 +139,7 @@ }, "accessToken":{ "shape":"AccessTokenType", - "documentation":"

The token issued by the CreateToken API call. For more information, see CreateToken in the AWS SSO OIDC API Reference Guide.

", + "documentation":"

The token issued by the CreateToken API call. For more information, see CreateToken in the IAM Identity Center OIDC API Reference Guide.

", "location":"header", "locationName":"x-amz-sso_bearer_token" } @@ -184,7 +184,7 @@ }, "accessToken":{ "shape":"AccessTokenType", - "documentation":"

The token issued by the CreateToken API call. For more information, see CreateToken in the AWS SSO OIDC API Reference Guide.

", + "documentation":"

The token issued by the CreateToken API call. For more information, see CreateToken in the IAM Identity Center OIDC API Reference Guide.

", "location":"header", "locationName":"x-amz-sso_bearer_token" }, @@ -227,7 +227,7 @@ }, "accessToken":{ "shape":"AccessTokenType", - "documentation":"

The token issued by the CreateToken API call. For more information, see CreateToken in the AWS SSO OIDC API Reference Guide.

", + "documentation":"

The token issued by the CreateToken API call. For more information, see CreateToken in the IAM Identity Center OIDC API Reference Guide.

", "location":"header", "locationName":"x-amz-sso_bearer_token" } @@ -252,7 +252,7 @@ "members":{ "accessToken":{ "shape":"AccessTokenType", - "documentation":"

The token issued by the CreateToken API call. For more information, see CreateToken in the AWS SSO OIDC API Reference Guide.

", + "documentation":"

The token issued by the CreateToken API call. For more information, see CreateToken in the IAM Identity Center OIDC API Reference Guide.

", "location":"header", "locationName":"x-amz-sso_bearer_token" } @@ -342,5 +342,5 @@ "exception":true } }, - "documentation":"

AWS Single Sign-On Portal is a web service that makes it easy for you to assign user access to AWS SSO resources such as the user portal. Users can get AWS account applications and roles assigned to them and get federated into the application.

For general information about AWS SSO, see What is AWS Single Sign-On? in the AWS SSO User Guide.

This API reference guide describes the AWS SSO Portal operations that you can call programatically and includes detailed information on data types and errors.

AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms, such as Java, Ruby, .Net, iOS, or Android. The SDKs provide a convenient way to create programmatic access to AWS SSO and other AWS services. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services.

" + "documentation":"

AWS IAM Identity Center (successor to AWS Single Sign-On) Portal is a web service that makes it easy for you to assign user access to IAM Identity Center resources such as the AWS access portal. Users can get AWS account applications and roles assigned to them and get federated into the application.

Although AWS Single Sign-On was renamed, the sso and identitystore API namespaces will continue to retain their original name for backward compatibility purposes. For more information, see IAM Identity Center rename.

This reference guide describes the IAM Identity Center Portal operations that you can call programatically and includes detailed information on data types and errors.

AWS provides SDKs that consist of libraries and sample code for various programming languages and platforms, such as Java, Ruby, .Net, iOS, or Android. The SDKs provide a convenient way to create programmatic access to IAM Identity Center and other AWS services. For more information about the AWS SDKs, including how to download and install them, see Tools for Amazon Web Services.

" } diff --git a/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json b/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json new file mode 100644 index 00000000..59fd81e8 --- /dev/null +++ b/botocore/data/stepfunctions/2016-11-23/endpoint-rule-set-1.json @@ -0,0 +1,334 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://states-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://states.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://states-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://states.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://states.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/stepfunctions/2016-11-23/paginators-1.json b/botocore/data/stepfunctions/2016-11-23/paginators-1.json index 9feccba6..fb8eb5e5 100644 --- a/botocore/data/stepfunctions/2016-11-23/paginators-1.json +++ b/botocore/data/stepfunctions/2016-11-23/paginators-1.json @@ -23,6 +23,12 @@ "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/botocore/data/stepfunctions/2016-11-23/service-2.json b/botocore/data/stepfunctions/2016-11-23/service-2.json index cf4163c6..f2913493 100644 --- a/botocore/data/stepfunctions/2016-11-23/service-2.json +++ b/botocore/data/stepfunctions/2016-11-23/service-2.json @@ -26,7 +26,7 @@ {"shape":"InvalidName"}, {"shape":"TooManyTags"} ], - "documentation":"

Creates an activity. An activity is a task that you write in any programming language and host on any machine that has access to AWS Step Functions. Activities must poll Step Functions using the GetActivityTask API action and respond using SendTask* API actions. This function lets Step Functions know the existence of your activity and returns an identifier for use in a state machine and when polling from the activity.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

CreateActivity is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. CreateActivity's idempotency check is based on the activity name. If a following request has different tags values, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

", + "documentation":"

Creates an activity. An activity is a task that you write in any programming language and host on any machine that has access to Step Functions. Activities must poll Step Functions using the GetActivityTask API action and respond using SendTask* API actions. This function lets Step Functions know the existence of your activity and returns an identifier for use in a state machine and when polling from the activity.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

CreateActivity is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. CreateActivity's idempotency check is based on the activity name. If a following request has different tags values, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

", "idempotent":true }, "CreateStateMachine":{ @@ -49,7 +49,7 @@ {"shape":"StateMachineTypeNotSupported"}, {"shape":"TooManyTags"} ], - "documentation":"

Creates a state machine. A state machine consists of a collection of states that can do work (Task states), determine to which states to transition next (Choice states), stop an execution with an error (Fail states), and so on. State machines are specified using a JSON-based, structured language. For more information, see Amazon States Language in the AWS Step Functions User Guide.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

CreateStateMachine is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. CreateStateMachine's idempotency check is based on the state machine name, definition, type, LoggingConfiguration and TracingConfiguration. If a following request has a different roleArn or tags, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, roleArn and tags will not be updated, even if they are different.

", + "documentation":"

Creates a state machine. A state machine consists of a collection of states that can do work (Task states), determine to which states to transition next (Choice states), stop an execution with an error (Fail states), and so on. State machines are specified using a JSON-based, structured language. For more information, see Amazon States Language in the Step Functions User Guide.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

CreateStateMachine is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. CreateStateMachine's idempotency check is based on the state machine name, definition, type, LoggingConfiguration and TracingConfiguration. If a following request has a different roleArn or tags, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, roleArn and tags will not be updated, even if they are different.

", "idempotent":true }, "DeleteActivity":{ @@ -74,9 +74,10 @@ "input":{"shape":"DeleteStateMachineInput"}, "output":{"shape":"DeleteStateMachineOutput"}, "errors":[ - {"shape":"InvalidArn"} + {"shape":"InvalidArn"}, + {"shape":"ValidationException"} ], - "documentation":"

Deletes a state machine. This is an asynchronous operation: It sets the state machine's status to DELETING and begins the deletion process.

For EXPRESSstate machines, the deletion will happen eventually (usually less than a minute). Running executions may emit logs after DeleteStateMachine API is called.

" + "documentation":"

Deletes a state machine. This is an asynchronous operation: It sets the state machine's status to DELETING and begins the deletion process.

If the given state machine Amazon Resource Name (ARN) is a qualified state machine ARN, it will fail with ValidationException.

A qualified state machine ARN refers to a Distributed Map state defined within a state machine. For example, the qualified state machine ARN arn:partition:states:region:account-id:stateMachine:stateMachineName/mapStateLabel refers to a Distributed Map state with a label mapStateLabel in the state machine named stateMachineName.

For EXPRESS state machines, the deletion will happen eventually (usually less than a minute). Running executions may emit logs after DeleteStateMachine API is called.

" }, "DescribeActivity":{ "name":"DescribeActivity", @@ -104,7 +105,21 @@ {"shape":"ExecutionDoesNotExist"}, {"shape":"InvalidArn"} ], - "documentation":"

Describes an execution.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

This API action is not supported by EXPRESS state machines.

" + "documentation":"

Provides all information about a state machine execution, such as the state machine associated with the execution, the execution input and output, and relevant execution metadata. Use this API action to return the Map Run ARN if the execution was dispatched by a Map Run.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

This API action is not supported by EXPRESS state machine executions unless they were dispatched by a Map Run.

" + }, + "DescribeMapRun":{ + "name":"DescribeMapRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeMapRunInput"}, + "output":{"shape":"DescribeMapRunOutput"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"InvalidArn"} + ], + "documentation":"

Provides information about a Map Run's configuration, progress, and results. For more information, see Examining Map Run in the Step Functions Developer Guide.

" }, "DescribeStateMachine":{ "name":"DescribeStateMachine", @@ -118,7 +133,7 @@ {"shape":"InvalidArn"}, {"shape":"StateMachineDoesNotExist"} ], - "documentation":"

Describes a state machine.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

" + "documentation":"

Provides information about a state machine's definition, its IAM role Amazon Resource Name (ARN), and configuration. If the state machine ARN is a qualified state machine ARN, the response returned includes the Map state's label.

A qualified state machine ARN refers to a Distributed Map state defined within a state machine. For example, the qualified state machine ARN arn:partition:states:region:account-id:stateMachine:stateMachineName/mapStateLabel refers to a Distributed Map state with a label mapStateLabel in the state machine named stateMachineName.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

" }, "DescribeStateMachineForExecution":{ "name":"DescribeStateMachineForExecution", @@ -132,7 +147,7 @@ {"shape":"ExecutionDoesNotExist"}, {"shape":"InvalidArn"} ], - "documentation":"

Describes the state machine associated with a specific execution.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

This API action is not supported by EXPRESS state machines.

" + "documentation":"

Provides information about a state machine's definition, its execution role ARN, and configuration. If an execution was dispatched by a Map Run, the Map Run is returned in the response. Additionally, the state machine returned will be the state machine associated with the Map Run.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

This API action is not supported by EXPRESS state machines.

" }, "GetActivityTask":{ "name":"GetActivityTask", @@ -147,7 +162,7 @@ {"shape":"ActivityWorkerLimitExceeded"}, {"shape":"InvalidArn"} ], - "documentation":"

Used by workers to retrieve a task (with the specified activity ARN) which has been scheduled for execution by a running state machine. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available (i.e. an execution of a task of this type is needed.) The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll returns a taskToken with a null string.

Workers should set their client side socket timeout to at least 65 seconds (5 seconds higher than the maximum time the service may hold the poll request).

Polling with GetActivityTask can cause latency in some implementations. See Avoid Latency When Polling for Activity Tasks in the Step Functions Developer Guide.

" + "documentation":"

Used by workers to retrieve a task (with the specified activity ARN) which has been scheduled for execution by a running state machine. This initiates a long poll, where the service holds the HTTP connection open and responds as soon as a task becomes available (i.e. an execution of a task of this type is needed.) The maximum time the service holds on to the request before responding is 60 seconds. If no task is available within 60 seconds, the poll returns a taskToken with a null string.

This API action isn't logged in CloudTrail.

Workers should set their client side socket timeout to at least 65 seconds (5 seconds higher than the maximum time the service may hold the poll request).

Polling with GetActivityTask can cause latency in some implementations. See Avoid Latency When Polling for Activity Tasks in the Step Functions Developer Guide.

" }, "GetExecutionHistory":{ "name":"GetExecutionHistory", @@ -189,9 +204,26 @@ {"shape":"InvalidArn"}, {"shape":"InvalidToken"}, {"shape":"StateMachineDoesNotExist"}, - {"shape":"StateMachineTypeNotSupported"} + {"shape":"StateMachineTypeNotSupported"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFound"} ], - "documentation":"

Lists the executions of a state machine that meet the filtering criteria. Results are sorted by time, with the most recent execution first.

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

This API action is not supported by EXPRESS state machines.

" + "documentation":"

Lists all executions of a state machine or a Map Run. You can list all executions related to a state machine by specifying a state machine Amazon Resource Name (ARN), or those related to a Map Run by specifying a Map Run ARN.

Results are sorted by time, with the most recent execution first.

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.

This API action is not supported by EXPRESS state machines.

" + }, + "ListMapRuns":{ + "name":"ListMapRuns", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListMapRunsInput"}, + "output":{"shape":"ListMapRunsOutput"}, + "errors":[ + {"shape":"ExecutionDoesNotExist"}, + {"shape":"InvalidArn"}, + {"shape":"InvalidToken"} + ], + "documentation":"

Lists all Map Runs that were started by a given state machine execution. Use this API action to obtain Map Run ARNs, and then call DescribeMapRun to obtain more information, if needed.

" }, "ListStateMachines":{ "name":"ListStateMachines", @@ -281,9 +313,10 @@ {"shape":"InvalidExecutionInput"}, {"shape":"InvalidName"}, {"shape":"StateMachineDoesNotExist"}, - {"shape":"StateMachineDeleting"} + {"shape":"StateMachineDeleting"}, + {"shape":"ValidationException"} ], - "documentation":"

Starts a state machine execution.

StartExecution is idempotent. If StartExecution is called with the same name and input as a running execution, the call will succeed and return the same response as the original request. If the execution is closed or if the input is different, it will return a 400 ExecutionAlreadyExists error. Names can be reused after 90 days.

", + "documentation":"

Starts a state machine execution. If the given state machine Amazon Resource Name (ARN) is a qualified state machine ARN, it will fail with ValidationException.

A qualified state machine ARN refers to a Distributed Map state defined within a state machine. For example, the qualified state machine ARN arn:partition:states:region:account-id:stateMachine:stateMachineName/mapStateLabel refers to a Distributed Map state with a label mapStateLabel in the state machine named stateMachineName.

StartExecution is idempotent for STANDARD workflows. For a STANDARD workflow, if StartExecution is called with the same name and input as a running execution, the call will succeed and return the same response as the original request. If the execution is closed or if the input is different, it will return a 400 ExecutionAlreadyExists error. Names can be reused after 90 days.

StartExecution is not idempotent for EXPRESS workflows.

", "idempotent":true }, "StartSyncExecution":{ @@ -302,7 +335,7 @@ {"shape":"StateMachineDeleting"}, {"shape":"StateMachineTypeNotSupported"} ], - "documentation":"

Starts a Synchronous Express state machine execution.

", + "documentation":"

Starts a Synchronous Express state machine execution. StartSyncExecution is not available for STANDARD workflows.

StartSyncExecution will return a 200 OK response, even if your execution fails, because the status code in the API response doesn't reflect function errors. Error codes are reserved for errors that prevent your execution from running, such as permissions errors, limit errors, or issues with your state machine code and configuration.

This API action isn't logged in CloudTrail.

", "endpoint":{"hostPrefix":"sync-"} }, "StopExecution":{ @@ -315,7 +348,8 @@ "output":{"shape":"StopExecutionOutput"}, "errors":[ {"shape":"ExecutionDoesNotExist"}, - {"shape":"InvalidArn"} + {"shape":"InvalidArn"}, + {"shape":"ValidationException"} ], "documentation":"

Stops an execution.

This API action is not supported by EXPRESS state machines.

" }, @@ -332,7 +366,7 @@ {"shape":"ResourceNotFound"}, {"shape":"TooManyTags"} ], - "documentation":"

Add a tag to a Step Functions resource.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

" + "documentation":"

Add a tag to a Step Functions resource.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

" }, "UntagResource":{ "name":"UntagResource", @@ -348,6 +382,21 @@ ], "documentation":"

Remove a tag from a Step Functions resource

" }, + "UpdateMapRun":{ + "name":"UpdateMapRun", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateMapRunInput"}, + "output":{"shape":"UpdateMapRunOutput"}, + "errors":[ + {"shape":"ResourceNotFound"}, + {"shape":"InvalidArn"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates an in-progress Map Run's configuration to include changes to the settings that control maximum concurrency and Map Run failure.

" + }, "UpdateStateMachine":{ "name":"UpdateStateMachine", "http":{ @@ -363,9 +412,10 @@ {"shape":"InvalidTracingConfiguration"}, {"shape":"MissingRequiredParameter"}, {"shape":"StateMachineDeleting"}, - {"shape":"StateMachineDoesNotExist"} + {"shape":"StateMachineDoesNotExist"}, + {"shape":"ValidationException"} ], - "documentation":"

Updates an existing state machine by modifying its definition, roleArn, or loggingConfiguration. Running executions will continue to use the previous definition and roleArn. You must include at least one of definition or roleArn or you will receive a MissingRequiredParameter error.

All StartExecution calls within a few seconds will use the updated definition and roleArn. Executions started immediately after calling UpdateStateMachine may use the previous state machine definition and roleArn.

", + "documentation":"

Updates an existing state machine by modifying its definition, roleArn, or loggingConfiguration. Running executions will continue to use the previous definition and roleArn. You must include at least one of definition or roleArn or you will receive a MissingRequiredParameter error.

If the given state machine Amazon Resource Name (ARN) is a qualified state machine ARN, it will fail with ValidationException.

A qualified state machine ARN refers to a Distributed Map state defined within a state machine. For example, the qualified state machine ARN arn:partition:states:region:account-id:stateMachine:stateMachineName/mapStateLabel refers to a Distributed Map state with a label mapStateLabel in the state machine named stateMachineName.

All StartExecution calls within a few seconds will use the updated definition and roleArn. Executions started immediately after calling UpdateStateMachine may use the previous state machine definition and roleArn.

", "idempotent":true } }, @@ -575,11 +625,11 @@ "members":{ "name":{ "shape":"Name", - "documentation":"

The name of the activity to create. This name must be unique for your AWS account and region for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" + "documentation":"

The name of the activity to create. This name must be unique for your Amazon Web Services account and region for 90 days. For more information, see Limits Related to State Machine Executions in the Step Functions Developer Guide.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "tags":{ "shape":"TagList", - "documentation":"

The list of tags to add to a resource.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

" + "documentation":"

The list of tags to add to a resource.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

" } } }, @@ -626,15 +676,15 @@ }, "loggingConfiguration":{ "shape":"LoggingConfiguration", - "documentation":"

Defines what execution history events are logged and where they are logged.

By default, the level is set to OFF. For more information see Log Levels in the AWS Step Functions User Guide.

" + "documentation":"

Defines what execution history events are logged and where they are logged.

By default, the level is set to OFF. For more information see Log Levels in the Step Functions User Guide.

" }, "tags":{ "shape":"TagList", - "documentation":"

Tags to be added when creating a state machine.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

" + "documentation":"

Tags to be added when creating a state machine.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

" }, "tracingConfiguration":{ "shape":"TracingConfiguration", - "documentation":"

Selects whether AWS X-Ray tracing is enabled.

" + "documentation":"

Selects whether X-Ray tracing is enabled.

" } } }, @@ -778,7 +828,85 @@ "outputDetails":{"shape":"CloudWatchEventsExecutionDataDetails"}, "traceHeader":{ "shape":"TraceHeader", - "documentation":"

The AWS X-Ray trace header that was passed to the execution.

" + "documentation":"

The X-Ray trace header that was passed to the execution.

" + }, + "mapRunArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) that identifies a Map Run, which dispatched this execution.

" + }, + "error":{ + "shape":"SensitiveError", + "documentation":"

The error string if the state machine execution failed.

" + }, + "cause":{ + "shape":"SensitiveCause", + "documentation":"

The cause string if the state machine execution failed.

" + } + } + }, + "DescribeMapRunInput":{ + "type":"structure", + "required":["mapRunArn"], + "members":{ + "mapRunArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) that identifies a Map Run.

" + } + } + }, + "DescribeMapRunOutput":{ + "type":"structure", + "required":[ + "mapRunArn", + "executionArn", + "status", + "startDate", + "maxConcurrency", + "toleratedFailurePercentage", + "toleratedFailureCount", + "itemCounts", + "executionCounts" + ], + "members":{ + "mapRunArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) that identifies a Map Run.

" + }, + "executionArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) that identifies the execution in which the Map Run was started.

" + }, + "status":{ + "shape":"MapRunStatus", + "documentation":"

The current status of the Map Run.

" + }, + "startDate":{ + "shape":"Timestamp", + "documentation":"

The date when the Map Run was started.

" + }, + "stopDate":{ + "shape":"Timestamp", + "documentation":"

The date when the Map Run was stopped.

" + }, + "maxConcurrency":{ + "shape":"MaxConcurrency", + "documentation":"

The maximum number of child workflow executions configured to run in parallel for the Map Run at the same time.

" + }, + "toleratedFailurePercentage":{ + "shape":"ToleratedFailurePercentage", + "documentation":"

The maximum percentage of failed child workflow executions before the Map Run fails.

" + }, + "toleratedFailureCount":{ + "shape":"ToleratedFailureCount", + "documentation":"

The maximum number of failed child workflow executions before the Map Run fails.

" + }, + "itemCounts":{ + "shape":"MapRunItemCounts", + "documentation":"

A JSON object that contains information about the total number of items, and the item count for each processing status, such as pending and failed.

" + }, + "executionCounts":{ + "shape":"MapRunExecutionCounts", + "documentation":"

A JSON object that contains information about the total number of child workflow executions for the Map Run, and the count of child workflow executions for each status, such as failed and succeeded.

" } } }, @@ -825,7 +953,15 @@ "loggingConfiguration":{"shape":"LoggingConfiguration"}, "tracingConfiguration":{ "shape":"TracingConfiguration", - "documentation":"

Selects whether AWS X-Ray tracing is enabled.

" + "documentation":"

Selects whether X-Ray tracing is enabled.

" + }, + "mapRunArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the Map Run that started the child workflow execution. This field is returned only if the executionArn is a child workflow execution that was started by a Distributed Map state.

" + }, + "label":{ + "shape":"MapRunLabel", + "documentation":"

A user-defined or an auto-generated string that identifies a Map state. This field is returned only if the executionArn is a child workflow execution that was started by a Distributed Map state.

" } } }, @@ -868,7 +1004,7 @@ }, "roleArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the IAM role used when creating this state machine. (The IAM role maintains security by granting Step Functions access to AWS resources.)

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role used when creating this state machine. (The IAM role maintains security by granting Step Functions access to Amazon Web Services resources.)

" }, "type":{ "shape":"StateMachineType", @@ -881,7 +1017,11 @@ "loggingConfiguration":{"shape":"LoggingConfiguration"}, "tracingConfiguration":{ "shape":"TracingConfiguration", - "documentation":"

Selects whether AWS X-Ray tracing is enabled.

" + "documentation":"

Selects whether X-Ray tracing is enabled.

" + }, + "label":{ + "shape":"MapRunLabel", + "documentation":"

A user-defined or an auto-generated string that identifies a Map state. This parameter is present only if the stateMachineArn specified in input is a qualified state machine ARN.

" } } }, @@ -977,6 +1117,15 @@ "stopDate":{ "shape":"Timestamp", "documentation":"

If the execution already ended, the date the execution stopped.

" + }, + "mapRunArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of a Map Run. This field is returned only if mapRunArn was specified in the ListExecutions API action. If stateMachineArn was specified in ListExecutions, the mapRunArn isn't returned.

" + }, + "itemCount":{ + "shape":"UnsignedInteger", + "documentation":"

The total number of items processed in a child workflow execution. This field is returned only if mapRunArn was specified in the ListExecutions API action. If stateMachineArn was specified in ListExecutions, the itemCount field isn't returned.

", + "box":true } }, "documentation":"

Contains details about an execution.

" @@ -994,7 +1143,7 @@ }, "roleArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the IAM role used for executing AWS Lambda tasks.

" + "documentation":"

The Amazon Resource Name (ARN) of the IAM role used for executing Lambda tasks.

" } }, "documentation":"

Contains details about the start of the execution.

" @@ -1203,11 +1352,19 @@ }, "lambdaFunctionSucceededEventDetails":{ "shape":"LambdaFunctionSucceededEventDetails", - "documentation":"

Contains details about a lambda function that terminated successfully during an execution.

" + "documentation":"

Contains details about a Lambda function that terminated successfully during an execution.

" }, "lambdaFunctionTimedOutEventDetails":{"shape":"LambdaFunctionTimedOutEventDetails"}, "stateEnteredEventDetails":{"shape":"StateEnteredEventDetails"}, - "stateExitedEventDetails":{"shape":"StateExitedEventDetails"} + "stateExitedEventDetails":{"shape":"StateExitedEventDetails"}, + "mapRunStartedEventDetails":{ + "shape":"MapRunStartedEventDetails", + "documentation":"

Contains details, such as mapRunArn, and the start date and time of a Map Run. mapRunArn is the Amazon Resource Name (ARN) of the Map Run that was started.

" + }, + "mapRunFailedEventDetails":{ + "shape":"MapRunFailedEventDetails", + "documentation":"

Contains error and cause details about a Map Run that failed.

" + } }, "documentation":"

Contains details about the events of an execution.

" }, @@ -1283,7 +1440,11 @@ "TaskTimedOut", "WaitStateAborted", "WaitStateEntered", - "WaitStateExited" + "WaitStateExited", + "MapRunAborted", + "MapRunFailed", + "MapRunStarted", + "MapRunSucceeded" ] }, "Identity":{ @@ -1300,7 +1461,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

The provided Amazon Resource Name (ARN) is invalid.

", + "documentation":"

The provided Amazon Resource Name (ARN) is not valid.

", "exception":true }, "InvalidDefinition":{ @@ -1308,7 +1469,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

The provided Amazon States Language definition is invalid.

", + "documentation":"

The provided Amazon States Language definition is not valid.

", "exception":true }, "InvalidExecutionInput":{ @@ -1316,7 +1477,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

The provided JSON input data is invalid.

", + "documentation":"

The provided JSON input data is not valid.

", "exception":true }, "InvalidLoggingConfiguration":{ @@ -1332,7 +1493,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

The provided name is invalid.

", + "documentation":"

The provided name is not valid.

", "exception":true }, "InvalidOutput":{ @@ -1340,7 +1501,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

The provided JSON output data is invalid.

", + "documentation":"

The provided JSON output data is not valid.

", "exception":true }, "InvalidToken":{ @@ -1348,7 +1509,7 @@ "members":{ "message":{"shape":"ErrorMessage"} }, - "documentation":"

The provided token is invalid.

", + "documentation":"

The provided token is not valid.

", "exception":true }, "InvalidTracingConfiguration":{ @@ -1371,7 +1532,7 @@ "documentation":"

A more detailed explanation of the cause of the failure.

" } }, - "documentation":"

Contains details about a lambda function that failed during an execution.

" + "documentation":"

Contains details about a Lambda function that failed during an execution.

" }, "LambdaFunctionScheduleFailedEventDetails":{ "type":"structure", @@ -1385,7 +1546,7 @@ "documentation":"

A more detailed explanation of the cause of the failure.

" } }, - "documentation":"

Contains details about a failed lambda function schedule event that occurred during an execution.

" + "documentation":"

Contains details about a failed Lambda function schedule event that occurred during an execution.

" }, "LambdaFunctionScheduledEventDetails":{ "type":"structure", @@ -1393,11 +1554,11 @@ "members":{ "resource":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the scheduled lambda function.

" + "documentation":"

The Amazon Resource Name (ARN) of the scheduled Lambda function.

" }, "input":{ "shape":"SensitiveData", - "documentation":"

The JSON data input to the lambda function. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

" + "documentation":"

The JSON data input to the Lambda function. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

" }, "inputDetails":{ "shape":"HistoryEventExecutionDataDetails", @@ -1405,11 +1566,15 @@ }, "timeoutInSeconds":{ "shape":"TimeoutInSeconds", - "documentation":"

The maximum allowed duration of the lambda function.

", + "documentation":"

The maximum allowed duration of the Lambda function.

", "box":true + }, + "taskCredentials":{ + "shape":"TaskCredentials", + "documentation":"

The credentials that Step Functions uses for the task.

" } }, - "documentation":"

Contains details about a lambda function scheduled during an execution.

" + "documentation":"

Contains details about a Lambda function scheduled during an execution.

" }, "LambdaFunctionStartFailedEventDetails":{ "type":"structure", @@ -1430,14 +1595,14 @@ "members":{ "output":{ "shape":"SensitiveData", - "documentation":"

The JSON data output by the lambda function. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

" + "documentation":"

The JSON data output by the Lambda function. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.

" }, "outputDetails":{ "shape":"HistoryEventExecutionDataDetails", "documentation":"

Contains details about the output of an execution history event.

" } }, - "documentation":"

Contains details about a lambda function that successfully terminated during an execution.

" + "documentation":"

Contains details about a Lambda function that successfully terminated during an execution.

" }, "LambdaFunctionTimedOutEventDetails":{ "type":"structure", @@ -1451,7 +1616,7 @@ "documentation":"

A more detailed explanation of the cause of the timeout.

" } }, - "documentation":"

Contains details about a lambda function timeout that occurred during an execution.

" + "documentation":"

Contains details about a Lambda function timeout that occurred during an execution.

" }, "ListActivitiesInput":{ "type":"structure", @@ -1482,11 +1647,10 @@ }, "ListExecutionsInput":{ "type":"structure", - "required":["stateMachineArn"], "members":{ "stateMachineArn":{ "shape":"Arn", - "documentation":"

The Amazon Resource Name (ARN) of the state machine whose executions is listed.

" + "documentation":"

The Amazon Resource Name (ARN) of the state machine whose executions is listed.

You can specify either a mapRunArn or a stateMachineArn, but not both.

" }, "statusFilter":{ "shape":"ExecutionStatus", @@ -1499,6 +1663,10 @@ "nextToken":{ "shape":"ListExecutionsPageToken", "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + }, + "mapRunArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the Map Run that started the child workflow executions. If the mapRunArn field is specified, a list of all of the child workflow executions started by a Map Run is returned. For more information, see Examining Map Run in the Step Functions Developer Guide.

You can specify either a mapRunArn or a stateMachineArn, but not both.

" } } }, @@ -1521,6 +1689,38 @@ "max":3096, "min":1 }, + "ListMapRunsInput":{ + "type":"structure", + "required":["executionArn"], + "members":{ + "executionArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the execution for which the Map Runs must be listed.

" + }, + "maxResults":{ + "shape":"PageSize", + "documentation":"

The maximum number of results that are returned per call. You can use nextToken to obtain further pages of results. The default is 100 and the maximum allowed page size is 1000. A value of 0 uses the default.

This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.

" + }, + "nextToken":{ + "shape":"PageToken", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + } + } + }, + "ListMapRunsOutput":{ + "type":"structure", + "required":["mapRuns"], + "members":{ + "mapRuns":{ + "shape":"MapRunList", + "documentation":"

An array that lists information related to a Map Run, such as the Amazon Resource Name (ARN) of the Map Run and the ARN of the state machine that started the Map Run.

" + }, + "nextToken":{ + "shape":"PageToken", + "documentation":"

If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

" + } + } + }, "ListStateMachinesInput":{ "type":"structure", "members":{ @@ -1569,7 +1769,7 @@ "members":{ "cloudWatchLogsLogGroup":{ "shape":"CloudWatchLogsLogGroup", - "documentation":"

An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the AWS CloudFormation User Guide.

" + "documentation":"

An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the CloudFormation User Guide.

" } }, "documentation":"

" @@ -1605,6 +1805,11 @@ }, "documentation":"

The LoggingConfiguration data type is used to set CloudWatch Logs options.

" }, + "LongArn":{ + "type":"string", + "max":2000, + "min":1 + }, "MapIterationEventDetails":{ "type":"structure", "members":{ @@ -1619,6 +1824,172 @@ }, "documentation":"

Contains details about an iteration of a Map state.

" }, + "MapRunExecutionCounts":{ + "type":"structure", + "required":[ + "pending", + "running", + "succeeded", + "failed", + "timedOut", + "aborted", + "total", + "resultsWritten" + ], + "members":{ + "pending":{ + "shape":"UnsignedLong", + "documentation":"

The total number of child workflow executions that were started by a Map Run, but haven't started executing yet.

" + }, + "running":{ + "shape":"UnsignedLong", + "documentation":"

The total number of child workflow executions that were started by a Map Run and are currently in-progress.

" + }, + "succeeded":{ + "shape":"UnsignedLong", + "documentation":"

The total number of child workflow executions that were started by a Map Run and have completed successfully.

" + }, + "failed":{ + "shape":"UnsignedLong", + "documentation":"

The total number of child workflow executions that were started by a Map Run, but have failed.

" + }, + "timedOut":{ + "shape":"UnsignedLong", + "documentation":"

The total number of child workflow executions that were started by a Map Run and have timed out.

" + }, + "aborted":{ + "shape":"UnsignedLong", + "documentation":"

The total number of child workflow executions that were started by a Map Run and were running, but were either stopped by the user or by Step Functions because the Map Run failed.

" + }, + "total":{ + "shape":"UnsignedLong", + "documentation":"

The total number of child workflow executions that were started by a Map Run.

" + }, + "resultsWritten":{ + "shape":"UnsignedLong", + "documentation":"

Returns the count of child workflow executions whose results were written by ResultWriter. For more information, see ResultWriter in the Step Functions Developer Guide.

" + } + }, + "documentation":"

Contains details about all of the child workflow executions started by a Map Run.

" + }, + "MapRunFailedEventDetails":{ + "type":"structure", + "members":{ + "error":{ + "shape":"SensitiveError", + "documentation":"

The error code of the Map Run failure.

" + }, + "cause":{ + "shape":"SensitiveCause", + "documentation":"

A more detailed explanation of the cause of the failure.

" + } + }, + "documentation":"

Contains details about a Map Run failure event that occurred during a state machine execution.

" + }, + "MapRunItemCounts":{ + "type":"structure", + "required":[ + "pending", + "running", + "succeeded", + "failed", + "timedOut", + "aborted", + "total", + "resultsWritten" + ], + "members":{ + "pending":{ + "shape":"UnsignedLong", + "documentation":"

The total number of items to process in child workflow executions that haven't started running yet.

" + }, + "running":{ + "shape":"UnsignedLong", + "documentation":"

The total number of items being processed in child workflow executions that are currently in-progress.

" + }, + "succeeded":{ + "shape":"UnsignedLong", + "documentation":"

The total number of items processed in child workflow executions that have completed successfully.

" + }, + "failed":{ + "shape":"UnsignedLong", + "documentation":"

The total number of items processed in child workflow executions that have failed.

" + }, + "timedOut":{ + "shape":"UnsignedLong", + "documentation":"

The total number of items processed in child workflow executions that have timed out.

" + }, + "aborted":{ + "shape":"UnsignedLong", + "documentation":"

The total number of items processed in child workflow executions that were either stopped by the user or by Step Functions, because the Map Run failed.

" + }, + "total":{ + "shape":"UnsignedLong", + "documentation":"

The total number of items processed in all the child workflow executions started by a Map Run.

" + }, + "resultsWritten":{ + "shape":"UnsignedLong", + "documentation":"

Returns the count of items whose results were written by ResultWriter. For more information, see ResultWriter in the Step Functions Developer Guide.

" + } + }, + "documentation":"

Contains details about items that were processed in all of the child workflow executions that were started by a Map Run.

" + }, + "MapRunLabel":{"type":"string"}, + "MapRunList":{ + "type":"list", + "member":{"shape":"MapRunListItem"} + }, + "MapRunListItem":{ + "type":"structure", + "required":[ + "executionArn", + "mapRunArn", + "stateMachineArn", + "startDate" + ], + "members":{ + "executionArn":{ + "shape":"Arn", + "documentation":"

The executionArn of the execution from which the Map Run was started.

" + }, + "mapRunArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of the Map Run.

" + }, + "stateMachineArn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the executed state machine.

" + }, + "startDate":{ + "shape":"Timestamp", + "documentation":"

The date on which the Map Run started.

" + }, + "stopDate":{ + "shape":"Timestamp", + "documentation":"

The date on which the Map Run stopped.

" + } + }, + "documentation":"

Contains details about a specific Map Run.

" + }, + "MapRunStartedEventDetails":{ + "type":"structure", + "members":{ + "mapRunArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of a Map Run that was started.

" + } + }, + "documentation":"

Contains details about a Map Run that was started during a state machine execution.

" + }, + "MapRunStatus":{ + "type":"string", + "enum":[ + "RUNNING", + "SUCCEEDED", + "FAILED", + "ABORTED" + ] + }, "MapStateStartedEventDetails":{ "type":"structure", "members":{ @@ -1629,6 +2000,10 @@ }, "documentation":"

Details about a Map state that was started.

" }, + "MaxConcurrency":{ + "type":"integer", + "min":0 + }, "MissingRequiredParameter":{ "type":"structure", "members":{ @@ -1754,7 +2129,7 @@ }, "name":{ "shape":"Name", - "documentation":"

The name of the execution. This name must be unique for your AWS account, region, and state machine for 90 days. For more information, see Limits Related to State Machine Executions in the AWS Step Functions Developer Guide.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" + "documentation":"

The name of the execution. This name must be unique for your Amazon Web Services account, region, and state machine for 90 days. For more information, see Limits Related to State Machine Executions in the Step Functions Developer Guide.

A name must not contain:

  • white space

  • brackets < > { } [ ]

  • wildcard characters ? *

  • special characters \" # % \\ ^ | ~ ` $ & , ; : /

  • control characters (U+0000-001F, U+007F-009F)

To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.

" }, "input":{ "shape":"SensitiveData", @@ -1762,7 +2137,7 @@ }, "traceHeader":{ "shape":"TraceHeader", - "documentation":"

Passes the AWS X-Ray trace header. The trace header can also be passed in the request payload.

" + "documentation":"

Passes the X-Ray trace header. The trace header can also be passed in the request payload.

" } } }, @@ -1801,7 +2176,7 @@ }, "traceHeader":{ "shape":"TraceHeader", - "documentation":"

Passes the AWS X-Ray trace header. The trace header can also be passed in the request payload.

" + "documentation":"

Passes the X-Ray trace header. The trace header can also be passed in the request payload.

" } } }, @@ -1858,7 +2233,7 @@ "outputDetails":{"shape":"CloudWatchEventsExecutionDataDetails"}, "traceHeader":{ "shape":"TraceHeader", - "documentation":"

The AWS X-Ray trace header that was passed to the execution.

" + "documentation":"

The X-Ray trace header that was passed to the execution.

" }, "billingDetails":{ "shape":"BillingDetails", @@ -2038,7 +2413,7 @@ "documentation":"

The value of a tag.

" } }, - "documentation":"

Tags are key-value pairs that can be associated with Step Functions state machines and activities.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the AWS Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

" + "documentation":"

Tags are key-value pairs that can be associated with Step Functions state machines and activities.

An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide, and Controlling Access Using IAM Tags.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @.

" }, "TagKey":{ "type":"string", @@ -2080,6 +2455,16 @@ "max":256, "min":0 }, + "TaskCredentials":{ + "type":"structure", + "members":{ + "roleArn":{ + "shape":"LongArn", + "documentation":"

The ARN of an IAM role that Step Functions assumes for the task. The role can allow cross-account access to resources.

" + } + }, + "documentation":"

Contains details about the credentials that Step Functions uses for a task.

" + }, "TaskDoesNotExist":{ "type":"structure", "members":{ @@ -2096,11 +2481,11 @@ "members":{ "resourceType":{ "shape":"Name", - "documentation":"

The action of the resource called by a task state.

" + "documentation":"

The service name of the resource in a task state.

" }, "resource":{ "shape":"Name", - "documentation":"

The service name of the resource in a task state.

" + "documentation":"

The action of the resource called by a task state.

" }, "error":{ "shape":"SensitiveError", @@ -2124,11 +2509,11 @@ "members":{ "resourceType":{ "shape":"Name", - "documentation":"

The action of the resource called by a task state.

" + "documentation":"

The service name of the resource in a task state.

" }, "resource":{ "shape":"Name", - "documentation":"

The service name of the resource in a task state.

" + "documentation":"

The action of the resource called by a task state.

" }, "region":{ "shape":"Name", @@ -2147,6 +2532,10 @@ "shape":"TimeoutInSeconds", "documentation":"

The maximum allowed duration between two heartbeats for the task.

", "box":true + }, + "taskCredentials":{ + "shape":"TaskCredentials", + "documentation":"

The credentials that Step Functions uses for the task.

" } }, "documentation":"

Contains details about a task scheduled during an execution.

" @@ -2160,11 +2549,11 @@ "members":{ "resourceType":{ "shape":"Name", - "documentation":"

The action of the resource called by a task state.

" + "documentation":"

The service name of the resource in a task state.

" }, "resource":{ "shape":"Name", - "documentation":"

The service name of the resource in a task state.

" + "documentation":"

The action of the resource called by a task state.

" }, "error":{ "shape":"SensitiveError", @@ -2186,11 +2575,11 @@ "members":{ "resourceType":{ "shape":"Name", - "documentation":"

The action of the resource called by a task state.

" + "documentation":"

The service name of the resource in a task state.

" }, "resource":{ "shape":"Name", - "documentation":"

The service name of the resource in a task state.

" + "documentation":"

The action of the resource called by a task state.

" } }, "documentation":"

Contains details about the start of a task during an execution.

" @@ -2204,11 +2593,11 @@ "members":{ "resourceType":{ "shape":"Name", - "documentation":"

The action of the resource called by a task state.

" + "documentation":"

The service name of the resource in a task state.

" }, "resource":{ "shape":"Name", - "documentation":"

The service name of the resource in a task state.

" + "documentation":"

The action of the resource called by a task state.

" }, "error":{ "shape":"SensitiveError", @@ -2230,11 +2619,11 @@ "members":{ "resourceType":{ "shape":"Name", - "documentation":"

The action of the resource called by a task state.

" + "documentation":"

The service name of the resource in a task state.

" }, "resource":{ "shape":"Name", - "documentation":"

The service name of the resource in a task state.

" + "documentation":"

The action of the resource called by a task state.

" }, "output":{ "shape":"SensitiveData", @@ -2256,11 +2645,11 @@ "members":{ "resourceType":{ "shape":"Name", - "documentation":"

The action of the resource called by a task state.

" + "documentation":"

The service name of the resource in a task state.

" }, "resource":{ "shape":"Name", - "documentation":"

The service name of the resource in a task state.

" + "documentation":"

The action of the resource called by a task state.

" }, "output":{ "shape":"SensitiveData", @@ -2289,11 +2678,11 @@ "members":{ "resourceType":{ "shape":"Name", - "documentation":"

The action of the resource called by a task state.

" + "documentation":"

The service name of the resource in a task state.

" }, "resource":{ "shape":"Name", - "documentation":"

The service name of the resource in a task state.

" + "documentation":"

The action of the resource called by a task state.

" }, "error":{ "shape":"SensitiveError", @@ -2313,13 +2702,22 @@ }, "TimeoutInSeconds":{"type":"long"}, "Timestamp":{"type":"timestamp"}, + "ToleratedFailureCount":{ + "type":"long", + "min":0 + }, + "ToleratedFailurePercentage":{ + "type":"float", + "max":100, + "min":0 + }, "TooManyTags":{ "type":"structure", "members":{ "message":{"shape":"ErrorMessage"}, "resourceName":{"shape":"Arn"} }, - "documentation":"

You've exceeded the number of tags allowed for a resource. See the Limits Topic in the AWS Step Functions Developer Guide.

", + "documentation":"

You've exceeded the number of tags allowed for a resource. See the Limits Topic in the Step Functions Developer Guide.

", "exception":true }, "TraceHeader":{ @@ -2333,15 +2731,19 @@ "members":{ "enabled":{ "shape":"Enabled", - "documentation":"

When set to true, AWS X-Ray tracing is enabled.

" + "documentation":"

When set to true, X-Ray tracing is enabled.

" } }, - "documentation":"

Selects whether or not the state machine's AWS X-Ray tracing is enabled. Default is false

" + "documentation":"

Selects whether or not the state machine's X-Ray tracing is enabled. Default is false

" }, "UnsignedInteger":{ "type":"integer", "min":0 }, + "UnsignedLong":{ + "type":"long", + "min":0 + }, "UntagResourceInput":{ "type":"structure", "required":[ @@ -2364,6 +2766,36 @@ "members":{ } }, + "UpdateMapRunInput":{ + "type":"structure", + "required":["mapRunArn"], + "members":{ + "mapRunArn":{ + "shape":"LongArn", + "documentation":"

The Amazon Resource Name (ARN) of a Map Run.

" + }, + "maxConcurrency":{ + "shape":"MaxConcurrency", + "documentation":"

The maximum number of child workflow executions that can be specified to run in parallel for the Map Run at the same time.

", + "box":true + }, + "toleratedFailurePercentage":{ + "shape":"ToleratedFailurePercentage", + "documentation":"

The maximum percentage of failed items before the Map Run fails.

", + "box":true + }, + "toleratedFailureCount":{ + "shape":"ToleratedFailureCount", + "documentation":"

The maximum number of failed items before the Map Run fails.

", + "box":true + } + } + }, + "UpdateMapRunOutput":{ + "type":"structure", + "members":{ + } + }, "UpdateStateMachineInput":{ "type":"structure", "required":["stateMachineArn"], @@ -2386,7 +2818,7 @@ }, "tracingConfiguration":{ "shape":"TracingConfiguration", - "documentation":"

Selects whether AWS X-Ray tracing is enabled.

" + "documentation":"

Selects whether X-Ray tracing is enabled.

" } } }, @@ -2400,8 +2832,28 @@ } } }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"ErrorMessage"}, + "reason":{ + "shape":"ValidationExceptionReason", + "documentation":"

The input does not satisfy the constraints specified by an Amazon Web Services service.

" + } + }, + "documentation":"

The input does not satisfy the constraints specified by an Amazon Web Services service.

", + "exception":true + }, + "ValidationExceptionReason":{ + "type":"string", + "enum":[ + "API_DOES_NOT_SUPPORT_LABELED_ARNS", + "MISSING_REQUIRED_PARAMETER", + "CANNOT_UPDATE_COMPLETED_MAP_RUN" + ] + }, "includedDetails":{"type":"boolean"}, "truncated":{"type":"boolean"} }, - "documentation":"AWS Step Functions

AWS Step Functions is a service that lets you coordinate the components of distributed applications and microservices using visual workflows.

You can use Step Functions to build applications from individual components, each of which performs a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a console that helps visualize the components of your application as a series of steps. Step Functions automatically triggers and tracks each step, and retries steps when there are errors, so your application executes predictably and in the right order every time. Step Functions logs the state of each step, so you can quickly diagnose and debug any issues.

Step Functions manages operations and underlying infrastructure to ensure your application is available at any scale. You can run tasks on AWS, your own servers, or any system that has access to AWS. You can access and use Step Functions using the console, the AWS SDKs, or an HTTP API. For more information about Step Functions, see the AWS Step Functions Developer Guide .

" + "documentation":"Step Functions

Step Functions is a service that lets you coordinate the components of distributed applications and microservices using visual workflows.

You can use Step Functions to build applications from individual components, each of which performs a discrete function, or task, allowing you to scale and change applications quickly. Step Functions provides a console that helps visualize the components of your application as a series of steps. Step Functions automatically triggers and tracks each step, and retries steps when there are errors, so your application executes predictably and in the right order every time. Step Functions logs the state of each step, so you can quickly diagnose and debug any issues.

Step Functions manages operations and underlying infrastructure to ensure your application is available at any scale. You can run tasks on Amazon Web Services, your own servers, or any system that has access to Amazon Web Services. You can access and use Step Functions using the console, the Amazon Web Services SDKs, or an HTTP API. For more information about Step Functions, see the Step Functions Developer Guide .

" } diff --git a/botocore/data/storagegateway/2013-06-30/endpoint-rule-set-1.json b/botocore/data/storagegateway/2013-06-30/endpoint-rule-set-1.json new file mode 100644 index 00000000..b7436624 --- /dev/null +++ b/botocore/data/storagegateway/2013-06-30/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://storagegateway-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://storagegateway-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://storagegateway.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://storagegateway.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sts/2011-06-15/endpoint-rule-set-1.json b/botocore/data/sts/2011-06-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..2f93d97a --- /dev/null +++ b/botocore/data/sts/2011-06-15/endpoint-rule-set-1.json @@ -0,0 +1,876 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "UseGlobalEndpoint": { + "builtIn": "AWS::STS::UseGlobalEndpoint", + "required": true, + "default": false, + "documentation": "Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.", + "type": "Boolean" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ap-northeast-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ap-south-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ap-southeast-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ap-southeast-2" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "ca-central-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "eu-central-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "eu-north-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "eu-west-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "eu-west-2" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "eu-west-3" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "sa-east-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-2" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-west-1" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-west-2" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://sts.{Region}.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "{Region}" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://sts.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://sts-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://sts.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "sts" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://sts.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/sts/2011-06-15/examples-1.json b/botocore/data/sts/2011-06-15/examples-1.json index 84442a10..7396aef5 100644 --- a/botocore/data/sts/2011-06-15/examples-1.json +++ b/botocore/data/sts/2011-06-15/examples-1.json @@ -4,11 +4,28 @@ "AssumeRole": [ { "input": { - "DurationSeconds": 3600, "ExternalId": "123ABC", - "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:*\",\"Resource\":\"*\"}]}", + "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:ListAllMyBuckets\",\"Resource\":\"*\"}]}", "RoleArn": "arn:aws:iam::123456789012:role/demo", - "RoleSessionName": "Bob" + "RoleSessionName": "testAssumeRoleSession", + "Tags": [ + { + "Key": "Project", + "Value": "Unicorn" + }, + { + "Key": "Team", + "Value": "Automation" + }, + { + "Key": "Cost-Center", + "Value": "12345" + } + ], + "TransitiveTagKeys": [ + "Project", + "Cost-Center" + ] }, "output": { "AssumedRoleUser": { @@ -21,7 +38,7 @@ "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", "SessionToken": "AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==" }, - "PackedPolicySize": 6 + "PackedPolicySize": 8 }, "comments": { "input": { @@ -34,10 +51,48 @@ "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", @@ -149,8 +204,18 @@ { "input": { "DurationSeconds": 3600, - "Name": "Bob", - "Policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:*\",\"Resource\":\"*\"}]}" + "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": { @@ -163,7 +228,7 @@ "Arn": "arn:aws:sts::123456789012:federated-user/Bob", "FederatedUserId": "123456789012:Bob" }, - "PackedPolicySize": 6 + "PackedPolicySize": 8 }, "comments": { "input": { diff --git a/botocore/data/sts/2011-06-15/service-2.json b/botocore/data/sts/2011-06-15/service-2.json index bbf5a51e..ae432fba 100644 --- a/botocore/data/sts/2011-06-15/service-2.json +++ b/botocore/data/sts/2011-06-15/service-2.json @@ -30,7 +30,7 @@ {"shape":"RegionDisabledException"}, {"shape":"ExpiredTokenException"} ], - "documentation":"

Returns a set of temporary security credentials that you can use to access Amazon Web Services resources that you might not normally have access to. These temporary credentials consist of an access key ID, a secret access key, and a security token. Typically, you use AssumeRole within your account or for cross-account access. For a comparison of AssumeRole with other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the Amazon Web Services STS API operations in the IAM User Guide.

Permissions

The temporary security credentials created by AssumeRole can be used to make API calls to any Amazon Web Services service with the following exception: You cannot call the Amazon Web Services STS GetFederationToken or GetSessionToken API operations.

(Optional) You can pass inline or managed session policies to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

When you create a role, you create two policies: A role trust policy that specifies who can assume the role and a permissions policy that specifies what can be done with the role. You specify the trusted principal who is allowed to assume the role in the role trust policy.

To assume a role from a different account, your Amazon Web Services account must be trusted by the role. The trust relationship is defined in the role's trust policy when the role is created. That trust policy states which accounts are allowed to delegate that access to users in the account.

A user who wants to access a role in a different account must also have permissions that are delegated from the user account administrator. The administrator must attach a policy that allows the user to call AssumeRole for the ARN of the role in the other account.

To allow a user to assume a role in the same account, you can do either of the following:

  • Attach a policy to the user that allows the user to call AssumeRole (as long as the role's trust policy trusts the account).

  • Add the user as a principal directly in the role's trust policy.

You can do either because the role’s trust policy acts as an IAM resource-based policy. When a resource-based policy grants access to a principal in the same account, no additional identity-based policy is required. For more information about trust policies and resource-based policies, see IAM Policies in the IAM User Guide.

Tags

(Optional) You can pass tag key-value pairs to your session. These tags are called session tags. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see Tutorial: Using Tags for Attribute-Based Access Control in the IAM User Guide.

You can set the session tags as transitive. Transitive tags persist during role chaining. For more information, see Chaining Roles with Session Tags in the IAM User Guide.

Using MFA with AssumeRole

(Optional) You can include multi-factor authentication (MFA) information when you call AssumeRole. This is useful for cross-account scenarios to ensure that the user that assumes the role has been authenticated with an Amazon Web Services MFA device. In that scenario, the trust policy of the role being assumed includes a condition that tests for MFA authentication. If the caller does not include valid MFA information, the request to assume the role is denied. The condition in a trust policy that tests for MFA authentication might look like the following example.

\"Condition\": {\"Bool\": {\"aws:MultiFactorAuthPresent\": true}}

For more information, see Configuring MFA-Protected API Access in the IAM User Guide guide.

To use MFA with AssumeRole, you pass values for the SerialNumber and TokenCode parameters. The SerialNumber value identifies the user's hardware or virtual MFA device. The TokenCode is the time-based one-time password (TOTP) that the MFA device produces.

" + "documentation":"

Returns a set of temporary security credentials that you can use to access Amazon Web Services resources that you might not normally have access to. These temporary credentials consist of an access key ID, a secret access key, and a security token. Typically, you use AssumeRole within your account or for cross-account access. For a comparison of AssumeRole with other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the Amazon Web Services STS API operations in the IAM User Guide.

Permissions

The temporary security credentials created by AssumeRole can be used to make API calls to any Amazon Web Services service with the following exception: You cannot call the Amazon Web Services STS GetFederationToken or GetSessionToken API operations.

(Optional) You can pass inline or managed session policies to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

When you create a role, you create two policies: A role trust policy that specifies who can assume the role and a permissions policy that specifies what can be done with the role. You specify the trusted principal who is allowed to assume the role in the role trust policy.

To assume a role from a different account, your Amazon Web Services account must be trusted by the role. The trust relationship is defined in the role's trust policy when the role is created. That trust policy states which accounts are allowed to delegate that access to users in the account.

A user who wants to access a role in a different account must also have permissions that are delegated from the user account administrator. The administrator must attach a policy that allows the user to call AssumeRole for the ARN of the role in the other account.

To allow a user to assume a role in the same account, you can do either of the following:

  • Attach a policy to the user that allows the user to call AssumeRole (as long as the role's trust policy trusts the account).

  • Add the user as a principal directly in the role's trust policy.

You can do either because the role’s trust policy acts as an IAM resource-based policy. When a resource-based policy grants access to a principal in the same account, no additional identity-based policy is required. For more information about trust policies and resource-based policies, see IAM Policies in the IAM User Guide.

Tags

(Optional) You can pass tag key-value pairs to your session. These tags are called session tags. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see Tutorial: Using Tags for Attribute-Based Access Control in the IAM User Guide.

You can set the session tags as transitive. Transitive tags persist during role chaining. For more information, see Chaining Roles with Session Tags in the IAM User Guide.

Using MFA with AssumeRole

(Optional) You can include multi-factor authentication (MFA) information when you call AssumeRole. This is useful for cross-account scenarios to ensure that the user that assumes the role has been authenticated with an Amazon Web Services MFA device. In that scenario, the trust policy of the role being assumed includes a condition that tests for MFA authentication. If the caller does not include valid MFA information, the request to assume the role is denied. The condition in a trust policy that tests for MFA authentication might look like the following example.

\"Condition\": {\"Bool\": {\"aws:MultiFactorAuthPresent\": true}}

For more information, see Configuring MFA-Protected API Access in the IAM User Guide guide.

To use MFA with AssumeRole, you pass values for the SerialNumber and TokenCode parameters. The SerialNumber value identifies the user's hardware or virtual MFA device. The TokenCode is the time-based one-time password (TOTP) that the MFA device produces.

" }, "AssumeRoleWithSAML":{ "name":"AssumeRoleWithSAML", @@ -51,7 +51,7 @@ {"shape":"ExpiredTokenException"}, {"shape":"RegionDisabledException"} ], - "documentation":"

Returns a set of temporary security credentials for users who have been authenticated via a SAML authentication response. This operation provides a mechanism for tying an enterprise identity store or directory to role-based Amazon Web Services access without user-specific credentials or configuration. For a comparison of AssumeRoleWithSAML with the other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the Amazon Web Services STS API operations in the IAM User Guide.

The temporary security credentials returned by this operation consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to Amazon Web Services services.

Session Duration

By default, the temporary security credentials created by AssumeRoleWithSAML last for one hour. However, you can use the optional DurationSeconds parameter to specify the duration of your session. Your role session lasts for the duration that you specify, or until the time specified in the SAML authentication response's SessionNotOnOrAfter value, whichever is shorter. You can provide a DurationSeconds value from 900 seconds (15 minutes) up to the maximum session duration setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how to view the maximum value for your role, see View the Maximum Session Duration Setting for a Role in the IAM User Guide. The maximum session duration limit applies when you use the AssumeRole* API operations or the assume-role* CLI commands. However the limit does not apply when you use those operations to create a console URL. For more information, see Using IAM Roles in the IAM User Guide.

Role chaining limits your CLI or Amazon Web Services API role session to a maximum of one hour. When you use the AssumeRole API operation to assume a role, you can specify the duration of your role session with the DurationSeconds parameter. You can specify a parameter value of up to 43200 seconds (12 hours), depending on the maximum session duration setting for your role. However, if you assume a role using role chaining and provide a DurationSeconds parameter value greater than one hour, the operation fails.

Permissions

The temporary security credentials created by AssumeRoleWithSAML can be used to make API calls to any Amazon Web Services service with the following exception: you cannot call the STS GetFederationToken or GetSessionToken API operations.

(Optional) You can pass inline or managed session policies to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

Calling AssumeRoleWithSAML does not require the use of Amazon Web Services security credentials. The identity of the caller is validated by using keys in the metadata document that is uploaded for the SAML provider entity for your identity provider.

Calling AssumeRoleWithSAML can result in an entry in your CloudTrail logs. The entry includes the value in the NameID element of the SAML assertion. We recommend that you use a NameIDType that is not associated with any personally identifiable information (PII). For example, you could instead use the persistent identifier (urn:oasis:names:tc:SAML:2.0:nameid-format:persistent).

Tags

(Optional) You can configure your IdP to pass attributes into your SAML assertion as session tags. Each session tag consists of a key name and an associated value. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

You can pass a session tag with the same key as a tag that is attached to the role. When you do, session tags override the role's tags with the same key.

An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see Tutorial: Using Tags for Attribute-Based Access Control in the IAM User Guide.

You can set the session tags as transitive. Transitive tags persist during role chaining. For more information, see Chaining Roles with Session Tags in the IAM User Guide.

SAML Configuration

Before your application can call AssumeRoleWithSAML, you must configure your SAML identity provider (IdP) to issue the claims required by Amazon Web Services. Additionally, you must use Identity and Access Management (IAM) to create a SAML provider entity in your Amazon Web Services account that represents your identity provider. You must also create an IAM role that specifies this SAML provider in its trust policy.

For more information, see the following resources:

" + "documentation":"

Returns a set of temporary security credentials for users who have been authenticated via a SAML authentication response. This operation provides a mechanism for tying an enterprise identity store or directory to role-based Amazon Web Services access without user-specific credentials or configuration. For a comparison of AssumeRoleWithSAML with the other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the Amazon Web Services STS API operations in the IAM User Guide.

The temporary security credentials returned by this operation consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to Amazon Web Services services.

Session Duration

By default, the temporary security credentials created by AssumeRoleWithSAML last for one hour. However, you can use the optional DurationSeconds parameter to specify the duration of your session. Your role session lasts for the duration that you specify, or until the time specified in the SAML authentication response's SessionNotOnOrAfter value, whichever is shorter. You can provide a DurationSeconds value from 900 seconds (15 minutes) up to the maximum session duration setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how to view the maximum value for your role, see View the Maximum Session Duration Setting for a Role in the IAM User Guide. The maximum session duration limit applies when you use the AssumeRole* API operations or the assume-role* CLI commands. However the limit does not apply when you use those operations to create a console URL. For more information, see Using IAM Roles in the IAM User Guide.

Role chaining limits your CLI or Amazon Web Services API role session to a maximum of one hour. When you use the AssumeRole API operation to assume a role, you can specify the duration of your role session with the DurationSeconds parameter. You can specify a parameter value of up to 43200 seconds (12 hours), depending on the maximum session duration setting for your role. However, if you assume a role using role chaining and provide a DurationSeconds parameter value greater than one hour, the operation fails.

Permissions

The temporary security credentials created by AssumeRoleWithSAML can be used to make API calls to any Amazon Web Services service with the following exception: you cannot call the STS GetFederationToken or GetSessionToken API operations.

(Optional) You can pass inline or managed session policies to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

Calling AssumeRoleWithSAML does not require the use of Amazon Web Services security credentials. The identity of the caller is validated by using keys in the metadata document that is uploaded for the SAML provider entity for your identity provider.

Calling AssumeRoleWithSAML can result in an entry in your CloudTrail logs. The entry includes the value in the NameID element of the SAML assertion. We recommend that you use a NameIDType that is not associated with any personally identifiable information (PII). For example, you could instead use the persistent identifier (urn:oasis:names:tc:SAML:2.0:nameid-format:persistent).

Tags

(Optional) You can configure your IdP to pass attributes into your SAML assertion as session tags. Each session tag consists of a key name and an associated value. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

You can pass a session tag with the same key as a tag that is attached to the role. When you do, session tags override the role's tags with the same key.

An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see Tutorial: Using Tags for Attribute-Based Access Control in the IAM User Guide.

You can set the session tags as transitive. Transitive tags persist during role chaining. For more information, see Chaining Roles with Session Tags in the IAM User Guide.

SAML Configuration

Before your application can call AssumeRoleWithSAML, you must configure your SAML identity provider (IdP) to issue the claims required by Amazon Web Services. Additionally, you must use Identity and Access Management (IAM) to create a SAML provider entity in your Amazon Web Services account that represents your identity provider. You must also create an IAM role that specifies this SAML provider in its trust policy.

For more information, see the following resources:

" }, "AssumeRoleWithWebIdentity":{ "name":"AssumeRoleWithWebIdentity", @@ -73,7 +73,7 @@ {"shape":"ExpiredTokenException"}, {"shape":"RegionDisabledException"} ], - "documentation":"

Returns a set of temporary security credentials for users who have been authenticated in a mobile or web application with a web identity provider. Example providers include the OAuth 2.0 providers Login with Amazon and Facebook, or any OpenID Connect-compatible identity provider such as Google or Amazon Cognito federated identities.

For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the Amazon Web Services SDK for iOS Developer Guide and the Amazon Web Services SDK for Android Developer Guide to uniquely identify a user. You can also supply the user with a consistent identity throughout the lifetime of an application.

To learn more about Amazon Cognito, see Amazon Cognito Overview in Amazon Web Services SDK for Android Developer Guide and Amazon Cognito Overview in the Amazon Web Services SDK for iOS Developer Guide.

Calling AssumeRoleWithWebIdentity does not require the use of Amazon Web Services security credentials. Therefore, you can distribute an application (for example, on mobile devices) that requests temporary security credentials without including long-term Amazon Web Services credentials in the application. You also don't need to deploy server-based proxy services that use long-term Amazon Web Services credentials. Instead, the identity of the caller is validated by using a token from the web identity provider. For a comparison of AssumeRoleWithWebIdentity with the other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the Amazon Web Services STS API operations in the IAM User Guide.

The temporary security credentials returned by this API consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to Amazon Web Services service API operations.

Session Duration

By default, the temporary security credentials created by AssumeRoleWithWebIdentity last for one hour. However, you can use the optional DurationSeconds parameter to specify the duration of your session. You can provide a value from 900 seconds (15 minutes) up to the maximum session duration setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how to view the maximum value for your role, see View the Maximum Session Duration Setting for a Role in the IAM User Guide. The maximum session duration limit applies when you use the AssumeRole* API operations or the assume-role* CLI commands. However the limit does not apply when you use those operations to create a console URL. For more information, see Using IAM Roles in the IAM User Guide.

Permissions

The temporary security credentials created by AssumeRoleWithWebIdentity can be used to make API calls to any Amazon Web Services service with the following exception: you cannot call the STS GetFederationToken or GetSessionToken API operations.

(Optional) You can pass inline or managed session policies to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

Tags

(Optional) You can configure your IdP to pass attributes into your web identity token as session tags. Each session tag consists of a key name and an associated value. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

You can pass a session tag with the same key as a tag that is attached to the role. When you do, the session tag overrides the role tag with the same key.

An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see Tutorial: Using Tags for Attribute-Based Access Control in the IAM User Guide.

You can set the session tags as transitive. Transitive tags persist during role chaining. For more information, see Chaining Roles with Session Tags in the IAM User Guide.

Identities

Before your application can call AssumeRoleWithWebIdentity, you must have an identity token from a supported identity provider and create a role that the application can assume. The role that your application assumes must trust the identity provider that is associated with the identity token. In other words, the identity provider must be specified in the role's trust policy.

Calling AssumeRoleWithWebIdentity can result in an entry in your CloudTrail logs. The entry includes the Subject of the provided web identity token. We recommend that you avoid using any personally identifiable information (PII) in this field. For example, you could instead use a GUID or a pairwise identifier, as suggested in the OIDC specification.

For more information about how to use web identity federation and the AssumeRoleWithWebIdentity API, see the following resources:

" + "documentation":"

Returns a set of temporary security credentials for users who have been authenticated in a mobile or web application with a web identity provider. Example providers include the OAuth 2.0 providers Login with Amazon and Facebook, or any OpenID Connect-compatible identity provider such as Google or Amazon Cognito federated identities.

For mobile applications, we recommend that you use Amazon Cognito. You can use Amazon Cognito with the Amazon Web Services SDK for iOS Developer Guide and the Amazon Web Services SDK for Android Developer Guide to uniquely identify a user. You can also supply the user with a consistent identity throughout the lifetime of an application.

To learn more about Amazon Cognito, see Amazon Cognito Overview in Amazon Web Services SDK for Android Developer Guide and Amazon Cognito Overview in the Amazon Web Services SDK for iOS Developer Guide.

Calling AssumeRoleWithWebIdentity does not require the use of Amazon Web Services security credentials. Therefore, you can distribute an application (for example, on mobile devices) that requests temporary security credentials without including long-term Amazon Web Services credentials in the application. You also don't need to deploy server-based proxy services that use long-term Amazon Web Services credentials. Instead, the identity of the caller is validated by using a token from the web identity provider. For a comparison of AssumeRoleWithWebIdentity with the other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the Amazon Web Services STS API operations in the IAM User Guide.

The temporary security credentials returned by this API consist of an access key ID, a secret access key, and a security token. Applications can use these temporary security credentials to sign calls to Amazon Web Services service API operations.

Session Duration

By default, the temporary security credentials created by AssumeRoleWithWebIdentity last for one hour. However, you can use the optional DurationSeconds parameter to specify the duration of your session. You can provide a value from 900 seconds (15 minutes) up to the maximum session duration setting for the role. This setting can have a value from 1 hour to 12 hours. To learn how to view the maximum value for your role, see View the Maximum Session Duration Setting for a Role in the IAM User Guide. The maximum session duration limit applies when you use the AssumeRole* API operations or the assume-role* CLI commands. However the limit does not apply when you use those operations to create a console URL. For more information, see Using IAM Roles in the IAM User Guide.

Permissions

The temporary security credentials created by AssumeRoleWithWebIdentity can be used to make API calls to any Amazon Web Services service with the following exception: you cannot call the STS GetFederationToken or GetSessionToken API operations.

(Optional) You can pass inline or managed session policies to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

Tags

(Optional) You can configure your IdP to pass attributes into your web identity token as session tags. Each session tag consists of a key name and an associated value. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

You can pass a session tag with the same key as a tag that is attached to the role. When you do, the session tag overrides the role tag with the same key.

An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see Tutorial: Using Tags for Attribute-Based Access Control in the IAM User Guide.

You can set the session tags as transitive. Transitive tags persist during role chaining. For more information, see Chaining Roles with Session Tags in the IAM User Guide.

Identities

Before your application can call AssumeRoleWithWebIdentity, you must have an identity token from a supported identity provider and create a role that the application can assume. The role that your application assumes must trust the identity provider that is associated with the identity token. In other words, the identity provider must be specified in the role's trust policy.

Calling AssumeRoleWithWebIdentity can result in an entry in your CloudTrail logs. The entry includes the Subject of the provided web identity token. We recommend that you avoid using any personally identifiable information (PII) in this field. For example, you could instead use a GUID or a pairwise identifier, as suggested in the OIDC specification.

For more information about how to use web identity federation and the AssumeRoleWithWebIdentity API, see the following resources:

" }, "DecodeAuthorizationMessage":{ "name":"DecodeAuthorizationMessage", @@ -133,7 +133,7 @@ {"shape":"PackedPolicyTooLargeException"}, {"shape":"RegionDisabledException"} ], - "documentation":"

Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) for a federated user. A typical use is in a proxy application that gets temporary security credentials on behalf of distributed applications inside a corporate network. You must call the GetFederationToken operation using the long-term security credentials of an IAM user. As a result, this call is appropriate in contexts where those credentials can be safely stored, usually in a server-based application. For a comparison of GetFederationToken with the other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the Amazon Web Services STS API operations in the IAM User Guide.

You can create a mobile-based or browser-based app that can authenticate users using a web identity provider like Login with Amazon, Facebook, Google, or an OpenID Connect-compatible identity provider. In this case, we recommend that you use Amazon Cognito or AssumeRoleWithWebIdentity. For more information, see Federation Through a Web-based Identity Provider in the IAM User Guide.

You can also call GetFederationToken using the security credentials of an Amazon Web Services account root user, but we do not recommend it. Instead, we recommend that you create an IAM user for the purpose of the proxy application. Then attach a policy to the IAM user that limits federated users to only the actions and resources that they need to access. For more information, see IAM Best Practices in the IAM User Guide.

Session duration

The temporary credentials are valid for the specified duration, from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours). The default session duration is 43,200 seconds (12 hours). Temporary credentials obtained by using the Amazon Web Services account root user credentials have a maximum duration of 3,600 seconds (1 hour).

Permissions

You can use the temporary credentials created by GetFederationToken in any Amazon Web Services service except the following:

  • You cannot call any IAM operations using the CLI or the Amazon Web Services API.

  • You cannot call any STS operations except GetCallerIdentity.

You must pass an inline or managed session policy to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters.

Though the session policy parameters are optional, if you do not pass a policy, then the resulting federated user session has no permissions. When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see Session Policies in the IAM User Guide. For information about using GetFederationToken to create temporary security credentials, see GetFederationToken—Federation Through a Custom Identity Broker.

You can use the credentials to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the Principal element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions granted by the session policies.

Tags

(Optional) You can pass tag key-value pairs to your session. These are called session tags. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

You can create a mobile-based or browser-based app that can authenticate users using a web identity provider like Login with Amazon, Facebook, Google, or an OpenID Connect-compatible identity provider. In this case, we recommend that you use Amazon Cognito or AssumeRoleWithWebIdentity. For more information, see Federation Through a Web-based Identity Provider in the IAM User Guide.

An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see Tutorial: Using Tags for Attribute-Based Access Control in the IAM User Guide.

Tag key–value pairs are not case sensitive, but case is preserved. This means that you cannot have separate Department and department tag keys. Assume that the user that you are federating has the Department=Marketing tag and you pass the department=engineering session tag. Department and department are not saved as separate tags, and the session tag passed in the request takes precedence over the user tag.

" + "documentation":"

Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) for a federated user. A typical use is in a proxy application that gets temporary security credentials on behalf of distributed applications inside a corporate network. You must call the GetFederationToken operation using the long-term security credentials of an IAM user. As a result, this call is appropriate in contexts where those credentials can be safely stored, usually in a server-based application. For a comparison of GetFederationToken with the other API operations that produce temporary credentials, see Requesting Temporary Security Credentials and Comparing the Amazon Web Services STS API operations in the IAM User Guide.

You can create a mobile-based or browser-based app that can authenticate users using a web identity provider like Login with Amazon, Facebook, Google, or an OpenID Connect-compatible identity provider. In this case, we recommend that you use Amazon Cognito or AssumeRoleWithWebIdentity. For more information, see Federation Through a Web-based Identity Provider in the IAM User Guide.

You can also call GetFederationToken using the security credentials of an Amazon Web Services account root user, but we do not recommend it. Instead, we recommend that you create an IAM user for the purpose of the proxy application. Then attach a policy to the IAM user that limits federated users to only the actions and resources that they need to access. For more information, see IAM Best Practices in the IAM User Guide.

Session duration

The temporary credentials are valid for the specified duration, from 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36 hours). The default session duration is 43,200 seconds (12 hours). Temporary credentials obtained by using the Amazon Web Services account root user credentials have a maximum duration of 3,600 seconds (1 hour).

Permissions

You can use the temporary credentials created by GetFederationToken in any Amazon Web Services service except the following:

  • You cannot call any IAM operations using the CLI or the Amazon Web Services API.

  • You cannot call any STS operations except GetCallerIdentity.

You must pass an inline or managed session policy to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters.

Though the session policy parameters are optional, if you do not pass a policy, then the resulting federated user session has no permissions. When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see Session Policies in the IAM User Guide. For information about using GetFederationToken to create temporary security credentials, see GetFederationToken—Federation Through a Custom Identity Broker.

You can use the credentials to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the Principal element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions granted by the session policies.

Tags

(Optional) You can pass tag key-value pairs to your session. These are called session tags. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

You can create a mobile-based or browser-based app that can authenticate users using a web identity provider like Login with Amazon, Facebook, Google, or an OpenID Connect-compatible identity provider. In this case, we recommend that you use Amazon Cognito or AssumeRoleWithWebIdentity. For more information, see Federation Through a Web-based Identity Provider in the IAM User Guide.

An administrator must grant you the permissions necessary to pass session tags. The administrator can also create granular permissions to allow you to pass only specific session tags. For more information, see Tutorial: Using Tags for Attribute-Based Access Control in the IAM User Guide.

Tag key–value pairs are not case sensitive, but case is preserved. This means that you cannot have separate Department and department tag keys. Assume that the user that you are federating has the Department=Marketing tag and you pass the department=engineering session tag. Department and department are not saved as separate tags, and the session tag passed in the request takes precedence over the user tag.

" }, "GetSessionToken":{ "name":"GetSessionToken", @@ -170,11 +170,11 @@ }, "PolicyArns":{ "shape":"policyDescriptorListType", - "documentation":"

The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role.

This parameter is optional. You can provide up to 10 managed policy ARNs. However, the plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

" + "documentation":"

The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role.

This parameter is optional. You can provide up to 10 managed policy ARNs. However, the plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

" }, "Policy":{ "shape":"sessionPolicyDocumentType", - "documentation":"

An IAM policy in JSON format that you want to use as an inline session policy.

This parameter is optional. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\\u0020 through \\u00FF). It can also include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D) characters.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" + "documentation":"

An IAM policy in JSON format that you want to use as an inline session policy.

This parameter is optional. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\\u0020 through \\u00FF). It can also include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D) characters.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" }, "DurationSeconds":{ "shape":"roleDurationSecondsType", @@ -182,7 +182,7 @@ }, "Tags":{ "shape":"tagListType", - "documentation":"

A list of session tags that you want to pass. Each session tag consists of a key name and an associated value. For more information about session tags, see Tagging Amazon Web Services STS Sessions in the IAM User Guide.

This parameter is optional. You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters, and the values can’t exceed 256 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

You can pass a session tag with the same key as a tag that is already attached to the role. When you do, session tags override a role tag with the same key.

Tag key–value pairs are not case sensitive, but case is preserved. This means that you cannot have separate Department and department tag keys. Assume that the role has the Department=Marketing tag and you pass the department=engineering session tag. Department and department are not saved as separate tags, and the session tag passed in the request takes precedence over the role tag.

Additionally, if you used temporary credentials to perform this operation, the new session inherits any transitive session tags from the calling session. If you pass a session tag with the same key as an inherited tag, the operation fails. To view the inherited tags for a session, see the CloudTrail logs. For more information, see Viewing Session Tags in CloudTrail in the IAM User Guide.

" + "documentation":"

A list of session tags that you want to pass. Each session tag consists of a key name and an associated value. For more information about session tags, see Tagging Amazon Web Services STS Sessions in the IAM User Guide.

This parameter is optional. You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters, and the values can’t exceed 256 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

You can pass a session tag with the same key as a tag that is already attached to the role. When you do, session tags override a role tag with the same key.

Tag key–value pairs are not case sensitive, but case is preserved. This means that you cannot have separate Department and department tag keys. Assume that the role has the Department=Marketing tag and you pass the department=engineering session tag. Department and department are not saved as separate tags, and the session tag passed in the request takes precedence over the role tag.

Additionally, if you used temporary credentials to perform this operation, the new session inherits any transitive session tags from the calling session. If you pass a session tag with the same key as an inherited tag, the operation fails. To view the inherited tags for a session, see the CloudTrail logs. For more information, see Viewing Session Tags in CloudTrail in the IAM User Guide.

" }, "TransitiveTagKeys":{ "shape":"tagKeyListType", @@ -250,11 +250,11 @@ }, "PolicyArns":{ "shape":"policyDescriptorListType", - "documentation":"

The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role.

This parameter is optional. You can provide up to 10 managed policy ARNs. However, the plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

" + "documentation":"

The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role.

This parameter is optional. You can provide up to 10 managed policy ARNs. However, the plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

" }, "Policy":{ "shape":"sessionPolicyDocumentType", - "documentation":"

An IAM policy in JSON format that you want to use as an inline session policy.

This parameter is optional. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\\u0020 through \\u00FF). It can also include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D) characters.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" + "documentation":"

An IAM policy in JSON format that you want to use as an inline session policy.

This parameter is optional. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\\u0020 through \\u00FF). It can also include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D) characters.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" }, "DurationSeconds":{ "shape":"roleDurationSecondsType", @@ -330,11 +330,11 @@ }, "PolicyArns":{ "shape":"policyDescriptorListType", - "documentation":"

The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role.

This parameter is optional. You can provide up to 10 managed policy ARNs. However, the plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

" + "documentation":"

The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as managed session policies. The policies must exist in the same account as the role.

This parameter is optional. You can provide up to 10 managed policy ARNs. However, the plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

" }, "Policy":{ "shape":"sessionPolicyDocumentType", - "documentation":"

An IAM policy in JSON format that you want to use as an inline session policy.

This parameter is optional. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\\u0020 through \\u00FF). It can also include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D) characters.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" + "documentation":"

An IAM policy in JSON format that you want to use as an inline session policy.

This parameter is optional. Passing policies to this operation returns new temporary credentials. The resulting session's permissions are the intersection of the role's identity-based policy and the session policies. You can use the role's temporary credentials in subsequent Amazon Web Services API calls to access resources in the account that owns the role. You cannot use session policies to grant more permissions than those allowed by the identity-based policy of the role that is being assumed. For more information, see Session Policies in the IAM User Guide.

The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\\u0020 through \\u00FF). It can also include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D) characters.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" }, "DurationSeconds":{ "shape":"roleDurationSecondsType", @@ -526,11 +526,11 @@ }, "Policy":{ "shape":"sessionPolicyDocumentType", - "documentation":"

An IAM policy in JSON format that you want to use as an inline session policy.

You must pass an inline or managed session policy to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies.

This parameter is optional. However, if you do not pass any session policies, then the resulting federated user session has no permissions.

When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see Session Policies in the IAM User Guide.

The resulting credentials can be used to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the Principal element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions that are granted by the session policies.

The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\\u0020 through \\u00FF). It can also include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D) characters.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" + "documentation":"

An IAM policy in JSON format that you want to use as an inline session policy.

You must pass an inline or managed session policy to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed session policies.

This parameter is optional. However, if you do not pass any session policies, then the resulting federated user session has no permissions.

When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see Session Policies in the IAM User Guide.

The resulting credentials can be used to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the Principal element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions that are granted by the session policies.

The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. The JSON policy characters can be any ASCII character from the space character to the end of the valid character list (\\u0020 through \\u00FF). It can also include the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D) characters.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" }, "PolicyArns":{ "shape":"policyDescriptorListType", - "documentation":"

The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as a managed session policy. The policies must exist in the same account as the IAM user that is requesting federated access.

You must pass an inline or managed session policy to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policies to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. You can provide up to 10 managed policy ARNs. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

This parameter is optional. However, if you do not pass any session policies, then the resulting federated user session has no permissions.

When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see Session Policies in the IAM User Guide.

The resulting credentials can be used to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the Principal element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions that are granted by the session policies.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" + "documentation":"

The Amazon Resource Names (ARNs) of the IAM managed policies that you want to use as a managed session policy. The policies must exist in the same account as the IAM user that is requesting federated access.

You must pass an inline or managed session policy to this operation. You can pass a single JSON policy document to use as an inline session policy. You can also specify up to 10 managed policy Amazon Resource Names (ARNs) to use as managed session policies. The plaintext that you use for both inline and managed session policies can't exceed 2,048 characters. You can provide up to 10 managed policy ARNs. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

This parameter is optional. However, if you do not pass any session policies, then the resulting federated user session has no permissions.

When you pass session policies, the session permissions are the intersection of the IAM user policies and the session policies that you pass. This gives you a way to further restrict the permissions for a federated user. You cannot use session policies to grant more permissions than those that are defined in the permissions policy of the IAM user. For more information, see Session Policies in the IAM User Guide.

The resulting credentials can be used to access a resource that has a resource-based policy. If that policy specifically references the federated user session in the Principal element of the policy, the session has the permissions allowed by the policy. These permissions are granted in addition to the permissions that are granted by the session policies.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

" }, "DurationSeconds":{ "shape":"durationSecondsType", @@ -538,7 +538,7 @@ }, "Tags":{ "shape":"tagListType", - "documentation":"

A list of session tags. Each session tag consists of a key name and an associated value. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

This parameter is optional. You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

An Amazon Web Services conversion compresses the passed session policies and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

You can pass a session tag with the same key as a tag that is already attached to the user you are federating. When you do, session tags override a user tag with the same key.

Tag key–value pairs are not case sensitive, but case is preserved. This means that you cannot have separate Department and department tag keys. Assume that the role has the Department=Marketing tag and you pass the department=engineering session tag. Department and department are not saved as separate tags, and the session tag passed in the request takes precedence over the role tag.

" + "documentation":"

A list of session tags. Each session tag consists of a key name and an associated value. For more information about session tags, see Passing Session Tags in STS in the IAM User Guide.

This parameter is optional. You can pass up to 50 session tags. The plaintext session tag keys can’t exceed 128 characters and the values can’t exceed 256 characters. For these and additional limits, see IAM and STS Character Limits in the IAM User Guide.

An Amazon Web Services conversion compresses the passed inline session policy, managed policy ARNs, and session tags into a packed binary format that has a separate limit. Your request can fail for this limit even if your plaintext meets the other requirements. The PackedPolicySize response element indicates by percentage how close the policies and tags for your request are to the upper size limit.

You can pass a session tag with the same key as a tag that is already attached to the user you are federating. When you do, session tags override a user tag with the same key.

Tag key–value pairs are not case sensitive, but case is preserved. This means that you cannot have separate Department and department tag keys. Assume that the role has the Department=Marketing tag and you pass the department=engineering session tag. Department and department are not saved as separate tags, and the session tag passed in the request takes precedence over the role tag.

" } } }, diff --git a/botocore/data/support-app/2021-08-20/endpoint-rule-set-1.json b/botocore/data/support-app/2021-08-20/endpoint-rule-set-1.json new file mode 100644 index 00000000..50863f1d --- /dev/null +++ b/botocore/data/support-app/2021-08-20/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://supportapp-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://supportapp-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://supportapp.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://supportapp.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/support-app/2021-08-20/paginators-1.json b/botocore/data/support-app/2021-08-20/paginators-1.json new file mode 100644 index 00000000..ea142457 --- /dev/null +++ b/botocore/data/support-app/2021-08-20/paginators-1.json @@ -0,0 +1,3 @@ +{ + "pagination": {} +} diff --git a/botocore/data/support-app/2021-08-20/service-2.json b/botocore/data/support-app/2021-08-20/service-2.json new file mode 100644 index 00000000..1315e4ff --- /dev/null +++ b/botocore/data/support-app/2021-08-20/service-2.json @@ -0,0 +1,661 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2021-08-20", + "endpointPrefix":"supportapp", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"SupportApp", + "serviceFullName":"AWS Support App", + "serviceId":"Support App", + "signatureVersion":"v4", + "signingName":"supportapp", + "uid":"support-app-2021-08-20" + }, + "operations":{ + "CreateSlackChannelConfiguration":{ + "name":"CreateSlackChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/control/create-slack-channel-configuration", + "responseCode":200 + }, + "input":{"shape":"CreateSlackChannelConfigurationRequest"}, + "output":{"shape":"CreateSlackChannelConfigurationResult"}, + "errors":[ + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ConflictException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates a Slack channel configuration for your Amazon Web Services account.

  • You can add up to 5 Slack workspaces for your account.

  • You can add up to 20 Slack channels for your account.

A Slack channel can have up to 100 Amazon Web Services accounts. This means that only 100 accounts can add the same Slack channel to the Amazon Web Services Support App. We recommend that you only add the accounts that you need to manage support cases for your organization. This can reduce the notifications about case updates that you receive in the Slack channel.

We recommend that you choose a private Slack channel so that only members in that channel have read and write access to your support cases. Anyone in your Slack channel can create, update, or resolve support cases for your account. Users require an invitation to join private channels.

" + }, + "DeleteAccountAlias":{ + "name":"DeleteAccountAlias", + "http":{ + "method":"POST", + "requestUri":"/control/delete-account-alias", + "responseCode":200 + }, + "input":{"shape":"DeleteAccountAliasRequest"}, + "output":{"shape":"DeleteAccountAliasResult"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Deletes an alias for an Amazon Web Services account ID. The alias appears in the Amazon Web Services Support App page of the Amazon Web Services Support Center. The alias also appears in Slack messages from the Amazon Web Services Support App.

" + }, + "DeleteSlackChannelConfiguration":{ + "name":"DeleteSlackChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/control/delete-slack-channel-configuration", + "responseCode":200 + }, + "input":{"shape":"DeleteSlackChannelConfigurationRequest"}, + "output":{"shape":"DeleteSlackChannelConfigurationResult"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a Slack channel configuration from your Amazon Web Services account. This operation doesn't delete your Slack channel.

" + }, + "DeleteSlackWorkspaceConfiguration":{ + "name":"DeleteSlackWorkspaceConfiguration", + "http":{ + "method":"POST", + "requestUri":"/control/delete-slack-workspace-configuration", + "responseCode":200 + }, + "input":{"shape":"DeleteSlackWorkspaceConfigurationRequest"}, + "output":{"shape":"DeleteSlackWorkspaceConfigurationResult"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Deletes a Slack workspace configuration from your Amazon Web Services account. This operation doesn't delete your Slack workspace.

" + }, + "GetAccountAlias":{ + "name":"GetAccountAlias", + "http":{ + "method":"POST", + "requestUri":"/control/get-account-alias", + "responseCode":200 + }, + "input":{"shape":"GetAccountAliasRequest"}, + "output":{"shape":"GetAccountAliasResult"}, + "errors":[ + {"shape":"InternalServerException"} + ], + "documentation":"

Retrieves the alias from an Amazon Web Services account ID. The alias appears in the Amazon Web Services Support App page of the Amazon Web Services Support Center. The alias also appears in Slack messages from the Amazon Web Services Support App.

" + }, + "ListSlackChannelConfigurations":{ + "name":"ListSlackChannelConfigurations", + "http":{ + "method":"POST", + "requestUri":"/control/list-slack-channel-configurations", + "responseCode":200 + }, + "input":{"shape":"ListSlackChannelConfigurationsRequest"}, + "output":{"shape":"ListSlackChannelConfigurationsResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists the Slack channel configurations for an Amazon Web Services account.

" + }, + "ListSlackWorkspaceConfigurations":{ + "name":"ListSlackWorkspaceConfigurations", + "http":{ + "method":"POST", + "requestUri":"/control/list-slack-workspace-configurations", + "responseCode":200 + }, + "input":{"shape":"ListSlackWorkspaceConfigurationsRequest"}, + "output":{"shape":"ListSlackWorkspaceConfigurationsResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists the Slack workspace configurations for an Amazon Web Services account.

" + }, + "PutAccountAlias":{ + "name":"PutAccountAlias", + "http":{ + "method":"POST", + "requestUri":"/control/put-account-alias", + "responseCode":200 + }, + "input":{"shape":"PutAccountAliasRequest"}, + "output":{"shape":"PutAccountAliasResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Creates or updates an individual alias for each Amazon Web Services account ID. The alias appears in the Amazon Web Services Support App page of the Amazon Web Services Support Center. The alias also appears in Slack messages from the Amazon Web Services Support App.

" + }, + "RegisterSlackWorkspaceForOrganization":{ + "name":"RegisterSlackWorkspaceForOrganization", + "http":{ + "method":"POST", + "requestUri":"/control/register-slack-workspace-for-organization", + "responseCode":200 + }, + "input":{"shape":"RegisterSlackWorkspaceForOrganizationRequest"}, + "output":{"shape":"RegisterSlackWorkspaceForOrganizationResult"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Registers a Slack workspace for your Amazon Web Services account. To call this API, your account must be part of an organization in Organizations.

If you're the management account and you want to register Slack workspaces for your organization, you must complete the following tasks:

  1. Sign in to the Amazon Web Services Support Center and authorize the Slack workspaces where you want your organization to have access to. See Authorize a Slack workspace in the Amazon Web Services Support User Guide.

  2. Call the RegisterSlackWorkspaceForOrganization API to authorize each Slack workspace for the organization.

After the management account authorizes the Slack workspace, member accounts can call this API to authorize the same Slack workspace for their individual accounts. Member accounts don't need to authorize the Slack workspace manually through the Amazon Web Services Support Center.

To use the Amazon Web Services Support App, each account must then complete the following tasks:

" + }, + "UpdateSlackChannelConfiguration":{ + "name":"UpdateSlackChannelConfiguration", + "http":{ + "method":"POST", + "requestUri":"/control/update-slack-channel-configuration", + "responseCode":200 + }, + "input":{"shape":"UpdateSlackChannelConfigurationRequest"}, + "output":{"shape":"UpdateSlackChannelConfigurationResult"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates the configuration for a Slack channel, such as case update notifications.

" + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "documentation":"

You don't have sufficient permission to perform this action.

", + "error":{ + "httpStatusCode":403, + "senderFault":true + }, + "exception":true + }, + "AccountType":{ + "type":"string", + "enum":[ + "management", + "member" + ] + }, + "ConflictException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "documentation":"

Your request has a conflict. For example, you might receive this error if you try the following:

  • Add, update, or delete a Slack channel configuration before you add a Slack workspace to your Amazon Web Services account.

  • Add a Slack channel configuration that already exists in your Amazon Web Services account.

  • Delete a Slack channel configuration for a live chat channel.

  • Delete a Slack workspace from your Amazon Web Services account that has an active live chat channel.

  • Call the RegisterSlackWorkspaceForOrganization API from an Amazon Web Services account that doesn't belong to an organization.

  • Call the RegisterSlackWorkspaceForOrganization API from a member account, but the management account hasn't registered that workspace yet for the organization.

", + "error":{ + "httpStatusCode":409, + "senderFault":true + }, + "exception":true + }, + "CreateSlackChannelConfigurationRequest":{ + "type":"structure", + "required":[ + "channelId", + "channelRoleArn", + "notifyOnCaseSeverity", + "teamId" + ], + "members":{ + "channelId":{ + "shape":"channelId", + "documentation":"

The channel ID in Slack. This ID identifies a channel within a Slack workspace.

" + }, + "channelName":{ + "shape":"channelName", + "documentation":"

The name of the Slack channel that you configure for the Amazon Web Services Support App.

" + }, + "channelRoleArn":{ + "shape":"roleArn", + "documentation":"

The Amazon Resource Name (ARN) of an IAM role that you want to use to perform operations on Amazon Web Services. For more information, see Managing access to the Amazon Web Services Support App in the Amazon Web Services Support User Guide.

" + }, + "notifyOnAddCorrespondenceToCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case has a new correspondence.

" + }, + "notifyOnCaseSeverity":{ + "shape":"NotificationSeverityLevel", + "documentation":"

The case severity for a support case that you want to receive notifications.

If you specify high or all, you must specify true for at least one of the following parameters:

  • notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase

  • notifyOnResolveCase

If you specify none, the following parameters must be null or false:

  • notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase

  • notifyOnResolveCase

If you don't specify these parameters in your request, they default to false.

" + }, + "notifyOnCreateOrReopenCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case is created or reopened.

" + }, + "notifyOnResolveCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case is resolved.

" + }, + "teamId":{ + "shape":"teamId", + "documentation":"

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

" + } + } + }, + "CreateSlackChannelConfigurationResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteAccountAliasRequest":{ + "type":"structure", + "members":{ + } + }, + "DeleteAccountAliasResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteSlackChannelConfigurationRequest":{ + "type":"structure", + "required":[ + "channelId", + "teamId" + ], + "members":{ + "channelId":{ + "shape":"channelId", + "documentation":"

The channel ID in Slack. This ID identifies a channel within a Slack workspace.

" + }, + "teamId":{ + "shape":"teamId", + "documentation":"

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

" + } + } + }, + "DeleteSlackChannelConfigurationResult":{ + "type":"structure", + "members":{ + } + }, + "DeleteSlackWorkspaceConfigurationRequest":{ + "type":"structure", + "required":["teamId"], + "members":{ + "teamId":{ + "shape":"teamId", + "documentation":"

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

" + } + } + }, + "DeleteSlackWorkspaceConfigurationResult":{ + "type":"structure", + "members":{ + } + }, + "GetAccountAliasRequest":{ + "type":"structure", + "members":{ + } + }, + "GetAccountAliasResult":{ + "type":"structure", + "members":{ + "accountAlias":{ + "shape":"awsAccountAlias", + "documentation":"

An alias or short name for an Amazon Web Services account.

" + } + } + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "documentation":"

We can’t process your request right now because of a server issue. Try again later.

", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListSlackChannelConfigurationsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"paginationToken", + "documentation":"

If the results of a search are large, the API only returns a portion of the results and includes a nextToken pagination token in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When the API returns the last set of results, the response doesn't include a pagination token value.

" + } + } + }, + "ListSlackChannelConfigurationsResult":{ + "type":"structure", + "required":["slackChannelConfigurations"], + "members":{ + "nextToken":{ + "shape":"paginationToken", + "documentation":"

The point where pagination should resume when the response returns only partial results.

" + }, + "slackChannelConfigurations":{ + "shape":"slackChannelConfigurationList", + "documentation":"

The configurations for a Slack channel.

" + } + } + }, + "ListSlackWorkspaceConfigurationsRequest":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"paginationToken", + "documentation":"

If the results of a search are large, the API only returns a portion of the results and includes a nextToken pagination token in the response. To retrieve the next batch of results, reissue the search request and include the returned token. When the API returns the last set of results, the response doesn't include a pagination token value.

" + } + } + }, + "ListSlackWorkspaceConfigurationsResult":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"paginationToken", + "documentation":"

The point where pagination should resume when the response returns only partial results.

" + }, + "slackWorkspaceConfigurations":{ + "shape":"SlackWorkspaceConfigurationList", + "documentation":"

The configurations for a Slack workspace.

" + } + } + }, + "NotificationSeverityLevel":{ + "type":"string", + "enum":[ + "none", + "all", + "high" + ] + }, + "PutAccountAliasRequest":{ + "type":"structure", + "required":["accountAlias"], + "members":{ + "accountAlias":{ + "shape":"awsAccountAlias", + "documentation":"

An alias or short name for an Amazon Web Services account.

" + } + } + }, + "PutAccountAliasResult":{ + "type":"structure", + "members":{ + } + }, + "RegisterSlackWorkspaceForOrganizationRequest":{ + "type":"structure", + "required":["teamId"], + "members":{ + "teamId":{ + "shape":"teamId", + "documentation":"

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG. Specify the Slack workspace that you want to use for your organization.

" + } + } + }, + "RegisterSlackWorkspaceForOrganizationResult":{ + "type":"structure", + "members":{ + "accountType":{ + "shape":"AccountType", + "documentation":"

Whether the Amazon Web Services account is a management or member account that's part of an organization in Organizations.

" + }, + "teamId":{ + "shape":"teamId", + "documentation":"

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

" + }, + "teamName":{ + "shape":"teamName", + "documentation":"

The name of the Slack workspace.

" + } + } + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "documentation":"

The specified resource is missing or doesn't exist, such as an account alias, Slack channel configuration, or Slack workspace configuration.

", + "error":{ + "httpStatusCode":404, + "senderFault":true + }, + "exception":true + }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "documentation":"

Your Service Quotas request exceeds the quota for the service. For example, your Service Quotas request to Amazon Web Services Support App might exceed the maximum number of workspaces or channels per account, or the maximum number of accounts per Slack channel.

", + "error":{ + "httpStatusCode":402, + "senderFault":true + }, + "exception":true + }, + "SlackChannelConfiguration":{ + "type":"structure", + "required":[ + "channelId", + "teamId" + ], + "members":{ + "channelId":{ + "shape":"channelId", + "documentation":"

The channel ID in Slack. This ID identifies a channel within a Slack workspace.

" + }, + "channelName":{ + "shape":"channelName", + "documentation":"

The name of the Slack channel that you configured with the Amazon Web Services Support App for your Amazon Web Services account.

" + }, + "channelRoleArn":{ + "shape":"roleArn", + "documentation":"

The Amazon Resource Name (ARN) of an IAM role that you want to use to perform operations on Amazon Web Services. For more information, see Managing access to the Amazon Web Services Support App in the Amazon Web Services Support User Guide.

" + }, + "notifyOnAddCorrespondenceToCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case has a new correspondence.

" + }, + "notifyOnCaseSeverity":{ + "shape":"NotificationSeverityLevel", + "documentation":"

The case severity for a support case that you want to receive notifications.

" + }, + "notifyOnCreateOrReopenCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case is created or reopened.

" + }, + "notifyOnResolveCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case is resolved.

" + }, + "teamId":{ + "shape":"teamId", + "documentation":"

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

" + } + }, + "documentation":"

The configuration for a Slack channel that you added for your Amazon Web Services account.

" + }, + "SlackWorkspaceConfiguration":{ + "type":"structure", + "required":["teamId"], + "members":{ + "allowOrganizationMemberAccount":{ + "shape":"booleanValue", + "documentation":"

Whether to allow member accounts to authorize Slack workspaces. Member accounts must be part of an organization in Organizations.

" + }, + "teamId":{ + "shape":"teamId", + "documentation":"

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

" + }, + "teamName":{ + "shape":"teamName", + "documentation":"

The name of the Slack workspace.

" + } + }, + "documentation":"

The configuration for a Slack workspace that you added to an Amazon Web Services account.

" + }, + "SlackWorkspaceConfigurationList":{ + "type":"list", + "member":{"shape":"SlackWorkspaceConfiguration"} + }, + "UpdateSlackChannelConfigurationRequest":{ + "type":"structure", + "required":[ + "channelId", + "teamId" + ], + "members":{ + "channelId":{ + "shape":"channelId", + "documentation":"

The channel ID in Slack. This ID identifies a channel within a Slack workspace.

" + }, + "channelName":{ + "shape":"channelName", + "documentation":"

The Slack channel name that you want to update.

" + }, + "channelRoleArn":{ + "shape":"roleArn", + "documentation":"

The Amazon Resource Name (ARN) of an IAM role that you want to use to perform operations on Amazon Web Services. For more information, see Managing access to the Amazon Web Services Support App in the Amazon Web Services Support User Guide.

" + }, + "notifyOnAddCorrespondenceToCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case has a new correspondence.

" + }, + "notifyOnCaseSeverity":{ + "shape":"NotificationSeverityLevel", + "documentation":"

The case severity for a support case that you want to receive notifications.

If you specify high or all, at least one of the following parameters must be true:

  • notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase

  • notifyOnResolveCase

If you specify none, any of the following parameters that you specify in your request must be false:

  • notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase

  • notifyOnResolveCase

If you don't specify these parameters in your request, the Amazon Web Services Support App uses the current values by default.

" + }, + "notifyOnCreateOrReopenCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case is created or reopened.

" + }, + "notifyOnResolveCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case is resolved.

" + }, + "teamId":{ + "shape":"teamId", + "documentation":"

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

" + } + } + }, + "UpdateSlackChannelConfigurationResult":{ + "type":"structure", + "members":{ + "channelId":{ + "shape":"channelId", + "documentation":"

The channel ID in Slack. This ID identifies a channel within a Slack workspace.

" + }, + "channelName":{ + "shape":"channelName", + "documentation":"

The name of the Slack channel that you configure for the Amazon Web Services Support App.

" + }, + "channelRoleArn":{ + "shape":"roleArn", + "documentation":"

The Amazon Resource Name (ARN) of an IAM role that you want to use to perform operations on Amazon Web Services. For more information, see Managing access to the Amazon Web Services Support App in the Amazon Web Services Support User Guide.

" + }, + "notifyOnAddCorrespondenceToCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case has a new correspondence.

" + }, + "notifyOnCaseSeverity":{ + "shape":"NotificationSeverityLevel", + "documentation":"

The case severity for a support case that you want to receive notifications.

" + }, + "notifyOnCreateOrReopenCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case is created or reopened.

" + }, + "notifyOnResolveCase":{ + "shape":"booleanValue", + "documentation":"

Whether you want to get notified when a support case is resolved.

" + }, + "teamId":{ + "shape":"teamId", + "documentation":"

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

" + } + } + }, + "ValidationException":{ + "type":"structure", + "members":{ + "message":{"shape":"errorMessage"} + }, + "documentation":"

Your request input doesn't meet the constraints that the Amazon Web Services Support App specifies.

", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "awsAccountAlias":{ + "type":"string", + "max":30, + "min":1, + "pattern":"^[\\w\\- ]+$" + }, + "booleanValue":{ + "type":"boolean", + "box":true + }, + "channelId":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^\\S+$" + }, + "channelName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^.+$" + }, + "errorMessage":{"type":"string"}, + "paginationToken":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^\\S+$" + }, + "roleArn":{ + "type":"string", + "max":2048, + "min":31, + "pattern":"^arn:aws:iam::[0-9]{12}:role/(.+)$" + }, + "slackChannelConfigurationList":{ + "type":"list", + "member":{"shape":"SlackChannelConfiguration"} + }, + "teamId":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^\\S+$" + }, + "teamName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^.+$" + } + }, + "documentation":"

Amazon Web Services Support App in Slack

You can use the Amazon Web Services Support App in Slack API to manage your support cases in Slack for your Amazon Web Services account. After you configure your Slack workspace and channel with the Amazon Web Services Support App, you can perform the following tasks directly in your Slack channel:

  • Create, search, update, and resolve your support cases

  • Request service quota increases for your account

  • Invite Amazon Web Services Support agents to your channel so that you can chat directly about your support cases

For more information about how to perform these actions in Slack, see the following documentation in the Amazon Web Services Support User Guide:

You can also use the Amazon Web Services Management Console instead of the Amazon Web Services Support App API to manage your Slack configurations. For more information, see Authorize a Slack workspace to enable the Amazon Web Services Support App.

  • You must have a Business or Enterprise Support plan to use the Amazon Web Services Support App API.

  • For more information about the Amazon Web Services Support App endpoints, see the Amazon Web Services Support App in Slack endpoints in the Amazon Web Services General Reference.

" +} diff --git a/botocore/data/support/2013-04-15/endpoint-rule-set-1.json b/botocore/data/support/2013-04-15/endpoint-rule-set-1.json new file mode 100644 index 00000000..4ac8d08f --- /dev/null +++ b/botocore/data/support/2013-04-15/endpoint-rule-set-1.json @@ -0,0 +1,475 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://support-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://support.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://support-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://support.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://support.us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-cn-global" + ] + } + ], + "endpoint": { + "url": "https://support.cn-north-1.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "cn-north-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-us-gov-global" + ] + } + ], + "endpoint": { + "url": "https://support.us-gov-west-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-gov-west-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-iso-global" + ] + } + ], + "endpoint": { + "url": "https://support.us-iso-east-1.c2s.ic.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-iso-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-iso-b-global" + ] + } + ], + "endpoint": { + "url": "https://support.us-isob-east-1.sc2s.sgov.gov", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-isob-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://support.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/swf/2012-01-25/endpoint-rule-set-1.json b/botocore/data/swf/2012-01-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..5d0f8859 --- /dev/null +++ b/botocore/data/swf/2012-01-25/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://swf-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://swf-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://swf.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://swf.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/synthetics/2017-10-11/endpoint-rule-set-1.json b/botocore/data/synthetics/2017-10-11/endpoint-rule-set-1.json new file mode 100644 index 00000000..ec0ffe6d --- /dev/null +++ b/botocore/data/synthetics/2017-10-11/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://synthetics-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://synthetics-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://synthetics.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://synthetics.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/synthetics/2017-10-11/examples-1.json b/botocore/data/synthetics/2017-10-11/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/synthetics/2017-10-11/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/synthetics/2017-10-11/service-2.json b/botocore/data/synthetics/2017-10-11/service-2.json index 84bffd44..88bf20db 100644 --- a/botocore/data/synthetics/2017-10-11/service-2.json +++ b/botocore/data/synthetics/2017-10-11/service-2.json @@ -13,6 +13,23 @@ "uid":"synthetics-2017-10-11" }, "operations":{ + "AssociateResource":{ + "name":"AssociateResource", + "http":{ + "method":"PATCH", + "requestUri":"/group/{groupIdentifier}/associate" + }, + "input":{"shape":"AssociateResourceRequest"}, + "output":{"shape":"AssociateResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Associates a canary with a group. Using groups can help you with managing and automating your canaries, and you can also view aggregated run results and statistics for all canaries in a group.

You must run this operation in the Region where the canary exists.

" + }, "CreateCanary":{ "name":"CreateCanary", "http":{ @@ -26,7 +43,23 @@ {"shape":"ValidationException"}, {"shape":"RequestEntityTooLargeException"} ], - "documentation":"

Creates a canary. Canaries are scripts that monitor your endpoints and APIs from the outside-in. Canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. You can set up a canary to run continuously or just once.

Do not use CreateCanary to modify an existing canary. Use UpdateCanary instead.

To create canaries, you must have the CloudWatchSyntheticsFullAccess policy. If you are creating a new IAM role for the canary, you also need the the iam:CreateRole, iam:CreatePolicy and iam:AttachRolePolicy permissions. For more information, see Necessary Roles and Permissions.

Do not include secrets or proprietary information in your canary names. The canary name makes up part of the Amazon Resource Name (ARN) for the canary, and the ARN is included in outbound calls over the internet. For more information, see Security Considerations for Synthetics Canaries.

" + "documentation":"

Creates a canary. Canaries are scripts that monitor your endpoints and APIs from the outside-in. Canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. You can set up a canary to run continuously or just once.

Do not use CreateCanary to modify an existing canary. Use UpdateCanary instead.

To create canaries, you must have the CloudWatchSyntheticsFullAccess policy. If you are creating a new IAM role for the canary, you also need the iam:CreateRole, iam:CreatePolicy and iam:AttachRolePolicy permissions. For more information, see Necessary Roles and Permissions.

Do not include secrets or proprietary information in your canary names. The canary name makes up part of the Amazon Resource Name (ARN) for the canary, and the ARN is included in outbound calls over the internet. For more information, see Security Considerations for Synthetics Canaries.

" + }, + "CreateGroup":{ + "name":"CreateGroup", + "http":{ + "method":"POST", + "requestUri":"/group" + }, + "input":{"shape":"CreateGroupRequest"}, + "output":{"shape":"CreateGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ], + "documentation":"

Creates a group which you can use to associate canaries with each other, including cross-Region canaries. Using groups can help you with managing and automating your canaries, and you can also view aggregated run results and statistics for all canaries in a group.

Groups are global resources. When you create a group, it is replicated across Amazon Web Services Regions, and you can view it and add canaries to it from any Region. Although the group ARN format reflects the Region name where it was created, a group is not constrained to any Region. This means that you can put canaries from multiple Regions into the same group, and then use that group to view and manage all of those canaries in a single view.

Groups are supported in all Regions except the Regions that are disabled by default. For more information about these Regions, see Enabling a Region.

Each group can contain as many as 10 canaries. You can have as many as 20 groups in your account. Any single canary can be a member of up to 10 groups.

" }, "DeleteCanary":{ "name":"DeleteCanary", @@ -42,7 +75,23 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

Permanently deletes the specified canary.

If you specify DeleteLambda to true, CloudWatch Synthetics also deletes the Lambda functions and layers that are used by the canary.

Other esources used and created by the canary are not automatically deleted. After you delete a canary that you do not intend to use again, you should also delete the following:

  • The CloudWatch alarms created for this canary. These alarms have a name of Synthetics-SharpDrop-Alarm-MyCanaryName .

  • Amazon S3 objects and buckets, such as the canary's artifact location.

  • IAM roles created for the canary. If they were created in the console, these roles have the name role/service-role/CloudWatchSyntheticsRole-MyCanaryName .

  • CloudWatch Logs log groups created for the canary. These logs groups have the name /aws/lambda/cwsyn-MyCanaryName .

Before you delete a canary, you might want to use GetCanary to display the information about this canary. Make note of the information returned by this operation so that you can delete these resources after you delete the canary.

" + "documentation":"

Permanently deletes the specified canary.

If you specify DeleteLambda to true, CloudWatch Synthetics also deletes the Lambda functions and layers that are used by the canary.

Other resources used and created by the canary are not automatically deleted. After you delete a canary that you do not intend to use again, you should also delete the following:

  • The CloudWatch alarms created for this canary. These alarms have a name of Synthetics-SharpDrop-Alarm-MyCanaryName .

  • Amazon S3 objects and buckets, such as the canary's artifact location.

  • IAM roles created for the canary. If they were created in the console, these roles have the name role/service-role/CloudWatchSyntheticsRole-MyCanaryName .

  • CloudWatch Logs log groups created for the canary. These logs groups have the name /aws/lambda/cwsyn-MyCanaryName .

Before you delete a canary, you might want to use GetCanary to display the information about this canary. Make note of the information returned by this operation so that you can delete these resources after you delete the canary.

" + }, + "DeleteGroup":{ + "name":"DeleteGroup", + "http":{ + "method":"DELETE", + "requestUri":"/group/{groupIdentifier}" + }, + "input":{"shape":"DeleteGroupRequest"}, + "output":{"shape":"DeleteGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes a group. The group doesn't need to be empty to be deleted. If there are canaries in the group, they are not deleted when you delete the group.

Groups are a global resource that appear in all Regions, but the request to delete a group must be made from its home Region. You can find the home Region of a group within its ARN.

" }, "DescribeCanaries":{ "name":"DescribeCanaries", @@ -86,6 +135,22 @@ ], "documentation":"

Returns a list of Synthetics canary runtime versions. For more information, see Canary Runtime Versions.

" }, + "DisassociateResource":{ + "name":"DisassociateResource", + "http":{ + "method":"PATCH", + "requestUri":"/group/{groupIdentifier}/disassociate" + }, + "input":{"shape":"DisassociateResourceRequest"}, + "output":{"shape":"DisassociateResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Removes a canary from a group. You must run this operation in the Region where the canary exists.

" + }, "GetCanary":{ "name":"GetCanary", "http":{ @@ -115,6 +180,67 @@ ], "documentation":"

Retrieves a list of runs for a specified canary.

" }, + "GetGroup":{ + "name":"GetGroup", + "http":{ + "method":"GET", + "requestUri":"/group/{groupIdentifier}" + }, + "input":{"shape":"GetGroupRequest"}, + "output":{"shape":"GetGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Returns information about one group. Groups are a global resource, so you can use this operation from any Region.

" + }, + "ListAssociatedGroups":{ + "name":"ListAssociatedGroups", + "http":{ + "method":"POST", + "requestUri":"/resource/{resourceArn}/groups" + }, + "input":{"shape":"ListAssociatedGroupsRequest"}, + "output":{"shape":"ListAssociatedGroupsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a list of the groups that the specified canary is associated with. The canary that you specify must be in the current Region.

" + }, + "ListGroupResources":{ + "name":"ListGroupResources", + "http":{ + "method":"POST", + "requestUri":"/group/{groupIdentifier}/resources" + }, + "input":{"shape":"ListGroupResourcesRequest"}, + "output":{"shape":"ListGroupResourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ], + "documentation":"

This operation returns a list of the ARNs of the canaries that are associated with the specified group.

" + }, + "ListGroups":{ + "name":"ListGroups", + "http":{ + "method":"POST", + "requestUri":"/groups" + }, + "input":{"shape":"ListGroupsRequest"}, + "output":{"shape":"ListGroupsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Returns a list of all groups in the account, displaying their names, unique IDs, and ARNs. The groups from all Regions are returned.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -124,11 +250,13 @@ "input":{"shape":"ListTagsForResourceRequest"}, "output":{"shape":"ListTagsForResourceResponse"}, "errors":[ - {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"} + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"} ], - "documentation":"

Displays the tags associated with a canary.

" + "documentation":"

Displays the tags associated with a canary or group.

" }, "StartCanary":{ "name":"StartCanary", @@ -160,7 +288,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

Stops the canary to prevent all future runs. If the canary is currently running, Synthetics stops waiting for the current run of the specified canary to complete. The run that is in progress completes on its own, publishes metrics, and uploads artifacts, but it is not recorded in Synthetics as a completed run.

You can use StartCanary to start it running again with the canary’s current schedule at any point in the future.

" + "documentation":"

Stops the canary to prevent all future runs. If the canary is currently running,the run that is in progress completes on its own, publishes metrics, and uploads artifacts, but it is not recorded in Synthetics as a completed run.

You can use StartCanary to start it running again with the canary’s current schedule at any point in the future.

" }, "TagResource":{ "name":"TagResource", @@ -171,11 +299,13 @@ "input":{"shape":"TagResourceRequest"}, "output":{"shape":"TagResourceResponse"}, "errors":[ - {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"} + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"} ], - "documentation":"

Assigns one or more tags (key-value pairs) to the specified canary.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a canary that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a canary.

" + "documentation":"

Assigns one or more tags (key-value pairs) to the specified canary or group.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a resource that already has tags. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a canary or group.

" }, "UntagResource":{ "name":"UntagResource", @@ -186,11 +316,13 @@ "input":{"shape":"UntagResourceRequest"}, "output":{"shape":"UntagResourceResponse"}, "errors":[ - {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"} + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"} ], - "documentation":"

Removes one or more tags from the specified canary.

" + "documentation":"

Removes one or more tags from the specified resource.

" }, "UpdateCanary":{ "name":"UpdateCanary", @@ -207,7 +339,7 @@ {"shape":"ConflictException"}, {"shape":"RequestEntityTooLargeException"} ], - "documentation":"

Use this operation to change the settings of a canary that has already been created.

You can't use this operation to update the tags of an existing canary. To change the tags of an existing canary, use TagResource.

" + "documentation":"

Updates the configuration of a canary that has already been created.

You can't use this operation to update the tags of an existing canary. To change the tags of an existing canary, use TagResource.

" } }, "shapes":{ @@ -231,6 +363,39 @@ }, "documentation":"

A structure that contains the configuration for canary artifacts, including the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3.

" }, + "AssociateResourceRequest":{ + "type":"structure", + "required":[ + "GroupIdentifier", + "ResourceArn" + ], + "members":{ + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "documentation":"

Specifies the group. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

", + "location":"uri", + "locationName":"groupIdentifier" + }, + "ResourceArn":{ + "shape":"CanaryArn", + "documentation":"

The ARN of the canary that you want to associate with the specified group.

" + } + } + }, + "AssociateResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "BadRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The request was not valid.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "BaseScreenshot":{ "type":"structure", "required":["ScreenshotName"], @@ -241,7 +406,7 @@ }, "IgnoreCoordinates":{ "shape":"BaseScreenshotIgnoreCoordinates", - "documentation":"

Coordinates that define the part of a screen to ignore during screenshot comparisons. To obtain the coordinates to use here, use the CloudWatch Logs console to draw the boundaries on the screen. For more information, see {LINK}

" + "documentation":"

Coordinates that define the part of a screen to ignore during screenshot comparisons. To obtain the coordinates to use here, use the CloudWatch console to draw the boundaries on the screen. For more information, see Editing or deleting a canary

" } }, "documentation":"

A structure representing a screenshot that is used as a baseline during visual monitoring comparisons made by the canary.

" @@ -448,7 +613,7 @@ }, "EnvironmentVariables":{ "shape":"EnvironmentVariablesMap", - "documentation":"

Specifies the keys and values to use for any environment variables used in the canary script. Use the following format:

{ \"key1\" : \"value1\", \"key2\" : \"value2\", ...}

Keys must start with a letter and be at least two characters. The total size of your environment variables cannot exceed 4 KB. You can't specify any Lambda reserved environment variables as the keys for your environment variables. For more information about reserved keys, see Runtime environment variables.

" + "documentation":"

Specifies the keys and values to use for any environment variables used in the canary script. Use the following format:

{ \"key1\" : \"value1\", \"key2\" : \"value2\", ...}

Keys must start with a letter and be at least two characters. The total size of your environment variables cannot exceed 4 KB. You can't specify any Lambda reserved environment variables as the keys for your environment variables. For more information about reserved keys, see Runtime environment variables.

The environment variables keys and values are not encrypted. Do not store sensitive information in this field.

" } }, "documentation":"

A structure that contains input information for a canary run.

" @@ -670,7 +835,7 @@ }, "RunConfig":{ "shape":"CanaryRunConfigInput", - "documentation":"

A structure that contains the configuration for individual canary runs, such as timeout value.

" + "documentation":"

A structure that contains the configuration for individual canary runs, such as timeout value and environment variables.

The environment variables keys and values are not encrypted. Do not store sensitive information in this field.

" }, "SuccessRetentionPeriodInDays":{ "shape":"MaxSize1024", @@ -707,6 +872,29 @@ } } }, + "CreateGroupRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"GroupName", + "documentation":"

The name for the group. It can include any Unicode characters.

The names for all groups in your account, across all Regions, must be unique.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

A list of key-value pairs to associate with the group. You can associate as many as 50 tags with a group.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only the resources that have certain tag values.

" + } + } + }, + "CreateGroupResponse":{ + "type":"structure", + "members":{ + "Group":{ + "shape":"Group", + "documentation":"

A structure that contains information about the group that was just created.

" + } + } + }, "DeleteCanaryRequest":{ "type":"structure", "required":["Name"], @@ -730,6 +918,23 @@ "members":{ } }, + "DeleteGroupRequest":{ + "type":"structure", + "required":["GroupIdentifier"], + "members":{ + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "documentation":"

Specifies which group to delete. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

", + "location":"uri", + "locationName":"groupIdentifier" + } + } + }, + "DeleteGroupResponse":{ + "type":"structure", + "members":{ + } + }, "DescribeCanariesLastRunNameFilter":{ "type":"list", "member":{"shape":"CanaryName"}, @@ -741,7 +946,7 @@ "members":{ "NextToken":{ "shape":"Token", - "documentation":"

A token that indicates that there is more data available. You can use this token in a subsequent DescribeCanaries operation to retrieve the next set of results.

" + "documentation":"

A token that indicates that there is more data available. You can use this token in a subsequent DescribeCanariesLastRun operation to retrieve the next set of results.

" }, "MaxResults":{ "shape":"MaxSize100", @@ -828,6 +1033,30 @@ } } }, + "DisassociateResourceRequest":{ + "type":"structure", + "required":[ + "GroupIdentifier", + "ResourceArn" + ], + "members":{ + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "documentation":"

Specifies the group. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

", + "location":"uri", + "locationName":"groupIdentifier" + }, + "ResourceArn":{ + "shape":"CanaryArn", + "documentation":"

The ARN of the canary that you want to remove from the specified group.

" + } + } + }, + "DisassociateResourceResponse":{ + "type":"structure", + "members":{ + } + }, "EncryptionMode":{ "type":"string", "enum":[ @@ -869,7 +1098,7 @@ "members":{ "Canary":{ "shape":"Canary", - "documentation":"

A strucure that contains the full information about the canary.

" + "documentation":"

A structure that contains the full information about the canary.

" } } }, @@ -906,6 +1135,104 @@ } } }, + "GetGroupRequest":{ + "type":"structure", + "required":["GroupIdentifier"], + "members":{ + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "documentation":"

Specifies the group to return information for. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

", + "location":"uri", + "locationName":"groupIdentifier" + } + } + }, + "GetGroupResponse":{ + "type":"structure", + "members":{ + "Group":{ + "shape":"Group", + "documentation":"

A structure that contains information about the group.

" + } + } + }, + "Group":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"String", + "documentation":"

The unique ID of the group.

" + }, + "Name":{ + "shape":"GroupName", + "documentation":"

The name of the group.

" + }, + "Arn":{ + "shape":"GroupArn", + "documentation":"

The ARN of the group.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The list of key-value pairs that are associated with the canary.

" + }, + "CreatedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the group was created.

" + }, + "LastModifiedTime":{ + "shape":"Timestamp", + "documentation":"

The date and time that the group was most recently updated.

" + } + }, + "documentation":"

This structure contains information about one group.

" + }, + "GroupArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:group:[0-9a-z]+" + }, + "GroupIdentifier":{ + "type":"string", + "max":128, + "min":1 + }, + "GroupName":{ + "type":"string", + "max":64, + "min":1 + }, + "GroupSummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"String", + "documentation":"

The unique ID of the group.

" + }, + "Name":{ + "shape":"GroupName", + "documentation":"

The name of the group.

" + }, + "Arn":{ + "shape":"GroupArn", + "documentation":"

The ARN of the group.

" + } + }, + "documentation":"

A structure containing some information about a group.

" + }, + "GroupSummaryList":{ + "type":"list", + "member":{"shape":"GroupSummary"} + }, + "InternalFailureException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

An internal failure occurred. Try the operation again.

", + "error":{"httpStatusCode":500}, + "exception":true + }, "InternalServerException":{ "type":"structure", "members":{ @@ -921,13 +1248,105 @@ "min":1, "pattern":"arn:(aws[a-zA-Z-]*)?:kms:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:key/[\\w\\-\\/]+" }, + "ListAssociatedGroupsRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A token that indicates that there is more data available. You can use this token in a subsequent operation to retrieve the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxGroupResults", + "documentation":"

Specify this parameter to limit how many groups are returned each time you use the ListAssociatedGroups operation. If you omit this parameter, the default of 20 is used.

" + }, + "ResourceArn":{ + "shape":"CanaryArn", + "documentation":"

The ARN of the canary that you want to view groups for.

", + "location":"uri", + "locationName":"resourceArn" + } + } + }, + "ListAssociatedGroupsResponse":{ + "type":"structure", + "members":{ + "Groups":{ + "shape":"GroupSummaryList", + "documentation":"

An array of structures that contain information about the groups that this canary is associated with.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A token that indicates that there is more data available. You can use this token in a subsequent ListAssociatedGroups operation to retrieve the next set of results.

" + } + } + }, + "ListGroupResourcesRequest":{ + "type":"structure", + "required":["GroupIdentifier"], + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A token that indicates that there is more data available. You can use this token in a subsequent operation to retrieve the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxGroupResults", + "documentation":"

Specify this parameter to limit how many canary ARNs are returned each time you use the ListGroupResources operation. If you omit this parameter, the default of 20 is used.

" + }, + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "documentation":"

Specifies the group to return information for. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

", + "location":"uri", + "locationName":"groupIdentifier" + } + } + }, + "ListGroupResourcesResponse":{ + "type":"structure", + "members":{ + "Resources":{ + "shape":"StringList", + "documentation":"

An array of ARNs. These ARNs are for the canaries that are associated with the group.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A token that indicates that there is more data available. You can use this token in a subsequent ListGroupResources operation to retrieve the next set of results.

" + } + } + }, + "ListGroupsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

A token that indicates that there is more data available. You can use this token in a subsequent operation to retrieve the next set of results.

" + }, + "MaxResults":{ + "shape":"MaxGroupResults", + "documentation":"

Specify this parameter to limit how many groups are returned each time you use the ListGroups operation. If you omit this parameter, the default of 20 is used.

" + } + } + }, + "ListGroupsResponse":{ + "type":"structure", + "members":{ + "Groups":{ + "shape":"GroupSummaryList", + "documentation":"

An array of structures that each contain information about one group.

" + }, + "NextToken":{ + "shape":"Token", + "documentation":"

A token that indicates that there is more data available. You can use this token in a subsequent ListGroups operation to retrieve the next set of results.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceArn"], "members":{ "ResourceArn":{ - "shape":"CanaryArn", - "documentation":"

The ARN of the canary that you want to view tags for.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

", + "shape":"ResourceArn", + "documentation":"

The ARN of the canary or group that you want to view tags for.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

The ARN format of a group is arn:aws:synthetics:Region:account-id:group:group-name

", "location":"uri", "locationName":"resourceArn" } @@ -938,7 +1357,7 @@ "members":{ "Tags":{ "shape":"TagMap", - "documentation":"

The list of tag keys and values associated with the canary that you specified.

" + "documentation":"

The list of tag keys and values associated with the resource that you specified.

" } } }, @@ -952,6 +1371,11 @@ "max":840, "min":3 }, + "MaxGroupResults":{ + "type":"integer", + "max":20, + "min":1 + }, "MaxOneYearInSeconds":{ "type":"long", "max":31622400, @@ -972,7 +1396,22 @@ "max":3008, "min":960 }, + "NotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The specified resource was not found.

", + "error":{"httpStatusCode":404}, + "exception":true + }, "NullableBoolean":{"type":"boolean"}, + "PaginationToken":{ + "type":"string", + "max":512, + "min":1, + "pattern":"^.+$" + }, "RequestEntityTooLargeException":{ "type":"structure", "members":{ @@ -982,6 +1421,12 @@ "error":{"httpStatusCode":413}, "exception":true }, + "ResourceArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:(canary|group):[0-9a-z_\\-]+" + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -1044,6 +1489,15 @@ "max":5, "min":0 }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The request exceeded a service quota value.

", + "error":{"httpStatusCode":402}, + "exception":true + }, "StartCanaryRequest":{ "type":"structure", "required":["Name"], @@ -1067,7 +1521,7 @@ "members":{ "Name":{ "shape":"CanaryName", - "documentation":"

The name of the canary that you want to stop. To find the names of your canaries, use DescribeCanaries.

", + "documentation":"

The name of the canary that you want to stop. To find the names of your canaries, use ListCanaries.

", "location":"uri", "locationName":"name" } @@ -1083,6 +1537,10 @@ "max":1024, "min":1 }, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, "SubnetId":{"type":"string"}, "SubnetIds":{ "type":"list", @@ -1117,14 +1575,14 @@ ], "members":{ "ResourceArn":{ - "shape":"CanaryArn", - "documentation":"

The ARN of the canary that you're adding tags to.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

", + "shape":"ResourceArn", + "documentation":"

The ARN of the canary or group that you're adding tags to.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

The ARN format of a group is arn:aws:synthetics:Region:account-id:group:group-name

", "location":"uri", "locationName":"resourceArn" }, "Tags":{ "shape":"TagMap", - "documentation":"

The list of key-value pairs to associate with the canary.

" + "documentation":"

The list of key-value pairs to associate with the resource.

" } } }, @@ -1143,6 +1601,15 @@ "max":252, "min":4 }, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

There were too many simultaneous requests. Try the operation again.

", + "error":{"httpStatusCode":429}, + "exception":true + }, "UUID":{ "type":"string", "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" @@ -1155,8 +1622,8 @@ ], "members":{ "ResourceArn":{ - "shape":"CanaryArn", - "documentation":"

The ARN of the canary that you're removing tags from.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

", + "shape":"ResourceArn", + "documentation":"

The ARN of the canary or group that you're removing tags from.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

The ARN format of a group is arn:aws:synthetics:Region:account-id:group:group-name

", "location":"uri", "locationName":"resourceArn" }, @@ -1201,7 +1668,7 @@ }, "RunConfig":{ "shape":"CanaryRunConfigInput", - "documentation":"

A structure that contains the timeout value that is used for each individual run of the canary.

" + "documentation":"

A structure that contains the timeout value that is used for each individual run of the canary.

The environment variables keys and values are not encrypted. Do not store sensitive information in this field.

" }, "SuccessRetentionPeriodInDays":{ "shape":"MaxSize1024", @@ -1256,7 +1723,7 @@ "documentation":"

Specifies which canary run to use the screenshots from as the baseline for future visual monitoring with this canary. Valid values are nextrun to use the screenshots from the next run after this update is made, lastrun to use the screenshots from the most recent run before this update was made, or the value of Id in the CanaryRun from any past run of this canary.

" } }, - "documentation":"

An object that specifies what screenshots to use as a baseline for visual monitoring by this canary, and optionally the parts of the screenshots to ignore during the visual monitoring comparison.

Visual monitoring is supported only on canaries running the syn-puppeteer-node-3.2 runtime or later. For more information, see Visual monitoring and Visual monitoring blueprint

" + "documentation":"

An object that specifies what screenshots to use as a baseline for visual monitoring by this canary. It can optionally also specify parts of the screenshots to ignore during the visual monitoring comparison.

Visual monitoring is supported only on canaries running the syn-puppeteer-node-3.2 runtime or later. For more information, see Visual monitoring and Visual monitoring blueprint

" }, "VisualReferenceOutput":{ "type":"structure", @@ -1267,7 +1734,7 @@ }, "BaseCanaryRunId":{ "shape":"String", - "documentation":"

The ID of the canary run that produced the screenshots that are used as the baseline for visual monitoring comparisons during future runs of this canary.

" + "documentation":"

The ID of the canary run that produced the baseline screenshots that are used for visual monitoring comparisons by this canary.

" } }, "documentation":"

If this canary performs visual monitoring by comparing screenshots, this structure contains the ID of the canary run that is used as the baseline for screenshots, and the coordinates of any parts of those screenshots that are ignored during visual monitoring comparison.

Visual monitoring is supported only on canaries running the syn-puppeteer-node-3.2 runtime or later.

" diff --git a/botocore/data/textract/2018-06-27/endpoint-rule-set-1.json b/botocore/data/textract/2018-06-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..8a897a50 --- /dev/null +++ b/botocore/data/textract/2018-06-27/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://textract-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://textract-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://textract.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://textract.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/textract/2018-06-27/examples-1.json b/botocore/data/textract/2018-06-27/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/textract/2018-06-27/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/textract/2018-06-27/service-2.json b/botocore/data/textract/2018-06-27/service-2.json index 358be8f0..424cb808 100644 --- a/botocore/data/textract/2018-06-27/service-2.json +++ b/botocore/data/textract/2018-06-27/service-2.json @@ -32,7 +32,7 @@ {"shape":"ThrottlingException"}, {"shape":"HumanLoopQuotaExceededException"} ], - "documentation":"

Analyzes an input document for relationships between detected items.

The types of information returned are as follows:

  • Form data (key-value pairs). The related information is returned in two Block objects, each of type KEY_VALUE_SET: a KEY Block object and a VALUE Block object. For example, Name: Ana Silva Carolina contains a key and value. Name: is the key. Ana Silva Carolina is the value.

  • Table and table cell data. A TABLE Block object contains information about a detected table. A CELL Block object is returned for each cell in a table.

  • Lines and words of text. A LINE Block object contains one or more WORD Block objects. All lines and words that are detected in the document are returned (including text that doesn't have a relationship with the value of FeatureTypes).

  • Queries.A QUERIES_RESULT Block object contains the answer to the query, the alias associated and an ID that connect it to the query asked. This Block also contains a location and attached confidence score.

Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT Block object contains information about a selection element, including the selection status.

You can choose which type of analysis to perform by specifying the FeatureTypes list.

The output is returned in a list of Block objects.

AnalyzeDocument is a synchronous operation. To analyze documents asynchronously, use StartDocumentAnalysis.

For more information, see Document Text Analysis.

" + "documentation":"

Analyzes an input document for relationships between detected items.

The types of information returned are as follows:

  • Form data (key-value pairs). The related information is returned in two Block objects, each of type KEY_VALUE_SET: a KEY Block object and a VALUE Block object. For example, Name: Ana Silva Carolina contains a key and value. Name: is the key. Ana Silva Carolina is the value.

  • Table and table cell data. A TABLE Block object contains information about a detected table. A CELL Block object is returned for each cell in a table.

  • Lines and words of text. A LINE Block object contains one or more WORD Block objects. All lines and words that are detected in the document are returned (including text that doesn't have a relationship with the value of FeatureTypes).

  • Signatures. A SIGNATURE Block object contains the location information of a signature in a document. If used in conjunction with forms or tables, a signature can be given a Key-Value pairing or be detected in the cell of a table.

  • Query. A QUERY Block object contains the query text, alias and link to the associated Query results block object.

  • Query Result. A QUERY_RESULT Block object contains the answer to the query and an ID that connects it to the query asked. This Block also contains a confidence score.

Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT Block object contains information about a selection element, including the selection status.

You can choose which type of analysis to perform by specifying the FeatureTypes list.

The output is returned in a list of Block objects.

AnalyzeDocument is a synchronous operation. To analyze documents asynchronously, use StartDocumentAnalysis.

For more information, see Document Text Analysis.

" }, "AnalyzeExpense":{ "name":"AnalyzeExpense", @@ -53,7 +53,7 @@ {"shape":"InternalServerError"}, {"shape":"ThrottlingException"} ], - "documentation":"

AnalyzeExpense synchronously analyzes an input document for financially related relationships between text.

Information is returned as ExpenseDocuments and seperated as follows.

  • LineItemGroups- A data set containing LineItems which store information about the lines of text, such as an item purchased and its price on a receipt.

  • SummaryFields- Contains all other information a receipt, such as header information or the vendors name.

" + "documentation":"

AnalyzeExpense synchronously analyzes an input document for financially related relationships between text.

Information is returned as ExpenseDocuments and seperated as follows:

  • LineItemGroups- A data set containing LineItems which store information about the lines of text, such as an item purchased and its price on a receipt.

  • SummaryFields- Contains all other information a receipt, such as header information or the vendors name.

" }, "AnalyzeID":{ "name":"AnalyzeID", @@ -95,7 +95,7 @@ {"shape":"InternalServerError"}, {"shape":"ThrottlingException"} ], - "documentation":"

Detects text in the input document. Amazon Textract can detect lines of text and the words that make up a line of text. The input document must be an image in JPEG, PNG, PDF, or TIFF format. DetectDocumentText returns the detected text in an array of Block objects.

Each document page has as an associated Block of type PAGE. Each PAGE Block object is the parent of LINE Block objects that represent the lines of detected text on a page. A LINE Block object is a parent for each word that makes up the line. Words are represented by Block objects of type WORD.

DetectDocumentText is a synchronous operation. To analyze documents asynchronously, use StartDocumentTextDetection.

For more information, see Document Text Detection.

" + "documentation":"

Detects text in the input document. Amazon Textract can detect lines of text and the words that make up a line of text. The input document must be in one of the following image formats: JPEG, PNG, PDF, or TIFF. DetectDocumentText returns the detected text in an array of Block objects.

Each document page has as an associated Block of type PAGE. Each PAGE Block object is the parent of LINE Block objects that represent the lines of detected text on a page. A LINE Block object is a parent for each word that makes up the line. Words are represented by Block objects of type WORD.

DetectDocumentText is a synchronous operation. To analyze documents asynchronously, use StartDocumentTextDetection.

For more information, see Document Text Detection.

" }, "GetDocumentAnalysis":{ "name":"GetDocumentAnalysis", @@ -115,7 +115,7 @@ {"shape":"InvalidS3ObjectException"}, {"shape":"InvalidKMSKeyException"} ], - "documentation":"

Gets the results for an Amazon Textract asynchronous operation that analyzes text in a document.

You start asynchronous text analysis by calling StartDocumentAnalysis, which returns a job identifier (JobId). When the text analysis operation finishes, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that's registered in the initial call to StartDocumentAnalysis. To get the results of the text-detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetDocumentAnalysis, and pass the job identifier (JobId) from the initial call to StartDocumentAnalysis.

GetDocumentAnalysis returns an array of Block objects. The following types of information are returned:

  • Form data (key-value pairs). The related information is returned in two Block objects, each of type KEY_VALUE_SET: a KEY Block object and a VALUE Block object. For example, Name: Ana Silva Carolina contains a key and value. Name: is the key. Ana Silva Carolina is the value.

  • Table and table cell data. A TABLE Block object contains information about a detected table. A CELL Block object is returned for each cell in a table.

  • Lines and words of text. A LINE Block object contains one or more WORD Block objects. All lines and words that are detected in the document are returned (including text that doesn't have a relationship with the value of the StartDocumentAnalysis FeatureTypes input parameter).

  • Queries. A QUERIES_RESULT Block object contains the answer to the query, the alias associated and an ID that connect it to the query asked. This Block also contains a location and attached confidence score

Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT Block object contains information about a selection element, including the selection status.

Use the MaxResults parameter to limit the number of blocks that are returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetDocumentAnalysis, and populate the NextToken request parameter with the token value that's returned from the previous call to GetDocumentAnalysis.

For more information, see Document Text Analysis.

" + "documentation":"

Gets the results for an Amazon Textract asynchronous operation that analyzes text in a document.

You start asynchronous text analysis by calling StartDocumentAnalysis, which returns a job identifier (JobId). When the text analysis operation finishes, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that's registered in the initial call to StartDocumentAnalysis. To get the results of the text-detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetDocumentAnalysis, and pass the job identifier (JobId) from the initial call to StartDocumentAnalysis.

GetDocumentAnalysis returns an array of Block objects. The following types of information are returned:

  • Form data (key-value pairs). The related information is returned in two Block objects, each of type KEY_VALUE_SET: a KEY Block object and a VALUE Block object. For example, Name: Ana Silva Carolina contains a key and value. Name: is the key. Ana Silva Carolina is the value.

  • Table and table cell data. A TABLE Block object contains information about a detected table. A CELL Block object is returned for each cell in a table.

  • Lines and words of text. A LINE Block object contains one or more WORD Block objects. All lines and words that are detected in the document are returned (including text that doesn't have a relationship with the value of the StartDocumentAnalysis FeatureTypes input parameter).

  • Query. A QUERY Block object contains the query text, alias and link to the associated Query results block object.

  • Query Results. A QUERY_RESULT Block object contains the answer to the query and an ID that connects it to the query asked. This Block also contains a confidence score.

While processing a document with queries, look out for INVALID_REQUEST_PARAMETERS output. This indicates that either the per page query limit has been exceeded or that the operation is trying to query a page in the document which doesn’t exist.

Selection elements such as check boxes and option buttons (radio buttons) can be detected in form data and in tables. A SELECTION_ELEMENT Block object contains information about a selection element, including the selection status.

Use the MaxResults parameter to limit the number of blocks that are returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetDocumentAnalysis, and populate the NextToken request parameter with the token value that's returned from the previous call to GetDocumentAnalysis.

For more information, see Document Text Analysis.

" }, "GetDocumentTextDetection":{ "name":"GetDocumentTextDetection", @@ -157,6 +157,46 @@ ], "documentation":"

Gets the results for an Amazon Textract asynchronous operation that analyzes invoices and receipts. Amazon Textract finds contact information, items purchased, and vendor name, from input invoices and receipts.

You start asynchronous invoice/receipt analysis by calling StartExpenseAnalysis, which returns a job identifier (JobId). Upon completion of the invoice/receipt analysis, Amazon Textract publishes the completion status to the Amazon Simple Notification Service (Amazon SNS) topic. This topic must be registered in the initial call to StartExpenseAnalysis. To get the results of the invoice/receipt analysis operation, first ensure that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetExpenseAnalysis, and pass the job identifier (JobId) from the initial call to StartExpenseAnalysis.

Use the MaxResults parameter to limit the number of blocks that are returned. If there are more results than specified in MaxResults, the value of NextToken in the operation response contains a pagination token for getting the next set of results. To get the next page of results, call GetExpenseAnalysis, and populate the NextToken request parameter with the token value that's returned from the previous call to GetExpenseAnalysis.

For more information, see Analyzing Invoices and Receipts.

" }, + "GetLendingAnalysis":{ + "name":"GetLendingAnalysis", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLendingAnalysisRequest"}, + "output":{"shape":"GetLendingAnalysisResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"InvalidJobIdException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InvalidKMSKeyException"} + ], + "documentation":"

Gets the results for an Amazon Textract asynchronous operation that analyzes text in a lending document.

You start asynchronous text analysis by calling StartLendingAnalysis, which returns a job identifier (JobId). When the text analysis operation finishes, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that's registered in the initial call to StartLendingAnalysis.

To get the results of the text analysis operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetLendingAnalysis, and pass the job identifier (JobId) from the initial call to StartLendingAnalysis.

" + }, + "GetLendingAnalysisSummary":{ + "name":"GetLendingAnalysisSummary", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetLendingAnalysisSummaryRequest"}, + "output":{"shape":"GetLendingAnalysisSummaryResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"InvalidJobIdException"}, + {"shape":"InternalServerError"}, + {"shape":"ThrottlingException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InvalidKMSKeyException"} + ], + "documentation":"

Gets summarized results for the StartLendingAnalysis operation, which analyzes text in a lending document. The returned summary consists of information about documents grouped together by a common document type. Information like detected signatures, page numbers, and split documents is returned with respect to the type of grouped document.

You start asynchronous text analysis by calling StartLendingAnalysis, which returns a job identifier (JobId). When the text analysis operation finishes, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that's registered in the initial call to StartLendingAnalysis.

To get the results of the text analysis operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetLendingAnalysisSummary, and pass the job identifier (JobId) from the initial call to StartLendingAnalysis.

" + }, "StartDocumentAnalysis":{ "name":"StartDocumentAnalysis", "http":{ @@ -228,6 +268,30 @@ {"shape":"LimitExceededException"} ], "documentation":"

Starts the asynchronous analysis of invoices or receipts for data like contact information, items purchased, and vendor names.

StartExpenseAnalysis can analyze text in documents that are in JPEG, PNG, and PDF format. The documents must be stored in an Amazon S3 bucket. Use the DocumentLocation parameter to specify the name of your S3 bucket and the name of the document in that bucket.

StartExpenseAnalysis returns a job identifier (JobId) that you will provide to GetExpenseAnalysis to retrieve the results of the operation. When the analysis of the input invoices/receipts is finished, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that you provide to the NotificationChannel. To obtain the results of the invoice and receipt analysis operation, ensure that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetExpenseAnalysis, and pass the job identifier (JobId) that was returned by your call to StartExpenseAnalysis.

For more information, see Analyzing Invoices and Receipts.

" + }, + "StartLendingAnalysis":{ + "name":"StartLendingAnalysis", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartLendingAnalysisRequest"}, + "output":{"shape":"StartLendingAnalysisResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"InvalidS3ObjectException"}, + {"shape":"InvalidKMSKeyException"}, + {"shape":"UnsupportedDocumentException"}, + {"shape":"DocumentTooLargeException"}, + {"shape":"BadDocumentException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ProvisionedThroughputExceededException"}, + {"shape":"InternalServerError"}, + {"shape":"IdempotentParameterMismatchException"}, + {"shape":"ThrottlingException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Starts the classification and analysis of an input document. StartLendingAnalysis initiates the classification and analysis of a packet of lending documents. StartLendingAnalysis operates on a document file located in an Amazon S3 bucket.

StartLendingAnalysis can analyze text in documents that are in one of the following formats: JPEG, PNG, TIFF, PDF. Use DocumentLocation to specify the bucket name and the file name of the document.

StartLendingAnalysis returns a job identifier (JobId) that you use to get the results of the operation. When the text analysis is finished, Amazon Textract publishes a completion status to the Amazon Simple Notification Service (Amazon SNS) topic that you specify in NotificationChannel. To get the results of the text analysis operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If the status is SUCCEEDED you can call either GetLendingAnalysis or GetLendingAnalysisSummary and provide the JobId to obtain the results of the analysis.

If using OutputConfig to specify an Amazon S3 bucket, the output will be contained within the specified prefix in a directory labeled with the job-id. In the directory there are 3 sub-directories:

  • detailedResponse (contains the GetLendingAnalysis response)

  • summaryResponse (for the GetLendingAnalysisSummary response)

  • splitDocuments (documents split across logical boundaries)

" } }, "shapes":{ @@ -251,7 +315,7 @@ }, "FeatureTypes":{ "shape":"FeatureTypes", - "documentation":"

A list of the types of analysis to perform. Add TABLES to the list to return information about the tables that are detected in the input document. Add FORMS to return detected form data. To perform both types of analysis, add TABLES and FORMS to FeatureTypes. All lines and words detected in the document are included in the response (including text that isn't related to the value of FeatureTypes).

" + "documentation":"

A list of the types of analysis to perform. Add TABLES to the list to return information about the tables that are detected in the input document. Add FORMS to return detected form data. Add SIGNATURES to return the locations of detected signatures. To perform both forms and table analysis, add TABLES and FORMS to FeatureTypes. To detect signatures within form data and table data, add SIGNATURES to either TABLES or FORMS. All lines and words detected in the document are included in the response (including text that isn't related to the value of FeatureTypes).

" }, "HumanLoopConfig":{ "shape":"HumanLoopConfig", @@ -356,7 +420,7 @@ "members":{ "BlockType":{ "shape":"BlockType", - "documentation":"

The type of text item that's recognized. In operations for text detection, the following types are returned:

  • PAGE - Contains a list of the LINE Block objects that are detected on a document page.

  • WORD - A word detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces.

  • LINE - A string of tab-delimited, contiguous words that are detected on a document page.

In text analysis operations, the following types are returned:

  • PAGE - Contains a list of child Block objects that are detected on a document page.

  • KEY_VALUE_SET - Stores the KEY and VALUE Block objects for linked text that's detected on a document page. Use the EntityType field to determine if a KEY_VALUE_SET object is a KEY Block object or a VALUE Block object.

  • WORD - A word that's detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces.

  • LINE - A string of tab-delimited, contiguous words that are detected on a document page.

  • TABLE - A table that's detected on a document page. A table is grid-based information with two or more rows or columns, with a cell span of one row and one column each.

  • CELL - A cell within a detected table. The cell is the parent of the block that contains the text in the cell.

  • SELECTION_ELEMENT - A selection element such as an option button (radio button) or a check box that's detected on a document page. Use the value of SelectionStatus to determine the status of the selection element.

  • QUERY - A question asked during the call of AnalyzeDocument. Contains an alias and an ID that attachs it to its answer.

  • QUERY_RESULT - A response to a question asked during the call of analyze document. Comes with an alias and ID for ease of locating in a response. Also contains location and confidence score.

" + "documentation":"

The type of text item that's recognized. In operations for text detection, the following types are returned:

  • PAGE - Contains a list of the LINE Block objects that are detected on a document page.

  • WORD - A word detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces.

  • LINE - A string of tab-delimited, contiguous words that are detected on a document page.

In text analysis operations, the following types are returned:

  • PAGE - Contains a list of child Block objects that are detected on a document page.

  • KEY_VALUE_SET - Stores the KEY and VALUE Block objects for linked text that's detected on a document page. Use the EntityType field to determine if a KEY_VALUE_SET object is a KEY Block object or a VALUE Block object.

  • WORD - A word that's detected on a document page. A word is one or more ISO basic Latin script characters that aren't separated by spaces.

  • LINE - A string of tab-delimited, contiguous words that are detected on a document page.

  • TABLE - A table that's detected on a document page. A table is grid-based information with two or more rows or columns, with a cell span of one row and one column each.

  • CELL - A cell within a detected table. The cell is the parent of the block that contains the text in the cell.

  • SELECTION_ELEMENT - A selection element such as an option button (radio button) or a check box that's detected on a document page. Use the value of SelectionStatus to determine the status of the selection element.

  • SIGNATURE - The location and confidene score of a signature detected on a document page. Can be returned as part of a Key-Value pair or a detected cell.

  • QUERY - A question asked during the call of AnalyzeDocument. Contains an alias and an ID that attaches it to its answer.

  • QUERY_RESULT - A response to a question asked during the call of analyze document. Comes with an alias and ID for ease of locating in a response. Also contains location and confidence score.

" }, "Confidence":{ "shape":"Percent", @@ -408,7 +472,7 @@ }, "Page":{ "shape":"UInteger", - "documentation":"

The page on which a block was detected. Page is returned by asynchronous operations. Page values greater than 1 are only returned for multipage documents that are in PDF or TIFF format. A scanned image (JPEG/PNG), even if it contains multiple document pages, is considered to be a single-page document. The value of Page is always 1. Synchronous operations don't return Page because every input document is considered to be a single-page document.

" + "documentation":"

The page on which a block was detected. Page is returned by synchronous and asynchronous operations. Page values greater than 1 are only returned for multipage documents that are in PDF or TIFF format. A scanned image (JPEG/PNG) provided to an asynchronous operation, even if it contains multiple document pages, is considered a single-page document. This means that for scanned images the value of Page is always 1. Synchronous operations operations will also return a Page value of 1 because every input document is considered to be a single-page document.

" }, "Query":{ "shape":"Query", @@ -434,7 +498,8 @@ "MERGED_CELL", "TITLE", "QUERY", - "QUERY_RESULT" + "QUERY_RESULT", + "SIGNATURE" ] }, "BoundingBox":{ @@ -504,6 +569,20 @@ } } }, + "DetectedSignature":{ + "type":"structure", + "members":{ + "Page":{ + "shape":"UInteger", + "documentation":"

The page a detected signature was found on.

" + } + }, + "documentation":"

A structure that holds information regarding a detected signature on a page.

" + }, + "DetectedSignatureList":{ + "type":"list", + "member":{"shape":"DetectedSignature"} + }, "Document":{ "type":"structure", "members":{ @@ -518,6 +597,32 @@ }, "documentation":"

The input document, either as bytes or as an S3 object.

You pass image bytes to an Amazon Textract API operation by using the Bytes property. For example, you would use the Bytes property to pass a document loaded from a local file system. Image bytes passed by using the Bytes property must be base64 encoded. Your code might not need to encode document file bytes if you're using an AWS SDK to call Amazon Textract API operations.

You pass images stored in an S3 bucket to an Amazon Textract API operation by using the S3Object property. Documents stored in an S3 bucket don't need to be base64 encoded.

The AWS Region for the S3 bucket that contains the S3 object must match the AWS Region that you use for Amazon Textract operations.

If you use the AWS CLI to call Amazon Textract operations, passing image bytes using the Bytes property isn't supported. You must first upload the document to an Amazon S3 bucket, and then call the operation using the S3Object property.

For Amazon Textract to process an S3 object, the user must have permission to access the S3 object.

" }, + "DocumentGroup":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"NonEmptyString", + "documentation":"

The type of document that Amazon Textract has detected. See LINK for a list of all types returned by Textract.

" + }, + "SplitDocuments":{ + "shape":"SplitDocumentList", + "documentation":"

An array that contains information about the pages of a document, defined by logical boundary.

" + }, + "DetectedSignatures":{ + "shape":"DetectedSignatureList", + "documentation":"

A list of the detected signatures found in a document group.

" + }, + "UndetectedSignatures":{ + "shape":"UndetectedSignatureList", + "documentation":"

A list of any expected signatures not found in a document group.

" + } + }, + "documentation":"

Summary information about documents grouped by the same document type.

" + }, + "DocumentGroupList":{ + "type":"list", + "member":{"shape":"DocumentGroup"} + }, "DocumentLocation":{ "type":"structure", "members":{ @@ -526,7 +631,7 @@ "documentation":"

The Amazon S3 bucket that contains the input document.

" } }, - "documentation":"

The Amazon S3 bucket that contains the document to be processed. It's used by asynchronous operations such as StartDocumentTextDetection.

The input document can be an image file in JPEG or PNG format. It can also be a file in PDF format.

" + "documentation":"

The Amazon S3 bucket that contains the document to be processed. It's used by asynchronous operations.

The input document can be an image file in JPEG or PNG format. It can also be a file in PDF format.

" }, "DocumentMetadata":{ "type":"structure", @@ -564,6 +669,20 @@ "member":{"shape":"EntityType"} }, "ErrorCode":{"type":"string"}, + "ExpenseCurrency":{ + "type":"structure", + "members":{ + "Code":{ + "shape":"String", + "documentation":"

Currency code for detected currency. the current supported codes are:

  • USD

  • EUR

  • GBP

  • CAD

  • INR

  • JPY

  • CHF

  • AUD

  • CNY

  • BZR

  • SEK

  • HKD

" + }, + "Confidence":{ + "shape":"Percent", + "documentation":"

Percentage confideence in the detected currency.

" + } + }, + "documentation":"

Returns the kind of currency detected.

" + }, "ExpenseDetection":{ "type":"structure", "members":{ @@ -593,6 +712,10 @@ "LineItemGroups":{ "shape":"LineItemGroupList", "documentation":"

Information detected on each table of a document, seperated into LineItems.

" + }, + "Blocks":{ + "shape":"BlockList", + "documentation":"

This is a block object, the same as reported when DetectDocumentText is run on a document. It provides word level recognition of text.

" } }, "documentation":"

The structure holding all the information returned by AnalyzeExpense

" @@ -619,6 +742,14 @@ "PageNumber":{ "shape":"UInteger", "documentation":"

The page number the value was detected on.

" + }, + "Currency":{ + "shape":"ExpenseCurrency", + "documentation":"

Shows the kind of currency, both the code and confidence associated with any monatary value detected.

" + }, + "GroupProperties":{ + "shape":"ExpenseGroupPropertyList", + "documentation":"

Shows which group a response object belongs to, such as whether an address line belongs to the vendor's address or the recipent's address.

" } }, "documentation":"

Breakdown of detected information, seperated into the catagories Type, LabelDetection, and ValueDetection

" @@ -627,6 +758,24 @@ "type":"list", "member":{"shape":"ExpenseField"} }, + "ExpenseGroupProperty":{ + "type":"structure", + "members":{ + "Types":{ + "shape":"StringList", + "documentation":"

Informs you on whether the expense group is a name or an address.

" + }, + "Id":{ + "shape":"String", + "documentation":"

Provides a group Id number, which will be the same for each in the group.

" + } + }, + "documentation":"

Shows the group that a certain key belongs to. This helps differentiate between names and addresses for different organizations, that can be hard to determine via JSON response.

" + }, + "ExpenseGroupPropertyList":{ + "type":"list", + "member":{"shape":"ExpenseGroupProperty"} + }, "ExpenseType":{ "type":"structure", "members":{ @@ -641,12 +790,29 @@ }, "documentation":"

An object used to store information about the Type detected by Amazon Textract.

" }, + "Extraction":{ + "type":"structure", + "members":{ + "LendingDocument":{ + "shape":"LendingDocument", + "documentation":"

Holds the structured data returned by AnalyzeDocument for lending documents.

" + }, + "ExpenseDocument":{"shape":"ExpenseDocument"}, + "IdentityDocument":{"shape":"IdentityDocument"} + }, + "documentation":"

Contains information extracted by an analysis operation after using StartLendingAnalysis.

" + }, + "ExtractionList":{ + "type":"list", + "member":{"shape":"Extraction"} + }, "FeatureType":{ "type":"string", "enum":[ "TABLES", "FORMS", - "QUERIES" + "QUERIES", + "SIGNATURES" ] }, "FeatureTypes":{ @@ -825,6 +991,90 @@ } } }, + "GetLendingAnalysisRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{ + "shape":"JobId", + "documentation":"

A unique identifier for the lending or text-detection job. The JobId is returned from StartLendingAnalysis. A JobId value is only valid for 7 days.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return per paginated call. The largest value that you can specify is 30. If you specify a value greater than 30, a maximum of 30 results is returned. The default value is 30.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If the previous response was incomplete, Amazon Textract returns a pagination token in the response. You can use this pagination token to retrieve the next set of lending results.

" + } + } + }, + "GetLendingAnalysisResponse":{ + "type":"structure", + "members":{ + "DocumentMetadata":{"shape":"DocumentMetadata"}, + "JobStatus":{ + "shape":"JobStatus", + "documentation":"

The current status of the lending analysis job.

" + }, + "NextToken":{ + "shape":"PaginationToken", + "documentation":"

If the response is truncated, Amazon Textract returns this token. You can use this token in the subsequent request to retrieve the next set of lending results.

" + }, + "Results":{ + "shape":"LendingResultList", + "documentation":"

Holds the information returned by one of AmazonTextract's document analysis operations for the pinstripe.

" + }, + "Warnings":{ + "shape":"Warnings", + "documentation":"

A list of warnings that occurred during the lending analysis operation.

" + }, + "StatusMessage":{ + "shape":"StatusMessage", + "documentation":"

Returns if the lending analysis job could not be completed. Contains explanation for what error occurred.

" + }, + "AnalyzeLendingModelVersion":{ + "shape":"String", + "documentation":"

The current model version of the Analyze Lending API.

" + } + } + }, + "GetLendingAnalysisSummaryRequest":{ + "type":"structure", + "required":["JobId"], + "members":{ + "JobId":{ + "shape":"JobId", + "documentation":"

A unique identifier for the lending or text-detection job. The JobId is returned from StartLendingAnalysis. A JobId value is only valid for 7 days.

" + } + } + }, + "GetLendingAnalysisSummaryResponse":{ + "type":"structure", + "members":{ + "DocumentMetadata":{"shape":"DocumentMetadata"}, + "JobStatus":{ + "shape":"JobStatus", + "documentation":"

The current status of the lending analysis job.

" + }, + "Summary":{ + "shape":"LendingSummary", + "documentation":"

Contains summary information for documents grouped by type.

" + }, + "Warnings":{ + "shape":"Warnings", + "documentation":"

A list of warnings that occurred during the lending analysis operation.

" + }, + "StatusMessage":{ + "shape":"StatusMessage", + "documentation":"

Returns if the lending analysis could not be completed. Contains explanation for what error occurred.

" + }, + "AnalyzeLendingModelVersion":{ + "shape":"String", + "documentation":"

The current model version of the Analyze Lending API.

" + } + } + }, "HumanLoopActivationConditionsEvaluationResults":{ "type":"string", "max":10240 @@ -936,6 +1186,10 @@ "IdentityDocumentFields":{ "shape":"IdentityDocumentFieldList", "documentation":"

The structure used to record information extracted from identity documents. Contains both normalized field and value of the extracted text.

" + }, + "Blocks":{ + "shape":"BlockList", + "documentation":"

Individual word recognition, as returned by document detection.

" } }, "documentation":"

The structure that lists each document processed in an AnalyzeID operation.

" @@ -973,7 +1227,7 @@ "type":"structure", "members":{ }, - "documentation":"

An invalid job identifier was passed to GetDocumentAnalysis or to GetDocumentAnalysis.

", + "documentation":"

An invalid job identifier was passed to an asynchronous analysis operation.

", "exception":true }, "InvalidKMSKeyException":{ @@ -1024,6 +1278,98 @@ "min":1, "pattern":"^[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,2048}$" }, + "LendingDetection":{ + "type":"structure", + "members":{ + "Text":{ + "shape":"String", + "documentation":"

The text extracted for a detected value in a lending document.

" + }, + "SelectionStatus":{ + "shape":"SelectionStatus", + "documentation":"

The selection status of a selection element, such as an option button or check box.

" + }, + "Geometry":{"shape":"Geometry"}, + "Confidence":{ + "shape":"Percent", + "documentation":"

The confidence level for the text of a detected value in a lending document.

" + } + }, + "documentation":"

The results extracted for a lending document.

" + }, + "LendingDetectionList":{ + "type":"list", + "member":{"shape":"LendingDetection"} + }, + "LendingDocument":{ + "type":"structure", + "members":{ + "LendingFields":{ + "shape":"LendingFieldList", + "documentation":"

An array of LendingField objects.

" + }, + "SignatureDetections":{ + "shape":"SignatureDetectionList", + "documentation":"

A list of signatures detected in a lending document.

" + } + }, + "documentation":"

Holds the structured data returned by AnalyzeDocument for lending documents.

" + }, + "LendingField":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"String", + "documentation":"

The type of the lending document.

" + }, + "KeyDetection":{"shape":"LendingDetection"}, + "ValueDetections":{ + "shape":"LendingDetectionList", + "documentation":"

An array of LendingDetection objects.

" + } + }, + "documentation":"

Holds the normalized key-value pairs returned by AnalyzeDocument, including the document type, detected text, and geometry.

" + }, + "LendingFieldList":{ + "type":"list", + "member":{"shape":"LendingField"} + }, + "LendingResult":{ + "type":"structure", + "members":{ + "Page":{ + "shape":"UInteger", + "documentation":"

The page number for a page, with regard to whole submission.

" + }, + "PageClassification":{ + "shape":"PageClassification", + "documentation":"

The classifier result for a given page.

" + }, + "Extractions":{ + "shape":"ExtractionList", + "documentation":"

An array of Extraction to hold structured data. e.g. normalized key value pairs instead of raw OCR detections .

" + } + }, + "documentation":"

Contains the detections for each page analyzed through the Analyze Lending API.

" + }, + "LendingResultList":{ + "type":"list", + "member":{"shape":"LendingResult"} + }, + "LendingSummary":{ + "type":"structure", + "members":{ + "DocumentGroups":{ + "shape":"DocumentGroupList", + "documentation":"

Contains an array of all DocumentGroup objects.

" + }, + "UndetectedDocumentTypes":{ + "shape":"UndetectedDocumentTypeList", + "documentation":"

UndetectedDocumentTypes.

" + } + }, + "documentation":"

Contains information regarding DocumentGroups and UndetectedDocumentTypes.

" + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -1101,7 +1447,7 @@ "documentation":"

The Amazon Resource Name (ARN) of an IAM role that gives Amazon Textract publishing permissions to the Amazon SNS topic.

" } }, - "documentation":"

The Amazon Simple Notification Service (Amazon SNS) topic to which Amazon Textract publishes the completion status of an asynchronous document operation, such as StartDocumentTextDetection.

" + "documentation":"

The Amazon Simple Notification Service (Amazon SNS) topic to which Amazon Textract publishes the completion status of an asynchronous document operation.

" }, "OutputConfig":{ "type":"structure", @@ -1116,7 +1462,29 @@ "documentation":"

The prefix of the object key that the output will be saved to. When not enabled, the prefix will be “textract_output\".

" } }, - "documentation":"

Sets whether or not your output will go to a user created bucket. Used to set the name of the bucket, and the prefix on the output file.

OutputConfig is an optional parameter which lets you adjust where your output will be placed. By default, Amazon Textract will store the results internally and can only be accessed by the Get API operations. With OutputConfig enabled, you can set the name of the bucket the output will be sent to and the file prefix of the results where you can download your results. Additionally, you can set the KMSKeyID parameter to a customer master key (CMK) to encrypt your output. Without this parameter set Amazon Textract will encrypt server-side using the AWS managed CMK for Amazon S3.

Decryption of Customer Content is necessary for processing of the documents by Amazon Textract. If your account is opted out under an AI services opt out policy then all unencrypted Customer Content is immediately and permanently deleted after the Customer Content has been processed by the service. No copy of of the output is retained by Amazon Textract. For information about how to opt out, see Managing AI services opt-out policy.

For more information on data privacy, see the Data Privacy FAQ.

" + "documentation":"

Sets whether or not your output will go to a user created bucket. Used to set the name of the bucket, and the prefix on the output file.

OutputConfig is an optional parameter which lets you adjust where your output will be placed. By default, Amazon Textract will store the results internally and can only be accessed by the Get API operations. With OutputConfig enabled, you can set the name of the bucket the output will be sent to the file prefix of the results where you can download your results. Additionally, you can set the KMSKeyID parameter to a customer master key (CMK) to encrypt your output. Without this parameter set Amazon Textract will encrypt server-side using the AWS managed CMK for Amazon S3.

Decryption of Customer Content is necessary for processing of the documents by Amazon Textract. If your account is opted out under an AI services opt out policy then all unencrypted Customer Content is immediately and permanently deleted after the Customer Content has been processed by the service. No copy of of the output is retained by Amazon Textract. For information about how to opt out, see Managing AI services opt-out policy.

For more information on data privacy, see the Data Privacy FAQ.

" + }, + "PageClassification":{ + "type":"structure", + "required":[ + "PageType", + "PageNumber" + ], + "members":{ + "PageType":{ + "shape":"PredictionList", + "documentation":"

The class, or document type, assigned to a detected Page object. The class, or document type, assigned to a detected Page object.

" + }, + "PageNumber":{ + "shape":"PredictionList", + "documentation":"

The page number the value was detected on, relative to Amazon Textract's starting position.

" + } + }, + "documentation":"

The class assigned to a Page object detected in an input document. Contains information regarding the predicted type/class of a document's page and the page number that the Page object was detected on.

" + }, + "PageList":{ + "type":"list", + "member":{"shape":"UInteger"} }, "Pages":{ "type":"list", @@ -1151,6 +1519,24 @@ "type":"list", "member":{"shape":"Point"} }, + "Prediction":{ + "type":"structure", + "members":{ + "Value":{ + "shape":"NonEmptyString", + "documentation":"

The predicted value of a detected object.

" + }, + "Confidence":{ + "shape":"Percent", + "documentation":"

Amazon Textract's confidence in its predicted value.

" + } + }, + "documentation":"

Contains information regarding predicted values returned by Amazon Textract operations, including the predicted value and the confidence in the predicted value.

" + }, + "PredictionList":{ + "type":"list", + "member":{"shape":"Prediction"} + }, "ProvisionedThroughputExceededException":{ "type":"structure", "members":{ @@ -1188,7 +1574,7 @@ }, "Pages":{ "shape":"QueryPages", - "documentation":"

List of pages associated with the query. The following is a list of rules for using this parameter.

  • If a page is not specified, it is set to [\"1\"] by default.

  • The following characters are allowed in the parameter's string: 0 1 2 3 4 5 6 7 8 9 - *. No whitespace is allowed.

  • When using * to indicate all pages, it must be the only element in the string.

  • You can use page intervals, such as [“1-3”, “1-1”, “4-*”]. Where * indicates last page of document.

  • Specified pages must be greater than 0 and less than or equal to the number of pages in the document.

" + "documentation":"

Pages is a parameter that the user inputs to specify which pages to apply a query to. The following is a list of rules for using this parameter.

  • If a page is not specified, it is set to [\"1\"] by default.

  • The following characters are allowed in the parameter's string: 0 1 2 3 4 5 6 7 8 9 - *. No whitespace is allowed.

  • When using * to indicate all pages, it must be the only element in the list.

  • You can use page intervals, such as [“1-3”, “1-1”, “4-*”]. Where * indicates last page of document.

  • Specified pages must be greater than 0 and less than or equal to the number of pages in the document.

" } }, "documentation":"

Each query contains the question you want to ask in the Text and the alias you want to associate.

" @@ -1294,6 +1680,39 @@ "NOT_SELECTED" ] }, + "SignatureDetection":{ + "type":"structure", + "members":{ + "Confidence":{ + "shape":"Percent", + "documentation":"

The confidence, from 0 to 100, in the predicted values for a detected signature.

" + }, + "Geometry":{"shape":"Geometry"} + }, + "documentation":"

Information regarding a detected signature on a page.

" + }, + "SignatureDetectionList":{ + "type":"list", + "member":{"shape":"SignatureDetection"} + }, + "SplitDocument":{ + "type":"structure", + "members":{ + "Index":{ + "shape":"UInteger", + "documentation":"

The index for a given document in a DocumentGroup of a specific Type.

" + }, + "Pages":{ + "shape":"PageList", + "documentation":"

An array of page numbers for a for a given document, ordered by logical boundary.

" + } + }, + "documentation":"

Contains information about the pages of a document, defined by logical boundary.

" + }, + "SplitDocumentList":{ + "type":"list", + "member":{"shape":"SplitDocument"} + }, "StartDocumentAnalysisRequest":{ "type":"structure", "required":[ @@ -1419,8 +1838,42 @@ } } }, + "StartLendingAnalysisRequest":{ + "type":"structure", + "required":["DocumentLocation"], + "members":{ + "DocumentLocation":{"shape":"DocumentLocation"}, + "ClientRequestToken":{ + "shape":"ClientRequestToken", + "documentation":"

The idempotent token that you use to identify the start request. If you use the same token with multiple StartLendingAnalysis requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidentally started more than once. For more information, see Calling Amazon Textract Asynchronous Operations.

" + }, + "JobTag":{ + "shape":"JobTag", + "documentation":"

An identifier that you specify to be included in the completion notification published to the Amazon SNS topic. For example, you can use JobTag to identify the type of document that the completion notification corresponds to (such as a tax form or a receipt).

" + }, + "NotificationChannel":{"shape":"NotificationChannel"}, + "OutputConfig":{"shape":"OutputConfig"}, + "KMSKeyId":{ + "shape":"KMSKeyId", + "documentation":"

The KMS key used to encrypt the inference results. This can be in either Key ID or Key Alias format. When a KMS key is provided, the KMS key will be used for server-side encryption of the objects in the customer bucket. When this parameter is not enabled, the result will be encrypted server side, using SSE-S3.

" + } + } + }, + "StartLendingAnalysisResponse":{ + "type":"structure", + "members":{ + "JobId":{ + "shape":"JobId", + "documentation":"

A unique identifier for the lending or text-detection job. The JobId is returned from StartLendingAnalysis. A JobId value is only valid for 7 days.

" + } + } + }, "StatusMessage":{"type":"string"}, "String":{"type":"string"}, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, "TextType":{ "type":"string", "enum":[ @@ -1440,6 +1893,24 @@ "type":"integer", "min":0 }, + "UndetectedDocumentTypeList":{ + "type":"list", + "member":{"shape":"NonEmptyString"} + }, + "UndetectedSignature":{ + "type":"structure", + "members":{ + "Page":{ + "shape":"UInteger", + "documentation":"

The page where a signature was expected but not found.

" + } + }, + "documentation":"

A structure containing information about an undetected signature on a page where it was expected but not found.

" + }, + "UndetectedSignatureList":{ + "type":"list", + "member":{"shape":"UndetectedSignature"} + }, "UnsupportedDocumentException":{ "type":"structure", "members":{ diff --git a/botocore/data/timestream-query/2018-11-01/endpoint-rule-set-1.json b/botocore/data/timestream-query/2018-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..edfe58fd --- /dev/null +++ b/botocore/data/timestream-query/2018-11-01/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://query.timestream-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://query.timestream-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://query.timestream.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://query.timestream.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/timestream-query/2018-11-01/examples-1.json b/botocore/data/timestream-query/2018-11-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/timestream-query/2018-11-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/timestream-write/2018-11-01/endpoint-rule-set-1.json b/botocore/data/timestream-write/2018-11-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..303ad20c --- /dev/null +++ b/botocore/data/timestream-write/2018-11-01/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ingest.timestream-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ingest.timestream-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://ingest.timestream.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://ingest.timestream.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/timestream-write/2018-11-01/examples-1.json b/botocore/data/timestream-write/2018-11-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/timestream-write/2018-11-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/transcribe/2017-10-26/endpoint-rule-set-1.json b/botocore/data/transcribe/2017-10-26/endpoint-rule-set-1.json new file mode 100644 index 00000000..138c41f3 --- /dev/null +++ b/botocore/data/transcribe/2017-10-26/endpoint-rule-set-1.json @@ -0,0 +1,409 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://transcribe-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://fips.transcribe.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://fips.transcribe.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://transcribe-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://transcribe.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-north-1" + ] + } + ], + "endpoint": { + "url": "https://cn.transcribe.cn-north-1.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "cn-northwest-1" + ] + } + ], + "endpoint": { + "url": "https://cn.transcribe.cn-northwest-1.amazonaws.com.cn", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://transcribe.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/transcribe/2017-10-26/service-2.json b/botocore/data/transcribe/2017-10-26/service-2.json index 5ae1359d..ff0a11b0 100644 --- a/botocore/data/transcribe/2017-10-26/service-2.json +++ b/botocore/data/transcribe/2017-10-26/service-2.json @@ -27,7 +27,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

Creates a call analytics category. Amazon Transcribe applies the conditions specified by your call analytics categories to your call analytics jobs. For each analytics category, you must create between 1 and 20 rules. For example, you can create a 'greeting' category with a rule that flags calls in which your agent does not use a specified phrase (for example: \"Please note this call may be recorded.\") in the first 15 seconds of the call. When you start a call analytics job, Amazon Transcribe applies all your existing call analytics categories to that job.

" + "documentation":"

Creates a new Call Analytics category.

All categories are automatically applied to your Call Analytics transcriptions. Note that in order to apply categories to your transcriptions, you must create them before submitting your transcription request, as categories cannot be applied retroactively.

When creating a new category, you can use the InputType parameter to label the category as a batch category (POST_CALL) or a streaming category (REAL_TIME). Batch categories can only be applied to batch transcriptions and streaming categories can only be applied to streaming transcriptions. If you do not include InputType, your category is created as a batch category by default.

Call Analytics categories are composed of rules. For each category, you must create between 1 and 20 rules. Rules can include these parameters: , , , and .

To update an existing category, see .

To learn more about Call Analytics categories, see Creating categories for batch transcriptions and Creating categories for streaming transcriptions.

" }, "CreateLanguageModel":{ "name":"CreateLanguageModel", @@ -43,7 +43,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

Creates a new custom language model. When creating a new language model, you must specify if you want a Wideband (audio sample rates over 16,000 Hz) or Narrowband (audio sample rates under 16,000 Hz) base model. You then include the S3 URI location of your training and tuning files, the language for the model, a unique name, and any tags you want associated with your model.

" + "documentation":"

Creates a new custom language model.

When creating a new custom language model, you must specify:

  • If you want a Wideband (audio sample rates over 16,000 Hz) or Narrowband (audio sample rates under 16,000 Hz) base model

  • The location of your training and tuning files (this must be an Amazon S3 URI)

  • The language of your model

  • A unique name for your model

" }, "CreateMedicalVocabulary":{ "name":"CreateMedicalVocabulary", @@ -59,7 +59,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

Creates a new custom medical vocabulary.

When creating a new medical vocabulary, you must upload a text file that contains your new entries, phrases, and terms into an S3 bucket. Note that this differs from , where you can include a list of terms within your request using the Phrases flag, as CreateMedicalVocabulary does not support the Phrases flag.

For more information on creating a custom vocabulary text file, see Creating a custom vocabulary.

" + "documentation":"

Creates a new custom medical vocabulary.

Before creating a new custom medical vocabulary, you must first upload a text file that contains your new entries, phrases, and terms into an Amazon S3 bucket. Note that this differs from , where you can include a list of terms within your request using the Phrases flag; CreateMedicalVocabulary does not support the Phrases flag.

Each language has a character set that contains all allowed characters for that specific language. If you use unsupported characters, your custom vocabulary request fails. Refer to Character Sets for Custom Vocabularies to get the character set for your language.

For more information, see Custom vocabularies.

" }, "CreateVocabulary":{ "name":"CreateVocabulary", @@ -75,7 +75,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

Creates a new custom vocabulary.

When creating a new medical vocabulary, you can either upload a text file that contains your new entries, phrases, and terms into an S3 bucket or include a list of terms directly in your request using the Phrases flag.

For more information on creating a custom vocabulary, see Creating a custom vocabulary.

" + "documentation":"

Creates a new custom vocabulary.

When creating a new custom vocabulary, you can either upload a text file that contains your new entries, phrases, and terms into an Amazon S3 bucket and include the URI in your request. Or you can include a list of terms directly in your request using the Phrases flag.

Each language has a character set that contains all allowed characters for that specific language. If you use unsupported characters, your custom vocabulary request fails. Refer to Character Sets for Custom Vocabularies to get the character set for your language.

For more information, see Custom vocabularies.

" }, "CreateVocabularyFilter":{ "name":"CreateVocabularyFilter", @@ -91,7 +91,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

Creates a new vocabulary filter that you can use to filter words from your transcription output. For example, you can use this operation to remove profanity from your transcript.

" + "documentation":"

Creates a new custom vocabulary filter.

You can use custom vocabulary filters to mask, delete, or flag specific words from your transcript. Custom vocabulary filters are commonly used to mask profanity in transcripts.

Each language has a character set that contains all allowed characters for that specific language. If you use unsupported characters, your custom vocabulary filter request fails. Refer to Character Sets for Custom Vocabularies to get the character set for your language.

For more information, see Vocabulary filtering.

" }, "DeleteCallAnalyticsCategory":{ "name":"DeleteCallAnalyticsCategory", @@ -107,7 +107,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Deletes a call analytics category. To use this operation, specify the name of the category you want to delete using CategoryName.

" + "documentation":"

Deletes a Call Analytics category. To use this operation, specify the name of the category you want to delete using CategoryName. Category names are case sensitive.

" }, "DeleteCallAnalyticsJob":{ "name":"DeleteCallAnalyticsJob", @@ -122,7 +122,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Deletes a call analytics job. To use this operation, specify the name of the job you want to delete using CallAnalyticsJobName.

" + "documentation":"

Deletes a Call Analytics job. To use this operation, specify the name of the job you want to delete using CallAnalyticsJobName. Job names are case sensitive.

" }, "DeleteLanguageModel":{ "name":"DeleteLanguageModel", @@ -136,7 +136,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Deletes a custom language model. To use this operation, specify the name of the language model you want to delete using ModelName.

" + "documentation":"

Deletes a custom language model. To use this operation, specify the name of the language model you want to delete using ModelName. custom language model names are case sensitive.

" }, "DeleteMedicalTranscriptionJob":{ "name":"DeleteMedicalTranscriptionJob", @@ -150,7 +150,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Deletes a medical transcription job, along with any related information. To use this operation, specify the name of the job you want to delete using MedicalTranscriptionJobName.

" + "documentation":"

Deletes a medical transcription job. To use this operation, specify the name of the job you want to delete using MedicalTranscriptionJobName. Job names are case sensitive.

" }, "DeleteMedicalVocabulary":{ "name":"DeleteMedicalVocabulary", @@ -165,7 +165,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Deletes a custom medical vocabulary. To use this operation, specify the name of the vocabulary you want to delete using VocabularyName.

" + "documentation":"

Deletes a custom medical vocabulary. To use this operation, specify the name of the custom vocabulary you want to delete using VocabularyName. Custom vocabulary names are case sensitive.

" }, "DeleteTranscriptionJob":{ "name":"DeleteTranscriptionJob", @@ -179,7 +179,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Deletes a transcription job, along with any related information. To use this operation, specify the name of the job you want to delete using TranscriptionJobName.

" + "documentation":"

Deletes a transcription job. To use this operation, specify the name of the job you want to delete using TranscriptionJobName. Job names are case sensitive.

" }, "DeleteVocabulary":{ "name":"DeleteVocabulary", @@ -194,7 +194,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Deletes a custom vocabulary. To use this operation, specify the name of the vocabulary you want to delete using VocabularyName.

" + "documentation":"

Deletes a custom vocabulary. To use this operation, specify the name of the custom vocabulary you want to delete using VocabularyName. Custom vocabulary names are case sensitive.

" }, "DeleteVocabularyFilter":{ "name":"DeleteVocabularyFilter", @@ -209,7 +209,7 @@ {"shape":"BadRequestException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Deletes a vocabulary filter. To use this operation, specify the name of the vocabulary filter you want to delete using VocabularyFilterName.

" + "documentation":"

Deletes a custom vocabulary filter. To use this operation, specify the name of the custom vocabulary filter you want to delete using VocabularyFilterName. Custom vocabulary filter names are case sensitive.

" }, "DescribeLanguageModel":{ "name":"DescribeLanguageModel", @@ -225,7 +225,7 @@ {"shape":"InternalFailureException"}, {"shape":"NotFoundException"} ], - "documentation":"

Provides information about a specific custom language model in your Amazon Web Services account.

This operation also shows if the base language model you used to create your custom language model has been updated. If Amazon Transcribe has updated the base model, you can create a new custom language model using the updated base model.

If you tried to create a new custom language model and the request wasn't successful, you can use this operation to help identify the reason.

" + "documentation":"

Provides information about the specified custom language model.

This operation also shows if the base language model that you used to create your custom language model has been updated. If Amazon Transcribe has updated the base model, you can create a new custom language model using the updated base model.

If you tried to create a new custom language model and the request wasn't successful, you can use DescribeLanguageModel to help identify the reason for this failure.

" }, "GetCallAnalyticsCategory":{ "name":"GetCallAnalyticsCategory", @@ -241,7 +241,7 @@ {"shape":"InternalFailureException"}, {"shape":"BadRequestException"} ], - "documentation":"

Retrieves information about a call analytics category.

" + "documentation":"

Provides information about the specified Call Analytics category.

To get a list of your Call Analytics categories, use the operation.

" }, "GetCallAnalyticsJob":{ "name":"GetCallAnalyticsJob", @@ -257,7 +257,7 @@ {"shape":"InternalFailureException"}, {"shape":"NotFoundException"} ], - "documentation":"

Retrieves information about a call analytics job.

To view the job's status, refer to the CallAnalyticsJobStatus field. If the status is COMPLETED, the job is finished. You can then find your transcript at the URI specified in the TranscriptFileUri field. If you enabled personally identifiable information (PII) redaction, the redacted transcript appears in the RedactedTranscriptFileUri field.

" + "documentation":"

Provides information about the specified Call Analytics job.

To view the job's status, refer to CallAnalyticsJobStatus. If the status is COMPLETED, the job is finished. You can find your completed transcript at the URI specified in TranscriptFileUri. If the status is FAILED, FailureReason provides details on why your transcription job failed.

If you enabled personally identifiable information (PII) redaction, the redacted transcript appears at the location specified in RedactedTranscriptFileUri.

If you chose to redact the audio in your media file, you can find your redacted media file at the location specified in RedactedMediaFileUri.

To get a list of your Call Analytics jobs, use the operation.

" }, "GetMedicalTranscriptionJob":{ "name":"GetMedicalTranscriptionJob", @@ -273,7 +273,7 @@ {"shape":"InternalFailureException"}, {"shape":"NotFoundException"} ], - "documentation":"

Retrieves information about a medical transcription job.

To view the job's status, refer to the TranscriptionJobStatus field. If the status is COMPLETED, the job is finished. You can then find your transcript at the URI specified in the TranscriptFileUri field.

" + "documentation":"

Provides information about the specified medical transcription job.

To view the status of the specified medical transcription job, check the TranscriptionJobStatus field. If the status is COMPLETED, the job is finished. You can find the results at the location specified in TranscriptFileUri. If the status is FAILED, FailureReason provides details on why your transcription job failed.

To get a list of your medical transcription jobs, use the operation.

" }, "GetMedicalVocabulary":{ "name":"GetMedicalVocabulary", @@ -289,7 +289,7 @@ {"shape":"InternalFailureException"}, {"shape":"BadRequestException"} ], - "documentation":"

Retrieves information about a medical vocabulary.

" + "documentation":"

Provides information about the specified custom medical vocabulary.

To view the status of the specified custom medical vocabulary, check the VocabularyState field. If the status is READY, your custom vocabulary is available to use. If the status is FAILED, FailureReason provides details on why your vocabulary failed.

To get a list of your custom medical vocabularies, use the operation.

" }, "GetTranscriptionJob":{ "name":"GetTranscriptionJob", @@ -305,7 +305,7 @@ {"shape":"InternalFailureException"}, {"shape":"NotFoundException"} ], - "documentation":"

Returns information about a transcription job. To see the status of the job, check the TranscriptionJobStatus field. If the status is COMPLETED, the job is finished and you can find the results at the location specified in the TranscriptFileUri field. If you enable content redaction, the redacted transcript appears in RedactedTranscriptFileUri.

" + "documentation":"

Provides information about the specified transcription job.

To view the status of the specified transcription job, check the TranscriptionJobStatus field. If the status is COMPLETED, the job is finished. You can find the results at the location specified in TranscriptFileUri. If the status is FAILED, FailureReason provides details on why your transcription job failed.

If you enabled content redaction, the redacted transcript can be found at the location specified in RedactedTranscriptFileUri.

To get a list of your transcription jobs, use the operation.

" }, "GetVocabulary":{ "name":"GetVocabulary", @@ -321,7 +321,7 @@ {"shape":"InternalFailureException"}, {"shape":"BadRequestException"} ], - "documentation":"

Gets information about a vocabulary.

" + "documentation":"

Provides information about the specified custom vocabulary.

To view the status of the specified custom vocabulary, check the VocabularyState field. If the status is READY, your custom vocabulary is available to use. If the status is FAILED, FailureReason provides details on why your custom vocabulary failed.

To get a list of your custom vocabularies, use the operation.

" }, "GetVocabularyFilter":{ "name":"GetVocabularyFilter", @@ -337,7 +337,7 @@ {"shape":"InternalFailureException"}, {"shape":"BadRequestException"} ], - "documentation":"

Returns information about a vocabulary filter.

" + "documentation":"

Provides information about the specified custom vocabulary filter.

To get a list of your custom vocabulary filters, use the operation.

" }, "ListCallAnalyticsCategories":{ "name":"ListCallAnalyticsCategories", @@ -352,7 +352,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Provides more information about the call analytics categories that you've created. You can use the information in this list to find a specific category. You can then use the operation to get more information about it.

" + "documentation":"

Provides a list of Call Analytics categories, including all rules that make up each category.

To get detailed information about a specific Call Analytics category, use the operation.

" }, "ListCallAnalyticsJobs":{ "name":"ListCallAnalyticsJobs", @@ -367,7 +367,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

List call analytics jobs with a specified status or substring that matches their names.

" + "documentation":"

Provides a list of Call Analytics jobs that match the specified criteria. If no criteria are specified, all Call Analytics jobs are returned.

To get detailed information about a specific Call Analytics job, use the operation.

" }, "ListLanguageModels":{ "name":"ListLanguageModels", @@ -382,7 +382,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Provides more information about the custom language models you've created. You can use the information in this list to find a specific custom language model. You can then use the operation to get more information about it.

" + "documentation":"

Provides a list of custom language models that match the specified criteria. If no criteria are specified, all custom language models are returned.

To get detailed information about a specific custom language model, use the operation.

" }, "ListMedicalTranscriptionJobs":{ "name":"ListMedicalTranscriptionJobs", @@ -397,7 +397,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Lists medical transcription jobs with a specified status or substring that matches their names.

" + "documentation":"

Provides a list of medical transcription jobs that match the specified criteria. If no criteria are specified, all medical transcription jobs are returned.

To get detailed information about a specific medical transcription job, use the operation.

" }, "ListMedicalVocabularies":{ "name":"ListMedicalVocabularies", @@ -412,7 +412,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Returns a list of vocabularies that match the specified criteria. If you don't enter a value in any of the request parameters, returns the entire list of vocabularies.

" + "documentation":"

Provides a list of custom medical vocabularies that match the specified criteria. If no criteria are specified, all custom medical vocabularies are returned.

To get detailed information about a specific custom medical vocabulary, use the operation.

" }, "ListTagsForResource":{ "name":"ListTagsForResource", @@ -428,7 +428,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Lists all tags associated with a given transcription job, vocabulary, or resource.

" + "documentation":"

Lists all tags associated with the specified transcription job, vocabulary, model, or resource.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" }, "ListTranscriptionJobs":{ "name":"ListTranscriptionJobs", @@ -443,7 +443,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Lists transcription jobs with the specified status.

" + "documentation":"

Provides a list of transcription jobs that match the specified criteria. If no criteria are specified, all transcription jobs are returned.

To get detailed information about a specific transcription job, use the operation.

" }, "ListVocabularies":{ "name":"ListVocabularies", @@ -458,7 +458,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Returns a list of vocabularies that match the specified criteria. If no criteria are specified, returns the entire list of vocabularies.

" + "documentation":"

Provides a list of custom vocabularies that match the specified criteria. If no criteria are specified, all custom vocabularies are returned.

To get detailed information about a specific custom vocabulary, use the operation.

" }, "ListVocabularyFilters":{ "name":"ListVocabularyFilters", @@ -473,7 +473,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Gets information about vocabulary filters.

" + "documentation":"

Provides a list of custom vocabulary filters that match the specified criteria. If no criteria are specified, all custom vocabularies are returned.

To get detailed information about a specific custom vocabulary filter, use the operation.

" }, "StartCallAnalyticsJob":{ "name":"StartCallAnalyticsJob", @@ -489,7 +489,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

Starts an asynchronous analytics job that not only transcribes the audio recording of a caller and agent, but also returns additional insights. These insights include how quickly or loudly the caller or agent was speaking. To retrieve additional insights with your analytics jobs, create categories. A category is a way to classify analytics jobs based on attributes, such as a customer's sentiment or a particular phrase being used during the call. For more information, see the operation.

" + "documentation":"

Transcribes the audio from a customer service call and applies any additional Request Parameters you choose to include in your request.

In addition to many standard transcription features, Call Analytics provides you with call characteristics, call summarization, speaker sentiment, and optional redaction of your text transcript and your audio file. You can also apply custom categories to flag specified conditions. To learn more about these features and insights, refer to Analyzing call center audio with Call Analytics.

If you want to apply categories to your Call Analytics job, you must create them before submitting your job request. Categories cannot be retroactively applied to a job. To create a new category, use the operation. To learn more about Call Analytics categories, see Creating categories for batch transcriptions and Creating categories for streaming transcriptions.

To make a StartCallAnalyticsJob request, you must first upload your media file into an Amazon S3 bucket; you can then specify the Amazon S3 location of the file using the Media parameter.

You must include the following parameters in your StartCallAnalyticsJob request:

  • region: The Amazon Web Services Region where you are making your request. For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer to Amazon Transcribe endpoints and quotas.

  • CallAnalyticsJobName: A custom name that you create for your transcription job that's unique within your Amazon Web Services account.

  • DataAccessRoleArn: The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files.

  • Media (MediaFileUri or RedactedMediaFileUri): The Amazon S3 location of your media file.

With Call Analytics, you can redact the audio contained in your media file by including RedactedMediaFileUri, instead of MediaFileUri, to specify the location of your input audio. If you choose to redact your audio, you can find your redacted media at the location specified in the RedactedMediaFileUri field of your response.

" }, "StartMedicalTranscriptionJob":{ "name":"StartMedicalTranscriptionJob", @@ -505,7 +505,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

Starts a batch job to transcribe medical speech to text.

" + "documentation":"

Transcribes the audio from a medical dictation or conversation and applies any additional Request Parameters you choose to include in your request.

In addition to many standard transcription features, Amazon Transcribe Medical provides you with a robust medical vocabulary and, optionally, content identification, which adds flags to personal health information (PHI). To learn more about these features, refer to How Amazon Transcribe Medical works.

To make a StartMedicalTranscriptionJob request, you must first upload your media file into an Amazon S3 bucket; you can then specify the S3 location of the file using the Media parameter.

You must include the following parameters in your StartMedicalTranscriptionJob request:

  • region: The Amazon Web Services Region where you are making your request. For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer to Amazon Transcribe endpoints and quotas.

  • MedicalTranscriptionJobName: A custom name you create for your transcription job that is unique within your Amazon Web Services account.

  • Media (MediaFileUri): The Amazon S3 location of your media file.

  • LanguageCode: This must be en-US.

  • OutputBucketName: The Amazon S3 bucket where you want your transcript stored. If you want your output stored in a sub-folder of this bucket, you must also include OutputKey.

  • Specialty: This must be PRIMARYCARE.

  • Type: Choose whether your audio is a conversation or a dictation.

" }, "StartTranscriptionJob":{ "name":"StartTranscriptionJob", @@ -521,7 +521,7 @@ {"shape":"InternalFailureException"}, {"shape":"ConflictException"} ], - "documentation":"

Starts an asynchronous job to transcribe speech to text.

" + "documentation":"

Transcribes the audio from a media file and applies any additional Request Parameters you choose to include in your request.

To make a StartTranscriptionJob request, you must first upload your media file into an Amazon S3 bucket; you can then specify the Amazon S3 location of the file using the Media parameter.

You must include the following parameters in your StartTranscriptionJob request:

  • region: The Amazon Web Services Region where you are making your request. For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer to Amazon Transcribe endpoints and quotas.

  • TranscriptionJobName: A custom name you create for your transcription job that is unique within your Amazon Web Services account.

  • Media (MediaFileUri): The Amazon S3 location of your media file.

  • One of LanguageCode, IdentifyLanguage, or IdentifyMultipleLanguages: If you know the language of your media file, specify it using the LanguageCode parameter; you can find all valid language codes in the Supported languages table. If you don't know the languages spoken in your media, use either IdentifyLanguage or IdentifyMultipleLanguages and let Amazon Transcribe identify the languages for you.

" }, "TagResource":{ "name":"TagResource", @@ -538,7 +538,7 @@ {"shape":"LimitExceededException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Tags an Amazon Transcribe resource with the given list of tags.

" + "documentation":"

Adds one or more custom tags, each in the form of a key:value pair, to the specified resource.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" }, "UntagResource":{ "name":"UntagResource", @@ -555,7 +555,7 @@ {"shape":"NotFoundException"}, {"shape":"InternalFailureException"} ], - "documentation":"

Removes specified tags from a specified Amazon Transcribe resource.

" + "documentation":"

Removes the specified tags from the specified Amazon Transcribe resource.

If you include UntagResource in your request, you must also include ResourceArn and TagKeys.

" }, "UpdateCallAnalyticsCategory":{ "name":"UpdateCallAnalyticsCategory", @@ -572,7 +572,7 @@ {"shape":"NotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

Updates the call analytics category with new values. The UpdateCallAnalyticsCategory operation overwrites all of the existing information with the values that you provide in the request.

" + "documentation":"

Updates the specified Call Analytics category with new rules. Note that the UpdateCallAnalyticsCategory operation overwrites all existing rules contained in the specified category. You cannot append additional rules onto an existing category.

To create a new category, see .

" }, "UpdateMedicalVocabulary":{ "name":"UpdateMedicalVocabulary", @@ -589,7 +589,7 @@ {"shape":"NotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

Updates a vocabulary with new values that you provide in a different text file from the one you used to create the vocabulary. The UpdateMedicalVocabulary operation overwrites all of the existing information with the values that you provide in the request.

" + "documentation":"

Updates an existing custom medical vocabulary with new values. This operation overwrites all existing information with your new values; you cannot append new terms onto an existing custom vocabulary.

" }, "UpdateVocabulary":{ "name":"UpdateVocabulary", @@ -606,7 +606,7 @@ {"shape":"NotFoundException"}, {"shape":"ConflictException"} ], - "documentation":"

Updates an existing vocabulary with new values. The UpdateVocabulary operation overwrites all of the existing information with the values that you provide in the request.

" + "documentation":"

Updates an existing custom vocabulary with new values. This operation overwrites all existing information with your new values; you cannot append new terms onto an existing custom vocabulary.

" }, "UpdateVocabularyFilter":{ "name":"UpdateVocabularyFilter", @@ -622,7 +622,7 @@ {"shape":"InternalFailureException"}, {"shape":"NotFoundException"} ], - "documentation":"

Updates a vocabulary filter with a new list of filtered words.

" + "documentation":"

Updates an existing custom vocabulary filter with a new list of words. The new list you provide overwrites all previous entries; you cannot append new terms onto an existing custom vocabulary filter.

" } }, "shapes":{ @@ -631,29 +631,29 @@ "members":{ "StartTime":{ "shape":"TimestampMilliseconds", - "documentation":"

A value that indicates the beginning of the time range in seconds. To set absolute time range, you must specify a start time and an end time. For example, if you specify the following values:

  • StartTime - 10000

  • Endtime - 50000

The time range is set between 10,000 milliseconds and 50,000 milliseconds into the call.

" + "documentation":"

The time, in milliseconds, when Amazon Transcribe starts searching for the specified criteria in your audio. If you include StartTime in your request, you must also include EndTime.

" }, "EndTime":{ "shape":"TimestampMilliseconds", - "documentation":"

A value that indicates the end of the time range in milliseconds. To set absolute time range, you must specify a start time and an end time. For example, if you specify the following values:

  • StartTime - 10000

  • Endtime - 50000

The time range is set between 10,000 milliseconds and 50,000 milliseconds into the call.

" + "documentation":"

The time, in milliseconds, when Amazon Transcribe stops searching for the specified criteria in your audio. If you include EndTime in your request, you must also include StartTime.

" }, "First":{ "shape":"TimestampMilliseconds", - "documentation":"

A time range from the beginning of the call to the value that you've specified. For example, if you specify 100000, the time range is set to the first 100,000 milliseconds of the call.

" + "documentation":"

The time, in milliseconds, from the start of your media file until the specified value. Amazon Transcribe searches for your specified criteria in this time segment.

" }, "Last":{ "shape":"TimestampMilliseconds", - "documentation":"

A time range from the value that you've specified to the end of the call. For example, if you specify 100000, the time range is set to the last 100,000 milliseconds of the call.

" + "documentation":"

The time, in milliseconds, from the specified value until the end of your media file. Amazon Transcribe searches for your specified criteria in this time segment.

" } }, - "documentation":"

A time range, set in seconds, between two points in the call.

" + "documentation":"

A time range, in milliseconds, between two points in your media file.

You can use StartTime and EndTime to search a custom segment. For example, setting StartTime to 10000 and EndTime to 50000 only searches for your specified criteria in the audio contained between the 10,000 millisecond mark and the 50,000 millisecond mark of your media file. You must use StartTime and EndTime as a set; that is, if you include one, you must include both.

You can use also First to search from the start of the audio until the time that you specify, or Last to search from the time that you specify until the end of the audio. For example, setting First to 50000 only searches for your specified criteria in the audio contained between the start of the media file to the 50,000 millisecond mark. You can use First and Last independently of each other.

If you prefer to use percentage instead of milliseconds, see .

" }, "BadRequestException":{ "type":"structure", "members":{ "Message":{"shape":"FailureReason"} }, - "documentation":"

Your request didn't pass one or more validation tests. For example, if the entity that you're trying to delete doesn't exist or if it is in a non-terminal state (for example, it's \"in progress\"). See the exception Message field for more information.

", + "documentation":"

Your request didn't pass one or more validation tests. This can occur when the entity you're trying to delete doesn't exist or if it's in a non-terminal state (such as IN PROGRESS). See the exception message field for more information.

", "exception":true }, "BaseModelName":{ @@ -671,7 +671,9 @@ "hi-IN", "es-US", "en-GB", - "en-AU" + "en-AU", + "de-DE", + "ja-JP" ] }, "CallAnalyticsJob":{ @@ -679,60 +681,63 @@ "members":{ "CallAnalyticsJobName":{ "shape":"CallAnalyticsJobName", - "documentation":"

The name of the call analytics job.

" + "documentation":"

The name of the Call Analytics job. Job names are case sensitive and must be unique within an Amazon Web Services account.

" }, "CallAnalyticsJobStatus":{ "shape":"CallAnalyticsJobStatus", - "documentation":"

The status of the analytics job.

" + "documentation":"

Provides the status of the specified Call Analytics job.

If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri (or RedactedTranscriptFileUri, if you requested transcript redaction). If the status is FAILED, FailureReason provides details on why your transcription job failed.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

If you know the language spoken between the customer and the agent, specify a language code for this field.

If you don't know the language, you can leave this field blank, and Amazon Transcribe will use machine learning to automatically identify the language. To improve the accuracy of language identification, you can provide an array containing the possible language codes for the language spoken in your audio. Refer to Supported languages for additional information.

" + "documentation":"

The language code used to create your Call Analytics job. For a list of supported languages and their associated language codes, refer to the Supported languages table.

If you don't know the language spoken in your media file, you can omit this field and let Amazon Transcribe automatically identify the language of your media. To improve the accuracy of language identification, you can include several language codes and Amazon Transcribe chooses the closest match for your transcription.

" }, "MediaSampleRateHertz":{ "shape":"MediaSampleRateHertz", - "documentation":"

The sample rate, in Hertz, of the input audio.

" + "documentation":"

The sample rate, in hertz, of the audio track in your input media file.

" }, "MediaFormat":{ "shape":"MediaFormat", - "documentation":"

The format of the input audio file. Note: for call analytics jobs, only the following media formats are supported: MP3, MP4, WAV, FLAC, OGG, and WebM.

" + "documentation":"

The format of the input media file.

" + }, + "Media":{ + "shape":"Media", + "documentation":"

Provides the Amazon S3 location of the media file you used in your Call Analytics request.

" }, - "Media":{"shape":"Media"}, "Transcript":{"shape":"Transcript"}, "StartTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the analytics job started processing.

" + "documentation":"

The date and time the specified Call Analytics job began processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.789000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "CreationTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the analytics job was created.

" + "documentation":"

The date and time the specified Call Analytics job request was made.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "CompletionTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the analytics job was completed.

" + "documentation":"

The date and time the specified Call Analytics job finished processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:33:13.922000-07:00 represents a transcription job that started processing at 12:33 PM UTC-7 on May 4, 2022.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If the AnalyticsJobStatus is FAILED, this field contains information about why the job failed.

The FailureReason field can contain one of the following values:

  • Unsupported media format: The media format specified in the MediaFormat field of the request isn't valid. See the description of the MediaFormat field for a list of valid values.

  • The media format provided does not match the detected media format: The media format of the audio file doesn't match the format specified in the MediaFormat field in the request. Check the media format of your media file and make sure the two values match.

  • Invalid sample rate for audio file: The sample rate specified in the MediaSampleRateHertz of the request isn't valid. The sample rate must be between 8,000 and 48,000 Hertz.

  • The sample rate provided does not match the detected sample rate: The sample rate in the audio file doesn't match the sample rate specified in the MediaSampleRateHertz field in the request. Check the sample rate of your media file and make sure that the two values match.

  • Invalid file size: file size too large: The size of your audio file is larger than what Amazon Transcribe Medical can process. For more information, see Guidelines and Quotas in the Amazon Transcribe Medical Guide.

  • Invalid number of channels: number of channels too large: Your audio contains more channels than Amazon Transcribe Medical is configured to process. To request additional channels, see Amazon Transcribe Medical Endpoints and Quotas in the Amazon Web Services General Reference.

" + "documentation":"

If CallAnalyticsJobStatus is FAILED, FailureReason contains information about why the Call Analytics job request failed.

The FailureReason field contains one of the following values:

  • Unsupported media format.

    The media format specified in MediaFormat isn't valid. Refer to MediaFormat for a list of supported formats.

  • The media format provided does not match the detected media format.

    The media format specified in MediaFormat doesn't match the format of the input file. Check the media format of your media file and correct the specified value.

  • Invalid sample rate for audio file.

    The sample rate specified in MediaSampleRateHertz isn't valid. The sample rate must be between 8,000 and 48,000 hertz.

  • The sample rate provided does not match the detected sample rate.

    The sample rate specified in MediaSampleRateHertz doesn't match the sample rate detected in your input media file. Check the sample rate of your media file and correct the specified value.

  • Invalid file size: file size too large.

    The size of your media file is larger than what Amazon Transcribe can process. For more information, refer to Guidelines and quotas.

  • Invalid number of channels: number of channels too large.

    Your audio contains more channels than Amazon Transcribe is able to process. For more information, refer to Guidelines and quotas.

" }, "DataAccessRoleArn":{ "shape":"DataAccessRoleArn", - "documentation":"

The Amazon Resource Number (ARN) that you use to access the analytics job. ARNs have the format arn:partition:service:region:account-id:resource-type/resource-id.

" + "documentation":"

The Amazon Resource Name (ARN) you included in your request.

" }, "IdentifiedLanguageScore":{ "shape":"IdentifiedLanguageScore", - "documentation":"

A value between zero and one that Amazon Transcribe assigned to the language that it identified in the source audio. This value appears only when you don't provide a single language code. Larger values indicate that Amazon Transcribe has higher confidence in the language that it identified.

" + "documentation":"

The confidence score associated with the language identified in your media file.

Confidence scores are values between 0 and 1; a larger value indicates a higher probability that the identified language correctly matches the language spoken in your media.

" }, "Settings":{ "shape":"CallAnalyticsJobSettings", - "documentation":"

Provides information about the settings used to run a transcription job.

" + "documentation":"

Provides information on any additional settings that were included in your request. Additional settings include content redaction and language identification settings.

" }, "ChannelDefinitions":{ "shape":"ChannelDefinitions", - "documentation":"

Shows numeric values to indicate the channel assigned to the agent's audio and the channel assigned to the customer's audio.

" + "documentation":"

Indicates which speaker is on which channel.

" } }, - "documentation":"

Describes an asynchronous analytics job that was created with the StartAnalyticsJob operation.

" + "documentation":"

Provides detailed information about a Call Analytics job.

To view the job's status, refer to CallAnalyticsJobStatus. If the status is COMPLETED, the job is finished. You can find your completed transcript at the URI specified in TranscriptFileUri. If the status is FAILED, FailureReason provides details on why your transcription job failed.

If you enabled personally identifiable information (PII) redaction, the redacted transcript appears at the location specified in RedactedTranscriptFileUri.

If you chose to redact the audio in your media file, you can find your redacted media file at the location specified in the RedactedMediaFileUri field of your response.

" }, "CallAnalyticsJobName":{ "type":"string", @@ -745,31 +750,31 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of a vocabulary to use when processing the call analytics job.

" + "documentation":"

The name of the custom vocabulary you want to include in your Call Analytics transcription request. Custom vocabulary names are case sensitive.

" }, "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the vocabulary filter to use when running a call analytics job. The filter that you specify must have the same language code as the analytics job.

" + "documentation":"

The name of the custom vocabulary filter you want to include in your Call Analytics transcription request. Custom vocabulary filter names are case sensitive.

Note that if you include VocabularyFilterName in your request, you must also include VocabularyFilterMethod.

" }, "VocabularyFilterMethod":{ "shape":"VocabularyFilterMethod", - "documentation":"

Set to mask to remove filtered text from the transcript and replace it with three asterisks (\"***\") as placeholder text. Set to remove to remove filtered text from the transcript without using placeholder text. Set to tag to mark the word in the transcription output that matches the vocabulary filter. When you set the filter method to tag, the words matching your vocabulary filter are not masked or removed.

" + "documentation":"

Specify how you want your custom vocabulary filter applied to your transcript.

To replace words with ***, choose mask.

To delete words, choose remove.

To flag words without changing them, choose tag.

" }, "LanguageModelName":{ "shape":"ModelName", - "documentation":"

The structure used to describe a custom language model.

" + "documentation":"

The name of the custom language model you want to use when processing your Call Analytics job. Note that custom language model names are case sensitive.

The language of the specified custom language model must match the language code that you specify in your transcription request. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch.

" }, "ContentRedaction":{"shape":"ContentRedaction"}, "LanguageOptions":{ "shape":"LanguageOptions", - "documentation":"

When you run a call analytics job, you can specify the language spoken in the audio, or you can have Amazon Transcribe identify the language for you.

To specify a language, specify an array with one language code. If you don't know the language, you can leave this field blank and Amazon Transcribe will use machine learning to identify the language for you. To improve the ability of Amazon Transcribe to correctly identify the language, you can provide an array of the languages that can be present in the audio. Refer to Supported languages for additional information.

" + "documentation":"

You can specify two or more language codes that represent the languages you think may be present in your media. Including more than five is not recommended. If you're unsure what languages are present, do not include this parameter.

Including language options can improve the accuracy of language identification.

For a list of languages supported with Call Analytics, refer to the Supported languages table.

To transcribe speech in Modern Standard Arabic (ar-SA), your media file must be encoded at a sample rate of 16,000 Hz or higher.

" }, "LanguageIdSettings":{ "shape":"LanguageIdSettingsMap", - "documentation":"

The language identification settings associated with your call analytics job. These settings include VocabularyName, VocabularyFilterName, and LanguageModelName.

" + "documentation":"

If using automatic language identification in your request and you want to apply a custom language model, a custom vocabulary, or a custom vocabulary filter, include LanguageIdSettings with the relevant sub-parameters (VocabularyName, LanguageModelName, and VocabularyFilterName).

LanguageIdSettings supports two to five language codes. Each language code you include can have an associated custom language model, custom vocabulary, and custom vocabulary filter. The language codes that you specify must match the languages of the associated custom language models, custom vocabularies, and custom vocabulary filters.

It's recommended that you include LanguageOptions when using LanguageIdSettings to ensure that the correct language dialect is identified. For example, if you specify a custom vocabulary that is in en-US but Amazon Transcribe determines that the language spoken in your media is en-AU, your custom vocabulary is not applied to your transcription. If you include LanguageOptions and include en-US as the only English language dialect, your custom vocabulary is applied to your transcription.

If you want to include a custom language model, custom vocabulary, or custom vocabulary filter with your request but do not want to use automatic language identification, use instead the parameter with the LanguageModelName, VocabularyName, or VocabularyFilterName sub-parameters.

For a list of languages supported with Call Analytics, refer to Supported languages and language-specific features.

" } }, - "documentation":"

Provides optional settings for the CallAnalyticsJob operation.

" + "documentation":"

Provides additional optional settings for your request, including content redaction, automatic language identification; allows you to apply custom language models, custom vocabulary filters, and custom vocabularies.

" }, "CallAnalyticsJobStatus":{ "type":"string", @@ -789,34 +794,34 @@ "members":{ "CallAnalyticsJobName":{ "shape":"CallAnalyticsJobName", - "documentation":"

The name of the call analytics job.

" + "documentation":"

The name of the Call Analytics job. Job names are case sensitive and must be unique within an Amazon Web Services account.

" }, "CreationTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the call analytics job was created.

" + "documentation":"

The date and time the specified Call Analytics job request was made.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "StartTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job began processing.

" + "documentation":"

The date and time your Call Analytics job began processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.789000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "CompletionTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job was completed.

" + "documentation":"

The date and time the specified Call Analytics job finished processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:33:13.922000-07:00 represents a transcription job that started processing at 12:33 PM UTC-7 on May 4, 2022.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language of the transcript in the source audio file.

" + "documentation":"

The language code used to create your Call Analytics transcription.

" }, "CallAnalyticsJobStatus":{ "shape":"CallAnalyticsJobStatus", - "documentation":"

The status of the call analytics job.

" + "documentation":"

Provides the status of your Call Analytics job.

If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri (or RedactedTranscriptFileUri, if you requested transcript redaction). If the status is FAILED, FailureReason provides details on why your transcription job failed.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If the CallAnalyticsJobStatus is FAILED, a description of the error.

" + "documentation":"

If CallAnalyticsJobStatus is FAILED, FailureReason contains information about why the Call Analytics job failed. See also: Common Errors.

" } }, - "documentation":"

Provides summary information about a call analytics job.

" + "documentation":"

Provides detailed information about a specific Call Analytics job.

" }, "CategoryName":{ "type":"string", @@ -829,22 +834,26 @@ "members":{ "CategoryName":{ "shape":"CategoryName", - "documentation":"

The name of the call analytics category.

" + "documentation":"

The name of the Call Analytics category. Category names are case sensitive and must be unique within an Amazon Web Services account.

" }, "Rules":{ "shape":"RuleList", - "documentation":"

The rules used to create a call analytics category.

" + "documentation":"

The rules used to define a Call Analytics category. Each category can have between 1 and 20 rules.

" }, "CreateTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the call analytics category was created.

" + "documentation":"

The date and time the specified Call Analytics category was created.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "LastUpdateTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the call analytics category was most recently updated.

" + "documentation":"

The date and time the specified Call Analytics category was last updated.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-05T12:45:32.691000-07:00 represents 12:45 PM UTC-7 on May 5, 2022.

" + }, + "InputType":{ + "shape":"InputType", + "documentation":"

The input type associated with the specified category. POST_CALL refers to a category that is applied to batch transcriptions; REAL_TIME refers to a category that is applied to streaming transcriptions.

" } }, - "documentation":"

An object that contains the rules and additional information about a call analytics category.

" + "documentation":"

Provides you with the properties of the Call Analytics category you specified in your request. This includes the list of rules that define the specified category.

" }, "CategoryPropertiesList":{ "type":"list", @@ -855,14 +864,14 @@ "members":{ "ChannelId":{ "shape":"ChannelId", - "documentation":"

A value that indicates the audio channel.

" + "documentation":"

Specify the audio channel you want to define.

" }, "ParticipantRole":{ "shape":"ParticipantRole", - "documentation":"

Indicates whether the person speaking on the audio channel is the agent or customer.

" + "documentation":"

Specify the speaker you want to define. Omitting this parameter is equivalent to specifying both participants.

" } }, - "documentation":"

For a call analytics job, an object that indicates the audio channel that belongs to the agent and the audio channel that belongs to the customer.

" + "documentation":"

Makes it possible to specify which speaker is on which channel. For example, if your agent is the first participant to speak, you would set ChannelId to 0 (to indicate the first channel) and ParticipantRole to AGENT (to indicate that it's the agent speaking).

" }, "ChannelDefinitions":{ "type":"list", @@ -880,7 +889,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

There is already a resource with that name.

", + "documentation":"

A resource already exists with this name. Resource names must be unique within an Amazon Web Services account.

", "exception":true }, "ContentRedaction":{ @@ -892,18 +901,18 @@ "members":{ "RedactionType":{ "shape":"RedactionType", - "documentation":"

Request parameter that defines the entities to be redacted. The only accepted value is PII.

" + "documentation":"

Specify the category of information you want to redact; PII (personally identifiable information) is the only valid value. You can use PiiEntityTypes to choose which types of PII you want to redact.

" }, "RedactionOutput":{ "shape":"RedactionOutput", - "documentation":"

The output transcript file stored in either the default S3 bucket or in a bucket you specify.

When you choose redacted Amazon Transcribe outputs only the redacted transcript.

When you choose redacted_and_unredacted Amazon Transcribe outputs both the redacted and unredacted transcripts.

" + "documentation":"

Specify if you want only a redacted transcript, or if you want a redacted and an unredacted transcript.

When you choose redacted Amazon Transcribe creates only a redacted transcript.

When you choose redacted_and_unredacted Amazon Transcribe creates a redacted and an unredacted transcript (as two separate files).

" }, "PiiEntityTypes":{ "shape":"PiiEntityTypes", - "documentation":"

The types of personally identifiable information (PII) you want to redact in your transcript.

" + "documentation":"

Specify which types of personally identifiable information (PII) you want to redact in your transcript. You can include as many types as you'd like, or you can select ALL.

" } }, - "documentation":"

Settings for content redaction within a transcription job.

" + "documentation":"

Makes it possible to redact or flag specified personally identifiable information (PII) in your transcript. If you use ContentRedaction, you must also include the sub-parameters: PiiEntityTypes, RedactionOutput, and RedactionType.

" }, "CreateCallAnalyticsCategoryRequest":{ "type":"structure", @@ -914,11 +923,15 @@ "members":{ "CategoryName":{ "shape":"CategoryName", - "documentation":"

A unique name, chosen by you, for your call analytics category. For example, sentiment-positive-last30seconds.

" + "documentation":"

A unique name, chosen by you, for your Call Analytics category. It's helpful to use a detailed naming system that will make sense to you in the future. For example, it's better to use sentiment-positive-last30seconds for a category over a generic name like test-category.

Category names are case sensitive.

" }, "Rules":{ "shape":"RuleList", - "documentation":"

Rules make up a call analytics category. When creating a call analytics category, you must create between 1 and 20 rules for your category. For each rule, you specify a filter you want applied to the attributes of a call. For example, you can choose a sentiment filter that detects if a customer's sentiment was positive during the last 30 seconds of the call.

" + "documentation":"

Rules define a Call Analytics category. When creating a new category, you must create between 1 and 20 rules for that category. For each rule, you specify a filter you want applied to the attributes of a call. For example, you can choose a sentiment filter that detects if a customer's sentiment was positive during the last 30 seconds of the call.

" + }, + "InputType":{ + "shape":"InputType", + "documentation":"

Choose whether you want to create a streaming or a batch category for your Call Analytics transcription.

Specifying POST_CALL assigns your category to batch transcriptions; categories with this input type cannot be applied to streaming (real-time) transcriptions.

Specifying REAL_TIME assigns your category to streaming transcriptions; categories with this input type cannot be applied to batch (post-call) transcriptions.

If you do not include InputType, your category is created as a batch category by default.

" } } }, @@ -927,7 +940,7 @@ "members":{ "CategoryProperties":{ "shape":"CategoryProperties", - "documentation":"

If your audio matches one of your categories, this field contains data on that category and its associated rules. This parameter shows which category is flagged (CategoryName) along with metadata for the rules that match your audio. Metadata includes the rule filter (such as InterruptionFilter, NonTalkTimeFilter, SentimentFilter, and TranscriptFilter) and where in your audio (StartTime and EndTime) the rule has a match.

" + "documentation":"

Provides you with the properties of your new category, including its associated rules.

" } } }, @@ -942,7 +955,7 @@ "members":{ "LanguageCode":{ "shape":"CLMLanguageCode", - "documentation":"

The language of your custom language model; note that the language code you select must match the language of your training and tuning data.

" + "documentation":"

The language code that represents the language of your model. Each custom language model must contain terms in only one language, and the language you select for your custom language model must match the language of your training and tuning data.

For a list of supported languages and their associated language codes, refer to the Supported languages table. Note that US English (en-US) is the only language supported with Amazon Transcribe Medical.

A custom language model can only be used to transcribe files in the same language as the model. For example, if you create a custom language model using US English (en-US), you can only apply this model to files that contain English audio.

" }, "BaseModelName":{ "shape":"BaseModelName", @@ -950,15 +963,15 @@ }, "ModelName":{ "shape":"ModelName", - "documentation":"

The name of your new custom language model.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a language model with the same name as a previous language model, you get a ConflictException error.

" + "documentation":"

A unique name, chosen by you, for your custom language model.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a new custom language model with the same name as an existing custom language model, you get a ConflictException error.

" }, "InputDataConfig":{ "shape":"InputDataConfig", - "documentation":"

Contains your data access role ARN (Amazon Resource Name) and the Amazon S3 locations of your training (S3Uri) and tuning (TuningDataS3Uri) data.

" + "documentation":"

Contains the Amazon S3 location of the training data you want to use to create a new custom language model, and permissions to access this location.

When using InputDataConfig, you must include these sub-parameters: S3Uri, which is the Amazon S3 location of your training data, and DataAccessRoleArn, which is the Amazon Resource Name (ARN) of the role that has permission to access your specified Amazon S3 location. You can optionally include TuningDataS3Uri, which is the Amazon S3 location of your tuning data. If you specify different Amazon S3 locations for training and tuning data, the ARN you use must have permissions to access both locations.

" }, "Tags":{ "shape":"TagList", - "documentation":"

Optionally add tags, each in the form of a key:value pair, to your new language model. See also: .

" + "documentation":"

Adds one or more custom tags, each in the form of a key:value pair, to a new custom language model at the time you create this new model.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" } } }, @@ -971,19 +984,19 @@ }, "BaseModelName":{ "shape":"BaseModelName", - "documentation":"

The Amazon Transcribe standard language model, or base model, you used when creating your custom language model.

If your audio has a sample rate of 16,000 Hz or greater, this value should be WideBand. If your audio has a sample rate of less than 16,000 Hz, this value should be NarrowBand.

" + "documentation":"

The Amazon Transcribe standard language model, or base model, you specified when creating your custom language model.

" }, "ModelName":{ "shape":"ModelName", - "documentation":"

The unique name you chose for your custom language model.

" + "documentation":"

The name of your custom language model.

" }, "InputDataConfig":{ "shape":"InputDataConfig", - "documentation":"

Lists your data access role ARN (Amazon Resource Name) and the Amazon S3 locations your provided for your training (S3Uri) and tuning (TuningDataS3Uri) data.

" + "documentation":"

Lists your data access role ARN (Amazon Resource Name) and the Amazon S3 locations you provided for your training (S3Uri) and tuning (TuningDataS3Uri) data.

" }, "ModelStatus":{ "shape":"ModelStatus", - "documentation":"

The status of your custom language model. When the status shows as COMPLETED, your model is ready to use.

" + "documentation":"

The status of your custom language model. When the status displays as COMPLETED, your model is ready to use.

" } } }, @@ -997,19 +1010,19 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of your new vocabulary.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a vocabulary with the same name as a previous vocabulary, you get a ConflictException error.

" + "documentation":"

A unique name, chosen by you, for your new custom medical vocabulary.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a new custom medical vocabulary with the same name as an existing custom medical vocabulary, you get a ConflictException error.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code that represents the language of the entries in your custom vocabulary. Note that U.S. English (en-US) is the only language supported with Amazon Transcribe Medical.

" + "documentation":"

The language code that represents the language of the entries in your custom vocabulary. US English (en-US) is the only language supported with Amazon Transcribe Medical.

" }, "VocabularyFileUri":{ "shape":"Uri", - "documentation":"

The Amazon S3 location (URI) of the text file that contains your custom vocabulary. The URI must be in the same Amazon Web Services Region as the resource that you're calling.

Here's an example URI path:

https://s3.us-east-1.amazonaws.com/my-s3-bucket/my-vocab-file.txt

" + "documentation":"

The Amazon S3 location (URI) of the text file that contains your custom medical vocabulary. The URI must be in the same Amazon Web Services Region as the resource you're calling.

Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-vocab-file.txt

" }, "Tags":{ "shape":"TagList", - "documentation":"

Adds one or more tags, each in the form of a key:value pair, to a new medical vocabulary at the time you create the new vocabulary.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" + "documentation":"

Adds one or more custom tags, each in the form of a key:value pair, to a new custom medical vocabulary at the time you create this new custom vocabulary.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" } } }, @@ -1018,23 +1031,23 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name you chose for your vocabulary.

" + "documentation":"

The name you chose for your custom medical vocabulary.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code you selected for your medical vocabulary. Note that U.S. English (en-US) is the only language supported with Amazon Transcribe Medical.

" + "documentation":"

The language code you selected for your custom medical vocabulary. US English (en-US) is the only language supported with Amazon Transcribe Medical.

" }, "VocabularyState":{ "shape":"VocabularyState", - "documentation":"

The processing state of your custom medical vocabulary. If the state is READY, you can use the vocabulary in a StartMedicalTranscriptionJob request.

" + "documentation":"

The processing state of your custom medical vocabulary. If the state is READY, you can use the custom vocabulary in a StartMedicalTranscriptionJob request.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time you created your custom medical vocabulary.

" + "documentation":"

The date and time you created your custom medical vocabulary.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If the VocabularyState field is FAILED, FailureReason contains information about why the job failed.

" + "documentation":"

If VocabularyState is FAILED, FailureReason contains information about why the medical transcription job request failed. See also: Common Errors.

" } } }, @@ -1047,23 +1060,23 @@ "members":{ "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of your new vocabulary filter.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a vocabulary filter with the same name as a previous vocabulary filter, you get a ConflictException error.

" + "documentation":"

A unique name, chosen by you, for your new custom vocabulary filter.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a new custom vocabulary filter with the same name as an existing custom vocabulary filter, you get a ConflictException error.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code of the words in the vocabulary filter. All words in the filter must be in the same language. The vocabulary filter can only be used with transcription jobs in the specified language.

" + "documentation":"

The language code that represents the language of the entries in your vocabulary filter. Each custom vocabulary filter must contain terms in only one language.

A custom vocabulary filter can only be used to transcribe files in the same language as the filter. For example, if you create a custom vocabulary filter using US English (en-US), you can only apply this filter to files that contain English audio.

For a list of supported languages and their associated language codes, refer to the Supported languages table.

" }, "Words":{ "shape":"Words", - "documentation":"

The words you want in your vocabulary filter. Only use characters specified in the Character sets for the language you're transcribing.

Note that if you include Words in your request, you cannot use VocabularyFilterFileUri; you must choose one or the other.

" + "documentation":"

Use this parameter if you want to create your custom vocabulary filter by including all desired terms, as comma-separated values, within your request. The other option for creating your vocabulary filter is to save your entries in a text file and upload them to an Amazon S3 bucket, then specify the location of your file using the VocabularyFilterFileUri parameter.

Note that if you include Words in your request, you cannot use VocabularyFilterFileUri; you must choose one or the other.

Each language has a character set that contains all allowed characters for that specific language. If you use unsupported characters, your custom vocabulary filter request fails. Refer to Character Sets for Custom Vocabularies to get the character set for your language.

" }, "VocabularyFilterFileUri":{ "shape":"Uri", - "documentation":"

The Amazon S3 location of a text file used as input to create the vocabulary filter. Only use characters from the character set defined for custom vocabularies. For a list of character sets, see Character Sets for Custom Vocabularies.

Your vocabulary filter file must be less than 50 KB in size.

Note that if you include VocabularyFilterFileUri in your request, you cannot use Words; you must choose one or the other.

" + "documentation":"

The Amazon S3 location of the text file that contains your custom vocabulary filter terms. The URI must be located in the same Amazon Web Services Region as the resource you're calling.

Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-vocab-filter-file.txt

Note that if you include VocabularyFilterFileUri in your request, you cannot use Words; you must choose one or the other.

" }, "Tags":{ "shape":"TagList", - "documentation":"

Adds one or more tags, each in the form of a key:value pair, to a new vocabulary filter at the time you create this new vocabulary filter.

" + "documentation":"

Adds one or more custom tags, each in the form of a key:value pair, to a new custom vocabulary filter at the time you create this new vocabulary filter.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" } } }, @@ -1072,15 +1085,15 @@ "members":{ "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the vocabulary filter.

" + "documentation":"

The name you chose for your custom vocabulary filter.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code associated with your vocabulary filter.

" + "documentation":"

The language code you selected for your custom vocabulary filter.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time the vocabulary filter was modified.

" + "documentation":"

The date and time you created your custom vocabulary filter.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" } } }, @@ -1093,23 +1106,23 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of your new vocabulary.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a vocabulary with the same name as a previous vocabulary, you get a ConflictException error.

" + "documentation":"

A unique name, chosen by you, for your new custom vocabulary.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a new custom vocabulary with the same name as an existing custom vocabulary, you get a ConflictException error.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code that represents the language of the entries in your custom vocabulary. Each vocabulary must contain terms in only one language. For a list of languages and their corresponding language codes, see Supported languages.

" + "documentation":"

The language code that represents the language of the entries in your custom vocabulary. Each custom vocabulary must contain terms in only one language.

A custom vocabulary can only be used to transcribe files in the same language as the custom vocabulary. For example, if you create a custom vocabulary using US English (en-US), you can only apply this custom vocabulary to files that contain English audio.

For a list of supported languages and their associated language codes, refer to the Supported languages table.

" }, "Phrases":{ "shape":"Phrases", - "documentation":"

Use this flag to include a list of terms within your request.

Note that if you include Phrases in your request, you cannot use VocabularyFileUri; you must choose one or the other.

" + "documentation":"

Use this parameter if you want to create your custom vocabulary by including all desired terms, as comma-separated values, within your request. The other option for creating your custom vocabulary is to save your entries in a text file and upload them to an Amazon S3 bucket, then specify the location of your file using the VocabularyFileUri parameter.

Note that if you include Phrases in your request, you cannot use VocabularyFileUri; you must choose one or the other.

Each language has a character set that contains all allowed characters for that specific language. If you use unsupported characters, your custom vocabulary filter request fails. Refer to Character Sets for Custom Vocabularies to get the character set for your language.

" }, "VocabularyFileUri":{ "shape":"Uri", - "documentation":"

The S3 location of the text file that contains your custom vocabulary. The URI must be located in the same region as the API endpoint you're calling.

Here's an example URI path:

https://s3.us-east-1.amazonaws.com/my-s3-bucket/my-vocab-file.txt

Note that if you include VocabularyFileUri in your request, you cannot use the Phrases flag; you must choose one or the other.

" + "documentation":"

The Amazon S3 location of the text file that contains your custom vocabulary. The URI must be located in the same Amazon Web Services Region as the resource you're calling.

Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-vocab-file.txt

Note that if you include VocabularyFileUri in your request, you cannot use the Phrases flag; you must choose one or the other.

" }, "Tags":{ "shape":"TagList", - "documentation":"

Adds one or more tags, each in the form of a key:value pair, to a new custom vocabulary at the time you create this new vocabulary.

" + "documentation":"

Adds one or more custom tags, each in the form of a key:value pair, to a new custom vocabulary at the time you create this new custom vocabulary.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" } } }, @@ -1118,23 +1131,23 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name you chose for your vocabulary.

" + "documentation":"

The name you chose for your custom vocabulary.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code you selected for your vocabulary.

" + "documentation":"

The language code you selected for your custom vocabulary.

" }, "VocabularyState":{ "shape":"VocabularyState", - "documentation":"

The processing state of your vocabulary. If the state is READY, you can use the vocabulary in a StartTranscriptionJob request.

" + "documentation":"

The processing state of your custom vocabulary. If the state is READY, you can use the custom vocabulary in a StartTranscriptionJob request.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time you created your custom vocabulary.

" + "documentation":"

The date and time you created your custom vocabulary.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If the VocabularyState field is FAILED, FailureReason contains information about why the job failed.

" + "documentation":"

If VocabularyState is FAILED, FailureReason contains information about why the custom vocabulary request failed. See also: Common Errors.

" } } }, @@ -1151,7 +1164,7 @@ "members":{ "CategoryName":{ "shape":"CategoryName", - "documentation":"

The name of the call analytics category you want to delete. Category names are case-sensitive.

" + "documentation":"

The name of the Call Analytics category you want to delete. Category names are case sensitive.

" } } }, @@ -1166,7 +1179,7 @@ "members":{ "CallAnalyticsJobName":{ "shape":"CallAnalyticsJobName", - "documentation":"

The name of the call analytics job you want to delete. Job names are case-sensitive.

" + "documentation":"

The name of the Call Analytics job you want to delete. Job names are case sensitive.

" } } }, @@ -1181,7 +1194,7 @@ "members":{ "ModelName":{ "shape":"ModelName", - "documentation":"

The name of the model you want to delete. Model names are case-sensitive.

" + "documentation":"

The name of the custom language model you want to delete. Model names are case sensitive.

" } } }, @@ -1191,7 +1204,7 @@ "members":{ "MedicalTranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name of the medical transcription job you want to delete. Job names are case-sensitive.

" + "documentation":"

The name of the medical transcription job you want to delete. Job names are case sensitive.

" } } }, @@ -1201,7 +1214,7 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary that you want to delete. Vocabulary names are case-sensitive.

" + "documentation":"

The name of the custom medical vocabulary you want to delete. Custom medical vocabulary names are case sensitive.

" } } }, @@ -1211,7 +1224,7 @@ "members":{ "TranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name of the transcription job you want to delete. Job names are case-sensitive.

" + "documentation":"

The name of the transcription job you want to delete. Job names are case sensitive.

" } } }, @@ -1221,7 +1234,7 @@ "members":{ "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the vocabulary filter you want to delete. Vocabulary filter names are case-sensitive.

" + "documentation":"

The name of the custom vocabulary filter you want to delete. Custom vocabulary filter names are case sensitive.

" } } }, @@ -1231,7 +1244,7 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary you want to delete. Vocabulary names are case-sensitive.

" + "documentation":"

The name of the custom vocabulary you want to delete. Custom vocabulary names are case sensitive.

" } } }, @@ -1241,7 +1254,7 @@ "members":{ "ModelName":{ "shape":"ModelName", - "documentation":"

The name of the custom language model you want described. Model names are case-sensitive.

" + "documentation":"

The name of the custom language model you want information about. Model names are case sensitive.

" } } }, @@ -1250,10 +1263,11 @@ "members":{ "LanguageModel":{ "shape":"LanguageModel", - "documentation":"

The name of the custom language model you requested more information about.

" + "documentation":"

Provides information about the specified custom language model.

This parameter also shows if the base language model you used to create your custom language model has been updated. If Amazon Transcribe has updated the base model, you can create a new custom language model using the updated base model.

If you tried to create a new custom language model and the request wasn't successful, you can use this DescribeLanguageModel to help identify the reason for this failure.

" } } }, + "DurationInSeconds":{"type":"float"}, "FailureReason":{"type":"string"}, "GetCallAnalyticsCategoryRequest":{ "type":"structure", @@ -1261,7 +1275,7 @@ "members":{ "CategoryName":{ "shape":"CategoryName", - "documentation":"

The name of the category you want information about. Category names are case sensitive.

" + "documentation":"

The name of the Call Analytics category you want information about. Category names are case sensitive.

" } } }, @@ -1270,7 +1284,7 @@ "members":{ "CategoryProperties":{ "shape":"CategoryProperties", - "documentation":"

Provides you with the rules associated with the category you specified in your GetCallAnalyticsCategory request.

" + "documentation":"

Provides you with the properties of the Call Analytics category you specified in your GetCallAnalyticsCategory request.

" } } }, @@ -1280,7 +1294,7 @@ "members":{ "CallAnalyticsJobName":{ "shape":"CallAnalyticsJobName", - "documentation":"

The name of the analytics job you want information about. This value is case sensitive.

" + "documentation":"

The name of the Call Analytics job you want information about. Job names are case sensitive.

" } } }, @@ -1289,7 +1303,7 @@ "members":{ "CallAnalyticsJob":{ "shape":"CallAnalyticsJob", - "documentation":"

An object that contains detailed information about your call analytics job. Returned fields include: CallAnalyticsJobName, CallAnalyticsJobStatus, ChannelDefinitions, CompletionTime, CreationTime, DataAccessRoleArn, FailureReason, IdentifiedLanguageScore, LanguageCode, Media, MediaFormat, MediaSampleRateHertz, Settings, StartTime, and Transcript.

" + "documentation":"

Provides detailed information about the specified Call Analytics job, including job status and, if applicable, failure reason.

" } } }, @@ -1299,7 +1313,7 @@ "members":{ "MedicalTranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name of the medical transcription job you want information about. This value is case sensitive.

" + "documentation":"

The name of the medical transcription job you want information about. Job names are case sensitive.

" } } }, @@ -1308,7 +1322,7 @@ "members":{ "MedicalTranscriptionJob":{ "shape":"MedicalTranscriptionJob", - "documentation":"

An object that contains detailed information about your medical transcription job. Returned fields include: CompletionTime, ContentIdentificationType, CreationTime, FailureReason, LanguageCode, Media, MediaFormat, MediaSampleRateHertz, MedicalTranscriptionJobName, Settings, Specialty, StartTime, Tags, Transcript, TranscriptionJobStatus, and Type.

" + "documentation":"

Provides detailed information about the specified medical transcription job, including job status and, if applicable, failure reason.

" } } }, @@ -1318,7 +1332,7 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the medical vocabulary you want information about. This value is case sensitive.

" + "documentation":"

The name of the custom medical vocabulary you want information about. Custom medical vocabulary names are case sensitive.

" } } }, @@ -1327,27 +1341,27 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary returned by Amazon Transcribe Medical.

" + "documentation":"

The name of the custom medical vocabulary you requested information about.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The valid language code for your vocabulary entries.

" + "documentation":"

The language code you selected for your custom medical vocabulary. US English (en-US) is the only language supported with Amazon Transcribe Medical.

" }, "VocabularyState":{ "shape":"VocabularyState", - "documentation":"

The processing state of the vocabulary. If the VocabularyState is READY then you can use it in the StartMedicalTranscriptionJob operation.

" + "documentation":"

The processing state of your custom medical vocabulary. If the state is READY, you can use the custom vocabulary in a StartMedicalTranscriptionJob request.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time that the vocabulary was last modified with a text file different from the one that was previously used.

" + "documentation":"

The date and time the specified custom medical vocabulary was last modified.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If your request returns a VocabularyState that is FAILED, the FailureReason field contains information about why the request failed.

For more information, refer to the Common Errors section.

" + "documentation":"

If VocabularyState is FAILED, FailureReason contains information about why the custom medical vocabulary request failed. See also: Common Errors.

" }, "DownloadUri":{ "shape":"Uri", - "documentation":"

The S3 location where the vocabulary is stored; use this URI to view or download the vocabulary.

" + "documentation":"

The S3 location where the specified custom medical vocabulary is stored; use this URI to view or download the custom vocabulary.

" } } }, @@ -1357,7 +1371,7 @@ "members":{ "TranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name of the job.

" + "documentation":"

The name of the transcription job you want information about. Job names are case sensitive.

" } } }, @@ -1366,7 +1380,7 @@ "members":{ "TranscriptionJob":{ "shape":"TranscriptionJob", - "documentation":"

An object that contains the results of the transcription job.

" + "documentation":"

Provides detailed information about the specified transcription job, including job status and, if applicable, failure reason.

" } } }, @@ -1376,7 +1390,7 @@ "members":{ "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the vocabulary filter for which to return information.

" + "documentation":"

The name of the custom vocabulary filter you want information about. Custom vocabulary filter names are case sensitive.

" } } }, @@ -1385,19 +1399,19 @@ "members":{ "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the vocabulary filter.

" + "documentation":"

The name of the custom vocabulary filter you requested information about.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code of the words in the vocabulary filter.

" + "documentation":"

The language code you selected for your custom vocabulary filter.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time that the contents of the vocabulary filter were updated.

" + "documentation":"

The date and time the specified custom vocabulary filter was last modified.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "DownloadUri":{ "shape":"Uri", - "documentation":"

The URI of the list of words in the vocabulary filter. You can use this URI to get the list of words.

" + "documentation":"

The Amazon S3 location where the custom vocabulary filter is stored; use this URI to view or download the custom vocabulary filter.

" } } }, @@ -1407,7 +1421,7 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary to return information about. The name is case sensitive.

" + "documentation":"

The name of the custom vocabulary you want information about. Custom vocabulary names are case sensitive.

" } } }, @@ -1416,27 +1430,27 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary to return.

" + "documentation":"

The name of the custom vocabulary you requested information about.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code of the vocabulary entries.

" + "documentation":"

The language code you selected for your custom vocabulary.

" }, "VocabularyState":{ "shape":"VocabularyState", - "documentation":"

The processing state of the vocabulary.

" + "documentation":"

The processing state of your custom vocabulary. If the state is READY, you can use the custom vocabulary in a StartTranscriptionJob request.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time that the vocabulary was last modified.

" + "documentation":"

The date and time the specified custom vocabulary was last modified.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If the VocabularyState field is FAILED, this field contains information about why the job failed.

" + "documentation":"

If VocabularyState is FAILED, FailureReason contains information about why the custom vocabulary request failed. See also: Common Errors.

" }, "DownloadUri":{ "shape":"Uri", - "documentation":"

The S3 location where the vocabulary is stored. Use this URI to get the contents of the vocabulary. The URI is available for a limited time.

" + "documentation":"

The S3 location where the custom vocabulary is stored; use this URI to view or download the custom vocabulary.

" } } }, @@ -1450,25 +1464,32 @@ "members":{ "S3Uri":{ "shape":"Uri", - "documentation":"

The Amazon S3 prefix you specify to access the plain text files that you use to train your custom language model.

" + "documentation":"

The Amazon S3 location (URI) of the text files you want to use to train your custom language model.

Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-model-training-data/

" }, "TuningDataS3Uri":{ "shape":"Uri", - "documentation":"

The Amazon S3 prefix you specify to access the plain text files that you use to tune your custom language model.

" + "documentation":"

The Amazon S3 location (URI) of the text files you want to use to tune your custom language model.

Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-model-tuning-data/

" }, "DataAccessRoleArn":{ "shape":"DataAccessRoleArn", - "documentation":"

The Amazon Resource Name (ARN) that uniquely identifies the permissions you've given Amazon Transcribe to access your Amazon S3 buckets containing your media files or text data. ARNs have the format arn:partition:service:region:account-id:resource-type/resource-id.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files. If the role that you specify doesn’t have the appropriate permissions to access the specified Amazon S3 location, your request fails.

IAM role ARNs have the format arn:partition:iam::account:role/role-name-with-path. For example: arn:aws:iam::111122223333:role/Admin.

For more information, see IAM ARNs.

" } }, - "documentation":"

The object that contains the Amazon S3 object location and access role required to train and tune your custom language model.

" + "documentation":"

Contains the Amazon S3 location of the training data you want to use to create a new custom language model, and permissions to access this location.

When using InputDataConfig, you must include these sub-parameters: S3Uri and DataAccessRoleArn. You can optionally include TuningDataS3Uri.

" + }, + "InputType":{ + "type":"string", + "enum":[ + "REAL_TIME", + "POST_CALL" + ] }, "InternalFailureException":{ "type":"structure", "members":{ "Message":{"shape":"String"} }, - "documentation":"

There was an internal error. Check the error message and try your request again.

", + "documentation":"

There was an internal error. Check the error message, correct the issue, and try your request again.

", "exception":true, "fault":true }, @@ -1477,40 +1498,40 @@ "members":{ "Threshold":{ "shape":"TimestampMilliseconds", - "documentation":"

The duration of the interruption.

" + "documentation":"

Specify the duration of the interruptions in milliseconds. For example, you can flag speech that contains more than 10,000 milliseconds of interruptions.

" }, "ParticipantRole":{ "shape":"ParticipantRole", - "documentation":"

Indicates whether the caller or customer was interrupting.

" + "documentation":"

Specify the interrupter that you want to flag. Omitting this parameter is equivalent to specifying both participants.

" }, "AbsoluteTimeRange":{ "shape":"AbsoluteTimeRange", - "documentation":"

An object you can use to specify a time range (in milliseconds) for when you'd want to find the interruption. For example, you could search for an interruption between the 30,000 millisecond mark and the 45,000 millisecond mark. You could also specify the time period as the first 15,000 milliseconds or the last 15,000 milliseconds.

" + "documentation":"

Makes it possible to specify a time range (in milliseconds) in your audio, during which you want to search for an interruption. See for more detail.

" }, "RelativeTimeRange":{ "shape":"RelativeTimeRange", - "documentation":"

An object that allows percentages to specify the proportion of the call where there was a interruption. For example, you can specify the first half of the call. You can also specify the period of time between halfway through to three-quarters of the way through the call. Because the length of conversation can vary between calls, you can apply relative time ranges across all calls.

" + "documentation":"

Makes it possible to specify a time range (in percentage) in your media file, during which you want to search for an interruption. See for more detail.

" }, "Negate":{ "shape":"Boolean", - "documentation":"

Set to TRUE to look for a time period where there was no interruption.

" + "documentation":"

Set to TRUE to flag speech that does not contain interruptions. Set to FALSE to flag speech that contains interruptions.

" } }, - "documentation":"

An object that enables you to configure your category to be applied to call analytics jobs where either the customer or agent was interrupted.

" + "documentation":"

Flag the presence or absence of interruptions in your Call Analytics transcription output.

Rules using InterruptionFilter are designed to match:

  • Instances where an agent interrupts a customer

  • Instances where a customer interrupts an agent

  • Either participant interrupting the other

  • A lack of interruptions

See Rule criteria for batch categories for usage examples.

" }, "JobExecutionSettings":{ "type":"structure", "members":{ "AllowDeferredExecution":{ "shape":"Boolean", - "documentation":"

Indicates whether a job should be queued by Amazon Transcribe when the concurrent execution limit is exceeded. When the AllowDeferredExecution field is true, jobs are queued and executed when the number of executing jobs falls below the concurrent execution limit. If the field is false, Amazon Transcribe returns a LimitExceededException exception.

Note that job queuing is enabled by default for call analytics jobs.

If you specify the AllowDeferredExecution field, you must specify the DataAccessRoleArn field.

" + "documentation":"

Makes it possible to enable job queuing when your concurrent request limit is exceeded. When AllowDeferredExecution is set to true, transcription job requests are placed in a queue until the number of jobs falls below the concurrent request limit. If AllowDeferredExecution is set to false and the number of transcription job requests exceed the concurrent request limit, you get a LimitExceededException error.

Note that job queuing is enabled by default for Call Analytics jobs.

If you include AllowDeferredExecution in your request, you must also include DataAccessRoleArn.

" }, "DataAccessRoleArn":{ "shape":"DataAccessRoleArn", - "documentation":"

The Amazon Resource Name (ARN), in the form arn:partition:service:region:account-id:resource-type/resource-id, of a role that has access to the S3 bucket that contains the input files. Amazon Transcribe assumes this role to read queued media files. If you have specified an output S3 bucket for the transcription results, this role should have access to the output bucket as well.

If you specify the AllowDeferredExecution field, you must specify the DataAccessRoleArn field.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files. If the role that you specify doesn’t have the appropriate permissions to access the specified Amazon S3 location, your request fails.

IAM role ARNs have the format arn:partition:iam::account:role/role-name-with-path. For example: arn:aws:iam::111122223333:role/Admin. For more information, see IAM ARNs.

Note that if you include DataAccessRoleArn in your request, you must also include AllowDeferredExecution.

" } }, - "documentation":"

Provides information about when a transcription job should be executed.

" + "documentation":"

Makes it possible to control how your transcription job is processed. Currently, the only JobExecutionSettings modification you can choose is enabling job queueing using the AllowDeferredExecution sub-parameter.

If you include JobExecutionSettings in your request, you must also include the sub-parameters: AllowDeferredExecution and DataAccessRoleArn.

" }, "KMSEncryptionContextMap":{ "type":"map", @@ -1531,7 +1552,6 @@ "af-ZA", "ar-AE", "ar-SA", - "cy-GB", "da-DK", "de-CH", "de-DE", @@ -1547,8 +1567,6 @@ "fa-IR", "fr-CA", "fr-FR", - "ga-IE", - "gd-GB", "he-IL", "hi-IN", "id-ID", @@ -1570,23 +1588,41 @@ "en-NZ" ] }, + "LanguageCodeItem":{ + "type":"structure", + "members":{ + "LanguageCode":{ + "shape":"LanguageCode", + "documentation":"

Provides the language code for each language identified in your media.

" + }, + "DurationInSeconds":{ + "shape":"DurationInSeconds", + "documentation":"

Provides the total time, in seconds, each identified language is spoken in your media.

" + } + }, + "documentation":"

Provides information on the speech contained in a discreet utterance when multi-language identification is enabled in your request. This utterance represents a block of speech consisting of one language, preceded or followed by a block of speech in a different language.

" + }, + "LanguageCodeList":{ + "type":"list", + "member":{"shape":"LanguageCodeItem"} + }, "LanguageIdSettings":{ "type":"structure", "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary you want to use when processing your transcription job. The vocabulary you specify must have the same language codes as the transcription job; if the languages don't match, the vocabulary isn't applied.

" + "documentation":"

The name of the custom vocabulary you want to use when processing your transcription job. Custom vocabulary names are case sensitive.

The language of the specified custom vocabulary must match the language code that you specify in your transcription request. If the languages don't match, the custom vocabulary isn't applied. There are no errors or warnings associated with a language mismatch.

" }, "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the vocabulary filter you want to use when transcribing your audio. The filter you specify must have the same language codes as the transcription job; if the languages don't match, the vocabulary filter isn't be applied.

" + "documentation":"

The name of the custom vocabulary filter you want to use when processing your transcription job. Custom vocabulary filter names are case sensitive.

The language of the specified custom vocabulary filter must match the language code that you specify in your transcription request. If the languages don't match, the custom vocabulary filter isn't applied. There are no errors or warnings associated with a language mismatch.

Note that if you include VocabularyFilterName in your request, you must also include VocabularyFilterMethod.

" }, "LanguageModelName":{ "shape":"ModelName", - "documentation":"

The name of the language model you want to use when transcribing your audio. The model you specify must have the same language codes as the transcription job; if the languages don't match, the language model isn't be applied.

" + "documentation":"

The name of the custom language model you want to use when processing your transcription job. Note that custom language model names are case sensitive.

The language of the specified custom language model must match the language code that you specify in your transcription request. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch.

" } }, - "documentation":"

Language-specific settings that can be specified when language identification is enabled.

" + "documentation":"

If using automatic language identification in your request and you want to apply a custom language model, a custom vocabulary, or a custom vocabulary filter, include LanguageIdSettings with the relevant sub-parameters (VocabularyName, LanguageModelName, and VocabularyFilterName). Note that multi-language identification (IdentifyMultipleLanguages) doesn't support custom language models.

LanguageIdSettings supports two to five language codes. Each language code you include can have an associated custom language model, custom vocabulary, and custom vocabulary filter. The language codes that you specify must match the languages of the associated custom language models, custom vocabularies, and custom vocabulary filters.

It's recommended that you include LanguageOptions when using LanguageIdSettings to ensure that the correct language dialect is identified. For example, if you specify a custom vocabulary that is in en-US but Amazon Transcribe determines that the language spoken in your media is en-AU, your custom vocabulary is not applied to your transcription. If you include LanguageOptions and include en-US as the only English language dialect, your custom vocabulary is applied to your transcription.

If you want to include a custom language model with your request but do not want to use automatic language identification, use instead the parameter with the LanguageModelName sub-parameter. If you want to include a custom vocabulary or a custom vocabulary filter (or both) with your request but do not want to use automatic language identification, use instead the parameter with the VocabularyName or VocabularyFilterName (or both) sub-parameter.

" }, "LanguageIdSettingsMap":{ "type":"map", @@ -1600,42 +1636,42 @@ "members":{ "ModelName":{ "shape":"ModelName", - "documentation":"

The name of the custom language model.

" + "documentation":"

A unique name, chosen by you, for your custom language model.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account.

" }, "CreateTime":{ "shape":"DateTime", - "documentation":"

The time the custom language model was created.

" + "documentation":"

The date and time the specified custom language model was created.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The most recent time the custom language model was modified.

" + "documentation":"

The date and time the specified custom language model was last modified.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "LanguageCode":{ "shape":"CLMLanguageCode", - "documentation":"

The language code you used to create your custom language model.

" + "documentation":"

The language code used to create your custom language model. Each custom language model must contain terms in only one language, and the language you select for your custom language model must match the language of your training and tuning data.

For a list of supported languages and their associated language codes, refer to the Supported languages table. Note that U.S. English (en-US) is the only language supported with Amazon Transcribe Medical.

" }, "BaseModelName":{ "shape":"BaseModelName", - "documentation":"

The Amazon Transcribe standard language model, or base model used to create the custom language model.

" + "documentation":"

The Amazon Transcribe standard language model, or base model, used to create your custom language model.

" }, "ModelStatus":{ "shape":"ModelStatus", - "documentation":"

The creation status of a custom language model. When the status is COMPLETED the model is ready for use.

" + "documentation":"

The status of the specified custom language model. When the status displays as COMPLETED the model is ready for use.

" }, "UpgradeAvailability":{ "shape":"Boolean", - "documentation":"

Whether the base model used for the custom language model is up to date. If this field is false then you are running the most up-to-date version of the base model in your custom language model.

" + "documentation":"

Shows if a more current base model is available for use with the specified custom language model.

If false, your custom language model is using the most up-to-date base model.

If true, there is a newer base model available than the one your language model is using.

Note that to update a base model, you must recreate the custom language model using the new base model. Base model upgrades for existing custom language models are not supported.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

The reason why the custom language model couldn't be created.

" + "documentation":"

If ModelStatus is FAILED, FailureReason contains information about why the custom language model request failed. See also: Common Errors.

" }, "InputDataConfig":{ "shape":"InputDataConfig", - "documentation":"

The data access role and Amazon S3 prefixes for the input files used to train the custom language model.

" + "documentation":"

The Amazon S3 location of the input files used to train and tune your custom language model, in addition to the data access role ARN (Amazon Resource Name) that has permissions to access these data.

" } }, - "documentation":"

The structure used to describe a custom language model.

" + "documentation":"

Provides information about a custom language model, including the base model name, when the model was created, the location of the files used to train the model, when the model was last modified, the name you chose for the model, its language, its processing state, and if there is an upgrade available for the base model.

" }, "LanguageOptions":{ "type":"list", @@ -1647,7 +1683,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

Either you have sent too many requests or your input file is too long. Wait before you resend your request, or use a smaller file and resend the request.

", + "documentation":"

You've either sent too many requests or your input file is too long. Wait before retrying your request, or use a smaller file and try your request again.

", "exception":true }, "ListCallAnalyticsCategoriesRequest":{ @@ -1655,11 +1691,11 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

When included, NextTokenfetches the next set of categories if the result of the previous request was truncated.

" + "documentation":"

If your ListCallAnalyticsCategories request returns more results than can be displayed, NextToken is displayed in the response with an associated string. To get the next page of results, copy this string and repeat your request, including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of categories to return in each page of results. If there are fewer results than the value you specify, only the actual results are returned. If you do not specify a value, the default of 5 is used.

" + "documentation":"

The maximum number of Call Analytics categories to return in each page of results. If there are fewer results than the value that you specify, only the actual results are returned. If you don't specify a value, a default of 5 is used.

" } } }, @@ -1668,11 +1704,11 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

The operation returns a page of jobs at a time. The maximum size of the list is set by the MaxResults parameter. If there are more categories in the list than the page size, Amazon Transcribe returns the NextPage token. Include the token in the next request to the operation to return the next page of analytics categories.

" + "documentation":"

If NextToken is present in your response, it indicates that not all results are displayed. To view the next set of results, copy the string associated with the NextToken parameter in your results output, then run your request again including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "Categories":{ "shape":"CategoryPropertiesList", - "documentation":"

A list of objects containing information about analytics categories.

" + "documentation":"

Provides detailed information about your Call Analytics categories, including all the rules associated with each category.

" } } }, @@ -1681,19 +1717,19 @@ "members":{ "Status":{ "shape":"CallAnalyticsJobStatus", - "documentation":"

When specified, returns only call analytics jobs with the specified status. Jobs are ordered by creation date, with the most recent jobs returned first. If you don't specify a status, Amazon Transcribe returns all analytics jobs ordered by creation date.

" + "documentation":"

Returns only Call Analytics jobs with the specified status. Jobs are ordered by creation date, with the newest job first. If you don't include Status, all Call Analytics jobs are returned.

" }, "JobNameContains":{ "shape":"CallAnalyticsJobName", - "documentation":"

When specified, the jobs returned in the list are limited to jobs whose name contains the specified string.

" + "documentation":"

Returns only the Call Analytics jobs that contain the specified string. The search is not case sensitive.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If you receive a truncated result in the previous request of , include NextToken to fetch the next set of jobs.

" + "documentation":"

If your ListCallAnalyticsJobs request returns more results than can be displayed, NextToken is displayed in the response with an associated string. To get the next page of results, copy this string and repeat your request, including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of call analytics jobs to return in each page of results. If there are fewer results than the value you specify, only the actual results are returned. If you do not specify a value, the default of 5 is used.

" + "documentation":"

The maximum number of Call Analytics jobs to return in each page of results. If there are fewer results than the value that you specify, only the actual results are returned. If you don't specify a value, a default of 5 is used.

" } } }, @@ -1702,15 +1738,15 @@ "members":{ "Status":{ "shape":"CallAnalyticsJobStatus", - "documentation":"

When specified, returns only call analytics jobs with that status. Jobs are ordered by creation date, with the most recent jobs returned first. If you don't specify a status, Amazon Transcribe returns all transcription jobs ordered by creation date.

" + "documentation":"

Lists all Call Analytics jobs that have the status specified in your request. Jobs are ordered by creation date, with the newest job first.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The operation returns a page of jobs at a time. The maximum size of the page is set by the MaxResults parameter. If there are more jobs in the list than the page size, Amazon Transcribe returns the NextPage token. Include the token in your next request to the operation to return next page of jobs.

" + "documentation":"

If NextToken is present in your response, it indicates that not all results are displayed. To view the next set of results, copy the string associated with the NextToken parameter in your results output, then run your request again including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "CallAnalyticsJobSummaries":{ "shape":"CallAnalyticsJobSummaries", - "documentation":"

A list of objects containing summary information for a transcription job.

" + "documentation":"

Provides a summary of information about each result.

" } } }, @@ -1719,19 +1755,19 @@ "members":{ "StatusEquals":{ "shape":"ModelStatus", - "documentation":"

When specified, returns only custom language models with the specified status. Language models are ordered by creation date, with the newest models first. If you don't specify a status, Amazon Transcribe returns all custom language models ordered by date.

" + "documentation":"

Returns only custom language models with the specified status. Language models are ordered by creation date, with the newest model first. If you don't include StatusEquals, all custom language models are returned.

" }, "NameContains":{ "shape":"ModelName", - "documentation":"

When specified, the custom language model names returned contain the substring you've specified.

" + "documentation":"

Returns only the custom language models that contain the specified string. The search is not case sensitive.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

When included, fetches the next set of jobs if the result of the previous request was truncated.

" + "documentation":"

If your ListLanguageModels request returns more results than can be displayed, NextToken is displayed in the response with an associated string. To get the next page of results, copy this string and repeat your request, including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of language models to return in each page of results. If there are fewer results than the value you specify, only the actual results are returned. If you do not specify a value, the default of 5 is used.

" + "documentation":"

The maximum number of custom language models to return in each page of results. If there are fewer results than the value that you specify, only the actual results are returned. If you don't specify a value, a default of 5 is used.

" } } }, @@ -1740,11 +1776,11 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

The operation returns a page of jobs at a time. The maximum size of the list is set by the MaxResults parameter. If there are more language models in the list than the page size, Amazon Transcribe returns the NextPage token. Include the token in the next request to the operation to return the next page of language models.

" + "documentation":"

If NextToken is present in your response, it indicates that not all results are displayed. To view the next set of results, copy the string associated with the NextToken parameter in your results output, then run your request again including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "Models":{ "shape":"Models", - "documentation":"

A list of objects containing information about custom language models.

" + "documentation":"

Provides information about the custom language models that match the criteria specified in your request.

" } } }, @@ -1753,19 +1789,19 @@ "members":{ "Status":{ "shape":"TranscriptionJobStatus", - "documentation":"

When specified, returns only medical transcription jobs with the specified status. Jobs are ordered by creation date, with the newest jobs returned first. If you don't specify a status, Amazon Transcribe Medical returns all transcription jobs ordered by creation date.

" + "documentation":"

Returns only medical transcription jobs with the specified status. Jobs are ordered by creation date, with the newest job first. If you don't include Status, all medical transcription jobs are returned.

" }, "JobNameContains":{ "shape":"TranscriptionJobName", - "documentation":"

When specified, the jobs returned in the list are limited to jobs whose name contains the specified string.

" + "documentation":"

Returns only the medical transcription jobs that contain the specified string. The search is not case sensitive.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If you a receive a truncated result in the previous request of ListMedicalTranscriptionJobs, include NextToken to fetch the next set of jobs.

" + "documentation":"

If your ListMedicalTranscriptionJobs request returns more results than can be displayed, NextToken is displayed in the response with an associated string. To get the next page of results, copy this string and repeat your request, including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of medical transcription jobs to return in each page of results. If there are fewer results than the value you specify, only the actual results are returned. If you do not specify a value, the default of 5 is used.

" + "documentation":"

The maximum number of medical transcription jobs to return in each page of results. If there are fewer results than the value that you specify, only the actual results are returned. If you don't specify a value, a default of 5 is used.

" } } }, @@ -1774,15 +1810,15 @@ "members":{ "Status":{ "shape":"TranscriptionJobStatus", - "documentation":"

The requested status of the medical transcription jobs returned.

" + "documentation":"

Lists all medical transcription jobs that have the status specified in your request. Jobs are ordered by creation date, with the newest job first.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The ListMedicalTranscriptionJobs operation returns a page of jobs at a time. The maximum size of the page is set by the MaxResults parameter. If the number of jobs exceeds what can fit on a page, Amazon Transcribe Medical returns the NextPage token. Include the token in the next request to the ListMedicalTranscriptionJobs operation to return in the next page of jobs.

" + "documentation":"

If NextToken is present in your response, it indicates that not all results are displayed. To view the next set of results, copy the string associated with the NextToken parameter in your results output, then run your request again including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "MedicalTranscriptionJobSummaries":{ "shape":"MedicalTranscriptionJobSummaries", - "documentation":"

A list of objects containing summary information for a transcription job.

" + "documentation":"

Provides a summary of information about each result.

" } } }, @@ -1791,19 +1827,19 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

If the result of your previous request to ListMedicalVocabularies was truncated, include the NextToken to fetch the next set of vocabularies.

" + "documentation":"

If your ListMedicalVocabularies request returns more results than can be displayed, NextToken is displayed in the response with an associated string. To get the next page of results, copy this string and repeat your request, including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of vocabularies to return in each page of results. If there are fewer results than the value you specify, only the actual results are returned. If you do not specify a value, the default of 5 is used.

" + "documentation":"

The maximum number of custom medical vocabularies to return in each page of results. If there are fewer results than the value that you specify, only the actual results are returned. If you don't specify a value, a default of 5 is used.

" }, "StateEquals":{ "shape":"VocabularyState", - "documentation":"

When specified, returns only vocabularies with the VocabularyState equal to the specified vocabulary state. Use this field to see which vocabularies are ready for your medical transcription jobs.

" + "documentation":"

Returns only custom medical vocabularies with the specified state. Custom vocabularies are ordered by creation date, with the newest vocabulary first. If you don't include StateEquals, all custom medical vocabularies are returned.

" }, "NameContains":{ "shape":"VocabularyName", - "documentation":"

Returns vocabularies whose names contain the specified string. The search is not case sensitive. ListMedicalVocabularies returns both \"vocabularyname\" and \"VocabularyName\".

" + "documentation":"

Returns only the custom medical vocabularies that contain the specified string. The search is not case sensitive.

" } } }, @@ -1812,15 +1848,15 @@ "members":{ "Status":{ "shape":"VocabularyState", - "documentation":"

The requested vocabulary state.

" + "documentation":"

Lists all custom medical vocabularies that have the status specified in your request. Custom vocabularies are ordered by creation date, with the newest vocabulary first.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The ListMedicalVocabularies operation returns a page of vocabularies at a time. You set the maximum number of vocabularies to return on a page with the MaxResults parameter. If there are more jobs in the list will fit on a page, Amazon Transcribe Medical returns the NextPage token. To return the next page of vocabularies, include the token in the next request to the ListMedicalVocabularies operation.

" + "documentation":"

If NextToken is present in your response, it indicates that not all results are displayed. To view the next set of results, copy the string associated with the NextToken parameter in your results output, then run your request again including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "Vocabularies":{ "shape":"Vocabularies", - "documentation":"

A list of objects that describe the vocabularies that match your search criteria.

" + "documentation":"

Provides information about the custom medical vocabularies that match the criteria specified in your request.

" } } }, @@ -1830,7 +1866,7 @@ "members":{ "ResourceArn":{ "shape":"TranscribeArn", - "documentation":"

Lists all tags associated with a given Amazon Resource Name (ARN). ARNs have the format arn:partition:service:region:account-id:resource-type/resource-id (for example, arn:aws:transcribe:us-east-1:account-id:transcription-job/your-job-name). Valid values for resource-type are: transcription-job, medical-transcription-job, vocabulary, medical-vocabulary, vocabulary-filter, and language-model.

" + "documentation":"

Returns a list of all tags associated with the specified Amazon Resource Name (ARN). ARNs have the format arn:partition:service:region:account-id:resource-type/resource-id.

For example, arn:aws:transcribe:us-west-2:111122223333:transcription-job/transcription-job-name.

Valid values for resource-type are: transcription-job, medical-transcription-job, vocabulary, medical-vocabulary, vocabulary-filter, and language-model.

" } } }, @@ -1839,11 +1875,11 @@ "members":{ "ResourceArn":{ "shape":"TranscribeArn", - "documentation":"

Lists all tags associated with the given Amazon Resource Name (ARN).

" + "documentation":"

The Amazon Resource Name (ARN) specified in your request.

" }, "Tags":{ "shape":"TagList", - "documentation":"

Lists all tags associated with the given transcription job, vocabulary, or resource.

" + "documentation":"

Lists all tags associated with the given transcription job, vocabulary, model, or resource.

" } } }, @@ -1852,19 +1888,19 @@ "members":{ "Status":{ "shape":"TranscriptionJobStatus", - "documentation":"

When specified, returns only transcription jobs with the specified status. Jobs are ordered by creation date, with the newest jobs returned first. If you don’t specify a status, Amazon Transcribe returns all transcription jobs ordered by creation date.

" + "documentation":"

Returns only transcription jobs with the specified status. Jobs are ordered by creation date, with the newest job first. If you don't include Status, all transcription jobs are returned.

" }, "JobNameContains":{ "shape":"TranscriptionJobName", - "documentation":"

When specified, the jobs returned in the list are limited to jobs whose name contains the specified string.

" + "documentation":"

Returns only the transcription jobs that contain the specified string. The search is not case sensitive.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

If the result of the previous request to ListTranscriptionJobs is truncated, include the NextToken to fetch the next set of jobs.

" + "documentation":"

If your ListTranscriptionJobs request returns more results than can be displayed, NextToken is displayed in the response with an associated string. To get the next page of results, copy this string and repeat your request, including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of jobs to return in each page of results. If there are fewer results than the value you specify, only the actual results are returned. If you do not specify a value, the default of 5 is used.

" + "documentation":"

The maximum number of transcription jobs to return in each page of results. If there are fewer results than the value that you specify, only the actual results are returned. If you don't specify a value, a default of 5 is used.

" } } }, @@ -1873,15 +1909,15 @@ "members":{ "Status":{ "shape":"TranscriptionJobStatus", - "documentation":"

The requested status of the jobs returned.

" + "documentation":"

Lists all transcription jobs that have the status specified in your request. Jobs are ordered by creation date, with the newest job first.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The ListTranscriptionJobs operation returns a page of jobs at a time. The maximum size of the page is set by the MaxResults parameter. If there are more jobs in the list than the page size, Amazon Transcribe returns the NextPage token. Include the token in the next request to the ListTranscriptionJobs operation to return in the next page of jobs.

" + "documentation":"

If NextToken is present in your response, it indicates that not all results are displayed. To view the next set of results, copy the string associated with the NextToken parameter in your results output, then run your request again including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "TranscriptionJobSummaries":{ "shape":"TranscriptionJobSummaries", - "documentation":"

A list of objects containing summary information for a transcription job.

" + "documentation":"

Provides a summary of information about each result.

" } } }, @@ -1890,19 +1926,19 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

If the result of the previous request to ListVocabularies was truncated, include the NextToken to fetch the next set of jobs.

" + "documentation":"

If your ListVocabularies request returns more results than can be displayed, NextToken is displayed in the response with an associated string. To get the next page of results, copy this string and repeat your request, including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of vocabularies to return in each page of results. If there are fewer results than the value you specify, only the actual results are returned. If you do not specify a value, the default of 5 is used.

" + "documentation":"

The maximum number of custom vocabularies to return in each page of results. If there are fewer results than the value that you specify, only the actual results are returned. If you don't specify a value, a default of 5 is used.

" }, "StateEquals":{ "shape":"VocabularyState", - "documentation":"

When specified, only returns vocabularies with the VocabularyState field equal to the specified state.

" + "documentation":"

Returns only custom vocabularies with the specified state. Vocabularies are ordered by creation date, with the newest vocabulary first. If you don't include StateEquals, all custom medical vocabularies are returned.

" }, "NameContains":{ "shape":"VocabularyName", - "documentation":"

When specified, the vocabularies returned in the list are limited to vocabularies whose name contains the specified string. The search is not case sensitive, ListVocabularies returns both \"vocabularyname\" and \"VocabularyName\" in the response list.

" + "documentation":"

Returns only the custom vocabularies that contain the specified string. The search is not case sensitive.

" } } }, @@ -1911,15 +1947,15 @@ "members":{ "Status":{ "shape":"VocabularyState", - "documentation":"

The requested vocabulary state.

" + "documentation":"

Lists all custom vocabularies that have the status specified in your request. Vocabularies are ordered by creation date, with the newest vocabulary first.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

The ListVocabularies operation returns a page of vocabularies at a time. The maximum size of the page is set in the MaxResults parameter. If there are more jobs in the list than will fit on the page, Amazon Transcribe returns the NextPage token. To return in the next page of jobs, include the token in the next request to the ListVocabularies operation.

" + "documentation":"

If NextToken is present in your response, it indicates that not all results are displayed. To view the next set of results, copy the string associated with the NextToken parameter in your results output, then run your request again including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "Vocabularies":{ "shape":"Vocabularies", - "documentation":"

A list of objects that describe the vocabularies that match the search criteria in the request.

" + "documentation":"

Provides information about the custom vocabularies that match the criteria specified in your request.

" } } }, @@ -1928,15 +1964,15 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

If the result of the previous request to ListVocabularyFilters was truncated, include the NextToken to fetch the next set of collections.

" + "documentation":"

If your ListVocabularyFilters request returns more results than can be displayed, NextToken is displayed in the response with an associated string. To get the next page of results, copy this string and repeat your request, including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of filters to return in each page of results. If there are fewer results than the value you specify, only the actual results are returned. If you do not specify a value, the default of 5 is used.

" + "documentation":"

The maximum number of custom vocabulary filters to return in each page of results. If there are fewer results than the value that you specify, only the actual results are returned. If you don't specify a value, a default of 5 is used.

" }, "NameContains":{ "shape":"VocabularyFilterName", - "documentation":"

Filters the response so that it only contains vocabulary filters whose name contains the specified string.

" + "documentation":"

Returns only the custom vocabulary filters that contain the specified string. The search is not case sensitive.

" } } }, @@ -1945,11 +1981,11 @@ "members":{ "NextToken":{ "shape":"NextToken", - "documentation":"

The ListVocabularyFilters operation returns a page of collections at a time. The maximum size of the page is set by the MaxResults parameter. If there are more jobs in the list than the page size, Amazon Transcribe returns the NextPage token. Include the token in the next request to the ListVocabularyFilters operation to return in the next page of jobs.

" + "documentation":"

If NextToken is present in your response, it indicates that not all results are displayed. To view the next set of results, copy the string associated with the NextToken parameter in your results output, then run your request again including NextToken with the value of the copied string. Repeat as needed to view all your results.

" }, "VocabularyFilters":{ "shape":"VocabularyFilters", - "documentation":"

The list of vocabulary filters. It contains at most MaxResults number of filters. If there are more filters, call the ListVocabularyFilters operation again with the NextToken parameter in the request set to the value of the NextToken field in the response.

" + "documentation":"

Provides information about the custom vocabulary filters that match the criteria specified in your request.

" } } }, @@ -1973,14 +2009,14 @@ "members":{ "MediaFileUri":{ "shape":"Uri", - "documentation":"

The S3 object location of the input media file. The URI must be in the same region as the API endpoint that you are calling. The general form is:

s3://DOC-EXAMPLE-BUCKET/keyprefix/objectkey

For example:

s3://DOC-EXAMPLE-BUCKET/example.flac

s3://DOC-EXAMPLE-BUCKET/mediafiles/example.flac

For more information about S3 object names, see Object Keys in the Amazon S3 Developer Guide.

" + "documentation":"

The Amazon S3 location of the media file you want to transcribe. For example:

  • s3://DOC-EXAMPLE-BUCKET/my-media-file.flac

  • s3://DOC-EXAMPLE-BUCKET/media-files/my-media-file.flac

Note that the Amazon S3 bucket that contains your input media must be located in the same Amazon Web Services Region where you're making your transcription request.

" }, "RedactedMediaFileUri":{ "shape":"Uri", - "documentation":"

The S3 object location for your redacted output media file. This is only supported for call analytics jobs.

" + "documentation":"

The Amazon S3 location of the media file you want to redact. For example:

  • s3://DOC-EXAMPLE-BUCKET/my-media-file.flac

  • s3://DOC-EXAMPLE-BUCKET/media-files/my-media-file.flac

Note that the Amazon S3 bucket that contains your input media must be located in the same Amazon Web Services Region where you're making your transcription request.

RedactedMediaFileUri produces a redacted audio file in addition to a redacted transcript. It is only supported for Call Analytics (StartCallAnalyticsJob) transcription requests.

" } }, - "documentation":"

Describes the input media file in a transcription request.

" + "documentation":"

Describes the Amazon S3 location of the media file you want to use in your request.

For information on supported media formats, refer to the MediaFormat parameter or the Media formats section in the Amazon S3 Developer Guide.

" }, "MediaFormat":{ "type":"string", @@ -2013,29 +2049,29 @@ "members":{ "TranscriptFileUri":{ "shape":"Uri", - "documentation":"

The S3 object location of the medical transcript.

Use this URI to access the medical transcript. This URI points to the S3 bucket you created to store the medical transcript.

" + "documentation":"

The Amazon S3 location of your transcript. You can use this URI to access or download your transcript.

Note that this is the Amazon S3 location you specified in your request using the OutputBucketName parameter.

" } }, - "documentation":"

Identifies the location of a medical transcript.

" + "documentation":"

Provides you with the Amazon S3 URI you can use to access your transcript.

" }, "MedicalTranscriptionJob":{ "type":"structure", "members":{ "MedicalTranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name for a given medical transcription job.

" + "documentation":"

The name of the medical transcription job. Job names are case sensitive and must be unique within an Amazon Web Services account.

" }, "TranscriptionJobStatus":{ "shape":"TranscriptionJobStatus", - "documentation":"

The completion status of a medical transcription job.

" + "documentation":"

Provides the status of the specified medical transcription job.

If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri. If the status is FAILED, FailureReason provides details on why your transcription job failed.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code for the language spoken in the source audio file. US English (en-US) is the only supported language for medical transcriptions. Any other value you enter for language code results in a BadRequestException error.

" + "documentation":"

The language code used to create your medical transcription job. US English (en-US) is the only supported language for medical transcriptions.

" }, "MediaSampleRateHertz":{ "shape":"MedicalMediaSampleRateHertz", - "documentation":"

The sample rate, in Hertz, of the source audio containing medical information.

If you don't specify the sample rate, Amazon Transcribe Medical determines it for you. If you choose to specify the sample rate, it must match the rate detected by Amazon Transcribe Medical.

" + "documentation":"

The sample rate, in hertz, of the audio track in your input media file.

" }, "MediaFormat":{ "shape":"MediaFormat", @@ -2044,46 +2080,46 @@ "Media":{"shape":"Media"}, "Transcript":{ "shape":"MedicalTranscript", - "documentation":"

An object that contains the MedicalTranscript. The MedicalTranscript contains the TranscriptFileUri.

" + "documentation":"

Provides you with the Amazon S3 URI you can use to access your transcript.

" }, "StartTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job started processing.

" + "documentation":"

The date and time the specified medical transcription job began processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.789000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "CreationTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job was created.

" + "documentation":"

The date and time the specified medical transcription job request was made.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "CompletionTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job was completed.

" + "documentation":"

The date and time the specified medical transcription job finished processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:33:13.922000-07:00 represents a transcription job that started processing at 12:33 PM UTC-7 on May 4, 2022.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If the TranscriptionJobStatus field is FAILED, this field contains information about why the job failed.

The FailureReason field contains one of the following values:

  • Unsupported media format- The media format specified in the MediaFormat field of the request isn't valid. See the description of the MediaFormat field for a list of valid values.

  • The media format provided does not match the detected media format- The media format of the audio file doesn't match the format specified in the MediaFormat field in the request. Check the media format of your media file and make sure the two values match.

  • Invalid sample rate for audio file- The sample rate specified in the MediaSampleRateHertz of the request isn't valid. The sample rate must be between 8,000 and 48,000 Hertz.

  • The sample rate provided does not match the detected sample rate- The sample rate in the audio file doesn't match the sample rate specified in the MediaSampleRateHertz field in the request. Check the sample rate of your media file and make sure that the two values match.

  • Invalid file size: file size too large- The size of your audio file is larger than what Amazon Transcribe Medical can process. For more information, see Guidelines and Quotas in the Amazon Transcribe Medical Guide.

  • Invalid number of channels: number of channels too large- Your audio contains more channels than Amazon Transcribe Medical is configured to process. To request additional channels, see Amazon Transcribe Medical Endpoints and Quotas in the Amazon Web Services General Reference.

" + "documentation":"

If TranscriptionJobStatus is FAILED, FailureReason contains information about why the transcription job request failed.

The FailureReason field contains one of the following values:

  • Unsupported media format.

    The media format specified in MediaFormat isn't valid. Refer to MediaFormat for a list of supported formats.

  • The media format provided does not match the detected media format.

    The media format specified in MediaFormat doesn't match the format of the input file. Check the media format of your media file and correct the specified value.

  • Invalid sample rate for audio file.

    The sample rate specified in MediaSampleRateHertz isn't valid. The sample rate must be between 16,000 and 48,000 hertz.

  • The sample rate provided does not match the detected sample rate.

    The sample rate specified in MediaSampleRateHertz doesn't match the sample rate detected in your input media file. Check the sample rate of your media file and correct the specified value.

  • Invalid file size: file size too large.

    The size of your media file is larger than what Amazon Transcribe can process. For more information, refer to Guidelines and quotas.

  • Invalid number of channels: number of channels too large.

    Your audio contains more channels than Amazon Transcribe is able to process. For more information, refer to Guidelines and quotas.

" }, "Settings":{ "shape":"MedicalTranscriptionSetting", - "documentation":"

Object that contains object.

" + "documentation":"

Provides information on any additional settings that were included in your request. Additional settings include channel identification, alternative transcriptions, speaker partitioning, custom vocabularies, and custom vocabulary filters.

" }, "ContentIdentificationType":{ "shape":"MedicalContentIdentificationType", - "documentation":"

Shows the type of content that you've configured Amazon Transcribe Medical to identify in a transcription job. If the value is PHI, you've configured the job to identify personal health information (PHI) in the transcription output.

" + "documentation":"

Indicates whether content identification was enabled for your transcription request.

" }, "Specialty":{ "shape":"Specialty", - "documentation":"

The medical specialty of any clinicians providing a dictation or having a conversation. Refer to Transcribing a medical conversationfor a list of supported specialties.

" + "documentation":"

Describes the medical specialty represented in your media.

" }, "Type":{ "shape":"Type", - "documentation":"

The type of speech in the transcription job. CONVERSATION is generally used for patient-physician dialogues. DICTATION is the setting for physicians speaking their notes after seeing a patient. For more information, see What is Amazon Transcribe Medical?.

" + "documentation":"

Indicates whether the input media is a dictation or a conversation, as specified in the StartMedicalTranscriptionJob request.

" }, "Tags":{ "shape":"TagList", - "documentation":"

A key:value pair assigned to a given medical transcription job.

" + "documentation":"

The tags, each in the form of a key:value pair, assigned to the specified medical transcription job.

" } }, - "documentation":"

The data structure that contains the information for a medical transcription job.

" + "documentation":"

Provides detailed information about a medical transcription job.

To view the status of the specified medical transcription job, check the TranscriptionJobStatus field. If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri. If the status is FAILED, FailureReason provides details on why your transcription job failed.

" }, "MedicalTranscriptionJobSummaries":{ "type":"list", @@ -2094,80 +2130,80 @@ "members":{ "MedicalTranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name of a medical transcription job.

" + "documentation":"

The name of the medical transcription job. Job names are case sensitive and must be unique within an Amazon Web Services account.

" }, "CreationTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the medical transcription job was created.

" + "documentation":"

The date and time the specified medical transcription job request was made.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "StartTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job began processing.

" + "documentation":"

The date and time your medical transcription job began processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.789000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "CompletionTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job was completed.

" + "documentation":"

The date and time the specified medical transcription job finished processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:33:13.922000-07:00 represents a transcription job that started processing at 12:33 PM UTC-7 on May 4, 2022.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language of the transcript in the source audio file.

" + "documentation":"

The language code used to create your medical transcription. US English (en-US) is the only supported language for medical transcriptions.

" }, "TranscriptionJobStatus":{ "shape":"TranscriptionJobStatus", - "documentation":"

The status of the medical transcription job.

" + "documentation":"

Provides the status of your medical transcription job.

If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri. If the status is FAILED, FailureReason provides details on why your transcription job failed.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If the TranscriptionJobStatus field is FAILED, a description of the error.

" + "documentation":"

If TranscriptionJobStatus is FAILED, FailureReason contains information about why the transcription job failed. See also: Common Errors.

" }, "OutputLocationType":{ "shape":"OutputLocationType", - "documentation":"

Indicates the location of the transcription job's output. This field must be the path of an S3 bucket; if you don't already have an S3 bucket, one is created based on the path you add.

" + "documentation":"

Indicates where the specified medical transcription output is stored.

If the value is CUSTOMER_BUCKET, the location is the Amazon S3 bucket you specified using the OutputBucketName parameter in your request. If you also included OutputKey in your request, your output is located in the path you specified in your request.

If the value is SERVICE_BUCKET, the location is a service-managed Amazon S3 bucket. To access a transcript stored in a service-managed bucket, use the URI shown in the TranscriptFileUri field.

" }, "Specialty":{ "shape":"Specialty", - "documentation":"

The medical specialty of the transcription job. Refer to Transcribing a medical conversationfor a list of supported specialties.

" + "documentation":"

Provides the medical specialty represented in your media.

" }, "ContentIdentificationType":{ "shape":"MedicalContentIdentificationType", - "documentation":"

Shows the type of information you've configured Amazon Transcribe Medical to identify in a transcription job. If the value is PHI, you've configured the transcription job to identify personal health information (PHI).

" + "documentation":"

Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health information (PHI) in a transcription.

" }, "Type":{ "shape":"Type", - "documentation":"

The speech of the clinician in the input audio.

" + "documentation":"

Indicates whether the input media is a dictation or a conversation, as specified in the StartMedicalTranscriptionJob request.

" } }, - "documentation":"

Provides summary information about a transcription job.

" + "documentation":"

Provides detailed information about a specific medical transcription job.

" }, "MedicalTranscriptionSetting":{ "type":"structure", "members":{ "ShowSpeakerLabels":{ "shape":"Boolean", - "documentation":"

Determines whether the transcription job uses speaker recognition to identify different speakers in the input audio. Speaker recognition labels individual speakers in the audio file. If you set the ShowSpeakerLabels field to true, you must also set the maximum number of speaker labels in the MaxSpeakerLabels field.

You can't set both ShowSpeakerLabels and ChannelIdentification in the same request. If you set both, your request returns a BadRequestException.

" + "documentation":"

Enables speaker partitioning (diarization) in your transcription output. Speaker partitioning labels the speech from individual speakers in your media file.

If you enable ShowSpeakerLabels in your request, you must also include MaxSpeakerLabels.

You can't include ShowSpeakerLabels and ChannelIdentification in the same request. Including both parameters returns a BadRequestException.

For more information, see Partitioning speakers (diarization).

" }, "MaxSpeakerLabels":{ "shape":"MaxSpeakers", - "documentation":"

The maximum number of speakers to identify in the input audio. If there are more speakers in the audio than this number, multiple speakers are identified as a single speaker. If you specify the MaxSpeakerLabels field, you must set the ShowSpeakerLabels field to true.

" + "documentation":"

Specify the maximum number of speakers you want to partition in your media.

Note that if your media contains more speakers than the specified number, multiple speakers are treated as a single speaker.

If you specify the MaxSpeakerLabels field, you must set the ShowSpeakerLabels field to true.

" }, "ChannelIdentification":{ "shape":"Boolean", - "documentation":"

Instructs Amazon Transcribe Medical to process each audio channel separately and then merge the transcription output of each channel into a single transcription.

Amazon Transcribe Medical also produces a transcription of each item detected on an audio channel, including the start time and end time of the item and alternative transcriptions of item. The alternative transcriptions also come with confidence scores provided by Amazon Transcribe Medical.

You can't set both ShowSpeakerLabels and ChannelIdentification in the same request. If you set both, your request returns a BadRequestException.

" + "documentation":"

Enables channel identification in multi-channel audio.

Channel identification transcribes the audio on each channel independently, then appends the output for each channel into one transcript.

If you have multi-channel audio and do not enable channel identification, your audio is transcribed in a continuous manner and your transcript does not separate the speech by channel.

You can't include both ShowSpeakerLabels and ChannelIdentification in the same request. Including both parameters returns a BadRequestException.

For more information, see Transcribing multi-channel audio.

" }, "ShowAlternatives":{ "shape":"Boolean", - "documentation":"

Determines whether alternative transcripts are generated along with the transcript that has the highest confidence. If you set ShowAlternatives field to true, you must also set the maximum number of alternatives to return in the MaxAlternatives field.

" + "documentation":"

To include alternative transcriptions within your transcription output, include ShowAlternatives in your transcription request.

If you include ShowAlternatives, you must also include MaxAlternatives, which is the maximum number of alternative transcriptions you want Amazon Transcribe Medical to generate.

For more information, see Alternative transcriptions.

" }, "MaxAlternatives":{ "shape":"MaxAlternatives", - "documentation":"

The maximum number of alternatives that you tell the service to return. If you specify the MaxAlternatives field, you must set the ShowAlternatives field to true.

" + "documentation":"

Indicate the maximum number of alternative transcriptions you want Amazon Transcribe Medical to include in your transcript.

If you select a number greater than the number of alternative transcriptions generated by Amazon Transcribe Medical, only the actual number of alternative transcriptions are included.

If you include MaxAlternatives in your request, you must also include ShowAlternatives with a value of true.

For more information, see Alternative transcriptions.

" }, "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary to use when processing a medical transcription job.

" + "documentation":"

The name of the custom vocabulary you want to use when processing your medical transcription job. Custom vocabulary names are case sensitive.

The language of the specified custom vocabulary must match the language code that you specify in your transcription request. If the languages don't match, the custom vocabulary isn't applied. There are no errors or warnings associated with a language mismatch. US English (en-US) is the only valid language for Amazon Transcribe Medical.

" } }, - "documentation":"

Optional settings for the StartMedicalTranscriptionJob operation.

" + "documentation":"

Allows additional optional settings in your request, including channel identification, alternative transcriptions, and speaker partitioning. You can use that to apply custom vocabularies to your medical transcription job.

" }, "ModelName":{ "type":"string", @@ -2180,10 +2216,10 @@ "members":{ "LanguageModelName":{ "shape":"ModelName", - "documentation":"

The name of your custom language model.

" + "documentation":"

The name of the custom language model you want to use when processing your transcription job. Note that custom language model names are case sensitive.

The language of the specified custom language model must match the language code that you specify in your transcription request. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch.

" } }, - "documentation":"

The object used to call your custom language model to your transcription job.

" + "documentation":"

Provides the name of the custom language model that was included in the specified transcription job.

Only use ModelSettings with the LanguageModelName sub-parameter if you're not using automatic language identification (). If using LanguageIdSettings in your request, this parameter contains a LanguageModelName sub-parameter.

" }, "ModelStatus":{ "type":"string", @@ -2213,29 +2249,29 @@ "members":{ "Threshold":{ "shape":"TimestampMilliseconds", - "documentation":"

The duration of the period when neither the customer nor agent was talking.

" + "documentation":"

Specify the duration, in milliseconds, of the period of silence that you want to flag. For example, you can flag a silent period that lasts 30,000 milliseconds.

" }, "AbsoluteTimeRange":{ "shape":"AbsoluteTimeRange", - "documentation":"

An object you can use to specify a time range (in milliseconds) for when no one is talking. For example, you could specify a time period between the 30,000 millisecond mark and the 45,000 millisecond mark. You could also specify the time period as the first 15,000 milliseconds or the last 15,000 milliseconds.

" + "documentation":"

Makes it possible to specify a time range (in milliseconds) in your audio, during which you want to search for a period of silence. See for more detail.

" }, "RelativeTimeRange":{ "shape":"RelativeTimeRange", - "documentation":"

An object that allows percentages to specify the proportion of the call where there was silence. For example, you can specify the first half of the call. You can also specify the period of time between halfway through to three-quarters of the way through the call. Because the length of conversation can vary between calls, you can apply relative time ranges across all calls.

" + "documentation":"

Makes it possible to specify a time range (in percentage) in your media file, during which you want to search for a period of silence. See for more detail.

" }, "Negate":{ "shape":"Boolean", - "documentation":"

Set to TRUE to look for a time period when people were talking.

" + "documentation":"

Set to TRUE to flag periods of speech. Set to FALSE to flag periods of silence

" } }, - "documentation":"

An object that enables you to configure your category to be applied to call analytics jobs where either the customer or agent was interrupted.

" + "documentation":"

Flag the presence or absence of periods of silence in your Call Analytics transcription output.

Rules using NonTalkTimeFilter are designed to match:

  • The presence of silence at specified periods throughout the call

  • The presence of speech at specified periods throughout the call

See Rule criteria for batch categories for usage examples.

" }, "NotFoundException":{ "type":"structure", "members":{ "Message":{"shape":"String"} }, - "documentation":"

We can't find the requested resource. Check the name and try your request again.

", + "documentation":"

We can't find the requested resource. Check that the specified name is correct and try your request again.

", "exception":true }, "OutputBucketName":{ @@ -2317,44 +2353,44 @@ "members":{ "StartPercentage":{ "shape":"Percentage", - "documentation":"

A value that indicates the percentage of the beginning of the time range. To set a relative time range, you must specify a start percentage and an end percentage. For example, if you specify the following values:

  • StartPercentage - 10

  • EndPercentage - 50

This looks at the time range starting from 10% of the way into the call to 50% of the way through the call. For a call that lasts 100,000 milliseconds, this example range would apply from the 10,000 millisecond mark to the 50,000 millisecond mark.

" + "documentation":"

The time, in percentage, when Amazon Transcribe starts searching for the specified criteria in your media file. If you include StartPercentage in your request, you must also include EndPercentage.

" }, "EndPercentage":{ "shape":"Percentage", - "documentation":"

A value that indicates the percentage of the end of the time range. To set a relative time range, you must specify a start percentage and an end percentage. For example, if you specify the following values:

  • StartPercentage - 10

  • EndPercentage - 50

This looks at the time range starting from 10% of the way into the call to 50% of the way through the call. For a call that lasts 100,000 milliseconds, this example range would apply from the 10,000 millisecond mark to the 50,000 millisecond mark.

" + "documentation":"

The time, in percentage, when Amazon Transcribe stops searching for the specified criteria in your media file. If you include EndPercentage in your request, you must also include StartPercentage.

" }, "First":{ "shape":"Percentage", - "documentation":"

A range that takes the portion of the call up to the time in milliseconds set by the value that you've specified. For example, if you specify 120000, the time range is set for the first 120,000 milliseconds of the call.

" + "documentation":"

The time, in percentage, from the start of your media file until the specified value. Amazon Transcribe searches for your specified criteria in this time segment.

" }, "Last":{ "shape":"Percentage", - "documentation":"

A range that takes the portion of the call from the time in milliseconds set by the value that you've specified to the end of the call. For example, if you specify 120000, the time range is set for the last 120,000 milliseconds of the call.

" + "documentation":"

The time, in percentage, from the specified value until the end of your media file. Amazon Transcribe searches for your specified criteria in this time segment.

" } }, - "documentation":"

An object that allows percentages to specify the proportion of the call where you would like to apply a filter. For example, you can specify the first half of the call. You can also specify the period of time between halfway through to three-quarters of the way through the call. Because the length of conversation can vary between calls, you can apply relative time ranges across all calls.

" + "documentation":"

A time range, in percentage, between two points in your media file.

You can use StartPercentage and EndPercentage to search a custom segment. For example, setting StartPercentage to 10 and EndPercentage to 50 only searches for your specified criteria in the audio contained between the 10 percent mark and the 50 percent mark of your media file.

You can use also First to search from the start of the media file until the time that you specify. Or use Last to search from the time that you specify until the end of the media file. For example, setting First to 10 only searches for your specified criteria in the audio contained in the first 10 percent of the media file.

If you prefer to use milliseconds instead of percentage, see .

" }, "Rule":{ "type":"structure", "members":{ "NonTalkTimeFilter":{ "shape":"NonTalkTimeFilter", - "documentation":"

A condition for a time period when neither the customer nor the agent was talking.

" + "documentation":"

Flag the presence or absence of periods of silence in your Call Analytics transcription output. Refer to for more detail.

" }, "InterruptionFilter":{ "shape":"InterruptionFilter", - "documentation":"

A condition for a time period when either the customer or agent was interrupting the other person.

" + "documentation":"

Flag the presence or absence of interruptions in your Call Analytics transcription output. Refer to for more detail.

" }, "TranscriptFilter":{ "shape":"TranscriptFilter", - "documentation":"

A condition that catches particular words or phrases based on a exact match. For example, if you set the phrase \"I want to speak to the manager\", only that exact phrase will be returned.

" + "documentation":"

Flag the presence or absence of specific words or phrases in your Call Analytics transcription output. Refer to for more detail.

" }, "SentimentFilter":{ "shape":"SentimentFilter", - "documentation":"

A condition that is applied to a particular customer sentiment.

" + "documentation":"

Flag the presence or absence of specific sentiments in your Call Analytics transcription output. Refer to for more detail.

" } }, - "documentation":"

A condition in the call between the customer and the agent that you want to filter for.

", + "documentation":"

A rule is a set of criteria that you can specify to flag an attribute in your Call Analytics output. Rules define a Call Analytics category.

Rules can include these parameters: , , , and .

To learn more about Call Analytics rules and categories, see Creating categories for batch transcriptions and Creating categories for streaming transcriptions.

To learn more about Call Analytics, see Analyzing call center audio with Call Analytics.

", "union":true }, "RuleList":{ @@ -2369,26 +2405,26 @@ "members":{ "Sentiments":{ "shape":"SentimentValueList", - "documentation":"

An array that enables you to specify sentiments for the customer or agent. You can specify one or more values.

" + "documentation":"

Specify the sentiments that you want to flag.

" }, "AbsoluteTimeRange":{ "shape":"AbsoluteTimeRange", - "documentation":"

The time range, measured in seconds, of the sentiment.

" + "documentation":"

Makes it possible to specify a time range (in milliseconds) in your audio, during which you want to search for the specified sentiments. See for more detail.

" }, "RelativeTimeRange":{ "shape":"RelativeTimeRange", - "documentation":"

The time range, set in percentages, that correspond to proportion of the call.

" + "documentation":"

Makes it possible to specify a time range (in percentage) in your media file, during which you want to search for the specified sentiments. See for more detail.

" }, "ParticipantRole":{ "shape":"ParticipantRole", - "documentation":"

A value that determines whether the sentiment belongs to the customer or the agent.

" + "documentation":"

Specify the participant that you want to flag. Omitting this parameter is equivalent to specifying both participants.

" }, "Negate":{ "shape":"Boolean", - "documentation":"

Set to TRUE to look for sentiments that weren't specified in the request.

" + "documentation":"

Set to TRUE to flag the sentiments that you didn't include in your request. Set to FALSE to flag the sentiments that you specified in your request.

" } }, - "documentation":"

An object that enables you to specify a particular customer or agent sentiment. If at least 50 percent of the conversation turns (the back-and-forth between two speakers) in a specified time period match the specified sentiment, Amazon Transcribe will consider the sentiment a match.

" + "documentation":"

Flag the presence or absence of specific sentiments detected in your Call Analytics transcription output.

Rules using SentimentFilter are designed to match:

  • The presence or absence of a positive sentiment felt by the customer, agent, or both at specified points in the call

  • The presence or absence of a negative sentiment felt by the customer, agent, or both at specified points in the call

  • The presence or absence of a neutral sentiment felt by the customer, agent, or both at specified points in the call

  • The presence or absence of a mixed sentiment felt by the customer, the agent, or both at specified points in the call

See Rule criteria for batch categories for usage examples.

" }, "SentimentValue":{ "type":"string", @@ -2402,6 +2438,7 @@ "SentimentValueList":{ "type":"list", "member":{"shape":"SentimentValue"}, + "max":1, "min":1 }, "Settings":{ @@ -2409,38 +2446,38 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of a vocabulary to use when processing the transcription job.

" + "documentation":"

The name of the custom vocabulary you want to use in your transcription job request. This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account.

" }, "ShowSpeakerLabels":{ "shape":"Boolean", - "documentation":"

Determines whether the transcription job uses speaker recognition to identify different speakers in the input audio. Speaker recognition labels individual speakers in the audio file. If you set the ShowSpeakerLabels field to true, you must also set the maximum number of speaker labels MaxSpeakerLabels field.

You can't set both ShowSpeakerLabels and ChannelIdentification in the same request. If you set both, your request returns a BadRequestException.

" + "documentation":"

Enables speaker partitioning (diarization) in your transcription output. Speaker partitioning labels the speech from individual speakers in your media file.

If you enable ShowSpeakerLabels in your request, you must also include MaxSpeakerLabels.

You can't include both ShowSpeakerLabels and ChannelIdentification in the same request. Including both parameters returns a BadRequestException.

For more information, see Partitioning speakers (diarization).

" }, "MaxSpeakerLabels":{ "shape":"MaxSpeakers", - "documentation":"

The maximum number of speakers to identify in the input audio. If there are more speakers in the audio than this number, multiple speakers are identified as a single speaker. If you specify the MaxSpeakerLabels field, you must set the ShowSpeakerLabels field to true.

" + "documentation":"

Specify the maximum number of speakers you want to partition in your media.

Note that if your media contains more speakers than the specified number, multiple speakers are treated as a single speaker.

If you specify the MaxSpeakerLabels field, you must set the ShowSpeakerLabels field to true.

" }, "ChannelIdentification":{ "shape":"Boolean", - "documentation":"

Instructs Amazon Transcribe to process each audio channel separately and then merge the transcription output of each channel into a single transcription.

Amazon Transcribe also produces a transcription of each item detected on an audio channel, including the start time and end time of the item and alternative transcriptions of the item including the confidence that Amazon Transcribe has in the transcription.

You can't set both ShowSpeakerLabels and ChannelIdentification in the same request. If you set both, your request returns a BadRequestException.

" + "documentation":"

Enables channel identification in multi-channel audio.

Channel identification transcribes the audio on each channel independently, then appends the output for each channel into one transcript.

You can't include both ShowSpeakerLabels and ChannelIdentification in the same request. Including both parameters returns a BadRequestException.

For more information, see Transcribing multi-channel audio.

" }, "ShowAlternatives":{ "shape":"Boolean", - "documentation":"

Determines whether the transcription contains alternative transcriptions. If you set the ShowAlternatives field to true, you must also set the maximum number of alternatives to return in the MaxAlternatives field.

" + "documentation":"

To include alternative transcriptions within your transcription output, include ShowAlternatives in your transcription request.

If you have multi-channel audio and do not enable channel identification, your audio is transcribed in a continuous manner and your transcript does not separate the speech by channel.

If you include ShowAlternatives, you must also include MaxAlternatives, which is the maximum number of alternative transcriptions you want Amazon Transcribe to generate.

For more information, see Alternative transcriptions.

" }, "MaxAlternatives":{ "shape":"MaxAlternatives", - "documentation":"

The number of alternative transcriptions that the service should return. If you specify the MaxAlternatives field, you must set the ShowAlternatives field to true.

" + "documentation":"

Indicate the maximum number of alternative transcriptions you want Amazon Transcribe to include in your transcript.

If you select a number greater than the number of alternative transcriptions generated by Amazon Transcribe, only the actual number of alternative transcriptions are included.

If you include MaxAlternatives in your request, you must also include ShowAlternatives with a value of true.

For more information, see Alternative transcriptions.

" }, "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the vocabulary filter to use when transcribing the audio. The filter that you specify must have the same language code as the transcription job.

" + "documentation":"

The name of the custom vocabulary filter you want to use in your transcription job request. This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account.

Note that if you include VocabularyFilterName in your request, you must also include VocabularyFilterMethod.

" }, "VocabularyFilterMethod":{ "shape":"VocabularyFilterMethod", - "documentation":"

Set to mask to remove filtered text from the transcript and replace it with three asterisks (\"***\") as placeholder text. Set to remove to remove filtered text from the transcript without using placeholder text. Set to tag to mark the word in the transcription output that matches the vocabulary filter. When you set the filter method to tag, the words matching your vocabulary filter are not masked or removed.

" + "documentation":"

Specify how you want your custom vocabulary filter applied to your transcript.

To replace words with ***, choose mask.

To delete words, choose remove.

To flag words without changing them, choose tag.

" } }, - "documentation":"

Provides optional settings for the StartTranscriptionJob operation.

" + "documentation":"

Allows additional optional settings in your request, including channel identification, alternative transcriptions, and speaker partitioning. You can use that to apply custom vocabularies to your transcription job.

" }, "Specialty":{ "type":"string", @@ -2450,34 +2487,36 @@ "type":"structure", "required":[ "CallAnalyticsJobName", - "Media", - "DataAccessRoleArn" + "Media" ], "members":{ "CallAnalyticsJobName":{ "shape":"CallAnalyticsJobName", - "documentation":"

The name of the call analytics job. You can't use the string \".\" or \"..\" by themselves as the job name. The name must also be unique within an Amazon Web Services account. If you try to create a call analytics job with the same name as a previous call analytics job, you get a ConflictException error.

" + "documentation":"

A unique name, chosen by you, for your Call Analytics job.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a new job with the same name as an existing job, you get a ConflictException error.

" + }, + "Media":{ + "shape":"Media", + "documentation":"

Describes the Amazon S3 location of the media file you want to use in your Call Analytics request.

" }, - "Media":{"shape":"Media"}, "OutputLocation":{ "shape":"Uri", - "documentation":"

The Amazon S3 location where the output of the call analytics job is stored. You can provide the following location types to store the output of call analytics job:

  • s3://DOC-EXAMPLE-BUCKET1

    If you specify a bucket, Amazon Transcribe saves the output of the analytics job as a JSON file at the root level of the bucket.

  • s3://DOC-EXAMPLE-BUCKET1/folder/

    f you specify a path, Amazon Transcribe saves the output of the analytics job as s3://DOC-EXAMPLE-BUCKET1/folder/your-transcription-job-name.json.

    If you specify a folder, you must provide a trailing slash.

  • s3://DOC-EXAMPLE-BUCKET1/folder/filename.json.

    If you provide a path that has the filename specified, Amazon Transcribe saves the output of the analytics job as s3://DOC-EXAMPLEBUCKET1/folder/filename.json.

You can specify an Amazon Web Services Key Management Service (KMS) key to encrypt the output of our analytics job using the OutputEncryptionKMSKeyId parameter. If you don't specify a KMS key, Amazon Transcribe uses the default Amazon S3 key for server-side encryption of the analytics job output that is placed in your S3 bucket.

" + "documentation":"

The Amazon S3 location where you want your Call Analytics transcription output stored. You can use any of the following formats to specify the output location:

  1. s3://DOC-EXAMPLE-BUCKET

  2. s3://DOC-EXAMPLE-BUCKET/my-output-folder/

  3. s3://DOC-EXAMPLE-BUCKET/my-output-folder/my-call-analytics-job.json

Unless you specify a file name (option 3), the name of your output file has a default value that matches the name you specified for your transcription job using the CallAnalyticsJobName parameter.

You can specify a KMS key to encrypt your output using the OutputEncryptionKMSKeyId parameter. If you don't specify a KMS key, Amazon Transcribe uses the default Amazon S3 key for server-side encryption.

If you don't specify OutputLocation, your transcript is placed in a service-managed Amazon S3 bucket and you are provided with a URI to access your transcript.

" }, "OutputEncryptionKMSKeyId":{ "shape":"KMSKeyId", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services Key Management Service key used to encrypt the output of the call analytics job. The user calling the operation must have permission to use the specified KMS key.

You use either of the following to identify an Amazon Web Services KMS key in the current account:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • KMS Key Alias: \"alias/ExampleAlias\"

You can use either of the following to identify a KMS key in the current account or another account:

  • Amazon Resource Name (ARN) of a KMS key in the current account or another account: \"arn:aws:kms:region:account ID:key/1234abcd-12ab-34cd-56ef1234567890ab\"

  • ARN of a KMS Key Alias: \"arn:aws:kms:region:accountID:alias/ExampleAlias\"

If you don't specify an encryption key, the output of the call analytics job is encrypted with the default Amazon S3 key (SSE-S3).

If you specify a KMS key to encrypt your output, you must also specify an output location in the OutputLocation parameter.

" + "documentation":"

The KMS key you want to use to encrypt your Call Analytics output.

If using a key located in the current Amazon Web Services account, you can specify your KMS key in one of four ways:

  1. Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an alias for the KMS key ID. For example, alias/ExampleAlias.

  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  4. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

If using a key located in a different Amazon Web Services account than the current Amazon Web Services account, you can specify your KMS key in one of two ways:

  1. Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

If you don't specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).

If you specify a KMS key to encrypt your output, you must also specify an output location using the OutputLocation parameter.

Note that the user making the request must have permission to use the specified KMS key.

" }, "DataAccessRoleArn":{ "shape":"DataAccessRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of a role that has access to the S3 bucket that contains your input files. Amazon Transcribe assumes this role to read queued audio files. If you have specified an output S3 bucket for your transcription results, this role should have access to the output bucket as well.

" + "documentation":"

The Amazon Resource Name (ARN) of an IAM role that has permissions to access the Amazon S3 bucket that contains your input files. If the role that you specify doesn’t have the appropriate permissions to access the specified Amazon S3 location, your request fails.

IAM role ARNs have the format arn:partition:iam::account:role/role-name-with-path. For example: arn:aws:iam::111122223333:role/Admin.

For more information, see IAM ARNs.

" }, "Settings":{ "shape":"CallAnalyticsJobSettings", - "documentation":"

A Settings object that provides optional settings for a call analytics job.

" + "documentation":"

Specify additional optional settings in your request, including content redaction; allows you to apply custom language models, vocabulary filters, and custom vocabularies to your Call Analytics job.

" }, "ChannelDefinitions":{ "shape":"ChannelDefinitions", - "documentation":"

When you start a call analytics job, you must pass an array that maps the agent and the customer to specific audio channels. The values you can assign to a channel are 0 and 1. The agent and the customer must each have their own channel. You can't assign more than one channel to an agent or customer.

" + "documentation":"

Makes it possible to specify which speaker is on which channel. For example, if your agent is the first participant to speak, you would set ChannelId to 0 (to indicate the first channel) and ParticipantRole to AGENT (to indicate that it's the agent speaking).

" } } }, @@ -2486,7 +2525,7 @@ "members":{ "CallAnalyticsJob":{ "shape":"CallAnalyticsJob", - "documentation":"

An object containing the details of the asynchronous call analytics job.

" + "documentation":"

Provides detailed information about the current Call Analytics job, including job status and, if applicable, failure reason.

" } } }, @@ -2503,56 +2542,56 @@ "members":{ "MedicalTranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name of the medical transcription job. You can't use the strings \".\" or \"..\" by themselves as the job name. The name must also be unique within an Amazon Web Services account. If you try to create a medical transcription job with the same name as a previous medical transcription job, you get a ConflictException error.

" + "documentation":"

A unique name, chosen by you, for your medical transcription job. The name that you specify is also used as the default name of your transcription output file. If you want to specify a different name for your transcription output, use the OutputKey parameter.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a new job with the same name as an existing job, you get a ConflictException error.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code for the language spoken in the input media file. US English (en-US) is the valid value for medical transcription jobs. Any other value you enter for language code results in a BadRequestException error.

" + "documentation":"

The language code that represents the language spoken in the input media file. US English (en-US) is the only valid value for medical transcription jobs. Any other value you enter for language code results in a BadRequestException error.

" }, "MediaSampleRateHertz":{ "shape":"MedicalMediaSampleRateHertz", - "documentation":"

The sample rate, in Hertz, of the audio track in the input media file.

If you do not specify the media sample rate, Amazon Transcribe Medical determines the sample rate. If you specify the sample rate, it must match the rate detected by Amazon Transcribe Medical. In most cases, you should leave the MediaSampleRateHertz field blank and let Amazon Transcribe Medical determine the sample rate.

" + "documentation":"

The sample rate, in hertz, of the audio track in your input media file.

If you don't specify the media sample rate, Amazon Transcribe Medical determines it for you. If you specify the sample rate, it must match the rate detected by Amazon Transcribe Medical; if there's a mismatch between the value that you specify and the value detected, your job fails. Therefore, in most cases, it's advised to omit MediaSampleRateHertz and let Amazon Transcribe Medical determine the sample rate.

" }, "MediaFormat":{ "shape":"MediaFormat", - "documentation":"

The audio format of the input media file.

" + "documentation":"

Specify the format of your input media file.

" }, "Media":{"shape":"Media"}, "OutputBucketName":{ "shape":"OutputBucketName", - "documentation":"

The Amazon S3 location where the transcription is stored.

You must set OutputBucketName for Amazon Transcribe Medical to store the transcription results. Your transcript appears in the S3 location you specify. When you call the GetMedicalTranscriptionJob, the operation returns this location in the TranscriptFileUri field. The S3 bucket must have permissions that allow Amazon Transcribe Medical to put files in the bucket. For more information, see Permissions Required for IAM User Roles.

You can specify an Amazon Web Services Key Management Service (KMS) key to encrypt the output of your transcription using the OutputEncryptionKMSKeyId parameter. If you don't specify a KMS key, Amazon Transcribe Medical uses the default Amazon S3 key for server-side encryption of transcripts that are placed in your S3 bucket.

" + "documentation":"

The name of the Amazon S3 bucket where you want your medical transcription output stored. Do not include the S3:// prefix of the specified bucket.

If you want your output to go to a sub-folder of this bucket, specify it using the OutputKey parameter; OutputBucketName only accepts the name of a bucket.

For example, if you want your output stored in S3://DOC-EXAMPLE-BUCKET, set OutputBucketName to DOC-EXAMPLE-BUCKET. However, if you want your output stored in S3://DOC-EXAMPLE-BUCKET/test-files/, set OutputBucketName to DOC-EXAMPLE-BUCKET and OutputKey to test-files/.

Note that Amazon Transcribe must have permission to use the specified location. You can change Amazon S3 permissions using the Amazon Web Services Management Console. See also Permissions Required for IAM User Roles.

" }, "OutputKey":{ "shape":"OutputKey", - "documentation":"

You can specify a location in an Amazon S3 bucket to store the output of your medical transcription job.

If you don't specify an output key, Amazon Transcribe Medical stores the output of your transcription job in the Amazon S3 bucket you specified. By default, the object key is \"your-transcription-job-name.json\".

You can use output keys to specify the Amazon S3 prefix and file name of the transcription output. For example, specifying the Amazon S3 prefix, \"folder1/folder2/\", as an output key would lead to the output being stored as \"folder1/folder2/your-transcription-job-name.json\". If you specify \"my-other-job-name.json\" as the output key, the object key is changed to \"my-other-job-name.json\". You can use an output key to change both the prefix and the file name, for example \"folder/my-other-job-name.json\".

If you specify an output key, you must also specify an S3 bucket in the OutputBucketName parameter.

" + "documentation":"

Use in combination with OutputBucketName to specify the output location of your transcript and, optionally, a unique name for your output file. The default name for your transcription output is the same as the name you specified for your medical transcription job (MedicalTranscriptionJobName).

Here are some examples of how you can use OutputKey:

  • If you specify 'DOC-EXAMPLE-BUCKET' as the OutputBucketName and 'my-transcript.json' as the OutputKey, your transcription output path is s3://DOC-EXAMPLE-BUCKET/my-transcript.json.

  • If you specify 'my-first-transcription' as the MedicalTranscriptionJobName, 'DOC-EXAMPLE-BUCKET' as the OutputBucketName, and 'my-transcript' as the OutputKey, your transcription output path is s3://DOC-EXAMPLE-BUCKET/my-transcript/my-first-transcription.json.

  • If you specify 'DOC-EXAMPLE-BUCKET' as the OutputBucketName and 'test-files/my-transcript.json' as the OutputKey, your transcription output path is s3://DOC-EXAMPLE-BUCKET/test-files/my-transcript.json.

  • If you specify 'my-first-transcription' as the MedicalTranscriptionJobName, 'DOC-EXAMPLE-BUCKET' as the OutputBucketName, and 'test-files/my-transcript' as the OutputKey, your transcription output path is s3://DOC-EXAMPLE-BUCKET/test-files/my-transcript/my-first-transcription.json.

If you specify the name of an Amazon S3 bucket sub-folder that doesn't exist, one is created for you.

" }, "OutputEncryptionKMSKeyId":{ "shape":"KMSKeyId", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services Key Management Service (KMS) key used to encrypt the output of the transcription job. The user calling the StartMedicalTranscriptionJob operation must have permission to use the specified KMS key.

You use either of the following to identify a KMS key in the current account:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • KMS Key Alias: \"alias/ExampleAlias\"

You can use either of the following to identify a KMS key in the current account or another account:

  • Amazon Resource Name (ARN) of a KMS key in the current account or another account: \"arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

  • ARN of a KMS Key Alias: \"arn:aws:kms:region:account ID:alias/ExampleAlias\"

If you don't specify an encryption key, the output of the medical transcription job is encrypted with the default Amazon S3 key (SSE-S3).

If you specify a KMS key to encrypt your output, you must also specify an output location in the OutputBucketName parameter.

" + "documentation":"

The KMS key you want to use to encrypt your medical transcription output.

If using a key located in the current Amazon Web Services account, you can specify your KMS key in one of four ways:

  1. Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an alias for the KMS key ID. For example, alias/ExampleAlias.

  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  4. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

If using a key located in a different Amazon Web Services account than the current Amazon Web Services account, you can specify your KMS key in one of two ways:

  1. Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

If you don't specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).

If you specify a KMS key to encrypt your output, you must also specify an output location using the OutputLocation parameter.

Note that the user making the request must have permission to use the specified KMS key.

" }, "KMSEncryptionContext":{ "shape":"KMSEncryptionContextMap", - "documentation":"

A map of plain text, non-secret key:value pairs, known as encryption context pairs, that provide an added layer of security for your data.

" + "documentation":"

A map of plain text, non-secret key:value pairs, known as encryption context pairs, that provide an added layer of security for your data. For more information, see KMS encryption context and Asymmetric keys in KMS.

" }, "Settings":{ "shape":"MedicalTranscriptionSetting", - "documentation":"

Optional settings for the medical transcription job.

" + "documentation":"

Specify additional optional settings in your request, including channel identification, alternative transcriptions, and speaker partitioning. You can use that to apply custom vocabularies to your transcription job.

" }, "ContentIdentificationType":{ "shape":"MedicalContentIdentificationType", - "documentation":"

You can configure Amazon Transcribe Medical to label content in the transcription output. If you specify PHI, Amazon Transcribe Medical labels the personal health information (PHI) that it identifies in the transcription output.

" + "documentation":"

Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health information (PHI) in a transcription.

" }, "Specialty":{ "shape":"Specialty", - "documentation":"

The medical specialty of any clinician speaking in the input media.

" + "documentation":"

Specify the predominant medical specialty represented in your media. For batch transcriptions, PRIMARYCARE is the only valid value. If you require additional specialties, refer to .

" }, "Type":{ "shape":"Type", - "documentation":"

The type of speech in the input audio. CONVERSATION refers to conversations between two or more speakers, e.g., a conversations between doctors and patients. DICTATION refers to single-speaker dictated speech, such as clinical notes.

" + "documentation":"

Specify whether your input media contains only one person (DICTATION) or contains a conversation between two people (CONVERSATION).

For example, DICTATION could be used for a medical professional wanting to transcribe voice memos; CONVERSATION could be used for transcribing the doctor-patient dialogue during the patient's office visit.

" }, "Tags":{ "shape":"TagList", - "documentation":"

Add tags to an Amazon Transcribe Medical transcription job.

" + "documentation":"

Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at the time you start this new job.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" } } }, @@ -2561,7 +2600,7 @@ "members":{ "MedicalTranscriptionJob":{ "shape":"MedicalTranscriptionJob", - "documentation":"

A batch job submitted to transcribe medical speech to text.

" + "documentation":"

Provides detailed information about the current medical transcription job, including job status and, if applicable, failure reason.

" } } }, @@ -2574,75 +2613,79 @@ "members":{ "TranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name of the job. You can't use the strings \".\" or \"..\" by themselves as the job name. The name must also be unique within an Amazon Web Services account. If you try to create a transcription job with the same name as a previous transcription job, you get a ConflictException error.

" + "documentation":"

A unique name, chosen by you, for your transcription job. The name that you specify is also used as the default name of your transcription output file. If you want to specify a different name for your transcription output, use the OutputKey parameter.

This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account. If you try to create a new job with the same name as an existing job, you get a ConflictException error.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code for the language used in the input media file. You must include either LanguageCode or IdentifyLanguage in your request.

To transcribe speech in Modern Standard Arabic (ar-SA), your audio or video file must be encoded at a sample rate of 16,000 Hz or higher.

" + "documentation":"

The language code that represents the language spoken in the input media file.

If you're unsure of the language spoken in your media file, consider using IdentifyLanguage or IdentifyMultipleLanguages to enable automatic language identification.

Note that you must include one of LanguageCode, IdentifyLanguage, or IdentifyMultipleLanguages in your request. If you include more than one of these parameters, your transcription job fails.

For a list of supported languages and their associated language codes, refer to the Supported languages table.

To transcribe speech in Modern Standard Arabic (ar-SA), your media file must be encoded at a sample rate of 16,000 Hz or higher.

" }, "MediaSampleRateHertz":{ "shape":"MediaSampleRateHertz", - "documentation":"

The sample rate, in Hertz, of the audio track in the input media file.

If you do not specify the media sample rate, Amazon Transcribe determines the sample rate. If you specify the sample rate, it must match the sample rate detected by Amazon Transcribe. In most cases, you should leave the MediaSampleRateHertz field blank and let Amazon Transcribe determine the sample rate.

" + "documentation":"

The sample rate, in hertz, of the audio track in your input media file.

If you don't specify the media sample rate, Amazon Transcribe determines it for you. If you specify the sample rate, it must match the rate detected by Amazon Transcribe. If there's a mismatch between the value that you specify and the value detected, your job fails. In most cases, you can omit MediaSampleRateHertz and let Amazon Transcribe determine the sample rate.

" }, "MediaFormat":{ "shape":"MediaFormat", - "documentation":"

The format of the input media file.

" + "documentation":"

Specify the format of your input media file.

" }, "Media":{ "shape":"Media", - "documentation":"

An object that describes the input media for a transcription job.

" + "documentation":"

Describes the Amazon S3 location of the media file you want to use in your request.

" }, "OutputBucketName":{ "shape":"OutputBucketName", - "documentation":"

The location where the transcription is stored.

If you set the OutputBucketName, Amazon Transcribe puts the transcript in the specified S3 bucket. When you call the GetTranscriptionJob operation, the operation returns this location in the TranscriptFileUri field. If you enable content redaction, the redacted transcript appears in RedactedTranscriptFileUri. If you enable content redaction and choose to output an unredacted transcript, that transcript's location still appears in the TranscriptFileUri. The S3 bucket must have permissions that allow Amazon Transcribe to put files in the bucket. For more information, see Permissions Required for IAM User Roles.

You can specify an Amazon Web Services Key Management Service (KMS) key to encrypt the output of your transcription using the OutputEncryptionKMSKeyId parameter. If you don't specify a KMS key, Amazon Transcribe uses the default Amazon S3 key for server-side encryption of transcripts that are placed in your S3 bucket.

If you don't set the OutputBucketName, Amazon Transcribe generates a pre-signed URL, a shareable URL that provides secure access to your transcription, and returns it in the TranscriptFileUri field. Use this URL to download the transcription.

" + "documentation":"

The name of the Amazon S3 bucket where you want your transcription output stored. Do not include the S3:// prefix of the specified bucket.

If you want your output to go to a sub-folder of this bucket, specify it using the OutputKey parameter; OutputBucketName only accepts the name of a bucket.

For example, if you want your output stored in S3://DOC-EXAMPLE-BUCKET, set OutputBucketName to DOC-EXAMPLE-BUCKET. However, if you want your output stored in S3://DOC-EXAMPLE-BUCKET/test-files/, set OutputBucketName to DOC-EXAMPLE-BUCKET and OutputKey to test-files/.

Note that Amazon Transcribe must have permission to use the specified location. You can change Amazon S3 permissions using the Amazon Web Services Management Console. See also Permissions Required for IAM User Roles.

If you don't specify OutputBucketName, your transcript is placed in a service-managed Amazon S3 bucket and you are provided with a URI to access your transcript.

" }, "OutputKey":{ "shape":"OutputKey", - "documentation":"

You can specify a location in an Amazon S3 bucket to store the output of your transcription job.

If you don't specify an output key, Amazon Transcribe stores the output of your transcription job in the Amazon S3 bucket you specified. By default, the object key is \"your-transcription-job-name.json\".

You can use output keys to specify the Amazon S3 prefix and file name of the transcription output. For example, specifying the Amazon S3 prefix, \"folder1/folder2/\", as an output key would lead to the output being stored as \"folder1/folder2/your-transcription-job-name.json\". If you specify \"my-other-job-name.json\" as the output key, the object key is changed to \"my-other-job-name.json\". You can use an output key to change both the prefix and the file name, for example \"folder/my-other-job-name.json\".

If you specify an output key, you must also specify an S3 bucket in the OutputBucketName parameter.

" + "documentation":"

Use in combination with OutputBucketName to specify the output location of your transcript and, optionally, a unique name for your output file. The default name for your transcription output is the same as the name you specified for your transcription job (TranscriptionJobName).

Here are some examples of how you can use OutputKey:

  • If you specify 'DOC-EXAMPLE-BUCKET' as the OutputBucketName and 'my-transcript.json' as the OutputKey, your transcription output path is s3://DOC-EXAMPLE-BUCKET/my-transcript.json.

  • If you specify 'my-first-transcription' as the TranscriptionJobName, 'DOC-EXAMPLE-BUCKET' as the OutputBucketName, and 'my-transcript' as the OutputKey, your transcription output path is s3://DOC-EXAMPLE-BUCKET/my-transcript/my-first-transcription.json.

  • If you specify 'DOC-EXAMPLE-BUCKET' as the OutputBucketName and 'test-files/my-transcript.json' as the OutputKey, your transcription output path is s3://DOC-EXAMPLE-BUCKET/test-files/my-transcript.json.

  • If you specify 'my-first-transcription' as the TranscriptionJobName, 'DOC-EXAMPLE-BUCKET' as the OutputBucketName, and 'test-files/my-transcript' as the OutputKey, your transcription output path is s3://DOC-EXAMPLE-BUCKET/test-files/my-transcript/my-first-transcription.json.

If you specify the name of an Amazon S3 bucket sub-folder that doesn't exist, one is created for you.

" }, "OutputEncryptionKMSKeyId":{ "shape":"KMSKeyId", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services Key Management Service (KMS) key used to encrypt the output of the transcription job. The user calling the StartTranscriptionJob operation must have permission to use the specified KMS key.

You can use either of the following to identify a KMS key in the current account:

  • KMS Key ID: \"1234abcd-12ab-34cd-56ef-1234567890ab\"

  • KMS Key Alias: \"alias/ExampleAlias\"

You can use either of the following to identify a KMS key in the current account or another account:

  • Amazon Resource Name (ARN) of a KMS Key: \"arn:aws:kms:region:account ID:key/1234abcd-12ab-34cd-56ef-1234567890ab\"

  • ARN of a KMS Key Alias: \"arn:aws:kms:region:account-ID:alias/ExampleAlias\"

If you don't specify an encryption key, the output of the transcription job is encrypted with the default Amazon S3 key (SSE-S3).

If you specify a KMS key to encrypt your output, you must also specify an output location in the OutputBucketName parameter.

" + "documentation":"

The KMS key you want to use to encrypt your transcription output.

If using a key located in the current Amazon Web Services account, you can specify your KMS key in one of four ways:

  1. Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an alias for the KMS key ID. For example, alias/ExampleAlias.

  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  4. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

If using a key located in a different Amazon Web Services account than the current Amazon Web Services account, you can specify your KMS key in one of two ways:

  1. Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias.

If you don't specify an encryption key, your output is encrypted with the default Amazon S3 key (SSE-S3).

If you specify a KMS key to encrypt your output, you must also specify an output location using the OutputLocation parameter.

Note that the user making the request must have permission to use the specified KMS key.

" }, "KMSEncryptionContext":{ "shape":"KMSEncryptionContextMap", - "documentation":"

A map of plain text, non-secret key:value pairs, known as encryption context pairs, that provide an added layer of security for your data.

" + "documentation":"

A map of plain text, non-secret key:value pairs, known as encryption context pairs, that provide an added layer of security for your data. For more information, see KMS encryption context and Asymmetric keys in KMS.

" }, "Settings":{ "shape":"Settings", - "documentation":"

A Settings object that provides optional settings for a transcription job.

" + "documentation":"

Specify additional optional settings in your request, including channel identification, alternative transcriptions, speaker partitioning. You can use that to apply custom vocabularies and vocabulary filters.

If you want to include a custom vocabulary or a custom vocabulary filter (or both) with your request but do not want to use automatic language identification, use Settings with the VocabularyName or VocabularyFilterName (or both) sub-parameter.

If you're using automatic language identification with your request and want to include a custom language model, a custom vocabulary, or a custom vocabulary filter, use instead the parameter with the LanguageModelName, VocabularyName or VocabularyFilterName sub-parameters.

" }, "ModelSettings":{ "shape":"ModelSettings", - "documentation":"

Choose the custom language model you use for your transcription job in this parameter.

" + "documentation":"

Specify the custom language model you want to include with your transcription job. If you include ModelSettings in your request, you must include the LanguageModelName sub-parameter.

For more information, see Custom language models.

" }, "JobExecutionSettings":{ "shape":"JobExecutionSettings", - "documentation":"

Provides information about how a transcription job is executed. Use this field to indicate that the job can be queued for deferred execution if the concurrency limit is reached and there are no slots available to immediately run the job.

" + "documentation":"

Makes it possible to control how your transcription job is processed. Currently, the only JobExecutionSettings modification you can choose is enabling job queueing using the AllowDeferredExecution sub-parameter.

If you include JobExecutionSettings in your request, you must also include the sub-parameters: AllowDeferredExecution and DataAccessRoleArn.

" }, "ContentRedaction":{ "shape":"ContentRedaction", - "documentation":"

An object that contains the request parameters for content redaction.

" + "documentation":"

Makes it possible to redact or flag specified personally identifiable information (PII) in your transcript. If you use ContentRedaction, you must also include the sub-parameters: PiiEntityTypes, RedactionOutput, and RedactionType.

" }, "IdentifyLanguage":{ "shape":"Boolean", - "documentation":"

Set this field to true to enable automatic language identification. Automatic language identification is disabled by default. You receive a BadRequestException error if you enter a value for a LanguageCode.

You must include either LanguageCode or IdentifyLanguage in your request.

" + "documentation":"

Enables automatic language identification in your transcription job request. Use this parameter if your media file contains only one language. If your media contains multiple languages, use IdentifyMultipleLanguages instead.

If you include IdentifyLanguage, you can optionally include a list of language codes, using LanguageOptions, that you think may be present in your media file. Including LanguageOptions restricts IdentifyLanguage to only the language options that you specify, which can improve transcription accuracy.

If you want to apply a custom language model, a custom vocabulary, or a custom vocabulary filter to your automatic language identification request, include LanguageIdSettings with the relevant sub-parameters (VocabularyName, LanguageModelName, and VocabularyFilterName). If you include LanguageIdSettings, also include LanguageOptions.

Note that you must include one of LanguageCode, IdentifyLanguage, or IdentifyMultipleLanguages in your request. If you include more than one of these parameters, your transcription job fails.

" + }, + "IdentifyMultipleLanguages":{ + "shape":"Boolean", + "documentation":"

Enables automatic multi-language identification in your transcription job request. Use this parameter if your media file contains more than one language. If your media contains only one language, use IdentifyLanguage instead.

If you include IdentifyMultipleLanguages, you can optionally include a list of language codes, using LanguageOptions, that you think may be present in your media file. Including LanguageOptions restricts IdentifyLanguage to only the language options that you specify, which can improve transcription accuracy.

If you want to apply a custom vocabulary or a custom vocabulary filter to your automatic language identification request, include LanguageIdSettings with the relevant sub-parameters (VocabularyName and VocabularyFilterName). If you include LanguageIdSettings, also include LanguageOptions.

Note that you must include one of LanguageCode, IdentifyLanguage, or IdentifyMultipleLanguages in your request. If you include more than one of these parameters, your transcription job fails.

" }, "LanguageOptions":{ "shape":"LanguageOptions", - "documentation":"

An object containing a list of languages that might be present in your collection of audio files. Automatic language identification chooses a language that best matches the source audio from that list.

To transcribe speech in Modern Standard Arabic (ar-SA), your audio or video file must be encoded at a sample rate of 16,000 Hz or higher.

" + "documentation":"

You can specify two or more language codes that represent the languages you think may be present in your media. Including more than five is not recommended. If you're unsure what languages are present, do not include this parameter.

If you include LanguageOptions in your request, you must also include IdentifyLanguage.

For more information, refer to Supported languages.

To transcribe speech in Modern Standard Arabic (ar-SA), your media file must be encoded at a sample rate of 16,000 Hz or higher.

" }, "Subtitles":{ "shape":"Subtitles", - "documentation":"

Add subtitles to your batch transcription job.

" + "documentation":"

Produces subtitle files for your input media. You can specify WebVTT (*.vtt) and SubRip (*.srt) formats.

" }, "Tags":{ "shape":"TagList", - "documentation":"

Add tags to an Amazon Transcribe transcription job.

" + "documentation":"

Adds one or more custom tags, each in the form of a key:value pair, to a new transcription job at the time you start this new job.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" }, "LanguageIdSettings":{ "shape":"LanguageIdSettingsMap", - "documentation":"

The language identification settings associated with your transcription job. These settings include VocabularyName, VocabularyFilterName, and LanguageModelName.

" + "documentation":"

If using automatic language identification in your request and you want to apply a custom language model, a custom vocabulary, or a custom vocabulary filter, include LanguageIdSettings with the relevant sub-parameters (VocabularyName, LanguageModelName, and VocabularyFilterName). Note that multi-language identification (IdentifyMultipleLanguages) doesn't support custom language models.

LanguageIdSettings supports two to five language codes. Each language code you include can have an associated custom language model, custom vocabulary, and custom vocabulary filter. The language codes that you specify must match the languages of the associated custom language models, custom vocabularies, and custom vocabulary filters.

It's recommended that you include LanguageOptions when using LanguageIdSettings to ensure that the correct language dialect is identified. For example, if you specify a custom vocabulary that is in en-US but Amazon Transcribe determines that the language spoken in your media is en-AU, your custom vocabulary is not applied to your transcription. If you include LanguageOptions and include en-US as the only English language dialect, your custom vocabulary is applied to your transcription.

If you want to include a custom language model with your request but do not want to use automatic language identification, use instead the parameter with the LanguageModelName sub-parameter. If you want to include a custom vocabulary or a custom vocabulary filter (or both) with your request but do not want to use automatic language identification, use instead the parameter with the VocabularyName or VocabularyFilterName (or both) sub-parameter.

" } } }, @@ -2651,7 +2694,7 @@ "members":{ "TranscriptionJob":{ "shape":"TranscriptionJob", - "documentation":"

Provides information about your asynchronous transcription job.

" + "documentation":"

Provides detailed information about the current transcription job, including job status and, if applicable, failure reason.

" } } }, @@ -2686,32 +2729,32 @@ "members":{ "Formats":{ "shape":"SubtitleFormats", - "documentation":"

Specify the output format for your subtitle file; if you select both srt and vtt formats, two output files are generated.

" + "documentation":"

Specify the output format for your subtitle file; if you select both WebVTT (vtt) and SubRip (srt) formats, two output files are generated.

" }, "OutputStartIndex":{ "shape":"SubtitleOutputStartIndex", - "documentation":"

Defines the starting value that is assigned to the first subtitle segment.

The default start index for Amazon Transcribe is 0, which differs from the more widely used standard of 1. If you're uncertain which value to use, we recommend choosing 1, as this may improve compatibility with other services.

" + "documentation":"

Specify the starting value that is assigned to the first subtitle segment.

The default start index for Amazon Transcribe is 0, which differs from the more widely used standard of 1. If you're uncertain which value to use, we recommend choosing 1, as this may improve compatibility with other services.

" } }, - "documentation":"

Generate subtitles for your batch transcription job. Note that your subtitle files are placed in the same location as your transcription output.

" + "documentation":"

Generate subtitles for your media file with your transcription request.

You can choose a start index of 0 or 1, and you can specify either WebVTT or SubRip (or both) as your output format.

Note that your subtitle files are placed in the same location as your transcription output.

" }, "SubtitlesOutput":{ "type":"structure", "members":{ "Formats":{ "shape":"SubtitleFormats", - "documentation":"

The format of your subtitle files. If your request specified both srt and vtt formats, both formats are shown.

" + "documentation":"

Provides the format of your subtitle files. If your request included both WebVTT (vtt) and SubRip (srt) formats, both formats are shown.

" }, "SubtitleFileUris":{ "shape":"SubtitleFileUris", - "documentation":"

Contains the output location for your subtitle file. This location must be an S3 bucket.

" + "documentation":"

The Amazon S3 location of your transcript. You can use this URI to access or download your subtitle file. Your subtitle file is stored in the same location as your transcript. If you specified both WebVTT and SubRip subtitle formats, two URIs are provided.

If you included OutputBucketName in your transcription job request, this is the URI of that bucket. If you also included OutputKey in your request, your output is located in the path you specified in your request.

If you didn't include OutputBucketName in your transcription job request, your subtitle file is stored in a service-managed bucket, and TranscriptFileUri provides you with a temporary URI you can use for secure access to your subtitle file.

Temporary URIs for service-managed Amazon S3 buckets are only valid for 15 minutes. If you get an AccesDenied error, you can get a new temporary URI by running a GetTranscriptionJob or ListTranscriptionJob request.

" }, "OutputStartIndex":{ "shape":"SubtitleOutputStartIndex", - "documentation":"

Shows the output start index value for your subtitle files. If you did not specify a value in your request, the default value of 0 is used.

" + "documentation":"

Provides the start index value for your subtitle files. If you did not specify a value in your request, the default value of 0 is used.

" } }, - "documentation":"

The S3 location where your subtitle files are located. Note that your subtitle files are placed in the same location as your transcription output. Refer to TranscriptFileUri to download your files.

" + "documentation":"

Provides information about your subtitle file, including format, start index, and Amazon S3 location.

" }, "Tag":{ "type":"structure", @@ -2722,14 +2765,14 @@ "members":{ "Key":{ "shape":"TagKey", - "documentation":"

The first part of a key:value pair that forms a tag associated with a given resource. For example, in the tag ‘Department’:’Sales’, the key is 'Department'.

" + "documentation":"

The first part of a key:value pair that forms a tag associated with a given resource. For example, in the tag Department:Sales, the key is 'Department'.

" }, "Value":{ "shape":"TagValue", - "documentation":"

The second part of a key:value pair that forms a tag associated with a given resource. For example, in the tag ‘Department’:’Sales’, the value is 'Sales'.

" + "documentation":"

The second part of a key:value pair that forms a tag associated with a given resource. For example, in the tag Department:Sales, the value is 'Sales'.

Note that you can set the value of a tag to an empty string, but you can't set the value of a tag to null. Omitting the tag value is the same as using an empty string.

" } }, - "documentation":"

A key:value pair that adds metadata to a resource used by Amazon Transcribe. For example, a tag with the key:value pair ‘Department’:’Sales’ might be added to a resource to indicate its use by your organization's sales department.

" + "documentation":"

Adds metadata, in the form of a key:value pair, to the specified resource.

For example, you could add the tag Department:Sales to a resource to indicate that it pertains to your organization's sales department. You can also use tags for tag-based access control.

To learn more about tagging, see Tagging resources.

" }, "TagKey":{ "type":"string", @@ -2757,11 +2800,11 @@ "members":{ "ResourceArn":{ "shape":"TranscribeArn", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon Transcribe resource you want to tag. ARNs have the format arn:partition:service:region:account-id:resource-type/resource-id (for example, arn:aws:transcribe:us-east-1:account-id:transcription-job/your-job-name). Valid values for resource-type are: transcription-job, medical-transcription-job, vocabulary, medical-vocabulary, vocabulary-filter, and language-model.

" + "documentation":"

The Amazon Resource Name (ARN) of the resource you want to tag. ARNs have the format arn:partition:service:region:account-id:resource-type/resource-id.

For example, arn:aws:transcribe:us-west-2:111122223333:transcription-job/transcription-job-name.

Valid values for resource-type are: transcription-job, medical-transcription-job, vocabulary, medical-vocabulary, vocabulary-filter, and language-model.

" }, "Tags":{ "shape":"TagList", - "documentation":"

The tags you are assigning to a given Amazon Transcribe resource.

" + "documentation":"

Adds one or more custom tags, each in the form of a key:value pair, to the specified resource.

To learn more about using tags with Amazon Transcribe, refer to Tagging resources.

" } } }, @@ -2791,14 +2834,14 @@ "members":{ "TranscriptFileUri":{ "shape":"Uri", - "documentation":"

The S3 object location of the transcript.

Use this URI to access the transcript. If you specified an S3 bucket in the OutputBucketName field when you created the job, this is the URI of that bucket. If you chose to store the transcript in Amazon Transcribe, this is a shareable URL that provides secure access to that location.

" + "documentation":"

The Amazon S3 location of your transcript. You can use this URI to access or download your transcript.

If you included OutputBucketName in your transcription job request, this is the URI of that bucket. If you also included OutputKey in your request, your output is located in the path you specified in your request.

If you didn't include OutputBucketName in your transcription job request, your transcript is stored in a service-managed bucket, and TranscriptFileUri provides you with a temporary URI you can use for secure access to your transcript.

Temporary URIs for service-managed Amazon S3 buckets are only valid for 15 minutes. If you get an AccesDenied error, you can get a new temporary URI by running a GetTranscriptionJob or ListTranscriptionJob request.

" }, "RedactedTranscriptFileUri":{ "shape":"Uri", - "documentation":"

The S3 object location of the redacted transcript.

Use this URI to access the redacted transcript. If you specified an S3 bucket in the OutputBucketName field when you created the job, this is the URI of that bucket. If you chose to store the transcript in Amazon Transcribe, this is a shareable URL that provides secure access to that location.

" + "documentation":"

The Amazon S3 location of your redacted transcript. You can use this URI to access or download your transcript.

If you included OutputBucketName in your transcription job request, this is the URI of that bucket. If you also included OutputKey in your request, your output is located in the path you specified in your request.

If you didn't include OutputBucketName in your transcription job request, your transcript is stored in a service-managed bucket, and RedactedTranscriptFileUri provides you with a temporary URI you can use for secure access to your transcript.

Temporary URIs for service-managed Amazon S3 buckets are only valid for 15 minutes. If you get an AccesDenied error, you can get a new temporary URI by running a GetTranscriptionJob or ListTranscriptionJob request.

" } }, - "documentation":"

Identifies the location of a transcription.

" + "documentation":"

Provides you with the Amazon S3 URI you can use to access your transcript.

" }, "TranscriptFilter":{ "type":"structure", @@ -2809,30 +2852,30 @@ "members":{ "TranscriptFilterType":{ "shape":"TranscriptFilterType", - "documentation":"

Matches the phrase to the transcription output in a word for word fashion. For example, if you specify the phrase \"I want to speak to the manager.\" Amazon Transcribe attempts to match that specific phrase to the transcription.

" + "documentation":"

Flag the presence or absence of an exact match to the phrases that you specify. For example, if you specify the phrase \"speak to a manager\" as your Targets value, only that exact phrase is flagged.

Note that semantic matching is not supported. For example, if your customer says \"speak to the manager\", instead of \"speak to a manager\", your content is not flagged.

" }, "AbsoluteTimeRange":{ "shape":"AbsoluteTimeRange", - "documentation":"

A time range, set in seconds, between two points in the call.

" + "documentation":"

Makes it possible to specify a time range (in milliseconds) in your audio, during which you want to search for the specified key words or phrases. See for more detail.

" }, "RelativeTimeRange":{ "shape":"RelativeTimeRange", - "documentation":"

An object that allows percentages to specify the proportion of the call where you would like to apply a filter. For example, you can specify the first half of the call. You can also specify the period of time between halfway through to three-quarters of the way through the call. Because the length of conversation can vary between calls, you can apply relative time ranges across all calls.

" + "documentation":"

Makes it possible to specify a time range (in percentage) in your media file, during which you want to search for the specified key words or phrases. See for more detail.

" }, "ParticipantRole":{ "shape":"ParticipantRole", - "documentation":"

Determines whether the customer or the agent is speaking the phrases that you've specified.

" + "documentation":"

Specify the participant that you want to flag. Omitting this parameter is equivalent to specifying both participants.

" }, "Negate":{ "shape":"Boolean", - "documentation":"

If TRUE, the rule that you specify is applied to everything except for the phrases that you specify.

" + "documentation":"

Set to TRUE to flag the absence of the phrase that you specified in your request. Set to FALSE to flag the presence of the phrase that you specified in your request.

" }, "Targets":{ "shape":"StringTargetList", - "documentation":"

The phrases that you're specifying for the transcript filter to match.

" + "documentation":"

Specify the phrases that you want to flag.

" } }, - "documentation":"

Matches the output of the transcription to either the specific phrases that you specify, or the intent of the phrases that you specify.

" + "documentation":"

Flag the presence or absence of specific words or phrases detected in your Call Analytics transcription output.

Rules using TranscriptFilter are designed to match:

  • Custom words or phrases spoken by the agent, the customer, or both

  • Custom words or phrases not spoken by the agent, the customer, or either

  • Custom words or phrases that occur at a specific time frame

See Rule criteria for batch categories and Rule criteria for streaming categories for usage examples.

" }, "TranscriptFilterType":{ "type":"string", @@ -2843,19 +2886,19 @@ "members":{ "TranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name of the transcription job.

" + "documentation":"

The name of the transcription job. Job names are case sensitive and must be unique within an Amazon Web Services account.

" }, "TranscriptionJobStatus":{ "shape":"TranscriptionJobStatus", - "documentation":"

The status of the transcription job.

" + "documentation":"

Provides the status of the specified transcription job.

If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri (or RedactedTranscriptFileUri, if you requested transcript redaction). If the status is FAILED, FailureReason provides details on why your transcription job failed.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code for the input speech.

" + "documentation":"

The language code used to create your transcription job. This parameter is used with single-language identification. For multi-language identification requests, refer to the plural version of this parameter, LanguageCodes.

" }, "MediaSampleRateHertz":{ "shape":"MediaSampleRateHertz", - "documentation":"

The sample rate, in Hertz (Hz), of the audio track in the input media file.

" + "documentation":"

The sample rate, in hertz, of the audio track in your input media file.

" }, "MediaFormat":{ "shape":"MediaFormat", @@ -2863,70 +2906,78 @@ }, "Media":{ "shape":"Media", - "documentation":"

An object that describes the input media for the transcription job.

" + "documentation":"

Provides the Amazon S3 location of the media file you used in your request.

" }, "Transcript":{ "shape":"Transcript", - "documentation":"

An object that describes the output of the transcription job.

" + "documentation":"

Provides you with the Amazon S3 URI you can use to access your transcript.

" }, "StartTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job started processing.

" + "documentation":"

The date and time the specified transcription job began processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.789000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "CreationTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job was created.

" + "documentation":"

The date and time the specified transcription job request was made.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "CompletionTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job completed.

" + "documentation":"

The date and time the specified transcription job finished processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:33:13.922000-07:00 represents a transcription job that started processing at 12:33 PM UTC-7 on May 4, 2022.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If the TranscriptionJobStatus field is FAILED, this field contains information about why the job failed.

The FailureReason field can contain one of the following values:

  • Unsupported media format - The media format specified in the MediaFormat field of the request isn't valid. See the description of the MediaFormat field for a list of valid values.

  • The media format provided does not match the detected media format - The media format of the audio file doesn't match the format specified in the MediaFormat field in the request. Check the media format of your media file and make sure that the two values match.

  • Invalid sample rate for audio file - The sample rate specified in the MediaSampleRateHertz of the request isn't valid. The sample rate must be between 8,000 and 48,000 Hertz.

  • The sample rate provided does not match the detected sample rate - The sample rate in the audio file doesn't match the sample rate specified in the MediaSampleRateHertz field in the request. Check the sample rate of your media file and make sure that the two values match.

  • Invalid file size: file size too large - The size of your audio file is larger than Amazon Transcribe can process. For more information, see Limits in the Amazon Transcribe Developer Guide.

  • Invalid number of channels: number of channels too large - Your audio contains more channels than Amazon Transcribe is configured to process. To request additional channels, see Amazon Transcribe Limits in the Amazon Web Services General Reference.

" + "documentation":"

If TranscriptionJobStatus is FAILED, FailureReason contains information about why the transcription job request failed.

The FailureReason field contains one of the following values:

  • Unsupported media format.

    The media format specified in MediaFormat isn't valid. Refer to MediaFormat for a list of supported formats.

  • The media format provided does not match the detected media format.

    The media format specified in MediaFormat doesn't match the format of the input file. Check the media format of your media file and correct the specified value.

  • Invalid sample rate for audio file.

    The sample rate specified in MediaSampleRateHertz isn't valid. The sample rate must be between 8,000 and 48,000 hertz.

  • The sample rate provided does not match the detected sample rate.

    The sample rate specified in MediaSampleRateHertz doesn't match the sample rate detected in your input media file. Check the sample rate of your media file and correct the specified value.

  • Invalid file size: file size too large.

    The size of your media file is larger than what Amazon Transcribe can process. For more information, refer to Guidelines and quotas.

  • Invalid number of channels: number of channels too large.

    Your audio contains more channels than Amazon Transcribe is able to process. For more information, refer to Guidelines and quotas.

" }, "Settings":{ "shape":"Settings", - "documentation":"

Optional settings for the transcription job. Use these settings to turn on speaker recognition, to set the maximum number of speakers that should be identified and to specify a custom vocabulary to use when processing the transcription job.

" + "documentation":"

Provides information on any additional settings that were included in your request. Additional settings include channel identification, alternative transcriptions, speaker partitioning, custom vocabularies, and custom vocabulary filters.

" }, "ModelSettings":{ "shape":"ModelSettings", - "documentation":"

An object containing the details of your custom language model.

" + "documentation":"

Provides information on the custom language model you included in your request.

" }, "JobExecutionSettings":{ "shape":"JobExecutionSettings", - "documentation":"

Provides information about how a transcription job is executed.

" + "documentation":"

Provides information about how your transcription job was processed. This parameter shows if your request was queued and what data access role was used.

" }, "ContentRedaction":{ "shape":"ContentRedaction", - "documentation":"

An object that describes content redaction settings for the transcription job.

" + "documentation":"

Indicates whether redaction was enabled in your transcript.

" }, "IdentifyLanguage":{ "shape":"Boolean", - "documentation":"

A value that shows if automatic language identification was enabled for a transcription job.

" + "documentation":"

Indicates whether automatic language identification was enabled (TRUE) for the specified transcription job.

" + }, + "IdentifyMultipleLanguages":{ + "shape":"Boolean", + "documentation":"

Indicates whether automatic multi-language identification was enabled (TRUE) for the specified transcription job.

" }, "LanguageOptions":{ "shape":"LanguageOptions", - "documentation":"

An object that shows the optional array of languages inputted for transcription jobs with automatic language identification enabled.

" + "documentation":"

Provides the language codes you specified in your request.

" }, "IdentifiedLanguageScore":{ "shape":"IdentifiedLanguageScore", - "documentation":"

A value between zero and one that Amazon Transcribe assigned to the language that it identified in the source audio. Larger values indicate that Amazon Transcribe has higher confidence in the language it identified.

" + "documentation":"

The confidence score associated with the language identified in your media file.

Confidence scores are values between 0 and 1; a larger value indicates a higher probability that the identified language correctly matches the language spoken in your media.

" + }, + "LanguageCodes":{ + "shape":"LanguageCodeList", + "documentation":"

The language codes used to create your transcription job. This parameter is used with multi-language identification. For single-language identification requests, refer to the singular version of this parameter, LanguageCode.

" }, "Tags":{ "shape":"TagList", - "documentation":"

A key:value pair assigned to a given transcription job.

" + "documentation":"

The tags, each in the form of a key:value pair, assigned to the specified transcription job.

" }, "Subtitles":{ "shape":"SubtitlesOutput", - "documentation":"

Generate subtitles for your batch transcription job.

" + "documentation":"

Indicates whether subtitles were generated with your transcription.

" }, "LanguageIdSettings":{ "shape":"LanguageIdSettingsMap", - "documentation":"

Language-specific settings that can be specified when language identification is enabled for your transcription job. These settings include VocabularyName, VocabularyFilterName, and LanguageModelName.

" + "documentation":"

Provides the name and language of all custom language models, custom vocabularies, and custom vocabulary filters that you included in your request.

" } }, - "documentation":"

Describes an asynchronous transcription job that was created with the StartTranscriptionJob operation.

" + "documentation":"

Provides detailed information about a transcription job.

To view the status of the specified transcription job, check the TranscriptionJobStatus field. If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri. If the status is FAILED, FailureReason provides details on why your transcription job failed.

If you enabled content redaction, the redacted transcript can be found at the location specified in RedactedTranscriptFileUri.

" }, "TranscriptionJobName":{ "type":"string", @@ -2952,35 +3003,35 @@ "members":{ "TranscriptionJobName":{ "shape":"TranscriptionJobName", - "documentation":"

The name of the transcription job.

" + "documentation":"

The name of the transcription job. Job names are case sensitive and must be unique within an Amazon Web Services account.

" }, "CreationTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job was created.

" + "documentation":"

The date and time the specified transcription job request was made.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "StartTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job started processing.

" + "documentation":"

The date and time your transcription job began processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.789000-07:00 represents a transcription job that started processing at 12:32 PM UTC-7 on May 4, 2022.

" }, "CompletionTime":{ "shape":"DateTime", - "documentation":"

A timestamp that shows when the job was completed.

" + "documentation":"

The date and time the specified transcription job finished processing.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:33:13.922000-07:00 represents a transcription job that started processing at 12:33 PM UTC-7 on May 4, 2022.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code for the input speech.

" + "documentation":"

The language code used to create your transcription.

" }, "TranscriptionJobStatus":{ "shape":"TranscriptionJobStatus", - "documentation":"

The status of the transcription job. When the status is COMPLETED, use the GetTranscriptionJob operation to get the results of the transcription.

" + "documentation":"

Provides the status of your transcription job.

If the status is COMPLETED, the job is finished and you can find the results at the location specified in TranscriptFileUri (or RedactedTranscriptFileUri, if you requested transcript redaction). If the status is FAILED, FailureReason provides details on why your transcription job failed.

" }, "FailureReason":{ "shape":"FailureReason", - "documentation":"

If the TranscriptionJobStatus field is FAILED, a description of the error.

" + "documentation":"

If TranscriptionJobStatus is FAILED, FailureReason contains information about why the transcription job failed. See also: Common Errors.

" }, "OutputLocationType":{ "shape":"OutputLocationType", - "documentation":"

Indicates the location of the output of the transcription job.

If the value is CUSTOMER_BUCKET then the location is the S3 bucket specified in the outputBucketName field when the transcription job was started with the StartTranscriptionJob operation.

If the value is SERVICE_BUCKET then the output is stored by Amazon Transcribe and can be retrieved using the URI in the GetTranscriptionJob response's TranscriptFileUri field.

" + "documentation":"

Indicates where the specified transcription output is stored.

If the value is CUSTOMER_BUCKET, the location is the Amazon S3 bucket you specified using the OutputBucketName parameter in your request. If you also included OutputKey in your request, your output is located in the path you specified in your request.

If the value is SERVICE_BUCKET, the location is a service-managed Amazon S3 bucket. To access a transcript stored in a service-managed bucket, use the URI shown in the TranscriptFileUri or RedactedTranscriptFileUri field.

" }, "ContentRedaction":{ "shape":"ContentRedaction", @@ -2989,14 +3040,22 @@ "ModelSettings":{"shape":"ModelSettings"}, "IdentifyLanguage":{ "shape":"Boolean", - "documentation":"

Whether automatic language identification was enabled for a transcription job.

" + "documentation":"

Indicates whether automatic language identification was enabled (TRUE) for the specified transcription job.

" + }, + "IdentifyMultipleLanguages":{ + "shape":"Boolean", + "documentation":"

Indicates whether automatic multi-language identification was enabled (TRUE) for the specified transcription job.

" }, "IdentifiedLanguageScore":{ "shape":"IdentifiedLanguageScore", - "documentation":"

A value between zero and one that Amazon Transcribe assigned to the language it identified in the source audio. A higher score indicates that Amazon Transcribe is more confident in the language it identified.

" + "documentation":"

The confidence score associated with the language identified in your media file.

Confidence scores are values between 0 and 1; a larger value indicates a higher probability that the identified language correctly matches the language spoken in your media.

" + }, + "LanguageCodes":{ + "shape":"LanguageCodeList", + "documentation":"

The language codes used to create your transcription job. This parameter is used with multi-language identification. For single-language identification, the singular version of this parameter, LanguageCode, is present.

" } }, - "documentation":"

Provides a summary of information about a transcription job.

" + "documentation":"

Provides detailed information about a specific transcription job.

" }, "Type":{ "type":"string", @@ -3014,11 +3073,11 @@ "members":{ "ResourceArn":{ "shape":"TranscribeArn", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon Transcribe resource you want to remove tags from. ARNs have the format arn:partition:service:region:account-id:resource-type/resource-id (for example, arn:aws:transcribe:us-east-1:account-id:transcription-job/your-job-name). Valid values for resource-type are: transcription-job, medical-transcription-job, vocabulary, medical-vocabulary, vocabulary-filter, and language-model.

" + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Transcribe resource you want to remove tags from. ARNs have the format arn:partition:service:region:account-id:resource-type/resource-id.

For example, arn:aws:transcribe:us-west-2:111122223333:transcription-job/transcription-job-name.

Valid values for resource-type are: transcription-job, medical-transcription-job, vocabulary, medical-vocabulary, vocabulary-filter, and language-model.

" }, "TagKeys":{ "shape":"TagKeyList", - "documentation":"

A list of tag keys you want to remove from a specified Amazon Transcribe resource.

" + "documentation":"

Removes the specified tag keys from the specified Amazon Transcribe resource.

" } } }, @@ -3036,11 +3095,15 @@ "members":{ "CategoryName":{ "shape":"CategoryName", - "documentation":"

The name of the analytics category to update. The name is case sensitive. If you try to update a call analytics category with the same name as a previous category you will receive a ConflictException error.

" + "documentation":"

The name of the Call Analytics category you want to update. Category names are case sensitive.

" }, "Rules":{ "shape":"RuleList", - "documentation":"

The rules used for the updated analytics category. The rules that you provide in this field replace the ones that are currently being used.

" + "documentation":"

The rules used for the updated Call Analytics category. The rules you provide in this field replace the ones that are currently being used in the specified category.

" + }, + "InputType":{ + "shape":"InputType", + "documentation":"

Choose whether you want to update a streaming or a batch Call Analytics category. The input type you specify must match the input type specified when the category was created. For example, if you created a category with the POST_CALL input type, you must use POST_CALL as the input type when updating this category.

" } } }, @@ -3049,7 +3112,7 @@ "members":{ "CategoryProperties":{ "shape":"CategoryProperties", - "documentation":"

The attributes describing the analytics category. You can see information such as the rules that you've used to update the category and when the category was originally created.

" + "documentation":"

Provides you with the properties of the Call Analytics category you specified in your UpdateCallAnalyticsCategory request.

" } } }, @@ -3057,20 +3120,21 @@ "type":"structure", "required":[ "VocabularyName", - "LanguageCode" + "LanguageCode", + "VocabularyFileUri" ], "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary to update. The name is case sensitive. If you try to update a vocabulary with the same name as a vocabulary you've already made, you get a ConflictException error.

" + "documentation":"

The name of the custom medical vocabulary you want to update. Custom medical vocabulary names are case sensitive.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code of the language used for the entries in the updated vocabulary. U.S. English (en-US) is the only valid language code in Amazon Transcribe Medical.

" + "documentation":"

The language code that represents the language of the entries in the custom vocabulary you want to update. US English (en-US) is the only language supported with Amazon Transcribe Medical.

" }, "VocabularyFileUri":{ "shape":"Uri", - "documentation":"

The location in Amazon S3 of the text file that contains your custom vocabulary. The URI must be in the same Amazon Web Services Region as the resource that you are calling. The following is the format for a URI:

https://s3.aws-region.amazonaws.com/bucket-name/keyprefix/objectkey

For example:

https://s3.us-east-1.amazonaws.com/DOC-EXAMPLE-BUCKET/vocab.txt

For more information about Amazon S3 object names, see Object Keys in the Amazon S3 Developer Guide.

For more information about custom vocabularies in Amazon Transcribe Medical, see Medical Custom Vocabularies.

" + "documentation":"

The Amazon S3 location of the text file that contains your custom medical vocabulary. The URI must be located in the same Amazon Web Services Region as the resource you're calling.

Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-vocab-file.txt

" } } }, @@ -3079,19 +3143,19 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the updated vocabulary.

" + "documentation":"

The name of the updated custom medical vocabulary.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code for the language of the text file used to update the custom vocabulary. US English (en-US) is the only language supported in Amazon Transcribe Medical.

" + "documentation":"

The language code you selected for your custom medical vocabulary. US English (en-US) is the only language supported with Amazon Transcribe Medical.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time that the vocabulary was updated.

" + "documentation":"

The date and time the specified custom medical vocabulary was last updated.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "VocabularyState":{ "shape":"VocabularyState", - "documentation":"

The processing state of the update to the vocabulary. When the VocabularyState field is READY, the vocabulary is ready to be used in a StartMedicalTranscriptionJob request.

" + "documentation":"

The processing state of your custom medical vocabulary. If the state is READY, you can use the custom vocabulary in a StartMedicalTranscriptionJob request.

" } } }, @@ -3101,15 +3165,15 @@ "members":{ "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the vocabulary filter to update. If you try to update a vocabulary filter with the same name as another vocabulary filter, you get a ConflictException error.

" + "documentation":"

The name of the custom vocabulary filter you want to update. Custom vocabulary filter names are case sensitive.

" }, "Words":{ "shape":"Words", - "documentation":"

The words to use in the vocabulary filter. Only use characters from the character set defined for custom vocabularies. For a list of character sets, see Character Sets for Custom Vocabularies.

If you provide a list of words in the Words parameter, you can't use the VocabularyFilterFileUri parameter.

" + "documentation":"

Use this parameter if you want to update your custom vocabulary filter by including all desired terms, as comma-separated values, within your request. The other option for updating your vocabulary filter is to save your entries in a text file and upload them to an Amazon S3 bucket, then specify the location of your file using the VocabularyFilterFileUri parameter.

Note that if you include Words in your request, you cannot use VocabularyFilterFileUri; you must choose one or the other.

Each language has a character set that contains all allowed characters for that specific language. If you use unsupported characters, your custom vocabulary filter request fails. Refer to Character Sets for Custom Vocabularies to get the character set for your language.

" }, "VocabularyFilterFileUri":{ "shape":"Uri", - "documentation":"

The Amazon S3 location of a text file used as input to create the vocabulary filter. Only use characters from the character set defined for custom vocabularies. For a list of character sets, see Character Sets for Custom Vocabularies.

The specified file must be less than 50 KB of UTF-8 characters.

If you provide the location of a list of words in the VocabularyFilterFileUri parameter, you can't use the Words parameter.

" + "documentation":"

The Amazon S3 location of the text file that contains your custom vocabulary filter terms. The URI must be located in the same Amazon Web Services Region as the resource you're calling.

Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-vocab-filter-file.txt

Note that if you include VocabularyFilterFileUri in your request, you cannot use Words; you must choose one or the other.

" } } }, @@ -3118,15 +3182,15 @@ "members":{ "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the updated vocabulary filter.

" + "documentation":"

The name of the updated custom vocabulary filter.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code of the words in the vocabulary filter.

" + "documentation":"

The language code you selected for your custom vocabulary filter.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time that the vocabulary filter was updated.

" + "documentation":"

The date and time the specified custom vocabulary filter was last updated.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" } } }, @@ -3139,19 +3203,19 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary to update. The name is case sensitive. If you try to update a vocabulary with the same name as a previous vocabulary you will receive a ConflictException error.

" + "documentation":"

The name of the custom vocabulary you want to update. Custom vocabulary names are case sensitive.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code of the vocabulary entries. For a list of languages and their corresponding language codes, see Supported languages.

" + "documentation":"

The language code that represents the language of the entries in the custom vocabulary you want to update. Each custom vocabulary must contain terms in only one language.

A custom vocabulary can only be used to transcribe files in the same language as the custom vocabulary. For example, if you create a custom vocabulary using US English (en-US), you can only apply this custom vocabulary to files that contain English audio.

For a list of supported languages and their associated language codes, refer to the Supported languages table.

" }, "Phrases":{ "shape":"Phrases", - "documentation":"

An array of strings containing the vocabulary entries.

" + "documentation":"

Use this parameter if you want to update your custom vocabulary by including all desired terms, as comma-separated values, within your request. The other option for updating your custom vocabulary is to save your entries in a text file and upload them to an Amazon S3 bucket, then specify the location of your file using the VocabularyFileUri parameter.

Note that if you include Phrases in your request, you cannot use VocabularyFileUri; you must choose one or the other.

Each language has a character set that contains all allowed characters for that specific language. If you use unsupported characters, your custom vocabulary filter request fails. Refer to Character Sets for Custom Vocabularies to get the character set for your language.

" }, "VocabularyFileUri":{ "shape":"Uri", - "documentation":"

The S3 location of the text file that contains the definition of the custom vocabulary. The URI must be in the same region as the API endpoint that you are calling. The general form is:

https://s3.aws-region.amazonaws.com/bucket-name/keyprefix/objectkey

For example:

https://s3.us-east-1.amazonaws.com/DOC-EXAMPLE-BUCKET/vocab.txt

For more information about S3 object names, see Object Keys in the Amazon S3 Developer Guide.

For more information about custom vocabularies, see Custom Vocabularies.

" + "documentation":"

The Amazon S3 location of the text file that contains your custom vocabulary. The URI must be located in the same Amazon Web Services Region as the resource you're calling.

Here's an example URI path: s3://DOC-EXAMPLE-BUCKET/my-vocab-file.txt

Note that if you include VocabularyFileUri in your request, you cannot use the Phrases flag; you must choose one or the other.

" } } }, @@ -3160,19 +3224,19 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary that was updated.

" + "documentation":"

The name of the updated custom vocabulary.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code of the vocabulary entries.

" + "documentation":"

The language code you selected for your custom vocabulary.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time that the vocabulary was updated.

" + "documentation":"

The date and time the specified custom vocabulary was last updated.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "VocabularyState":{ "shape":"VocabularyState", - "documentation":"

The processing state of the vocabulary. When the VocabularyState field contains READY the vocabulary is ready to be used in a StartTranscriptionJob request.

" + "documentation":"

The processing state of your custom vocabulary. If the state is READY, you can use the custom vocabulary in a StartTranscriptionJob request.

" } } }, @@ -3191,18 +3255,18 @@ "members":{ "VocabularyFilterName":{ "shape":"VocabularyFilterName", - "documentation":"

The name of the vocabulary filter. The name must be unique in the account that holds the filter.

" + "documentation":"

A unique name, chosen by you, for your custom vocabulary filter. This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code of the words in the vocabulary filter.

" + "documentation":"

The language code that represents the language of the entries in your vocabulary filter. Each custom vocabulary filter must contain terms in only one language.

A custom vocabulary filter can only be used to transcribe files in the same language as the filter. For example, if you create a custom vocabulary filter using US English (en-US), you can only apply this filter to files that contain English audio.

For a list of supported languages and their associated language codes, refer to the Supported languages table.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time that the vocabulary was last updated.

" + "documentation":"

The date and time the specified custom vocabulary filter was last modified.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" } }, - "documentation":"

Provides information about a vocabulary filter.

" + "documentation":"

Provides information about a custom vocabulary filter, including the language of the filter, when it was last modified, and its name.

" }, "VocabularyFilterMethod":{ "type":"string", @@ -3227,22 +3291,22 @@ "members":{ "VocabularyName":{ "shape":"VocabularyName", - "documentation":"

The name of the vocabulary.

" + "documentation":"

A unique name, chosen by you, for your custom vocabulary. This name is case sensitive, cannot contain spaces, and must be unique within an Amazon Web Services account.

" }, "LanguageCode":{ "shape":"LanguageCode", - "documentation":"

The language code of the vocabulary entries.

" + "documentation":"

The language code used to create your custom vocabulary. Each custom vocabulary must contain terms in only one language.

A custom vocabulary can only be used to transcribe files in the same language as the custom vocabulary. For example, if you create a custom vocabulary using US English (en-US), you can only apply this custom vocabulary to files that contain English audio.

" }, "LastModifiedTime":{ "shape":"DateTime", - "documentation":"

The date and time that the vocabulary was last modified.

" + "documentation":"

The date and time the specified custom vocabulary was last modified.

Timestamps are in the format YYYY-MM-DD'T'HH:MM:SS.SSSSSS-UTC. For example, 2022-05-04T12:32:58.761000-07:00 represents 12:32 PM UTC-7 on May 4, 2022.

" }, "VocabularyState":{ "shape":"VocabularyState", - "documentation":"

The processing state of the vocabulary. If the state is READY you can use the vocabulary in a StartTranscriptionJob request.

" + "documentation":"

The processing state of your custom vocabulary. If the state is READY, you can use the custom vocabulary in a StartTranscriptionJob request.

" } }, - "documentation":"

Provides information about a custom vocabulary.

" + "documentation":"

Provides information about a custom vocabulary, including the language of the custom vocabulary, when it was last modified, its name, and the processing state.

" }, "VocabularyName":{ "type":"string", @@ -3269,5 +3333,5 @@ "min":1 } }, - "documentation":"

Operations and objects for transcribing speech to text.

" + "documentation":"

Amazon Transcribe offers three main types of batch transcription: Standard, Medical, and Call Analytics.

  • Standard transcriptions are the most common option. Refer to for details.

  • Medical transcriptions are tailored to medical professionals and incorporate medical terms. A common use case for this service is transcribing doctor-patient dialogue into after-visit notes. Refer to for details.

  • Call Analytics transcriptions are designed for use with call center audio on two different channels; if you're looking for insight into customer service calls, use this option. Refer to for details.

" } diff --git a/botocore/data/transfer/2018-11-05/endpoint-rule-set-1.json b/botocore/data/transfer/2018-11-05/endpoint-rule-set-1.json new file mode 100644 index 00000000..709e253c --- /dev/null +++ b/botocore/data/transfer/2018-11-05/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://transfer-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://transfer-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://transfer.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://transfer.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/transfer/2018-11-05/examples-1.json b/botocore/data/transfer/2018-11-05/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/transfer/2018-11-05/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/transfer/2018-11-05/paginators-1.json b/botocore/data/transfer/2018-11-05/paginators-1.json index b737abb9..3fe23dc9 100644 --- a/botocore/data/transfer/2018-11-05/paginators-1.json +++ b/botocore/data/transfer/2018-11-05/paginators-1.json @@ -53,6 +53,30 @@ "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" } } } diff --git a/botocore/data/transfer/2018-11-05/service-2.json b/botocore/data/transfer/2018-11-05/service-2.json index 4d5256f0..a696dd13 100644 --- a/botocore/data/transfer/2018-11-05/service-2.json +++ b/botocore/data/transfer/2018-11-05/service-2.json @@ -29,7 +29,60 @@ {"shape":"ResourceExistsException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Used by administrators to choose which groups in the directory should have access to upload and download files over the enabled protocols using Amazon Web Services Transfer Family. For example, a Microsoft Active Directory might contain 50,000 users, but only a small fraction might need the ability to transfer files to the server. An administrator can use CreateAccess to limit the access to the correct set of users who need this ability.

" + "documentation":"

Used by administrators to choose which groups in the directory should have access to upload and download files over the enabled protocols using Transfer Family. For example, a Microsoft Active Directory might contain 50,000 users, but only a small fraction might need the ability to transfer files to the server. An administrator can use CreateAccess to limit the access to the correct set of users who need this ability.

" + }, + "CreateAgreement":{ + "name":"CreateAgreement", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAgreementRequest"}, + "output":{"shape":"CreateAgreementResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates an agreement. An agreement is a bilateral trading partner agreement, or partnership, between an Transfer Family server and an AS2 process. The agreement defines the file and message transfer relationship between the server and the AS2 process. To define an agreement, Transfer Family combines a server, local profile, partner profile, certificate, and other attributes.

The partner is identified with the PartnerProfileId, and the AS2 process is identified with the LocalProfileId.

" + }, + "CreateConnector":{ + "name":"CreateConnector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateConnectorRequest"}, + "output":{"shape":"CreateConnectorResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates the connector, which captures the parameters for an outbound connection for the AS2 protocol. The connector is required for sending files to an externally hosted AS2 server. For more details about connectors, see Create AS2 connectors.

" + }, + "CreateProfile":{ + "name":"CreateProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateProfileRequest"}, + "output":{"shape":"CreateProfileResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Creates the local or partner profile to use for AS2 transfers.

" }, "CreateServer":{ "name":"CreateServer", @@ -65,7 +118,7 @@ {"shape":"ResourceExistsException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Creates a user and associates them with an existing file transfer protocol-enabled server. You can only create and associate users with servers that have the IdentityProviderType set to SERVICE_MANAGED. Using parameters for CreateUser, you can specify the user name, set the home directory, store the user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM) role. You can also optionally add a session policy, and assign metadata with tags that can be used to group and search for users.

" + "documentation":"

Creates a user and associates them with an existing file transfer protocol-enabled server. You can only create and associate users with servers that have the IdentityProviderType set to SERVICE_MANAGED. Using parameters for CreateUser, you can specify the user name, set the home directory, store the user's public key, and assign the user's Identity and Access Management (IAM) role. You can also optionally add a session policy, and assign metadata with tags that can be used to group and search for users.

" }, "CreateWorkflow":{ "name":"CreateWorkflow", @@ -100,6 +153,82 @@ ], "documentation":"

Allows you to delete the access specified in the ServerID and ExternalID parameters.

" }, + "DeleteAgreement":{ + "name":"DeleteAgreement", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAgreementRequest"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Delete the agreement that's specified in the provided AgreementId.

" + }, + "DeleteCertificate":{ + "name":"DeleteCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteCertificateRequest"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes the certificate that's specified in the CertificateId parameter.

" + }, + "DeleteConnector":{ + "name":"DeleteConnector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteConnectorRequest"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes the agreement that's specified in the provided ConnectorId.

" + }, + "DeleteHostKey":{ + "name":"DeleteHostKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteHostKeyRequest"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Deletes the host key that's specified in the HoskKeyId parameter.

" + }, + "DeleteProfile":{ + "name":"DeleteProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteProfileRequest"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Deletes the profile that's specified in the ProfileId parameter.

" + }, "DeleteServer":{ "name":"DeleteServer", "http":{ @@ -177,7 +306,55 @@ {"shape":"InvalidRequestException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Describes the access that is assigned to the specific file transfer protocol-enabled server, as identified by its ServerId property and its ExternalID.

The response from this call returns the properties of the access that is associated with the ServerId value that was specified.

" + "documentation":"

Describes the access that is assigned to the specific file transfer protocol-enabled server, as identified by its ServerId property and its ExternalId.

The response from this call returns the properties of the access that is associated with the ServerId value that was specified.

" + }, + "DescribeAgreement":{ + "name":"DescribeAgreement", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeAgreementRequest"}, + "output":{"shape":"DescribeAgreementResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes the agreement that's identified by the AgreementId.

" + }, + "DescribeCertificate":{ + "name":"DescribeCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeCertificateRequest"}, + "output":{"shape":"DescribeCertificateResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes the certificate that's identified by the CertificateId.

" + }, + "DescribeConnector":{ + "name":"DescribeConnector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeConnectorRequest"}, + "output":{"shape":"DescribeConnectorResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Describes the connector that's identified by the ConnectorId.

" }, "DescribeExecution":{ "name":"DescribeExecution", @@ -195,6 +372,38 @@ ], "documentation":"

You can use DescribeExecution to check the details of the execution of the specified workflow.

" }, + "DescribeHostKey":{ + "name":"DescribeHostKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeHostKeyRequest"}, + "output":{"shape":"DescribeHostKeyResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns the details of the host key that's specified by the HostKeyId and ServerId.

" + }, + "DescribeProfile":{ + "name":"DescribeProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeProfileRequest"}, + "output":{"shape":"DescribeProfileResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns the details of the profile that's specified by the ProfileId.

" + }, "DescribeSecurityPolicy":{ "name":"DescribeSecurityPolicy", "http":{ @@ -259,6 +468,40 @@ ], "documentation":"

Describes the specified workflow.

" }, + "ImportCertificate":{ + "name":"ImportCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportCertificateRequest"}, + "output":{"shape":"ImportCertificateResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Imports the signing and encryption certificates that you need to create local (AS2) profiles and partner profiles.

" + }, + "ImportHostKey":{ + "name":"ImportHostKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ImportHostKeyRequest"}, + "output":{"shape":"ImportHostKeyResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Adds a host key to the server that's specified by the ServerId parameter.

" + }, "ImportSshPublicKey":{ "name":"ImportSshPublicKey", "http":{ @@ -294,6 +537,57 @@ ], "documentation":"

Lists the details for all the accesses you have on your server.

" }, + "ListAgreements":{ + "name":"ListAgreements", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAgreementsRequest"}, + "output":{"shape":"ListAgreementsResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a list of the agreements for the server that's identified by the ServerId that you supply. If you want to limit the results to a certain number, supply a value for the MaxResults parameter. If you ran the command previously and received a value for NextToken, you can supply that value to continue listing agreements from where you left off.

" + }, + "ListCertificates":{ + "name":"ListCertificates", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListCertificatesRequest"}, + "output":{"shape":"ListCertificatesResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a list of the current certificates that have been imported into Transfer Family. If you want to limit the results to a certain number, supply a value for the MaxResults parameter. If you ran the command previously and received a value for the NextToken parameter, you can supply that value to continue listing certificates from where you left off.

" + }, + "ListConnectors":{ + "name":"ListConnectors", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListConnectorsRequest"}, + "output":{"shape":"ListConnectorsResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Lists the connectors for the specified Region.

" + }, "ListExecutions":{ "name":"ListExecutions", "http":{ @@ -311,6 +605,40 @@ ], "documentation":"

Lists all executions for the specified workflow.

" }, + "ListHostKeys":{ + "name":"ListHostKeys", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListHostKeysRequest"}, + "output":{"shape":"ListHostKeysResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a list of host keys for the server that's specified by the ServerId parameter.

" + }, + "ListProfiles":{ + "name":"ListProfiles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListProfilesRequest"}, + "output":{"shape":"ListProfilesResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Returns a list of the profiles for your system. If you want to limit the results to a certain number, supply a value for the MaxResults parameter. If you ran the command previously and received a value for NextToken, you can supply that value to continue listing profiles from where you left off.

" + }, "ListSecurityPolicies":{ "name":"ListSecurityPolicies", "http":{ @@ -410,6 +738,23 @@ ], "documentation":"

Sends a callback for asynchronous custom steps.

The ExecutionId, WorkflowId, and Token are passed to the target resource during execution of a custom step of a workflow. You must include those with their callback as well as providing a status.

" }, + "StartFileTransfer":{ + "name":"StartFileTransfer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartFileTransferRequest"}, + "output":{"shape":"StartFileTransferResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Begins an outbound file transfer to a remote AS2 server. You specify the ConnectorId and the file paths for where to send the files.

" + }, "StartServer":{ "name":"StartServer", "http":{ @@ -440,7 +785,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Changes the state of a file transfer protocol-enabled server from ONLINE to OFFLINE. An OFFLINE server cannot accept and process file transfer jobs. Information tied to your server, such as server and user properties, are not affected by stopping your server.

Stopping the server will not reduce or impact your file transfer protocol endpoint billing; you must delete the server to stop being billed.

The state of STOPPING indicates that the server is in an intermediate state, either not fully able to respond, or not fully offline. The values of STOP_FAILED can indicate an error condition.

No response is returned from this call.

" + "documentation":"

Changes the state of a file transfer protocol-enabled server from ONLINE to OFFLINE. An OFFLINE server cannot accept and process file transfer jobs. Information tied to your server, such as server and user properties, are not affected by stopping your server.

Stopping the server does not reduce or impact your file transfer protocol endpoint billing; you must delete the server to stop being billed.

The state of STOPPING indicates that the server is in an intermediate state, either not fully able to respond, or not fully offline. The values of STOP_FAILED can indicate an error condition.

No response is returned from this call.

" }, "TagResource":{ "name":"TagResource", @@ -501,10 +846,98 @@ {"shape":"InternalServiceError"}, {"shape":"InvalidRequestException"}, {"shape":"ResourceExistsException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} ], "documentation":"

Allows you to update parameters for the access specified in the ServerID and ExternalID parameters.

" }, + "UpdateAgreement":{ + "name":"UpdateAgreement", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAgreementRequest"}, + "output":{"shape":"UpdateAgreementResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates some of the parameters for an existing agreement. Provide the AgreementId and the ServerId for the agreement that you want to update, along with the new values for the parameters to update.

" + }, + "UpdateCertificate":{ + "name":"UpdateCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateCertificateRequest"}, + "output":{"shape":"UpdateCertificateResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates the active and inactive dates for a certificate.

" + }, + "UpdateConnector":{ + "name":"UpdateConnector", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateConnectorRequest"}, + "output":{"shape":"UpdateConnectorResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates some of the parameters for an existing connector. Provide the ConnectorId for the connector that you want to update, along with the new values for the parameters to update.

" + }, + "UpdateHostKey":{ + "name":"UpdateHostKey", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateHostKeyRequest"}, + "output":{"shape":"UpdateHostKeyResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates the description for the host key that's specified by the ServerId and HostKeyId parameters.

" + }, + "UpdateProfile":{ + "name":"UpdateProfile", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateProfileRequest"}, + "output":{"shape":"UpdateProfileResponse"}, + "errors":[ + {"shape":"ServiceUnavailableException"}, + {"shape":"InternalServiceError"}, + {"shape":"InvalidRequestException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates some of the parameters for an existing profile. Provide the ProfileId for the profile that you want to update, along with the new values for the parameters to update.

" + }, "UpdateServer":{ "name":"UpdateServer", "http":{ @@ -558,22 +991,149 @@ "type":"list", "member":{"shape":"AddressAllocationId"} }, + "AgreementId":{ + "type":"string", + "max":19, + "min":19, + "pattern":"^a-([0-9a-f]{17})$" + }, + "AgreementStatusType":{ + "type":"string", + "enum":[ + "ACTIVE", + "INACTIVE" + ] + }, "Arn":{ "type":"string", "max":1600, "min":20, "pattern":"arn:.*" }, + "As2ConnectorConfig":{ + "type":"structure", + "members":{ + "LocalProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the AS2 local profile.

" + }, + "PartnerProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the partner profile for the connector.

" + }, + "MessageSubject":{ + "shape":"MessageSubject", + "documentation":"

Used as the Subject HTTP header attribute in AS2 messages that are being sent with the connector.

" + }, + "Compression":{ + "shape":"CompressionEnum", + "documentation":"

Specifies whether the AS2 file is compressed.

" + }, + "EncryptionAlgorithm":{ + "shape":"EncryptionAlg", + "documentation":"

The algorithm that is used to encrypt the file.

You can only specify NONE if the URL for your connector uses HTTPS. This ensures that no traffic is sent in clear text.

" + }, + "SigningAlgorithm":{ + "shape":"SigningAlg", + "documentation":"

The algorithm that is used to sign the AS2 messages sent with the connector.

" + }, + "MdnSigningAlgorithm":{ + "shape":"MdnSigningAlg", + "documentation":"

The signing algorithm for the MDN response.

If set to DEFAULT (or not set at all), the value for SigningAlgorithm is used.

" + }, + "MdnResponse":{ + "shape":"MdnResponse", + "documentation":"

Used for outbound requests (from an Transfer Family server to a partner AS2 server) to determine whether the partner response for transfers is synchronous or asynchronous. Specify either of the following values:

  • SYNC: The system expects a synchronous MDN response, confirming that the file was transferred successfully (or not).

  • NONE: Specifies that no MDN response is required.

" + } + }, + "documentation":"

Contains the details for a connector object. The connector object is used for AS2 outbound processes, to connect the Transfer Family customer with the trading partner.

" + }, + "As2Id":{ + "type":"string", + "max":128, + "min":1, + "pattern":"^[\\p{Print}\\s]*" + }, + "As2Transport":{ + "type":"string", + "enum":["HTTP"] + }, + "As2Transports":{ + "type":"list", + "member":{"shape":"As2Transport"}, + "max":1, + "min":1 + }, "CallbackToken":{ "type":"string", "max":64, "min":1, "pattern":"\\w+" }, + "CertDate":{"type":"timestamp"}, + "CertSerial":{ + "type":"string", + "max":48, + "min":0, + "pattern":"^[\\p{XDigit}{2}:?]*" + }, "Certificate":{ "type":"string", "max":1600 }, + "CertificateBodyType":{ + "type":"string", + "max":16384, + "min":1, + "pattern":"^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*", + "sensitive":true + }, + "CertificateChainType":{ + "type":"string", + "max":2097152, + "min":1, + "pattern":"^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*", + "sensitive":true + }, + "CertificateId":{ + "type":"string", + "max":22, + "min":22, + "pattern":"^cert-([0-9a-f]{17})$" + }, + "CertificateIds":{ + "type":"list", + "member":{"shape":"CertificateId"} + }, + "CertificateStatusType":{ + "type":"string", + "enum":[ + "ACTIVE", + "PENDING_ROTATION", + "INACTIVE" + ] + }, + "CertificateType":{ + "type":"string", + "enum":[ + "CERTIFICATE", + "CERTIFICATE_WITH_PRIVATE_KEY" + ] + }, + "CertificateUsageType":{ + "type":"string", + "enum":[ + "SIGNING", + "ENCRYPTION" + ] + }, + "CompressionEnum":{ + "type":"string", + "enum":[ + "ZLIB", + "DISABLED" + ] + }, "ConflictException":{ "type":"structure", "required":["Message"], @@ -583,6 +1143,12 @@ "documentation":"

This exception is thrown when the UpdateServer is called for a file transfer protocol-enabled server that has VPC as the endpoint type and the server's VpcEndpointID is not in the available state.

", "exception":true }, + "ConnectorId":{ + "type":"string", + "max":19, + "min":19, + "pattern":"^c-([0-9a-f]{17})$" + }, "CopyStepDetails":{ "type":"structure", "members":{ @@ -619,20 +1185,20 @@ }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", - "documentation":"

The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.

" + "documentation":"

The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or Amazon EFS paths visible to your users.

" }, "HomeDirectoryMappings":{ "shape":"HomeDirectoryMappings", - "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL.

The following is an Entry and Target pair example.

[ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

In most cases, you can use this value instead of the session policy to lock down your user to the designated home directory (\"chroot\"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value.

The following is an Entry and Target pair example for chroot.

[ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

" + "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) role provides access to paths in Target. This value can be set only when HomeDirectoryType is set to LOGICAL.

The following is an Entry and Target pair example.

[ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

In most cases, you can use this value instead of the session policy to lock down your user to the designated home directory (\"chroot\"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value.

The following is an Entry and Target pair example for chroot.

[ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

" }, "Policy":{ "shape":"Policy", - "documentation":"

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

This only applies when the domain of ServerId is S3. EFS does not use session policies.

For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

For an example of a session policy, see Example session policy.

For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.

" + "documentation":"

A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

For session policies, Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

For an example of a session policy, see Example session policy.

For more information, see AssumeRole in the Security Token Service API Reference.

" }, "PosixProfile":{"shape":"PosixProfile"}, "Role":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" }, "ServerId":{ "shape":"ServerId", @@ -640,7 +1206,7 @@ }, "ExternalId":{ "shape":"ExternalId", - "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" + "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" } } }, @@ -653,11 +1219,140 @@ "members":{ "ServerId":{ "shape":"ServerId", - "documentation":"

The ID of the server that the user is attached to.

" + "documentation":"

The identifier of the server that the user is attached to.

" }, "ExternalId":{ "shape":"ExternalId", - "documentation":"

The external ID of the group whose users have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family.

" + "documentation":"

The external identifier of the group whose users have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Transfer Family.

" + } + } + }, + "CreateAgreementRequest":{ + "type":"structure", + "required":[ + "ServerId", + "LocalProfileId", + "PartnerProfileId", + "BaseDirectory", + "AccessRole" + ], + "members":{ + "Description":{ + "shape":"Description", + "documentation":"

A name or short description to identify the agreement.

" + }, + "ServerId":{ + "shape":"ServerId", + "documentation":"

A system-assigned unique identifier for a server instance. This is the specific server that the agreement uses.

" + }, + "LocalProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the AS2 local profile.

" + }, + "PartnerProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the partner profile used in the agreement.

" + }, + "BaseDirectory":{ + "shape":"HomeDirectory", + "documentation":"

The landing directory (folder) for files transferred by using the AS2 protocol.

A BaseDirectory example is DOC-EXAMPLE-BUCKET/home/mydirectory.

" + }, + "AccessRole":{ + "shape":"Role", + "documentation":"

With AS2, you can send files by calling StartFileTransfer and specifying the file paths in the request parameter, SendFilePaths. We use the file’s parent directory (for example, for --send-file-paths /bucket/dir/file.txt, parent directory is /bucket/dir/) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the AccessRole needs to provide read and write access to the parent directory of the file location used in the StartFileTransfer request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with StartFileTransfer.

" + }, + "Status":{ + "shape":"AgreementStatusType", + "documentation":"

The status of the agreement. The agreement can be either ACTIVE or INACTIVE.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for agreements.

" + } + } + }, + "CreateAgreementResponse":{ + "type":"structure", + "required":["AgreementId"], + "members":{ + "AgreementId":{ + "shape":"AgreementId", + "documentation":"

The unique identifier for the agreement. Use this ID for deleting, or updating an agreement, as well as in any other API calls that require that you specify the agreement ID.

" + } + } + }, + "CreateConnectorRequest":{ + "type":"structure", + "required":[ + "Url", + "As2Config", + "AccessRole" + ], + "members":{ + "Url":{ + "shape":"Url", + "documentation":"

The URL of the partner's AS2 endpoint.

" + }, + "As2Config":{ + "shape":"As2ConnectorConfig", + "documentation":"

A structure that contains the parameters for a connector object.

" + }, + "AccessRole":{ + "shape":"Role", + "documentation":"

With AS2, you can send files by calling StartFileTransfer and specifying the file paths in the request parameter, SendFilePaths. We use the file’s parent directory (for example, for --send-file-paths /bucket/dir/file.txt, parent directory is /bucket/dir/) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the AccessRole needs to provide read and write access to the parent directory of the file location used in the StartFileTransfer request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with StartFileTransfer.

" + }, + "LoggingRole":{ + "shape":"Role", + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn on CloudWatch logging for Amazon S3 events. When set, you can view connector activity in your CloudWatch logs.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for connectors. Tags are metadata attached to connectors for any purpose.

" + } + } + }, + "CreateConnectorResponse":{ + "type":"structure", + "required":["ConnectorId"], + "members":{ + "ConnectorId":{ + "shape":"ConnectorId", + "documentation":"

The unique identifier for the connector, returned after the API call succeeds.

" + } + } + }, + "CreateProfileRequest":{ + "type":"structure", + "required":[ + "As2Id", + "ProfileType" + ], + "members":{ + "As2Id":{ + "shape":"As2Id", + "documentation":"

The As2Id is the AS2-name, as defined in the RFC 4130. For inbound transfers, this is the AS2-From header for the AS2 messages sent from the partner. For outbound connectors, this is the AS2-To header for the AS2 messages sent to the partner using the StartFileTransfer API operation. This ID cannot include spaces.

" + }, + "ProfileType":{ + "shape":"ProfileType", + "documentation":"

Determines the type of profile to create:

  • Specify LOCAL to create a local profile. A local profile represents the AS2-enabled Transfer Family server organization or party.

  • Specify PARTNER to create a partner profile. A partner profile represents a remote organization, external to Transfer Family.

" + }, + "CertificateIds":{ + "shape":"CertificateIds", + "documentation":"

An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for AS2 profiles.

" + } + } + }, + "CreateProfileResponse":{ + "type":"structure", + "required":["ProfileId"], + "members":{ + "ProfileId":{ + "shape":"ProfileId", + "documentation":"

The unique identifier for the AS2 profile, returned after the API call succeeds.

" } } }, @@ -666,7 +1361,7 @@ "members":{ "Certificate":{ "shape":"Certificate", - "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager (ACM) certificate. Required when Protocols is set to FTPS.

To request a new public certificate, see Request a public certificate in the Amazon Web Services Certificate Manager User Guide.

To import an existing certificate into ACM, see Importing certificates into ACM in the Amazon Web Services Certificate Manager User Guide.

To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the Amazon Web Services Certificate Manager User Guide.

Certificates with the following cryptographic algorithms and key sizes are supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit (EC_prime256v1)

  • Elliptic Prime Curve 384 bit (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.

" + "documentation":"

The Amazon Resource Name (ARN) of the Certificate Manager (ACM) certificate. Required when Protocols is set to FTPS.

To request a new public certificate, see Request a public certificate in the Certificate Manager User Guide.

To import an existing certificate into ACM, see Importing certificates into ACM in the Certificate Manager User Guide.

To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the Certificate Manager User Guide.

Certificates with the following cryptographic algorithms and key sizes are supported:

  • 2048-bit RSA (RSA_2048)

  • 4096-bit RSA (RSA_4096)

  • Elliptic Prime Curve 256 bit (EC_prime256v1)

  • Elliptic Prime Curve 384 bit (EC_secp384r1)

  • Elliptic Prime Curve 521 bit (EC_secp521r1)

The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.

" }, "Domain":{ "shape":"Domain", @@ -674,7 +1369,7 @@ }, "EndpointDetails":{ "shape":"EndpointDetails", - "documentation":"

The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.

" + "documentation":"

The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make your endpoint accessible only to resources within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.

" }, "EndpointType":{ "shape":"EndpointType", @@ -682,7 +1377,7 @@ }, "HostKey":{ "shape":"HostKey", - "documentation":"

The RSA private key as generated by the ssh-keygen -N \"\" -m PEM -f my-new-server-key command.

If you aren't planning to migrate existing users from an existing SFTP-enabled server to a new server, don't update the host key. Accidentally changing a server's host key can be disruptive.

For more information, see Change the host key for your SFTP-enabled server in the Amazon Web Services Transfer Family User Guide.

" + "documentation":"

The RSA, ECDSA, or ED25519 private key to use for your SFTP-enabled server. You can add multiple host keys, in case you want to rotate keys, or have a set of active keys that use different algorithms.

Use the following command to generate an RSA 2048 bit key with no passphrase:

ssh-keygen -t rsa -b 2048 -N \"\" -m PEM -f my-new-server-key.

Use a minimum value of 2048 for the -b option. You can create a stronger key by using 3072 or 4096.

Use the following command to generate an ECDSA 256 bit key with no passphrase:

ssh-keygen -t ecdsa -b 256 -N \"\" -m PEM -f my-new-server-key.

Valid values for the -b option for ECDSA are 256, 384, and 521.

Use the following command to generate an ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N \"\" -f my-new-server-key.

For all of these commands, you can replace my-new-server-key with a string of your choice.

If you aren't planning to migrate existing users from an existing SFTP-enabled server to a new server, don't update the host key. Accidentally changing a server's host key can be disruptive.

For more information, see Update host keys for your SFTP-enabled server in the Transfer Family User Guide.

" }, "IdentityProviderDetails":{ "shape":"IdentityProviderDetails", @@ -690,27 +1385,27 @@ }, "IdentityProviderType":{ "shape":"IdentityProviderType", - "documentation":"

Specifies the mode of authentication for a server. The default value is SERVICE_MANAGED, which allows you to store and access user credentials within the Amazon Web Services Transfer Family service.

Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to provide a Directory ID using the IdentityProviderDetails parameter.

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call for authentication using the IdentityProviderDetails parameter.

Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

" + "documentation":"

The mode of authentication for a server. The default value is SERVICE_MANAGED, which allows you to store and access user credentials within the Transfer Family service.

Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in Amazon Web Services using AD Connector. This option also requires you to provide a Directory ID by using the IdentityProviderDetails parameter.

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The API_GATEWAY setting requires you to provide an Amazon API Gateway endpoint URL to call for authentication by using the IdentityProviderDetails parameter.

Use the AWS_LAMBDA value to directly use an Lambda function as your identity provider. If you choose this value, you must specify the ARN for the Lambda function in the Function parameter or the IdentityProviderDetails data type.

" }, "LoggingRole":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in your CloudWatch logs.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in your CloudWatch logs.

" }, "PostAuthenticationLoginBanner":{ "shape":"PostAuthenticationLoginBanner", - "documentation":"

Specify a string to display when users connect to a server. This string is displayed after the user authenticates.

The SFTP protocol does not support post-authentication display banners.

" + "documentation":"

Specifies a string to display when users connect to a server. This string is displayed after the user authenticates.

The SFTP protocol does not support post-authentication display banners.

" }, "PreAuthenticationLoginBanner":{ "shape":"PreAuthenticationLoginBanner", - "documentation":"

Specify a string to display when users connect to a server. This string is displayed before the user authenticates. For example, the following banner displays details about using the system.

This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.

" + "documentation":"

Specifies a string to display when users connect to a server. This string is displayed before the user authenticates. For example, the following banner displays details about using the system:

This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.

" }, "Protocols":{ "shape":"Protocols", - "documentation":"

Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

  • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH

  • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption

  • FTP (File Transfer Protocol): Unencrypted file transfer

If you select FTPS, you must choose a certificate stored in Amazon Web Services Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS.

If Protocol includes either FTP or FTPS, then the EndpointType must be VPC and the IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

If Protocol includes FTP, then AddressAllocationIds cannot be associated.

If Protocol is set only to SFTP, the EndpointType can be set to PUBLIC and the IdentityProviderType can be set to SERVICE_MANAGED.

" + "documentation":"

Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

  • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH

  • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption

  • FTP (File Transfer Protocol): Unencrypted file transfer

  • AS2 (Applicability Statement 2): used for transporting structured business-to-business data

  • If you select FTPS, you must choose a certificate stored in Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS.

  • If Protocol includes either FTP or FTPS, then the EndpointType must be VPC and the IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

  • If Protocol includes FTP, then AddressAllocationIds cannot be associated.

  • If Protocol is set only to SFTP, the EndpointType can be set to PUBLIC and the IdentityProviderType can be set to SERVICE_MANAGED.

  • If Protocol includes AS2, then the EndpointType must be VPC, and domain must be Amazon S3.

" }, "ProtocolDetails":{ "shape":"ProtocolDetails", - "documentation":"

The protocol settings that are configured for your server.

  • Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols). Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.

  • Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket. Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client. Note that with SetStatOption set to ENABLE_NO_OP, Transfer generates a log entry to CloudWatch Logs, so you can determine when the client is making a SETSTAT call.

  • Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server resumes recent, negotiated sessions through a unique session ID.

" + "documentation":"

The protocol settings that are configured for your server.

  • To indicate passive mode (for FTP and FTPS protocols), use the PassiveIp parameter. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.

  • To ignore the error that is generated when the client attempts to use the SETSTAT command on a file that you are uploading to an Amazon S3 bucket, use the SetStatOption parameter. To have the Transfer Family server ignore the SETSTAT command and upload files without needing to make any changes to your SFTP client, set the value to ENABLE_NO_OP. If you set the SetStatOption parameter to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon CloudWatch Logs, so that you can determine when the client is making a SETSTAT call.

  • To determine whether your Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the TlsSessionResumptionMode parameter.

  • As2Transports indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

" }, "SecurityPolicyName":{ "shape":"SecurityPolicyName", @@ -722,7 +1417,7 @@ }, "WorkflowDetails":{ "shape":"WorkflowDetails", - "documentation":"

Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

" + "documentation":"

Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

" } } }, @@ -732,7 +1427,7 @@ "members":{ "ServerId":{ "shape":"ServerId", - "documentation":"

The service-assigned ID of the server that is created.

" + "documentation":"

The service-assigned identifier of the server that is created.

" } } }, @@ -750,15 +1445,15 @@ }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", - "documentation":"

The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.

" + "documentation":"

The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or Amazon EFS paths visible to your users.

" }, "HomeDirectoryMappings":{ "shape":"HomeDirectoryMappings", - "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL.

The following is an Entry and Target pair example.

[ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory (\"chroot\"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value.

The following is an Entry and Target pair example for chroot.

[ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

" + "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) role provides access to paths in Target. This value can be set only when HomeDirectoryType is set to LOGICAL.

The following is an Entry and Target pair example.

[ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory (\"chroot\"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value.

The following is an Entry and Target pair example for chroot.

[ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

" }, "Policy":{ "shape":"Policy", - "documentation":"

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

This only applies when the domain of ServerId is S3. EFS does not use session policies.

For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

For an example of a session policy, see Example session policy.

For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.

" + "documentation":"

A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

For session policies, Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

For an example of a session policy, see Example session policy.

For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.

" }, "PosixProfile":{ "shape":"PosixProfile", @@ -766,7 +1461,7 @@ }, "Role":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" }, "ServerId":{ "shape":"ServerId", @@ -774,7 +1469,7 @@ }, "SshPublicKeyBody":{ "shape":"SshPublicKeyBody", - "documentation":"

The public portion of the Secure Shell (SSH) key used to authenticate the user to the server.

Currently, Transfer Family does not accept elliptical curve keys (keys beginning with ecdsa).

" + "documentation":"

The public portion of the Secure Shell (SSH) key used to authenticate the user to the server.

The three standard SSH public key format elements are <key type>, <body base64>, and an optional <comment>, with spaces between each element.

Transfer Family accepts RSA, ECDSA, and ED25519 keys.

  • For RSA keys, the key type is ssh-rsa.

  • For ED25519 keys, the key type is ssh-ed25519.

  • For ECDSA keys, the key type is either ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, or ecdsa-sha2-nistp521, depending on the size of the key you generated.

" }, "Tags":{ "shape":"Tags", @@ -795,7 +1490,7 @@ "members":{ "ServerId":{ "shape":"ServerId", - "documentation":"

The ID of the server that the user is attached to.

" + "documentation":"

The identifier of the server that the user is attached to.

" }, "UserName":{ "shape":"UserName", @@ -813,7 +1508,7 @@ }, "Steps":{ "shape":"WorkflowSteps", - "documentation":"

Specifies the details for the steps that are in the specified workflow.

The TYPE specifies which of the following actions is being taken for this step.

  • COPY: copy the file to another location

  • CUSTOM: custom step with a lambda target

  • DELETE: delete the file

  • TAG: add a tag to the file

Currently, copying and tagging are supported only on S3.

For file location, you specify either the S3 bucket and key, or the EFS filesystem ID and path.

" + "documentation":"

Specifies the details for the steps that are in the specified workflow.

The TYPE specifies which of the following actions is being taken for this step.

  • COPY: Copy the file to another location.

  • CUSTOM: Perform a custom step with an Lambda function target.

  • DELETE: Delete the file.

  • TAG: Add a tag to the file.

Currently, copying and tagging are supported only on S3.

For file location, you specify either the S3 bucket and key, or the EFS file system ID and path.

" }, "OnExceptionSteps":{ "shape":"WorkflowSteps", @@ -888,7 +1583,71 @@ }, "ExternalId":{ "shape":"ExternalId", - "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" + "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" + } + } + }, + "DeleteAgreementRequest":{ + "type":"structure", + "required":[ + "AgreementId", + "ServerId" + ], + "members":{ + "AgreementId":{ + "shape":"AgreementId", + "documentation":"

A unique identifier for the agreement. This identifier is returned when you create an agreement.

" + }, + "ServerId":{ + "shape":"ServerId", + "documentation":"

The server identifier associated with the agreement that you are deleting.

" + } + } + }, + "DeleteCertificateRequest":{ + "type":"structure", + "required":["CertificateId"], + "members":{ + "CertificateId":{ + "shape":"CertificateId", + "documentation":"

The identifier of the certificate object that you are deleting.

" + } + } + }, + "DeleteConnectorRequest":{ + "type":"structure", + "required":["ConnectorId"], + "members":{ + "ConnectorId":{ + "shape":"ConnectorId", + "documentation":"

The unique identifier for the connector.

" + } + } + }, + "DeleteHostKeyRequest":{ + "type":"structure", + "required":[ + "ServerId", + "HostKeyId" + ], + "members":{ + "ServerId":{ + "shape":"ServerId", + "documentation":"

The identifier of the server that contains the host key that you are deleting.

" + }, + "HostKeyId":{ + "shape":"HostKeyId", + "documentation":"

The identifier of the host key that you are deleting.

" + } + } + }, + "DeleteProfileRequest":{ + "type":"structure", + "required":["ProfileId"], + "members":{ + "ProfileId":{ + "shape":"ProfileId", + "documentation":"

The identifier of the profile that you are deleting.

" } } }, @@ -978,7 +1737,7 @@ }, "ExternalId":{ "shape":"ExternalId", - "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" + "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" } } }, @@ -995,7 +1754,74 @@ }, "Access":{ "shape":"DescribedAccess", - "documentation":"

The external ID of the server that the access is attached to.

" + "documentation":"

The external identifier of the server that the access is attached to.

" + } + } + }, + "DescribeAgreementRequest":{ + "type":"structure", + "required":[ + "AgreementId", + "ServerId" + ], + "members":{ + "AgreementId":{ + "shape":"AgreementId", + "documentation":"

A unique identifier for the agreement. This identifier is returned when you create an agreement.

" + }, + "ServerId":{ + "shape":"ServerId", + "documentation":"

The server identifier that's associated with the agreement.

" + } + } + }, + "DescribeAgreementResponse":{ + "type":"structure", + "required":["Agreement"], + "members":{ + "Agreement":{ + "shape":"DescribedAgreement", + "documentation":"

The details for the specified agreement, returned as a DescribedAgreement object.

" + } + } + }, + "DescribeCertificateRequest":{ + "type":"structure", + "required":["CertificateId"], + "members":{ + "CertificateId":{ + "shape":"CertificateId", + "documentation":"

An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

" + } + } + }, + "DescribeCertificateResponse":{ + "type":"structure", + "required":["Certificate"], + "members":{ + "Certificate":{ + "shape":"DescribedCertificate", + "documentation":"

The details for the specified certificate, returned as an object.

" + } + } + }, + "DescribeConnectorRequest":{ + "type":"structure", + "required":["ConnectorId"], + "members":{ + "ConnectorId":{ + "shape":"ConnectorId", + "documentation":"

The unique identifier for the connector.

" + } + } + }, + "DescribeConnectorResponse":{ + "type":"structure", + "required":["Connector"], + "members":{ + "Connector":{ + "shape":"DescribedConnector", + "documentation":"

The structure that contains the details of the connector.

" } } }, @@ -1033,6 +1859,53 @@ } } }, + "DescribeHostKeyRequest":{ + "type":"structure", + "required":[ + "ServerId", + "HostKeyId" + ], + "members":{ + "ServerId":{ + "shape":"ServerId", + "documentation":"

The identifier of the server that contains the host key that you want described.

" + }, + "HostKeyId":{ + "shape":"HostKeyId", + "documentation":"

The identifier of the host key that you want described.

" + } + } + }, + "DescribeHostKeyResponse":{ + "type":"structure", + "required":["HostKey"], + "members":{ + "HostKey":{ + "shape":"DescribedHostKey", + "documentation":"

Returns the details for the specified host key.

" + } + } + }, + "DescribeProfileRequest":{ + "type":"structure", + "required":["ProfileId"], + "members":{ + "ProfileId":{ + "shape":"ProfileId", + "documentation":"

The identifier of the profile that you want described.

" + } + } + }, + "DescribeProfileResponse":{ + "type":"structure", + "required":["Profile"], + "members":{ + "Profile":{ + "shape":"DescribedProfile", + "documentation":"

The details of the specified profile, returned as an object.

" + } + } + }, "DescribeSecurityPolicyRequest":{ "type":"structure", "required":["SecurityPolicyName"], @@ -1086,7 +1959,7 @@ }, "UserName":{ "shape":"UserName", - "documentation":"

The name of the user assigned to one or more servers. User names are part of the sign-in credentials to use the Amazon Web Services Transfer Family service and perform file transfer tasks.

" + "documentation":"

The name of the user assigned to one or more servers. User names are part of the sign-in credentials to use the Transfer Family service and perform file transfer tasks.

" } } }, @@ -1136,28 +2009,173 @@ }, "HomeDirectoryMappings":{ "shape":"HomeDirectoryMappings", - "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL.

In most cases, you can use this value instead of the session policy to lock down the associated access to the designated home directory (\"chroot\"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.

" + "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) role provides access to paths in Target. This value can be set only when HomeDirectoryType is set to LOGICAL.

In most cases, you can use this value instead of the session policy to lock down the associated access to the designated home directory (\"chroot\"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.

" }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", - "documentation":"

The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.

" + "documentation":"

The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or Amazon EFS paths visible to your users.

" }, "Policy":{ "shape":"Policy", - "documentation":"

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

" + "documentation":"

A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

" }, "PosixProfile":{"shape":"PosixProfile"}, "Role":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" }, "ExternalId":{ "shape":"ExternalId", - "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" + "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" } }, "documentation":"

Describes the properties of the access that was specified.

" }, + "DescribedAgreement":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The unique Amazon Resource Name (ARN) for the agreement.

" + }, + "AgreementId":{ + "shape":"AgreementId", + "documentation":"

A unique identifier for the agreement. This identifier is returned when you create an agreement.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The name or short description that's used to identify the agreement.

" + }, + "Status":{ + "shape":"AgreementStatusType", + "documentation":"

The current status of the agreement, either ACTIVE or INACTIVE.

" + }, + "ServerId":{ + "shape":"ServerId", + "documentation":"

A system-assigned unique identifier for a server instance. This identifier indicates the specific server that the agreement uses.

" + }, + "LocalProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the AS2 local profile.

" + }, + "PartnerProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the partner profile used in the agreement.

" + }, + "BaseDirectory":{ + "shape":"HomeDirectory", + "documentation":"

The landing directory (folder) for files that are transferred by using the AS2 protocol.

" + }, + "AccessRole":{ + "shape":"Role", + "documentation":"

With AS2, you can send files by calling StartFileTransfer and specifying the file paths in the request parameter, SendFilePaths. We use the file’s parent directory (for example, for --send-file-paths /bucket/dir/file.txt, parent directory is /bucket/dir/) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the AccessRole needs to provide read and write access to the parent directory of the file location used in the StartFileTransfer request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with StartFileTransfer.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for agreements.

" + } + }, + "documentation":"

Describes the properties of an agreement.

" + }, + "DescribedCertificate":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The unique Amazon Resource Name (ARN) for the certificate.

" + }, + "CertificateId":{ + "shape":"CertificateId", + "documentation":"

An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

" + }, + "Usage":{ + "shape":"CertificateUsageType", + "documentation":"

Specifies whether this certificate is used for signing or encryption.

" + }, + "Status":{ + "shape":"CertificateStatusType", + "documentation":"

The certificate can be either ACTIVE, PENDING_ROTATION, or INACTIVE. PENDING_ROTATION means that this certificate will replace the current certificate when it expires.

" + }, + "Certificate":{ + "shape":"CertificateBodyType", + "documentation":"

The file name for the certificate.

" + }, + "CertificateChain":{ + "shape":"CertificateChainType", + "documentation":"

The list of certificates that make up the chain for the certificate.

" + }, + "ActiveDate":{ + "shape":"CertDate", + "documentation":"

An optional date that specifies when the certificate becomes active.

" + }, + "InactiveDate":{ + "shape":"CertDate", + "documentation":"

An optional date that specifies when the certificate becomes inactive.

" + }, + "Serial":{ + "shape":"CertSerial", + "documentation":"

The serial number for the certificate.

" + }, + "NotBeforeDate":{ + "shape":"CertDate", + "documentation":"

The earliest date that the certificate is valid.

" + }, + "NotAfterDate":{ + "shape":"CertDate", + "documentation":"

The final date that the certificate is valid.

" + }, + "Type":{ + "shape":"CertificateType", + "documentation":"

If a private key has been specified for the certificate, its type is CERTIFICATE_WITH_PRIVATE_KEY. If there is no private key, the type is CERTIFICATE.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The name or description that's used to identity the certificate.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for certificates.

" + } + }, + "documentation":"

Describes the properties of a certificate.

" + }, + "DescribedConnector":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The unique Amazon Resource Name (ARN) for the connector.

" + }, + "ConnectorId":{ + "shape":"ConnectorId", + "documentation":"

The unique identifier for the connector.

" + }, + "Url":{ + "shape":"Url", + "documentation":"

The URL of the partner's AS2 endpoint.

" + }, + "As2Config":{ + "shape":"As2ConnectorConfig", + "documentation":"

A structure that contains the parameters for a connector object.

" + }, + "AccessRole":{ + "shape":"Role", + "documentation":"

With AS2, you can send files by calling StartFileTransfer and specifying the file paths in the request parameter, SendFilePaths. We use the file’s parent directory (for example, for --send-file-paths /bucket/dir/file.txt, parent directory is /bucket/dir/) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the AccessRole needs to provide read and write access to the parent directory of the file location used in the StartFileTransfer request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with StartFileTransfer.

" + }, + "LoggingRole":{ + "shape":"Role", + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn on CloudWatch logging for Amazon S3 events. When set, you can view connector activity in your CloudWatch logs.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for connectors.

" + } + }, + "documentation":"

Describes the parameters for the connector, as identified by the ConnectorId.

" + }, "DescribedExecution":{ "type":"structure", "members":{ @@ -1171,7 +2189,7 @@ }, "ServiceMetadata":{ "shape":"ServiceMetadata", - "documentation":"

A container object for the session details associated with a workflow.

" + "documentation":"

A container object for the session details that are associated with a workflow.

" }, "ExecutionRole":{ "shape":"Role", @@ -1193,6 +2211,72 @@ }, "documentation":"

The details for an execution object.

" }, + "DescribedHostKey":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The unique Amazon Resource Name (ARN) for the host key.

" + }, + "HostKeyId":{ + "shape":"HostKeyId", + "documentation":"

A unique identifier for the host key.

" + }, + "HostKeyFingerprint":{ + "shape":"HostKeyFingerprint", + "documentation":"

The public key fingerprint, which is a short sequence of bytes used to identify the longer public key.

" + }, + "Description":{ + "shape":"HostKeyDescription", + "documentation":"

The text description for this host key.

" + }, + "Type":{ + "shape":"HostKeyType", + "documentation":"

The encryption algorithm that is used for the host key. The Type parameter is specified by using one of the following values:

  • ssh-rsa

  • ssh-ed25519

  • ecdsa-sha2-nistp256

  • ecdsa-sha2-nistp384

  • ecdsa-sha2-nistp521

" + }, + "DateImported":{ + "shape":"DateImported", + "documentation":"

The date on which the host key was added to the server.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for host keys.

" + } + }, + "documentation":"

The details for a server host key.

" + }, + "DescribedProfile":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The unique Amazon Resource Name (ARN) for the profile.

" + }, + "ProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the local or partner AS2 profile.

" + }, + "ProfileType":{ + "shape":"ProfileType", + "documentation":"

Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. If not supplied in the request, the command lists all types of profiles.

" + }, + "As2Id":{ + "shape":"As2Id", + "documentation":"

The As2Id is the AS2-name, as defined in the RFC 4130. For inbound transfers, this is the AS2-From header for the AS2 messages sent from the partner. For outbound connectors, this is the AS2-To header for the AS2 messages sent to the partner using the StartFileTransfer API operation. This ID cannot include spaces.

" + }, + "CertificateIds":{ + "shape":"CertificateIds", + "documentation":"

An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for profiles.

" + } + }, + "documentation":"

The details for a local or partner AS2 profile.

" + }, "DescribedSecurityPolicy":{ "type":"structure", "required":["SecurityPolicyName"], @@ -1238,7 +2322,7 @@ }, "ProtocolDetails":{ "shape":"ProtocolDetails", - "documentation":"

The protocol settings that are configured for your server.

Use the PassiveIp parameter to indicate passive mode. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.

" + "documentation":"

The protocol settings that are configured for your server.

  • To indicate passive mode (for FTP and FTPS protocols), use the PassiveIp parameter. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.

  • To ignore the error that is generated when the client attempts to use the SETSTAT command on a file that you are uploading to an Amazon S3 bucket, use the SetStatOption parameter. To have the Transfer Family server ignore the SETSTAT command and upload files without needing to make any changes to your SFTP client, set the value to ENABLE_NO_OP. If you set the SetStatOption parameter to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon CloudWatch Logs, so that you can determine when the client is making a SETSTAT call.

  • To determine whether your Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the TlsSessionResumptionMode parameter.

  • As2Transports indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

" }, "Domain":{ "shape":"Domain", @@ -1246,7 +2330,7 @@ }, "EndpointDetails":{ "shape":"EndpointDetails", - "documentation":"

The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.

" + "documentation":"

The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make your endpoint accessible only to resources within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.

" }, "EndpointType":{ "shape":"EndpointType", @@ -1262,23 +2346,23 @@ }, "IdentityProviderType":{ "shape":"IdentityProviderType", - "documentation":"

Specifies the mode of authentication for a server. The default value is SERVICE_MANAGED, which allows you to store and access user credentials within the Amazon Web Services Transfer Family service.

Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to provide a Directory ID using the IdentityProviderDetails parameter.

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call for authentication using the IdentityProviderDetails parameter.

Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

" + "documentation":"

The mode of authentication for a server. The default value is SERVICE_MANAGED, which allows you to store and access user credentials within the Transfer Family service.

Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in Amazon Web Services using AD Connector. This option also requires you to provide a Directory ID by using the IdentityProviderDetails parameter.

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The API_GATEWAY setting requires you to provide an Amazon API Gateway endpoint URL to call for authentication by using the IdentityProviderDetails parameter.

Use the AWS_LAMBDA value to directly use an Lambda function as your identity provider. If you choose this value, you must specify the ARN for the Lambda function in the Function parameter or the IdentityProviderDetails data type.

" }, "LoggingRole":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in your CloudWatch logs.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in your CloudWatch logs.

" }, "PostAuthenticationLoginBanner":{ "shape":"PostAuthenticationLoginBanner", - "documentation":"

Specify a string to display when users connect to a server. This string is displayed after the user authenticates.

The SFTP protocol does not support post-authentication display banners.

" + "documentation":"

Specifies a string to display when users connect to a server. This string is displayed after the user authenticates.

The SFTP protocol does not support post-authentication display banners.

" }, "PreAuthenticationLoginBanner":{ "shape":"PreAuthenticationLoginBanner", - "documentation":"

Specify a string to display when users connect to a server. This string is displayed before the user authenticates. For example, the following banner displays details about using the system.

This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.

" + "documentation":"

Specifies a string to display when users connect to a server. This string is displayed before the user authenticates. For example, the following banner displays details about using the system:

This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.

" }, "Protocols":{ "shape":"Protocols", - "documentation":"

Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

  • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH

  • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption

  • FTP (File Transfer Protocol): Unencrypted file transfer

" + "documentation":"

Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

  • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH

  • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption

  • FTP (File Transfer Protocol): Unencrypted file transfer

  • AS2 (Applicability Statement 2): used for transporting structured business-to-business data

  • If you select FTPS, you must choose a certificate stored in Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS.

  • If Protocol includes either FTP or FTPS, then the EndpointType must be VPC and the IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

  • If Protocol includes FTP, then AddressAllocationIds cannot be associated.

  • If Protocol is set only to SFTP, the EndpointType can be set to PUBLIC and the IdentityProviderType can be set to SERVICE_MANAGED.

  • If Protocol includes AS2, then the EndpointType must be VPC, and domain must be Amazon S3.

" }, "SecurityPolicyName":{ "shape":"SecurityPolicyName", @@ -1290,7 +2374,7 @@ }, "State":{ "shape":"State", - "documentation":"

Specifies the condition of a server for the server that was described. A value of ONLINE indicates that the server can accept jobs and transfer files. A State value of OFFLINE means that the server cannot perform file transfer operations.

The states of STARTING and STOPPING indicate that the server is in an intermediate state, either not fully able to respond, or not fully offline. The values of START_FAILED or STOP_FAILED can indicate an error condition.

" + "documentation":"

The condition of the server that was described. A value of ONLINE indicates that the server can accept jobs and transfer files. A State value of OFFLINE means that the server cannot perform file transfer operations.

The states of STARTING and STOPPING indicate that the server is in an intermediate state, either not fully able to respond, or not fully offline. The values of START_FAILED or STOP_FAILED can indicate an error condition.

" }, "Tags":{ "shape":"Tags", @@ -1302,7 +2386,7 @@ }, "WorkflowDetails":{ "shape":"WorkflowDetails", - "documentation":"

Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

" + "documentation":"

Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

" } }, "documentation":"

Describes the properties of a file transfer protocol-enabled server that was specified.

" @@ -1321,15 +2405,15 @@ }, "HomeDirectoryMappings":{ "shape":"HomeDirectoryMappings", - "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL.

In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory (\"chroot\"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.

" + "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) role provides access to paths in Target. This value can be set only when HomeDirectoryType is set to LOGICAL.

In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory (\"chroot\"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.

" }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", - "documentation":"

The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.

" + "documentation":"

The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or Amazon EFS paths visible to your users.

" }, "Policy":{ "shape":"Policy", - "documentation":"

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

" + "documentation":"

A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

" }, "PosixProfile":{ "shape":"PosixProfile", @@ -1337,7 +2421,7 @@ }, "Role":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" }, "SshPublicKeys":{ "shape":"SshPublicKeys", @@ -1385,6 +2469,12 @@ }, "documentation":"

Describes the properties of the specified workflow

" }, + "Description":{ + "type":"string", + "max":200, + "min":1, + "pattern":"^[\\p{Graph}]+" + }, "DirectoryId":{ "type":"string", "max":12, @@ -1403,7 +2493,7 @@ "members":{ "FileSystemId":{ "shape":"EfsFileSystemId", - "documentation":"

The ID of the file system, assigned by Amazon EFS.

" + "documentation":"

The identifier of the file system, assigned by Amazon EFS.

" }, "Path":{ "shape":"EfsPath", @@ -1423,6 +2513,15 @@ "min":1, "pattern":"^[^\\x00]+$" }, + "EncryptionAlg":{ + "type":"string", + "enum":[ + "AES128_CBC", + "AES192_CBC", + "AES256_CBC", + "NONE" + ] + }, "EndpointDetails":{ "type":"structure", "members":{ @@ -1436,11 +2535,11 @@ }, "VpcEndpointId":{ "shape":"VpcEndpointId", - "documentation":"

The ID of the VPC endpoint.

This property can only be set when EndpointType is set to VPC_ENDPOINT.

For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

" + "documentation":"

The identifier of the VPC endpoint.

This property can only be set when EndpointType is set to VPC_ENDPOINT.

For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

" }, "VpcId":{ "shape":"VpcId", - "documentation":"

The VPC ID of the VPC in which a server's endpoint will be hosted.

This property can only be set when EndpointType is set to VPC.

" + "documentation":"

The VPC identifier of the VPC in which a server's endpoint will be hosted.

This property can only be set when EndpointType is set to VPC.

" }, "SecurityGroupIds":{ "shape":"SecurityGroupIds", @@ -1523,7 +2622,7 @@ "members":{ "StepType":{ "shape":"WorkflowStepType", - "documentation":"

One of the available step types.

  • COPY: copy the file to another location

  • CUSTOM: custom step with a lambda target

  • DELETE: delete the file

  • TAG: add a tag to the file

" + "documentation":"

One of the available step types.

  • COPY: Copy the file to another location.

  • CUSTOM: Perform a custom step with an Lambda function target.

  • DELETE: Delete the file.

  • TAG: Add a tag to the file.

" }, "Outputs":{ "shape":"StepResultOutputsJson", @@ -1531,7 +2630,7 @@ }, "Error":{ "shape":"ExecutionError", - "documentation":"

Specifies the details for an error, if it occurred during execution of the specified workfow step.

" + "documentation":"

Specifies the details for an error, if it occurred during execution of the specified workflow step.

" } }, "documentation":"

Specifies the following details for the step: error (if any), outputs (if any), and the step type.

" @@ -1553,15 +2652,27 @@ "members":{ "S3FileLocation":{ "shape":"S3FileLocation", - "documentation":"

Specifies the S3 details for the file being used, such as bucket, Etag, and so forth.

" + "documentation":"

Specifies the S3 details for the file being used, such as bucket, ETag, and so forth.

" }, "EfsFileLocation":{ "shape":"EfsFileLocation", - "documentation":"

Specifies the Amazon EFS ID and the path for the file being used.

" + "documentation":"

Specifies the Amazon EFS identifier and the path for the file being used.

" } }, "documentation":"

Specifies the Amazon S3 or EFS file details to be used in the step.

" }, + "FilePath":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^(.)+" + }, + "FilePaths":{ + "type":"list", + "member":{"shape":"FilePath"}, + "max":10, + "min":1 + }, "Fips":{"type":"boolean"}, "Function":{ "type":"string", @@ -1610,7 +2721,20 @@ "max":4096, "sensitive":true }, + "HostKeyDescription":{ + "type":"string", + "max":200, + "min":0, + "pattern":"^[\\p{Print}]*$" + }, "HostKeyFingerprint":{"type":"string"}, + "HostKeyId":{ + "type":"string", + "max":25, + "min":25, + "pattern":"^hostkey-[0-9a-f]{17}$" + }, + "HostKeyType":{"type":"string"}, "IdentityProviderDetails":{ "type":"structure", "members":{ @@ -1624,7 +2748,7 @@ }, "DirectoryId":{ "shape":"DirectoryId", - "documentation":"

The identifier of the Amazon Web Services Directory Service directory that you want to stop sharing.

" + "documentation":"

The identifier of the Directory Service directory that you want to stop sharing.

" }, "Function":{ "shape":"Function", @@ -1643,6 +2767,99 @@ "AWS_LAMBDA" ] }, + "ImportCertificateRequest":{ + "type":"structure", + "required":[ + "Usage", + "Certificate" + ], + "members":{ + "Usage":{ + "shape":"CertificateUsageType", + "documentation":"

Specifies whether this certificate is used for signing or encryption.

" + }, + "Certificate":{ + "shape":"CertificateBodyType", + "documentation":"

The file that contains the certificate to import.

" + }, + "CertificateChain":{ + "shape":"CertificateChainType", + "documentation":"

An optional list of certificates that make up the chain for the certificate that's being imported.

" + }, + "PrivateKey":{ + "shape":"PrivateKeyType", + "documentation":"

The file that contains the private key for the certificate that's being imported.

" + }, + "ActiveDate":{ + "shape":"CertDate", + "documentation":"

An optional date that specifies when the certificate becomes active.

" + }, + "InactiveDate":{ + "shape":"CertDate", + "documentation":"

An optional date that specifies when the certificate becomes inactive.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A short description that helps identify the certificate.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for certificates.

" + } + } + }, + "ImportCertificateResponse":{ + "type":"structure", + "required":["CertificateId"], + "members":{ + "CertificateId":{ + "shape":"CertificateId", + "documentation":"

An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

" + } + } + }, + "ImportHostKeyRequest":{ + "type":"structure", + "required":[ + "ServerId", + "HostKeyBody" + ], + "members":{ + "ServerId":{ + "shape":"ServerId", + "documentation":"

The identifier of the server that contains the host key that you are importing.

" + }, + "HostKeyBody":{ + "shape":"HostKey", + "documentation":"

The public key portion of an SSH key pair.

Transfer Family accepts RSA, ECDSA, and ED25519 keys.

" + }, + "Description":{ + "shape":"HostKeyDescription", + "documentation":"

The text description that identifies this host key.

" + }, + "Tags":{ + "shape":"Tags", + "documentation":"

Key-value pairs that can be used to group and search for host keys.

" + } + } + }, + "ImportHostKeyResponse":{ + "type":"structure", + "required":[ + "ServerId", + "HostKeyId" + ], + "members":{ + "ServerId":{ + "shape":"ServerId", + "documentation":"

Returns the server identifier that contains the imported key.

" + }, + "HostKeyId":{ + "shape":"HostKeyId", + "documentation":"

Returns the host key identifier for the imported key.

" + } + } + }, "ImportSshPublicKeyRequest":{ "type":"structure", "required":[ @@ -1657,7 +2874,7 @@ }, "SshPublicKeyBody":{ "shape":"SshPublicKeyBody", - "documentation":"

The public key portion of an SSH key pair.

" + "documentation":"

The public key portion of an SSH key pair.

Transfer Family accepts RSA, ECDSA, and ED25519 keys.

" }, "UserName":{ "shape":"UserName", @@ -1769,17 +2986,103 @@ } } }, + "ListAgreementsRequest":{ + "type":"structure", + "required":["ServerId"], + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of agreements to return.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When you can get additional results from the ListAgreements call, a NextToken parameter is returned in the output. You can then pass in a subsequent command to the NextToken parameter to continue listing additional agreements.

" + }, + "ServerId":{ + "shape":"ServerId", + "documentation":"

The identifier of the server for which you want a list of agreements.

" + } + } + }, + "ListAgreementsResponse":{ + "type":"structure", + "required":["Agreements"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

Returns a token that you can use to call ListAgreements again and receive additional results, if there are any.

" + }, + "Agreements":{ + "shape":"ListedAgreements", + "documentation":"

Returns an array, where each item contains the details of an agreement.

" + } + } + }, + "ListCertificatesRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of certificates to return.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When you can get additional results from the ListCertificates call, a NextToken parameter is returned in the output. You can then pass in a subsequent command to the NextToken parameter to continue listing additional certificates.

" + } + } + }, + "ListCertificatesResponse":{ + "type":"structure", + "required":["Certificates"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

Returns the next token, which you can use to list the next certificate.

" + }, + "Certificates":{ + "shape":"ListedCertificates", + "documentation":"

Returns an array of the certificates that are specified in the ListCertificates call.

" + } + } + }, + "ListConnectorsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of connectors to return.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When you can get additional results from the ListConnectors call, a NextToken parameter is returned in the output. You can then pass in a subsequent command to the NextToken parameter to continue listing additional connectors.

" + } + } + }, + "ListConnectorsResponse":{ + "type":"structure", + "required":["Connectors"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

Returns a token that you can use to call ListConnectors again and receive additional results, if there are any.

" + }, + "Connectors":{ + "shape":"ListedConnectors", + "documentation":"

Returns an array, where each item contains the details of a connector.

" + } + } + }, "ListExecutionsRequest":{ "type":"structure", "required":["WorkflowId"], "members":{ "MaxResults":{ "shape":"MaxResults", - "documentation":"

Specifies the aximum number of executions to return.

" + "documentation":"

Specifies the maximum number of executions to return.

" }, "NextToken":{ "shape":"NextToken", - "documentation":"

ListExecutions returns the NextToken parameter in the output. You can then pass the NextToken parameter in a subsequent command to continue listing additional executions.

This is useful for pagination, for instance. If you have 100 executions for a workflow, you might only want to list first 10. If so, callthe API by specifing the max-results:

aws transfer list-executions --max-results 10

This returns details for the first 10 executions, as well as the pointer (NextToken) to the eleventh execution. You can now call the API again, suppling the NextToken value you received:

aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult

This call returns the next 10 executions, the 11th through the 20th. You can then repeat the call until the details for all 100 executions have been returned.

" + "documentation":"

ListExecutions returns the NextToken parameter in the output. You can then pass the NextToken parameter in a subsequent command to continue listing additional executions.

This is useful for pagination, for instance. If you have 100 executions for a workflow, you might only want to list first 10. If so, call the API by specifying the max-results:

aws transfer list-executions --max-results 10

This returns details for the first 10 executions, as well as the pointer (NextToken) to the eleventh execution. You can now call the API again, supplying the NextToken value you received:

aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult

This call returns the next 10 executions, the 11th through the 20th. You can then repeat the call until the details for all 100 executions have been returned.

" }, "WorkflowId":{ "shape":"WorkflowId", @@ -1808,6 +3111,76 @@ } } }, + "ListHostKeysRequest":{ + "type":"structure", + "required":["ServerId"], + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of host keys to return.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When there are additional results that were not returned, a NextToken parameter is returned. You can use that value for a subsequent call to ListHostKeys to continue listing results.

" + }, + "ServerId":{ + "shape":"ServerId", + "documentation":"

The identifier of the server that contains the host keys that you want to view.

" + } + } + }, + "ListHostKeysResponse":{ + "type":"structure", + "required":[ + "ServerId", + "HostKeys" + ], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

Returns a token that you can use to call ListHostKeys again and receive additional results, if there are any.

" + }, + "ServerId":{ + "shape":"ServerId", + "documentation":"

Returns the server identifier that contains the listed host keys.

" + }, + "HostKeys":{ + "shape":"ListedHostKeys", + "documentation":"

Returns an array, where each item contains the details of a host key.

" + } + } + }, + "ListProfilesRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of profiles to return.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

When there are additional results that were not returned, a NextToken parameter is returned. You can use that value for a subsequent call to ListProfiles to continue listing results.

" + }, + "ProfileType":{ + "shape":"ProfileType", + "documentation":"

Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. If not supplied in the request, the command lists all types of profiles.

" + } + } + }, + "ListProfilesResponse":{ + "type":"structure", + "required":["Profiles"], + "members":{ + "NextToken":{ + "shape":"NextToken", + "documentation":"

Returns a token that you can use to call ListProfiles again and receive additional results, if there are any.

" + }, + "Profiles":{ + "shape":"ListedProfiles", + "documentation":"

Returns an array, where each item contains the details of a profile.

" + } + } + }, "ListSecurityPoliciesRequest":{ "type":"structure", "members":{ @@ -1972,15 +3345,15 @@ }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", - "documentation":"

The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.

" + "documentation":"

The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or Amazon EFS paths visible to your users.

" }, "Role":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" }, "ExternalId":{ "shape":"ExternalId", - "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" + "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" } }, "documentation":"

Lists the properties for one or more specified associated accesses.

" @@ -1989,6 +3362,108 @@ "type":"list", "member":{"shape":"ListedAccess"} }, + "ListedAgreement":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the specified agreement.

" + }, + "AgreementId":{ + "shape":"AgreementId", + "documentation":"

A unique identifier for the agreement. This identifier is returned when you create an agreement.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The current description for the agreement. You can change it by calling the UpdateAgreement operation and providing a new description.

" + }, + "Status":{ + "shape":"AgreementStatusType", + "documentation":"

The agreement can be either ACTIVE or INACTIVE.

" + }, + "ServerId":{ + "shape":"ServerId", + "documentation":"

The unique identifier for the agreement.

" + }, + "LocalProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the AS2 local profile.

" + }, + "PartnerProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the partner profile.

" + } + }, + "documentation":"

Describes the properties of an agreement.

" + }, + "ListedAgreements":{ + "type":"list", + "member":{"shape":"ListedAgreement"} + }, + "ListedCertificate":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the specified certificate.

" + }, + "CertificateId":{ + "shape":"CertificateId", + "documentation":"

An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

" + }, + "Usage":{ + "shape":"CertificateUsageType", + "documentation":"

Specifies whether this certificate is used for signing or encryption.

" + }, + "Status":{ + "shape":"CertificateStatusType", + "documentation":"

The certificate can be either ACTIVE, PENDING_ROTATION, or INACTIVE. PENDING_ROTATION means that this certificate will replace the current certificate when it expires.

" + }, + "ActiveDate":{ + "shape":"CertDate", + "documentation":"

An optional date that specifies when the certificate becomes active.

" + }, + "InactiveDate":{ + "shape":"CertDate", + "documentation":"

An optional date that specifies when the certificate becomes inactive.

" + }, + "Type":{ + "shape":"CertificateType", + "documentation":"

The type for the certificate. If a private key has been specified for the certificate, its type is CERTIFICATE_WITH_PRIVATE_KEY. If there is no private key, the type is CERTIFICATE.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

The name or short description that's used to identify the certificate.

" + } + }, + "documentation":"

Describes the properties of a certificate.

" + }, + "ListedCertificates":{ + "type":"list", + "member":{"shape":"ListedCertificate"} + }, + "ListedConnector":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the specified connector.

" + }, + "ConnectorId":{ + "shape":"ConnectorId", + "documentation":"

The unique identifier for the connector.

" + }, + "Url":{ + "shape":"Url", + "documentation":"

The URL of the partner's AS2 endpoint.

" + } + }, + "documentation":"

Returns details of the connector that is specified.

" + }, + "ListedConnectors":{ + "type":"list", + "member":{"shape":"ListedConnector"} + }, "ListedExecution":{ "type":"structure", "members":{ @@ -2002,7 +3477,7 @@ }, "ServiceMetadata":{ "shape":"ServiceMetadata", - "documentation":"

A container object for the session details associated with a workflow.

" + "documentation":"

A container object for the session details that are associated with a workflow.

" }, "Status":{ "shape":"ExecutionStatus", @@ -2015,6 +3490,67 @@ "type":"list", "member":{"shape":"ListedExecution"} }, + "ListedHostKey":{ + "type":"structure", + "required":["Arn"], + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The unique Amazon Resource Name (ARN) of the host key.

" + }, + "HostKeyId":{ + "shape":"HostKeyId", + "documentation":"

A unique identifier for the host key.

" + }, + "Fingerprint":{ + "shape":"HostKeyFingerprint", + "documentation":"

The public key fingerprint, which is a short sequence of bytes used to identify the longer public key.

" + }, + "Description":{ + "shape":"HostKeyDescription", + "documentation":"

The current description for the host key. You can change it by calling the UpdateHostKey operation and providing a new description.

" + }, + "Type":{ + "shape":"HostKeyType", + "documentation":"

The encryption algorithm that is used for the host key. The Type parameter is specified by using one of the following values:

  • ssh-rsa

  • ssh-ed25519

  • ecdsa-sha2-nistp256

  • ecdsa-sha2-nistp384

  • ecdsa-sha2-nistp521

" + }, + "DateImported":{ + "shape":"DateImported", + "documentation":"

The date on which the host key was added to the server.

" + } + }, + "documentation":"

Returns properties of the host key that's specified.

" + }, + "ListedHostKeys":{ + "type":"list", + "member":{"shape":"ListedHostKey"} + }, + "ListedProfile":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"Arn", + "documentation":"

The Amazon Resource Name (ARN) of the specified profile.

" + }, + "ProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the local or partner AS2 profile.

" + }, + "As2Id":{ + "shape":"As2Id", + "documentation":"

The As2Id is the AS2-name, as defined in the RFC 4130. For inbound transfers, this is the AS2-From header for the AS2 messages sent from the partner. For outbound connectors, this is the AS2-To header for the AS2 messages sent to the partner using the StartFileTransfer API operation. This ID cannot include spaces.

" + }, + "ProfileType":{ + "shape":"ProfileType", + "documentation":"

Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. If not supplied in the request, the command lists all types of profiles.

" + } + }, + "documentation":"

Returns the properties of the profile that was specified.

" + }, + "ListedProfiles":{ + "type":"list", + "member":{"shape":"ListedProfile"} + }, "ListedServer":{ "type":"structure", "required":["Arn"], @@ -2029,7 +3565,7 @@ }, "IdentityProviderType":{ "shape":"IdentityProviderType", - "documentation":"

Specifies the mode of authentication for a server. The default value is SERVICE_MANAGED, which allows you to store and access user credentials within the Amazon Web Services Transfer Family service.

Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to provide a Directory ID using the IdentityProviderDetails parameter.

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call for authentication using the IdentityProviderDetails parameter.

Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

" + "documentation":"

The mode of authentication for a server. The default value is SERVICE_MANAGED, which allows you to store and access user credentials within the Transfer Family service.

Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in Amazon Web Services using AD Connector. This option also requires you to provide a Directory ID by using the IdentityProviderDetails parameter.

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The API_GATEWAY setting requires you to provide an Amazon API Gateway endpoint URL to call for authentication by using the IdentityProviderDetails parameter.

Use the AWS_LAMBDA value to directly use an Lambda function as your identity provider. If you choose this value, you must specify the ARN for the Lambda function in the Function parameter or the IdentityProviderDetails data type.

" }, "EndpointType":{ "shape":"EndpointType", @@ -2037,7 +3573,7 @@ }, "LoggingRole":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in your CloudWatch logs.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in your CloudWatch logs.

" }, "ServerId":{ "shape":"ServerId", @@ -2045,7 +3581,7 @@ }, "State":{ "shape":"State", - "documentation":"

Specifies the condition of a server for the server that was described. A value of ONLINE indicates that the server can accept jobs and transfer files. A State value of OFFLINE means that the server cannot perform file transfer operations.

The states of STARTING and STOPPING indicate that the server is in an intermediate state, either not fully able to respond, or not fully offline. The values of START_FAILED or STOP_FAILED can indicate an error condition.

" + "documentation":"

The condition of the server that was described. A value of ONLINE indicates that the server can accept jobs and transfer files. A State value of OFFLINE means that the server cannot perform file transfer operations.

The states of STARTING and STOPPING indicate that the server is in an intermediate state, either not fully able to respond, or not fully offline. The values of START_FAILED or STOP_FAILED can indicate an error condition.

" }, "UserCount":{ "shape":"UserCount", @@ -2072,11 +3608,11 @@ }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", - "documentation":"

The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.

" + "documentation":"

The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or Amazon EFS paths visible to your users.

" }, "Role":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

The IAM role that controls your users' access to your Amazon S3 bucket for servers with Domain=S3, or your EFS file system for servers with Domain=EFS.

The policies attached to this role determine the level of access you want to provide your users when transferring files into and out of your S3 buckets or EFS file systems.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

The IAM role that controls your users' access to your Amazon S3 bucket for servers with Domain=S3, or your EFS file system for servers with Domain=EFS.

The policies attached to this role determine the level of access you want to provide your users when transferring files into and out of your S3 buckets or EFS file systems.

" }, "SshPublicKeyCount":{ "shape":"SshPublicKeyCount", @@ -2109,7 +3645,7 @@ "documentation":"

Specifies the unique Amazon Resource Name (ARN) for the workflow.

" } }, - "documentation":"

Contains the ID, text description, and Amazon Resource Name (ARN) for the workflow.

" + "documentation":"

Contains the identifier, text description, and Amazon Resource Name (ARN) for the workflow.

" }, "ListedWorkflows":{ "type":"list", @@ -2126,11 +3662,11 @@ "members":{ "LoggingRole":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in your CloudWatch logs.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in your CloudWatch logs.

" }, "LogGroupName":{ "shape":"LogGroupName", - "documentation":"

The name of the CloudWatch logging group for the Amazon Web Services Transfer server to which this workflow belongs.

" + "documentation":"

The name of the CloudWatch logging group for the Transfer Family server to which this workflow belongs.

" } }, "documentation":"

Consists of the logging role and the log group name.

" @@ -2150,7 +3686,31 @@ "max":1000, "min":1 }, + "MdnResponse":{ + "type":"string", + "enum":[ + "SYNC", + "NONE" + ] + }, + "MdnSigningAlg":{ + "type":"string", + "enum":[ + "SHA256", + "SHA384", + "SHA512", + "SHA1", + "NONE", + "DEFAULT" + ] + }, "Message":{"type":"string"}, + "MessageSubject":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^[\\p{Print}\\p{Blank}]+" + }, "NextToken":{ "type":"string", "max":6144, @@ -2161,6 +3721,11 @@ "max":2048, "pattern":"^$|arn:.*role/.*" }, + "OnPartialUploadWorkflowDetails":{ + "type":"list", + "member":{"shape":"WorkflowDetail"}, + "max":1 + }, "OnUploadWorkflowDetails":{ "type":"list", "member":{"shape":"WorkflowDetail"}, @@ -2218,12 +3783,33 @@ "max":512, "pattern":"[\\x09-\\x0D\\x20-\\x7E]*" }, + "PrivateKeyType":{ + "type":"string", + "max":16384, + "min":1, + "pattern":"^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*", + "sensitive":true + }, + "ProfileId":{ + "type":"string", + "max":19, + "min":19, + "pattern":"^p-([0-9a-f]{17})$" + }, + "ProfileType":{ + "type":"string", + "enum":[ + "LOCAL", + "PARTNER" + ] + }, "Protocol":{ "type":"string", "enum":[ "SFTP", "FTP", - "FTPS" + "FTPS", + "AS2" ] }, "ProtocolDetails":{ @@ -2231,15 +3817,19 @@ "members":{ "PassiveIp":{ "shape":"PassiveIp", - "documentation":"

Indicates passive mode, for FTP and FTPS protocols. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. For example:

aws transfer update-server --protocol-details PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example above with the actual IP address you want to use.

If you change the PassiveIp value, you must stop and then restart your Transfer server for the change to take effect. For details on using Passive IP (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Amazon Web Services Transfer Family.

" + "documentation":"

Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of a firewall, router, or load balancer. For example:

aws transfer update-server --protocol-details PassiveIp=0.0.0.0

Replace 0.0.0.0 in the example above with the actual IP address you want to use.

If you change the PassiveIp value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with Transfer Family.

Special values

The AUTO and 0.0.0.0 are special values for the PassiveIp parameter. The value PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0 has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the PassiveIp parameter. This reduces the effectiveness of having High Availability. In this case, you can specify PassiveIp=0.0.0.0. This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the PassiveIp=0.0.0.0 response.

" }, "TlsSessionResumptionMode":{ "shape":"TlsSessionResumptionMode", - "documentation":"

A property used with Transfer servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent, negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls. If a TlsSessionResumptionMode value is not specified during CreateServer, it is set to ENFORCED by default.

  • DISABLED: the server does not process TLS session resumption client requests and creates a new TLS session for each request.

  • ENABLED: the server processes and accepts clients that are performing TLS session resumption. The server doesn't reject client data connections that do not perform the TLS session resumption client processing.

  • ENFORCED: the server processes and accepts clients that are performing TLS session resumption. The server rejects client data connections that do not perform the TLS session resumption client processing. Before you set the value to ENFORCED, test your clients.

    Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or not you can use the ENFORCED value, you need to test your clients.

" + "documentation":"

A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent, negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls. If a TlsSessionResumptionMode value is not specified during CreateServer, it is set to ENFORCED by default.

  • DISABLED: the server does not process TLS session resumption client requests and creates a new TLS session for each request.

  • ENABLED: the server processes and accepts clients that are performing TLS session resumption. The server doesn't reject client data connections that do not perform the TLS session resumption client processing.

  • ENFORCED: the server processes and accepts clients that are performing TLS session resumption. The server rejects client data connections that do not perform the TLS session resumption client processing. Before you set the value to ENFORCED, test your clients.

    Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or not you can use the ENFORCED value, you need to test your clients.

" }, "SetStatOption":{ "shape":"SetStatOption", - "documentation":"

Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket.

Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and permissions, using commands, such as SETSTAT when uploading the file. However, these commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from these clients can result in errors even when the file is otherwise successfully uploaded.

Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client. While the SetStatOption ENABLE_NO_OP setting ignores the error, it does generate a log entry in CloudWatch Logs, so you can determine when the client is making a SETSTAT call.

If you want to preserve the original timestamp for your file, and modify other file attributes using SETSTAT, you can use Amazon EFS as backend storage with Transfer Family.

" + "documentation":"

Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket.

Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and permissions, using commands, such as SETSTAT when uploading the file. However, these commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from these clients can result in errors even when the file is otherwise successfully uploaded.

Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client. While the SetStatOption ENABLE_NO_OP setting ignores the error, it does generate a log entry in Amazon CloudWatch Logs, so you can determine when the client is making a SETSTAT call.

If you want to preserve the original timestamp for your file, and modify other file attributes using SETSTAT, you can use Amazon EFS as backend storage with Transfer Family.

" + }, + "As2Transports":{ + "shape":"As2Transports", + "documentation":"

Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

" } }, "documentation":"

The protocol settings that are configured for your server.

" @@ -2247,7 +3837,7 @@ "Protocols":{ "type":"list", "member":{"shape":"Protocol"}, - "max":3, + "max":4, "min":1 }, "Resource":{"type":"string"}, @@ -2311,7 +3901,7 @@ }, "Key":{ "shape":"S3Key", - "documentation":"

The name assigned to the file when it was created in S3. You use the object key to retrieve the object.

" + "documentation":"

The name assigned to the file when it was created in Amazon S3. You use the object key to retrieve the object.

" }, "VersionId":{ "shape":"S3VersionId", @@ -2322,7 +3912,7 @@ "documentation":"

The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata.

" } }, - "documentation":"

Specifies the details for the file location for the file being used in the workflow. Only applicable if you are using S3 storage.

" + "documentation":"

Specifies the details for the file location for the file that's being used in the workflow. Only applicable if you are using S3 storage.

" }, "S3InputFileLocation":{ "type":"structure", @@ -2333,7 +3923,7 @@ }, "Key":{ "shape":"S3Key", - "documentation":"

The name assigned to the file when it was created in S3. You use the object key to retrieve the object.

" + "documentation":"

The name assigned to the file when it was created in Amazon S3. You use the object key to retrieve the object.

" } }, "documentation":"

Specifies the customer input S3 file location. If it is used inside copyStepDetails.DestinationFileLocation, it should be the S3 copy destination.

You need to provide the bucket and key. The key can represent either a path or a file. This is determined by whether or not you end the key value with the forward slash (/) character. If the final character is \"/\", then your file is copied to the folder, and its name does not change. If, rather, the final character is alphanumeric, your uploaded file is renamed to the path value. In this case, if a file with that name already exists, it is overwritten.

For example, if your path is shared-files/bob/, your uploaded files are copied to the shared-files/bob/, folder. If your path is shared-files/today, each uploaded file is copied to the shared-files folder and named today: each upload overwrites the previous version of the bob file.

" @@ -2465,7 +4055,7 @@ "documentation":"

The Server ID (ServerId), Session ID (SessionId) and user (UserName) make up the UserDetails.

" } }, - "documentation":"

A container object for the session details associated with a workflow.

" + "documentation":"

A container object for the session details that are associated with a workflow.

" }, "ServiceUnavailableException":{ "type":"structure", @@ -2490,6 +4080,16 @@ "ENABLE_NO_OP" ] }, + "SigningAlg":{ + "type":"string", + "enum":[ + "SHA256", + "SHA384", + "SHA512", + "SHA1", + "NONE" + ] + }, "SourceFileLocation":{ "type":"string", "max":256, @@ -2514,7 +4114,7 @@ }, "SshPublicKeyBody":{ "shape":"SshPublicKeyBody", - "documentation":"

Specifies the content of the SSH public key as specified by the PublicKeyId.

" + "documentation":"

Specifies the content of the SSH public key as specified by the PublicKeyId.

Transfer Family accepts RSA, ECDSA, and ED25519 keys.

" }, "SshPublicKeyId":{ "shape":"SshPublicKeyId", @@ -2525,8 +4125,7 @@ }, "SshPublicKeyBody":{ "type":"string", - "max":2048, - "pattern":"^ssh-rsa\\s+[A-Za-z0-9+/]+[=]{0,3}(\\s+.+)?\\s*$" + "max":2048 }, "SshPublicKeyCount":{"type":"integer"}, "SshPublicKeyId":{ @@ -2540,6 +4139,33 @@ "member":{"shape":"SshPublicKey"}, "max":5 }, + "StartFileTransferRequest":{ + "type":"structure", + "required":[ + "ConnectorId", + "SendFilePaths" + ], + "members":{ + "ConnectorId":{ + "shape":"ConnectorId", + "documentation":"

The unique identifier for the connector.

" + }, + "SendFilePaths":{ + "shape":"FilePaths", + "documentation":"

An array of strings. Each string represents the absolute path for one outbound file transfer. For example, DOC-EXAMPLE-BUCKET/myfile.txt .

" + } + } + }, + "StartFileTransferResponse":{ + "type":"structure", + "required":["TransferId"], + "members":{ + "TransferId":{ + "shape":"TransferId", + "documentation":"

Returns the unique identifier for this file transfer.

" + } + } + }, "StartServerRequest":{ "type":"structure", "required":["ServerId"], @@ -2714,7 +4340,7 @@ "members":{ "RetryAfterSeconds":{"shape":"RetryAfterSeconds"} }, - "documentation":"

The request was denied due to request throttling.

HTTP Status Code: 400

", + "documentation":"

The request was denied due to request throttling.

", "exception":true }, "TlsSessionResumptionMode":{ @@ -2725,6 +4351,12 @@ "ENFORCED" ] }, + "TransferId":{ + "type":"string", + "max":512, + "min":1, + "pattern":"^[0-9a-zA-Z./-]+$" + }, "UntagResourceRequest":{ "type":"structure", "required":[ @@ -2755,20 +4387,20 @@ }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", - "documentation":"

The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.

" + "documentation":"

The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or Amazon EFS paths visible to your users.

" }, "HomeDirectoryMappings":{ "shape":"HomeDirectoryMappings", - "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL.

The following is an Entry and Target pair example.

[ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

In most cases, you can use this value instead of the session policy to lock down your user to the designated home directory (\"chroot\"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value.

The following is an Entry and Target pair example for chroot.

[ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

" + "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) role provides access to paths in Target. This value can be set only when HomeDirectoryType is set to LOGICAL.

The following is an Entry and Target pair example.

[ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

In most cases, you can use this value instead of the session policy to lock down your user to the designated home directory (\"chroot\"). To do this, you can set Entry to / and set Target to the HomeDirectory parameter value.

The following is an Entry and Target pair example for chroot.

[ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

" }, "Policy":{ "shape":"Policy", - "documentation":"

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

This only applies when the domain of ServerId is S3. EFS does not use session policies.

For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

For an example of a session policy, see Example session policy.

For more information, see AssumeRole in the Amazon Web ServicesSecurity Token Service API Reference.

" + "documentation":"

A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

For session policies, Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

For an example of a session policy, see Example session policy.

For more information, see AssumeRole in the Amazon Web ServicesSecurity Token Service API Reference.

" }, "PosixProfile":{"shape":"PosixProfile"}, "Role":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" }, "ServerId":{ "shape":"ServerId", @@ -2776,7 +4408,7 @@ }, "ExternalId":{ "shape":"ExternalId", - "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" + "documentation":"

A unique identifier that is required to identify specific groups within your directory. The users of the group that you associate have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Transfer Family. If you know the group name, you can view the SID values by running the following command using Windows PowerShell.

Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid

In that command, replace YourGroupName with the name of your Active Directory group.

The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. You can also include underscores or any of the following characters: =,.@:/-

" } } }, @@ -2789,11 +4421,193 @@ "members":{ "ServerId":{ "shape":"ServerId", - "documentation":"

The ID of the server that the user is attached to.

" + "documentation":"

The identifier of the server that the user is attached to.

" }, "ExternalId":{ "shape":"ExternalId", - "documentation":"

The external ID of the group whose users have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web ServicesTransfer Family.

" + "documentation":"

The external identifier of the group whose users have access to your Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon Web ServicesTransfer Family.

" + } + } + }, + "UpdateAgreementRequest":{ + "type":"structure", + "required":[ + "AgreementId", + "ServerId" + ], + "members":{ + "AgreementId":{ + "shape":"AgreementId", + "documentation":"

A unique identifier for the agreement. This identifier is returned when you create an agreement.

" + }, + "ServerId":{ + "shape":"ServerId", + "documentation":"

A system-assigned unique identifier for a server instance. This is the specific server that the agreement uses.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

To replace the existing description, provide a short description for the agreement.

" + }, + "Status":{ + "shape":"AgreementStatusType", + "documentation":"

You can update the status for the agreement, either activating an inactive agreement or the reverse.

" + }, + "LocalProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the AS2 local profile.

To change the local profile identifier, provide a new value here.

" + }, + "PartnerProfileId":{ + "shape":"ProfileId", + "documentation":"

A unique identifier for the partner profile. To change the partner profile identifier, provide a new value here.

" + }, + "BaseDirectory":{ + "shape":"HomeDirectory", + "documentation":"

To change the landing directory (folder) for files that are transferred, provide the bucket folder that you want to use; for example, /DOC-EXAMPLE-BUCKET/home/mydirectory .

" + }, + "AccessRole":{ + "shape":"Role", + "documentation":"

With AS2, you can send files by calling StartFileTransfer and specifying the file paths in the request parameter, SendFilePaths. We use the file’s parent directory (for example, for --send-file-paths /bucket/dir/file.txt, parent directory is /bucket/dir/) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the AccessRole needs to provide read and write access to the parent directory of the file location used in the StartFileTransfer request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with StartFileTransfer.

" + } + } + }, + "UpdateAgreementResponse":{ + "type":"structure", + "required":["AgreementId"], + "members":{ + "AgreementId":{ + "shape":"AgreementId", + "documentation":"

A unique identifier for the agreement. This identifier is returned when you create an agreement.

" + } + } + }, + "UpdateCertificateRequest":{ + "type":"structure", + "required":["CertificateId"], + "members":{ + "CertificateId":{ + "shape":"CertificateId", + "documentation":"

The identifier of the certificate object that you are updating.

" + }, + "ActiveDate":{ + "shape":"CertDate", + "documentation":"

An optional date that specifies when the certificate becomes active.

" + }, + "InactiveDate":{ + "shape":"CertDate", + "documentation":"

An optional date that specifies when the certificate becomes inactive.

" + }, + "Description":{ + "shape":"Description", + "documentation":"

A short description to help identify the certificate.

" + } + } + }, + "UpdateCertificateResponse":{ + "type":"structure", + "required":["CertificateId"], + "members":{ + "CertificateId":{ + "shape":"CertificateId", + "documentation":"

Returns the identifier of the certificate object that you are updating.

" + } + } + }, + "UpdateConnectorRequest":{ + "type":"structure", + "required":["ConnectorId"], + "members":{ + "ConnectorId":{ + "shape":"ConnectorId", + "documentation":"

The unique identifier for the connector.

" + }, + "Url":{ + "shape":"Url", + "documentation":"

The URL of the partner's AS2 endpoint.

" + }, + "As2Config":{ + "shape":"As2ConnectorConfig", + "documentation":"

A structure that contains the parameters for a connector object.

" + }, + "AccessRole":{ + "shape":"Role", + "documentation":"

With AS2, you can send files by calling StartFileTransfer and specifying the file paths in the request parameter, SendFilePaths. We use the file’s parent directory (for example, for --send-file-paths /bucket/dir/file.txt, parent directory is /bucket/dir/) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the AccessRole needs to provide read and write access to the parent directory of the file location used in the StartFileTransfer request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with StartFileTransfer.

" + }, + "LoggingRole":{ + "shape":"Role", + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn on CloudWatch logging for Amazon S3 events. When set, you can view connector activity in your CloudWatch logs.

" + } + } + }, + "UpdateConnectorResponse":{ + "type":"structure", + "required":["ConnectorId"], + "members":{ + "ConnectorId":{ + "shape":"ConnectorId", + "documentation":"

Returns the identifier of the connector object that you are updating.

" + } + } + }, + "UpdateHostKeyRequest":{ + "type":"structure", + "required":[ + "ServerId", + "HostKeyId", + "Description" + ], + "members":{ + "ServerId":{ + "shape":"ServerId", + "documentation":"

The identifier of the server that contains the host key that you are updating.

" + }, + "HostKeyId":{ + "shape":"HostKeyId", + "documentation":"

The identifier of the host key that you are updating.

" + }, + "Description":{ + "shape":"HostKeyDescription", + "documentation":"

An updated description for the host key.

" + } + } + }, + "UpdateHostKeyResponse":{ + "type":"structure", + "required":[ + "ServerId", + "HostKeyId" + ], + "members":{ + "ServerId":{ + "shape":"ServerId", + "documentation":"

Returns the server identifier for the server that contains the updated host key.

" + }, + "HostKeyId":{ + "shape":"HostKeyId", + "documentation":"

Returns the host key identifier for the updated host key.

" + } + } + }, + "UpdateProfileRequest":{ + "type":"structure", + "required":["ProfileId"], + "members":{ + "ProfileId":{ + "shape":"ProfileId", + "documentation":"

The identifier of the profile object that you are updating.

" + }, + "CertificateIds":{ + "shape":"CertificateIds", + "documentation":"

An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

" + } + } + }, + "UpdateProfileResponse":{ + "type":"structure", + "required":["ProfileId"], + "members":{ + "ProfileId":{ + "shape":"ProfileId", + "documentation":"

Returns the identifier for the profile that's being updated.

" } } }, @@ -2807,11 +4621,11 @@ }, "ProtocolDetails":{ "shape":"ProtocolDetails", - "documentation":"

The protocol settings that are configured for your server.

  • Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols). Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.

  • Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket. Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client. Note that with SetStatOption set to ENABLE_NO_OP, Transfer generates a log entry to CloudWatch Logs, so you can determine when the client is making a SETSTAT call.

  • Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server resumes recent, negotiated sessions through a unique session ID.

" + "documentation":"

The protocol settings that are configured for your server.

  • To indicate passive mode (for FTP and FTPS protocols), use the PassiveIp parameter. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.

  • To ignore the error that is generated when the client attempts to use the SETSTAT command on a file that you are uploading to an Amazon S3 bucket, use the SetStatOption parameter. To have the Transfer Family server ignore the SETSTAT command and upload files without needing to make any changes to your SFTP client, set the value to ENABLE_NO_OP. If you set the SetStatOption parameter to ENABLE_NO_OP, Transfer Family generates a log entry to Amazon CloudWatch Logs, so that you can determine when the client is making a SETSTAT call.

  • To determine whether your Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the TlsSessionResumptionMode parameter.

  • As2Transports indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

" }, "EndpointDetails":{ "shape":"EndpointDetails", - "documentation":"

The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make it accessible only to resources within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.

" + "documentation":"

The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make your endpoint accessible only to resources within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.

" }, "EndpointType":{ "shape":"EndpointType", @@ -2819,7 +4633,7 @@ }, "HostKey":{ "shape":"HostKey", - "documentation":"

The RSA private key as generated by ssh-keygen -N \"\" -m PEM -f my-new-server-key.

If you aren't planning to migrate existing users from an existing server to a new server, don't update the host key. Accidentally changing a server's host key can be disruptive.

For more information, see Change the host key for your SFTP-enabled server in the Amazon Web ServicesTransfer Family User Guide.

" + "documentation":"

The RSA, ECDSA, or ED25519 private key to use for your SFTP-enabled server. You can add multiple host keys, in case you want to rotate keys, or have a set of active keys that use different algorithms.

Use the following command to generate an RSA 2048 bit key with no passphrase:

ssh-keygen -t rsa -b 2048 -N \"\" -m PEM -f my-new-server-key.

Use a minimum value of 2048 for the -b option. You can create a stronger key by using 3072 or 4096.

Use the following command to generate an ECDSA 256 bit key with no passphrase:

ssh-keygen -t ecdsa -b 256 -N \"\" -m PEM -f my-new-server-key.

Valid values for the -b option for ECDSA are 256, 384, and 521.

Use the following command to generate an ED25519 key with no passphrase:

ssh-keygen -t ed25519 -N \"\" -f my-new-server-key.

For all of these commands, you can replace my-new-server-key with a string of your choice.

If you aren't planning to migrate existing users from an existing SFTP-enabled server to a new server, don't update the host key. Accidentally changing a server's host key can be disruptive.

For more information, see Update host keys for your SFTP-enabled server in the Transfer Family User Guide.

" }, "IdentityProviderDetails":{ "shape":"IdentityProviderDetails", @@ -2827,19 +4641,19 @@ }, "LoggingRole":{ "shape":"NullableRole", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in your CloudWatch logs.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in your CloudWatch logs.

" }, "PostAuthenticationLoginBanner":{ "shape":"PostAuthenticationLoginBanner", - "documentation":"

Specify a string to display when users connect to a server. This string is displayed after the user authenticates.

The SFTP protocol does not support post-authentication display banners.

" + "documentation":"

Specifies a string to display when users connect to a server. This string is displayed after the user authenticates.

The SFTP protocol does not support post-authentication display banners.

" }, "PreAuthenticationLoginBanner":{ "shape":"PreAuthenticationLoginBanner", - "documentation":"

Specify a string to display when users connect to a server. This string is displayed before the user authenticates. For example, the following banner displays details about using the system.

This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.

" + "documentation":"

Specifies a string to display when users connect to a server. This string is displayed before the user authenticates. For example, the following banner displays details about using the system:

This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.

" }, "Protocols":{ "shape":"Protocols", - "documentation":"

Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

  • Secure Shell (SSH) File Transfer Protocol (SFTP): File transfer over SSH

  • File Transfer Protocol Secure (FTPS): File transfer with TLS encryption

  • File Transfer Protocol (FTP): Unencrypted file transfer

If you select FTPS, you must choose a certificate stored in Amazon Web ServicesCertificate Manager (ACM) which will be used to identify your server when clients connect to it over FTPS.

If Protocol includes either FTP or FTPS, then the EndpointType must be VPC and the IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

If Protocol includes FTP, then AddressAllocationIds cannot be associated.

If Protocol is set only to SFTP, the EndpointType can be set to PUBLIC and the IdentityProviderType can be set to SERVICE_MANAGED.

" + "documentation":"

Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

  • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH

  • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption

  • FTP (File Transfer Protocol): Unencrypted file transfer

  • AS2 (Applicability Statement 2): used for transporting structured business-to-business data

  • If you select FTPS, you must choose a certificate stored in Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS.

  • If Protocol includes either FTP or FTPS, then the EndpointType must be VPC and the IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

  • If Protocol includes FTP, then AddressAllocationIds cannot be associated.

  • If Protocol is set only to SFTP, the EndpointType can be set to PUBLIC and the IdentityProviderType can be set to SERVICE_MANAGED.

  • If Protocol includes AS2, then the EndpointType must be VPC, and domain must be Amazon S3.

" }, "SecurityPolicyName":{ "shape":"SecurityPolicyName", @@ -2851,7 +4665,7 @@ }, "WorkflowDetails":{ "shape":"WorkflowDetails", - "documentation":"

Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

To remove an associated workflow from a server, you can provide an empty OnUpload object, as in the following example.

aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{\"OnUpload\":[]}'

" + "documentation":"

Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

To remove an associated workflow from a server, you can provide an empty OnUpload object, as in the following example.

aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{\"OnUpload\":[]}'

" } } }, @@ -2878,15 +4692,15 @@ }, "HomeDirectoryType":{ "shape":"HomeDirectoryType", - "documentation":"

The type of landing directory (folder) you want your users' home directory to be when they log into the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths visible to your users.

" + "documentation":"

The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon S3 or Amazon EFS paths visible to your users.

" }, "HomeDirectoryMappings":{ "shape":"HomeDirectoryMappings", - "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity and Access Management (IAM) role provides access to paths in Target. This value can only be set when HomeDirectoryType is set to LOGICAL.

The following is an Entry and Target pair example.

[ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

In most cases, you can use this value instead of the session policy to lock down your user to the designated home directory (\"chroot\"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.

The following is an Entry and Target pair example for chroot.

[ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

" + "documentation":"

Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the Entry and Target pair, where Entry shows how the path is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) role provides access to paths in Target. This value can be set only when HomeDirectoryType is set to LOGICAL.

The following is an Entry and Target pair example.

[ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

In most cases, you can use this value instead of the session policy to lock down your user to the designated home directory (\"chroot\"). To do this, you can set Entry to '/' and set Target to the HomeDirectory parameter value.

The following is an Entry and Target pair example for chroot.

[ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]

" }, "Policy":{ "shape":"Policy", - "documentation":"

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

This only applies when the domain of ServerId is S3. EFS does not use session policies.

For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

For an example of a session policy, see Creating a session policy.

For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.

" + "documentation":"

A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

For session policies, Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the Policy argument.

For an example of a session policy, see Creating a session policy.

For more information, see AssumeRole in the Amazon Web Services Security Token Service API Reference.

" }, "PosixProfile":{ "shape":"PosixProfile", @@ -2894,7 +4708,7 @@ }, "Role":{ "shape":"Role", - "documentation":"

Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" + "documentation":"

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.

" }, "ServerId":{ "shape":"ServerId", @@ -2990,15 +4804,18 @@ "documentation":"

Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources

" } }, - "documentation":"

Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

" + "documentation":"

Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

" }, "WorkflowDetails":{ "type":"structure", - "required":["OnUpload"], "members":{ "OnUpload":{ "shape":"OnUploadWorkflowDetails", "documentation":"

A trigger that starts a workflow: the workflow begins to execute after a file is uploaded.

To remove an associated workflow from a server, you can provide an empty OnUpload object, as in the following example.

aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{\"OnUpload\":[]}'

" + }, + "OnPartialUpload":{ + "shape":"OnPartialUploadWorkflowDetails", + "documentation":"

A trigger that starts a workflow if a file is only partially uploaded. You can attach a workflow to a server that executes whenever there is a partial upload.

A partial upload occurs when a file is open when the session disconnects.

" } }, "documentation":"

Container for the WorkflowDetail data type. It is used by actions that trigger a workflow to begin execution.

" @@ -3014,7 +4831,7 @@ "members":{ "Type":{ "shape":"WorkflowStepType", - "documentation":"

Currently, the following step types are supported.

  • COPY: copy the file to another location

  • CUSTOM: custom step with a lambda target

  • DELETE: delete the file

  • TAG: add a tag to the file

" + "documentation":"

Currently, the following step types are supported.

  • COPY: Copy the file to another location.

  • CUSTOM: Perform a custom step with an Lambda function target.

  • DELETE: Delete the file.

  • TAG: Add a tag to the file.

" }, "CopyStepDetails":{ "shape":"CopyStepDetails", @@ -3055,5 +4872,5 @@ "max":8 } }, - "documentation":"

Amazon Web Services Transfer Family is a fully managed service that enables the transfer of files over the File Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) File Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon S3). Amazon Web Services helps you seamlessly migrate your file transfer workflows to Amazon Web Services Transfer Family by integrating with existing authentication systems, and providing DNS routing with Amazon Route 53 so nothing changes for your customers and partners, or their applications. With your data in Amazon S3, you can use it with Amazon Web Services services for processing, analytics, machine learning, and archiving. Getting started with Amazon Web Services Transfer Family is easy since there is no infrastructure to buy and set up.

" + "documentation":"

Transfer Family is a fully managed service that enables the transfer of files over the File Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) File Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon S3) or Amazon EFS. Additionally, you can use Applicability Statement 2 (AS2) to transfer files into and out of Amazon S3. Amazon Web Services helps you seamlessly migrate your file transfer workflows to Transfer Family by integrating with existing authentication systems, and providing DNS routing with Amazon Route 53 so nothing changes for your customers and partners, or their applications. With your data in Amazon S3, you can use it with Amazon Web Services for processing, analytics, machine learning, and archiving. Getting started with Transfer Family is easy since there is no infrastructure to buy and set up.

" } diff --git a/botocore/data/translate/2017-07-01/endpoint-rule-set-1.json b/botocore/data/translate/2017-07-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..446c861d --- /dev/null +++ b/botocore/data/translate/2017-07-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://translate-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://translate-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://translate.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://translate.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/translate/2017-07-01/service-2.json b/botocore/data/translate/2017-07-01/service-2.json index 7e2d80c5..bf8b72ac 100644 --- a/botocore/data/translate/2017-07-01/service-2.json +++ b/botocore/data/translate/2017-07-01/service-2.json @@ -26,7 +26,9 @@ {"shape":"InvalidRequestException"}, {"shape":"LimitExceededException"}, {"shape":"TooManyRequestsException"}, + {"shape":"TooManyTagsException"}, {"shape":"ConflictException"}, + {"shape":"ConcurrentModificationException"}, {"shape":"InternalServerException"} ], "documentation":"

Creates a parallel data resource in Amazon Translate by importing an input file from Amazon S3. Parallel data files contain examples that show how you want segments of text to be translated. By adding parallel data, you can influence the style, tone, and word choice in your translation output.

" @@ -121,9 +123,27 @@ {"shape":"InvalidParameterValueException"}, {"shape":"LimitExceededException"}, {"shape":"TooManyRequestsException"}, + {"shape":"TooManyTagsException"}, + {"shape":"ConcurrentModificationException"}, {"shape":"InternalServerException"} ], - "documentation":"

Creates or updates a custom terminology, depending on whether or not one already exists for the given terminology name. Importing a terminology with the same name as an existing one will merge the terminologies based on the chosen merge strategy. Currently, the only supported merge strategy is OVERWRITE, and so the imported terminology will overwrite an existing terminology of the same name.

If you import a terminology that overwrites an existing one, the new terminology take up to 10 minutes to fully propagate and be available for use in a translation due to cache policies with the DataPlane service that performs the translations.

" + "documentation":"

Creates or updates a custom terminology, depending on whether one already exists for the given terminology name. Importing a terminology with the same name as an existing one will merge the terminologies based on the chosen merge strategy. The only supported merge strategy is OVERWRITE, where the imported terminology overwrites the existing terminology of the same name.

If you import a terminology that overwrites an existing one, the new terminology takes up to 10 minutes to fully propagate. After that, translations have access to the new terminology.

" + }, + "ListLanguages":{ + "name":"ListLanguages", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListLanguagesRequest"}, + "output":{"shape":"ListLanguagesResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"UnsupportedDisplayLanguageCodeException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Provides a list of languages (RFC-5646 codes and names) that Amazon Translate supports.

" }, "ListParallelData":{ "name":"ListParallelData", @@ -140,6 +160,21 @@ ], "documentation":"

Provides a list of your parallel data resources in Amazon Translate.

" }, + "ListTagsForResource":{ + "name":"ListTagsForResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListTagsForResourceRequest"}, + "output":{"shape":"ListTagsForResourceResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Lists all tags associated with a given Amazon Translate resource. For more information, see Tagging your resources.

" + }, "ListTerminologies":{ "name":"ListTerminologies", "http":{ @@ -187,7 +222,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"InternalServerException"} ], - "documentation":"

Starts an asynchronous batch translation job. Batch translation jobs can be used to translate large volumes of text across multiple documents at once. For more information, see async.

Batch translation jobs can be described with the DescribeTextTranslationJob operation, listed with the ListTextTranslationJobs operation, and stopped with the StopTextTranslationJob operation.

Amazon Translate does not support batch translation of multiple source languages at once.

" + "documentation":"

Starts an asynchronous batch translation job. Use batch translation jobs to translate large volumes of text across multiple documents at once. For batch translation, the input documents must share the same source language. You can specify one or more target languages. Batch translation translates each input document into each of the target languages. For more information, see Asynchronous batch processing

Batch translation jobs can be described with the DescribeTextTranslationJob operation, listed with the ListTextTranslationJobs operation, and stopped with the StopTextTranslationJob operation.

Amazon Translate does not support batch translation of multiple source languages at once.

" }, "StopTextTranslationJob":{ "name":"StopTextTranslationJob", @@ -204,6 +239,23 @@ ], "documentation":"

Stops an asynchronous batch translation job that is in progress.

If the job's state is IN_PROGRESS, the job will be marked for termination and put into the STOP_REQUESTED state. If the job completes before it can be stopped, it is put into the COMPLETED state. Otherwise, the job is put into the STOPPED state.

Asynchronous batch translation jobs are started with the StartTextTranslationJob operation. You can use the DescribeTextTranslationJob or ListTextTranslationJobs operations to get a batch translation job's JobId.

" }, + "TagResource":{ + "name":"TagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TagResourceRequest"}, + "output":{"shape":"TagResourceResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyTagsException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Associates a specific tag with a resource. A tag is a key-value pair that adds as a metadata to a resource. For more information, see Tagging your resources.

" + }, "TranslateText":{ "name":"TranslateText", "http":{ @@ -222,7 +274,23 @@ {"shape":"InternalServerException"}, {"shape":"ServiceUnavailableException"} ], - "documentation":"

Translates input text from the source language to the target language. For a list of available languages and language codes, see what-is-languages.

" + "documentation":"

Translates input text from the source language to the target language. For a list of available languages and language codes, see Supported languages.

" + }, + "UntagResource":{ + "name":"UntagResource", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UntagResourceRequest"}, + "output":{"shape":"UntagResourceResponse"}, + "errors":[ + {"shape":"InvalidParameterValueException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

Removes a specific tag associated with an Amazon Translate resource. For more information, see Tagging your resources.

" }, "UpdateParallelData":{ "name":"UpdateParallelData", @@ -322,6 +390,10 @@ "shape":"ClientTokenString", "documentation":"

A unique identifier for the request. This token is automatically generated when you use Amazon Translate through an AWS SDK.

", "idempotencyToken":true + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Tags to be associated with this resource. A tag is a key-value pair that adds metadata to a resource. Each tag key for the resource must be unique. For more information, see Tagging your resources.

" } } }, @@ -414,6 +486,21 @@ "MULTI" ] }, + "DisplayLanguageCode":{ + "type":"string", + "enum":[ + "de", + "en", + "es", + "fr", + "it", + "ja", + "ko", + "pt", + "zh", + "zh-TW" + ] + }, "EncryptionKey":{ "type":"structure", "required":[ @@ -468,15 +555,15 @@ }, "DataLocation":{ "shape":"ParallelDataDataLocation", - "documentation":"

The Amazon S3 location of the most recent parallel data input file that was successfully imported into Amazon Translate. The location is returned as a presigned URL that has a 30 minute expiration.

Amazon Translate doesn't scan all input files for the risk of CSV injection attacks.

CSV injection occurs when a .csv or .tsv file is altered so that a record contains malicious code. The record begins with a special character, such as =, +, -, or @. When the file is opened in a spreadsheet program, the program might interpret the record as a formula and run the code within it.

Before you download an input file from Amazon S3, ensure that you recognize the file and trust its creator.

" + "documentation":"

The Amazon S3 location of the most recent parallel data input file that was successfully imported into Amazon Translate. The location is returned as a presigned URL that has a 30-minute expiration.

Amazon Translate doesn't scan all input files for the risk of CSV injection attacks.

CSV injection occurs when a .csv or .tsv file is altered so that a record contains malicious code. The record begins with a special character, such as =, +, -, or @. When the file is opened in a spreadsheet program, the program might interpret the record as a formula and run the code within it.

Before you download an input file from Amazon S3, ensure that you recognize the file and trust its creator.

" }, "AuxiliaryDataLocation":{ "shape":"ParallelDataDataLocation", - "documentation":"

The Amazon S3 location of a file that provides any errors or warnings that were produced by your input file. This file was created when Amazon Translate attempted to create a parallel data resource. The location is returned as a presigned URL to that has a 30 minute expiration.

" + "documentation":"

The Amazon S3 location of a file that provides any errors or warnings that were produced by your input file. This file was created when Amazon Translate attempted to create a parallel data resource. The location is returned as a presigned URL to that has a 30-minute expiration.

" }, "LatestUpdateAttemptAuxiliaryDataLocation":{ "shape":"ParallelDataDataLocation", - "documentation":"

The Amazon S3 location of a file that provides any errors or warnings that were produced by your input file. This file was created when Amazon Translate attempted to update a parallel data resource. The location is returned as a presigned URL to that has a 30 minute expiration.

" + "documentation":"

The Amazon S3 location of a file that provides any errors or warnings that were produced by your input file. This file was created when Amazon Translate attempted to update a parallel data resource. The location is returned as a presigned URL to that has a 30-minute expiration.

" } } }, @@ -490,7 +577,7 @@ }, "TerminologyDataFormat":{ "shape":"TerminologyDataFormat", - "documentation":"

The data format of the custom terminology being retrieved.

If you don't specify this parameter, Amazon Translate returns a file that has the same format as the file that was imported to create the terminology.

If you specify this parameter when you retrieve a multi-directional terminology resource, you must specify the same format as that of the input file that was imported to create it. Otherwise, Amazon Translate throws an error.

" + "documentation":"

The data format of the custom terminology being retrieved.

If you don't specify this parameter, Amazon Translate returns a file with the same format as the file that was imported to create the terminology.

If you specify this parameter when you retrieve a multi-directional terminology resource, you must specify the same format as the input file that was imported to create it. Otherwise, Amazon Translate throws an error.

" } } }, @@ -503,11 +590,11 @@ }, "TerminologyDataLocation":{ "shape":"TerminologyDataLocation", - "documentation":"

The Amazon S3 location of the most recent custom terminology input file that was successfully imported into Amazon Translate. The location is returned as a presigned URL that has a 30 minute expiration.

Amazon Translate doesn't scan all input files for the risk of CSV injection attacks.

CSV injection occurs when a .csv or .tsv file is altered so that a record contains malicious code. The record begins with a special character, such as =, +, -, or @. When the file is opened in a spreadsheet program, the program might interpret the record as a formula and run the code within it.

Before you download an input file from Amazon S3, ensure that you recognize the file and trust its creator.

" + "documentation":"

The Amazon S3 location of the most recent custom terminology input file that was successfully imported into Amazon Translate. The location is returned as a presigned URL that has a 30-minute expiration.

Amazon Translate doesn't scan all input files for the risk of CSV injection attacks.

CSV injection occurs when a .csv or .tsv file is altered so that a record contains malicious code. The record begins with a special character, such as =, +, -, or @. When the file is opened in a spreadsheet program, the program might interpret the record as a formula and run the code within it.

Before you download an input file from Amazon S3, ensure that you recognize the file and trust its creator.

" }, "AuxiliaryDataLocation":{ "shape":"TerminologyDataLocation", - "documentation":"

The Amazon S3 location of a file that provides any errors or warnings that were produced by your input file. This file was created when Amazon Translate attempted to create a terminology resource. The location is returned as a presigned URL to that has a 30 minute expiration.

" + "documentation":"

The Amazon S3 location of a file that provides any errors or warnings that were produced by your input file. This file was created when Amazon Translate attempted to create a terminology resource. The location is returned as a presigned URL to that has a 30-minute expiration.

" } } }, @@ -544,6 +631,10 @@ "EncryptionKey":{ "shape":"EncryptionKey", "documentation":"

The encryption key for the custom terminology being imported.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Tags to be associated with this resource. A tag is a key-value pair that adds metadata to a resource. Each tag key for the resource must be unique. For more information, see Tagging your resources.

" } } }, @@ -569,7 +660,7 @@ "members":{ "S3Uri":{ "shape":"S3Uri", - "documentation":"

The URI of the AWS S3 folder that contains the input file. The folder must be in the same Region as the API endpoint you are calling.

" + "documentation":"

The URI of the AWS S3 folder that contains the input files. Amazon Translate translates all the files in the folder. The folder must be in the same Region as the API endpoint you are calling.

The URI can also point to a single input document, or it can provide the prefix for a collection of input documents. For example. if you use the URI S3://bucketName/prefix and the prefix is a single file, Amazon Translate uses that files as input. If more than one file begins with the prefix, Amazon Translate uses all of them as input.

" }, "ContentType":{ "shape":"ContentType", @@ -593,7 +684,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

The filter specified for the operation is invalid. Specify a different filter.

", + "documentation":"

The filter specified for the operation is not valid. Specify a different filter.

", "exception":true }, "InvalidParameterValueException":{ @@ -601,7 +692,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

The value of the parameter is invalid. Review the value of the parameter you are using to correct it, and then retry your operation.

", + "documentation":"

The value of the parameter is not valid. Review the value of the parameter you are using to correct it, and then retry your operation.

", "exception":true }, "InvalidRequestException":{ @@ -609,7 +700,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

The request that you made is invalid. Check your request to determine why it's invalid and then retry the request.

", + "documentation":"

The request that you made is not valid. Check your request to determine why it's not valid and then retry the request.

", "exception":true }, "JobDetails":{ @@ -654,6 +745,24 @@ "STOPPED" ] }, + "Language":{ + "type":"structure", + "required":[ + "LanguageName", + "LanguageCode" + ], + "members":{ + "LanguageName":{ + "shape":"LocalizedNameString", + "documentation":"

Language name of the supported language.

" + }, + "LanguageCode":{ + "shape":"LanguageCodeString", + "documentation":"

Language code for the supported language.

" + } + }, + "documentation":"

A supported language.

" + }, "LanguageCodeString":{ "type":"string", "max":5, @@ -663,6 +772,10 @@ "type":"list", "member":{"shape":"LanguageCodeString"} }, + "LanguagesList":{ + "type":"list", + "member":{"shape":"Language"} + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -671,6 +784,40 @@ "documentation":"

The specified limit has been exceeded. Review your request and retry it with a quantity below the stated limit.

", "exception":true }, + "ListLanguagesRequest":{ + "type":"structure", + "members":{ + "DisplayLanguageCode":{ + "shape":"DisplayLanguageCode", + "documentation":"

The language code for the language to use to display the language names in the response. The language code is en by default.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

Include the NextToken value to fetch the next group of supported languages.

" + }, + "MaxResults":{ + "shape":"MaxResultsInteger", + "documentation":"

The maximum number of results to return in each response.

" + } + } + }, + "ListLanguagesResponse":{ + "type":"structure", + "members":{ + "Languages":{ + "shape":"LanguagesList", + "documentation":"

The list of supported languages.

" + }, + "DisplayLanguageCode":{ + "shape":"DisplayLanguageCode", + "documentation":"

The language code passed in with the request.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

If the response does not include all remaining results, use the NextToken in the next request to fetch the next group of supported languages.

" + } + } + }, "ListParallelDataRequest":{ "type":"structure", "members":{ @@ -697,6 +844,25 @@ } } }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the given Amazon Translate resource you are querying.

" + } + } + }, + "ListTagsForResourceResponse":{ + "type":"structure", + "members":{ + "Tags":{ + "shape":"TagList", + "documentation":"

Tags associated with the Amazon Translate resource being queried. A tag is a key-value pair that adds as a metadata to a resource used by Amazon Translate. For example, a tag with \"Sales\" as the key might be added to a resource to indicate its use by the sales department.

" + } + } + }, "ListTerminologiesRequest":{ "type":"structure", "members":{ @@ -753,6 +919,11 @@ } } }, + "LocalizedNameString":{ + "type":"string", + "max":256, + "min":1 + }, "Long":{"type":"long"}, "MaxResultsInteger":{ "type":"integer", @@ -816,7 +987,7 @@ }, "Location":{ "shape":"String", - "documentation":"

The Amazon S3 location of the parallel data input file. The location is returned as a presigned URL to that has a 30 minute expiration.

Amazon Translate doesn't scan all input files for the risk of CSV injection attacks.

CSV injection occurs when a .csv or .tsv file is altered so that a record contains malicious code. The record begins with a special character, such as =, +, -, or @. When the file is opened in a spreadsheet program, the program might interpret the record as a formula and run the code within it.

Before you download an input file from Amazon S3, ensure that you recognize the file and trust its creator.

" + "documentation":"

The Amazon S3 location of the parallel data input file. The location is returned as a presigned URL to that has a 30-minute expiration.

Amazon Translate doesn't scan all input files for the risk of CSV injection attacks.

CSV injection occurs when a .csv or .tsv file is altered so that a record contains malicious code. The record begins with a special character, such as =, +, -, or @. When the file is opened in a spreadsheet program, the program might interpret the record as a formula and run the code within it.

Before you download an input file from Amazon S3, ensure that you recognize the file and trust its creator.

" } }, "documentation":"

The location of the most recent parallel data input file that was successfully imported into Amazon Translate.

" @@ -918,6 +1089,11 @@ "type":"string", "enum":["MASK"] }, + "ResourceArn":{ + "type":"string", + "max":512, + "min":1 + }, "ResourceName":{ "type":"string", "max":256, @@ -946,7 +1122,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

The Amazon Translate service is temporarily unavailable. Please wait a bit and then retry your request.

", + "documentation":"

The Amazon Translate service is temporarily unavailable. Wait a bit and then retry your request.

", "exception":true, "fault":true }, @@ -967,7 +1143,7 @@ }, "InputDataConfig":{ "shape":"InputDataConfig", - "documentation":"

Specifies the format and S3 location of the input documents for the translation job.

" + "documentation":"

Specifies the format and location of the input documents for the translation job.

" }, "OutputDataConfig":{ "shape":"OutputDataConfig", @@ -975,32 +1151,32 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The Amazon Resource Name (ARN) of an AWS Identity Access and Management (IAM) role that grants Amazon Translate read access to your input data. For more information, see identity-and-access-management.

" + "documentation":"

The Amazon Resource Name (ARN) of an AWS Identity Access and Management (IAM) role that grants Amazon Translate read access to your input data. For more information, see Identity and access management .

" }, "SourceLanguageCode":{ "shape":"LanguageCodeString", - "documentation":"

The language code of the input language. For a list of language codes, see what-is-languages.

Amazon Translate does not automatically detect a source language during batch translation jobs.

" + "documentation":"

The language code of the input language. For a list of language codes, see Supported languages.

Amazon Translate does not automatically detect a source language during batch translation jobs.

" }, "TargetLanguageCodes":{ "shape":"TargetLanguageCodeStringList", - "documentation":"

The language code of the output language.

" + "documentation":"

The target languages of the translation job. Enter up to 10 language codes. Each input file is translated into each target language.

Each language code is two or five characters long. For a list of language codes, see Supported languages.

" }, "TerminologyNames":{ "shape":"ResourceNameList", - "documentation":"

The name of a custom terminology resource to add to the translation job. This resource lists examples source terms and the desired translation for each term.

This parameter accepts only one custom terminology resource.

For a list of available custom terminology resources, use the ListTerminologies operation.

For more information, see how-custom-terminology.

" + "documentation":"

The name of a custom terminology resource to add to the translation job. This resource lists examples source terms and the desired translation for each term.

This parameter accepts only one custom terminology resource.

If you specify multiple target languages for the job, translate uses the designated terminology for each requested target language that has an entry for the source term in the terminology file.

For a list of available custom terminology resources, use the ListTerminologies operation.

For more information, see Custom terminology.

" }, "ParallelDataNames":{ "shape":"ResourceNameList", - "documentation":"

The name of a parallel data resource to add to the translation job. This resource consists of examples that show how you want segments of text to be translated. When you add parallel data to a translation job, you create an Active Custom Translation job.

This parameter accepts only one parallel data resource.

Active Custom Translation jobs are priced at a higher rate than other jobs that don't use parallel data. For more information, see Amazon Translate pricing.

For a list of available parallel data resources, use the ListParallelData operation.

For more information, see customizing-translations-parallel-data.

" + "documentation":"

The name of a parallel data resource to add to the translation job. This resource consists of examples that show how you want segments of text to be translated. If you specify multiple target languages for the job, the parallel data file must include translations for all the target languages.

When you add parallel data to a translation job, you create an Active Custom Translation job.

This parameter accepts only one parallel data resource.

Active Custom Translation jobs are priced at a higher rate than other jobs that don't use parallel data. For more information, see Amazon Translate pricing.

For a list of available parallel data resources, use the ListParallelData operation.

For more information, see Customizing your translations with parallel data.

" }, "ClientToken":{ "shape":"ClientTokenString", - "documentation":"

A unique identifier for the request. This token is auto-generated when using the Amazon Translate SDK.

", + "documentation":"

A unique identifier for the request. This token is generated for you when using the Amazon Translate SDK.

", "idempotencyToken":true }, "Settings":{ "shape":"TranslationSettings", - "documentation":"

Settings to configure your translation output, including the option to mask profane words and phrases.

" + "documentation":"

Settings to configure your translation output, including the option to set the formality level of the output text and the option to mask profane words and phrases.

" } } }, @@ -1045,10 +1221,71 @@ "max":10000, "pattern":"[\\P{M}\\p{M}]{0,10000}" }, + "Tag":{ + "type":"structure", + "required":[ + "Key", + "Value" + ], + "members":{ + "Key":{ + "shape":"TagKey", + "documentation":"

The initial part of a key-value pair that forms a tag associated with a given resource.

" + }, + "Value":{ + "shape":"TagValue", + "documentation":"

The second part of a key-value pair that forms a tag associated with a given resource.

" + } + }, + "documentation":"

A key-value pair that adds as a metadata to a resource used by Amazon Translate.

" + }, + "TagKey":{ + "type":"string", + "max":128, + "min":1 + }, + "TagKeyList":{ + "type":"list", + "member":{"shape":"TagKey"}, + "max":200, + "min":0 + }, + "TagList":{ + "type":"list", + "member":{"shape":"Tag"}, + "max":200, + "min":0 + }, + "TagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "Tags" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the given Amazon Translate resource to which you want to associate the tags.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

Tags being associated with a specific Amazon Translate resource. There can be a maximum of 50 tags (both existing and pending) associated with a specific resource.

" + } + } + }, + "TagResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0 + }, "TargetLanguageCodeStringList":{ "type":"list", "member":{"shape":"LanguageCodeString"}, - "max":1, "min":1 }, "Term":{ @@ -1091,10 +1328,10 @@ }, "Directionality":{ "shape":"Directionality", - "documentation":"

The directionality of your terminology resource indicates whether it has one source language (uni-directional) or multiple (multi-directional).

UNI

The terminology resource has one source language (for example, the first column in a CSV file), and all of its other languages are target languages.

MULTI

Any language in the terminology resource can be the source language or a target language. A single multi-directional terminology resource can be used for jobs that translate different language pairs. For example, if the terminology contains terms in English and Spanish, then it can be used for jobs that translate English to Spanish and jobs that translate Spanish to English.

When you create a custom terminology resource without specifying the directionality, it behaves as uni-directional terminology, although this parameter will have a null value.

" + "documentation":"

The directionality of your terminology resource indicates whether it has one source language (uni-directional) or multiple (multi-directional).

UNI

The terminology resource has one source language (for example, the first column in a CSV file), and all of its other languages are target languages.

MULTI

Any language in the terminology resource can be the source language or a target language. A single multi-directional terminology resource can be used for jobs that translate different language pairs. For example, if the terminology contains English and Spanish terms, it can be used for jobs that translate English to Spanish and Spanish to English.

When you create a custom terminology resource without specifying the directionality, it behaves as uni-directional terminology, although this parameter will have a null value.

" } }, - "documentation":"

The data associated with the custom terminology.

" + "documentation":"

The data associated with the custom terminology. For information about the custom terminology file, see Creating a Custom Terminology.

" }, "TerminologyDataFormat":{ "type":"string", @@ -1117,7 +1354,7 @@ }, "Location":{ "shape":"String", - "documentation":"

The Amazon S3 location of the most recent custom terminology input file that was successfully imported into Amazon Translate. The location is returned as a presigned URL that has a 30 minute expiration.

Amazon Translate doesn't scan all input files for the risk of CSV injection attacks.

CSV injection occurs when a .csv or .tsv file is altered so that a record contains malicious code. The record begins with a special character, such as =, +, -, or @. When the file is opened in a spreadsheet program, the program might interpret the record as a formula and run the code within it.

Before you download an input file from Amazon S3, ensure that you recognize the file and trust its creator.

" + "documentation":"

The Amazon S3 location of the most recent custom terminology input file that was successfully imported into Amazon Translate. The location is returned as a presigned URL that has a 30-minute expiration .

Amazon Translate doesn't scan all input files for the risk of CSV injection attacks.

CSV injection occurs when a .csv or .tsv file is altered so that a record contains malicious code. The record begins with a special character, such as =, +, -, or @. When the file is opened in a spreadsheet program, the program might interpret the record as a formula and run the code within it.

Before you download an input file from Amazon S3, ensure that you recognize the file and trust its creator.

" } }, "documentation":"

The location of the custom terminology data.

" @@ -1302,6 +1539,15 @@ "documentation":"

You have made too many requests within a short period of time. Wait for a short time and then try your request again.

", "exception":true }, + "TooManyTagsException":{ + "type":"structure", + "members":{ + "message":{"shape":"String"}, + "ResourceArn":{"shape":"ResourceArn"} + }, + "documentation":"

You have added too many tags to this resource. The maximum is 50 tags.

", + "exception":true + }, "TranslateTextRequest":{ "type":"structure", "required":[ @@ -1320,7 +1566,7 @@ }, "SourceLanguageCode":{ "shape":"LanguageCodeString", - "documentation":"

The language code for the language of the source text. The language must be a language supported by Amazon Translate. For a list of language codes, see what-is-languages.

To have Amazon Translate determine the source language of your text, you can specify auto in the SourceLanguageCode field. If you specify auto, Amazon Translate will call Amazon Comprehend to determine the source language.

" + "documentation":"

The language code for the language of the source text. The language must be a language supported by Amazon Translate. For a list of language codes, see Supported languages.

To have Amazon Translate determine the source language of your text, you can specify auto in the SourceLanguageCode field. If you specify auto, Amazon Translate will call Amazon Comprehend to determine the source language.

If you specify auto, you must send the TranslateText request in a region that supports Amazon Comprehend. Otherwise, the request returns an error indicating that autodetect is not supported.

" }, "TargetLanguageCode":{ "shape":"LanguageCodeString", @@ -1328,7 +1574,7 @@ }, "Settings":{ "shape":"TranslationSettings", - "documentation":"

Settings to configure your translation output, including the option to mask profane words and phrases.

" + "documentation":"

Settings to configure your translation output, including the option to set the formality level of the output text and the option to mask profane words and phrases.

" } } }, @@ -1365,15 +1611,30 @@ "TranslationSettings":{ "type":"structure", "members":{ - "Formality":{"shape":"Formality"}, + "Formality":{ + "shape":"Formality", + "documentation":"

You can optionally specify the desired level of formality for translations to supported target languages. The formality setting controls the level of formal language usage (also known as register) in the translation output. You can set the value to informal or formal. If you don't specify a value for formality, or if the target language doesn't support formality, the translation will ignore the formality setting.

If you specify multiple target languages for the job, translate ignores the formality setting for any unsupported target language.

For a list of target languages that support formality, see Setting Formality in the Amazon Translate Developer Guide.

" + }, "Profanity":{ "shape":"Profanity", - "documentation":"

Enable the profanity setting if you want Amazon Translate to mask profane words and phrases in your translation output.

To mask profane words and phrases, Amazon Translate replaces them with the grawlix string “?$#@$“. This 5-character sequence is used for each profane word or phrase, regardless of the length or number of words.

Amazon Translate does not detect profanity in all of its supported languages. For languages that support profanity detection, see Supported Languages and Language Codes in the Amazon Translate Developer Guide.

" + "documentation":"

Enable the profanity setting if you want Amazon Translate to mask profane words and phrases in your translation output.

To mask profane words and phrases, Amazon Translate replaces them with the grawlix string “?$#@$“. This 5-character sequence is used for each profane word or phrase, regardless of the length or number of words.

Amazon Translate doesn't detect profanity in all of its supported languages. For languages that support profanity detection, see Masking profanity in the Amazon Translate Developer Guide.

If you specify multiple target languages for the job, all the target languages must support profanity masking. If any of the target languages don't support profanity masking, the translation job won't mask profanity for any target language.

" } }, - "documentation":"

Settings that configure the translation output.

" + "documentation":"

Optional settings that configure the translation output. Use these settings for real time translations and asynchronous translation jobs.

" }, "UnboundedLengthString":{"type":"string"}, + "UnsupportedDisplayLanguageCodeException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "DisplayLanguageCode":{ + "shape":"LanguageCodeString", + "documentation":"

Language code passed in with the request.

" + } + }, + "documentation":"

Requested display language code is not supported.

", + "exception":true + }, "UnsupportedLanguagePairException":{ "type":"structure", "members":{ @@ -1387,9 +1648,31 @@ "documentation":"

The language code for the language of the translated text.

" } }, - "documentation":"

Amazon Translate does not support translation from the language of the source text into the requested target language. For more information, see how-to-error-msg.

", + "documentation":"

Amazon Translate does not support translation from the language of the source text into the requested target language. For more information, see Error messages.

", "exception":true }, + "UntagResourceRequest":{ + "type":"structure", + "required":[ + "ResourceArn", + "TagKeys" + ], + "members":{ + "ResourceArn":{ + "shape":"ResourceArn", + "documentation":"

The Amazon Resource Name (ARN) of the given Amazon Translate resource from which you want to remove the tags.

" + }, + "TagKeys":{ + "shape":"TagKeyList", + "documentation":"

The initial part of a key-value pair that forms a tag being removed from a given resource. Keys must be unique and cannot be duplicated for a particular resource.

" + } + } + }, + "UntagResourceResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateParallelDataRequest":{ "type":"structure", "required":[ @@ -1439,5 +1722,5 @@ } } }, - "documentation":"

Provides translation between one source language and another of the same set of languages.

" + "documentation":"

Provides language translation for input text in the source language to the specified target language.

" } diff --git a/botocore/data/voice-id/2021-09-27/endpoint-rule-set-1.json b/botocore/data/voice-id/2021-09-27/endpoint-rule-set-1.json new file mode 100644 index 00000000..05df81da --- /dev/null +++ b/botocore/data/voice-id/2021-09-27/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voiceid-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voiceid-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://voiceid.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://voiceid.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/voice-id/2021-09-27/examples-1.json b/botocore/data/voice-id/2021-09-27/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/voice-id/2021-09-27/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/voice-id/2021-09-27/service-2.json b/botocore/data/voice-id/2021-09-27/service-2.json index 67a207e3..f93a1b62 100644 --- a/botocore/data/voice-id/2021-09-27/service-2.json +++ b/botocore/data/voice-id/2021-09-27/service-2.json @@ -48,7 +48,8 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Deletes the specified domain from the Amazon Connect Voice ID system.

" + "documentation":"

Deletes the specified domain from Voice ID.

", + "idempotent":true }, "DeleteFraudster":{ "name":"DeleteFraudster", @@ -60,11 +61,12 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Deletes the specified fraudster from the Amazon Connect Voice ID system.

" + "documentation":"

Deletes the specified fraudster from Voice ID.

" }, "DeleteSpeaker":{ "name":"DeleteSpeaker", @@ -81,7 +83,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Deletes the specified speaker from the Amazon Connect Voice ID system.

" + "documentation":"

Deletes the specified speaker from Voice ID.

" }, "DescribeDomain":{ "name":"DescribeDomain", @@ -179,6 +181,7 @@ "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, + {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} @@ -278,6 +281,7 @@ "input":{"shape":"OptOutSpeakerRequest"}, "output":{"shape":"OptOutSpeakerResponse"}, "errors":[ + {"shape":"ServiceQuotaExceededException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ValidationException"}, {"shape":"ConflictException"}, @@ -285,7 +289,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Opts out a speaker from Voice ID system. A speaker can be opted out regardless of whether or not they already exist in the system. If they don't yet exist, a new speaker is created in an opted out state. If they already exist, their existing status is overridden and they are opted out. Enrollment and evaluation authentication requests are rejected for opted out speakers, and opted out speakers have no voice embeddings stored in the system.

" + "documentation":"

Opts out a speaker from Voice ID. A speaker can be opted out regardless of whether or not they already exist in Voice ID. If they don't yet exist, a new speaker is created in an opted out state. If they already exist, their existing status is overridden and they are opted out. Enrollment and evaluation authentication requests are rejected for opted out speakers, and opted out speakers have no voice embeddings stored in Voice ID.

" }, "StartFraudsterRegistrationJob":{ "name":"StartFraudsterRegistrationJob", @@ -343,7 +347,7 @@ {"shape":"ThrottlingException"}, {"shape":"AccessDeniedException"} ], - "documentation":"

Tags an Amazon Connect Voice ID resource with the provided list of tags.

" + "documentation":"

Tags a Voice ID resource with the provided list of tags.

" }, "UntagResource":{ "name":"UntagResource", @@ -489,7 +493,8 @@ "ENROLLMENT_ALREADY_EXISTS", "SPEAKER_NOT_SET", "SPEAKER_OPTED_OUT", - "CONCURRENT_CHANGES" + "CONCURRENT_CHANGES", + "DOMAIN_LOCKED_FROM_ENCRYPTION_UPDATES" ] }, "CreateDomainRequest":{ @@ -506,7 +511,7 @@ }, "Description":{ "shape":"Description", - "documentation":"

A brief description of this domain.

" + "documentation":"

A brief description of the domain.

" }, "Name":{ "shape":"DomainName", @@ -514,7 +519,7 @@ }, "ServerSideEncryptionConfiguration":{ "shape":"ServerSideEncryptionConfiguration", - "documentation":"

The configuration, containing the KMS Key Identifier, to be used by Voice ID for the server-side encryption of your data. Refer to Amazon Connect VoiceID encryption at rest for more details on how the KMS Key is used.

" + "documentation":"

The configuration, containing the KMS key identifier, to be used by Voice ID for the server-side encryption of your data. Refer to Amazon Connect Voice ID encryption at rest for more details on how the KMS key is used.

" }, "Tags":{ "shape":"TagList", @@ -741,7 +746,11 @@ }, "ServerSideEncryptionConfiguration":{ "shape":"ServerSideEncryptionConfiguration", - "documentation":"

The server-side encryption configuration containing the KMS Key Identifier you want Voice ID to use to encrypt your data.

" + "documentation":"

The server-side encryption configuration containing the KMS key identifier you want Voice ID to use to encrypt your data.

" + }, + "ServerSideEncryptionUpdateDetails":{ + "shape":"ServerSideEncryptionUpdateDetails", + "documentation":"

Details about the most recent server-side encryption configuration update. When the server-side encryption configuration is changed, dependency on the old KMS key is removed through an asynchronous process. When this update is complete, the domain's data can only be accessed using the new KMS key.

" }, "UpdatedAt":{ "shape":"Timestamp", @@ -804,7 +813,11 @@ }, "ServerSideEncryptionConfiguration":{ "shape":"ServerSideEncryptionConfiguration", - "documentation":"

The server-side encryption configuration containing the KMS Key Identifier you want Voice ID to use to encrypt your data..

" + "documentation":"

The server-side encryption configuration containing the KMS key identifier you want Voice ID to use to encrypt your data.

" + }, + "ServerSideEncryptionUpdateDetails":{ + "shape":"ServerSideEncryptionUpdateDetails", + "documentation":"

Details about the most recent server-side encryption configuration update. When the server-side encryption configuration is changed, dependency on the old KMS key is removed through an asynchronous process. When this update is complete, the domain's data can only be accessed using the new KMS key.

" }, "UpdatedAt":{ "shape":"Timestamp", @@ -890,7 +903,7 @@ }, "StreamingStatus":{ "shape":"StreamingStatus", - "documentation":"

The current status of audio streaming for this session. This field is useful to infer next steps when the Authentication or Fraud Detection results are empty or the decision is NOT_ENOUGH_SPEECH. In this situation, if the StreamingStatus is ONGOING/PENDING_CONFIGURATION, it can mean that the client should call the API again later, once Voice ID has enough audio to produce a result. If the decision remains NOT_ENOUGH_SPEECH even after StreamingStatus is ENDED, it means that the previously streamed session did not have enough speech to perform evaluation, and a new streaming session is needed to try again.

" + "documentation":"

The current status of audio streaming for this session. This field is useful to infer next steps when the Authentication or Fraud Detection results are empty or the decision is NOT_ENOUGH_SPEECH. In this situation, if the StreamingStatus is ONGOING/PENDING_CONFIGURATION, it can mean that the client should call the API again later, after Voice ID has enough audio to produce a result. If the decision remains NOT_ENOUGH_SPEECH even after StreamingStatus is ENDED, it means that the previously streamed session did not have enough speech to perform evaluation, and a new streaming session is needed to try again.

" } } }, @@ -943,7 +956,10 @@ }, "FraudDetectionReason":{ "type":"string", - "enum":["KNOWN_FRAUDSTER"] + "enum":[ + "KNOWN_FRAUDSTER", + "VOICE_SPOOFING" + ] }, "FraudDetectionReasons":{ "type":"list", @@ -976,22 +992,29 @@ }, "Reasons":{ "shape":"FraudDetectionReasons", - "documentation":"

The reason speaker was flagged by the fraud detection system. This is only be populated if fraud detection Decision is HIGH_RISK, and only has one possible value: KNOWN_FRAUDSTER.

" + "documentation":"

The reason speaker was flagged by the fraud detection system. This is only be populated if fraud detection Decision is HIGH_RISK, and the following possible values: KNOWN_FRAUDSTER and VOICE_SPOOFING.

" }, "RiskDetails":{ "shape":"FraudRiskDetails", - "documentation":"

Details about each risk analyzed for this speaker.

" + "documentation":"

Details about each risk analyzed for this speaker. Currently, this contains KnownFraudsterRisk and VoiceSpoofingRisk details.

" } }, "documentation":"

The fraud detection result produced by Voice ID, processed against the current session state and streamed audio of the speaker.

" }, "FraudRiskDetails":{ "type":"structure", - "required":["KnownFraudsterRisk"], + "required":[ + "KnownFraudsterRisk", + "VoiceSpoofingRisk" + ], "members":{ "KnownFraudsterRisk":{ "shape":"KnownFraudsterRisk", "documentation":"

The details resulting from 'Known Fraudster Risk' analysis of the speaker.

" + }, + "VoiceSpoofingRisk":{ + "shape":"VoiceSpoofingRisk", + "documentation":"

The details resulting from 'Voice Spoofing Risk' analysis of the speaker.

" } }, "documentation":"

Details regarding various fraud risk analyses performed against the current session state and streamed audio of the speaker.

" @@ -1054,7 +1077,7 @@ }, "JobName":{ "shape":"JobName", - "documentation":"

The client-provied name for the fraudster registration job.

" + "documentation":"

The client-provided name for the fraudster registration job.

" }, "JobProgress":{ "shape":"JobProgress", @@ -1066,7 +1089,7 @@ }, "OutputDataConfig":{ "shape":"OutputDataConfig", - "documentation":"

The output data config containing the S3 location where you want Voice ID to write your job output file; you must also include a KMS Key ID in order to encrypt the file.

" + "documentation":"

The output data config containing the S3 location where you want Voice ID to write your job output file; you must also include a KMS key ID in order to encrypt the file.

" }, "RegistrationConfig":{ "shape":"RegistrationConfig", @@ -1114,7 +1137,7 @@ }, "JobName":{ "shape":"JobName", - "documentation":"

The client-provied name for the fraudster registration job.

" + "documentation":"

The client-provided name for the fraudster registration job.

" }, "JobProgress":{ "shape":"JobProgress", @@ -1217,7 +1240,7 @@ "members":{ "MaxResults":{ "shape":"MaxResultsForListDomainFe", - "documentation":"

The maximum number of results that are returned per call. You can use NextToken to obtain further pages of results. The default is 100; the maximum allowed page size is also 100.

" + "documentation":"

The maximum number of domains to list per API call.

" }, "NextToken":{ "shape":"NextToken", @@ -1408,11 +1431,11 @@ "members":{ "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

the identifier of the KMS key you want Voice ID to use to encrypt the output file of the fraudster registration job.

" + "documentation":"

The identifier of the KMS key you want Voice ID to use to encrypt the output file of a speaker enrollment job/fraudster registration job.

" }, "S3Uri":{ "shape":"S3Uri", - "documentation":"

The S3 path of the folder to which Voice ID writes the job output file, which has a *.out extension. For example, if the input file name is input-file.json and the output folder path is s3://output-bucket/output-folder, the full output file path is s3://output-bucket/output-folder/job-Id/input-file.json.out.

" + "documentation":"

The S3 path of the folder where Voice ID writes the job output file. It has a *.out extension. For example, if the input file name is input-file.json and the output folder path is s3://output-bucket/output-folder, the full output file path is s3://output-bucket/output-folder/job-Id/input-file.json.out.

" } }, "documentation":"

The configuration containing output file information for a batch job.

" @@ -1429,7 +1452,7 @@ "documentation":"

The minimum similarity score between the new and old fraudsters in order to consider the new fraudster a duplicate.

" } }, - "documentation":"

The configuration definining the action to take when a duplicate fraudster is detected, and the similarity threshold to use for detecting a duplicate fraudster during a batch fraudster registration job.

" + "documentation":"

The configuration defining the action to take when a duplicate fraudster is detected, and the similarity threshold to use for detecting a duplicate fraudster during a batch fraudster registration job.

" }, "ResourceNotFoundException":{ "type":"structure", @@ -1472,10 +1495,36 @@ "members":{ "KmsKeyId":{ "shape":"KmsKeyId", - "documentation":"

The identifier of the KMS Key you want Voice ID to use to encrypt your data.

" + "documentation":"

The identifier of the KMS key to use to encrypt data stored by Voice ID. Voice ID doesn't support asymmetric customer managed keys.

" } }, - "documentation":"

The configuration containing information about the customer-managed KMS Key used for encrypting customer data.

" + "documentation":"

The configuration containing information about the customer managed key used for encrypting customer data.

" + }, + "ServerSideEncryptionUpdateDetails":{ + "type":"structure", + "members":{ + "Message":{ + "shape":"String", + "documentation":"

Message explaining the current UpdateStatus. When the UpdateStatus is FAILED, this message explains the cause of the failure.

" + }, + "OldKmsKeyId":{ + "shape":"KmsKeyId", + "documentation":"

The previous KMS key ID the domain was encrypted with, before ServerSideEncryptionConfiguration was updated to a new KMS key ID.

" + }, + "UpdateStatus":{ + "shape":"ServerSideEncryptionUpdateStatus", + "documentation":"

Status of the server-side encryption update. During an update, if there is an issue with the domain's current or old KMS key ID, such as an inaccessible or disabled key, then the status is FAILED. In order to resolve this, the key needs to be made accessible, and then an UpdateDomain call with the existing server-side encryption configuration will re-attempt this update process.

" + } + }, + "documentation":"

Details about the most recent server-side encryption configuration update. When the server-side encryption configuration is changed, dependency on the old KMS key is removed through an asynchronous process. When this update is complete, the domain’s data can only be accessed using the new KMS key.

" + }, + "ServerSideEncryptionUpdateStatus":{ + "type":"string", + "enum":[ + "IN_PROGRESS", + "COMPLETED", + "FAILED" + ] }, "ServiceQuotaExceededException":{ "type":"structure", @@ -1586,7 +1635,7 @@ }, "OutputDataConfig":{ "shape":"OutputDataConfig", - "documentation":"

The output data config containing the S3 location where Voice ID writes the job output file; you must also include a KMS Key ID to encrypt the file.

" + "documentation":"

The output data config containing the S3 location where Voice ID writes the job output file; you must also include a KMS key ID to encrypt the file.

" } }, "documentation":"

Contains all the information about a speaker enrollment job.

" @@ -1729,11 +1778,11 @@ }, "OutputDataConfig":{ "shape":"OutputDataConfig", - "documentation":"

The output data config containing the S3 location where Voice ID writes the job output file; you must also include a KMS Key ID to encrypt the file.

" + "documentation":"

The output data config containing the S3 location where Voice ID writes the job output file; you must also include a KMS key ID to encrypt the file.

" }, "RegistrationConfig":{ "shape":"RegistrationConfig", - "documentation":"

The registration config containing details such as the action to take when a duplicate fraudster is detected, and the similarity threshold to use for detecting a duplicate fraudster.

" + "documentation":"

The registration config containing details such as the action to take when a duplicate fraudster is detected, and the similarity threshold to use for detecting a duplicate fraudster.

" } } }, @@ -1762,7 +1811,7 @@ }, "DataAccessRoleArn":{ "shape":"IamRoleArn", - "documentation":"

The IAM role Amazon Resource Name (ARN) that grants Voice ID permissions to access customer's buckets to read the input manifest file and write the job output file. Refer to Batch enrollment using audio data from prior calls documentation for the permissions needed in this role.

" + "documentation":"

The IAM role Amazon Resource Name (ARN) that grants Voice ID permissions to access customer's buckets to read the input manifest file and write the job output file. Refer to Batch enrollment using audio data from prior calls for the permissions needed in this role.

" }, "DomainId":{ "shape":"DomainId", @@ -1770,7 +1819,7 @@ }, "EnrollmentConfig":{ "shape":"EnrollmentConfig", - "documentation":"

The enrollment config that contains details such as the action to take when a speaker is already enrolled in the Voice ID system or when a speaker is identified as a fraudster.

" + "documentation":"

The enrollment config that contains details such as the action to take when a speaker is already enrolled in Voice ID or when a speaker is identified as a fraudster.

" }, "InputDataConfig":{ "shape":"InputDataConfig", @@ -1782,7 +1831,7 @@ }, "OutputDataConfig":{ "shape":"OutputDataConfig", - "documentation":"

The output data config containing the S3 location where Voice ID writes the job output file; you must also include a KMS Key ID to encrypt the file.

" + "documentation":"

The output data config containing the S3 location where Voice ID writes the job output file; you must also include a KMS key ID to encrypt the file.

" } } }, @@ -1816,14 +1865,14 @@ "members":{ "Key":{ "shape":"TagKey", - "documentation":"

The first part of a key:value pair that forms a tag associated with a given resource. For example, in the tag ‘Department’:’Sales’, the key is 'Department'.

" + "documentation":"

The first part of a key:value pair that forms a tag associated with a given resource. For example, in the tag 'Department':'Sales', the key is 'Department'.

" }, "Value":{ "shape":"TagValue", - "documentation":"

The second part of a key:value pair that forms a tag associated with a given resource. For example, in the tag ‘Department’:’Sales’, the value is 'Sales'.

" + "documentation":"

The second part of a key:value pair that forms a tag associated with a given resource. For example, in the tag 'Department':'Sales', the value is 'Sales'.

" } }, - "documentation":"

A tag that can be assigned to a Voice ID resource.

" + "documentation":"

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" }, "TagKey":{ "type":"string", @@ -1920,7 +1969,7 @@ "members":{ "Description":{ "shape":"Description", - "documentation":"

A brief description about this domain.

" + "documentation":"

A brief description of the domain.

" }, "DomainId":{ "shape":"DomainId", @@ -1932,7 +1981,7 @@ }, "ServerSideEncryptionConfiguration":{ "shape":"ServerSideEncryptionConfiguration", - "documentation":"

The configuration, containing the KMS Key Identifier, to be used by Voice ID for the server-side encryption of your data. Note that all the existing data in the domain are still encrypted using the existing key, only the data added to domain after updating the key is encrypted using the new key.

" + "documentation":"

The configuration, containing the KMS key identifier, to be used by Voice ID for the server-side encryption of your data. Changing the domain's associated KMS key immediately triggers an asynchronous process to remove dependency on the old KMS key, such that the domain's data can only be accessed using the new KMS key. The domain's ServerSideEncryptionUpdateDetails contains the details for this process.

" } } }, @@ -1952,6 +2001,17 @@ }, "documentation":"

The request failed one or more validations; check the error message for more details.

", "exception":true + }, + "VoiceSpoofingRisk":{ + "type":"structure", + "required":["RiskScore"], + "members":{ + "RiskScore":{ + "shape":"Score", + "documentation":"

The score indicating the likelihood of speaker’s voice being spoofed.

" + } + }, + "documentation":"

The details resulting from 'Voice Spoofing Risk' analysis of the speaker.

" } }, "documentation":"

Amazon Connect Voice ID provides real-time caller authentication and fraud screening. This guide describes the APIs used for this service.

" diff --git a/botocore/data/waf-regional/2016-11-28/endpoint-rule-set-1.json b/botocore/data/waf-regional/2016-11-28/endpoint-rule-set-1.json new file mode 100644 index 00000000..5e693e68 --- /dev/null +++ b/botocore/data/waf-regional/2016-11-28/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://waf-regional-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://waf-regional-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://waf-regional.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://waf-regional.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/waf/2015-08-24/endpoint-rule-set-1.json b/botocore/data/waf/2015-08-24/endpoint-rule-set-1.json new file mode 100644 index 00000000..7c108ce7 --- /dev/null +++ b/botocore/data/waf/2015-08-24/endpoint-rule-set-1.json @@ -0,0 +1,645 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://waf-fips.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "waf", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://waf-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "waf", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://waf.{Region}.api.aws", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "waf", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://waf.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "waf", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://waf-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws" + ] + } + ], + "endpoint": { + "url": "https://waf-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "waf", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://waf-fips.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "waf", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://waf-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://waf.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://waf.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "waf", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://waf.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/wafv2/2019-07-29/endpoint-rule-set-1.json b/botocore/data/wafv2/2019-07-29/endpoint-rule-set-1.json new file mode 100644 index 00000000..2d500acd --- /dev/null +++ b/botocore/data/wafv2/2019-07-29/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wafv2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wafv2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wafv2.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://wafv2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/wafv2/2019-07-29/examples-1.json b/botocore/data/wafv2/2019-07-29/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/wafv2/2019-07-29/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/wafv2/2019-07-29/service-2.json b/botocore/data/wafv2/2019-07-29/service-2.json index c9f0ef08..e707d97b 100644 --- a/botocore/data/wafv2/2019-07-29/service-2.json +++ b/botocore/data/wafv2/2019-07-29/service-2.json @@ -28,7 +28,7 @@ {"shape":"WAFUnavailableEntityException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

Associates a web ACL with a regional application resource, to protect the resource. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To associate a web ACL, in the CloudFront call UpdateDistribution, set the web ACL ID to the Amazon Resource Name (ARN) of the web ACL. For information, see UpdateDistribution.

When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

" + "documentation":"

Associates a web ACL with a regional application resource, to protect the resource. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To associate a web ACL, in the CloudFront call UpdateDistribution, set the web ACL ID to the Amazon Resource Name (ARN) of the web ACL. For information, see UpdateDistribution.

When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

" }, "CheckCapacity":{ "name":"CheckCapacity", @@ -46,7 +46,8 @@ {"shape":"WAFInvalidResourceException"}, {"shape":"WAFUnavailableEntityException"}, {"shape":"WAFSubscriptionNotFoundException"}, - {"shape":"WAFExpiredManagedRuleGroupVersionException"} + {"shape":"WAFExpiredManagedRuleGroupVersionException"}, + {"shape":"WAFInvalidOperationException"} ], "documentation":"

Returns the web ACL capacity unit (WCU) requirements for a specified scope and set of rules. You can use this to check the capacity requirements for the rules you want to use in a RuleGroup or WebACL.

WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.

" }, @@ -134,9 +135,10 @@ {"shape":"WAFTagOperationInternalErrorException"}, {"shape":"WAFSubscriptionNotFoundException"}, {"shape":"WAFInvalidOperationException"}, - {"shape":"WAFConfigurationWarningException"} + {"shape":"WAFConfigurationWarningException"}, + {"shape":"WAFExpiredManagedRuleGroupVersionException"} ], - "documentation":"

Creates a WebACL per the specifications provided.

A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL API.

" + "documentation":"

Creates a WebACL per the specifications provided.

A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, or an Amazon Cognito user pool.

" }, "DeleteFirewallManagerRuleGroups":{ "name":"DeleteFirewallManagerRuleGroups", @@ -299,7 +301,7 @@ {"shape":"WAFNonexistentItemException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

Disassociates the specified regional application resource from any existing web ACL association. A resource can have at most one web ACL association. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To disassociate a web ACL, provide an empty web ACL ID in the CloudFront call UpdateDistribution. For information, see UpdateDistribution.

" + "documentation":"

Disassociates the specified regional application resource from any existing web ACL association. A resource can have at most one web ACL association. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

For Amazon CloudFront, don't use this call. Instead, use your CloudFront distribution configuration. To disassociate a web ACL, provide an empty web ACL ID in the CloudFront call UpdateDistribution. For information, see UpdateDistribution.

" }, "GenerateMobileSdkReleaseUrl":{ "name":"GenerateMobileSdkReleaseUrl", @@ -315,7 +317,7 @@ {"shape":"WAFInvalidParameterException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

Generates a presigned download URL for the specified release of the mobile SDK.

The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage Security Token Service (STS) security tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see WAF client application integration in the WAF Developer Guide.

" + "documentation":"

Generates a presigned download URL for the specified release of the mobile SDK.

The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage WAF tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see WAF client application integration in the WAF Developer Guide.

" }, "GetIPSet":{ "name":"GetIPSet", @@ -379,7 +381,7 @@ {"shape":"WAFInvalidParameterException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

Retrieves information for the specified mobile SDK release, including release notes and tags.

The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage Security Token Service (STS) security tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see WAF client application integration in the WAF Developer Guide.

" + "documentation":"

Retrieves information for the specified mobile SDK release, including release notes and tags.

The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage WAF tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see WAF client application integration in the WAF Developer Guide.

" }, "GetPermissionPolicy":{ "name":"GetPermissionPolicy", @@ -581,7 +583,7 @@ {"shape":"WAFInvalidParameterException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

Retrieves a list of the available releases for the mobile SDK and the specified device platform.

The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage Security Token Service (STS) security tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see WAF client application integration in the WAF Developer Guide.

" + "documentation":"

Retrieves a list of the available releases for the mobile SDK and the specified device platform.

The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage WAF tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see WAF client application integration in the WAF Developer Guide.

" }, "ListRegexPatternSets":{ "name":"ListRegexPatternSets", @@ -786,7 +788,7 @@ {"shape":"WAFOptimisticLockException"}, {"shape":"WAFInvalidOperationException"} ], - "documentation":"

Updates the expiration information for your managed rule set. Use this to initiate the expiration of a managed rule group version. After you initiate expiration for a version, WAF excludes it from the reponse to ListAvailableManagedRuleGroupVersions for the managed rule group.

This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers.

Vendors, you can use the managed rule set APIs to provide controlled rollout of your versioned managed rule group offerings for your customers. The APIs are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and UpdateManagedRuleSetVersionExpiryDate.

" + "documentation":"

Updates the expiration information for your managed rule set. Use this to initiate the expiration of a managed rule group version. After you initiate expiration for a version, WAF excludes it from the response to ListAvailableManagedRuleGroupVersions for the managed rule group.

This is intended for use only by vendors of managed rule sets. Vendors are Amazon Web Services and Amazon Web Services Marketplace sellers.

Vendors, you can use the managed rule set APIs to provide controlled rollout of your versioned managed rule group offerings for your customers. The APIs are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and UpdateManagedRuleSetVersionExpiryDate.

" }, "UpdateRegexPatternSet":{ "name":"UpdateRegexPatternSet", @@ -851,10 +853,21 @@ {"shape":"WAFExpiredManagedRuleGroupVersionException"}, {"shape":"WAFConfigurationWarningException"} ], - "documentation":"

Updates the specified WebACL. While updating a web ACL, WAF provides continous coverage to the resources that you have associated with the web ACL.

When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

This operation completely replaces the mutable specifications that you already have for the web ACL with the ones that you provide to this call. To modify the web ACL, retrieve it by calling GetWebACL, update the settings as needed, and then provide the complete web ACL specification to this call.

A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL API.

" + "documentation":"

Updates the specified WebACL. While updating a web ACL, WAF provides continuous coverage to the resources that you have associated with the web ACL.

When you make changes to web ACLs or web ACL components, like rules and rule groups, WAF propagates the changes everywhere that the web ACL and its components are stored and used. Your changes are applied within seconds, but there might be a brief period of inconsistency when the changes have arrived in some places and not in others. So, for example, if you change a rule action setting, the action might be the old action in one area and the new action in another area. Or if you add an IP address to an IP set used in a blocking rule, the new address might briefly be blocked in one area while still allowed in another. This temporary inconsistency can occur when you first associate a web ACL with an Amazon Web Services resource and when you change a web ACL that is already associated with a resource. Generally, any inconsistencies of this type last only a few seconds.

This operation completely replaces the mutable specifications that you already have for the web ACL with the ones that you provide to this call. To modify the web ACL, retrieve it by calling GetWebACL, update the settings as needed, and then provide the complete web ACL specification to this call.

A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, or an Amazon Cognito user pool.

" } }, "shapes":{ + "AWSManagedRulesBotControlRuleSet":{ + "type":"structure", + "required":["InspectionLevel"], + "members":{ + "InspectionLevel":{ + "shape":"InspectionLevel", + "documentation":"

The inspection level to use for the Bot Control rule group. The common level is the least expensive. The targeted level includes all common level rules and adds rules with more advanced inspection criteria. For details, see WAF Bot Control rule group.

" + } + }, + "documentation":"

Details for your use of the Bot Control managed rule group, used in ManagedRuleGroupConfig.

" + }, "Action":{"type":"string"}, "ActionCondition":{ "type":"structure", @@ -862,7 +875,7 @@ "members":{ "Action":{ "shape":"ActionValue", - "documentation":"

The action setting that a log record must contain in order to meet the condition.

" + "documentation":"

The action setting that a log record must contain in order to meet the condition. This is the action that WAF applied to the web request.

For rule groups, this is either the configured rule action setting, or if you've applied a rule action override to the rule, it's the override action. The value EXCLUDED_AS_COUNT matches on excluded rules and also on rules that have a rule action override of Count.

" } }, "documentation":"

A single action condition for a Condition in a logging filter.

" @@ -874,6 +887,7 @@ "BLOCK", "COUNT", "CAPTCHA", + "CHALLENGE", "EXCLUDED_AS_COUNT" ] }, @@ -923,7 +937,7 @@ }, "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The Amazon Resource Name (ARN) of the resource to associate with the web ACL.

The ARN must be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

  • For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId

" + "documentation":"

The Amazon Resource Name (ARN) of the resource to associate with the web ACL.

The ARN must be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

  • For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId

  • For an Amazon Cognito user pool: arn:aws:cognito-idp:region:account-id:userpool/user-pool-id

" } } }, @@ -950,7 +964,7 @@ "documentation":"

What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service.

The options for oversize handling are the following:

  • CONTINUE - Inspect the body normally, according to the rule inspection criteria.

  • MATCH - Treat the web request as matching the rule statement. WAF applies the rule action to the request.

  • NO_MATCH - Treat the web request as not matching the rule statement.

You can combine the MATCH or NO_MATCH settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over 8 KB.

Default: CONTINUE

" } }, - "documentation":"

Inspect the body of the web request. The body immediately follows the request headers.

This is used to indicate the web request component for WAF to inspect, in the FieldToMatch specification.

" + "documentation":"

Inspect the body of the web request. The body immediately follows the request headers.

This is used to indicate the web request component to inspect, in the FieldToMatch specification.

" }, "BodyParsingFallbackBehavior":{ "type":"string", @@ -976,7 +990,7 @@ }, "FieldToMatch":{ "shape":"FieldToMatch", - "documentation":"

The part of the web request that you want WAF to inspect. For more information, see FieldToMatch.

" + "documentation":"

The part of the web request that you want WAF to inspect.

" }, "TextTransformations":{ "shape":"TextTransformations", @@ -987,7 +1001,7 @@ "documentation":"

The area within the portion of the web request that you want WAF to search for SearchString. Valid values include the following:

CONTAINS

The specified part of the web request must include the value of SearchString, but the location doesn't matter.

CONTAINS_WORD

The specified part of the web request must include the value of SearchString, and SearchString must contain only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In addition, SearchString must be a word, which means that both of the following are true:

  • SearchString is at the beginning of the specified part of the web request or is preceded by a character other than an alphanumeric character or underscore (_). Examples include the value of a header and ;BadBot.

  • SearchString is at the end of the specified part of the web request or is followed by a character other than an alphanumeric character or underscore (_), for example, BadBot; and -BadBot;.

EXACTLY

The value of the specified part of the web request must exactly match the value of SearchString.

STARTS_WITH

The value of SearchString must appear at the beginning of the specified part of the web request.

ENDS_WITH

The value of SearchString must appear at the end of the specified part of the web request.

" } }, - "documentation":"

A rule statement that defines a string match search for WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the WAF console and the developer guide, this is refered to as a string match statement.

" + "documentation":"

A rule statement that defines a string match search for WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the WAF console and the developer guide, this is called a string match statement.

" }, "CapacityUnit":{ "type":"long", @@ -998,17 +1012,17 @@ "members":{ "CustomRequestHandling":{ "shape":"CustomRequestHandling", - "documentation":"

Defines custom handling for the web request.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

" + "documentation":"

Defines custom handling for the web request, used when the CAPTCHA inspection determines that the request's token is valid and unexpired.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

" } }, - "documentation":"

Specifies that WAF should run a CAPTCHA check against the request:

  • If the request includes a valid, unexpired CAPTCHA token, WAF allows the web request inspection to proceed to the next rule, similar to a CountAction.

  • If the request doesn't include a valid, unexpired CAPTCHA token, WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination.

    WAF generates a response that it sends back to the client, which includes the following:

    • The header x-amzn-waf-action with a value of captcha.

    • The HTTP status code 405 Method Not Allowed.

    • If the request contains an Accept header with a value of text/html, the response includes a CAPTCHA challenge.

You can configure the expiration time in the CaptchaConfig ImmunityTimeProperty setting at the rule and web ACL level. The rule setting overrides the web ACL setting.

This action option is available for rules. It isn't available for web ACL default actions.

This is used in the context of other settings, for example to specify values for RuleAction and web ACL DefaultAction.

" + "documentation":"

Specifies that WAF should run a CAPTCHA check against the request:

  • If the request includes a valid, unexpired CAPTCHA token, WAF applies any custom request handling and labels that you've configured and then allows the web request inspection to proceed to the next rule, similar to a CountAction.

  • If the request doesn't include a valid, unexpired token, WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination.

    WAF generates a response that it sends back to the client, which includes the following:

    • The header x-amzn-waf-action with a value of captcha.

    • The HTTP status code 405 Method Not Allowed.

    • If the request contains an Accept header with a value of text/html, the response includes a CAPTCHA JavaScript page interstitial.

You can configure the expiration time in the CaptchaConfig ImmunityTimeProperty setting at the rule and web ACL level. The rule setting overrides the web ACL setting.

This action option is available for rules. It isn't available for web ACL default actions.

" }, "CaptchaConfig":{ "type":"structure", "members":{ "ImmunityTimeProperty":{ "shape":"ImmunityTimeProperty", - "documentation":"

Determines how long a CAPTCHA token remains valid after the client successfully solves a CAPTCHA puzzle.

" + "documentation":"

Determines how long a CAPTCHA timestamp in the token remains valid after the client successfully solves a CAPTCHA puzzle.

" } }, "documentation":"

Specifies how WAF should handle CAPTCHA evaluations. This is available at the web ACL level and in each rule.

" @@ -1022,7 +1036,7 @@ }, "SolveTimestamp":{ "shape":"SolveTimestamp", - "documentation":"

The time that the CAPTCHA puzzle was solved for the supplied token.

" + "documentation":"

The time that the CAPTCHA was last solved for the supplied token.

" }, "FailureReason":{ "shape":"FailureReason", @@ -1031,6 +1045,44 @@ }, "documentation":"

The result from the inspection of the web request for a valid CAPTCHA token.

" }, + "ChallengeAction":{ + "type":"structure", + "members":{ + "CustomRequestHandling":{ + "shape":"CustomRequestHandling", + "documentation":"

Defines custom handling for the web request, used when the challenge inspection determines that the request's token is valid and unexpired.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

" + } + }, + "documentation":"

Specifies that WAF should run a Challenge check against the request to verify that the request is coming from a legitimate client session:

  • If the request includes a valid, unexpired challenge token, WAF applies any custom request handling and labels that you've configured and then allows the web request inspection to proceed to the next rule, similar to a CountAction.

  • If the request doesn't include a valid, unexpired challenge token, WAF discontinues the web ACL evaluation of the request and blocks it from going to its intended destination.

    WAF then generates a challenge response that it sends back to the client, which includes the following:

    • The header x-amzn-waf-action with a value of challenge.

    • The HTTP status code 202 Request Accepted.

    • If the request contains an Accept header with a value of text/html, the response includes a JavaScript page interstitial with a challenge script.

    Challenges run silent browser interrogations in the background, and don't generally affect the end user experience.

    A challenge enforces token acquisition using an interstitial JavaScript challenge that inspects the client session for legitimate behavior. The challenge blocks bots or at least increases the cost of operating sophisticated bots.

    After the client session successfully responds to the challenge, it receives a new token from WAF, which the challenge script uses to resubmit the original request.

You can configure the expiration time in the ChallengeConfig ImmunityTimeProperty setting at the rule and web ACL level. The rule setting overrides the web ACL setting.

This action option is available for rules. It isn't available for web ACL default actions.

" + }, + "ChallengeConfig":{ + "type":"structure", + "members":{ + "ImmunityTimeProperty":{ + "shape":"ImmunityTimeProperty", + "documentation":"

Determines how long a challenge timestamp in the token remains valid after the client successfully responds to a challenge.

" + } + }, + "documentation":"

Specifies how WAF should handle Challenge evaluations. This is available at the web ACL level and in each rule.

" + }, + "ChallengeResponse":{ + "type":"structure", + "members":{ + "ResponseCode":{ + "shape":"ResponseCode", + "documentation":"

The HTTP response code indicating the status of the challenge token in the web request. If the token is missing, invalid, or expired, this code is 202 Request Accepted.

" + }, + "SolveTimestamp":{ + "shape":"SolveTimestamp", + "documentation":"

The time that the challenge was last solved for the supplied token.

" + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

The reason for failure, populated when the evaluation of the token fails.

" + } + }, + "documentation":"

The result from the inspection of the web request for a valid challenge token.

" + }, "CheckCapacityRequest":{ "type":"structure", "required":[ @@ -1040,7 +1092,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Rules":{ "shape":"Rules", @@ -1073,11 +1125,11 @@ "members":{ "ActionCondition":{ "shape":"ActionCondition", - "documentation":"

A single action condition.

" + "documentation":"

A single action condition. This is the action setting that a log record must contain in order to meet the condition.

" }, "LabelNameCondition":{ "shape":"LabelNameCondition", - "documentation":"

A single label name condition.

" + "documentation":"

A single label name condition. This is the fully qualified label name that a log record must contain in order to meet the condition. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label.

" } }, "documentation":"

A single match condition for a Filter.

" @@ -1107,7 +1159,7 @@ "documentation":"

Inspect only the cookies whose keys don't match any of the strings specified here.

" } }, - "documentation":"

The filter to use to identify the subset of cookies to inspect in a web request.

You must specify exactly one setting: either All, IncludedCookies, or ExcludedCookies.

Example JSON: \"CookieMatchPattern\": { \"IncludedCookies\": {\"KeyToInclude1\", \"KeyToInclude2\", \"KeyToInclude3\"} }

" + "documentation":"

The filter to use to identify the subset of cookies to inspect in a web request.

You must specify exactly one setting: either All, IncludedCookies, or ExcludedCookies.

Example JSON: \"MatchPattern\": { \"IncludedCookies\": {\"KeyToInclude1\", \"KeyToInclude2\", \"KeyToInclude3\"} }

" }, "CookieNames":{ "type":"list", @@ -1125,7 +1177,7 @@ "members":{ "MatchPattern":{ "shape":"CookieMatchPattern", - "documentation":"

The filter to use to identify the subset of cookies to inspect in a web request.

You must specify exactly one setting: either All, IncludedCookies, or ExcludedCookies.

Example JSON: \"CookieMatchPattern\": { \"IncludedCookies\": {\"KeyToInclude1\", \"KeyToInclude2\", \"KeyToInclude3\"} }

" + "documentation":"

The filter to use to identify the subset of cookies to inspect in a web request.

You must specify exactly one setting: either All, IncludedCookies, or ExcludedCookies.

Example JSON: \"MatchPattern\": { \"IncludedCookies\": {\"KeyToInclude1\", \"KeyToInclude2\", \"KeyToInclude3\"} }

" }, "MatchScope":{ "shape":"MapMatchScope", @@ -1136,7 +1188,7 @@ "documentation":"

What WAF should do if the cookies of the request are larger than WAF can inspect. WAF does not support inspecting the entire contents of request cookies when they exceed 8 KB (8192 bytes) or 200 total cookies. The underlying host service forwards a maximum of 200 cookies and at most 8 KB of cookie contents to WAF.

The options for oversize handling are the following:

  • CONTINUE - Inspect the cookies normally, according to the rule inspection criteria.

  • MATCH - Treat the web request as matching the rule statement. WAF applies the rule action to the request.

  • NO_MATCH - Treat the web request as not matching the rule statement.

" } }, - "documentation":"

Inspect the cookies in the web request. You can specify the parts of the cookies to inspect and you can narrow the set of cookies to inspect by including or excluding specific keys.

This is used to indicate the web request component for WAF to inspect, in the FieldToMatch specification.

Example JSON: \"Cookies\": { \"MatchPattern\": { \"All\": {} }, \"MatchScope\": \"KEY\", \"OversizeHandling\": \"MATCH\" }

" + "documentation":"

Inspect the cookies in the web request. You can specify the parts of the cookies to inspect and you can narrow the set of cookies to inspect by including or excluding specific keys.

This is used to indicate the web request component to inspect, in the FieldToMatch specification.

Example JSON: \"Cookies\": { \"MatchPattern\": { \"All\": {} }, \"MatchScope\": \"KEY\", \"OversizeHandling\": \"MATCH\" }

" }, "CountAction":{ "type":"structure", @@ -1424,7 +1476,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Description":{ "shape":"EntityDescription", @@ -1436,7 +1488,7 @@ }, "Addresses":{ "shape":"IPAddresses", - "documentation":"

Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses in Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0.

Example address strings:

  • To configure WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify 192.0.2.44/32.

  • To configure WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

  • To configure WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

  • To configure WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

Example JSON Addresses specifications:

  • Empty array: \"Addresses\": []

  • Array with one address: \"Addresses\": [\"192.0.2.44/32\"]

  • Array with three addresses: \"Addresses\": [\"192.0.2.44/32\", \"192.0.2.0/24\", \"192.0.0.0/16\"]

  • INVALID specification: \"Addresses\": [\"\"] INVALID

" + "documentation":"

Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses. All addresses must be specified using Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0.

Example address strings:

  • To configure WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify 192.0.2.44/32.

  • To configure WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

  • To configure WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

  • To configure WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

Example JSON Addresses specifications:

  • Empty array: \"Addresses\": []

  • Array with one address: \"Addresses\": [\"192.0.2.44/32\"]

  • Array with three addresses: \"Addresses\": [\"192.0.2.44/32\", \"192.0.2.0/24\", \"192.0.0.0/16\"]

  • INVALID specification: \"Addresses\": [\"\"] INVALID

" }, "Tags":{ "shape":"TagList", @@ -1467,7 +1519,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Description":{ "shape":"EntityDescription", @@ -1507,7 +1559,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Capacity":{ "shape":"CapacityUnit", @@ -1559,7 +1611,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "DefaultAction":{ "shape":"DefaultAction", @@ -1588,6 +1640,14 @@ "CaptchaConfig":{ "shape":"CaptchaConfig", "documentation":"

Specifies how WAF should handle CAPTCHA evaluations for rules that don't have their own CaptchaConfig settings. If you don't specify this, WAF uses its default settings for CaptchaConfig.

" + }, + "ChallengeConfig":{ + "shape":"ChallengeConfig", + "documentation":"

Specifies how WAF should handle challenge evaluations for rules that don't have their own ChallengeConfig settings. If you don't specify this, WAF uses its default settings for ChallengeConfig.

" + }, + "TokenDomains":{ + "shape":"TokenDomains", + "documentation":"

Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

Example JSON: \"TokenDomains\": { \"mywebsite.com\", \"myotherwebsite.com\" }

" } } }, @@ -1644,7 +1704,7 @@ "documentation":"

The HTTP headers to insert into the request. Duplicate header names are not allowed.

For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide.

" } }, - "documentation":"

Custom request handling behavior that inserts custom headers into a web request. You can add custom request handling for the rule actions allow and count.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

" + "documentation":"

Custom request handling behavior that inserts custom headers into a web request. You can add custom request handling for WAF to use when the rule action doesn't block the request. For example, CaptchaAction for requests with valid t okens, and AllowAction.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide.

" }, "CustomResponse":{ "type":"structure", @@ -1652,7 +1712,7 @@ "members":{ "ResponseCode":{ "shape":"ResponseStatusCode", - "documentation":"

The HTTP status code to return to the client.

For a list of status codes that you can use in your custom reqponses, see Supported status codes for custom response in the WAF Developer Guide.

" + "documentation":"

The HTTP status code to return to the client.

For a list of status codes that you can use in your custom responses, see Supported status codes for custom response in the WAF Developer Guide.

" }, "CustomResponseBodyKey":{ "shape":"EntityName", @@ -1701,7 +1761,7 @@ "documentation":"

Specifies that WAF should allow requests by default.

" } }, - "documentation":"

In a WebACL, this is the action that you want WAF to perform when a web request doesn't match any of the rules in the WebACL. The default action must be a terminating action, so you can't use count.

" + "documentation":"

In a WebACL, this is the action that you want WAF to perform when a web request doesn't match any of the rules in the WebACL. The default action must be a terminating action.

" }, "DeleteFirewallManagerRuleGroupsRequest":{ "type":"structure", @@ -1744,7 +1804,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -1806,7 +1866,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -1838,7 +1898,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -1870,7 +1930,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -1905,7 +1965,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "VersionName":{ "shape":"VersionKeyString", @@ -1952,7 +2012,7 @@ "members":{ "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The Amazon Resource Name (ARN) of the resource to disassociate from the web ACL.

The ARN must be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

  • For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId

" + "documentation":"

The Amazon Resource Name (ARN) of the resource to disassociate from the web ACL.

The ARN must be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

  • For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId

  • For an Amazon Cognito user pool: arn:aws:cognito-idp:region:account-id:userpool/user-pool-id

" } } }, @@ -1991,7 +2051,7 @@ "documentation":"

The name of the rule whose action you want to override to Count.

" } }, - "documentation":"

Specifies a single rule in a rule group whose action you want to override to Count. When you exclude a rule, WAF evaluates it exactly as it would if the rule action setting were Count. This is a useful option for testing the rules in a rule group without modifying how they handle your web traffic.

" + "documentation":"

Specifies a single rule in a rule group whose action you want to override to Count.

Instead of this option, use RuleActionOverrides. It accepts any valid action setting, including Count.

" }, "ExcludedRules":{ "type":"list", @@ -2002,7 +2062,9 @@ "type":"string", "enum":[ "TOKEN_MISSING", - "TOKEN_EXPIRED" + "TOKEN_EXPIRED", + "TOKEN_INVALID", + "TOKEN_DOMAIN_MISMATCH" ] }, "FallbackBehavior":{ @@ -2136,7 +2198,7 @@ }, "OverrideAction":{ "shape":"OverrideAction", - "documentation":"

The action to use in the place of the action that results from the rule group evaluation. Set the override action to none to leave the result of the rule group alone. Set it to count to override the result to count only.

You can only use this for rule statements that reference a rule group, like RuleGroupReferenceStatement and ManagedRuleGroupStatement.

This option is usually set to none. It does not affect how the rules in the rule group are evaluated. If you want the rules in the rule group to only count matches, do not use this and instead exclude those rules in your rule group reference statement settings.

" + "documentation":"

The action to use in the place of the action that results from the rule group evaluation. Set the override action to none to leave the result of the rule group alone. Set it to count to override the result to count only.

You can only use this for rule statements that reference a rule group, like RuleGroupReferenceStatement and ManagedRuleGroupStatement.

This option is usually set to none. It does not affect how the rules in the rule group are evaluated. If you want the rules in the rule group to only count matches, do not use this and instead use the rule action override option, with Count action, in your rule group reference statement settings.

" }, "VisibilityConfig":{ "shape":"VisibilityConfig", @@ -2154,7 +2216,7 @@ "members":{ "ManagedRuleGroupStatement":{ "shape":"ManagedRuleGroupStatement", - "documentation":"

A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.

You cannot nest a ManagedRuleGroupStatement, for example for use inside a NotStatement or OrStatement. It can only be referenced as a top-level statement within a rule.

" + "documentation":"

A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.

You cannot nest a ManagedRuleGroupStatement, for example for use inside a NotStatement or OrStatement. It can only be referenced as a top-level statement within a rule.

You are charged additional fees when you use the WAF Bot Control managed rule group AWSManagedRulesBotControlRuleSet or the WAF Fraud Control account takeover prevention (ATP) managed rule group AWSManagedRulesATPRuleSet. For more information, see WAF Pricing.

" }, "RuleGroupReferenceStatement":{ "shape":"RuleGroupReferenceStatement", @@ -2226,14 +2288,14 @@ "members":{ "CountryCodes":{ "shape":"CountryCodes", - "documentation":"

An array of two-character country codes, for example, [ \"US\", \"CN\" ], from the alpha-2 country ISO codes of the ISO 3166 international standard.

" + "documentation":"

An array of two-character country codes that you want to match against, for example, [ \"US\", \"CN\" ], from the alpha-2 country ISO codes of the ISO 3166 international standard.

When you use a geo match statement just for the region and country labels that it adds to requests, you still have to supply a country code for the rule to evaluate. In this case, you configure the rule to only count matching requests, but it will still generate logging and count metrics for any matches. You can reduce the logging and metrics that the rule produces by specifying a country that's unlikely to be a source of traffic to your site.

" }, "ForwardedIPConfig":{ "shape":"ForwardedIPConfig", "documentation":"

The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.

If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.

" } }, - "documentation":"

A rule statement used to identify web requests based on country of origin.

" + "documentation":"

A rule statement that labels web requests by country and region and that matches against web requests based on country code. A geo match rule labels every request that it inspects regardless of whether it finds a match.

  • To manage requests only by country, you can use this statement by itself and specify the countries that you want to match against in the CountryCodes array.

  • Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed.

WAF labels requests using the alpha-2 country and region codes from the International Organization for Standardization (ISO) 3166 standard. WAF determines the codes using either the IP address in the web request origin or, if you specify it, the address in the geo match ForwardedIPConfig.

If you use the web request origin, the label formats are awswaf:clientip:geo:region:<ISO country code>-<ISO region code> and awswaf:clientip:geo:country:<ISO country code>.

If you use a forwarded IP address, the label formats are awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code> and awswaf:forwardedip:geo:country:<ISO country code>.

For additional details, see Geographic match rule statement in the WAF Developer Guide.

" }, "GetIPSetRequest":{ "type":"structure", @@ -2249,7 +2311,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -2303,7 +2365,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -2380,7 +2442,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "WebACLName":{ "shape":"EntityName", @@ -2427,7 +2489,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -2457,7 +2519,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -2502,7 +2564,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "TimeWindow":{ "shape":"TimeWindow", @@ -2537,7 +2599,7 @@ "members":{ "ResourceArn":{ "shape":"ResourceArn", - "documentation":"

The ARN (Amazon Resource Name) of the resource.

" + "documentation":"

The Amazon Resource Name (ARN) of the resource whose web ACL you want to retrieve.

The ARN must be in one of the following formats:

  • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

  • For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name

  • For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId

  • For an Amazon Cognito user pool: arn:aws:cognito-idp:region:account-id:userpool/user-pool-id

" } } }, @@ -2564,7 +2626,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -2655,7 +2717,7 @@ "documentation":"

Inspect only the headers whose keys don't match any of the strings specified here.

" } }, - "documentation":"

The filter to use to identify the subset of headers to inspect in a web request.

You must specify exactly one setting: either All, IncludedHeaders, or ExcludedHeaders.

Example JSON: \"HeaderMatchPattern\": { \"ExcludedHeaders\": {\"KeyToExclude1\", \"KeyToExclude2\"} }

" + "documentation":"

The filter to use to identify the subset of headers to inspect in a web request.

You must specify exactly one setting: either All, IncludedHeaders, or ExcludedHeaders.

Example JSON: \"MatchPattern\": { \"ExcludedHeaders\": {\"KeyToExclude1\", \"KeyToExclude2\"} }

" }, "HeaderName":{"type":"string"}, "HeaderNames":{ @@ -2675,7 +2737,7 @@ "members":{ "MatchPattern":{ "shape":"HeaderMatchPattern", - "documentation":"

The filter to use to identify the subset of headers to inspect in a web request.

You must specify exactly one setting: either All, IncludedHeaders, or ExcludedHeaders.

Example JSON: \"HeaderMatchPattern\": { \"ExcludedHeaders\": {\"KeyToExclude1\", \"KeyToExclude2\"} }

" + "documentation":"

The filter to use to identify the subset of headers to inspect in a web request.

You must specify exactly one setting: either All, IncludedHeaders, or ExcludedHeaders.

Example JSON: \"MatchPattern\": { \"ExcludedHeaders\": {\"KeyToExclude1\", \"KeyToExclude2\"} }

" }, "MatchScope":{ "shape":"MapMatchScope", @@ -2686,7 +2748,7 @@ "documentation":"

What WAF should do if the headers of the request are larger than WAF can inspect. WAF does not support inspecting the entire contents of request headers when they exceed 8 KB (8192 bytes) or 200 total headers. The underlying host service forwards a maximum of 200 headers and at most 8 KB of header contents to WAF.

The options for oversize handling are the following:

  • CONTINUE - Inspect the headers normally, according to the rule inspection criteria.

  • MATCH - Treat the web request as matching the rule statement. WAF applies the rule action to the request.

  • NO_MATCH - Treat the web request as not matching the rule statement.

" } }, - "documentation":"

Inspect the headers in the web request. You can specify the parts of the headers to inspect and you can narrow the set of headers to inspect by including or excluding specific keys.

This is used to indicate the web request component for WAF to inspect, in the FieldToMatch specification.

Alternately, you can use the SingleHeader FieldToMatch setting to inspect the value of a single header, identified by its key.

Example JSON: \"Headers\": { \"MatchPattern\": { \"All\": {} }, \"MatchScope\": \"KEY\", \"OversizeHandling\": \"MATCH\" }

" + "documentation":"

Inspect all headers in the web request. You can specify the parts of the headers to inspect and you can narrow the set of headers to inspect by including or excluding specific keys.

This is used to indicate the web request component to inspect, in the FieldToMatch specification.

If you want to inspect just the value of a single header, use the SingleHeader FieldToMatch setting instead.

Example JSON: \"Headers\": { \"MatchPattern\": { \"All\": {} }, \"MatchScope\": \"KEY\", \"OversizeHandling\": \"MATCH\" }

" }, "IPAddress":{ "type":"string", @@ -2737,7 +2799,7 @@ }, "Addresses":{ "shape":"IPAddresses", - "documentation":"

Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses in Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0.

Example address strings:

  • To configure WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify 192.0.2.44/32.

  • To configure WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

  • To configure WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

  • To configure WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

Example JSON Addresses specifications:

  • Empty array: \"Addresses\": []

  • Array with one address: \"Addresses\": [\"192.0.2.44/32\"]

  • Array with three addresses: \"Addresses\": [\"192.0.2.44/32\", \"192.0.2.0/24\", \"192.0.0.0/16\"]

  • INVALID specification: \"Addresses\": [\"\"] INVALID

" + "documentation":"

Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses. All addresses must be specified using Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0.

Example address strings:

  • To configure WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify 192.0.2.44/32.

  • To configure WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

  • To configure WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

  • To configure WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

Example JSON Addresses specifications:

  • Empty array: \"Addresses\": []

  • Array with one address: \"Addresses\": [\"192.0.2.44/32\"]

  • Array with three addresses: \"Addresses\": [\"192.0.2.44/32\", \"192.0.2.0/24\", \"192.0.0.0/16\"]

  • INVALID specification: \"Addresses\": [\"\"] INVALID

" } }, "documentation":"

Contains zero or more IP addresses or blocks of IP addresses specified in Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0. For information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

WAF assigns an ARN to each IPSet that you create. To use an IP set in a rule, you provide the ARN to the Rule statement IPSetReferenceStatement.

" @@ -2817,10 +2879,17 @@ "members":{ "ImmunityTime":{ "shape":"TimeWindowSecond", - "documentation":"

The amount of time, in seconds, that a CAPTCHA token is valid. The default setting is 300.

" + "documentation":"

The amount of time, in seconds, that a CAPTCHA or challenge timestamp is considered valid by WAF. The default setting is 300.

For the Challenge action, the minimum setting is 300.

" } }, - "documentation":"

Determines how long a CAPTCHA token remains valid after the client successfully solves a CAPTCHA puzzle.

" + "documentation":"

Used for CAPTCHA and challenge token settings. Determines how long a CAPTCHA or challenge timestamp remains valid after WAF updates it for a successful CAPTCHA or challenge response.

" + }, + "InspectionLevel":{ + "type":"string", + "enum":[ + "COMMON", + "TARGETED" + ] }, "JsonBody":{ "type":"structure", @@ -2846,7 +2915,7 @@ "documentation":"

What WAF should do if the body is larger than WAF can inspect. WAF does not support inspecting the entire contents of the body of a web request when the body exceeds 8 KB (8192 bytes). Only the first 8 KB of the request body are forwarded to WAF by the underlying host service.

The options for oversize handling are the following:

  • CONTINUE - Inspect the body normally, according to the rule inspection criteria.

  • MATCH - Treat the web request as matching the rule statement. WAF applies the rule action to the request.

  • NO_MATCH - Treat the web request as not matching the rule statement.

You can combine the MATCH or NO_MATCH settings for oversize handling with your rule and web ACL action settings, so that you block any request whose body is over 8 KB.

Default: CONTINUE

" } }, - "documentation":"

Inspect the body of the web request as JSON. The body immediately follows the request headers.

This is used to indicate the web request component for WAF to inspect, in the FieldToMatch specification.

Use the specifications in this object to indicate which parts of the JSON body to inspect using the rule's inspection criteria. WAF inspects only the parts of the JSON that result from the matches that you indicate.

Example JSON: \"JsonBody\": { \"MatchPattern\": { \"All\": {} }, \"MatchScope\": \"ALL\" }

" + "documentation":"

Inspect the body of the web request as JSON. The body immediately follows the request headers.

This is used to indicate the web request component to inspect, in the FieldToMatch specification.

Use the specifications in this object to indicate which parts of the JSON body to inspect using the rule's inspection criteria. WAF inspects only the parts of the JSON that result from the matches that you indicate.

Example JSON: \"JsonBody\": { \"MatchPattern\": { \"All\": {} }, \"MatchScope\": \"ALL\" }

" }, "JsonMatchPattern":{ "type":"structure", @@ -2921,7 +2990,7 @@ "documentation":"

The string to match against. The setting you provide for this depends on the match statement's Scope setting:

  • If the Scope indicates LABEL, then this specification must include the name and can include any number of preceding namespace specifications and prefix up to providing the fully qualified label name.

  • If the Scope indicates NAMESPACE, then this specification can include any number of contiguous namespace strings, and can include the entire label namespace prefix from the rule group or web ACL where the label originates.

Labels are case sensitive and components of a label must be separated by colon, for example NS1:NS2:name.

" } }, - "documentation":"

A rule statement that defines a string match search against labels that have been added to the web request by rules that have already run in the web ACL.

The label match statement provides the label or namespace string to search for. The label string can represent a part or all of the fully qualified label name that had been added to the web request. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label. If you do not provide the fully qualified name in your label match string, WAF performs the search for labels that were added in the same context as the label match statement.

" + "documentation":"

A rule statement to match against labels that have been added to the web request by rules that have already run in the web ACL.

The label match statement provides the label or namespace string to search for. The label string can represent a part or all of the fully qualified label name that had been added to the web request. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label. If you do not provide the fully qualified name in your label match string, WAF performs the search for labels that were added in the same context as the label match statement.

" }, "LabelName":{ "type":"string", @@ -2976,7 +3045,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "NextMarker":{ "shape":"NextMarker", @@ -3011,7 +3080,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "NextMarker":{ "shape":"NextMarker", @@ -3042,7 +3111,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "NextMarker":{ "shape":"NextMarker", @@ -3073,7 +3142,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "NextMarker":{ "shape":"NextMarker", @@ -3104,7 +3173,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "NextMarker":{ "shape":"NextMarker", @@ -3171,7 +3240,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "NextMarker":{ "shape":"NextMarker", @@ -3206,7 +3275,7 @@ }, "ResourceType":{ "shape":"ResourceType", - "documentation":"

Used for web ACLs that are scoped for regional applications. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

" + "documentation":"

Used for web ACLs that are scoped for regional applications. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

If you don't provide a resource type, the call uses the resource type APPLICATION_LOAD_BALANCER.

Default: APPLICATION_LOAD_BALANCER

" } } }, @@ -3225,7 +3294,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "NextMarker":{ "shape":"NextMarker", @@ -3287,7 +3356,7 @@ "members":{ "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "NextMarker":{ "shape":"NextMarker", @@ -3400,9 +3469,13 @@ "PasswordField":{ "shape":"PasswordField", "documentation":"

Details about your login page password field.

" + }, + "AWSManagedRulesBotControlRuleSet":{ + "shape":"AWSManagedRulesBotControlRuleSet", + "documentation":"

Additional configuration for using the Bot Control managed rule group. Use this to specify the inspection level that you want to use. For information about using the Bot Control managed rule group, see WAF Bot Control rule group and WAF Bot Control in the WAF Developer Guide.

" } }, - "documentation":"

Additional information that's used by a managed rule group. Most managed rule groups don't require this.

Use this for the account takeover prevention managed rule group AWSManagedRulesATPRuleSet, to provide information about the sign-in page of your application.

You can provide multiple individual ManagedRuleGroupConfig objects for any rule group configuration, for example UsernameField and PasswordField. The configuration that you provide depends on the needs of the managed rule group. For the ATP managed rule group, you provide the following individual configuration objects: LoginPath, PasswordField, PayloadType and UsernameField.

" + "documentation":"

Additional information that's used by a managed rule group. Many managed rule groups don't require this.

Use the AWSManagedRulesBotControlRuleSet configuration object to configure the protection level that you want the Bot Control rule group to use.

For example specifications, see the examples section of CreateWebACL.

" }, "ManagedRuleGroupConfigs":{ "type":"list", @@ -3430,7 +3503,7 @@ }, "ExcludedRules":{ "shape":"ExcludedRules", - "documentation":"

The rules in the referenced rule group whose actions are set to Count. When you exclude a rule, WAF evaluates it exactly as it would if the rule action setting were Count. This is a useful option for testing the rules in a rule group without modifying how they handle your web traffic.

" + "documentation":"

Rules in the referenced rule group whose actions are set to Count.

Instead of this option, use RuleActionOverrides. It accepts any valid action setting, including Count.

" }, "ScopeDownStatement":{ "shape":"Statement", @@ -3438,10 +3511,14 @@ }, "ManagedRuleGroupConfigs":{ "shape":"ManagedRuleGroupConfigs", - "documentation":"

Additional information that's used by a managed rule group. Most managed rule groups don't require this.

Use this for the account takeover prevention managed rule group AWSManagedRulesATPRuleSet, to provide information about the sign-in page of your application.

You can provide multiple individual ManagedRuleGroupConfig objects for any rule group configuration, for example UsernameField and PasswordField. The configuration that you provide depends on the needs of the managed rule group. For the ATP managed rule group, you provide the following individual configuration objects: LoginPath, PasswordField, PayloadType and UsernameField.

" + "documentation":"

Additional information that's used by a managed rule group. Many managed rule groups don't require this.

Use the AWSManagedRulesBotControlRuleSet configuration object to configure the protection level that you want the Bot Control rule group to use.

" + }, + "RuleActionOverrides":{ + "shape":"RuleActionOverrides", + "documentation":"

Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change.

You can use overrides for testing, for example you can override all of rule actions to Count and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.

" } }, - "documentation":"

A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.

You cannot nest a ManagedRuleGroupStatement, for example for use inside a NotStatement or OrStatement. It can only be referenced as a top-level statement within a rule.

" + "documentation":"

A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.

You cannot nest a ManagedRuleGroupStatement, for example for use inside a NotStatement or OrStatement. It can only be referenced as a top-level statement within a rule.

You are charged additional fees when you use the WAF Bot Control managed rule group AWSManagedRulesBotControlRuleSet or the WAF Fraud Control account takeover prevention (ATP) managed rule group AWSManagedRulesATPRuleSet. For more information, see WAF Pricing.

" }, "ManagedRuleGroupSummaries":{ "type":"list", @@ -3630,7 +3707,7 @@ "documentation":"

Tags that are associated with the release.

" } }, - "documentation":"

Information for a release of the mobile SDK, including release notes and tags.

The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage Security Token Service (STS) security tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see WAF client application integration in the WAF Developer Guide.

" + "documentation":"

Information for a release of the mobile SDK, including release notes and tags.

The mobile SDK is not generally available. Customers who have access to the mobile SDK can use it to establish and manage WAF tokens for use in HTTP(S) requests from a mobile device to WAF. For more information, see WAF client application integration in the WAF Developer Guide.

" }, "NextMarker":{ "type":"string", @@ -3672,14 +3749,14 @@ "members":{ "Count":{ "shape":"CountAction", - "documentation":"

Override the rule group evaluation result to count only.

This option is usually set to none. It does not affect how the rules in the rule group are evaluated. If you want the rules in the rule group to only count matches, do not use this and instead exclude those rules in your rule group reference statement settings.

" + "documentation":"

Override the rule group evaluation result to count only.

This option is usually set to none. It does not affect how the rules in the rule group are evaluated. If you want the rules in the rule group to only count matches, do not use this and instead use the rule action override option, with Count action, in your rule group reference statement settings.

" }, "None":{ "shape":"NoneAction", "documentation":"

Don't override the rule group evaluation result. This is the most common setting.

" } }, - "documentation":"

The action to use in the place of the action that results from the rule group evaluation. Set the override action to none to leave the result of the rule group alone. Set it to count to override the result to count only.

You can only use this for rule statements that reference a rule group, like RuleGroupReferenceStatement and ManagedRuleGroupStatement.

This option is usually set to none. It does not affect how the rules in the rule group are evaluated. If you want the rules in the rule group to only count matches, do not use this and instead exclude those rules in your rule group reference statement settings.

" + "documentation":"

The action to use in the place of the action that results from the rule group evaluation. Set the override action to none to leave the result of the rule group alone. Set it to count to override the result to count only.

You can only use this for rule statements that reference a rule group, like RuleGroupReferenceStatement and ManagedRuleGroupStatement.

This option is usually set to none. It does not affect how the rules in the rule group are evaluated. If you want the rules in the rule group to only count matches, do not use this and instead use the rule action override option, with Count action, in your rule group reference statement settings.

" }, "OversizeHandling":{ "type":"string", @@ -3759,7 +3836,9 @@ "HEADER_MATCH_PATTERN", "COOKIE_MATCH_PATTERN", "MAP_MATCH_SCOPE", - "OVERSIZE_HANDLING" + "OVERSIZE_HANDLING", + "CHALLENGE_CONFIG", + "TOKEN_DOMAIN" ] }, "ParameterExceptionParameter":{ @@ -3847,7 +3926,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -3928,7 +4007,7 @@ "documentation":"

The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.

If the specified header isn't present in the request, WAF doesn't apply the rule to the web request at all.

This is required if AggregateKeyType is set to FORWARDED_IP.

" } }, - "documentation":"

A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.

WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.

When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.

You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:

  • An IP match statement with an IP set that specified the address 192.0.2.44.

  • A string match statement that searches in the User-Agent header for the string BadBot.

In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet both of the conditions in the statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule.

You cannot nest a RateBasedStatement inside another statement, for example inside a NotStatement or OrStatement. You can define a RateBasedStatement inside a web ACL and inside a rule group.

" + "documentation":"

A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.

WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.

When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.

You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:

  • An IP match statement with an IP set that specified the address 192.0.2.44.

  • A string match statement that searches in the User-Agent header for the string BadBot.

In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet the criteria of both of the nested statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet the criteria of both of the nested statements are not counted towards the rate limit and are not affected by this rule.

You cannot nest a RateBasedStatement inside another statement, for example inside a NotStatement or OrStatement. You can define a RateBasedStatement inside a web ACL and inside a rule group.

" }, "RateBasedStatementAggregateKeyType":{ "type":"string", @@ -3985,7 +4064,7 @@ }, "FieldToMatch":{ "shape":"FieldToMatch", - "documentation":"

The part of the web request that you want WAF to inspect. For more information, see FieldToMatch.

" + "documentation":"

The part of the web request that you want WAF to inspect.

" }, "TextTransformations":{ "shape":"TextTransformations", @@ -4034,7 +4113,7 @@ }, "FieldToMatch":{ "shape":"FieldToMatch", - "documentation":"

The part of the web request that you want WAF to inspect. For more information, see FieldToMatch.

" + "documentation":"

The part of the web request that you want WAF to inspect.

" }, "TextTransformations":{ "shape":"TextTransformations", @@ -4117,7 +4196,8 @@ "enum":[ "APPLICATION_LOAD_BALANCER", "API_GATEWAY", - "APPSYNC" + "APPSYNC", + "COGNITO_USER_POOL" ] }, "ResponseCode":{"type":"integer"}, @@ -4167,7 +4247,7 @@ }, "OverrideAction":{ "shape":"OverrideAction", - "documentation":"

The action to use in the place of the action that results from the rule group evaluation. Set the override action to none to leave the result of the rule group alone. Set it to count to override the result to count only.

You can only use this for rule statements that reference a rule group, like RuleGroupReferenceStatement and ManagedRuleGroupStatement.

This option is usually set to none. It does not affect how the rules in the rule group are evaluated. If you want the rules in the rule group to only count matches, do not use this and instead exclude those rules in your rule group reference statement settings.

" + "documentation":"

The action to use in the place of the action that results from the rule group evaluation. Set the override action to none to leave the result of the rule group alone. Set it to count to override the result to count only.

You can only use this for rule statements that reference a rule group, like RuleGroupReferenceStatement and ManagedRuleGroupStatement.

This option is usually set to none. It does not affect how the rules in the rule group are evaluated. If you want the rules in the rule group to only count matches, do not use this and instead use the rule action override option, with Count action, in your rule group reference statement settings.

" }, "RuleLabels":{ "shape":"Labels", @@ -4180,6 +4260,10 @@ "CaptchaConfig":{ "shape":"CaptchaConfig", "documentation":"

Specifies how WAF should handle CAPTCHA evaluations. If you don't specify this, WAF uses the CAPTCHA configuration that's defined for the web ACL.

" + }, + "ChallengeConfig":{ + "shape":"ChallengeConfig", + "documentation":"

Specifies how WAF should handle Challenge evaluations. If you don't specify this, WAF uses the challenge configuration that's defined for the web ACL.

" } }, "documentation":"

A single rule, which you can use in a WebACL or RuleGroup to identify web requests that you want to allow, block, or count. Each rule includes one top-level Statement that WAF uses to identify matching web requests, and parameters that govern how WAF handles them.

" @@ -4197,15 +4281,43 @@ }, "Count":{ "shape":"CountAction", - "documentation":"

Instructs WAF to count the web request and allow it.

" + "documentation":"

Instructs WAF to count the web request and then continue evaluating the request using the remaining rules in the web ACL.

" }, "Captcha":{ "shape":"CaptchaAction", "documentation":"

Instructs WAF to run a CAPTCHA check against the web request.

" + }, + "Challenge":{ + "shape":"ChallengeAction", + "documentation":"

Instructs WAF to run a Challenge check against the web request.

" } }, "documentation":"

The action that WAF should take on a web request when it matches a rule's statement. Settings at the web ACL level can override the rule action setting.

" }, + "RuleActionOverride":{ + "type":"structure", + "required":[ + "Name", + "ActionToUse" + ], + "members":{ + "Name":{ + "shape":"EntityName", + "documentation":"

The name of the rule to override.

" + }, + "ActionToUse":{ + "shape":"RuleAction", + "documentation":"

The override action to use, in place of the configured action of the rule in the rule group.

" + } + }, + "documentation":"

Action setting to use in the place of a rule action that is configured inside the rule group. You specify one override for each rule whose action you want to change.

You can use overrides for testing, for example you can override all of rule actions to Count and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.

" + }, + "RuleActionOverrides":{ + "type":"list", + "member":{"shape":"RuleActionOverride"}, + "max":100, + "min":1 + }, "RuleGroup":{ "type":"structure", "required":[ @@ -4273,7 +4385,11 @@ }, "ExcludedRules":{ "shape":"ExcludedRules", - "documentation":"

The rules in the referenced rule group whose actions are set to Count. When you exclude a rule, WAF evaluates it exactly as it would if the rule action setting were Count. This is a useful option for testing the rules in a rule group without modifying how they handle your web traffic.

" + "documentation":"

Rules in the referenced rule group whose actions are set to Count.

Instead of this option, use RuleActionOverrides. It accepts any valid action setting, including Count.

" + }, + "RuleActionOverrides":{ + "shape":"RuleActionOverrides", + "documentation":"

Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change.

You can use overrides for testing, for example you can override all of rule actions to Count and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.

" } }, "documentation":"

A rule statement used to run the rules that are defined in a RuleGroup. To use this, create a rule group with your rules, then provide the ARN of the rule group in this statement.

You cannot nest a RuleGroupReferenceStatement, for example for use inside a NotStatement or OrStatement. You can only use a rule group reference statement at the top level inside a web ACL.

" @@ -4359,7 +4475,7 @@ }, "Action":{ "shape":"Action", - "documentation":"

The action for the Rule that the request matched: Allow, Block, or Count.

" + "documentation":"

The action that WAF applied to the request.

" }, "RuleNameWithinRuleGroup":{ "shape":"EntityName", @@ -4380,6 +4496,14 @@ "CaptchaResponse":{ "shape":"CaptchaResponse", "documentation":"

The CAPTCHA response for the request.

" + }, + "ChallengeResponse":{ + "shape":"ChallengeResponse", + "documentation":"

The Challenge response for the request.

" + }, + "OverriddenAction":{ + "shape":"Action", + "documentation":"

Used only for rule group rules that have a rule action override in place in the web ACL. This is the action that the rule group rule is configured for, and not the action that was applied to the request. The action that WAF applied is the Action value.

" } }, "documentation":"

Represents a single sampled web request. The response from GetSampledRequests includes a SampledHTTPRequests complex type that appears as SampledRequests in the response syntax. SampledHTTPRequests contains an array of SampledHTTPRequest objects.

" @@ -4396,6 +4520,13 @@ ] }, "SearchString":{"type":"blob"}, + "SensitivityLevel":{ + "type":"string", + "enum":[ + "LOW", + "HIGH" + ] + }, "SingleCookieName":{ "type":"string", "max":60, @@ -4411,7 +4542,7 @@ "documentation":"

The name of the query header to inspect.

" } }, - "documentation":"

Inspect one of the headers in the web request, identified by name, for example, User-Agent or Referer. The name isn't case sensitive.

You can filter and inspect all headers with the FieldToMatch setting Headers.

This is used to indicate the web request component for WAF to inspect, in the FieldToMatch specification.

Example JSON: \"SingleHeader\": { \"Name\": \"haystack\" }

" + "documentation":"

Inspect one of the headers in the web request, identified by name, for example, User-Agent or Referer. The name isn't case sensitive.

You can filter and inspect all headers with the FieldToMatch setting Headers.

This is used to indicate the web request component to inspect, in the FieldToMatch specification.

Example JSON: \"SingleHeader\": { \"Name\": \"haystack\" }

" }, "SingleQueryArgument":{ "type":"structure", @@ -4422,7 +4553,7 @@ "documentation":"

The name of the query argument to inspect.

" } }, - "documentation":"

Inspect one query argument in the web request, identified by name, for example UserName or SalesRegion. The name isn't case sensitive.

This is used to indicate the web request component for WAF to inspect, in the FieldToMatch specification.

Example JSON: \"SingleQueryArgument\": { \"Name\": \"myArgument\" }

" + "documentation":"

Inspect one query argument in the web request, identified by name, for example UserName or SalesRegion. The name isn't case sensitive.

This is used to indicate the web request component to inspect, in the FieldToMatch specification.

Example JSON: \"SingleQueryArgument\": { \"Name\": \"myArgument\" }

" }, "Size":{ "type":"long", @@ -4440,7 +4571,7 @@ "members":{ "FieldToMatch":{ "shape":"FieldToMatch", - "documentation":"

The part of the web request that you want WAF to inspect. For more information, see FieldToMatch.

" + "documentation":"

The part of the web request that you want WAF to inspect.

" }, "ComparisonOperator":{ "shape":"ComparisonOperator", @@ -4455,7 +4586,7 @@ "documentation":"

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. If you specify one or more transformations in a rule statement, WAF performs all transformations on the content of the request component identified by FieldToMatch, starting from the lowest priority setting, before inspecting the content for a match.

" } }, - "documentation":"

A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.

If you configure WAF to inspect the request body, WAF inspects only the first 8192 bytes (8 KB). If the request body for your web requests never exceeds 8192 bytes, you can create a size constraint condition and block requests that have a request body greater than 8192 bytes.

If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI /logo.jpg is nine characters long.

" + "documentation":"

A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.

If you configure WAF to inspect the request body, WAF inspects only the first 8192 bytes (8 KB). If the request body for your web requests never exceeds 8192 bytes, you could use a size constraint statement to block requests that have a request body greater than 8192 bytes.

If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI /logo.jpg is nine characters long.

" }, "SolveTimestamp":{"type":"long"}, "SqliMatchStatement":{ @@ -4467,37 +4598,41 @@ "members":{ "FieldToMatch":{ "shape":"FieldToMatch", - "documentation":"

The part of the web request that you want WAF to inspect. For more information, see FieldToMatch.

" + "documentation":"

The part of the web request that you want WAF to inspect.

" }, "TextTransformations":{ "shape":"TextTransformations", "documentation":"

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. If you specify one or more transformations in a rule statement, WAF performs all transformations on the content of the request component identified by FieldToMatch, starting from the lowest priority setting, before inspecting the content for a match.

" + }, + "SensitivityLevel":{ + "shape":"SensitivityLevel", + "documentation":"

The sensitivity that you want WAF to use to inspect for SQL injection attacks.

HIGH detects more attacks, but might generate more false positives, especially if your web requests frequently contain unusual strings. For information about identifying and mitigating false positives, see Testing and tuning in the WAF Developer Guide.

LOW is generally a better choice for resources that already have other protections against SQL injection attacks or that have a low tolerance for false positives.

Default: LOW

" } }, - "documentation":"

Attackers sometimes insert malicious SQL code into web requests in an effort to extract data from your database. To allow or block web requests that appear to contain malicious SQL code, create one or more SQL injection match conditions. An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want WAF to inspect. Later in the process, when you create a web ACL, you specify whether to allow or block requests that appear to contain malicious SQL code.

" + "documentation":"

A rule statement that inspects for malicious SQL code. Attackers insert malicious SQL code into web requests to do things like modify your database or extract data from it.

" }, "Statement":{ "type":"structure", "members":{ "ByteMatchStatement":{ "shape":"ByteMatchStatement", - "documentation":"

A rule statement that defines a string match search for WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the WAF console and the developer guide, this is refered to as a string match statement.

" + "documentation":"

A rule statement that defines a string match search for WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the WAF console and the developer guide, this is called a string match statement.

" }, "SqliMatchStatement":{ "shape":"SqliMatchStatement", - "documentation":"

Attackers sometimes insert malicious SQL code into web requests in an effort to extract data from your database. To allow or block web requests that appear to contain malicious SQL code, create one or more SQL injection match conditions. An SQL injection match condition identifies the part of web requests, such as the URI or the query string, that you want WAF to inspect. Later in the process, when you create a web ACL, you specify whether to allow or block requests that appear to contain malicious SQL code.

" + "documentation":"

A rule statement that inspects for malicious SQL code. Attackers insert malicious SQL code into web requests to do things like modify your database or extract data from it.

" }, "XssMatchStatement":{ "shape":"XssMatchStatement", - "documentation":"

A rule statement that defines a cross-site scripting (XSS) match search for WAF to apply to web requests. XSS attacks are those where the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers. The XSS match statement provides the location in requests that you want WAF to search and text transformations to use on the search area before WAF searches for character sequences that are likely to be malicious strings.

" + "documentation":"

A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.

" }, "SizeConstraintStatement":{ "shape":"SizeConstraintStatement", - "documentation":"

A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.

If you configure WAF to inspect the request body, WAF inspects only the first 8192 bytes (8 KB). If the request body for your web requests never exceeds 8192 bytes, you can create a size constraint condition and block requests that have a request body greater than 8192 bytes.

If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI /logo.jpg is nine characters long.

" + "documentation":"

A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<). For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.

If you configure WAF to inspect the request body, WAF inspects only the first 8192 bytes (8 KB). If the request body for your web requests never exceeds 8192 bytes, you could use a size constraint statement to block requests that have a request body greater than 8192 bytes.

If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI /logo.jpg is nine characters long.

" }, "GeoMatchStatement":{ "shape":"GeoMatchStatement", - "documentation":"

A rule statement used to identify web requests based on country of origin.

" + "documentation":"

A rule statement that labels web requests by country and region and that matches against web requests based on country code. A geo match rule labels every request that it inspects regardless of whether it finds a match.

  • To manage requests only by country, you can use this statement by itself and specify the countries that you want to match against in the CountryCodes array.

  • Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed.

WAF labels requests using the alpha-2 country and region codes from the International Organization for Standardization (ISO) 3166 standard. WAF determines the codes using either the IP address in the web request origin or, if you specify it, the address in the geo match ForwardedIPConfig.

If you use the web request origin, the label formats are awswaf:clientip:geo:region:<ISO country code>-<ISO region code> and awswaf:clientip:geo:country:<ISO country code>.

If you use a forwarded IP address, the label formats are awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code> and awswaf:forwardedip:geo:country:<ISO country code>.

For additional details, see Geographic match rule statement in the WAF Developer Guide.

" }, "RuleGroupReferenceStatement":{ "shape":"RuleGroupReferenceStatement", @@ -4513,7 +4648,7 @@ }, "RateBasedStatement":{ "shape":"RateBasedStatement", - "documentation":"

A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.

WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.

When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.

You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:

  • An IP match statement with an IP set that specified the address 192.0.2.44.

  • A string match statement that searches in the User-Agent header for the string BadBot.

In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet both of the conditions in the statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet both conditions are not counted towards the rate limit and are not affected by this rule.

You cannot nest a RateBasedStatement inside another statement, for example inside a NotStatement or OrStatement. You can define a RateBasedStatement inside a web ACL and inside a rule group.

" + "documentation":"

A rate-based rule tracks the rate of requests for each originating IP address, and triggers the rule action when the rate exceeds a limit that you specify on the number of requests in any 5-minute time span. You can use this to put a temporary block on requests from an IP address that is sending excessive requests.

WAF tracks and manages web requests separately for each instance of a rate-based rule that you use. For example, if you provide the same rate-based rule settings in two web ACLs, each of the two rule statements represents a separate instance of the rate-based rule and gets its own tracking and management by WAF. If you define a rate-based rule inside a rule group, and then use that rule group in multiple places, each use creates a separate instance of the rate-based rule that gets its own tracking and management by WAF.

When the rule action triggers, WAF blocks additional requests from the IP address until the request rate falls below the limit.

You can optionally nest another statement inside the rate-based statement, to narrow the scope of the rule so that it only counts requests that match the nested statement. For example, based on recent requests that you have seen from an attacker, you might create a rate-based rule with a nested AND rule statement that contains the following nested statements:

  • An IP match statement with an IP set that specified the address 192.0.2.44.

  • A string match statement that searches in the User-Agent header for the string BadBot.

In this rate-based rule, you also define a rate limit. For this example, the rate limit is 1,000. Requests that meet the criteria of both of the nested statements are counted. If the count exceeds 1,000 requests per five minutes, the rule action triggers. Requests that do not meet the criteria of both of the nested statements are not counted towards the rate limit and are not affected by this rule.

You cannot nest a RateBasedStatement inside another statement, for example inside a NotStatement or OrStatement. You can define a RateBasedStatement inside a web ACL and inside a rule group.

" }, "AndStatement":{ "shape":"AndStatement", @@ -4529,18 +4664,18 @@ }, "ManagedRuleGroupStatement":{ "shape":"ManagedRuleGroupStatement", - "documentation":"

A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.

You cannot nest a ManagedRuleGroupStatement, for example for use inside a NotStatement or OrStatement. It can only be referenced as a top-level statement within a rule.

" + "documentation":"

A rule statement used to run the rules that are defined in a managed rule group. To use this, provide the vendor name and the name of the rule group in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups.

You cannot nest a ManagedRuleGroupStatement, for example for use inside a NotStatement or OrStatement. It can only be referenced as a top-level statement within a rule.

You are charged additional fees when you use the WAF Bot Control managed rule group AWSManagedRulesBotControlRuleSet or the WAF Fraud Control account takeover prevention (ATP) managed rule group AWSManagedRulesATPRuleSet. For more information, see WAF Pricing.

" }, "LabelMatchStatement":{ "shape":"LabelMatchStatement", - "documentation":"

A rule statement that defines a string match search against labels that have been added to the web request by rules that have already run in the web ACL.

The label match statement provides the label or namespace string to search for. The label string can represent a part or all of the fully qualified label name that had been added to the web request. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label. If you do not provide the fully qualified name in your label match string, WAF performs the search for labels that were added in the same context as the label match statement.

" + "documentation":"

A rule statement to match against labels that have been added to the web request by rules that have already run in the web ACL.

The label match statement provides the label or namespace string to search for. The label string can represent a part or all of the fully qualified label name that had been added to the web request. Fully qualified labels have a prefix, optional namespaces, and label name. The prefix identifies the rule group or web ACL context of the rule that added the label. If you do not provide the fully qualified name in your label match string, WAF performs the search for labels that were added in the same context as the label match statement.

" }, "RegexMatchStatement":{ "shape":"RegexMatchStatement", "documentation":"

A rule statement used to search web request components for a match against a single regular expression.

" } }, - "documentation":"

The processing guidance for a Rule, used by WAF to determine whether a web request matches the rule.

" + "documentation":"

The processing guidance for a Rule, used by WAF to determine whether a web request matches the rule.

For example specifications, see the examples section of CreateWebACL.

" }, "Statements":{ "type":"list", @@ -4703,6 +4838,17 @@ "min":60 }, "Timestamp":{"type":"timestamp"}, + "TokenDomain":{ + "type":"string", + "max":253, + "min":1, + "pattern":"^[\\w\\.\\-/]+$" + }, + "TokenDomains":{ + "type":"list", + "member":{"shape":"TokenDomain"}, + "min":1 + }, "URIString":{"type":"string"}, "UntagResourceRequest":{ "type":"structure", @@ -4742,7 +4888,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -4754,7 +4900,7 @@ }, "Addresses":{ "shape":"IPAddresses", - "documentation":"

Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses in Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0.

Example address strings:

  • To configure WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify 192.0.2.44/32.

  • To configure WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

  • To configure WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

  • To configure WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

Example JSON Addresses specifications:

  • Empty array: \"Addresses\": []

  • Array with one address: \"Addresses\": [\"192.0.2.44/32\"]

  • Array with three addresses: \"Addresses\": [\"192.0.2.44/32\", \"192.0.2.0/24\", \"192.0.0.0/16\"]

  • INVALID specification: \"Addresses\": [\"\"] INVALID

" + "documentation":"

Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses. All addresses must be specified using Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and IPv6 CIDR ranges except for /0.

Example address strings:

  • To configure WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify 192.0.2.44/32.

  • To configure WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

  • To configure WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

  • To configure WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

Example JSON Addresses specifications:

  • Empty array: \"Addresses\": []

  • Array with one address: \"Addresses\": [\"192.0.2.44/32\"]

  • Array with three addresses: \"Addresses\": [\"192.0.2.44/32\", \"192.0.2.0/24\", \"192.0.0.0/16\"]

  • INVALID specification: \"Addresses\": [\"\"] INVALID

" }, "LockToken":{ "shape":"LockToken", @@ -4788,7 +4934,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -4841,7 +4987,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -4886,7 +5032,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -4940,7 +5086,7 @@ }, "Scope":{ "shape":"Scope", - "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" + "documentation":"

Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

To work with CloudFront, you must also specify the Region US East (N. Virginia) as follows:

  • CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT --region=us-east-1.

  • API and SDKs - For all calls, use the Region endpoint us-east-1.

" }, "Id":{ "shape":"EntityId", @@ -4973,6 +5119,14 @@ "CaptchaConfig":{ "shape":"CaptchaConfig", "documentation":"

Specifies how WAF should handle CAPTCHA evaluations for rules that don't have their own CaptchaConfig settings. If you don't specify this, WAF uses its default settings for CaptchaConfig.

" + }, + "ChallengeConfig":{ + "shape":"ChallengeConfig", + "documentation":"

Specifies how WAF should handle challenge evaluations for rules that don't have their own ChallengeConfig settings. If you don't specify this, WAF uses its default settings for ChallengeConfig.

" + }, + "TokenDomains":{ + "shape":"TokenDomains", + "documentation":"

Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

Example JSON: \"TokenDomains\": { \"mywebsite.com\", \"myotherwebsite.com\" }

" } } }, @@ -5051,7 +5205,7 @@ }, "MetricName":{ "shape":"MetricName", - "documentation":"

A name of the Amazon CloudWatch metric. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names reserved for WAF, for example \"All\" and \"Default_Action.\"

" + "documentation":"

A name of the Amazon CloudWatch metric. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names reserved for WAF, for example All and Default_Action.

" } }, "documentation":"

Defines and enables Amazon CloudWatch metrics and web request sample collection.

" @@ -5061,7 +5215,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

WAF couldn’t perform the operation because your resource is being used by another resource or it’s associated with another resource.

For DeleteWebACL, you will only get this exception if the web ACL is still associated with a regional resource. Deleting a web ACL that is still associated with an Amazon CloudFront distribution won't get this exception.

", + "documentation":"

WAF couldn’t perform the operation because your resource is being used by another resource or it’s associated with another resource.

", "exception":true }, "WAFConfigurationWarningException":{ @@ -5162,7 +5316,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

WAF couldn’t perform the operation because your resource doesn’t exist.

", + "documentation":"

WAF couldn’t perform the operation because your resource doesn't exist. If you've just created a resource that you're using in this operation, you might just need to wait a few minutes. It can take from a few seconds to a number of minutes for changes to propagate.

", "exception":true }, "WAFOptimisticLockException":{ @@ -5202,7 +5356,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

WAF couldn’t perform your tagging operation because of an internal error. Retry ybjectNoteWebRequestComponentour request.

", + "documentation":"

WAF couldn’t perform your tagging operation because of an internal error. Retry your request.

", "exception":true, "fault":true }, @@ -5211,7 +5365,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

WAF couldn’t retrieve a resource that you specified for this operation. Verify the resources that you are specifying in your request parameters and then retry the operation.

", + "documentation":"

WAF couldn’t retrieve a resource that you specified for this operation. If you've just created a resource that you're using in this operation, you might just need to wait a few minutes. It can take from a few seconds to a number of minutes for changes to propagate. Verify the resources that you are specifying in your request parameters and then retry the operation.

", "exception":true }, "WebACL":{ @@ -5279,9 +5433,17 @@ "CaptchaConfig":{ "shape":"CaptchaConfig", "documentation":"

Specifies how WAF should handle CAPTCHA evaluations for rules that don't have their own CaptchaConfig settings. If you don't specify this, WAF uses its default settings for CaptchaConfig.

" + }, + "ChallengeConfig":{ + "shape":"ChallengeConfig", + "documentation":"

Specifies how WAF should handle challenge evaluations for rules that don't have their own ChallengeConfig settings. If you don't specify this, WAF uses its default settings for ChallengeConfig.

" + }, + "TokenDomains":{ + "shape":"TokenDomains", + "documentation":"

Specifies the domains that WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When WAF provides a token, it uses the domain of the Amazon Web Services resource that the web ACL is protecting. If you don't specify a list of token domains, WAF accepts tokens only for the domain of the protected resource. With a token domain list, WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.

" } }, - "documentation":"

A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL API.

" + "documentation":"

A web ACL defines a collection of rules to use to inspect and control web requests. Each rule has an action defined (allow, block, or count) for requests that match the statement of the rule. In the web ACL, you assign a default action to take (allow, block) for any request that does not match any of the rules. The rules in a web ACL can be a combination of the types Rule, RuleGroup, and managed rule group. You can associate a web ACL with one or more Amazon Web Services resources to protect. The resources can be an Amazon CloudFront distribution, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, or an Amazon Cognito user pool.

" }, "WebACLSummaries":{ "type":"list", @@ -5322,15 +5484,15 @@ "members":{ "FieldToMatch":{ "shape":"FieldToMatch", - "documentation":"

The part of the web request that you want WAF to inspect. For more information, see FieldToMatch.

" + "documentation":"

The part of the web request that you want WAF to inspect.

" }, "TextTransformations":{ "shape":"TextTransformations", "documentation":"

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. If you specify one or more transformations in a rule statement, WAF performs all transformations on the content of the request component identified by FieldToMatch, starting from the lowest priority setting, before inspecting the content for a match.

" } }, - "documentation":"

A rule statement that defines a cross-site scripting (XSS) match search for WAF to apply to web requests. XSS attacks are those where the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers. The XSS match statement provides the location in requests that you want WAF to search and text transformations to use on the search area before WAF searches for character sequences that are likely to be malicious strings.

" + "documentation":"

A rule statement that inspects for cross-site scripting (XSS) attacks. In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.

" } }, - "documentation":"WAF

This is the latest version of the WAF API, released in November, 2019. The names of the entities that you use to access this API, like endpoints and namespaces, all have the versioning information added, like \"V2\" or \"v2\", to distinguish from the prior version. We recommend migrating your resources to this version, because it has a number of significant improvements.

If you used WAF prior to this release, you can't use this WAFV2 API to access any WAF resources that you created before. You can access your old rules, web ACLs, and other WAF resources only through the WAF Classic APIs. The WAF Classic APIs have retained the prior names, endpoints, and namespaces.

For information, including how to migrate your WAF resources to this version, see the WAF Developer Guide.

WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to Amazon CloudFront, an Amazon API Gateway REST API, an Application Load Balancer, or an AppSync GraphQL API. WAF also lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, the Amazon API Gateway REST API, CloudFront distribution, the Application Load Balancer, or the AppSync GraphQL API responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You also can configure CloudFront to return a custom error page when a request is blocked.

This API guide is for developers who need detailed information about WAF API actions, data types, and errors. For detailed information about WAF features and an overview of how to use WAF, see the WAF Developer Guide.

You can make calls using the endpoints listed in WAF endpoints and quotas.

  • For regional applications, you can use any of the endpoints in the list. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API.

  • For Amazon CloudFront applications, you must use the API endpoint listed for US East (N. Virginia): us-east-1.

Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see Amazon Web Services SDKs.

We currently provide two versions of the WAF API: this API and the prior versions, the classic WAF APIs. This new API provides the same functionality as the older versions, with the following major improvements:

  • You use one API for both global and regional applications. Where you need to distinguish the scope, you specify a Scope parameter and set it to CLOUDFRONT or REGIONAL.

  • You can define a web ACL or rule group with a single call, and update it with a single call. You define all rule specifications in JSON format, and pass them to your rule group or web ACL calls.

  • The limits WAF places on the use of rules more closely reflects the cost of running each type of rule. Rule groups include capacity settings, so you know the maximum cost of a rule group when you use it.

" + "documentation":"WAF

This is the latest version of the WAF API, released in November, 2019. The names of the entities that you use to access this API, like endpoints and namespaces, all have the versioning information added, like \"V2\" or \"v2\", to distinguish from the prior version. We recommend migrating your resources to this version, because it has a number of significant improvements.

If you used WAF prior to this release, you can't use this WAFV2 API to access any WAF resources that you created before. You can access your old rules, web ACLs, and other WAF resources only through the WAF Classic APIs. The WAF Classic APIs have retained the prior names, endpoints, and namespaces.

For information, including how to migrate your WAF resources to this version, see the WAF Developer Guide.

WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to Amazon CloudFront, an Amazon API Gateway REST API, an Application Load Balancer, an AppSync GraphQL API, or an Amazon Cognito user pool. WAF also lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, the Amazon API Gateway REST API, CloudFront distribution, the Application Load Balancer, the AppSync GraphQL API, or the Amazon Cognito user pool responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You also can configure CloudFront to return a custom error page when a request is blocked.

This API guide is for developers who need detailed information about WAF API actions, data types, and errors. For detailed information about WAF features and an overview of how to use WAF, see the WAF Developer Guide.

You can make calls using the endpoints listed in WAF endpoints and quotas.

  • For regional applications, you can use any of the endpoints in the list. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AppSync GraphQL API, or an Amazon Cognito user pool.

  • For Amazon CloudFront applications, you must use the API endpoint listed for US East (N. Virginia): us-east-1.

Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to the programming language or platform that you're using. For more information, see Amazon Web Services SDKs.

We currently provide two versions of the WAF API: this API and the prior versions, the classic WAF APIs. This new API provides the same functionality as the older versions, with the following major improvements:

  • You use one API for both global and regional applications. Where you need to distinguish the scope, you specify a Scope parameter and set it to CLOUDFRONT or REGIONAL.

  • You can define a web ACL or rule group with a single call, and update it with a single call. You define all rule specifications in JSON format, and pass them to your rule group or web ACL calls.

  • The limits WAF places on the use of rules more closely reflects the cost of running each type of rule. Rule groups include capacity settings, so you know the maximum cost of a rule group when you use it.

" } diff --git a/botocore/data/wellarchitected/2020-03-31/endpoint-rule-set-1.json b/botocore/data/wellarchitected/2020-03-31/endpoint-rule-set-1.json new file mode 100644 index 00000000..5e94b367 --- /dev/null +++ b/botocore/data/wellarchitected/2020-03-31/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wellarchitected-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wellarchitected-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wellarchitected.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://wellarchitected.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/wellarchitected/2020-03-31/examples-1.json b/botocore/data/wellarchitected/2020-03-31/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/wellarchitected/2020-03-31/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/wellarchitected/2020-03-31/service-2.json b/botocore/data/wellarchitected/2020-03-31/service-2.json index d64946d5..9d5c36b0 100644 --- a/botocore/data/wellarchitected/2020-03-31/service-2.json +++ b/botocore/data/wellarchitected/2020-03-31/service-2.json @@ -47,7 +47,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Create a lens share.

The owner of a lens can share it with other Amazon Web Services accounts and IAM users in the same Amazon Web Services Region. Shared access to a lens is not removed until the lens invitation is deleted.

Disclaimer

By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

" + "documentation":"

Create a lens share.

The owner of a lens can share it with other Amazon Web Services accounts, IAM users, an organization, and organizational units (OUs) in the same Amazon Web Services Region. Shared access to a lens is not removed until the lens invitation is deleted.

Disclaimer

By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

" }, "CreateLensVersion":{ "name":"CreateLensVersion", @@ -103,7 +103,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Create a new workload.

The owner of a workload can share the workload with other Amazon Web Services accounts and IAM users in the same Amazon Web Services Region. Only the owner of a workload can delete it.

For more information, see Defining a Workload in the Well-Architected Tool User Guide.

" + "documentation":"

Create a new workload.

The owner of a workload can share the workload with other Amazon Web Services accounts, IAM users, an organization, and organizational units (OUs) in the same Amazon Web Services Region. Only the owner of a workload can delete it.

For more information, see Defining a Workload in the Well-Architected Tool User Guide.

" }, "CreateWorkloadShare":{ "name":"CreateWorkloadShare", @@ -156,7 +156,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Delete a lens share.

After the lens share is deleted, Amazon Web Services accounts and IAM users that you shared the lens with can continue to use it, but they will no longer be able to apply it to new workloads.

Disclaimer

By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

" + "documentation":"

Delete a lens share.

After the lens share is deleted, Amazon Web Services accounts, IAM users, organizations, and organizational units (OUs) that you shared the lens with can continue to use it, but they will no longer be able to apply it to new workloads.

Disclaimer

By sharing your custom lenses with other Amazon Web Services accounts, you acknowledge that Amazon Web Services will make your custom lenses available to those other accounts. Those other accounts may continue to access and use your shared custom lenses even if you delete the custom lenses from your own Amazon Web Services account or terminate your Amazon Web Services account.

" }, "DeleteWorkload":{ "name":"DeleteWorkload", @@ -381,6 +381,40 @@ ], "documentation":"

List of answers.

" }, + "ListCheckDetails":{ + "name":"ListCheckDetails", + "http":{ + "method":"POST", + "requestUri":"/workloads/{WorkloadId}/checks" + }, + "input":{"shape":"ListCheckDetailsInput"}, + "output":{"shape":"ListCheckDetailsOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

List of Trusted Advisor check details by account related to the workload.

" + }, + "ListCheckSummaries":{ + "name":"ListCheckSummaries", + "http":{ + "method":"POST", + "requestUri":"/workloads/{WorkloadId}/checkSummaries" + }, + "input":{"shape":"ListCheckSummariesInput"}, + "output":{"shape":"ListCheckSummariesOutput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

List of Trusted Advisor checks summarized for all accounts related to the workload.

" + }, "ListLensReviewImprovements":{ "name":"ListLensReviewImprovements", "http":{ @@ -509,7 +543,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

List the tags for a resource.

" + "documentation":"

List the tags for a resource.

The WorkloadArn parameter can be either a workload ARN or a custom lens ARN.

" }, "ListWorkloadShares":{ "name":"ListWorkloadShares", @@ -556,7 +590,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Adds one or more tags to the specified resource.

" + "documentation":"

Adds one or more tags to the specified resource.

The WorkloadArn parameter can be either a workload ARN or a custom lens ARN.

" }, "UntagResource":{ "name":"UntagResource", @@ -570,7 +604,7 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"} ], - "documentation":"

Deletes specified tags from a resource.

To specify multiple tags, use separate tagKeys parameters, for example:

DELETE /tags/WorkloadArn?tagKeys=key1&tagKeys=key2

" + "documentation":"

Deletes specified tags from a resource.

The WorkloadArn parameter can be either a workload ARN or a custom lens ARN.

To specify multiple tags, use separate tagKeys parameters, for example:

DELETE /tags/WorkloadArn?tagKeys=key1&tagKeys=key2

" }, "UpdateAnswer":{ "name":"UpdateAnswer", @@ -590,6 +624,22 @@ ], "documentation":"

Update the answer to a specific question in a workload review.

" }, + "UpdateGlobalSettings":{ + "name":"UpdateGlobalSettings", + "http":{ + "method":"PATCH", + "requestUri":"/global-settings" + }, + "input":{"shape":"UpdateGlobalSettingsInput"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"} + ], + "documentation":"

Updates whether the Amazon Web Services account is opted into organization sharing features.

" + }, "UpdateLensReview":{ "name":"UpdateLensReview", "http":{ @@ -624,7 +674,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ThrottlingException"} ], - "documentation":"

Update a workload invitation.

" + "documentation":"

Update a workload or custom lens share invitation.

This API operation can be called independently of any resource. Previous documentation implied that a workload ARN must be specified.

" }, "UpdateWorkload":{ "name":"UpdateWorkload", @@ -691,6 +741,37 @@ "error":{"httpStatusCode":403}, "exception":true }, + "AccountSummary":{ + "type":"map", + "key":{"shape":"CheckStatus"}, + "value":{"shape":"CheckStatusCount"}, + "documentation":"

Account summary for a Well-Architected best practice in relation to Trusted Advisor checks.

" + }, + "AdditionalResourceType":{ + "type":"string", + "enum":[ + "HELPFUL_RESOURCE", + "IMPROVEMENT_PLAN" + ] + }, + "AdditionalResources":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"AdditionalResourceType", + "documentation":"

Type of additional resource.

" + }, + "Content":{ + "shape":"Urls", + "documentation":"

The URLs for additional resources, either helpful resources or improvement plans. Up to five additional URLs can be specified.

" + } + }, + "documentation":"

The choice level additional resources.

" + }, + "AdditionalResourcesList":{ + "type":"list", + "member":{"shape":"AdditionalResources"} + }, "Answer":{ "type":"structure", "members":{ @@ -756,6 +837,11 @@ }, "documentation":"

An answer summary of a lens review in a workload.

" }, + "ApplicationArn":{ + "type":"string", + "max":2084, + "pattern":"arn:aws[-a-z]*:servicecatalog:[a-z]{2}(-gov)?-[a-z]+-\\d:\\d{12}:/applications/[a-z0-9]+" + }, "AssociateLensesInput":{ "type":"structure", "required":[ @@ -786,6 +872,126 @@ "type":"string", "documentation":"

The Base64-encoded string representation of a lens review report.

This data can be used to create a PDF file.

" }, + "CheckDescription":{"type":"string"}, + "CheckDetail":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"CheckId", + "documentation":"

Trusted Advisor check ID.

" + }, + "Name":{ + "shape":"CheckName", + "documentation":"

Trusted Advisor check name.

" + }, + "Description":{ + "shape":"CheckDescription", + "documentation":"

Trusted Advisor check description.

" + }, + "Provider":{ + "shape":"CheckProvider", + "documentation":"

Provider of the check related to the best practice.

" + }, + "LensArn":{ + "shape":"LensArn", + "documentation":"

Well-Architected Lens ARN associated to the check.

" + }, + "PillarId":{"shape":"PillarId"}, + "QuestionId":{"shape":"QuestionId"}, + "ChoiceId":{"shape":"ChoiceId"}, + "Status":{ + "shape":"CheckStatus", + "documentation":"

Status associated to the check.

" + }, + "AccountId":{"shape":"AwsAccountId"}, + "FlaggedResources":{ + "shape":"FlaggedResources", + "documentation":"

Count of flagged resources associated to the check.

" + }, + "Reason":{ + "shape":"CheckFailureReason", + "documentation":"

Reason associated to the check.

" + }, + "UpdatedAt":{"shape":"Timestamp"} + }, + "documentation":"

Account details for a Well-Architected best practice in relation to Trusted Advisor checks.

" + }, + "CheckDetails":{ + "type":"list", + "member":{"shape":"CheckDetail"} + }, + "CheckFailureReason":{ + "type":"string", + "enum":[ + "ASSUME_ROLE_ERROR", + "ACCESS_DENIED", + "UNKNOWN_ERROR", + "PREMIUM_SUPPORT_REQUIRED" + ] + }, + "CheckId":{"type":"string"}, + "CheckName":{"type":"string"}, + "CheckProvider":{ + "type":"string", + "enum":["TRUSTED_ADVISOR"] + }, + "CheckStatus":{ + "type":"string", + "enum":[ + "OKAY", + "WARNING", + "ERROR", + "NOT_AVAILABLE", + "FETCH_FAILED" + ] + }, + "CheckStatusCount":{ + "type":"integer", + "max":101, + "min":1 + }, + "CheckSummaries":{ + "type":"list", + "member":{"shape":"CheckSummary"} + }, + "CheckSummary":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"CheckId", + "documentation":"

Trusted Advisor check ID.

" + }, + "Name":{ + "shape":"CheckName", + "documentation":"

Trusted Advisor check name.

" + }, + "Provider":{ + "shape":"CheckProvider", + "documentation":"

Provider of the check related to the best practice.

" + }, + "Description":{ + "shape":"CheckDescription", + "documentation":"

Trusted Advisor check description.

" + }, + "UpdatedAt":{"shape":"Timestamp"}, + "LensArn":{ + "shape":"LensArn", + "documentation":"

Well-Architected Lens ARN associated to the check.

" + }, + "PillarId":{"shape":"PillarId"}, + "QuestionId":{"shape":"QuestionId"}, + "ChoiceId":{"shape":"ChoiceId"}, + "Status":{ + "shape":"CheckStatus", + "documentation":"

Status associated to the check.

" + }, + "AccountSummary":{ + "shape":"AccountSummary", + "documentation":"

Account summary associated to the check.

" + } + }, + "documentation":"

Trusted Advisor check summary.

" + }, "Choice":{ "type":"structure", "members":{ @@ -799,6 +1005,10 @@ "ImprovementPlan":{ "shape":"ChoiceContent", "documentation":"

The choice level improvement plan.

" + }, + "AdditionalResources":{ + "shape":"AdditionalResourcesList", + "documentation":"

The additional resources for a choice. A choice can have up to two additional resources: one of type HELPFUL_RESOURCE, one of type IMPROVEMENT_PLAN, or both.

" } }, "documentation":"

A choice available to answer question.

" @@ -1080,7 +1290,6 @@ "WorkloadName", "Description", "Environment", - "ReviewOwner", "Lenses", "ClientRequestToken" ], @@ -1105,6 +1314,14 @@ "Tags":{ "shape":"TagMap", "documentation":"

The tags to be associated with the workload.

" + }, + "DiscoveryConfig":{ + "shape":"WorkloadDiscoveryConfig", + "documentation":"

Well-Architected discovery configuration settings associated to the workload.

" + }, + "Applications":{ + "shape":"WorkloadApplications", + "documentation":"

List of AppRegistry application ARNs associated to the workload.

" } }, "documentation":"

Input for workload creation.

" @@ -1316,6 +1533,11 @@ } } }, + "FlaggedResources":{ + "type":"integer", + "max":9999, + "min":1 + }, "GetAnswerInput":{ "type":"structure", "required":[ @@ -1660,13 +1882,17 @@ "ShareInvitationId":{ "shape":"ShareInvitationId", "documentation":"

The ID assigned to the share invitation.

" + }, + "Tags":{ + "shape":"TagMap", + "documentation":"

The tags assigned to the lens.

" } }, "documentation":"

A lens return object.

" }, "LensAlias":{ "type":"string", - "documentation":"

The alias of the lens, for example, serverless.

Each lens is identified by its LensSummary$LensAlias.

", + "documentation":"

The alias of the lens.

For Amazon Web Services official lenses, this is either the lens alias, such as serverless, or the lens ARN, such as arn:aws:wellarchitected:us-west-2::lens/serverless.

For custom lenses, this is the lens ARN, such as arn:aws:wellarchitected:us-east-1:123456789012:lens/my-lens.

Each lens is identified by its LensSummary$LensAlias.

", "max":128, "min":1 }, @@ -1772,7 +1998,11 @@ "members":{ "ShareId":{"shape":"ShareId"}, "SharedWith":{"shape":"SharedWith"}, - "Status":{"shape":"ShareStatus"} + "Status":{"shape":"ShareStatus"}, + "StatusMessage":{ + "shape":"StatusMessage", + "documentation":"

Optional message to compliment the Status field.

" + } }, "documentation":"

A lens share summary return object.

" }, @@ -1922,6 +2152,78 @@ }, "documentation":"

Output of a list answers call.

" }, + "ListCheckDetailsInput":{ + "type":"structure", + "required":[ + "WorkloadId", + "LensArn", + "PillarId", + "QuestionId", + "ChoiceId" + ], + "members":{ + "WorkloadId":{ + "shape":"WorkloadId", + "location":"uri", + "locationName":"WorkloadId" + }, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "LensArn":{ + "shape":"LensArn", + "documentation":"

Well-Architected Lens ARN.

" + }, + "PillarId":{"shape":"PillarId"}, + "QuestionId":{"shape":"QuestionId"}, + "ChoiceId":{"shape":"ChoiceId"} + } + }, + "ListCheckDetailsOutput":{ + "type":"structure", + "members":{ + "CheckDetails":{ + "shape":"CheckDetails", + "documentation":"

The details about the Trusted Advisor checks related to the Well-Architected best practice.

" + }, + "NextToken":{"shape":"NextToken"} + } + }, + "ListCheckSummariesInput":{ + "type":"structure", + "required":[ + "WorkloadId", + "LensArn", + "PillarId", + "QuestionId", + "ChoiceId" + ], + "members":{ + "WorkloadId":{ + "shape":"WorkloadId", + "location":"uri", + "locationName":"WorkloadId" + }, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"}, + "LensArn":{ + "shape":"LensArn", + "documentation":"

Well-Architected Lens ARN.

" + }, + "PillarId":{"shape":"PillarId"}, + "QuestionId":{"shape":"QuestionId"}, + "ChoiceId":{"shape":"ChoiceId"} + } + }, + "ListCheckSummariesOutput":{ + "type":"structure", + "members":{ + "CheckSummaries":{ + "shape":"CheckSummaries", + "documentation":"

List of Trusted Advisor summaries related to the Well-Architected best practice.

" + }, + "NextToken":{"shape":"NextToken"} + } + }, "ListLensReviewImprovementsInput":{ "type":"structure", "required":[ @@ -2031,7 +2333,7 @@ }, "SharedWithPrefix":{ "shape":"SharedWithPrefix", - "documentation":"

The Amazon Web Services account ID or IAM role with which the lens is shared.

", + "documentation":"

The Amazon Web Services account ID, IAM role, organization ID, or organizational unit (OU) ID with which the lens is shared.

", "location":"querystring", "locationName":"SharedWithPrefix" }, @@ -2045,6 +2347,11 @@ "documentation":"

The maximum number of results to return for this request.

", "location":"querystring", "locationName":"MaxResults" + }, + "Status":{ + "shape":"ShareStatus", + "location":"querystring", + "locationName":"Status" } } }, @@ -2229,7 +2536,7 @@ }, "SharedWithPrefix":{ "shape":"SharedWithPrefix", - "documentation":"

The Amazon Web Services account ID or IAM role with which the workload is shared.

", + "documentation":"

The Amazon Web Services account ID, IAM role, organization ID, or organizational unit (OU) ID with which the workload is shared.

", "location":"querystring", "locationName":"SharedWithPrefix" }, @@ -2243,6 +2550,11 @@ "documentation":"

The maximum number of results to return for this request.

", "location":"querystring", "locationName":"MaxResults" + }, + "Status":{ + "shape":"ShareStatus", + "location":"querystring", + "locationName":"Status" } }, "documentation":"

Input for List Workload Share

" @@ -2363,6 +2675,13 @@ "LENS_VERSION_DEPRECATED" ] }, + "OrganizationSharingStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "PermissionType":{ "type":"string", "documentation":"

Permission granted on a workload share.

", @@ -2602,12 +2921,15 @@ "REJECTED", "PENDING", "REVOKED", - "EXPIRED" + "EXPIRED", + "ASSOCIATING", + "ASSOCIATED", + "FAILED" ] }, "SharedWith":{ "type":"string", - "documentation":"

The Amazon Web Services account ID or IAM role with which the workload is shared.

", + "documentation":"

The Amazon Web Services account ID, IAM role, organization ID, or organizational unit (OU) ID with which the workload is shared.

", "max":2048, "min":12 }, @@ -2615,6 +2937,11 @@ "type":"string", "max":100 }, + "StatusMessage":{ + "type":"string", + "max":512, + "min":1 + }, "TagKey":{ "type":"string", "max":128, @@ -2677,6 +3004,13 @@ "type":"timestamp", "documentation":"

The date and time recorded.

" }, + "TrustedAdvisorIntegrationStatus":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "UntagResourceInput":{ "type":"structure", "required":[ @@ -2752,6 +3086,15 @@ }, "documentation":"

Output of a update answer call.

" }, + "UpdateGlobalSettingsInput":{ + "type":"structure", + "members":{ + "OrganizationSharingStatus":{ + "shape":"OrganizationSharingStatus", + "documentation":"

The status of organization sharing settings.

" + } + } + }, "UpdateLensReviewInput":{ "type":"structure", "required":[ @@ -2804,7 +3147,7 @@ "members":{ "ShareInvitation":{ "shape":"ShareInvitation", - "documentation":"

The updated workload share invitation.

" + "documentation":"

The updated workload or custom lens share invitation.

" } } }, @@ -2833,7 +3176,15 @@ "IndustryType":{"shape":"WorkloadIndustryType"}, "Industry":{"shape":"WorkloadIndustry"}, "Notes":{"shape":"Notes"}, - "ImprovementStatus":{"shape":"WorkloadImprovementStatus"} + "ImprovementStatus":{"shape":"WorkloadImprovementStatus"}, + "DiscoveryConfig":{ + "shape":"WorkloadDiscoveryConfig", + "documentation":"

Well-Architected discovery configuration settings to associate to the workload.

" + }, + "Applications":{ + "shape":"WorkloadApplications", + "documentation":"

List of AppRegistry application ARNs to associate to the workload.

" + } }, "documentation":"

Input to update a workload.

" }, @@ -2896,6 +3247,10 @@ "ClientRequestToken":{"shape":"ClientRequestToken"} } }, + "Urls":{ + "type":"list", + "member":{"shape":"ChoiceContent"} + }, "ValidationException":{ "type":"structure", "required":["Message"], @@ -2983,6 +3338,14 @@ "Tags":{ "shape":"TagMap", "documentation":"

The tags associated with the workload.

" + }, + "DiscoveryConfig":{ + "shape":"WorkloadDiscoveryConfig", + "documentation":"

Discovery configuration associated to the workload.

" + }, + "Applications":{ + "shape":"WorkloadApplications", + "documentation":"

List of AppRegistry application ARNs associated to the workload.

" } }, "documentation":"

A workload return object.

" @@ -2993,10 +3356,16 @@ "documentation":"

The list of Amazon Web Services account IDs associated with the workload.

", "max":100 }, + "WorkloadApplications":{ + "type":"list", + "member":{"shape":"ApplicationArn"}, + "max":1 + }, "WorkloadArchitecturalDesign":{ "type":"string", "documentation":"

The URL of the architectural design for the workload.

", - "max":2048 + "max":2048, + "pattern":"^(|(https?|ftp):\\/\\/[^\\s/$.?#].[^\\s]*)$" }, "WorkloadArn":{ "type":"string", @@ -3014,6 +3383,16 @@ "max":250, "min":3 }, + "WorkloadDiscoveryConfig":{ + "type":"structure", + "members":{ + "TrustedAdvisorIntegrationStatus":{ + "shape":"TrustedAdvisorIntegrationStatus", + "documentation":"

Discovery integration status in respect to Trusted Advisor for the workload.

" + } + }, + "documentation":"

Discovery configuration associated to the workload.

" + }, "WorkloadEnvironment":{ "type":"string", "documentation":"

The environment for the workload.

", @@ -3110,7 +3489,11 @@ "ShareId":{"shape":"ShareId"}, "SharedWith":{"shape":"SharedWith"}, "PermissionType":{"shape":"PermissionType"}, - "Status":{"shape":"ShareStatus"} + "Status":{"shape":"ShareStatus"}, + "StatusMessage":{ + "shape":"StatusMessage", + "documentation":"

Optional message to compliment the Status field.

" + } }, "documentation":"

A workload share summary return object.

" }, diff --git a/botocore/data/wisdom/2020-10-19/endpoint-rule-set-1.json b/botocore/data/wisdom/2020-10-19/endpoint-rule-set-1.json new file mode 100644 index 00000000..450b4360 --- /dev/null +++ b/botocore/data/wisdom/2020-10-19/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://wisdom.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://wisdom.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/wisdom/2020-10-19/examples-1.json b/botocore/data/wisdom/2020-10-19/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/wisdom/2020-10-19/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/workdocs/2016-05-01/endpoint-rule-set-1.json b/botocore/data/workdocs/2016-05-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..57940dd1 --- /dev/null +++ b/botocore/data/workdocs/2016-05-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workdocs-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workdocs-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workdocs.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://workdocs.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/workdocs/2016-05-01/service-2.json b/botocore/data/workdocs/2016-05-01/service-2.json index c36e3d95..0755f156 100644 --- a/botocore/data/workdocs/2016-05-01/service-2.json +++ b/botocore/data/workdocs/2016-05-01/service-2.json @@ -25,7 +25,8 @@ {"shape":"UnauthorizedOperationException"}, {"shape":"UnauthorizedResourceAccessException"}, {"shape":"FailedDependencyException"}, - {"shape":"ServiceUnavailableException"} + {"shape":"ServiceUnavailableException"}, + {"shape":"ConcurrentModificationException"} ], "documentation":"

Aborts the upload of the specified document version that was previously initiated by InitiateDocumentVersionUpload. The client should make this call only when it no longer intends to upload the document version, or fails to do so.

" }, @@ -60,7 +61,8 @@ {"shape":"UnauthorizedOperationException"}, {"shape":"UnauthorizedResourceAccessException"}, {"shape":"FailedDependencyException"}, - {"shape":"ServiceUnavailableException"} + {"shape":"ServiceUnavailableException"}, + {"shape":"ProhibitedStateException"} ], "documentation":"

Creates a set of permissions for the specified folder or document. The resource permissions are overwritten if the principals already have different permissions.

" }, @@ -119,6 +121,7 @@ {"shape":"EntityAlreadyExistsException"}, {"shape":"ProhibitedStateException"}, {"shape":"ConflictingOperationException"}, + {"shape":"ConcurrentModificationException"}, {"shape":"LimitExceededException"}, {"shape":"UnauthorizedOperationException"}, {"shape":"UnauthorizedResourceAccessException"}, @@ -158,9 +161,10 @@ "errors":[ {"shape":"UnauthorizedResourceAccessException"}, {"shape":"TooManySubscriptionsException"}, - {"shape":"ServiceUnavailableException"} + {"shape":"ServiceUnavailableException"}, + {"shape":"InvalidArgumentException"} ], - "documentation":"

Configure Amazon WorkDocs to use Amazon SNS notifications. The endpoint receives a confirmation message, and must confirm the subscription.

For more information, see Subscribe to Notifications in the Amazon WorkDocs Developer Guide.

" + "documentation":"

Configure Amazon WorkDocs to use Amazon SNS notifications. The endpoint receives a confirmation message, and must confirm the subscription.

For more information, see Setting up notifications for an IAM user or role in the Amazon WorkDocs Developer Guide.

" }, "CreateUser":{ "name":"CreateUser", @@ -245,6 +249,7 @@ "input":{"shape":"DeleteDocumentRequest"}, "errors":[ {"shape":"EntityNotExistsException"}, + {"shape":"LimitExceededException"}, {"shape":"ProhibitedStateException"}, {"shape":"ConflictingOperationException"}, {"shape":"ConcurrentModificationException"}, @@ -255,6 +260,26 @@ ], "documentation":"

Permanently deletes the specified document and its associated metadata.

" }, + "DeleteDocumentVersion":{ + "name":"DeleteDocumentVersion", + "http":{ + "method":"DELETE", + "requestUri":"/api/v1/documentVersions/{DocumentId}/versions/{VersionId}", + "responseCode":204 + }, + "input":{"shape":"DeleteDocumentVersionRequest"}, + "errors":[ + {"shape":"EntityNotExistsException"}, + {"shape":"ProhibitedStateException"}, + {"shape":"ConflictingOperationException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"UnauthorizedResourceAccessException"}, + {"shape":"FailedDependencyException"}, + {"shape":"InvalidOperationException"}, + {"shape":"UnauthorizedOperationException"} + ], + "documentation":"

Deletes a version of an Amazon WorkDocs document. Use the DeletePriorVersions parameter to delete prior versions.

" + }, "DeleteFolder":{ "name":"DeleteFolder", "http":{ @@ -265,6 +290,7 @@ "input":{"shape":"DeleteFolderRequest"}, "errors":[ {"shape":"EntityNotExistsException"}, + {"shape":"LimitExceededException"}, {"shape":"ProhibitedStateException"}, {"shape":"ConflictingOperationException"}, {"shape":"ConcurrentModificationException"}, @@ -308,7 +334,8 @@ {"shape":"UnauthorizedOperationException"}, {"shape":"UnauthorizedResourceAccessException"}, {"shape":"FailedDependencyException"}, - {"shape":"ServiceUnavailableException"} + {"shape":"ServiceUnavailableException"}, + {"shape":"ProhibitedStateException"} ], "documentation":"

Deletes the specified list of labels from a resource.

" }, @@ -398,7 +425,8 @@ {"shape":"InvalidArgumentException"}, {"shape":"FailedDependencyException"}, {"shape":"ServiceUnavailableException"}, - {"shape":"ProhibitedStateException"} + {"shape":"ProhibitedStateException"}, + {"shape":"InvalidPasswordException"} ], "documentation":"

Retrieves the document versions for the specified document.

By default, only active versions are returned.

" }, @@ -464,6 +492,7 @@ "input":{"shape":"DescribeResourcePermissionsRequest"}, "output":{"shape":"DescribeResourcePermissionsResponse"}, "errors":[ + {"shape":"InvalidArgumentException"}, {"shape":"UnauthorizedOperationException"}, {"shape":"UnauthorizedResourceAccessException"}, {"shape":"FailedDependencyException"}, @@ -655,13 +684,15 @@ {"shape":"EntityAlreadyExistsException"}, {"shape":"StorageLimitExceededException"}, {"shape":"StorageLimitWillExceedException"}, + {"shape":"LimitExceededException"}, {"shape":"ProhibitedStateException"}, {"shape":"UnauthorizedOperationException"}, {"shape":"UnauthorizedResourceAccessException"}, {"shape":"FailedDependencyException"}, {"shape":"ServiceUnavailableException"}, {"shape":"DraftUploadOutOfSyncException"}, - {"shape":"ResourceAlreadyCheckedOutException"} + {"shape":"ResourceAlreadyCheckedOutException"}, + {"shape":"InvalidPasswordException"} ], "documentation":"

Creates a new document object and version object.

The client specifies the parent folder ID and name of the document to upload. The ID is optionally specified when creating a new version of an existing document. This is the first step to upload a document. Next, upload the document to the URL returned from the call, and then call UpdateDocumentVersion.

To cancel the document upload, call AbortDocumentVersionUpload.

" }, @@ -697,6 +728,26 @@ ], "documentation":"

Removes the permission for the specified principal from the specified resource.

" }, + "RestoreDocumentVersions":{ + "name":"RestoreDocumentVersions", + "http":{ + "method":"POST", + "requestUri":"/api/v1/documentVersions/restore/{DocumentId}", + "responseCode":204 + }, + "input":{"shape":"RestoreDocumentVersionsRequest"}, + "errors":[ + {"shape":"EntityNotExistsException"}, + {"shape":"ProhibitedStateException"}, + {"shape":"ConflictingOperationException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"UnauthorizedResourceAccessException"}, + {"shape":"FailedDependencyException"}, + {"shape":"InvalidOperationException"}, + {"shape":"UnauthorizedOperationException"} + ], + "documentation":"

Recovers a deleted version of an Amazon WorkDocs document.

" + }, "UpdateDocument":{ "name":"UpdateDocument", "http":{ @@ -775,6 +826,7 @@ {"shape":"UnauthorizedOperationException"}, {"shape":"UnauthorizedResourceAccessException"}, {"shape":"IllegalUserStateException"}, + {"shape":"ProhibitedStateException"}, {"shape":"FailedDependencyException"}, {"shape":"ServiceUnavailableException"}, {"shape":"DeactivatingLastSystemUserException"}, @@ -1494,6 +1546,40 @@ } } }, + "DeleteDocumentVersionRequest":{ + "type":"structure", + "required":[ + "DocumentId", + "VersionId", + "DeletePriorVersions" + ], + "members":{ + "AuthenticationToken":{ + "shape":"AuthenticationHeaderType", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", + "location":"header", + "locationName":"Authentication" + }, + "DocumentId":{ + "shape":"ResourceIdType", + "documentation":"

The ID of a document.

", + "location":"uri", + "locationName":"DocumentId" + }, + "VersionId":{ + "shape":"DocumentVersionIdType", + "documentation":"

The version ID of a document.

", + "location":"uri", + "locationName":"VersionId" + }, + "DeletePriorVersions":{ + "shape":"BooleanType", + "documentation":"

When set to TRUE, deletes the specified version and all prior versions of a document.

", + "location":"querystring", + "locationName":"deletePriorVersions" + } + } + }, "DeleteFolderContentsRequest":{ "type":"structure", "required":["FolderId"], @@ -1662,7 +1748,7 @@ "locationName":"limit" }, "Marker":{ - "shape":"MarkerType", + "shape":"SearchMarkerType", "documentation":"

The marker for the next set of results.

", "location":"querystring", "locationName":"marker" @@ -1677,7 +1763,7 @@ "documentation":"

The list of activities for the specified user and time period.

" }, "Marker":{ - "shape":"MarkerType", + "shape":"SearchMarkerType", "documentation":"

The marker for the next set of results.

" } } @@ -2055,7 +2141,7 @@ }, "Query":{ "shape":"SearchQueryType", - "documentation":"

A query to filter users by user name.

", + "documentation":"

A query to filter users by user name. Remember the following about the Userids and Query parameters:

  • If you don't use either parameter, the API returns a paginated list of all users on the site.

  • If you use both parameters, the API ignores the Query parameter.

  • The Userid parameter only returns user names that match a corresponding user ID.

  • The Query parameter runs a \"prefix\" search for users by the GivenName, SurName, or UserName fields included in a CreateUser API call. For example, querying on Ma returns Márcia Oliveira, María García, and Mateo Jackson. If you use multiple characters, the API only returns data that matches all characters. For example, querying on Ma J only returns Mateo Jackson.

", "location":"querystring", "locationName":"query" }, @@ -2288,7 +2374,8 @@ "type":"string", "max":256, "min":1, - "pattern":"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}" + "pattern":"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}", + "sensitive":true }, "EntityAlreadyExistsException":{ "type":"structure", @@ -2307,7 +2394,10 @@ "type":"structure", "members":{ "Message":{"shape":"ErrorMessageType"}, - "EntityIds":{"shape":"EntityIdList"} + "EntityIds":{ + "shape":"EntityIdList", + "documentation":"

The IDs of the non-existent resources.

" + } }, "documentation":"

The resource does not exist.

", "error":{"httpStatusCode":404}, @@ -2733,7 +2823,6 @@ }, "InitiateDocumentVersionUploadRequest":{ "type":"structure", - "required":["ParentFolderId"], "members":{ "AuthenticationToken":{ "shape":"AuthenticationHeaderType", @@ -2825,7 +2914,7 @@ "members":{ "Message":{"shape":"ErrorMessageType"} }, - "documentation":"

The maximum of 100,000 folders under the parent folder has been exceeded.

", + "documentation":"

The maximum of 100,000 files and folders under the parent folder has been exceeded.

", "error":{"httpStatusCode":409}, "exception":true }, @@ -3150,6 +3239,24 @@ "DOCUMENT" ] }, + "RestoreDocumentVersionsRequest":{ + "type":"structure", + "required":["DocumentId"], + "members":{ + "AuthenticationToken":{ + "shape":"AuthenticationHeaderType", + "documentation":"

Amazon WorkDocs authentication token. Not required when using AWS administrator credentials to access the API.

", + "location":"header", + "locationName":"Authentication" + }, + "DocumentId":{ + "shape":"ResourceIdType", + "documentation":"

The ID of the document.

", + "location":"uri", + "locationName":"DocumentId" + } + } + }, "RolePermissionType":{ "type":"string", "enum":[ @@ -3166,6 +3273,12 @@ "COOWNER" ] }, + "SearchMarkerType":{ + "type":"string", + "max":12288, + "min":1, + "pattern":"[\\u0000-\\u00FF]+" + }, "SearchQueryType":{ "type":"string", "max":512, @@ -3337,7 +3450,10 @@ }, "SubscriptionProtocolType":{ "type":"string", - "enum":["HTTPS"] + "enum":[ + "HTTPS", + "SQS" + ] }, "SubscriptionType":{ "type":"string", @@ -3717,5 +3833,5 @@ "pattern":"[\\w\\-+.]+(@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]+)?" } }, - "documentation":"

The WorkDocs API is designed for the following use cases:

  • File Migration: File migration applications are supported for users who want to migrate their files from an on-premises or off-premises file system or service. Users can insert files into a user directory structure, as well as allow for basic metadata changes, such as modifications to the permissions of files.

  • Security: Support security applications are supported for users who have additional security needs, such as antivirus or data loss prevention. The API actions, along with AWS CloudTrail, allow these applications to detect when changes occur in Amazon WorkDocs. Then, the application can take the necessary actions and replace the target file. If the target file violates the policy, the application can also choose to email the user.

  • eDiscovery/Analytics: General administrative applications are supported, such as eDiscovery and analytics. These applications can choose to mimic or record the actions in an Amazon WorkDocs site, along with AWS CloudTrail, to replicate data for eDiscovery, backup, or analytical applications.

All Amazon WorkDocs API actions are Amazon authenticated and certificate-signed. They not only require the use of the AWS SDK, but also allow for the exclusive use of IAM users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the Amazon WorkDocs site, the IAM user gains full administrative visibility into the entire Amazon WorkDocs site (or as set in the IAM policy). This includes, but is not limited to, the ability to modify file permissions and upload any file to any user. This allows developers to perform the three use cases above, as well as give users the ability to grant access on a selective basis using the IAM model.

" + "documentation":"

The WorkDocs API is designed for the following use cases:

  • File Migration: File migration applications are supported for users who want to migrate their files from an on-premises or off-premises file system or service. Users can insert files into a user directory structure, as well as allow for basic metadata changes, such as modifications to the permissions of files.

  • Security: Support security applications are supported for users who have additional security needs, such as antivirus or data loss prevention. The API actions, along with AWS CloudTrail, allow these applications to detect when changes occur in Amazon WorkDocs. Then, the application can take the necessary actions and replace the target file. If the target file violates the policy, the application can also choose to email the user.

  • eDiscovery/Analytics: General administrative applications are supported, such as eDiscovery and analytics. These applications can choose to mimic or record the actions in an Amazon WorkDocs site, along with AWS CloudTrail, to replicate data for eDiscovery, backup, or analytical applications.

All Amazon WorkDocs API actions are Amazon authenticated and certificate-signed. They not only require the use of the AWS SDK, but also allow for the exclusive use of IAM users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the Amazon WorkDocs site, the IAM user gains full administrative visibility into the entire Amazon WorkDocs site (or as set in the IAM policy). This includes, but is not limited to, the ability to modify file permissions and upload any file to any user. This allows developers to perform the three use cases above, as well as give users the ability to grant access on a selective basis using the IAM model.

The pricing for Amazon WorkDocs APIs varies depending on the API call type for these actions:

  • READ (Get*)

  • WRITE (Activate*, Add*, Create*, Deactivate*, Initiate*, Update*)

  • LIST (Describe*)

  • DELETE*, CANCEL

For information about Amazon WorkDocs API pricing, see Amazon WorkDocs Pricing.

" } diff --git a/botocore/data/worklink/2018-09-25/endpoint-rule-set-1.json b/botocore/data/worklink/2018-09-25/endpoint-rule-set-1.json new file mode 100644 index 00000000..f9472b18 --- /dev/null +++ b/botocore/data/worklink/2018-09-25/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://worklink-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://worklink-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://worklink.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://worklink.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/worklink/2018-09-25/examples-1.json b/botocore/data/worklink/2018-09-25/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/worklink/2018-09-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/workmail/2017-10-01/endpoint-rule-set-1.json b/botocore/data/workmail/2017-10-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..cab5481b --- /dev/null +++ b/botocore/data/workmail/2017-10-01/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workmail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workmail-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workmail.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://workmail.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/workmail/2017-10-01/paginators-1.json b/botocore/data/workmail/2017-10-01/paginators-1.json index 511c0ef6..40a3cadf 100644 --- a/botocore/data/workmail/2017-10-01/paginators-1.json +++ b/botocore/data/workmail/2017-10-01/paginators-1.json @@ -47,6 +47,12 @@ "limit_key": "MaxResults", "output_token": "NextToken", "result_key": "Delegates" + }, + "ListAvailabilityConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "AvailabilityConfigurations" } } } diff --git a/botocore/data/workmail/2017-10-01/service-2.json b/botocore/data/workmail/2017-10-01/service-2.json index 6c3928f3..35730296 100644 --- a/botocore/data/workmail/2017-10-01/service-2.json +++ b/botocore/data/workmail/2017-10-01/service-2.json @@ -51,6 +51,22 @@ "documentation":"

Adds a member (user or group) to the group's set.

", "idempotent":true }, + "AssumeImpersonationRole":{ + "name":"AssumeImpersonationRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssumeImpersonationRoleRequest"}, + "output":{"shape":"AssumeImpersonationRoleResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Assumes an impersonation role for the given WorkMail organization. This method returns an authentication token you can use to make impersonated calls.

" + }, "CancelMailboxExportJob":{ "name":"CancelMailboxExportJob", "http":{ @@ -87,7 +103,25 @@ {"shape":"OrganizationStateException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Adds an alias to the set of a given member (user or group) of Amazon WorkMail.

", + "documentation":"

Adds an alias to the set of a given member (user or group) of WorkMail.

", + "idempotent":true + }, + "CreateAvailabilityConfiguration":{ + "name":"CreateAvailabilityConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateAvailabilityConfigurationRequest"}, + "output":{"shape":"CreateAvailabilityConfigurationResponse"}, + "errors":[ + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"NameAvailabilityException"}, + {"shape":"InvalidParameterException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Creates an AvailabilityConfiguration for the given WorkMail organization and domain.

", "idempotent":true }, "CreateGroup":{ @@ -108,9 +142,27 @@ {"shape":"ReservedNameException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Creates a group that can be used in Amazon WorkMail by calling the RegisterToWorkMail operation.

", + "documentation":"

Creates a group that can be used in WorkMail by calling the RegisterToWorkMail operation.

", "idempotent":true }, + "CreateImpersonationRole":{ + "name":"CreateImpersonationRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateImpersonationRoleRequest"}, + "output":{"shape":"CreateImpersonationRoleResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"EntityStateException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Creates an impersonation role for the given WorkMail organization.

Idempotency ensures that an API request completes no more than one time. With an idempotent request, if the original request completes successfully, any subsequent retries also complete successfully without performing any further actions.

" + }, "CreateMobileDeviceAccessRule":{ "name":"CreateMobileDeviceAccessRule", "http":{ @@ -125,7 +177,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Creates a new mobile device access rule for the specified Amazon WorkMail organization.

" + "documentation":"

Creates a new mobile device access rule for the specified WorkMail organization.

" }, "CreateOrganization":{ "name":"CreateOrganization", @@ -142,7 +194,7 @@ {"shape":"LimitExceededException"}, {"shape":"NameAvailabilityException"} ], - "documentation":"

Creates a new Amazon WorkMail organization. Optionally, you can choose to associate an existing AWS Directory Service directory with your organization. If an AWS Directory Service directory ID is specified, the organization alias must match the directory alias. If you choose not to associate an existing directory with your organization, then we create a new Amazon WorkMail directory for you. For more information, see Adding an organization in the Amazon WorkMail Administrator Guide.

You can associate multiple email domains with an organization, then set your default email domain from the Amazon WorkMail console. You can also associate a domain that is managed in an Amazon Route 53 public hosted zone. For more information, see Adding a domain and Choosing the default domain in the Amazon WorkMail Administrator Guide.

Optionally, you can use a customer managed master key from AWS Key Management Service (AWS KMS) to encrypt email for your organization. If you don't associate an AWS KMS key, Amazon WorkMail creates a default AWS managed master key for you.

", + "documentation":"

Creates a new WorkMail organization. Optionally, you can choose to associate an existing AWS Directory Service directory with your organization. If an AWS Directory Service directory ID is specified, the organization alias must match the directory alias. If you choose not to associate an existing directory with your organization, then we create a new WorkMail directory for you. For more information, see Adding an organization in the WorkMail Administrator Guide.

You can associate multiple email domains with an organization, then choose your default email domain from the WorkMail console. You can also associate a domain that is managed in an Amazon Route 53 public hosted zone. For more information, see Adding a domain and Choosing the default domain in the WorkMail Administrator Guide.

Optionally, you can use a customer managed key from AWS Key Management Service (AWS KMS) to encrypt email for your organization. If you don't associate an AWS KMS key, WorkMail creates a default, AWS managed key for you.

", "idempotent":true }, "CreateResource":{ @@ -162,7 +214,7 @@ {"shape":"OrganizationStateException"}, {"shape":"ReservedNameException"} ], - "documentation":"

Creates a new Amazon WorkMail resource.

", + "documentation":"

Creates a new WorkMail resource.

", "idempotent":true }, "CreateUser":{ @@ -184,7 +236,7 @@ {"shape":"ReservedNameException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Creates a user who can be used in Amazon WorkMail by calling the RegisterToWorkMail operation.

", + "documentation":"

Creates a user who can be used in WorkMail by calling the RegisterToWorkMail operation.

", "idempotent":true }, "DeleteAccessControlRule":{ @@ -219,6 +271,21 @@ "documentation":"

Remove one or more specified aliases from a set of aliases for a given user.

", "idempotent":true }, + "DeleteAvailabilityConfiguration":{ + "name":"DeleteAvailabilityConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteAvailabilityConfigurationRequest"}, + "output":{"shape":"DeleteAvailabilityConfigurationResponse"}, + "errors":[ + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "documentation":"

Deletes the AvailabilityConfiguration for the given WorkMail organization and domain.

", + "idempotent":true + }, "DeleteEmailMonitoringConfiguration":{ "name":"DeleteEmailMonitoringConfiguration", "http":{ @@ -252,9 +319,24 @@ {"shape":"OrganizationStateException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Deletes a group from Amazon WorkMail.

", + "documentation":"

Deletes a group from WorkMail.

", "idempotent":true }, + "DeleteImpersonationRole":{ + "name":"DeleteImpersonationRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteImpersonationRoleRequest"}, + "output":{"shape":"DeleteImpersonationRoleResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "documentation":"

Deletes an impersonation role for the given WorkMail organization.

" + }, "DeleteMailboxPermissions":{ "name":"DeleteMailboxPermissions", "http":{ @@ -302,7 +384,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Deletes a mobile device access rule for the specified Amazon WorkMail organization.

Deleting already deleted and non-existing rules does not produce an error. In those cases, the service sends back an HTTP 200 response with an empty HTTP body.

" + "documentation":"

Deletes a mobile device access rule for the specified WorkMail organization.

Deleting already deleted and non-existing rules does not produce an error. In those cases, the service sends back an HTTP 200 response with an empty HTTP body.

" }, "DeleteOrganization":{ "name":"DeleteOrganization", @@ -317,7 +399,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Deletes an Amazon WorkMail organization and all underlying AWS resources managed by Amazon WorkMail as part of the organization. You can choose whether to delete the associated directory. For more information, see Removing an organization in the Amazon WorkMail Administrator Guide.

", + "documentation":"

Deletes an WorkMail organization and all underlying AWS resources managed by WorkMail as part of the organization. You can choose whether to delete the associated directory. For more information, see Removing an organization in the WorkMail Administrator Guide.

", "idempotent":true }, "DeleteResource":{ @@ -334,7 +416,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Deletes the specified resource.

", + "documentation":"

Deletes the specified resource.

", "idempotent":true }, "DeleteRetentionPolicy":{ @@ -370,7 +452,7 @@ {"shape":"OrganizationStateException"}, {"shape":"UnsupportedOperationException"} ], - "documentation":"

Deletes a user from Amazon WorkMail and all subsequent systems. Before you can delete a user, the user state must be DISABLED. Use the DescribeUser action to confirm the user state.

Deleting a user is permanent and cannot be undone. WorkMail archives user mailboxes for 30 days before they are permanently removed.

", + "documentation":"

Deletes a user from WorkMail and all subsequent systems. Before you can delete a user, the user state must be DISABLED. Use the DescribeUser action to confirm the user state.

Deleting a user is permanent and cannot be undone. WorkMail archives user mailboxes for 30 days before they are permanently removed.

", "idempotent":true }, "DeregisterFromWorkMail":{ @@ -388,7 +470,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Mark a user, group, or resource as no longer used in Amazon WorkMail. This action disassociates the mailbox and schedules it for clean-up. WorkMail keeps mailboxes for 30 days before they are permanently removed. The functionality in the console is Disable.

", + "documentation":"

Mark a user, group, or resource as no longer used in WorkMail. This action disassociates the mailbox and schedules it for clean-up. WorkMail keeps mailboxes for 30 days before they are permanently removed. The functionality in the console is Disable.

", "idempotent":true }, "DeregisterMailDomain":{ @@ -406,7 +488,7 @@ {"shape":"InvalidParameterException"}, {"shape":"InvalidCustomSesConfigurationException"} ], - "documentation":"

Removes a domain from Amazon WorkMail, stops email routing to WorkMail, and removes the authorization allowing WorkMail use. SES keeps the domain because other applications may use it. You must first remove any email address used by WorkMail entities before you remove the domain.

", + "documentation":"

Removes a domain from WorkMail, stops email routing to WorkMail, and removes the authorization allowing WorkMail use. SES keeps the domain because other applications may use it. You must first remove any email address used by WorkMail entities before you remove the domain.

", "idempotent":true }, "DescribeEmailMonitoringConfiguration":{ @@ -573,11 +655,12 @@ "output":{"shape":"GetAccessControlEffectResponse"}, "errors":[ {"shape":"EntityNotFoundException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"InvalidParameterException"}, {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Gets the effects of an organization's access control rules as they apply to a specified IPv4 address, access protocol action, or user ID.

" + "documentation":"

Gets the effects of an organization's access control rules as they apply to a specified IPv4 address, access protocol action, and user ID or impersonation role ID. You must provide either the user ID or impersonation role ID. Impersonation role ID can only be used with Action EWS.

" }, "GetDefaultRetentionPolicy":{ "name":"GetDefaultRetentionPolicy", @@ -596,6 +679,40 @@ "documentation":"

Gets the default retention policy details for the specified organization.

", "idempotent":true }, + "GetImpersonationRole":{ + "name":"GetImpersonationRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetImpersonationRoleRequest"}, + "output":{"shape":"GetImpersonationRoleResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Gets the impersonation role details for the given WorkMail organization.

" + }, + "GetImpersonationRoleEffect":{ + "name":"GetImpersonationRoleEffect", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetImpersonationRoleEffectRequest"}, + "output":{"shape":"GetImpersonationRoleEffectResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"EntityStateException"} + ], + "documentation":"

Tests whether the given impersonation role can impersonate a target user.

" + }, "GetMailDomain":{ "name":"GetMailDomain", "http":{ @@ -642,7 +759,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Simulates the effect of the mobile device access rules for the given attributes of a sample access event. Use this method to test the effects of the current set of mobile device access rules for the Amazon WorkMail organization for a particular user's attributes.

" + "documentation":"

Simulates the effect of the mobile device access rules for the given attributes of a sample access event. Use this method to test the effects of the current set of mobile device access rules for the WorkMail organization for a particular user's attributes.

" }, "GetMobileDeviceAccessOverride":{ "name":"GetMobileDeviceAccessOverride", @@ -693,6 +810,20 @@ "documentation":"

Creates a paginated call to list the aliases associated with a given entity.

", "idempotent":true }, + "ListAvailabilityConfigurations":{ + "name":"ListAvailabilityConfigurations", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListAvailabilityConfigurationsRequest"}, + "output":{"shape":"ListAvailabilityConfigurationsResponse"}, + "errors":[ + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "documentation":"

List all the AvailabilityConfiguration's for the given WorkMail organization.

" + }, "ListGroupMembers":{ "name":"ListGroupMembers", "http":{ @@ -728,6 +859,21 @@ "documentation":"

Returns summaries of the organization's groups.

", "idempotent":true }, + "ListImpersonationRoles":{ + "name":"ListImpersonationRoles", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListImpersonationRolesRequest"}, + "output":{"shape":"ListImpersonationRolesResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "documentation":"

Lists all the impersonation roles for the given WorkMail organization.

" + }, "ListMailDomains":{ "name":"ListMailDomains", "http":{ @@ -741,7 +887,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Lists the mail domains in a given Amazon WorkMail organization.

", + "documentation":"

Lists the mail domains in a given WorkMail organization.

", "idempotent":true }, "ListMailboxExportJobs":{ @@ -806,7 +952,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Lists the mobile device access rules for the specified Amazon WorkMail organization.

" + "documentation":"

Lists the mobile device access rules for the specified WorkMail organization.

" }, "ListOrganizations":{ "name":"ListOrganizations", @@ -867,7 +1013,7 @@ "errors":[ {"shape":"ResourceNotFoundException"} ], - "documentation":"

Lists the tags applied to an Amazon WorkMail organization resource.

" + "documentation":"

Lists the tags applied to an WorkMail organization resource.

" }, "ListUsers":{ "name":"ListUsers", @@ -897,10 +1043,11 @@ {"shape":"LimitExceededException"}, {"shape":"InvalidParameterException"}, {"shape":"EntityNotFoundException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Adds a new access control rule for the specified organization. The rule allows or denies access to the organization for the specified IPv4 addresses, access protocol actions, and user IDs. Adding a new rule with the same name as an existing rule replaces the older rule.

" + "documentation":"

Adds a new access control rule for the specified organization. The rule allows or denies access to the organization for the specified IPv4 addresses, access protocol actions, user IDs and impersonation IDs. Adding a new rule with the same name as an existing rule replaces the older rule.

" }, "PutEmailMonitoringConfiguration":{ "name":"PutEmailMonitoringConfiguration", @@ -1001,7 +1148,7 @@ {"shape":"LimitExceededException"}, {"shape":"InvalidParameterException"} ], - "documentation":"

Registers a new domain in Amazon WorkMail and SES, and configures it for use by WorkMail. Emails received by SES for this domain are routed to the specified WorkMail organization, and WorkMail has permanent permission to use the specified domain for sending your users' emails.

", + "documentation":"

Registers a new domain in WorkMail and SES, and configures it for use by WorkMail. Emails received by SES for this domain are routed to the specified WorkMail organization, and WorkMail has permanent permission to use the specified domain for sending your users' emails.

", "idempotent":true }, "RegisterToWorkMail":{ @@ -1025,7 +1172,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Registers an existing and disabled user, group, or resource for Amazon WorkMail use by associating a mailbox and calendaring capabilities. It performs no change if the user, group, or resource is enabled and fails if the user, group, or resource is deleted. This operation results in the accumulation of costs. For more information, see Pricing. The equivalent console functionality for this operation is Enable.

Users can either be created by calling the CreateUser API operation or they can be synchronized from your directory. For more information, see DeregisterFromWorkMail.

", + "documentation":"

Registers an existing and disabled user, group, or resource for WorkMail use by associating a mailbox and calendaring capabilities. It performs no change if the user, group, or resource is enabled and fails if the user, group, or resource is deleted. This operation results in the accumulation of costs. For more information, see Pricing. The equivalent console functionality for this operation is Enable.

Users can either be created by calling the CreateUser API operation or they can be synchronized from your directory. For more information, see DeregisterFromWorkMail.

", "idempotent":true }, "ResetPassword":{ @@ -1065,7 +1212,7 @@ {"shape":"EntityNotFoundException"}, {"shape":"LimitExceededException"} ], - "documentation":"

Starts a mailbox export job to export MIME-format email messages and calendar items from the specified mailbox to the specified Amazon Simple Storage Service (Amazon S3) bucket. For more information, see Exporting mailbox content in the Amazon WorkMail Administrator Guide.

", + "documentation":"

Starts a mailbox export job to export MIME-format email messages and calendar items from the specified mailbox to the specified Amazon Simple Storage Service (Amazon S3) bucket. For more information, see Exporting mailbox content in the WorkMail Administrator Guide.

", "idempotent":true }, "TagResource":{ @@ -1081,7 +1228,23 @@ {"shape":"TooManyTagsException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Applies the specified tags to the specified Amazon WorkMail organization resource.

" + "documentation":"

Applies the specified tags to the specified WorkMailorganization resource.

" + }, + "TestAvailabilityConfiguration":{ + "name":"TestAvailabilityConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"TestAvailabilityConfigurationRequest"}, + "output":{"shape":"TestAvailabilityConfigurationResponse"}, + "errors":[ + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Performs a test on an availability provider to ensure that access is allowed. For EWS, it verifies the provided credentials can be used to successfully log in. For Lambda, it verifies that the Lambda function can be invoked and that the resource access policy was configured to deny anonymous access. An anonymous invocation is one done without providing either a SourceArn or SourceAccount header.

The request must contain either one provider definition (EwsProvider or LambdaProvider) or the DomainName parameter. If the DomainName parameter is provided, the configuration stored under the DomainName will be tested.

" }, "UntagResource":{ "name":"UntagResource", @@ -1094,7 +1257,24 @@ "errors":[ {"shape":"ResourceNotFoundException"} ], - "documentation":"

Untags the specified tags from the specified Amazon WorkMail organization resource.

" + "documentation":"

Untags the specified tags from the specified WorkMail organization resource.

" + }, + "UpdateAvailabilityConfiguration":{ + "name":"UpdateAvailabilityConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAvailabilityConfigurationRequest"}, + "output":{"shape":"UpdateAvailabilityConfigurationResponse"}, + "errors":[ + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"} + ], + "documentation":"

Updates an existing AvailabilityConfiguration for the given WorkMail organization and domain.

", + "idempotent":true }, "UpdateDefaultMailDomain":{ "name":"UpdateDefaultMailDomain", @@ -1114,6 +1294,25 @@ "documentation":"

Updates the default mail domain for an organization. The default mail domain is used by the WorkMail AWS Console to suggest an email address when enabling a mail user. You can only have one default domain.

", "idempotent":true }, + "UpdateImpersonationRole":{ + "name":"UpdateImpersonationRole", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateImpersonationRoleRequest"}, + "output":{"shape":"UpdateImpersonationRoleResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"EntityStateException"}, + {"shape":"LimitExceededException"} + ], + "documentation":"

Updates an impersonation role for the given WorkMail organization.

" + }, "UpdateMailboxQuota":{ "name":"UpdateMailboxQuota", "http":{ @@ -1146,7 +1345,7 @@ {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"} ], - "documentation":"

Updates a mobile device access rule for the specified Amazon WorkMail organization.

" + "documentation":"

Updates a mobile device access rule for the specified WorkMail organization.

" }, "UpdatePrimaryEmailAddress":{ "name":"UpdatePrimaryEmailAddress", @@ -1244,9 +1443,17 @@ "DateModified":{ "shape":"Timestamp", "documentation":"

The date that the rule was modified.

" + }, + "ImpersonationRoleIds":{ + "shape":"ImpersonationRoleIdList", + "documentation":"

Impersonation role IDs to include in the rule.

" + }, + "NotImpersonationRoleIds":{ + "shape":"ImpersonationRoleIdList", + "documentation":"

Impersonation role IDs to exclude from the rule.

" } }, - "documentation":"

A rule that controls access to an Amazon WorkMail organization.

" + "documentation":"

A rule that controls access to an WorkMail organization.

" }, "AccessControlRuleAction":{ "type":"string", @@ -1285,6 +1492,13 @@ "max":10, "min":0 }, + "AccessEffect":{ + "type":"string", + "enum":[ + "ALLOW", + "DENY" + ] + }, "ActionsList":{ "type":"list", "member":{"shape":"AccessControlRuleAction"}, @@ -1354,6 +1568,77 @@ "members":{ } }, + "AssumeImpersonationRoleRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "ImpersonationRoleId" + ], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization under which the impersonation role will be assumed.

" + }, + "ImpersonationRoleId":{ + "shape":"ImpersonationRoleId", + "documentation":"

The impersonation role ID to assume.

" + } + } + }, + "AssumeImpersonationRoleResponse":{ + "type":"structure", + "members":{ + "Token":{ + "shape":"ImpersonationToken", + "documentation":"

The authentication token for the impersonation role.

" + }, + "ExpiresIn":{ + "shape":"ExpiresIn", + "documentation":"

The authentication token's validity, in seconds.

" + } + } + }, + "AvailabilityConfiguration":{ + "type":"structure", + "members":{ + "DomainName":{ + "shape":"DomainName", + "documentation":"

Displays the domain to which the provider applies.

" + }, + "ProviderType":{ + "shape":"AvailabilityProviderType", + "documentation":"

Displays the provider type that applies to this domain.

" + }, + "EwsProvider":{ + "shape":"RedactedEwsAvailabilityProvider", + "documentation":"

If ProviderType is EWS, then this field contains RedactedEwsAvailabilityProvider. Otherwise, it is not required.

" + }, + "LambdaProvider":{ + "shape":"LambdaAvailabilityProvider", + "documentation":"

If ProviderType is LAMBDA then this field contains LambdaAvailabilityProvider. Otherwise, it is not required.

" + }, + "DateCreated":{ + "shape":"Timestamp", + "documentation":"

The date and time at which the availability configuration was created.

" + }, + "DateModified":{ + "shape":"Timestamp", + "documentation":"

The date and time at which the availability configuration was last modified.

" + } + }, + "documentation":"

List all the AvailabilityConfiguration's for the given WorkMail organization.

" + }, + "AvailabilityConfigurationList":{ + "type":"list", + "member":{"shape":"AvailabilityConfiguration"} + }, + "AvailabilityProviderType":{ + "type":"string", + "enum":[ + "EWS", + "LAMBDA" + ] + }, "BookingOptions":{ "type":"structure", "members":{ @@ -1429,6 +1714,41 @@ "members":{ } }, + "CreateAvailabilityConfigurationRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "DomainName" + ], + "members":{ + "ClientToken":{ + "shape":"IdempotencyClientToken", + "documentation":"

An idempotent token that ensures that an API request is executed only once.

", + "idempotencyToken":true + }, + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization for which the AvailabilityConfiguration will be created.

" + }, + "DomainName":{ + "shape":"DomainName", + "documentation":"

The domain to which the provider applies.

" + }, + "EwsProvider":{ + "shape":"EwsAvailabilityProvider", + "documentation":"

Exchange Web Services (EWS) availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider.

" + }, + "LambdaProvider":{ + "shape":"LambdaAvailabilityProvider", + "documentation":"

Lambda availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider.

" + } + } + }, + "CreateAvailabilityConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "CreateGroupRequest":{ "type":"structure", "required":[ @@ -1455,6 +1775,51 @@ } } }, + "CreateImpersonationRoleRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "Name", + "Type", + "Rules" + ], + "members":{ + "ClientToken":{ + "shape":"IdempotencyClientToken", + "documentation":"

The idempotency token for the client request.

", + "idempotencyToken":true + }, + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization to create the new impersonation role within.

" + }, + "Name":{ + "shape":"ImpersonationRoleName", + "documentation":"

The name of the new impersonation role.

" + }, + "Type":{ + "shape":"ImpersonationRoleType", + "documentation":"

The impersonation role's type. The available impersonation role types are READ_ONLY or FULL_ACCESS.

" + }, + "Description":{ + "shape":"ImpersonationRoleDescription", + "documentation":"

The description of the new impersonation role.

" + }, + "Rules":{ + "shape":"ImpersonationRuleList", + "documentation":"

The list of rules for the impersonation role.

" + } + } + }, + "CreateImpersonationRoleResponse":{ + "type":"structure", + "members":{ + "ImpersonationRoleId":{ + "shape":"ImpersonationRoleId", + "documentation":"

The new impersonation role ID.

" + } + } + }, "CreateMobileDeviceAccessRuleRequest":{ "type":"structure", "required":[ @@ -1465,7 +1830,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization under which the rule will be created.

" + "documentation":"

The WorkMail organization under which the rule will be created.

" }, "ClientToken":{ "shape":"IdempotencyClientToken", @@ -1550,11 +1915,11 @@ }, "KmsKeyArn":{ "shape":"KmsKeyArn", - "documentation":"

The Amazon Resource Name (ARN) of a customer managed master key from AWS KMS.

" + "documentation":"

The Amazon Resource Name (ARN) of a customer managed key from AWS KMS.

" }, "EnableInteroperability":{ "shape":"Boolean", - "documentation":"

When true, allows organization interoperability between Amazon WorkMail and Microsoft Exchange. Can only be set to true if an AD Connector directory ID is included in the request.

" + "documentation":"

When true, allows organization interoperability between WorkMail and Microsoft Exchange. If true, you must include a AD Connector directory ID in the request.

" } } }, @@ -1701,6 +2066,28 @@ "members":{ } }, + "DeleteAvailabilityConfigurationRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "DomainName" + ], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization for which the AvailabilityConfiguration will be deleted.

" + }, + "DomainName":{ + "shape":"DomainName", + "documentation":"

The domain for which the AvailabilityConfiguration will be deleted.

" + } + } + }, + "DeleteAvailabilityConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteEmailMonitoringConfigurationRequest":{ "type":"structure", "required":["OrganizationId"], @@ -1738,6 +2125,28 @@ "members":{ } }, + "DeleteImpersonationRoleRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "ImpersonationRoleId" + ], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization from which to delete the impersonation role.

" + }, + "ImpersonationRoleId":{ + "shape":"ImpersonationRoleId", + "documentation":"

The ID of the impersonation role to delete.

" + } + } + }, + "DeleteImpersonationRoleResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteMailboxPermissionsRequest":{ "type":"structure", "required":[ @@ -1775,7 +2184,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization for which the access override will be deleted.

" + "documentation":"

The WorkMail organization for which the access override will be deleted.

" }, "UserId":{ "shape":"EntityIdentifier", @@ -1801,7 +2210,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization under which the rule will be deleted.

" + "documentation":"

The WorkMail organization under which the rule will be deleted.

" }, "MobileDeviceAccessRuleId":{ "shape":"MobileDeviceAccessRuleId", @@ -1924,7 +2333,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The identifier for the organization under which the Amazon WorkMail entity exists.

" + "documentation":"

The identifier for the organization under which the WorkMail entity exists.

" }, "EntityId":{ "shape":"WorkMailIdentifier", @@ -1946,11 +2355,11 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization for which the domain will be deregistered.

" + "documentation":"

The WorkMail organization for which the domain will be deregistered.

" }, "DomainName":{ "shape":"WorkMailDomainName", - "documentation":"

The domain to deregister in WorkMail and SES.

" + "documentation":"

The domain to deregister in WorkMail and SES.

" } } }, @@ -2016,7 +2425,7 @@ }, "State":{ "shape":"EntityState", - "documentation":"

The state of the user: enabled (registered to Amazon WorkMail) or disabled (deregistered or never registered to WorkMail).

" + "documentation":"

The state of the user: enabled (registered to WorkMail) or disabled (deregistered or never registered to WorkMail).

" }, "EnabledDate":{ "shape":"Timestamp", @@ -2144,7 +2553,7 @@ }, "DirectoryId":{ "shape":"String", - "documentation":"

The identifier for the directory associated with an Amazon WorkMail organization.

" + "documentation":"

The identifier for the directory associated with an WorkMail organization.

" }, "DirectoryType":{ "shape":"String", @@ -2210,7 +2619,7 @@ }, "State":{ "shape":"EntityState", - "documentation":"

The state of the resource: enabled (registered to Amazon WorkMail), disabled (deregistered or never registered to WorkMail), or deleted.

" + "documentation":"

The state of the resource: enabled (registered to WorkMail), disabled (deregistered or never registered to WorkMail), or deleted.

" }, "EnabledDate":{ "shape":"Timestamp", @@ -2260,19 +2669,19 @@ }, "State":{ "shape":"EntityState", - "documentation":"

The state of a user: enabled (registered to Amazon WorkMail) or disabled (deregistered or never registered to WorkMail).

" + "documentation":"

The state of a user: enabled (registered to WorkMail) or disabled (deregistered or never registered to WorkMail).

" }, "UserRole":{ "shape":"UserRole", - "documentation":"

In certain cases, other entities are modeled as users. If interoperability is enabled, resources are imported into Amazon WorkMail as users. Because different WorkMail organizations rely on different directory types, administrators can distinguish between an unregistered user (account is disabled and has a user role) and the directory administrators. The values are USER, RESOURCE, and SYSTEM_USER.

" + "documentation":"

In certain cases, other entities are modeled as users. If interoperability is enabled, resources are imported into WorkMail as users. Because different WorkMail organizations rely on different directory types, administrators can distinguish between an unregistered user (account is disabled and has a user role) and the directory administrators. The values are USER, RESOURCE, and SYSTEM_USER.

" }, "EnabledDate":{ "shape":"Timestamp", - "documentation":"

The date and time at which the user was enabled for Amazon WorkMail usage, in UNIX epoch time format.

" + "documentation":"

The date and time at which the user was enabled for WorkMailusage, in UNIX epoch time format.

" }, "DisabledDate":{ "shape":"Timestamp", - "documentation":"

The date and time at which the user was disabled for Amazon WorkMail usage, in UNIX epoch time format.

" + "documentation":"

The date and time at which the user was disabled for WorkMail usage, in UNIX epoch time format.

" } } }, @@ -2462,7 +2871,7 @@ "documentation":"

The hosted zone ID for a domain hosted in Route 53. Required when configuring a domain hosted in Route 53.

" } }, - "documentation":"

The domain to associate with an Amazon WorkMail organization.

When you configure a domain hosted in Amazon Route 53 (Route 53), all recommended DNS records are added to the organization when you create it. For more information, see Adding a domain in the Amazon WorkMail Administrator Guide.

" + "documentation":"

The domain to associate with an WorkMail organization.

When you configure a domain hosted in Amazon Route 53 (Route 53), all recommended DNS records are added to the organization when you create it. For more information, see Adding a domain in the WorkMail Administrator Guide.

" }, "DomainName":{ "type":"string", @@ -2528,6 +2937,38 @@ "documentation":"

You are performing an operation on a user, group, or resource that isn't in the expected state, such as trying to delete an active user.

", "exception":true }, + "EwsAvailabilityProvider":{ + "type":"structure", + "required":[ + "EwsEndpoint", + "EwsUsername", + "EwsPassword" + ], + "members":{ + "EwsEndpoint":{ + "shape":"Url", + "documentation":"

The endpoint of the remote EWS server.

" + }, + "EwsUsername":{ + "shape":"ExternalUserName", + "documentation":"

The username used to authenticate the remote EWS server.

" + }, + "EwsPassword":{ + "shape":"Password", + "documentation":"

The password used to authenticate the remote EWS server.

" + } + }, + "documentation":"

Describes an EWS based availability provider. This is only used as input to the service.

" + }, + "ExpiresIn":{ + "type":"long", + "box":true + }, + "ExternalUserName":{ + "type":"string", + "max":256, + "pattern":"[\\u0020-\\u00FF]+" + }, "FolderConfiguration":{ "type":"structure", "required":[ @@ -2569,8 +3010,7 @@ "required":[ "OrganizationId", "IpAddress", - "Action", - "UserId" + "Action" ], "members":{ "OrganizationId":{ @@ -2588,6 +3028,10 @@ "UserId":{ "shape":"WorkMailIdentifier", "documentation":"

The user ID.

" + }, + "ImpersonationRoleId":{ + "shape":"ImpersonationRoleId", + "documentation":"

The impersonation role ID.

" } } }, @@ -2635,6 +3079,95 @@ } } }, + "GetImpersonationRoleEffectRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "ImpersonationRoleId", + "TargetUser" + ], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization where the impersonation role is defined.

" + }, + "ImpersonationRoleId":{ + "shape":"ImpersonationRoleId", + "documentation":"

The impersonation role ID to test.

" + }, + "TargetUser":{ + "shape":"EntityIdentifier", + "documentation":"

The WorkMail organization user chosen to test the impersonation role. The following identity formats are available:

  • User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234

  • Email address: user@domain.tld

  • User name: user

" + } + } + }, + "GetImpersonationRoleEffectResponse":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"ImpersonationRoleType", + "documentation":"

The impersonation role type.

" + }, + "Effect":{ + "shape":"AccessEffect", + "documentation":"

Effect of the impersonation role on the target user based on its rules. Available effects are ALLOW or DENY.

" + }, + "MatchedRules":{ + "shape":"ImpersonationMatchedRuleList", + "documentation":"

A list of the rules that match the input and produce the configured effect.

" + } + } + }, + "GetImpersonationRoleRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "ImpersonationRoleId" + ], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization from which to retrieve the impersonation role.

" + }, + "ImpersonationRoleId":{ + "shape":"ImpersonationRoleId", + "documentation":"

The impersonation role ID to retrieve.

" + } + } + }, + "GetImpersonationRoleResponse":{ + "type":"structure", + "members":{ + "ImpersonationRoleId":{ + "shape":"ImpersonationRoleId", + "documentation":"

The impersonation role ID.

" + }, + "Name":{ + "shape":"ImpersonationRoleName", + "documentation":"

The impersonation role name.

" + }, + "Type":{ + "shape":"ImpersonationRoleType", + "documentation":"

The impersonation role type.

" + }, + "Description":{ + "shape":"ImpersonationRoleDescription", + "documentation":"

The impersonation role description.

" + }, + "Rules":{ + "shape":"ImpersonationRuleList", + "documentation":"

The list of rules for the given impersonation role.

" + }, + "DateCreated":{ + "shape":"Timestamp", + "documentation":"

The date when the impersonation role was created.

" + }, + "DateModified":{ + "shape":"Timestamp", + "documentation":"

The date when the impersonation role was last modified.

" + } + } + }, "GetMailDomainRequest":{ "type":"structure", "required":[ @@ -2644,7 +3177,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization for which the domain is retrieved.

" + "documentation":"

The WorkMail organization for which the domain is retrieved.

" }, "DomainName":{ "shape":"WorkMailDomainName", @@ -2657,7 +3190,7 @@ "members":{ "Records":{ "shape":"DnsRecords", - "documentation":"

A list of the DNS records that Amazon WorkMail recommends adding in your DNS provider for the best user experience. The records configure your domain with DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for more details.

" + "documentation":"

A list of the DNS records that WorkMail recommends adding in your DNS provider for the best user experience. The records configure your domain with DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for more details.

" }, "IsTestDomain":{ "shape":"Boolean", @@ -2713,7 +3246,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization to simulate the access effect for.

" + "documentation":"

The WorkMail organization to simulate the access effect for.

" }, "DeviceType":{ "shape":"DeviceType", @@ -2738,7 +3271,7 @@ "members":{ "Effect":{ "shape":"MobileDeviceAccessRuleEffect", - "documentation":"

The effect of the simulated access, ALLOW or DENY, after evaluating mobile device access rules in the Amazon WorkMail organization for the simulated user parameters.

" + "documentation":"

The effect of the simulated access, ALLOW or DENY, after evaluating mobile device access rules in the WorkMail organization for the simulated user parameters.

" }, "MatchedRules":{ "shape":"MobileDeviceAccessMatchedRuleList", @@ -2756,7 +3289,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization to which you want to apply the override.

" + "documentation":"

The WorkMail organization to which you want to apply the override.

" }, "UserId":{ "shape":"EntityIdentifier", @@ -2818,14 +3351,14 @@ }, "EnabledDate":{ "shape":"Timestamp", - "documentation":"

The date indicating when the group was enabled for Amazon WorkMail use.

" + "documentation":"

The date indicating when the group was enabled for WorkMail use.

" }, "DisabledDate":{ "shape":"Timestamp", - "documentation":"

The date indicating when the group was disabled from Amazon WorkMail use.

" + "documentation":"

The date indicating when the group was disabled from WorkMail use.

" } }, - "documentation":"

The representation of an Amazon WorkMail group.

" + "documentation":"

The representation of an WorkMail group.

" }, "GroupName":{ "type":"string", @@ -2849,6 +3382,153 @@ "min":1, "pattern":"[\\x21-\\x7e]+" }, + "ImpersonationMatchedRule":{ + "type":"structure", + "members":{ + "ImpersonationRuleId":{ + "shape":"ImpersonationRuleId", + "documentation":"

The ID of the rule that matched the input

" + }, + "Name":{ + "shape":"ImpersonationRuleName", + "documentation":"

The name of the rule that matched the input.

" + } + }, + "documentation":"

The impersonation rule that matched the input.

" + }, + "ImpersonationMatchedRuleList":{ + "type":"list", + "member":{"shape":"ImpersonationMatchedRule"}, + "max":10, + "min":0 + }, + "ImpersonationRole":{ + "type":"structure", + "members":{ + "ImpersonationRoleId":{ + "shape":"ImpersonationRoleId", + "documentation":"

The identifier of the impersonation role.

" + }, + "Name":{ + "shape":"ImpersonationRoleName", + "documentation":"

The impersonation role name.

" + }, + "Type":{ + "shape":"ImpersonationRoleType", + "documentation":"

The impersonation role type.

" + }, + "DateCreated":{ + "shape":"Timestamp", + "documentation":"

The date when the impersonation role was created.

" + }, + "DateModified":{ + "shape":"Timestamp", + "documentation":"

The date when the impersonation role was last modified.

" + } + }, + "documentation":"

An impersonation role for the given WorkMail organization.

" + }, + "ImpersonationRoleDescription":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[^\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F\\x3C\\x3E\\x5C]+" + }, + "ImpersonationRoleId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9_-]+" + }, + "ImpersonationRoleIdList":{ + "type":"list", + "member":{"shape":"ImpersonationRoleId"}, + "max":10, + "min":0 + }, + "ImpersonationRoleList":{ + "type":"list", + "member":{"shape":"ImpersonationRole"}, + "max":20, + "min":0 + }, + "ImpersonationRoleName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[^\\x00-\\x1F\\x7F\\x3C\\x3E\\x5C]+" + }, + "ImpersonationRoleType":{ + "type":"string", + "enum":[ + "FULL_ACCESS", + "READ_ONLY" + ] + }, + "ImpersonationRule":{ + "type":"structure", + "required":[ + "ImpersonationRuleId", + "Effect" + ], + "members":{ + "ImpersonationRuleId":{ + "shape":"ImpersonationRuleId", + "documentation":"

The identifier of the rule.

" + }, + "Name":{ + "shape":"ImpersonationRuleName", + "documentation":"

The rule name.

" + }, + "Description":{ + "shape":"ImpersonationRuleDescription", + "documentation":"

The rule description.

" + }, + "Effect":{ + "shape":"AccessEffect", + "documentation":"

The effect of the rule when it matches the input. Allowed effect values are ALLOW or DENY.

" + }, + "TargetUsers":{ + "shape":"TargetUsers", + "documentation":"

A list of user IDs that match the rule.

" + }, + "NotTargetUsers":{ + "shape":"TargetUsers", + "documentation":"

A list of user IDs that don't match the rule.

" + } + }, + "documentation":"

The rules for the given impersonation role.

" + }, + "ImpersonationRuleDescription":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[^\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F\\x3C\\x3E\\x5C]+" + }, + "ImpersonationRuleId":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[a-zA-Z0-9_-]+" + }, + "ImpersonationRuleList":{ + "type":"list", + "member":{"shape":"ImpersonationRule"}, + "max":10, + "min":0 + }, + "ImpersonationRuleName":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[^\\x00-\\x1F\\x7F\\x3C\\x3E\\x5C]+" + }, + "ImpersonationToken":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\x21-\\x7e]+" + }, "InvalidConfigurationException":{ "type":"structure", "members":{ @@ -2862,7 +3542,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

You SES configuration has customizations that Amazon WorkMail cannot save. The error message lists the invalid setting. For examples of invalid settings, refer to CreateReceiptRule.

", + "documentation":"

You SES configuration has customizations that WorkMail cannot save. The error message lists the invalid setting. For examples of invalid settings, refer to CreateReceiptRule.

", "exception":true }, "InvalidParameterException":{ @@ -2909,6 +3589,23 @@ "min":20, "pattern":"arn:aws:kms:[a-z0-9-]*:[a-z0-9-]+:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}" }, + "LambdaArn":{ + "type":"string", + "max":256, + "min":49, + "pattern":"arn:aws:lambda:[a-z]{2}-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9\\-_\\.]+(:(\\$LATEST|[a-zA-Z0-9\\-_]+))?" + }, + "LambdaAvailabilityProvider":{ + "type":"structure", + "required":["LambdaArn"], + "members":{ + "LambdaArn":{ + "shape":"LambdaArn", + "documentation":"

The Amazon Resource Name (ARN) of the Lambda that acts as the availability provider.

" + } + }, + "documentation":"

Describes a Lambda based availability provider.

" + }, "LimitExceededException":{ "type":"structure", "members":{ @@ -2974,6 +3671,37 @@ } } }, + "ListAvailabilityConfigurationsRequest":{ + "type":"structure", + "required":["OrganizationId"], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization for which the AvailabilityConfiguration's will be listed.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to return in a single call.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to retrieve the next page of results. The first call does not require a token.

" + } + } + }, + "ListAvailabilityConfigurationsResponse":{ + "type":"structure", + "members":{ + "AvailabilityConfigurations":{ + "shape":"AvailabilityConfigurationList", + "documentation":"

The list of AvailabilityConfiguration's that exist for the specified WorkMail organization.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to use to retrieve the next page of results. The value is null when there are no further results to return.

" + } + } + }, "ListGroupMembersRequest":{ "type":"structure", "required":[ @@ -3043,13 +3771,44 @@ } } }, + "ListImpersonationRolesRequest":{ + "type":"structure", + "required":["OrganizationId"], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization to which the listed impersonation roles belong.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token used to retrieve the next page of results. The first call doesn't require a token.

" + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results returned in a single call.

" + } + } + }, + "ListImpersonationRolesResponse":{ + "type":"structure", + "members":{ + "Roles":{ + "shape":"ImpersonationRoleList", + "documentation":"

The list of impersonation roles under the given WorkMail organization.

" + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

The token to retrieve the next page of results. The value is null when there are no results to return.

" + } + } + }, "ListMailDomainsRequest":{ "type":"structure", "required":["OrganizationId"], "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization for which to list domains.

" + "documentation":"

The WorkMail organization for which to list domains.

" }, "MaxResults":{ "shape":"MaxResults", @@ -3066,7 +3825,7 @@ "members":{ "MailDomains":{ "shape":"MailDomains", - "documentation":"

The list of mail domain summaries, specifying domains that exist in the specified Amazon WorkMail organization, along with the information about whether the domain is or isn't the default.

" + "documentation":"

The list of mail domain summaries, specifying domains that exist in the specified WorkMail organization, along with the information about whether the domain is or isn't the default.

" }, "NextToken":{ "shape":"NextToken", @@ -3149,7 +3908,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization under which to list mobile device access overrides.

" + "documentation":"

The WorkMail organization under which to list mobile device access overrides.

" }, "UserId":{ "shape":"EntityIdentifier", @@ -3174,7 +3933,7 @@ "members":{ "Overrides":{ "shape":"MobileDeviceAccessOverridesList", - "documentation":"

The list of mobile device access overrides that exist for the specified Amazon WorkMail organization and user.

" + "documentation":"

The list of mobile device access overrides that exist for the specified WorkMail organization and user.

" }, "NextToken":{ "shape":"NextToken", @@ -3188,7 +3947,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization for which to list the rules.

" + "documentation":"

The WorkMail organization for which to list the rules.

" } } }, @@ -3197,7 +3956,7 @@ "members":{ "Rules":{ "shape":"MobileDeviceAccessRulesList", - "documentation":"

The list of mobile device access rules that exist under the specified Amazon WorkMail organization.

" + "documentation":"

The list of mobile device access rules that exist under the specified WorkMail organization.

" } } }, @@ -3261,7 +4020,7 @@ }, "NextToken":{ "shape":"NextToken", - "documentation":"

The token used to paginate through the delegates associated with a resource. While results are still available, it has an associated value. When the last page is reached, the token is empty.

" + "documentation":"

The token used to paginate through the delegates associated with a resource. While results are still available, it has an associated value. When the last page is reached, the token is empty.

" } } }, @@ -3493,11 +4252,11 @@ }, "EnabledDate":{ "shape":"Timestamp", - "documentation":"

The date indicating when the member was enabled for Amazon WorkMail use.

" + "documentation":"

The date indicating when the member was enabled for WorkMail use.

" }, "DisabledDate":{ "shape":"Timestamp", - "documentation":"

The date indicating when the member was disabled from Amazon WorkMail use.

" + "documentation":"

The date indicating when the member was disabled from WorkMail use.

" } }, "documentation":"

The representation of a user or group.

" @@ -3572,7 +4331,7 @@ "members":{ "MobileDeviceAccessRuleId":{ "shape":"MobileDeviceAccessRuleId", - "documentation":"

The ID assigned to a mobile access rule.

" + "documentation":"

The ID assigned to a mobile access rule.

" }, "Name":{ "shape":"MobileDeviceAccessRuleName", @@ -3588,7 +4347,7 @@ }, "DeviceTypes":{ "shape":"DeviceTypeList", - "documentation":"

Device types that a rule will match.

" + "documentation":"

Device types that a rule will match.

" }, "NotDeviceTypes":{ "shape":"DeviceTypeList", @@ -3627,7 +4386,7 @@ "documentation":"

The date and time at which an access rule was modified.

" } }, - "documentation":"

A rule that controls access to mobile devices for an Amazon WorkMail group.

" + "documentation":"

A rule that controls access to mobile devices for an WorkMail group.

" }, "MobileDeviceAccessRuleDescription":{ "type":"string", @@ -3665,7 +4424,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

The user, group, or resource name isn't unique in Amazon WorkMail.

", + "documentation":"

The user, group, or resource name isn't unique in WorkMail.

", "exception":true }, "NextToken":{ @@ -3836,6 +4595,14 @@ "OrganizationId":{ "shape":"OrganizationId", "documentation":"

The identifier of the organization.

" + }, + "ImpersonationRoleIds":{ + "shape":"ImpersonationRoleIdList", + "documentation":"

Impersonation role IDs to include in the rule.

" + }, + "NotImpersonationRoleIds":{ + "shape":"ImpersonationRoleIdList", + "documentation":"

Impersonation role IDs to exclude from the rule.

" } } }, @@ -3880,7 +4647,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The ID of the organization that you are applying the DMARC policy to.

" + "documentation":"

The ID of the organization that you are applying the DMARC policy to.

" }, "Enforced":{ "shape":"BooleanObject", @@ -3936,7 +4703,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

Identifies the Amazon WorkMail organization for which you create the override.

" + "documentation":"

Identifies the WorkMail organization for which you create the override.

" }, "UserId":{ "shape":"EntityIdentifier", @@ -3996,6 +4763,20 @@ "members":{ } }, + "RedactedEwsAvailabilityProvider":{ + "type":"structure", + "members":{ + "EwsEndpoint":{ + "shape":"Url", + "documentation":"

The endpoint of the remote EWS server.

" + }, + "EwsUsername":{ + "shape":"ExternalUserName", + "documentation":"

The username used to authenticate the remote EWS server.

" + } + }, + "documentation":"

Describes an EWS based availability provider when returned from the service. It does not contain the password of the endpoint.

" + }, "RegisterMailDomainRequest":{ "type":"structure", "required":[ @@ -4010,11 +4791,11 @@ }, "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization under which you're creating the domain.

" + "documentation":"

The WorkMail organization under which you're creating the domain.

" }, "DomainName":{ "shape":"WorkMailDomainName", - "documentation":"

The name of the mail domain to create in Amazon WorkMail and SES.

" + "documentation":"

The name of the mail domain to create in WorkMail and SES.

" } } }, @@ -4055,7 +4836,7 @@ "members":{ "Message":{"shape":"String"} }, - "documentation":"

This user, group, or resource name is not allowed in Amazon WorkMail.

", + "documentation":"

This user, group, or resource name is not allowed in WorkMail.

", "exception":true }, "ResetPasswordRequest":{ @@ -4110,11 +4891,11 @@ }, "EnabledDate":{ "shape":"Timestamp", - "documentation":"

The date indicating when the resource was enabled for Amazon WorkMail use.

" + "documentation":"

The date indicating when the resource was enabled for WorkMail use.

" }, "DisabledDate":{ "shape":"Timestamp", - "documentation":"

The date indicating when the resource was disabled from Amazon WorkMail use.

" + "documentation":"

The date indicating when the resource was disabled from WorkMail use.

" } }, "documentation":"

The representation of a resource.

" @@ -4313,6 +5094,41 @@ "max":256, "min":0 }, + "TargetUsers":{ + "type":"list", + "member":{"shape":"EntityIdentifier"}, + "max":10, + "min":1 + }, + "TestAvailabilityConfigurationRequest":{ + "type":"structure", + "required":["OrganizationId"], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization where the availability provider will be tested.

" + }, + "DomainName":{ + "shape":"DomainName", + "documentation":"

The domain to which the provider applies. If this field is provided, a stored availability provider associated to this domain name will be tested.

" + }, + "EwsProvider":{"shape":"EwsAvailabilityProvider"}, + "LambdaProvider":{"shape":"LambdaAvailabilityProvider"} + } + }, + "TestAvailabilityConfigurationResponse":{ + "type":"structure", + "members":{ + "TestPassed":{ + "shape":"Boolean", + "documentation":"

Boolean indicating whether the test passed or failed.

" + }, + "FailureReason":{ + "shape":"String", + "documentation":"

String containing the reason for a failed test if TestPassed is false.

" + } + } + }, "Timestamp":{"type":"timestamp"}, "TooManyTagsException":{ "type":"structure", @@ -4352,6 +5168,36 @@ "members":{ } }, + "UpdateAvailabilityConfigurationRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "DomainName" + ], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization for which the AvailabilityConfiguration will be updated.

" + }, + "DomainName":{ + "shape":"DomainName", + "documentation":"

The domain to which the provider applies the availability configuration.

" + }, + "EwsProvider":{ + "shape":"EwsAvailabilityProvider", + "documentation":"

The EWS availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider. The previously stored provider will be overridden by the one provided.

" + }, + "LambdaProvider":{ + "shape":"LambdaAvailabilityProvider", + "documentation":"

The Lambda availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider. The previously stored provider will be overridden by the one provided.

" + } + } + }, + "UpdateAvailabilityConfigurationResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateDefaultMailDomainRequest":{ "type":"structure", "required":[ @@ -4361,7 +5207,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization for which to list domains.

" + "documentation":"

The WorkMail organization for which to list domains.

" }, "DomainName":{ "shape":"WorkMailDomainName", @@ -4374,6 +5220,47 @@ "members":{ } }, + "UpdateImpersonationRoleRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "ImpersonationRoleId", + "Name", + "Type", + "Rules" + ], + "members":{ + "OrganizationId":{ + "shape":"OrganizationId", + "documentation":"

The WorkMail organization that contains the impersonation role to update.

" + }, + "ImpersonationRoleId":{ + "shape":"ImpersonationRoleId", + "documentation":"

The ID of the impersonation role to update.

" + }, + "Name":{ + "shape":"ImpersonationRoleName", + "documentation":"

The updated impersonation role name.

" + }, + "Type":{ + "shape":"ImpersonationRoleType", + "documentation":"

The updated impersonation role type.

" + }, + "Description":{ + "shape":"ImpersonationRoleDescription", + "documentation":"

The updated impersonation role description.

" + }, + "Rules":{ + "shape":"ImpersonationRuleList", + "documentation":"

The updated list of rules.

" + } + } + }, + "UpdateImpersonationRoleResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateMailboxQuotaRequest":{ "type":"structure", "required":[ @@ -4412,7 +5299,7 @@ "members":{ "OrganizationId":{ "shape":"OrganizationId", - "documentation":"

The Amazon WorkMail organization under which the rule will be updated.

" + "documentation":"

The WorkMail organization under which the rule will be updated.

" }, "MobileDeviceAccessRuleId":{ "shape":"MobileDeviceAccessRuleId", @@ -4526,6 +5413,11 @@ "members":{ } }, + "Url":{ + "type":"string", + "max":256, + "pattern":"https?://[A-Za-z0-9.-]+(:[0-9]+)?/.*" + }, "User":{ "type":"structure", "members":{ @@ -4555,14 +5447,14 @@ }, "EnabledDate":{ "shape":"Timestamp", - "documentation":"

The date indicating when the user was enabled for Amazon WorkMail use.

" + "documentation":"

The date indicating when the user was enabled for WorkMail use.

" }, "DisabledDate":{ "shape":"Timestamp", - "documentation":"

The date indicating when the user was disabled from Amazon WorkMail use.

" + "documentation":"

The date indicating when the user was disabled from WorkMail use.

" } }, - "documentation":"

The representation of an Amazon WorkMail user.

" + "documentation":"

The representation of an WorkMail user.

" }, "UserIdList":{ "type":"list", @@ -4600,5 +5492,5 @@ "min":12 } }, - "documentation":"

Amazon WorkMail is a secure, managed business email and calendaring service with support for existing desktop and mobile email clients. You can access your email, contacts, and calendars using Microsoft Outlook, your browser, or other native iOS and Android email applications. You can integrate WorkMail with your existing corporate directory and control both the keys that encrypt your data and the location in which your data is stored.

The WorkMail API is designed for the following scenarios:

  • Listing and describing organizations

  • Managing users

  • Managing groups

  • Managing resources

All WorkMail API operations are Amazon-authenticated and certificate-signed. They not only require the use of the AWS SDK, but also allow for the exclusive use of AWS Identity and Access Management users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the WorkMail site, the IAM user gains full administrative visibility into the entire WorkMail organization (or as set in the IAM policy). This includes, but is not limited to, the ability to create, update, and delete users, groups, and resources. This allows developers to perform the scenarios listed above, as well as give users the ability to grant access on a selective basis using the IAM model.

" + "documentation":"

WorkMail is a secure, managed business email and calendaring service with support for existing desktop and mobile email clients. You can access your email, contacts, and calendars using Microsoft Outlook, your browser, or other native iOS and Android email applications. You can integrate WorkMail with your existing corporate directory and control both the keys that encrypt your data and the location in which your data is stored.

The WorkMail API is designed for the following scenarios:

  • Listing and describing organizations

  • Managing users

  • Managing groups

  • Managing resources

All WorkMail API operations are Amazon-authenticated and certificate-signed. They not only require the use of the AWS SDK, but also allow for the exclusive use of AWS Identity and Access Management users and roles to help facilitate access, trust, and permission policies. By creating a role and allowing an IAM user to access the WorkMail site, the IAM user gains full administrative visibility into the entire WorkMail organization (or as set in the IAM policy). This includes, but is not limited to, the ability to create, update, and delete users, groups, and resources. This allows developers to perform the scenarios listed above, as well as give users the ability to grant access on a selective basis using the IAM model.

" } diff --git a/botocore/data/workmailmessageflow/2019-05-01/endpoint-rule-set-1.json b/botocore/data/workmailmessageflow/2019-05-01/endpoint-rule-set-1.json new file mode 100644 index 00000000..821d9f7d --- /dev/null +++ b/botocore/data/workmailmessageflow/2019-05-01/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workmailmessageflow-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workmailmessageflow-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workmailmessageflow.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://workmailmessageflow.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/workmailmessageflow/2019-05-01/examples-1.json b/botocore/data/workmailmessageflow/2019-05-01/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/workmailmessageflow/2019-05-01/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/workspaces-web/2020-07-08/endpoint-rule-set-1.json b/botocore/data/workspaces-web/2020-07-08/endpoint-rule-set-1.json new file mode 100644 index 00000000..0e2c4c68 --- /dev/null +++ b/botocore/data/workspaces-web/2020-07-08/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-web-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-web-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-web.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-web.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/workspaces-web/2020-07-08/examples-1.json b/botocore/data/workspaces-web/2020-07-08/examples-1.json new file mode 100644 index 00000000..0ea7e3b0 --- /dev/null +++ b/botocore/data/workspaces-web/2020-07-08/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/botocore/data/workspaces-web/2020-07-08/service-2.json b/botocore/data/workspaces-web/2020-07-08/service-2.json index 769478a6..bb8dc4d2 100644 --- a/botocore/data/workspaces-web/2020-07-08/service-2.json +++ b/botocore/data/workspaces-web/2020-07-08/service-2.json @@ -71,6 +71,26 @@ "documentation":"

Associates a trust store with a web portal.

", "idempotent":true }, + "AssociateUserAccessLoggingSettings":{ + "name":"AssociateUserAccessLoggingSettings", + "http":{ + "method":"PUT", + "requestUri":"/portals/{portalArn+}/userAccessLoggingSettings", + "responseCode":200 + }, + "input":{"shape":"AssociateUserAccessLoggingSettingsRequest"}, + "output":{"shape":"AssociateUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Associates a user access logging settings resource with a web portal.

", + "idempotent":true + }, "AssociateUserSettings":{ "name":"AssociateUserSettings", "http":{ @@ -189,6 +209,25 @@ ], "documentation":"

Creates a trust store that can be associated with a web portal. A trust store contains certificate authority (CA) certificates. Once associated with a web portal, the browser in a streaming session will recognize certificates that have been issued using any of the CAs in the trust store. If your organization has internal websites that use certificates issued by private CAs, you should add the private CA certificate to the trust store.

" }, + "CreateUserAccessLoggingSettings":{ + "name":"CreateUserAccessLoggingSettings", + "http":{ + "method":"POST", + "requestUri":"/userAccessLoggingSettings", + "responseCode":200 + }, + "input":{"shape":"CreateUserAccessLoggingSettingsRequest"}, + "output":{"shape":"CreateUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Creates a user access logging settings resource that can be associated with a web portal.

" + }, "CreateUserSettings":{ "name":"CreateUserSettings", "http":{ @@ -303,6 +342,25 @@ "documentation":"

Deletes the trust store.

", "idempotent":true }, + "DeleteUserAccessLoggingSettings":{ + "name":"DeleteUserAccessLoggingSettings", + "http":{ + "method":"DELETE", + "requestUri":"/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}", + "responseCode":200 + }, + "input":{"shape":"DeleteUserAccessLoggingSettingsRequest"}, + "output":{"shape":"DeleteUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

Deletes user access logging settings.

", + "idempotent":true + }, "DeleteUserSettings":{ "name":"DeleteUserSettings", "http":{ @@ -379,6 +437,25 @@ "documentation":"

Disassociates a trust store from a web portal.

", "idempotent":true }, + "DisassociateUserAccessLoggingSettings":{ + "name":"DisassociateUserAccessLoggingSettings", + "http":{ + "method":"DELETE", + "requestUri":"/portals/{portalArn+}/userAccessLoggingSettings", + "responseCode":200 + }, + "input":{"shape":"DisassociateUserAccessLoggingSettingsRequest"}, + "output":{"shape":"DisassociateUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Disassociates user access logging settings from a web portal.

", + "idempotent":true + }, "DisassociateUserSettings":{ "name":"DisassociateUserSettings", "http":{ @@ -524,6 +601,24 @@ ], "documentation":"

Gets the trust store certificate.

" }, + "GetUserAccessLoggingSettings":{ + "name":"GetUserAccessLoggingSettings", + "http":{ + "method":"GET", + "requestUri":"/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}", + "responseCode":200 + }, + "input":{"shape":"GetUserAccessLoggingSettingsRequest"}, + "output":{"shape":"GetUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Gets user access logging settings.

" + }, "GetUserSettings":{ "name":"GetUserSettings", "http":{ @@ -663,6 +758,23 @@ ], "documentation":"

Retrieves a list of trust stores.

" }, + "ListUserAccessLoggingSettings":{ + "name":"ListUserAccessLoggingSettings", + "http":{ + "method":"GET", + "requestUri":"/userAccessLoggingSettings", + "responseCode":200 + }, + "input":{"shape":"ListUserAccessLoggingSettingsRequest"}, + "output":{"shape":"ListUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Retrieves a list of user access logging settings.

" + }, "ListUserSettings":{ "name":"ListUserSettings", "http":{ @@ -810,6 +922,24 @@ ], "documentation":"

Updates the trust store.

" }, + "UpdateUserAccessLoggingSettings":{ + "name":"UpdateUserAccessLoggingSettings", + "http":{ + "method":"PATCH", + "requestUri":"/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}", + "responseCode":200 + }, + "input":{"shape":"UpdateUserAccessLoggingSettingsRequest"}, + "output":{"shape":"UpdateUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "documentation":"

Updates the user access logging settings.

" + }, "UpdateUserSettings":{ "name":"UpdateUserSettings", "http":{ @@ -966,6 +1096,44 @@ } } }, + "AssociateUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":[ + "portalArn", + "userAccessLoggingSettingsArn" + ], + "members":{ + "portalArn":{ + "shape":"ARN", + "documentation":"

The ARN of the web portal.

", + "location":"uri", + "locationName":"portalArn" + }, + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings.

", + "location":"querystring", + "locationName":"userAccessLoggingSettingsArn" + } + } + }, + "AssociateUserAccessLoggingSettingsResponse":{ + "type":"structure", + "required":[ + "portalArn", + "userAccessLoggingSettingsArn" + ], + "members":{ + "portalArn":{ + "shape":"ARN", + "documentation":"

The ARN of the web portal.

" + }, + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings.

" + } + } + }, "AssociateUserSettingsRequest":{ "type":"structure", "required":[ @@ -1346,6 +1514,35 @@ } } }, + "CreateUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["kinesisStreamArn"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", + "idempotencyToken":true + }, + "kinesisStreamArn":{ + "shape":"KinesisStreamArn", + "documentation":"

The ARN of the Kinesis stream.

" + }, + "tags":{ + "shape":"TagList", + "documentation":"

The tags to add to the user settings resource. A tag is a key-value pair.

" + } + } + }, + "CreateUserAccessLoggingSettingsResponse":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings.

" + } + } + }, "CreateUserSettingsRequest":{ "type":"structure", "required":[ @@ -1490,6 +1687,23 @@ "members":{ } }, + "DeleteUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings.

", + "location":"uri", + "locationName":"userAccessLoggingSettingsArn" + } + } + }, + "DeleteUserAccessLoggingSettingsResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteUserSettingsRequest":{ "type":"structure", "required":["userSettingsArn"], @@ -1558,6 +1772,23 @@ "members":{ } }, + "DisassociateUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["portalArn"], + "members":{ + "portalArn":{ + "shape":"ARN", + "documentation":"

The ARN of the web portal.

", + "location":"uri", + "locationName":"portalArn" + } + } + }, + "DisassociateUserAccessLoggingSettingsResponse":{ + "type":"structure", + "members":{ + } + }, "DisassociateUserSettingsRequest":{ "type":"structure", "required":["portalArn"], @@ -1767,6 +1998,27 @@ } } }, + "GetUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings.

", + "location":"uri", + "locationName":"userAccessLoggingSettingsArn" + } + } + }, + "GetUserAccessLoggingSettingsResponse":{ + "type":"structure", + "members":{ + "userAccessLoggingSettings":{ + "shape":"UserAccessLoggingSettings", + "documentation":"

The user access logging settings.

" + } + } + }, "GetUserSettingsRequest":{ "type":"structure", "required":["userSettingsArn"], @@ -1879,6 +2131,13 @@ "exception":true, "fault":true }, + "KinesisStreamArn":{ + "type":"string", + "documentation":"

Kinesis stream ARN to which log events are published.

", + "max":2048, + "min":20, + "pattern":"arn:[\\w+=/,.@-]+:kinesis:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:stream/.+" + }, "ListBrowserSettingsRequest":{ "type":"structure", "members":{ @@ -2098,6 +2357,36 @@ } } }, + "ListUserAccessLoggingSettingsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "documentation":"

The maximum number of results to be included in the next page.

", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The pagination token used to retrieve the next page of results for this operation.

", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListUserAccessLoggingSettingsResponse":{ + "type":"structure", + "members":{ + "nextToken":{ + "shape":"PaginationToken", + "documentation":"

The pagination token used to retrieve the next page of results for this operation.

" + }, + "userAccessLoggingSettings":{ + "shape":"UserAccessLoggingSettingsList", + "documentation":"

The user access logging settings.

" + } + } + }, "ListUserSettingsRequest":{ "type":"structure", "members":{ @@ -2231,9 +2520,13 @@ "shape":"ARN", "documentation":"

The ARN of the trust store that is associated with the web portal.

" }, + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings that is associated with the web portal.

" + }, "userSettingsArn":{ "shape":"ARN", - "documentation":"

The ARN of the trust store that is associated with the web portal.

" + "documentation":"

The ARN of the user settings that is associated with the web portal.

" } }, "documentation":"

The web portal.

" @@ -2299,6 +2592,10 @@ "shape":"ARN", "documentation":"

The ARN of the trust that is associated with this web portal.

" }, + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings that is associated with the web portal.

" + }, "userSettingsArn":{ "shape":"ARN", "documentation":"

The ARN of the user settings that is associated with the web portal.

" @@ -2746,6 +3043,37 @@ } } }, + "UpdateUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "documentation":"

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", + "idempotencyToken":true + }, + "kinesisStreamArn":{ + "shape":"KinesisStreamArn", + "documentation":"

The ARN of the Kinesis stream.

" + }, + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings.

", + "location":"uri", + "locationName":"userAccessLoggingSettingsArn" + } + } + }, + "UpdateUserAccessLoggingSettingsResponse":{ + "type":"structure", + "required":["userAccessLoggingSettings"], + "members":{ + "userAccessLoggingSettings":{ + "shape":"UserAccessLoggingSettings", + "documentation":"

The user access logging settings.

" + } + } + }, "UpdateUserSettingsRequest":{ "type":"structure", "required":["userSettingsArn"], @@ -2801,6 +3129,43 @@ } } }, + "UserAccessLoggingSettings":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "associatedPortalArns":{ + "shape":"ArnList", + "documentation":"

A list of web portal ARNs that this user access logging settings is associated with.

" + }, + "kinesisStreamArn":{ + "shape":"KinesisStreamArn", + "documentation":"

The ARN of the Kinesis stream.

" + }, + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings.

" + } + }, + "documentation":"

A user access logging settings resource that can be associated with a web portal.

" + }, + "UserAccessLoggingSettingsList":{ + "type":"list", + "member":{"shape":"UserAccessLoggingSettingsSummary"} + }, + "UserAccessLoggingSettingsSummary":{ + "type":"structure", + "members":{ + "kinesisStreamArn":{ + "shape":"KinesisStreamArn", + "documentation":"

The ARN of the Kinesis stream.

" + }, + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "documentation":"

The ARN of the user access logging settings.

" + } + }, + "documentation":"

The summary of user access logging settings.

" + }, "UserSettings":{ "type":"structure", "required":["userSettingsArn"], diff --git a/botocore/data/workspaces/2015-04-08/endpoint-rule-set-1.json b/botocore/data/workspaces/2015-04-08/endpoint-rule-set-1.json new file mode 100644 index 00000000..bfe2cb8c --- /dev/null +++ b/botocore/data/workspaces/2015-04-08/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workspaces.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://workspaces.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/workspaces/2015-04-08/service-2.json b/botocore/data/workspaces/2015-04-08/service-2.json index b785118d..a3233922 100644 --- a/botocore/data/workspaces/2015-04-08/service-2.json +++ b/botocore/data/workspaces/2015-04-08/service-2.json @@ -136,6 +136,23 @@ ], "documentation":"

Creates an IP access control group.

An IP access control group provides you with the ability to control the IP addresses from which users are allowed to access their WorkSpaces. To specify the CIDR address ranges, add rules to your IP access control group and then associate the group with your directory. You can add rules when you create the group or at any time using AuthorizeIpRules.

There is a default IP access control group associated with your directory. If you don't associate an IP access control group with your directory, the default group is used. The default group includes a default rule that allows users to access their WorkSpaces from anywhere. You cannot modify the default IP access control group for your directory.

" }, + "CreateStandbyWorkspaces":{ + "name":"CreateStandbyWorkspaces", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateStandbyWorkspacesRequest"}, + "output":{"shape":"CreateStandbyWorkspacesResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValuesException"}, + {"shape":"OperationNotSupportedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceLimitExceededException"} + ], + "documentation":"

Creates a Standby WorkSpace in a secondary region.

" + }, "CreateTags":{ "name":"CreateTags", "http":{ @@ -188,6 +205,25 @@ ], "documentation":"

Creates the specified WorkSpace bundle. For more information about creating WorkSpace bundles, see Create a Custom WorkSpaces Image and Bundle.

" }, + "CreateWorkspaceImage":{ + "name":"CreateWorkspaceImage", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateWorkspaceImageRequest"}, + "output":{"shape":"CreateWorkspaceImageResult"}, + "errors":[ + {"shape":"ResourceLimitExceededException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotSupportedException"}, + {"shape":"InvalidResourceStateException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValuesException"} + ], + "documentation":"

Creates a new WorkSpace image from an existing WorkSpace.

" + }, "CreateWorkspaces":{ "name":"CreateWorkspaces", "http":{ @@ -200,7 +236,7 @@ {"shape":"ResourceLimitExceededException"}, {"shape":"InvalidParameterValuesException"} ], - "documentation":"

Creates one or more WorkSpaces.

This operation is asynchronous and returns before the WorkSpaces are created.

" + "documentation":"

Creates one or more WorkSpaces.

This operation is asynchronous and returns before the WorkSpaces are created.

The MANUAL running mode value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see Amazon WorkSpaces Core.

" }, "DeleteClientBranding":{ "name":"DeleteClientBranding", @@ -597,6 +633,7 @@ "errors":[ {"shape":"InvalidParameterValuesException"}, {"shape":"ResourceLimitExceededException"}, + {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"} ], "documentation":"

Imports client branding. Client branding allows you to customize your WorkSpace's client login portal. You can tailor your login portal company logo, the support email address, support link, link to reset password, and a custom message for users trying to sign in.

After you import client branding, the default branding experience for the specified platform type is replaced with the imported experience

  • You must specify at least one platform type when importing client branding.

  • You can import up to 6 MB of data with each request. If your request exceeds this limit, you can import client branding for different platform types using separate requests.

  • In each platform type, the SupportEmail and SupportLink parameters are mutually exclusive. You can specify only one parameter for each platform type, but not both.

  • Imported data can take up to a minute to appear in the WorkSpaces client.

" @@ -617,7 +654,7 @@ {"shape":"AccessDeniedException"}, {"shape":"InvalidParameterValuesException"} ], - "documentation":"

Imports the specified Windows 10 Bring Your Own License (BYOL) image into Amazon WorkSpaces. The image must be an already licensed Amazon EC2 image that is in your Amazon Web Services account, and you must own the image. For more information about creating BYOL images, see Bring Your Own Windows Desktop Licenses.

" + "documentation":"

Imports the specified Windows 10 Bring Your Own License (BYOL) or Windows Server 2016 BYOL image into Amazon WorkSpaces. The image must be an already licensed Amazon EC2 image that is in your Amazon Web Services account, and you must own the image. For more information about creating BYOL images, see Bring Your Own Windows Desktop Licenses.

" }, "ListAvailableManagementCidrRanges":{ "name":"ListAvailableManagementCidrRanges", @@ -668,6 +705,22 @@ ], "documentation":"

Modifies the configuration of Bring Your Own License (BYOL) for the specified account.

" }, + "ModifyCertificateBasedAuthProperties":{ + "name":"ModifyCertificateBasedAuthProperties", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifyCertificateBasedAuthPropertiesRequest"}, + "output":{"shape":"ModifyCertificateBasedAuthPropertiesResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValuesException"}, + {"shape":"OperationNotSupportedException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Modifies the properties of the certificate-based authentication you want to use with your WorkSpaces.

" + }, "ModifyClientProperties":{ "name":"ModifyClientProperties", "http":{ @@ -683,6 +736,22 @@ ], "documentation":"

Modifies the properties of the specified Amazon WorkSpaces clients.

" }, + "ModifySamlProperties":{ + "name":"ModifySamlProperties", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ModifySamlPropertiesRequest"}, + "output":{"shape":"ModifySamlPropertiesResult"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InvalidParameterValuesException"}, + {"shape":"OperationNotSupportedException"}, + {"shape":"ResourceNotFoundException"} + ], + "documentation":"

Modifies multiple properties related to SAML 2.0 authentication, including the enablement status, user access URL, and relay state parameter name that are used for configuring federation with an SAML 2.0 identity provider.

" + }, "ModifySelfservicePermissions":{ "name":"ModifySelfservicePermissions", "http":{ @@ -745,7 +814,7 @@ {"shape":"AccessDeniedException"}, {"shape":"ResourceUnavailableException"} ], - "documentation":"

Modifies the specified WorkSpace properties. For important information about how to modify the size of the root and user volumes, see Modify a WorkSpace.

" + "documentation":"

Modifies the specified WorkSpace properties. For important information about how to modify the size of the root and user volumes, see Modify a WorkSpace.

The MANUAL running mode value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see Amazon WorkSpaces Core.

" }, "ModifyWorkspaceState":{ "name":"ModifyWorkspaceState", @@ -758,7 +827,8 @@ "errors":[ {"shape":"InvalidParameterValuesException"}, {"shape":"InvalidResourceStateException"}, - {"shape":"ResourceNotFoundException"} + {"shape":"ResourceNotFoundException"}, + {"shape":"OperationNotSupportedException"} ], "documentation":"

Sets the state of the specified WorkSpace.

To maintain a WorkSpace without being interrupted, set the WorkSpace state to ADMIN_MAINTENANCE. WorkSpaces in this state do not respond to requests to reboot, stop, start, rebuild, or restore. An AutoStop WorkSpace in this state is not stopped. Users cannot log into a WorkSpace in the ADMIN_MAINTENANCE state.

" }, @@ -770,6 +840,9 @@ }, "input":{"shape":"RebootWorkspacesRequest"}, "output":{"shape":"RebootWorkspacesResult"}, + "errors":[ + {"shape":"OperationNotSupportedException"} + ], "documentation":"

Reboots the specified WorkSpaces.

You cannot reboot a WorkSpace unless its state is AVAILABLE or UNHEALTHY.

This operation is asynchronous and returns before the WorkSpaces have rebooted.

" }, "RebuildWorkspaces":{ @@ -780,6 +853,9 @@ }, "input":{"shape":"RebuildWorkspacesRequest"}, "output":{"shape":"RebuildWorkspacesResult"}, + "errors":[ + {"shape":"OperationNotSupportedException"} + ], "documentation":"

Rebuilds the specified WorkSpace.

You cannot rebuild a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY, STOPPED, or REBOOTING.

Rebuilding a WorkSpace is a potentially destructive action that can result in the loss of data. For more information, see Rebuild a WorkSpace.

This operation is asynchronous and returns before the WorkSpaces have been completely rebuilt.

" }, "RegisterWorkspaceDirectory":{ @@ -813,7 +889,8 @@ "errors":[ {"shape":"InvalidParameterValuesException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"AccessDeniedException"} + {"shape":"AccessDeniedException"}, + {"shape":"OperationNotSupportedException"} ], "documentation":"

Restores the specified WorkSpace to its last known healthy state.

You cannot restore a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY, or STOPPED.

Restoring a WorkSpace is a potentially destructive action that can result in the loss of data. For more information, see Restore a WorkSpace.

This operation is asynchronous and returns before the WorkSpace is completely restored.

" }, @@ -926,7 +1003,8 @@ {"shape":"AccessDeniedException"}, {"shape":"InvalidParameterValuesException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ResourceUnavailableException"} + {"shape":"ResourceUnavailableException"}, + {"shape":"OperationNotSupportedException"} ], "documentation":"

Updates a WorkSpace bundle with a new image. For more information about updating WorkSpace bundles, see Update a Custom WorkSpaces Bundle.

Existing WorkSpaces aren't automatically updated when you update the bundle that they're based on. To update existing WorkSpaces that are based on a bundle that you've updated, you must either rebuild the WorkSpaces or delete and recreate them.

" }, @@ -1134,6 +1212,40 @@ "member":{"shape":"WorkspaceBundle"} }, "BundleOwner":{"type":"string"}, + "BundleType":{ + "type":"string", + "enum":[ + "REGULAR", + "STANDBY" + ] + }, + "CertificateAuthorityArn":{ + "type":"string", + "max":200, + "min":5, + "pattern":"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:[\\w+=/,.@-]*:[0-9]*:[\\w+=,.@-]+(/[\\w+=,.@-]+)*" + }, + "CertificateBasedAuthProperties":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"CertificateBasedAuthStatusEnum", + "documentation":"

The status of the certificate-based authentication properties.

" + }, + "CertificateAuthorityArn":{ + "shape":"CertificateAuthorityArn", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager Private CA resource.

" + } + }, + "documentation":"

Describes the properties of the certificate-based authentication you want to use with your WorkSpaces.

" + }, + "CertificateBasedAuthStatusEnum":{ + "type":"string", + "enum":[ + "DISABLED", + "ENABLED" + ] + }, "ClientDeviceType":{ "type":"string", "enum":[ @@ -1165,7 +1277,7 @@ }, "ClientLoginMessage":{ "type":"string", - "max":850, + "max":2000, "min":0, "pattern":"^.*$" }, @@ -1175,6 +1287,10 @@ "ReconnectEnabled":{ "shape":"ReconnectEnum", "documentation":"

Specifies whether users can cache their credentials on the Amazon WorkSpaces client. When enabled, users can choose to reconnect to their WorkSpaces without re-entering their credentials.

" + }, + "LogUploadEnabled":{ + "shape":"LogUploadEnum", + "documentation":"

Specifies whether users can upload diagnostic log files of Amazon WorkSpaces client directly to WorkSpaces to troubleshoot issues when using the WorkSpaces client. When enabled, the log files will be sent to WorkSpaces automatically and will be applied to all users in the specified directory.

" } }, "documentation":"

Describes an Amazon WorkSpaces client.

" @@ -1502,6 +1618,36 @@ } } }, + "CreateStandbyWorkspacesRequest":{ + "type":"structure", + "required":[ + "PrimaryRegion", + "StandbyWorkspaces" + ], + "members":{ + "PrimaryRegion":{ + "shape":"Region", + "documentation":"

The Region of the primary WorkSpace.

" + }, + "StandbyWorkspaces":{ + "shape":"StandbyWorkspacesList", + "documentation":"

Information about the Standby WorkSpace to be created.

" + } + } + }, + "CreateStandbyWorkspacesResult":{ + "type":"structure", + "members":{ + "FailedStandbyRequests":{ + "shape":"FailedCreateStandbyWorkspacesRequestList", + "documentation":"

Information about the Standby WorkSpace that could not be created.

" + }, + "PendingStandbyRequests":{ + "shape":"PendingCreateStandbyWorkspacesRequestList", + "documentation":"

Information about the Standby WorkSpace that was created.

" + } + } + }, "CreateTagsRequest":{ "type":"structure", "required":[ @@ -1596,6 +1742,69 @@ "WorkspaceBundle":{"shape":"WorkspaceBundle"} } }, + "CreateWorkspaceImageRequest":{ + "type":"structure", + "required":[ + "Name", + "Description", + "WorkspaceId" + ], + "members":{ + "Name":{ + "shape":"WorkspaceImageName", + "documentation":"

The name of the new WorkSpace image.

" + }, + "Description":{ + "shape":"WorkspaceImageDescription", + "documentation":"

The description of the new WorkSpace image.

" + }, + "WorkspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The identifier of the source WorkSpace

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags that you want to add to the new WorkSpace image. To add tags when you're creating the image, you must create an IAM policy that grants your IAM user permission to use workspaces:CreateTags.

" + } + } + }, + "CreateWorkspaceImageResult":{ + "type":"structure", + "members":{ + "ImageId":{ + "shape":"WorkspaceImageId", + "documentation":"

The identifier of the new WorkSpace image.

" + }, + "Name":{ + "shape":"WorkspaceImageName", + "documentation":"

The name of the image.

" + }, + "Description":{ + "shape":"WorkspaceImageDescription", + "documentation":"

The description of the image.

" + }, + "OperatingSystem":{ + "shape":"OperatingSystem", + "documentation":"

The operating system that the image is running.

" + }, + "State":{ + "shape":"WorkspaceImageState", + "documentation":"

The availability status of the image.

" + }, + "RequiredTenancy":{ + "shape":"WorkspaceImageRequiredTenancy", + "documentation":"

Specifies whether the image is running on dedicated hardware. When Bring Your Own License (BYOL) is enabled, this value is set to DEDICATED. For more information, see Bring Your Own Windows Desktop Images..

" + }, + "Created":{ + "shape":"Timestamp", + "documentation":"

The date when the image was created.

" + }, + "OwnerAccountId":{ + "shape":"AwsAccount", + "documentation":"

The identifier of the Amazon Web Services account that owns the image.

" + } + } + }, "CreateWorkspacesRequest":{ "type":"structure", "required":["Workspaces"], @@ -1651,7 +1860,7 @@ "members":{ "LogoUrl":{ "shape":"ClientUrl", - "documentation":"

The logo URL. This is the link where users can download the logo image. The only supported image format is .png.

" + "documentation":"

The logo. The only image format accepted is a binary data object that is converted from a .png file.

" }, "SupportEmail":{ "shape":"ClientEmail", @@ -1667,7 +1876,7 @@ }, "LoginMessage":{ "shape":"LoginMessage", - "documentation":"

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US.

" + "documentation":"

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

" } }, "documentation":"

Returns default client branding attributes that were imported. These attributes display on the client login screen.

Client branding attributes are public facing. Ensure that you don't include sensitive information.

" @@ -1677,7 +1886,7 @@ "members":{ "Logo":{ "shape":"DefaultLogo", - "documentation":"

The logo. This is the link where users can download the logo image. The only image format accepted is .png.

" + "documentation":"

The logo. The only image format accepted is a binary data object that is converted from a .png file.

" }, "SupportEmail":{ "shape":"ClientEmail", @@ -1693,7 +1902,7 @@ }, "LoginMessage":{ "shape":"LoginMessage", - "documentation":"

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US.

" + "documentation":"

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

" } }, "documentation":"

The default client branding attributes to be imported. These attributes display on the client login screen.

Client branding attributes are public facing. Ensure that you do not include sensitive information.

" @@ -1734,6 +1943,25 @@ }, "documentation":"

Describes the default values that are used to create WorkSpaces. For more information, see Update Directory Details for Your WorkSpaces.

" }, + "DeletableCertificateBasedAuthPropertiesList":{ + "type":"list", + "member":{"shape":"DeletableCertificateBasedAuthProperty"} + }, + "DeletableCertificateBasedAuthProperty":{ + "type":"string", + "enum":["CERTIFICATE_BASED_AUTH_PROPERTIES_CERTIFICATE_AUTHORITY_ARN"] + }, + "DeletableSamlPropertiesList":{ + "type":"list", + "member":{"shape":"DeletableSamlProperty"} + }, + "DeletableSamlProperty":{ + "type":"string", + "enum":[ + "SAML_PROPERTIES_USER_ACCESS_URL", + "SAML_PROPERTIES_RELAY_STATE_PARAMETER_NAME" + ] + }, "DeleteClientBrandingRequest":{ "type":"structure", "required":[ @@ -2405,7 +2633,30 @@ "pattern":"^ami\\-([a-f0-9]{8}|[a-f0-9]{17})$" }, "ErrorType":{"type":"string"}, + "ExceptionErrorCode":{"type":"string"}, "ExceptionMessage":{"type":"string"}, + "FailedCreateStandbyWorkspacesRequest":{ + "type":"structure", + "members":{ + "StandbyWorkspaceRequest":{ + "shape":"StandbyWorkspace", + "documentation":"

Information about the Standby WorkSpace that could not be created.

" + }, + "ErrorCode":{ + "shape":"WorkspaceErrorCode", + "documentation":"

The error code that is returned if the Standby WorkSpace could not be created.

" + }, + "ErrorMessage":{ + "shape":"Description", + "documentation":"

The text of the error message that is returned if the Standby WorkSpace could not be created.

" + } + }, + "documentation":"

Describes the Standby WorkSpace that could not be created.

" + }, + "FailedCreateStandbyWorkspacesRequestList":{ + "type":"list", + "member":{"shape":"FailedCreateStandbyWorkspacesRequest"} + }, "FailedCreateWorkspaceRequest":{ "type":"structure", "members":{ @@ -2565,7 +2816,7 @@ }, "IngestionProcess":{ "shape":"WorkspaceImageIngestionProcess", - "documentation":"

The ingestion process to be used when importing the image, depending on which protocol you want to use for your BYOL Workspace image, either PCoIP or WorkSpaces Streaming Protocol (WSP). To use WSP, specify a value that ends in _WSP. To use PCoIP, specify a value that does not end in _WSP.

For non-GPU-enabled images (bundles other than Graphics.g4dn, GraphicsPro.g4dn, Graphics, or GraphicsPro), specify BYOL_REGULAR or BYOL_REGULAR_WSP, depending on the protocol.

Use BYOL_GRAPHICS_G4DN ingestion for both Graphics.g4dn and GraphicsPro.g4dn.

" + "documentation":"

The ingestion process to be used when importing the image, depending on which protocol you want to use for your BYOL Workspace image, either PCoIP, WorkSpaces Streaming Protocol (WSP), or bring your own protocol (BYOP). To use WSP, specify a value that ends in _WSP. To use PCoIP, specify a value that does not end in _WSP. To use BYOP, specify a value that ends in _BYOP.

For non-GPU-enabled bundles (bundles other than Graphics or GraphicsPro), specify BYOL_REGULAR, BYOL_REGULAR_WSP, or BYOL_REGULAR_BYOP, depending on the protocol.

The BYOL_REGULAR_BYOP and BYOL_GRAPHICS_G4DN_BYOP values are only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use these values. For more information, see Amazon WorkSpaces Core.

" }, "ImageName":{ "shape":"WorkspaceImageName", @@ -2581,7 +2832,7 @@ }, "Applications":{ "shape":"ApplicationList", - "documentation":"

If specified, the version of Microsoft Office to subscribe to. Valid only for Windows 10 BYOL images. For more information about subscribing to Office for BYOL images, see Bring Your Own Windows Desktop Licenses.

  • Although this parameter is an array, only one item is allowed at this time

  • Microsoft Office 2016 application subscription through AWS is currently not supported for Graphics.g4dn Bring Your Own License (BYOL) images

" + "documentation":"

If specified, the version of Microsoft Office to subscribe to. Valid only for Windows 10 BYOL images. For more information about subscribing to Office for BYOL images, see Bring Your Own Windows Desktop Licenses.

Although this parameter is an array, only one item is allowed at this time.

" } } }, @@ -2628,15 +2879,15 @@ "members":{ "LogoUrl":{ "shape":"ClientUrl", - "documentation":"

The logo. This is the link where users can download the logo image. This is the standard-resolution display that has a 1:1 pixel density (or @1x), where one pixel is equal to one point.

" + "documentation":"

The logo. This is the standard-resolution display that has a 1:1 pixel density (or @1x), where one pixel is equal to one point. The only image format accepted is a binary data object that is converted from a .png file.

" }, "Logo2xUrl":{ "shape":"ClientUrl", - "documentation":"

The @2x version of the logo. This is the higher resolution display that offers a scale factor of 2.0 (or @2x).

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" + "documentation":"

The @2x version of the logo. This is the higher resolution display that offers a scale factor of 2.0 (or @2x). The only image format accepted is a binary data object that is converted from a .png file.

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" }, "Logo3xUrl":{ "shape":"ClientUrl", - "documentation":"

The @3x version of the logo. This is the higher resolution display that offers a scale factor of 3.0 (or @3x).

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" + "documentation":"

The @3x version of the logo. This is the higher resolution display that offers a scale factor of 3.0 (or @3x).The only image format accepted is a binary data object that is converted from a .png file.

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" }, "SupportEmail":{ "shape":"ClientEmail", @@ -2652,7 +2903,7 @@ }, "LoginMessage":{ "shape":"LoginMessage", - "documentation":"

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US.

" + "documentation":"

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

" } }, "documentation":"

The client branding attributes for iOS device types. These attributes are displayed on the iOS client login screen only.

Client branding attributes are public facing. Ensure you do not include sensitive information.

" @@ -2662,15 +2913,15 @@ "members":{ "Logo":{ "shape":"IosLogo", - "documentation":"

The logo. This is the link where users can download the logo image. This is the standard-resolution display that has a 1:1 pixel density (or @1x), where one pixel is equal to one point.

" + "documentation":"

The logo. This is the standard-resolution display that has a 1:1 pixel density (or @1x), where one pixel is equal to one point. The only image format accepted is a binary data object that is converted from a .png file.

" }, "Logo2x":{ "shape":"Ios2XLogo", - "documentation":"

The @2x version of the logo. This is the higher resolution display that offers a scale factor of 2.0 (or @2x).

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" + "documentation":"

The @2x version of the logo. This is the higher resolution display that offers a scale factor of 2.0 (or @2x). The only image format accepted is a binary data object that is converted from a .png file.

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" }, "Logo3x":{ "shape":"Ios3XLogo", - "documentation":"

The @3x version of the logo. This is the higher resolution display that offers a scale factor of 3.0 (or @3x).

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" + "documentation":"

The @3x version of the logo. This is the higher resolution display that offers a scale factor of 3.0 (or @3x). The only image format accepted is a binary data object that is converted from a .png file.

For more information about iOS image size and resolution, see Image Size and Resolution in the Apple Human Interface Guidelines.

" }, "SupportEmail":{ "shape":"ClientEmail", @@ -2686,7 +2937,7 @@ }, "LoginMessage":{ "shape":"LoginMessage", - "documentation":"

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US.

" + "documentation":"

The login message. Specified as a key value pair, in which the key is a locale and the value is the localized message for that locale. The only key supported is en_US. The HTML tags supported include the following: a, b, blockquote, br, cite, code, dd, dl, dt, div, em, i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul.

" } }, "documentation":"

The client branding attributes to import for iOS device types. These attributes are displayed on the iOS client login screen.

Client branding attributes are public facing. Ensure you do not include sensitive information.

" @@ -2767,6 +3018,13 @@ } } }, + "LogUploadEnum":{ + "type":"string", + "enum":[ + "ENABLED", + "DISABLED" + ] + }, "LoginMessage":{ "type":"map", "key":{"shape":"ClientLocale"}, @@ -2862,6 +3120,29 @@ "members":{ } }, + "ModifyCertificateBasedAuthPropertiesRequest":{ + "type":"structure", + "required":["ResourceId"], + "members":{ + "ResourceId":{ + "shape":"DirectoryId", + "documentation":"

The resource identifiers, in the form of directory IDs.

" + }, + "CertificateBasedAuthProperties":{ + "shape":"CertificateBasedAuthProperties", + "documentation":"

The properties of the certificate-based authentication.

" + }, + "PropertiesToDelete":{ + "shape":"DeletableCertificateBasedAuthPropertiesList", + "documentation":"

The properties of the certificate-based authentication you want to delete.

" + } + } + }, + "ModifyCertificateBasedAuthPropertiesResult":{ + "type":"structure", + "members":{ + } + }, "ModifyClientPropertiesRequest":{ "type":"structure", "required":[ @@ -2884,6 +3165,29 @@ "members":{ } }, + "ModifySamlPropertiesRequest":{ + "type":"structure", + "required":["ResourceId"], + "members":{ + "ResourceId":{ + "shape":"DirectoryId", + "documentation":"

The directory identifier for which you want to configure SAML properties.

" + }, + "SamlProperties":{ + "shape":"SamlProperties", + "documentation":"

The properties for configuring SAML 2.0 authentication.

" + }, + "PropertiesToDelete":{ + "shape":"DeletableSamlPropertiesList", + "documentation":"

The SAML properties to delete as part of your request.

Specify one of the following options:

  • SAML_PROPERTIES_USER_ACCESS_URL to delete the user access URL.

  • SAML_PROPERTIES_RELAY_STATE_PARAMETER_NAME to delete the relay state parameter name.

" + } + } + }, + "ModifySamlPropertiesResult":{ + "type":"structure", + "members":{ + } + }, "ModifySelfservicePermissionsRequest":{ "type":"structure", "required":[ @@ -3026,7 +3330,14 @@ "OperationNotSupportedException":{ "type":"structure", "members":{ - "message":{"shape":"ExceptionMessage"} + "message":{ + "shape":"ExceptionMessage", + "documentation":"

The exception error message.

" + }, + "reason":{ + "shape":"ExceptionErrorCode", + "documentation":"

The exception error reason.

" + } }, "documentation":"

This operation is not supported.

", "exception":true @@ -3036,6 +3347,43 @@ "max":2048, "min":1 }, + "PendingCreateStandbyWorkspacesRequest":{ + "type":"structure", + "members":{ + "UserName":{ + "shape":"UserName", + "documentation":"

Describes the Standby WorkSpace that was created.

Because this operation is asynchronous, the identifier returned is not immediately available for use with other operations. For example, if you call DescribeWorkspaces before the WorkSpace is created, the information returned can be incomplete.

" + }, + "DirectoryId":{ + "shape":"DirectoryId", + "documentation":"

The identifier of the directory for the Standby WorkSpace.

" + }, + "State":{ + "shape":"WorkspaceState", + "documentation":"

The operational state of the Standby WorkSpace.

" + }, + "WorkspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The identifier of the Standby WorkSpace.

" + } + }, + "documentation":"

Information about the Standby WorkSpace.

" + }, + "PendingCreateStandbyWorkspacesRequestList":{ + "type":"list", + "member":{"shape":"PendingCreateStandbyWorkspacesRequest"} + }, + "Protocol":{ + "type":"string", + "enum":[ + "PCOIP", + "WSP" + ] + }, + "ProtocolList":{ + "type":"list", + "member":{"shape":"Protocol"} + }, "RebootRequest":{ "type":"structure", "required":["WorkspaceId"], @@ -3164,6 +3512,32 @@ "max":20, "min":1 }, + "RelatedWorkspaceProperties":{ + "type":"structure", + "members":{ + "WorkspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The identifier of the related WorkSpace.

" + }, + "Region":{ + "shape":"Region", + "documentation":"

The Region of the related WorkSpace.

" + }, + "State":{ + "shape":"WorkspaceState", + "documentation":"

Indicates the state of the WorkSpace.

" + }, + "Type":{ + "shape":"StandbyWorkspaceRelationshipType", + "documentation":"

Indicates the type of WorkSpace.

" + } + }, + "documentation":"

Describes the related WorkSpace. The related WorkSpace could be a Standby WorkSpace or Primary WorkSpace related to the specified WorkSpace.

" + }, + "RelatedWorkspaces":{ + "type":"list", + "member":{"shape":"RelatedWorkspaceProperties"} + }, "ResourceAlreadyExistsException":{ "type":"structure", "members":{ @@ -3287,10 +3661,43 @@ "type":"string", "enum":[ "AUTO_STOP", - "ALWAYS_ON" + "ALWAYS_ON", + "MANUAL" ] }, "RunningModeAutoStopTimeoutInMinutes":{"type":"integer"}, + "SamlProperties":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"SamlStatusEnum", + "documentation":"

Indicates the status of SAML 2.0 authentication. These statuses include the following.

  • If the setting is DISABLED, end users will be directed to login with their directory credentials.

  • If the setting is ENABLED, end users will be directed to login via the user access URL. Users attempting to connect to WorkSpaces from a client application that does not support SAML 2.0 authentication will not be able to connect.

  • If the setting is ENABLED_WITH_DIRECTORY_LOGIN_FALLBACK, end users will be directed to login via the user access URL on supported client applications, but will not prevent clients that do not support SAML 2.0 authentication from connecting as if SAML 2.0 authentication was disabled.

" + }, + "UserAccessUrl":{ + "shape":"SamlUserAccessUrl", + "documentation":"

The SAML 2.0 identity provider (IdP) user access URL is the URL a user would navigate to in their web browser in order to federate from the IdP and directly access the application, without any SAML 2.0 service provider (SP) bindings.

" + }, + "RelayStateParameterName":{ + "shape":"NonEmptyString", + "documentation":"

The relay state parameter name supported by the SAML 2.0 identity provider (IdP). When the end user is redirected to the user access URL from the WorkSpaces client application, this relay state parameter name is appended as a query parameter to the URL along with the relay state endpoint to return the user to the client application session.

To use SAML 2.0 authentication with WorkSpaces, the IdP must support IdP-initiated deep linking for the relay state URL. Consult your IdP documentation for more information.

" + } + }, + "documentation":"

Describes the enablement status, user access URL, and relay state parameter name that are used for configuring federation with an SAML 2.0 identity provider.

" + }, + "SamlStatusEnum":{ + "type":"string", + "enum":[ + "DISABLED", + "ENABLED", + "ENABLED_WITH_DIRECTORY_LOGIN_FALLBACK" + ] + }, + "SamlUserAccessUrl":{ + "type":"string", + "max":200, + "min":8, + "pattern":"^(http|https)\\://\\S+$" + }, "SecurityGroupId":{ "type":"string", "max":20, @@ -3337,6 +3744,43 @@ "type":"list", "member":{"shape":"Snapshot"} }, + "StandbyWorkspace":{ + "type":"structure", + "required":[ + "PrimaryWorkspaceId", + "DirectoryId" + ], + "members":{ + "PrimaryWorkspaceId":{ + "shape":"WorkspaceId", + "documentation":"

The identifier of the Standby WorkSpace.

" + }, + "VolumeEncryptionKey":{ + "shape":"VolumeEncryptionKey", + "documentation":"

The volume encryption key of the Standby WorkSpace.

" + }, + "DirectoryId":{ + "shape":"DirectoryId", + "documentation":"

The identifier of the directory for the Standby WorkSpace.

" + }, + "Tags":{ + "shape":"TagList", + "documentation":"

The tags associated with the Standby WorkSpace.

" + } + }, + "documentation":"

Describes a Standby WorkSpace.

" + }, + "StandbyWorkspaceRelationshipType":{ + "type":"string", + "enum":[ + "PRIMARY", + "STANDBY" + ] + }, + "StandbyWorkspacesList":{ + "type":"list", + "member":{"shape":"StandbyWorkspace"} + }, "StartRequest":{ "type":"structure", "members":{ @@ -3735,6 +4179,10 @@ "ModificationStates":{ "shape":"ModificationStateList", "documentation":"

The modification states of the WorkSpace.

" + }, + "RelatedWorkspaces":{ + "shape":"RelatedWorkspaces", + "documentation":"

The Standby WorkSpace or Primary WorkSpace related to the specified WorkSpace.

" } }, "documentation":"

Describes a WorkSpace.

" @@ -3819,6 +4267,14 @@ "CreationTime":{ "shape":"Timestamp", "documentation":"

The time when the bundle was created.

" + }, + "State":{ + "shape":"WorkspaceBundleState", + "documentation":"

The state of the WorkSpace bundle.

" + }, + "BundleType":{ + "shape":"BundleType", + "documentation":"

The type of WorkSpace bundle.

" } }, "documentation":"

Describes a WorkSpace bundle.

" @@ -3835,6 +4291,14 @@ "min":1, "pattern":"^[a-zA-Z0-9_./()\\\\-]+$" }, + "WorkspaceBundleState":{ + "type":"string", + "enum":[ + "AVAILABLE", + "PENDING", + "ERROR" + ] + }, "WorkspaceConnectionStatus":{ "type":"structure", "members":{ @@ -3957,6 +4421,14 @@ "SelfservicePermissions":{ "shape":"SelfservicePermissions", "documentation":"

The default self-service permissions for WorkSpaces in the directory.

" + }, + "SamlProperties":{ + "shape":"SamlProperties", + "documentation":"

Describes the enablement status, user access URL, and relay state parameter name that are used for configuring federation with an SAML 2.0 identity provider.

" + }, + "CertificateBasedAuthProperties":{ + "shape":"CertificateBasedAuthProperties", + "documentation":"

The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory for WorkSpaces login.

" } }, "documentation":"

Describes a directory that is used with Amazon WorkSpaces.

" @@ -4063,7 +4535,9 @@ "BYOL_GRAPHICS", "BYOL_GRAPHICSPRO", "BYOL_GRAPHICS_G4DN", - "BYOL_REGULAR_WSP" + "BYOL_REGULAR_WSP", + "BYOL_REGULAR_BYOP", + "BYOL_GRAPHICS_G4DN_BYOP" ] }, "WorkspaceImageList":{ @@ -4100,7 +4574,7 @@ "members":{ "RunningMode":{ "shape":"RunningMode", - "documentation":"

The running mode. For more information, see Manage the WorkSpace Running Mode.

" + "documentation":"

The running mode. For more information, see Manage the WorkSpace Running Mode.

The MANUAL value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see Amazon WorkSpaces Core.

" }, "RunningModeAutoStopTimeoutInMinutes":{ "shape":"RunningModeAutoStopTimeoutInMinutes", @@ -4117,6 +4591,10 @@ "ComputeTypeName":{ "shape":"Compute", "documentation":"

The compute type. For more information, see Amazon WorkSpaces Bundles.

" + }, + "Protocols":{ + "shape":"ProtocolList", + "documentation":"

The protocol. For more information, see Protocols for Amazon WorkSpaces.

  • Only available for WorkSpaces created with PCoIP bundles.

  • The Protocols property is case sensitive. Ensure you use PCOIP or WSP.

  • Unavailable for Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn).

" } }, "documentation":"

Describes a WorkSpace.

" diff --git a/botocore/data/xray/2016-04-12/endpoint-rule-set-1.json b/botocore/data/xray/2016-04-12/endpoint-rule-set-1.json new file mode 100644 index 00000000..c006b77d --- /dev/null +++ b/botocore/data/xray/2016-04-12/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://xray-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://xray-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://xray.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://xray.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/botocore/data/xray/2016-04-12/paginators-1.json b/botocore/data/xray/2016-04-12/paginators-1.json index c416bf87..0f65898f 100644 --- a/botocore/data/xray/2016-04-12/paginators-1.json +++ b/botocore/data/xray/2016-04-12/paginators-1.json @@ -54,6 +54,16 @@ ], "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/botocore/data/xray/2016-04-12/service-2.json b/botocore/data/xray/2016-04-12/service-2.json index 773bf9eb..5d01ee9c 100644 --- a/botocore/data/xray/2016-04-12/service-2.json +++ b/botocore/data/xray/2016-04-12/service-2.json @@ -67,6 +67,21 @@ ], "documentation":"

Deletes a group resource.

" }, + "DeleteResourcePolicy":{ + "name":"DeleteResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/DeleteResourcePolicy" + }, + "input":{"shape":"DeleteResourcePolicyRequest"}, + "output":{"shape":"DeleteResourcePolicyResult"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"InvalidPolicyRevisionIdException"}, + {"shape":"ThrottledException"} + ], + "documentation":"

Deletes a resource policy from the target Amazon Web Services account.

" + }, "DeleteSamplingRule":{ "name":"DeleteSamplingRule", "http":{ @@ -277,6 +292,20 @@ ], "documentation":"

Retrieves IDs and annotations for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to BatchGetTraces.

A filter expression can target traced requests that hit specific service nodes or edges, have errors, or come from a known user. For example, the following filter expression targets traces that pass through api.example.com:

service(\"api.example.com\")

This filter expression finds traces that have an annotation named account with the value 12345:

annotation.account = \"12345\"

For a full list of indexed fields and keywords that you can use in filter expressions, see Using Filter Expressions in the Amazon Web Services X-Ray Developer Guide.

" }, + "ListResourcePolicies":{ + "name":"ListResourcePolicies", + "http":{ + "method":"POST", + "requestUri":"/ListResourcePolicies" + }, + "input":{"shape":"ListResourcePoliciesRequest"}, + "output":{"shape":"ListResourcePoliciesResult"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"ThrottledException"} + ], + "documentation":"

Returns the list of resource policies in the target Amazon Web Services account.

" + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -306,6 +335,24 @@ ], "documentation":"

Updates the encryption configuration for X-Ray data.

" }, + "PutResourcePolicy":{ + "name":"PutResourcePolicy", + "http":{ + "method":"POST", + "requestUri":"/PutResourcePolicy" + }, + "input":{"shape":"PutResourcePolicyRequest"}, + "output":{"shape":"PutResourcePolicyResult"}, + "errors":[ + {"shape":"MalformedPolicyDocumentException"}, + {"shape":"LockoutPreventionException"}, + {"shape":"InvalidPolicyRevisionIdException"}, + {"shape":"PolicySizeLimitExceededException"}, + {"shape":"PolicyCountLimitExceededException"}, + {"shape":"ThrottledException"} + ], + "documentation":"

Sets the resource policy to grant one or more Amazon Web Services services and accounts permissions to access X-Ray. Each resource policy will be associated with a specific Amazon Web Services account. Each Amazon Web Services account can have a maximum of 5 resource policies, and each policy name must be unique within that account. The maximum size of each resource policy is 5KB.

" + }, "PutTelemetryRecords":{ "name":"PutTelemetryRecords", "http":{ @@ -572,7 +619,7 @@ }, "InsightsConfiguration":{ "shape":"InsightsConfiguration", - "documentation":"

The structure containing configurations related to insights.

  • The InsightsEnabled boolean can be set to true to enable insights for the new group or false to disable insights for the new group.

  • The NotifcationsEnabled boolean can be set to true to enable insights notifications for the new group. Notifications may only be enabled on a group with InsightsEnabled set to true.

" + "documentation":"

The structure containing configurations related to insights.

  • The InsightsEnabled boolean can be set to true to enable insights for the new group or false to disable insights for the new group.

  • The NotificationsEnabled boolean can be set to true to enable insights notifications for the new group. Notifications may only be enabled on a group with InsightsEnabled set to true.

" }, "Tags":{ "shape":"TagList", @@ -630,6 +677,25 @@ "members":{ } }, + "DeleteResourcePolicyRequest":{ + "type":"structure", + "required":["PolicyName"], + "members":{ + "PolicyName":{ + "shape":"PolicyName", + "documentation":"

The name of the resource policy to delete.

" + }, + "PolicyRevisionId":{ + "shape":"PolicyRevisionId", + "documentation":"

Specifies a specific policy revision to delete. Provide a PolicyRevisionId to ensure an atomic delete operation. If the provided revision id does not match the latest policy revision id, an InvalidPolicyRevisionIdException exception is returned.

" + } + } + }, + "DeleteResourcePolicyResult":{ + "type":"structure", + "members":{ + } + }, "DeleteSamplingRuleRequest":{ "type":"structure", "members":{ @@ -678,14 +744,22 @@ }, "ResponseTimeHistogram":{ "shape":"Histogram", - "documentation":"

A histogram that maps the spread of client response times on an edge.

" + "documentation":"

A histogram that maps the spread of client response times on an edge. Only populated for synchronous edges.

" }, "Aliases":{ "shape":"AliasList", "documentation":"

Aliases for the edge.

" + }, + "EdgeType":{ + "shape":"String", + "documentation":"

Describes an asynchronous connection, with a value of link.

" + }, + "ReceivedEventAgeHistogram":{ + "shape":"Histogram", + "documentation":"

A histogram that maps the spread of event age when received by consumers. Age is calculated each time an event is received. Only populated when EdgeType is link.

" } }, - "documentation":"

Information about a connection between two services.

" + "documentation":"

Information about a connection between two services. An edge can be a synchronous connection, such as typical call between client and service, or an asynchronous link, such as a Lambda function which retrieves an event from an SNS queue.

" }, "EdgeList":{ "type":"list", @@ -1814,6 +1888,15 @@ "documentation":"

A list of EC2 instance IDs corresponding to the segments in a trace.

" }, "Integer":{"type":"integer"}, + "InvalidPolicyRevisionIdException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

A policy revision id was provided which does not match the latest policy revision. This exception is also if a policy revision id of 0 is provided via PutResourcePolicy and a policy with the same name already exists.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "InvalidRequestException":{ "type":"structure", "members":{ @@ -1822,6 +1905,28 @@ "documentation":"

The request is missing required parameters or has invalid parameters.

", "exception":true }, + "ListResourcePoliciesRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"ResourcePolicyNextToken", + "documentation":"

Not currently supported.

" + } + } + }, + "ListResourcePoliciesResult":{ + "type":"structure", + "members":{ + "ResourcePolicies":{ + "shape":"ResourcePolicyList", + "documentation":"

The list of resource policies in the target Amazon Web Services account.

" + }, + "NextToken":{ + "shape":"ResourcePolicyNextToken", + "documentation":"

Pagination token. Not currently supported.

" + } + } + }, "ListTagsForResourceRequest":{ "type":"structure", "required":["ResourceARN"], @@ -1849,10 +1954,54 @@ } } }, + "LockoutPreventionException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

The provided resource policy would prevent the caller of this request from calling PutResourcePolicy in the future.

", + "error":{"httpStatusCode":400}, + "exception":true + }, + "MalformedPolicyDocumentException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

Invalid policy document provided in request.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "NullableBoolean":{"type":"boolean"}, "NullableDouble":{"type":"double"}, "NullableInteger":{"type":"integer"}, "NullableLong":{"type":"long"}, + "PolicyCountLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

Exceeded the maximum number of resource policies for a target Amazon Web Services account.

", + "error":{"httpStatusCode":400}, + "exception":true + }, + "PolicyDocument":{"type":"string"}, + "PolicyName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w+=,.@-]+" + }, + "PolicyRevisionId":{"type":"string"}, + "PolicySizeLimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "documentation":"

Exceeded the maximum size for a resource policy.

", + "error":{"httpStatusCode":400}, + "exception":true + }, "Priority":{ "type":"integer", "max":9999, @@ -1881,6 +2030,40 @@ } } }, + "PutResourcePolicyRequest":{ + "type":"structure", + "required":[ + "PolicyName", + "PolicyDocument" + ], + "members":{ + "PolicyName":{ + "shape":"PolicyName", + "documentation":"

The name of the resource policy. Must be unique within a specific Amazon Web Services account.

" + }, + "PolicyDocument":{ + "shape":"PolicyDocument", + "documentation":"

The resource policy document, which can be up to 5kb in size.

" + }, + "PolicyRevisionId":{ + "shape":"PolicyRevisionId", + "documentation":"

Specifies a specific policy revision, to ensure an atomic create operation. By default the resource policy is created if it does not exist, or updated with an incremented revision id. The revision id is unique to each policy in the account.

If the policy revision id does not match the latest revision id, the operation will fail with an InvalidPolicyRevisionIdException exception. You can also provide a PolicyRevisionId of 0. In this case, the operation will fail with an InvalidPolicyRevisionIdException exception if a resource policy with the same name already exists.

" + }, + "BypassPolicyLockoutCheck":{ + "shape":"Boolean", + "documentation":"

A flag to indicate whether to bypass the resource policy lockout safety check.

Setting this value to true increases the risk that the policy becomes unmanageable. Do not set this value to true indiscriminately.

Use this parameter only when you include a policy in the request and you intend to prevent the principal that is making the request from making a subsequent PutResourcePolicy request.

The default value is false.

" + } + } + }, + "PutResourcePolicyResult":{ + "type":"structure", + "members":{ + "ResourcePolicy":{ + "shape":"ResourcePolicy", + "documentation":"

The resource policy document, as provided in the PutResourcePolicyRequest.

" + } + } + }, "PutTelemetryRecordsRequest":{ "type":"structure", "required":["TelemetryRecords"], @@ -1977,6 +2160,37 @@ "error":{"httpStatusCode":404}, "exception":true }, + "ResourcePolicy":{ + "type":"structure", + "members":{ + "PolicyName":{ + "shape":"PolicyName", + "documentation":"

The name of the resource policy. Must be unique within a specific Amazon Web Services account.

" + }, + "PolicyDocument":{ + "shape":"PolicyDocument", + "documentation":"

The resource policy document, which can be up to 5kb in size.

" + }, + "PolicyRevisionId":{ + "shape":"PolicyRevisionId", + "documentation":"

Returns the current policy revision id for this policy name.

" + }, + "LastUpdatedTime":{ + "shape":"Timestamp", + "documentation":"

When the policy was last updated, in Unix time seconds.

" + } + }, + "documentation":"

A resource policy grants one or more Amazon Web Services services and accounts permissions to access X-Ray. Each resource policy is associated with a specific Amazon Web Services account.

" + }, + "ResourcePolicyList":{ + "type":"list", + "member":{"shape":"ResourcePolicy"} + }, + "ResourcePolicyNextToken":{ + "type":"string", + "max":100, + "min":1 + }, "ResponseTimeRootCause":{ "type":"structure", "members":{ @@ -2671,7 +2885,7 @@ }, "LimitExceeded":{ "shape":"NullableBoolean", - "documentation":"

LimitExceeded is set to true when the trace has exceeded one of the defined quotas. For more information about quotas, see Amazon Web Services X-Ray endpoints and quotas.

" + "documentation":"

LimitExceeded is set to true when the trace has exceeded the Trace document size limit. For more information about this limit and other X-Ray limits and quotas, see Amazon Web Services X-Ray endpoints and quotas.

" }, "Segments":{ "shape":"SegmentList", @@ -2909,7 +3123,7 @@ }, "InsightsConfiguration":{ "shape":"InsightsConfiguration", - "documentation":"

The structure containing configurations related to insights.

  • The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group.

  • The NotifcationsEnabled boolean can be set to true to enable insights notifications for the group. Notifications can only be enabled on a group with InsightsEnabled set to true.

" + "documentation":"

The structure containing configurations related to insights.

  • The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group.

  • The NotificationsEnabled boolean can be set to true to enable insights notifications for the group. Notifications can only be enabled on a group with InsightsEnabled set to true.

" } } }, diff --git a/botocore/docs/bcdoc/docstringparser.py b/botocore/docs/bcdoc/docstringparser.py index 9c340858..bff33af1 100644 --- a/botocore/docs/bcdoc/docstringparser.py +++ b/botocore/docs/bcdoc/docstringparser.py @@ -10,10 +10,14 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from botocore.compat import six +from html.parser import HTMLParser + +PRIORITY_PARENT_TAGS = ('code', 'a') +OMIT_NESTED_TAGS = ('span', 'i', 'code', 'a') +OMIT_SELF_TAGS = ('i', 'b') -class DocStringParser(six.moves.html_parser.HTMLParser): +class DocStringParser(HTMLParser): """ A simple HTML parser. Focused on converting the subset of HTML that appears in the documentation strings of the JSON models into @@ -23,20 +27,20 @@ class DocStringParser(six.moves.html_parser.HTMLParser): def __init__(self, doc): self.tree = None self.doc = doc - six.moves.html_parser.HTMLParser.__init__(self) + HTMLParser.__init__(self) def reset(self): - six.moves.html_parser.HTMLParser.reset(self) + HTMLParser.reset(self) self.tree = HTMLTree(self.doc) def feed(self, data): # HTMLParser is an old style class, so the super() method will not work. - six.moves.html_parser.HTMLParser.feed(self, data) + HTMLParser.feed(self, data) self.tree.write() self.tree = HTMLTree(self.doc) def close(self): - six.moves.html_parser.HTMLParser.close(self) + HTMLParser.close(self) # Write if there is anything remaining. self.tree.write() self.tree = HTMLTree(self.doc) @@ -115,8 +119,13 @@ class StemNode(Node): self._write_children(doc) def _write_children(self, doc): - for child in self.children: - child.write(doc) + for index, child in enumerate(self.children): + if isinstance(child, TagNode) and index + 1 < len(self.children): + # Provide a look ahead for TagNodes when one exists + next_child = self.children[index + 1] + child.write(doc, next_child) + else: + child.write(doc) class TagNode(StemNode): @@ -129,29 +138,49 @@ class TagNode(StemNode): self.attrs = attrs self.tag = tag - def write(self, doc): + def _has_nested_tags(self): + # Returns True if any children are TagNodes and False otherwise. + return any(isinstance(child, TagNode) for child in self.children) + + def write(self, doc, next_child=None): + prioritize_nested_tags = ( + self.tag in OMIT_SELF_TAGS and self._has_nested_tags() + ) + prioritize_parent_tag = ( + isinstance(self.parent, TagNode) + and self.parent.tag in PRIORITY_PARENT_TAGS + and self.tag in OMIT_NESTED_TAGS + ) + if prioritize_nested_tags or prioritize_parent_tag: + self._write_children(doc) + return + self._write_start(doc) self._write_children(doc) - self._write_end(doc) + self._write_end(doc, next_child) def _write_start(self, doc): handler_name = 'start_%s' % self.tag if hasattr(doc.style, handler_name): getattr(doc.style, handler_name)(self.attrs) - def _write_end(self, doc): + def _write_end(self, doc, next_child): handler_name = 'end_%s' % self.tag if hasattr(doc.style, handler_name): - getattr(doc.style, handler_name)() + if handler_name == 'end_a': + # We use lookahead to determine if a space is needed after a link node + getattr(doc.style, handler_name)(next_child) + else: + getattr(doc.style, handler_name)() class LineItemNode(TagNode): def __init__(self, attrs=None, parent=None): super().__init__('li', attrs, parent) - def write(self, doc): + def write(self, doc, next_child=None): self._lstrip(self) - super().write(doc) + super().write(doc, next_child) def _lstrip(self, node): """ @@ -192,6 +221,11 @@ class DataNode(Node): if self.data.isspace(): str_data = ' ' + if isinstance(self.parent, TagNode) and self.parent.tag == 'code': + # Inline markup content may not start or end with whitespace. + # When provided Test , we want to + # generate ``Test`` instead of `` Test ``. + str_data = '' else: end_space = self.data[-1].isspace() words = self.data.split() diff --git a/botocore/docs/bcdoc/restdoc.py b/botocore/docs/bcdoc/restdoc.py index 20645267..e17e5ed4 100644 --- a/botocore/docs/bcdoc/restdoc.py +++ b/botocore/docs/bcdoc/restdoc.py @@ -58,7 +58,7 @@ class ReSTDocument: """ Removes and returns the last content written to the stack. """ - return self._writes.pop() + return self._writes.pop() if len(self._writes) > 0 else None def push_write(self, s): """ diff --git a/botocore/docs/bcdoc/style.py b/botocore/docs/bcdoc/style.py index 0f88f338..568808df 100644 --- a/botocore/docs/bcdoc/style.py +++ b/botocore/docs/bcdoc/style.py @@ -14,6 +14,8 @@ import logging logger = logging.getLogger('bcdocs') +# Terminal punctuation where a space is not needed before. +PUNCTUATION_CHARACTERS = ('.', ',', '?', '!', ':', ';') class BaseStyle: @@ -62,6 +64,16 @@ class BaseStyle: def italics(self, s): return s + def add_trailing_space_to_previous_write(self): + # Adds a trailing space if none exists. This is mainly used for + # ensuring inline code and links are separated from surrounding text. + last_write = self.doc.pop_write() + if last_write is None: + last_write = '' + if last_write != '' and last_write[-1] != ' ': + last_write += ' ' + self.doc.push_write(last_write) + class ReSTStyle(BaseStyle): def __init__(self, doc, indent_width=2): @@ -160,6 +172,7 @@ class ReSTStyle(BaseStyle): def start_code(self, attrs=None): self.doc.do_translation = True + self.add_trailing_space_to_previous_write() self._start_inline('``') def end_code(self): @@ -203,10 +216,15 @@ class ReSTStyle(BaseStyle): self.new_paragraph() def start_a(self, attrs=None): + # Write an empty space to guard against zero whitespace + # before an "a" tag. Example: hiExample + self.add_trailing_space_to_previous_write() if attrs: for attr_key, attr_value in attrs: if attr_key == 'href': - self.a_href = attr_value + # Removes unnecessary whitespace around the href link. + # Example: Example + self.a_href = attr_value.strip() self.doc.write('`') else: # There are some model documentation that @@ -227,9 +245,23 @@ class ReSTStyle(BaseStyle): else: self.doc.write(text) - def end_a(self): + def _clean_link_text(self): + doc = self.doc + # Pop till we reach the link start character to retrieve link text. + last_write = doc.pop_write() + while not last_write.startswith('`'): + last_write = doc.pop_write() + last_write + doc.push_write('`') + + # Remove whitespace from the start of link text. + last_write = last_write[1:].lstrip(' ') + if last_write != '': + doc.push_write(last_write) + + def end_a(self, next_child=None): self.doc.do_translation = False if self.a_href: + self._clean_link_text() last_write = self.doc.pop_write() last_write = last_write.rstrip(' ') if last_write and last_write != '`': @@ -249,7 +281,15 @@ class ReSTStyle(BaseStyle): self.doc.hrefs[self.a_href] = self.a_href self.doc.write('`__') self.a_href = None - self.doc.write(' ') + + if ( + next_child is None + or next_child.data[0] not in PUNCTUATION_CHARACTERS + ): + # We only want to add a trailing space if the link is + # not followed by a period, comma, or other gramatically + # correct special character. + self.doc.write(' ') def start_i(self, attrs=None): self.doc.do_translation = True diff --git a/botocore/docs/method.py b/botocore/docs/method.py index 0f7c60f6..44c97d6e 100644 --- a/botocore/docs/method.py +++ b/botocore/docs/method.py @@ -11,6 +11,7 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. import inspect +import types from botocore.docs.example import ( RequestExampleDocumenter, @@ -101,14 +102,18 @@ def document_custom_signature( :param exclude: The names of the parameters to exclude from documentation. """ - argspec = inspect.getfullargspec(method) - signature_params = inspect.formatargspec( - args=argspec.args[1:], - varargs=argspec.varargs, - varkw=argspec.varkw, - defaults=argspec.defaults, - ) - signature_params = signature_params.lstrip('(') + signature = inspect.signature(method) + # "raw" class methods are FunctionType and they include "self" param + # object methods are MethodType and they skip the "self" param + if isinstance(method, types.FunctionType): + self_param = next(iter(signature.parameters)) + self_kind = signature.parameters[self_param].kind + # safety check that we got the right parameter + assert self_kind == inspect.Parameter.POSITIONAL_OR_KEYWORD + new_params = signature.parameters.copy() + del new_params[self_param] + signature = signature.replace(parameters=new_params.values()) + signature_params = str(signature).lstrip('(') signature_params = signature_params.rstrip(')') section.style.start_sphinx_py_method(name, signature_params) diff --git a/botocore/endpoint.py b/botocore/endpoint.py index 7814e5ac..adc622c2 100644 --- a/botocore/endpoint.py +++ b/botocore/endpoint.py @@ -107,6 +107,9 @@ class Endpoint: def __repr__(self): return f'{self._endpoint_prefix}({self.host})' + def close(self): + self.http_session.close() + def make_request(self, operation_model, request_dict): logger.debug( "Making request for %s with params: %s", diff --git a/botocore/endpoint_provider.py b/botocore/endpoint_provider.py new file mode 100644 index 00000000..f90eb94d --- /dev/null +++ b/botocore/endpoint_provider.py @@ -0,0 +1,728 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +""" +NOTE: All classes and functions in this module are considered private and are +subject to abrupt breaking changes. Please do not use them directly. + +To view the raw JSON that the objects in this module represent, please +go to any `endpoint-rule-set.json` file in /botocore/data/// +or you can look at the test files in /tests/unit/data/endpoints/valid-rules/ +""" + + +import logging +import re +from enum import Enum +from functools import lru_cache +from string import Formatter +from typing import NamedTuple + +from botocore import xform_name +from botocore.compat import IPV4_RE, quote, urlparse +from botocore.exceptions import EndpointResolutionError +from botocore.utils import ( + ArnParser, + InvalidArnException, + is_valid_ipv4_endpoint_url, + is_valid_ipv6_endpoint_url, + normalize_url_path, + percent_encode, +) + +logger = logging.getLogger(__name__) + +TEMPLATE_STRING_RE = re.compile(r"\{[a-zA-Z#]+\}") +GET_ATTR_RE = re.compile(r"(\w+)\[(\d+)\]") +VALID_HOST_LABEL_RE = re.compile( + r"^(?!-)[a-zA-Z\d-]{1,63}(?= len(value): + return None + return value[index] + else: + value = value[part] + return value + + def format_partition_output(self, partition): + output = partition["outputs"] + output["name"] = partition["id"] + return output + + def is_partition_match(self, region, partition): + matches_regex = re.match(partition["regionRegex"], region) is not None + return region in partition["regions"] or matches_regex + + def aws_partition(self, value): + """Match a region string to an AWS partition. + + :type value: str + :rtype: dict + """ + partitions = self.partitions_data['partitions'] + + if value is not None: + for partition in partitions: + if self.is_partition_match(value, partition): + return self.format_partition_output(partition) + + # return the default partition if no matches were found + aws_partition = partitions[0] + return self.format_partition_output(aws_partition) + + def aws_parse_arn(self, value): + """Parse and validate string for ARN components. + + :type value: str + :rtype: dict + """ + if value is None or not value.startswith("arn:"): + return None + + try: + arn_dict = ARN_PARSER.parse_arn(value) + except InvalidArnException: + return None + + # partition, resource, and service are required + if not all( + (arn_dict["partition"], arn_dict["service"], arn_dict["resource"]) + ): + return None + + arn_dict["accountId"] = arn_dict.pop("account") + + resource = arn_dict.pop("resource") + delimiter = ":" if ":" in resource else "/" + arn_dict["resourceId"] = resource.split(delimiter) + + return arn_dict + + def is_valid_host_label(self, value, allow_subdomains): + """Evaluates whether a value is a valid host label per + RFC 1123. If allow_subdomains is True, split on `.` and validate + each component separately. + + :type value: str + :type allow_subdomains: bool + :rtype: bool + """ + if value is None or allow_subdomains is False and value.count(".") > 0: + return False + + if allow_subdomains is True: + return all( + self.is_valid_host_label(label, False) + for label in value.split(".") + ) + + return VALID_HOST_LABEL_RE.match(value) is not None + + def string_equals(self, value1, value2): + """Evaluates two string values for equality. + + :type value1: str + :type value2: str + :rtype: bool + """ + if not all(isinstance(val, str) for val in (value1, value2)): + msg = f"Both values must be strings, not {type(value1)} and {type(value2)}." + raise EndpointResolutionError(msg=msg) + return value1 == value2 + + def uri_encode(self, value): + """Perform percent-encoding on an input string. + + :type value: str + :rytpe: str + """ + if value is None: + return None + + return percent_encode(value) + + def parse_url(self, value): + """Parse a URL string into components. + + :type value: str + :rtype: dict + """ + if value is None: + return None + + url_components = urlparse(value) + try: + # url_parse may assign non-integer values to + # `port` and will fail when accessed. + url_components.port + except ValueError: + return None + + scheme = url_components.scheme + query = url_components.query + # URLs with queries are not supported + if scheme not in ("https", "http") or len(query) > 0: + return None + + path = url_components.path + normalized_path = quote(normalize_url_path(path)) + if not normalized_path.endswith("/"): + normalized_path = f"{normalized_path}/" + + return { + "scheme": scheme, + "authority": url_components.netloc, + "path": path, + "normalizedPath": normalized_path, + "isIp": is_valid_ipv4_endpoint_url(value) + or is_valid_ipv6_endpoint_url(value), + } + + def boolean_equals(self, value1, value2): + """Evaluates two boolean values for equality. + + :type value1: bool + :type value2: bool + :rtype: bool + """ + if not all(isinstance(val, bool) for val in (value1, value2)): + msg = f"Both arguments must be bools, not {type(value1)} and {type(value2)}." + raise EndpointResolutionError(msg=msg) + return value1 is value2 + + def is_ascii(self, value): + """Evaluates if a string only contains ASCII characters. + + :type value: str + :rtype: bool + """ + try: + value.encode("ascii") + return True + except UnicodeEncodeError: + return False + + def substring(self, value, start, stop, reverse): + """Computes a substring given the start index and end index. If `reverse` is + True, slice the string from the end instead. + + :type value: str + :type start: int + :type end: int + :type reverse: bool + :rtype: str + """ + if not isinstance(value, str): + msg = f"Input must be a string, not {type(value)}." + raise EndpointResolutionError(msg=msg) + if start >= stop or len(value) < stop or not self.is_ascii(value): + return None + + if reverse is True: + r_start = len(value) - stop + r_stop = len(value) - start + return value[r_start:r_stop] + + return value[start:stop] + + def _not(self, value): + """A function implementation of the logical operator `not`. + + :type value: Any + :rtype: bool + """ + return not value + + def aws_is_virtual_hostable_s3_bucket(self, value, allow_subdomains): + """Evaluates whether a value is a valid bucket name for virtual host + style bucket URLs. To pass, the value must meet the following criteria: + 1. is_valid_host_label(value) is True + 2. length between 3 and 63 characters (inclusive) + 3. does not contain uppercase characters + 4. is not formatted as an IP address + + If allow_subdomains is True, split on `.` and validate + each component separately. + + :type value: str + :type allow_subdomains: bool + :rtype: bool + """ + if ( + value is None + or len(value) < 3 + or value.lower() != value + or IPV4_RE.match(value) is not None + ): + return False + + if allow_subdomains is True: + return all( + self.aws_is_virtual_hostable_s3_bucket(label, False) + for label in value.split(".") + ) + + return self.is_valid_host_label(value, allow_subdomains=False) + + +# maintains backwards compatibility as `Library` was misspelled +# in earlier versions +RuleSetStandardLibary = RuleSetStandardLibrary + + +class BaseRule: + """Base interface for individual endpoint rules.""" + + def __init__(self, conditions, documentation=None): + self.conditions = conditions + self.documentation = documentation + + def evaluate(self, scope_vars, rule_lib): + raise NotImplementedError() + + def evaluate_conditions(self, scope_vars, rule_lib): + """Determine if all conditions in a rule are met. + + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: bool + """ + for func_signature in self.conditions: + result = rule_lib.call_function(func_signature, scope_vars) + if result is False or result is None: + return False + return True + + +class RuleSetEndpoint(NamedTuple): + """A resolved endpoint object returned by a rule.""" + + url: str + properties: dict + headers: dict + + +class EndpointRule(BaseRule): + def __init__(self, endpoint, **kwargs): + super().__init__(**kwargs) + self.endpoint = endpoint + + def evaluate(self, scope_vars, rule_lib): + """Determine if conditions are met to provide a valid endpoint. + + :type scope_vars: dict + :rtype: RuleSetEndpoint + """ + if self.evaluate_conditions(scope_vars, rule_lib): + url = rule_lib.resolve_value(self.endpoint["url"], scope_vars) + properties = self.resolve_properties( + self.endpoint.get("properties", {}), + scope_vars, + rule_lib, + ) + headers = self.resolve_headers(scope_vars, rule_lib) + return RuleSetEndpoint( + url=url, properties=properties, headers=headers + ) + + return None + + def resolve_properties(self, properties, scope_vars, rule_lib): + """Traverse `properties` attribute, resolving any template strings. + + :type properties: dict/list/str + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: dict + """ + if isinstance(properties, list): + return [ + self.resolve_properties(prop, scope_vars, rule_lib) + for prop in properties + ] + elif isinstance(properties, dict): + return { + key: self.resolve_properties(value, scope_vars, rule_lib) + for key, value in properties.items() + } + elif rule_lib.is_template(properties): + return rule_lib.resolve_template_string(properties, scope_vars) + + return properties + + def resolve_headers(self, scope_vars, rule_lib): + """Iterate through headers attribute resolving all values. + + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: dict + """ + resolved_headers = {} + headers = self.endpoint.get("headers", {}) + + for header, values in headers.items(): + resolved_headers[header] = [ + rule_lib.resolve_value(item, scope_vars) for item in values + ] + return resolved_headers + + +class ErrorRule(BaseRule): + def __init__(self, error, **kwargs): + super().__init__(**kwargs) + self.error = error + + def evaluate(self, scope_vars, rule_lib): + """If an error rule's conditions are met, raise an error rule. + + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: EndpointResolutionError + """ + if self.evaluate_conditions(scope_vars, rule_lib): + error = rule_lib.resolve_value(self.error, scope_vars) + raise EndpointResolutionError(msg=error) + return None + + +class TreeRule(BaseRule): + """A tree rule is non-terminal meaning it will never be returned to a provider. + Additionally this means it has no attributes that need to be resolved. + """ + + def __init__(self, rules, **kwargs): + super().__init__(**kwargs) + self.rules = [RuleCreator.create(**rule) for rule in rules] + + def evaluate(self, scope_vars, rule_lib): + """If a tree rule's conditions are met, iterate its sub-rules + and return first result found. + + :type scope_vars: dict + :type rule_lib: RuleSetStandardLibrary + :rtype: RuleSetEndpoint/EndpointResolutionError + """ + if self.evaluate_conditions(scope_vars, rule_lib): + for rule in self.rules: + # don't share scope_vars between rules + rule_result = rule.evaluate(scope_vars.copy(), rule_lib) + if rule_result: + return rule_result + return None + + +class RuleCreator: + + endpoint = EndpointRule + error = ErrorRule + tree = TreeRule + + @classmethod + def create(cls, **kwargs): + """Create a rule instance from metadata. + + :rtype: TreeRule/EndpointRule/ErrorRule + """ + rule_type = kwargs.pop("type") + try: + rule_class = getattr(cls, rule_type) + except AttributeError: + raise EndpointResolutionError( + msg=f"Unknown rule type: {rule_type}. A rule must " + "be of type tree, endpoint or error." + ) + else: + return rule_class(**kwargs) + + +class ParameterType(Enum): + """Translation from `type` attribute to native Python type.""" + + string = str + boolean = bool + + +class ParameterDefinition: + """The spec of an individual parameter defined in a RuleSet.""" + + def __init__( + self, + name, + parameter_type, + documentation=None, + builtIn=None, + default=None, + required=None, + deprecated=None, + ): + self.name = name + try: + self.parameter_type = getattr( + ParameterType, parameter_type.lower() + ).value + except AttributeError: + raise EndpointResolutionError( + msg=f"Unknown parameter type: {parameter_type}. " + "A parameter must be of type string or boolean." + ) + self.documentation = documentation + self.builtin = builtIn + self.default = default + self.required = required + self.deprecated = deprecated + + def validate_input(self, value): + """Perform base validation on parameter input. + + :type value: Any + :raises: EndpointParametersError + """ + + if not isinstance(value, self.parameter_type): + raise EndpointResolutionError( + msg=f"Value ({self.name}) is the wrong " + f"type. Must be {self.parameter_type}." + ) + if self.deprecated is not None: + depr_str = f"{self.name} has been deprecated." + msg = self.deprecated.get("message") + since = self.deprecated.get("since") + if msg: + depr_str += f"\n{msg}" + if since: + depr_str += f"\nDeprecated since {since}." + logger.info(depr_str) + + return None + + def process_input(self, value): + """Process input against spec, applying default if value is None.""" + if value is None: + if self.default is not None: + return self.default + if self.required: + raise EndpointResolutionError( + f"Cannot find value for required parameter {self.name}" + ) + # in all other cases, the parameter will keep the value None + else: + self.validate_input(value) + return value + + +class RuleSet: + """Collection of rules to derive a routable service endpoint.""" + + def __init__( + self, version, parameters, rules, partitions, documentation=None + ): + self.version = version + self.parameters = self._ingest_parameter_spec(parameters) + self.rules = [RuleCreator.create(**rule) for rule in rules] + self.rule_lib = RuleSetStandardLibrary(partitions) + self.documentation = documentation + + def _ingest_parameter_spec(self, parameters): + return { + name: ParameterDefinition( + name, + spec["type"], + spec.get("documentation"), + spec.get("builtIn"), + spec.get("default"), + spec.get("required"), + spec.get("deprecated"), + ) + for name, spec in parameters.items() + } + + def process_input_parameters(self, input_params): + """Process each input parameter against its spec. + + :type input_params: dict + """ + for name, spec in self.parameters.items(): + value = spec.process_input(input_params.get(name)) + if value is not None: + input_params[name] = value + return None + + def evaluate(self, input_parameters): + """Evaluate input parameters against rules returning first match. + + :type input_parameters: dict + """ + self.process_input_parameters(input_parameters) + for rule in self.rules: + evaluation = rule.evaluate(input_parameters.copy(), self.rule_lib) + if evaluation is not None: + return evaluation + return None + + +class EndpointProvider: + """Derives endpoints from a RuleSet for given input parameters.""" + + def __init__(self, ruleset_data, partition_data): + self.ruleset = RuleSet(**ruleset_data, partitions=partition_data) + + @lru_cache(maxsize=CACHE_SIZE) + def resolve_endpoint(self, **input_parameters): + """Match input parameters to a rule. + + :type input_parameters: dict + :rtype: RuleSetEndpoint + """ + params_for_error = input_parameters.copy() + endpoint = self.ruleset.evaluate(input_parameters) + if endpoint is None: + param_string = "\n".join( + [f"{key}: {value}" for key, value in params_for_error.items()] + ) + raise EndpointResolutionError( + msg=f"No endpoint found for parameters:\n{param_string}" + ) + return endpoint diff --git a/botocore/exceptions.py b/botocore/exceptions.py index 089add9e..1c480abb 100644 --- a/botocore/exceptions.py +++ b/botocore/exceptions.py @@ -165,6 +165,26 @@ class NoCredentialsError(BotoCoreError): fmt = 'Unable to locate credentials' +class NoAuthTokenError(BotoCoreError): + """ + No authorization token could be found. + """ + + fmt = 'Unable to locate authorization token' + + +class TokenRetrievalError(BotoCoreError): + """ + Error attempting to retrieve a token from a remote source. + + :ivar provider: The name of the token provider. + :ivar error_msg: The msg explaining why the token could not be retrieved. + + """ + + fmt = 'Error when retrieving token from {provider}: {error_msg}' + + class PartialCredentialsError(BotoCoreError): """ Only partial credentials were found. @@ -635,7 +655,7 @@ class InvalidRetryConfigurationError(BotoCoreError): fmt = ( 'Cannot provide retry configuration for "{retry_config_option}". ' - 'Valid retry configuration options are: \'max_attempts\'' + 'Valid retry configuration options are: {valid_options}' ) @@ -653,7 +673,7 @@ class InvalidRetryModeError(InvalidRetryConfigurationError): fmt = ( 'Invalid value provided to "mode": "{provided_retry_mode}" must ' - 'be one of: "legacy", "standard", "adaptive"' + 'be one of: {valid_modes}' ) @@ -735,7 +755,10 @@ class MissingServiceIdError(UndefinedModelAttributeError): class SSOError(BotoCoreError): - fmt = "An unspecified error happened when resolving SSO credentials" + fmt = ( + "An unspecified error happened when resolving AWS credentials or an " + "access token from SSO." + ) class SSOTokenLoadError(SSOError): @@ -775,3 +798,19 @@ class FlexibleChecksumError(BotoCoreError): class InvalidEndpointConfigurationError(BotoCoreError): fmt = 'Invalid endpoint configuration: {msg}' + + +class EndpointProviderError(BotoCoreError): + """Base error for the EndpointProvider class""" + + fmt = '{msg}' + + +class EndpointResolutionError(EndpointProviderError): + """Error when input parameters resolve to an error rule""" + + fmt = '{msg}' + + +class UnknownEndpointResolutionBuiltInName(EndpointProviderError): + fmt = 'Unknown builtin variable name: {name}' diff --git a/botocore/handlers.py b/botocore/handlers.py index 4b1d6445..60224dd4 100644 --- a/botocore/handlers.py +++ b/botocore/handlers.py @@ -46,11 +46,13 @@ from botocore.docs.utils import ( AutoPopulatedParam, HideParamFromOperations, ) +from botocore.endpoint_provider import VALID_HOST_LABEL_RE from botocore.exceptions import ( AliasConflictParameterError, ParamValidationError, UnsupportedTLSVersionWarning, ) +from botocore.regions import EndpointResolverBuiltins from botocore.signers import ( add_generate_db_auth_token, add_generate_presigned_post, @@ -58,8 +60,8 @@ from botocore.signers import ( ) from botocore.utils import ( SAFE_CHARS, + ArnParser, conditionally_calculate_md5, - is_global_accesspoint, percent_encode, switch_host_with_param, ) @@ -70,6 +72,7 @@ from botocore import translate # noqa from botocore.compat import MD5_AVAILABLE # noqa from botocore.exceptions import MissingServiceIdError # noqa from botocore.utils import hyphenize_service_id # noqa +from botocore.utils import is_global_accesspoint # noqa logger = logging.getLogger(__name__) @@ -91,6 +94,9 @@ _OUTPOST_ARN = ( r'[a-zA-Z0-9\-]{1,63}[/:]accesspoint[/:][a-zA-Z0-9\-]{1,63}$' ) VALID_S3_ARN = re.compile('|'.join([_ACCESSPOINT_ARN, _OUTPOST_ARN])) +# signing names used for the services s3 and s3-control, for example in +# botocore/data/s3/2006-03-01/endpoints-rule-set-1.json +S3_SIGNING_NAMES = ('s3', 's3-outposts', 's3-object-lambda') VERSION_ID_SUFFIX = re.compile(r'\?versionId=[^\s]+$') SERVICE_NAME_ALIASES = {'runtime.sagemaker': 'sagemaker-runtime'} @@ -102,11 +108,11 @@ def handle_service_name_alias(service_name, **kwargs): def add_recursion_detection_header(params, **kwargs): has_lambda_name = 'AWS_LAMBDA_FUNCTION_NAME' in os.environ - trace_id = os.environ.get('_X_AMZ_TRACE_ID') + trace_id = os.environ.get('_X_AMZN_TRACE_ID') if has_lambda_name and trace_id: headers = params['headers'] if 'X-Amzn-Trace-Id' not in headers: - headers['X-Amzn-Trace-Id'] = quote(trace_id) + headers['X-Amzn-Trace-Id'] = quote(trace_id, safe='-=;:+&[]{}"\',') def escape_xml_payload(params, **kwargs): @@ -194,29 +200,32 @@ def set_operation_specific_signer(context, signing_name, **kwargs): if auth_type == 'none': return botocore.UNSIGNED - if auth_type == 'v4a': - # If sigv4a is chosen, we must add additional - # signing config for global signature. - signing = {'region': '*', 'signing_name': signing_name} - if 'signing' in context: - context['signing'].update(signing) - else: - context['signing'] = signing - return 'v4a' + if auth_type == 'bearer': + return 'bearer' if auth_type.startswith('v4'): - signature_version = 'v4' - if signing_name == 's3': - if is_global_accesspoint(context): - signature_version = 's3v4a' + if auth_type == 'v4a': + # If sigv4a is chosen, we must add additional signing config for + # global signature. + signing = {'region': '*', 'signing_name': signing_name} + if 'signing' in context: + context['signing'].update(signing) else: - signature_version = 's3v4' + context['signing'] = signing + signature_version = 'v4a' + else: + signature_version = 'v4' # If the operation needs an unsigned body, we set additional context # allowing the signer to be aware of this. if auth_type == 'v4-unsigned-body': context['payload_signing_enabled'] = False + # Signing names used by s3 and s3-control use customized signers "s3v4" + # and "s3v4a". + if signing_name in S3_SIGNING_NAMES: + signature_version = f's3{signature_version}' + return signature_version @@ -632,7 +641,7 @@ def fix_route53_ids(params, model, **kwargs): members = [ name for (name, shape) in input_shape.members.items() - if shape.name in ['ResourceId', 'DelegationSetId'] + if shape.name in ['ResourceId', 'DelegationSetId', 'ChangeId'] ] for name in members: @@ -1018,6 +1027,116 @@ def add_retry_headers(request, **kwargs): headers['amz-sdk-request'] = '; '.join(sdk_request_headers) +def remove_bucket_from_url_paths_from_model(params, model, context, **kwargs): + """Strips leading `{Bucket}/` from any operations that have it. + + The original value is retained in a separate "authPath" field. This is + used in the HmacV1Auth signer. See HmacV1Auth.canonical_resource in + botocore/auth.py for details. + + This change is applied to the operation model during the first time the + operation is invoked and then stays in effect for the lifetime of the + client object. + + When the ruleset based endpoint resolver is in effect, both the endpoint + ruleset AND the service model place the bucket name in the final URL. + The result is an invalid URL. This handler modifies the operation model to + no longer place the bucket name. Previous versions of botocore fixed the + URL after the fact when necessary. Since the introduction of ruleset based + endpoint resolution, the problem exists in ALL URLs that contain a bucket + name and can therefore be addressed before the URL gets assembled. + """ + req_uri = model.http['requestUri'] + bucket_path = '/{Bucket}' + if req_uri.startswith(bucket_path): + model.http['requestUri'] = req_uri[len(bucket_path) :] + # If the request URI is ONLY a bucket, the auth_path must be + # terminated with a '/' character to generate a signature that the + # server will accept. + needs_slash = req_uri == bucket_path + model.http['authPath'] = f'{req_uri}/' if needs_slash else req_uri + + +def remove_accid_host_prefix_from_model(params, model, context, **kwargs): + """Removes the `{AccountId}.` prefix from the operation model. + + This change is applied to the operation model during the first time the + operation is invoked and then stays in effect for the lifetime of the + client object. + + When the ruleset based endpoint resolver is in effect, both the endpoint + ruleset AND the service model place the {AccountId}. prefix in the URL. + The result is an invalid endpoint. This handler modifies the operation + model to remove the `endpoint.hostPrefix` field while leaving the + `RequiresAccountId` static context parameter in place. + """ + has_ctx_param = any( + ctx_param.name == 'RequiresAccountId' and ctx_param.value is True + for ctx_param in model.static_context_parameters + ) + if ( + model.endpoint is not None + and model.endpoint.get('hostPrefix') == '{AccountId}.' + and has_ctx_param + ): + del model.endpoint['hostPrefix'] + + +def remove_arn_from_signing_path(request, **kwargs): + auth_path = request.auth_path + if isinstance(auth_path, str) and auth_path.startswith('/arn%3A'): + auth_path_parts = auth_path.split('/') + if len(auth_path_parts) > 1 and ArnParser.is_arn( + unquote(auth_path_parts[1]) + ): + request.auth_path = '/'.join(['', *auth_path_parts[2:]]) + + +def customize_endpoint_resolver_builtins( + builtins, model, params, context, **kwargs +): + """Modify builtin parameter values for endpoint resolver + + Modifies the builtins dict in place. Changes are in effect for one call. + The corresponding event is emitted only if at least one builtin parameter + value is required for endpoint resolution for the operation. + """ + bucket_name = params.get('Bucket') + bucket_is_arn = bucket_name is not None and ArnParser.is_arn(bucket_name) + # In some situations the host will return AuthorizationHeaderMalformed + # when the signing region of a sigv4 request is not the bucket's + # region (which is likely unknown by the user of GetBucketLocation). + # Avoid this by always using path-style addressing. + if model.name == 'GetBucketLocation': + builtins[EndpointResolverBuiltins.AWS_S3_FORCE_PATH_STYLE] = True + # All situations where the bucket name is an ARN are not compatible + # with path style addressing. + elif bucket_is_arn: + builtins[EndpointResolverBuiltins.AWS_S3_FORCE_PATH_STYLE] = False + + # Bucket names that are invalid host labels require path-style addressing. + # If path-style addressing was specifically requested, the default builtin + # value is already set. + path_style_required = ( + bucket_name is not None and not VALID_HOST_LABEL_RE.match(bucket_name) + ) + path_style_requested = builtins[ + EndpointResolverBuiltins.AWS_S3_FORCE_PATH_STYLE + ] + + # Path-style addressing is incompatible with the global endpoint for + # presigned URLs. If the bucket name is an ARN, the ARN's region should be + # used in the endpoint. + if ( + context.get('use_global_endpoint') + and not path_style_required + and not path_style_requested + and not bucket_is_arn + ): + builtins[EndpointResolverBuiltins.AWS_REGION] = 'aws-global' + builtins[EndpointResolverBuiltins.AWS_S3_USE_GLOBAL_ENDPOINT] = True + + # This is a list of (event_name, handler). # When a Session is created, everything in this list will be # automatically registered with that Session. @@ -1048,6 +1167,7 @@ BUILTIN_HANDLERS = [ ('after-call.s3.GetBucketLocation', parse_get_bucket_location), ('before-parameter-build', generate_idempotent_uuid), ('before-parameter-build.s3', validate_bucket_name), + ('before-parameter-build.s3', remove_bucket_from_url_paths_from_model), ( 'before-parameter-build.s3.ListObjects', set_list_objects_encoding_type_url, @@ -1068,8 +1188,10 @@ BUILTIN_HANDLERS = [ 'before-parameter-build.s3.CreateMultipartUpload', validate_ascii_metadata, ), + ('before-parameter-build.s3-control', remove_accid_host_prefix_from_model), ('docs.*.s3.CopyObject.complete-section', document_copy_source_form), ('docs.*.s3.UploadPartCopy.complete-section', document_copy_source_form), + ('before-endpoint-resolution.s3', customize_endpoint_resolver_builtins), ('before-call', add_recursion_detection_header), ('before-call.s3', add_expect_header), ('before-call.glacier', add_glacier_version), @@ -1109,6 +1231,7 @@ BUILTIN_HANDLERS = [ ('before-parameter-build.s3.UploadPart', sse_md5), ('before-parameter-build.s3.UploadPartCopy', sse_md5), ('before-parameter-build.s3.UploadPartCopy', copy_source_sse_md5), + ('before-parameter-build.s3.SelectObjectContent', sse_md5), ('before-parameter-build.ec2.RunInstances', base64_encode_user_data), ( 'before-parameter-build.autoscaling.CreateLaunchConfiguration', @@ -1116,6 +1239,7 @@ BUILTIN_HANDLERS = [ ), ('before-parameter-build.route53', fix_route53_ids), ('before-parameter-build.glacier', inject_account_id), + ('before-sign.s3', remove_arn_from_signing_path), ('after-call.s3.ListObjects', decode_list_object), ('after-call.s3.ListObjectsV2', decode_list_object_v2), ('after-call.s3.ListObjectVersions', decode_list_object_versions), diff --git a/botocore/httpsession.py b/botocore/httpsession.py index 300d09e4..97a03644 100644 --- a/botocore/httpsession.py +++ b/botocore/httpsession.py @@ -3,6 +3,7 @@ import os import os.path import socket import sys +import warnings from base64 import b64encode from urllib3 import PoolManager, Timeout, proxy_from_url @@ -37,8 +38,14 @@ except ImportError: from ssl import OP_NO_TICKET, PROTOCOL_TLS_CLIENT try: - # Always import the original SSLContext, even if it has been patched - from urllib3.contrib.pyopenssl import orig_util_SSLContext as SSLContext + # pyopenssl will be removed in urllib3 2.0, we'll fall back to ssl_ at that point. + # This can be removed once our urllib3 floor is raised to >= 2.0. + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=DeprecationWarning) + # Always import the original SSLContext, even if it has been patched + from urllib3.contrib.pyopenssl import ( + orig_util_SSLContext as SSLContext, + ) except ImportError: from urllib3.util.ssl_ import SSLContext @@ -47,6 +54,7 @@ from botocore.compat import ( IPV6_ADDRZ_RE, ensure_bytes, filter_ssl_warnings, + unquote, urlparse, ) from botocore.exceptions import ( @@ -59,7 +67,6 @@ from botocore.exceptions import ( ReadTimeoutError, SSLError, ) -from botocore.vendored.six.moves.urllib_parse import unquote filter_ssl_warnings() logger = logging.getLogger(__name__) @@ -423,6 +430,11 @@ class URLLib3Session: transfer_encoding = ensure_bytes(transfer_encoding) return transfer_encoding.lower() == b'chunked' + def close(self): + self._manager.clear() + for manager in self._proxy_managers.values(): + manager.clear() + def send(self, request): try: proxy_url = self._proxy_config.proxy_url_for(request.url) diff --git a/botocore/loaders.py b/botocore/loaders.py index 7952d03e..e3429c7e 100644 --- a/botocore/loaders.py +++ b/botocore/loaders.py @@ -434,6 +434,24 @@ class Loader: pass @instance_cache + def load_data_with_path(self, name): + """Same as ``load_data`` but returns file path as second return value. + + :type name: str + :param name: The data path, i.e ``ec2/2015-03-01/service-2``. + + :return: Tuple of the loaded data and the path to the data file + where the data was loaded from. If no data could be found then a + DataNotFoundError is raised. + """ + for possible_path in self._potential_locations(name): + found = self.file_loader.load_file(possible_path) + if found is not None: + return found, possible_path + + # We didn't find anything that matched on any path. + raise DataNotFoundError(data_path=name) + def load_data(self, name): """Load data given a data path. @@ -441,21 +459,17 @@ class Loader: search paths until it's able to load a value. This is typically only needed to load *non* model files (such as _endpoints and _retry). If you need to load model files, you should prefer - ``load_service_model``. + ``load_service_model``. Use ``load_data_with_path`` to get the + data path of the data file as second return value. :type name: str :param name: The data path, i.e ``ec2/2015-03-01/service-2``. - :return: The loaded data. If no data could be found then + :return: The loaded data. If no data could be found then a DataNotFoundError is raised. - """ - for possible_path in self._potential_locations(name): - found = self.file_loader.load_file(possible_path) - if found is not None: - return found - # We didn't find anything that matched on any path. - raise DataNotFoundError(data_path=name) + data, _ = self.load_data_with_path(name) + return data def _potential_locations(self, name=None, must_exist=False, is_dir=False): # Will give an iterator over the full path of potential locations @@ -473,6 +487,21 @@ class Loader: elif os.path.exists(full_path): yield full_path + def is_builtin_path(self, path): + """Whether a given path is within the package's data directory. + + This method can be used together with load_data_with_path(name) + to determine if data has been loaded from a file bundled with the + package, as opposed to a file in a separate location. + + :type path: str + :param path: The file path to check. + + :return: Whether the given path is within the package's data directory. + """ + path = os.path.expanduser(os.path.expandvars(path)) + return path.startswith(self.BUILTIN_DATA_PATH) + class ExtrasProcessor: """Processes data from extras files into service models.""" diff --git a/botocore/model.py b/botocore/model.py index 88374474..ea888ce1 100644 --- a/botocore/model.py +++ b/botocore/model.py @@ -12,6 +12,7 @@ # language governing permissions and limitations under the License. """Abstractions to interact with service models.""" from collections import defaultdict +from typing import NamedTuple, Union from botocore.compat import OrderedDict from botocore.exceptions import ( @@ -84,6 +85,8 @@ class Shape: 'retryable', 'document', 'union', + 'contextParam', + 'clientContextParams', ] MAP_TYPE = OrderedDict @@ -267,6 +270,22 @@ class StringShape(Shape): return self.metadata.get('enum', []) +class StaticContextParameter(NamedTuple): + name: str + value: Union[bool, str] + + +class ContextParameter(NamedTuple): + name: str + member_name: str + + +class ClientContextParameter(NamedTuple): + name: str + type: str + documentation: str + + class ServiceModel: """ @@ -419,6 +438,18 @@ class ServiceModel: return True return False + @CachedProperty + def client_context_parameters(self): + params = self._service_description.get('clientContextParams', {}) + return [ + ClientContextParameter( + name=param_name, + type=param_val['type'], + documentation=param_val['documentation'], + ) + for param_name, param_val in params.items() + ] + def _get_metadata_property(self, name): try: return self.metadata[name] @@ -428,7 +459,7 @@ class ServiceModel: ) # Signature version is one of the rare properties - # than can be modified so a CachedProperty is not used here. + # that can be modified so a CachedProperty is not used here. @property def signature_version(self): @@ -560,6 +591,29 @@ class OperationModel: and shape.metadata['idempotencyToken'] ] + @CachedProperty + def static_context_parameters(self): + params = self._operation_model.get('staticContextParams', {}) + return [ + StaticContextParameter(name=name, value=props.get('value')) + for name, props in params.items() + ] + + @CachedProperty + def context_parameters(self): + if not self.input_shape: + return [] + + return [ + ContextParameter( + name=shape.metadata['contextParam']['name'], + member_name=name, + ) + for name, shape in self.input_shape.members.items() + if 'contextParam' in shape.metadata + and 'name' in shape.metadata['contextParam'] + ] + @CachedProperty def auth_type(self): return self._operation_model.get('authtype') diff --git a/botocore/paginate.py b/botocore/paginate.py index 2678ef84..a4d45eef 100644 --- a/botocore/paginate.py +++ b/botocore/paginate.py @@ -185,6 +185,11 @@ class PaginatorModel: class PageIterator: + """An iterable object to pagiante API results. + Please note it is NOT a python iterator. + Use ``iter`` to wrap this as a generator. + """ + def __init__( self, method, diff --git a/botocore/parsers.py b/botocore/parsers.py index 01c74ab0..22514f57 100644 --- a/botocore/parsers.py +++ b/botocore/parsers.py @@ -115,11 +115,12 @@ Each call to ``parse()`` returns a dict has this form:: """ import base64 +import http.client import json import logging import re -from botocore.compat import ETree, XMLParseError, six +from botocore.compat import ETree, XMLParseError from botocore.eventstream import EventStream, NoInitialResponseError from botocore.utils import ( is_json_value_header, @@ -306,7 +307,7 @@ class ResponseParser: return { 'Error': { 'Code': str(response['status_code']), - 'Message': six.moves.http_client.responses.get( + 'Message': http.client.responses.get( response['status_code'], '' ), }, @@ -683,6 +684,7 @@ class BaseJSONParser(ResponseParser): def _do_error_parse(self, response, shape): body = self._parse_body_as_json(response['body']) error = {"Error": {"Message": '', "Code": ''}, "ResponseMetadata": {}} + headers = response['headers'] # Error responses can have slightly different structures for json. # The basic structure is: # @@ -697,7 +699,15 @@ class BaseJSONParser(ResponseParser): # if the message did not contain an error code # include the response status code response_code = response.get('status_code') - code = body.get('__type', response_code and str(response_code)) + # Error response may contain an x-amzn-query-error header for json + # we need to fetch the error code from this header in that case + query_error = headers.get('x-amzn-query-error', '') + query_error_components = query_error.split(';') + code = None + if len(query_error_components) == 2 and query_error_components[0]: + code = query_error_components[0] + if code is None: + code = body.get('__type', response_code and str(response_code)) if code is not None: # code has a couple forms as well: # * "com.aws.dynamodb.vAPI#ProvisionedThroughputExceededException" @@ -1053,7 +1063,7 @@ class RestXMLParser(BaseRestParser, BaseXMLResponseParser): return { 'Error': { 'Code': str(response['status_code']), - 'Message': six.moves.http_client.responses.get( + 'Message': http.client.responses.get( response['status_code'], '' ), }, diff --git a/botocore/regions.py b/botocore/regions.py index 8b7b9ee7..0fe8f0ee 100644 --- a/botocore/regions.py +++ b/botocore/regions.py @@ -16,14 +16,32 @@ This module implements endpoint resolution, including resolving endpoints for a given service and region and resolving the available endpoints for a service in a specific AWS partition. """ +import copy import logging import re +from enum import Enum +from botocore import UNSIGNED, xform_name +from botocore.auth import AUTH_TYPE_MAPS, HAS_CRT +from botocore.crt import CRT_SUPPORTED_AUTH_TYPES +from botocore.endpoint_provider import EndpointProvider from botocore.exceptions import ( + EndpointProviderError, EndpointVariantError, + InvalidEndpointConfigurationError, + InvalidHostLabelError, + MissingDependencyException, NoRegionError, + ParamValidationError, + UnknownEndpointResolutionBuiltInName, UnknownRegionError, + UnknownSignatureVersionError, + UnsupportedS3AccesspointConfigurationError, + UnsupportedS3ConfigurationError, + UnsupportedS3ControlArnError, + UnsupportedS3ControlConfigurationError, ) +from botocore.utils import ensure_boolean, instance_cache LOG = logging.getLogger(__name__) DEFAULT_URI_TEMPLATE = '{service}.{region}.{dnsSuffix}' # noqa @@ -96,13 +114,19 @@ class EndpointResolver(BaseEndpointResolver): _UNSUPPORTED_DUALSTACK_PARTITIONS = ['aws-iso', 'aws-iso-b'] - def __init__(self, endpoint_data): + def __init__(self, endpoint_data, uses_builtin_data=False): """ + :type endpoint_data: dict :param endpoint_data: A dict of partition data. + + :type uses_builtin_data: boolean + :param uses_builtin_data: Whether the endpoint data originates in the + package's data directory. """ if 'partitions' not in endpoint_data: raise ValueError('Missing "partitions" in endpoint data') self._endpoint_data = endpoint_data + self.uses_builtin_data = uses_builtin_data def get_service_endpoints_data(self, service_name, partition_name='aws'): for partition in self._endpoint_data['partitions']: @@ -395,3 +419,412 @@ class EndpointResolver(BaseEndpointResolver): return template.format( service=service_name, region=endpoint_name, dnsSuffix=dnsSuffix ) + + +class EndpointResolverBuiltins(str, Enum): + # The AWS Region configured for the SDK client (str) + AWS_REGION = "AWS::Region" + # Whether the UseFIPSEndpoint configuration option has been enabled for + # the SDK client (bool) + AWS_USE_FIPS = "AWS::UseFIPS" + # Whether the UseDualStackEndpoint configuration option has been enabled + # for the SDK client (bool) + AWS_USE_DUALSTACK = "AWS::UseDualStack" + # Whether the global endpoint should be used with STS, rather the the + # regional endpoint for us-east-1 (bool) + AWS_STS_USE_GLOBAL_ENDPOINT = "AWS::STS::UseGlobalEndpoint" + # Whether the global endpoint should be used with S3, rather then the + # regional endpoint for us-east-1 (bool) + AWS_S3_USE_GLOBAL_ENDPOINT = "AWS::S3::UseGlobalEndpoint" + # Whether S3 Transfer Acceleration has been requested (bool) + AWS_S3_ACCELERATE = "AWS::S3::Accelerate" + # Whether S3 Force Path Style has been enabled (bool) + AWS_S3_FORCE_PATH_STYLE = "AWS::S3::ForcePathStyle" + # Whether to use the ARN region or raise an error when ARN and client + # region differ (for s3 service only, bool) + AWS_S3_USE_ARN_REGION = "AWS::S3::UseArnRegion" + # Whether to use the ARN region or raise an error when ARN and client + # region differ (for s3-control service only, bool) + AWS_S3CONTROL_USE_ARN_REGION = 'AWS::S3Control::UseArnRegion' + # Whether multi-region access points (MRAP) should be disabled (bool) + AWS_S3_DISABLE_MRAP = "AWS::S3::DisableMultiRegionAccessPoints" + # Whether a custom endpoint has been configured (str) + SDK_ENDPOINT = "SDK::Endpoint" + + +class EndpointRulesetResolver: + """Resolves endpoints using a service's endpoint ruleset""" + + def __init__( + self, + endpoint_ruleset_data, + partition_data, + service_model, + builtins, + client_context, + event_emitter, + use_ssl=True, + requested_auth_scheme=None, + ): + self._provider = EndpointProvider( + ruleset_data=endpoint_ruleset_data, + partition_data=partition_data, + ) + self._param_definitions = self._provider.ruleset.parameters + self._service_model = service_model + self._builtins = builtins + self._client_context = client_context + self._event_emitter = event_emitter + self._use_ssl = use_ssl + self._requested_auth_scheme = requested_auth_scheme + self._instance_cache = {} + + def construct_endpoint( + self, + operation_model, + call_args, + request_context, + ): + """Invokes the provider with params defined in the service's ruleset""" + if call_args is None: + call_args = {} + + if request_context is None: + request_context = {} + + provider_params = self._get_provider_params( + operation_model, call_args, request_context + ) + LOG.debug( + 'Calling endpoint provider with parameters: %s' % provider_params + ) + try: + provider_result = self._provider.resolve_endpoint( + **provider_params + ) + except EndpointProviderError as ex: + botocore_exception = self.ruleset_error_to_botocore_exception( + ex, provider_params + ) + if botocore_exception is None: + raise + else: + raise botocore_exception from ex + LOG.debug('Endpoint provider result: %s' % provider_result.url) + + # The endpoint provider does not support non-secure transport. + if not self._use_ssl and provider_result.url.startswith('https://'): + provider_result = provider_result._replace( + url=f'http://{provider_result.url[8:]}' + ) + + # Multi-valued headers are not supported in botocore. Replace the list + # of values returned for each header with just its first entry, + # dropping any additionally entries. + provider_result = provider_result._replace( + headers={ + key: val[0] for key, val in provider_result.headers.items() + } + ) + + return provider_result + + def _get_provider_params( + self, operation_model, call_args, request_context + ): + """Resolve a value for each parameter defined in the service's ruleset + + The resolution order for parameter values is: + 1. Operation-specific static context values from the service definition + 2. Operation-specific dynamic context values from API parameters + 3. Client-specific context parameters + 4. Built-in values such as region, FIPS usage, ... + """ + provider_params = {} + # Builtin values can be customized for each operation by hooks + # subscribing to the ``before-endpoint-resolution.*`` event. + customized_builtins = self._get_customized_builtins( + operation_model, call_args, request_context + ) + for param_name, param_def in self._param_definitions.items(): + param_val = self._resolve_param_from_context( + param_name=param_name, + operation_model=operation_model, + call_args=call_args, + ) + if param_val is None and param_def.builtin is not None: + param_val = self._resolve_param_as_builtin( + builtin_name=param_def.builtin, + builtins=customized_builtins, + ) + if param_val is not None: + provider_params[param_name] = param_val + + return provider_params + + def _resolve_param_from_context( + self, param_name, operation_model, call_args + ): + static = self._resolve_param_as_static_context_param( + param_name, operation_model + ) + if static is not None: + return static + dynamic = self._resolve_param_as_dynamic_context_param( + param_name, operation_model, call_args + ) + if dynamic is not None: + return dynamic + return self._resolve_param_as_client_context_param(param_name) + + def _resolve_param_as_static_context_param( + self, param_name, operation_model + ): + static_ctx_params = self._get_static_context_params(operation_model) + return static_ctx_params.get(param_name) + + def _resolve_param_as_dynamic_context_param( + self, param_name, operation_model, call_args + ): + dynamic_ctx_params = self._get_dynamic_context_params(operation_model) + if param_name in dynamic_ctx_params: + member_name = dynamic_ctx_params[param_name] + return call_args.get(member_name) + + def _resolve_param_as_client_context_param(self, param_name): + client_ctx_params = self._get_client_context_params() + if param_name in client_ctx_params: + client_ctx_varname = client_ctx_params[param_name] + return self._client_context.get(client_ctx_varname) + + def _resolve_param_as_builtin(self, builtin_name, builtins): + if builtin_name not in EndpointResolverBuiltins.__members__.values(): + raise UnknownEndpointResolutionBuiltInName(name=builtin_name) + return builtins.get(builtin_name) + + @instance_cache + def _get_static_context_params(self, operation_model): + """Mapping of param names to static param value for an operation""" + return { + param.name: param.value + for param in operation_model.static_context_parameters + } + + @instance_cache + def _get_dynamic_context_params(self, operation_model): + """Mapping of param names to member names for an operation""" + return { + param.name: param.member_name + for param in operation_model.context_parameters + } + + @instance_cache + def _get_client_context_params(self): + """Mapping of param names to client configuration variable""" + return { + param.name: xform_name(param.name) + for param in self._service_model.client_context_parameters + } + + def _get_customized_builtins( + self, operation_model, call_args, request_context + ): + service_id = self._service_model.service_id.hyphenize() + customized_builtins = copy.copy(self._builtins) + # Handlers are expected to modify the builtins dict in place. + self._event_emitter.emit( + 'before-endpoint-resolution.%s' % service_id, + builtins=customized_builtins, + model=operation_model, + params=call_args, + context=request_context, + ) + return customized_builtins + + def auth_schemes_to_signing_ctx(self, auth_schemes): + """Convert an Endpoint's authSchemes property to a signing_context dict + + :type auth_schemes: list + :param auth_schemes: A list of dictionaries taken from the + ``authSchemes`` property of an Endpoint object returned by + ``EndpointProvider``. + + :rtype: str, dict + :return: Tuple of auth type string (to be used in + ``request_context['auth_type']``) and signing context dict (for use + in ``request_context['signing']``). + """ + if not isinstance(auth_schemes, list) or len(auth_schemes) == 0: + raise TypeError("auth_schemes must be a non-empty list.") + + LOG.debug( + 'Selecting from endpoint provider\'s list of auth schemes: %s. ' + 'User selected auth scheme is: "%s"', + ', '.join([f'"{s.get("name")}"' for s in auth_schemes]), + self._requested_auth_scheme, + ) + + if self._requested_auth_scheme == UNSIGNED: + return 'none', {} + + auth_schemes = [ + {**scheme, 'name': self._strip_sig_prefix(scheme['name'])} + for scheme in auth_schemes + ] + if self._requested_auth_scheme is not None: + try: + # Use the first scheme that matches the requested scheme, + # after accounting for naming differences between botocore and + # endpoint rulesets. Keep the requested name. + name, scheme = next( + (self._requested_auth_scheme, s) + for s in auth_schemes + if self._does_botocore_authname_match_ruleset_authname( + self._requested_auth_scheme, s['name'] + ) + ) + except StopIteration: + # For legacy signers, no match will be found. Do not raise an + # exception, instead default to the logic in botocore + # customizations. + return None, {} + else: + try: + name, scheme = next( + (s['name'], s) + for s in auth_schemes + if s['name'] in AUTH_TYPE_MAPS + ) + except StopIteration: + # If no auth scheme was specifically requested and an + # authSchemes list is present in the Endpoint object but none + # of the entries are supported, raise an exception. + fixable_with_crt = False + auth_type_options = [s['name'] for s in auth_schemes] + if not HAS_CRT: + fixable_with_crt = any( + scheme in CRT_SUPPORTED_AUTH_TYPES + for scheme in auth_type_options + ) + + if fixable_with_crt: + raise MissingDependencyException( + msg='This operation requires an additional dependency.' + ' Use pip install botocore[crt] before proceeding.' + ) + else: + raise UnknownSignatureVersionError( + signature_version=', '.join(auth_type_options) + ) + + signing_context = {} + if 'signingRegion' in scheme: + signing_context['region'] = scheme['signingRegion'] + elif 'signingRegionSet' in scheme: + if len(scheme['signingRegionSet']) > 0: + signing_context['region'] = scheme['signingRegionSet'][0] + if 'signingName' in scheme: + signing_context.update(signing_name=scheme['signingName']) + if 'disableDoubleEncoding' in scheme: + signing_context['disableDoubleEncoding'] = ensure_boolean( + scheme['disableDoubleEncoding'] + ) + + LOG.debug( + 'Selected auth type "%s" as "%s" with signing context params: %s', + scheme['name'], # original name without "sig" + name, # chosen name can differ when `signature_version` is set + signing_context, + ) + return name, signing_context + + def _strip_sig_prefix(self, auth_name): + """Normalize auth type names by removing any "sig" prefix""" + return auth_name[3:] if auth_name.startswith('sig') else auth_name + + def _does_botocore_authname_match_ruleset_authname(self, botoname, rsname): + """ + Whether a valid string provided as signature_version parameter for + client construction refers to the same auth methods as a string + returned by the endpoint ruleset provider. This accounts for: + + * The ruleset prefixes auth names with "sig" + * The s3 and s3control rulesets don't distinguish between v4[a] and + s3v4[a] signers + * The v2, v3, and HMAC v1 based signers (s3, s3-*) are botocore legacy + features and do not exist in the rulesets + * Only characters up to the first dash are considered + + Example matches: + * v4, sigv4 + * v4, v4 + * s3v4, sigv4 + * s3v7, sigv7 (hypothetical example) + * s3v4a, sigv4a + * s3v4-query, sigv4 + + Example mismatches: + * v4a, sigv4 + * s3, sigv4 + * s3-presign-post, sigv4 + """ + rsname = self._strip_sig_prefix(rsname) + botoname = botoname.split('-')[0] + if botoname != 's3' and botoname.startswith('s3'): + botoname = botoname[2:] + return rsname == botoname + + def ruleset_error_to_botocore_exception(self, ruleset_exception, params): + """Attempts to translate ruleset errors to pre-existing botocore + exception types by string matching exception strings. + """ + msg = ruleset_exception.kwargs.get('msg') + if msg is None: + return + + if msg.startswith('Invalid region in ARN: '): + # Example message: + # "Invalid region in ARN: `us-we$t-2` (invalid DNS name)" + try: + label = msg.split('`')[1] + except IndexError: + label = msg + return InvalidHostLabelError(label=label) + + service_name = self._service_model.service_name + if service_name == 's3': + if ( + msg == 'S3 Object Lambda does not support S3 Accelerate' + or msg == 'Accelerate cannot be used with FIPS' + ): + return UnsupportedS3ConfigurationError(msg=msg) + if ( + msg.startswith('S3 Outposts does not support') + or msg.startswith('S3 MRAP does not support') + or msg.startswith('S3 Object Lambda does not support') + or msg.startswith('Access Points do not support') + or msg.startswith('Invalid configuration:') + or msg.startswith('Client was configured for partition') + ): + return UnsupportedS3AccesspointConfigurationError(msg=msg) + if msg.lower().startswith('invalid arn:'): + return ParamValidationError(report=msg) + if service_name == 's3control': + if msg.startswith('Invalid ARN:'): + arn = params.get('Bucket') + return UnsupportedS3ControlArnError(arn=arn, msg=msg) + if msg.startswith('Invalid configuration:') or msg.startswith( + 'Client was configured for partition' + ): + return UnsupportedS3ControlConfigurationError(msg=msg) + if msg == "AccountId is required but not set": + return ParamValidationError(report=msg) + if service_name == 'events': + if msg.startswith( + 'Invalid Configuration: FIPS is not supported with ' + 'EventBridge multi-region endpoints.' + ): + return InvalidEndpointConfigurationError(msg=msg) + if msg == 'EndpointId must be a valid host label.': + return InvalidEndpointConfigurationError(msg=msg) + return None diff --git a/botocore/serialize.py b/botocore/serialize.py index 0c4b1240..9527a827 100644 --- a/botocore/serialize.py +++ b/botocore/serialize.py @@ -170,7 +170,10 @@ class Serializer: def _expand_host_prefix(self, parameters, operation_model): operation_endpoint = operation_model.endpoint - if operation_endpoint is None: + if ( + operation_endpoint is None + or 'hostPrefix' not in operation_endpoint + ): return None host_prefix_expression = operation_endpoint['hostPrefix'] @@ -467,6 +470,12 @@ class BaseRestSerializer(Serializer): serialized['url_path'] = self._render_uri_template( operation_model.http['requestUri'], partitioned['uri_path_kwargs'] ) + + if 'authPath' in operation_model.http: + serialized['auth_path'] = self._render_uri_template( + operation_model.http['authPath'], + partitioned['uri_path_kwargs'], + ) # Note that we lean on the http implementation to handle the case # where the requestUri path already has query parameters. # The bundled http client, requests, already supports this. diff --git a/botocore/session.py b/botocore/session.py index 729c2b0e..444f60e8 100644 --- a/botocore/session.py +++ b/botocore/session.py @@ -26,10 +26,12 @@ import warnings import botocore.client import botocore.configloader import botocore.credentials +import botocore.tokens from botocore import ( UNSIGNED, __version__, handlers, + invoke_initializers, monitoring, paginate, retryhandler, @@ -134,6 +136,7 @@ class Session: self._profile = None self._config = None self._credentials = None + self._auth_token = None self._profile_map = None # This is a dict that stores per session specific config variable # overrides via set_config_variable(). @@ -148,9 +151,11 @@ class Session: self.session_var_map = SessionVarDict(self, self.SESSION_VARIABLES) if session_vars is not None: self.session_var_map.update(session_vars) + invoke_initializers(self) def _register_components(self): self._register_credential_provider() + self._register_token_provider() self._register_data_loader() self._register_endpoint_resolver() self._register_event_emitter() @@ -164,6 +169,14 @@ class Session: def _register_event_emitter(self): self._components.register_component('event_emitter', self._events) + def _register_token_provider(self): + self._components.lazy_register_component( + 'token_provider', self._create_token_resolver + ) + + def _create_token_resolver(self): + return botocore.tokens.create_token_resolver(self) + def _register_credential_provider(self): self._components.lazy_register_component( 'credential_provider', self._create_credential_resolver @@ -183,8 +196,9 @@ class Session: def _register_endpoint_resolver(self): def create_default_resolver(): loader = self.get_component('data_loader') - endpoints = loader.load_data('endpoints') - return EndpointResolver(endpoints) + endpoints, path = loader.load_data_with_path('endpoints') + uses_builtin = loader.is_builtin_path(path) + return EndpointResolver(endpoints, uses_builtin_data=uses_builtin) self._internal_components.lazy_register_component( 'endpoint_resolver', create_default_resolver @@ -495,6 +509,19 @@ class Session: ).load_credentials() return self._credentials + def get_auth_token(self): + """ + Return the :class:`botocore.tokens.AuthToken` object associated with + this session. If the authorization token has not yet been loaded, this + will attempt to load it. If it has already been loaded, this will + return the cached authorization token. + + """ + if self._auth_token is None: + provider = self._components.get_component('token_provider') + self._auth_token = provider.load_token() + return self._auth_token + def user_agent(self): """ Return a string suitable for use as a User-Agent header. @@ -922,6 +949,7 @@ class Session: ) else: credentials = self.get_credentials() + auth_token = self.get_auth_token() endpoint_resolver = self._get_internal_component('endpoint_resolver') exceptions_factory = self._get_internal_component('exceptions_factory') config_store = self.get_component('config_store') @@ -955,6 +983,7 @@ class Session: scoped_config=self.get_scoped_config(), client_config=config, api_version=api_version, + auth_token=auth_token, ) monitor = self._get_internal_component('monitor') if monitor is not None: diff --git a/botocore/signers.py b/botocore/signers.py index 9b258d51..42965b41 100644 --- a/botocore/signers.py +++ b/botocore/signers.py @@ -24,7 +24,7 @@ from botocore.exceptions import ( UnknownSignatureVersionError, UnsupportedSignatureVersionError, ) -from botocore.utils import datetime2timestamp +from botocore.utils import ArnParser, datetime2timestamp # Keep these imported. There's pre-existing code that uses them. from botocore.utils import fix_s3_host # noqa @@ -73,11 +73,13 @@ class RequestSigner: signature_version, credentials, event_emitter, + auth_token=None, ): self._region_name = region_name self._signing_name = signing_name self._signature_version = signature_version self._credentials = credentials + self._auth_token = auth_token self._service_id = service_id # We need weakref to prevent leaking memory in Python 2.6 on Linux 2.6 @@ -202,7 +204,12 @@ class RequestSigner: } suffix = signing_type_suffix_map.get(signing_type, '') - signature_version = self._signature_version + # operation specific signing context takes precedent over client-level + # defaults + signature_version = context.get('auth_type') or self._signature_version + signing = context.get('signing', {}) + signing_name = signing.get('signing_name', self._signing_name) + region_name = signing.get('region', self._region_name) if ( signature_version is not botocore.UNSIGNED and not signature_version.endswith(suffix) @@ -213,8 +220,8 @@ class RequestSigner: 'choose-signer.{}.{}'.format( self._service_id.hyphenize(), operation_name ), - signing_name=self._signing_name, - region_name=self._region_name, + signing_name=signing_name, + region_name=region_name, signature_version=signature_version, context=context, ) @@ -260,6 +267,14 @@ class RequestSigner: raise UnknownSignatureVersionError( signature_version=signature_version ) + + if cls.REQUIRES_TOKEN is True: + frozen_token = None + if self._auth_token is not None: + frozen_token = self._auth_token.get_frozen_token() + auth = cls(frozen_token) + return auth + # If there's no credentials provided (i.e credentials is None), # then we'll pass a value of "None" over to the auth classes, # which already handle the cases where no credentials have @@ -634,7 +649,6 @@ def generate_presigned_url( } request_signer = self._request_signer - serializer = self._serializer try: operation_name = self._PY_TO_OP_NAME[client_method] @@ -642,21 +656,27 @@ def generate_presigned_url( raise UnknownClientMethodError(method_name=client_method) operation_model = self.meta.service_model.operation_model(operation_name) + bucket_is_arn = ArnParser.is_arn(params.get('Bucket', '')) + endpoint_url, additional_headers = self._resolve_endpoint_ruleset( + operation_model, + params, + context, + ignore_signing_region=(not bucket_is_arn), + ) - params = self._emit_api_params(params, operation_model, context) - - # Create a request dict based on the params to serialize. - request_dict = serializer.serialize_to_request(params, operation_model) + request_dict = self._convert_to_request_dict( + api_params=params, + operation_model=operation_model, + endpoint_url=endpoint_url, + context=context, + headers=additional_headers, + set_user_agent_header=False, + ) # Switch out the http method if user specified it. if http_method is not None: request_dict['method'] = http_method - # Prepare the request dict by including the client's endpoint url. - prepare_request_dict( - request_dict, endpoint_url=self.meta.endpoint_url, context=context - ) - # Generate the presigned url. return request_signer.generate_presigned_url( request_dict=request_dict, @@ -748,26 +768,32 @@ def generate_presigned_post( if conditions is None: conditions = [] + context = { + 'is_presign_request': True, + 'use_global_endpoint': _should_use_global_endpoint(self), + } + post_presigner = S3PostPresigner(self._request_signer) - serializer = self._serializer # We choose the CreateBucket operation model because its url gets # serialized to what a presign post requires. operation_model = self.meta.service_model.operation_model('CreateBucket') - - # Create a request dict based on the params to serialize. - request_dict = serializer.serialize_to_request( - {'Bucket': bucket}, operation_model + params = {'Bucket': bucket} + bucket_is_arn = ArnParser.is_arn(params.get('Bucket', '')) + endpoint_url, additional_headers = self._resolve_endpoint_ruleset( + operation_model, + params, + context, + ignore_signing_region=(not bucket_is_arn), ) - # Prepare the request dict by including the client's endpoint url. - prepare_request_dict( - request_dict, - endpoint_url=self.meta.endpoint_url, - context={ - 'is_presign_request': True, - 'use_global_endpoint': _should_use_global_endpoint(self), - }, + request_dict = self._convert_to_request_dict( + api_params=params, + operation_model=operation_model, + endpoint_url=endpoint_url, + context=context, + headers=additional_headers, + set_user_agent_header=False, ) # Append that the bucket name to the list of conditions. diff --git a/botocore/tokens.py b/botocore/tokens.py new file mode 100644 index 00000000..12b38ba1 --- /dev/null +++ b/botocore/tokens.py @@ -0,0 +1,326 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import json +import logging +import os +import threading +from datetime import datetime, timedelta +from typing import NamedTuple, Optional + +import dateutil.parser +from dateutil.tz import tzutc + +from botocore import UNSIGNED +from botocore.compat import total_seconds +from botocore.config import Config +from botocore.exceptions import ( + ClientError, + InvalidConfigError, + TokenRetrievalError, +) +from botocore.utils import CachedProperty, JSONFileCache, SSOTokenLoader + +logger = logging.getLogger(__name__) + + +def _utc_now(): + return datetime.now(tzutc()) + + +def create_token_resolver(session): + providers = [ + SSOTokenProvider(session), + ] + return TokenProviderChain(providers=providers) + + +def _serialize_utc_timestamp(obj): + if isinstance(obj, datetime): + return obj.strftime("%Y-%m-%dT%H:%M:%SZ") + return obj + + +def _sso_json_dumps(obj): + return json.dumps(obj, default=_serialize_utc_timestamp) + + +class FrozenAuthToken(NamedTuple): + token: str + expiration: Optional[datetime] = None + + +class DeferredRefreshableToken: + # The time at which we'll attempt to refresh, but not block if someone else + # is refreshing. + _advisory_refresh_timeout = 15 * 60 + # The time at which all threads will block waiting for a refreshed token + _mandatory_refresh_timeout = 10 * 60 + # Refresh at most once every minute to avoid blocking every request + _attempt_timeout = 60 + + def __init__(self, method, refresh_using, time_fetcher=_utc_now): + self._time_fetcher = time_fetcher + self._refresh_using = refresh_using + self.method = method + + # The frozen token is protected by this lock + self._refresh_lock = threading.Lock() + self._frozen_token = None + self._next_refresh = None + + def get_frozen_token(self): + self._refresh() + return self._frozen_token + + def _refresh(self): + # If we don't need to refresh just return + refresh_type = self._should_refresh() + if not refresh_type: + return None + + # Block for refresh if we're in the mandatory refresh window + block_for_refresh = refresh_type == "mandatory" + if self._refresh_lock.acquire(block_for_refresh): + try: + self._protected_refresh() + finally: + self._refresh_lock.release() + + def _protected_refresh(self): + # This should only be called after acquiring the refresh lock + # Another thread may have already refreshed, double check refresh + refresh_type = self._should_refresh() + if not refresh_type: + return None + + try: + now = self._time_fetcher() + self._next_refresh = now + timedelta(seconds=self._attempt_timeout) + self._frozen_token = self._refresh_using() + except Exception: + logger.warning( + "Refreshing token failed during the %s refresh period.", + refresh_type, + exc_info=True, + ) + if refresh_type == "mandatory": + # This refresh was mandatory, error must be propagated back + raise + + if self._is_expired(): + # Fresh credentials should never be expired + raise TokenRetrievalError( + provider=self.method, + error_msg="Token has expired and refresh failed", + ) + + def _is_expired(self): + if self._frozen_token is None: + return False + + expiration = self._frozen_token.expiration + remaining = total_seconds(expiration - self._time_fetcher()) + return remaining <= 0 + + def _should_refresh(self): + if self._frozen_token is None: + # We don't have a token yet, mandatory refresh + return "mandatory" + + expiration = self._frozen_token.expiration + if expiration is None: + # No expiration, so assume we don't need to refresh. + return None + + now = self._time_fetcher() + if now < self._next_refresh: + return None + + remaining = total_seconds(expiration - now) + + if remaining < self._mandatory_refresh_timeout: + return "mandatory" + elif remaining < self._advisory_refresh_timeout: + return "advisory" + + return None + + +class TokenProviderChain: + def __init__(self, providers=None): + if providers is None: + providers = [] + self._providers = providers + + def load_token(self): + for provider in self._providers: + token = provider.load_token() + if token is not None: + return token + return None + + +class SSOTokenProvider: + METHOD = "sso" + _REFRESH_WINDOW = 15 * 60 + _SSO_TOKEN_CACHE_DIR = os.path.expanduser( + os.path.join("~", ".aws", "sso", "cache") + ) + _SSO_CONFIG_VARS = [ + "sso_start_url", + "sso_region", + ] + _GRANT_TYPE = "refresh_token" + DEFAULT_CACHE_CLS = JSONFileCache + + def __init__(self, session, cache=None, time_fetcher=_utc_now): + self._session = session + if cache is None: + cache = self.DEFAULT_CACHE_CLS( + self._SSO_TOKEN_CACHE_DIR, + dumps_func=_sso_json_dumps, + ) + self._now = time_fetcher + self._cache = cache + self._token_loader = SSOTokenLoader(cache=self._cache) + + def _load_sso_config(self): + loaded_config = self._session.full_config + profiles = loaded_config.get("profiles", {}) + sso_sessions = loaded_config.get("sso_sessions", {}) + profile_name = self._session.get_config_variable("profile") + if not profile_name: + profile_name = "default" + profile_config = profiles.get(profile_name, {}) + + if "sso_session" not in profile_config: + return + + sso_session_name = profile_config["sso_session"] + sso_config = sso_sessions.get(sso_session_name, None) + + if not sso_config: + error_msg = ( + f'The profile "{profile_name}" is configured to use the SSO ' + f'token provider but the "{sso_session_name}" sso_session ' + f"configuration does not exist." + ) + raise InvalidConfigError(error_msg=error_msg) + + missing_configs = [] + for var in self._SSO_CONFIG_VARS: + if var not in sso_config: + missing_configs.append(var) + + if missing_configs: + error_msg = ( + f'The profile "{profile_name}" is configured to use the SSO ' + f"token provider but is missing the following configuration: " + f"{missing_configs}." + ) + raise InvalidConfigError(error_msg=error_msg) + + return { + "session_name": sso_session_name, + "sso_region": sso_config["sso_region"], + "sso_start_url": sso_config["sso_start_url"], + } + + @CachedProperty + def _sso_config(self): + return self._load_sso_config() + + @CachedProperty + def _client(self): + config = Config( + region_name=self._sso_config["sso_region"], + signature_version=UNSIGNED, + ) + return self._session.create_client("sso-oidc", config=config) + + def _attempt_create_token(self, token): + response = self._client.create_token( + grantType=self._GRANT_TYPE, + clientId=token["clientId"], + clientSecret=token["clientSecret"], + refreshToken=token["refreshToken"], + ) + expires_in = timedelta(seconds=response["expiresIn"]) + new_token = { + "startUrl": self._sso_config["sso_start_url"], + "region": self._sso_config["sso_region"], + "accessToken": response["accessToken"], + "expiresAt": self._now() + expires_in, + # Cache the registration alongside the token + "clientId": token["clientId"], + "clientSecret": token["clientSecret"], + "registrationExpiresAt": token["registrationExpiresAt"], + } + if "refreshToken" in response: + new_token["refreshToken"] = response["refreshToken"] + logger.info("SSO Token refresh succeeded") + return new_token + + def _refresh_access_token(self, token): + keys = ( + "refreshToken", + "clientId", + "clientSecret", + "registrationExpiresAt", + ) + missing_keys = [k for k in keys if k not in token] + if missing_keys: + msg = f"Unable to refresh SSO token: missing keys: {missing_keys}" + logger.info(msg) + return None + + expiry = dateutil.parser.parse(token["registrationExpiresAt"]) + if total_seconds(expiry - self._now()) <= 0: + logger.info(f"SSO token registration expired at {expiry}") + return None + + try: + return self._attempt_create_token(token) + except ClientError: + logger.warning("SSO token refresh attempt failed", exc_info=True) + return None + + def _refresher(self): + start_url = self._sso_config["sso_start_url"] + session_name = self._sso_config["session_name"] + logger.info(f"Loading cached SSO token for {session_name}") + token_dict = self._token_loader(start_url, session_name=session_name) + expiration = dateutil.parser.parse(token_dict["expiresAt"]) + logger.debug(f"Cached SSO token expires at {expiration}") + + remaining = total_seconds(expiration - self._now()) + if remaining < self._REFRESH_WINDOW: + new_token_dict = self._refresh_access_token(token_dict) + if new_token_dict is not None: + token_dict = new_token_dict + expiration = token_dict["expiresAt"] + self._token_loader.save_token( + start_url, token_dict, session_name=session_name + ) + + return FrozenAuthToken( + token_dict["accessToken"], expiration=expiration + ) + + def load_token(self): + if self._sso_config is None: + return None + + return DeferredRefreshableToken( + self.METHOD, self._refresher, time_fetcher=self._now + ) diff --git a/botocore/utils.py b/botocore/utils.py index aaae2d3b..fbc4963c 100644 --- a/botocore/utils.py +++ b/botocore/utils.py @@ -12,8 +12,8 @@ # language governing permissions and limitations under the License. import base64 import binascii -import cgi import datetime +import email.message import functools import hashlib import io @@ -23,7 +23,10 @@ import random import re import socket import time +import warnings import weakref +from pathlib import Path +from urllib.request import getproxies, proxy_bypass import dateutil.parser from dateutil.tz import tzutc @@ -37,15 +40,16 @@ import botocore.httpsession from botocore.compat import HEX_PAT # noqa: F401 from botocore.compat import IPV4_PAT # noqa: F401 from botocore.compat import IPV6_ADDRZ_PAT # noqa: F401 -from botocore.compat import IPV6_ADDRZ_RE # noqa: F401 from botocore.compat import IPV6_PAT # noqa: F401 from botocore.compat import LS32_PAT # noqa: F401 from botocore.compat import UNRESERVED_PAT # noqa: F401 -from botocore.compat import UNSAFE_URL_CHARS # noqa: F401 from botocore.compat import ZONE_ID_PAT # noqa: F401 from botocore.compat import ( HAS_CRT, + IPV4_RE, + IPV6_ADDRZ_RE, MD5_AVAILABLE, + UNSAFE_URL_CHARS, OrderedDict, get_md5, get_tzinfo_options, @@ -81,7 +85,6 @@ from botocore.exceptions import ( UnsupportedS3ControlArnError, UnsupportedS3ControlConfigurationError, ) -from botocore.vendored.six.moves.urllib.request import getproxies, proxy_bypass logger = logging.getLogger(__name__) DEFAULT_METADATA_SERVICE_TIMEOUT = 1 @@ -1219,6 +1222,11 @@ def is_valid_ipv6_endpoint_url(endpoint_url): return IPV6_ADDRZ_RE.match(hostname) is not None +def is_valid_ipv4_endpoint_url(endpoint_url): + hostname = urlparse(endpoint_url).hostname + return IPV4_RE.match(hostname) is not None + + def is_valid_endpoint_url(endpoint_url): """Verify the endpoint_url is valid. @@ -1498,7 +1506,207 @@ def hyphenize_service_id(service_id): return service_id.replace(' ', '-').lower() +class S3RegionRedirectorv2: + """Updated version of S3RegionRedirector for use when + EndpointRulesetResolver is in use for endpoint resolution. + + This class is considered private and subject to abrupt breaking changes or + removal without prior announcement. Please do not use it directly. + """ + + def __init__(self, endpoint_bridge, client, cache=None): + self._cache = cache or {} + self._client = weakref.proxy(client) + + def register(self, event_emitter=None): + logger.debug('Registering S3 region redirector handler') + emitter = event_emitter or self._client.meta.events + emitter.register('needs-retry.s3', self.redirect_from_error) + emitter.register( + 'before-parameter-build.s3', self.annotate_request_context + ) + emitter.register( + 'before-endpoint-resolution.s3', self.redirect_from_cache + ) + + def redirect_from_error(self, request_dict, response, operation, **kwargs): + """ + An S3 request sent to the wrong region will return an error that + contains the endpoint the request should be sent to. This handler + will add the redirect information to the signing context and then + redirect the request. + """ + if response is None: + # This could be none if there was a ConnectionError or other + # transport error. + return + + redirect_ctx = request_dict.get('context', {}).get('s3_redirect', {}) + if ArnParser.is_arn(redirect_ctx.get('bucket')): + logger.debug( + 'S3 request was previously for an Accesspoint ARN, not ' + 'redirecting.' + ) + return + + if redirect_ctx.get('redirected'): + logger.debug( + 'S3 request was previously redirected, not redirecting.' + ) + return + + error = response[1].get('Error', {}) + error_code = error.get('Code') + response_metadata = response[1].get('ResponseMetadata', {}) + + # We have to account for 400 responses because + # if we sign a Head* request with the wrong region, + # we'll get a 400 Bad Request but we won't get a + # body saying it's an "AuthorizationHeaderMalformed". + is_special_head_object = ( + error_code in ('301', '400') and operation.name == 'HeadObject' + ) + is_special_head_bucket = ( + error_code in ('301', '400') + and operation.name == 'HeadBucket' + and 'x-amz-bucket-region' + in response_metadata.get('HTTPHeaders', {}) + ) + is_wrong_signing_region = ( + error_code == 'AuthorizationHeaderMalformed' and 'Region' in error + ) + is_redirect_status = response[0] is not None and response[ + 0 + ].status_code in (301, 302, 307) + is_permanent_redirect = error_code == 'PermanentRedirect' + if not any( + [ + is_special_head_object, + is_wrong_signing_region, + is_permanent_redirect, + is_special_head_bucket, + is_redirect_status, + ] + ): + return + + bucket = request_dict['context']['s3_redirect']['bucket'] + client_region = request_dict['context'].get('client_region') + new_region = self.get_bucket_region(bucket, response) + + if new_region is None: + logger.debug( + "S3 client configured for region %s but the bucket %s is not " + "in that region and the proper region could not be " + "automatically determined." % (client_region, bucket) + ) + return + + logger.debug( + "S3 client configured for region %s but the bucket %s is in region" + " %s; Please configure the proper region to avoid multiple " + "unnecessary redirects and signing attempts." + % (client_region, bucket, new_region) + ) + # Adding the new region to _cache will make construct_endpoint() to + # use the new region as value for the AWS::Region builtin parameter. + self._cache[bucket] = new_region + + # Re-resolve endpoint with new region and modify request_dict with + # the new URL, auth scheme, and signing context. + ep_resolver = self._client._ruleset_resolver + ep_info = ep_resolver.construct_endpoint( + operation_model=operation, + call_args=request_dict['context']['s3_redirect']['params'], + request_context=request_dict['context'], + ) + request_dict['url'] = self.set_request_url( + request_dict['url'], ep_info.url + ) + request_dict['context']['s3_redirect']['redirected'] = True + auth_schemes = ep_info.properties.get('authSchemes') + if auth_schemes is not None: + auth_info = ep_resolver.auth_schemes_to_signing_ctx(auth_schemes) + auth_type, signing_context = auth_info + request_dict['context']['auth_type'] = auth_type + request_dict['context']['signing'] = { + **request_dict['context'].get('signing', {}), + **signing_context, + } + + # Return 0 so it doesn't wait to retry + return 0 + + def get_bucket_region(self, bucket, response): + """ + There are multiple potential sources for the new region to redirect to, + but they aren't all universally available for use. This will try to + find region from response elements, but will fall back to calling + HEAD on the bucket if all else fails. + + :param bucket: The bucket to find the region for. This is necessary if + the region is not available in the error response. + :param response: A response representing a service request that failed + due to incorrect region configuration. + """ + # First try to source the region from the headers. + service_response = response[1] + response_headers = service_response['ResponseMetadata']['HTTPHeaders'] + if 'x-amz-bucket-region' in response_headers: + return response_headers['x-amz-bucket-region'] + + # Next, check the error body + region = service_response.get('Error', {}).get('Region', None) + if region is not None: + return region + + # Finally, HEAD the bucket. No other choice sadly. + try: + response = self._client.head_bucket(Bucket=bucket) + headers = response['ResponseMetadata']['HTTPHeaders'] + except ClientError as e: + headers = e.response['ResponseMetadata']['HTTPHeaders'] + + region = headers.get('x-amz-bucket-region', None) + return region + + def set_request_url(self, old_url, new_endpoint, **kwargs): + """ + Splice a new endpoint into an existing URL. Note that some endpoints + from the the endpoint provider have a path component which will be + discarded by this function. + """ + return _get_new_endpoint(old_url, new_endpoint, False) + + def redirect_from_cache(self, builtins, params, **kwargs): + """ + If a bucket name has been redirected before, it is in the cache. This + handler will update the AWS::Region endpoint resolver builtin param + to use the region from cache instead of the client region to avoid the + redirect. + """ + bucket = params.get('Bucket') + if bucket is not None and bucket in self._cache: + new_region = self._cache.get(bucket) + builtins['AWS::Region'] = new_region + + def annotate_request_context(self, params, context, **kwargs): + """Store the bucket name in context for later use when redirecting. + The bucket name may be an access point ARN or alias. + """ + bucket = params.get('Bucket') + context['s3_redirect'] = { + 'redirected': False, + 'bucket': bucket, + 'params': params, + } + + class S3RegionRedirector: + """This handler has been replaced by S3RegionRedirectorv2. The original + version remains in place for any third-party libraries that import it. + """ + def __init__(self, endpoint_bridge, client, cache=None): self._endpoint_resolver = endpoint_bridge self._cache = cache @@ -1509,6 +1717,13 @@ class S3RegionRedirector: # python 2.6 self._client = weakref.proxy(client) + warnings.warn( + 'The S3RegionRedirector class has been deprecated for a new ' + 'internal replacement. A future version of botocore may remove ' + 'this class.', + category=FutureWarning, + ) + def register(self, event_emitter=None): emitter = event_emitter or self._client.meta.events emitter.register('needs-retry.s3', self.redirect_from_error) @@ -1686,6 +1901,17 @@ class ArnParser: 'resource': arn_parts[5], } + @staticmethod + def is_arn(value): + if not isinstance(value, str) or not value.startswith('arn:'): + return False + arn_parser = ArnParser() + try: + arn_parser.parse_arn(value) + return True + except InvalidArnException: + return False + class S3ArnParamHandler: _RESOURCE_REGEX = re.compile( @@ -2398,12 +2624,22 @@ class S3ControlEndpointSetter: class S3ControlArnParamHandler: + """This handler has been replaced by S3ControlArnParamHandlerv2. The + original version remains in place for any third-party importers. + """ + _RESOURCE_SPLIT_REGEX = re.compile(r'[/:]') def __init__(self, arn_parser=None): self._arn_parser = arn_parser if arn_parser is None: self._arn_parser = ArnParser() + warnings.warn( + 'The S3ControlArnParamHandler class has been deprecated for a new ' + 'internal replacement. A future version of botocore may remove ' + 'this class.', + category=FutureWarning, + ) def register(self, event_emitter): event_emitter.register( @@ -2520,6 +2756,83 @@ class S3ControlArnParamHandler: context['arn_details'] = arn_details +class S3ControlArnParamHandlerv2(S3ControlArnParamHandler): + """Updated version of S3ControlArnParamHandler for use when + EndpointRulesetResolver is in use for endpoint resolution. + + This class is considered private and subject to abrupt breaking changes or + removal without prior announcement. Please do not use it directly. + """ + + def __init__(self, arn_parser=None): + self._arn_parser = arn_parser + if arn_parser is None: + self._arn_parser = ArnParser() + + def register(self, event_emitter): + event_emitter.register( + 'before-endpoint-resolution.s3-control', + self.handle_arn, + ) + + def _handle_name_param(self, params, model, context): + # CreateAccessPoint is a special case that does not expand Name + if model.name == 'CreateAccessPoint': + return + arn_details = self._get_arn_details_from_param(params, 'Name') + if arn_details is None: + return + self._raise_for_fips_pseudo_region(arn_details) + self._raise_for_accelerate_endpoint(context) + if self._is_outpost_accesspoint(arn_details): + self._store_outpost_accesspoint(params, context, arn_details) + else: + error_msg = 'The Name parameter does not support the provided ARN' + raise UnsupportedS3ControlArnError( + arn=arn_details['original'], + msg=error_msg, + ) + + def _store_outpost_accesspoint(self, params, context, arn_details): + self._override_account_id_param(params, arn_details) + + def _handle_bucket_param(self, params, model, context): + arn_details = self._get_arn_details_from_param(params, 'Bucket') + if arn_details is None: + return + self._raise_for_fips_pseudo_region(arn_details) + self._raise_for_accelerate_endpoint(context) + if self._is_outpost_bucket(arn_details): + self._store_outpost_bucket(params, context, arn_details) + else: + error_msg = ( + 'The Bucket parameter does not support the provided ARN' + ) + raise UnsupportedS3ControlArnError( + arn=arn_details['original'], + msg=error_msg, + ) + + def _store_outpost_bucket(self, params, context, arn_details): + self._override_account_id_param(params, arn_details) + + def _raise_for_fips_pseudo_region(self, arn_details): + # FIPS pseudo region names cannot be used in ARNs + arn_region = arn_details['region'] + if arn_region.startswith('fips-') or arn_region.endswith('fips-'): + raise UnsupportedS3ControlArnError( + arn=arn_details['original'], + msg='Invalid ARN, FIPS region not allowed in ARN.', + ) + + def _raise_for_accelerate_endpoint(self, context): + s3_config = context['client_config'].s3 or {} + if s3_config.get('use_accelerate_endpoint'): + raise UnsupportedS3ControlConfigurationError( + msg='S3 control client does not support accelerate endpoints', + ) + + class ContainerMetadataFetcher: TIMEOUT_SECONDS = 2 @@ -2698,10 +3011,12 @@ def get_encoding_from_headers(headers, default='ISO-8859-1'): if not content_type: return None - content_type, params = cgi.parse_header(content_type) + message = email.message.Message() + message['content-type'] = content_type + charset = message.get_param("charset") - if 'charset' in params: - return params['charset'].strip("'\"") + if charset is not None: + return charset if 'text' in content_type: return default @@ -2764,22 +3079,32 @@ class SSOTokenLoader: cache = {} self._cache = cache - def _generate_cache_key(self, start_url): - return hashlib.sha1(start_url.encode('utf-8')).hexdigest() + def _generate_cache_key(self, start_url, session_name): + input_str = start_url + if session_name is not None: + input_str = session_name + return hashlib.sha1(input_str.encode('utf-8')).hexdigest() - def __call__(self, start_url): - cache_key = self._generate_cache_key(start_url) - try: - token = self._cache[cache_key] - return token['accessToken'] - except KeyError: - logger.debug('Failed to load SSO token:', exc_info=True) - error_msg = ( - 'The SSO access token has either expired or is otherwise ' - 'invalid.' - ) + def save_token(self, start_url, token, session_name=None): + cache_key = self._generate_cache_key(start_url, session_name) + self._cache[cache_key] = token + + def __call__(self, start_url, session_name=None): + cache_key = self._generate_cache_key(start_url, session_name) + logger.debug(f'Checking for cached token at: {cache_key}') + if cache_key not in self._cache: + name = start_url + if session_name is not None: + name = session_name + error_msg = f'Token for {name} does not exist' raise SSOTokenLoadError(error_msg=error_msg) + token = self._cache[cache_key] + if 'accessToken' not in token or 'expiresAt' not in token: + error_msg = f'Token for {start_url} is invalid' + raise SSOTokenLoadError(error_msg=error_msg) + return token + class EventbridgeSignerSetter: _DEFAULT_PARTITION = 'aws' @@ -2862,3 +3187,105 @@ class EventbridgeSignerSetter: dns_suffix = self._DEFAULT_DNS_SUFFIX return f"https://{endpoint}.endpoint.events.{dns_suffix}/" + + +def is_s3_accelerate_url(url): + """Does the URL match the S3 Accelerate endpoint scheme? + + Virtual host naming style with bucket names in the netloc part of the URL + are not allowed by this function. + """ + if url is None: + return False + + # Accelerate is only valid for Amazon endpoints. + url_parts = urlsplit(url) + if not url_parts.netloc.endswith( + 'amazonaws.com' + ) or url_parts.scheme not in ['https', 'http']: + return False + + # The first part of the URL must be s3-accelerate. + parts = url_parts.netloc.split('.') + if parts[0] != 's3-accelerate': + return False + + # Url parts between 's3-accelerate' and 'amazonaws.com' which + # represent different url features. + feature_parts = parts[1:-2] + + # There should be no duplicate URL parts. + if len(feature_parts) != len(set(feature_parts)): + return False + + # Remaining parts must all be in the whitelist. + return all(p in S3_ACCELERATE_WHITELIST for p in feature_parts) + + +class JSONFileCache: + """JSON file cache. + This provides a dict like interface that stores JSON serializable + objects. + The objects are serialized to JSON and stored in a file. These + values can be retrieved at a later time. + """ + + CACHE_DIR = os.path.expanduser(os.path.join('~', '.aws', 'boto', 'cache')) + + def __init__(self, working_dir=CACHE_DIR, dumps_func=None): + self._working_dir = working_dir + if dumps_func is None: + dumps_func = self._default_dumps + self._dumps = dumps_func + + def _default_dumps(self, obj): + return json.dumps(obj, default=self._serialize_if_needed) + + def __contains__(self, cache_key): + actual_key = self._convert_cache_key(cache_key) + return os.path.isfile(actual_key) + + def __getitem__(self, cache_key): + """Retrieve value from a cache key.""" + actual_key = self._convert_cache_key(cache_key) + try: + with open(actual_key) as f: + return json.load(f) + except (OSError, ValueError): + raise KeyError(cache_key) + + def __delitem__(self, cache_key): + actual_key = self._convert_cache_key(cache_key) + try: + key_path = Path(actual_key) + key_path.unlink() + except FileNotFoundError: + raise KeyError(cache_key) + + def __setitem__(self, cache_key, value): + full_key = self._convert_cache_key(cache_key) + try: + file_content = self._dumps(value) + except (TypeError, ValueError): + raise ValueError( + f"Value cannot be cached, must be " + f"JSON serializable: {value}" + ) + if not os.path.isdir(self._working_dir): + os.makedirs(self._working_dir) + with os.fdopen( + os.open(full_key, os.O_WRONLY | os.O_CREAT, 0o600), 'w' + ) as f: + f.truncate() + f.write(file_content) + + def _convert_cache_key(self, cache_key): + full_path = os.path.join(self._working_dir, cache_key + '.json') + return full_path + + def _serialize_if_needed(self, value, iso=False): + if isinstance(value, datetime.datetime): + if iso: + return value.isoformat() + return value.strftime('%Y-%m-%dT%H:%M:%S%Z') + return value diff --git a/docs/source/conf.py b/docs/source/conf.py index 11d5f214..871fc1d2 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -52,9 +52,9 @@ copyright = u'2013, Mitch Garnaat' # built documents. # # The short X.Y version. -version = '1.26' +version = '1.29.' # The full version, including alpha/beta/rc tags. -release = '1.26.8' +release = '1.29.27' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/source/index.rst b/docs/source/index.rst index 85776265..04f4a99e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -6,7 +6,7 @@ Services. Botocore serves as the foundation for the `AWS-CLI `_ command line utilities. It will also play an important role in the boto3.x project. -The botocore package is compatible with Python versions Python 3.6 +The botocore package is compatible with Python versions Python 3.7 and higher. diff --git a/requirements-dev.txt b/requirements-dev.txt index a9bcc2f6..e69ee726 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -4,7 +4,7 @@ jsonschema==2.5.1 coverage==5.5 # Pytest specific deps -pytest==6.2.5 +pytest==7.1.2 pytest-cov==2.12.1 pytest-xdist==2.4.0 atomicwrites>=1.0 # Windows requirement diff --git a/setup.cfg b/setup.cfg index 6ccc0166..986aa54a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,13 +3,12 @@ universal = 0 [metadata] requires_dist = + jmespath>=0.7.1,<2.0.0 python-dateutil>=2.1,<3.0.0 - jmespath>=0.7.1,<2.0.0; python_version>'3.6' - jmespath>=0.7.1,<1.0.0; python_version<='3.6' urllib3>=1.25.4,<1.27 [options.extras_require] -crt = awscrt==0.13.8 +crt = awscrt==0.15.3 [flake8] ignore = E203,E226,E501,E731,W503,W504 diff --git a/setup.py b/setup.py index 90dc7b76..acd04b7d 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,6 @@ import codecs import os.path import re -import sys from setuptools import find_packages, setup @@ -24,18 +23,10 @@ def find_version(*file_paths): requires = [ + 'jmespath>=0.7.1,<2.0.0', 'python-dateutil>=2.1,<3.0.0', 'urllib3>=1.25.4,<1.27', ] -if sys.version_info[:2] == (3, 6): - # jmespath dropped support for python 3.6 in release 1.0.0 - requires.append( - 'jmespath>=0.7.1,<1.0.0', - ) -else: - requires.append( - 'jmespath>=0.7.1,<2.0.0', - ) setup( name='botocore', @@ -53,7 +44,7 @@ setup( include_package_data=True, install_requires=requires, license="Apache License 2.0", - python_requires=">= 3.6", + python_requires=">= 3.7", classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', @@ -62,10 +53,10 @@ setup( 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', ], ) diff --git a/tests/functional/conftest.py b/tests/functional/conftest.py new file mode 100644 index 00000000..e4dc8c2e --- /dev/null +++ b/tests/functional/conftest.py @@ -0,0 +1,27 @@ +# Copyright 2012-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import pytest + +from tests import create_session + + +@pytest.fixture() +def patched_session(monkeypatch): + monkeypatch.setenv('AWS_ACCESS_KEY_ID', 'access_key') + monkeypatch.setenv('AWS_SECRET_ACCESS_KEY', 'secret_key') + monkeypatch.setenv('AWS_CONFIG_FILE', 'no-exist-foo') + monkeypatch.delenv('AWS_PROFILE', raising=False) + monkeypatch.delenv('AWS_DEFAULT_REGION', raising=False) + session = create_session() + return session diff --git a/tests/functional/endpoint-rules/accessanalyzer/endpoint-tests-1.json b/tests/functional/endpoint-rules/accessanalyzer/endpoint-tests-1.json new file mode 100644 index 00000000..dc451c17 --- /dev/null +++ b/tests/functional/endpoint-rules/accessanalyzer/endpoint-tests-1.json @@ -0,0 +1,1707 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ca-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-west-1" + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ca-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-west-1" + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ca-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-west-1" + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ca-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://access-analyzer.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/account/endpoint-tests-1.json b/tests/functional/endpoint-rules/account/endpoint-tests-1.json new file mode 100644 index 00000000..5ce50209 --- /dev/null +++ b/tests/functional/endpoint-rules/account/endpoint-tests-1.json @@ -0,0 +1,87 @@ +{ + "testCases": [ + { + "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://account.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "aws-cn-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "account", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://account.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/acm-pca/endpoint-tests-1.json b/tests/functional/endpoint-rules/acm-pca/endpoint-tests-1.json new file mode 100644 index 00000000..8c26a506 --- /dev/null +++ b/tests/functional/endpoint-rules/acm-pca/endpoint-tests-1.json @@ -0,0 +1,1543 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-pca.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/acm/endpoint-tests-1.json b/tests/functional/endpoint-rules/acm/endpoint-tests-1.json new file mode 100644 index 00000000..4104b65d --- /dev/null +++ b/tests/functional/endpoint-rules/acm/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://acm.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://acm.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/alexaforbusiness/endpoint-tests-1.json b/tests/functional/endpoint-rules/alexaforbusiness/endpoint-tests-1.json new file mode 100644 index 00000000..159f9d2f --- /dev/null +++ b/tests/functional/endpoint-rules/alexaforbusiness/endpoint-tests-1.json @@ -0,0 +1,95 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://a4b-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://a4b-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://a4b.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://a4b.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/amp/endpoint-tests-1.json b/tests/functional/endpoint-rules/amp/endpoint-tests-1.json new file mode 100644 index 00000000..f7de3500 --- /dev/null +++ b/tests/functional/endpoint-rules/amp/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aps.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aps.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/amplify/endpoint-tests-1.json b/tests/functional/endpoint-rules/amplify/endpoint-tests-1.json new file mode 100644 index 00000000..55110804 --- /dev/null +++ b/tests/functional/endpoint-rules/amplify/endpoint-tests-1.json @@ -0,0 +1,1031 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplify.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplify.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/amplifybackend/endpoint-tests-1.json b/tests/functional/endpoint-rules/amplifybackend/endpoint-tests-1.json new file mode 100644 index 00000000..8997e460 --- /dev/null +++ b/tests/functional/endpoint-rules/amplifybackend/endpoint-tests-1.json @@ -0,0 +1,927 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifybackend.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/amplifyuibuilder/endpoint-tests-1.json b/tests/functional/endpoint-rules/amplifyuibuilder/endpoint-tests-1.json new file mode 100644 index 00000000..fb22e566 --- /dev/null +++ b/tests/functional/endpoint-rules/amplifyuibuilder/endpoint-tests-1.json @@ -0,0 +1,927 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://amplifyuibuilder.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/apigateway/endpoint-tests-1.json b/tests/functional/endpoint-rules/apigateway/endpoint-tests-1.json new file mode 100644 index 00000000..e6dde568 --- /dev/null +++ b/tests/functional/endpoint-rules/apigateway/endpoint-tests-1.json @@ -0,0 +1,1751 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/apigatewaymanagementapi/endpoint-tests-1.json b/tests/functional/endpoint-rules/apigatewaymanagementapi/endpoint-tests-1.json new file mode 100644 index 00000000..9c7cc18b --- /dev/null +++ b/tests/functional/endpoint-rules/apigatewaymanagementapi/endpoint-tests-1.json @@ -0,0 +1,1591 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://execute-api.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://execute-api.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/apigatewayv2/endpoint-tests-1.json b/tests/functional/endpoint-rules/apigatewayv2/endpoint-tests-1.json new file mode 100644 index 00000000..e6dde568 --- /dev/null +++ b/tests/functional/endpoint-rules/apigatewayv2/endpoint-tests-1.json @@ -0,0 +1,1751 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apigateway.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apigateway.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/appconfig/endpoint-tests-1.json b/tests/functional/endpoint-rules/appconfig/endpoint-tests-1.json new file mode 100644 index 00000000..b28a134c --- /dev/null +++ b/tests/functional/endpoint-rules/appconfig/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfig.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfig.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/appconfigdata/endpoint-tests-1.json b/tests/functional/endpoint-rules/appconfigdata/endpoint-tests-1.json new file mode 100644 index 00000000..9be3fb5f --- /dev/null +++ b/tests/functional/endpoint-rules/appconfigdata/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appconfigdata.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/appflow/endpoint-tests-1.json b/tests/functional/endpoint-rules/appflow/endpoint-tests-1.json new file mode 100644 index 00000000..2de5f9d0 --- /dev/null +++ b/tests/functional/endpoint-rules/appflow/endpoint-tests-1.json @@ -0,0 +1,875 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appflow.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appflow.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/appintegrations/endpoint-tests-1.json b/tests/functional/endpoint-rules/appintegrations/endpoint-tests-1.json new file mode 100644 index 00000000..b3773908 --- /dev/null +++ b/tests/functional/endpoint-rules/appintegrations/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://app-integrations.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/application-autoscaling/endpoint-tests-1.json b/tests/functional/endpoint-rules/application-autoscaling/endpoint-tests-1.json new file mode 100644 index 00000000..c5d3a210 --- /dev/null +++ b/tests/functional/endpoint-rules/application-autoscaling/endpoint-tests-1.json @@ -0,0 +1,2003 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-isob-west-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-isob-west-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ca-west-1.api.aws" + } + }, + "params": { + "Region": "ca-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ca-west-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ca-west-1.api.aws" + } + }, + "params": { + "Region": "ca-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ca-west-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-5.api.aws" + } + }, + "params": { + "Region": "ap-southeast-5", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-5.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-5", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-5.api.aws" + } + }, + "params": { + "Region": "ap-southeast-5", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-5.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-5", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-6 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-6.api.aws" + } + }, + "params": { + "Region": "ap-southeast-6", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-6 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.ap-southeast-6.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-6", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-6 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-6.api.aws" + } + }, + "params": { + "Region": "ap-southeast-6", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-6 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.ap-southeast-6.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-6", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://application-autoscaling.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/application-insights/endpoint-tests-1.json b/tests/functional/endpoint-rules/application-insights/endpoint-tests-1.json new file mode 100644 index 00000000..2b0535fd --- /dev/null +++ b/tests/functional/endpoint-rules/application-insights/endpoint-tests-1.json @@ -0,0 +1,1343 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://applicationinsights.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/applicationcostprofiler/endpoint-tests-1.json b/tests/functional/endpoint-rules/applicationcostprofiler/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/applicationcostprofiler/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/appmesh/endpoint-tests-1.json b/tests/functional/endpoint-rules/appmesh/endpoint-tests-1.json new file mode 100644 index 00000000..615aaa00 --- /dev/null +++ b/tests/functional/endpoint-rules/appmesh/endpoint-tests-1.json @@ -0,0 +1,1291 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appmesh.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appmesh.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/apprunner/endpoint-tests-1.json b/tests/functional/endpoint-rules/apprunner/endpoint-tests-1.json new file mode 100644 index 00000000..38ca6f23 --- /dev/null +++ b/tests/functional/endpoint-rules/apprunner/endpoint-tests-1.json @@ -0,0 +1,303 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://apprunner.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://apprunner.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/appstream/endpoint-tests-1.json b/tests/functional/endpoint-rules/appstream/endpoint-tests-1.json new file mode 100644 index 00000000..eebc503e --- /dev/null +++ b/tests/functional/endpoint-rules/appstream/endpoint-tests-1.json @@ -0,0 +1,927 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appstream2.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appstream2.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/appsync/endpoint-tests-1.json b/tests/functional/endpoint-rules/appsync/endpoint-tests-1.json new file mode 100644 index 00000000..bfe1d895 --- /dev/null +++ b/tests/functional/endpoint-rules/appsync/endpoint-tests-1.json @@ -0,0 +1,1291 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://appsync.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://appsync.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/arc-zonal-shift/endpoint-tests-1.json b/tests/functional/endpoint-rules/arc-zonal-shift/endpoint-tests-1.json new file mode 100644 index 00000000..b05c0315 --- /dev/null +++ b/tests/functional/endpoint-rules/arc-zonal-shift/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://arc-zonal-shift.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/athena/endpoint-tests-1.json b/tests/functional/endpoint-rules/athena/endpoint-tests-1.json new file mode 100644 index 00000000..e3fee7bc --- /dev/null +++ b/tests/functional/endpoint-rules/athena/endpoint-tests-1.json @@ -0,0 +1,1491 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://athena.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://athena.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/auditmanager/endpoint-tests-1.json b/tests/functional/endpoint-rules/auditmanager/endpoint-tests-1.json new file mode 100644 index 00000000..19a1ac02 --- /dev/null +++ b/tests/functional/endpoint-rules/auditmanager/endpoint-tests-1.json @@ -0,0 +1,667 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://auditmanager.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/autoscaling-plans/endpoint-tests-1.json b/tests/functional/endpoint-rules/autoscaling-plans/endpoint-tests-1.json new file mode 100644 index 00000000..20250c16 --- /dev/null +++ b/tests/functional/endpoint-rules/autoscaling-plans/endpoint-tests-1.json @@ -0,0 +1,1395 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-plans.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/autoscaling/endpoint-tests-1.json b/tests/functional/endpoint-rules/autoscaling/endpoint-tests-1.json new file mode 100644 index 00000000..233daccc --- /dev/null +++ b/tests/functional/endpoint-rules/autoscaling/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://autoscaling.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/backup-gateway/endpoint-tests-1.json b/tests/functional/endpoint-rules/backup-gateway/endpoint-tests-1.json new file mode 100644 index 00000000..2babd6fa --- /dev/null +++ b/tests/functional/endpoint-rules/backup-gateway/endpoint-tests-1.json @@ -0,0 +1,1239 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-gateway.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/backup/endpoint-tests-1.json b/tests/functional/endpoint-rules/backup/endpoint-tests-1.json new file mode 100644 index 00000000..a0aa1fd4 --- /dev/null +++ b/tests/functional/endpoint-rules/backup/endpoint-tests-1.json @@ -0,0 +1,1543 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backup.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backup.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/backupstorage/endpoint-tests-1.json b/tests/functional/endpoint-rules/backupstorage/endpoint-tests-1.json new file mode 100644 index 00000000..cc198952 --- /dev/null +++ b/tests/functional/endpoint-rules/backupstorage/endpoint-tests-1.json @@ -0,0 +1,251 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backupstorage-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backupstorage-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backupstorage.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backupstorage.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backupstorage-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backupstorage-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backupstorage.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backupstorage.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backupstorage-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backupstorage-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backupstorage.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backupstorage.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backupstorage-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backupstorage-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://backupstorage.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://backupstorage.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/batch/endpoint-tests-1.json b/tests/functional/endpoint-rules/batch/endpoint-tests-1.json new file mode 100644 index 00000000..95df5406 --- /dev/null +++ b/tests/functional/endpoint-rules/batch/endpoint-tests-1.json @@ -0,0 +1,1447 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.batch.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://batch.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://batch.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/billingconductor/endpoint-tests-1.json b/tests/functional/endpoint-rules/billingconductor/endpoint-tests-1.json new file mode 100644 index 00000000..e0583305 --- /dev/null +++ b/tests/functional/endpoint-rules/billingconductor/endpoint-tests-1.json @@ -0,0 +1,65 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "billingconductor", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://billingconductor.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "aws-global" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/braket/endpoint-tests-1.json b/tests/functional/endpoint-rules/braket/endpoint-tests-1.json new file mode 100644 index 00000000..5c2ea5c0 --- /dev/null +++ b/tests/functional/endpoint-rules/braket/endpoint-tests-1.json @@ -0,0 +1,251 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://braket-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://braket-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://braket.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://braket.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://braket-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://braket-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://braket.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://braket.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://braket-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://braket-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://braket.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://braket.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://braket-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://braket-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://braket.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://braket.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/budgets/endpoint-tests-1.json b/tests/functional/endpoint-rules/budgets/endpoint-tests-1.json new file mode 100644 index 00000000..8d97bc36 --- /dev/null +++ b/tests/functional/endpoint-rules/budgets/endpoint-tests-1.json @@ -0,0 +1,87 @@ +{ + "testCases": [ + { + "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://budgets.amazonaws.com.cn" + } + }, + "params": { + "Region": "aws-cn-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "budgets", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://budgets.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ce/endpoint-tests-1.json b/tests/functional/endpoint-rules/ce/endpoint-tests-1.json new file mode 100644 index 00000000..b733909b --- /dev/null +++ b/tests/functional/endpoint-rules/ce/endpoint-tests-1.json @@ -0,0 +1,87 @@ +{ + "testCases": [ + { + "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "cn-northwest-1", + "name": "sigv4", + "signingName": "ce" + } + ] + }, + "url": "https://ce.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "aws-cn-global" + } + }, + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "name": "sigv4", + "signingName": "ce" + } + ] + }, + "url": "https://ce.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "aws-global" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/chime-sdk-identity/endpoint-tests-1.json b/tests/functional/endpoint-rules/chime-sdk-identity/endpoint-tests-1.json new file mode 100644 index 00000000..6fe9d039 --- /dev/null +++ b/tests/functional/endpoint-rules/chime-sdk-identity/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identity-chime-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identity-chime.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identity-chime-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identity-chime.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identity-chime.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/chime-sdk-media-pipelines/endpoint-tests-1.json b/tests/functional/endpoint-rules/chime-sdk-media-pipelines/endpoint-tests-1.json new file mode 100644 index 00000000..cc884a18 --- /dev/null +++ b/tests/functional/endpoint-rules/chime-sdk-media-pipelines/endpoint-tests-1.json @@ -0,0 +1,251 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://media-pipelines-chime.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/chime-sdk-meetings/endpoint-tests-1.json b/tests/functional/endpoint-rules/chime-sdk-meetings/endpoint-tests-1.json new file mode 100644 index 00000000..ee742ffa --- /dev/null +++ b/tests/functional/endpoint-rules/chime-sdk-meetings/endpoint-tests-1.json @@ -0,0 +1,355 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://meetings-chime.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/chime-sdk-messaging/endpoint-tests-1.json b/tests/functional/endpoint-rules/chime-sdk-messaging/endpoint-tests-1.json new file mode 100644 index 00000000..57f60235 --- /dev/null +++ b/tests/functional/endpoint-rules/chime-sdk-messaging/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/chime-sdk-voice/endpoint-tests-1.json b/tests/functional/endpoint-rules/chime-sdk-voice/endpoint-tests-1.json new file mode 100644 index 00000000..9150af50 --- /dev/null +++ b/tests/functional/endpoint-rules/chime-sdk-voice/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voice-chime-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voice-chime.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voice-chime-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voice-chime.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voice-chime-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voice-chime.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voice-chime.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/chime/endpoint-tests-1.json b/tests/functional/endpoint-rules/chime/endpoint-tests-1.json new file mode 100644 index 00000000..84d9afd0 --- /dev/null +++ b/tests/functional/endpoint-rules/chime/endpoint-tests-1.json @@ -0,0 +1,65 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "chime", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://chime.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloud9/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloud9/endpoint-tests-1.json new file mode 100644 index 00000000..247e617c --- /dev/null +++ b/tests/functional/endpoint-rules/cloud9/endpoint-tests-1.json @@ -0,0 +1,1135 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloud9.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloud9.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloudcontrol/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloudcontrol/endpoint-tests-1.json new file mode 100644 index 00000000..d89bd72f --- /dev/null +++ b/tests/functional/endpoint-rules/cloudcontrol/endpoint-tests-1.json @@ -0,0 +1,1499 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudcontrolapi.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/clouddirectory/endpoint-tests-1.json b/tests/functional/endpoint-rules/clouddirectory/endpoint-tests-1.json new file mode 100644 index 00000000..6cf7d6bf --- /dev/null +++ b/tests/functional/endpoint-rules/clouddirectory/endpoint-tests-1.json @@ -0,0 +1,1135 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://clouddirectory.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloudformation/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloudformation/endpoint-tests-1.json new file mode 100644 index 00000000..7af73898 --- /dev/null +++ b/tests/functional/endpoint-rules/cloudformation/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudformation.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloudfront/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloudfront/endpoint-tests-1.json new file mode 100644 index 00000000..52299cc0 --- /dev/null +++ b/tests/functional/endpoint-rules/cloudfront/endpoint-tests-1.json @@ -0,0 +1,87 @@ +{ + "testCases": [ + { + "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://cloudfront.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "aws-cn-global" + } + }, + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "cloudfront", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://cloudfront.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "aws-global" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloudhsm/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloudhsm/endpoint-tests-1.json new file mode 100644 index 00000000..ef291491 --- /dev/null +++ b/tests/functional/endpoint-rules/cloudhsm/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsm.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloudhsmv2/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloudhsmv2/endpoint-tests-1.json new file mode 100644 index 00000000..821d0a93 --- /dev/null +++ b/tests/functional/endpoint-rules/cloudhsmv2/endpoint-tests-1.json @@ -0,0 +1,1343 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudhsmv2.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloudsearch/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloudsearch/endpoint-tests-1.json new file mode 100644 index 00000000..0afbaa3d --- /dev/null +++ b/tests/functional/endpoint-rules/cloudsearch/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudsearch.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloudsearchdomain/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloudsearchdomain/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/cloudsearchdomain/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloudtrail/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloudtrail/endpoint-tests-1.json new file mode 100644 index 00000000..650c2a6c --- /dev/null +++ b/tests/functional/endpoint-rules/cloudtrail/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cloudwatch/endpoint-tests-1.json b/tests/functional/endpoint-rules/cloudwatch/endpoint-tests-1.json new file mode 100644 index 00000000..83b5b185 --- /dev/null +++ b/tests/functional/endpoint-rules/cloudwatch/endpoint-tests-1.json @@ -0,0 +1,1851 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ca-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ca-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ca-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ca-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://monitoring.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://monitoring.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codeartifact/endpoint-tests-1.json b/tests/functional/endpoint-rules/codeartifact/endpoint-tests-1.json new file mode 100644 index 00000000..f387611b --- /dev/null +++ b/tests/functional/endpoint-rules/codeartifact/endpoint-tests-1.json @@ -0,0 +1,719 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeartifact.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codebuild/endpoint-tests-1.json b/tests/functional/endpoint-rules/codebuild/endpoint-tests-1.json new file mode 100644 index 00000000..2d3d743e --- /dev/null +++ b/tests/functional/endpoint-rules/codebuild/endpoint-tests-1.json @@ -0,0 +1,1591 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codebuild.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codebuild.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codecatalyst/endpoint-tests-1.json b/tests/functional/endpoint-rules/codecatalyst/endpoint-tests-1.json new file mode 100644 index 00000000..47fa02a8 --- /dev/null +++ b/tests/functional/endpoint-rules/codecatalyst/endpoint-tests-1.json @@ -0,0 +1,104 @@ +{ + "testCases": [ + { + "documentation": "Override endpoint", + "expect": { + "endpoint": { + "url": "https://test.codecatalyst.global.api.aws" + } + }, + "params": { + "Endpoint": "https://test.codecatalyst.global.api.aws" + } + }, + { + "documentation": "Default endpoint (region not set)", + "expect": { + "endpoint": { + "url": "https://codecatalyst.global.api.aws" + } + } + }, + { + "documentation": "Default FIPS endpoint (region not set)", + "expect": { + "endpoint": { + "url": "https://codecatalyst-fips.global.api.aws" + } + }, + "params": { + "UseFIPS": true + } + }, + { + "documentation": "Default endpoint (region: aws-global)", + "expect": { + "endpoint": { + "url": "https://codecatalyst.global.api.aws" + } + }, + "params": { + "Region": "aws-global" + } + }, + { + "documentation": "Default FIPS endpoint (region: aws-global)", + "expect": { + "endpoint": { + "url": "https://codecatalyst-fips.global.api.aws" + } + }, + "params": { + "Region": "aws-global", + "UseFIPS": true + } + }, + { + "documentation": "Default endpoint for a valid home region (region: us-west-2)", + "expect": { + "endpoint": { + "url": "https://codecatalyst.global.api.aws" + } + }, + "params": { + "Region": "us-west-2" + } + }, + { + "documentation": "Default FIPS endpoint for a valid home region (region: us-west-2)", + "expect": { + "endpoint": { + "url": "https://codecatalyst-fips.global.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "Default endpoint for an unavailable home region (region: us-east-1)", + "expect": { + "endpoint": { + "url": "https://codecatalyst.global.api.aws" + } + }, + "params": { + "Region": "us-east-1" + } + }, + { + "documentation": "Default FIPS endpoint for an unavailable home region (region: us-east-1)", + "expect": { + "endpoint": { + "url": "https://codecatalyst-fips.global.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codecommit/endpoint-tests-1.json b/tests/functional/endpoint-rules/codecommit/endpoint-tests-1.json new file mode 100644 index 00000000..7aed6879 --- /dev/null +++ b/tests/functional/endpoint-rules/codecommit/endpoint-tests-1.json @@ -0,0 +1,1499 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codecommit.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codecommit.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codedeploy/endpoint-tests-1.json b/tests/functional/endpoint-rules/codedeploy/endpoint-tests-1.json new file mode 100644 index 00000000..a927cc54 --- /dev/null +++ b/tests/functional/endpoint-rules/codedeploy/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codedeploy.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codeguru-reviewer/endpoint-tests-1.json b/tests/functional/endpoint-rules/codeguru-reviewer/endpoint-tests-1.json new file mode 100644 index 00000000..e6562088 --- /dev/null +++ b/tests/functional/endpoint-rules/codeguru-reviewer/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-reviewer.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codeguruprofiler/endpoint-tests-1.json b/tests/functional/endpoint-rules/codeguruprofiler/endpoint-tests-1.json new file mode 100644 index 00000000..10d97028 --- /dev/null +++ b/tests/functional/endpoint-rules/codeguruprofiler/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codeguru-profiler.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codepipeline/endpoint-tests-1.json b/tests/functional/endpoint-rules/codepipeline/endpoint-tests-1.json new file mode 100644 index 00000000..ceec040e --- /dev/null +++ b/tests/functional/endpoint-rules/codepipeline/endpoint-tests-1.json @@ -0,0 +1,1291 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codepipeline.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codestar-connections/endpoint-tests-1.json b/tests/functional/endpoint-rules/codestar-connections/endpoint-tests-1.json new file mode 100644 index 00000000..7e306d5a --- /dev/null +++ b/tests/functional/endpoint-rules/codestar-connections/endpoint-tests-1.json @@ -0,0 +1,875 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-connections.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codestar-notifications/endpoint-tests-1.json b/tests/functional/endpoint-rules/codestar-notifications/endpoint-tests-1.json new file mode 100644 index 00000000..bb2249f3 --- /dev/null +++ b/tests/functional/endpoint-rules/codestar-notifications/endpoint-tests-1.json @@ -0,0 +1,979 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-notifications.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/codestar/endpoint-tests-1.json b/tests/functional/endpoint-rules/codestar/endpoint-tests-1.json new file mode 100644 index 00000000..1109cb0f --- /dev/null +++ b/tests/functional/endpoint-rules/codestar/endpoint-tests-1.json @@ -0,0 +1,719 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://codestar.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://codestar.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cognito-identity/endpoint-tests-1.json b/tests/functional/endpoint-rules/cognito-identity/endpoint-tests-1.json new file mode 100644 index 00000000..a4c3333e --- /dev/null +++ b/tests/functional/endpoint-rules/cognito-identity/endpoint-tests-1.json @@ -0,0 +1,1083 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-identity.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cognito-idp/endpoint-tests-1.json b/tests/functional/endpoint-rules/cognito-idp/endpoint-tests-1.json new file mode 100644 index 00000000..2e9849ac --- /dev/null +++ b/tests/functional/endpoint-rules/cognito-idp/endpoint-tests-1.json @@ -0,0 +1,1083 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-idp.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cognito-sync/endpoint-tests-1.json b/tests/functional/endpoint-rules/cognito-sync/endpoint-tests-1.json new file mode 100644 index 00000000..b0c974f8 --- /dev/null +++ b/tests/functional/endpoint-rules/cognito-sync/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cognito-sync.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/comprehend/endpoint-tests-1.json b/tests/functional/endpoint-rules/comprehend/endpoint-tests-1.json new file mode 100644 index 00000000..7d2411ad --- /dev/null +++ b/tests/functional/endpoint-rules/comprehend/endpoint-tests-1.json @@ -0,0 +1,1235 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehend.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehend.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/comprehendmedical/endpoint-tests-1.json b/tests/functional/endpoint-rules/comprehendmedical/endpoint-tests-1.json new file mode 100644 index 00000000..df371f36 --- /dev/null +++ b/tests/functional/endpoint-rules/comprehendmedical/endpoint-tests-1.json @@ -0,0 +1,459 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://comprehendmedical.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/compute-optimizer/endpoint-tests-1.json b/tests/functional/endpoint-rules/compute-optimizer/endpoint-tests-1.json new file mode 100644 index 00000000..abec6f0c --- /dev/null +++ b/tests/functional/endpoint-rules/compute-optimizer/endpoint-tests-1.json @@ -0,0 +1,1395 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://compute-optimizer.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/config/endpoint-tests-1.json b/tests/functional/endpoint-rules/config/endpoint-tests-1.json new file mode 100644 index 00000000..ed49672b --- /dev/null +++ b/tests/functional/endpoint-rules/config/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-4", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-4", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-4", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-4", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/connect-contact-lens/endpoint-tests-1.json b/tests/functional/endpoint-rules/connect-contact-lens/endpoint-tests-1.json new file mode 100644 index 00000000..4c17188f --- /dev/null +++ b/tests/functional/endpoint-rules/connect-contact-lens/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://contact-lens.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/connect/endpoint-tests-1.json b/tests/functional/endpoint-rules/connect/endpoint-tests-1.json new file mode 100644 index 00000000..9573af24 --- /dev/null +++ b/tests/functional/endpoint-rules/connect/endpoint-tests-1.json @@ -0,0 +1,667 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/connectcampaigns/endpoint-tests-1.json b/tests/functional/endpoint-rules/connectcampaigns/endpoint-tests-1.json new file mode 100644 index 00000000..1d228019 --- /dev/null +++ b/tests/functional/endpoint-rules/connectcampaigns/endpoint-tests-1.json @@ -0,0 +1,251 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-campaigns.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/connectcases/endpoint-tests-1.json b/tests/functional/endpoint-rules/connectcases/endpoint-tests-1.json new file mode 100644 index 00000000..9e508f59 --- /dev/null +++ b/tests/functional/endpoint-rules/connectcases/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cases-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cases.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cases-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cases.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cases-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cases.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cases.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/connectparticipant/endpoint-tests-1.json b/tests/functional/endpoint-rules/connectparticipant/endpoint-tests-1.json new file mode 100644 index 00000000..d8f2dab2 --- /dev/null +++ b/tests/functional/endpoint-rules/connectparticipant/endpoint-tests-1.json @@ -0,0 +1,667 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://participant.connect.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/controltower/endpoint-tests-1.json b/tests/functional/endpoint-rules/controltower/endpoint-tests-1.json new file mode 100644 index 00000000..ad198714 --- /dev/null +++ b/tests/functional/endpoint-rules/controltower/endpoint-tests-1.json @@ -0,0 +1,927 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://controltower.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/cur/endpoint-tests-1.json b/tests/functional/endpoint-rules/cur/endpoint-tests-1.json new file mode 100644 index 00000000..e061f54d --- /dev/null +++ b/tests/functional/endpoint-rules/cur/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cur-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cur-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cur.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cur.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cur-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cur-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cur.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cur.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/customer-profiles/endpoint-tests-1.json b/tests/functional/endpoint-rules/customer-profiles/endpoint-tests-1.json new file mode 100644 index 00000000..71d6bc5f --- /dev/null +++ b/tests/functional/endpoint-rules/customer-profiles/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://profile.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://profile.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/databrew/endpoint-tests-1.json b/tests/functional/endpoint-rules/databrew/endpoint-tests-1.json new file mode 100644 index 00000000..b0d170d2 --- /dev/null +++ b/tests/functional/endpoint-rules/databrew/endpoint-tests-1.json @@ -0,0 +1,1187 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://databrew.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://databrew.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/dataexchange/endpoint-tests-1.json b/tests/functional/endpoint-rules/dataexchange/endpoint-tests-1.json new file mode 100644 index 00000000..04b505dc --- /dev/null +++ b/tests/functional/endpoint-rules/dataexchange/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dataexchange.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/datapipeline/endpoint-tests-1.json b/tests/functional/endpoint-rules/datapipeline/endpoint-tests-1.json new file mode 100644 index 00000000..80a7a007 --- /dev/null +++ b/tests/functional/endpoint-rules/datapipeline/endpoint-tests-1.json @@ -0,0 +1,455 @@ +{ + "testCases": [ + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datapipeline.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/datasync/endpoint-tests-1.json b/tests/functional/endpoint-rules/datasync/endpoint-tests-1.json new file mode 100644 index 00000000..7ecda16f --- /dev/null +++ b/tests/functional/endpoint-rules/datasync/endpoint-tests-1.json @@ -0,0 +1,1543 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://datasync.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://datasync.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/dax/endpoint-tests-1.json b/tests/functional/endpoint-rules/dax/endpoint-tests-1.json new file mode 100644 index 00000000..252c8165 --- /dev/null +++ b/tests/functional/endpoint-rules/dax/endpoint-tests-1.json @@ -0,0 +1,1083 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dax.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dax.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/detective/endpoint-tests-1.json b/tests/functional/endpoint-rules/detective/endpoint-tests-1.json new file mode 100644 index 00000000..ec387e42 --- /dev/null +++ b/tests/functional/endpoint-rules/detective/endpoint-tests-1.json @@ -0,0 +1,1187 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.detective.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/devicefarm/endpoint-tests-1.json b/tests/functional/endpoint-rules/devicefarm/endpoint-tests-1.json new file mode 100644 index 00000000..ea68dd82 --- /dev/null +++ b/tests/functional/endpoint-rules/devicefarm/endpoint-tests-1.json @@ -0,0 +1,95 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devicefarm-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devicefarm-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devicefarm.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devicefarm.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/devops-guru/endpoint-tests-1.json b/tests/functional/endpoint-rules/devops-guru/endpoint-tests-1.json new file mode 100644 index 00000000..268ee8e4 --- /dev/null +++ b/tests/functional/endpoint-rules/devops-guru/endpoint-tests-1.json @@ -0,0 +1,875 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devops-guru.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/directconnect/endpoint-tests-1.json b/tests/functional/endpoint-rules/directconnect/endpoint-tests-1.json new file mode 100644 index 00000000..fb88ea6d --- /dev/null +++ b/tests/functional/endpoint-rules/directconnect/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://directconnect.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://directconnect.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/discovery/endpoint-tests-1.json b/tests/functional/endpoint-rules/discovery/endpoint-tests-1.json new file mode 100644 index 00000000..44a1b097 --- /dev/null +++ b/tests/functional/endpoint-rules/discovery/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://discovery.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://discovery.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/dlm/endpoint-tests-1.json b/tests/functional/endpoint-rules/dlm/endpoint-tests-1.json new file mode 100644 index 00000000..b8e19ce2 --- /dev/null +++ b/tests/functional/endpoint-rules/dlm/endpoint-tests-1.json @@ -0,0 +1,1395 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dlm.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dlm.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/dms/endpoint-tests-1.json b/tests/functional/endpoint-rules/dms/endpoint-tests-1.json new file mode 100644 index 00000000..ed11166d --- /dev/null +++ b/tests/functional/endpoint-rules/dms/endpoint-tests-1.json @@ -0,0 +1,1727 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dms.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dms.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/docdb-elastic/endpoint-tests-1.json b/tests/functional/endpoint-rules/docdb-elastic/endpoint-tests-1.json new file mode 100644 index 00000000..c56e45bd --- /dev/null +++ b/tests/functional/endpoint-rules/docdb-elastic/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://docdb-elastic.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/docdb/endpoint-tests-1.json b/tests/functional/endpoint-rules/docdb/endpoint-tests-1.json new file mode 100644 index 00000000..208ed055 --- /dev/null +++ b/tests/functional/endpoint-rules/docdb/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/drs/endpoint-tests-1.json b/tests/functional/endpoint-rules/drs/endpoint-tests-1.json new file mode 100644 index 00000000..c3812a58 --- /dev/null +++ b/tests/functional/endpoint-rules/drs/endpoint-tests-1.json @@ -0,0 +1,1187 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://drs.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://drs.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ds/endpoint-tests-1.json b/tests/functional/endpoint-rules/ds/endpoint-tests-1.json new file mode 100644 index 00000000..74968e66 --- /dev/null +++ b/tests/functional/endpoint-rules/ds/endpoint-tests-1.json @@ -0,0 +1,1539 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ds.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ds.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/dynamodb/endpoint-tests-1.json b/tests/functional/endpoint-rules/dynamodb/endpoint-tests-1.json new file mode 100644 index 00000000..cd9c9319 --- /dev/null +++ b/tests/functional/endpoint-rules/dynamodb/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-4", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-4", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-4", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-4", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/dynamodbstreams/endpoint-tests-1.json b/tests/functional/endpoint-rules/dynamodbstreams/endpoint-tests-1.json new file mode 100644 index 00000000..d24464c4 --- /dev/null +++ b/tests/functional/endpoint-rules/dynamodbstreams/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://streams.dynamodb.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ebs/endpoint-tests-1.json b/tests/functional/endpoint-rules/ebs/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/ebs/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ec2-instance-connect/endpoint-tests-1.json b/tests/functional/endpoint-rules/ec2-instance-connect/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/ec2-instance-connect/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ec2/endpoint-tests-1.json b/tests/functional/endpoint-rules/ec2/endpoint-tests-1.json new file mode 100644 index 00000000..b6fa8ed1 --- /dev/null +++ b/tests/functional/endpoint-rules/ec2/endpoint-tests-1.json @@ -0,0 +1,1899 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-isob-west-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-isob-west-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ca-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ca-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ca-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ca-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ec2.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ec2.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ecr-public/endpoint-tests-1.json b/tests/functional/endpoint-rules/ecr-public/endpoint-tests-1.json new file mode 100644 index 00000000..30d4bece --- /dev/null +++ b/tests/functional/endpoint-rules/ecr-public/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-public.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ecr/endpoint-tests-1.json b/tests/functional/endpoint-rules/ecr/endpoint-tests-1.json new file mode 100644 index 00000000..d7918bcc --- /dev/null +++ b/tests/functional/endpoint-rules/ecr/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecr-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.ecr.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ecs/endpoint-tests-1.json b/tests/functional/endpoint-rules/ecs/endpoint-tests-1.json new file mode 100644 index 00000000..9cb2a97b --- /dev/null +++ b/tests/functional/endpoint-rules/ecs/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ecs.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ecs.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/efs/endpoint-tests-1.json b/tests/functional/endpoint-rules/efs/endpoint-tests-1.json new file mode 100644 index 00000000..7985bdc4 --- /dev/null +++ b/tests/functional/endpoint-rules/efs/endpoint-tests-1.json @@ -0,0 +1,1695 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticfilesystem.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/eks/endpoint-tests-1.json b/tests/functional/endpoint-rules/eks/endpoint-tests-1.json new file mode 100644 index 00000000..4b583d9f --- /dev/null +++ b/tests/functional/endpoint-rules/eks/endpoint-tests-1.json @@ -0,0 +1,1751 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.eks.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://eks.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://eks.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/elastic-inference/endpoint-tests-1.json b/tests/functional/endpoint-rules/elastic-inference/endpoint-tests-1.json new file mode 100644 index 00000000..62fb1b26 --- /dev/null +++ b/tests/functional/endpoint-rules/elastic-inference/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.elastic-inference.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/elasticache/endpoint-tests-1.json b/tests/functional/endpoint-rules/elasticache/endpoint-tests-1.json new file mode 100644 index 00000000..197ef533 --- /dev/null +++ b/tests/functional/endpoint-rules/elasticache/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticache.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticache.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/elasticbeanstalk/endpoint-tests-1.json b/tests/functional/endpoint-rules/elasticbeanstalk/endpoint-tests-1.json new file mode 100644 index 00000000..59ae3001 --- /dev/null +++ b/tests/functional/endpoint-rules/elasticbeanstalk/endpoint-tests-1.json @@ -0,0 +1,1395 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticbeanstalk.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/elastictranscoder/endpoint-tests-1.json b/tests/functional/endpoint-rules/elastictranscoder/endpoint-tests-1.json new file mode 100644 index 00000000..3bd38ea8 --- /dev/null +++ b/tests/functional/endpoint-rules/elastictranscoder/endpoint-tests-1.json @@ -0,0 +1,459 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elastictranscoder.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/elb/endpoint-tests-1.json b/tests/functional/endpoint-rules/elb/endpoint-tests-1.json new file mode 100644 index 00000000..40c0bd58 --- /dev/null +++ b/tests/functional/endpoint-rules/elb/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/elbv2/endpoint-tests-1.json b/tests/functional/endpoint-rules/elbv2/endpoint-tests-1.json new file mode 100644 index 00000000..9d4e50c3 --- /dev/null +++ b/tests/functional/endpoint-rules/elbv2/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticloadbalancing.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/emr-containers/endpoint-tests-1.json b/tests/functional/endpoint-rules/emr-containers/endpoint-tests-1.json new file mode 100644 index 00000000..bed95009 --- /dev/null +++ b/tests/functional/endpoint-rules/emr-containers/endpoint-tests-1.json @@ -0,0 +1,1031 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-containers.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/emr-serverless/endpoint-tests-1.json b/tests/functional/endpoint-rules/emr-serverless/endpoint-tests-1.json new file mode 100644 index 00000000..54428a96 --- /dev/null +++ b/tests/functional/endpoint-rules/emr-serverless/endpoint-tests-1.json @@ -0,0 +1,927 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://emr-serverless.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/emr/endpoint-tests-1.json b/tests/functional/endpoint-rules/emr/endpoint-tests-1.json new file mode 100644 index 00000000..f2444318 --- /dev/null +++ b/tests/functional/endpoint-rules/emr/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://elasticmapreduce.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/es/endpoint-tests-1.json b/tests/functional/endpoint-rules/es/endpoint-tests-1.json new file mode 100644 index 00000000..000cf7fb --- /dev/null +++ b/tests/functional/endpoint-rules/es/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/events/endpoint-tests-1.json b/tests/functional/endpoint-rules/events/endpoint-tests-1.json new file mode 100644 index 00000000..ab13d3ad --- /dev/null +++ b/tests/functional/endpoint-rules/events/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/evidently/endpoint-tests-1.json b/tests/functional/endpoint-rules/evidently/endpoint-tests-1.json new file mode 100644 index 00000000..5e24c08f --- /dev/null +++ b/tests/functional/endpoint-rules/evidently/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://evidently.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://evidently.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/finspace-data/endpoint-tests-1.json b/tests/functional/endpoint-rules/finspace-data/endpoint-tests-1.json new file mode 100644 index 00000000..0fc91046 --- /dev/null +++ b/tests/functional/endpoint-rules/finspace-data/endpoint-tests-1.json @@ -0,0 +1,303 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-api.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/finspace/endpoint-tests-1.json b/tests/functional/endpoint-rules/finspace/endpoint-tests-1.json new file mode 100644 index 00000000..16a9cb8c --- /dev/null +++ b/tests/functional/endpoint-rules/finspace/endpoint-tests-1.json @@ -0,0 +1,303 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://finspace.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://finspace.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/firehose/endpoint-tests-1.json b/tests/functional/endpoint-rules/firehose/endpoint-tests-1.json new file mode 100644 index 00000000..ab71fd49 --- /dev/null +++ b/tests/functional/endpoint-rules/firehose/endpoint-tests-1.json @@ -0,0 +1,1643 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://firehose.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://firehose.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/fis/endpoint-tests-1.json b/tests/functional/endpoint-rules/fis/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/fis/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/fms/endpoint-tests-1.json b/tests/functional/endpoint-rules/fms/endpoint-tests-1.json new file mode 100644 index 00000000..7dfd202b --- /dev/null +++ b/tests/functional/endpoint-rules/fms/endpoint-tests-1.json @@ -0,0 +1,1447 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fms.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fms.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/forecast/endpoint-tests-1.json b/tests/functional/endpoint-rules/forecast/endpoint-tests-1.json new file mode 100644 index 00000000..23f9623b --- /dev/null +++ b/tests/functional/endpoint-rules/forecast/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecast.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecast.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/forecastquery/endpoint-tests-1.json b/tests/functional/endpoint-rules/forecastquery/endpoint-tests-1.json new file mode 100644 index 00000000..1fbc81bd --- /dev/null +++ b/tests/functional/endpoint-rules/forecastquery/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://forecastquery.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/frauddetector/endpoint-tests-1.json b/tests/functional/endpoint-rules/frauddetector/endpoint-tests-1.json new file mode 100644 index 00000000..7cbe8e6d --- /dev/null +++ b/tests/functional/endpoint-rules/frauddetector/endpoint-tests-1.json @@ -0,0 +1,355 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://frauddetector.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/fsx/endpoint-tests-1.json b/tests/functional/endpoint-rules/fsx/endpoint-tests-1.json new file mode 100644 index 00000000..70569c1b --- /dev/null +++ b/tests/functional/endpoint-rules/fsx/endpoint-tests-1.json @@ -0,0 +1,1491 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://fsx.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fsx.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/gamelift/endpoint-tests-1.json b/tests/functional/endpoint-rules/gamelift/endpoint-tests-1.json new file mode 100644 index 00000000..9bf00e45 --- /dev/null +++ b/tests/functional/endpoint-rules/gamelift/endpoint-tests-1.json @@ -0,0 +1,1239 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamelift.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamelift.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/gamesparks/endpoint-tests-1.json b/tests/functional/endpoint-rules/gamesparks/endpoint-tests-1.json new file mode 100644 index 00000000..8f446372 --- /dev/null +++ b/tests/functional/endpoint-rules/gamesparks/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamesparks-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamesparks-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamesparks.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamesparks.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamesparks-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamesparks-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://gamesparks.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://gamesparks.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/glacier/endpoint-tests-1.json b/tests/functional/endpoint-rules/glacier/endpoint-tests-1.json new file mode 100644 index 00000000..3ad23225 --- /dev/null +++ b/tests/functional/endpoint-rules/glacier/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glacier.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glacier.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/globalaccelerator/endpoint-tests-1.json b/tests/functional/endpoint-rules/globalaccelerator/endpoint-tests-1.json new file mode 100644 index 00000000..ff1bae97 --- /dev/null +++ b/tests/functional/endpoint-rules/globalaccelerator/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/glue/endpoint-tests-1.json b/tests/functional/endpoint-rules/glue/endpoint-tests-1.json new file mode 100644 index 00000000..7037dbd5 --- /dev/null +++ b/tests/functional/endpoint-rules/glue/endpoint-tests-1.json @@ -0,0 +1,1595 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://glue.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://glue.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/grafana/endpoint-tests-1.json b/tests/functional/endpoint-rules/grafana/endpoint-tests-1.json new file mode 100644 index 00000000..0c4a3e89 --- /dev/null +++ b/tests/functional/endpoint-rules/grafana/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://grafana.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://grafana.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/greengrass/endpoint-tests-1.json b/tests/functional/endpoint-rules/greengrass/endpoint-tests-1.json new file mode 100644 index 00000000..0f483851 --- /dev/null +++ b/tests/functional/endpoint-rules/greengrass/endpoint-tests-1.json @@ -0,0 +1,971 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/greengrassv2/endpoint-tests-1.json b/tests/functional/endpoint-rules/greengrassv2/endpoint-tests-1.json new file mode 100644 index 00000000..9ed8f2ad --- /dev/null +++ b/tests/functional/endpoint-rules/greengrassv2/endpoint-tests-1.json @@ -0,0 +1,971 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://greengrass.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/groundstation/endpoint-tests-1.json b/tests/functional/endpoint-rules/groundstation/endpoint-tests-1.json new file mode 100644 index 00000000..86cc42b2 --- /dev/null +++ b/tests/functional/endpoint-rules/groundstation/endpoint-tests-1.json @@ -0,0 +1,719 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://groundstation.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://groundstation.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/guardduty/endpoint-tests-1.json b/tests/functional/endpoint-rules/guardduty/endpoint-tests-1.json new file mode 100644 index 00000000..6c1f2076 --- /dev/null +++ b/tests/functional/endpoint-rules/guardduty/endpoint-tests-1.json @@ -0,0 +1,1543 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://guardduty.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://guardduty.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/health/endpoint-tests-1.json b/tests/functional/endpoint-rules/health/endpoint-tests-1.json new file mode 100644 index 00000000..9ee74682 --- /dev/null +++ b/tests/functional/endpoint-rules/health/endpoint-tests-1.json @@ -0,0 +1,117 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "health", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://global.health.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://health-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://health-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://health.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://health.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/healthlake/endpoint-tests-1.json b/tests/functional/endpoint-rules/healthlake/endpoint-tests-1.json new file mode 100644 index 00000000..07a5b2ac --- /dev/null +++ b/tests/functional/endpoint-rules/healthlake/endpoint-tests-1.json @@ -0,0 +1,199 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://healthlake-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://healthlake-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://healthlake.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://healthlake.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://healthlake-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://healthlake-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://healthlake.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://healthlake.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://healthlake-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://healthlake-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://healthlake.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://healthlake.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/honeycode/endpoint-tests-1.json b/tests/functional/endpoint-rules/honeycode/endpoint-tests-1.json new file mode 100644 index 00000000..b502cf20 --- /dev/null +++ b/tests/functional/endpoint-rules/honeycode/endpoint-tests-1.json @@ -0,0 +1,95 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://honeycode-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://honeycode-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://honeycode.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://honeycode.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iam/endpoint-tests-1.json b/tests/functional/endpoint-rules/iam/endpoint-tests-1.json new file mode 100644 index 00000000..eebbde02 --- /dev/null +++ b/tests/functional/endpoint-rules/iam/endpoint-tests-1.json @@ -0,0 +1,153 @@ +{ + "testCases": [ + { + "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "cn-north-1", + "signingName": "iam", + "name": "sigv4" + } + ] + }, + "url": "https://iam.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "aws-cn-global", + "UseDualStack": false + } + }, + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "signingName": "iam", + "name": "sigv4" + } + ] + }, + "url": "https://iam.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "aws-global", + "UseDualStack": false + } + }, + { + "documentation": "For region aws-iso-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-iso-east-1", + "signingName": "iam", + "name": "sigv4" + } + ] + }, + "url": "https://iam.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "aws-iso-global", + "UseDualStack": false + } + }, + { + "documentation": "For region aws-iso-b-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-isob-east-1", + "signingName": "iam", + "name": "sigv4" + } + ] + }, + "url": "https://iam.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "aws-iso-b-global", + "UseDualStack": false + } + }, + { + "documentation": "For region aws-us-gov-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-gov-west-1", + "signingName": "iam", + "name": "sigv4" + } + ] + }, + "url": "https://iam.us-gov.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "aws-us-gov-global", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/identitystore/endpoint-tests-1.json b/tests/functional/endpoint-rules/identitystore/endpoint-tests-1.json new file mode 100644 index 00000000..eeddee6f --- /dev/null +++ b/tests/functional/endpoint-rules/identitystore/endpoint-tests-1.json @@ -0,0 +1,823 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://identitystore.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/imagebuilder/endpoint-tests-1.json b/tests/functional/endpoint-rules/imagebuilder/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/imagebuilder/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/importexport/endpoint-tests-1.json b/tests/functional/endpoint-rules/importexport/endpoint-tests-1.json new file mode 100644 index 00000000..4703315c --- /dev/null +++ b/tests/functional/endpoint-rules/importexport/endpoint-tests-1.json @@ -0,0 +1,65 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingRegion": "us-east-1", + "signingName": "IngestionService", + "name": "sigv4" + } + ] + }, + "url": "https://importexport.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "aws-global", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/inspector/endpoint-tests-1.json b/tests/functional/endpoint-rules/inspector/endpoint-tests-1.json new file mode 100644 index 00000000..64db201d --- /dev/null +++ b/tests/functional/endpoint-rules/inspector/endpoint-tests-1.json @@ -0,0 +1,771 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/inspector2/endpoint-tests-1.json b/tests/functional/endpoint-rules/inspector2/endpoint-tests-1.json new file mode 100644 index 00000000..51c0be46 --- /dev/null +++ b/tests/functional/endpoint-rules/inspector2/endpoint-tests-1.json @@ -0,0 +1,1239 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://inspector2.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iot-data/endpoint-tests-1.json b/tests/functional/endpoint-rules/iot-data/endpoint-tests-1.json new file mode 100644 index 00000000..ff50cb00 --- /dev/null +++ b/tests/functional/endpoint-rules/iot-data/endpoint-tests-1.json @@ -0,0 +1,1335 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.iot-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.iot-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.iot-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.iot-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.iot-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.iot-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.iot-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data-ats.iot.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iot-jobs-data/endpoint-tests-1.json b/tests/functional/endpoint-rules/iot-jobs-data/endpoint-tests-1.json new file mode 100644 index 00000000..eaa2a0d6 --- /dev/null +++ b/tests/functional/endpoint-rules/iot-jobs-data/endpoint-tests-1.json @@ -0,0 +1,1283 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.jobs.iot.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iot-roborunner/endpoint-tests-1.json b/tests/functional/endpoint-rules/iot-roborunner/endpoint-tests-1.json new file mode 100644 index 00000000..0225148f --- /dev/null +++ b/tests/functional/endpoint-rules/iot-roborunner/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotroborunner.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iot/endpoint-tests-1.json b/tests/functional/endpoint-rules/iot/endpoint-tests-1.json new file mode 100644 index 00000000..b5f48789 --- /dev/null +++ b/tests/functional/endpoint-rules/iot/endpoint-tests-1.json @@ -0,0 +1,1335 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iot.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iot.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iot1click-devices/endpoint-tests-1.json b/tests/functional/endpoint-rules/iot1click-devices/endpoint-tests-1.json new file mode 100644 index 00000000..5662cf96 --- /dev/null +++ b/tests/functional/endpoint-rules/iot1click-devices/endpoint-tests-1.json @@ -0,0 +1,95 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devices.iot1click-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devices.iot1click-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://devices.iot1click.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://devices.iot1click.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iot1click-projects/endpoint-tests-1.json b/tests/functional/endpoint-rules/iot1click-projects/endpoint-tests-1.json new file mode 100644 index 00000000..570696e1 --- /dev/null +++ b/tests/functional/endpoint-rules/iot1click-projects/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://projects.iot1click.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotanalytics/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotanalytics/endpoint-tests-1.json new file mode 100644 index 00000000..0eca3d1c --- /dev/null +++ b/tests/functional/endpoint-rules/iotanalytics/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotanalytics.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotdeviceadvisor/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotdeviceadvisor/endpoint-tests-1.json new file mode 100644 index 00000000..e390898c --- /dev/null +++ b/tests/functional/endpoint-rules/iotdeviceadvisor/endpoint-tests-1.json @@ -0,0 +1,251 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotdeviceadvisor.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotevents-data/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotevents-data/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/iotevents-data/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotevents/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotevents/endpoint-tests-1.json new file mode 100644 index 00000000..20667b74 --- /dev/null +++ b/tests/functional/endpoint-rules/iotevents/endpoint-tests-1.json @@ -0,0 +1,823 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotevents.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotfleethub/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotfleethub/endpoint-tests-1.json new file mode 100644 index 00000000..19cd4169 --- /dev/null +++ b/tests/functional/endpoint-rules/iotfleethub/endpoint-tests-1.json @@ -0,0 +1,719 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.fleethub.iot.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotfleetwise/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotfleetwise/endpoint-tests-1.json new file mode 100644 index 00000000..5de7311d --- /dev/null +++ b/tests/functional/endpoint-rules/iotfleetwise/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotfleetwise-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotfleetwise-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotfleetwise.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotfleetwise.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotfleetwise-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotfleetwise-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotfleetwise.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotfleetwise.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotsecuretunneling/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotsecuretunneling/endpoint-tests-1.json new file mode 100644 index 00000000..e40f338e --- /dev/null +++ b/tests/functional/endpoint-rules/iotsecuretunneling/endpoint-tests-1.json @@ -0,0 +1,1283 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.tunneling.iot.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotsitewise/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotsitewise/endpoint-tests-1.json new file mode 100644 index 00000000..11785860 --- /dev/null +++ b/tests/functional/endpoint-rules/iotsitewise/endpoint-tests-1.json @@ -0,0 +1,771 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotsitewise.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotthingsgraph/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotthingsgraph/endpoint-tests-1.json new file mode 100644 index 00000000..15340274 --- /dev/null +++ b/tests/functional/endpoint-rules/iotthingsgraph/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iotthingsgraph.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iottwinmaker/endpoint-tests-1.json b/tests/functional/endpoint-rules/iottwinmaker/endpoint-tests-1.json new file mode 100644 index 00000000..e3f5c81f --- /dev/null +++ b/tests/functional/endpoint-rules/iottwinmaker/endpoint-tests-1.json @@ -0,0 +1,355 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://iottwinmaker.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/iotwireless/endpoint-tests-1.json b/tests/functional/endpoint-rules/iotwireless/endpoint-tests-1.json new file mode 100644 index 00000000..294f80d7 --- /dev/null +++ b/tests/functional/endpoint-rules/iotwireless/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.iotwireless.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ivs/endpoint-tests-1.json b/tests/functional/endpoint-rules/ivs/endpoint-tests-1.json new file mode 100644 index 00000000..2b90be08 --- /dev/null +++ b/tests/functional/endpoint-rules/ivs/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivs.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivs.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ivschat/endpoint-tests-1.json b/tests/functional/endpoint-rules/ivschat/endpoint-tests-1.json new file mode 100644 index 00000000..4ed2683a --- /dev/null +++ b/tests/functional/endpoint-rules/ivschat/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ivschat.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ivschat.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kafka/endpoint-tests-1.json b/tests/functional/endpoint-rules/kafka/endpoint-tests-1.json new file mode 100644 index 00000000..19055ee2 --- /dev/null +++ b/tests/functional/endpoint-rules/kafka/endpoint-tests-1.json @@ -0,0 +1,1395 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafka.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafka.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kafkaconnect/endpoint-tests-1.json b/tests/functional/endpoint-rules/kafkaconnect/endpoint-tests-1.json new file mode 100644 index 00000000..a57c8703 --- /dev/null +++ b/tests/functional/endpoint-rules/kafkaconnect/endpoint-tests-1.json @@ -0,0 +1,979 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kafkaconnect.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kendra/endpoint-tests-1.json b/tests/functional/endpoint-rules/kendra/endpoint-tests-1.json new file mode 100644 index 00000000..dd1c238a --- /dev/null +++ b/tests/functional/endpoint-rules/kendra/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/keyspaces/endpoint-tests-1.json b/tests/functional/endpoint-rules/keyspaces/endpoint-tests-1.json new file mode 100644 index 00000000..ce5e0951 --- /dev/null +++ b/tests/functional/endpoint-rules/keyspaces/endpoint-tests-1.json @@ -0,0 +1,1187 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cassandra.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cassandra.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kinesis-video-archived-media/endpoint-tests-1.json b/tests/functional/endpoint-rules/kinesis-video-archived-media/endpoint-tests-1.json new file mode 100644 index 00000000..0be13a6e --- /dev/null +++ b/tests/functional/endpoint-rules/kinesis-video-archived-media/endpoint-tests-1.json @@ -0,0 +1,1279 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kinesis-video-media/endpoint-tests-1.json b/tests/functional/endpoint-rules/kinesis-video-media/endpoint-tests-1.json new file mode 100644 index 00000000..0be13a6e --- /dev/null +++ b/tests/functional/endpoint-rules/kinesis-video-media/endpoint-tests-1.json @@ -0,0 +1,1279 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kinesis-video-signaling/endpoint-tests-1.json b/tests/functional/endpoint-rules/kinesis-video-signaling/endpoint-tests-1.json new file mode 100644 index 00000000..0be13a6e --- /dev/null +++ b/tests/functional/endpoint-rules/kinesis-video-signaling/endpoint-tests-1.json @@ -0,0 +1,1279 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kinesis/endpoint-tests-1.json b/tests/functional/endpoint-rules/kinesis/endpoint-tests-1.json new file mode 100644 index 00000000..04bcecf6 --- /dev/null +++ b/tests/functional/endpoint-rules/kinesis/endpoint-tests-1.json @@ -0,0 +1,1903 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ca-west-1.api.aws" + } + }, + "params": { + "Region": "ca-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ca-west-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ca-west-1.api.aws" + } + }, + "params": { + "Region": "ca-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ca-west-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-5.api.aws" + } + }, + "params": { + "Region": "ap-southeast-5", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.ap-southeast-5.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-5", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-5.api.aws" + } + }, + "params": { + "Region": "ap-southeast-5", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.ap-southeast-5.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-5", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesis.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesis.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kinesisanalytics/endpoint-tests-1.json b/tests/functional/endpoint-rules/kinesisanalytics/endpoint-tests-1.json new file mode 100644 index 00000000..0d76a110 --- /dev/null +++ b/tests/functional/endpoint-rules/kinesisanalytics/endpoint-tests-1.json @@ -0,0 +1,1421 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kinesisanalyticsv2/endpoint-tests-1.json b/tests/functional/endpoint-rules/kinesisanalyticsv2/endpoint-tests-1.json new file mode 100644 index 00000000..e314c198 --- /dev/null +++ b/tests/functional/endpoint-rules/kinesisanalyticsv2/endpoint-tests-1.json @@ -0,0 +1,1421 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisanalytics.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kinesisvideo/endpoint-tests-1.json b/tests/functional/endpoint-rules/kinesisvideo/endpoint-tests-1.json new file mode 100644 index 00000000..0be13a6e --- /dev/null +++ b/tests/functional/endpoint-rules/kinesisvideo/endpoint-tests-1.json @@ -0,0 +1,1279 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kinesisvideo.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/kms/endpoint-tests-1.json b/tests/functional/endpoint-rules/kms/endpoint-tests-1.json new file mode 100644 index 00000000..f45c01f0 --- /dev/null +++ b/tests/functional/endpoint-rules/kms/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://kms.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://kms.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lakeformation/endpoint-tests-1.json b/tests/functional/endpoint-rules/lakeformation/endpoint-tests-1.json new file mode 100644 index 00000000..6e06c4b9 --- /dev/null +++ b/tests/functional/endpoint-rules/lakeformation/endpoint-tests-1.json @@ -0,0 +1,1343 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lakeformation.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lambda/endpoint-tests-1.json b/tests/functional/endpoint-rules/lambda/endpoint-tests-1.json new file mode 100644 index 00000000..8a03f230 --- /dev/null +++ b/tests/functional/endpoint-rules/lambda/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-south-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "af-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-3", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "me-south-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "sa-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-3", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-3", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-4", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-4", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-4", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-4", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lambda.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-northwest-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lambda.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lex-models/endpoint-tests-1.json b/tests/functional/endpoint-rules/lex-models/endpoint-tests-1.json new file mode 100644 index 00000000..f724bc84 --- /dev/null +++ b/tests/functional/endpoint-rules/lex-models/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-fips.lex.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models.lex.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-fips.lex.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models.lex.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-fips.lex.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models.lex.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-fips.lex.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models.lex.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-fips.lex.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models.lex.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-fips.lex.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models.lex.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-fips.lex.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models.lex.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-fips.lex.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models.lex.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-fips.lex.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models.lex.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models.lex.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lex-runtime/endpoint-tests-1.json b/tests/functional/endpoint-rules/lex-runtime/endpoint-tests-1.json new file mode 100644 index 00000000..f1e38e0c --- /dev/null +++ b/tests/functional/endpoint-rules/lex-runtime/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.lex.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.lex.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.lex.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.lex.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.lex.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.lex.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.lex.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.lex.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.lex.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.lex.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lexv2-models/endpoint-tests-1.json b/tests/functional/endpoint-rules/lexv2-models/endpoint-tests-1.json new file mode 100644 index 00000000..0fae5cec --- /dev/null +++ b/tests/functional/endpoint-rules/lexv2-models/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://models-v2-lex.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lexv2-runtime/endpoint-tests-1.json b/tests/functional/endpoint-rules/lexv2-runtime/endpoint-tests-1.json new file mode 100644 index 00000000..8d3107b6 --- /dev/null +++ b/tests/functional/endpoint-rules/lexv2-runtime/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-v2-lex.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/license-manager-user-subscriptions/endpoint-tests-1.json b/tests/functional/endpoint-rules/license-manager-user-subscriptions/endpoint-tests-1.json new file mode 100644 index 00000000..0a5ca591 --- /dev/null +++ b/tests/functional/endpoint-rules/license-manager-user-subscriptions/endpoint-tests-1.json @@ -0,0 +1,1135 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-user-subscriptions.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/license-manager/endpoint-tests-1.json b/tests/functional/endpoint-rules/license-manager/endpoint-tests-1.json new file mode 100644 index 00000000..af7cff56 --- /dev/null +++ b/tests/functional/endpoint-rules/license-manager/endpoint-tests-1.json @@ -0,0 +1,1491 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://license-manager.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://license-manager.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lightsail/endpoint-tests-1.json b/tests/functional/endpoint-rules/lightsail/endpoint-tests-1.json new file mode 100644 index 00000000..0b4e920e --- /dev/null +++ b/tests/functional/endpoint-rules/lightsail/endpoint-tests-1.json @@ -0,0 +1,771 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lightsail.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lightsail.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/location/endpoint-tests-1.json b/tests/functional/endpoint-rules/location/endpoint-tests-1.json new file mode 100644 index 00000000..817d61c1 --- /dev/null +++ b/tests/functional/endpoint-rules/location/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://geo.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://geo.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/logs/endpoint-tests-1.json b/tests/functional/endpoint-rules/logs/endpoint-tests-1.json new file mode 100644 index 00000000..780e73ff --- /dev/null +++ b/tests/functional/endpoint-rules/logs/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://logs.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://logs.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lookoutequipment/endpoint-tests-1.json b/tests/functional/endpoint-rules/lookoutequipment/endpoint-tests-1.json new file mode 100644 index 00000000..22959cce --- /dev/null +++ b/tests/functional/endpoint-rules/lookoutequipment/endpoint-tests-1.json @@ -0,0 +1,199 @@ +{ + "testCases": [ + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutequipment.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lookoutmetrics/endpoint-tests-1.json b/tests/functional/endpoint-rules/lookoutmetrics/endpoint-tests-1.json new file mode 100644 index 00000000..7fb48267 --- /dev/null +++ b/tests/functional/endpoint-rules/lookoutmetrics/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutmetrics.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/lookoutvision/endpoint-tests-1.json b/tests/functional/endpoint-rules/lookoutvision/endpoint-tests-1.json new file mode 100644 index 00000000..30808ca5 --- /dev/null +++ b/tests/functional/endpoint-rules/lookoutvision/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://lookoutvision.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/m2/endpoint-tests-1.json b/tests/functional/endpoint-rules/m2/endpoint-tests-1.json new file mode 100644 index 00000000..3e4cdf49 --- /dev/null +++ b/tests/functional/endpoint-rules/m2/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://m2.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://m2.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/machinelearning/endpoint-tests-1.json b/tests/functional/endpoint-rules/machinelearning/endpoint-tests-1.json new file mode 100644 index 00000000..7f1dfe2c --- /dev/null +++ b/tests/functional/endpoint-rules/machinelearning/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://machinelearning-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://machinelearning-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://machinelearning.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://machinelearning.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://machinelearning-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://machinelearning-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://machinelearning.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://machinelearning.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/macie/endpoint-tests-1.json b/tests/functional/endpoint-rules/macie/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/macie/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/macie2/endpoint-tests-1.json b/tests/functional/endpoint-rules/macie2/endpoint-tests-1.json new file mode 100644 index 00000000..f3d6996a --- /dev/null +++ b/tests/functional/endpoint-rules/macie2/endpoint-tests-1.json @@ -0,0 +1,1135 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://macie2.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://macie2.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/managedblockchain/endpoint-tests-1.json b/tests/functional/endpoint-rules/managedblockchain/endpoint-tests-1.json new file mode 100644 index 00000000..bd1d9433 --- /dev/null +++ b/tests/functional/endpoint-rules/managedblockchain/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/marketplace-catalog/endpoint-tests-1.json b/tests/functional/endpoint-rules/marketplace-catalog/endpoint-tests-1.json new file mode 100644 index 00000000..0dd9c279 --- /dev/null +++ b/tests/functional/endpoint-rules/marketplace-catalog/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://catalog.marketplace.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/marketplace-entitlement/endpoint-tests-1.json b/tests/functional/endpoint-rules/marketplace-entitlement/endpoint-tests-1.json new file mode 100644 index 00000000..a44cedc1 --- /dev/null +++ b/tests/functional/endpoint-rules/marketplace-entitlement/endpoint-tests-1.json @@ -0,0 +1,95 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://entitlement.marketplace.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/marketplacecommerceanalytics/endpoint-tests-1.json b/tests/functional/endpoint-rules/marketplacecommerceanalytics/endpoint-tests-1.json new file mode 100644 index 00000000..2012329b --- /dev/null +++ b/tests/functional/endpoint-rules/marketplacecommerceanalytics/endpoint-tests-1.json @@ -0,0 +1,95 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://marketplacecommerceanalytics-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://marketplacecommerceanalytics-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://marketplacecommerceanalytics.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://marketplacecommerceanalytics.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mediaconnect/endpoint-tests-1.json b/tests/functional/endpoint-rules/mediaconnect/endpoint-tests-1.json new file mode 100644 index 00000000..6128c5c2 --- /dev/null +++ b/tests/functional/endpoint-rules/mediaconnect/endpoint-tests-1.json @@ -0,0 +1,875 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconnect.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mediaconvert/endpoint-tests-1.json b/tests/functional/endpoint-rules/mediaconvert/endpoint-tests-1.json new file mode 100644 index 00000000..feb750dc --- /dev/null +++ b/tests/functional/endpoint-rules/mediaconvert/endpoint-tests-1.json @@ -0,0 +1,1127 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://subscribe.mediaconvert.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediaconvert.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/medialive/endpoint-tests-1.json b/tests/functional/endpoint-rules/medialive/endpoint-tests-1.json new file mode 100644 index 00000000..135f9baf --- /dev/null +++ b/tests/functional/endpoint-rules/medialive/endpoint-tests-1.json @@ -0,0 +1,139 @@ +{ + "testCases": [ + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://medialive.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mediapackage-vod/endpoint-tests-1.json b/tests/functional/endpoint-rules/mediapackage-vod/endpoint-tests-1.json new file mode 100644 index 00000000..d2402a72 --- /dev/null +++ b/tests/functional/endpoint-rules/mediapackage-vod/endpoint-tests-1.json @@ -0,0 +1,919 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-vod.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mediapackage/endpoint-tests-1.json b/tests/functional/endpoint-rules/mediapackage/endpoint-tests-1.json new file mode 100644 index 00000000..90047d31 --- /dev/null +++ b/tests/functional/endpoint-rules/mediapackage/endpoint-tests-1.json @@ -0,0 +1,919 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediapackage.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mediastore-data/endpoint-tests-1.json b/tests/functional/endpoint-rules/mediastore-data/endpoint-tests-1.json new file mode 100644 index 00000000..41b1f691 --- /dev/null +++ b/tests/functional/endpoint-rules/mediastore-data/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://data.mediastore.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mediastore/endpoint-tests-1.json b/tests/functional/endpoint-rules/mediastore/endpoint-tests-1.json new file mode 100644 index 00000000..dedd3ade --- /dev/null +++ b/tests/functional/endpoint-rules/mediastore/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mediastore.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mediastore.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mediatailor/endpoint-tests-1.json b/tests/functional/endpoint-rules/mediatailor/endpoint-tests-1.json new file mode 100644 index 00000000..023676a3 --- /dev/null +++ b/tests/functional/endpoint-rules/mediatailor/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.mediatailor.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/memorydb/endpoint-tests-1.json b/tests/functional/endpoint-rules/memorydb/endpoint-tests-1.json new file mode 100644 index 00000000..e9ba9646 --- /dev/null +++ b/tests/functional/endpoint-rules/memorydb/endpoint-tests-1.json @@ -0,0 +1,979 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://memory-db.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://memory-db.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/meteringmarketplace/endpoint-tests-1.json b/tests/functional/endpoint-rules/meteringmarketplace/endpoint-tests-1.json new file mode 100644 index 00000000..64707c17 --- /dev/null +++ b/tests/functional/endpoint-rules/meteringmarketplace/endpoint-tests-1.json @@ -0,0 +1,1651 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://metering.marketplace.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mgh/endpoint-tests-1.json b/tests/functional/endpoint-rules/mgh/endpoint-tests-1.json new file mode 100644 index 00000000..c99eb4af --- /dev/null +++ b/tests/functional/endpoint-rules/mgh/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgh.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgh.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mgn/endpoint-tests-1.json b/tests/functional/endpoint-rules/mgn/endpoint-tests-1.json new file mode 100644 index 00000000..531244af --- /dev/null +++ b/tests/functional/endpoint-rules/mgn/endpoint-tests-1.json @@ -0,0 +1,1187 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mgn.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mgn.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/migration-hub-refactor-spaces/endpoint-tests-1.json b/tests/functional/endpoint-rules/migration-hub-refactor-spaces/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/migration-hub-refactor-spaces/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/migrationhub-config/endpoint-tests-1.json b/tests/functional/endpoint-rules/migrationhub-config/endpoint-tests-1.json new file mode 100644 index 00000000..b3e69947 --- /dev/null +++ b/tests/functional/endpoint-rules/migrationhub-config/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-config.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/migrationhuborchestrator/endpoint-tests-1.json b/tests/functional/endpoint-rules/migrationhuborchestrator/endpoint-tests-1.json new file mode 100644 index 00000000..3ea3cabe --- /dev/null +++ b/tests/functional/endpoint-rules/migrationhuborchestrator/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-orchestrator.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/migrationhubstrategy/endpoint-tests-1.json b/tests/functional/endpoint-rules/migrationhubstrategy/endpoint-tests-1.json new file mode 100644 index 00000000..c1c74631 --- /dev/null +++ b/tests/functional/endpoint-rules/migrationhubstrategy/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://migrationhub-strategy.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mobile/endpoint-tests-1.json b/tests/functional/endpoint-rules/mobile/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/mobile/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mq/endpoint-tests-1.json b/tests/functional/endpoint-rules/mq/endpoint-tests-1.json new file mode 100644 index 00000000..857a822e --- /dev/null +++ b/tests/functional/endpoint-rules/mq/endpoint-tests-1.json @@ -0,0 +1,1543 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mq.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mq.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mturk/endpoint-tests-1.json b/tests/functional/endpoint-rules/mturk/endpoint-tests-1.json new file mode 100644 index 00000000..729ac685 --- /dev/null +++ b/tests/functional/endpoint-rules/mturk/endpoint-tests-1.json @@ -0,0 +1,95 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mturk-requester-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mturk-requester-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://mturk-requester.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://mturk-requester.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/mwaa/endpoint-tests-1.json b/tests/functional/endpoint-rules/mwaa/endpoint-tests-1.json new file mode 100644 index 00000000..b91aec6e --- /dev/null +++ b/tests/functional/endpoint-rules/mwaa/endpoint-tests-1.json @@ -0,0 +1,1135 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://airflow.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://airflow.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/neptune/endpoint-tests-1.json b/tests/functional/endpoint-rules/neptune/endpoint-tests-1.json new file mode 100644 index 00000000..56a8a41a --- /dev/null +++ b/tests/functional/endpoint-rules/neptune/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/network-firewall/endpoint-tests-1.json b/tests/functional/endpoint-rules/network-firewall/endpoint-tests-1.json new file mode 100644 index 00000000..290c4582 --- /dev/null +++ b/tests/functional/endpoint-rules/network-firewall/endpoint-tests-1.json @@ -0,0 +1,1339 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://network-firewall.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/networkmanager/endpoint-tests-1.json b/tests/functional/endpoint-rules/networkmanager/endpoint-tests-1.json new file mode 100644 index 00000000..b947dfca --- /dev/null +++ b/tests/functional/endpoint-rules/networkmanager/endpoint-tests-1.json @@ -0,0 +1,87 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-west-2" + } + ] + }, + "url": "https://networkmanager.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region aws-us-gov-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "networkmanager", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://networkmanager.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-us-gov-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/nimble/endpoint-tests-1.json b/tests/functional/endpoint-rules/nimble/endpoint-tests-1.json new file mode 100644 index 00000000..e2cd1346 --- /dev/null +++ b/tests/functional/endpoint-rules/nimble/endpoint-tests-1.json @@ -0,0 +1,355 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://nimble.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://nimble.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/oam/endpoint-tests-1.json b/tests/functional/endpoint-rules/oam/endpoint-tests-1.json new file mode 100644 index 00000000..a7d45517 --- /dev/null +++ b/tests/functional/endpoint-rules/oam/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oam-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oam.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oam-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oam.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oam-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oam.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oam.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/omics/endpoint-tests-1.json b/tests/functional/endpoint-rules/omics/endpoint-tests-1.json new file mode 100644 index 00000000..485293e3 --- /dev/null +++ b/tests/functional/endpoint-rules/omics/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://omics-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://omics.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://omics-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://omics.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://omics-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://omics.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://omics.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/opensearch/endpoint-tests-1.json b/tests/functional/endpoint-rules/opensearch/endpoint-tests-1.json new file mode 100644 index 00000000..000cf7fb --- /dev/null +++ b/tests/functional/endpoint-rules/opensearch/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://es.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://es.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/opensearchserverless/endpoint-tests-1.json b/tests/functional/endpoint-rules/opensearchserverless/endpoint-tests-1.json new file mode 100644 index 00000000..c00d2d53 --- /dev/null +++ b/tests/functional/endpoint-rules/opensearchserverless/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://aoss.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/opsworks/endpoint-tests-1.json b/tests/functional/endpoint-rules/opsworks/endpoint-tests-1.json new file mode 100644 index 00000000..fc14e9f8 --- /dev/null +++ b/tests/functional/endpoint-rules/opsworks/endpoint-tests-1.json @@ -0,0 +1,823 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/opsworkscm/endpoint-tests-1.json b/tests/functional/endpoint-rules/opsworkscm/endpoint-tests-1.json new file mode 100644 index 00000000..bd84c839 --- /dev/null +++ b/tests/functional/endpoint-rules/opsworkscm/endpoint-tests-1.json @@ -0,0 +1,511 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://opsworks-cm.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/organizations/endpoint-tests-1.json b/tests/functional/endpoint-rules/organizations/endpoint-tests-1.json new file mode 100644 index 00000000..e85dca79 --- /dev/null +++ b/tests/functional/endpoint-rules/organizations/endpoint-tests-1.json @@ -0,0 +1,109 @@ +{ + "testCases": [ + { + "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://organizations.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "aws-cn-global", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://organizations.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region aws-us-gov-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "organizations", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://organizations.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-us-gov-global", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/outposts/endpoint-tests-1.json b/tests/functional/endpoint-rules/outposts/endpoint-tests-1.json new file mode 100644 index 00000000..120ef8b0 --- /dev/null +++ b/tests/functional/endpoint-rules/outposts/endpoint-tests-1.json @@ -0,0 +1,1387 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://outposts.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/panorama/endpoint-tests-1.json b/tests/functional/endpoint-rules/panorama/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/panorama/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/personalize-events/endpoint-tests-1.json b/tests/functional/endpoint-rules/personalize-events/endpoint-tests-1.json new file mode 100644 index 00000000..0a11fb3a --- /dev/null +++ b/tests/functional/endpoint-rules/personalize-events/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/personalize-runtime/endpoint-tests-1.json b/tests/functional/endpoint-rules/personalize-runtime/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/personalize-runtime/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/personalize/endpoint-tests-1.json b/tests/functional/endpoint-rules/personalize/endpoint-tests-1.json new file mode 100644 index 00000000..5f7559a8 --- /dev/null +++ b/tests/functional/endpoint-rules/personalize/endpoint-tests-1.json @@ -0,0 +1,667 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://personalize.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://personalize.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/pi/endpoint-tests-1.json b/tests/functional/endpoint-rules/pi/endpoint-tests-1.json new file mode 100644 index 00000000..f14a3cd0 --- /dev/null +++ b/tests/functional/endpoint-rules/pi/endpoint-tests-1.json @@ -0,0 +1,1499 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pi.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pi.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/pinpoint-email/endpoint-tests-1.json b/tests/functional/endpoint-rules/pinpoint-email/endpoint-tests-1.json new file mode 100644 index 00000000..f2f73388 --- /dev/null +++ b/tests/functional/endpoint-rules/pinpoint-email/endpoint-tests-1.json @@ -0,0 +1,1239 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/pinpoint-sms-voice-v2/endpoint-tests-1.json b/tests/functional/endpoint-rules/pinpoint-sms-voice-v2/endpoint-tests-1.json new file mode 100644 index 00000000..1663974f --- /dev/null +++ b/tests/functional/endpoint-rules/pinpoint-sms-voice-v2/endpoint-tests-1.json @@ -0,0 +1,1135 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/pinpoint-sms-voice/endpoint-tests-1.json b/tests/functional/endpoint-rules/pinpoint-sms-voice/endpoint-tests-1.json new file mode 100644 index 00000000..c5475f44 --- /dev/null +++ b/tests/functional/endpoint-rules/pinpoint-sms-voice/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/pinpoint/endpoint-tests-1.json b/tests/functional/endpoint-rules/pinpoint/endpoint-tests-1.json new file mode 100644 index 00000000..66881a4f --- /dev/null +++ b/tests/functional/endpoint-rules/pinpoint/endpoint-tests-1.json @@ -0,0 +1,719 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pinpoint.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/pipes/endpoint-tests-1.json b/tests/functional/endpoint-rules/pipes/endpoint-tests-1.json new file mode 100644 index 00000000..6fbff86a --- /dev/null +++ b/tests/functional/endpoint-rules/pipes/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pipes-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pipes.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pipes-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pipes.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pipes-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://pipes.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://pipes.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/polly/endpoint-tests-1.json b/tests/functional/endpoint-rules/polly/endpoint-tests-1.json new file mode 100644 index 00000000..c016bb9d --- /dev/null +++ b/tests/functional/endpoint-rules/polly/endpoint-tests-1.json @@ -0,0 +1,1135 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://polly.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://polly.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/pricing/endpoint-tests-1.json b/tests/functional/endpoint-rules/pricing/endpoint-tests-1.json new file mode 100644 index 00000000..21666036 --- /dev/null +++ b/tests/functional/endpoint-rules/pricing/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/privatenetworks/endpoint-tests-1.json b/tests/functional/endpoint-rules/privatenetworks/endpoint-tests-1.json new file mode 100644 index 00000000..9a44c67e --- /dev/null +++ b/tests/functional/endpoint-rules/privatenetworks/endpoint-tests-1.json @@ -0,0 +1,199 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://private-networks-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://private-networks.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://private-networks-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://private-networks.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://private-networks-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://private-networks.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://private-networks.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/proton/endpoint-tests-1.json b/tests/functional/endpoint-rules/proton/endpoint-tests-1.json new file mode 100644 index 00000000..2d0f6f89 --- /dev/null +++ b/tests/functional/endpoint-rules/proton/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ca-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-central-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-2", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "eu-west-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-northeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-1", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "ap-southeast-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://proton.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://proton.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-2", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/qldb-session/endpoint-tests-1.json b/tests/functional/endpoint-rules/qldb-session/endpoint-tests-1.json new file mode 100644 index 00000000..5a7ce3ae --- /dev/null +++ b/tests/functional/endpoint-rules/qldb-session/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://session.qldb.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/qldb/endpoint-tests-1.json b/tests/functional/endpoint-rules/qldb/endpoint-tests-1.json new file mode 100644 index 00000000..ca88b428 --- /dev/null +++ b/tests/functional/endpoint-rules/qldb/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://qldb.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://qldb.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/quicksight/endpoint-tests-1.json b/tests/functional/endpoint-rules/quicksight/endpoint-tests-1.json new file mode 100644 index 00000000..1052d559 --- /dev/null +++ b/tests/functional/endpoint-rules/quicksight/endpoint-tests-1.json @@ -0,0 +1,1031 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://quicksight.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://quicksight.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ram/endpoint-tests-1.json b/tests/functional/endpoint-rules/ram/endpoint-tests-1.json new file mode 100644 index 00000000..e8cb891e --- /dev/null +++ b/tests/functional/endpoint-rules/ram/endpoint-tests-1.json @@ -0,0 +1,1591 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ram.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ram.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/rbin/endpoint-tests-1.json b/tests/functional/endpoint-rules/rbin/endpoint-tests-1.json new file mode 100644 index 00000000..28b11282 --- /dev/null +++ b/tests/functional/endpoint-rules/rbin/endpoint-tests-1.json @@ -0,0 +1,1603 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rbin.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rbin.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/rds-data/endpoint-tests-1.json b/tests/functional/endpoint-rules/rds-data/endpoint-tests-1.json new file mode 100644 index 00000000..d4877791 --- /dev/null +++ b/tests/functional/endpoint-rules/rds-data/endpoint-tests-1.json @@ -0,0 +1,771 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-data.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-data.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/rds/endpoint-tests-1.json b/tests/functional/endpoint-rules/rds/endpoint-tests-1.json new file mode 100644 index 00000000..00e356bc --- /dev/null +++ b/tests/functional/endpoint-rules/rds/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rds.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/redshift-data/endpoint-tests-1.json b/tests/functional/endpoint-rules/redshift-data/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/redshift-data/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/redshift-serverless/endpoint-tests-1.json b/tests/functional/endpoint-rules/redshift-serverless/endpoint-tests-1.json new file mode 100644 index 00000000..46367910 --- /dev/null +++ b/tests/functional/endpoint-rules/redshift-serverless/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-serverless.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/redshift/endpoint-tests-1.json b/tests/functional/endpoint-rules/redshift/endpoint-tests-1.json new file mode 100644 index 00000000..548d47b2 --- /dev/null +++ b/tests/functional/endpoint-rules/redshift/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://redshift.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://redshift.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/rekognition/endpoint-tests-1.json b/tests/functional/endpoint-rules/rekognition/endpoint-tests-1.json new file mode 100644 index 00000000..090b6215 --- /dev/null +++ b/tests/functional/endpoint-rules/rekognition/endpoint-tests-1.json @@ -0,0 +1,771 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rekognition.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/resiliencehub/endpoint-tests-1.json b/tests/functional/endpoint-rules/resiliencehub/endpoint-tests-1.json new file mode 100644 index 00000000..dd7a4640 --- /dev/null +++ b/tests/functional/endpoint-rules/resiliencehub/endpoint-tests-1.json @@ -0,0 +1,1083 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resiliencehub.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/resource-explorer-2/endpoint-tests-1.json b/tests/functional/endpoint-rules/resource-explorer-2/endpoint-tests-1.json new file mode 100644 index 00000000..c2a5887f --- /dev/null +++ b/tests/functional/endpoint-rules/resource-explorer-2/endpoint-tests-1.json @@ -0,0 +1,1175 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-explorer-2.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/resource-groups/endpoint-tests-1.json b/tests/functional/endpoint-rules/resource-groups/endpoint-tests-1.json new file mode 100644 index 00000000..dc8f8be6 --- /dev/null +++ b/tests/functional/endpoint-rules/resource-groups/endpoint-tests-1.json @@ -0,0 +1,1495 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://resource-groups.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/resourcegroupstaggingapi/endpoint-tests-1.json b/tests/functional/endpoint-rules/resourcegroupstaggingapi/endpoint-tests-1.json new file mode 100644 index 00000000..4f0be0b6 --- /dev/null +++ b/tests/functional/endpoint-rules/resourcegroupstaggingapi/endpoint-tests-1.json @@ -0,0 +1,1751 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://tagging.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://tagging.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/robomaker/endpoint-tests-1.json b/tests/functional/endpoint-rules/robomaker/endpoint-tests-1.json new file mode 100644 index 00000000..e3f836ea --- /dev/null +++ b/tests/functional/endpoint-rules/robomaker/endpoint-tests-1.json @@ -0,0 +1,459 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://robomaker.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://robomaker.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/rolesanywhere/endpoint-tests-1.json b/tests/functional/endpoint-rules/rolesanywhere/endpoint-tests-1.json new file mode 100644 index 00000000..1c30d417 --- /dev/null +++ b/tests/functional/endpoint-rules/rolesanywhere/endpoint-tests-1.json @@ -0,0 +1,1187 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rolesanywhere.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/route53-recovery-cluster/endpoint-tests-1.json b/tests/functional/endpoint-rules/route53-recovery-cluster/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/route53-recovery-cluster/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/route53-recovery-control-config/endpoint-tests-1.json b/tests/functional/endpoint-rules/route53-recovery-control-config/endpoint-tests-1.json new file mode 100644 index 00000000..b15e074b --- /dev/null +++ b/tests/functional/endpoint-rules/route53-recovery-control-config/endpoint-tests-1.json @@ -0,0 +1,65 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "route53-recovery-control-config", + "signingRegion": "us-west-2" + } + ] + }, + "url": "https://route53-recovery-control-config.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/route53-recovery-readiness/endpoint-tests-1.json b/tests/functional/endpoint-rules/route53-recovery-readiness/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/route53-recovery-readiness/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/route53/endpoint-tests-1.json b/tests/functional/endpoint-rules/route53/endpoint-tests-1.json new file mode 100644 index 00000000..2a15c026 --- /dev/null +++ b/tests/functional/endpoint-rules/route53/endpoint-tests-1.json @@ -0,0 +1,153 @@ +{ + "testCases": [ + { + "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "route53", + "signingRegion": "cn-northwest-1" + } + ] + }, + "url": "https://route53.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "aws-cn-global", + "UseFIPS": false + } + }, + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "route53", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://route53.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "aws-global", + "UseFIPS": false + } + }, + { + "documentation": "For region aws-iso-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "route53", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://route53.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "aws-iso-global", + "UseFIPS": false + } + }, + { + "documentation": "For region aws-iso-b-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "route53", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://route53.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "aws-iso-b-global", + "UseFIPS": false + } + }, + { + "documentation": "For region aws-us-gov-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "route53", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://route53.us-gov.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "aws-us-gov-global", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/route53domains/endpoint-tests-1.json b/tests/functional/endpoint-rules/route53domains/endpoint-tests-1.json new file mode 100644 index 00000000..260bcf6f --- /dev/null +++ b/tests/functional/endpoint-rules/route53domains/endpoint-tests-1.json @@ -0,0 +1,95 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53domains-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53domains-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53domains.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53domains.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/route53resolver/endpoint-tests-1.json b/tests/functional/endpoint-rules/route53resolver/endpoint-tests-1.json new file mode 100644 index 00000000..29c85096 --- /dev/null +++ b/tests/functional/endpoint-rules/route53resolver/endpoint-tests-1.json @@ -0,0 +1,1591 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://route53resolver.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/rum/endpoint-tests-1.json b/tests/functional/endpoint-rules/rum/endpoint-tests-1.json new file mode 100644 index 00000000..bf22fcfd --- /dev/null +++ b/tests/functional/endpoint-rules/rum/endpoint-tests-1.json @@ -0,0 +1,563 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://rum.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://rum.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/s3/endpoint-tests-1.json b/tests/functional/endpoint-rules/s3/endpoint-tests-1.json new file mode 100644 index 00000000..e0ce3c35 --- /dev/null +++ b/tests/functional/endpoint-rules/s3/endpoint-tests-1.json @@ -0,0 +1,6457 @@ +{ + "testCases": [ + { + "documentation": "region is not a valid DNS-suffix", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Region": "a b", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "Invalid access point ARN: Not S3", + "expect": { + "error": "Invalid ARN: The ARN was not for the S3 service, found: not-s3" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Invalid access point ARN: invalid resource", + "expect": { + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data" + } + }, + { + "documentation": "Invalid access point ARN: invalid no ap name", + "expect": { + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:" + } + }, + { + "documentation": "Invalid access point ARN: AccountId is invalid", + "expect": { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123456_789012`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456_789012:accesspoint:apname", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456_789012:accesspoint:apname" + } + }, + { + "documentation": "Invalid access point ARN: access point name is invalid", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `ap_name`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name" + } + }, + { + "documentation": "Access points (disable access points explicitly false)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Access points: partition does not support FIPS", + "expect": { + "error": "Partition does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Bucket region is invalid", + "expect": { + "error": "Invalid region in ARN: `us-west -2` (invalid DNS name)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Access points when Access points explicitly disabled (used for CreateBucket)", + "expect": { + "error": "Access points are not supported for this operation" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": true, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "missing arn type", + "expect": { + "error": "Invalid ARN: `arn:aws:s3:us-west-2:123456789012:` was not a valid ARN" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": true, + "Bucket": "arn:aws:s3:us-west-2:123456789012:" + } + }, + { + "documentation": "SDK::Host + access point + Dualstack is an error", + "expect": { + "error": "DualStack cannot be combined with a Host override (PrivateLink)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "Access point ARN with FIPS & Dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Access point ARN with Dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "vanilla MRAP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mfzwi23gnjvgw.mrap.accesspoint.s3-global.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "MRAP does not support FIPS", + "expect": { + "error": "S3 MRAP does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "MRAP does not support DualStack", + "expect": { + "error": "S3 MRAP does not support dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "MRAP does not support S3 Accelerate", + "expect": { + "error": "S3 MRAP does not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "MRAP explicitly disabled", + "expect": { + "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::DisableMultiRegionAccessPoints": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "Dual-stack endpoint with path-style forced", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucketname" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucketname", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucketname", + "Region": "us-west-2", + "ForcePathStyle": true, + "UseFIPS": false, + "Accelerate": false, + "UseDualStack": true + } + }, + { + "documentation": "Dual-stack endpoint + SDK::Host is error", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://abc.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucketname", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucketname", + "Region": "us-west-2", + "ForcePathStyle": true, + "UseFIPS": false, + "Accelerate": false, + "UseDualStack": true, + "Endpoint": "https://abc.com" + } + }, + { + "documentation": "path style + ARN bucket", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "implicit path style bucket + dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com/99_ab" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99_ab", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "implicit path style bucket + dualstack", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "http://abc.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99_ab", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "http://abc.com" + } + }, + { + "documentation": "don't allow URL injections in the bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/example.com%23" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "example.com#", + "Key": "key" + } + } + ], + "params": { + "Bucket": "example.com#", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "Accelerate": false + } + }, + { + "documentation": "URI encode bucket names in the path", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/bucket%20name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket name", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucket name", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "Accelerate": false + } + }, + { + "documentation": "scheme is respected", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab" + } + }, + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "scheme is respected (virtual addressing)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://bucketname.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo" + } + }, + "params": { + "Accelerate": false, + "Bucket": "bucketname", + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + implicit private link", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99_ab", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "invalid Endpoint override", + "expect": { + "error": "Custom endpoint `abcde://nota#url` was not a valid URI" + }, + "params": { + "Accelerate": false, + "Bucket": "bucketname", + "Endpoint": "abcde://nota#url", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "using an IPv4 address forces path style", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://123.123.0.1/bucketname" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://123.123.0.1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucketname", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucketname", + "Endpoint": "https://123.123.0.1", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla access point arn with region mismatch and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla access point arn with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla access point arn with region mismatch and UseArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "UseArnRegion": true, + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "subdomains are not allowed in virtual buckets", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.us-east-1.amazonaws.com/bucket.name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket.name", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucket.name", + "Region": "us-east-1" + } + }, + { + "documentation": "bucket names with 3 characters are allowed in virtual buckets", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://aaa.s3.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "aaa", + "Key": "key" + } + } + ], + "params": { + "Bucket": "aaa", + "Region": "us-east-1" + } + }, + { + "documentation": "bucket names with fewer than 3 characters are not allowed in virtual host", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.us-east-1.amazonaws.com/aa" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "aa", + "Key": "key" + } + } + ], + "params": { + "Bucket": "aa", + "Region": "us-east-1" + } + }, + { + "documentation": "bucket names with uppercase characters are not allowed in virtual host", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.us-east-1.amazonaws.com/BucketName" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "BucketName", + "Key": "key" + } + } + ], + "params": { + "Bucket": "BucketName", + "Region": "us-east-1" + } + }, + { + "documentation": "subdomains are allowed in virtual buckets on http endpoints", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://bucket.name.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "http://example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket.name", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucket.name", + "Region": "us-east-1", + "Endpoint": "http://example.com" + } + }, + { + "documentation": "no region set", + "expect": { + "error": "A region must be set when sending requests to S3." + }, + "params": { + "Bucket": "bucket-name" + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1 uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-west-2 uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-west-2", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=cn-north-1 uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "cn-north-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1, fips=true uses the regional endpoint with fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1, dualstack=true uses the regional endpoint with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1, dualstack and fips uses the regional endpoint with fips/dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1 with custom endpoint, uses custom", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-west-2 with custom endpoint, uses custom", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-west-2", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1 with accelerate on non bucket case uses the global endpoint and ignores accelerate", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "aws-global region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global" + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with fips uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with dualstack uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseDualStack": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with fips and dualstack uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with accelerate on non-bucket case, uses global endpoint and ignores accelerate", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::Accelerate": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "aws-global region with custom endpoint, uses custom", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "SDK::Endpoint": "https://example.com" + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": false, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with fips uses the regional fips endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with dualstack uses the regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with fips/dualstack uses the regional fips/dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with accelerate uses the global accelerate endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "virtual addressing, aws-global region with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "SDK::Endpoint": "https://example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Endpoint": "https://example.com", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-west-2 region uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and fips uses the regional fips endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and dualstack uses the regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and accelerate uses the global accelerate endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region with fips is invalid", + "expect": { + "error": "Path-style addressing cannot be used with FIPS" + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region with dualstack uses regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region custom endpoint uses the custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "SDK::Endpoint": "https://example.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Endpoint": "https://example.com", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "bucket-name", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-west-2 region uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "bucket-name", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region, dualstack uses the regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "bucket-name", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region custom endpoint uses the custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "bucket-name", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ARN with aws-global region and UseArnRegion uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseArnRegion": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "cross partition MRAP ARN is an error", + "expect": { + "error": "Client was configured for partition `aws` but bucket referred to partition `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-west-1" + } + }, + { + "documentation": "Endpoint override, accesspoint with HTTP, port", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://myendpoint-123456789012.beta.example.com:1234" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "http://beta.example.com:1234" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Endpoint": "http://beta.example.com:1234", + "Region": "us-west-2", + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Endpoint override, accesspoint with http, path, query, and port", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://myendpoint-123456789012.beta.example.com:1234/path" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "vanilla virtual addressing@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate + dualstack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate (dualstack=false)@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + fips@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack + fips@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "accelerate + fips = error@us-west-2", + "expect": { + "error": "Accelerate cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "vanilla virtual addressing@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate (dualstack=false)@cn-north-1", + "expect": { + "error": "S3 Accelerate cannot be used in this region" + }, + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + fips@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "vanilla virtual addressing@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate + dualstack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate (dualstack=false)@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + fips@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack + fips@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.dualstack.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "accelerate + fips = error@af-south-1", + "expect": { + "error": "Accelerate cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "vanilla path style@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + fips@us-west-2", + "expect": { + "error": "Path-style addressing cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "path style + accelerate = error@us-west-2", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + dualstack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + arn is error@us-west-2", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": true, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + invalid DNS name@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "no path style + invalid DNS name@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla path style@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + fips@cn-north-1", + "expect": { + "error": "Path-style addressing cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "path style + accelerate = error@cn-north-1", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + dualstack@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.cn-north-1.amazonaws.com.cn/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + arn is error@cn-north-1", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": true, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + invalid DNS name@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "no path style + invalid DNS name@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla path style@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.af-south-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + fips@af-south-1", + "expect": { + "error": "Path-style addressing cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "path style + accelerate = error@af-south-1", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + dualstack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.af-south-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + arn is error@af-south-1", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": true, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + invalid DNS name@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.af-south-1.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "no path style + invalid DNS name@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.af-south-1.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + private link@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + private link@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + FIPS@us-west-2", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + DualStack@us-west-2", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::HOST + accelerate@us-west-2", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + access point ARN@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + private link@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + private link@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + FIPS@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "SDK::Host + DualStack@cn-north-1", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::HOST + accelerate@cn-north-1", + "expect": { + "error": "S3 Accelerate cannot be used in this region" + }, + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "SDK::Host + access point ARN@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + private link@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + private link@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + FIPS@af-south-1", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + DualStack@af-south-1", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::HOST + accelerate@af-south-1", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + access point ARN@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla access point arn@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "access point arn + accelerate = error@us-west-2", + "expect": { + "error": "Access Points do not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS + DualStack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "vanilla access point arn@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "access point arn + accelerate = error@cn-north-1", + "expect": { + "error": "Access Points do not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS + DualStack@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "vanilla access point arn@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "access point arn + accelerate = error@af-south-1", + "expect": { + "error": "Access Points do not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS + DualStack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "S3 outposts vanilla test", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.example.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://example.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Endpoint": "https://example.amazonaws.com" + } + }, + { + "documentation": "outposts arn with region mismatch and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "outposts arn with region mismatch, custom region and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "https://example.com", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "outposts arn with region mismatch and UseArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "UseArnRegion": true, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "outposts arn with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "outposts arn with partition mismatch and UseArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN (`arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint`) has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "UseArnRegion": true, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "ARN with UseGlobalEndpoint and use-east-1 region uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts does not support dualstack", + "expect": { + "error": "S3 Outposts does not support Dual-stack" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts does not support fips", + "expect": { + "error": "S3 Outposts does not support FIPS" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts does not support accelerate", + "expect": { + "error": "S3 Outposts does not support S3 Accelerate" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "validates against subresource", + "expect": { + "error": "Invalid Arn: Outpost Access Point ARN contains sub resources" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:mybucket:object:foo" + } + }, + { + "documentation": "object lambda @us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda, colon resource deliminator @us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region us-west-2, useArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region s3-external-1, useArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "s3-external-1", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "s3-external-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region s3-external-1, useArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `s3-external-1` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "s3-external-1", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "s3-external-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region aws-global, useArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region aws-global, useArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `aws-global` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @cn-north-1, client region us-west-2 (cross partition), useArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN (`arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner`) has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with dualstack", + "expect": { + "error": "S3 Object Lambda does not support Dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-gov-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-gov-east-1, with fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @cn-north-1, with fips", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with accelerate", + "expect": { + "error": "S3 Object Lambda does not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::Accelerate": true, + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with invalid arn - bad service and someresource", + "expect": { + "error": "Invalid ARN: Unrecognized format: arn:aws:sqs:us-west-2:123456789012:someresource (type: someresource)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:sqs:us-west-2:123456789012:someresource", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:sqs:us-west-2:123456789012:someresource" + } + }, + { + "documentation": "object lambda with invalid arn - invalid resource", + "expect": { + "error": "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `bucket_name`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:bucket_name:mybucket" + } + }, + { + "documentation": "object lambda with invalid arn - missing region", + "expect": { + "error": "Invalid ARN: bucket ARN is missing a region" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda::123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with invalid arn - missing account-id", + "expect": { + "error": "Invalid ARN: Missing account id" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2::accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with invalid arn - account id contains invalid characters", + "expect": { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123.45678.9012`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket" + } + }, + { + "documentation": "object lambda with invalid arn - missing access point name", + "expect": { + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint" + } + }, + { + "documentation": "object lambda with invalid arn - access point name contains invalid character: *", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `*`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:*" + } + }, + { + "documentation": "object lambda with invalid arn - access point name contains invalid character: .", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `my.bucket`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:my.bucket" + } + }, + { + "documentation": "object lambda with invalid arn - access point name contains sub resources", + "expect": { + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`." + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybucket:object:foo" + } + }, + { + "documentation": "object lambda with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.my-endpoint.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://my-endpoint.com", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Endpoint": "https://my-endpoint.com" + } + }, + { + "documentation": "object lambda arn with region mismatch and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "WriteGetObjectResponse @ us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-object-lambda.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://my-endpoint.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://my-endpoint.com" + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Endpoint": "https://my-endpoint.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-object-lambda-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "WriteGetObjectResponse with dualstack", + "expect": { + "error": "S3 Object Lambda does not support Dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with accelerate", + "expect": { + "error": "S3 Object Lambda does not support S3 Accelerate" + }, + "params": { + "Accelerate": true, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with fips in CN", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Region": "cn-north-1", + "UseObjectLambdaEndpoint": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "WriteGetObjectResponse with invalid partition", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "not a valid DNS name", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with an unknown partition", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": true, + "signingRegion": "us-east.special" + } + ] + }, + "url": "https://s3-object-lambda.us-east.special.amazonaws.com" + } + }, + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east.special", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "S3 Outposts Abba Real Outpost Prod us-west-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts Abba Real Outpost Prod ap-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "ap-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts Abba Ec2 Outpost Prod us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts Abba Ec2 Outpost Prod me-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "me-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "Bucket": "test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts Abba Real Outpost Beta", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3.op-0b1d075431d83bebd.example.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3", + "Endpoint": "https://example.amazonaws.com", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts Abba Ec2 Outpost Beta", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3.ec2.example.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "Bucket": "161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3", + "Endpoint": "https://example.amazonaws.com", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts Abba - No endpoint set for beta", + "expect": { + "error": "Expected a endpoint to be specified but no endpoint was found" + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts Abba Invalid hardware type", + "expect": { + "error": "Unrecognized hardware type: \"Expected hardware type o or e but got h\"" + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-h0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Outposts Abba Special character in Outpost Arn", + "expect": { + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`." + }, + "params": { + "Region": "us-east-1", + "Bucket": "test-accessp-o00000754%1d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/s3control/endpoint-tests-1.json b/tests/functional/endpoint-rules/s3control/endpoint-tests-1.json new file mode 100644 index 00000000..52b802a3 --- /dev/null +++ b/tests/functional/endpoint-rules/s3control/endpoint-tests-1.json @@ -0,0 +1,3393 @@ +{ + "testCases": [ + { + "documentation": "Vanilla outposts without ARN region + access point ARN@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Vanilla outposts with ARN region + access point ARN@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "accept an access point ARN@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla outposts china@cn-north-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "gov region@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "gov cloud with fips@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "govcloud with fips + arn region@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "gov region@cn-north-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "gov cloud with fips@cn-north-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "govcloud with fips + arn region@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "gov region@af-south-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "gov cloud with fips@af-south-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "govcloud with fips + arn region@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "CreateBucket + OutpostId = outposts endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "blah", + "OutpostId": "123" + } + } + ], + "params": { + "Bucket": "blah", + "Operation": "CreateBucket", + "OutpostId": "123", + "Region": "us-east-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "CreateBucket + OutpostId with fips = outposts endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "blah", + "OutpostId": "123" + } + } + ], + "params": { + "Bucket": "blah", + "Operation": "CreateBucket", + "OutpostId": "123", + "Region": "us-east-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "CreateBucket without OutpostId = regular endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "blah" + } + } + ], + "params": { + "Bucket": "blah", + "Operation": "CreateBucket", + "Region": "us-east-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBuckets + OutpostId = outposts endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123", + "OutpostId": "op-123" + } + } + ], + "params": { + "AccountId": "123", + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBuckets without OutpostId = regular endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://123.s3-control.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123" + } + } + ], + "params": { + "AccountId": "123", + "Operation": "ListRegionalBuckets", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBucket + OutpostId with fips = outposts endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123", + "OutpostId": "op-123" + } + } + ], + "params": { + "AccountId": "123", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "outpost access points do not support dualstack@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost Access Points do not support dual-stack" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "outpost access points do not support dualstack@cn-north-1", + "expect": { + "error": "Invalid configuration: Outpost Access Points do not support dual-stack" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "outpost access points do not support dualstack@af-south-1", + "expect": { + "error": "Invalid configuration: Outpost Access Points do not support dual-stack" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "invalid ARN: must be include outpost ID@us-west-2", + "expect": { + "error": "Invalid ARN: The Outpost Id was not set" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "invalid ARN: must specify access point@us-west-2", + "expect": { + "error": "Invalid ARN: Expected a 4-component resource" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "invalid ARN@us-west-2", + "expect": { + "error": "Invalid ARN: Expected a 4-component resource" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:myaccesspoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "when set, AccountId drives AP construction@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myid-1234.s3-control.us-west-2.amazonaws.com" + } + }, + "params": { + "AccessPointName": "myaccesspoint", + "AccountId": "myid-1234", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Account ID set inline and in ARN but they both match@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "GetAccessPoint", + "operationParams": { + "AccountId": "123456789012", + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Account ID set inline and in ARN and they do not match@us-west-2", + "expect": { + "error": "Invalid ARN: the accountId specified in the ARN (`123456789012`) does not match the parameter (`9999999`)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "GetAccessPoint", + "operationParams": { + "AccountId": "9999999", + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "9999999", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "get access point prefixed with account id using endpoint url@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://123456789012.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "AccountId": "123456789012", + "Name": "apname" + } + } + ], + "params": { + "AccessPointName": "apname", + "AccountId": "123456789012", + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "endpoint url with s3-outposts@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Endpoint": "https://beta.example.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point name with a bucket arn@us-west-2", + "expect": { + "error": "Expected an outpost type `accesspoint`, found `bucket`" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Endpoint": "beta.example.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket arn with access point name@us-west-2", + "expect": { + "error": "Invalid ARN: Expected an outpost type `bucket`, found `accesspoint`" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "beta.example.com", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "create bucket with outposts@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "params": { + "Bucket": "bucketname", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-west-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "get bucket with endpoint_url@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Endpoint": "https://beta.example.com", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBucket + OutpostId endpoint url@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123", + "OutpostId": "op-123" + } + } + ], + "params": { + "AccountId": "123", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBucket + OutpostId + fips + endpoint url@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123", + "OutpostId": "op-123" + } + } + ], + "params": { + "AccountId": "123", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "CreateBucket + OutpostId endpoint url@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "blah", + "OutpostId": "123" + } + } + ], + "params": { + "Bucket": "blah", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "123", + "Region": "us-east-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "dualstack cannot be used with outposts when an endpoint URL is set@us-west-2.", + "expect": { + "error": "Invalid configuration: Outpost Access Points do not support dual-stack" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "https://beta.example.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "Dual-stack cannot be used with outposts@us-west-2", + "expect": { + "error": "Invalid configuration: Outposts do not support dual-stack" + }, + "params": { + "Bucket": "bucketname", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-west-2", + "RequiresAccountId": false, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "vanilla bucket arn requires account id@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "CreateAccessPoint", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Name": "apname" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "__name": "apname" + } + }, + { + "documentation": "bucket arn with UseArnRegion = true (arn region supercedes client configured region)@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition (non-fips)@us-gov-east-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-east-1" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition with FIPS@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-west-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-west-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "bucket ARN in aws partition with FIPS@us-east-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "Outposts do not support dualstack@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost buckets do not support dual-stack" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "vanilla bucket arn requires account id@cn-north-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "CreateAccessPoint", + "operationParams": { + "Bucket": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Name": "apname" + } + } + ], + "params": { + "Bucket": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "__name": "apname" + } + }, + { + "documentation": "bucket arn with UseArnRegion = true (arn region supercedes client configured region)@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition (non-fips)@us-gov-east-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-east-1" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition with FIPS@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-west-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-west-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "bucket ARN in aws partition with FIPS@us-east-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "Outposts do not support dualstack@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost buckets do not support dual-stack" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "vanilla bucket arn requires account id@af-south-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "CreateAccessPoint", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Name": "apname" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "__name": "apname" + } + }, + { + "documentation": "bucket arn with UseArnRegion = true (arn region supercedes client configured region)@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition (non-fips)@us-gov-east-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-east-1" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition with FIPS@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-west-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-west-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "bucket ARN in aws partition with FIPS@us-east-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "Outposts do not support dualstack@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost buckets do not support dual-stack" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "Invalid ARN: missing outpost id and bucket@us-west-2", + "expect": { + "error": "Invalid ARN: The Outpost Id was not set" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Invalid ARN: missing bucket@us-west-2", + "expect": { + "error": "Invalid ARN: Expected a 4-component resource" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Invalid ARN: missing outpost and bucket ids@us-west-2", + "expect": { + "error": "Invalid ARN: Expected a 4-component resource" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:bucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Invalid ARN: missing bucket id@us-west-2", + "expect": { + "error": "Invalid ARN: expected a bucket name" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "account id inserted into hostname@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890.s3-control.us-west-2.amazonaws.com" + } + }, + "params": { + "AccountId": "1234567890", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "account id prefix with dualstack@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890.s3-control.dualstack.us-east-1.amazonaws.com" + } + }, + "params": { + "AccountId": "1234567890", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "account id prefix with fips@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890.s3-control-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "AccountId": "1234567890", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "custom account id prefix with fips@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.s3-control-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "standard url @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1" + } + }, + { + "documentation": "fips url @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "dualstack url @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control.dualstack.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "fips,dualstack url @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "standard url @ cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1" + } + }, + { + "documentation": "fips @ cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "custom account id prefix @us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.s3-control.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "invalid account id prefix @us-east-1", + "expect": { + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "/?invalid¬-host*label" + } + } + ], + "params": { + "AccountId": "/?invalid¬-host*label", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "custom account id prefix with fips@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.s3-control-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "custom account id prefix with dualstack,fips@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.s3-control-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "custom account id with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "RequiresAccountId with AccountId unset", + "expect": { + "error": "AccountId is required but not set" + }, + "params": { + "Region": "us-east-1", + "RequiresAccountId": true + } + }, + { + "documentation": "RequiresAccountId with AccountId unset and custom endpoint", + "expect": { + "error": "AccountId is required but not set" + }, + "params": { + "Region": "us-east-1", + "Endpoint": "https://beta.example.com", + "RequiresAccountId": true + } + }, + { + "documentation": "RequiresAccountId with invalid AccountId and custom endpoint", + "expect": { + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "/?invalid¬-host*label" + } + } + ], + "params": { + "Region": "us-east-1", + "Endpoint": "https://beta.example.com", + "AccountId": "/?invalid¬-host*label", + "RequiresAccountId": true + } + }, + { + "documentation": "account id with custom endpoint, fips and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "Endpoint": "https://example.com", + "UseFIPS": true, + "UseDualstack": true + } + }, + { + "documentation": "custom endpoint, fips and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseFIPS": true, + "UseDualstack": true + } + }, + { + "documentation": "custom endpoint, fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseFIPS": true, + "UseDualstack": false + } + }, + { + "documentation": "custom endpoint, dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseFIPS": false, + "UseDualstack": true + } + }, + { + "documentation": "region not set", + "expect": { + "error": "Region must be set" + } + }, + { + "documentation": "invalid partition", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Region": "invalid-region 42" + } + }, + { + "documentation": "ListRegionalBuckets + OutpostId without accountId set.", + "expect": { + "error": "AccountId is required but not set" + }, + "params": { + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBuckets + OutpostId with invalid accountId set.", + "expect": { + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "OutpostId": "op-123", + "AccountId": "/?invalid¬-host*label" + } + } + ], + "params": { + "AccountId": "/?invalid¬-host*label", + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "accesspoint set but missing accountId", + "expect": { + "error": "AccountId is required but not set" + }, + "params": { + "AccessPointName": "myaccesspoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "outpost accesspoint ARN with missing accountId", + "expect": { + "error": "Invalid ARN: missing account ID" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2::outpost:op-01234567890123456:outpost:op1", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN with missing accountId", + "expect": { + "error": "Invalid ARN: missing account ID" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2::outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "endpoint url with accesspoint (non-arn)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "apname", + "AccountId": "123456789012" + } + } + ], + "params": { + "AccessPointName": "apname", + "Endpoint": "https://beta.example.com", + "AccountId": "123456789012", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point name with an accesspoint arn@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "https://beta.example.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Dualstack + Custom endpoint is not supported(non-arn)", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "apname", + "AccountId": "123456789012" + } + } + ], + "params": { + "AccessPointName": "apname", + "Endpoint": "https://beta.example.com", + "AccountId": "123456789012", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "get bucket with endpoint_url and dualstack is not supported@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost buckets do not support dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Endpoint": "https://beta.example.com", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBuckets + OutpostId with fips in CN.", + "expect": { + "error": "Partition does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "OutpostId": "op-123", + "AccountId": "0123456789012" + } + } + ], + "params": { + "AccountId": "0123456789012", + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "ListRegionalBuckets + invalid OutpostId.", + "expect": { + "error": "OutpostId must only contain a-z, A-Z, 0-9 and `-`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-1" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "OutpostId": "?outpost/invalid+", + "AccountId": "0123456789012" + } + } + ], + "params": { + "AccountId": "0123456789012", + "Operation": "ListRegionalBuckets", + "OutpostId": "?outpost/invalid+", + "Region": "us-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN with mismatched accountId", + "expect": { + "error": "Invalid ARN: the accountId specified in the ARN (`999999`) does not match the parameter (`0123456789012`)" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:999999:outpost:op-01234567890123456:bucket:mybucket", + "AccountId": "0123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "OutpostId with invalid region", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "invalid-region 42", + "AccountId": "0123456", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "OutpostId with RequireAccountId unset", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "params": { + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Outpost Accesspoint ARN with arn region and client region mismatch with UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Outpost Bucket ARN with arn region and client region mismatch with UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Endpoint": "https://beta.example.com", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Accesspoint ARN with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Bucket ARN with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Outpost Bucket ARN with partition mismatch with UseArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Accesspoint ARN with partition mismatch and UseArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseArnRegion": true, + "UseFIPS": false + } + }, + { + "documentation": "Accesspoint ARN with region mismatch, UseArnRegion=false and custom endpoint", + "expect": { + "error": "Invalid configuration: region from ARN `cn-north-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Region": "us-west-2", + "Endpoint": "https://example.com", + "RequiresAccountId": true, + "UseDualStack": false, + "UseArnRegion": false, + "UseFIPS": false + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/s3outposts/endpoint-tests-1.json b/tests/functional/endpoint-rules/s3outposts/endpoint-tests-1.json new file mode 100644 index 00000000..df78293c --- /dev/null +++ b/tests/functional/endpoint-rules/s3outposts/endpoint-tests-1.json @@ -0,0 +1,1387 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sagemaker-a2i-runtime/endpoint-tests-1.json b/tests/functional/endpoint-rules/sagemaker-a2i-runtime/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/sagemaker-a2i-runtime/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sagemaker-edge/endpoint-tests-1.json b/tests/functional/endpoint-rules/sagemaker-edge/endpoint-tests-1.json new file mode 100644 index 00000000..8e5ef84c --- /dev/null +++ b/tests/functional/endpoint-rules/sagemaker-edge/endpoint-tests-1.json @@ -0,0 +1,355 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://edge.sagemaker.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sagemaker-featurestore-runtime/endpoint-tests-1.json b/tests/functional/endpoint-rules/sagemaker-featurestore-runtime/endpoint-tests-1.json new file mode 100644 index 00000000..0a11fb3a --- /dev/null +++ b/tests/functional/endpoint-rules/sagemaker-featurestore-runtime/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sagemaker-geospatial/endpoint-tests-1.json b/tests/functional/endpoint-rules/sagemaker-geospatial/endpoint-tests-1.json new file mode 100644 index 00000000..8368b196 --- /dev/null +++ b/tests/functional/endpoint-rules/sagemaker-geospatial/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sagemaker-geospatial.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sagemaker-runtime/endpoint-tests-1.json b/tests/functional/endpoint-rules/sagemaker-runtime/endpoint-tests-1.json new file mode 100644 index 00000000..4a43e7b5 --- /dev/null +++ b/tests/functional/endpoint-rules/sagemaker-runtime/endpoint-tests-1.json @@ -0,0 +1,1439 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime-fips.sagemaker.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://runtime.sagemaker.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sagemaker/endpoint-tests-1.json b/tests/functional/endpoint-rules/sagemaker/endpoint-tests-1.json new file mode 100644 index 00000000..c44c5b3e --- /dev/null +++ b/tests/functional/endpoint-rules/sagemaker/endpoint-tests-1.json @@ -0,0 +1,1543 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api-fips.sagemaker.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.sagemaker.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/savingsplans/endpoint-tests-1.json b/tests/functional/endpoint-rules/savingsplans/endpoint-tests-1.json new file mode 100644 index 00000000..d263f892 --- /dev/null +++ b/tests/functional/endpoint-rules/savingsplans/endpoint-tests-1.json @@ -0,0 +1,65 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "savingsplans", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://savingsplans.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/scheduler/endpoint-tests-1.json b/tests/functional/endpoint-rules/scheduler/endpoint-tests-1.json new file mode 100644 index 00000000..484b87d5 --- /dev/null +++ b/tests/functional/endpoint-rules/scheduler/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://scheduler-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://scheduler.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://scheduler-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://scheduler.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://scheduler-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://scheduler.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://scheduler.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/schemas/endpoint-tests-1.json b/tests/functional/endpoint-rules/schemas/endpoint-tests-1.json new file mode 100644 index 00000000..a0fab7c1 --- /dev/null +++ b/tests/functional/endpoint-rules/schemas/endpoint-tests-1.json @@ -0,0 +1,927 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://schemas.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://schemas.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sdb/endpoint-tests-1.json b/tests/functional/endpoint-rules/sdb/endpoint-tests-1.json new file mode 100644 index 00000000..3142c112 --- /dev/null +++ b/tests/functional/endpoint-rules/sdb/endpoint-tests-1.json @@ -0,0 +1,459 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sdb.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sdb.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/secretsmanager/endpoint-tests-1.json b/tests/functional/endpoint-rules/secretsmanager/endpoint-tests-1.json new file mode 100644 index 00000000..38a628fc --- /dev/null +++ b/tests/functional/endpoint-rules/secretsmanager/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://secretsmanager.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/securityhub/endpoint-tests-1.json b/tests/functional/endpoint-rules/securityhub/endpoint-tests-1.json new file mode 100644 index 00000000..2cdf326a --- /dev/null +++ b/tests/functional/endpoint-rules/securityhub/endpoint-tests-1.json @@ -0,0 +1,1447 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securityhub.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securityhub.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/securitylake/endpoint-tests-1.json b/tests/functional/endpoint-rules/securitylake/endpoint-tests-1.json new file mode 100644 index 00000000..44e4b725 --- /dev/null +++ b/tests/functional/endpoint-rules/securitylake/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securitylake-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securitylake.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securitylake-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securitylake.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securitylake-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://securitylake.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://securitylake.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/serverlessrepo/endpoint-tests-1.json b/tests/functional/endpoint-rules/serverlessrepo/endpoint-tests-1.json new file mode 100644 index 00000000..9c8bd3dc --- /dev/null +++ b/tests/functional/endpoint-rules/serverlessrepo/endpoint-tests-1.json @@ -0,0 +1,1187 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://serverlessrepo.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/service-quotas/endpoint-tests-1.json b/tests/functional/endpoint-rules/service-quotas/endpoint-tests-1.json new file mode 100644 index 00000000..9af8eb1c --- /dev/null +++ b/tests/functional/endpoint-rules/service-quotas/endpoint-tests-1.json @@ -0,0 +1,1447 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicequotas.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/servicecatalog-appregistry/endpoint-tests-1.json b/tests/functional/endpoint-rules/servicecatalog-appregistry/endpoint-tests-1.json new file mode 100644 index 00000000..07278e2b --- /dev/null +++ b/tests/functional/endpoint-rules/servicecatalog-appregistry/endpoint-tests-1.json @@ -0,0 +1,1291 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-appregistry.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/servicecatalog/endpoint-tests-1.json b/tests/functional/endpoint-rules/servicecatalog/endpoint-tests-1.json new file mode 100644 index 00000000..3794c239 --- /dev/null +++ b/tests/functional/endpoint-rules/servicecatalog/endpoint-tests-1.json @@ -0,0 +1,1395 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicecatalog.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/servicediscovery/endpoint-tests-1.json b/tests/functional/endpoint-rules/servicediscovery/endpoint-tests-1.json new file mode 100644 index 00000000..000ec760 --- /dev/null +++ b/tests/functional/endpoint-rules/servicediscovery/endpoint-tests-1.json @@ -0,0 +1,338 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://servicediscovery.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ses/endpoint-tests-1.json b/tests/functional/endpoint-rules/ses/endpoint-tests-1.json new file mode 100644 index 00000000..f2f73388 --- /dev/null +++ b/tests/functional/endpoint-rules/ses/endpoint-tests-1.json @@ -0,0 +1,1239 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sesv2/endpoint-tests-1.json b/tests/functional/endpoint-rules/sesv2/endpoint-tests-1.json new file mode 100644 index 00000000..6fd9c71a --- /dev/null +++ b/tests/functional/endpoint-rules/sesv2/endpoint-tests-1.json @@ -0,0 +1,1239 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://email.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://email.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/shield/endpoint-tests-1.json b/tests/functional/endpoint-rules/shield/endpoint-tests-1.json new file mode 100644 index 00000000..2ba09911 --- /dev/null +++ b/tests/functional/endpoint-rules/shield/endpoint-tests-1.json @@ -0,0 +1,65 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "shield", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://shield.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/signer/endpoint-tests-1.json b/tests/functional/endpoint-rules/signer/endpoint-tests-1.json new file mode 100644 index 00000000..ff59be4a --- /dev/null +++ b/tests/functional/endpoint-rules/signer/endpoint-tests-1.json @@ -0,0 +1,1291 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://signer.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://signer.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/simspaceweaver/endpoint-tests-1.json b/tests/functional/endpoint-rules/simspaceweaver/endpoint-tests-1.json new file mode 100644 index 00000000..38383d6e --- /dev/null +++ b/tests/functional/endpoint-rules/simspaceweaver/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://simspaceweaver.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sms-voice/endpoint-tests-1.json b/tests/functional/endpoint-rules/sms-voice/endpoint-tests-1.json new file mode 100644 index 00000000..c5475f44 --- /dev/null +++ b/tests/functional/endpoint-rules/sms-voice/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-voice.pinpoint.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sms/endpoint-tests-1.json b/tests/functional/endpoint-rules/sms/endpoint-tests-1.json new file mode 100644 index 00000000..70603ca3 --- /dev/null +++ b/tests/functional/endpoint-rules/sms/endpoint-tests-1.json @@ -0,0 +1,1291 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sms.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sms.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/snow-device-management/endpoint-tests-1.json b/tests/functional/endpoint-rules/snow-device-management/endpoint-tests-1.json new file mode 100644 index 00000000..f6486c14 --- /dev/null +++ b/tests/functional/endpoint-rules/snow-device-management/endpoint-tests-1.json @@ -0,0 +1,1291 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snow-device-management.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/snowball/endpoint-tests-1.json b/tests/functional/endpoint-rules/snowball/endpoint-tests-1.json new file mode 100644 index 00000000..e2aebcfb --- /dev/null +++ b/tests/functional/endpoint-rules/snowball/endpoint-tests-1.json @@ -0,0 +1,1539 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://snowball.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://snowball.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sns/endpoint-tests-1.json b/tests/functional/endpoint-rules/sns/endpoint-tests-1.json new file mode 100644 index 00000000..6c547a0f --- /dev/null +++ b/tests/functional/endpoint-rules/sns/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sns.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sns.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sqs/endpoint-tests-1.json b/tests/functional/endpoint-rules/sqs/endpoint-tests-1.json new file mode 100644 index 00000000..f80542ba --- /dev/null +++ b/tests/functional/endpoint-rules/sqs/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sqs.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sqs.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ssm-contacts/endpoint-tests-1.json b/tests/functional/endpoint-rules/ssm-contacts/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/ssm-contacts/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ssm-incidents/endpoint-tests-1.json b/tests/functional/endpoint-rules/ssm-incidents/endpoint-tests-1.json new file mode 100644 index 00000000..9be57ba0 --- /dev/null +++ b/tests/functional/endpoint-rules/ssm-incidents/endpoint-tests-1.json @@ -0,0 +1,875 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-incidents.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ssm-sap/endpoint-tests-1.json b/tests/functional/endpoint-rules/ssm-sap/endpoint-tests-1.json new file mode 100644 index 00000000..1f3315be --- /dev/null +++ b/tests/functional/endpoint-rules/ssm-sap/endpoint-tests-1.json @@ -0,0 +1,295 @@ +{ + "testCases": [ + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-gov-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "Region": "cn-north-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-iso-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-sap.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-isob-east-1", + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/ssm/endpoint-tests-1.json b/tests/functional/endpoint-rules/ssm/endpoint-tests-1.json new file mode 100644 index 00000000..baa428e3 --- /dev/null +++ b/tests/functional/endpoint-rules/ssm/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://ssm.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://ssm.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sso-admin/endpoint-tests-1.json b/tests/functional/endpoint-rules/sso-admin/endpoint-tests-1.json new file mode 100644 index 00000000..d2c3cec5 --- /dev/null +++ b/tests/functional/endpoint-rules/sso-admin/endpoint-tests-1.json @@ -0,0 +1,1291 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sso.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sso.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sso-oidc/endpoint-tests-1.json b/tests/functional/endpoint-rules/sso-oidc/endpoint-tests-1.json new file mode 100644 index 00000000..13b31d38 --- /dev/null +++ b/tests/functional/endpoint-rules/sso-oidc/endpoint-tests-1.json @@ -0,0 +1,1291 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://oidc.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sso/endpoint-tests-1.json b/tests/functional/endpoint-rules/sso/endpoint-tests-1.json new file mode 100644 index 00000000..8b18f773 --- /dev/null +++ b/tests/functional/endpoint-rules/sso/endpoint-tests-1.json @@ -0,0 +1,1135 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://portal.sso.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/stepfunctions/endpoint-tests-1.json b/tests/functional/endpoint-rules/stepfunctions/endpoint-tests-1.json new file mode 100644 index 00000000..a3e18f2b --- /dev/null +++ b/tests/functional/endpoint-rules/stepfunctions/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://states.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://states.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/storagegateway/endpoint-tests-1.json b/tests/functional/endpoint-rules/storagegateway/endpoint-tests-1.json new file mode 100644 index 00000000..31757df3 --- /dev/null +++ b/tests/functional/endpoint-rules/storagegateway/endpoint-tests-1.json @@ -0,0 +1,1495 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://storagegateway.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/sts/endpoint-tests-1.json b/tests/functional/endpoint-rules/sts/endpoint-tests-1.json new file mode 100644 index 00000000..73956a2d --- /dev/null +++ b/tests/functional/endpoint-rules/sts/endpoint-tests-1.json @@ -0,0 +1,2546 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "aws-global" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ca-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-west-1" + } + }, + { + "documentation": "For region ca-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ca-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-west-1" + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ca-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-west-1" + } + }, + { + "documentation": "For region ca-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ca-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-4.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-4" + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-5.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-5" + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-5.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-5" + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-5.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-5" + } + }, + { + "documentation": "For region ap-southeast-5 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-5.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-5" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region ap-southeast-6 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-6.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-6" + } + }, + { + "documentation": "For region ap-southeast-6 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.ap-southeast-6.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-6" + } + }, + { + "documentation": "For region ap-southeast-6 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-6.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-6" + } + }, + { + "documentation": "For region ap-southeast-6 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.ap-southeast-6.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-6" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://sts.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://sts.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `ap-northeast-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "ap-northeast-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "ap-northeast-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `ap-south-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "ap-south-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `ap-southeast-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "ap-southeast-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `ap-southeast-2`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "ap-southeast-2", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `aws-global`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `ca-central-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "ca-central-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `eu-central-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "eu-central-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `eu-north-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "eu-north-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "eu-north-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `eu-west-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "eu-west-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `eu-west-2`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "eu-west-2", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `eu-west-3`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "eu-west-3", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `sa-east-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "sa-east-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "sa-east-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `us-east-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `us-east-2`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `us-west-1`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-1", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region `us-west-2`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://sts.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with Non-legacy region `us-east-3`", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "sts", + "signingRegion": "us-east-3" + } + ] + }, + "url": "https://sts.us-east-3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-3", + "AWS::STS::UseGlobalEndpoint": true + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "us-east-3", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true + } + }, + { + "documentation": "UseGlobalEndpoint with legacy region and custom endpoint", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-1", + "AWS::STS::UseGlobalEndpoint": true, + "SDK::Endpoint": "https://example.com" + }, + "operationName": "GetCallerIdentity" + } + ], + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false, + "UseGlobalEndpoint": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/support-app/endpoint-tests-1.json b/tests/functional/endpoint-rules/support-app/endpoint-tests-1.json new file mode 100644 index 00000000..d08b03ca --- /dev/null +++ b/tests/functional/endpoint-rules/support-app/endpoint-tests-1.json @@ -0,0 +1,199 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://supportapp-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://supportapp-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://supportapp.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://supportapp.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://supportapp-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://supportapp-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://supportapp.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://supportapp.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://supportapp-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://supportapp-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://supportapp.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://supportapp.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/support/endpoint-tests-1.json b/tests/functional/endpoint-rules/support/endpoint-tests-1.json new file mode 100644 index 00000000..e34da470 --- /dev/null +++ b/tests/functional/endpoint-rules/support/endpoint-tests-1.json @@ -0,0 +1,205 @@ +{ + "testCases": [ + { + "documentation": "For region aws-cn-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "cn-north-1" + } + ] + }, + "url": "https://support.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "aws-cn-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://support.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region aws-iso-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-iso-east-1" + } + ] + }, + "url": "https://support.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "aws-iso-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://support-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://support.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://support.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://support.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region aws-iso-b-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-isob-east-1" + } + ] + }, + "url": "https://support.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "aws-iso-b-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region aws-us-gov-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "support", + "signingRegion": "us-gov-west-1" + } + ] + }, + "url": "https://support.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "aws-us-gov-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/swf/endpoint-tests-1.json b/tests/functional/endpoint-rules/swf/endpoint-tests-1.json new file mode 100644 index 00000000..f2267945 --- /dev/null +++ b/tests/functional/endpoint-rules/swf/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://swf.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://swf.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/synthetics/endpoint-tests-1.json b/tests/functional/endpoint-rules/synthetics/endpoint-tests-1.json new file mode 100644 index 00000000..dc460408 --- /dev/null +++ b/tests/functional/endpoint-rules/synthetics/endpoint-tests-1.json @@ -0,0 +1,1751 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-south-2.api.aws" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-south-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-south-2.api.aws" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-south-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-central-2.api.aws" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-central-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-southeast-4.api.aws" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-4", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://synthetics.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://synthetics.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/textract/endpoint-tests-1.json b/tests/functional/endpoint-rules/textract/endpoint-tests-1.json new file mode 100644 index 00000000..87bf32c0 --- /dev/null +++ b/tests/functional/endpoint-rules/textract/endpoint-tests-1.json @@ -0,0 +1,871 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://textract.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://textract.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/timestream-query/endpoint-tests-1.json b/tests/functional/endpoint-rules/timestream-query/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/timestream-query/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/timestream-write/endpoint-tests-1.json b/tests/functional/endpoint-rules/timestream-write/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/timestream-write/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/transcribe/endpoint-tests-1.json b/tests/functional/endpoint-rules/transcribe/endpoint-tests-1.json new file mode 100644 index 00000000..0fe43c58 --- /dev/null +++ b/tests/functional/endpoint-rules/transcribe/endpoint-tests-1.json @@ -0,0 +1,1287 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cn.transcribe.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://fips.transcribe.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transcribe-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transcribe.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cn.transcribe.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/transfer/endpoint-tests-1.json b/tests/functional/endpoint-rules/transfer/endpoint-tests-1.json new file mode 100644 index 00000000..e9932480 --- /dev/null +++ b/tests/functional/endpoint-rules/transfer/endpoint-tests-1.json @@ -0,0 +1,1395 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://transfer.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://transfer.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/translate/endpoint-tests-1.json b/tests/functional/endpoint-rules/translate/endpoint-tests-1.json new file mode 100644 index 00000000..06a7b035 --- /dev/null +++ b/tests/functional/endpoint-rules/translate/endpoint-tests-1.json @@ -0,0 +1,975 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://translate.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://translate.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/voice-id/endpoint-tests-1.json b/tests/functional/endpoint-rules/voice-id/endpoint-tests-1.json new file mode 100644 index 00000000..9c592b45 --- /dev/null +++ b/tests/functional/endpoint-rules/voice-id/endpoint-tests-1.json @@ -0,0 +1,459 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://voiceid.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://voiceid.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/waf-regional/endpoint-tests-1.json b/tests/functional/endpoint-rules/waf-regional/endpoint-tests-1.json new file mode 100644 index 00000000..39769035 --- /dev/null +++ b/tests/functional/endpoint-rules/waf-regional/endpoint-tests-1.json @@ -0,0 +1,1447 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-south-1.api.aws" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-south-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-south-1.api.aws" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-south-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.me-central-1.api.aws" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.me-central-1.amazonaws.com" + } + }, + "params": { + "Region": "me-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ca-central-1.api.aws" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ca-central-1.amazonaws.com" + } + }, + "params": { + "Region": "ca-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-west-1.api.aws" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.af-south-1.api.aws" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.af-south-1.amazonaws.com" + } + }, + "params": { + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-north-1.api.aws" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-north-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-west-3.api.aws" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-west-3.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-northeast-3.api.aws" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-northeast-2.api.aws" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.me-south-1.api.aws" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.me-south-1.amazonaws.com" + } + }, + "params": { + "Region": "me-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.sa-east-1.api.aws" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.sa-east-1.amazonaws.com" + } + }, + "params": { + "Region": "sa-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-east-1.api.aws" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-east-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-gov-west-1.api.aws" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-southeast-1.api.aws" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-southeast-3.api.aws" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-3", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-east-2.api.aws" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.us-east-2.amazonaws.com" + } + }, + "params": { + "Region": "us-east-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://waf-regional.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-northwest-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/waf/endpoint-tests-1.json b/tests/functional/endpoint-rules/waf/endpoint-tests-1.json new file mode 100644 index 00000000..5f662b23 --- /dev/null +++ b/tests/functional/endpoint-rules/waf/endpoint-tests-1.json @@ -0,0 +1,65 @@ +{ + "testCases": [ + { + "documentation": "For region aws-global with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "waf", + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://waf.amazonaws.com" + } + }, + "params": { + "Region": "aws-global", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/wafv2/endpoint-tests-1.json b/tests/functional/endpoint-rules/wafv2/endpoint-tests-1.json new file mode 100644 index 00000000..573c1f9c --- /dev/null +++ b/tests/functional/endpoint-rules/wafv2/endpoint-tests-1.json @@ -0,0 +1,1395 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wafv2.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wafv2.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/wellarchitected/endpoint-tests-1.json b/tests/functional/endpoint-rules/wellarchitected/endpoint-tests-1.json new file mode 100644 index 00000000..e2074359 --- /dev/null +++ b/tests/functional/endpoint-rules/wellarchitected/endpoint-tests-1.json @@ -0,0 +1,1083 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wellarchitected.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/wisdom/endpoint-tests-1.json b/tests/functional/endpoint-rules/wisdom/endpoint-tests-1.json new file mode 100644 index 00000000..55ad6124 --- /dev/null +++ b/tests/functional/endpoint-rules/wisdom/endpoint-tests-1.json @@ -0,0 +1,355 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom.eu-central-1.api.aws" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.eu-central-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-central-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom.eu-west-2.api.aws" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.eu-west-2.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom.ap-northeast-1.api.aws" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "Region": "ap-northeast-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom.ap-southeast-2.api.aws" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "Region": "ap-southeast-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://wisdom.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/workdocs/endpoint-tests-1.json b/tests/functional/endpoint-rules/workdocs/endpoint-tests-1.json new file mode 100644 index 00000000..dcb425e8 --- /dev/null +++ b/tests/functional/endpoint-rules/workdocs/endpoint-tests-1.json @@ -0,0 +1,355 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workdocs.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workdocs.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/worklink/endpoint-tests-1.json b/tests/functional/endpoint-rules/worklink/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/worklink/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/workmail/endpoint-tests-1.json b/tests/functional/endpoint-rules/workmail/endpoint-tests-1.json new file mode 100644 index 00000000..64b066c8 --- /dev/null +++ b/tests/functional/endpoint-rules/workmail/endpoint-tests-1.json @@ -0,0 +1,199 @@ +{ + "testCases": [ + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-west-2.api.aws" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail.eu-west-1.api.aws" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/workmailmessageflow/endpoint-tests-1.json b/tests/functional/endpoint-rules/workmailmessageflow/endpoint-tests-1.json new file mode 100644 index 00000000..c06ee184 --- /dev/null +++ b/tests/functional/endpoint-rules/workmailmessageflow/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/workspaces-web/endpoint-tests-1.json b/tests/functional/endpoint-rules/workspaces-web/endpoint-tests-1.json new file mode 100644 index 00000000..34734456 --- /dev/null +++ b/tests/functional/endpoint-rules/workspaces-web/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/workspaces/endpoint-tests-1.json b/tests/functional/endpoint-rules/workspaces/endpoint-tests-1.json new file mode 100644 index 00000000..bef7be04 --- /dev/null +++ b/tests/functional/endpoint-rules/workspaces/endpoint-tests-1.json @@ -0,0 +1,967 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/endpoint-rules/xray/endpoint-tests-1.json b/tests/functional/endpoint-rules/xray/endpoint-tests-1.json new file mode 100644 index 00000000..695974ae --- /dev/null +++ b/tests/functional/endpoint-rules/xray/endpoint-tests-1.json @@ -0,0 +1,1603 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-2" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-south-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-2" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.me-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.me-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ca-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-central-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-central-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.us-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.us-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.af-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-north-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-west-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-west-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-northeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-northeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-northeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.me-south-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.sa-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.us-gov-west-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-west-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-southeast-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-southeast-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-southeast-3.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-3" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.us-east-2.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://xray.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://xray.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-northwest-1" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/tests/functional/models/custom-acm/2015-12-08/endpoint-rule-set-1.json b/tests/functional/models/custom-acm/2015-12-08/endpoint-rule-set-1.json new file mode 100644 index 00000000..854acc39 --- /dev/null +++ b/tests/functional/models/custom-acm/2015-12-08/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.3", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://acm-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://acm-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://acm.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} diff --git a/tests/functional/test_context_params.py b/tests/functional/test_context_params.py new file mode 100644 index 00000000..f61e6a18 --- /dev/null +++ b/tests/functional/test_context_params.py @@ -0,0 +1,490 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import pytest + +from botocore.config import Config +from tests import ClientHTTPStubber, mock + +# fake rulesets compatible with all fake service models below +FAKE_RULESET_TEMPLATE = { + "version": "1.0", + "parameters": {}, + "rules": [ + { + "conditions": [], + "type": "endpoint", + "endpoint": { + "url": "https://foo.bar", + "properties": {}, + "headers": {}, + }, + } + ], +} + +# The region param is unrelated to context parameters and used as control in +# all test cases to ascertain that ANY EndpointProvider paramaters get +# populated. +REGION_PARAM = { + "builtIn": "AWS::Region", + "required": False, + "documentation": "", + "type": "String", +} + +FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS = { + **FAKE_RULESET_TEMPLATE, + "parameters": { + "Region": REGION_PARAM, + }, +} + +FAKE_RULESET_WITH_CLIENT_CONTEXT_PARAM = { + **FAKE_RULESET_TEMPLATE, + "parameters": { + "Region": REGION_PARAM, + "FooClientContextParamName": { + "required": False, + "documentation": "", + "type": "String", + }, + }, +} + +FAKE_RULESET_WITH_STATIC_CONTEXT_PARAM = { + **FAKE_RULESET_TEMPLATE, + "parameters": { + "Region": REGION_PARAM, + "FooStaticContextParamName": { + "required": False, + "documentation": "", + "type": "String", + }, + }, +} + +FAKE_RULESET_WITH_DYNAMIC_CONTEXT_PARAM = { + **FAKE_RULESET_TEMPLATE, + "parameters": { + "Region": REGION_PARAM, + "FooDynamicContextParamName": { + "required": False, + "documentation": "", + "type": "String", + }, + }, +} + +# fake models for "otherservice" + +FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS = { + "version": "2.0", + "documentation": "", + "metadata": { + "apiVersion": "2020-02-02", + "endpointPrefix": "otherservice", + "protocol": "rest-xml", + "serviceFullName": "Other Service", + "serviceId": "Other Service", + "signatureVersion": "v4", + "signingName": "otherservice", + "uid": "otherservice-2020-02-02", + }, + "operations": { + "MockOperation": { + "name": "MockOperation", + "http": {"method": "GET", "requestUri": "/"}, + "input": {"shape": "MockOperationRequest"}, + "documentation": "", + }, + }, + "shapes": { + "MockOpParam": { + "type": "string", + }, + "MockOperationRequest": { + "type": "structure", + "required": ["MockOpParam"], + "members": { + "MockOpParam": { + "shape": "MockOpParam", + "documentation": "", + "location": "uri", + "locationName": "param", + }, + }, + }, + }, +} + +FAKE_MODEL_WITH_CLIENT_CONTEXT_PARAM = { + **FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + "clientContextParams": { + "FooClientContextParamName": { + "documentation": "My mock client context parameter", + "type": "string", + } + }, +} + +FAKE_MODEL_WITH_STATIC_CONTEXT_PARAM = { + **FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + "operations": { + "MockOperation": { + "name": "MockOperation", + "http": {"method": "GET", "requestUri": "/"}, + "input": {"shape": "MockOperationRequest"}, + "documentation": "", + "staticContextParams": { + "FooStaticContextParamName": { + "value": "foo-static-context-param-value" + } + }, + }, + }, +} + +FAKE_MODEL_WITH_DYNAMIC_CONTEXT_PARAM = { + **FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + "shapes": { + "MockOpParam": { + "type": "string", + }, + "MockOperationRequest": { + "type": "structure", + "required": ["MockOpParam"], + "members": { + "MockOpParam": { + "shape": "MockOpParam", + "documentation": "", + "location": "uri", + "locationName": "param", + "contextParam": {"name": "FooDynamicContextParamName"}, + }, + }, + }, + }, + # +} + +# fake models for s3 and s3control, the only services botocore currently +# supports client context parameters for + +S3_METADATA = { + "apiVersion": "2006-03-01", + "checksumFormat": "md5", + "endpointPrefix": "s3", + "globalEndpoint": "s3.amazonaws.com", + "protocol": "rest-xml", + "serviceAbbreviation": "Amazon S3", + "serviceFullName": "Amazon Simple Storage Service", + "serviceId": "S3", + "signatureVersion": "s3", + "uid": "s3-2006-03-01", +} + +FAKE_S3_MODEL_WITHOUT_ANY_CONTEXT_PARAMS = { + **FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + "metadata": S3_METADATA, +} + +FAKE_S3_MODEL_WITH_CLIENT_CONTEXT_PARAM = { + **FAKE_MODEL_WITH_CLIENT_CONTEXT_PARAM, + "metadata": S3_METADATA, +} + +S3CONTROL_METADATA = { + "apiVersion": "2018-08-20", + "endpointPrefix": "s3-control", + "protocol": "rest-xml", + "serviceFullName": "AWS S3 Control", + "serviceId": "S3 Control", + "signatureVersion": "s3v4", + "signingName": "s3", + "uid": "s3control-2018-08-20", +} + +FAKE_S3CONTROL_MODEL_WITHOUT_ANY_CONTEXT_PARAMS = { + **FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + "metadata": S3CONTROL_METADATA, +} + +FAKE_S3CONTROL_MODEL_WITH_CLIENT_CONTEXT_PARAM = { + **FAKE_MODEL_WITH_CLIENT_CONTEXT_PARAM, + "metadata": S3CONTROL_METADATA, +} + + +def patch_load_service_model( + session, monkeypatch, service_model_json, ruleset_json +): + def mock_load_service_model(service_name, type_name, api_version=None): + if type_name == 'service-2': + return service_model_json + if type_name == 'endpoint-rule-set-1': + return ruleset_json + + loader = session.get_component('data_loader') + monkeypatch.setattr(loader, 'load_service_model', mock_load_service_model) + + +@pytest.mark.parametrize( + 'service_name,service_model,ruleset,call_should_include_ctx_param', + [ + # s3 + ( + 's3', + FAKE_S3_MODEL_WITH_CLIENT_CONTEXT_PARAM, + FAKE_RULESET_WITH_CLIENT_CONTEXT_PARAM, + True, + ), + ( + 's3', + FAKE_S3_MODEL_WITH_CLIENT_CONTEXT_PARAM, + FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS, + False, + ), + ( + 's3', + FAKE_S3_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + FAKE_RULESET_WITH_CLIENT_CONTEXT_PARAM, + False, + ), + ( + 's3', + FAKE_S3_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS, + False, + ), + # s3control + ( + 's3control', + FAKE_S3CONTROL_MODEL_WITH_CLIENT_CONTEXT_PARAM, + FAKE_RULESET_WITH_CLIENT_CONTEXT_PARAM, + True, + ), + ( + 's3control', + FAKE_S3CONTROL_MODEL_WITH_CLIENT_CONTEXT_PARAM, + FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS, + False, + ), + ( + 's3control', + FAKE_S3CONTROL_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + FAKE_RULESET_WITH_CLIENT_CONTEXT_PARAM, + False, + ), + ( + 's3control', + FAKE_S3CONTROL_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS, + False, + ), + # botocore does not currently support client context params for + # services other than s3 and s3-control. + ( + 'otherservice', + FAKE_MODEL_WITH_CLIENT_CONTEXT_PARAM, + FAKE_RULESET_WITH_CLIENT_CONTEXT_PARAM, + False, # would be True for s3 and s3control + ), + ( + 'otherservice', + FAKE_MODEL_WITH_CLIENT_CONTEXT_PARAM, + FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS, + False, # same as for s3 and s3control + ), + ( + 'otherservice', + FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + FAKE_RULESET_WITH_CLIENT_CONTEXT_PARAM, + False, # same as for s3 and s3control + ), + ( + 'otherservice', + FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS, + False, # same as for s3 and s3control + ), + ], +) +def test_client_context_param_sent_to_endpoint_resolver( + monkeypatch, + patched_session, + service_name, + service_model, + ruleset, + call_should_include_ctx_param, +): + # patch loader to return fake service model and fake endpoint ruleset + patch_load_service_model( + patched_session, monkeypatch, service_model, ruleset + ) + + # construct client using patched loader and a config object with an s3 + # section that sets the foo_context_param to a value + client = patched_session.create_client( + service_name, + region_name='us-east-1', + config=Config( + s3={'foo_client_context_param_name': 'foo_context_param_value'} + ), + ) + + # Stub client to prevent a request from getting sent and asceertain that + # only a single request would get sent. Wrap the EndpointProvider's + # resolve_endpoint method for inspecting the arguments it gets called with. + with ClientHTTPStubber(client, strict=True) as http_stubber: + http_stubber.add_response(status=200) + with mock.patch.object( + client._ruleset_resolver._provider, + 'resolve_endpoint', + wraps=client._ruleset_resolver._provider.resolve_endpoint, + ) as mock_resolve_endpoint: + client.mock_operation(MockOpParam='mock-op-param-value') + + if call_should_include_ctx_param: + mock_resolve_endpoint.assert_called_once_with( + Region='us-east-1', + FooClientContextParamName='foo_context_param_value', + ) + else: + mock_resolve_endpoint.assert_called_once_with(Region='us-east-1') + + +@pytest.mark.parametrize( + 'service_name,service_model,ruleset,call_should_include_ctx_param', + [ + ( + 'otherservice', + FAKE_MODEL_WITH_STATIC_CONTEXT_PARAM, + FAKE_RULESET_WITH_STATIC_CONTEXT_PARAM, + True, + ), + ( + 'otherservice', + FAKE_MODEL_WITH_STATIC_CONTEXT_PARAM, + FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS, + False, + ), + ( + 'otherservice', + FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + FAKE_RULESET_WITH_STATIC_CONTEXT_PARAM, + False, + ), + ( + 'otherservice', + FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS, + False, + ), + ], +) +def test_static_context_param_sent_to_endpoint_resolver( + monkeypatch, + patched_session, + service_name, + service_model, + ruleset, + call_should_include_ctx_param, +): + # patch loader to return fake service model and fake endpoint ruleset + patch_load_service_model( + patched_session, monkeypatch, service_model, ruleset + ) + + # construct client using patched loader, but no special config is required + # for static context param to take effect + client = patched_session.create_client( + service_name, region_name='us-east-1' + ) + + with ClientHTTPStubber(client, strict=True) as http_stubber: + http_stubber.add_response(status=200) + with mock.patch.object( + client._ruleset_resolver._provider, + 'resolve_endpoint', + wraps=client._ruleset_resolver._provider.resolve_endpoint, + ) as mock_resolve_endpoint: + client.mock_operation(MockOpParam='mock-op-param-value') + + if call_should_include_ctx_param: + mock_resolve_endpoint.assert_called_once_with( + Region='us-east-1', + FooStaticContextParamName='foo-static-context-param-value', + ) + else: + mock_resolve_endpoint.assert_called_once_with(Region='us-east-1') + + +@pytest.mark.parametrize( + 'service_name,service_model,ruleset,call_should_include_ctx_param', + [ + ( + 'otherservice', + FAKE_MODEL_WITH_DYNAMIC_CONTEXT_PARAM, + FAKE_RULESET_WITH_DYNAMIC_CONTEXT_PARAM, + True, + ), + ( + 'otherservice', + FAKE_MODEL_WITH_DYNAMIC_CONTEXT_PARAM, + FAKE_RULESET_WITHOUT_ANY_CONTEXT_PARAMS, + False, + ), + ( + 'otherservice', + FAKE_MODEL_WITHOUT_ANY_CONTEXT_PARAMS, + FAKE_RULESET_WITH_DYNAMIC_CONTEXT_PARAM, + False, + ), + ], +) +def test_dynamic_context_param_sent_to_endpoint_resolver( + monkeypatch, + patched_session, + service_name, + service_model, + ruleset, + call_should_include_ctx_param, +): + # patch loader to return fake service model and fake endpoint ruleset + patch_load_service_model( + patched_session, monkeypatch, service_model, ruleset + ) + + # construct client using patched loader, but no special config is required + # for static context param to take effect + client = patched_session.create_client( + service_name, region_name='us-east-1' + ) + + with ClientHTTPStubber(client, strict=True) as http_stubber: + http_stubber.add_response(status=200) + with mock.patch.object( + client._ruleset_resolver._provider, + 'resolve_endpoint', + wraps=client._ruleset_resolver._provider.resolve_endpoint, + ) as mock_resolve_endpoint: + client.mock_operation(MockOpParam='mock-op-param-value') + + if call_should_include_ctx_param: + mock_resolve_endpoint.assert_called_once_with( + Region='us-east-1', + FooDynamicContextParamName='mock-op-param-value', + ) + else: + mock_resolve_endpoint.assert_called_once_with(Region='us-east-1') diff --git a/tests/functional/test_credentials.py b/tests/functional/test_credentials.py index a122c35e..363af118 100644 --- a/tests/functional/test_credentials.py +++ b/tests/functional/test_credentials.py @@ -10,6 +10,7 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. +import json import math import os import shutil @@ -20,6 +21,7 @@ import time import uuid from datetime import datetime, timedelta +import pytest from dateutil.tz import tzlocal from botocore import UNSIGNED @@ -44,6 +46,7 @@ from botocore.exceptions import ( ) from botocore.session import Session from botocore.stub import Stubber +from botocore.tokens import SSOTokenProvider from botocore.utils import datetime2timestamp from tests import ( BaseEnvVar, @@ -56,6 +59,9 @@ from tests import ( unittest, ) +TIME_IN_ONE_HOUR = datetime.utcnow() + timedelta(hours=1) +TIME_IN_SIX_MONTHS = datetime.utcnow() + timedelta(hours=4320) + class TestCredentialRefreshRaces(unittest.TestCase): def assert_consistent_credentials_seen(self, creds, func): @@ -929,3 +935,148 @@ class TestSTSRegional(BaseAssumeRoleTest): self.assertEqual( stubber.requests[0].url, 'https://sts.us-west-2.amazonaws.com/' ) + + +class MockCache: + """Mock for JSONFileCache to avoid touching files on disk""" + + def __init__(self, working_dir=None, dumps_func=None): + self.working_dir = working_dir + self.dumps_func = dumps_func + + def __contains__(self, cache_key): + return True + + def __getitem__(self, cache_key): + return { + "startUrl": "https://test.awsapps.com/start", + "region": "us-east-1", + "accessToken": "access-token", + "expiresAt": TIME_IN_ONE_HOUR.strftime('%Y-%m-%dT%H:%M:%SZ'), + "expiresIn": 3600, + "clientId": "client-12345", + "clientSecret": "client-secret", + "registrationExpiresAt": TIME_IN_SIX_MONTHS.strftime( + '%Y-%m-%dT%H:%M:%SZ' + ), + "refreshToken": "refresh-here", + } + + def __delitem__(self, cache_key): + pass + + +class SSOSessionTest(BaseEnvVar): + def setUp(self): + super().setUp() + self.tempdir = tempfile.mkdtemp() + self.config_file = os.path.join(self.tempdir, 'config') + self.environ['AWS_CONFIG_FILE'] = self.config_file + self.access_key_id = 'ASIA123456ABCDEFG' + self.secret_access_key = 'secret-key' + self.session_token = 'session-token' + + def tearDown(self): + shutil.rmtree(self.tempdir) + super().tearDown() + + def write_config(self, config): + with open(self.config_file, 'w') as f: + f.write(config) + + def test_token_chosen_from_provider(self): + profile = ( + '[profile sso-test]\n' + 'region = us-east-1\n' + 'sso_session = sso-test-session\n' + 'sso_account_id = 12345678901234\n' + 'sso_role_name = ViewOnlyAccess\n' + '\n' + '[sso-session sso-test-session]\n' + 'sso_region = us-east-1\n' + 'sso_start_url = https://test.awsapps.com/start\n' + 'sso_registration_scopes = sso:account:access\n' + ) + self.write_config(profile) + + session = Session(profile='sso-test') + with SessionHTTPStubber(session) as stubber: + self.add_credential_response(stubber) + stubber.add_response() + with mock.patch.object( + SSOTokenProvider, 'DEFAULT_CACHE_CLS', MockCache + ): + c = session.create_client('s3') + c.list_buckets() + + self.assert_valid_sso_call( + stubber.requests[0], + ( + 'https://portal.sso.us-east-1.amazonaws.com/federation/credentials' + '?role_name=ViewOnlyAccess&account_id=12345678901234' + ), + b'access-token', + ) + self.assert_credentials_used( + stubber.requests[1], + self.access_key_id.encode('utf-8'), + self.session_token.encode('utf-8'), + ) + + def test_mismatched_session_values(self): + profile = ( + '[profile sso-test]\n' + 'region = us-east-1\n' + 'sso_session = sso-test-session\n' + 'sso_start_url = https://test2.awsapps.com/start\n' + 'sso_account_id = 12345678901234\n' + 'sso_role_name = ViewOnlyAccess\n' + '\n' + '[sso-session sso-test-session]\n' + 'sso_region = us-east-1\n' + 'sso_start_url = https://test.awsapps.com/start\n' + 'sso_registration_scopes = sso:account:access\n' + ) + self.write_config(profile) + + session = Session(profile='sso-test') + with pytest.raises(InvalidConfigError): + c = session.create_client('s3') + c.list_buckets() + + def test_missing_sso_session(self): + profile = ( + '[profile sso-test]\n' + 'region = us-east-1\n' + 'sso_session = sso-test-session\n' + 'sso_start_url = https://test2.awsapps.com/start\n' + 'sso_account_id = 12345678901234\n' + 'sso_role_name = ViewOnlyAccess\n' + '\n' + ) + self.write_config(profile) + + session = Session(profile='sso-test') + with pytest.raises(InvalidConfigError): + c = session.create_client('s3') + c.list_buckets() + + def assert_valid_sso_call(self, request, url, access_token): + assert request.url == url + assert 'x-amz-sso_bearer_token' in request.headers + assert request.headers['x-amz-sso_bearer_token'] == access_token + + def assert_credentials_used(self, request, access_key, session_token): + assert access_key in request.headers.get('Authorization') + assert request.headers.get('X-Amz-Security-Token') == session_token + + def add_credential_response(self, stubber): + response = { + 'roleCredentials': { + 'accessKeyId': self.access_key_id, + 'secretAccessKey': self.secret_access_key, + 'sessionToken': self.session_token, + 'expiration': TIME_IN_ONE_HOUR.timestamp() * 1000, + } + } + stubber.add_response(body=json.dumps(response).encode('utf-8')) diff --git a/tests/functional/test_endpoint_rulesets.py b/tests/functional/test_endpoint_rulesets.py new file mode 100644 index 00000000..57a7b5ac --- /dev/null +++ b/tests/functional/test_endpoint_rulesets.py @@ -0,0 +1,307 @@ +# Copyright 2012-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import json +from functools import lru_cache +from pathlib import Path + +import pytest + +from botocore import xform_name +from botocore.compat import HAS_CRT +from botocore.config import Config +from botocore.endpoint_provider import EndpointProvider +from botocore.exceptions import ( + BotoCoreError, + ClientError, + EndpointResolutionError, +) +from botocore.loaders import Loader +from botocore.parsers import ResponseParserError +from tests import ClientHTTPStubber + +ENDPOINT_TESTDATA_DIR = Path(__file__).parent / 'endpoint-rules' +LOADER = Loader() + +# For the purpose of the tests in this file, only services for which an +# endpoint ruleset file exists matter. The existence of required endpoint +# ruleset files is asserted for in tests/functional/test_model_completeness.py +ALL_SERVICES = [ + service_name + for service_name in LOADER.list_available_services( + type_name='endpoint-rule-set-1' + ) +] + + +@pytest.fixture(scope='module') +def partitions(): + return LOADER.load_data('partitions') + + +@lru_cache() +def get_endpoint_tests_for_service(service_name): + file_path = ENDPOINT_TESTDATA_DIR / service_name / 'endpoint-tests-1.json' + if not file_path.is_file(): + raise FileNotFoundError( + f'Cannot find endpoint tests file for "{service_name}" at ' + 'path {file_path}' + ) + with file_path.open('r') as f: + return json.load(f) + + +@pytest.mark.parametrize("service_name", ALL_SERVICES) +def test_all_endpoint_tests_exist(service_name): + """Tests the existence of endpoint-tests-1.json for each service that has + a ruleset and verifies that content is present.""" + data = get_endpoint_tests_for_service(service_name) + assert len(data['testCases']) > 0 + + +def assert_all_signing_region_sets_have_length_one(rule): + """Helper function for test_all_signing_region_sets_have_length_one()""" + if 'endpoint' in rule: + authSchemes = ( + rule['endpoint'].get('properties', {}).get('authSchemes', []) + ) + for authScheme in authSchemes: + if 'signingRegionSet' in authScheme: + assert len(authScheme['signingRegionSet']) == 1 + for sub_rule in rule.get('rules', []): + assert_all_signing_region_sets_have_length_one(sub_rule) + + +@pytest.mark.parametrize("service_name", ALL_SERVICES) +def test_all_signing_region_sets_have_length_one(service_name): + """Checks all endpoint rulesets for endpoints that contain an authSchemes + property with a `signingRegionSet` and asserts that it is a list of + length 1. + + In theory, `signingRegionSet` could have >1 entries. As of writing this + test, no service uses >1 entry, the meaning of >1 entry is poorly defined, + and botocore cannot handle >1 entry. This test exists specifically to + fail if a ruleset ever uses >1 entry. + + The test also fails for empty lists. While botocore would handle these + gracefully, the expected behavior for empty `signingRegionSet` lists is + not defined. + """ + ruleset = LOADER.load_service_model(service_name, 'endpoint-rule-set-1') + assert_all_signing_region_sets_have_length_one(ruleset) + + +def test_assert_all_signing_region_sets_have_length_one(): + """Negative test for to confirm that + assert_all_signing_region_sets_have_length_one() actually fails when two + sigingRegionSet entries are present.""" + with pytest.raises(AssertionError): + assert_all_signing_region_sets_have_length_one( + { + "version": "1.0", + "parameters": {}, + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://foo", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "disableDoubleEncoding": True, + "signingRegionSet": ["*", "abc"], + "signingName": "myservice", + } + ] + }, + "headers": {}, + }, + "type": "endpoint", + } + ], + } + ) + + +def iter_all_test_cases(): + for service_name in ALL_SERVICES: + test_data = get_endpoint_tests_for_service(service_name) + for test_case in test_data['testCases']: + yield service_name, test_case + + +def iter_provider_test_cases_that_produce(endpoints=False, errors=False): + for service_name, test in iter_all_test_cases(): + input_params = test.get('params', {}) + expected_object = test['expect'] + if endpoints and 'endpoint' in expected_object: + yield service_name, input_params, expected_object['endpoint'] + if errors and 'error' in expected_object: + yield service_name, input_params, expected_object['error'] + + +def iter_e2e_test_cases_that_produce(endpoints=False, errors=False): + for service_name, test in iter_all_test_cases(): + # Not all test cases contain operation inputs for end-to-end tests. + if 'operationInputs' not in test: + continue + # Each test case can contain a list of input sets for the same + # expected result. + for op_inputs in test['operationInputs']: + op_params = op_inputs.get('operationParams', {}) + # Test cases that use invalid bucket names as inputs fail in + # botocore because botocore validated bucket names before running + # endpoint resolution. + if op_params.get('Bucket') in ['bucket name', 'example.com#']: + continue + op_name = op_inputs['operationName'] + builtins = op_inputs.get('builtInParams', {}) + + expected_object = test['expect'] + if endpoints and 'endpoint' in expected_object: + expected_endpoint = expected_object['endpoint'] + expected_props = expected_endpoint.get('properties', {}) + expected_authschemes = [ + auth_scheme['name'] + for auth_scheme in expected_props.get('authSchemes', []) + ] + yield pytest.param( + service_name, + op_name, + op_params, + builtins, + expected_endpoint, + marks=pytest.mark.skipif( + 'sigv4a' in expected_authschemes and not HAS_CRT, + reason="Test case expects sigv4a which requires CRT", + ), + ) + if errors and 'error' in expected_object: + yield pytest.param( + service_name, + op_name, + op_params, + builtins, + expected_object['error'], + ) + + +@pytest.mark.parametrize( + 'service_name, input_params, expected_endpoint', + iter_provider_test_cases_that_produce(endpoints=True), +) +def test_endpoint_provider_test_cases_yielding_endpoints( + partitions, service_name, input_params, expected_endpoint +): + ruleset = LOADER.load_service_model(service_name, 'endpoint-rule-set-1') + endpoint_provider = EndpointProvider(ruleset, partitions) + endpoint = endpoint_provider.resolve_endpoint(**input_params) + assert endpoint.url == expected_endpoint['url'] + assert endpoint.properties == expected_endpoint.get('properties', {}) + assert endpoint.headers == expected_endpoint.get('headers', {}) + + +@pytest.mark.parametrize( + 'service_name, input_params, expected_error', + iter_provider_test_cases_that_produce(errors=True), +) +def test_endpoint_provider_test_cases_yielding_errors( + partitions, service_name, input_params, expected_error +): + ruleset = LOADER.load_service_model(service_name, 'endpoint-rule-set-1') + endpoint_provider = EndpointProvider(ruleset, partitions) + with pytest.raises(EndpointResolutionError) as exc_info: + endpoint_provider.resolve_endpoint(**input_params) + assert str(exc_info.value) == expected_error + + +@pytest.mark.parametrize( + 'service_name, op_name, op_params, builtin_params, expected_endpoint', + iter_e2e_test_cases_that_produce(endpoints=True), +) +def test_end_to_end_test_cases_yielding_endpoints( + patched_session, + service_name, + op_name, + op_params, + builtin_params, + expected_endpoint, +): + def builtin_overwriter_handler(builtins, **kwargs): + # must edit builtins dict in place but need to erase all existing + # entries + for key in list(builtins.keys()): + del builtins[key] + for key, val in builtin_params.items(): + builtins[key] = val + + region = builtin_params.get('AWS::Region', 'us-east-1') + client = patched_session.create_client( + service_name, + region_name=region, + # endpoint ruleset test cases do not account for host prefixes from the + # operation model + config=Config(inject_host_prefix=False), + ) + client.meta.events.register_last( + 'before-endpoint-resolution', builtin_overwriter_handler + ) + with ClientHTTPStubber(client, strict=True) as http_stubber: + http_stubber.add_response(status=418) + op_fn = getattr(client, xform_name(op_name)) + try: + op_fn(**op_params) + except (ClientError, ResponseParserError): + pass + assert len(http_stubber.requests) > 0 + actual_url = http_stubber.requests[0].url + assert actual_url.startswith( + expected_endpoint['url'] + ), f"{actual_url} does not start with {expected_endpoint['url']}" + + +@pytest.mark.parametrize( + 'service_name, op_name, op_params, builtin_params, expected_error', + iter_e2e_test_cases_that_produce(errors=True), +) +def test_end_to_end_test_cases_yielding_errors( + patched_session, + service_name, + op_name, + op_params, + builtin_params, + expected_error, +): + def builtin_overwriter_handler(builtins, **kwargs): + # must edit builtins dict in place but need to erase all existing + # entries + for key in list(builtins.keys()): + del builtins[key] + for key, val in builtin_params.items(): + builtins[key] = val + + region = builtin_params.get('AWS::Region', 'us-east-1') + client = patched_session.create_client(service_name, region_name=region) + client.meta.events.register_last( + 'before-endpoint-resolution', builtin_overwriter_handler + ) + with ClientHTTPStubber(client, strict=True) as http_stubber: + http_stubber.add_response(status=418) + op_fn = getattr(client, xform_name(op_name)) + with pytest.raises(BotoCoreError): + try: + op_fn(**op_params) + except (ClientError, ResponseParserError): + pass + assert len(http_stubber.requests) == 0 diff --git a/tests/functional/test_eventbridge.py b/tests/functional/test_eventbridge.py index 634af362..c732b39b 100644 --- a/tests/functional/test_eventbridge.py +++ b/tests/functional/test_eventbridge.py @@ -143,9 +143,8 @@ class TestClientEvents(BaseSessionTest): default_args = self._default_put_events_args() endpoint_id = "badactor.com?foo=bar" - with pytest.raises(InvalidEndpointConfigurationError) as e: + with pytest.raises(InvalidEndpointConfigurationError): client.put_events(EndpointId=endpoint_id, **default_args) - assert "EndpointId is not a valid hostname component" in str(e.value) @requires_crt() def test_put_event_bad_endpoint_id_explicit_config(self): @@ -159,9 +158,8 @@ class TestClientEvents(BaseSessionTest): default_args = self._default_put_events_args() endpoint_id = "badactor.com?foo=bar" - with pytest.raises(InvalidEndpointConfigurationError) as e: + with pytest.raises(InvalidEndpointConfigurationError): client.put_events(EndpointId=endpoint_id, **default_args) - assert "EndpointId is not a valid hostname component" in str(e.value) @requires_crt() def test_put_event_empty_endpoint_id(self): @@ -171,9 +169,8 @@ class TestClientEvents(BaseSessionTest): default_args = self._default_put_events_args() endpoint_id = "" - with pytest.raises(InvalidEndpointConfigurationError) as e: + with pytest.raises(InvalidEndpointConfigurationError): client.put_events(EndpointId=endpoint_id, **default_args) - assert "EndpointId must not be a zero length string" in str(e.value) @requires_crt() def test_put_event_empty_endpoint_id_explicit_config(self): @@ -187,9 +184,8 @@ class TestClientEvents(BaseSessionTest): default_args = self._default_put_events_args() endpoint_id = "" - with pytest.raises(InvalidEndpointConfigurationError) as e: + with pytest.raises(InvalidEndpointConfigurationError): client.put_events(EndpointId=endpoint_id, **default_args) - assert "EndpointId must not be a zero length string" in str(e.value) def test_put_event_default_dualstack_endpoint(self): config = Config(use_dualstack_endpoint=True, use_fips_endpoint=False) @@ -248,12 +244,8 @@ class TestClientEvents(BaseSessionTest): default_args = self._default_put_events_args() endpoint_id = "abc123.456def" - with pytest.raises(InvalidEndpointConfigurationError) as e: + with pytest.raises(InvalidEndpointConfigurationError): client.put_events(EndpointId=endpoint_id, **default_args) - assert ( - "FIPS is not supported with EventBridge multi-region endpoints" - in str(e.value) - ) def test_put_events_default_dualstack_fips_endpoint(self): config = Config(use_dualstack_endpoint=True, use_fips_endpoint=True) @@ -348,5 +340,5 @@ class TestClientEvents(BaseSessionTest): ("EndpointId", endpoint_id), ], ) - assert stubber.requests[0].url == "https://example.org" + assert stubber.requests[0].url == "https://example.org/" self._assert_sigv4a_headers(stubber.requests[0]) diff --git a/tests/functional/test_importexport.py b/tests/functional/test_importexport.py new file mode 100644 index 00000000..eea88588 --- /dev/null +++ b/tests/functional/test_importexport.py @@ -0,0 +1,51 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +from tests import BaseSessionTest, ClientHTTPStubber + + +class TestImportexport(BaseSessionTest): + def create_client_and_stubber(self, service_name, region_name=None): + if region_name is None: + region_name = 'us-west-2' + + client = self.session.create_client(service_name, region_name) + http_stubber = ClientHTTPStubber(client) + + return client, http_stubber + + def test_importexport_signature_version(self): + """The importexport service has sigv2 registered as its "signature_version" + in the service model. While this was historically true, they migrated to + sigv4 with the introduction of endpoints.json. + + This test ensures we always choose sigv4 regardless of what the model states. + """ + client, stubber = self.create_client_and_stubber('importexport') + importexport_response = ( + b'\n\n' + b"" + b"" + b"" + ) + + # Confirm we've ignored the model signatureVersion and chosen v4 + assert client.meta.config.signature_version == "v4" + with stubber: + stubber.add_response(body=importexport_response) + client.cancel_job(JobId="12345") + + # Validate we actually signed with sigv4 + auth_header = stubber.requests[0].headers.get('Authorization', '') + assert auth_header.startswith(b"AWS4-HMAC-SHA256") + assert b"aws4_request" in auth_header diff --git a/tests/functional/test_model_backcompat.py b/tests/functional/test_model_backcompat.py index 9a254d7e..9a7f234c 100644 --- a/tests/functional/test_model_backcompat.py +++ b/tests/functional/test_model_backcompat.py @@ -37,9 +37,9 @@ def test_old_model_continues_to_work(): # client name. loader.search_paths.insert(0, TEST_MODELS_DIR) - # The model dir we copied was renamed to 'custom-lambda' - # to ensure we're loading our version of the model and not - # the built in one. + # The model dir we copied from botocore/data/acm was renamed to + # 'custom-acm' to ensure we're loading our version of the model and + # not the built in one. client = session.create_client( 'custom-acm', region_name='us-west-2', diff --git a/tests/functional/test_model_completeness.py b/tests/functional/test_model_completeness.py index 6be629a5..ec77a329 100644 --- a/tests/functional/test_model_completeness.py +++ b/tests/functional/test_model_completeness.py @@ -10,16 +10,21 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. +import os + import pytest from botocore.exceptions import DataNotFoundError from botocore.loaders import Loader -from botocore.session import Session + +LOADER = Loader() +AVAILABLE_SERVICES = LOADER.list_available_services(type_name='service-2') +TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "endpoint-rules") def _paginators_and_waiters_test_cases(): - for service_name in Session().get_available_services(): - versions = Loader().list_api_versions(service_name, 'service-2') + for service_name in AVAILABLE_SERVICES: + versions = LOADER.list_api_versions(service_name, 'service-2') if len(versions) > 1: for type_name in ['paginators-1', 'waiters-2']: yield service_name, type_name, versions[-2], versions[-1] @@ -34,15 +39,41 @@ def test_paginators_and_waiters_are_not_lost_in_new_version( ): # Make sure if a paginator and/or waiter exists in previous version, # there will be a successor existing in latest version. - loader = Loader() try: - loader.load_service_model(service_name, type_name, previous_version) + LOADER.load_service_model(service_name, type_name, previous_version) except DataNotFoundError: pass else: try: - loader.load_service_model(service_name, type_name, latest_version) + LOADER.load_service_model(service_name, type_name, latest_version) except DataNotFoundError as e: raise AssertionError( f"{type_name} must exist for {service_name}: {e}" ) + + +def _endpoint_rule_set_cases(): + for service_name in AVAILABLE_SERVICES: + versions = LOADER.list_api_versions(service_name, 'service-2') + for version in versions: + yield service_name, version + + +# endpoint tests validations are included in +# tests/functional/test_endpoint_rulesets.py +@pytest.mark.parametrize( + "service_name, version", + _endpoint_rule_set_cases(), +) +def test_all_endpoint_rule_sets_exist(service_name, version): + """Tests the existence of endpoint-rule-set-1.json for each service + and verifies that content is present.""" + type_name = 'endpoint-rule-set-1' + data = LOADER.load_service_model(service_name, type_name, version) + assert len(data['rules']) >= 1 + + +def test_partitions_exists(): + """Tests the existence of partitions.json and verifies that content is present.""" + data = LOADER.load_data('partitions') + assert len(data['partitions']) >= 4 diff --git a/tests/functional/test_mturk.py b/tests/functional/test_mturk.py index b30461b2..bd4e4267 100644 --- a/tests/functional/test_mturk.py +++ b/tests/functional/test_mturk.py @@ -23,7 +23,7 @@ class TestMturk(BaseSessionTest): self.stubber.activate() def tearDown(self): - super().setUp() + super().tearDown() self.stubber.deactivate() def test_list_hits_aliased(self): diff --git a/tests/functional/test_paginator_config.py b/tests/functional/test_paginator_config.py index 1ce1e9f0..267d8b73 100644 --- a/tests/functional/test_paginator_config.py +++ b/tests/functional/test_paginator_config.py @@ -253,12 +253,6 @@ def _validate_output_keys_match(operation_name, page_config, service_model): output_members.remove(member) if output_members: - for member in output_members: - key = "{}.{}.{}".format( - service_model.service_name, operation_name, member - ) - with open('/tmp/blah', 'a') as f: - f.write("'%s',\n" % key) raise AssertionError( "There are member names in the output shape of " "%s that are not accounted for in the pagination " diff --git a/tests/functional/test_regions.py b/tests/functional/test_regions.py index bd7e1604..74aaeb77 100644 --- a/tests/functional/test_regions.py +++ b/tests/functional/test_regions.py @@ -14,7 +14,7 @@ import pytest from botocore.client import ClientEndpointBridge from botocore.exceptions import NoRegionError -from tests import BaseSessionTest, ClientHTTPStubber, create_session, mock +from tests import BaseSessionTest, ClientHTTPStubber, mock # NOTE: sqs endpoint updated to be the CN in the SSL cert because # a bug in python2.6 prevents subjectAltNames from being parsed @@ -42,7 +42,7 @@ KNOWN_REGIONS = { 'elasticache': 'elasticache.ap-northeast-1.amazonaws.com', 'elasticbeanstalk': 'elasticbeanstalk.ap-northeast-1.amazonaws.com', 'elasticloadbalancing': 'elasticloadbalancing.ap-northeast-1.amazonaws.com', - 'elasticmapreduce': 'ap-northeast-1.elasticmapreduce.amazonaws.com', + 'elasticmapreduce': 'elasticmapreduce.ap-northeast-1.amazonaws.com', 'elastictranscoder': 'elastictranscoder.ap-northeast-1.amazonaws.com', 'glacier': 'glacier.ap-northeast-1.amazonaws.com', 'iot': 'iot.ap-northeast-1.amazonaws.com', @@ -56,7 +56,7 @@ KNOWN_REGIONS = { 's3': 's3.ap-northeast-1.amazonaws.com', 'sdb': 'sdb.ap-northeast-1.amazonaws.com', 'sns': 'sns.ap-northeast-1.amazonaws.com', - 'sqs': 'ap-northeast-1.queue.amazonaws.com', + 'sqs': 'sqs.ap-northeast-1.amazonaws.com', 'storagegateway': 'storagegateway.ap-northeast-1.amazonaws.com', 'streams.dynamodb': 'streams.dynamodb.ap-northeast-1.amazonaws.com', 'sts': 'sts.ap-northeast-1.amazonaws.com', @@ -77,7 +77,7 @@ KNOWN_REGIONS = { 'elasticache': 'elasticache.ap-southeast-1.amazonaws.com', 'elasticbeanstalk': 'elasticbeanstalk.ap-southeast-1.amazonaws.com', 'elasticloadbalancing': 'elasticloadbalancing.ap-southeast-1.amazonaws.com', - 'elasticmapreduce': 'ap-southeast-1.elasticmapreduce.amazonaws.com', + 'elasticmapreduce': 'elasticmapreduce.ap-southeast-1.amazonaws.com', 'elastictranscoder': 'elastictranscoder.ap-southeast-1.amazonaws.com', 'kinesis': 'kinesis.ap-southeast-1.amazonaws.com', 'kms': 'kms.ap-southeast-1.amazonaws.com', @@ -88,7 +88,7 @@ KNOWN_REGIONS = { 's3': 's3.ap-southeast-1.amazonaws.com', 'sdb': 'sdb.ap-southeast-1.amazonaws.com', 'sns': 'sns.ap-southeast-1.amazonaws.com', - 'sqs': 'ap-southeast-1.queue.amazonaws.com', + 'sqs': 'sqs.ap-southeast-1.amazonaws.com', 'storagegateway': 'storagegateway.ap-southeast-1.amazonaws.com', 'streams.dynamodb': 'streams.dynamodb.ap-southeast-1.amazonaws.com', 'sts': 'sts.ap-southeast-1.amazonaws.com', @@ -112,7 +112,7 @@ KNOWN_REGIONS = { 'elasticache': 'elasticache.ap-southeast-2.amazonaws.com', 'elasticbeanstalk': 'elasticbeanstalk.ap-southeast-2.amazonaws.com', 'elasticloadbalancing': 'elasticloadbalancing.ap-southeast-2.amazonaws.com', - 'elasticmapreduce': 'ap-southeast-2.elasticmapreduce.amazonaws.com', + 'elasticmapreduce': 'elasticmapreduce.ap-southeast-2.amazonaws.com', 'glacier': 'glacier.ap-southeast-2.amazonaws.com', 'kinesis': 'kinesis.ap-southeast-2.amazonaws.com', 'kms': 'kms.ap-southeast-2.amazonaws.com', @@ -123,7 +123,7 @@ KNOWN_REGIONS = { 's3': 's3.ap-southeast-2.amazonaws.com', 'sdb': 'sdb.ap-southeast-2.amazonaws.com', 'sns': 'sns.ap-southeast-2.amazonaws.com', - 'sqs': 'ap-southeast-2.queue.amazonaws.com', + 'sqs': 'sqs.ap-southeast-2.amazonaws.com', 'storagegateway': 'storagegateway.ap-southeast-2.amazonaws.com', 'streams.dynamodb': 'streams.dynamodb.ap-southeast-2.amazonaws.com', 'sts': 'sts.ap-southeast-2.amazonaws.com', @@ -149,7 +149,7 @@ KNOWN_REGIONS = { 'rds': 'rds.cn-north-1.amazonaws.com.cn', 's3': 's3.cn-north-1.amazonaws.com.cn', 'sns': 'sns.cn-north-1.amazonaws.com.cn', - 'sqs': 'cn-north-1.queue.amazonaws.com.cn', + 'sqs': 'sqs.cn-north-1.amazonaws.com.cn', 'storagegateway': 'storagegateway.cn-north-1.amazonaws.com.cn', 'streams.dynamodb': 'streams.dynamodb.cn-north-1.amazonaws.com.cn', 'sts': 'sts.cn-north-1.amazonaws.com.cn', @@ -179,7 +179,7 @@ KNOWN_REGIONS = { 'redshift': 'redshift.eu-central-1.amazonaws.com', 's3': 's3.eu-central-1.amazonaws.com', 'sns': 'sns.eu-central-1.amazonaws.com', - 'sqs': 'eu-central-1.queue.amazonaws.com', + 'sqs': 'sqs.eu-central-1.amazonaws.com', 'storagegateway': 'storagegateway.eu-central-1.amazonaws.com', 'streams.dynamodb': 'streams.dynamodb.eu-central-1.amazonaws.com', 'sts': 'sts.eu-central-1.amazonaws.com', @@ -205,7 +205,7 @@ KNOWN_REGIONS = { 'elasticache': 'elasticache.eu-west-1.amazonaws.com', 'elasticbeanstalk': 'elasticbeanstalk.eu-west-1.amazonaws.com', 'elasticloadbalancing': 'elasticloadbalancing.eu-west-1.amazonaws.com', - 'elasticmapreduce': 'eu-west-1.elasticmapreduce.amazonaws.com', + 'elasticmapreduce': 'elasticmapreduce.eu-west-1.amazonaws.com', 'elastictranscoder': 'elastictranscoder.eu-west-1.amazonaws.com', 'email': 'email.eu-west-1.amazonaws.com', 'glacier': 'glacier.eu-west-1.amazonaws.com', @@ -221,7 +221,7 @@ KNOWN_REGIONS = { 's3': 's3.eu-west-1.amazonaws.com', 'sdb': 'sdb.eu-west-1.amazonaws.com', 'sns': 'sns.eu-west-1.amazonaws.com', - 'sqs': 'eu-west-1.queue.amazonaws.com', + 'sqs': 'sqs.eu-west-1.amazonaws.com', 'ssm': 'ssm.eu-west-1.amazonaws.com', 'storagegateway': 'storagegateway.eu-west-1.amazonaws.com', 'streams.dynamodb': 'streams.dynamodb.eu-west-1.amazonaws.com', @@ -243,14 +243,14 @@ KNOWN_REGIONS = { 'elasticache': 'elasticache.sa-east-1.amazonaws.com', 'elasticbeanstalk': 'elasticbeanstalk.sa-east-1.amazonaws.com', 'elasticloadbalancing': 'elasticloadbalancing.sa-east-1.amazonaws.com', - 'elasticmapreduce': 'sa-east-1.elasticmapreduce.amazonaws.com', + 'elasticmapreduce': 'elasticmapreduce.sa-east-1.amazonaws.com', 'kms': 'kms.sa-east-1.amazonaws.com', 'monitoring': 'monitoring.sa-east-1.amazonaws.com', 'rds': 'rds.sa-east-1.amazonaws.com', 's3': 's3.sa-east-1.amazonaws.com', 'sdb': 'sdb.sa-east-1.amazonaws.com', 'sns': 'sns.sa-east-1.amazonaws.com', - 'sqs': 'sa-east-1.queue.amazonaws.com', + 'sqs': 'sqs.sa-east-1.amazonaws.com', 'storagegateway': 'storagegateway.sa-east-1.amazonaws.com', 'streams.dynamodb': 'streams.dynamodb.sa-east-1.amazonaws.com', 'sts': 'sts.sa-east-1.amazonaws.com', @@ -295,14 +295,14 @@ KNOWN_REGIONS = { 'mobileanalytics': 'mobileanalytics.us-east-1.amazonaws.com', 'monitoring': 'monitoring.us-east-1.amazonaws.com', 'opsworks': 'opsworks.us-east-1.amazonaws.com', - 'rds': 'rds.amazonaws.com', + 'rds': 'rds.us-east-1.amazonaws.com', 'redshift': 'redshift.us-east-1.amazonaws.com', 'route53': 'route53.amazonaws.com', 'route53domains': 'route53domains.us-east-1.amazonaws.com', 's3': 's3.us-east-1.amazonaws.com', 'sdb': 'sdb.amazonaws.com', 'sns': 'sns.us-east-1.amazonaws.com', - 'sqs': 'queue.amazonaws.com', + 'sqs': 'sqs.us-east-1.amazonaws.com', 'ssm': 'ssm.us-east-1.amazonaws.com', 'storagegateway': 'storagegateway.us-east-1.amazonaws.com', 'streams.dynamodb': 'streams.dynamodb.us-east-1.amazonaws.com', @@ -330,7 +330,7 @@ KNOWN_REGIONS = { 'redshift': 'redshift.us-gov-west-1.amazonaws.com', 's3': 's3.us-gov-west-1.amazonaws.com', 'sns': 'sns.us-gov-west-1.amazonaws.com', - 'sqs': 'us-gov-west-1.queue.amazonaws.com', + 'sqs': 'sqs.us-gov-west-1.amazonaws.com', 'sts': 'sts.us-gov-west-1.amazonaws.com', 'swf': 'swf.us-gov-west-1.amazonaws.com', }, @@ -347,7 +347,7 @@ KNOWN_REGIONS = { 'elasticache': 'elasticache.us-west-1.amazonaws.com', 'elasticbeanstalk': 'elasticbeanstalk.us-west-1.amazonaws.com', 'elasticloadbalancing': 'elasticloadbalancing.us-west-1.amazonaws.com', - 'elasticmapreduce': 'us-west-1.elasticmapreduce.amazonaws.com', + 'elasticmapreduce': 'elasticmapreduce.us-west-1.amazonaws.com', 'elastictranscoder': 'elastictranscoder.us-west-1.amazonaws.com', 'glacier': 'glacier.us-west-1.amazonaws.com', 'kinesis': 'kinesis.us-west-1.amazonaws.com', @@ -358,7 +358,7 @@ KNOWN_REGIONS = { 's3': 's3.us-west-1.amazonaws.com', 'sdb': 'sdb.us-west-1.amazonaws.com', 'sns': 'sns.us-west-1.amazonaws.com', - 'sqs': 'us-west-1.queue.amazonaws.com', + 'sqs': 'sqs.us-west-1.amazonaws.com', 'storagegateway': 'storagegateway.us-west-1.amazonaws.com', 'streams.dynamodb': 'streams.dynamodb.us-west-1.amazonaws.com', 'sts': 'sts.us-west-1.amazonaws.com', @@ -385,7 +385,7 @@ KNOWN_REGIONS = { 'elasticbeanstalk': 'elasticbeanstalk.us-west-2.amazonaws.com', 'elasticfilesystem': 'elasticfilesystem.us-west-2.amazonaws.com', 'elasticloadbalancing': 'elasticloadbalancing.us-west-2.amazonaws.com', - 'elasticmapreduce': 'us-west-2.elasticmapreduce.amazonaws.com', + 'elasticmapreduce': 'elasticmapreduce.us-west-2.amazonaws.com', 'elastictranscoder': 'elastictranscoder.us-west-2.amazonaws.com', 'email': 'email.us-west-2.amazonaws.com', 'glacier': 'glacier.us-west-2.amazonaws.com', @@ -400,7 +400,7 @@ KNOWN_REGIONS = { 's3': 's3.us-west-2.amazonaws.com', 'sdb': 'sdb.us-west-2.amazonaws.com', 'sns': 'sns.us-west-2.amazonaws.com', - 'sqs': 'us-west-2.queue.amazonaws.com', + 'sqs': 'sqs.us-west-2.amazonaws.com', 'ssm': 'ssm.us-west-2.amazonaws.com', 'storagegateway': 'storagegateway.us-west-2.amazonaws.com', 'streams.dynamodb': 'streams.dynamodb.us-west-2.amazonaws.com', @@ -425,15 +425,6 @@ KNOWN_AWS_PARTITION_WIDE = { } -def _get_patched_session(): - with mock.patch('os.environ') as environ: - environ['AWS_ACCESS_KEY_ID'] = 'access_key' - environ['AWS_SECRET_ACCESS_KEY'] = 'secret_key' - environ['AWS_CONFIG_FILE'] = 'no-exist-foo' - session = create_session() - return session - - def _known_endpoints_by_region(): for region_name, service_dict in KNOWN_REGIONS.items(): for service_name, endpoint in service_dict.items(): @@ -445,7 +436,7 @@ def _known_endpoints_by_region(): _known_endpoints_by_region(), ) def test_single_service_region_endpoint( - service_name, region_name, expected_endpoint + patched_session, service_name, region_name, expected_endpoint ): # Verify the actual values from the partition files. While # TestEndpointHeuristics verified the generic functionality given any @@ -453,9 +444,7 @@ def test_single_service_region_endpoint( # fixed list of known endpoints. This list doesn't need to be kept 100% up # to date, but serves as a basis for regressions as the endpoint data # logic evolves. - resolver = _get_patched_session()._get_internal_component( - 'endpoint_resolver' - ) + resolver = patched_session._get_internal_component('endpoint_resolver') bridge = ClientEndpointBridge(resolver, None, None) result = bridge.resolve(service_name, region_name) expected = 'https://%s' % expected_endpoint @@ -463,8 +452,8 @@ def test_single_service_region_endpoint( # Ensure that all S3 regions use s3v4 instead of v4 -def test_all_s3_endpoints_have_s3v4(): - session = _get_patched_session() +def test_all_s3_endpoints_have_s3v4(patched_session): + session = patched_session partitions = session.get_available_partitions() resolver = session._get_internal_component('endpoint_resolver') for partition_name in partitions: @@ -477,19 +466,17 @@ def test_all_s3_endpoints_have_s3v4(): @pytest.mark.parametrize( "service_name, expected_endpoint", KNOWN_AWS_PARTITION_WIDE.items() ) -def test_single_service_partition_endpoint(service_name, expected_endpoint): - resolver = _get_patched_session()._get_internal_component( - 'endpoint_resolver' - ) +def test_single_service_partition_endpoint( + patched_session, service_name, expected_endpoint +): + resolver = patched_session._get_internal_component('endpoint_resolver') bridge = ClientEndpointBridge(resolver) result = bridge.resolve(service_name) assert result['endpoint_url'] == expected_endpoint -def test_non_partition_endpoint_requires_region(): - resolver = _get_patched_session()._get_internal_component( - 'endpoint_resolver' - ) +def test_non_partition_endpoint_requires_region(patched_session): + resolver = patched_session._get_internal_component('endpoint_resolver') with pytest.raises(NoRegionError): resolver.construct_endpoint('ec2') @@ -546,3 +533,15 @@ class TestEndpointResolution(BaseSessionTest): self.assertTrue( stubber.requests[0].url.startswith('https://iam.amazonaws.com/') ) + + +@pytest.mark.parametrize("is_builtin", [True, False]) +def test_endpoint_resolver_knows_its_datasource(patched_session, is_builtin): + # The information whether or not the endpoints.json file was loaded from + # the builtin data directory or not should be passed from Loader to + # EndpointResolver. + session = patched_session + loader = session.get_component('data_loader') + with mock.patch.object(loader, 'is_builtin_path', return_value=is_builtin): + resolver = session._get_internal_component('endpoint_resolver') + assert resolver.uses_builtin_data == is_builtin diff --git a/tests/functional/test_s3.py b/tests/functional/test_s3.py index bdcc417d..7f9b2e81 100644 --- a/tests/functional/test_s3.py +++ b/tests/functional/test_s3.py @@ -595,8 +595,8 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): config=Config(s3={"use_arn_region": False}), ) self.http_stubber.add_response() - self.client.list_objects(Bucket=accesspoint_arn) - self.assert_signing_region(self.http_stubber.requests[0], "us-east-1") + with self.assertRaises(UnsupportedS3AccesspointConfigurationError): + self.client.list_objects(Bucket=accesspoint_arn) def test_presign_signs_with_arn_region(self): accesspoint_arn = ( @@ -620,10 +620,10 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): signature_version="s3v4", s3={"use_arn_region": False} ), ) - url = self.client.generate_presigned_url( - "get_object", {"Bucket": accesspoint_arn, "Key": "mykey"} - ) - self.assert_signing_region_in_url(url, "us-east-1") + with self.assertRaises(UnsupportedS3AccesspointConfigurationError): + self.client.generate_presigned_url( + "get_object", {"Bucket": accesspoint_arn, "Key": "mykey"} + ) def test_copy_source_str_with_accesspoint_arn(self): copy_source = ( @@ -716,6 +716,9 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): "s3-outposts.us-west-2.amazonaws.com" ) self.assert_endpoint(request, expected_endpoint) + sha_header = request.headers.get("x-amz-content-sha256") + self.assertIsNotNone(sha_header) + self.assertNotEqual(sha_header, b"UNSIGNED-PAYLOAD") def test_basic_outpost_arn_custom_endpoint(self): outpost_arn = ( @@ -902,9 +905,7 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): config=Config(s3={"use_arn_region": False}), ) expected_exception = UnsupportedS3AccesspointConfigurationError - with self.assertRaisesRegex( - expected_exception, "ARNs in another region are not allowed" - ): + with self.assertRaises(expected_exception): self.client.list_objects(Bucket=s3_object_lambda_arn) def test_s3_object_lambda_with_global_regions(self): @@ -913,12 +914,11 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): "accesspoint/mybanner" ) expected_exception = UnsupportedS3AccesspointConfigurationError - expected_msg = "a regional endpoint must be specified" for region in ("aws-global", "s3-external-1"): self.client, _ = self.create_stubbed_s3_client( region_name=region, config=Config(s3={"use_arn_region": False}) ) - with self.assertRaisesRegex(expected_exception, expected_msg): + with self.assertRaises(expected_exception): self.client.list_objects(Bucket=s3_object_lambda_arn) def test_s3_object_lambda_arn_with_us_east_1(self): @@ -959,6 +959,9 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): "myBanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com" ) self.assert_endpoint(request, expected_endpoint) + sha_header = request.headers.get("x-amz-content-sha256") + self.assertIsNotNone(sha_header) + self.assertNotEqual(sha_header, b"UNSIGNED-PAYLOAD") def test_outposts_raise_exception_if_fips_region(self): outpost_arn = ( @@ -969,9 +972,7 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): region_name="fips-east-1" ) expected_exception = UnsupportedS3AccesspointConfigurationError - with self.assertRaisesRegex( - expected_exception, "outpost ARNs do not support FIPS" - ): + with self.assertRaises(expected_exception): self.client.list_objects(Bucket=outpost_arn) def test_accesspoint_fips_raise_for_cross_region(self): @@ -984,9 +985,7 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): config=Config(s3={"use_arn_region": False}), ) expected_exception = UnsupportedS3AccesspointConfigurationError - with self.assertRaisesRegex( - expected_exception, "ARNs in another region are not allowed" - ): + with self.assertRaises(expected_exception): self.client.list_objects(Bucket=s3_accesspoint_arn) def test_accesspoint_fips_raise_if_fips_in_arn(self): @@ -998,9 +997,7 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): region_name="fips-us-gov-west-1", ) expected_exception = UnsupportedS3AccesspointConfigurationError - with self.assertRaisesRegex( - expected_exception, "Invalid ARN, FIPS region not allowed in ARN." - ): + with self.assertRaises(expected_exception): self.client.list_objects(Bucket=s3_accesspoint_arn) def test_accesspoint_with_global_regions(self): @@ -1012,9 +1009,7 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): config=Config(s3={"use_arn_region": False}), ) expected_exception = UnsupportedS3AccesspointConfigurationError - with self.assertRaisesRegex( - expected_exception, "regional endpoint must be specified" - ): + with self.assertRaises(expected_exception): self.client.list_objects(Bucket=s3_accesspoint_arn) # It shouldn't raise if use_arn_region is True @@ -1081,26 +1076,6 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): for region, config in config_tests: self._assert_mrap_config_failure(mrap_arn, region, config=config) - @requires_crt() - def test_mrap_arn_with_custom_endpoint(self): - mrap_arn = "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap" - endpoint_url = "https://test.endpoint.amazonaws.com" - expected = "mfzwi23gnjvgw.mrap.test.endpoint.amazonaws.com" - self._assert_mrap_endpoint( - mrap_arn, "us-east-1", expected, endpoint_url=endpoint_url - ) - - @requires_crt() - def test_mrap_arn_with_vpc_endpoint(self): - mrap_arn = "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap" - endpoint_url = "https://vpce-123-abc.vpce.s3-global.amazonaws.com" - expected = ( - "mfzwi23gnjvgw.mrap.vpce-123-abc.vpce.s3-global.amazonaws.com" - ) - self._assert_mrap_endpoint( - mrap_arn, "us-west-2", expected, endpoint_url=endpoint_url - ) - @requires_crt() def test_mrap_arn_with_disable_config_enabled(self): mrap_arn = "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap" @@ -1209,7 +1184,7 @@ class TestAccesspointArn(BaseS3ClientConfigurationTest): self, arn, region, expected, endpoint_url=None, config=None ): presigned_url = self._get_presigned_url( - arn, region, endpoint_url=None, config=None + arn, region, endpoint_url=endpoint_url, config=config ) url_parts = urlsplit(presigned_url) self.assertEqual(expected, url_parts.hostname) @@ -1433,6 +1408,10 @@ class TestS3SigV4(BaseS3OperationTest): self.assertIn("content-md5", self.get_sent_headers()) def test_content_sha256_set_if_config_value_is_true(self): + # By default, put_object() does not include an x-amz-content-sha256 + # header because it also includes a `Content-MD5` header. The + # `payload_signing_enabled` config overrides this logic and forces the + # header. config = Config( signature_version="s3v4", s3={"payload_signing_enabled": True} ) @@ -1462,6 +1441,56 @@ class TestS3SigV4(BaseS3OperationTest): sha_header = sent_headers.get("x-amz-content-sha256") self.assertEqual(sha_header, b"UNSIGNED-PAYLOAD") + def test_content_sha256_set_if_config_value_not_set_put_object(self): + # The default behavior matches payload_signing_enabled=False. For + # operations where the `Content-MD5` is present this means that + # `x-amz-content-sha256` is present but not set. + config = Config(signature_version="s3v4") + self.client = self.session.create_client( + "s3", self.region, config=config + ) + self.http_stubber = ClientHTTPStubber(self.client) + self.http_stubber.add_response() + with self.http_stubber: + self.client.put_object(Bucket="foo", Key="bar", Body="baz") + sent_headers = self.get_sent_headers() + sha_header = sent_headers.get("x-amz-content-sha256") + self.assertEqual(sha_header, b"UNSIGNED-PAYLOAD") + + def test_content_sha256_set_if_config_value_not_set_list_objects(self): + # The default behavior matches payload_signing_enabled=False. For + # operations where the `Content-MD5` is not present, this means that + # `x-amz-content-sha256` is present and set. + config = Config(signature_version="s3v4") + self.client = self.session.create_client( + "s3", self.region, config=config + ) + self.http_stubber = ClientHTTPStubber(self.client) + self.http_stubber.add_response() + with self.http_stubber: + self.client.list_objects(Bucket="foo") + sent_headers = self.get_sent_headers() + sha_header = sent_headers.get("x-amz-content-sha256") + self.assertIsNotNone(sha_header) + self.assertNotEqual(sha_header, b"UNSIGNED-PAYLOAD") + + def test_content_sha256_set_s3_on_outpost(self): + # S3 on Outpost bucket names should behave the same way. + config = Config(signature_version="s3v4") + bucket = ( + 'test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3' + ) + self.client = self.session.create_client( + "s3", self.region, config=config + ) + self.http_stubber = ClientHTTPStubber(self.client) + self.http_stubber.add_response() + with self.http_stubber: + self.client.list_objects(Bucket=bucket) + sent_headers = self.get_sent_headers() + sha_header = sent_headers.get("x-amz-content-sha256") + self.assertNotEqual(sha_header, b"UNSIGNED-PAYLOAD") + def test_content_sha256_set_if_md5_is_unavailable(self): with mock.patch("botocore.compat.MD5_AVAILABLE", False): with mock.patch("botocore.utils.MD5_AVAILABLE", False): @@ -1686,10 +1715,7 @@ class TestFipsRegionRedirect(BaseS3OperationTest): self.client = self.session.create_client( "s3", "fips-us-west-2", - config=Config( - signature_version="s3v4", - s3={"addressing_style": "path"}, - ), + config=Config(signature_version="s3v4"), ) self.http_stubber = ClientHTTPStubber(self.client) @@ -1749,12 +1775,12 @@ class TestFipsRegionRedirect(BaseS3OperationTest): self.assertEqual(len(self.http_stubber.requests), 2) initial_url = ( - "https://s3-fips.us-west-2.amazonaws.com/foo" "?encoding-type=url" + "https://foo.s3-fips.us-west-2.amazonaws.com/?encoding-type=url" ) self.assertEqual(self.http_stubber.requests[0].url, initial_url) fixed_url = ( - "https://s3-fips.us-west-1.amazonaws.com/foo" "?encoding-type=url" + "https://foo.s3-fips.us-west-1.amazonaws.com/?encoding-type=url" ) self.assertEqual(self.http_stubber.requests[1].url, fixed_url) @@ -1776,12 +1802,12 @@ class TestFipsRegionRedirect(BaseS3OperationTest): self.assertEqual(len(self.http_stubber.requests), 3) initial_url = ( - "https://s3-fips.us-west-2.amazonaws.com/foo" "?encoding-type=url" + "https://foo.s3-fips.us-west-2.amazonaws.com/?encoding-type=url" ) self.assertEqual(self.http_stubber.requests[0].url, initial_url) fixed_url = ( - "https://s3-fips.us-west-1.amazonaws.com/foo" "?encoding-type=url" + "https://foo.s3-fips.us-west-1.amazonaws.com/?encoding-type=url" ) self.assertEqual(self.http_stubber.requests[1].url, fixed_url) self.assertEqual(self.http_stubber.requests[2].url, fixed_url) @@ -1828,7 +1854,7 @@ class TestFipsRegionRedirect(BaseS3OperationTest): ) self.assertEqual(len(http_stubber.requests), 4) - initial_url = "https://foo.s3-fips.aws-global.amazonaws.com/bar" + initial_url = "https://foo.s3-fips.us-east-1.amazonaws.com/bar" self.assertEqual(http_stubber.requests[0].url, initial_url) fixed_url = "https://foo.s3-fips.us-east-2.amazonaws.com/bar" @@ -1924,7 +1950,7 @@ class TestGeneratePresigned(BaseS3OperationTest): config = Config(signature_version=botocore.UNSIGNED) client = self.session.create_client("s3", "us-east-2", config=config) url = client.generate_presigned_url(ClientMethod="list_buckets") - self.assertEqual("https://s3.us-east-2.amazonaws.com/", url) + self.assertEqual("https://s3.amazonaws.com/", url) def test_presign_url_with_ssec(self): config = Config(signature_version="s3") @@ -1967,7 +1993,7 @@ class TestGeneratePresigned(BaseS3OperationTest): ) expected_exception = UnsupportedS3ConfigurationError with self.assertRaisesRegex( - expected_exception, "S3 Accelerate does not have any FIPS" + expected_exception, "Accelerate cannot be used with FIPS" ): client.generate_presigned_url( ClientMethod="get_object", @@ -2090,6 +2116,17 @@ CHECKSUM_TEST_CASES = [ ), ] +accesspoint_arn = "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" +accesspoint_arn_cn = ( + "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint" +) +accesspoint_arn_gov = ( + "arn:aws-us-gov:s3:us-gov-west-1:123456789012:accesspoint:myendpoint" +) +accesspoint_cross_region_arn_gov = ( + "arn:aws-us-gov:s3:us-gov-east-1:123456789012:accesspoint:myendpoint" +) + @pytest.mark.parametrize("operation, operation_kwargs", CHECKSUM_TEST_CASES) def test_checksums_included_in_expected_operations( @@ -2513,12 +2550,10 @@ def _s3_addressing_test_cases(): bucket="bucket", key="key", s3_config=use_dualstack, - # Pseudo-regions should not have any special resolving logic even when - # the endpoint won't work as we do not have the metadata to know that - # a region does not support dualstack. So just format it based on the - # region name. + # The aws-global pseudo region does not support dualstack and should + # be resolved to us-east-1. expected_url=( - "https://bucket.s3.dualstack.aws-global.amazonaws.com/key" + "https://bucket.s3.dualstack.us-east-1.amazonaws.com/key" ), ) yield dict( @@ -2698,9 +2733,6 @@ def _s3_addressing_test_cases(): ) # Access-point arn cases - accesspoint_arn = ( - "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" - ) yield dict( region="us-west-2", bucket=accesspoint_arn, @@ -2749,16 +2781,6 @@ def _s3_addressing_test_cases(): "us-west-2.amazonaws.com/key" ), ) - yield dict( - region="us-east-1", - bucket=accesspoint_arn, - key="key", - s3_config={"use_arn_region": False}, - expected_url=( - "https://myendpoint-123456789012.s3-accesspoint." - "us-east-1.amazonaws.com/key" - ), - ) yield dict( region="s3-external-1", bucket=accesspoint_arn, @@ -2780,16 +2802,6 @@ def _s3_addressing_test_cases(): "us-west-2.amazonaws.com/key" ), ) - yield dict( - region="unknown", - bucket=accesspoint_arn, - key="key", - s3_config={"use_arn_region": False}, - expected_url=( - "https://myendpoint-123456789012.s3-accesspoint." - "unknown.amazonaws.com/key" - ), - ) yield dict( region="unknown", bucket=accesspoint_arn, @@ -2800,9 +2812,6 @@ def _s3_addressing_test_cases(): "us-west-2.amazonaws.com/key" ), ) - accesspoint_arn_cn = ( - "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint" - ) yield dict( region="cn-north-1", bucket=accesspoint_arn_cn, @@ -2821,22 +2830,6 @@ def _s3_addressing_test_cases(): "cn-north-1.amazonaws.com.cn/key" ), ) - yield dict( - region="cn-northwest-1", - bucket=accesspoint_arn_cn, - key="key", - s3_config={"use_arn_region": False}, - expected_url=( - "https://myendpoint-123456789012.s3-accesspoint." - "cn-northwest-1.amazonaws.com.cn/key" - ), - ) - accesspoint_arn_gov = ( - "arn:aws-us-gov:s3:us-gov-west-1:123456789012:accesspoint:myendpoint" - ) - accesspoint_cross_region_arn_gov = ( - "arn:aws-us-gov:s3:us-gov-east-1:123456789012:accesspoint:myendpoint" - ) yield dict( region="us-gov-west-1", bucket=accesspoint_arn_gov, @@ -2923,16 +2916,6 @@ def _s3_addressing_test_cases(): "us-west-2.amazonaws.com/key" ), ) - yield dict( - region="us-east-1", - bucket=accesspoint_arn, - key="key", - s3_config={"use_dualstack_endpoint": True, "use_arn_region": False}, - expected_url=( - "https://myendpoint-123456789012.s3-accesspoint.dualstack." - "us-east-1.amazonaws.com/key" - ), - ) yield dict( region="us-gov-west-1", bucket=accesspoint_arn_gov, @@ -3150,6 +3133,50 @@ def _s3_addressing_test_cases(): ) +def _s3_addressing_invalid_test_cases(): + # client region does not match access point ARN region and use_arn_region + # is False. If sent to service, this results in an "invalid access point" + # response. We expect it to be caught by the S3 endpoints ruleset. + yield dict( + region="us-east-1", + bucket=accesspoint_arn, + key="key", + s3_config={"use_arn_region": False}, + expected_exception_type=UnsupportedS3AccesspointConfigurationError, + expected_exception_regex=( + "region from ARN `us-west-2` does not match client region " + "`us-east-1`" + ), + ) + yield dict( + region="cn-northwest-1", + bucket=accesspoint_arn_cn, + key="key", + s3_config={"use_arn_region": False}, + expected_exception_type=UnsupportedS3AccesspointConfigurationError, + expected_exception_regex=( + "region from ARN `cn-north-1` does not match client region " + "`cn-northwest-1`" + ), + ) + yield dict( + region="unknown", + bucket=accesspoint_arn, + key="key", + s3_config={"use_arn_region": False}, + expected_exception_type=UnsupportedS3AccesspointConfigurationError, + expected_exception_regex=None, + ) + yield dict( + region="us-east-1", + bucket=accesspoint_arn, + key="key", + s3_config={"use_arn_region": False}, + expected_exception_type=UnsupportedS3AccesspointConfigurationError, + expected_exception_regex=None, + ) + + @pytest.mark.parametrize("test_case", _s3_addressing_test_cases()) def test_correct_url_used_for_s3(test_case): # Test that given various sets of config options and bucket names, @@ -3157,6 +3184,13 @@ def test_correct_url_used_for_s3(test_case): _verify_expected_endpoint_url(**test_case) +@pytest.mark.parametrize("test_case", _s3_addressing_invalid_test_cases()) +def test_correct_exception_raise_for_s3(test_case): + # Test that invalid sets of config options and bucket names, result in + # appropriate exceptions. + _verify_expected_exception(**test_case) + + def _verify_expected_endpoint_url( region=None, bucket="bucket", @@ -3167,6 +3201,56 @@ def _verify_expected_endpoint_url( expected_url=None, signature_version=None, use_fips_endpoint=None, +): + s3 = _create_s3_client( + region=region, + is_secure=is_secure, + endpoint_url=customer_provided_endpoint, + s3_config=s3_config, + signature_version=signature_version, + use_fips_endpoint=use_fips_endpoint, + ) + with ClientHTTPStubber(s3) as http_stubber: + http_stubber.add_response() + s3.put_object(Bucket=bucket, Key=key, Body=b"bar") + assert http_stubber.requests[0].url == expected_url + + +def _verify_expected_exception( + expected_exception_type, + expected_exception_regex=None, + region=None, + bucket="bucket", + key="key", + s3_config=None, + is_secure=True, + customer_provided_endpoint=None, + signature_version=None, + use_fips_endpoint=None, +): + s3 = _create_s3_client( + region=region, + is_secure=is_secure, + endpoint_url=customer_provided_endpoint, + s3_config=s3_config, + signature_version=signature_version, + use_fips_endpoint=use_fips_endpoint, + ) + with ClientHTTPStubber(s3) as http_stubber: + http_stubber.add_response() + with pytest.raises( + expected_exception_type, match=expected_exception_regex + ): + s3.put_object(Bucket=bucket, Key=key, Body=b"bar") + + +def _create_s3_client( + region, + is_secure, + endpoint_url, + s3_config, + signature_version, + use_fips_endpoint=None, ): environ = {} with mock.patch("os.environ", environ): @@ -3181,31 +3265,6 @@ def _verify_expected_endpoint_url( s3=s3_config, use_fips_endpoint=use_fips_endpoint, ) - s3 = session.create_client( - "s3", - region_name=region, - use_ssl=is_secure, - config=config, - endpoint_url=customer_provided_endpoint, - ) - with ClientHTTPStubber(s3) as http_stubber: - http_stubber.add_response() - s3.put_object(Bucket=bucket, Key=key, Body=b"bar") - assert http_stubber.requests[0].url == expected_url - - -def _create_s3_client( - region, is_secure, endpoint_url, s3_config, signature_version -): - environ = {} - with mock.patch("os.environ", environ): - environ["AWS_ACCESS_KEY_ID"] = "access_key" - environ["AWS_SECRET_ACCESS_KEY"] = "secret_key" - environ["AWS_CONFIG_FILE"] = "no-exist-foo" - environ["AWS_SHARED_CREDENTIALS_FILE"] = "no-exist-foo" - session = create_session() - session.config_filename = "no-exist-foo" - config = Config(signature_version=signature_version, s3=s3_config) s3 = session.create_client( "s3", region_name=region, @@ -3350,7 +3409,7 @@ def _addressing_for_presigned_url_test_cases(): # A region that we don't know about. yield dict( - region="us-west-50", + region="boto-west-1", bucket="bucket", key="key", signature_version=None, @@ -3368,9 +3427,6 @@ def _addressing_for_presigned_url_test_cases(): ) # Access-point - accesspoint_arn = ( - "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" - ) yield dict( region="us-west-2", bucket=accesspoint_arn, @@ -3380,16 +3436,6 @@ def _addressing_for_presigned_url_test_cases(): "us-west-2.amazonaws.com/key" ), ) - yield dict( - region="us-east-1", - bucket=accesspoint_arn, - key="key", - s3_config={"use_arn_region": False}, - expected_url=( - "https://myendpoint-123456789012.s3-accesspoint." - "us-east-1.amazonaws.com/key" - ), - ) # Use us-east-1 regional endpoint configuration cases us_east_1_regional_endpoint = {"us_east_1_regional_endpoint": "regional"} @@ -3409,13 +3455,23 @@ def _addressing_for_presigned_url_test_cases(): signature_version="s3v4", expected_url=("https://bucket.s3.us-east-1.amazonaws.com/key"), ) + # Bucket names that contain dots or are otherwise not virtual host style + # compatible should always resolve to a regional endpoint. + # https://github.com/boto/botocore/issues/2798 + yield dict( + region="us-west-1", + bucket="foo.bar.biz", + key="key", + signature_version="s3", + expected_url="https://s3.us-west-1.amazonaws.com/foo.bar.biz/key", + ) @pytest.mark.parametrize( "test_case", _addressing_for_presigned_url_test_cases() ) def test_addressing_for_presigned_urls(test_case): - # Here's we're just focusing on the addressing mode used for presigned URLs. + # Here we're just focusing on the addressing mode used for presigned URLs. # We special case presigned URLs due to backward compatibility. _verify_presigned_url_addressing(**test_case) diff --git a/tests/functional/test_s3_control_redirects.py b/tests/functional/test_s3_control_redirects.py index b4be86c9..e24cac18 100644 --- a/tests/functional/test_s3_control_redirects.py +++ b/tests/functional/test_s3_control_redirects.py @@ -100,14 +100,14 @@ ACCESSPOINT_ARN_TEST_CASES = [ }, }, }, - # { - # 'arn': 'arn:aws-us-gov:s3-outposts:fips-us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint', - # 'region': 'fips-us-gov-east-1', - # 'config': {'s3': {'use_arn_region': True}}, - # 'assertions': { - # 'exception': 'UnsupportedS3ArnError', - # } - # }, + { + 'arn': 'arn:aws-us-gov:s3-outposts:fips-us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint', + 'region': 'fips-us-gov-east-1', + 'config': {'s3': {'use_arn_region': True}}, + 'assertions': { + 'exception': 'UnsupportedS3ControlArnError', + }, + }, { 'arn': 'arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint', 'region': 'us-gov-east-1-fips', diff --git a/tests/functional/test_sagemaker.py b/tests/functional/test_sagemaker.py index 354d8d2c..59a5d614 100644 --- a/tests/functional/test_sagemaker.py +++ b/tests/functional/test_sagemaker.py @@ -15,6 +15,7 @@ class TestSagemaker(BaseSessionTest): self.hook_calls.append(kwargs['event_name']) def tearDown(self): + super().tearDown() self.stubber.deactivate() def test_event_with_old_prefix(self): diff --git a/tests/functional/test_sts.py b/tests/functional/test_sts.py index e9d498de..2040fb30 100644 --- a/tests/functional/test_sts.py +++ b/tests/functional/test_sts.py @@ -288,3 +288,29 @@ class TestSTSEndpoints(BaseSessionTest): expected_url='https://sts.not-real.amazonaws.com/', expected_signing_region='not-real', ) + + +def test_assume_role_with_saml_no_region_custom_endpoint(patched_session): + # When an endpoint_url and no region are given, AssumeRoleWithSAML should + # resolve to the endpoint_url and succeed, not fail in endpoint resolution: + # https://github.com/aws/aws-cli/issues/7455 + + client = patched_session.create_client( + 'sts', region_name=None, endpoint_url="https://custom.endpoint.aws" + ) + assert client.meta.region_name is None + + mock_response_body = b"""\ + + + +""" + with ClientHTTPStubber(client) as http_stubber: + http_stubber.add_response(body=mock_response_body) + client.assume_role_with_saml( + RoleArn='arn:aws:iam::123456789:role/RoleA', + PrincipalArn='arn:aws:iam::123456789:role/RoleB', + SAMLAssertion='xxxx', + ) + captured_request = http_stubber.requests[0] + assert captured_request.url == "https://custom.endpoint.aws/" diff --git a/tests/integration/test_client_http.py b/tests/integration/test_client_http.py index d0d61c04..c2ee6055 100644 --- a/tests/integration/test_client_http.py +++ b/tests/integration/test_client_http.py @@ -1,8 +1,10 @@ import contextlib import select import socket +import socketserver import threading from contextlib import contextmanager +from http.server import BaseHTTPRequestHandler import botocore.session from botocore.config import Config @@ -15,7 +17,6 @@ from botocore.exceptions import ( ReadTimeoutError, ) from botocore.vendored.requests import exceptions as requests_exceptions -from botocore.vendored.six.moves import BaseHTTPServer, socketserver from tests import mock, unittest @@ -182,7 +183,7 @@ class TestClientHTTPBehavior(unittest.TestCase): 'ec2', endpoint_url=self.localhost, config=config ) - class BadStatusHandler(BaseHTTPServer.BaseHTTPRequestHandler): + class BadStatusHandler(BaseHTTPRequestHandler): event = threading.Event() def do_POST(self): @@ -200,7 +201,7 @@ def unused_port(): return sock.getsockname()[1] -class SimpleHandler(BaseHTTPServer.BaseHTTPRequestHandler): +class SimpleHandler(BaseHTTPRequestHandler): status = 200 def get_length(self): @@ -219,7 +220,7 @@ class SimpleHandler(BaseHTTPServer.BaseHTTPRequestHandler): do_POST = do_PUT = do_GET -class ProxyHandler(BaseHTTPServer.BaseHTTPRequestHandler): +class ProxyHandler(BaseHTTPRequestHandler): tunnel_chunk_size = 1024 poll_limit = 10**4 diff --git a/tests/integration/test_glacier.py b/tests/integration/test_glacier.py index 91047d13..feb06d38 100644 --- a/tests/integration/test_glacier.py +++ b/tests/integration/test_glacier.py @@ -10,9 +10,10 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. +import io + import botocore.session from botocore.exceptions import ClientError -from botocore.vendored import six from tests import unittest @@ -44,7 +45,7 @@ class TestGlacier(unittest.TestCase): self.client.list_vaults(accountId='asdf') def test_can_upload_archive(self): - body = six.BytesIO(b"bytes content") + body = io.BytesIO(b"bytes content") response = self.client.upload_archive( vaultName=self.VAULT_NAME, archiveDescription='test upload', diff --git a/tests/integration/test_s3.py b/tests/integration/test_s3.py index b899dd7d..38c9afd6 100644 --- a/tests/integration/test_s3.py +++ b/tests/integration/test_s3.py @@ -963,9 +963,7 @@ class TestCreateBucketInOtherRegion(TestS3BaseWithBucket): self.assert_status_code(response, 200) def test_bucket_in_other_region_using_http(self): - client = self.session.create_client( - 's3', 'us-east-1', endpoint_url='http://s3.amazonaws.com/' - ) + client = self.session.create_client('s3', 'us-east-1', use_ssl=False) with temporary_file('w') as f: f.write('foobarbaz' * 1024 * 1024) f.flush() diff --git a/tests/unit/auth/test_signers.py b/tests/unit/auth/test_signers.py index bfb25e8c..2489e63a 100644 --- a/tests/unit/auth/test_signers.py +++ b/tests/unit/auth/test_signers.py @@ -14,13 +14,14 @@ # language governing permissions and limitations under the License. import base64 import datetime +import io import json import time import botocore.auth import botocore.credentials from botocore.awsrequest import AWSRequest -from botocore.compat import HTTPHeaders, parse_qs, six, urlsplit +from botocore.compat import HTTPHeaders, parse_qs, urlsplit from tests import mock, unittest @@ -325,7 +326,7 @@ class TestS3SigV4Auth(BaseTestWithFixedDate): access_key='foo', secret_key='bar', token='baz' ) self.auth = self.AuthClass(self.credentials, 'ec2', 'eu-central-1') - self.request = AWSRequest(data=six.BytesIO(b"foo bar baz")) + self.request = AWSRequest(data=io.BytesIO(b"foo bar baz")) self.request.method = 'PUT' self.request.url = 'https://s3.eu-central-1.amazonaws.com/' @@ -551,7 +552,7 @@ class TestSigV4(unittest.TestCase): def test_payload_is_binary_file(self): request = AWSRequest() - request.data = six.BytesIO('\u2713'.encode()) + request.data = io.BytesIO('\u2713'.encode()) request.url = 'https://amazonaws.com' auth = self.create_signer() payload = auth.payload(request) @@ -582,7 +583,7 @@ class TestSigV4(unittest.TestCase): def test_content_sha256_set_if_payload_signing_disabled(self): request = AWSRequest() - request.data = six.BytesIO('\u2713'.encode()) + request.data = io.BytesIO('\u2713'.encode()) request.url = 'https://amazonaws.com' request.context['payload_signing_enabled'] = False request.method = 'PUT' @@ -716,6 +717,7 @@ class TestS3SigV2Presign(BasePresignTest): def tearDown(self): self.time_patch.stop() + super().tearDown() def test_presign_with_query_string(self): self.request.url = ( @@ -808,6 +810,7 @@ class TestSigV4Presign(BasePresignTest): def tearDown(self): self.datetime_patcher.stop() + super().tearDown() def test_presign_no_params(self): request = AWSRequest() @@ -1044,6 +1047,7 @@ class TestS3SigV2Post(BaseS3PresignPostTest): def tearDown(self): self.time_patch.stop() + super().tearDown() def test_presign_post(self): self.auth.add_auth(self.request) @@ -1110,6 +1114,7 @@ class TestS3SigV4Post(BaseS3PresignPostTest): def tearDown(self): self.datetime_patcher.stop() + super().tearDown() def test_presign_post(self): self.auth.add_auth(self.request) diff --git a/tests/unit/auth/test_sigv4.py b/tests/unit/auth/test_sigv4.py index 56214d6b..f9e913b3 100644 --- a/tests/unit/auth/test_sigv4.py +++ b/tests/unit/auth/test_sigv4.py @@ -23,15 +23,17 @@ generate testcases based on these files. """ import datetime +import io import logging import os import re +from http.server import BaseHTTPRequestHandler import pytest import botocore.auth from botocore.awsrequest import AWSRequest -from botocore.compat import parse_qsl, six, urlsplit +from botocore.compat import parse_qsl, urlsplit from botocore.credentials import Credentials from tests import FreezeTime @@ -55,21 +57,15 @@ TESTS_TO_IGNORE = [ 'get-vanilla-query-order-key', 'get-vanilla-query-order-value', ] -if not six.PY3: - TESTS_TO_IGNORE += [ - # NO support - 'get-header-key-duplicate', - 'get-header-value-order', - ] log = logging.getLogger(__name__) -class RawHTTPRequest(six.moves.BaseHTTPServer.BaseHTTPRequestHandler): +class RawHTTPRequest(BaseHTTPRequestHandler): def __init__(self, raw_request): if isinstance(raw_request, str): raw_request = raw_request.encode('utf-8') - self.rfile = six.BytesIO(raw_request) + self.rfile = io.BytesIO(raw_request) self.raw_requestline = self.rfile.readline() self.error_code = None self.error_message = None diff --git a/tests/unit/cfg/aws_sso_session_config b/tests/unit/cfg/aws_sso_session_config new file mode 100644 index 00000000..d5fc0d37 --- /dev/null +++ b/tests/unit/cfg/aws_sso_session_config @@ -0,0 +1,6 @@ +[default] +sso_session = sso + +[sso-session sso] +sso_start_url = https://example.com +sso_region = us-east-1 diff --git a/tests/unit/crt/auth/test_crt_signers.py b/tests/unit/crt/auth/test_crt_signers.py index eaad9e04..6b9f714c 100644 --- a/tests/unit/crt/auth/test_crt_signers.py +++ b/tests/unit/crt/auth/test_crt_signers.py @@ -8,6 +8,16 @@ from tests.unit.auth.test_signers import ( ) +@requires_crt() +def test_crt_supported_auth_types_list(): + # The list CRT_SUPPORTED_AUTH_TYPES is available even when awscrt is not + # installed. Its entries must always match the keys of the + # CRT_AUTH_TYPE_MAPS dict which is only available when CRT is installed. + with_crt_list = set(botocore.crt.CRT_SUPPORTED_AUTH_TYPES) + without_crt_list = set(botocore.crt.auth.CRT_AUTH_TYPE_MAPS.keys()) + assert with_crt_list == without_crt_list + + @requires_crt() class TestCrtS3SigV4Auth(TestS3SigV4Auth): # Repeat TestS3SigV4Auth tests, but using CRT signer diff --git a/tests/unit/data/endpoints/test-cases/aws-region.json b/tests/unit/data/endpoints/test-cases/aws-region.json new file mode 100644 index 00000000..0f0f4031 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/aws-region.json @@ -0,0 +1,32 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "basic region templating", + "params": { + "Region": "us-east-1" + }, + "expect": { + "endpoint": { + "url": "https://us-east-1.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "signingName": "serviceName" + } + ] + } + } + } + }, + { + "documentation": "test case where region is unset", + "params": {}, + "expect": { + "error": "Region must be set to resolve a valid endpoint" + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/default-values.json b/tests/unit/data/endpoints/test-cases/default-values.json new file mode 100644 index 00000000..84e23c86 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/default-values.json @@ -0,0 +1,45 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "default endpoint", + "params": {}, + "expect": { + "endpoint": { + "url": "https://fips.us-west-5.amazonaws.com" + } + } + }, + { + "documentation": "test case where FIPS is disabled", + "params": { + "UseFips": false + }, + "expect": { + "error": "UseFips = false" + } + }, + { + "documentation": "test case where FIPS is enabled explicitly", + "params": { + "UseFips": true + }, + "expect": { + "endpoint": { + "url": "https://fips.us-west-5.amazonaws.com" + } + } + }, + { + "documentation": "defaults can be overridden", + "params": { + "Region": "us-east-1" + }, + "expect": { + "endpoint": { + "url": "https://fips.us-east-1.amazonaws.com" + } + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/eventbridge.json b/tests/unit/data/endpoints/test-cases/eventbridge.json new file mode 100644 index 00000000..9fede903 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/eventbridge.json @@ -0,0 +1,48 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "simple region endpoint", + "params": { + "region": "us-east-1" + }, + "expect": { + "endpoint": { + "url": "https://events.us-east-1.amazonaws.com" + } + } + }, + { + "documentation": "basic case of endpointId", + "params": { + "region": "us-east-1", + "endpointId": "myendpoint" + }, + "expect": { + "endpoint": { + "url": "https://myendpoint.endpoint.events.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "events", + "signingRegionSet": ["*"] + } + ] + } + } + } + }, + { + "documentation": "endpointId & FIPS", + "params": { + "region": "us-east-1", + "endpointId": "myendpoint", + "useFIPSEndpoint": true + }, + "expect": { + "error": "FIPS endpoints not supported with multi-region endpoints" + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/fns.json b/tests/unit/data/endpoints/test-cases/fns.json new file mode 100644 index 00000000..be0baad3 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/fns.json @@ -0,0 +1,50 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "test where URI is set and flows to URI and header", + "params": { + "Uri": "https://www.example.com", + "Arn": "arn:aws:s3:us-east-2:012345678:outpost:op-1234" + }, + "expect": { + "endpoint": { + "url": "https://www.example.com", + "headers": { + "x-uri": [ + "https://www.example.com" + ], + "x-arn-region": [ + "us-east-2" + ] + } + } + } + }, + { + "documentation": "test where explicit error is set", + "params": { + "CustomError": "This is an error!" + }, + "expect": { + "error": "This is an error!" + } + }, + { + "documentation": "test where an ARN field is used in the error directly", + "params": { + "Arn": "arn:This is an error!:s3:us-east-2:012345678:outpost:op-1234" + }, + "expect": { + "error": "This is an error!" + } + }, + { + "documentation": "test case where no fields are set", + "params": {}, + "expect": { + "error": "No fields were set" + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/headers.json b/tests/unit/data/endpoints/test-cases/headers.json new file mode 100644 index 00000000..32186eef --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/headers.json @@ -0,0 +1,25 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "header set to region", + "params": { + "Region": "us-east-1" + }, + "expect": { + "endpoint": { + "url": "https://us-east-1.amazonaws.com", + "headers": { + "x-amz-region": [ + "us-east-1" + ], + "x-amz-multi": [ + "*", + "us-east-1" + ] + } + } + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/is-virtual-hostable-s3-bucket.json b/tests/unit/data/endpoints/test-cases/is-virtual-hostable-s3-bucket.json new file mode 100644 index 00000000..f67cc614 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/is-virtual-hostable-s3-bucket.json @@ -0,0 +1,148 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "bucket-name: isVirtualHostable", + "params": { + "BucketName": "bucket-name" + }, + "expect": { + "endpoint": { + "url": "https://bucket-name.s3.amazonaws.com" + } + } + }, + { + "documentation": "bucket-with-number-1: isVirtualHostable", + "params": { + "BucketName": "bucket-with-number-1" + }, + "expect": { + "endpoint": { + "url": "https://bucket-with-number-1.s3.amazonaws.com" + } + } + }, + { + "documentation": "BucketName: not isVirtualHostable (uppercase characters)", + "params": { + "BucketName": "BucketName" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": "bucket_name: not isVirtualHostable (underscore)", + "params": { + "BucketName": "bucket_name" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": "bucket.name: isVirtualHostable (http only)", + "params": { + "BucketName": "bucket.name" + }, + "expect": { + "endpoint": { + "url": "http://bucket.name.s3.amazonaws.com" + } + } + }, + { + "documentation": "bucket.name.multiple.dots1: isVirtualHostable (http only)", + "params": { + "BucketName": "bucket.name.multiple.dots1" + }, + "expect": { + "endpoint": { + "url": "http://bucket.name.multiple.dots1.s3.amazonaws.com" + } + } + }, + { + "documentation": "-bucket-name: not isVirtualHostable (leading dash)", + "params": { + "BucketName": "-bucket-name" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": "bucket-name-: not isVirtualHostable (trailing dash)", + "params": { + "BucketName": "bucket-name-" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": "aa: not isVirtualHostable (< 3 characters)", + "params": { + "BucketName": "aa" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": "'a'*64: not isVirtualHostable (> 63 characters)", + "params": { + "BucketName": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": ".bucket-name: not isVirtualHostable (leading dot)", + "params": { + "BucketName": ".bucket-name" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": "bucket-name.: not isVirtualHostable (trailing dot)", + "params": { + "BucketName": "bucket-name." + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": "192.168.5.4: not isVirtualHostable (formatted like an ip address)", + "params": { + "BucketName": "192.168.5.4" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": "bucket-.name: not isVirtualHostable (invalid label, ends with a -)", + "params": { + "BucketName": "bucket-.name" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + }, + { + "documentation": "bucket.-name: not isVirtualHostable (invalid label, starts with a -)", + "params": { + "BucketName": "bucket.-name" + }, + "expect": { + "error": "not isVirtualHostableS3Bucket" + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/local-region-override.json b/tests/unit/data/endpoints/test-cases/local-region-override.json new file mode 100644 index 00000000..674105d4 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/local-region-override.json @@ -0,0 +1,27 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "local region override", + "params": { + "Region": "local" + }, + "expect": { + "endpoint": { + "url": "http://localhost:8080" + } + } + }, + { + "documentation": "standard region templated", + "params": { + "Region": "us-east-2" + }, + "expect": { + "endpoint": { + "url": "https://us-east-2.someservice.amazonaws.com" + } + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/parse-arn.json b/tests/unit/data/endpoints/test-cases/parse-arn.json new file mode 100644 index 00000000..3cb90f6f --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/parse-arn.json @@ -0,0 +1,152 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "arn + region resolution", + "params": { + "Bucket": "arn:aws:s3:us-east-2:012345678:outpost:op-1234", + "Region": "us-east-2" + }, + "expect": { + "endpoint": { + "url": "https://op-1234-012345678.us-east-2.amazonaws.com" + } + } + }, + { + "documentation": "arn, unset outpost id", + "params": { + "Bucket": "arn:aws:s3:us-east-2:012345678:outpost", + "Region": "us-east-2" + }, + "expect": { + "error": "Invalid ARN: outpostId was not set" + } + }, + { + "documentation": "arn, empty outpost id (tests that empty strings are handled properly during matching)", + "params": { + "Bucket": "arn:aws:s3:us-east-2:012345678:outpost::", + "Region": "us-east-2" + }, + "expect": { + "error": "OutpostId was empty" + } + }, + { + "documentation": "arn, empty outpost id (tests that ARN parsing considers a trailing colon)", + "params": { + "Bucket": "arn:aws:s3:us-east-2:012345678:outpost:", + "Region": "us-east-2" + }, + "expect": { + "error": "OutpostId was empty" + } + }, + { + "documentation": "valid hostlabel + region resolution", + "params": { + "Bucket": "mybucket", + "Region": "us-east-2" + }, + "expect": { + "endpoint": { + "url": "https://mybucket.us-east-2.amazonaws.com" + } + } + }, + { + "documentation": "not a valid hostlabel + region resolution", + "params": { + "Bucket": "99_a", + "Region": "us-east-2" + }, + "expect": { + "endpoint": { + "url": "https://us-east-2.amazonaws.com/99_a" + } + } + }, + { + "documentation": "no bucket", + "params": { + "Region": "us-east-2" + }, + "expect": { + "endpoint": { + "url": "https://us-east-2.amazonaws.com" + } + } + }, + { + "documentation": "a string that is not a 6-part ARN", + "params": { + "TestCaseId": "invalid-arn", + "Bucket": "asdf" + }, + "expect": { + "error": "Test case passed: `asdf` is not a valid ARN." + } + }, + { + "documentation": "resource id MUST not be null", + "params": { + "TestCaseId": "invalid-arn", + "Bucket": "arn:aws:s3:us-west-2:123456789012:" + }, + "expect": { + "error": "Test case passed: `arn:aws:s3:us-west-2:123456789012:` is not a valid ARN." + } + }, + { + "documentation": "service MUST not be null", + "params": { + "TestCaseId": "invalid-arn", + "Bucket": "arn:aws::us-west-2:123456789012:resource-id" + }, + "expect": { + "error": "Test case passed: `arn:aws::us-west-2:123456789012:resource-id` is not a valid ARN." + } + }, + { + "documentation": "partition MUST not be null", + "params": { + "TestCaseId": "invalid-arn", + "Bucket": "arn::s3:us-west-2:123456789012:resource-id" + }, + "expect": { + "error": "Test case passed: `arn::s3:us-west-2:123456789012:resource-id` is not a valid ARN." + } + }, + { + "documentation": "region MAY be null", + "params": { + "TestCaseId": "valid-arn", + "Bucket": "arn:aws:s3::123456789012:resource-id" + }, + "expect": { + "error": "Test case passed: A valid ARN was parsed: service: `s3`, partition: `aws, region: ``, accountId: `123456789012`, resource: `resource-id`" + } + }, + { + "documentation": "accountId MAY be null", + "params": { + "TestCaseId": "valid-arn", + "Bucket": "arn:aws:s3:us-east-1::resource-id" + }, + "expect": { + "error": "Test case passed: A valid ARN was parsed: service: `s3`, partition: `aws, region: `us-east-1`, accountId: ``, resource: `resource-id`" + } + }, + { + "documentation": "accountId MAY be non-numeric", + "params": { + "TestCaseId": "valid-arn", + "Bucket": "arn:aws:s3:us-east-1:abcd:resource-id" + }, + "expect": { + "error": "Test case passed: A valid ARN was parsed: service: `s3`, partition: `aws, region: `us-east-1`, accountId: `abcd`, resource: `resource-id`" + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/parse-url.json b/tests/unit/data/endpoints/test-cases/parse-url.json new file mode 100644 index 00000000..1117dad5 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/parse-url.json @@ -0,0 +1,153 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "simple URL parsing", + "params": { + "Endpoint": "https://authority.com/custom-path" + }, + "expect": { + "endpoint": { + "url": "https://https-authority.com.example.com/path-is/custom-path" + } + } + }, + { + "documentation": "empty path no slash", + "params": { + "Endpoint": "https://authority.com" + }, + "expect": { + "endpoint": { + "url": "https://https-authority.com-nopath.example.com" + } + } + }, + { + "documentation": "empty path with slash", + "params": { + "Endpoint": "https://authority.com/" + }, + "expect": { + "endpoint": { + "url": "https://https-authority.com-nopath.example.com" + } + } + }, + { + "documentation": "authority with port", + "params": { + "Endpoint": "https://authority.com:8000/port" + }, + "expect": { + "endpoint": { + "url": "https://authority.com:8000/uri-with-port" + } + } + }, + { + "documentation": "http schemes", + "params": { + "Endpoint": "http://authority.com:8000/port" + }, + "expect": { + "endpoint": { + "url": "http://authority.com:8000/uri-with-port" + } + } + }, + { + "documentation": "arbitrary schemes are not supported", + "params": { + "Endpoint": "acbd://example.com" + }, + "expect": { + "error": "endpoint was invalid" + } + }, + { + "documentation": "host labels are not validated", + "params": { + "Endpoint": "http://99_ab.com" + }, + "expect": { + "endpoint": { + "url": "https://http-99_ab.com-nopath.example.com" + } + } + }, + { + "documentation": "host labels are not validated", + "params": { + "Endpoint": "http://99_ab-.com" + }, + "expect": { + "endpoint": { + "url": "https://http-99_ab-.com-nopath.example.com" + } + } + }, + { + "documentation": "invalid URL", + "params": { + "Endpoint": "http://abc.com:a/foo" + }, + "expect": { + "error": "endpoint was invalid" + } + }, + { + "documentation": "IP Address", + "params": { + "Endpoint": "http://192.168.1.1/foo/" + }, + "expect": { + "endpoint": { + "url": "http://192.168.1.1/foo/is-ip-addr" + } + } + }, + { + "documentation": "IP Address with port", + "params": { + "Endpoint": "http://192.168.1.1:1234/foo/" + }, + "expect": { + "endpoint": { + "url": "http://192.168.1.1:1234/foo/is-ip-addr" + } + } + }, + { + "documentation": "IPv6 Address", + "params": { + "Endpoint": "https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443" + }, + "expect": { + "endpoint": { + "url": "https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443/is-ip-addr" + } + } + }, + { + "documentation": "weird DNS name", + "params": { + "Endpoint": "https://999.999.abc.blah" + }, + "expect": { + "endpoint": { + "url": "https://https-999.999.abc.blah-nopath.example.com" + } + } + }, + { + "documentation": "query in resolved endpoint is not supported", + "params": { + "Endpoint": "https://example.com/path?query1=foo" + }, + "expect": { + "error": "endpoint was invalid" + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/partition-fn.json b/tests/unit/data/endpoints/test-cases/partition-fn.json new file mode 100644 index 00000000..5efc6a70 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/partition-fn.json @@ -0,0 +1,125 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "standard AWS region", + "params": { + "Region": "us-east-2" + }, + "expect": { + "endpoint": { + "url": "https://aws-partition.us-east-2.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "us-east-2" + } + ], + "meta": { + "baseSuffix": "amazonaws.com", + "dualStackSuffix": "api.aws" + } + } + } + } + }, + { + "documentation": "AWS region that doesn't match any regexes", + "params": { + "Region": "mars-global" + }, + "expect": { + "endpoint": { + "url": "https://aws-partition.mars-global.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "mars-global" + } + ], + "meta": { + "baseSuffix": "amazonaws.com", + "dualStackSuffix": "api.aws" + } + } + } + } + }, + { + "documentation": "AWS region that matches the AWS regex", + "params": { + "Region": "us-east-10" + }, + "expect": { + "endpoint": { + "url": "https://aws-partition.us-east-10.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "us-east-10" + } + ], + "meta": { + "baseSuffix": "amazonaws.com", + "dualStackSuffix": "api.aws" + } + } + } + } + }, + { + "documentation": "CN region that matches the AWS regex", + "params": { + "Region": "cn-north-5" + }, + "expect": { + "endpoint": { + "url": "https://aws-cn.cn-north-5.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "cn-north-5" + } + ], + "meta": { + "baseSuffix": "amazonaws.com.cn", + "dualStackSuffix": "api.amazonwebservices.com.cn" + } + } + } + } + }, + { + "documentation": "CN region that is in the explicit list", + "params": { + "Region": "aws-cn-global" + }, + "expect": { + "endpoint": { + "url": "https://aws-cn.aws-cn-global.amazonaws.com.cn", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "aws-cn-global" + } + ], + "meta": { + "baseSuffix": "amazonaws.com.cn", + "dualStackSuffix": "api.amazonwebservices.com.cn" + } + } + } + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/substring.json b/tests/unit/data/endpoints/test-cases/substring.json new file mode 100644 index 00000000..c1e2912f --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/substring.json @@ -0,0 +1,185 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "substring when string is long enough", + "params": { + "TestCaseId": "1", + "Input": "abcdefg" + }, + "expect": { + "error": "The value is: `abcd`" + } + }, + { + "documentation": "substring when string is exactly the right length", + "params": { + "TestCaseId": "1", + "Input": "abcd" + }, + "expect": { + "error": "The value is: `abcd`" + } + }, + { + "documentation": "substring when string is too short", + "params": { + "TestCaseId": "1", + "Input": "abc" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "substring when string is too short", + "params": { + "TestCaseId": "1", + "Input": "" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "substring on wide characters (ensure that unicode code points are properly counted)", + "params": { + "TestCaseId": "1", + "Input": "\ufdfd" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "unicode characters always return `None`", + "params": { + "TestCaseId": "1", + "Input": "abcdef\uD83D\uDC31" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "non-ascii cause substring to always return `None`", + "params": { + "TestCaseId": "1", + "Input": "abcdef\u0080" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "the full set of ascii is supported, including non-printable characters", + "params": { + "TestCaseId": "1", + "Input": "\u007Fabcdef" + }, + "expect": { + "error": "The value is: `\u007Fabc`" + } + }, + { + "documentation": "substring when string is long enough", + "params": { + "TestCaseId": "2", + "Input": "abcdefg" + }, + "expect": { + "error": "The value is: `defg`" + } + }, + { + "documentation": "substring when string is exactly the right length", + "params": { + "TestCaseId": "2", + "Input": "defg" + }, + "expect": { + "error": "The value is: `defg`" + } + }, + { + "documentation": "substring when string is too short", + "params": { + "TestCaseId": "2", + "Input": "abc" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "substring when string is too short", + "params": { + "TestCaseId": "2", + "Input": "" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "substring on wide characters (ensure that unicode code points are properly counted)", + "params": { + "TestCaseId": "2", + "Input": "\ufdfd" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "substring when string is longer", + "params": { + "TestCaseId": "3", + "Input": "defg" + }, + "expect": { + "error": "The value is: `ef`" + } + }, + { + "documentation": "substring when string is exact length", + "params": { + "TestCaseId": "3", + "Input": "def" + }, + "expect": { + "error": "The value is: `ef`" + } + }, + { + "documentation": "substring when string is too short", + "params": { + "TestCaseId": "3", + "Input": "ab" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "substring when string is too short", + "params": { + "TestCaseId": "3", + "Input": "" + }, + "expect": { + "error": "No tests matched" + } + }, + { + "documentation": "substring on wide characters (ensure that unicode code points are properly counted)", + "params": { + "TestCaseId": "3", + "Input": "\ufdfd" + }, + "expect": { + "error": "No tests matched" + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/uri-encode.json b/tests/unit/data/endpoints/test-cases/uri-encode.json new file mode 100644 index 00000000..6da5f21b --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/uri-encode.json @@ -0,0 +1,75 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "uriEncode when the string has nothing to encode returns the input", + "params": { + "TestCaseId": "1", + "Input": "abcdefg" + }, + "expect": { + "error": "The value is: `abcdefg`" + } + }, + { + "documentation": "uriEncode with single character to encode encodes only that character", + "params": { + "TestCaseId": "1", + "Input": "abc:defg" + }, + "expect": { + "error": "The value is: `abc%3Adefg`" + } + }, + { + "documentation": "uriEncode with all ASCII characters to encode encodes all characters", + "params": { + "TestCaseId": "1", + "Input": "/:,?#[]{}|@! $&'()*+;=%<>\"^`\\" + }, + "expect": { + "error": "The value is: `%2F%3A%2C%3F%23%5B%5D%7B%7D%7C%40%21%20%24%26%27%28%29%2A%2B%3B%3D%25%3C%3E%22%5E%60%5C`" + } + }, + { + "documentation": "uriEncode with ASCII characters that should not be encoded returns the input", + "params": { + "TestCaseId": "1", + "Input": "0123456789.underscore_dash-Tilda~" + }, + "expect": { + "error": "The value is: `0123456789.underscore_dash-Tilda~`" + } + }, + { + "documentation": "uriEncode encodes unicode characters", + "params": { + "TestCaseId": "1", + "Input": "\ud83d\ude39" + }, + "expect": { + "error": "The value is: `%F0%9F%98%B9`" + } + }, + { + "documentation": "uriEncode on all printable ASCII characters", + "params": { + "TestCaseId": "1", + "Input": " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" + }, + "expect": { + "error": "The value is: `%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~`" + } + }, + { + "documentation": "uriEncode on an empty string", + "params": { + "TestCaseId": "1", + "Input": "" + }, + "expect": { + "error": "The value is: ``" + } + } + ] +} diff --git a/tests/unit/data/endpoints/test-cases/valid-hostlabel.json b/tests/unit/data/endpoints/test-cases/valid-hostlabel.json new file mode 100644 index 00000000..82287b72 --- /dev/null +++ b/tests/unit/data/endpoints/test-cases/valid-hostlabel.json @@ -0,0 +1,56 @@ +{ + "version": "1.0", + "testCases": [ + { + "documentation": "standard region is a valid hostlabel", + "params": { + "Region": "us-east-1" + }, + "expect": { + "endpoint": { + "url": "https://us-east-1.amazonaws.com" + } + } + }, + { + "documentation": "starting with a number is a valid hostlabel", + "params": { + "Region": "3aws4" + }, + "expect": { + "endpoint": { + "url": "https://3aws4.amazonaws.com" + } + } + }, + { + "documentation": "when there are dots, only match if subdomains are allowed", + "params": { + "Region": "part1.part2" + }, + "expect": { + "endpoint": { + "url": "https://part1.part2-subdomains.amazonaws.com" + } + } + }, + { + "documentation": "a space is never a valid hostlabel", + "params": { + "Region": "part1 part2" + }, + "expect": { + "error": "Invalid hostlabel" + } + }, + { + "documentation": "an empty string is not a valid hostlabel", + "params": { + "Region": "" + }, + "expect": { + "error": "Invalid hostlabel" + } + } + ] +} diff --git a/tests/unit/data/endpoints/valid-rules/aws-region.json b/tests/unit/data/endpoints/valid-rules/aws-region.json new file mode 100644 index 00000000..2bb8e7fa --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/aws-region.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region", + "documentation": "The region to dispatch this request, eg. `us-east-1`." + } + }, + "rules": [ + { + "documentation": "Template the region into the URI when region is set", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "endpoint": { + "url": "https://{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "{Region}" + } + ] + } + }, + "type": "endpoint" + }, + { + "documentation": "fallback when region is unset", + "conditions": [], + "error": "Region must be set to resolve a valid endpoint", + "type": "error" + } + ], + "version": "1.3" +} diff --git a/tests/unit/data/endpoints/valid-rules/default-values.json b/tests/unit/data/endpoints/valid-rules/default-values.json new file mode 100644 index 00000000..42c95b43 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/default-values.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region", + "documentation": "The region to dispatch this request, eg. `us-east-1`.", + "default": "us-west-5", + "required": true + }, + "UseFips": { + "type": "boolean", + "builtIn": "AWS::UseFIPS", + "default": true, + "required": true + } + }, + "rules": [ + { + "documentation": "Template the region into the URI when FIPS is enabled", + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFips" + }, + true + ] + } + ], + "endpoint": { + "url": "https://fips.{Region}.amazonaws.com" + }, + "type": "endpoint" + }, + { + "documentation": "error when fips is disabled", + "conditions": [], + "error": "UseFips = false", + "type": "error" + } + ], + "version": "1.3" +} diff --git a/tests/unit/data/endpoints/valid-rules/deprecated-param.json b/tests/unit/data/endpoints/valid-rules/deprecated-param.json new file mode 100644 index 00000000..52b312a0 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/deprecated-param.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region", + "required": false, + "deprecated": { + "message": "use blahdeblah region instead" + } + } + }, + "rules": [ + { + "documentation": "base rule", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "endpoint": { + "url": "https://{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "{Region}" + } + ] + } + }, + "type": "endpoint" + } + ], + "version": "1.3" +} diff --git a/tests/unit/data/endpoints/valid-rules/eventbridge.json b/tests/unit/data/endpoints/valid-rules/eventbridge.json new file mode 100644 index 00000000..81e68443 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/eventbridge.json @@ -0,0 +1,323 @@ +{ + "version": "1.3", + "parameters": { + "region": { + "type": "string", + "builtIn": "AWS::Region", + "required": true + }, + "useDualStackEndpoint": { + "type": "boolean", + "builtIn": "AWS::UseDualStack" + }, + "useFIPSEndpoint": { + "type": "boolean", + "builtIn": "AWS::UseFIPS" + }, + "endpointId": { + "type": "string" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "region" + } + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "endpointId" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "useFIPSEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "useFIPSEndpoint" + }, + true + ] + } + ], + "error": "FIPS endpoints not supported with multi-region endpoints", + "type": "error" + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "useFIPSEndpoint" + } + ] + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "useDualStackEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "useDualStackEndpoint" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{endpointId}.endpoint.events.{partitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "events", + "signingRegionSet": [ + "*" + ] + } + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{endpointId}.endpoint.events.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "events", + "signingRegionSet": [ + "*" + ] + } + ] + } + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "region" + }, + false + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "useFIPSEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "useFIPSEndpoint" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "useDualStackEndpoint" + } + ] + } + ] + } + ], + "endpoint": { + "url": "https://events-fips.{region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "events", + "signingRegionSet": [ + "*" + ] + } + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "useDualStackEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "useDualStackEndpoint" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "useFIPSEndpoint" + } + ] + } + ] + } + ], + "endpoint": { + "url": "https://events.{region}.{partitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "events", + "signingRegionSet": [ + "*" + ] + } + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "useDualStackEndpoint" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "useFIPSEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "useDualStackEndpoint" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "useFIPSEndpoint" + }, + true + ] + } + ], + "endpoint": { + "url": "https://events-fips.{region}.{partitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingName": "events", + "signingRegionSet": [ + "*" + ] + } + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://events.{region}.{partitionResult#dnsSuffix}" + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "{region} is not a valid HTTP host-label", + "type": "error" + } + ], + "type": "tree" + } + ] +} diff --git a/tests/unit/data/endpoints/valid-rules/fns.json b/tests/unit/data/endpoints/valid-rules/fns.json new file mode 100644 index 00000000..526b101c --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/fns.json @@ -0,0 +1,128 @@ +{ + "documentation": "functions in more places", + "parameters": { + "Uri": { + "type": "string", + "documentation": "A URI to use" + }, + "Arn": { + "type": "string", + "documentation": "an ARN to extract fields from" + }, + "CustomError": { + "type": "string", + "documentation": "when set, a custom error message" + } + }, + "rules": [ + { + "documentation": "when URI is set, use it directly", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Uri" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Arn" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Arn" + } + ], + "assign": "parsedArn" + } + ], + "endpoint": { + "url": { + "ref": "Uri" + }, + "headers": { + "x-uri": [ + { + "ref": "Uri" + } + ], + "x-arn-region": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "region" + ] + } + ] + } + }, + "type": "endpoint" + }, + { + "documentation": "A custom error", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "CustomError" + } + ] + } + ], + "type": "error", + "error": { + "ref": "CustomError" + } + }, + { + "type": "error", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Arn" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Arn" + } + ], + "assign": "parsedArn" + } + ], + "error": { + "fn": "getAttr", + "argv": [ + { + "ref": "parsedArn" + }, + "partition" + ] + } + }, + { + "documentation": "fallback when nothing is set", + "conditions": [], + "error": "No fields were set", + "type": "error" + } + ], + "version": "1.3" +} diff --git a/tests/unit/data/endpoints/valid-rules/get-attr-type-inference.json b/tests/unit/data/endpoints/valid-rules/get-attr-type-inference.json new file mode 100644 index 00000000..cb631fc1 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/get-attr-type-inference.json @@ -0,0 +1,46 @@ +{ + "version": "1.3", + "parameters": { + "Bucket": { + "type": "string" + } + }, + "rules": [ + { + "documentation": "bucket is set, handle bucket specific endpoints", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "bucketArn" + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ], + "assign": "outpostId" + } + ], + "endpoint": { + "url": "https://{bucketArn#accountId}.{outpostId}.{bucketArn#region}" + }, + "type": "endpoint" + } + ] +} diff --git a/tests/unit/data/endpoints/valid-rules/headers.json b/tests/unit/data/endpoints/valid-rules/headers.json new file mode 100644 index 00000000..6145f852 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/headers.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region", + "documentation": "The region to dispatch this request, eg. `us-east-1`." + } + }, + "rules": [ + { + "documentation": "Template the region into the URI when region is set", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "endpoint": { + "url": "https://{Region}.amazonaws.com", + "headers": { + "x-amz-region": [ + "{Region}" + ], + "x-amz-multi": [ + "*", + "{Region}" + ] + } + }, + "type": "endpoint" + }, + { + "documentation": "fallback when region is unset", + "conditions": [], + "error": "Region must be set to resolve a valid endpoint", + "type": "error" + } + ], + "version": "1.3" +} diff --git a/tests/unit/data/endpoints/valid-rules/is-virtual-hostable-s3-bucket.json b/tests/unit/data/endpoints/valid-rules/is-virtual-hostable-s3-bucket.json new file mode 100644 index 00000000..7ece9b53 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/is-virtual-hostable-s3-bucket.json @@ -0,0 +1,48 @@ +{ + "version": "1.3", + "parameters": { + "BucketName": { + "type": "string", + "required": true, + "documentation": "the input used to test isVirtualHostableS3Bucket" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + "{BucketName}", + false + ] + } + ], + "endpoint": { + "url": "https://{BucketName}.s3.amazonaws.com" + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + "{BucketName}", + true + ] + } + ], + "endpoint": { + "url": "http://{BucketName}.s3.amazonaws.com" + }, + "type": "endpoint" + }, + { + "conditions": [ + ], + "error": "not isVirtualHostableS3Bucket", + "type": "error" + } + ] +} diff --git a/tests/unit/data/endpoints/valid-rules/local-region-override.json b/tests/unit/data/endpoints/valid-rules/local-region-override.json new file mode 100644 index 00000000..2100b4ec --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/local-region-override.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region", + "required": true + } + }, + "rules": [ + { + "documentation": "override rule for the local pseduo region", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "local", + "{Region}" + ] + } + ], + "endpoint": { + "url": "http://localhost:8080" + }, + "type": "endpoint" + }, + { + "documentation": "base rule", + "conditions": [], + "endpoint": { + "url": "https://{Region}.someservice.amazonaws.com" + }, + "type": "endpoint" + } + ], + "version": "1.3" +} diff --git a/tests/unit/data/endpoints/valid-rules/minimal-ruleset.json b/tests/unit/data/endpoints/valid-rules/minimal-ruleset.json new file mode 100644 index 00000000..8c629f84 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/minimal-ruleset.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region", + "required": true + } + }, + "rules": [ + { + "documentation": "base rule", + "conditions": [], + "endpoint": { + "url": "https://{Region}.amazonaws.com", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "{Region}" + } + ] + } + }, + "type": "endpoint" + } + ], + "version": "1.3" +} diff --git a/tests/unit/data/endpoints/valid-rules/parse-arn.json b/tests/unit/data/endpoints/valid-rules/parse-arn.json new file mode 100644 index 00000000..27664e64 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/parse-arn.json @@ -0,0 +1,251 @@ +{ + "version": "1.3", + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region" + }, + "Bucket": { + "type": "string" + }, + "TestCaseId": { + "type": "string" + } + }, + "rules": [ + { + "documentation": "tests of invalid arns", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "TestCaseId" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + "{TestCaseId}", + "invalid-arn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": ["{Bucket}"] + } + ], + "type": "error", + "error": "A valid ARN was parsed but `{Bucket}` is not a valid ARN" + }, + { + "conditions": [], + "type": "error", + "error": "Test case passed: `{Bucket}` is not a valid ARN." + } + ] + }, + { + "documentation": "tests of valid arns", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "TestCaseId" + } + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + "{TestCaseId}", + "valid-arn" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": ["{Bucket}"], + "assign": "arn" + }, + { + "fn": "getAttr", + "argv": [{"ref": "arn"}, "resourceId[0]"], + "assign": "resource" + } + ], + "type": "error", + "error": "Test case passed: A valid ARN was parsed: service: `{arn#service}`, partition: `{arn#partition}, region: `{arn#region}`, accountId: `{arn#accountId}`, resource: `{resource}`" + }, + { + "conditions": [], + "type": "error", + "error": "Test case failed: `{Bucket}` is a valid ARN but parseArn failed to parse it." + } + ] + }, + { + "documentation": "region is set", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + }, + { + "fn": "aws.partition", + "argv": [ + "{Region}" + ], + "assign": "partitionResult" + } + ], + "rules": [ + { + "documentation": "bucket is set, handle bucket specific endpoints", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ], + "rules": [ + { + "documentation": "bucket is set and is an arn", + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "bucketArn" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "outpostId" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "{outpostId}", + "" + ] + } + ], + "error": "OutpostId was empty", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{outpostId}-{bucketArn#accountId}.{bucketArn#region}.{partitionResult#dnsSuffix}" + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid ARN: outpostId was not set", + "type": "error" + } + ], + "type": "tree" + }, + { + "documentation": "bucket can be used as a host label", + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + "{Bucket}", + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.{Region}.amazonaws.com" + }, + "type": "endpoint" + }, + { + "conditions": [], + "documentation": "fallback: use bucket in the path", + "endpoint": { + "url": "https://{Region}.amazonaws.com/{Bucket}" + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "documentation": "region is set, bucket is not", + "conditions": [], + "endpoint": { + "url": "https://{Region}.{partitionResult#dnsSuffix}" + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "documentation": "fallback when region is unset", + "conditions": [], + "error": "Region must be set to resolve a valid endpoint", + "type": "error" + } + ] +} diff --git a/tests/unit/data/endpoints/valid-rules/parse-url.json b/tests/unit/data/endpoints/valid-rules/parse-url.json new file mode 100644 index 00000000..7c6dc985 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/parse-url.json @@ -0,0 +1,102 @@ +{ + "version": "1.3", + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region" + }, + "Endpoint": { + "type": "string" + } + }, + "rules": [ + { + "documentation": "endpoint is set and is a valid URL", + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + "{Endpoint}" + ], + "assign": "url" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}is-ip-addr" + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "{url#path}", + "/port" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}/uri-with-port" + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "{url#normalizedPath}", + "/" + ] + } + ], + "endpoint": { + "url": "https://{url#scheme}-{url#authority}-nopath.example.com" + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{url#scheme}-{url#authority}.example.com/path-is{url#path}" + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "error": "endpoint was invalid", + "conditions": [], + "type": "error" + } + ] +} diff --git a/tests/unit/data/endpoints/valid-rules/partition-fn.json b/tests/unit/data/endpoints/valid-rules/partition-fn.json new file mode 100644 index 00000000..79f94e53 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/partition-fn.json @@ -0,0 +1,101 @@ +{ + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region", + "required": true + }, + "PropertyOne": { + "type": "boolean" + }, + "PropertyTwo": { + "type": "string" + }, + "PropertyThree": { + "type": "boolean" + } + }, + "rules": [ + { + "documentation": "base rule", + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartResult" + } + ], + "rules": [ + { + "documentation": "the AWS partition", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://aws-partition.{Region}.{PartResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "{Region}" + } + ], + "meta": { + "baseSuffix": "{PartResult#dnsSuffix}", + "dualStackSuffix": "{PartResult#dualStackDnsSuffix}" + } + } + }, + "type": "endpoint" + }, + { + "documentation": "the other partitions", + "conditions": [], + "endpoint": { + "url": "https://{PartResult#name}.{Region}.{PartResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "serviceName", + "signingRegion": "{Region}" + } + ], + "meta": { + "baseSuffix": "{PartResult#dnsSuffix}", + "dualStackSuffix": "{PartResult#dualStackDnsSuffix}" + } + } + }, + "type": "endpoint" + }, + { + "conditions": [], + "error": "no rules matched", + "type": "error" + } + ], + "type": "tree" + } + ], + "version": "1.3" +} diff --git a/tests/unit/data/endpoints/valid-rules/substring.json b/tests/unit/data/endpoints/valid-rules/substring.json new file mode 100644 index 00000000..4342d050 --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/substring.json @@ -0,0 +1,95 @@ +{ + "parameters": { + "TestCaseId": { + "type": "string", + "required": true, + "documentation": "Test case id used to select the test case to use" + }, + "Input": { + "type": "string", + "required": true, + "documentation": "the input used to test substring" + } + }, + "rules": [ + { + "documentation": "Substring from beginning of input", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "{TestCaseId}", + "1" + ] + }, + { + "fn": "substring", + "argv": [ + "{Input}", + 0, + 4, + false + ], + "assign": "output" + } + ], + "error": "The value is: `{output}`", + "type": "error" + }, + { + "documentation": "Substring from end of input", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "{TestCaseId}", + "2" + ] + }, + { + "fn": "substring", + "argv": [ + "{Input}", + 0, + 4, + true + ], + "assign": "output" + } + ], + "error": "The value is: `{output}`", + "type": "error" + }, + { + "documentation": "Substring the middle of the string", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "{TestCaseId}", + "3" + ] + }, + { + "fn": "substring", + "argv": [ + "{Input}", + 1, + 3, + false + ], + "assign": "output" + } + ], + "error": "The value is: `{output}`", + "type": "error" + }, + { + "documentation": "fallback when no tests match", + "conditions": [], + "error": "No tests matched", + "type": "error" + } + ], + "version": "1.3" +} diff --git a/tests/unit/data/endpoints/valid-rules/uri-encode.json b/tests/unit/data/endpoints/valid-rules/uri-encode.json new file mode 100644 index 00000000..7c2f62fa --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/uri-encode.json @@ -0,0 +1,44 @@ +{ + "version": "1.3", + "parameters": { + "TestCaseId": { + "type": "string", + "required": true, + "documentation": "Test case id used to select the test case to use" + }, + "Input": { + "type": "string", + "required": true, + "documentation": "the input used to test uriEncode" + } + }, + "rules": [ + { + "documentation": "uriEncode on input", + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "{TestCaseId}", + "1" + ] + }, + { + "fn": "uriEncode", + "argv": [ + "{Input}" + ], + "assign": "output" + } + ], + "error": "The value is: `{output}`", + "type": "error" + }, + { + "documentation": "fallback when no tests match", + "conditions": [], + "error": "No tests matched", + "type": "error" + } + ] +} diff --git a/tests/unit/data/endpoints/valid-rules/valid-hostlabel.json b/tests/unit/data/endpoints/valid-rules/valid-hostlabel.json new file mode 100644 index 00000000..d62e25af --- /dev/null +++ b/tests/unit/data/endpoints/valid-rules/valid-hostlabel.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "Region": { + "type": "string", + "builtIn": "AWS::Region", + "required": true, + "documentation": "The region to dispatch this request, eg. `us-east-1`." + } + }, + "rules": [ + { + "documentation": "Template the region into the URI when region is set", + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Region}.amazonaws.com" + }, + "type": "endpoint" + }, + { + "documentation": "Template the region into the URI when region is set", + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{Region}-subdomains.amazonaws.com" + }, + "type": "endpoint" + }, + { + "documentation": "Region was not a valid host label", + "conditions": [], + "error": "Invalid hostlabel", + "type": "error" + } + ], + "version": "1.3" +} diff --git a/tests/unit/docs/__init__.py b/tests/unit/docs/__init__.py index c27e9857..df993af5 100644 --- a/tests/unit/docs/__init__.py +++ b/tests/unit/docs/__init__.py @@ -68,7 +68,33 @@ class BaseDocsTest(unittest.TestCase): with open(self.model_file, 'w') as f: json.dump(self.json_model, f) + myservice_endpoint_rule_set = { + "version": "1.3", + "parameters": {}, + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://example.com", + "properties": {}, + "headers": {}, + }, + "type": "endpoint", + } + ], + } + + def load_service_mock(*args, **kwargs): + if args[1] == "endpoint-rule-set-1": + return myservice_endpoint_rule_set + else: + return Loader( + extra_search_paths=[self.root_dir] + ).load_service_model(*args, **kwargs) + self.loader = Loader(extra_search_paths=[self.root_dir]) + self.loader.load_service_model = mock.Mock() + self.loader.load_service_model.side_effect = load_service_mock endpoint_resolver = mock.Mock() endpoint_resolver.construct_endpoint.return_value = { diff --git a/tests/unit/docs/bcdoc/test_docstringparser.py b/tests/unit/docs/bcdoc/test_docstringparser.py index 0c2b3f65..3e816cdc 100644 --- a/tests/unit/docs/bcdoc/test_docstringparser.py +++ b/tests/unit/docs/bcdoc/test_docstringparser.py @@ -54,6 +54,56 @@ class TestDocStringParser(unittest.TestCase): result, [b'* Wello', b' * Horld'] ) + def test_link_with_no_period(self): + html = "

This is a test Link

" + result = self.parse(html) + self.assert_contains_exact_lines_in_order( + result, [b'This is a test `Link `__ '] + ) + + def test_link_with_period(self): + html = "

This is a test Link.

" + result = self.parse(html) + self.assert_contains_exact_lines_in_order( + result, [b'This is a test `Link `__.'] + ) + + def test_code_with_empty_link(self): + html = " Link " + result = self.parse(html) + self.assert_contains_exact_lines_in_order(result, [b'``Link`` ']) + + def test_code_with_link_spaces(self): + html = " Link " + result = self.parse(html) + self.assert_contains_exact_lines_in_order(result, [b'``Link`` ']) + + def test_code_with_link_no_spaces(self): + html = "Link" + result = self.parse(html) + self.assert_contains_exact_lines_in_order(result, [b'``Link`` ']) + + def test_href_with_spaces(self): + html = "

Link

" + result = self.parse(html) + self.assert_contains_exact_lines_in_order( + result, [b' `Link `__ '] + ) + + def test_bold_with_nested_formatting(self): + html = "TesttestLink" + result = self.parse(html) + self.assert_contains_exact_lines_in_order( + result, [b'``Test`` test `Link `__ '] + ) + + def test_link_with_nested_formatting(self): + html = "Test" + result = self.parse(html) + self.assert_contains_exact_lines_in_order( + result, [b'`Test `__ '] + ) + class TestHTMLTree(unittest.TestCase): def setUp(self): diff --git a/tests/unit/docs/bcdoc/test_style.py b/tests/unit/docs/bcdoc/test_style.py index bc4179a4..3b474c26 100644 --- a/tests/unit/docs/bcdoc/test_style.py +++ b/tests/unit/docs/bcdoc/test_style.py @@ -20,7 +20,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. # -from botocore.compat import six from botocore.docs.bcdoc.restdoc import ReSTDocument from botocore.docs.bcdoc.style import ReSTStyle from tests import unittest @@ -151,9 +150,9 @@ class TestStyle(unittest.TestCase): style.tocitem('bar') self.assertEqual( style.doc.getvalue(), - six.b( - '\n.. toctree::\n :maxdepth: 1' - '\n :titlesonly:\n\n foo\n bar\n' + ( + b'\n.. toctree::\n :maxdepth: 1' + b'\n :titlesonly:\n\n foo\n bar\n' ), ) @@ -173,9 +172,9 @@ class TestStyle(unittest.TestCase): style.hidden_tocitem('bar') self.assertEqual( style.doc.getvalue(), - six.b( - '\n.. toctree::\n :maxdepth: 1' - '\n :hidden:\n\n foo\n bar\n' + ( + b'\n.. toctree::\n :maxdepth: 1' + b'\n :hidden:\n\n foo\n bar\n' ), ) @@ -294,7 +293,9 @@ class TestStyle(unittest.TestCase): 'returns: None' ) style.write_py_doc_string(docstring) - self.assertEqual(style.doc.getvalue(), six.b(docstring + '\n')) + self.assertEqual( + style.doc.getvalue(), (docstring + '\n').encode('latin-1') + ) def test_new_line(self): style = ReSTStyle(ReSTDocument()) diff --git a/tests/unit/test_args.py b/tests/unit/test_args.py index b2a2320f..832a689e 100644 --- a/tests/unit/test_args.py +++ b/tests/unit/test_args.py @@ -13,7 +13,6 @@ # language governing permissions and limitations under the License. import socket -import botocore.config from botocore import args, exceptions from botocore.client import ClientEndpointBridge from botocore.config import Config @@ -36,6 +35,7 @@ class TestCreateClientArgs(unittest.TestCase): self.service_model = self._get_service_model() self.bridge = mock.Mock(ClientEndpointBridge) self._set_endpoint_bridge_resolve() + self._set_resolver_uses_builtin() self.default_socket_options = [ (socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) ] @@ -65,6 +65,9 @@ class TestCreateClientArgs(unittest.TestCase): ret_val.update(**override_kwargs) self.bridge.resolve.return_value = ret_val + def _set_resolver_uses_builtin(self, uses_builtin=True): + self.bridge.resolver_uses_builtin_data.return_value = uses_builtin + def call_get_client_args(self, **override_kwargs): call_kwargs = { 'service_model': self.service_model, @@ -76,6 +79,12 @@ class TestCreateClientArgs(unittest.TestCase): 'scoped_config': {}, 'client_config': None, 'endpoint_bridge': self.bridge, + 'endpoints_ruleset_data': { + 'version': '1.0', + 'parameters': {}, + 'rules': [], + }, + 'partition_data': {}, } call_kwargs.update(**override_kwargs) return self.args_create.get_client_args(**call_kwargs) @@ -131,7 +140,7 @@ class TestCreateClientArgs(unittest.TestCase): ) def test_max_pool_from_client_config_forwarded_to_endpoint_creator(self): - config = botocore.config.Config(max_pool_connections=20) + config = Config(max_pool_connections=20) with mock.patch('botocore.args.EndpointCreator') as m: self.call_get_client_args(client_config=config) self.assert_create_endpoint_call(m, max_pool_connections=20) @@ -141,7 +150,7 @@ class TestCreateClientArgs(unittest.TestCase): 'http': 'http://foo.bar:1234', 'https': 'https://foo.bar:4321', } - config = botocore.config.Config(proxies=proxies) + config = Config(proxies=proxies) with mock.patch('botocore.args.EndpointCreator') as m: self.call_get_client_args(client_config=config) self.assert_create_endpoint_call(m, proxies=proxies) @@ -190,7 +199,7 @@ class TestCreateClientArgs(unittest.TestCase): ) self.assertEqual(client_args['client_config'].region_name, None) - def test_tcp_keepalive_enabled(self): + def test_tcp_keepalive_enabled_scoped_config(self): scoped_config = {'tcp_keepalive': 'true'} with mock.patch('botocore.args.EndpointCreator') as m: self.call_get_client_args(scoped_config=scoped_config) @@ -201,12 +210,38 @@ class TestCreateClientArgs(unittest.TestCase): ) def test_tcp_keepalive_not_specified(self): - scoped_config = {} with mock.patch('botocore.args.EndpointCreator') as m: - self.call_get_client_args(scoped_config=scoped_config) + self.call_get_client_args(scoped_config={}, client_config=None) self.assert_create_endpoint_call( m, socket_options=self.default_socket_options ) + self.call_get_client_args( + scoped_config=None, client_config=Config() + ) + self.assert_create_endpoint_call( + m, socket_options=self.default_socket_options + ) + + def test_tcp_keepalive_enabled_if_set_anywhere(self): + with mock.patch('botocore.args.EndpointCreator') as m: + self.call_get_client_args( + scoped_config={'tcp_keepalive': 'true'}, + client_config=Config(tcp_keepalive=False), + ) + self.assert_create_endpoint_call( + m, + socket_options=self.default_socket_options + + [(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)], + ) + self.call_get_client_args( + scoped_config={'tcp_keepalive': 'false'}, + client_config=Config(tcp_keepalive=True), + ) + self.assert_create_endpoint_call( + m, + socket_options=self.default_socket_options + + [(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)], + ) def test_tcp_keepalive_explicitly_disabled(self): scoped_config = {'tcp_keepalive': 'false'} @@ -370,16 +405,14 @@ class TestCreateClientArgs(unittest.TestCase): ) def test_provides_total_max_attempts(self): - config = botocore.config.Config(retries={'total_max_attempts': 10}) + config = Config(retries={'total_max_attempts': 10}) client_args = self.call_get_client_args(client_config=config) self.assertEqual( client_args['client_config'].retries['total_max_attempts'], 10 ) def test_provides_total_max_attempts_has_precedence(self): - config = botocore.config.Config( - retries={'total_max_attempts': 10, 'max_attempts': 5} - ) + config = Config(retries={'total_max_attempts': 10, 'max_attempts': 5}) client_args = self.call_get_client_args(client_config=config) self.assertEqual( client_args['client_config'].retries['total_max_attempts'], 10 @@ -387,7 +420,7 @@ class TestCreateClientArgs(unittest.TestCase): self.assertNotIn('max_attempts', client_args['client_config'].retries) def test_provide_retry_config_maps_total_max_attempts(self): - config = botocore.config.Config(retries={'max_attempts': 10}) + config = Config(retries={'max_attempts': 10}) client_args = self.call_get_client_args(client_config=config) self.assertEqual( client_args['client_config'].retries['total_max_attempts'], 11 @@ -459,3 +492,242 @@ class TestCreateClientArgs(unittest.TestCase): client_config=Config(retries={'mode': 'standard'}) )['client_config'] self.assertEqual(config.retries['mode'], 'standard') + + def test_creates_ruleset_resolver_if_given_data(self): + with mock.patch('botocore.args.EndpointRulesetResolver') as m: + self.call_get_client_args( + service_model=self._get_service_model('s3'), + endpoints_ruleset_data={ + 'version': '1.0', + 'parameters': {}, + 'rules': [], + }, + ) + m.assert_called_once() + + def test_doesnt_create_ruleset_resolver_if_not_given_data(self): + with mock.patch('botocore.args.EndpointRulesetResolver') as m: + self.call_get_client_args( + service_model=self._get_service_model('s3'), + endpoints_ruleset_data=None, + ) + m.assert_not_called() + + +class TestEndpointResolverBuiltins(unittest.TestCase): + def setUp(self): + event_emitter = mock.Mock(HierarchicalEmitter) + self.config_store = ConfigValueStore() + self.args_create = args.ClientArgsCreator( + event_emitter=event_emitter, + user_agent=None, + response_parser_factory=None, + loader=None, + exceptions_factory=None, + config_store=self.config_store, + ) + self.bridge = ClientEndpointBridge( + endpoint_resolver=mock.Mock(), + scoped_config=None, + client_config=Config(), + default_endpoint=None, + service_signing_name=None, + config_store=self.config_store, + ) + # assume a legacy endpoint resolver that uses the builtin + # endpoints.json file + self.bridge.endpoint_resolver.uses_builtin_data = True + + def call_compute_endpoint_resolver_builtin_defaults(self, **overrides): + defaults = { + 'region_name': 'ca-central-1', + 'service_name': 'fooservice', + 's3_config': {}, + 'endpoint_bridge': self.bridge, + 'client_endpoint_url': None, + 'legacy_endpoint_url': 'https://my.legacy.endpoint.com', + } + kwargs = {**defaults, **overrides} + return self.args_create.compute_endpoint_resolver_builtin_defaults( + **kwargs + ) + + def test_builtins_defaults(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults() + + self.assertEqual(bins['AWS::Region'], 'ca-central-1') + self.assertEqual(bins['AWS::UseFIPS'], False) + self.assertEqual(bins['AWS::UseDualStack'], False) + self.assertEqual(bins['AWS::STS::UseGlobalEndpoint'], True) + self.assertEqual(bins['AWS::S3::UseGlobalEndpoint'], False) + self.assertEqual(bins['AWS::S3::Accelerate'], False) + self.assertEqual(bins['AWS::S3::ForcePathStyle'], False) + self.assertEqual(bins['AWS::S3::UseArnRegion'], True) + self.assertEqual(bins['AWS::S3Control::UseArnRegion'], False) + self.assertEqual( + bins['AWS::S3::DisableMultiRegionAccessPoints'], False + ) + self.assertEqual(bins['SDK::Endpoint'], None) + + def test_aws_region(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + region_name='my-region-1', + ) + self.assertEqual(bins['AWS::Region'], 'my-region-1') + + def test_aws_use_fips_when_config_is_set_true(self): + self.config_store.set_config_variable('use_fips_endpoint', True) + bins = self.call_compute_endpoint_resolver_builtin_defaults() + self.assertEqual(bins['AWS::UseFIPS'], True) + + def test_aws_use_fips_when_config_is_set_false(self): + self.config_store.set_config_variable('use_fips_endpoint', False) + bins = self.call_compute_endpoint_resolver_builtin_defaults() + self.assertEqual(bins['AWS::UseFIPS'], False) + + def test_aws_use_dualstack_when_config_is_set_true(self): + self.bridge.client_config = Config(s3={'use_dualstack_endpoint': True}) + bins = self.call_compute_endpoint_resolver_builtin_defaults( + service_name='s3-control' + ) + self.assertEqual(bins['AWS::UseDualStack'], True) + + def test_aws_use_dualstack_when_config_is_set_false(self): + self.bridge.client_config = Config( + s3={'use_dualstack_endpoint': False} + ) + bins = self.call_compute_endpoint_resolver_builtin_defaults( + service_name='s3-control' + ) + self.assertEqual(bins['AWS::UseDualStack'], False) + + def test_aws_use_dualstack_when_non_dualstack_service(self): + self.bridge.client_config = Config(s3={'use_dualstack_endpoint': True}) + bins = self.call_compute_endpoint_resolver_builtin_defaults( + service_name='other-service' + ) + self.assertEqual(bins['AWS::UseDualStack'], False) + + def test_aws_sts_global_endpoint_with_default_and_legacy_region(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + region_name='us-west-2', + ) + self.assertEqual(bins['AWS::STS::UseGlobalEndpoint'], True) + + def test_aws_sts_global_endpoint_with_default_and_nonlegacy_region(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + region_name='eu-south-1', + ) + self.assertEqual(bins['AWS::STS::UseGlobalEndpoint'], False) + + def test_aws_sts_global_endpoint_with_nondefault_config(self): + self.config_store.set_config_variable( + 'sts_regional_endpoints', 'regional' + ) + bins = self.call_compute_endpoint_resolver_builtin_defaults( + region_name='us-west-2', + ) + self.assertEqual(bins['AWS::STS::UseGlobalEndpoint'], False) + + def test_s3_global_endpoint(self): + # The only reason for this builtin to not have the default value + # (False) is that the ``_should_force_s3_global`` method + # returns True. + self.args_create._should_force_s3_global = mock.Mock(return_value=True) + bins = self.call_compute_endpoint_resolver_builtin_defaults() + self.assertTrue(bins['AWS::S3::UseGlobalEndpoint']) + self.args_create._should_force_s3_global.assert_called_once() + + def test_s3_accelerate_with_config_set_true(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + s3_config={'use_accelerate_endpoint': True}, + ) + self.assertEqual(bins['AWS::S3::Accelerate'], True) + + def test_s3_accelerate_with_config_set_false(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + s3_config={'use_accelerate_endpoint': False}, + ) + self.assertEqual(bins['AWS::S3::Accelerate'], False) + + def test_force_path_style_with_config_set_to_path(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + s3_config={'addressing_style': 'path'}, + ) + self.assertEqual(bins['AWS::S3::ForcePathStyle'], True) + + def test_force_path_style_with_config_set_to_auto(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + s3_config={'addressing_style': 'auto'}, + ) + self.assertEqual(bins['AWS::S3::ForcePathStyle'], False) + + def test_force_path_style_with_config_set_to_virtual(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + s3_config={'addressing_style': 'virtual'}, + ) + self.assertEqual(bins['AWS::S3::ForcePathStyle'], False) + + def test_use_arn_region_with_config_set_false(self): + # These two builtins both take their value from the ``use_arn_region`` + # in the S3 configuration, but have different default values. + bins = self.call_compute_endpoint_resolver_builtin_defaults( + s3_config={'use_arn_region': False}, + ) + self.assertEqual(bins['AWS::S3::UseArnRegion'], False) + self.assertEqual(bins['AWS::S3Control::UseArnRegion'], False) + + def test_use_arn_region_with_config_set_true(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + s3_config={'use_arn_region': True}, + ) + self.assertEqual(bins['AWS::S3::UseArnRegion'], True) + self.assertEqual(bins['AWS::S3Control::UseArnRegion'], True) + + def test_disable_mrap_with_config_set_true(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + s3_config={'s3_disable_multiregion_access_points': True}, + ) + self.assertEqual(bins['AWS::S3::DisableMultiRegionAccessPoints'], True) + + def test_disable_mrap_with_config_set_false(self): + bins = self.call_compute_endpoint_resolver_builtin_defaults( + s3_config={'s3_disable_multiregion_access_points': False}, + ) + self.assertEqual( + bins['AWS::S3::DisableMultiRegionAccessPoints'], False + ) + + def test_sdk_endpoint_both_inputs_set(self): + # assume a legacy endpoint resolver that uses a customized + # endpoints.json file + self.bridge.endpoint_resolver.uses_builtin_data = False + bins = self.call_compute_endpoint_resolver_builtin_defaults( + client_endpoint_url='https://my.client.endpoint.com', + legacy_endpoint_url='https://my.legacy.endpoint.com', + ) + self.assertEqual( + bins['SDK::Endpoint'], 'https://my.client.endpoint.com' + ) + + def test_sdk_endpoint_legacy_set_with_builtin_data(self): + # assume a legacy endpoint resolver that uses a customized + # endpoints.json file + self.bridge.endpoint_resolver.uses_builtin_data = False + bins = self.call_compute_endpoint_resolver_builtin_defaults( + client_endpoint_url=None, + legacy_endpoint_url='https://my.legacy.endpoint.com', + ) + self.assertEqual( + bins['SDK::Endpoint'], 'https://my.legacy.endpoint.com' + ) + + def test_sdk_endpoint_legacy_set_without_builtin_data(self): + # assume a legacy endpoint resolver that uses the builtin + # endpoints.json file + self.bridge.endpoint_resolver.uses_builtin_data = True + bins = self.call_compute_endpoint_resolver_builtin_defaults( + client_endpoint_url=None, + legacy_endpoint_url='https://my.legacy.endpoint.com', + ) + self.assertEqual(bins['SDK::Endpoint'], None) diff --git a/tests/unit/test_auth_bearer.py b/tests/unit/test_auth_bearer.py new file mode 100644 index 00000000..898da579 --- /dev/null +++ b/tests/unit/test_auth_bearer.py @@ -0,0 +1,72 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import pytest + +from botocore.auth import BearerAuth +from botocore.awsrequest import AWSRequest +from botocore.exceptions import NoAuthTokenError +from botocore.tokens import FrozenAuthToken + +cases = [ + { + "documentation": "Minimal bearer auth case", + "headers": {}, + "token": "mF_9.B5f-4.1JqM", + "expectedHeaders": {"Authorization": "Bearer mF_9.B5f-4.1JqM"}, + }, + { + "documentation": "Longer token case", + "headers": {}, + "token": "eW91J3JlIG5vdCBzdXBwb3NlZCB0byBkZWNvZGUgdGhpcyE=", + "expectedHeaders": { + "Authorization": "Bearer eW91J3JlIG5vdCBzdXBwb3NlZCB0byBkZWNvZGUgdGhpcyE=" + }, + }, + { + "documentation": "Signer should override existing header", + "headers": {"Authorization": "Bearer foo"}, + "token": "mF_9.B5f-4.1JqM", + "expectedHeaders": {"Authorization": "Bearer mF_9.B5f-4.1JqM"}, + }, + { + "documentation": "Signer requires a token", + "headers": {}, + "token": None, + "expectedException": NoAuthTokenError, + }, +] + + +@pytest.mark.parametrize("test_case", cases) +def test_bearer_auth(test_case): + url = "https://example.com" + headers = test_case.get("headers", {}) + request = AWSRequest(method="GET", url=url, headers=headers) + + auth_token = None + raw_token = test_case["token"] + if raw_token: + auth_token = FrozenAuthToken(test_case["token"], expiration=None) + + bearer_auth = BearerAuth(auth_token) + expected_headers = test_case.get("expectedHeaders") + expected_exception = test_case.get("expectedException") + if expected_headers: + bearer_auth.add_auth(request) + for name in expected_headers: + actual_header = request.headers[name] + expected_header = expected_headers[name] + assert actual_header == expected_header + elif expected_exception: + with pytest.raises(expected_exception): + bearer_auth.add_auth(request) diff --git a/tests/unit/test_awsrequest.py b/tests/unit/test_awsrequest.py index 22bd9a74..f0b1f5e4 100644 --- a/tests/unit/test_awsrequest.py +++ b/tests/unit/test_awsrequest.py @@ -30,7 +30,7 @@ from botocore.awsrequest import ( create_request_object, prepare_request_dict, ) -from botocore.compat import file_type, six +from botocore.compat import file_type from botocore.exceptions import UnseekableStreamError from tests import mock, unittest @@ -58,8 +58,11 @@ class FakeSocket: def close(self): pass + def settimeout(self, value): + pass -class BytesIOWithLen(six.BytesIO): + +class BytesIOWithLen(io.BytesIO): def __len__(self): return len(self.getvalue()) @@ -400,7 +403,7 @@ class TestAWSHTTPConnection(unittest.TestCase): conn.request( 'GET', '/bucket/foo', - six.BytesIO(b'body'), + io.BytesIO(b'body'), {'Expect': b'100-continue', 'Content-Length': b'4'}, ) response = conn.getresponse() diff --git a/tests/unit/test_client.py b/tests/unit/test_client.py index 2566816f..c4292066 100644 --- a/tests/unit/test_client.py +++ b/tests/unit/test_client.py @@ -10,11 +10,14 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. +import io +from contextlib import closing + import botocore import botocore.config from botocore import client, exceptions, hooks +from botocore.auth import AUTH_TYPE_MAPS, BaseSigner from botocore.client import ClientEndpointBridge -from botocore.compat import six from botocore.configprovider import ( ChainProvider, ConfigValueStore, @@ -81,6 +84,21 @@ class TestAutoGeneratedClient(unittest.TestCase): 'StringType': {'type': 'string'}, }, } + self.endpoint_ruleset = { + "version": "1.0", + "parameters": {}, + "rules": [ + { + "conditions": [], + "type": "endpoint", + "endpoint": { + "url": "https://foo.bar", + "properties": {}, + "headers": {}, + }, + } + ], + } self.retry_config = { "retry": { "__default__": { @@ -94,8 +112,13 @@ class TestAutoGeneratedClient(unittest.TestCase): } } } + + def load_service_mock(*args, **kwargs): + if args[1] == "service-2": + return self.service_description + self.loader = mock.Mock() - self.loader.load_service_model.return_value = self.service_description + self.loader.load_service_model.side_effect = load_service_mock self.loader.load_data.return_value = self.retry_config self.credentials = Credentials('access-key', 'secret-key') @@ -242,6 +265,20 @@ class TestAutoGeneratedClient(unittest.TestCase): ) self.assertTrue(hasattr(service_client, 'test_operation')) + def test_client_with_nonstandard_signature_version(self): + self.service_description['metadata']['signatureVersion'] = 'foo' + creator = self.create_client_creator() + foo_signer = mock.Mock(spec=BaseSigner) + + auth_types = AUTH_TYPE_MAPS.copy() + auth_types['foo'] = foo_signer + + with mock.patch('botocore.client.AUTH_TYPE_MAPS', auth_types): + service_client = creator.create_client( + 'myservice', 'us-west-2', credentials=self.credentials + ) + assert service_client.meta.config.signature_version == 'foo' + def test_client_method_docstring(self): creator = self.create_client_creator() service_client = creator.create_client( @@ -268,7 +305,7 @@ class TestAutoGeneratedClient(unittest.TestCase): service_client = creator.create_client( 'myservice', 'us-west-2', credentials=self.credentials ) - with mock.patch('sys.stdout', six.StringIO()) as mock_stdout: + with mock.patch('sys.stdout', io.StringIO()) as mock_stdout: help(service_client.test_operation) method_docstring = mock_stdout.getvalue() ref_docstring_lines = [ @@ -367,9 +404,17 @@ class TestAutoGeneratedClient(unittest.TestCase): credentials=self.credentials, api_version=specific_api_version, ) - self.loader.load_service_model.assert_called_with( - 'myservice', 'service-2', api_version=specific_api_version - ) + calls = [ + mock.call( + 'myservice', 'service-2', api_version=specific_api_version + ), + mock.call( + 'myservice', + 'endpoint-rule-set-1', + api_version=specific_api_version, + ), + ] + self.loader.load_service_model.assert_has_calls(calls) def test_create_client_class_creates_class(self): creator = self.create_client_creator() @@ -512,7 +557,13 @@ class TestAutoGeneratedClient(unittest.TestCase): scoped_config={}, ) request_signer.assert_called_with( - mock.ANY, mock.ANY, mock.ANY, 'v4', mock.ANY, mock.ANY + mock.ANY, + mock.ANY, + mock.ANY, + 'v4', + mock.ANY, + mock.ANY, + mock.ANY, ) @mock.patch('botocore.args.RequestSigner') @@ -526,7 +577,13 @@ class TestAutoGeneratedClient(unittest.TestCase): scoped_config=config, ) request_signer.assert_called_with( - mock.ANY, mock.ANY, mock.ANY, 'foo', mock.ANY, mock.ANY + mock.ANY, + mock.ANY, + mock.ANY, + 'foo', + mock.ANY, + mock.ANY, + mock.ANY, ) @mock.patch('botocore.args.RequestSigner') @@ -540,7 +597,13 @@ class TestAutoGeneratedClient(unittest.TestCase): client_config=config, ) request_signer.assert_called_with( - mock.ANY, mock.ANY, mock.ANY, 'foo', mock.ANY, mock.ANY + mock.ANY, + mock.ANY, + mock.ANY, + 'foo', + mock.ANY, + mock.ANY, + mock.ANY, ) def test_client_method_to_api_mapping(self): @@ -811,6 +874,7 @@ class TestAutoGeneratedClient(unittest.TestCase): } self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, pagination_config, ] creator = self.create_client_creator() @@ -831,6 +895,7 @@ class TestAutoGeneratedClient(unittest.TestCase): } self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, pagination_config, ] creator = self.create_client_creator() @@ -847,6 +912,7 @@ class TestAutoGeneratedClient(unittest.TestCase): # this by raising a DataNotFoundError. self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, exceptions.DataNotFoundError(data_path='/foo'), ] creator = self.create_client_creator() @@ -857,6 +923,7 @@ class TestAutoGeneratedClient(unittest.TestCase): waiter_config = {'version': 2, 'waiters': {}} self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, waiter_config, ] creator = self.create_client_creator() @@ -893,6 +960,7 @@ class TestAutoGeneratedClient(unittest.TestCase): } self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, waiter_config, ] creator = self.create_client_creator() @@ -905,6 +973,7 @@ class TestAutoGeneratedClient(unittest.TestCase): def test_service_has_no_waiter_configs(self): self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, exceptions.DataNotFoundError(data_path='/foo'), ] creator = self.create_client_creator() @@ -1060,6 +1129,7 @@ class TestAutoGeneratedClient(unittest.TestCase): def test_try_to_paginate_non_paginated(self): self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, exceptions.DataNotFoundError(data_path='/foo'), ] creator = self.create_client_creator() @@ -1081,6 +1151,7 @@ class TestAutoGeneratedClient(unittest.TestCase): } self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, pagination_config, ] creator = self.create_client_creator() @@ -1104,6 +1175,7 @@ class TestAutoGeneratedClient(unittest.TestCase): } self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, pagination_config, ] creator = self.create_client_creator() @@ -1127,12 +1199,13 @@ class TestAutoGeneratedClient(unittest.TestCase): } self.loader.load_service_model.side_effect = [ self.service_description, + self.endpoint_ruleset, pagination_config, ] creator = self.create_client_creator() service_client = creator.create_client('myservice', 'us-west-2') paginator = service_client.get_paginator('test_operation') - with mock.patch('sys.stdout', six.StringIO()) as mock_stdout: + with mock.patch('sys.stdout', io.StringIO()) as mock_stdout: help(paginator.paginate) contents = mock_stdout.getvalue() lines = [ @@ -1585,6 +1658,26 @@ class TestAutoGeneratedClient(unittest.TestCase): request_dict = self.endpoint.make_request.call_args[0][1] self.assertEqual(request_dict['url'], expected_url) + def test_client_close(self): + creator = self.create_client_creator() + service_client = creator.create_client( + 'myservice', 'us-west-2', credentials=self.credentials + ) + + service_client.close() + self.endpoint.close.assert_called_once_with() + + def test_client_close_context_manager(self): + creator = self.create_client_creator() + with closing( + creator.create_client( + 'myservice', 'us-west-2', credentials=self.credentials + ) + ) as service_client: + service_client.test_operation(Foo='baz') + + self.endpoint.close.assert_called_once_with() + class TestClientErrors(TestAutoGeneratedClient): def add_error_response(self, error_response): @@ -1932,22 +2025,6 @@ class TestClientEndpointBridge(unittest.TestCase): self.assertEqual('https://foo', resolved['endpoint_url']) self.assertEqual('v2', resolved['signature_version']) - def test_uses_ssl_common_name_over_hostname_if_present(self): - resolver = mock.Mock() - resolver.construct_endpoint.return_value = { - 'partition': 'aws', - 'hostname': 'do-not-use-this', - 'signatureVersions': ['v4'], - 'sslCommonName': 'common-name.com', - 'endpointName': 'us-west-2', - 'protocols': ['https'], - } - bridge = ClientEndpointBridge(resolver) - resolved = bridge.resolve('myservice', 'us-west-2') - self.assertEqual('us-west-2', resolved['region_name']) - self.assertEqual('us-west-2', resolved['signing_region']) - self.assertEqual('https://common-name.com', resolved['endpoint_url']) - def test_can_create_http_urls(self): resolver = mock.Mock() resolver.construct_endpoint.return_value = { diff --git a/tests/unit/test_configloader.py b/tests/unit/test_configloader.py index 1e0b837a..4a331c9e 100644 --- a/tests/unit/test_configloader.py +++ b/tests/unit/test_configloader.py @@ -17,23 +17,22 @@ import shutil import tempfile import botocore.exceptions -from botocore.compat import six from botocore.configloader import ( load_config, multi_file_load_config, raw_config_parse, ) -from tests import BaseEnvVar, mock, unittest +from tests import mock, unittest def path(filename): directory = os.path.join(os.path.dirname(__file__), 'cfg') if isinstance(filename, bytes): - directory = six.b(directory) + directory = directory.encode('latin-1') return os.path.join(directory, filename) -class TestConfigLoader(BaseEnvVar): +class TestConfigLoader(unittest.TestCase): def setUp(self): self.tempdir = tempfile.mkdtemp() @@ -53,7 +52,7 @@ class TestConfigLoader(BaseEnvVar): directory = self.tempdir if isinstance(filename, bytes): - directory = six.b(directory) + directory = directory.encode('latin-1') full_path = os.path.join(directory, filename) with open(full_path, 'w') as f: @@ -178,6 +177,17 @@ class TestConfigLoader(BaseEnvVar): self.assertIn('default', loaded_config['profiles']) self.assertIn('personal', loaded_config['profiles']) + def test_sso_session_config(self): + filename = path('aws_sso_session_config') + loaded_config = load_config(filename) + self.assertIn('profiles', loaded_config) + self.assertIn('default', loaded_config['profiles']) + self.assertIn('sso_sessions', loaded_config) + self.assertIn('sso', loaded_config['sso_sessions']) + sso_config = loaded_config['sso_sessions']['sso'] + self.assertEqual(sso_config['sso_region'], 'us-east-1') + self.assertEqual(sso_config['sso_start_url'], 'https://example.com') + if __name__ == "__main__": unittest.main() diff --git a/tests/unit/test_credentials.py b/tests/unit/test_credentials.py index b418d574..c70204cb 100644 --- a/tests/unit/test_credentials.py +++ b/tests/unit/test_credentials.py @@ -24,7 +24,7 @@ from dateutil.tz import tzlocal, tzutc import botocore.exceptions import botocore.session from botocore import credentials -from botocore.compat import json, six +from botocore.compat import json from botocore.configprovider import ConfigValueStore from botocore.credentials import ( AssumeRoleProvider, @@ -3425,7 +3425,7 @@ class TestProfileProviderBuilder(unittest.TestCase): ConfigProvider, ] self.assertEqual(len(providers), len(expected_providers)) - zipped_providers = six.moves.zip(providers, expected_providers) + zipped_providers = zip(providers, expected_providers) for provider, expected_type in zipped_providers: self.assertTrue(isinstance(provider, expected_type)) @@ -3442,7 +3442,9 @@ class TestSSOCredentialFetcher(unittest.TestCase): self.start_url = 'https://d-92671207e4.awsapps.com/start' self.role_name = 'test-role' self.account_id = '1234567890' - self.access_token = 'some.sso.token' + self.access_token = { + 'accessToken': 'some.sso.token', + } # This is just an arbitrary point in time we can pin to self.now = datetime(2008, 9, 23, 12, 26, 40, tzinfo=tzutc()) # The SSO endpoint uses ms whereas the OIDC endpoint uses seconds @@ -3464,7 +3466,7 @@ class TestSSOCredentialFetcher(unittest.TestCase): expected_params = { 'roleName': self.role_name, 'accountId': self.account_id, - 'accessToken': self.access_token, + 'accessToken': self.access_token['accessToken'], } expected_response = { 'roleCredentials': { @@ -3501,7 +3503,7 @@ class TestSSOCredentialFetcher(unittest.TestCase): expected_params = { 'roleName': self.role_name, 'accountId': self.account_id, - 'accessToken': self.access_token, + 'accessToken': self.access_token['accessToken'], } self.stubber.add_client_error( 'get_role_credentials', diff --git a/tests/unit/test_endpoint.py b/tests/unit/test_endpoint.py index 946d16be..a2dc4575 100644 --- a/tests/unit/test_endpoint.py +++ b/tests/unit/test_endpoint.py @@ -11,12 +11,12 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. import datetime +import io import socket import pytest import botocore.endpoint -from botocore.compat import six from botocore.config import Config from botocore.endpoint import DEFAULT_TIMEOUT, Endpoint, EndpointCreator from botocore.exceptions import HTTPClientError @@ -44,14 +44,14 @@ def request_dict(**kwargs): return base -class RecordStreamResets(six.StringIO): +class RecordStreamResets(io.StringIO): def __init__(self, value): - six.StringIO.__init__(self, value) + io.StringIO.__init__(self, value) self.total_resets = 0 def seek(self, where, whence=0): self.total_resets += 1 - six.StringIO.seek(self, where, whence) + io.StringIO.seek(self, where, whence) class TestEndpointBase(unittest.TestCase): @@ -201,6 +201,10 @@ class TestEndpointFeatures(TestEndpointBase): } self.assertEqual(response, expected_response) + def test_close(self): + self.endpoint.close() + self.endpoint.http_session.close.assert_called_once_with() + class TestRetryInterface(TestEndpointBase): def setUp(self): diff --git a/tests/unit/test_endpoint_provider.py b/tests/unit/test_endpoint_provider.py new file mode 100644 index 00000000..bbcbade0 --- /dev/null +++ b/tests/unit/test_endpoint_provider.py @@ -0,0 +1,453 @@ +# Copyright 2012-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +import json +import logging +import os +from unittest.mock import Mock + +import pytest + +from botocore.endpoint_provider import ( + EndpointProvider, + EndpointRule, + ErrorRule, + RuleCreator, + RuleSet, + RuleSetStandardLibrary, + TreeRule, +) +from botocore.exceptions import ( + EndpointResolutionError, + MissingDependencyException, + UnknownSignatureVersionError, +) +from botocore.loaders import Loader +from botocore.regions import EndpointRulesetResolver +from tests import requires_crt + +REGION_TEMPLATE = "{Region}" +REGION_REF = {"ref": "Region"} +BUCKET_ARN_REF = {"ref": "bucketArn"} +PARSE_ARN_FUNC = { + "fn": "aws.parseArn", + "argv": [{"ref": "Bucket"}], + "assign": "bucketArn", +} +STRING_EQUALS_FUNC = { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [BUCKET_ARN_REF, "region"], + "assign": "bucketRegion", + }, + "", + ], +} +DNS_SUFFIX_TEMPLATE = "{PartitionResults#dnsSuffix}" +URL_TEMPLATE = ( + f"https://{REGION_TEMPLATE}.myGreatService.{DNS_SUFFIX_TEMPLATE}" +) +ENDPOINT_DICT = { + "url": URL_TEMPLATE, + "properties": { + "authSchemes": [ + { + "signingName": "s3", + "signingScope": REGION_TEMPLATE, + "name": "s3v4", + } + ], + }, + "headers": { + "x-amz-region-set": [ + REGION_REF, + { + "fn": "getAttr", + "argv": [BUCKET_ARN_REF, "region"], + }, + "us-east-2", + ], + }, +} + + +@pytest.fixture(scope="module") +def loader(): + return Loader() + + +@pytest.fixture(scope="module") +def partitions(loader): + return loader.load_data("partitions") + + +@pytest.fixture(scope="module") +def rule_lib(partitions): + return RuleSetStandardLibrary(partitions) + + +@pytest.fixture(scope="module") +def ruleset_dict(): + path = os.path.join( + os.path.dirname(__file__), + "data", + "endpoints", + "valid-rules", + "deprecated-param.json", + ) + with open(path) as f: + return json.load(f) + + +@pytest.fixture(scope="module") +def endpoint_provider(ruleset_dict, partitions): + return EndpointProvider(ruleset_dict, partitions) + + +@pytest.fixture(scope="module") +def endpoint_rule(): + return EndpointRule( + endpoint=ENDPOINT_DICT, + conditions=[ + PARSE_ARN_FUNC, + { + "fn": "not", + "argv": [STRING_EQUALS_FUNC], + }, + { + "fn": "aws.partition", + "argv": [REGION_REF], + "assign": "PartitionResults", + }, + ], + ) + + +def ruleset_testcases(): + filenames = [ + "aws-region", + "default-values", + "eventbridge", + "fns", + "headers", + "is-virtual-hostable-s3-bucket", + "local-region-override", + "parse-arn", + "parse-url", + "substring", + "uri-encode", + "valid-hostlabel", + ] + error_cases = [] + endpoint_cases = [] + base_path = os.path.join(os.path.dirname(__file__), "data", "endpoints") + for name in filenames: + + with open(os.path.join(base_path, "valid-rules", f"{name}.json")) as f: + ruleset = json.load(f) + with open(os.path.join(base_path, "test-cases", f"{name}.json")) as f: + tests = json.load(f) + + for test in tests["testCases"]: + input_params = test["params"] + expected_object = test["expect"] + if "error" in expected_object: + error_cases.append( + (ruleset, input_params, expected_object["error"]) + ) + elif "endpoint" in expected_object: + endpoint_cases.append( + (ruleset, input_params, expected_object["endpoint"]) + ) + else: + raise ValueError("Expected `error` or `endpoint` in test case") + return error_cases, endpoint_cases + + +ERROR_TEST_CASES, ENDPOINT_TEST_CASES = ruleset_testcases() + + +@pytest.mark.parametrize( + "ruleset,input_params,expected_error", + ERROR_TEST_CASES, +) +def test_endpoint_resolution_raises( + partitions, ruleset, input_params, expected_error +): + endpoint_provider = EndpointProvider(ruleset, partitions) + with pytest.raises(EndpointResolutionError) as exc_info: + endpoint_provider.resolve_endpoint(**input_params) + assert str(exc_info.value) == expected_error + + +@pytest.mark.parametrize( + "ruleset,input_params,expected_endpoint", + ENDPOINT_TEST_CASES, +) +def test_endpoint_resolution( + partitions, ruleset, input_params, expected_endpoint +): + endpoint_provider = EndpointProvider(ruleset, partitions) + endpoint = endpoint_provider.resolve_endpoint(**input_params) + assert endpoint.url == expected_endpoint["url"] + assert endpoint.properties == expected_endpoint.get("properties", {}) + assert endpoint.headers == expected_endpoint.get("headers", {}) + + +def test_none_returns_default_partition(rule_lib): + partition_dict = rule_lib.aws_partition(None) + assert partition_dict['name'] == "aws" + + +def test_no_match_region_returns_default_partition(rule_lib): + partition_dict = rule_lib.aws_partition("invalid-region-42") + assert partition_dict['name'] == "aws" + + +def test_invalid_arn_returns_none(rule_lib): + assert rule_lib.aws_parse_arn("arn:aws:this-is-not-an-arn:foo") is None + + +def test_uri_encode_none_returns_none(rule_lib): + assert rule_lib.uri_encode(None) is None + + +def test_parse_url_none_return_none(rule_lib): + assert rule_lib.parse_url(None) is None + + +def test_string_equals_wrong_type_raises(rule_lib): + with pytest.raises(EndpointResolutionError) as exc_info: + rule_lib.string_equals(1, 2) + assert "Both values must be strings" in str(exc_info.value) + + +def test_boolean_equals_wrong_type_raises(rule_lib): + with pytest.raises(EndpointResolutionError) as exc_info: + rule_lib.boolean_equals(1, 2) + assert "Both arguments must be bools" in str(exc_info.value) + + +def test_substring_wrong_type_raises(rule_lib): + with pytest.raises(EndpointResolutionError) as exc_info: + rule_lib.substring(["h", "e", "l", "l", "o"], 0, 5, False) + assert "Input must be a string" in str(exc_info.value) + + +def test_creator_unknown_type_raises(): + with pytest.raises(EndpointResolutionError) as exc_info: + RuleCreator.create(type="foo") + assert "Unknown rule type: foo." in str(exc_info.value) + + +def test_parameter_wrong_type_raises(endpoint_provider): + param = endpoint_provider.ruleset.parameters["Region"] + with pytest.raises(EndpointResolutionError) as exc_info: + param.validate_input(1) + assert "Value (Region) is the wrong type" in str(exc_info.value) + + +def test_deprecated_parameter_logs(endpoint_provider, caplog): + caplog.set_level(logging.INFO) + param = endpoint_provider.ruleset.parameters["Region"] + param.validate_input("foo") + assert "Region has been deprecated." in caplog.text + + +def test_no_endpoint_found_error(endpoint_provider): + with pytest.raises(EndpointResolutionError) as exc_info: + endpoint_provider.resolve_endpoint( + **{"Endpoint": "mygreatendpoint.com", "Bucket": "mybucket"} + ) + assert "No endpoint found for parameters" in str(exc_info.value) + + +@pytest.mark.parametrize( + "rule_dict,expected_rule_type", + [ + ( + { + "type": "endpoint", + "conditions": [], + "endpoint": { + "url": ( + "https://{Region}.myGreatService." + "{PartitionResult#dualStackDnsSuffix}" + ), + "properties": {}, + "headers": {}, + }, + }, + EndpointRule, + ), + ( + { + "type": "error", + "conditions": [], + "error": ( + "Dualstack is enabled but this partition " + "does not support DualStack" + ), + }, + ErrorRule, + ), + ({"type": "tree", "conditions": [], "rules": []}, TreeRule), + ], +) +def test_rule_creation(rule_dict, expected_rule_type): + rule = RuleCreator.create(**rule_dict) + assert isinstance(rule, expected_rule_type) + + +def test_assign_existing_scope_var_raises(rule_lib): + rule = EndpointRule( + conditions=[ + { + 'fn': 'aws.parseArn', + 'argv': ['{Bucket}'], + 'assign': 'bucketArn', + }, + { + 'fn': 'aws.parseArn', + 'argv': ['{Bucket}'], + 'assign': 'bucketArn', + }, + ], + endpoint={'url': 'foo.bar'}, + ) + with pytest.raises(EndpointResolutionError) as exc_info: + rule.evaluate_conditions( + scope_vars={ + 'Bucket': 'arn:aws:s3:us-east-1:123456789012:mybucket' + }, + rule_lib=rule_lib, + ) + assert str(exc_info.value) == ( + "Assignment bucketArn already exists in " + "scoped variables and cannot be overwritten" + ) + + +def test_ruleset_unknown_parameter_type_raises(partitions): + with pytest.raises(EndpointResolutionError) as exc_info: + RuleSet( + version='1.0', + parameters={ + 'Bucket': {"type": "list"}, + }, + rules=[], + partitions=partitions, + ) + assert "Unknown parameter type: list." in str(exc_info.value) + + +@pytest.fixture() +def empty_resolver(): + return EndpointRulesetResolver( + endpoint_ruleset_data={ + 'version': '1.0', + 'parameters': {}, + 'rules': [], + }, + partition_data={}, + service_model=None, + builtins={}, + client_context=None, + event_emitter=None, + use_ssl=True, + requested_auth_scheme=None, + ) + + +def test_auth_schemes_conversion_sigv4(empty_resolver): + auth_schemes = [ + { + 'name': 'sigv4', + 'signingName': 'dynamodb', + 'signingRegion': 'my-region-1', + 'disableDoubleEncoding': True, + 'otherParameter': 'otherValue', + } + ] + at, sc = empty_resolver.auth_schemes_to_signing_ctx(auth_schemes) + assert at == 'v4' + assert sc == { + 'region': 'my-region-1', + 'signing_name': 'dynamodb', + 'disableDoubleEncoding': True, + } + + +@requires_crt() +def test_auth_schemes_conversion_sigv4a_with_crt(monkeypatch, empty_resolver): + monkeypatch.setattr('botocore.regions.HAS_CRT', True) + auth_schemes = [ + {'name': 'sigv4a', 'signingName': 's3', 'signingRegionSet': ['*']} + ] + at, sc = empty_resolver.auth_schemes_to_signing_ctx(auth_schemes) + assert at == 'v4a' + assert sc == {'region': '*', 'signing_name': 's3'} + + +def test_auth_schemes_conversion_sigv4a_without_crt( + monkeypatch, empty_resolver +): + monkeypatch.setattr('botocore.regions.HAS_CRT', False) + monkeypatch.setattr('botocore.regions.AUTH_TYPE_MAPS', {}) + auth_schemes = [ + {'name': 'sigv4a', 'signingName': 's3', 'signingRegionSet': ['*']} + ] + with pytest.raises(MissingDependencyException): + empty_resolver.auth_schemes_to_signing_ctx(auth_schemes) + + +def test_auth_schemes_conversion_no_known_auth_types(empty_resolver): + auth_schemes = [ + {'name': 'foo', 'signingName': 's3', 'signingRegion': 'ap-south-2'}, + {'name': 'bar', 'otherParamKey': 'otherParamVal'}, + ] + with pytest.raises(UnknownSignatureVersionError): + empty_resolver.auth_schemes_to_signing_ctx(auth_schemes) + + +def test_auth_schemes_conversion_first_authtype_unknown( + monkeypatch, empty_resolver +): + monkeypatch.setattr('botocore.regions.HAS_CRT', False) + monkeypatch.setattr('botocore.regions.AUTH_TYPE_MAPS', {'bar': None}) + auth_schemes = [ + {'name': 'foo', 'signingName': 's3', 'signingRegion': 'ap-south-1'}, + {'name': 'bar', 'signingName': 's3', 'signingRegion': 'ap-south-2'}, + ] + at, sc = empty_resolver.auth_schemes_to_signing_ctx(auth_schemes) + assert at == 'bar' + assert sc == {'region': 'ap-south-2', 'signing_name': 's3'} + + +def test_endpoint_resolution_caches(endpoint_provider, monkeypatch): + mock_evaluate = Mock() + monkeypatch.setattr(RuleSet, "evaluate", mock_evaluate) + for _ in range(5): + endpoint_provider.resolve_endpoint(Region="us-east-2") + mock_evaluate.assert_called_once_with({"Region": "us-east-2"}) + + +def test_endpoint_reevaluates_result(endpoint_provider, monkeypatch): + regions = ["us-east-1", "us-west-2"] + mock_evaluate = Mock() + monkeypatch.setattr(RuleSet, "evaluate", mock_evaluate) + for region in regions: + endpoint_provider.resolve_endpoint(Region=region) + assert mock_evaluate.call_count == 2 diff --git a/tests/unit/test_handlers.py b/tests/unit/test_handlers.py index 445de5f8..08a315a7 100644 --- a/tests/unit/test_handlers.py +++ b/tests/unit/test_handlers.py @@ -13,6 +13,7 @@ import base64 import copy +import io import json import os @@ -22,7 +23,7 @@ import botocore import botocore.session from botocore import handlers from botocore.awsrequest import AWSRequest -from botocore.compat import OrderedDict, quote, six +from botocore.compat import OrderedDict, quote from botocore.config import Config from botocore.credentials import Credentials from botocore.docs.bcdoc.restdoc import DocumentStructure @@ -533,6 +534,7 @@ class TestHandlers(BaseSessionTest): 'HostedZoneId': '/hostedzone/ABC123', 'ResourceId': '/hostedzone/DEF456', 'DelegationSetId': '/hostedzone/GHI789', + 'ChangeId': '/hostedzone/JKL012', 'Other': '/hostedzone/foo', } operation_def = { @@ -549,11 +551,13 @@ class TestHandlers(BaseSessionTest): 'HostedZoneId': {'shape': 'ResourceId'}, 'ResourceId': {'shape': 'ResourceId'}, 'DelegationSetId': {'shape': 'DelegationSetId'}, + 'ChangeId': {'shape': 'ChangeId'}, 'Other': {'shape': 'String'}, }, }, 'ResourceId': {'type': 'string'}, 'DelegationSetId': {'type': 'string'}, + 'ChangeId': {'type': 'string'}, 'String': {'type': 'string'}, }, } @@ -564,6 +568,7 @@ class TestHandlers(BaseSessionTest): self.assertEqual(params['HostedZoneId'], 'ABC123') self.assertEqual(params['ResourceId'], 'DEF456') self.assertEqual(params['DelegationSetId'], 'GHI789') + self.assertEqual(params['ChangeId'], 'JKL012') # This one should have been left alone self.assertEqual(params['Other'], '/hostedzone/foo') @@ -580,7 +585,9 @@ class TestHandlers(BaseSessionTest): def test_run_instances_userdata(self): user_data = 'This is a test' - b64_user_data = base64.b64encode(six.b(user_data)).decode('utf-8') + b64_user_data = base64.b64encode(user_data.encode('latin-1')).decode( + 'utf-8' + ) params = dict( ImageId='img-12345678', MinCount=1, MaxCount=5, UserData=user_data ) @@ -701,7 +708,7 @@ class TestHandlers(BaseSessionTest): def test_glacier_checksums_added(self): request_dict = { 'headers': {}, - 'body': six.BytesIO(b'hello world'), + 'body': io.BytesIO(b'hello world'), } handlers.add_glacier_checksums(request_dict) self.assertIn('x-amz-content-sha256', request_dict['headers']) @@ -722,7 +729,7 @@ class TestHandlers(BaseSessionTest): 'headers': { 'x-amz-sha256-tree-hash': 'pre-exists', }, - 'body': six.BytesIO(b'hello world'), + 'body': io.BytesIO(b'hello world'), } handlers.add_glacier_checksums(request_dict) self.assertEqual( @@ -734,7 +741,7 @@ class TestHandlers(BaseSessionTest): 'headers': { 'x-amz-content-sha256': 'pre-exists', }, - 'body': six.BytesIO(b'hello world'), + 'body': io.BytesIO(b'hello world'), } handlers.add_glacier_checksums(request_dict) self.assertEqual( @@ -1013,13 +1020,33 @@ class TestHandlers(BaseSessionTest): ) self.assertEqual(response, 'v4') - def test_set_operation_specific_signer_s3v4(self): - signing_name = 's3' - context = {'auth_type': 'v4'} + def test_set_operation_specific_signer_v4a(self): + signing_name = 'myservice' + context = {'auth_type': 'v4a'} response = handlers.set_operation_specific_signer( context=context, signing_name=signing_name ) - self.assertEqual(response, 's3v4') + self.assertEqual(response, 'v4a') + # for v4a, context gets updated in place + self.assertIsNotNone(context.get('signing')) + self.assertEqual(context['signing']['region'], '*') + self.assertEqual(context['signing']['signing_name'], signing_name) + + def test_set_operation_specific_signer_v4a_existing_signing_context(self): + signing_name = 'myservice' + context = { + 'auth_type': 'v4a', + 'signing': {'foo': 'bar', 'region': 'abc'}, + } + handlers.set_operation_specific_signer( + context=context, signing_name=signing_name + ) + # region has been updated + self.assertEqual(context['signing']['region'], '*') + # signing_name has been added + self.assertEqual(context['signing']['signing_name'], signing_name) + # foo remained untouched + self.assertEqual(context['signing']['foo'], 'bar') def test_set_operation_specific_signer_v4_unsinged_payload(self): signing_name = 'myservice' @@ -1032,7 +1059,14 @@ class TestHandlers(BaseSessionTest): def test_set_operation_specific_signer_s3v4_unsigned_payload(self): signing_name = 's3' - context = {'auth_type': 'v4-unsigned-body'} + context = { + 'auth_type': 'v4-unsigned-body', + 'signing': { + 'foo': 'bar', + 'region': 'abc', + 'disableDoubleEncoding': True, + }, + } response = handlers.set_operation_specific_signer( context=context, signing_name=signing_name ) @@ -1040,6 +1074,21 @@ class TestHandlers(BaseSessionTest): self.assertEqual(context.get('payload_signing_enabled'), False) +@pytest.mark.parametrize( + 'auth_type, expected_response', [('v4', 's3v4'), ('v4a', 's3v4a')] +) +def test_set_operation_specific_signer_s3v4(auth_type, expected_response): + signing_name = 's3' + context = { + 'auth_type': auth_type, + 'signing': {'disableDoubleEncoding': True}, + } + response = handlers.set_operation_specific_signer( + context=context, signing_name=signing_name + ) + assert response == expected_response + + class TestConvertStringBodyToFileLikeObject(BaseSessionTest): def assert_converts_to_file_like_object_with_bytes(self, body, body_bytes): params = {'Body': body} @@ -1058,7 +1107,7 @@ class TestConvertStringBodyToFileLikeObject(BaseSessionTest): self.assert_converts_to_file_like_object_with_bytes(body, body_bytes) def test_file(self): - body = six.StringIO() + body = io.StringIO() params = {'Body': body} handlers.convert_body_to_file_like_object(params) self.assertEqual(params['Body'], body) @@ -1162,20 +1211,25 @@ class TestSSEMD5(BaseMD5Test): 'CreateMultipartUpload', 'UploadPart', 'UploadPartCopy', + 'SelectObjectContent', ): event = 'before-parameter-build.s3.%s' % op params = { 'SSECustomerKey': b'bar', 'SSECustomerAlgorithm': 'AES256', } - self.session.emit(event, params=params, model=mock.MagicMock()) + self.session.emit( + event, params=params, model=mock.MagicMock(), context={} + ) self.assertEqual(params['SSECustomerKey'], 'YmFy') self.assertEqual(params['SSECustomerKeyMD5'], 'Zm9v') def test_sse_params_as_str(self): event = 'before-parameter-build.s3.PutObject' params = {'SSECustomerKey': 'bar', 'SSECustomerAlgorithm': 'AES256'} - self.session.emit(event, params=params, model=mock.MagicMock()) + self.session.emit( + event, params=params, model=mock.MagicMock(), context={} + ) self.assertEqual(params['SSECustomerKey'], 'YmFy') self.assertEqual(params['SSECustomerKeyMD5'], 'Zm9v') @@ -1186,7 +1240,9 @@ class TestSSEMD5(BaseMD5Test): 'CopySourceSSECustomerKey': b'bar', 'CopySourceSSECustomerAlgorithm': 'AES256', } - self.session.emit(event, params=params, model=mock.MagicMock()) + self.session.emit( + event, params=params, model=mock.MagicMock(), context={} + ) self.assertEqual(params['CopySourceSSECustomerKey'], 'YmFy') self.assertEqual(params['CopySourceSSECustomerKeyMD5'], 'Zm9v') @@ -1196,7 +1252,9 @@ class TestSSEMD5(BaseMD5Test): 'CopySourceSSECustomerKey': 'bar', 'CopySourceSSECustomerAlgorithm': 'AES256', } - self.session.emit(event, params=params, model=mock.MagicMock()) + self.session.emit( + event, params=params, model=mock.MagicMock(), context={} + ) self.assertEqual(params['CopySourceSSECustomerKey'], 'YmFy') self.assertEqual(params['CopySourceSSECustomerKeyMD5'], 'Zm9v') @@ -1302,7 +1360,7 @@ class TestAddMD5(BaseMD5Test): self.assertTrue('Content-MD5' in request_dict['headers']) def test_add_md5_with_file_like_body(self): - request_dict = {'body': six.BytesIO(b'foobar'), 'headers': {}} + request_dict = {'body': io.BytesIO(b'foobar'), 'headers': {}} self.md5_digest.return_value = b'8X\xf6"0\xac<\x91_0\x0cfC\x12\xc6?' conditionally_calculate_md5(request_dict) self.assertEqual( @@ -1335,7 +1393,7 @@ class TestAddMD5(BaseMD5Test): def test_skip_md5_when_flexible_checksum_context(self): request_dict = { - 'body': six.BytesIO(b'foobar'), + 'body': io.BytesIO(b'foobar'), 'headers': {}, 'context': { 'checksum': { @@ -1352,7 +1410,7 @@ class TestAddMD5(BaseMD5Test): def test_skip_md5_when_flexible_checksum_explicit_header(self): request_dict = { - 'body': six.BytesIO(b'foobar'), + 'body': io.BytesIO(b'foobar'), 'headers': {'x-amz-checksum-crc32': 'foo'}, } conditionally_calculate_md5(request_dict) @@ -1514,26 +1572,58 @@ class TestPrependToHost(unittest.TestCase): @pytest.mark.parametrize( 'environ, header_before, header_after', [ - ({'AWS_LAMBDA_FUNCTION_NAME': 'foo'}, {}, {}), - ({'_X_AMZ_TRACE_ID': 'bar'}, {}, {}), + ({}, {}, {}), + ({'AWS_LAMBDA_FUNCTION_NAME': 'some-function'}, {}, {}), ( - {'AWS_LAMBDA_FUNCTION_NAME': 'foo', '_X_AMZ_TRACE_ID': 'bar'}, + { + '_X_AMZN_TRACE_ID': ( + 'Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;' + 'Sampled=1;lineage=a87bd80c:0,68fd508a:5,c512fbe3:2' + ) + }, + {}, {}, - {'X-Amzn-Trace-Id': 'bar'}, ), ( - {'AWS_LAMBDA_FUNCTION_NAME': 'foo', '_X_AMZ_TRACE_ID': 'bar'}, - {'X-Amzn-Trace-Id': 'fizz'}, - {'X-Amzn-Trace-Id': 'fizz'}, + { + 'AWS_LAMBDA_FUNCTION_NAME': 'some-function', + '_X_AMZN_TRACE_ID': ( + 'Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;' + 'Sampled=1;lineage=a87bd80c:0,68fd508a:5,c512fbe3:2' + ), + }, + {}, + { + 'X-Amzn-Trace-Id': ( + 'Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8;' + 'Sampled=1;lineage=a87bd80c:0,68fd508a:5,c512fbe3:2' + ) + }, + ), + ( + { + 'AWS_LAMBDA_FUNCTION_NAME': 'some-function', + '_X_AMZN_TRACE_ID': 'EnvValue', + }, + {'X-Amzn-Trace-Id': 'OriginalValue'}, + {'X-Amzn-Trace-Id': 'OriginalValue'}, ), ( { 'AWS_LAMBDA_FUNCTION_NAME': 'foo', - '_X_AMZ_TRACE_ID': 'first\nsecond', + '_X_AMZN_TRACE_ID': 'first\nsecond', }, {}, {'X-Amzn-Trace-Id': 'first%0Asecond'}, ), + ( + { + 'AWS_LAMBDA_FUNCTION_NAME': 'foo', + '_X_AMZN_TRACE_ID': 'test123-=;:+&[]{}\"\'', + }, + {}, + {'X-Amzn-Trace-Id': 'test123-=;:+&[]{}\"\''}, + ), ], ) def test_add_recursion_detection_header(environ, header_before, header_after): @@ -1541,3 +1631,52 @@ def test_add_recursion_detection_header(environ, header_before, header_after): with mock.patch('os.environ', environ): handlers.add_recursion_detection_header(request_dict) assert request_dict['headers'] == header_after + + +@pytest.mark.parametrize( + 'auth_path_in, auth_path_expected', + [ + # access points should be stripped + ( + '/arn%3Aaws%3As3%3Aus-west-2%3A1234567890%3Aaccesspoint%2Fmy-ap/object.txt', + '/object.txt', + ), + ( + '/arn%3Aaws%3As3%3Aus-west-2%3A1234567890%3Aaccesspoint%2Fmy-ap/foo/foo/foo/object.txt', + '/foo/foo/foo/object.txt', + ), + # regular bucket names should not be stripped + ( + '/mybucket/object.txt', + '/mybucket/object.txt', + ), + ( + '/mybucket/foo/foo/foo/object.txt', + '/mybucket/foo/foo/foo/object.txt', + ), + ( + '/arn-is-a-valid-bucketname/object.txt', + '/arn-is-a-valid-bucketname/object.txt', + ), + # non-bucket cases + ( + '', + '', + ), + ( + None, + None, + ), + ( + 123, + 123, + ), + ], +) +def test_remove_arn_from_signing_path(auth_path_in, auth_path_expected): + request = AWSRequest(method='GET', auth_path=auth_path_in) + # the handler modifies the request in place + handlers.remove_arn_from_signing_path( + request=request, some='other', kwarg='values' + ) + assert request.auth_path == auth_path_expected diff --git a/tests/unit/test_http_session.py b/tests/unit/test_http_session.py index 4f7605aa..bd591e11 100644 --- a/tests/unit/test_http_session.py +++ b/tests/unit/test_http_session.py @@ -496,3 +496,23 @@ class TestURLLib3Session(unittest.TestCase): session.send(self.request.prepare()) self.assert_request_sent(chunked=False) + + def test_close(self): + session = URLLib3Session() + session.close() + self.pool_manager.clear.assert_called_once_with() + + def test_close_proxied(self): + proxies = {'https': 'http://proxy.com', 'http': 'http://proxy2.com'} + session = URLLib3Session(proxies=proxies) + for proxy, proxy_url in proxies.items(): + self.request.url = '%s://example.com/' % proxy + session.send(self.request.prepare()) + + session.close() + self.proxy_manager_fun.return_value.clear.assert_called_with() + # One call for pool manager, one call for each of the proxies + self.assertEqual( + self.proxy_manager_fun.return_value.clear.call_count, + 1 + len(proxies), + ) diff --git a/tests/unit/test_loaders.py b/tests/unit/test_loaders.py index 56804c33..6fbbb956 100644 --- a/tests/unit/test_loaders.py +++ b/tests/unit/test_loaders.py @@ -128,6 +128,23 @@ class TestLoader(BaseEnvVar): loaded = loader.load_data('baz') self.assertEqual(loaded, ['loaded data']) + @mock.patch('os.path.isdir', mock.Mock(return_value=True)) + def test_load_data_with_path(self): + search_paths = ['foo', 'bar', 'baz'] + + class FakeLoader: + def load_file(self, name): + expected_ending = os.path.join('bar', 'abc') + if name.endswith(expected_ending): + return ['loaded data'] + + loader = Loader( + extra_search_paths=search_paths, file_loader=FakeLoader() + ) + loaded, path = loader.load_data_with_path('abc') + self.assertEqual(loaded, ['loaded data']) + self.assertEqual(path, os.path.join('bar', 'abc')) + def test_data_not_found_raises_exception(self): class FakeLoader: def load_file(self, name): @@ -139,6 +156,15 @@ class TestLoader(BaseEnvVar): with self.assertRaises(DataNotFoundError): loader.load_data('baz') + def test_data_not_found_raises_exception_load_data_with_path(self): + class FakeLoader: + def load_file(self, name): + return None + + loader = Loader(file_loader=FakeLoader()) + with self.assertRaises(DataNotFoundError): + loader.load_data_with_path('baz') + @mock.patch('os.path.isdir', mock.Mock(return_value=True)) def test_error_raised_if_service_does_not_exist(self): loader = Loader( @@ -210,6 +236,13 @@ class TestLoader(BaseEnvVar): self.assertIn('bar', loader.search_paths) self.assertIn('baz', loader.search_paths) + def test_is_builtin_path(self): + loader = Loader() + path_in_builtins = os.path.join(loader.BUILTIN_DATA_PATH, "foo.txt") + path_elsewhere = __file__ + self.assertTrue(loader.is_builtin_path(path_in_builtins)) + self.assertFalse(loader.is_builtin_path(path_elsewhere)) + class TestMergeExtras(BaseEnvVar): def setUp(self): diff --git a/tests/unit/test_model.py b/tests/unit/test_model.py index a13e9ab8..62c8f568 100644 --- a/tests/unit/test_model.py +++ b/tests/unit/test_model.py @@ -125,6 +125,43 @@ class TestServiceModel(unittest.TestCase): self.assertIn('ExceptionOne', error_shape_names) self.assertIn('ExceptionTwo', error_shape_names) + def test_client_context_params(self): + service_model = model.ServiceModel( + { + 'metadata': { + 'protocol': 'query', + 'endpointPrefix': 'endpoint-prefix', + 'serviceId': 'MyServiceWithClientContextParams', + }, + 'documentation': 'Documentation value', + 'operations': {}, + 'shapes': {}, + 'clientContextParams': { + 'stringClientContextParam': { + 'type': 'string', + 'documentation': 'str-valued', + }, + 'booleanClientContextParam': { + 'type': 'boolean', + 'documentation': 'bool-valued', + }, + }, + } + ) + self.assertEqual(len(service_model.client_context_parameters), 2) + client_ctx_param1 = service_model.client_context_parameters[0] + client_ctx_param2 = service_model.client_context_parameters[1] + self.assertEqual(client_ctx_param1.name, 'stringClientContextParam') + self.assertEqual(client_ctx_param1.type, 'string') + self.assertEqual(client_ctx_param1.documentation, 'str-valued') + self.assertEqual(client_ctx_param2.name, 'booleanClientContextParam') + + def test_client_context_params_absent(self): + self.assertIsInstance( + self.service_model.client_context_parameters, list + ) + self.assertEqual(len(self.service_model.client_context_parameters), 0) + class TestOperationModelFromService(unittest.TestCase): def setUp(self): @@ -185,6 +222,25 @@ class TestOperationModelFromService(unittest.TestCase): 'errors': [{'shape': 'NoSuchResourceException'}], 'documentation': 'Docs for NoBodyOperation', }, + 'ContextParamOperation': { + 'http': { + 'method': 'POST', + 'requestUri': '/', + }, + 'name': 'ContextParamOperation', + 'input': {'shape': 'ContextParamOperationRequest'}, + 'output': {'shape': 'OperationNameResponse'}, + 'errors': [{'shape': 'NoSuchResourceException'}], + 'documentation': 'Docs for ContextParamOperation', + 'staticContextParams': { + 'stringStaticContextParam': { + 'value': 'Static Context Param Value', + }, + 'booleanStaticContextParam': { + 'value': True, + }, + }, + }, }, 'shapes': { 'OperationNameRequest': { @@ -229,6 +285,18 @@ class TestOperationModelFromService(unittest.TestCase): } }, }, + 'ContextParamOperationRequest': { + 'type': 'structure', + 'members': { + 'ContextParamArg': { + 'shape': 'stringType', + 'contextParam': { + 'name': 'contextParamName', + }, + } + }, + 'payload': 'ContextParamArg', + }, 'NoSuchResourceException': { 'type': 'structure', 'members': {}, @@ -428,6 +496,37 @@ class TestOperationModelFromService(unittest.TestCase): ["crc32", "crc32c", "sha256", "sha1"], ) + def test_context_parameter_present(self): + service_model = model.ServiceModel(self.model) + operation = service_model.operation_model('ContextParamOperation') + self.assertEqual(len(operation.context_parameters), 1) + context_param = operation.context_parameters[0] + self.assertEqual(context_param.name, 'contextParamName') + self.assertEqual(context_param.member_name, 'ContextParamArg') + + def test_context_parameter_absent(self): + service_model = model.ServiceModel(self.model) + operation = service_model.operation_model('OperationTwo') + self.assertIsInstance(operation.context_parameters, list) + self.assertEqual(len(operation.context_parameters), 0) + + def test_static_context_parameter_present(self): + service_model = model.ServiceModel(self.model) + operation = service_model.operation_model('ContextParamOperation') + self.assertEqual(len(operation.static_context_parameters), 2) + static_ctx_param1 = operation.static_context_parameters[0] + static_ctx_param2 = operation.static_context_parameters[1] + self.assertEqual(static_ctx_param1.name, 'stringStaticContextParam') + self.assertEqual(static_ctx_param1.value, 'Static Context Param Value') + self.assertEqual(static_ctx_param2.name, 'booleanStaticContextParam') + self.assertEqual(static_ctx_param2.value, True) + + def test_static_context_parameter_abent(self): + service_model = model.ServiceModel(self.model) + operation = service_model.operation_model('OperationTwo') + self.assertIsInstance(operation.static_context_parameters, list) + self.assertEqual(len(operation.static_context_parameters), 0) + class TestOperationModelEventStreamTypes(unittest.TestCase): def setUp(self): diff --git a/tests/unit/test_parsers.py b/tests/unit/test_parsers.py index c9650b9f..4988ad7f 100644 --- a/tests/unit/test_parsers.py +++ b/tests/unit/test_parsers.py @@ -1081,6 +1081,93 @@ class TestParseErrorResponses(unittest.TestCase): self.assertEqual(parsed['Error']['Message'], 'this is a message') self.assertEqual(parsed['Error']['Code'], 'ValidationException') + def test_response_with_query_error_for_json_protocol(self): + parser = parsers.JSONParser() + response = { + "body": b""" + {"__type":"amazon.foo.validate#ValidationException", + "message":"this is a message"} + """, + "status_code": 400, + "headers": { + "x-amzn-requestid": "request-id", + "x-amzn-query-error": "AWS.SimpleQueueService.NonExistentQueue;Sender", + }, + } + parsed = parser.parse(response, None) + # ResponseMetadata should always be populated. + self.assertIn('ResponseMetadata', parsed) + self.assertEqual(parsed['ResponseMetadata']['RequestId'], 'request-id') + + self.assertIn('Error', parsed) + self.assertEqual(parsed['Error']['Message'], 'this is a message') + self.assertEqual( + parsed['Error']['Code'], 'AWS.SimpleQueueService.NonExistentQueue' + ) + + def test_response_with_invalid_query_error_for_json_protocol(self): + parser = parsers.JSONParser() + response = { + "body": b""" + {"__type":"amazon.foo.validate#ValidationException", + "message":"this is a message"} + """, + "status_code": 400, + "headers": { + "x-amzn-requestid": "request-id", + "x-amzn-query-error": "AWS.SimpleQueueService.NonExistentQueue;sender;400", + }, + } + parsed = parser.parse(response, None) + self.assertIn('ResponseMetadata', parsed) + self.assertEqual(parsed['ResponseMetadata']['RequestId'], 'request-id') + + self.assertIn('Error', parsed) + self.assertEqual(parsed['Error']['Message'], 'this is a message') + self.assertEqual(parsed['Error']['Code'], 'ValidationException') + + def test_response_with_incomplete_query_error_for_json_protocol(self): + parser = parsers.JSONParser() + response = { + "body": b""" + {"__type":"amazon.foo.validate#ValidationException", + "message":"this is a message"} + """, + "status_code": 400, + "headers": { + "x-amzn-requestid": "request-id", + "x-amzn-query-error": ";sender", + }, + } + parsed = parser.parse(response, None) + self.assertIn('ResponseMetadata', parsed) + self.assertEqual(parsed['ResponseMetadata']['RequestId'], 'request-id') + + self.assertIn('Error', parsed) + self.assertEqual(parsed['Error']['Message'], 'this is a message') + self.assertEqual(parsed['Error']['Code'], 'ValidationException') + + def test_response_with_empty_query_errors_for_json_protocol(self): + parser = parsers.JSONParser() + response = { + "body": b""" + {"__type":"amazon.foo.validate#ValidationException", + "message":"this is a message"} + """, + "status_code": 400, + "headers": { + "x-amzn-requestid": "request-id", + "x-amzn-query-error": "", + }, + } + parsed = parser.parse(response, None) + self.assertIn('ResponseMetadata', parsed) + self.assertEqual(parsed['ResponseMetadata']['RequestId'], 'request-id') + + self.assertIn('Error', parsed) + self.assertEqual(parsed['Error']['Message'], 'this is a message') + self.assertEqual(parsed['Error']['Code'], 'ValidationException') + def test_parse_error_response_for_query_protocol(self): body = ( b'' diff --git a/tests/unit/test_response.py b/tests/unit/test_response.py index e1c25cea..b000b63b 100644 --- a/tests/unit/test_response.py +++ b/tests/unit/test_response.py @@ -20,7 +20,6 @@ from urllib3.exceptions import ReadTimeoutError as URLLib3ReadTimeoutError import botocore from botocore import response from botocore.awsrequest import AWSResponse -from botocore.compat import six from botocore.exceptions import ( IncompleteReadError, ReadTimeoutError, @@ -185,7 +184,7 @@ class TestStreamWrapper(unittest.TestCase): ) def test_streaming_line_iterator_keepends(self): - body = six.BytesIO(b'1234567890\n1234567890\n12345') + body = BytesIO(b'1234567890\n1234567890\n12345') stream = response.StreamingBody(body, content_length=27) self.assert_lines( stream.iter_lines(keepends=True), diff --git a/tests/unit/test_serialize.py b/tests/unit/test_serialize.py index b62a60d9..ca57d01a 100644 --- a/tests/unit/test_serialize.py +++ b/tests/unit/test_serialize.py @@ -13,12 +13,12 @@ spec. This can happen for a number of reasons: """ import base64 import datetime +import io import json import dateutil.tz from botocore import serialize -from botocore.compat import six from botocore.exceptions import ParamValidationError from botocore.model import ServiceModel from tests import unittest @@ -125,7 +125,7 @@ class TestBinaryTypesWithRestXML(BaseModelWithBlob): } def test_blob_serialization_with_file_like_object(self): - body = six.BytesIO(b'foobar') + body = io.BytesIO(b'foobar') request = self.serialize_to_request(input_params={'Blob': body}) self.assertEqual(request['body'], body) diff --git a/tests/unit/test_session.py b/tests/unit/test_session.py index 1c90ce9f..ee4cad5a 100644 --- a/tests/unit/test_session.py +++ b/tests/unit/test_session.py @@ -23,7 +23,12 @@ import botocore.config import botocore.exceptions import botocore.loaders import botocore.session -from botocore import UNSIGNED, client +from botocore import ( + UNSIGNED, + client, + register_initializer, + unregister_initializer, +) from botocore.configprovider import ConfigChainFactory from botocore.hooks import HierarchicalEmitter from botocore.model import ServiceModel @@ -570,6 +575,7 @@ class TestCreateClient(BaseSessionTest): scoped_config=mock.ANY, client_config=config, api_version=mock.ANY, + auth_token=mock.ANY, ) @mock.patch('botocore.client.ClientCreator') @@ -588,6 +594,7 @@ class TestCreateClient(BaseSessionTest): scoped_config=mock.ANY, client_config=config, api_version=mock.ANY, + auth_token=mock.ANY, ) @mock.patch('botocore.client.ClientCreator') @@ -993,3 +1000,32 @@ class TestSessionRegionSetup(BaseSessionTest): s3_client = self.session.create_client('s3', region_name=None) self.assertIsInstance(s3_client, client.BaseClient) self.assertTrue(s3_client.meta.region_name is not None) + + +class TestInitializationHooks(BaseSessionTest): + def test_can_register_init_hook(self): + call_args = [] + + def init_hook(session): + call_args.append(session) + + register_initializer(init_hook) + self.addCleanup(unregister_initializer, init_hook) + session = create_session() + self.assertEqual(call_args, [session]) + + def test_can_unregister_hook(self): + call_args = [] + + def init_hook(session): + call_args.append(session) + + register_initializer(init_hook) + unregister_initializer(init_hook) + create_session() + self.assertEqual(call_args, []) + + def test_unregister_hook_raises_value_error(self): + not_registered = lambda session: None + with self.assertRaises(ValueError): + self.assertRaises(unregister_initializer(not_registered)) diff --git a/tests/unit/test_session_legacy.py b/tests/unit/test_session_legacy.py index 78c3ad48..52fc30f4 100644 --- a/tests/unit/test_session_legacy.py +++ b/tests/unit/test_session_legacy.py @@ -584,6 +584,7 @@ class TestCreateClient(BaseSessionTest): scoped_config=mock.ANY, client_config=config, api_version=mock.ANY, + auth_token=mock.ANY, ) @mock.patch('botocore.client.ClientCreator') @@ -602,6 +603,7 @@ class TestCreateClient(BaseSessionTest): scoped_config=mock.ANY, client_config=config, api_version=mock.ANY, + auth_token=mock.ANY, ) @mock.patch('botocore.client.ClientCreator') diff --git a/tests/unit/test_signers.py b/tests/unit/test_signers.py index 45fcd49f..4b0baefe 100644 --- a/tests/unit/test_signers.py +++ b/tests/unit/test_signers.py @@ -856,10 +856,11 @@ class TestGenerateUrl(unittest.TestCase): ref_request_dict = { 'body': b'', - 'url': 'https://s3.amazonaws.com/mybucket/mykey', + 'url': 'https://mybucket.s3.amazonaws.com/mykey', 'headers': {}, + 'auth_path': '/mybucket/mykey', 'query_string': {}, - 'url_path': '/mybucket/mykey', + 'url_path': '/mykey', 'method': 'GET', # mock.ANY is used because client parameter related events # inject values into the context. So using the context's exact @@ -886,13 +887,14 @@ class TestGenerateUrl(unittest.TestCase): ref_request_dict = { 'body': b'', 'url': ( - 'https://s3.amazonaws.com/mybucket/mykey' + 'https://mybucket.s3.amazonaws.com/mykey' '?response-content-disposition=' 'attachment%3B%20filename%3D%22download.jpg%22' ), + 'auth_path': '/mybucket/mykey', 'headers': {}, 'query_string': {'response-content-disposition': disposition}, - 'url_path': '/mybucket/mykey', + 'url_path': '/mykey', 'method': 'GET', 'context': mock.ANY, } @@ -918,10 +920,11 @@ class TestGenerateUrl(unittest.TestCase): ) ref_request_dict = { 'body': b'', - 'url': 'https://s3.amazonaws.com/mybucket/mykey', + 'url': 'https://mybucket.s3.amazonaws.com/mykey', + 'auth_path': '/mybucket/mykey', 'headers': {}, 'query_string': {}, - 'url_path': '/mybucket/mykey', + 'url_path': '/mykey', 'method': 'GET', 'context': mock.ANY, } @@ -939,10 +942,11 @@ class TestGenerateUrl(unittest.TestCase): ) ref_request_dict = { 'body': b'', - 'url': 'https://s3.amazonaws.com/mybucket/mykey', + 'url': 'https://mybucket.s3.amazonaws.com/mykey', + 'auth_path': '/mybucket/mykey', 'headers': {}, 'query_string': {}, - 'url_path': '/mybucket/mykey', + 'url_path': '/mykey', 'method': 'PUT', 'context': mock.ANY, } @@ -1010,7 +1014,7 @@ class TestGeneratePresignedPost(unittest.TestCase): fields = post_kwargs['fields'] conditions = post_kwargs['conditions'] self.assertEqual( - request_dict['url'], 'https://s3.amazonaws.com/mybucket' + request_dict['url'], 'https://mybucket.s3.amazonaws.com/' ) self.assertEqual(post_kwargs['expires_in'], 3600) self.assertEqual( @@ -1027,7 +1031,7 @@ class TestGeneratePresignedPost(unittest.TestCase): fields = post_kwargs['fields'] conditions = post_kwargs['conditions'] self.assertEqual( - request_dict['url'], 'https://s3.amazonaws.com/mybucket' + request_dict['url'], 'https://mybucket.s3.amazonaws.com/' ) self.assertEqual(post_kwargs['expires_in'], 3600) self.assertEqual( @@ -1045,7 +1049,7 @@ class TestGeneratePresignedPost(unittest.TestCase): fields = post_kwargs['fields'] conditions = post_kwargs['conditions'] self.assertEqual( - request_dict['url'], 'https://s3.amazonaws.com/mybucket' + request_dict['url'], 'https://mybucket.s3.amazonaws.com/' ) self.assertEqual(post_kwargs['expires_in'], 50) self.assertEqual( @@ -1068,7 +1072,7 @@ class TestGeneratePresignedPost(unittest.TestCase): fields = post_kwargs['fields'] conditions = post_kwargs['conditions'] self.assertEqual( - request_dict['url'], 'https://s3.amazonaws.com/mybucket' + request_dict['url'], 'https://mybucket.s3.amazonaws.com/' ) self.assertEqual( conditions, diff --git a/tests/unit/test_tokens.py b/tests/unit/test_tokens.py new file mode 100644 index 00000000..151a1bd2 --- /dev/null +++ b/tests/unit/test_tokens.py @@ -0,0 +1,338 @@ +# Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"). You +# may not use this file except in compliance with the License. A copy of +# the License is located at +# +# http://aws.amazon.com/apache2.0/ +# +# or in the "license" file accompanying this file. This file is +# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. +import dateutil.parser +import pytest + +from botocore.exceptions import ( + InvalidConfigError, + SSOTokenLoadError, + TokenRetrievalError, +) +from botocore.session import Session +from botocore.tokens import SSOTokenProvider +from tests import mock + + +def parametrize(cases): + return pytest.mark.parametrize( + "test_case", + cases, + ids=[c["documentation"] for c in cases], + ) + + +sso_provider_resolution_cases = [ + { + "documentation": "Full valid profile", + "config": { + "profiles": {"test": {"sso_session": "admin"}}, + "sso_sessions": { + "admin": { + "sso_region": "us-east-1", + "sso_start_url": "https://d-abc123.awsapps.com/start", + } + }, + }, + "resolves": True, + }, + { + "documentation": "Non-SSO profiles are skipped", + "config": {"profiles": {"test": {"region": "us-west-2"}}}, + "resolves": False, + }, + { + "documentation": "Only start URL is invalid", + "config": { + "profiles": {"test": {"sso_session": "admin"}}, + "sso_sessions": { + "admin": { + "sso_start_url": "https://d-abc123.awsapps.com/start" + } + }, + }, + "resolves": False, + "expectedException": InvalidConfigError, + }, + { + "documentation": "Only sso_region is invalid", + "config": { + "profiles": {"test": {"sso_session": "admin"}}, + "sso_sessions": {"admin": {"sso_region": "us-east-1"}}, + }, + "resolves": False, + "expectedException": InvalidConfigError, + }, + { + "documentation": "Specified sso-session must exist", + "config": { + "profiles": {"test": {"sso_session": "dev"}}, + "sso_sessions": {"admin": {"sso_region": "us-east-1"}}, + }, + "resolves": False, + "expectedException": InvalidConfigError, + }, + { + "documentation": "The sso_session must be specified", + "config": { + "profiles": {"test": {"region": "us-west-2"}}, + "sso_sessions": { + "admin": { + "sso_region": "us-east-1", + "sso_start_url": "https://d-abc123.awsapps.com/start", + } + }, + }, + "resolves": False, + }, +] + + +def _create_mock_session(config): + mock_session = mock.Mock(spec=Session) + mock_session.get_config_variable.return_value = "test" + mock_session.full_config = config + return mock_session + + +@parametrize(sso_provider_resolution_cases) +def test_sso_token_provider_resolution(test_case): + mock_session = _create_mock_session(test_case["config"]) + resolver = SSOTokenProvider(mock_session) + + expected_exception = test_case.get("expectedException") + if expected_exception is not None: + with pytest.raises(expected_exception): + auth_token = resolver.load_token() + return + + auth_token = resolver.load_token() + if test_case["resolves"]: + assert auth_token is not None + else: + assert auth_token is None + + +sso_provider_refresh_cases = [ + { + "documentation": "Valid token with all fields", + "currentTime": "2021-12-25T13:30:00Z", + "cachedToken": { + "startUrl": "https://d-123.awsapps.com/start", + "region": "us-west-2", + "accessToken": "cachedtoken", + "expiresAt": "2021-12-25T21:30:00Z", + "clientId": "clientid", + "clientSecret": "YSBzZWNyZXQ=", + "registrationExpiresAt": "2022-12-25T13:30:00Z", + "refreshToken": "cachedrefreshtoken", + }, + "expectedToken": { + "token": "cachedtoken", + "expiration": "2021-12-25T21:30:00Z", + }, + }, + { + "documentation": "Minimal valid cached token", + "currentTime": "2021-12-25T13:30:00Z", + "cachedToken": { + "accessToken": "cachedtoken", + "expiresAt": "2021-12-25T21:30:00Z", + }, + "expectedToken": { + "token": "cachedtoken", + "expiration": "2021-12-25T21:30:00Z", + }, + }, + { + "documentation": "Minimal expired cached token", + "currentTime": "2021-12-25T13:30:00Z", + "cachedToken": { + "accessToken": "cachedtoken", + "expiresAt": "2021-12-25T13:00:00Z", + }, + "expectedException": TokenRetrievalError, + }, + { + "documentation": "Token missing the expiresAt field", + "currentTime": "2021-12-25T13:30:00Z", + "cachedToken": {"accessToken": "cachedtoken"}, + "expectedException": SSOTokenLoadError, + }, + { + "documentation": "Token missing the accessToken field", + "currentTime": "2021-12-25T13:30:00Z", + "cachedToken": {"expiresAt": "2021-12-25T13:00:00Z"}, + "expectedException": SSOTokenLoadError, + }, + { + "documentation": "Expired token refresh with refresh token", + "currentTime": "2021-12-25T13:30:00Z", + "cachedToken": { + "startUrl": "https://d-123.awsapps.com/start", + "region": "us-west-2", + "accessToken": "cachedtoken", + "expiresAt": "2021-12-25T13:00:00Z", + "clientId": "clientid", + "clientSecret": "YSBzZWNyZXQ=", + "registrationExpiresAt": "2022-12-25T13:30:00Z", + "refreshToken": "cachedrefreshtoken", + }, + "refreshResponse": { + "tokenType": "Bearer", + "accessToken": "newtoken", + "expiresIn": 28800, + "refreshToken": "newrefreshtoken", + }, + "expectedTokenWriteback": { + "startUrl": "https://d-123.awsapps.com/start", + "region": "us-west-2", + "accessToken": "newtoken", + "expiresAt": "2021-12-25T21:30:00Z", + "clientId": "clientid", + "clientSecret": "YSBzZWNyZXQ=", + "registrationExpiresAt": "2022-12-25T13:30:00Z", + "refreshToken": "newrefreshtoken", + }, + "expectedToken": { + "token": "newtoken", + "expiration": "2021-12-25T21:30:00Z", + }, + }, + { + "documentation": "Expired token refresh without new refresh token", + "currentTime": "2021-12-25T13:30:00Z", + "cachedToken": { + "startUrl": "https://d-123.awsapps.com/start", + "region": "us-west-2", + "accessToken": "cachedtoken", + "expiresAt": "2021-12-25T13:00:00Z", + "clientId": "clientid", + "clientSecret": "YSBzZWNyZXQ=", + "registrationExpiresAt": "2022-12-25T13:30:00Z", + "refreshToken": "cachedrefreshtoken", + }, + "refreshResponse": { + "tokenType": "Bearer", + "accessToken": "newtoken", + "expiresIn": 28800, + }, + "expectedTokenWriteback": { + "startUrl": "https://d-123.awsapps.com/start", + "region": "us-west-2", + "accessToken": "newtoken", + "expiresAt": "2021-12-25T21:30:00Z", + "clientId": "clientid", + "clientSecret": "YSBzZWNyZXQ=", + "registrationExpiresAt": "2022-12-25T13:30:00Z", + }, + "expectedToken": { + "token": "newtoken", + "expiration": "2021-12-25T21:30:00Z", + }, + }, + { + "documentation": "Expired token and expired client registration", + "currentTime": "2021-12-25T13:30:00Z", + "cachedToken": { + "startUrl": "https://d-123.awsapps.com/start", + "region": "us-west-2", + "accessToken": "cachedtoken", + "expiresAt": "2021-10-25T13:00:00Z", + "clientId": "clientid", + "clientSecret": "YSBzZWNyZXQ=", + "registrationExpiresAt": "2021-11-25T13:30:00Z", + "refreshToken": "cachedrefreshtoken", + }, + "expectedException": TokenRetrievalError, + }, +] + + +@parametrize(sso_provider_refresh_cases) +def test_sso_token_provider_refresh(test_case): + config = { + "profiles": {"test": {"sso_session": "admin"}}, + "sso_sessions": { + "admin": { + "sso_region": "us-west-2", + "sso_start_url": "https://d-123.awsapps.com/start", + } + }, + } + cache_key = "d033e22ae348aeb5660fc2140aec35850c4da997" + token_cache = {} + + # Prepopulate the token cache + cached_token = test_case.pop("cachedToken", None) + if cached_token: + token_cache[cache_key] = cached_token + + mock_session = _create_mock_session(config) + mock_sso_oidc = mock.Mock() + mock_session.create_client.return_value = mock_sso_oidc + + refresh_response = test_case.pop("refreshResponse", None) + mock_sso_oidc.create_token.return_value = refresh_response + + current_time = dateutil.parser.parse(test_case.pop("currentTime")) + + def _time_fetcher(): + return current_time + + resolver = SSOTokenProvider( + mock_session, + token_cache, + time_fetcher=_time_fetcher, + ) + + auth_token = resolver.load_token() + + actual_exception = None + try: + actual_token = auth_token.get_frozen_token() + except Exception as e: + actual_exception = e + + expected_exception = test_case.pop("expectedException", None) + if expected_exception is not None: + assert isinstance(actual_exception, expected_exception) + elif actual_exception is not None: + raise actual_exception + + expected_token = test_case.pop("expectedToken", {}) + raw_token = expected_token.get("token") + if raw_token is not None: + assert actual_token.token == raw_token + + raw_expiration = expected_token.get("expiration") + if raw_expiration is not None: + expected_expiration = dateutil.parser.parse(raw_expiration) + assert actual_token.expiration == expected_expiration + + expected_token_write_back = test_case.pop("expectedTokenWriteback", None) + if expected_token_write_back: + mock_sso_oidc.create_token.assert_called_with( + grantType="refresh_token", + clientId=cached_token["clientId"], + clientSecret=cached_token["clientSecret"], + refreshToken=cached_token["refreshToken"], + ) + raw_expiration = expected_token_write_back["expiresAt"] + # The in-memory cache doesn't serialize to JSON so expect a datetime + expected_expiration = dateutil.parser.parse(raw_expiration) + expected_token_write_back["expiresAt"] = expected_expiration + assert expected_token_write_back == token_cache[cache_key] + + # Pop the documentation to ensure all test fields are handled + test_case.pop("documentation") + assert not test_case.keys(), "All fields of test case should be handled" diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 7978a732..ae253d03 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -21,8 +21,9 @@ from dateutil.tz import tzoffset, tzutc import botocore from botocore import xform_name from botocore.awsrequest import AWSRequest, HeadersDict -from botocore.compat import json, six +from botocore.compat import json from botocore.config import Config +from botocore.endpoint_provider import RuleSetEndpoint from botocore.exceptions import ( ClientError, ConfigNotFound, @@ -45,6 +46,7 @@ from botocore.model import ( ServiceModel, ShapeResolver, ) +from botocore.regions import EndpointRulesetResolver from botocore.session import Session from botocore.utils import ( ArgumentGenerator, @@ -57,7 +59,7 @@ from botocore.utils import ( InvalidArnException, S3ArnParamHandler, S3EndpointSetter, - S3RegionRedirector, + S3RegionRedirectorv2, SSOTokenLoader, calculate_sha256, calculate_tree_hash, @@ -66,10 +68,12 @@ from botocore.utils import ( determine_content_length, ensure_boolean, fix_s3_host, + get_encoding_from_headers, get_service_module_name, has_header, instance_cache, is_json_value_header, + is_s3_accelerate_url, is_valid_endpoint_url, is_valid_ipv6_endpoint_url, is_valid_uri, @@ -715,19 +719,19 @@ class TestArgumentGenerator(unittest.TestCase): class TestChecksums(unittest.TestCase): def test_empty_hash(self): self.assertEqual( - calculate_sha256(six.BytesIO(b''), as_hex=True), + calculate_sha256(io.BytesIO(b''), as_hex=True), 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', ) def test_as_hex(self): self.assertEqual( - calculate_sha256(six.BytesIO(b'hello world'), as_hex=True), + calculate_sha256(io.BytesIO(b'hello world'), as_hex=True), 'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9', ) def test_as_binary(self): self.assertEqual( - calculate_sha256(six.BytesIO(b'hello world'), as_hex=False), + calculate_sha256(io.BytesIO(b'hello world'), as_hex=False), ( b"\xb9M'\xb9\x93M>\x08\xa5.R\xd7\xda}\xab\xfa\xc4\x84\xef" b"\xe3zS\x80\xee\x90\x88\xf7\xac\xe2\xef\xcd\xe9" @@ -742,12 +746,12 @@ class TestTreeHash(unittest.TestCase): def test_empty_tree_hash(self): self.assertEqual( - calculate_tree_hash(six.BytesIO(b'')), + calculate_tree_hash(io.BytesIO(b'')), 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', ) def test_tree_hash_less_than_one_mb(self): - one_k = six.BytesIO(b'a' * 1024) + one_k = io.BytesIO(b'a' * 1024) self.assertEqual( calculate_tree_hash(one_k), '2edc986847e209b4016e141a6dc8716d3207350f416969382d431539bf292e4a', @@ -755,21 +759,21 @@ class TestTreeHash(unittest.TestCase): def test_tree_hash_exactly_one_mb(self): one_meg_bytestring = b'a' * (1 * 1024 * 1024) - one_meg = six.BytesIO(one_meg_bytestring) + one_meg = io.BytesIO(one_meg_bytestring) self.assertEqual( calculate_tree_hash(one_meg), '9bc1b2a288b26af7257a36277ae3816a7d4f16e89c1e7e77d0a5c48bad62b360', ) def test_tree_hash_multiple_of_one_mb(self): - four_mb = six.BytesIO(b'a' * (4 * 1024 * 1024)) + four_mb = io.BytesIO(b'a' * (4 * 1024 * 1024)) self.assertEqual( calculate_tree_hash(four_mb), '9491cb2ed1d4e7cd53215f4017c23ec4ad21d7050a1e6bb636c4f67e8cddb844', ) def test_tree_hash_offset_of_one_mb_multiple(self): - offset_four_mb = six.BytesIO(b'a' * (4 * 1024 * 1024) + b'a' * 20) + offset_four_mb = io.BytesIO(b'a' * (4 * 1024 * 1024) + b'a' * 20) self.assertEqual( calculate_tree_hash(offset_four_mb), '12f3cbd6101b981cde074039f6f728071da8879d6f632de8afc7cdf00661b08f', @@ -1473,13 +1477,30 @@ class TestDeepMerge(unittest.TestCase): class TestS3RegionRedirector(unittest.TestCase): def setUp(self): - self.endpoint_bridge = mock.Mock() - self.endpoint_bridge.resolve.return_value = { - 'endpoint_url': 'https://eu-central-1.amazonaws.com' - } self.client = mock.Mock() + self.client._ruleset_resolver = EndpointRulesetResolver( + endpoint_ruleset_data={ + 'version': '1.0', + 'parameters': {}, + 'rules': [], + }, + partition_data={}, + service_model=None, + builtins={}, + client_context=None, + event_emitter=None, + use_ssl=True, + requested_auth_scheme=None, + ) + self.client._ruleset_resolver.construct_endpoint = mock.Mock( + return_value=RuleSetEndpoint( + url='https://new-endpoint.amazonaws.com', + properties={}, + headers={}, + ) + ) self.cache = {} - self.redirector = S3RegionRedirector(self.endpoint_bridge, self.client) + self.redirector = S3RegionRedirectorv2(None, self.client) self.set_client_response_headers({}) self.operation = mock.Mock() self.operation.name = 'foo' @@ -1499,56 +1520,49 @@ class TestS3RegionRedirector(unittest.TestCase): ] def test_set_request_url(self): - params = {'url': 'https://us-west-2.amazonaws.com/foo'} - context = { - 'signing': {'endpoint': 'https://eu-central-1.amazonaws.com'} - } - self.redirector.set_request_url(params, context) - self.assertEqual( - params['url'], 'https://eu-central-1.amazonaws.com/foo' - ) - - def test_only_changes_request_url_if_endpoint_present(self): - params = {'url': 'https://us-west-2.amazonaws.com/foo'} - context = {} - self.redirector.set_request_url(params, context) - self.assertEqual(params['url'], 'https://us-west-2.amazonaws.com/foo') + old_url = 'https://us-west-2.amazonaws.com/foo' + new_endpoint = 'https://eu-central-1.amazonaws.com' + new_url = self.redirector.set_request_url(old_url, new_endpoint) + self.assertEqual(new_url, 'https://eu-central-1.amazonaws.com/foo') def test_set_request_url_keeps_old_scheme(self): - params = {'url': 'http://us-west-2.amazonaws.com/foo'} - context = { - 'signing': {'endpoint': 'https://eu-central-1.amazonaws.com'} - } - self.redirector.set_request_url(params, context) - self.assertEqual( - params['url'], 'http://eu-central-1.amazonaws.com/foo' - ) + old_url = 'http://us-west-2.amazonaws.com/foo' + new_endpoint = 'https://eu-central-1.amazonaws.com' + new_url = self.redirector.set_request_url(old_url, new_endpoint) + self.assertEqual(new_url, 'http://eu-central-1.amazonaws.com/foo') def test_sets_signing_context_from_cache(self): - signing_context = {'endpoint': 'bar'} - self.cache['foo'] = signing_context - self.redirector = S3RegionRedirector( - self.endpoint_bridge, self.client, cache=self.cache + self.cache['foo'] = 'new-region-1' + self.redirector = S3RegionRedirectorv2( + None, self.client, cache=self.cache ) params = {'Bucket': 'foo'} - context = {} - self.redirector.redirect_from_cache(params, context) - self.assertEqual(context.get('signing'), signing_context) + builtins = {'AWS::Region': 'old-region-1'} + self.redirector.redirect_from_cache(builtins, params) + self.assertEqual(builtins.get('AWS::Region'), 'new-region-1') def test_only_changes_context_if_bucket_in_cache(self): - signing_context = {'endpoint': 'bar'} - self.cache['bar'] = signing_context - self.redirector = S3RegionRedirector( - self.endpoint_bridge, self.client, cache=self.cache + self.cache['foo'] = 'new-region-1' + self.redirector = S3RegionRedirectorv2( + None, self.client, cache=self.cache ) - params = {'Bucket': 'foo'} - context = {} - self.redirector.redirect_from_cache(params, context) - self.assertNotEqual(context.get('signing'), signing_context) + params = {'Bucket': 'bar'} + builtins = {'AWS::Region': 'old-region-1'} + self.redirector.redirect_from_cache(builtins, params) + self.assertEqual(builtins.get('AWS::Region'), 'old-region-1') def test_redirect_from_error(self): request_dict = { - 'context': {'signing': {'bucket': 'foo'}}, + 'context': { + 's3_redirect': { + 'bucket': 'foo', + 'redirected': False, + 'params': {'Bucket': 'foo'}, + }, + 'signing': { + 'region': 'us-west-2', + }, + }, 'url': 'https://us-west-2.amazonaws.com/foo', } response = ( @@ -1565,6 +1579,22 @@ class TestS3RegionRedirector(unittest.TestCase): }, ) + self.client._ruleset_resolver.construct_endpoint.return_value = ( + RuleSetEndpoint( + url='https://eu-central-1.amazonaws.com/foo', + properties={ + 'authSchemes': [ + { + 'name': 'sigv4', + 'signingRegion': 'eu-central-1', + 'disableDoubleEncoding': True, + } + ] + }, + headers={}, + ) + ) + redirect_response = self.redirector.redirect_from_error( request_dict, response, self.operation ) @@ -1577,13 +1607,14 @@ class TestS3RegionRedirector(unittest.TestCase): ) expected_signing_context = { - 'endpoint': 'https://eu-central-1.amazonaws.com', - 'bucket': 'foo', 'region': 'eu-central-1', + 'disableDoubleEncoding': True, } signing_context = request_dict['context'].get('signing') self.assertEqual(signing_context, expected_signing_context) - self.assertTrue(request_dict['context'].get('s3_redirected')) + self.assertTrue( + request_dict['context']['s3_redirect'].get('redirected') + ) def test_does_not_redirect_if_previously_redirected(self): request_dict = { @@ -1622,7 +1653,14 @@ class TestS3RegionRedirector(unittest.TestCase): def test_does_not_redirect_if_region_cannot_be_found(self): request_dict = { 'url': 'https://us-west-2.amazonaws.com/foo', - 'context': {'signing': {'bucket': 'foo'}}, + 'context': { + 's3_redirect': { + 'bucket': 'foo', + 'redirected': False, + 'params': {'Bucket': 'foo'}, + }, + 'signing': {}, + }, } response = ( None, @@ -1645,7 +1683,14 @@ class TestS3RegionRedirector(unittest.TestCase): def test_redirects_301(self): request_dict = { 'url': 'https://us-west-2.amazonaws.com/foo', - 'context': {'signing': {'bucket': 'foo'}}, + 'context': { + 's3_redirect': { + 'bucket': 'foo', + 'redirected': False, + 'params': {'Bucket': 'foo'}, + }, + 'signing': {}, + }, } response = ( None, @@ -1672,7 +1717,14 @@ class TestS3RegionRedirector(unittest.TestCase): def test_redirects_400_head_bucket(self): request_dict = { 'url': 'https://us-west-2.amazonaws.com/foo', - 'context': {'signing': {'bucket': 'foo'}}, + 'context': { + 's3_redirect': { + 'bucket': 'foo', + 'redirected': False, + 'params': {'Bucket': 'foo'}, + }, + 'signing': {}, + }, } response = ( None, @@ -1810,7 +1862,13 @@ class TestS3RegionRedirector(unittest.TestCase): 'https://myendpoint-123456789012.s3-accesspoint.' 'us-west-2.amazonaws.com/key' ), - 'context': {'s3_accesspoint': {}}, + 'context': { + 's3_redirect': { + 'redirected': False, + 'bucket': 'arn:aws:s3:us-west-2:123456789012:myendpoint', + 'params': {}, + } + }, } response = ( None, @@ -1828,15 +1886,36 @@ class TestS3RegionRedirector(unittest.TestCase): ) self.assertEqual(redirect_response, None) - def test_no_redirect_from_cache_for_accesspoint(self): - self.cache['foo'] = {'endpoint': 'foo-endpoint'} - self.redirector = S3RegionRedirector( - self.endpoint_bridge, self.client, cache=self.cache + def test_no_redirect_from_error_for_mrap_accesspoint(self): + mrap_arn = 'arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap' + request_dict = { + 'url': ( + 'https://mfzwi23gnjvgw.mrap.accesspoint.' + 's3-global.amazonaws.com' + ), + 'context': { + 's3_redirect': { + 'redirected': False, + 'bucket': mrap_arn, + 'params': {}, + } + }, + } + response = ( + None, + { + 'Error': {'Code': '400', 'Message': 'Bad Request'}, + 'ResponseMetadata': { + 'HTTPHeaders': {'x-amz-bucket-region': 'eu-central-1'} + }, + }, ) - params = {'Bucket': 'foo'} - context = {'s3_accesspoint': {}} - self.redirector.redirect_from_cache(params, context) - self.assertNotIn('signing', context) + + self.operation.name = 'HeadObject' + redirect_response = self.redirector.redirect_from_error( + request_dict, response, self.operation + ) + self.assertEqual(redirect_response, None) class TestArnParser(unittest.TestCase): @@ -3148,8 +3227,10 @@ class TestIMDSRegionProvider(unittest.TestCase): class TestSSOTokenLoader(unittest.TestCase): def setUp(self): super().setUp() + self.session_name = 'admin' self.start_url = 'https://d-abc123.awsapps.com/start' self.cache_key = '40a89917e3175433e361b710a9d43528d7f1890a' + self.session_cache_key = 'd033e22ae348aeb5660fc2140aec35850c4da997' self.access_token = 'totally.a.token' self.cached_token = { 'accessToken': self.access_token, @@ -3161,7 +3242,7 @@ class TestSSOTokenLoader(unittest.TestCase): def test_can_load_token_exists(self): self.cache[self.cache_key] = self.cached_token access_token = self.loader(self.start_url) - self.assertEqual(self.access_token, access_token) + self.assertEqual(self.cached_token, access_token) def test_can_handle_does_not_exist(self): with self.assertRaises(SSOTokenLoadError): @@ -3172,6 +3253,31 @@ class TestSSOTokenLoader(unittest.TestCase): with self.assertRaises(SSOTokenLoadError): self.loader(self.start_url) + def test_can_save_token(self): + self.loader.save_token(self.start_url, self.cached_token) + access_token = self.loader(self.start_url) + self.assertEqual(self.cached_token, access_token) + + def test_can_save_token_sso_session(self): + self.loader.save_token( + self.start_url, + self.cached_token, + session_name=self.session_name, + ) + access_token = self.loader( + self.start_url, + session_name=self.session_name, + ) + self.assertEqual(self.cached_token, access_token) + + def test_can_load_token_exists_sso_session_name(self): + self.cache[self.session_cache_key] = self.cached_token + access_token = self.loader( + self.start_url, + session_name=self.session_name, + ) + self.assertEqual(self.cached_token, access_token) + @pytest.mark.parametrize( 'header_name, headers, expected', @@ -3240,3 +3346,45 @@ class TestDetermineContentLength(unittest.TestCase): length = determine_content_length(Seekable()) self.assertEqual(length, 50) + + +@pytest.mark.parametrize( + 'url, expected', + ( + ('https://s3-accelerate.amazonaws.com', True), + ('https://s3-accelerate.amazonaws.com/', True), + ('https://s3-accelerate.amazonaws.com/key', True), + ('http://s3-accelerate.amazonaws.com/key', True), + ('https://s3-accelerate.foo.amazonaws.com/key', False), + # bucket prefixes are not allowed + ('https://bucket.s3-accelerate.amazonaws.com/key', False), + # S3 accelerate can be combined with dualstack + ('https://s3-accelerate.dualstack.amazonaws.com/key', True), + ('https://bucket.s3-accelerate.dualstack.amazonaws.com/key', False), + ('https://s3-accelerate.dualstack.dualstack.amazonaws.com/key', False), + ('https://s3-accelerate.dualstack.foo.amazonaws.com/key', False), + ('https://dualstack.s3-accelerate.amazonaws.com/key', False), + # assorted other ways for URLs to not be valid for s3-accelerate + ('ftp://s3-accelerate.dualstack.foo.amazonaws.com/key', False), + ('https://s3-accelerate.dualstack.foo.c2s.ic.gov/key', False), + # None-valued url is accepted + (None, False), + ), +) +def test_is_s3_accelerate_url(url, expected): + assert is_s3_accelerate_url(url) == expected + + +@pytest.mark.parametrize( + 'headers, default, expected', + ( + ({}, 'ISO-8859-1', None), + ({'Content-Type': 'text/html; charset=utf-8'}, 'default', 'utf-8'), + ({'Content-Type': 'text/html; charset="utf-8"'}, 'default', 'utf-8'), + ({'Content-Type': 'text/html'}, 'ascii', 'ascii'), + ({'Content-Type': 'application/json'}, 'ISO-8859-1', None), + ), +) +def test_get_encoding_from_headers(headers, default, expected): + charset = get_encoding_from_headers(HeadersDict(headers), default=default) + assert charset == expected diff --git a/tests/unit/test_validate.py b/tests/unit/test_validate.py index ce3c10b7..38234b85 100644 --- a/tests/unit/test_validate.py +++ b/tests/unit/test_validate.py @@ -1,7 +1,7 @@ import decimal +import io from datetime import datetime -from botocore.compat import six from botocore.model import ShapeResolver from botocore.validate import ParamValidator from tests import unittest @@ -637,7 +637,7 @@ class TestValidateTypeBlob(BaseTestValidate): self.assertEqual(error_msg, '') def test_validates_file_like_object(self): - value = six.BytesIO(b'foo') + value = io.BytesIO(b'foo') errors = self.get_validation_error_message( given_shapes=self.shapes, diff --git a/tests/unit/test_waiters.py b/tests/unit/test_waiters.py index b96acbf6..13e4c248 100644 --- a/tests/unit/test_waiters.py +++ b/tests/unit/test_waiters.py @@ -10,10 +10,10 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. +import io import os import botocore -from botocore.compat import six from botocore.exceptions import ClientError, WaiterConfigError, WaiterError from botocore.loaders import Loader from botocore.model import ServiceModel @@ -762,7 +762,7 @@ class TestCreateWaiter(unittest.TestCase): waiter = create_waiter_with_client( waiter_name, self.waiter_model, self.client ) - with mock.patch('sys.stdout', six.StringIO()) as mock_stdout: + with mock.patch('sys.stdout', io.StringIO()) as mock_stdout: help(waiter.wait) content = mock_stdout.getvalue() lines = [